rasbt/LLMs-from-scratch
摘要
该仓库提供开源代码,用于从零开始构建、预训练和微调一个类似GPT的大型语言模型,是Sebastian Raschka同名书籍的官方代码配套。
查看缓存全文
缓存时间: 2026/05/11 12:38
rasbt/LLMs-from-scratch 来源:https://github.com/rasbt/LLMs-from-scratch # 从零构建大语言模型 (Build a Large Language Model (From Scratch))
本仓库包含了开发、预训练和微调类 GPT 大型语言模型(LLM)的代码,是书籍 Build a Large Language Model (From Scratch) (https://amzn.to/4fqvn0D) 的官方代码仓库。
在 Build a Large Language Model (From Scratch) (http://mng.bz/orYv) 中,您将通过从零开始逐步编写代码,由内而外地学习和理解大型语言模型(LLM)的工作原理。在这本书中,我将引导您创建自己的 LLM,并用清晰的文字、图表和示例解释每个阶段。本书所述的用于教育和训练自己小型但功能完整的模型的方法,与创建 ChatGPT 背后的大规模基础模型所采用的方法是一致的。此外,本书还包含了加载更大预训练模型的权重以进行微调的代码。
- 官方源代码仓库链接 (https://github.com/rasbt/LLMs-from-scratch)
- Manning(出版商网站)上的书籍链接 (http://mng.bz/orYv)
- Amazon.com 上的书籍页面链接 (https://www.amazon.com/gp/product/1633437167)
- ISBN 9781633437166
要下载此仓库的副本,请点击 Download ZIP (https://github.com/rasbt/LLMs-from-scratch/archive/refs/heads/main.zip) 按钮,或在您的终端执行以下命令:
bash git clone --depth 1 https://github.com/rasbt/LLMs-from-scratch.git
(如果您从 Manning 网站下载了代码包,请访问 GitHub 上的官方代码仓库 https://github.com/rasbt/LLMs-from-scratch 获取最新更新。)
目录
请注意,此 README.md 文件是一个 Markdown (.md) 文件。如果您已从 Manning 网站下载了此代码包并在本地计算机上查看,建议使用 Markdown 编辑器或预览器以获得正确的查看体验。如果您尚未安装 Markdown 编辑器,Ghostwriter (https://ghostwriter.kde.org) 是一个不错的免费选项。或者,您可以在浏览器中的 https://github.com/rasbt/LLMs-from-scratch 查看此文件和其他文件,GitHub 会自动渲染 Markdown。
提示: 如果您需要关于安装 Python 和 Python 包以及设置代码环境的指导,我建议您阅读位于 setup 目录下的 README.md 文件。
Linux 代码测试 (https://github.com/rasbt/LLMs-from-scratch/actions/workflows/basic-tests-linux-uv.yml) Windows 代码测试 (https://github.com/rasbt/LLMs-from-scratch/actions/workflows/basic-tests-windows-uv-pip.yml) macOS 代码测试 (https://github.com/rasbt/LLMs-from-scratch/actions/workflows/basic-tests-macos-uv.yml)
| 章节标题 | 主要代码(快速访问) | 所有代码 + 补充材料 |
|---|---|---|
| 设置建议 如何最好地阅读本书 (https://sebastianraschka.com/blog/2025/reading-books.html) | - | - |
| 第 1 章:理解大型语言模型 | 无代码 | - |
| 第 2 章:处理文本数据 | - ch02.ipynb - dataloader.ipynb (摘要) - exercise-solutions.ipynb | ./ch02 |
| 第 3 章:编写注意力机制 | - ch03.ipynb - multihead-attention.ipynb (摘要) - exercise-solutions.ipynb | ./ch03 |
| 第 4 章:从零实现 GPT 模型 | - ch04.ipynb - gpt.py (摘要) - exercise-solutions.ipynb | ./ch04 |
| 第 5 章:在无标签数据上预训练 | - ch05.ipynb - gpt_train.py (摘要) - gpt_generate.py (摘要) - exercise-solutions.ipynb | ./ch05 |
| 第 6 章:用于文本分类的微调 | - ch06.ipynb - gpt_class_finetune.py - exercise-solutions.ipynb | ./ch06 |
| 第 7 章:遵循指令的微调 | - ch07.ipynb - gpt_instruction_finetuning.py (摘要) - ollama_evaluate.py (摘要) - exercise-solutions.ipynb | ./ch07 |
| 附录 A:PyTorch 入门 | - code-part1.ipynb - code-part2.ipynb - DDP-script.py - exercise-solutions.ipynb | ./appendix-A |
| 附录 B:参考文献与延伸阅读 | 无代码 | ./appendix-B |
| 附录 C:练习解答 | - 练习解答列表 | ./appendix-C |
| 附录 D:为训练循环添加额外功能 | - appendix-D.ipynb | ./appendix-D |
| 附录 E:使用 LoRA 进行参数高效微调 | - appendix-E.ipynb | ./appendix-E |
下面的心智模型总结了本书涵盖的内容。
先决条件
最重要的先决条件是具备扎实的 Python 编程基础。有了这些知识,您将能够很好地探索 LLM 这个迷人的世界,并理解书中提出的概念和代码示例。如果您有一些深度神经网络的经验,可能会觉得某些概念更熟悉,因为 LLM 是基于这些架构构建的。
本书使用 PyTorch 从头实现代码,不使用任何外部 LLM 库。虽然精通 PyTorch 不是先决条件,但熟悉 PyTorch 基础知识肯定很有用。如果您是 PyTorch 新手,附录 A 提供了 PyTorch 的简介。或者,我的另一本书 PyTorch in One Hour: From Tensors to Training Neural Networks on Multiple GPUs (https://sebastianraschka.com/teaching/pytorch-1h/) 可能对了解基础知识有所帮助。
硬件要求
本书主要章节中的代码旨在合理的时间内在普通笔记本电脑上运行,不需要专用硬件。这种方法确保了广泛的受众都能接触这些材料。此外,如果可用,代码会自动利用 GPU。(请查看设置文档 (https://github.com/rasbt/LLMs-from-scratch/blob/main/setup/README.md) 获取更多建议。)
视频课程
一个时长 17 小时 15 分钟的配套视频课程 (https://www.manning.com/livevideo/master-and-build-large-language-models),其中我逐章讲解书中的代码。课程分为章节和小节,与书籍结构相对应,因此可用作书籍的独立替代方案或互补的跟随编码资源。
配套书籍 / 续作
Build A Reasoning Model (From Scratch) (https://mng.bz/lZ5B) 虽然是一本独立的书籍,但可以被视为 Build A Large Language Model (From Scratch) 的续作。它从一个预训练模型开始,实现了不同的推理方法,包括推理时扩展 (inference-time scaling)、强化学习和蒸馏,以提高模型的推理能力。与 Build A Large Language Model (From Scratch) 类似,Build A Reasoning Model (From Scratch) (https://mng.bz/lZ5B) 采用了动手实践的方式从头实现这些方法。
- Amazon 链接 (待定)
- Manning 链接 (https://mng.bz/lZ5B)
- GitHub 仓库 (https://github.com/rasbt/reasoning-from-scratch)
练习
书的每一章都包含若干练习。解答总结在附录 C 中,相应的代码笔记本可在本仓库的主要章节文件夹中找到(例如,./ch02/01_main-chapter-code/exercise-solutions.ipynb)。除了代码练习外,您还可以从 Manning 网站免费下载名为 Test Yourself On Build a Large Language Model (From Scratch) (https://www.manning.com/books/test-yourself-on-build-a-large-language-model-from-scratch) 的 170 页 PDF。每章包含约 30 个测验问题和解答,帮助您测试理解程度。
补充材料
几个文件夹包含供感兴趣读者选择的可选补充材料:
- 设置
- 第 2 章:处理文本数据
- 第 3 章:编写注意力机制
- 第 4 章:从零实现 GPT 模型
- 第 5 章:在无标签数据上预训练
- 替代权重加载方法
- 在 Project Gutenberg 数据集上预训练 GPT
- 为训练循环添加额外功能
- 优化预训练的超参数
- 构建用户界面以与预训练 LLM 交互
- 将 GPT 转换为 Llama
- 内存高效的模型权重加载
- 通过新 Token 扩展 Tiktoken BPE 分词器
- 用于更快 LLM 训练的 PyTorch 性能技巧
- LLM 架构
- 从头实现 Llama 3.2
- 从头实现 Qwen3 Dense 和专家混合 (MoE)
- 从头实现 Gemma 3
- 从头实现 Olmo 3
- 从头实现 Tiny Aya
- 从头实现 Qwen3.5
- 从头实现 Gemma 4 E2B 和 E4B
- 第 5 章与其他 LLM 作为直接替换(例如 Llama 3, Qwen 3)
- 第 6 章:用于分类的微调
- 第 7 章:遵循指令的微调
来自 Reasoning From Scratch (https://github.com/rasbt/reasoning-from-scratch) 仓库的更多补充材料:
- Qwen3 (从头实现) 基础
- Qwen3 源码导览 (https://github.com/rasbt/reasoning-from-scratch/blob/main/chC/01_main-chapter-code/chC_main.ipynb)
- 优化版 Qwen3 (https://github.com/rasbt/reasoning-from-scratch/tree/main/ch02/03_optimized-LLM)
- 评估
- 基于验证器的评估 (MATH-500) (https://github.com/rasbt/reasoning-from-scratch/tree/main/ch03)
- 多项选择题评估 (MMLU) (https://github.com/rasbt/reasoning-from-scratch/blob/main/chF/02_mmlu)
- LLM 排行榜评估 (https://github.com/rasbt/reasoning-from-scratch/blob/main/chF/03_leaderboards)
- LLM 作为裁判的评估 (https://github.com/rasbt/reasoning-from-scratch/blob/main/chF/04_llm-judge)
- 推理扩展
- 自一致性 (Self-Consistency) (https://github.com/rasbt/reasoning-from-scratch/blob/main/ch04/01_main-chapter-code/ch04_main.ipynb)
- 自修正 (Self-Refinement) (https://github.com/rasbt/reasoning-from-scratch/blob/main/ch05/01_main-chapter-code/ch05_main.ipynb)
- 强化学习 (RL)
- 从头实现 RLVR 配合 GRPO (https://github.com/rasbt/reasoning-from-scratch/blob/main/ch06/01_main-chapter-code/ch06_main.ipynb)
问题、反馈与向本仓库贡献
欢迎任何形式的反馈,最好通过 Manning 论坛 (https://livebook.manning.com/forum?product=raschka&page=1) 或 GitHub Discussions (https://github.com/rasbt/LLMs-from-scratch/discussions) 分享。同样,如果您有任何问题或只是想与他人交流想法,请不要犹豫也在论坛发帖。
请注意,由于本仓库包含与印刷书籍对应的代码,目前我无法接受会扩展主要章节代码内容的贡献,因为这会导致与实体书内容产生偏离。保持一致有助于确保每个人的使用体验顺畅。
引用
如果您发现本书或代码对您的研究有用,请考虑引用它。
芝加哥风格引用:
Raschka, Sebastian. Build A Large Language Model (From Scratch). Manning, 2024. ISBN: 978-1633437166.
BibTeX 条目:
@book{build-llms-from-scratch-book, author = {Sebastian Raschka}, title = {Build A Large Language Model (From Scratch)}, publisher = {Manning}, year = {2024}, isbn = {978-1633437166}, url = {https://www.manning.com/books/build-a-large-language-model-from-scratch}, github = {https://github.com/rasbt/LLMs-from-scratch} }
相似文章
@Xx15573208: 看了很多 Transformer 的文章,能听懂原理,但真正坐下来写代码,完全无从下手。 LLMs-from-scratch 专门解决这个问题:配套《Build a Large Language Model》一书,带你用 PyTorch …
LLMs-from-scratch 是一个 GitHub 仓库,配套《Build a Large Language Model》一书,提供从零用 PyTorch 实现 GPT 的完整代码,涵盖预训练、微调、RLHF 等全流程,已获 93K+ stars,适合想深入理解大模型原理的开发者。
FareedKhan-dev/train-llm-from-scratch
一个GitHub仓库,提供使用PyTorch从头训练大型语言模型的代码,基于Attention Is All You You论文,支持在单个GPU上训练十亿参数模型。
@_rohit_tiwari_: 这本115页的书揭示了LLM微调的秘密。https://drive.google.com/file/d/1cS5sWZw9XUDRI4uRh02-28Xq4-P…
一本全面介绍大语言模型微调的115页指南,涵盖理论与实践。
@techNmak: 从零构建LLMs 发现来自Vizuara的宝藏,一个43讲的系列课程,真正兑现了承诺:构建…
Vizuara的43讲系列课程教你如何从零构建LLMs,涵盖Transformer架构、GPT内部原理、分词(BPE)和注意力机制,并提供完整的Python实现。
@heygurisingh: 过去训练参数量达数十亿的LLM需要花费1000万美元以上。有人开源了一个仓库,现在可以在单张GPU上完成。
一个名为train-llm-from-scratch的开源仓库使得在单张GPU上训练十亿级参数的LLM成为可能,它提供了一个从原始文本到推理的可配置流水线,包括数据集流式加载和检查点保存,采用MIT许可证。