rasbt/LLMs-from-scratch · 上手攻略

  • 仓库:rasbt/LLMs-from-scratch
  • 链接:https://github.com/rasbt/LLMs-from-scratch
  • 分类:ai
  • 作者:Jay
  • 更新:2026-07-10

这是什么

rasbt/LLMs-from-scratch 是 Sebastian Raschka 的著作《Build a Large Language Model (From Scratch)》(Manning 出版,ISBN 9781633437166)的官方配套代码库。该仓库从零实现了一个类 GPT 的 LLM,涵盖数据预处理、注意力机制、模型架构、预训练、精调(SFT)、RLHF 类指令微调(DPO)等完整流程。代码以 Jupyter Notebook 为主,配以独立的 .py 摘要脚本,读者可以一步步跟随章节目录从底层理解 LLM 工作原理。Stars 98k+,是 AI 学习领域最受欢迎的仓库之一。


解决什么问题

大多数 LLM 教程依赖 transformers 等高层库,隐藏了大量细节。这个仓库让你真正从零理解 LLM:数据怎么分词、注意力机制怎么写、GPT 架构每一步的实现、预训练循环怎么跑、微调怎么做。你不是在调用 API,而是在亲手实现一个能跑的小型 ChatGPT。


快速安装

环境要求

  • Python ≥ 3.10(推荐 3.11+)
  • PyTorch ≥ 2.2.2
  • 推荐有 NVIDIA GPU(CUDA)以加速训练;macOS Apple Silicon 用户可利用 MPS 后端(注:代码默认未自动选 MPS,需手动指定)
  • 推荐 16GB+ RAM

克隆仓库

git clone --depth 1 https://github.com/rasbt/LLMs-from-scratch.git
cd LLMs-from-scratch

安装依赖

pip install -r requirements.txt

Colab 用户(在笔记本顶层单元格运行): bash !pip install uv && uv pip install --system -r https://raw.githubusercontent.com/rasbt/LLMs-from-scratch/refs/heads/main/requirements.txt

可选:安装 bonus 额外包

uv pip install --group bonus

核心用法

章节导览

章节 内容 关键文件
Ch 2 文本数据处理(分词、数据加载) ch02/01_main-chapter-code/ch02.ipynb
Ch 3 注意力机制实现 ch03/01_main-chapter-code/ch03.ipynb
Ch 4 GPT 模型完整实现 ch04/01_main-chapter-code/ch04.ipynb
Ch 5 预训练(自回归语言建模) ch05/01_main-chapter-code/ch05.ipynb
Ch 6 文本分类微调(SFT) ch06/01_main-chapter-code/ch06.ipynb
Ch 7 指令微调(与 Ollama 集成) ch07/01_main-chapter-code/ch07.ipynb
App D 训练技巧(Bells & Whistles) appendix-D/
App E LoRA 高效微调 appendix-E/

快速跑一个预训练脚本

# 在 ch05 目录
cd ch05/01_main-chapter-code
python gpt_train.py

生成文本

python gpt_generate.py

精调为分类器

cd ch06/01_main-chapter-code
python gpt_class_finetune.py

指令微调 + Ollama 本地评估

cd ch07/01_main-chapter-code
# 需要先安装 Ollama:https://ollama.com
python ollama_evaluate.py

Apple Silicon MPS 支持(需手动开启)

⚠️ 代码默认回退到 CPU,troubleshooting.md 指出 MPS 支持为有意省略。如需在 M 系列 Mac 上用 MPS,需要在设备判断处手动加入 mps 分支。参考:PyTorch MPS 文档


典型适用场景

  1. 系统学习 LLM 原理:通过完整章节笔记和代码,理解从 Tokenizer 到 Attention 到预训练的每一步
  2. 教学或写书:Sebastian Raschka 本人出书配套,可作为课程材料
  3. 快速原型实验:在小型数据集上验证新想法(如修改位置编码、注意力变体)
  4. 准备面试/考试:覆盖了大多数 LLM 核心面试题的底层原理
  5. 低成本微调实验:Appendix E 包含 LoRA 微调,可在小显存下跑

坑与注意

  1. Notebook 图片加载失败:章节 notebook 依赖外部图床(sebastianraschka.com),网络问题会导致图片不显示。解决方法:直接在该域名下确认图片可访问,或检查本地网络/VPN 配置。
  2. 修改代码与更新冲突:主章节 notebook 与书籍同步,修改前建议 fork;作者推荐复制一份实验:ch02.ipynbch02_experiments.ipynb
  3. MPS 后端未默认启用:Apple Silicon Mac 用户需手动在代码中加入 MPS 设备判断,否则默认跑 CPU
  4. Colab 端侧安装要单独执行requirements.txt 中 tensorflow 依赖较大(如无需 ch05-07 的 TF 代码,可只装 torch 加速)
  5. GPU 显存:预训练(Ch5)和精调(Ch6-7)需要 GPU;没有独显可减少 batch size 或用小数据集

与同类对比

仓库 定位 优势 不足
rasbt/LLMs-from-scratch 从零实现 GPT 类 讲解最系统、与书籍配套、代码最透明 需要 PyTorch 基础,不含预训练权重
karpathy/llama2.c 极简 LLM 推理 代码极少(< 500行)、可读性强 不含训练代码,专注推理
huggingface/transformers 生产级 LLM 库 功能完整、工业级 抽象层多,不适合学习底层原理
OpenChat/s进步 微调实践 专注 RLHF/DPO 微调 需要大显存,不讲原理

如果你想真正理解 LLM 内部机制,这是最好的选择;如果只想快速跑推理,karpathy 的仓库更轻量。


一句话推荐

想从零搞清楚 GPT 是怎么工作的?这是目前最系统、最被社区认可的学习路径——Sebastian Raschka 亲自带你一行一行实现。