minimind/course/labs/README.md

42 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 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 参数冻结检查脚本。