================================================================
NANOCHAT d12 训练运行 — 评估报告
================================================================
模型
架构: d12 (depth=12, dim=768, heads=6)
参数: 286M
序列长度: 2048
词表大小: 32,768
训练性能
总步数: 200,000
总时间: 3,921 分钟 (~65.3 小时)
每步耗时: ~1,175ms
吞吐量: ~55,800 tok/sec
峰值内存: 9,435 MiB (~9.2 GB)
Tokens/param ratio: 5.95 (远低于 Chinchilla 最优值 20)
损失与收敛
初始损失: ~10.4 (随机初始化)
最终损失: ~2.72
最小 val bpb: 0.7800 (最佳检查点)
最终 val bpb: 0.8534 (第200k步 — 已过最小值)
注意: 最小 bpb 为 0.7800,但最终为 0.8534 — 模型在达到最佳点后开始退化。Tokens:param ratio 为 5.95,非常低 (Chinchilla 建议 ~20),意味着该模型在其规模上被严重过度训练。
================================================================
核心基准测试 (22 个任务)
================================================================
核心指标 (平均中心化): 0.1641
亮点:
PIQA 0.706 (centered: 0.412) — 良好的常识推理
COPA 0.610 (centered: 0.220) — 因果推理
ARC Easy 0.562 (centered: 0.416) — 科学问答
Winograd 0.568 (centered: 0.136) — 指代消解
BoolQ 0.518 (centered:-0.268) — 略高于随机
Winogrande 0.530 (centered: 0.060)
HellaSwag (0s) 0.390 (centered: 0.187)
HellaSwag (10s) 0.386 (centered: 0.181)
薄弱项:
BigBench Repeat 0.031 — 接近零
Jeopardy 0.026 — 琐事回忆差
Dyck Languages 0.086 — 结构解析弱
BigBench Operators 0.138
================================================================
样本质量 (temperature=0.8)
================================================================
1. "法国的首都是..."
✅ 正确说出巴黎
❌ 然后产生幻觉: "巴黎是欧洲最大的城市"
❌ 声称它靠近密西西比河!
2. "很久很久以前..."
✅ 连贯的故事开头,角色命名
❌ 对话变得重复且无意义
3. "生命的意义是..."
✅ 生成类似文章的结构
❌ 表面化,重复("爱"重复多次)
4. "def fibonacci(n):"
❌ 完全错误 — 返回 3,然后只有空白
代码生成能力非常弱
5. "import torch"
❌ 乱码 — "num_num_num_num" 循环
代码生成基本不可用
6. "相对论..."
❌ 开头尚可,随后自相矛盾的无意义内容
("光比光速慢")
7. "敏捷的棕色狐狸..."
✅ 不错的百科全书式条目
❌ 循环重复特征
================================================================
总体评估
================================================================
这个 286M 参数、200k 步的模型表现好坏参半:
优势:
- 基础事实回忆有效 (首都、符号)
- 能生成连贯的段落级文本
- 常识推理 (PIQA 0.706) 是其最佳能力
- 语法和句子结构基本正确
劣势:
- 事实不可靠 (随意产生幻觉)
- 代码生成完全崩溃
- 重复循环 (约 50 个 token 后失去连贯性)
- 数学推理几乎不存在
- 模型已过其最佳点 — val_bpb 从 0.78 退化到 0.85,表明过拟合
建议:
- 最佳检查点大约在第 100k-130k 步 (达到最小 bpb=0.78 的位置),而非 200k
- 对于 286M 模型,200k 步 = 65B tokens 远超 Chinchilla 最优值。甜点约为 5.7B tokens (~87k 步)
- 要获得实质性的质量提升,应使用新数据扩大模型规模 (d16/d20),而不是继续训练此 d12
================================================================
关键要点:
- 模型确实知道一些东西,但无法可靠地进行推理
- 它在超过最优点的约 3.5 倍处被训练 (5.95 ratio vs 理想值 20)
- 代码是死角 — 286M 参数根本无法学习编程
- 如果想继续,下一步应该是更大的模型 (d16/d20) + 更多数据,而不是继续训练这个模型