仅需Python基础,从0构建大语言模型;从0逐步构建GLM4\Llama3\RWKV6, 深入理解大模型原理。
Ethan-Chen-plus 65cc17a68c Update README.md | 2 月之前 | |
---|---|---|
Book | 2 月之前 | |
Codes | 2 月之前 | |
Model_Architecture_Discussions | 2 月之前 | |
Translated_Book | 2 月之前 | |
images | 7 月之前 | |
.gitignore | 5 月之前 | |
LICENSE.txt | 7 月之前 | |
README.md | 2 月之前 |
如果你想从0手写代码,构建大语言模型,本项目很适合你。 本项目 "LLMs From Scratch" 是由 Datawhale 提供的一个从头开始构建类似 ChatGPT 大型语言模型(LLM)的实践教程。 我们旨在通过详细的指导、代码示例和深度学习资源,帮助开发者和研究者掌握创建大语言模型和大语言模型架构的核心技术。 本项目包括了从0逐步构建GLM4\Llama3\RWKV6的教程,从0构建大模型,一起深入理解大模型原理。
在基础知识部分,我们基于"rasbt/LLMs-from-scratch"提供了一个如何从头开始实现类似ChatGPT的大语言模型(LLM)的详细教程,特别感谢@rasbt。
如果你想快速入门,请参考Codes路径下的notebook,简洁的代码可以帮助你快速入门。
如果你想详细学习,请参考Translated_Book路径下的notebook,提供了更为详细的相关知识。
👨💻 代码实现: 该项目包含了创建GPT-like大语言模型的全部代码,涵盖了编码、预训练和微调过程。
📖 逐步学习: 教程通过清晰的文本、图表和示例,分步骤教授如何创建自己的LLM。
💡 教育目的: 该方法主要用于教育,帮助学习者训练和开发小型但功能性的模型,这与创建像ChatGPT这样的大型基础模型的方法相似。
🔧 简洁易懂的代码: 利用简洁且可运行的notebook代码,即使只有PyTorch基础,也能完成大模型的构建。
🤔 深入理解模型原理: 通过本教程,读者可以深入理解大型语言模型的工作原理。
📖 详细章节安排如下:
章节标题 | 主要代码 | 所有代码和补充 |
---|---|---|
第1章: 理解大型语言模型 | 没有代码 | 没有代码 |
第2章: 处理文本数据 | - ch02.ipynb - dataloader.ipynb - exercise-solutions.ipynb |
./Codes/ch02 |
第3章: 编写注意力机制 | - ch03.ipynb - multihead-attention.ipynb - exercise-solutions.ipynb |
./Codes/ch03 |
第4章: 从零开始实现GPT模型 | - ch04.ipynb - gpt.py - exercise-solutions.ipynb |
./Codes/ch04 |
第5章: 使用未标记数据进行预训练 | - ch05.ipynb - train.py - generate.py - exercise-solutions.ipynb |
./Codes/ch05 |
第6章: 用于文本分类的微调 | 即将发布 | 即将发布 |
第7章: 使用人类反馈进行微调 | 即将发布 | 即将发布 |
第8章: 在实践中使用大型语言模型 | 即将发布 | 即将发布 |
附录A: PyTorch简介 | - code-part1.ipynb - code-part2.ipynb - DDP-script.py - exercise-solutions.ipynb |
appendix-A |
附录B: 参考文献和进一步的阅读材料 | 没有代码 | - |
附录C: 练习 | 没有代码 | - |
附录D: 为训练过程添加额外的功能和特性 | - appendix-D.ipynb | appendix-D |
./Model_Architecture_Discussions
目录。模型类型 | Notebook 笔记本 | 贡献者 |
---|---|---|
ChatGLM3 | chatglm3.ipynb | @Tangent-90C |
Llama3 | llama3.ipynb | @A10-research |
RWKV V2 | rwkv-v2.ipynb | @Ethan-Chen-plus |
RWKV V3 | rwkv-v3.ipynb | @Ethan-Chen-plus |
RWKV V4 | rwkv-v4.ipynb | @Ethan-Chen-plus |
RWKV V5 | rwkv-v5.ipynb | @Ethan-Chen-plus |
RWKV V6 | rwkv-v6.ipynb | @Ethan-Chen-plus |
ChatGLM4 | chatglm4.ipynb | @Ethan-Chen-plus |
MiniCPM | minicpm.ipynb | @0-yy-0 |
注:规划未来任务,并通过 Issue 形式对外发布。
项目亮点
如果你对 Datawhale 很感兴趣并想要发起一个新的项目,欢迎查看 Datawhale 贡献指南。
希望这个项目能够帮助你更好地理解和构建大型语言模型! 🌐
姓名 | 职责 | 简介 | GitHub |
---|---|---|---|
陈可为 | 项目负责人 | 华中科技大学 | @Ethan-Chen-plus |
王训志 | 第2章贡献者 | 南开大学 | @aJupyter |
汪健麟 | 第2章贡献者 | ||
Aria | 第2章贡献者 | @ariafyy | |
汪健麟 | 第2章贡献者 | ||
张友东 | 第3章贡献者 | ||
邹雨衡 | 第3章贡献者 | ||
曹 妍 | 第3章贡献者 | @SamanthaTso | |
陈嘉诺 | 第4章贡献者 | 广州大学 | @Tangent-90C |
高立业 | 第4章贡献者 | @0-yy-0 | |
蒋文力 | 第4章贡献者 | @morcake | |
丁悦 | 第5章贡献者 | 哈尔滨工业大学(威海) | @dingyue772 |
周景林 | 附录贡献者 | @Beyondzjl | |
陈可为 | 附录贡献者 | @Ethan-Chen-plus |
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。
注:默认使用CC 4.0协议,也可根据自身项目情况选用其他协议