AI 工程实战课:从调用大模型到亲手写一个 GPT
一套写给中文开发者的免费 AI 课程。先用大模型做出能用的东西,再从零实现神经网络和 Transformer,弄明白它为什么能用。
这门课分两半。
前一半教你用大模型:调 API、写提示词、做知识库问答、做智能体,最后把它评估好、上线。学完你能独立做出一个真正有人用的 AI 应用。
后一半教你懂大模型:用 numpy 手写梯度下降和反向传播,用 PyTorch 从零搭一个小 GPT 并训练它写唐诗,再亲手做一次 LoRA 微调。学完你再看到"注意力"、"KV 缓存"、"量化"这些词,脑子里是具体的代码,而不是一团雾。
两半可以分开学。只想做应用的,学完第一部分就够用;已经在做应用、想补原理的,可以直接从第二部分开始。
贯穿全课的项目
第一部分的大部分课程都在做同一个东西:给开源库 httpx 做答疑助手,我们叫它 RepoBot。
它一开始只是一个能聊天的命令行程序,然后学会读项目文档回答问题,再学会自己去搜文档、翻源码,最后有了评估集、日志和护栏,变成一个网页服务。每一个模块往上加一块,你能看到一个 AI 应用是怎么一步步长出来的。
第一部分:用大模型做东西
调 API、写提示词、RAG、智能体、评估与上线,贯穿一个真实的答疑助手项目。
选好学习路线,装好 Python 环境,申请大模型 API 密钥,并完成你的第一次调用。
3 课模块 01大模型是怎么回事不用任何数学,靠实验弄明白大模型的几个基本事实:词元、下一个词元预测、温度、上下文和成本、向量嵌入,以及怎么选模型。
6 课模块 02提示词用对比实验讲清楚提示词的结构、少样本、先想再答、JSON 输出,最后搭一个批量测试提示词的小工具。
5 课模块 03用 API 做应用从一次调用走向一个真正的程序:多轮对话、流式输出、工具调用、出错重试和费用记录,最后做出贯穿项目 RepoBot 的第一版。
5 课模块 04RAG,让模型读你的资料从零搭一个检索增强生成系统:切分文档、向量检索、关键词检索、查询改写、重排、带引用的回答和评估,最后让 RepoBot 读懂 httpx 的文档。
7 课模块 05智能体先想清楚要不要用智能体,再从零手写一个:工具设计、规划与自我检查、记忆、多智能体、MCP 和安全,最后让 RepoBot 学会自己翻源码。
9 课模块 06评估与上线做一份评估集,用模型当评委并校准它,记录每一步的日志,省钱提速,加上输入输出护栏,最后把 RepoBot 做成网页服务部署上线。
6 课模块 07用 AI 写代码AI 编程工具有哪几种形态、各适合什么;怎么用项目说明文件让它读懂你的项目;以及一个靠得住的工作流:先定验收标准,小步修改,用测试而不是 AI 的自述来判断做完没有。
3 课第二部分:从零弄懂大模型
手写反向传播,从零实现并训练一个小 GPT,再做 LoRA 微调和本地部署。
从一条直线开始,手写梯度下降和反向传播,训练出第一个小网络,再换成 PyTorch 识别手写数字,并亲眼看到过拟合和对付它的办法。
6 课模块 09从零实现 Transformer手写分词器和注意力,搭一个完整的小 GPT,在三万多首唐诗上训练它学会写诗,再讲生成、KV 缓存,以及从小 GPT 到真正的大模型还差什么。
7 课模块 10微调与本地部署先想清楚什么时候该微调,再手写 LoRA、用 peft 微调一个开源小模型,估算内存、手写量化、用 Ollama 在自己电脑上运行,最后理解 vLLM 这类服务框架在解决什么问题。
5 课模块 11毕业项目用整门课学到的东西,独立做完一个自己选题的 AI 项目:定下做完的标准,做出能用的东西,用评估说明它有多好,最后把它写清楚给别人看。
1 课学之前需要会什么
- Python 基础:函数、列表、字典、类,会用
pip或uv装包。 - 会用命令行:
cd、运行一个脚本。 - 数学:第一部分完全不需要。第二部分用到的求导和矩阵乘法,课里会从头讲,高中数学够用。
不需要显卡。第一部分全程调 API;第二部分的所有实验都在普通笔记本的 CPU 上完成,训练小 GPT 大约 7 分钟,微调 5 亿参数的开源模型只要十几秒。只有第 10 模块最后一课的 vLLM 需要带 NVIDIA 显卡的服务器,课里会说明。
花多少钱
第一部分调用大模型 API,默认用 DeepSeek,整个第一部分所有例子加练习跑下来,花费通常在 10 元人民币以内(按 2026 年 9 月的价格)。也可以换成任何兼容 OpenAI 接口的服务,或者用 Ollama 在本地跑,完全免费,只是效果差一些。第二部分不调用 API,不花钱。
代码在哪里
每一课的代码都在 code/ 下对应模块的目录里,RepoBot 的四个版本在 projects/repobot/ 下。课里贴出的每一段输出,都是写课时真实运行得到的,并在每课开头标注了运行的日期、模型或软件版本。不调用 API 的代码都固定了随机种子,你运行应该能得到相同或非常接近的数字。
怎么学效果最好
每一课的代码都自己敲一遍,至少要自己运行一遍。然后做课后练习,特别是那些"改一个地方看看会发生什么"的题。只看不动手,这门课的价值会少一大半。