NanoChat基础训练报告 | AI生成和翻译

Home 2026.06

以下是综合训练摘要:

===============================================================
            NANOCHAT 基础训练摘要
===============================================================

模型架构 — GPT-2 风格,2.86 亿参数
  层数:          12
  注意力头数:    6(GQA,n_kv_head=6)
  嵌入维度:     768,注意力头维度:128
  词表大小:     32,768
  上下文长度:   2,048 个 token
  总参数量:     286.3M(非嵌入参数 261.1M)
  特点:         RoPE、QK 归一化、ReLU² MLP、无偏置项、
                 非共享嵌入/语言模型头、
                 奇数层(1,3,5,7,9,11)的值嵌入及学习门控

训练调度
  阶段 1(步骤 0-10k):    fineweb-edu-d12,从头开始
  阶段 2(步骤 10k-87k):  rtx4070-d12-chinchilla,恢复训练
  总步数:        87,000
  批量大小:     65,536 token/步(设备批量=8 × 序列长度=2048)
  总 token 数:  约 5.7B
  数据比例:     12(Chinchilla 最优:5.7B / 286M ≈ 20倍)
  GPU:           RTX 4070 12GB,bf16,峰值 9.4 GB 显存

优化器
  类型:         MuonAdamW(自定义)
  矩阵学习率:   0.02,标量学习率:0.5
  嵌入学习率:   0.3,非嵌入学习率:0.008
  权重衰减:     0.28
  预热步数:     40 步
  衰减起始:    训练进度的 65%(约第 56,550 步)
  最终学习率比例:0.05

损失进展
  ┌─────────┬───────────┬────────────┬──────────┬──────────┐
  │  步数   │ 验证 bpb  │ 训练损失   │ 差值     │ 时间     │
  ├─────────┼───────────┼────────────┼──────────┼──────────┤
  │  10,000 │ 0.9349    │ 2.979      │  (基准)  │  3.2h    │
  │  20,000 │ 1.0155*   │ 3.271*     │  尖峰   │  6.5h    │
  │  30,000 │ 1.0019    │ 3.234      │ -0.014   │  9.8h    │
  │  40,000 │ 0.9780    │ 3.136      │ -0.024   │ 13.1h    │
  │  50,000 │ 0.9533    │ 3.042      │ -0.025   │ 16.3h    │
  │  60,000 │ 0.9299    │ 2.954      │ -0.023   │ 19.6h    │
  │  70,000 │ 0.9022    │ 2.885      │ -0.028   │ 22.9h    │
  │  80,000 │ 0.8799    │ 2.850      │ -0.022   │ 26.1h    │
  │  87,000 │ 0.8658    │ 2.748      │ -0.014   │ 28.4h    │
  └─────────┴───────────┴────────────┴──────────┴──────────┘
  * 第 20k 步尖峰:优化器状态恢复 + 配置更改

  阶段 2 净改善:1.0155 → 0.8658 bpb(-14.7%)
  从头到尾:    0.9349 → 0.8658 bpb(-7.4%)

性能表现
  吞吐量:        55,670 token/秒(全程稳定)
  每步时间:      1,177 毫秒/步
  总时间:        1,706 分钟(28.4 小时)
  检查点保存:   9 次(每 10k 步 + 最终)
  模型大小:     约 756 MB 每个检查点
  优化器大小:   约 1.2 GB 每个检查点

关键观察
  1. 损失从未趋于平稳——在最终步骤仍在下降。
     衰减(学习率降低)刚刚开始生效。
     更多步骤可能会带来进一步提升。

  2. 阶段 2 恢复导致临时损失尖峰(0.93→1.02),
     可能源于优化器状态不匹配或数据分布变化。
     约 20k 步后恢复。

  3. 验证 bpb 平滑跟踪——无过拟合。训练损失
     始终高于验证 bpb(平滑估计与点估计的预期差异)。

  4. RTX 4070 表现良好——峰值显存 9.4 GB,利用率 100%,
     温度 66°C,功耗 211W。无内存溢出,无崩溃。

后续步骤
  评估:    python -m scripts.base_eval --device-batch-size=8
  对话:    python -m scripts.chat_cli -p '天空为什么是蓝色的?'
  SFT:     python -m scripts.chat_sft  (微调对话能力)
  RL:      python -m scripts.chat_rl   (RLHF/DPO 对齐)
===============================================================

模型状态极佳——在最终阶段损失仍在下降,从未达到平稳,也未出现过拟合。这个具有值嵌入和 Chinchilla 最优数据比例的 2.86 亿参数模型在一块 RTX 4070 上表现良好。下一步自然而然是运行 base_eval 获取基准得分,然后进行 SFT/RL 以增强对话能力。


Back Donate