Repolode
FareedKhan-dev

FareedKhan-dev/train-llm-from-scratch

用 PyTorch 从零实现的 Transformer 大模型训练教程与代码库,涵盖预训练、SFT、奖励模型、DPO/PPO/GRPO 与文本生成。

Star
12,328
Fork
1,816
未关闭 Issue
2
最近提交
18天前

这是什么?

该项目用纯 PyTorch 从零实现了一个 Transformer 语言模型,沿用《Attention is All You Need》的设计,完整展示了从原始文本到对话式模型的全过程。其中包括字节级 BPE 分词器、经典的 GPT-2 风格解码器,以及采用 RoPE、RMSNorm、SwiGLU、分组查询注意力和混合专家(MoE)的现代版本,所有组件均手写实现,而非调用 Hugging Face 的训练器。

后训练阶段同样从零实现,包括带有仅对助手回复计算损失掩码的监督微调(SFT)、Bradley-Terry 奖励模型、DPO、ORPO、KTO、结合 GAE 的 PPO,以及 GRPO。每个阶段都配有独立的数据准备脚本和 JSON 配置。小型预设(如 TinyStories 微型模型)可在笔记本 CPU 上几分钟内训练完成,更大的配置则需要 GPU。

核心功能

  • 01在 PyTorch 中从零实现注意力、MLP 和 Transformer 模块。
  • 02仓库内包含字节级 BPE 分词器的实现。
  • 03支持基于对话数据的 SFT,损失仅计算在助手回复上。
  • 04实现了奖励模型训练以及 DPO、ORPO、KTO、PPO 和 GRPO。
  • 05提供可在无 GPU 的笔记本 CPU 上训练的微型预设。

适用场景

  • 逐步学习 Transformer 语言模型及其训练流程的工作原理。
  • 在单张 GPU 或笔记本上预训练小型大语言模型做实验。
  • 在可读性较好的代码中研究 DPO、PPO、GRPO 等后训练方法。
  • 在同一流程下对比经典与现代 Transformer 组件的效果。

快速上手

  1. 1

    克隆仓库

    git clone https://github.com/FareedKhan-dev/train-llm-from-scratch.git
  2. 2

    进入项目目录

    cd train-llm-from-scratch
  3. 3

    以可编辑模式安装项目

    pip install -e .
  4. 4

    准备数据后在笔记本 CPU 上训练一个小模型

    python scripts/train_transformer.py --preset tiny --arch modern

使用前须知

  • 大模型配置需要 GPU,十亿参数模型无法在免费的 T4 上运行。
  • 部分训练阶段依赖需要先下载的公开数据集。

标签

常见问题

train-llm-from-scratch 是什么?
用 PyTorch 从零实现的 Transformer 大模型训练教程与代码库,涵盖预训练、SFT、奖励模型、DPO/PPO/GRPO 与文本生成。 该项目用纯 PyTorch 从零实现了一个 Transformer 语言模型,沿用《Attention is All You Need》的设计,完整展示了从原始文本到对话式模型的全过程。其中包括字节级 BPE 分词器、经典的 GPT-2 风格解码器,以及采用 RoPE、RMSNorm、SwiGLU、分组查询注意力和混合专家(MoE)的现代版本,所有组件均手写实现,而非调用 Hugging Face 的训练器。
train-llm-from-scratch 可以免费使用吗?用的什么许可证?
train-llm-from-scratch 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
train-llm-from-scratch 还在维护吗?
活跃维护中。train-llm-from-scratch 最近一次提交是在 2026年10月2日。
train-llm-from-scratch 适合用来做什么?
逐步学习 Transformer 语言模型及其训练流程的工作原理。 在单张 GPU 或笔记本上预训练小型大语言模型做实验。 在可读性较好的代码中研究 DPO、PPO、GRPO 等后训练方法。 在同一流程下对比经典与现代 Transformer 组件的效果。
train-llm-from-scratch 怎么安装和运行?
克隆仓库: git clone https://github.com/FareedKhan-dev/train-llm-from-scratch.git 进入项目目录: cd train-llm-from-scratch 以可编辑模式安装项目: pip install -e . 准备数据后在笔记本 CPU 上训练一个小模型: python scripts/train_transformer.py --preset tiny --arch modern
在哪里获取 train-llm-from-scratch?
源代码和安装说明在 GitHub 上:https://github.com/FareedKhan-dev/train-llm-from-scratch

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目