Skip to content

Weihong-Liu/llms-from-scratch-cn

 
 

Repository files navigation

动手实现LLM中文版

LLMs From Scratch: Hands-on Building Your Own Large Language Models

GitHub stars GitHub forks GitHub issues Code License

📘 项目介绍: "rasbt/LLMs-from-scratch"是一个GitHub项目,提供了一个如何从头开始实现类似ChatGPT的大语言模型(LLM)的详细教程。

👨‍💻 代码实现: 该项目包含了创建GPT-like大语言模型的全部代码,涵盖了编码、预训练和微调过程。

📚 官方教程书籍: 这是《Build a Large Language Model (From Scratch)》书籍的官方代码库。书中深入解析了LLM的内部工作原理,并提供了逐步的指导。

📖 逐步学习: 教程通过清晰的文本、图表和示例,分步骤教授如何创建自己的LLM。

💡 教育目的: 该方法主要用于教育,帮助学习者训练和开发小型但功能性的模型,这与创建像ChatGPT这样的大型基础模型的方法相似。

🔧 简洁易懂的代码: 利用简洁且可运行的notebook代码,即使只有PyTorch基础,也能完成大模型的构建。

🤔 深入理解模型原理: 通过本教程,读者可以深入理解大型语言模型的工作原理。

🌏 适合国内开发者: 翻译后的版本可以服务于中国国内的开发者,使其受益。

章节标题 主要代码(快速访问) 所有代码 + 补充
第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
- train.py (摘要)
- generate.py (摘要)
- exercise-solutions.ipynb
./ch05
第6章: 用于文本分类的微调 2024年第2季度 ...
第7章: 使用人类反馈进行微调 2024年第2季度 ...
第8章: 在实践中使用大型语言模型 2024年第2/3季度 ...
附录A: PyTorch简介* - code-part1.ipynb
- code-part2.ipynb
- DDP-script.py
- exercise-solutions.ipynb
./appendix-A
Appendix B: 参考文献和进一步的阅读材料 没有代码 -
Appendix C: 练习 没有代码 -
Appendix D: 为训练过程添加额外的功能和特性 - appendix-D.ipynb ./appendix-D

(* 如果您需要关于安装Python和Python包的更多指导,请参阅附录1附录2文件夹。)



(这是一个总结了本书内容的思维导图。)

  • 项目受众

    • 技术背景:该项目适合有一定编程基础的人员,特别是对大型语言模型(LLM)感兴趣的开发者和研究者。
    • 学习目标:适合那些希望深入了解LLM工作原理,并愿意投入时间从零开始构建和训练自己的LLM的学习者。
    • 应用领域:适用于对自然语言处理、人工智能领域感兴趣的开发者,以及希望在教育或研究环境中应用LLM的人员。
  • 项目亮点

    • 系统化学习:该项目提供了一个系统化的学习路径,从理论基础到实际编码,帮助学习者全面理解LLM。
    • 实践导向:与仅仅介绍理论或API使用不同,该项目强调实践,让学习者通过实际操作来掌握LLM的开发和训练。
    • 深入浅出:该项目以清晰的语言、图表和示例来解释复杂的概念,使得非专业背景的学习者也能较好地理解。

Roadmap

注:说明当前项目的规划,并将每个任务通过 Issue 形式进行对外进行发布。

参与贡献

  • 如果你想参与到项目中来欢迎查看项目的 Issue 查看没有被分配的任务。
  • 如果你发现了一些问题,欢迎在 Issue 中进行反馈🐛。
  • 如果你对本项目感兴趣想要参与进来可以通过 Discussion 进行交流💬。

如果你对 Datawhale 很感兴趣并想要发起一个新的项目,欢迎查看 Datawhale 贡献指南

贡献者名单

姓名 职责 简介 GitHub
陈可为 项目负责人 华中科技大学 @Ethan-Chen-plus
王训志 第2章贡献者 南开大学 @aJupyter
汪健麟 第2章贡献者
Aria 第2章贡献者 @ariafyy
汪健麟 第2章贡献者
张友东 第3章贡献者
邹雨衡 第3章贡献者
陈嘉诺 第4章贡献者 广州大学 @Tangent-90C
高立业 第4章贡献者
蒋文力 第4章贡献者 @morcake
丁悦 第5章贡献者 哈尔滨工业大学(威海) @dingyue772
周景林 附录贡献者 @Beyondzjl
陈可为 附录贡献者 @Ethan-Chen-plus

关注我们

扫描下方二维码关注公众号:Datawhale

LICENSE

知识共享许可协议
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。

注:默认使用CC 4.0协议,也可根据自身项目情况选用其他协议

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Jupyter Notebook 87.9%
  • Python 12.1%