OA0
OA0 是一个探索 AI 的社区
现在注册
已注册用户请  登录
OA0  ›  代码  ›  BishengJDK Minimind? no

BishengJDK Minimind? no

 
  warp ·  2026-09-22 11:00:32 · 26 次点击  · 0 条评论  

从零构建大语言模型(Build a Large Language Model (From Scratch))

本仓库包含了开发、预训练和微调类 GPT 大语言模型(LLM)的代码,是《从零构建大语言模型》一书的官方代码仓库。





在《从零构建大语言模型》一书中,你将通过从零开始、逐步编写代码的方式,深入理解大语言模型(LLM)的内部工作原理。在本书中,我将引导你创建自己的 LLM,并通过清晰的文字、图表和示例解释每一个阶段。

本书所述的用于训练和开发自己的小型但功能完整的模型(用于教学目的)的方法,与创建 ChatGPT 等大规模基础模型所采用的方法一致。此外,本书还包含加载更大规模预训练模型权重进行微调的代码。




如需下载本仓库的副本,请点击 Download ZIP 按钮,或在终端中执行以下命令:

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://github.com/rasbt/LLMs-from-scratch 查看本文件及其他文件,GitHub 会自动渲染 Markdown。




提示:
如果你需要关于安装 Python 和 Python 包以及设置代码环境的指导,建议阅读 setup 目录下的 README.md 文件。




Code tests Linux
Code tests Windows
Code tests macOS

章节标题 主要代码(快速访问) 全部代码 + 补充材料
环境设置建议
如何最佳阅读本书
- -
第 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 一小时入门:从张量到在多 GPU 上训练神经网络》 可能对学习基础知识有所帮助。



 

硬件要求

本书主要章节的代码设计为可在普通笔记本电脑上以合理的时间范围内运行,不需要专门的硬件。这种方式确保更广泛的读者群体能够参与学习。此外,如果 GPU 可用,代码会自动利用 GPU。(更多建议请参阅 setup 文档。)

 

视频课程

一个时长 17 小时 15 分钟的配套视频课程,我在其中逐章编写书中的代码。课程按章节和节组织,与书籍结构一致,可作为书籍的独立替代方案或配套跟练资源。

 

配套书籍 / 续作

《从零构建推理模型》 虽然是独立的一本书,但可以视为《从零构建大语言模型》的续作。

该书从一个预训练模型出发,实现不同的推理方法,包括推理时扩展、强化学习和蒸馏,以提升模型的推理能力。

与《从零构建大语言模型》类似,《从零构建推理模型》 采用动手实践的方式从头实现这些方法。


 

习题

本书每一章都包含若干习题。解答汇总在附录 C 中,相应的代码 notebook 可在本仓库各主要章节文件夹中找到(例如 ./ch02/01_main-chapter-code/exercise-solutions.ipynb)。

除了代码习题外,你还可以从 Manning 网站免费下载一份 170 页的 PDF,标题为 《自测:从零构建大语言模型》。其中每章包含约 30 道测验题及解答,帮助你检验理解程度。

 

附加材料

若干文件夹包含为感兴趣的读者准备的可选附加材料:
- 环境设置
- Python 设置技巧
- 安装本书使用的 Python 包和库
- Docker 环境设置指南

来自 Reasoning From Scratch 仓库的更多附加材料:



 

问题、反馈与贡献

我欢迎各种形式的反馈,最好通过 Manning 论坛 或 GitHub 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}
}
26 次点击  ∙  0 人收藏  
登录后收藏  
0 条回复
关于 ·  帮助 ·  PING ·  隐私 ·  条款   
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
耗时 38 ms
Developed with Cursor