rasbt/LLMs-from-scratch

Implement a ChatGPT-like LLM in PyTorch from scratch, step by step

这个项目是什么

本仓库包含 Sebastian Raschka 所著《从头构建大型语言模型》(Manning, 2024, ISBN 978-1633437166)一书的官方源代码。它提供了开发、预训练和微调类似 GPT 的大型语言模型的逐步代码。代码不依赖现有的 LLM 库,而是从零开始构建模型,仅使用 PyTorch 作为深度学习框架。

你将学到什么并构建什么

各章节与书籍对应,带你完成创建一个小型但功能完整的 LLM 的完整过程:

  1. 理解大型语言模型(无代码)
  2. 处理文本数据 – 为训练准备文本(分词和数据加载)
  3. 编码注意力机制(包括多头注意力)
  4. 从零实现 GPT 模型
  5. 在未标记数据上进行预训练 – 在原始文本上训练模型
  6. 微调用于文本分类 – 使模型适应垃圾邮件检测等任务
  7. 微调以遵循指令 – 教模型响应用户提示

附录提供了额外材料:PyTorch 入门、参考阅读、练习解答、训练循环增强以及使用 LoRA 的参数高效微调。

README 指出,这里使用的训练和开发方法反映了 ChatGPT 等大规模基础模型背后的方法,但为教育目的进行了缩减。仓库还包含加载更大预训练模型权重以进行微调的代码。

仓库的组织方式

每个章节都有一个专用文件夹,包含主要章节代码(Jupyter 笔记本)、摘要脚本(例如 gpt.py、gpt_train.py)和练习解答。README 中的“目录”将每个章节映射到其主要笔记本和补充文件。

先决条件

  • 扎实的 Python 基础 – 被列为最重要的先决条件。
  • 熟悉深度神经网络 – 有用,因为 LLM 基于它们构建,但不是严格必需的。
  • PyTorch 基础 – 有用但不是必需的;附录 A 提供了简洁的 PyTorch 介绍。

硬件要求

主要章节中的代码设计为在常规笔记本电脑上合理时间内运行,不需要专用硬件。如果可用,它将自动使用 GPU。

包含的额外内容

  • 每章练习,解答见附录 C。
  • 仓库中的奖励材料,包括可选主题,如从零构建的字节对编码分词器、不同的注意力变体(分组查询注意力、多头潜在注意力等)、专家混合、替代模型架构(Llama 3.2、Qwen3、Gemma 3 等)以及用户界面演示。
  • 配套视频课程 – 一个 17 小时 15 分钟的课程,逐章编码。
  • 续集书籍 – 《从头构建推理模型》,一个独立的后续,从预训练模型开始并实现推理技术(推理时扩展、强化学习、蒸馏)。续集有自己的 GitHub 仓库。
  • 免费测验 PDF – 一本 170 页的自测手册,每章约 30 个测验问题。

设置和说明

README 建议阅读 setup 文件夹以获取安装 Python 和所需包的指导。它还指出,如果你从出版商网站下载代码包而不是 GitHub 仓库,你可能需要查看官方 GitHub 仓库以获取最新更新。

贡献限制

由于本仓库与印刷书籍对应,作者指出他不能接受扩展主要章节代码的贡献,因为那会造成与实体书的偏差。欢迎通过 Manning 论坛和 GitHub Discussions 提供反馈。

引用

本书可按芝加哥风格引用:

Raschka, Sebastian. Build A Large Language Model (From Scratch). Manning, 2024. ISBN: 978-1633437166.

相关

  • 项目
  • 项目
  • 项目
  • 项目