rohitg00/ai-engineering-from-scratch 是一套从数学基础一直延伸到 LLM、AI Agent、多 Agent、生产部署与安全的开源课程。它不是只列链接的资源清单,而是把学习内容拆成 20 个阶段、503 节课,每节课尽量留下可以运行或复用的代码、Prompt、Skill、Agent 或 MCP Server。
如果你已经会调用模型 API,但不清楚 tokenizer、attention、agent loop、MCP 和生产部署之间是什么关系,这套课程适合用来补齐知识链。全部内容大约 320 小时,没有必要从第一节按顺序全部学完,先定位自己的起点更有效。
Quick Answer
新手可以从环境、数学和机器学习基础开始;有后端经验的开发者可以从 Transformer、LLM Engineering 或 Tools & Protocols 开始;已经在使用 Codex、Claude Code 的用户,可以直接从 Agent Engineering、Infrastructure 和 Capstone Projects 切入。
最实用的开始方式是先克隆仓库,运行 /find-your-level Skill,根据十道问题生成个人学习路线,再选择一个阶段完成“读原理、写代码、运行测试、保留产物”的闭环。
课程的 20 个阶段怎么分
课程大致可以分成五段:
| 学习段 | 阶段 | 适合解决的问题 |
|---|---|---|
| 基础 | Setup、Math、ML、Deep Learning | 补齐环境、数学和神经网络基础 |
| 模型 | Vision、NLP、Speech、Transformer、GenAI | 理解不同模态和生成模型 |
| LLM | LLM from Scratch、LLM Engineering、Multimodal | 从模型原理过渡到工程应用 |
| Agent | Tools & Protocols、Agent、Multi-Agent | 学习工具调用、MCP、Agent loop 和协作 |
| 生产 | Infrastructure、Safety、Capstone | 部署、监控、安全与完整项目 |
不要因为课程编号从 0 开始,就认为必须完整学完前面的数学才能看 Agent。更合理的方式是先选当前任务需要的阶段,遇到概念缺口再向前补课。
克隆并运行第一个示例
先确认电脑已经安装 Git 和 Python:
|
|
克隆仓库:
|
|
官方 README 给出的第一个示例是线性代数向量代码:
|
|
如果 Windows 上 python 指向 Microsoft Store 或找不到解释器,可以试试:
|
|
每节课的目录通常包含:
|
|
学习时不要只读 docs。至少运行一次 code,再检查 outputs 是否能用于自己的工作流。
安装课程自带的 Agent Skills
仓库提供面向 Claude、Cursor、Codex、OpenClaw 和 Hermes 的 Skills,官方安装入口是:
|
|
Windows 如果没有 python3 命令,可以使用:
|
|
安装前先打开脚本,确认它会把文件复制到哪里:
|
|
不要在不检查路径的情况下,以管理员权限运行第三方安装脚本。Skill 通常只是 Markdown 指令和辅助脚本,但辅助脚本仍可能读写文件或执行命令。
用 /find-your-level 找学习起点
安装 Skills 后,可以在支持斜杠命令的 Agent 中运行:
|
|
它会通过十个问题评估基础,再给出建议阶段和时间预估。完成某个阶段后,可以运行:
|
|
这里的 3 表示检查第 3 阶段。它适合发现“代码能运行,但概念没有真正掌握”的情况。
如果当前客户端没有自动识别斜杠命令,可以直接打开对应的 SKILL.md,把任务要求交给 Agent 执行。不同客户端的 Skill 搜索目录并不完全相同,应以客户端当前版本的文档和本地配置为准。
先检查课程完成状态,不要把 Roadmap 当成目录
仓库根目录的 ROADMAP.md 不只是未来计划,还标记每节课是已完成、进行中还是计划中。官方使用三个状态:
|
|
准备学习某个阶段前,先搜索状态:
|
|
只查看 Agent、MCP 和生产部署附近的阶段:
|
|
这样可以避免按照 README 中的宏观路线找到某一节后,才发现代码或讲义还在建设中。ROADMAP.md 给出的总预估约为 314 小时,而 README 使用约 320 小时的概括值;它们都只是课程规划,不是完成课程的硬性时长。
一个课程目录应该怎样验收
每节课强调 Build It / Use It / Ship It,可以把验收拆成三层。
1. Build It:不依赖框架理解最小实现
先运行课程提供的基础实现,确认自己能解释输入、主要数据结构和输出。例如学习 Agent loop 时,不应只记住 ReAct 名称,而要能指出:
- 对话历史在哪里保存;
- 模型返回 tool call 后如何分发;
- 工具结果如何重新加入上下文;
- 达到最大步数时如何停止;
- 哪些异常应由 Agent 处理,哪些应直接失败。
2. Use It:用常见库完成同一问题
基础版本跑通后,再比较 PyTorch、scikit-learn 或对应 SDK 的实现。重点不是把代码变短,而是确认框架替你处理了哪些步骤,例如张量设备、梯度、批处理、序列化和重试。
3. Ship It:留下能复用的产物
检查课程的 outputs/:
|
|
最终产物至少应满足:有明确输入、失败时不会静默成功、不会把密钥写入仓库,并且能在一个新的测试目录中复现。
Windows 环境建议
课程横跨 Python、TypeScript、Rust 和 Julia,不建议一开始安装所有工具链。先为当前阶段创建隔离环境。
Python 课程可以使用:
|
|
如果 PowerShell 阻止激活脚本,可以只对当前进程调整策略:
|
|
不要直接使用管理员 PowerShell,也不要为了运行课程全局关闭执行策略。某一节课需要额外依赖时,优先读取该课程目录的 README、依赖文件或代码导入项,再安装对应包。
运行前记录版本,遇到问题时更容易复现:
|
|
没有学习到相应语言阶段时,某个命令不存在并不代表仓库损坏。
如何从 503 节中挑出一条最短路径
不要只按阶段名称选择,还要从最终产物倒推:
| 目标 | 建议先学 | 暂时可以跳过 |
|---|---|---|
| 调用模型 API 做应用 | APIs & Keys、LLM Engineering、Structured Outputs | 从头实现视觉模型 |
| 做 RAG | Embeddings、Chunking、Retrieval、Evaluation | GAN、强化学习基础 |
| 写 MCP Server | Tools & Protocols、API、鉴权、错误处理 | 完整预训练流程 |
| 做 Coding Agent | Agent loop、Tool use、Memory、Evaluation | 大部分视觉课程 |
| 本地部署模型 | GPU Setup、Quantization、Inference、Infrastructure | 多 Agent Swarm |
| 系统学习模型原理 | Math、ML、Deep Learning、Transformer、LLM from Scratch | 不建议跳过基础阶段 |
每条路径先选 8–15 节组成第一轮,不要一次生成覆盖数百节的计划。完成后再用 /check-understanding 找缺口。
一周学习工作流示例
下面是一种适合在职开发者的节奏:
|
|
每周只要求交付一个能运行的产物。对于 GPU 训练、数据集下载或云资源步骤,先估算费用和时间,避免启动后才发现无法完成。
怎样把课程 Skill 改成自己的版本
不要直接在克隆仓库内改原始 Skill 后长期使用,否则以后 git pull 容易冲突。复制到自己的 Skills 目录,再调整:
- 修改
name,避免与原 Skill 重名; - 收窄触发条件,只覆盖自己真正使用的场景;
- 把课程示例路径换成项目实际路径;
- 明确允许和禁止的命令;
- 增加验证步骤,例如测试、lint 或
git diff --check; - 在测试仓库运行后再放入全局目录。
升级课程仓库时,先查看差异:
|
|
确认安装脚本和 Skills 没有出现意外权限变化,再执行更新。
常见失败及定位顺序
示例代码缺少模块
先确认虚拟环境和当前目录,再查该课程是否有依赖文件:
|
|
不要看到 ModuleNotFoundError 就在全局环境连续安装一串包。
测试通过但没有理解代码
尝试删除一个关键步骤、改变输入尺寸或制造错误输入。如果无法预测会在哪里失败,说明目前只是运行了代码,还没有完成课程目标。
Agent Skill 安装后不出现
检查 Skill 目录是否多嵌套了一层、front matter 是否有效、客户端是否需要重启,以及该 Skill 是否只为另一种客户端设计。直接把 SKILL.md 内容作为任务输入,可以帮助区分“Skill 内容有问题”还是“客户端未发现文件”。
三种推荐学习路线
路线一:第一次系统学习 AI
建议从 Setup、Math、ML、Deep Learning 开始,再进入 Transformer 和 LLM。数学阶段不必追求一次全部掌握,重点是能解释矩阵、梯度、概率和损失函数在代码里做什么。
路线二:会写应用,想转向 LLM Engineering
可以从 Transformer、GenAI、LLM Engineering 开始,然后学习 Tools & Protocols、Agent Engineering 和 Infrastructure。每完成一节,尝试把输出改成一个能在自己项目中使用的小工具。
路线三:已经在使用 Codex 或 Claude Code
优先看 Agent loop、工具调用、MCP、记忆、多 Agent、生产部署和安全。不要只复制 Skill;同时检查它解决的问题、触发条件、权限边界和失败后的恢复方式。
常见问题
503 节课程必须全部完成吗?
不需要。503 节说明覆盖范围很大,不代表每个人都应从头学到尾。先完成与你当前工作有关的一条路线,再逐步补齐基础。
可以只下载 PDF 或 EPUB 吗?
可以。官方 Release 提供六卷 PDF 和 EPUB。不过仓库才是持续更新的版本,而且包含代码、测试与 Skills;只看电子书会失去大量实践内容。
运行代码需要 GPU 吗?
基础数学、Python、Agent loop 等内容通常不依赖 GPU。涉及深度学习训练、本地模型或多模态时,才需要根据课程要求准备 CUDA、云 GPU 或较长运行时间。
建议的使用方法
先执行 /find-your-level,选择一条路线,然后每周只完成一个可以验证的目标,例如实现 tokenizer、运行最小 Agent loop,或安装并审计一个 Skill。这样比收藏 503 个链接更容易形成可复用能力。
为什么要从零实现 AI 工程
rohitg00/ai-engineering-from-scratch 是一份很大的 AI 工程学习路线。它的口号是 “Learn it. Build it. Ship it for others.”,重点不只是读概念,而是把 AI 系统从底层原理一路实现出来。
如果你已经会调用 OpenAI、Claude 或 Gemini API,但想补上机器学习、Transformer、训练、推理和工程化底层知识,这个项目值得收藏。
它不是普通资源列表
很多 AI 学习仓库只是把论文、课程、博客链接堆在一起。ai-engineering-from-scratch 更像一套课程目录,每个主题都标明是 Learn 还是 Build,并且大量内容要求你用 Python 从零实现。
它覆盖的范围很广,包括:
- 数学和机器学习基础;
- 神经网络和深度学习;
- 计算机视觉;
- 音频和语音;
- Transformer 深入;
- 生成式 AI;
- 强化学习;
- LLM 从零实现;
- 推理优化;
- AI Agent 和生产工程。
这种路线不适合“今晚就上线一个 AI 应用”的人,但非常适合想把 AI 工程基本功补扎实的人。
学习路线有什么特点
项目的一个明显特点是分阶段推进。比如 Transformer 部分会从 RNN 的问题讲起,再进入 self-attention、multi-head attention、positional encoding、完整 Transformer、BERT、GPT、T5、ViT、MoE、KV cache、Flash Attention、Scaling Laws 和从零构建 Transformer。
LLM 部分也不是只讲 prompt,而是会覆盖:
- tokenizer:BPE、WordPiece、SentencePiece;
- 从零构建 tokenizer;
- 预训练数据管线;
- 预训练 Mini GPT;
- 分布式训练;
- Instruction Tuning;
- RLHF;
- DPO;
- 推理优化和部署。
这类内容很适合把“我会用 AI API”升级成“我理解模型为什么这样工作”。
为什么强调 from scratch
“从零实现”听起来慢,但它有一个好处:你会知道框架帮你隐藏了什么。
比如你自己写过 attention,就更容易理解:
- 为什么上下文越长显存越吃紧;
- KV cache 为什么能加速推理;
- Flash Attention 优化的到底是什么;
- RoPE 和 ALiBi 在位置编码上有什么差别;
- MoE 为什么不是简单把参数量堆大;
- tokenization 为什么会影响多语言效果;
- 微调、RLHF、DPO 解决的是不同层面的问题。
这些东西平时调用 API 不一定用得上,但一旦你要做模型选型、成本优化、本地部署、长上下文系统或 Agent 框架,就会变得很有用。
适合谁学
这份路线更适合:
- 已经会写 Python,想系统补 AI 工程的人;
- 做 AI 应用,但对模型底层不够踏实的人;
- 想从 API 调用者进阶到 AI Engineer 的开发者;
- 准备研究 LLM、推理优化或模型训练的人;
- 喜欢边学边实现,而不是只看视频和文章的人。
它不太适合完全零基础用户。至少要有 Python、基础数学和一点机器学习概念,否则会很容易卡住。
怎么开始比较稳
不要试图一口气啃完整个仓库。更实际的方式是按目标选择路径:
- 想做 AI 应用:优先看 LLM、Agent、推理和工程化部分;
- 想理解模型:从神经网络、Transformer、LLM from scratch 开始;
- 想做语音产品:看 audio、Whisper、TTS、voice assistant pipeline;
- 想做图像生成:看 generative AI、diffusion、Stable Diffusion、ControlNet;
- 想补基础:从数学、机器学习、深度学习开始。
学习时最好每个阶段都留一个小项目。只读目录会很爽,但真正有价值的是把 tokenizer、attention、mini GPT、RAG 或推理服务跑起来。
和普通 AI 应用开发的关系
现在很多 AI 应用开发确实不需要从零训练模型。你可以用云端 API、向量数据库、工作流引擎和几个工具调用,很快做出一个产品原型。
但如果你要走得更远,就会遇到这些问题:
- 为什么这个模型上下文长但很慢;
- 为什么 RAG 检索到了答案但模型没用上;
- 为什么微调后某些能力退化;
- 为什么本地部署显存爆了;
- 为什么 Agent 工具调用不稳定;
- 为什么同样参数下不同模型成本差这么多。
这时底层知识就不是装饰,而是排错能力。