Spaces:
Running
Running
File size: 2,303 Bytes
27f969b 4718d7f 27f969b | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 | """
极简测试 - 用最小配置测试(应该很快)
"""
import sys
import torch
import time
sys.path.insert(0, '.')
from models.fusion_mini import FusionMini, FusionMiniConfig
def test_tiny():
"""用极小的配置测试"""
print("[TEST] 极简测试(极小配置)...")
print()
# 1. 创建极小配置
print("[1] 创建配置...")
config = FusionMiniConfig(
vocab_size=50, # 极小词表
hidden_size=32, # 极小隐层
num_hidden_layers=1, # 1层
num_attention_heads=1, # 1个注意力头
intermediate_size=64,
max_position_embeddings=32,
)
print(f" 词汇表大小: {config.vocab_size}")
print(f" 隐藏层大小: {config.hidden_size}")
print(f" 层数: {config.num_hidden_layers}")
print()
# 2. 创建模型
print("[2] 创建模型...")
model = FusionMini(config)
model.eval()
print(" 模型创建成功")
print()
# 3. 创建极小输入
print("[3] 创建输入...")
input_ids = torch.randint(0, config.vocab_size, (1, 8)) # batch=1, seq_len=8
print(f" 输入形状: {input_ids.shape}")
print()
# 4. 前向传播(计时)
print("[4] 前向传播(计时)...")
start_time = time.time()
with torch.no_grad():
outputs = model(input_ids=input_ids)
elapsed = time.time() - start_time
print(f" 前向传播完成,耗时: {elapsed:.2f}秒")
print()
# 5. 检查输出
print("[5] 检查输出...")
if isinstance(outputs, dict):
print(f" 输出类型: dict")
for key, value in outputs.items():
if isinstance(value, torch.Tensor):
print(f" {key}: {value.shape}")
print()
print("[TEST] 极简测试通过")
# test passes if no exception
if __name__ == "__main__":
print("=" * 60)
print("Fusion-LLM 极简测试(极小配置)")
print("=" * 60)
print()
try:
success = test_tiny()
if success:
print()
print("[PASS] 测试通过")
except Exception as e:
print()
print(f"[FAIL] 测试出错: {e}")
import traceback
traceback.print_exc()
sys.exit(1)
sys.exit(0)
|