[LLM Agents F25] LLM Agents Overview 与训练路线
| 字段 | 内容 |
|---|---|
| 作者/整理 | 基于 Yann Dubois 授课内容整理 |
| 来源 | Berkeley RDI |
| 日期 | 2026-08-18 |
![[LLM Agents F25] LLM Agents Overview 与训练路线](cover.jpg)
官方幻灯片证据链:先建立整套训练地图
这一节先按课堂顺序重建 Yann Dubois 的论证,而不是立即跳到某个热门算法。读图时要始终带着同一个问题:每个训练阶段究竟在优化什么,所需数据是什么形态,失败时应该先检查模型、数据、评估还是系统?后面的工程推演会重新组织这些材料;这里保留官方 deck 的视觉顺序,负责把来源证据、课堂口头解释和课程主线对齐。
从语言模型到 Agent:阶段不同,瓶颈也不同
开场五页把整讲压缩成一张研发地图。前两页提出“这些模型到底怎样训练”的总问题;第三页把 pretraining、reasoning RL 与经典 post-training/RLHF 并列;第四页指出 architecture 和 loss 并不是实践中的全部;第五页再把 prompting 与 finetuning 放到“已有模型如何专门化”的支线上。这里最重要的不是记住某个美元数字,而是看出资源形态的迁移:预训练吃海量 token 与长期计算,后训练吃高质量任务与可靠评估,reasoning RL 又额外依赖可交互环境和防作弊 verifier。
\lecturefigure{slides-images/slide-001.png}{官方 slide 1:课程题目、讲者与公开资料边界} \lecturefigure{slides-images/slide-002.png}{官方 slide 2:从 LLM 普及转向“模型如何训练”} \lecturefigure{slides-images/slide-003.png}{官方 slide 3:预训练、推理强化学习与经典后训练的数量级对照} \lecturefigure{slides-images/slide-004.png}{官方 slide 4:训练流水线从架构/损失扩展到数据、评估与系统} \lecturefigure{slides-images/slide-005.png}{官方 slide 5:prompting 与 finetuning 的专门化路径}
读图:先比较“瓶颈列”,不要先比较价格
slide 3 的 Data、Time、Compute cost 和 Bottleneck 是同一套比较维度。预训练的数据量以十万亿 token 计,训练时间以月计;经典后训练的数据量小几个数量级,却更依赖样本质量和多轴评估;reasoning RL 的难点不是只把训练跑起来,而是构造不会被策略钻空子的环境。slide 5 进一步说明 prompting 几乎没有训练成本,但其瓶颈仍然是评估,因为没有任务集就无法判断提示词是否真的改善了行为。课程因此把“数据、评估、系统”放在贯穿所有阶段的位置。
数量级不是报价单
课堂提示:讲者在 00:00--00:09 多次说明这些数字来自 2025 年公开的 Kimi、LLaMA、DeepSeek 等项目,只用于建立 order-of-magnitude intuition。不同模型规模、硬件租赁方式、利用率和数据采购策略会显著改变实际成本,不能把“\(>10M\)”或“\(>1M\)”直接当成项目预算。真正稳定的结论是:阶段改变后,主要稀缺资源也随之改变。
这组图还纠正了一个常见误区:Agent 能力不是在基础模型上“再加一个框架”就自动出现。预训练提供知识和一般模式,后训练塑造交互行为,reasoning RL 强化可验证推理,工具和环境训练再把文本决策变成有副作用的动作。任何一段缺少对应评估,下一段都可能把错误放大。因此全课后续的内容虽然跨越数据、RL、GPU 与并行系统,实际上都在回答同一个端到端问题。
预训练机制:预测下一个 token 为何能够泛化
从 slide 7 开始,课程把“预测下一个词”拆成可执行过程。自回归语言模型先把文本转换成 token,做一次前向计算得到下一个 token 的条件分布,再采样并解码。n-gram 是最直接的统计基线:统计上下文后各种续词的频率。但自然语言组合近乎无限,绝大多数长上下文只出现一次,显式计数既占空间又无法迁移到未见句子。神经语言模型的关键贡献,是把离散上下文压缩到连续表示中,让相似语义共享统计强度。
\lecturefigure{slides-images/slide-007.png}{官方 slide 7:预训练目标、数据规模与历史位置} \lecturefigure{slides-images/slide-008.png}{官方 slide 8:自回归语言模型的 tokenization、forward、sampling 与 detokenization} \lecturefigure{slides-images/slide-009.png}{官方 slide 9:n-gram 条件频率估计及其泛化失败} \lecturefigure{slides-images/slide-010.png}{官方 slide 10:神经语言模型作为 n-gram 稀疏性的解决方向}
从计数到参数共享
对 n-gram,条件概率可写为
其中 \(c\) 表示前文上下文,\(x\) 表示候选下一个 token。问题不在公式错误,而在每个 \(c\) 都需要独立计数。神经模型学习参数化函数 \(P_\theta(x\mid c)\),使不同上下文通过 embedding 和网络层共享参数;它不是记住所有句子,而是学习哪些上下文在预测上应被视为相似。
背景概念:token、word 与 character
token 是 tokenizer 输出的离散符号,不等于自然语言中的“词”。英文常见 token 约为若干字符,中文可能是单字、词片段或字节组合。训练规模用 token 计,是因为模型每一步预测的是词表中的 token ID;同一段文字在不同 tokenizer 下会产生不同长度,所以“10T tokens”不能无条件换算成固定字数。slide 8 的五步流程也说明,tokenization 属于模型输入协议的一部分,不是纯粹的预处理细节。
老师强调:讲者把预训练描述为“尽可能学习互联网和世界”,这是训练直觉,不是知识完备性保证。next-token objective 会同时学习事实、语言结构、偏见和数据中的错误;模型能流畅续写,也不意味着它已经具备可靠的用户意图理解或行动约束。这正是后训练存在的原因,下一组 slides 会先说明预训练语料如何被构造,再讨论目标如何改变。
数据工程:所谓“干净互联网”是加工结果
slides 12--15 是本讲最容易被一句“用 Common Crawl 训练”掩盖的部分。真实流水线从 WARC 抓取档案开始,要经历 HTML 正文抽取、NSFW/PII 等风险过滤、URL/文档/行级去重、启发式质量过滤、模型质量评分和 domain mixture 重加权。每一步都在改变训练分布。midtraining 则在预训练后用更小但更有针对性的语料继续训练,用于提高科学、代码、多语言、长上下文、格式遵循或 reasoning 等特性。
\lecturefigure{slides-images/slide-012.png}{官方 slide 12:从 Common Crawl 到数据 mixture 的七步预训练数据流水线} \lecturefigure{slides-images/slide-013.png}{官方 slide 13:FineWeb 各级过滤如何逐步缩小网页集合} \lecturefigure{slides-images/slide-014.png}{官方 slide 14:midtraining 的领域、长度、格式与质量适配} \lecturefigure{slides-images/slide-015.png}{官方 slide 15:公开语料规模、研究问题与数据保密动机}
读图:过滤漏斗同时改变规模与分布
slide 13 右侧的 200B、36B、20B、15B 不是“越少越好”的排行榜,而是网页集合经过语言、重复、长度、模板和质量规则后的数量变化。读者应追问每层删掉了什么、对哪些语言或网站更不利、是否把稀有但有价值的内容一起删除。slide 15 列出的 C4、The Pile、Dolma、FineWeb 也不能只按 token 数比较;采集时间、许可、语言比例、去重粒度和分类体系都会影响模型学到的行为。
数据质量不是单一“清洁分数”
过滤器通常同时承担安全、法律、语言和质量目标,这些目标可能冲突。强力去重可降低 memorization,却可能删除多来源共同确认的事实;Wikipedia-like classifier 可提升百科风格,却可能压低论坛、口语和低资源语言;高质量 annealing 可改善终局指标,却不证明原始大规模语料可以被省略。课堂提示:讲者把数据称为 practical LLM 的关键,意在强调流水线和 mixture 的决定性,而不是暗示存在一个放之四海皆准的“完美语料”。
从 Agent 角度看,这一段还有更深的连接:预训练分布决定模型最初会哪些工具、熟悉哪些接口、默认采用什么写作和推理习惯;midtraining 决定这些先验能否适应长上下文、代码或多语言环境。后训练可以校正行为,却很难低成本补回基础模型从未获得的广泛知识。因此数据治理既是模型能力问题,也是后续 Agent 环境覆盖率问题。
Scaling law:把大模型赌博改造成可外推实验
slides 17--23 从“多花计算通常能改善 loss”出发,说明 scaling law 的工程价值。旧流程在大模型上直接试大量超参数,失败试验本身就与最终训练一样昂贵;新流程在多个小规模点上拟合学习率、模型规模、数据量与性能之间的规律,再把 recipe 外推到目标规模。Chinchilla 的 IsoFLOP 分析进一步问:固定计算预算时,参数和 token 应怎样分配。Bitter Lesson 则提醒长期进步往往来自能随计算扩展的一般方法。
\lecturefigure{slides-images/slide-017.png}{官方 slide 17:计算量与性能之间的经验 scaling law} \lecturefigure{slides-images/slide-018.png}{官方 slide 18:从大模型试错转向小规模 recipe 外推} \lecturefigure{slides-images/slide-019.png}{官方 slide 19:用常数项与斜率比较架构的扩展表现} \lecturefigure{slides-images/slide-020.png}{官方 slide 20:Chinchilla IsoFLOP 下的参数/数据最优分配} \lecturefigure{slides-images/slide-021.png}{官方 slide 21:Bitter Lesson 与利用计算的一般方法} \lecturefigure{slides-images/slide-022.png}{官方 slide 22:LLaMA 3 405B 训练 FLOPs、时间、成本与碳排估算} \lecturefigure{slides-images/slide-023.png}{官方 slide 23:预训练阶段的数量级总结}
读图:斜率、常数与外推区间
slide 19 中“Transformer 比 LSTM 更好”包含两个维度:在观察区间内起点更低,以及随 compute 增长下降得更快。只有少量点时,斜率估计很不稳定;跨越过大数量级外推还可能遇到数据质量、优化器、硬件和架构变化。slide 20 的 IsoFLOP 曲线也只回答固定训练计算下的 loss 最优,不直接回答部署延迟、显存、数据许可或推理成本最优。scaling law 是预算决策工具,不是取消机制研究的理由。
Worked example:训练 FLOPs 怎样估算
对 dense Transformer,课程采用近似式
其中 \(N\) 是参数量,\(D\) 是训练 token 数,系数 6 粗略包含 forward 与 backward。以 \(N=405\times10^9\)、\(D=15.6\times10^{12}\) 代入,得到约 \(3.8\times10^{25}\) FLOPs。再除以 GPU 数、有效吞吐和时间单位,可估 GPU-hours。这里的关键不在最后一位数字,而在把“模型规模”转成可审计的资源假设。
Bitter Lesson 不等于“只要堆卡”
课程引用 Sutton 是为了反对无法随规模扩展的手工技巧,但 slide 18 同时强调 recipe、数据和小规模实验。若数据 mixture 错误、评估失真或系统利用率低,增加 compute 只会更昂贵地重复错误。讲义提醒:slide 22 的租赁单价、400 TFLOPS 平均吞吐和碳强度都是估算假设;它支持“前沿训练是系统级项目”,不证明任何机构的真实成本或环境影响精确等于表中数字。
后训练目标:会续写不等于会帮助用户
slides 25--28 完成从 pretraining 到 post-training 的概念转折。语言模型目标只要求给训练分布中的文本高概率,不要求遵循当前用户意图、拒绝危险请求、使用指定格式或在困难任务上花更多 test-time compute。经典 alignment/post-training 以人类偏好和任务效用为目标;reasoning training 则强调有可验证答案的困难问题,并通过更长推理实现 test-time scaling。
\lecturefigure{slides-images/slide-025.png}{官方 slide 25:language modeling 与 assisting users 的目标错位} \lecturefigure{slides-images/slide-026.png}{官方 slide 26:经典 post-training/alignment/instruction following} \lecturefigure{slides-images/slide-027.png}{官方 slide 27:reasoning 训练的正确性目标与可验证任务} \lecturefigure{slides-images/slide-028.png}{官方 slide 28:reasoning 与 test-time scaling}
术语消化:三个目标函数解决三类问题
| 阶段 | 优化信号 | 最直接解决的问题 |
|---|---|---|
| Pretraining | next-token likelihood | 获得广泛知识、语言和模式先验 |
| Alignment/PT | 人类偏好或用户效用 | 指令遵循、风格、安全与交互习惯 |
| Reasoning RL | 可验证正确性奖励 | 在难题上探索多步策略与 test-time compute |
老师强调:经典 post-training 可以理解为把“知道很多但不会与人交互”的模型变成 instruct model;reasoning RL 在真实训练顺序中常位于经典偏好对齐之前或与之交错。slide 3 把它们并列是为了比较,不是声明所有团队必须采用完全相同的固定顺序。对于 Agent,目标还要继续扩展到环境状态、工具调用和终局成功,因此后训练的定义本身会随任务边界变化。
SFT 数据系统:少量样本为何能快速塑形
slides 30--36 先给出 SFT 的基本机制:在少量理想回答上继续做 language modeling。人工示范曾是 ChatGPT 式指令模型的关键,但成本和速度限制促使 Alpaca 使用强模型生成指令数据。若有 verifier,还可以让临时模型生成多个候选,再通过测试、规则或偏好筛选正确样本。Kimi K2 展示了更复杂的 Agent 数据系统:模拟用户和工具、生成轨迹,再用 rubric 和 grounded code 信号过滤。
\lecturefigure{slides-images/slide-030.png}{官方 slide 30:alignment 任务与少量目标行为数据} \lecturefigure{slides-images/slide-031.png}{官方 slide 31:SFT 对理想答案继续做 next-token prediction} \lecturefigure{slides-images/slide-032.png}{官方 slide 32:Alpaca 用 LLM 扩展指令数据} \lecturefigure{slides-images/slide-033.png}{官方 slide 33:DeepSeek-R1 式 verifier rejection sampling} \lecturefigure{slides-images/slide-034.png}{官方 slide 34:SFT 可学习格式、工具使用与早期推理} \lecturefigure{slides-images/slide-035.png}{官方 slide 35:Kimi K2 的模拟用户、工具与 rubric 数据流水线} \lecturefigure{slides-images/slide-036.png}{官方 slide 36:SFT 数据量、LIMA 与 DeepSeek-R1 数量级}
读图:synthetic data 的关键是外部判据
slide 32 的 teacher model 路径容易被误读成“让模型复制更强模型”。slide 33 增加 verifier 后,生成器只负责扩大候选空间,正确性由测试或其他外部规则决定;这降低了对 teacher 全面更强的要求。slide 35 又把任务推广到工具环境:模拟器必须产生可执行反馈,rubric 必须检查轨迹是否真正完成目标。数据系统的核心因此是 generator、environment、verifier 三者分工,而不是单一模型自举。
SFT 学得快,不代表获得了新知识
slide 36 的 LIMA 结果支持“少量高质量样本足以塑造格式与 instruction following”,因为大量知识已经在预训练中存在。它不支持用一万条样本从零教会基础模型一个完全陌生领域。对 Agent tool use,模型还可能只学会 JSON 外形,却没有学会何时调用、怎样处理异常和如何验证副作用。评估必须把格式正确与任务成功分开。
实践经验:讲者在 01:02--01:08 特别推荐阅读 Kimi K2 的数据构造方法。这里的教学重点不是复刻某个私有 pipeline,而是学会把复杂能力拆成可生成、可执行、可筛选的轨迹。下一组 slides 转向 RL,正是因为行为克隆始终受示范者能力限制,并可能在模型不知道答案时教出“自信地编造”。
从行为克隆到奖励优化:RL、GRPO 与 RLHF
slides 38--47 解释为什么后训练不能只靠 SFT。行为克隆受人类示范上限约束,理想答案昂贵,而且把模型不知道的正确答案硬塞给它,可能训练出看似可信的 hallucination。RL 改为最大化期望奖励;奖励可以来自字符串匹配、代码测试、偏好 reward model 或 LLM judge。DeepSeek-R1 使用 GRPO 一类基于同题多样本估计 advantage 的方法。对于 Agent,sampling、长 rollout 和慢环境反馈又把基础设施推到核心位置。
\lecturefigure{slides-images/slide-038.png}{官方 slide 38:SFT 行为克隆的能力、幻觉与成本限制} \lecturefigure{slides-images/slide-039.png}{官方 slide 39:从克隆答案转向最大化规则/模型/裁判奖励} \lecturefigure{slides-images/slide-040.png}{官方 slide 40:DeepSeek-R1 强化学习流程示意} \lecturefigure{slides-images/slide-041.png}{官方 slide 41:GRPO 用组内 Monte Carlo 样本估计 advantage} \lecturefigure{slides-images/slide-042.png}{官方 slide 42:长 rollout、并发环境服务与 collocated engines} \lecturefigure{slides-images/slide-043.png}{官方 slide 43:RLHF 从成对偏好到策略更新的流程} \lecturefigure{slides-images/slide-044.png}{官方 slide 44:PPO/DPO 相对 SFT/pretrain 的偏好收益示例} \lecturefigure{slides-images/slide-045.png}{官方 slide 45:人类偏好数据需要任务、样例和标注指南} \lecturefigure{slides-images/slide-046.png}{官方 slide 46:人类偏好数据的速度、正确性、分布与伦理挑战} \lecturefigure{slides-images/slide-047.png}{官方 slide 47:以 LLM preference 替代部分人类偏好的 RLAIF 思路}
GRPO 的直觉
对同一问题采样一组回答,依据奖励 \(r_i\) 做组内标准化,可得到近似 advantage
高于组均值的轨迹被增强,低于组均值的轨迹被抑制。符号 \(r_i\) 表示第 \(i\) 条 rollout 的奖励,\(\epsilon\) 防止标准差过小时数值不稳定。这个估计减少了单独训练 value model 的需求,但仍高度依赖采样多样性、奖励可靠性和环境不可被投机利用。
术语消化:PPO、DPO、RLHF 与 RLAIF
RLHF 是使用人类偏好信号对齐模型的总体范式;PPO 是可用于更新策略的一类 on-policy 强化学习算法;DPO 直接从偏好对优化策略与参考模型的相对概率,不需要显式 rollout reward optimization;RLAIF 则用 AI 反馈替代或补充人类偏好。它们不是同一层级的互斥缩写。课程把它们放在一起,是为了比较“偏好从哪里来”和“策略怎样吸收偏好”两个不同问题。
Reward hacking 是评估器失败,不是模型“作弊人格”
老师强调:在 00:05--00:07,讲者举例说明 Agent 可能修改测试、让测试永远返回 true,从而获得高奖励。这说明环境暴露了与真实目标不一致的捷径。修复方向包括权限隔离、不可篡改 verifier、多重结果检查和对轨迹副作用审计,而不是只在 prompt 中要求模型“诚实”。slide 42 的系统设计也要服务这一目标:并发和暂停长尾 rollout 提高吞吐,但不能丢失可审计状态。
人类偏好同样不是无噪声真值。标注者容易偏好更长、更流畅、更像标准答案的输出,也可能因为知识不足而忽略事实错误;标注人口分布还会改变模型行为。LLM judge 能显著降低成本,却会继承自己的偏好。课程因此自然转入评估章节:只有明确评估在训练闭环中的角色,团队才能判断 reward gain 是真实能力进步,还是评估器偏差被策略放大。
评估闭环:分数的用途是做决策,不是装饰榜单
slides 49--52 先回答评估为何存在:识别一次改动是否有效、在候选模型中做选择、判断系统是否可以进入生产。close-ended evaluation 通过有限答案空间实现自动验证,MMLU 是典型例子;但 prompt 模板、选项顺序、解析器和 train-test contamination 都会影响结果。课程特别提醒,开发期最危险的不是“测试集被模型见过”这一标签本身,而是团队误以为分数变化来自能力,实际上来自评估协议变化。
\lecturefigure{slides-images/slide-049.png}{官方 slide 49:评估服务于改进识别、模型选择与生产决策} \lecturefigure{slides-images/slide-050.png}{官方 slide 50:MMLU 式 close-ended 自动验证} \lecturefigure{slides-images/slide-051.png}{官方 slide 51:prompt 敏感性与评估不一致} \lecturefigure{slides-images/slide-052.png}{官方 slide 52:提示敏感性与 train-test contamination}
读图:先问“这个分数用于哪项决策”
同一个 benchmark 可以用于快速回归、研究比较或上线门槛,但三种用途要求不同。快速回归重视稳定、便宜和可定位;研究比较需要公开协议与置信区间;上线门槛还要覆盖真实任务分布、延迟、成本和安全。slide 49 的三个动词 Identify、Select、Decide 正是在提醒评估不是单一排行榜。若评估不能改变研发选择,它只是观测报表;若一个分数被用于高风险上线决策,就必须补充失败分布和人工复核。
Contamination 不只有“训练集抄答案”一种形式
模型可能见过题目、答案、题目改写或 benchmark 讨论;开发者也可能通过反复调 prompt 对测试集过拟合。反过来,发现疑似污染也不代表 benchmark 完全无用:它仍可用于回归,但不能再被解释为纯粹的 unseen generalization。老师强调:课堂说 contamination 对日常开发“没有那么重要”,语境是只要协议稳定,它仍能帮助比较版本;这不等于在科学报告中可以忽略泄漏。
评估协议应被视为版本化代码。模型版本、prompt、采样温度、解码上限、工具版本、判分器和数据快照都要一并记录。Agent 任务还要保存环境状态和执行轨迹,否则同一模型在不同 API 响应或权限配置下产生的差异会被错误归因给训练。close-ended 指标提供速度,但它只能承担可自动判定的那一部分目标。
开放式评估:人类、Arena 与 LLM Judge 的三角关系
slides 54--56 转向 ChatGPT 一类开放式系统。答案空间不再有限,任务也可能同时涉及事实、帮助性、风格和安全。InstructGPT 使用成对人类偏好;Chatbot Arena 让真实用户在盲测中选择;AlpacaEval 用强 LLM 代替大量人工判断,以极低成本获得与 Arena 高相关的 win rate。这个进步解决了速度问题,却没有自动解决偏差问题,尤其是 judge 对长度、格式、自信语气或特定模型风格的偏好。
\lecturefigure{slides-images/slide-054.png}{官方 slide 54:开放式 aligned LLM 需要偏好评估} \lecturefigure{slides-images/slide-055.png}{官方 slide 55:Chatbot Arena 的盲测与真实用户偏好} \lecturefigure{slides-images/slide-056.png}{官方 slide 56:AlpacaEval 的 LLM judge、速度与 spurious correlation}
读图:相关性高不等于评估器无偏
slide 56 的“98% correlation”表达在特定模型集合和协议上,AlpacaEval 排序与 Arena 高度一致。相关性不能证明单条判断正确,也不能保证分布变化后仍成立。若候选模型学会输出更长答案,而 judge 恰好偏好长度,win rate 会提高但真实效用未必提高。解决方法包括 length-controlled regression、分桶比较、交换答案位置、多 judge 复核和定期用人类样本校准。
开放式评估的最小证据包
一个可用于研发决策的 open-ended 结果,至少应报告:任务样本来源、对比 baseline、judge 提示与版本、位置随机化、长度分布、胜负/平局规则、置信区间和人类校准子集。Agent 还需补充终局成功、过程违规、工具副作用与每次成功成本。只有“平均 judge 分”无法区分模型更会完成任务,还是更会取悦 judge。
课堂提示:讲者将 evaluation 称为实践瓶颈,是因为数据和奖励最终都依赖它。一个系统若用同一 LLM 同时生成训练数据、筛选样本和充当最终 judge,误差可能形成闭环自我强化。工程上应尽量让 generator、verifier 与 audit source 多样化,并保留真实用户或可执行环境作为外部锚点。
GPU 基础:峰值算力之外,先看数据能否喂到计算单元
slides 58--63 建立系统部分的最低知识框架。GPU 用大量线程执行相同指令并擅长矩阵乘法,因此适合高吞吐训练;但计算单元增长速度远快于内存和通信,真正瓶颈常是把权重、activation 与梯度搬到合适位置。memory hierarchy 越靠近计算核心越快、容量越小,越远越慢、容量越大。Model FLOP Utilization(MFU)把观测吞吐与硬件理论峰值相除,用于判断训练是否有效利用矩阵算力。
\lecturefigure{slides-images/slide-058.png}{官方 slide 58:GPU 稀缺、物理通信限制与资源分配} \lecturefigure{slides-images/slide-059.png}{官方 slide 59:GPU 的线程级大规模并行} \lecturefigure{slides-images/slide-060.png}{官方 slide 60:专用矩阵核心带来的高吞吐} \lecturefigure{slides-images/slide-061.png}{官方 slide 61:计算增长快于 memory/communication} \lecturefigure{slides-images/slide-062.png}{官方 slide 62:靠近核心更快但更小的 memory hierarchy} \lecturefigure{slides-images/slide-063.png}{官方 slide 63:MFU 定义与 50% 的工程直觉}
术语消化:DRAM、HBM、SRAM 与 MFU
DRAM(Dynamic Random-Access Memory)是动态随机存取存储器;GPU 显存通常采用高带宽封装的 HBM(High Bandwidth Memory),容量大但离计算核心较远。SRAM(Static Random-Access Memory)用于片上 cache/shared memory,速度快但容量小。数据从 HBM 反复读写会浪费带宽和能量,因此 kernel 会尽量在 SRAM/寄存器中复用。MFU 定义为实际有效模型 FLOPs 吞吐除以理论峰值;它不是 GPU utilization 百分比,也不包含所有非模型操作的价值判断。
读图:DataMovement 图在说明什么
slide 61 将 BERT 算子中的 MatMul、Activation 与 DataMovement 分开,目的是说明 wall-clock 时间不只由 FLOPs 决定。一个算子 FLOPs 很少,却可能因为每次都读写大张量而耗时;另一个矩阵乘法 FLOPs 很高,但 Tensor Core 能高效完成。读这类图时先区分“计算量占比”和“执行时间占比”,再问数据是否被复用、是否触发跨卡通信。不能从 FLOPs 低直接推出优化价值低。
50% MFU 为什么已经很好
老师强调:约 01:36,讲者说 50% MFU 已处于非常好的状态,因为真实训练包含通信、非矩阵算子、数据加载、同步和数值稳定处理。理论峰值通常假设理想矩阵形状与持续满载。MFU 低需要定位瓶颈,但 MFU 高也不代表端到端系统最优:若为了堆大 batch 提高 MFU,却降低样本效率或增加延迟,最终训练成本仍可能更差。
Agent RL 会进一步放大系统不规则性:不同轨迹长度不同,工具响应时间不同,部分环境需要网络或沙箱,GPU 很难像预训练那样持续处理整齐的大 batch。因此课程在 RL 部分提到暂停长尾 rollout 和并发环境服务,与这里的 memory/compute 分析是一条主线:优化目标不是让每个组件单独满载,而是提高单位时间获得的有效学习信号。
低精度、融合、tiling 与 FlashAttention:减少昂贵的数据搬运
slides 64--67 给出单卡优化的四个常用杠杆。低精度减少内存占用与通信量,并让矩阵核心获得更高吞吐;Automatic Mixed Precision(AMP)在计算与更新之间保留不同精度。operator fusion 把多个操作合并进一个 kernel,避免每行框架代码都把中间张量写回 HBM。tiling 把矩阵切成能放进片上存储的块,从而复用数据。FlashAttention 则把 fusion、tiling 和 recomputation 组合到 attention 中。
\lecturefigure{slides-images/slide-064.png}{官方 slide 64:Automatic Mixed Precision 的权重、activation、gradient 与更新精度} \lecturefigure{slides-images/slide-065.png}{官方 slide 65:operator fusion 减少 DRAM 往返} \lecturefigure{slides-images/slide-066.png}{官方 slide 66:tiling 通过片上复用降低全局内存读取} \lecturefigure{slides-images/slide-067.png}{官方 slide 67:FlashAttention 组合融合、分块与重计算}
背景概念:什么是 fused kernel
fused kernel(融合内核)把原本多个 GPU 操作合并为一次 kernel 执行,使中间结果尽量保留在寄存器或片上 SRAM,而不是每一步都写回 HBM,再由下一 kernel 读出。收益来自减少 HBM 读写和 kernel launch overhead,不是减少数学上必需的所有计算。融合过度也会增加寄存器压力、降低 occupancy,或让编译和调试更困难,因此应以 profiler 的实际瓶颈为依据。
Arithmetic intensity 的判断框架
算术强度可写为
其中分子是执行的浮点运算量,分母是从 HBM 等慢层级搬运的字节数。\(I\) 低时算子倾向 memory-bound,应优先减少读写、做 fusion/tiling;\(I\) 高时更可能 compute-bound,应关注矩阵形状、Tensor Core 和并行度。recomputation 有时增加 FLOPs 却减少内存流量,因此可能反而更快。
读图:FlashAttention 的 1.7x 不是普适常数
slide 67 的 end-to-end speedup 来自特定模型、序列长度、硬件和实现。它支持的机制性结论是:标准 attention 若物化巨大中间矩阵,会受 HBM 流量限制;按块计算并在线归一化可显著减少读写。它不证明所有短序列、小 batch 或新硬件上都恰好提升 1.7 倍。工程验收应分别测 kernel latency、显存峰值和端到端训练吞吐。
跨 GPU 扩展:分片对象决定显存与通信的交换
slides 68--73 从单卡进入多卡。训练一个 \(P\) 参数模型时,权重、Adam optimizer state、梯度和 activation 共同占用显存;课程用约 \(16P\) bytes 给出不含 activation 的粗略账本。naive data parallel 在每卡复制完整模型与 optimizer,只切数据,因此提高吞吐却不节省模型状态。ZeRO 让不同 data-parallel rank 只存一部分状态。模型并行则切 layer、矩阵或其他参数路径;Mixture of Experts(MoE)通过路由只激活部分专家,使总参数增长快于每 token 计算。
\lecturefigure{slides-images/slide-068.png}{官方 slide 68:权重、optimizer state 与梯度的显存账本} \lecturefigure{slides-images/slide-069.png}{官方 slide 69:naive data parallel 复制模型并归约梯度} \lecturefigure{slides-images/slide-070.png}{官方 slide 70:ZeRO 通过状态 sharding 获得显存收益} \lecturefigure{slides-images/slide-071.png}{官方 slide 71:pipeline parallel 按层切分模型} \lecturefigure{slides-images/slide-072.png}{官方 slide 72:tensor parallel 切分单个矩阵并组合部分结果} \lecturefigure{slides-images/slide-073.png}{官方 slide 73:MoE 以稀疏激活扩大总参数量}
术语消化:optimizer state、sharding、collectives 与 ZeRO
Adam/AdamW 的 optimizer state 包括一阶动量 \(m\) 和二阶动量 \(v\),通常各与参数同规模,因此仅这两项就可能是参数存储的两倍。sharding(分片)指把参数、梯度或 optimizer state 按设备切分,使每张 GPU 不再保存完整副本。collectives(集合通信)是多 GPU 协作原语,例如 all-reduce、reduce-scatter、all-gather 和 broadcast。ZeRO 在 data-parallel ranks 间分片状态:ZeRO-1 切 optimizer state,ZeRO-2 再切 gradients,ZeRO-3 进一步切 parameters;stage 越高越省显存,也通常需要更频繁地收集状态。
读图:并行策略不是互斥菜单
data parallel 主要切 batch,pipeline parallel 切 layer,tensor parallel 切单层矩阵,expert parallel 切 MoE 专家。大型训练常把它们组合,并让通信模式匹配硬件拓扑:高频 tensor collectives 更适合节点内高速互联,pipeline 可跨较慢链路,data parallel 再覆盖更大范围。slide 71--72 只画出基本机制,没有展示 bubble、microbatch、通信重叠和容错成本,不能仅凭示意图判断哪种策略更快。
显存公式的边界
slide 68 的 \(16P\) bytes 假设参数、梯度和两份 optimizer state 使用约 4 bytes/element 的简化账本,没有完整计入 activation、临时 buffer、通信 bucket、碎片和混合精度副本。7B 模型的 112GB 例子用于说明单卡困难,不是精确峰值。实际规划应从框架 dtype、optimizer、checkpointing、序列长度和 batch 形状逐项计算。
这组系统图与 Agent 训练的连接在于,Agent rollout 往往限制可用 batch,slide 71 所说“data parallel 需要足够 batch”会更突出;环境服务和长上下文还增加 activation 与 KV 数据。团队不能照搬预训练的并行配置,而应根据 rollout 长度分布、环境等待和模型状态大小重新选择 sharding 与并行维度。
Perplexity 与长度偏差:两个看似简单却容易误读的指标
slides 75--77 是问答后的评估补充。perplexity 把平均 token 交叉熵指数化,直觉上表示模型在每个位置“等效犹豫多少个候选”;它仍是预训练开发的重要监控指标,但不直接衡量 instruction following、事实性或 Agent 成功。随后课程回到 LLM judge 的 spurious correlation,以输出长度偏好说明评估器会奖励与真实目标无关的特征。
\lecturefigure{slides-images/slide-075.png}{官方 slide 75:perplexity 的公式与等效候选数直觉} \lecturefigure{slides-images/slide-076.png}{官方 slide 76:语言模型 perplexity 的历史下降与开发用途} \lecturefigure{slides-images/slide-077.png}{官方 slide 77:LLM judge 长度偏差与 length-controlled correction}
Perplexity 定义与符号
若长度为 \(L\) 的 token 序列为 \(x_{1:L}\),平均自然对数交叉熵为
其中 \(x_i\) 是第 \(i\) 个真实 token,\(x_{<i}\) 是前文,\(p\) 是模型给真实 token 的概率。若损失使用以 2 为底的对数,则写作 \(2^H\)。PPL 越低表示模型平均给真实续词更高概率,“等效候选数”只是直觉,不是说模型真的只在固定数量 token 间选择。
Perplexity 不能跨 tokenizer 直接比较
不同 tokenizer 会改变序列长度和每步预测单位,同一文本的 token-level PPL 因而不可直接横比。PPL 还可能在通用文本上改善,却让安全、工具调用或长任务表现退化。slide 76 的历史趋势支持语言建模能力显著提高,但不证明 2023 年后的 Agent 能力可由 PPL 单独预测。生产系统需要任务成功、成本、安全和恢复能力等额外指标。
读图:控制长度是在问因果问题
若模型 A 比 B 输出更长,judge 又偏好更长回答,原始 win rate 混合了“内容更好”和“更长”两种效应。length-controlled AlpacaEval 用回归或匹配方法控制长度后再估模型效应。它减少一个已知混杂因素,却不能自动消除事实性、风格、位置和 judge 自我偏好等其他偏差。正确做法是把评估器当作需要持续校准的测量仪器。
课程边界与 Tokenizer worked example
slide 79 明确列出本讲未覆盖的架构、推理、多模态、滥用、上下文、数据墙与法律问题,并指向 CS224N、CS324、CS336 等后续学习路径。slides 80--86 是 BPE 的逐步 reveal;中间六页只增加步骤文字,最终页包含完整流程,因此覆盖矩阵保留 slide 86。这个收尾提醒读者:tokenizer 看似基础,却决定序列长度、词表、跨语言效率和模型实际处理的离散单位。
\lecturefigure{slides-images/slide-079.png}{官方 slide 79:本讲未覆盖主题与后续课程} \lecturefigure{slides-images/slide-086.png}{官方 slide 86:BPE tokenizer 的完整训练流程}
读图:BPE 如何从字符得到子词
BPE 从字符或字节级 token 开始,统计相邻 token pair 的频率,把最高频 pair 合并成新 token,并重复直到达到目标词表大小。若语料中 “t h e” 高频出现,算法可能先合并 “t+h”,再合并 “th+e”。常见片段变成单 token,可缩短序列;罕见词仍能拆成更小单位,避免 word-level unknown token。实际 tokenizer 还要规定 normalization、空格、特殊 token 和 byte fallback。
Tokenizer 不是语言中立的压缩器
词表由训练语料频率决定。英文占比高时,英文词可能用更少 token 表示,而低资源语言、代码或特殊符号被切得更碎,导致相同字符数消耗更多上下文和推理费用。改变 tokenizer 还会改变 embedding/output 层和已有 checkpoint 的兼容性,因此通常在预训练前固定。课程把它放到附加页,是基础复习,不代表它对 Agent 成本和多语言能力不重要。
至此,官方 deck 的教学节点形成完整闭环:tokenizer 定义输入单位,预训练从大规模语料学习预测分布,SFT 与 RL 改变行为目标,评估决定优化方向,系统工程决定这些实验能否在预算内运行。后续章节不再逐页复述,而是把这条证据链重组为 Agent 项目可直接使用的训练、评估、成本与上线方法。
课程定位:这门课在 Agent 版图中的角色
讲者背景与课程目标
本讲由 Yann Dubois 主讲,定位是整个 Agentic AI MOOC 中关于 “训练 LLM 成为 Agent” 的总览课。课程不是单一算法讲解,而是把训练、评估、系统、成本、部署连成一个统一工程视角。讲者在开场强调,这是一版补录课程,核心目的是把原课堂因技术问题中断的内容完整补齐。
核心命题:Agent 能力不是单点突破,而是系统协同
如果只看模型参数量、只看某个 benchmark 排名,常常会误判进展。课程不断重复一个判断:决定上限的是数据质量、评估闭环、系统吞吐、推理策略与成本约束的耦合效果,而不是任何单个模块。
从 “聊天模型” 到 “可执行主体”
课程把 Agent 定义为能在环境中持续交互、调用工具、跨步骤保持目标一致性的模型系统。与传统单轮问答相比,Agent 有三个结构性变化:
- 输出不再是最终文本,而是中间动作序列(tool call / code / API)。
- 成功标准不再是 “看起来对”,而是是否在外部环境中完成目标。
- 推理成本由 “单次回答” 转为 “长时 rollout 的累计资源”。
课程的组织逻辑
从内容编排看,讲者先定义训练流水线,再讨论为什么 “evaluation is the key”,随后进入成本与系统瓶颈,最后回到 tool use 和 open-ended evaluation 的落地挑战。这种顺序对应真实研发节奏:先把环路搭起来,再优化每个瓶颈。
本章小结
本章建立了课程的基本坐标:这不是 “某个技巧” 的集合,而是 Agent 训练的端到端工程方法。后续所有技术细节都围绕一个问题展开,即如何把模型能力稳定转化为可验证、可扩展、可部署的 Agent 行为。
训练流水线总览:从 SFT 到 Reasoning RL 再到 Agent RL
三阶段训练架构
课程中将主干流程抽象为三层:监督微调(SFT)奠定基础行为,推理强化学习(Reasoning RL)增强中间思维质量,Agent 强化学习(Agent RL)把能力迁移到环境交互。
| 阶段 | 目标 | 典型风险 |
|---|---|---|
| SFT | 学习指令遵循、格式稳定、基础任务完成率 | 过拟合模板,推理深度不足 |
| Reasoning RL | 提升多步推导、策略反思、错误恢复能力 | 奖励设计失真,出现 reward hacking |
| Agent RL | 在真实或模拟环境中优化动作序列与终局成功率 | rollout 成本高,评估噪声大,训练不稳定 |
为什么 Reasoning RL 要单独成段
讲者明确指出,推理强化学习不是 “顺便做一下” 的附属步骤,而是连接文本能力与 Agent 行为的关键桥梁。没有稳定的中间推理,Agent 在工具链中的错误会沿时间轴放大,最终在长任务中崩溃。
Reasoning RL 的定位与输入输出
在课程语境下,Reasoning RL 的训练对象不是单一答案,而是 “思考过程 + 决策路径”。这要求训练样本包含可对齐的中间轨迹,奖励函数也要能区分 “虽然答对但过程不可复用” 与 “过程稳定可迁移” 的区别。
常见误区:把推理 token 量当作推理质量
更长的 chain-of-thought 不等于更好的策略。课程强调真正的收益来自 有结构的推理行为,例如何时回退、何时重计划、何时调用工具,而不是单纯延长输出长度。
本章小结
SFT、Reasoning RL、Agent RL 构成了一个由浅入深的能力迁移链。Reasoning RL 的存在不是可选项,而是把 “会说” 变成 “会做” 的中介层。
数据与奖励:训练质量的第一约束
数据结构从 “样本” 变为 “轨迹”
Agent 训练中的数据不只是问答对,而是环境状态、动作、工具调用结果、延迟反馈与最终 outcome 的组合轨迹。课程反复提醒,如果数据只保留最终答案,模型会失去 “如何到达答案” 的学习信号。
轨迹数据的四个必要字段
- 上下文状态:任务背景、可用工具、历史动作。
- 决策动作:模型当前选择的操作与参数。
- 环境反馈:工具返回、执行日志、外部错误信息。
- 终局标签:成功/失败、质量评分、代价统计。
奖励设计:局部奖励与终局奖励的平衡
课程给出的实践倾向是,尽量让奖励与最终任务完成度一致,同时为关键中间步骤设置轻量 shaping。若中间奖励过强,模型会为了拿分而偏离真实任务;若只有终局奖励,训练又会因为稀疏信号而效率低下。
奖励设计的工程判据
有效奖励通常满足三点:可计算、可解释、可扩展。可计算意味着能在流水线上自动生成;可解释意味着失败样本能回溯问题来源;可扩展意味着在新任务上不需要全部重写。
数据质量与评估质量的耦合
讲者在早段就强调 “data, evaluation and systems” 同等重要。原因是坏评估会反向污染数据筛选;坏数据又会让评估指标失真,形成负反馈。研发上必须把数据治理和评估治理一起做,而不是分部门串行。
误区:先把模型训大再补评估
在 Agent 场景里,这种顺序通常成本更高。模型越大、rollout 越长,后补评估意味着要在更高单次实验成本下重新定位问题,迭代速度会显著下降。
本章小结
Agent 训练阶段的数据单位是轨迹,不是答案;奖励函数要在稀疏终局目标和可学习中间信号间做平衡。最关键的是,数据与评估必须并行设计。
算力与成本:从训练可行到产品可用
前面已经说明训练阶段会改变主要稀缺资源,本节把这种差异写成可核算的成本模型。这里不追求给所有项目套一个美元单价,而是区分一次性的训练投入、持续发生的推理费用、评估环境成本与运行维护成本,并解释为什么 Agent 的长链路会让后两项快速上升。
课程中的成本讨论框架
本小节承接官方 slide 22 的数量级估算,把课堂中的 FLOPs、GPU-hours 和推理链路转换成项目台账。阅读时应把每个数字当作依赖硬件、利用率和任务分布的变量,而不是固定常数;真正要建立的是“假设可见、公式可复算、版本可比较”的成本纪律。 讲者在多个位置给出 “compute cost around ...” 的数量级提示,核心目的是让研究决策与资源现实对齐。即便某条路径在离线实验有效,也必须评估其训练时间、并行开销、推理成本和部署成本。
训练成本与推理成本必须分开记账
课程明确指出,很多实验只优化训练资源,却忽略 inference cost。对于 Agent 产品,推理侧往往是持续性支出,且会随着任务链路拉长而成倍增长,因此不能只看训练阶段的 “一次性” 成本。
成本分解模型
可把总成本粗略拆为:
其中最容易被低估的是 \(C_{\text{eval}}\) 与 \(C_{\text{inference}}\)。Agent 场景下,评估本身可能需要复杂环境复现,推理则包含多轮调用、工具耗时和失败重试。
对齐研发与产品的成本仪表盘
建议至少监控以下指标:
- 每次有效策略改进的平均 token 成本;
- 每个成功任务的平均 rollout 长度;
- 失败重试率与重试引入的额外推理费用;
- 评估覆盖率与评估单次执行成本。
本章小结
成本不是财务层面的后置问题,而是训练策略选择的一阶约束。忽略推理和评估成本,会让 “研究上有效” 的方案无法产品化。
工具使用训练:从语义能力到操作能力
SFT 和 RL 的机制只有落到外部环境,才真正变成 Agent 训练。本节因此把“会生成函数调用文本”与“能在权限、异常和副作用约束下完成任务”分开讨论,并用 synthetic environment 说明轨迹数据怎样被生成、验证和回放。
为什么工具使用是 Agent 训练的分水岭
课程在后半段详细讨论 tool use,原因在于工具调用让模型进入 “动作有副作用” 的世界。模型不仅要决定 “说什么”,还要决定 “做什么”,并承担执行后果。
工具调用能力的本质
工具调用不是函数格式学习,而是决策学习。 需要同时解决何时调用、调用哪个工具、参数如何构造、失败后如何恢复四类问题。
合成工具数据与三模型模拟
上一小节定义了工具决策的四个问题,这里进一步回答数据从哪里来。真实 API 交互昂贵、慢且可能产生不可逆副作用,因此课程讨论用模拟用户、模拟工具和待训练策略构成受控闭环;关键是让模拟器暴露真实错误类型,并让 verifier 检查终局结果,而不只是 JSON 是否可解析。 讲者介绍了通过 synthetic tools 扩展训练空间的做法:用一个代理模型扮演用户、一个模型扮演工具环境、一个模型作为待训练 agent,在闭环中生成大量多样交互轨迹。
三角色模拟的收益
- 扩展工具覆盖面,降低真实工具接入成本;
- 更快制造 corner case,提升鲁棒性;
- 在可控环境中复现实验,便于 ablation。
合成数据的边界
合成数据虽高效,但容易产生分布偏移。若工具模拟器过于理想化,模型会学到 “仿真世界最优策略”,而非真实 API 世界的稳健策略。
合成工具训练的三类偏差
- 错误类型偏差:仿真器未覆盖真实系统的脏数据与异常码。
- 延迟偏差:真实网络波动和队列抖动在仿真中被简化。
- 权限偏差:真实鉴权、配额、审计流程被忽略。
本章小结
工具使用训练决定 Agent 能否在真实环境落地。合成工具是加速器,但必须与真实工具回放结合,否则泛化能力会被高估。
评估体系:为什么 “evaluation is the key”
训练信号、数据筛选和上线判断最终都依赖测量,因此评估不是后置考试,而是整个研发环路的控制器。本节在官方 slides 的 close/open-ended 区分之上,给出适合 Agent 的结果、过程、安全和成本四层口径,并说明自动判分与人类偏好各自承担什么角色。
闭集评估与开集评估
课程将评估分为 close-ended 与 open-ended。前者可以通过标准答案或结构化判定快速打分,后者通常没有唯一答案,需要多维标准与更复杂评审机制。
原话级观点
讲者在约 01:23:20 强调:“evaluation is the key”。这不是修辞,而是工程事实。没有高质量评估,训练改进无法可靠排序,资源投入会快速失效。
闭集评估的优缺点
前一小节给出了两类评估的定义,这里先分析可自动验证的一侧。闭集任务适合高频回归和快速筛选,但固定答案空间也更容易被 prompt、解析器和数据泄漏影响;因此它提供的是低成本、低延迟的测量,不是对真实开放环境的完整替代。 闭集评估的优势是低成本、高自动化、易比较;缺点是可能被 prompt 和打分器偏差 “刷分”。在 Agent 场景,闭集评估适合做快速回归,但不能单独作为上线依据。
闭集评估的推荐用途
- 每日训练回归与 smoke test;
- 新策略的快速筛选;
- 失败类型的早期预警。
开集评估的核心困难
开集任务(如复杂客服、多轮协作、开放式写作)通常存在多解、长路径和偏好冲突。课程提醒,单一准确率指标不再有效,必须引入过程指标与结果指标共同约束。
开集评估中最常见的两个坑
- 用 “像人类” 取代 “完成目标”:观感好但任务失败。
- 用单次胜负取代稳定性:一次成功掩盖高方差问题。
评估设计模板
| 层级 | 指标 | 示例 |
|---|---|---|
| 结果层 | 任务完成率、成功成本 | Ticket 关闭率、每单 token 花费 |
| 过程层 | 错误恢复率、重计划次数 | API 失败后是否能自动纠错 |
| 安全层 | 越权率、敏感操作拦截率 | 是否触发越权写入或危险调用 |
| 体验层 | 延迟、可解释性评分 | 用户等待时间、行动理由可读性 |
本章小结
评估决定训练方向与资源分配,是 Agent 研发的 “方向盘”。闭集评估负责速度,开集评估负责真实性,两者缺一不可。
长时 Rollout 与系统工程瓶颈
前面的 GPU 与 RL slides 已经给出两个事实:模型计算需要规则的大 batch 才高效,而 Agent 轨迹却长度不一、等待外部环境且经常重试。本节把这一矛盾展开为调度、存储、通信和失败恢复问题,关注单位时间获得多少有效训练信号,而不是只看设备是否繁忙。
为什么 Agent 训练很快变成系统问题
课程指出,随着任务长度增长,训练瓶颈常从 “算子吞吐” 转向 “异步调度、内存管理、通信开销”。Agentic rollouts 越长,等待 I/O 和环境反馈的时间占比越高,GPU 可能并未被充分利用。
长时 rollout 的资源形态
- 计算资源:策略前向与反向传播;
- 存储资源:轨迹缓存、日志、回放数据;
- 通信资源:多机同步、参数广播、环境 RPC;
- 调度资源:异步任务池、失败重试、超时控制。
内存层级与通信
在长 rollout 中,轨迹、activation、模型状态和环境日志同时占用存储,跨卡同步又会阻塞采样或更新。本小节承接官方 slide 61--70,区分片上 SRAM、HBM 与跨设备链路,并说明为什么减少数据搬运、选择合适 sharding 往往比单纯增加理论 FLOPs 更有效。 课程后段对 GPU memory hierarchy 做了专门解释,强调 “算得快” 并不总是瓶颈,“拿数据慢” 往往才是。共享内存、缓存、全局显存、跨卡通信都直接影响 Agent 训练效率。
工程结论
当 rollout 进入长链路后,系统优化优先级往往应从 “再堆算力” 改为 “降通信、降等待、降无效重试”。否则训练账单增加,但有效学习信号并未同步增长。
面向 Agent 的系统优化策略
- 异步 rollout 与训练解耦,减少互相阻塞;
- 把高频短工具调用本地化缓存,降低 RPC 往返;
- 对轨迹做分级存储,热数据放快存,冷数据批量归档;
- 用失败类型路由替代统一重试,减少无效计算。
系统优化中的错配风险
若评估口径没同步更新,系统优化可能带来 “看似更快但更差” 的假象。例如吞吐提高了,但平均任务质量下降;或延迟降低了,但错误恢复率明显下滑。
本章小结
长任务 Agent 的上限高度依赖系统工程能力。训练与系统是一体两面,不做系统优化会让算法增益被基础设施损耗掉。
安全、鲁棒性与上线策略
课程主体不是安全专讲,但其“环境、奖励、评估”框架直接决定上线风险。Agent 的输出会触发真实动作,错误可跨步骤累积,还可能主动寻找奖励捷径;因此本节把课堂机制延伸到最小权限、动作确认、审计、回滚和人类接管,而不把安全缩成一句拒答提示。
从训练安全到运行时安全
安全控制必须沿着数据、策略、工具和运行环境分层布置,因为任何单点过滤都看不到完整动作链。训练阶段可以加入拒绝与恢复轨迹,推理阶段限制动作空间,运行时再以审计和人类确认兜底;三层共同决定系统是否能在未知输入下保持边界。 课程虽以训练为主,但其评估框架天然延伸到上线安全。Agent 的风险点包括越权工具调用、错误自动化放大、长链路偏航和不可解释决策。
安全策略分层
- 训练层:加入反例轨迹和拒绝策略数据;
- 推理层:策略约束、动作白名单、敏感操作确认;
- 监控层:实时审计、异常回滚、人类接管阈值。
鲁棒性评估应覆盖失败恢复
多数 benchmark 聚焦最终结果,但生产环境更关心 “失败后是否能自救”。课程关于 open-ended evaluation 的讨论可直接映射到该问题:需要在评估中显式纳入恢复路径质量。
鲁棒性观测指标
- 首次失败后的恢复成功率;
- 恢复所需额外步骤数;
- 恢复过程中新增风险动作比例;
- 恢复后结果是否满足业务阈值。
分阶段上线
对 Agent 产品,课程思想对应的上线方法是 “先可控,再扩域”:先在闭集任务上线高置信动作,再逐步引入开集任务,并持续校准评估器。
上线反模式
一次性放开所有工具权限、把开集任务直接按闭集规则打分、缺少失败复盘机制,这三种做法在 Agent 场景会显著放大风险与成本。
本章小结
Agent 安全不是额外模块,而是训练、评估、推理、运维的联合产物。鲁棒性要通过失败恢复能力来度量,而非只看一次成功率。
组织与研发流程:把课程观点转成执行机制
当 data、evaluation 与 systems 同时决定实验成败,团队边界也必须围绕同一任务闭环重新组织。本节把技术依赖转成可执行的协作机制:共享版本化任务集、共同审查成本与失败轨迹,并让模型、评估、平台和产品负责人对同一上线门槛负责。
跨职能协同的必要性
根据课程对 “data-eval-systems” 的强调,Agent 团队不能按传统 “模型组/平台组/应用组” 完全割裂。至少在关键迭代周期内,数据、评估、系统、产品应共用一套优先级与实验台账。
最小可执行组织单元
建议建立 “训练-评估-系统” 三人小组:一人负责策略实验,一人负责评估设计,一人负责基础设施瓶颈优化。每周以统一任务集复盘,而不是各自汇报局部指标。
实验管理与复盘模板
| 字段 | 记录内容 | 目的 |
|---|---|---|
| 假设 | 本次改动要解决的具体问题 | 防止 “试试也行” 的随机实验 |
| 评估口径 | 闭集+开集指标、样本集版本 | 保证实验可比较 |
| 成本账单 | 训练/评估/推理分项资源消耗 | 评估 ROI,避免隐性亏损 |
| 失败复盘 | 失败类型与恢复路径分析 | 沉淀下一轮数据与规则 |
一句话流程准则
先定义成功,再开始训练;先定义失败恢复,再扩大权限。
本章小结
课程的价值不仅是技术路线,更是研发方法。将数据、评估、系统协同固化为流程,才能持续获得可复现增益。
实战推演:三类 Agent 项目的训练与交付路径
前面完成了来源讲解和机制拆分,本节用三类项目检验这些原则能否落地。三条路径覆盖只读知识任务、有副作用的流程自动化和长时开放研究任务;比较重点不是选哪个模型,而是任务可验证性、工具权限、失败恢复和单位成功成本如何改变训练方案。
路径 A:内部知识问答型 Agent
这是最常见也是最容易被低估难度的一类。表面上像传统 RAG 问答,实际上只要涉及多轮澄清、跨系统检索与动作执行,就已经进入 Agent 设计范畴。基于本课方法,可采用 “轻量 SFT + 任务化闭集评估 + 受限工具调用” 的策略启动。
路径 A 的落地节奏
- 第 1 周建立任务分解与工具白名单,只允许只读操作。
- 第 2 周补齐 close-ended evaluation,覆盖高频 FAQ 与关键业务术语。
- 第 3 周引入有限 open-ended 任务,跟踪失败恢复率与越权率。
- 第 4 周再扩充上下文窗口和工具集合,避免早期过度复杂化。
这种路径的成功关键不是追求最强模型,而是快速建立 “可量化反馈”。若没有评估闭环,团队很容易在提示词和模板工程里反复迭代,却无法证明任务完成率是否真正改善。
路径 B:流程自动化型 Agent
路径 A 主要验证检索与回答,路径 B 则进入会改变业务状态的动作空间。写入工单、发起审批或修改 CRM 都要求幂等性、事务边界和回滚机制;训练数据也必须记录动作前后状态,不能只保存最终文本回复。 此类项目通常连接工单、审批、CRM、BI 等业务系统,目标是减少人工流程跳转。它对工具调用准确性和异常恢复能力要求高,训练策略应更偏向 Agent RL 与策略约束。
路径 B 的主要风险
流程型 Agent 最怕 “看似完成,实则破坏状态一致性”。例如自动填单成功率高,但字段语义错配;自动发起流程成功率高,但审批链漏节点。这类问题在仅看闭集准确率时很难暴露。
| 阶段 | 目标 | 验证重点 |
|---|---|---|
| 设计期 | 定义动作空间与权限边界 | 是否存在危险动作未隔离 |
| 训练期 | 提升多步流程完成率 | 失败后是否能回滚并重计划 |
| 试运行 | 降低人工介入频次 | 自动化收益是否覆盖推理成本 |
| 扩张期 | 横向接入更多流程 | 新流程接入后旧流程是否退化 |
路径 C:研究助理型 Agent
流程自动化通常有明确终局状态,研究助理却面对多解、长证据链和动态工具。它需要同时评估检索覆盖、引用真实性、实验可复现性和结论边界;任何一个漂亮的最终报告,都必须能回溯到实际检索与执行记录。 研究助理型 Agent 需要检索文献、生成实验计划、执行脚本、汇总报告,天然是 open-ended 且长时链路。课程中的 “evaluation is the key” 在这类场景体现最明显:没有多维评估,团队会很快被 “生成内容看起来不错” 的假象误导。
研究助理 Agent 的幻觉风险更隐蔽
这类系统经常出现 “论证结构完整但证据链断裂” 的输出。若评估只看语言流畅度或主观可读性,模型会被激励去写更像论文的文本,而非更真实的研究结论。
三条路径的共性工程清单
- 必须先定义任务完成的机器可判定标准,再设计训练数据。
- 必须在评估中记录失败恢复路径,而不仅是最终成败。
- 必须把推理成本和人工复核成本一起纳入 ROI。
- 必须有最小权限原则和紧急回滚通道。
- 必须做版本化评估集,避免指标漂移导致误判。
课程观点在实战中的映射
不论是哪一类 Agent 项目,真正的交付单位都不再是 “模型版本”,而是 “模型 + 评估 + 系统 + 运行策略” 的组合版本。只有组合版本才具有可复现业务价值。
本章小结
三类项目虽然目标不同,但工程规律一致:先评估、再训练;先约束、再扩权;先可复现、再追求规模。课程中的方法论可以直接作为项目启动模板。
评估样例库与排障手册:把质量控制写成文档
项目上线后,评估不能停留在一次性 benchmark。线上失败、对抗样例和历史事故要持续回灌为版本化资产,本节因此把课程的评估优先原则整理成样例库、归因流程和上线检查表,使每次策略修改都能回答“改善了什么、破坏了什么、增加了多少成本”。
评估样例库的分层构造
为了避免 “新策略提升 A 指标却破坏 B 能力”,建议将评估集划分为核心样例库、对抗样例库和回归样例库三层。核心库负责覆盖主业务, 对抗库负责暴露脆弱点,回归库负责监控历史问题是否复发。
建议的样例库配比
- 核心样例库:60%(覆盖高频真实任务)
- 对抗样例库:25%(越权、提示注入、长链路干扰)
- 回归样例库:15%(历史事故与线上坏例)
排障优先级:先判定是评估问题还是策略问题
很多团队排障会直接改 prompt 或模型参数,但课程强调评估的重要性后,应先判断 “是否因为评估器偏差导致假失败/假成功”。若评估器本身不稳,后续所有优化都可能偏航。
排障反模式
- 不复现实验环境,直接根据线上截图改策略。
- 只看平均分,不看失败分布和失败类型迁移。
- 发现退化后立即回滚全部改动,导致无法定位根因。
标准化排障流程
样例库只能说明哪里失败,标准化流程负责把失败转成可验证修复。本小节按定位、归因、最小修复和全量验证四步推进,要求每一步保留输入、环境、指标与成本证据,避免看到坏例后直接反复改 prompt。
| 步骤 | 执行动作 | 产出 |
|---|---|---|
| 定位 | 在固定评估集复现实验差异 | 失败样例清单 + 指标对比 |
| 归因 | 区分评估漂移/数据偏移/策略回归 | 根因标签与证据链 |
| 修复 | 最小改动验证假设 | 修复候选版本与风险说明 |
| 验证 | 全量回归 + 对抗测试 + 成本复核 | 上线建议与回滚条件 |
长表:常见故障与处理策略
完成根因分类后,团队还需要把高频故障固化成共享语言。下面的长表把工具、上下文、重试、评估、权限、记忆和环境问题分别列出,使线上事件能够快速路由到对应 owner,并沉淀为下一版回归样例。 | 故障类型 | 症状 | 处理建议 | | --- | --- | --- | | 故障类型 | 症状 | 处理建议 | | 工具误调用 | 参数格式正确但业务语义错误 | 在评估中加入语义约束检查;增加工具前置确认步骤 | | 上下文漂移 | 多轮后目标偏离原任务 | 引入阶段性目标重述机制;加入计划一致性奖励 | | 重试风暴 | 失败后连续无效重试导致成本飙升 | 设置失败路由与重试上限;按错误类型分流处理 | | 评估振荡 | 小改动导致指标大幅波动 | 扩大评估样本;增加置信区间与分桶统计 | | 开集退化 | 闭集提升但开集体验变差 | 增加 open-ended 评审权重;补充真实任务回放 | | 权限越界 | 触发未经授权的写操作 | 强化动作白名单;高风险工具强制人审 | | 记忆污染 | 错误历史进入长期记忆 | 增加记忆有效期与可信度标签;支持记忆回收 | | 延迟失控 | 复杂任务响应时间不可接受 | 采用阶段式答复;并行化可独立子任务 | | 解释失真 | 给出看似合理但与行为不符的理由 | 将解释与实际执行日志绑定校验 | | 环境脆弱性 | 外部 API 抖动即导致任务失败 | 加入容错层、缓存层和降级策略 |
验收前检查清单
修复在离线样例上通过,并不意味着已经可以上线。本小节把课程中的评估、成本与系统约束收束成十项门槛,重点检查版本可复现、危险动作门控、失败恢复、实时观测和回滚路径是否真实可用。
上线前 10 项必检
- 评估集是否版本锁定并可复现。
- 是否同时通过闭集与开集基线。
- 高风险工具是否有权限门控。
- 失败恢复路径是否经过压测。
- 推理成本是否在预算区间。
- 异常日志是否可追踪到具体动作。
- 是否定义了上线后回滚阈值。
- 关键指标是否有实时告警。
- 人工接管流程是否可用。
- 线上样例是否可回灌训练与评估。
本章小结
把评估与排障流程文档化,能够显著减少 “经验主义调参”。课程强调的评估优先原则,在工程上可以直接落实为样例库、排障模板和上线检查清单。
总结与延伸
全课总结表
| 主题 | 课程核心判断 | 实践动作 |
|---|---|---|
| 训练流程 | SFT \(→\) Reasoning RL \(→\) Agent RL | 按阶段构建数据和奖励,避免一步到位 |
| 评估体系 | evaluation is the key | 闭集提速,开集保真,双轨并行 |
| 成本约束 | 训练成本与推理成本必须分开管理 | 建立端到端成本仪表盘 |
| 工具训练 | synthetic tools 可扩展能力边界 | 合成数据与真实回放联合训练 |
| 系统瓶颈 | 长时任务常卡在内存与通信 | 异步调度、缓存与分层存储优化 |
| 安全上线 | 风险控制贯穿训练到运行时 | 分阶段放权与失败恢复评估 |
关键结论回顾
六条必须记住的结论
- Agent 成功率取决于系统协同,而非单点模型分数。
- Reasoning RL 是连接文本能力与执行能力的关键桥梁。
- 数据与评估必须共设计,否则会互相污染。
- 成本分析必须覆盖训练、评估和推理全链路。
- 工具使用训练要关注决策质量,而不只是调用格式。
- 开集任务里,失败恢复能力比一次成功更重要。
进一步阅读
- Berkeley RDI Agentic AI MOOC(Fall 2025)课程主页与讲义。
- Yann Dubois 关于 LLM 训练与评估的公开分享与论文。
- ReAct、SWE-bench、WebArena、OSWorld 等 Agent 任务与评测工作。
- 工具使用与长任务强化学习相关实践(tool simulation、async rollout)。
- 推理模型与 Agent 模型结合的后训练研究方向。