GEOZ

从零手撸GPT:中文翻译版《LLMs-from-scratch》开源了

2026/7/9
从零手撸GPT:中文翻译版《LLMs-from-scratch》开源了

AIAI Summary (BLUF)

这是一个对GitHub上《LLMs-from-scratch》项目的中文翻译,包含详细的Markdown笔记和Jupyter代码注释。项目旨在帮助中文学习者从零开始构建大语言模型,涵盖Transformer、GPT等核心技术的实现。所有资源免费开源,提供完整的代码和教材链接。

核心洞察

这篇文章实际上是在介绍一个中文社区发起的翻译项目——把Sebastian Raschka那本《Build A Large Language Model (From Scratch)》的代码和笔记全部汉化。有意思的地方在于,国内做LLM教程的大多是训练推理流程的拆解,真正从零手撸GPT每一步、还附带完整Jupyter代码的资源其实不多。这个项目把七章内容和附录都翻完了,代码注释也加得很细,对想搞懂底层原理的中文读者来说,算是省了不少力气。


核心结论

  1. 该项目完整翻译了Sebastian Raschka所著《Build A Large Language Model (From Scratch)》的全部7章内容及附录A-E,并为每章对应的Jupyter代码添加了详细中文注释。
  2. 汉化版仓库地址为 https://github.com/MLNLP-World/LLMs-from-scratch-CN.git,原版官方仓库地址为 https://github.com/rasbt/LLMs-from-scratch.git
  3. 翻译团队由GoatCsu担任主要翻译者,yongheng、WPENGxs、chunlin等人依次担任各章节校对者,项目当前版本为v0.1.0。
  4. 项目覆盖了从零实现GPT模型、文本数据预处理、注意力机制编码、无标注数据预训练、文本分类微调以及指令遵循微调等完整流程。

《从零构建大模型》

version Status-building PRs-Welcome stars FORK Issues

项目动机 / 课程简介 / 课程资源 / 原书Readme / 贡献者


项目动机

原项目地址: 《LLMs-from-scratch》

这个项目把GitHub上的《LLMs-from-scratch》做了中文翻译,包括详细的markdown笔记和对应的jupyter代码。翻译过程中尽量保持原意准确,也对语序和表达做了调整,读起来不会觉得是机器翻译的。需要说清楚的是,原作者才是这个项目的主力,汉化版只是辅助学习的资料,不会改原文内容。

能力有限,翻译里肯定有不到位的地方,欢迎提意见,也请大家多包涵。希望这个翻译能帮到更多中文学习者,给国内社区的LLM学习贡献一点力量。

项目特色:

  • 所有jupyter代码都加了详细中文注释,上手快。
  • 附带了大量补充材料,可以往深了学。

项目用的徽章来自互联网,如果有版权问题请联系我们删除,谢谢。

课程简介

说到大语言模型,很多人觉得这是独立于传统机器学习的东西。其实LLMs就是机器学习的一个分支。深度学习普及之前,机器学习在语音识别、自然语言处理、计算机视觉这些领域能做的事很有限,因为解决真实世界的复杂问题需要太多领域知识。这几年深度学习爆发式增长,彻底改变了局面,LLMs也成了推动AI革命的关键力量。

原项目地址: 《LLMs-from-scratch》 https://github.com/rasbt/LLMs-from-scratch.git

这个项目不光讲LLMs的基础构建,比如Transformer结构、序列建模这些,还深入挖了GPT、BERT这类深度学习模型的底层实现。每一部分都配有完整的代码实现和学习资料,带着你从零开始把LLMs搭出来,彻底搞懂核心技术。

课程资源

这门课还有配套的代码实现。每章都有对应的jupyter记事本,给出了模型的完整python代码。所有资源网上都能免费拿到。

原书Readme

从零构建大模型

这个仓库包含开发、预训练和微调一个类似GPT的LLM的全部代码,来自《从零构建大模型》这本书。书籍链接: 从零构建大模型

封面

在《从零构建大模型》这本书里,你会一步步了解大语言模型从里到外是怎么工作的,亲手写代码,逐渐搭出一个LLM。书里用了清晰的文字、图表和示例,带你走完构建自己LLM的每个阶段。

书中讲的训练和开发自己小型可用模型的方法,是为教学目的设计的,和ChatGPT背后那些大规模基础模型的做法类似。另外,书里还包含了加载更大预训练模型权重来做微调的代码。

  • 官方源代码仓库: 链接
  • 汉化版本仓库: 链接
  • 出版商网站上的书籍: 链接
  • Amazon.com上的书籍页面: 链接
  • ISBN 9781633437166

评价

要下载仓库副本,点 下载ZIP 按钮,或者终端里跑:

git clone --depth 1 https://github.com/rasbt/LLMs-from-scratch.git

要下载汉化版本,点 下载ZIP 按钮,或者终端里跑:

git clone --depth 1 https://github.com/MLNLP-World/LLMs-from-scratch-CN.git

