层1/T5: 自包含训练脚本 train_sft.sh + train_sft.py;层 1 代码收口

- train_sft.py: FSDP 环境变量前置块(import 前,DDP 下无害);fail-fast 加载
  顺序(数据→tokenizer→模型);首样本自检打印(真 tokenizer 掩码边界肉眼核对);
  remove_unused_columns=False 等非显然约束逐条注释;sanity 模式 = replace 覆盖
- train_sft.sh: 显式 CUDA_VISIBLE_DEVICES 4 卡、PYTHONUNBUFFERED、HF 镜像/缓存
  改道 /data,前置检查清单(含 scp 数据命令)
- 本地验证:fail-fast 到 teacher 缓存缺失处显式报错(941/1000,59 条真实命中
  反向证明 prompt_key 契约端到端成立)
- roadmap 存档点:层 1 代码完成,进入运行阶段

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-18 08:16:24 -04:00
parent 42a4349e69
commit c5a3b7d0bb
3 changed files with 175 additions and 1 deletions
+2 -1
View File
@@ -11,7 +11,8 @@
- **当前层**: 层 1(SFT 基线),待开工
- **层 0**: ✅ 已关账(2026-07-18)。两端 pytest 4/4 全绿;本地 env `ars-opd`torch 2.13 cu1304070Ti 可做小规模 GPU 调试);远程 env `/data/zym/envs/ars-opd`torch 2.10 cu1288 卡可见);gitea 双端打通(SSH 222
- **已完成学习**: 第一章全部精讲(式 1-8、§3.1-3.6、detach 命门专题);第二章已写好待读
- **下一步**: Claude 编写 T1→T3→T4→T2→T5(工作模式已改:Claude 写码、用户精读提问,见 CLAUDE.md URGENT.1);默认参数已通过(teacher=MiniMax-M3 经自建网关 / enable_thinking=False / max_length=4096 / 1k 子集);T1/T3/T4 已完成入库
- **层 1 代码全部完成**T1 configs / T3 data / T4 trainer / T2 teacher / T5 train_sft 脚本,46+ 单测全绿;teacher=MiniMax-M3 经自建网关,2026-07-18 改定)
- **下一步(运行阶段)**: ① 本地跑完 teacher 生成 1kscripts/generate_teacher_completions.py,断点续传)→ ② scp parquet+缓存到远程 data/ → ③ 远程 `bash scripts/train_sft.sh sanity`(看首样本自检与 loss 下降)→ ④ `bash scripts/train_sft.sh` 正式 1 epoch → 关账判据见 docs/02 §5
- **层 1 讨论已完成的**: docs/02 全部难点已精讲(collator 五步流水线与坑二、FSDP 决策与 DDP 触发点、删除/替代清单逐项理由、hash 不稳定演示)
- **未精讲的文档账**: docs/01 的 §3.7(KL 锚三处实现差异)、§3.8(论文外稳定器)、§4(训练步流程走读)
- **未精讲的文档账**: docs/01 的 §3.7(KL 锚三处实现差异)、§3.8(论文外稳定器)、§4(训练步流程走读)