minimind/course/labs
Sun Yuhao 53a4a8fc63 Add MiniMind source course materials 2026-06-28 14:00:16 +08:00
..
README.md Add MiniMind source course materials 2026-06-28 14:00:16 +08:00
check_minimind_import.py Add MiniMind source course materials 2026-06-28 14:00:16 +08:00
check_project_readiness.py Add MiniMind source course materials 2026-06-28 14:00:16 +08:00
compare_pretrain_sft.py Add MiniMind source course materials 2026-06-28 14:00:16 +08:00
inspect_model_config_params.py Add MiniMind source course materials 2026-06-28 14:00:16 +08:00
inspect_sft_dataset.py Add MiniMind source course materials 2026-06-28 14:00:16 +08:00
inspect_tokenizer.py Add MiniMind source course materials 2026-06-28 14:00:16 +08:00
run_minimind3_once.py Add MiniMind source course materials 2026-06-28 14:00:16 +08:00
tiny_dpo.jsonl Add MiniMind source course materials 2026-06-28 14:00:16 +08:00
tiny_pretrain.jsonl Add MiniMind source course materials 2026-06-28 14:00:16 +08:00
tiny_sft.jsonl Add MiniMind source course materials 2026-06-28 14:00:16 +08:00
trace_agent_tool_reward.py Add MiniMind source course materials 2026-06-28 14:00:16 +08:00
trace_attention_shapes.py Add MiniMind source course materials 2026-06-28 14:00:16 +08:00
trace_block_shapes.py Add MiniMind source course materials 2026-06-28 14:00:16 +08:00
trace_cli_inference.py Add MiniMind source course materials 2026-06-28 14:00:16 +08:00
trace_deploy_surfaces.py Add MiniMind source course materials 2026-06-28 14:00:16 +08:00
trace_distillation_loss.py Add MiniMind source course materials 2026-06-28 14:00:16 +08:00
trace_dpo_dataset_reference.py Add MiniMind source course materials 2026-06-28 14:00:16 +08:00
trace_dpo_loss.py Add MiniMind source course materials 2026-06-28 14:00:16 +08:00
trace_grpo_cispo_loss.py Add MiniMind source course materials 2026-06-28 14:00:16 +08:00
trace_loss_shift.py Add MiniMind source course materials 2026-06-28 14:00:16 +08:00
trace_ppo_batch_flow.py Add MiniMind source course materials 2026-06-28 14:00:16 +08:00
trace_pretrain_step.py Add MiniMind source course materials 2026-06-28 14:00:16 +08:00
trace_reward_logprob_kl.py Add MiniMind source course materials 2026-06-28 14:00:16 +08:00
trace_rope_kv_cache.py Add MiniMind source course materials 2026-06-28 14:00:16 +08:00

README.md

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