2.8 KiB
2.8 KiB
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-3transformers 模型跑一次真实推理。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=-100loss。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 参数冻结检查脚本。