LLMs-from-scratch
从零手写 GPT 架构,Sebastian Raschka 博士的教科书级大模型原理教程
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
从零手写 GPT 架构,Sebastian Raschka 博士的教科书级大模型原理教程
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下,你面前有一台精密的瑞士手表,内部有上千个齿轮咬合得严丝合缝。 普通工程师只会按说明书操作手表,而真正的匠人会打开后盖,把每个齿轮、游丝、发条都拆开来研究——不是为了重新发明手表,而是彻底搞懂它为什么能走。 Sebastian Raschka 就是那个匠人。
他把自己花了多年时间研究大语言模型(LLM)的心得,写成了一本名为《Build a Large Language Model (From Scratch)》的书,并在 GitHub 上开源了全部配套代码——这就是今天的主角:LLMs-from-scratch。
图1:作者 Sebastian Raschka(GitHub @rasbt)
Sebastian Raschka 是一位在机器学习领域深耕多年的研究者,曾在威斯康星大学麦迪逊分校任教,发表过大量关于深度学习和 LLMs 的学术论文。他也是开源社区的活跃贡献者,GitHub 上 Star 数超过 95k,是 AI 教育领域最有影响力的布道者之一。
2024 年,他出版了这本《从零构建大语言模型》,副标题是「Understanding LLMs from the ground up, step by step」。与市面上充斥的「调 API 三分钟入门」教程不同,这本书的核心理念是:从零实现 GPT 架构的每一个组件,不依赖任何高层封装库(除了 PyTorch 本身),让读者真正理解 Transformer 时代最重要的技术背后究竟发生了什么。
你可能会问:从零手写?那代码岂不是又丑又慢? 恰恰相反。这个仓库的代码质量相当高,作者用 pytest 编写了完整的单元测试,覆盖 Linux、Windows、macOS 三大平台,并持续通过 CI 自动化测试管道运行。每章都有对应的 Jupyter Notebook 和独立的 Python 脚本,读者可以选择在 Notebook 中边学边练,也可以直接运行脚本看效果。
整个项目分为 7 个章节和 5 个附录:
大语言模型的工作原理,常被形容为「文本补全机器」——给它一段话的开头,它来预测下一个最可能的词。但 Raschka 的讲解方式更进一步:他把整个模型拆解成三个核心模块来解释。
第一个是分词器(Tokenizer)。模型不能直接处理文字,需要把文字转换成数字。Raschka 用「查字典」来类比——Tokenizer 就是把英文单词映射到数字 ID 的字典。BPE(Byte Pair Encoding)是业界标准,GPT 系列模型用的就是它,书里完整实现了 BPE 的训练和编码逻辑,没有调用任何现成库。
第二个是注意力机制(Attention)。这是 Transformer 的核心创新,也是大模型能够处理长文本的关键。Raschka 用「开研讨会」做比喻:每个与会者不仅自己要发言,还要听其他所有人的发言,并根据话题相关性决定谁的发言对自己更有价值——这就是 Self-Attention 的本质。书中从数学公式到代码实现,每一步都清晰呈现。
第三个是 GPT 架构。把分词、嵌入、自注意力、前馈网络、LayerNorm、Dropout 全部组装起来,就是一个完整的 GPT 模型。Raschka 重点讲解了 GPT 相比原始 Transformer 的架构差异(如 Casual Mask 机制),以及如何在这个基础架构上做预训练和微调。
这也是这个项目值得推荐的原因之一——不需要 H100,不需要 A100,甚至不需要昂贵的云服务。Raschka 明确在 README 中指出,这个项目是为「普通笔记本电脑」设计的,GPU 只是可选项(如果有会自动利用)。
CPU 模式下,模型规模被设计为可以在消费级硬件上运行;如果你有 GPU,则可以利用 PyTorch 的 CUDA 加速,大幅缩短训练时间。这种「渐进式」设计让不同硬件条件的读者都能上手。
安装方式也很简单:
git clone https://github.com/rasbt/LLMs-from-scratch
cd LLMs-from-scratch
pip install llms-from-scratch
或者使用 pixi.toml 做更精确的依赖管理(pixi 是现代的 conda 替代品)。如果不想装 Python 环境,甚至可以直接用 GitHub 的 Codespaces 一键打开。
书籍官方标注的门槛是:扎实的 Python 基础 + 对深度神经网络有基本了解。对于没有 PyTorch 经验的读者,附录 A 提供了 PyTorch 速成教程。不过,如果对 Python 的函数、类、NumPy 都不熟悉,上手会有一定难度——这不是一本零基础入门书,而是一本「从会用 PyTorch 到真正理解 LLM」的进阶读物。
此外,书籍配套了 17+ 小时的 Manning 视频课程,可以与书籍配合使用,也可以独立学习。
诚然,这个项目也有其局限性。首先,它是教学导向的,模型规模刻意保持在「可理解」的范围内(不是 GPT-4 那种千亿参数的怪物),所以无法用它训练出生产级别的 LLM。其次,代码风格追求「清晰胜于效率」,没有针对训练速度做极致优化。
另外,由于书中有大量数学公式和代码推导,阅读体验比较密集,不太适合碎片化时间学习。如果你想快速做一个能聊天的 AI 助手,这个仓库帮不了你——但如果你想搞清楚 ChatGPT 背后的原理,这是最好的起点。
在 AI 时代,「会用工具」和「理解工具」之间的差距越来越大。当大多数人在追逐最新模型、刷排行榜的时候,Raschka 选择了一条更慢但更扎实的路:从最底层的代码出发,把 GPT 掰开揉碎讲清楚。
这个项目的 Star 数量已经突破 95k,在 Manning 出版平台长期位居畅销榜前列,并带动了一批「从零手写」系列教程的风潮——包括后来的《Build a Reasoning Model (From Scratch)》,专门讲解推理模型的构建。
如果你是一名 AI 开发者,想深入理解 Transformer 架构;或者你是一名 AI 爱好者,对「ChatGPT 到底是怎么工作的」充满好奇——这个仓库值得你花时间研究。它不是最快的捷径,但可能是最扎实的起点。
本文基于 rasbt/LLMs-from-scratch 开源代码仓库(MIT License)生成,参考书籍《Build a Large Language Model (From Scratch)》,作者 Sebastian Raschka,Manning 出版社 2024 年出版。