1.9 KiB
1.9 KiB
Day 7 Final Exam
A. 闭卷概念题
- 从零训练 MiniMind,按顺序需要哪些阶段?
- Pretrain 和 SFT 的 labels 有什么区别?
- 为什么
ignore_index=-100是训练中的关键设计? - GRPO 为什么不需要 critic?
- 蒸馏中的 CE 和 KL 分别学什么?
- checkpoint 为什么要保存 optimizer?
- 为什么训练 loss 不能替代生成评测?
- Tool call 能力在 MiniMind 中主要从哪里来?
B. 代码定位题
写出以下功能所在文件和函数:
- MiniMind causal LM loss。
- SFT assistant-only labels。
- Pretrain 数据 padding 和 label mask。
- Checkpoint 保存和恢复。
- GRPO reward 计算。
- Rollout engine 抽象。
- 推理时 chat template 构造。
- Tool call 自动测试入口。
C. 实战题
重新从空日志开始,写出你会执行的完整命令:
- 环境检查。
- pretrain。
- resume pretrain。
- SFT。
- eval pretrain。
- eval full_sft。
- eval toolcall。
每条命令后写一句:这一步验证什么。
D. Debug 场景题
给出排查路径:
- SFT loss 正常下降,但模型推理输出乱码。
- 模型只会复述用户问题。
- GRPO reward 上升,但人工看回答变差。
- 训练恢复后 step 对不上。
- Tool call JSON 经常非法。
E. 最终报告题
写一份 2 页以内最终报告,必须包含:
- 训练环境
- 数据文件
- 模型配置
- 训练命令
- loss 记录
- pretrain vs full_sft 对比
- 失败样例
- 你对 GRPO 或蒸馏的理解
- 下一步最值得做的 3 个实验
F. 评分标准
总分 100:
- 20:成功训练并推理
pretrain/full_sft - 20:理解 dataset、template、label mask
- 15:理解模型结构和 causal LM loss
- 15:理解训练工程和 checkpoint
- 15:能做结构化评测和失败分析
- 15:理解至少一个后训练算法
通过线:75。
优秀线:90,且最终报告里有清晰失败分析和下一步实验设计。