(如果你是从Manning网站下载的代码包,请去官方仓库 https://github.com/rasbt/LLMs-from-scratch 获取最新更新,或者汉化版 https://github.com/MLNLP-World/LLMs-from-scratch-CN.git)

目录

注意,这是一个Markdown文件。如果你是从Manning网站下载的代码包在本地看,建议用Markdown编辑器或者预览器打开。还没装Markdown编辑器的话,MarkText 是个不错的免费选择。

也可以用浏览器访问GitHub上的 原版仓库 或者 汉化版,浏览器会自动渲染Markdown。

章节标题 主要代码(快速访问) 所有代码及补充内容 翻译者 校对者
安装建议 - - GoatCsu yongheng
第1章:理解大型语言模型 无代码 - GoatCsu yongheng
第2章:处理文本数据 - ch02.ipynb - dataloader.ipynb(总结) - exercise-solutions.ipynb ch02 GoatCsu yongheng
第3章:编码注意力机制 - ch03.ipynb - multihead-attention.ipynb(总结) - exercise-solutions.ipynb ch03 GoatCsu yongheng
第4章:从零开始实现 GPT 模型 - ch04.ipynb - gpt.py(总结) - exercise-solutions.ipynb ch04 GoatCsu yongheng
第5章:在无标注数据上进行预训练 - ch05.ipynb - gpt_train.py(总结) - gpt_generate.py(总结) - exercise-solutions.ipynb ch05 GoatCsu WPENGxs
第6章:进行文本分类的微调 - ch06.ipynb - gpt_class_finetune.py - exercise-solutions.ipynb ch06 GoatCsu WPENGxs
第7章:进行遵循指令的微调 - ch07.ipynb - gpt_instruction_finetuning.py(总结) - ollama_evaluate.py(总结) - exercise-solutions.ipynb ch07 GoatCsu WPENGxs
附录 A:PyTorch 简介 - code-part1.ipynb - code-part2.ipynb - DDP-script.py - exercise-solutions.ipynb appendix-A GoatCsu chunlin
附录 B:参考文献与进一步阅读 无代码 -
附录 C:习题解答 无代码 -
附录 D:在训练循环中加入附加功能 - appendix-D.ipynb appendix-D GoatCsu chunlin
附录 E:使用 LoRA 进行参数高效微调 - appendix-E.ipynb appendix-E GoatCsu chunlin

这是本书内容的总结性思维导图。

思维导图

额外材料

章节 附加资料 翻译者 校对者
设置 - Python 设置提示 - 安装本书使用的 Python 包和库 - Docker 环境设置指南 GoatCsu yongheng
第2章:处理文本数据 - 从零开始实现BPE分词器 - 比较不同BPE实现 - 理解嵌入层和线性层的区别 - 用简单数字理解数据加载器 GoatCsu yongheng
第3章:编码注意力机制 - 比较高效的多头注意力实现 - 理解 PyTorch 缓冲区 GoatCsu yongheng
第4章:从零开始实现 GPT 模型 - FLOPS 性能分析 GoatCsu WPENGxs
第5章:在未标注数据上进行预训练 - 用Transformers从Hugging Face加载权重 - 在古腾堡数据集上预训练GPT - 为训练循环加附加功能 - 优化预训练超参数 - 构建与预训练LLM交互的UI - 将GPT转换为Llama - 从零搭建Llama 3.2 - 内存高效加载权重 - 扩展Tiktoken BPE分词器 GoatCsu WPENGxs
第6章:用于分类的微调 - 微调不同层和使用更大模型的实验 - 在IMDB数据集上微调不同模型 - 构建与垃圾邮件分类器交互的UI GoatCsu chunlin
第7章:微调以跟随指令 - 查找近重复项和创建被动语态条目的工具 - 使用OpenAI API和Ollama评估指令响应 - 为指令微调生成数据集 - 改进指令微调数据集 - 用Llama 3.1 70B和Ollama生成偏好数据集 - 用于LLM对齐的DPO - 构建与指令微调GPT模型交互的UI GoatCsu chunlin

硬件要求

本书主要章节的代码设计成能在普通笔记本上跑,不会耗时太久,不需要专门硬件。这样确保大多数人能跟上。如果有GPU,代码会自动用它。(更多建议看 setup 文档。)

问题、反馈和贡献

各种反馈都欢迎,最好通过 Manning 论坛 或者 GitHub 讨论区 分享。有问题或者想讨论想法,随时发帖。

这个仓库的代码和印刷书是对应的,所以目前不接受扩展主要章节目录内容的贡献。保持一致性,大家体验才好。

引用

如果你觉得这本书或者代码对研究有帮助,可以引用。

引用:

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}
}

贡献者

GoatCsu yongheng WPENGxs chunlin llm-chaser

常见问题(FAQ)

什么是《LLMs-from-scratch》中文翻译项目?

这是一个将Sebastian Raschka的《Build A Large Language Model (From Scratch)》原版代码和笔记进行完整汉化的开源项目,包含详细中文注释和Jupyter代码,旨在帮助中文学习者从零构建大语言模型。

这个翻译项目包含哪些内容?和原版有什么区别?

项目包含七章内容及附录的Markdown笔记和Jupyter代码,所有代码添加了详细中文注释。翻译保持原意准确,调整语序,读起来自然。原版是英文,此版本为中文辅助学习资料,不修改原文内容。

如何获取这个中文翻译项目的代码和教材?

可直接访问GitHub仓库 https://github.com/MLNLP-World/LLMs-from-scratch-CN.git 下载ZIP或使用git clone命令。教材网址也在该仓库中,所有资源免费开源。

Roger深圳
本文由 Roger 审核,最后更新于 2026年7月12日
联系编辑 →
← 返回文章列表
分享到:微博

版权与免责声明:本文仅用于信息分享与交流,不构成任何形式的法律、投资、医疗或其他专业建议,也不构成对任何结果的承诺或保证。

文中提及的商标、品牌、Logo、产品名称及相关图片/素材,其权利归各自合法权利人所有。本站内容可能基于公开资料整理,亦可能使用 AI 辅助生成或润色;我们尽力确保准确与合规,但不保证完整性、时效性与适用性,请读者自行甄别并以官方信息为准。

若本文内容或素材涉嫌侵权、隐私不当或存在错误,请相关权利人/当事人联系本站,我们将及时核实并采取删除、修正或下架等处理措施。也请勿在评论或联系信息中提交身份证号、手机号、住址等个人敏感信息。