从零实现 LLM 训练栈

Y0oshi2 · reddit · 2026-07-13

作者受不了 `transformers`、`trl`、`peft` 这些抽象层的“魔法感”,于是用 **纯 PyTorch 基础算子** 从头搭了一个训练栈,目标是把训练全过程写得清晰可读。 ### 实现内容 - 预训练、SFT(含 prompt masking)、DPO、GRPO/RLVR 全部原生实现 - Decoder-only Transformer:RoPE、RMSNorm、SwiGLU、GQA、KV cache - 自定义 byte-level BPE tokenizer - 数据集使用 memory map,尽量减少内存占用 - 同一套代码可在 CUDA、Apple Silicon(MPS)和 CPU 上运行 ### 可验证性 - 提供了训练 17M 参数模型的配置 - 可在 TinyStories 上本地跑完整流程并较快得到连贯文本生成 - 还附带交互式 CLI,自动拼装并运行训练命令 作者欢迎大家直接审代码、提优化建议,或把它当成理解 GRPO、KV cache 等底层机制的学习资源。

原文链接 →