ai-engineering-from-scratch
从零开始的 AI 工程课程,共 428 课、20 个阶段,用 Python/TypeScript/Rust/Julia 从数学推导到 Agent 部署全覆盖。每节课产出可复用的 prompt/skill/agent/MCP server,真正实现学完即用。亮点在于系统性强,取代碎片化学习,且完全免费开源 MIT 许可证。
README
░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒
84% 的学生已经使用 AI 工具。只有 18% 的人觉得自己准备好专业地使用它们。 本课程弥补了这一差距。
428 节课。20 个阶段。约 320 小时。Python, TypeScript, Rust, Julia。每节课都会交付一个可复用的工件:一个 prompt、一个 skill、一个 agent、一个 MCP 服务器。免费、开源、MIT 许可。
你不只是在学习 AI。你在构建它。端到端。亲手实现。
工作原理
大多数 AI 材料都是零散地讲授。这里一篇论文,那里一篇微调博文,别处一个花哨的 agent 演示。这些片段很少能连贯起来。你交付了一个聊天机器人,但无法解释它的 loss curve;你为 agent 挂载了一个函数,但说不出调用它的模型内部 attention 在干什么。
本课程就是那根脊柱。20 个阶段,428 节课,四种语言:Python, TypeScript, Rust, Julia。一端是线性代数,另一端是自主 swarm。每个算法都首先从原始数学构建。反向传播。Tokenizer。Attention。Agent 循环。等到 PyTorch 出现时,你已经知道它在底层做什么。
每节课都运行同一个循环:阅读问题,推导数学,编写代码,运行测试,保留工件。没有五分钟的视频,没有复制粘贴部署,没有手把手的指导。免费、开源,并且设计在你的笔记本电脑上运行。
░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒
课程的结构
二十个阶段层层叠加。数学是地基,agent 和生产是屋顶。如果你已经了解下面的层级,可以跳过,但不要跳过之后又疑惑为什么顶层的某个东西会出问题。
%%{init: {'theme':'base','themeVariables':{'primaryColor':'#fafaf5','primaryTextColor':'#1a1a1a','primaryBorderColor':'#3553ff','lineColor':'#3553ff','fontFamily':'JetBrains Mono','fontSize':'12px'}}}%%
flowchart TB
P0["Phase 0 — Setup & Tooling"] --> P1["Phase 1 — Math Foundations"]
P1 --> P2["Phase 2 — ML Fundamentals"]
P2 --> P3["Phase 3 — Deep Learning Core"]
P3 --> P4["Phase 4 — Vision"]
P3 --> P5["Phase 5 — NLP"]
P3 --> P6["Phase 6 — Speech & Audio"]
P3 --> P9["Phase 9 — RL"]
P5 --> P7["Phase 7 — Transformers"]
P7 --> P8["Phase 8 — GenAI"]
P7 --> P10["Phase 10 — LLMs from Scratch"]
P10 --> P11["Phase 11 — LLM Engineering"]
P10 --> P12["Phase 12 — Multimodal"]
P11 --> P13["Phase 13 — Tools & Protocols"]
P13 --> P14["Phase 14 — Agent Engineering"]
P14 --> P15["Phase 15 — Autonomous Systems"]
P15 --> P16["Phase 16 — Multi-Agent & Swarms"]
P14 --> P17["Phase 17 — Infrastructure & Production"]
P15 --> P18["Phase 18 — Ethics & Alignment"]
P16 --> P19["Phase 19 — Capstone Projects"]
P17 --> P19
P18 --> P19
░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒
一节课的结构
每节课都在自己的文件夹中,整个课程采用相同的结构:
phases/<NN>-<phase-name>/<NN>-<lesson-name>/
├── code/ 可运行的实现 (Python, TypeScript, Rust, Julia)
├── docs/
│ └── en.md 课程叙述
└── outputs/ 该课程产出的 prompts、skills、agents 或 MCP 服务器
每节课遵循六个节拍。构建它 / 使用它 的拆分是主干——你首先从头实现算法,然后通过生产级库运行相同的东西。你理解框架在做什么,因为你自己写了更小的版本。
%%{init: {'theme':'base','themeVariables':{'primaryColor':'#fafaf5','primaryTextColor':'#1a1a1a','primaryBorderColor':'#3553ff','lineColor':'#3553ff','fontFamily':'JetBrains Mono','fontSize':'13px'}}}%%
flowchart LR
M["MOTTO<br/><sub>一行核心思想</sub>"] --> Pr["PROBLEM<br/><sub>具体痛点</sub>"]
Pr --> C["CONCEPT<br/><sub>图表和直觉</sub>"]
C --> B["BUILD IT<br/><sub>原始数学,无框架</sub>"]
B --> U["USE IT<br/><sub>在 PyTorch / sklearn 中实现相同功能</sub>"]
U --> S["SHIP IT<br/><sub>prompt · skill · agent · MCP</sub>"]
快速开始
三种方式。任选其一。
选项 A — 阅读。 在 aiengineeringfromscratch.com 上打开任何已完成的课程,或者展开 目录 中的某个阶段。无需设置,无需克隆。
选项 B — 克隆并运行。
git clone https://github.com/rohitg00/ai-engineering-from-scratch.git
cd ai-engineering-from-scratch
python phases/01-math-foundations/01-linear-algebra-intuition/code/vectors.py
*选项 C — 找到你的水平 (推荐)。* 智能地跳跃前进。在 Claude, Cursor, Codex, OpenClaw, Hermes 或任何安装了 SkillKit 的 agent 中:
/find-your-level
十个问题。将你的知识映射到一个起始阶段,构建一个包含小时估算的个性化路径。每个阶段之后:
/check-understanding 3 # 对阶段 3 进行自我测验
ls phases/03-deep-learning-core/05-loss-functions/outputs/
# ├── prompt-loss-function-selector.md
# └── prompt-loss-debugger.md
前置要求
- 你会写代码(任何语言;Python 更好)。
- 你想理解 AI 实际上是如何工作的,而不仅仅是调用 API。
内置 agent 技能 (SkillKit / Claude, Cursor, Codex, OpenClaw, Hermes)
| 技能 | 作用 |
|---|---|
/find-your-level |
十道题的定级测试。将你的知识映射到起始阶段,并生成一个包含小时估算的个性化路径。 |
/check-understanding <phase> |
每个阶段的小测验,八道题,附带反馈和需要复习的具体课程。 |
░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒
每节课都交付一些东西
其他课程以 “恭喜,你学会了 X” 结束。这里的每节课以你可以安装或粘贴到日常工作流程中的可复用工具结束。
FIG_001 · A PROMPTS |
FIG_001 · B SKILLS |
FIG_001 · C AGENTS |
FIG_001 · D MCP SERVERS |
|---|---|---|---|
| 粘贴到任何 AI 助手中,获得针对狭窄任务的专家级帮助。 | 放入 Claude, Cursor, Codex, OpenClaw, Hermes 或任何能读取 SKILL.md 的 agent 中。 |
作为自主工作程序部署——你在 Phase 14 中亲手编写了循环。 | 插入任何兼容 MCP 的客户端。在 Phase 13 中端到端构建。 |
使用 SkillKit 全部安装。真正的工具,不是家庭作业。到课程结束时,你将拥有一个包含 428 个工件的作品集,因为你亲手构建了它们,所以真正理解。
FIG_002 · 一个实战示例
Phase 14, 第 1 课:agent 循环。约 120 行纯 Python,无依赖。
|
|
░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒
目录
二十个阶段。点击任意阶段展开课程列表。
Phase 0: 设置与工具 12 节课
为后续所有内容准备好你的环境。
| # | 课程 | 类型 | 语言 |
|---|---|---|---|
| 01 | 开发环境 | 构建 | Python, TypeScript, Rust |
| 02 | Git 与协作 | 学习 | — |
| 03 | GPU 设置与云 | 构建 | Python |
| 04 | API 与密钥 | 构建 | Python, TypeScript |
| 05 | Jupyter Notebooks | 构建 | Python |
| 06 | Python 环境 | 构建 | Python |
| 07 | 用于 AI 的 Docker | 构建 | Python |
| 08 | 编辑器设置 | 构建 | — |
| 09 | 数据管理 | 构建 | Python |
| 10 | 终端与 Shell | 学习 | — |
| 11 | 用于 AI 的 Linux | 学习 | — |
| 12 | 调试与分析 | 构建 | Python |
22 节课 每个 AI 算法背后的直觉,通过代码体现。
| # | 课程 | 类型 | 语言 |
|---|---|---|---|
| 01 | 线性代数直觉 | 学习 | Python, Julia |
| 02 | 向量、矩阵与运算 | 构建 | Python, Julia |
| 03 | 矩阵变换与特征值 | 构建 | Python, Julia |
| 04 | 用于 ML 的微积分:导数与梯度 | 学习 | Python |
| 05 | 链式法则与自动微分 | 构建 | Python |
| 06 | 概率与分布 | 学习 | Python |
| 07 | 贝叶斯定理与统计思维 | 构建 | Python |
| 08 | 优化:梯度下降系列 | 构建 | Python |
| 09 | 信息论:熵、KL 散度 | 学习 | Python |
| 10 | 降维:PCA, t-SNE, UMAP | 构建 | Python |
| 11 | 奇异值分解 | 构建 | Python, Julia |
| 12 | 张量运算 | 构建 | Python |
| 13 | 数值稳定性 | 构建 | Python |
| 14 | 范数与距离 | 构建 | Python |
| 15 | 用于 ML 的统计 | 构建 | Python |
| 16 | 采样方法 | 构建 | Python |
| 17 | 线性系统 | 构建 | Python |
| 18 | 凸优化 | 构建 | Python |
| 19 | 用于 AI 的复数 | 学习 | Python |
| 20 | 傅里叶变换 | 构建 | Python |
| 21 | 用于 ML 的图论 | 构建 | Python |
| 22 | 随机过程 | 学习 | Python |
18 节课 经典机器学习——仍然是大多数生产 AI 的支柱。
| # | 课程 | 类型 | 语言 |
|---|---|---|---|
| 01 | 什么是机器学习 | 学习 | Python |
| 02 | 线性回归从零开始 | 构建 | Python |
| 03 | 逻辑回归与分类 | 构建 | Python |
| 04 | 决策树与随机森林 | 构建 | Python |
| 05 | 支持向量机 | 构建 | Python |
| 06 | KNN 与距离度量 | 构建 | Python |
| 07 | 无监督学习:K-Means, DBSCAN | 构建 | Python |
| 08 | 特征工程与选择 | 构建 | Python |
| 09 | 模型评估:指标、交叉验证 | 构建 | Python |
| 10 | 偏差、方差与学习曲线 | 学习 | Python |
| 11 | 集成方法:Boosting, Bagging, Stacking | 构建 | Python |
| 12 | 超参数调优 | 构建 | Python |
| 13 | ML 管道与实验跟踪 | 构建 | Python |
| 14 | 朴素贝叶斯 | 构建 | Python |
| 15 | 时间序列基础 | 构建 | Python |
| 16 | 异常检测 | 构建 | Python |
| 17 | 处理不平衡数据 | 构建 | Python |
| 18 | 特征选择 | 构建 | Python |
13 节课 神经网络从第一性原理出发。在你自己构建一个之前,不使用框架。
| # | 课程 | 类型 | 语言 |
|---|---|---|---|
| 01 | 感知机:一切开始的地方 | 构建 | Python |
| 02 | 多层网络与前向传播 | 构建 | Python |
| 03 | 反向传播从零开始 | 构建 | Python |
| 04 | 激活函数:ReLU, Sigmoid, GELU 及其原因 | 构建 | Python |
| 05 | 损失函数:MSE, 交叉熵, 对比损失 | 构建 | Python |
| 06 | 优化器:SGD, Momentum, Adam, AdamW | 构建 | Python |
| 07 | 正则化:Dropout, 权重衰减, BatchNorm | 构建 | Python |
| 08 | 权重初始化与训练稳定性 | 构建 | Python |
| 09 | 学习率调度与预热 | 构建 | Python |
| 10 | 构建你自己的迷你框架 | 构建 | Python |
| 11 | PyTorch 入门 | 构建 | Python |
| 12 | JAX 入门 | 构建 | Python |
| 13 | 调试神经网络 | 构建 | Python |
28 节课 从像素到理解——图像、视频、3D、VLM 和世界模型。
| # | 课程 | 类型 | 语言 |
|---|---|---|---|
| 01 | 图像基础:像素、通道、色彩空间 | 学习 | Python |
| 02 | 卷积从零开始 | 构建 | Python |
| 03 | CNN:从 LeNet 到 ResNet | 构建 | Python |
| 04 | 图像分类 | 构建 | Python |
| 05 | 迁移学习与微调 | 构建 | Python |
| 06 | 目标检测——YOLO 从零开始 | 构建 | Python |
| 07 | 语义分割——U-Net | 构建 | Python |
| 08 | 实例分割——Mask R-CNN | 构建 | Python |
| 09 | 图像生成——GAN | 构建 | Python |
| 10 | 图像生成——扩散模型 | 构建 | Python |
| 11 | Stable Diffusion——架构与微调 | 构建 | Python |
| 12 | 视频理解——时序建模 | 构建 | Python |
| 13 | 3D 视觉:点云, NeRF | 构建 | Python |
| 14 | Vision Transformers (ViT) | 构建 | Python |
| 15 | 实时视觉:边缘部署 | 构建 | Python, Rust |
| 16 | 构建完整的视觉管道 | 构建 | Python |
| 17 | 自监督视觉——SimCLR, DINO, MAE | 构建 | Python |
| 18 | 开放词汇视觉——CLIP | 构建 | Python |
| 19 | OCR 与文档理解 | 构建 | Python |
| 20 | 图像检索与度量学习 | 构建 | Python |
| 21 | 关键点检测与姿态估计 | 构建 | Python |
| 22 | 3D Gaussian Splatting 从零开始 | 构建 | Python |
| 23 | Diffusion Transformers 与 Rectified Flow | 构建 | Python |
| 24 | SAM 3 与开放词汇分割 | 构建 | Python |
| 25 | 视觉语言模型 (ViT-MLP-LLM) | 构建 | Python |
| 26 | 单目深度与几何估计 | 构建 | Python |
| 27 | 多目标跟踪与视频记忆 | 构建 | Python |
| 28 | 世界模型与视频扩散 | 构建 | Python |
29 节课 语言是通向智能的接口。
| # | 课程 | 类型 | 语言 |
|---|---|---|---|
| 01 | 文本处理:分词、词干提取、词形还原 | 构建 | Python |
| 02 | 词袋、TF-IDF 与文本表示 | 构建 | Python |
| 03 | 词嵌入:Word2Vec 从零开始 | 构建 | Python |
| 04 | GloVe, FastText 与子词嵌入 | 构建 | Python |
| 05 | 情感分析 | 构建 | Python |
| 06 | 命名实体识别 (NER) | 构建 | Python |
| 07 | 词性标注与句法解析 | 构建 | Python |
| 08 | 文本分类——用于文本的 CNN 与 RNN | 构建 | Python |
| 09 | 序列到序列模型 | 构建 | Python |
| 10 | 注意力机制——突破性进展 | 构建 | Python |
| 11 | 机器翻译 | 构建 | Python |
| 12 | 文本摘要 | 构建 | Python |
| 13 | 问答系统 | 构建 | Python |
| 14 | 信息检索与搜索 | 构建 | Python |
| 15 | 主题建模:LDA, BERTopic | 构建 | Python |
| 16 | 文本生成 | 构建 | Python |
| 17 | 聊天机器人:从基于规则到神经网络 | 构建 | Python |
| 18 | 多语言 NLP | 构建 | Python |
| 19 | 子词分词:BPE, WordPiece, Unigram, SentencePiece | 学习 | Python |
| 20 | 结构化输出与约束解码 | 构建 | Python |
| 21 | 自然语言推理与文本蕴涵 | 学习 | Python |
| 22 | 嵌入模型深入探讨 |
[原 README 过长已截断]