42 lines
2.8 KiB
Markdown
42 lines
2.8 KiB
Markdown
# Course Labs
|
||
|
||
这个目录放课程配套的最小实验文件。
|
||
|
||
设计原则:
|
||
|
||
- 数据尽量小,优先验证流程,不追求模型效果。
|
||
- 脚本默认不下载数据、不启动长训练。
|
||
- 实验输出尽量打印关键 shape、tokens、labels、loss。
|
||
|
||
当前文件:
|
||
|
||
- `check_minimind_import.py`:确认核心依赖和 MiniMind 模型实例化。
|
||
- `check_project_readiness.py`:检查当前环境、数据、权重和可选依赖是否齐备。
|
||
- `compare_pretrain_sft.py`:对比 tiny pretrain 与 tiny SFT 的 input_ids / labels / loss 区域。
|
||
- `inspect_sft_dataset.py`:打印 tiny SFT 样本的 prompt、input_ids、labels 和 assistant 训练区域。
|
||
- `inspect_model_config_params.py`:实例化不同 MiniMindConfig,打印模型 shape、参数量和模块分解。
|
||
- `inspect_tokenizer.py`:观察 tokenizer 的特殊 token、encode/decode、chat template 输出。
|
||
- `run_minimind3_once.py`:使用下载好的 `minimind-3` transformers 模型跑一次真实推理。
|
||
- `trace_attention_shapes.py`:追踪 Attention 的 Q/K/V projection、head reshape、causal mask 和输出投影。
|
||
- `trace_block_shapes.py`:手动追踪 embedding、RMSNorm、残差、block 和 lm_head 的 shape 流。
|
||
- `trace_pretrain_step.py`:在 CPU 上跑一个 tiny pretrain step,打印 config、batch、logits、loss、梯度和参数更新。
|
||
- `trace_cli_inference.py`:用随机 tiny 模型追踪 CLI 推理中的 prompt、token、logits、generate。
|
||
- `trace_loss_shift.py`:手动复现 causal LM 的 logits/labels shift 和 `ignore_index=-100` loss。
|
||
- `trace_rope_kv_cache.py`:追踪 RoPE 的 cos/sin shape、KV cache 增长,以及 cache/no-cache 生成一致性。
|
||
- `trace_distillation_loss.py`:用 tiny student/teacher 追踪 CE loss、KL 蒸馏 loss 和 alpha 混合总 loss。
|
||
- `trace_dpo_dataset_reference.py`:追踪 DPO chosen/rejected 数据、x/y/mask、policy/ref logprob。
|
||
- `trace_dpo_loss.py`:从 token logprob 手算 sequence logprob、DPO logratio 和 DPO loss。
|
||
- `trace_ppo_batch_flow.py`:用 tiny synthetic rollout 追踪 PPO old/new logprob、GAE、clip policy loss 和 value loss。
|
||
- `trace_grpo_cispo_loss.py`:用 synthetic group rewards 对比 GRPO 与 CISPO 的 advantage、KL 和 loss。
|
||
- `trace_reward_logprob_kl.py`:用固定张量复盘 reward、old/current/ref logprob、ratio、KL penalty 和 DPO reference logratio。
|
||
- `trace_deploy_surfaces.py`:检查 transformers 模型目录、chat template 渲染,以及 API 侧 `reasoning_content` / `tool_calls` 解析。
|
||
- `tiny_pretrain.jsonl`:极小预训练样本。
|
||
- `tiny_sft.jsonl`:极小 SFT 对话样本。
|
||
- `tiny_dpo.jsonl`:极小 DPO 偏好样本。
|
||
|
||
后续课程会继续加入:
|
||
|
||
- tokenizer 调试脚本。
|
||
- tiny pretrain / SFT 训练命令说明。
|
||
- LoRA 参数冻结检查脚本。
|