学习路线图
循序渐进的学习路线!从零开始理解 LLM,用 C#/.NET 亲手实现每个组件,真正掌握大语言模型的原理。
🎯 欢迎来到 LLM 从零实现之旅!
欢迎!这个项目不是要你立刻训练出一个 ChatGPT 级别的大模型,而是一个循序渐进的学习路线。我们的目标是:通过亲自动手实现每个核心模块,真正理解 LLM 的工作原理。
学习三部曲
- 📚 先理解概念 - 阅读每章文档,了解这一部分在 LLM 整体架构中的位置和作用
- 💻 再动手实现 - 在
src/ChapterXX.*文件中补充 C# 实现,从小处着手,确保每一步都正确 - 🔧 及时验证 - 用
apps/Playground随时测试你的代码,不要等到最后才集成
记住:理解 > 代码量,正确性 > 性能。我们是在学习,不是在赶工。
🗺️ 你的学习路线图
下面是五个关键里程碑,帮助你稳步前进:
🧠 里程碑 1:打好基础
目标:建立整体认知框架
- ✅ 读完 Chapter 01,了解 LLM 的基本概念
- ✅ 理清这些术语的关系:token、embedding、self-attention、transformer、预训练、微调
- ✅ 画出自己的术语图或流程图(可视化能加深理解)
📊 里程碑 2:跑通数据流
目标:让数据流动起来
- ✅ 实现一个最简单的 tokenizer(先别追求完美)
- ✅ 打通这条链路:
文本 → token ids → batch → embedding lookup - ⚠️ 关键心态:不追求性能,先确保每一步的输出都能看懂、能解释
⚙️ 里程碑 3:搭建 GPT 核心
目标:实现 Transformer 的前向传播
- ✅ 实现 causal self-attention(带掩码的注意力)
- ✅ 扩展为 multi-head attention(多个注意力头)
- ✅ 组装完整的 transformer block 和 GPT 主干
- ✅ 用极小的输入验证形状(shape)和掩码(masking)是否正确
🏋️ 里程碑 4:让模型学起来
目标:看到 loss 下降,证明模型能学习
- ✅ 在小规模语料上跑通训练循环
- ✅ 实现 checkpoint 保存、文本采样、简单日志
- ⚠️ 重要原则:先证明”能学习”,再优化”学习速度”
🎯 里程碑 5:适配不同任务
目标:让基础模型学会新技能
- ✅ 分类任务微调
- ✅ 指令遵循微调
- ✅ 理解核心思想:同一个基础模型,通过不同的”头部”或训练数据,就能获得不同能力
📖 建议的学习顺序
按这个顺序推进,可以避免 overwhelm(信息过载):
- Chapter 01:纯理解阶段,不写复杂代码。目标是建立”地图”
- Chapter 02:稳扎稳打,把数据入口和 embedding 层写扎实
- Chapter 03:专注实现注意力机制,这是 Transformer 的核心
- Chapter 04:用前面实现的模块组装完整的 GPT
- Chapter 05:最后加上训练循环,让模型真正”学习”
- Chapter 06-07:教你的模型学会新技能(分类、指令遵循等)
小贴士:每完成一章,都回头看看整体架构图,理解你正在建造的”大厦”的哪个部分。
💡 C#/.NET 版的实现哲学
在实现过程中,请记住这些原则:
🎯 优先级排序
- 清晰性 > 优化性:先写出人能看懂的代码,再考虑优化
- 正确性 > 性能:先用 CPU 实现可验证的版本,再考虑 GPU/高性能库
- 可调试性 > 简洁性:优先做”可读、可测试、可定位问题”的实现
🔍 验证策略
- 为每一步保留固定的小样本测试用例
- 确保输入输出可预测、可解释
- 不要依赖”看起来差不多”,要能精确验证
记住:我们是学习者,不是产品工程师。理解过程比产出结果更重要。
🚀 现在就开始!
你的第一个任务很简单:
- 打开 Chapter 01,了解 LLM 的基本概念
- 同时浏览 Chapter 02,看看数据是如何从原始文本变成模型能理解的数字的
关注这条链路:文本 → token ids → embedding
不需要立刻写代码,先理解”为什么需要这些步骤”。
准备好了吗?点击左侧导航的 Chapter 01 开始吧! 🎉
小提示:如果你在某个地方卡住了,没关系!这是学习的一部分。可以:
- 回到这一章重新阅读
- 查看相关的源代码示例
- 或者休息一下,让大脑消化新知识