AX 爱鲜报

Train LLM From Scratch 从零训练大语言模型

用纯 PyTorch 从零实现 Transformer,覆盖数据下载、分词、预训练、SFT、奖励模型、DPO/PPO/GRPO 到对话生成的完整 LLM 训练流水线,单卡 GPU 即可跑通百万到十亿参数模型。

爱鲜报评分

0.0

0 人评分

12k

星数

否

中文

Python

主语言

是

活跃

13

贡献者

人工分析

EDITORIAL

推荐理由

这是一个少见的端到端 LLM 训练教学项目,不依赖 transformers、trl、peft 等高层库,所有算法手写实现,非常适合想真正理解大模型训练原理的开发者。从原始文本到对齐推理模型的每一步都有清晰讲解和可运行代码,配合 Streamlit 控制面板和文档站,学习与实操体验都很好。

适用场景

  • 学习 Transformer 与注意力机制的底层实现
  • 在单张消费级 GPU 上训练小型 LLM 练手
  • 理解 SFT、奖励模型、DPO、PPO、GRPO 等对齐算法
  • 高校课程或自学的大模型训练实践项目
  • 作为研究原型快速验证训练流程与超参数

优点

  • 全流程手写实现,不依赖 transformers/trl/peft,原理透明
  • 覆盖从预训练到 RLHF 对齐的完整链路,教学价值高
  • 提供 smoke 配置,CPU 或单卡即可秒级跑通验证
  • 支持 AMP、梯度检查点、梯度累积等显存优化选项
  • 附带 Streamlit 控制面板与 MkDocs 文档站,上手友好

缺点

  • 需要具备 PyTorch、神经网络与面向对象编程基础
  • 训练十亿级模型仍需较大显存 GPU,普通设备受限
  • README 与文档以英文为主,中文资料需自行翻译
  • 偏教学与实验性质,生产级训练性能与工程化有限
上手难度 进阶

项目简介

Train LLM From Scratch 是一个用纯 PyTorch 从零实现 Transformer 的开源项目,基于论文《Attention is All You Need》。它把大语言模型训练的完整流程拆解成可运行的脚本,从下载原始文本、分词、预训练,一直走到 SFT、奖励模型、DPO/PPO/GRPO 对齐,最终生成对话回复。

整个项目不依赖 transformers、trl、peft 等高层封装,所有算法都手写在 PyTorch 中,适合想真正搞懂 LLM 训练细节的开发者。

核心流程

项目把训练路径总结为一条清晰的流水线:

raw text -> tokens -> Transformer -> next-token loss -> base model
base model -> SFT -> Reward Model -> {PPO, DPO} -> GRPO -> evaluation and chat

主要阶段包括:

  • 数据准备:下载公开数据集并完成分词与磁盘存储
  • 模型搭建:从 MLP、单头注意力、多头注意力到完整 Transformer Block
  • 预训练:训练基础模型,支持 AMP、梯度检查点、梯度累积
  • 文本生成:用训练好的模型采样生成文本
  • 后训练对齐:SFT、Bradley-Terry 奖励模型、DPO/ORPO/KTO、PPO、GRPO/RLVR
  • 评估与对话:对模型进行评估并通过聊天界面交互

适用人群

  • 学生:按顺序阅读,每段代码前都有通俗解释,并附预期输出
  • 开发者:命令与文件路径齐全,可直接复制运行并阅读源码
  • 研究者:后训练部分是重点,包含 SFT、奖励模型、PPO with GAE、DPO/ORPO/KTO、GRPO 等从零实现

硬件与配置

项目对显存需求做了说明:免费 Colab 或 Kaggle 的 T4 足以训练 1300 万参数的小模型,但十亿参数模型需要更大显存。常见 GPU 参考:

GPU 显存 可训练规模
NVIDIA A100 40 GB 约 6B~8B
NVIDIA RTX 4090 24 GB 约 4B
NVIDIA RTX 3090 24 GB 约 3.5B~4B
Tesla T4 16 GB 约 1.5B~2B
NVIDIA RTX 4060 8 GB 约 1B

预训练脚本提供 --amp、--grad-checkpointing、--grad-accum 等选项,可显著降低显存占用。

安装与运行

克隆仓库后以可编辑模式安装,即可把 config、src、data_loader、ui 加入导入路径:

pip install -e .

按需安装可选依赖:

pip install -e ".[train]"   # datasets + wandb
pip install -e ".[ui]"      # streamlit + pandas + altair
pip install -e ".[docs]"    # mkdocs
pip install -e ".[all]"     # 全部

项目提供两套配置系统:config/config.py 用于旧的预训练脚本,config/post_training_config.py 与 configs/ 下的 JSON 文件驱动其余阶段,命令行也可覆盖字段,例如 --lr 2e-5 --batch_size 16。此外 configs/smoke/ 提供每个阶段的极简配置,可在 CPU 或单卡上秒级跑通验证。

项目亮点

  • 全流程手写,原理透明,适合深入理解 Transformer 与对齐算法
  • 覆盖预训练到 RLHF 的完整链路,教学价值高
  • 提供 Streamlit 控制面板与 MkDocs 文档站,交互与查阅方便
  • 支持从小模型到大模型的渐进式实验,硬件门槛可调

评论

登录后才可评论与评分

0 条评论

  • 暂无评论,来写第一条吧。