rasbt/LLMs-from-scratch

GitHub Trending (daily) 工具

摘要

该仓库提供开源代码,用于从零开始构建、预训练和微调一个类似GPT的大型语言模型,是Sebastian Raschka同名书籍的官方代码配套。

使用PyTorch从头开始,逐步实现一个类似ChatGPT的LLM。
查看原文
查看缓存全文

缓存时间: 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 个测验问题和解答,帮助您测试理解程度。

补充材料

几个文件夹包含供感兴趣读者选择的可选补充材料:

来自 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 …

X AI KOLs Timeline

LLMs-from-scratch 是一个 GitHub 仓库,配套《Build a Large Language Model》一书,提供从零用 PyTorch 实现 GPT 的完整代码,涵盖预训练、微调、RLHF 等全流程,已获 93K+ stars,适合想深入理解大模型原理的开发者。

FareedKhan-dev/train-llm-from-scratch

GitHub Trending (daily)

一个GitHub仓库,提供使用PyTorch从头训练大型语言模型的代码,基于Attention Is All You You论文,支持在单个GPU上训练十亿参数模型。