Skip to content

shenshouer/LLMs-from-scratch

 
 

Repository files navigation

构建一个大型语言模型(从零开始)

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




在这本书中,你将学习到如何从零开始构建一个大型语言模型(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编辑器,MarkText是一个不错的免费选择。

你或者也可以在浏览器中通过访问https://github.com/rasbt/LLMs-from-scratch来查看本仓库的其他文件,这些文件都自动渲染为Markdown格式。



[!Note]

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


Code tests (Linux) Code tests (Windows) Code tests (macOS)


章节标题 主要代码 (快速访问) 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文档以获取更多的推荐。)

 

附属资料

几个文件夹包含了额外的材料,供感兴趣的读者参考。


 

本仓库的问题、反馈和贡献

我欢迎所有类型的反馈,最好通过讨论论坛进行分享。同样的,如果您有任何疑问或只是想和其他人分享想法,请不要犹豫发布在论坛上。

如果您发现任何问题或错误,请不要犹豫发布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}
}

About

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Jupyter Notebook 82.1%
  • Python 17.9%