原文地址:Coding LLMs from the Ground Up: A Complete Course,by Sebastian Raschka, on 2025-05-10
从零编写大语言模型:完整课程
近几个月我写了很多关于推理模型的内容(一连更了 4 篇)。除了 “智能体” 相关方向之外,推理能力是 2025 年大语言模型领域最核心的议题之一。
但这个月,我想分享一些更底层、更 “基础” 的内容 —— 如何从零编写大语言模型。这是理解 LLM 工作原理的最佳方式之一。
为什么要做这套内容?因为去年我分享的精简版 LLM 实战 workshop 反响非常好,很多人都从中受益:
所以我想,这套时长约为原版 5 倍、内容更详尽的课程(总时长约 15 小时),实用价值会更高。
另外很遗憾的是,我最近颈部受了重伤,过去三周基本没法对着电脑工作。目前我先尝试保守治疗,再考虑医生建议的手术方案。这个时机实在糟糕 —— 我刚找回工作节奏,生活就又抛来一记曲线球。
所以在康复期间,我把前几个月录好的这些视频整理出来,作为过渡内容分享给大家。
希望这份内容对你有帮助,也感谢大家的支持!
附:这些视频原本是我《从零构建大语言模型》一书的配套补充内容,但实际体验下来,它们作为独立课程也完全成立。
为什么要从零构建 LLM?
这是学习大语言模型底层原理最有效、最透彻的方式。而且很多读者反馈,动手实现的过程本身也很有乐趣。
打个比方:如果你喜欢汽车、想搞懂汽车的工作原理,跟着教程从零组装一台车,就是绝佳的学习方式。当然,我们不会一上来就造 F1 赛车 —— 成本太高,对入门项目来说也过于复杂。更合理的选择,是从卡丁车这种简单的载体开始。
组装卡丁车同样能让你搞懂转向系统如何工作、发动机如何运转等核心原理。你甚至可以开着它去赛道练习(享受十足的乐趣),之后再去接触专业赛车 —— 或是加入一家专注于打造专业模型的公司 / 团队。毕竟,最顶尖的赛车手往往都是从自己动手改装卡丁车起步的(比如迈克尔・舒马赫、埃尔顿・塞纳)。动手实践不仅能培养出对车辆的绝佳体感,还能向机械师提供精准的反馈,这正是他们超越其他车手的优势。
参考资料
课程目录
1. 代码环境搭建(时长:21 分 01 秒)
本集为补充内容,讲解如何使用 uv 工具搭建 Python 开发环境。
我们重点使用 uv pip 命令,相关用法可参考这份文档。
此外,视频中提到但未展开讲解的原生 uv add 语法,可在此处查看说明。
注意 / 提示:部分 Windows 版本可能会出现安装问题。如果你使用 Windows 系统且安装受阻(大概率是因为第 5 集中加载 OpenAI 原生 GPT-2 权重时,依赖了 TensorFlow 库),无需担心,可以直接跳过 TensorFlow 安装 —— 只需从依赖文件中删掉 TensorFlow 对应的行即可。
作为替代方案,我已经将 GPT-2 的模型权重从 TensorFlow 张量格式转换为 PyTorch 张量格式,并上传到了 Hugging Face 模型库,你可以用它替代第 5 集中的权重加载环节:https://huggingface.co/rasbt/gpt2-from-scratch-pytorch
无论如何,在第 5 集结尾之前,你都不会用到权重加载相关的代码。
2. 文本数据处理(时长:1 小时 28 分 01 秒)
本集讲解 LLM 训练所需的文本数据预处理全流程,包括分词、字节对编码(BPE)、数据加载器构建等内容。
3. 注意力机制代码实现(时长:2 小时 15 分 40 秒)
本集为补充内容,通过从零编码的方式,拆解自注意力、因果注意力、多头注意力的工作原理。
你可以把它理解为:在装车架、座椅、车轮之前,先把汽车的发动机造出来。
4. LLM 架构代码实现(时长:21 分 01 秒)
本集讲解如何从零编写完整的大语言模型架构。
5. 无标注数据预训练(时长:2 小时 36 分 44 秒)
本集讲解如何从零完成大语言模型的预训练流程。
6. 分类任务微调(时长:2 小时 15 分 29 秒)
本集以垃圾邮件分类为例,讲解如何将 LLM 微调为分类器。作为微调的入门铺垫,下一集将进入指令微调环节。
7. 指令微调(时长:1 小时 46 分 04 秒)
本集为系列收尾内容,讲解如何对大语言模型进行指令微调。
祝大家观看愉快、动手顺利!
付费专属彩蛋:大语言模型的今昔(2018—2025)
作为对付费订阅用户的感谢,我想分享一段 2.5 小时的非编码类彩蛋视频。这段视频录制于 4 月初,大约是 Llama 4 发布两天后。内容围绕 2025 年的大语言模型行业格局展开,重点梳理了从 2018 年 GPT-2 问世至今,行业发生了哪些变化、又是如何演变的。
感谢大家的支持。作为一名独立全职研究者,这份支持对我意义重大。
希望接下来几周、几个月情况能有所好转 —— 我脑子里攒了一大堆新文章的想法,已经迫不及待想动笔了!