AI 应用开发
从 Python 工程开始,学会调用、评测模型,再搭建 RAG 服务。
岗位:大模型应用开发 / AI 应用研发 / 大模型评测 / AI 平台
产出:做出可运行的评测工具与 RAG 服务
三条岗位路线(应用/算法/Infra)、岗位能力矩阵、第一次找实习的学习顺序、Checkpoint 验收与四级学习标准。
对应课件:Job-Ready Track(新增)
如果你已经能用中文讲清楚 Attention、LoRA、KV Cache,但没有跑过一条真正完整的工程链路、没有 GitHub 上的可运行项目、面试官问「你做过什么」时只能回答「我学过课程」——这一章为你而写。
前 23 章的 Knowledge Track 解决的是「懂」:Understand → Build → Scale → Serve → Train & Align → Evaluate。
从本章开始的 Job-Ready Track 解决的是「能做」:
懂一个概念 → 写成代码 → 跑起来 → 测出来 → debug → 写报告 → 放进 GitHub → 面试讲清楚
Job-Ready Track 不新增理论主题(不写 MoE 大章、不写 Agent 大章)。它的每一章都绑定:
projects/ 目录,含 tests);不同岗位要的能力不同、优先级不同。先选路线,再补能力,不要平均用力。路线顺序、章节标题和岗位描述统一来自 content/tracks.json,本章不再复制一份容易过期的箭头链。
本章的三条路线是 Track A · AI 应用、Track B · 模型训练与算法、Track C · AI Infra。
先选目标,再按顺序学习;每一项都链接到真实章节。
从 Python 工程开始,学会调用、评测模型,再搭建 RAG 服务。
岗位:大模型应用开发 / AI 应用研发 / 大模型评测 / AI 平台
产出:做出可运行的评测工具与 RAG 服务
理解 Transformer,训练一个小模型,再完成数据、微调与评测实验。
岗位:大模型算法 / 机器学习算法 / 模型训练与后训练
产出:训练小模型,完成一份微调实验报告
从 GPU 和算子理解性能,逐步掌握分布式训练、推理服务与性能分析。
岗位:AI Infra / ML Systems / 推理框架 / 性能工程
产出:定位性能瓶颈,完成推理基准测试
路线卡片展示的是推荐顺序,不是强制先修关系。点击某条路线后,页面底部的「下一课」会继续沿当前路线前进;从「全部章节」进入时,才按教材顺序翻页。
先看「哪些是必须」,再决定这个月学什么:
| 能力 | 应用研发 | 算法 | 评测 | AI 平台 | AI Infra |
|---|---|---|---|---|---|
| Python 工程 | 必须 | 必须 | 必须 | 必须 | 必须 |
| PyTorch | 重要 | 必须 | 重要 | 重要 | 必须 |
| HuggingFace | 必须 | 必须 | 必须 | 重要 | 重要 |
| RAG | 必须 | 加分 | 加分 | 重要 | 了解 |
| Evaluation | 重要 | 必须 | 必须 | 重要 | 重要 |
| SFT / LoRA | 加分 | 必须 | 加分 | 了解 | 了解 |
| FastAPI / Docker | 必须 | 加分 | 加分 | 必须 | 重要 |
| GPU Profiling | 了解 | 加分 | 了解 | 加分 | 必须 |
| Distributed | 了解 | 加分 | 了解 | 加分 | 必须 |
| CUDA / C++ | 非必须 | 加分 | 非必须 | 加分 | 后期必须 |
这是技能矩阵,不是对任何人的评价:它只回答「这个岗位要什么」,不回答「你适合什么」——那取决于你想做什么。
面对 30+ 章节不知道从哪开始?如果你还没有实习经历,按这条线走:
第一步只需要进入上面的 Track A · AI 应用开发,然后沿路线页的「下一课」前进。算法与 Infra 分叉也从同一份路线配置进入,不再在正文另写一条可能过期的顺序。
Python 工程与 HuggingFace 是所有岗位的公共分母:不会其中之一,后面的 RAG / SFT / 评测项目都做不出来。而 RAG 与 FastAPI 是应用类岗位面试中出现频率最高、又最容易在两周内做出作品的方向。
注意看每段路线里的两种动词:Learn(读课程、建立理解)与 Guided Lab(下载 starter、亲手写代码、跑测试、过 Checkpoint)。 「读完」和「做出来」是两件不同的事——本 Track 用两个独立进度条分别记录。
以后不要说「我看完了」。每章/每个项目用四级标准自评:
| 级别 | 含义 | 验证方式 |
|---|---|---|
| Learned | 读懂 | 能不看材料讲清直觉与关键公式 |
| Implemented | 自己实现 | 从空白文件写出可运行代码 |
| Ran | 实际跑过 | 有运行输出的截图/日志(含失败与修复) |
| Explained | 不查资料讲清楚 | 能回答本章「面试复盘」全部问题 |
示例(FlashAttention,本课程当前状态):
Learned ✅ (第 19 章)
Implemented ✅ (第 19 章 Lab:分块 + online softmax)
Ran on CUDA ❌ (无 GPU 环境 → NOT EXECUTED ON CUDA)
Explained ✅ (能在白板上推导 online softmax 修正因子)
网站默认只显示「阅读进度」和「继续上次位置」。进入 Guided Build 后,页面主进度显示「项目步骤 · 已完成 / 总步骤」;Learned / Ran / Explained 等最终验收项收在折叠的自检清单里,避免把学习者的注意力分散到多个按钮。
Guided Build 章节(25 / 26 / 27)的四级标准怎么记录:
| 级别 | 对应动作 | 网站如何记录 |
|---|---|---|
| Learned | 读完章节正文 | 点亮「已读完」 |
| Implemented | starter 的测试全部从红变绿 | Guided Build 进度面板自动计算(0 步 / 部分 / 全部) |
| Ran | 在本地真实运行过(CLI / 实验) | 展开最终验收自检后手动确认 |
| Explained | 不看资料回答每步复盘问题 | 展开最终验收自检后手动确认 |
进度保存在你自己浏览器的 localStorage 里,不上传。打开 Solution 不会自动算完成——只有你真的在本地跑通,才有资格点「我已在本地通过」。
每一段路线结束后都有一个检查点。检查点不是选择题,而是一个可以给别人演示的最小产物:
| Checkpoint | 任务 | 通过标准 | Guided Build(starter) | 归属 |
|---|---|---|---|---|
| A | 写一个 Python CLI:解析日志、统计指标、正确处理中断 | 能跑 + 测试全绿 + 异常路径不崩 | ✅ log-analyzer/starter(10 步 / 41 测试) |
第 25 章 |
| B | 加载 Qwen、批量 generate、算 logits/loss、做一个 LoRA | 有 base vs tuned 的对比数据 | ✅ hf-mini-lab/starter(13 步 / 38 测试) |
第 26 章 |
| C | 写 Eval Harness(adapter/task/parser/metric/report) | 能对两个模型产出可比较的报告 | ✅ llm-eval/starter(15 步 / 79 测试) |
第 27 章 |
| D | 做 RAG + 评测(Recall@k / MRR / faithfulness) | retrieval 与 generation 指标分开报告 | 🔄 迁移中(先做现有 Lab + 参考实现) | 第 28-29 章 |
| E | 用 profiler 找瓶颈并写出 benchmark 报告 | 有 latency/memory 曲线与解释 | 🔄 迁移中(先做现有 Lab + 参考实现) | 第 31 章 |
「✅」只代表 starter 已随课程交付并被真实运行验证;「🔄 迁移中」是诚实标注——RAG / SFT / Infra 三套 Guided Build 会在下一轮用同一套模板迁移,当前版本请先用现有 Lab + Reference Solution 完成 Checkpoint。
从这一版开始,每个 Job-Ready 项目都有三层产物。它们不是三个重复的链接,而是三种不同的学习动作:
| 项目 | Learn(建立理解) | Guided Build(亲手做) | Reference(对照完整工程) |
|---|---|---|---|
| log-analyzer · Python 工程 | 第 25 章 · Python Engineering | Guided Build · starter(10 步 / 41 测试) | projects/log-analyzer |
| hf-mini-lab · HuggingFace | 第 26 章 · HuggingFace | Guided Build · starter(13 步 / 38 测试) | projects/hf-mini-lab |
| llm-eval · Eval Harness | 第 27 章 · Capstone 1 | Guided Build · starter(15 步 / 79 测试) | projects/llm-eval |
| rag-service · RAG 服务 | 第 28 章 + 第 29 章 | 🔄 迁移中(先用现有 Lab) | projects/rag-service |
| sft-lora · SFT 实验 | 第 30 章 | 🔄 迁移中(先用现有 Lab) | projects/sft-lora |
| inference-benchmark · Profiling | 第 31 章 | 🔄 迁移中(先用现有 Lab) | projects/inference-benchmark |
怎么用这三个入口(顺序不能反):
先读 Learn 章节(或边做边查参考手册)
↓
下载 starter,运行 pytest —— 看到满屏 failed
↓
按章节里的 Step 一步一步实现,测试逐组变绿
↓
(失败 → 看 Hint → 定位 → 修复 → 再跑)
↓
全绿 + 真实运行一次 → 课程页面的 Guided Build 进度条
↓
最后才打开 Reference Solution,对照设计差异
抄一遍参考实现会让「Implemented」和「Ran」变成假的。评测/面试时这类「做过」会在追问下原形毕露。 Reference Solution 的正确用法是:做完之后对照,回答「我的实现和它差在哪、为什么」。
| 章节 | 真实项目 | Guided Build | 已验证内容 |
|---|---|---|---|
| 25 Python Engineering | projects/log-analyzer/ |
✅ starter(初始 41 failed → 全绿 41 passed) | 14 个 pytest 通过;对健康/发散日志的真实输出 |
| 26 HuggingFace | projects/hf-mini-lab/ |
✅ starter(初始 38 failed → 全绿 38 passed) | Qwen2.5-0.5B-Instruct CPU 全程跑通:训练 loss 2.6364→1.3052;held-out loss 3.8168→3.6102;11 个测试通过 |
| 27 Capstone 1 · Eval Harness | projects/llm-eval/ |
✅ starter(初始 77 failed → 全绿 79 passed) | 128 题真实评测(C3 55.0% / XCOPA 55.0% / QA F1 21.9%);缓存二次运行 32.3s→0.0s;32 个测试用例通过 |
| 28-29 Retrieval/RAG + Capstone 2 | projects/rag-service/ |
🔄 下一轮迁移 | 841 chunks 课程语料;22 条标注查询:BM25 100%、dense 86.4%、hybrid+rerank MRR 0.932;RAG 6 题检索 6/6 命中;39 个测试用例通过 |
| 30 Capstone 3 · SFT/LoRA | projects/sft-lora/ |
🔄 下一轮迁移 | 真实 SFT:train loss 3.89→1.46;val loss 过拟合曲线(best@60);harness QA F1 20.2%→24.0%;15 个测试 |
| 31 Capstone 4 · Profiling Lab | projects/inference-benchmark/ |
🔄 下一轮迁移 | CPU 实测:SDPA 快 2.7×、理论中间张量 128MB→0、子进程 RSS 差值≈125MB;compile 反例 0.76×;算子表 bmm 72%;15 个测试;CUDA NOT EXECUTED |
只把真实运行得到的 loss / accuracy / latency / 显存写成「实验结果」。
NOT EXECUTED ON CUDA;面试官见过太多「复现了 LLaMA 训练」但一问细节就露馅的简历。真实、可复现的小项目 > 夸张的大项目。
正确答案:B
四级标准的意义就是让「会」变得可验证、可诚实描述:读过(Learned)、写过(Implemented)、能讲清(Explained)都是真实能力,缺哪级就如实标注。A 夸大了「Ran」维度;C、D 又低估了已完成的 3/4。| 站点 | 核心结论 |
|---|---|
| 定位 | Knowledge Track 让你「懂」,Job-Ready Track 让你「能做」 |
| 路线 | A 应用 / B 算法 / C Infra——先选路线,再补能力 |
| 顺序 | 无实习经历:进入 Track A,按路线页的下一课逐步前进 |
| 标准 | Learned / Implemented / Ran / Explained,缺哪级标哪级 |
| 纪律 | 不伪造实验数据;没跑过就写 NOT EXECUTED |