这个仓库包含了开发、预训练和微调一个类似GPT的大型语言模型的代码,是《从零开始构建大型语言模型》的官方代码仓库。
在这本书中,你将学习到如何从零开始构建一个大型语言模型(LLM),通过逐步编码的方式,从模型的内部构造中理解其工作原理。本书将带领你构建自己的LLM,用清晰的文字、图表和示例来解释每一个阶段。
以教育为目的,本书所描述的训练和开发你自己的小型但功能齐全的模型的方法,与创建支撑大型模型的基础模型ChatGPT所采用的方法类似。此外,本书还包含了加载预训练模型权重进行微调的代码。
- 官方代码仓库:https://github.com/rasbt/LLMs-from-scratch
- 本书在Manning上的链接
- 本书在Amazon上的链接
- ISBN 9781633437166
下载本仓库的压缩包,点击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编辑器,MarkText是一个不错的免费选择。
你或者也可以在浏览器中通过访问https://github.com/rasbt/LLMs-from-scratch来查看本仓库的其他文件,这些文件都自动渲染为Markdown格式。
[!Note]
章节标题 | 主要代码 (快速访问) | All 代码 + 补充 |
---|---|---|
设置建议 | - | - |
Ch 1: 理解大型语言模型 | 无代码 | - |
Ch 2: 使用文本数据 | - ch02.ipynb - dataloader.ipynb (总结) - exercise-solutions.ipynb |
./ch02 |
Ch 3: 编码注意机制 | - ch03.ipynb - multihead-attention.ipynb (总结) - exercise-solutions.ipynb |
./ch03 |
Ch 4: 从0开始实现一个GPT模型 | - ch04.ipynb - gpt.py (总结) - exercise-solutions.ipynb |
./ch04 |
Ch 5: 对未标记数据的预训练 | - ch05.ipynb - gpt_train.py (总结) - gpt_generate.py (总结) - exercise-solutions.ipynb |
./ch05 |
Ch 6: 文本分类的微调 | - ch06.ipynb - gpt_class_finetune.py - exercise-solutions.ipynb |
./ch06 |
Ch 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: 参考和进一步阅读 | 无代码 | - |
附录 C: 练习解答 | No code | - |
附录 D: 为训练循环扩展更多功能 | - appendix-D.ipynb | ./appendix-D |
附录 E: 使用LoRA进行参数高效调优 | - appendix-E.ipynb | ./appendix-E |
下面的思维模型总结了本书中覆盖的内容。
本书主要章节的代码都可以运行在普通的笔记本电脑上,并且不需要特定的硬件支持。这种方法可以让广大的读者参与到本书的学习中来。此外,代码会自动利用可用的GPU资源。(请参阅setup文档以获取更多的推荐。)
几个文件夹包含了额外的材料,供感兴趣的读者参考。
- 设置
- 章节 2:
- 章节 3:
- 章节 4:
- 章节 5:
- 章节 6:
- 章节 7:
我欢迎所有类型的反馈,最好通过讨论论坛进行分享。同样的,如果您有任何疑问或只是想和其他人分享想法,请不要犹豫发布在论坛上。
如果您发现任何问题或错误,请不要犹豫发布Issue。
然而,由于本仓库包含了本书的主要章节的代码,因此目前无法接受扩充主要章节代码内容的贡献,因为这会导致与实体书的偏离。保持一致的风格有助于确保所有读者都能获得愉快的阅读体验。
如果您发现本书或代码对您的研究有用,请考虑引用它。
芝加哥式引用:
拉施卡,瑟斯坦。《从零开始构建大型语言模型》。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}
}