427 字
2 分钟
MiniMind 学习成果总览:从源码阅读到 Pre-training、SFT 与 DPO
材料链接/位置说明
项目源码与个人 forkgithub.com/biscuit0613/minimind源码、训练脚本和学习型注释版本
模型前向传播笔记从 Token IDs 到训练 Loss逐段追踪模型主干和语言模型损失
Attention 笔记Attention 的完整张量流逐段解释 Q/K/V、RoPE、GQA、KV Cache
训练实践笔记从预训练到偏好对齐记录环境、参数、日志、权重和问题
LoRA 实践笔记LoRA 微调与结果分析记录数据、配置和能力退化现象
训练权重个人 Hugging Face 链接本人训练的 SFT 与 LoRA 权重

学习内容#

本项目围绕一个小型 Decoder-only 语言模型,完成了从源码阅读到训练实践的学习闭环:

  • 模型结构:配置、Embedding、Decoder Block、Attention、RoPE、GQA、KV Cache 和 LM Head;
  • 训练流程:Pre-training、SFT、DPO,以及数据处理和 loss mask;
  • 工程实现:混合精度、梯度累积、梯度裁剪、checkpoint、日志和模型加载。

注释代码#

个人 fork 中的 *_annotated.py 是关键代码的学习型注释版本,主要补充输入输出形状、对应的数学操作,以及修改代码可能造成的训练行为变化。它们用于展示源码理解,不替代项目原始实现。

实践摘要#

我在 A100-80GB 环境下完成了 64M 配置的 Pre-training、SFT、DPO 和 LoRA 实验,并保存了各阶段权重。三阶段训练参数和日志见训练实践笔记,LoRA 配置和结果对比见LoRA 实践笔记

本次实验主要用于验证训练链路和理解代码机制。受数据规模、训练步数和评测设置限制,loss 下降不能直接等同于模型能力提升。

MiniMind 学习成果总览:从源码阅读到 Pre-training、SFT 与 DPO
https://biscuit0613.github.io/posts/minimind/00-learning-summary/
作者
Biscuit
发布于
2026-08-13
许可协议
CC BY-NC-SA 4.0
MiniMind 训练实战 (四)LoRA 微调与推理部署
MiniMind 训练实战:从预训练到偏好对齐的全流程记录