按下发送之后,那个黑箱里到底发生了什么?
这是我第一周的学习笔记。我们每天都用大模型——让它给个食谱、总结长文档,点下发送几乎瞬间就得到一个看起来很"聪明"的回复。但我想搞清楚:在我输入第一个提示词之前的几个月甚至几年里,这个模型经历了什么?这一周就是揭开帷幕,看清那条把杂乱的互联网原始数据变成 AI 助手的多阶段工程流水线。
— 课程贯穿九周的中心论点,第一周首次提出
这一周我要学什么
在学会用 AI 写代码之前,得先搞清楚自己在跟什么东西打交道。第一周不讲工具、不讲技巧本身,而是把一个大模型从"互联网原始数据"到"我对话框里的助手"的完整训练流水线拆开来看。
我给自己定的学习主线是:先沿着三大训练阶段走一遍——预训练(获得知识)→ 监督微调 SFT(获得人格)→ 强化学习 RL(获得推理),再落到真正要动手的提示工程。因为我发现:后面会犯的几乎每一个错误,都能在"模型是怎么训练出来的"这件事上找到解释。为什么它能解奥数题却说 9.9 比 9.1 小?为什么"一步步想"能让它突然变聪明?为什么它会一本正经地编造?这些都不是玄学,而是训练机制的直接后果。
本周核心论点
- 大模型不是"新型智能",而是"互联网的有损压缩"。它学到的是"什么词后面常跟什么词",而不是"什么是对的"——这是它一切失败的根源。
- 一个能用的助手由三段训练叠出来:预训练给知识、SFT 给人格、RL 给推理。三段各自解决不同问题,成本和耗时也天差地别。
- 模型的能力像一块瑞士奶酪——强大但布满不可预测的洞。正确的态度不是信任,而是把它当作"随机的、会犯错的工具",永远验证它的输出。
- "让它一步步想"不是文风偏好,而是解锁能力的开关。模型每个 token 的计算量有限,推理必须被摊开在多个 token 上才能发生。
- 提示工程的本质,是通过对话给模型"编程"。这是区分"普通闲聊"和"高杠杆专业使用"的分水岭。
阶段一 · 预训练:知识获取
在成为有用的助手之前,LLM 最初只是一个基座模型(base model)。从功能上看,它就是一台极其复杂的文本补全机器。预训练这一阶段的目标,是规模大到难以想象的知识获取。
① 数据采集
从互联网的深层归档中大规模抓取数据,最大来源通常是 Common Crawl——这家非营利组织自 2007 年起为网页做索引,已覆盖超过 27 亿个页面。原始互联网数据再与高质量精选文档结合:维基百科、学术期刊、GitHub 上的公开代码等。
② 数据清洗
原始数据极其杂乱,过滤过程非常严苛——垃圾信息、恶意软件、已知的种族主义内容、成人内容,甚至单纯重复的文本,统统剔除。但即便如此,数据集依然庞大:像 FineWeb 这样有代表性的高质量公开数据集,清洗后仍有约 44 TB 文本。
③ 分词(Tokenization)
文本被转换成 token 序列(基本上是文本的小片段,一个词或一个词的一部分)。仅 FineWeb 数据集就约等于 15 万亿(15 trillion)token——也就是 15,000 亿条训练数据,模型必须全部"吸收"。
④ 核心机制:自回归
LLM 是自回归模型(auto-regressive),意思是它完全基于前文,来预测序列中下一个 token 的概率。比如你说 "The cat sat on the ___",模型会预测 "mat""rug" 之类——它计算的是最可能的补全。
⑤ 参数:一块巨型调音台
整个预测过程都是数学运算,上下文要经过一个拥有数十亿乃至数万亿可调参数的神经网络。可以把这些参数想象成一块巨型调音台上的旋钮——GPT-2 有 16 亿个,据报道 GPT-4 约有 1.8 万亿个。训练就是反复微调这些旋钮,让模型对下一个 token 的预测,匹配训练数据里真实出现的内容,每秒重复数百万次。
⑥ 算力与成本:一场淘金热
各家公司争相租用大型机器,比如一个 H100 GPU 节点约每 GPU 每小时 3 美元。正因如此,训练一个大型基础模型要花费数千万美元。这种成本结构决定了整个行业格局——只有少数玩家有能力创造这些基座模型。
阶段二 · 监督微调(SFT):塑造人格
那个昂贵的"自动补全机"并不是我们和 ChatGPT 对话时用的东西。要把基座模型变成有用的对话助手,就要进入后训练(post-training)阶段,首先是监督微调(SFT)。
小时级
SFT 是塑造模型人格的第一步,计算成本比预训练低得多——耗时以小时计,而非数月。做法是替换数据:把原始互联网文本,换成一个更小、高度精选的数据集,包含数十万条高质量对话示例。
这就是人类标注员登场的地方。他们被雇来,拿到一套非常严格、详尽的指令,任务是针对各种各样的提示,写出"理想的助手回复"。他们其实是在用示例,教会 LLM 扮演那个乐于助人、诚实、无害的人格。
阶段三 · 强化学习(RL):教会思考
有了正确的人格后,还需要教模型如何真正解决问题。这就到了最高级的第三阶段:强化学习(RL)。
它和 SFT 的区别在于:SFT 教会模型"该说什么",RL 教会模型"该怎么想"。通过 RL,模型可以在可验证的领域(如数学和代码,我们确切知道正确答案)里练习解决问题。你给它问题和答案,但它必须自己摸索出抵达答案的路径——发现那串能可靠导向正确结果的 token 序列。
思维链是怎么"自发涌现"的
最迷人的地方在于,模型的认知策略会在这里自发涌现。它通过创造一种内部独白来学会"思考"。因为模型每个 token 的计算量是有限的,它学会了必须把推理过程分摊到多个 token 上,这就是思维链(Chain of Thought, CoT)。
RLHF:当答案没有标准对错时
纯 RL 在答案客观可验证时(数学、代码、国际象棋)效果很好。但对于主观的东西呢——比如写个笑话或一篇有说服力的文章?这类领域用一种变体:基于人类反馈的强化学习(RLHF)。做法是训练第二个 AI——奖励模型(reward model)——让它扮演人类裁判:人类对不同的 AI 输出排序,奖励模型学着复制这些排序,从而成为"人类品味"的代理。
怎么看待它的能力:瑞士奶酪模型
强大,但布满不对齐的"洞"
关于该如何对待这些模型,课程给了一个我很喜欢的比喻:它们的能力像一块瑞士奶酪,上面的洞并不对齐。一个模型可以解出奥林匹克级别的数学难题,转头又信誓旦旦地告诉你 9.9 小于 9.1。
对我意味着什么:把它们当作随机性工具——永远检查它的工作,并用提示技巧来弥补它的局限。"洞"的位置不可预测,这才是关键——我无法事先知道它会在哪类简单问题上翻车,所以唯一稳健的策略是建立"默认验证"的习惯。
一个要先记住的词:上下文窗口
模型的"工作记忆"
上下文窗口就是模型的"工作记忆",已经呈指数级增长——老模型如 GPT-2 只能处理约 1,000 个 token,而现代模型可以回看数十万、有时甚至上百万个 token。
为什么先在这里记下它。第一周我只需建立"它是有限工作记忆"这个概念。但要记住这个词——到第三周它会回来,而且会告诉我一个反直觉的事实:上下文不是越长越好,过长反而会让 Agent 失效。第一周埋种子,第三周收割。
怎么用好它:提示工程四类技巧
模型有了知识、人格和一定的推理能力后,最后一环就是提示工程,本质上是通过对话来给模型编程。这四类技巧也正好对应本周作业要动手实现的内容。
1 · 上下文学习 / K-shot 提示
直接在提示里给模型几个示例(一个、三个或五个)。比如需要它用某种特定敬语风格把句子翻成韩语,只要给一两个该风格的示例,模型就能立刻适应,在上下文中学会这个模式。
2 · 思维链(CoT)
面对更复杂的逻辑任务,即便只是一句简单的"让我们一步步思考"(称为 zero-shot CoT),也能显著提升准确率,等于解锁了模型"出声推理"的能力。
3 · 检索增强生成(RAG)
模型的知识冻结在某个时间点,它不知道昨天发生了什么,也不知道我公司私有数据库里有什么。RAG 是对抗幻觉(hallucination)的关键防线,相当于给 AI 装了一个智能的谷歌搜索。流程是:LLM 意识到自己需要最新信息,于是生成特殊 token 来调用工具(如网页搜索),搜索结果被直接塞回 AI 的工作记忆——在它生成最终答案之前,插入到上下文窗口里。这迫使模型使用当前事实,而不是只靠陈旧的训练记忆。
4 · 自我修正技巧
- 自我一致性(self-consistency):不只问一次,而是问五次,逼模型找出五条不同的推理路径,然后取多数答案,以此减少随机错误。
- 反思(reflection),尤其适合写代码:把报错信息喂回提示里,让模型批判并修改自己的代码,教它实时从错误中学习。
核心转变:增强,而非替代
对专业人士来说,讨论总围绕"被替代"。但课程强调一个不同的观点,也就是那句口号:"你不会被 AI 取代,你会被一个懂得使用 AI 的能干工程师取代。"
LLM 不是在取代工程师,而是在增强他们——把一个普通工程师变成高效工程师。课程用 OpenAI 内部使用 Codex 模型举例。
四个具体的省时场景
| 场景 | 做法与收益 |
|---|---|
| 代码理解 | 粘贴报错的 stack trace,提示"根据这段 stack trace,定位本仓库相关逻辑并追踪数据流"。平常要挖一小时,一下省下 45 分钟。 |
| 重构 | 跨几十个文件更新一个老旧 API 调用,手动是三小时枯燥活;提示"在全部 40 个文件中一致地应用这个改动",90 秒搞定。 |
| 性能优化 | 让模型分析代码、标出慢的数据库调用并起草修复方案,30 分钟的活变成 5 分钟的提示工作。 |
| QA 与测试 | 让模型针对覆盖率低的代码跑一晚上,第二天醒来就有可运行的单元测试,覆盖了人类可能漏掉的边界情况。 |
几条最佳实践(我要记住的)
- 角色提示(role prompting):积极地定义人格,比如"你是一个热爱编程、达到资深软件开发者水平的得力助手"。
- 结构化提示:粘贴复杂数据时用
<error>或<log>之类的标签,让模型能高效解析。 - 持久化上下文(persistent context):维护一个像
agents.md的文件,把 AI 不可能知道的业务逻辑和命名规范写进去,每次会话都粘贴进去,让模型始终知情,大幅提升所有提示的准确率。(这正是第 4 周 CLAUDE.md 模式的预演)
阅读材料精读(官网指定 5 篇)
官网第一周指定了 5 篇阅读。我按"先建立模型直觉、再掌握提示方法、最后看真实工程怎么用"的逻辑重排了顺序,逐篇做了拆解——读完这一节,等于把第一周内容又过了一遍。
Deep Dive into LLMs like ChatGPT
作者:Andrej Karpathy(OpenAI 创始成员、前 Tesla AI 总监)· YouTube 原视频 →
这是什么。一场面向普通观众、却毫不稀释技术的完整讲解,把 LLM 的"全训练栈"从头到尾铺开。它正是我这一周笔记的母本——上面三阶段流水线的细节大多来自这里。
我记下的核心脉络:
- 预训练 = 数据处理 + 下一个 token 预测。Common Crawl → 去重、过滤垃圾与隐私(PII)→ FineWeb(约 44TB、15 万亿 token);文本经 BPE(字节对编码)切成 token,GPT-4 词表约 10 万。训练目标只有一个:预测下一个 token。
- "随机性"既是创造力也是幻觉的根源。模型从下一个 token 的概率分布中采样,这让它能产出多样输出,也让它会一本正经地编造。
- 成本剧变。2019 年 GPT-2(16 亿参数、1024 token 上下文、约 1000 亿 token 训练)当年训练要 4 万美元;如今用优化管线在 8×H100 上约 24 小时、672 美元即可复现——这解释了为什么本周作业能在自己电脑上跑开源模型。
- SFT 把"补全机"变"助手"(详见上面阶段二)。
- RL 与"顿悟时刻"。用 DeepSeek-R1 论文举例:随训练推进,模型学会用越来越多 token 推理,出现并非被显式教过的 "aha moment"。
- 那个著名失败例子。"9.11 和 9.9 哪个大"会答错——内部发现与"9.11"相关的神经元和"圣经章节(9.11 排在 9.9 之后)"高度相关,绝佳地证明它按统计相关而非数值逻辑工作。
Prompt Engineering Overview
来源:Anthropic 官方文档(Claude Docs)· 阅读原文 →
这是什么。Anthropic 给开发者的提示工程总纲。它不堆技巧,而是先回答更上位的问题:什么时候该用提示工程,而不是微调?
提示工程 vs 微调——四条理由:
- 资源高效:微调要高端 GPU 和大显存,提示工程只需文本输入。
- 成本更低:云端微调开销大,提示工程直接用基座模型,通常更便宜。
- 不丢通用能力:微调有"灾难性遗忘"风险,提示工程保留模型的广博能力。
- 透明可调试:提示是人类可读的,能清楚看到模型收到了什么。
关键工作流:动手写提示之前,先定义成功标准和一套测试用例(eval)。文档把技巧按"普适→专门"排序,建议照顺序试。它也诚实提醒:不是所有问题都该靠提示解决——比如延迟和成本,换个模型有时更有效。
Prompt Engineering Guide
来源:DAIR.AI(promptingguide.ai),开源社区维护 · 阅读原文 →
这是什么。目前覆盖最全的提示技巧百科,汇集大量论文与可复制示例。第 2 篇给"框架",这篇给"工具箱"——本周作业要实现的技巧这里几乎都有独立词条和范例。
| 技巧 | 一句话要义 |
|---|---|
| Few-shot(少样本) | 在提示里塞几个范例,模型照格式学。 |
| Chain-of-Thought(思维链) | "一步步想",把推理摊开到多个 token。 |
| Self-Consistency(自洽性) | 多次采样取多数答案,对冲随机性。 |
| RAG(检索增强) | 注入外部文档,让回答锚定真实事实。 |
| ReAct / Reflexion(反思) | 把报错回灌,让模型迭代自我纠错。 |
| Tool use(工具调用) | 让模型调用外部函数完成它不擅长的事。 |
此外还覆盖 Zero-shot、Tree of Thoughts、Meta Prompting、Prompt Chaining 乃至上下文工程等进阶主题,可作为后续几周的长期参考书。
TODO。第 2 篇负责"思路",这篇负责"查法"。
AI Prompt Engineering: A Deep Dive
来源:Anthropic 圆桌,Amanda Askell、Alex Albert、David Hershey、Zack Witten 对谈 · 阅读原文 →
这是什么。四位 Anthropic 提示工程专家的圆桌,从研究、消费者、企业三个视角聊提示。它补的是文档教不了的东西:高手做这件事时脑子里在想什么。
- 本质是"把想清楚的事说清楚"。难点往往不在措辞,而在你自己是否真想明白了要什么。表达的清晰度,等于思考的清晰度。
- 怎么变强?读提示、读模型输出。看到好提示就逐句拆"它在做什么、为什么",再自己实验、大量和模型对话——刻意练习,而非背模板。
- 别过度设计。写清楚任务描述就好,不要急着搭复杂抽象结构。
- 企业 vs 研究提示。用心程度一样,但研究更追求多样性和覆盖边界,企业更追求稳定可复现;差异主要在"最后一公里"。
- 把模型当能干的协作者,而非需要哄的工具。与其把话说得过分简单,不如把真实情境、约束、意图讲透。
How OpenAI Uses Codex
来源:OpenAI 官方,内部工程工作流实录 · 阅读原文 →
这是什么。OpenAI 公开了自家工程师每天怎么用 Codex,带真实 prompt 示例和工程师原话。它把前四篇的"原理与技巧"落到一个具体问题上:当 AI 真的进入日常开发,它在哪些环节产生价值?(具体四个省时场景见上面第 8 节。)
五类真实用法:理解代码(读懂陌生代码库、事故响应时追踪故障传播)、跨文件重构(几十个文件一致改动)、性能优化与代码健康(找慢调用、降技术债)、加速开发周期两端(开头生成脚手架、收尾补最后一公里)、后台并行干活——一句工程师原话很传神:开了一整天会,仍合并了 4 个 PR,因为 Codex 在后台一直工作。这正是第 3 周"异步 Agent"的现实预演。
来源:5 篇均为官网第一周指定阅读,标题与官网截图一致;各篇内容基于其公开原文/权威转述及课程讲解整理 / 置信度:高
本周作业:LLM Prompting Playground
官网将第一周作业列为 LLM Prompting Playground,对应代码在作业仓库 week1 目录下,主题是 Prompting Techniques:通过为特定任务设计提示,亲手实践多种提示技巧,每个任务说明写在对应源文件开头。
环境配置
本周用 Ollama 在本地运行多个前沿开源 LLM。先完成顶层 README.md 的安装,再装 Ollama:
# macOS(Homebrew) brew install --cask ollama ollama serve # Linux(推荐) curl -fsSL https://ollama.com/install.sh | sh # 验证 ollama -v # 拉取本周所需模型(只需一次) ollama run mistral-nemo:12b ollama run llama3.1:8b
六个待完成的源文件
| 技巧 | 源文件 |
|---|---|
| 少样本提示 K-shot | week1/k_shot_prompting.py |
| 思维链 Chain-of-Thought | week1/chain_of_thought.py |
| 工具调用 Tool calling | week1/tool_calling.py |
| 自洽性 Self-consistency | week1/self_consistency_prompting.py |
| 检索增强 RAG | week1/rag.py |
| 反思 Reflexion | week1/reflexion.py |
交付要求
- 阅读每个文件里的任务说明。
- 设计并运行提示——只改代码中标记
TODO的地方,不要改动模型本身。 - 迭代改进,直到测试脚本通过。
- 为每种技巧保存最终提示与输出。
- 提交包含每个技巧的完整代码,确认所有
TODO都已解决。
评分标准(共 60 分)
六种提示技巧,每个完成的提示 10 分。
来源:作业仓库 week1/assignment.md 一手内容 / 置信度:高
本周课程安排
第一周共两讲,各配一份 Google Slides(链接见官网 themodernsoftware.dev):
| 时间 | 主题 |
|---|---|
| 周一 9/22 | 导论,以及一个 LLM 是如何被造出来的(Introduction and how an LLM is made) |
| 周五 9/26 | 面向 LLM 的强力提示(Power prompting for LLMs) |
来源:官网第一周页面(用户提供截图)/ 置信度:高
学完第一周,我要记住的
完整路径:从数万亿条原始互联网 token,经过赋予 AI 人格的人类标注对话,一路到需要思维链的高级推理。记住三段式(预训练给知识、SFT 给人格、RL 给推理)和瑞士奶酪模型,我就拿到了理解后面八周的钥匙。第一周不教任何工具,却决定了我用所有工具的姿态。
一个值得反复回味的开放问题
当 LLM 在答案可验证的问题上用纯强化学习训练时,模型不受人类逻辑的约束。多年前我们就在 AlphaGo 身上见过这一幕——它发现了"第 37 手",一个绝妙、完全出人意料、没有任何人类会考虑的下法。
那么,如果这些"会思考"的模型继续进化,在开放域问题求解中不断发现全新的、更优越的认知策略,甚至发明一种比英语更高效的内部思维语言——当解决一个复杂商业问题的最优方法,是任何人类都无法构想出来的东西时,这对我们意味着什么?这就引出了一个关于未来人机协作的重要问题,也是我想带着进入后面几周的思考。