跳转至

[LLM Agents F25] LLM Agents Overview 与训练路线

LaTeX 源码 · 观看视频

字段 内容
作者/整理 基于 Yann Dubois 授课内容整理
来源 Berkeley RDI
日期 2026-08-18

[LLM Agents F25] LLM Agents Overview 与训练路线

官方幻灯片证据链:先建立整套训练地图

这一节先按课堂顺序重建 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,条件概率可写为

\[ P(x\mid c)=\frac{\operatorname{Count}(c,x)}{\operatorname{Count}(c)}, \]

其中 \(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,课程采用近似式

\[ C_{\mathrm{train}}\approx 6ND, \]

其中 \(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

\[ \hat A_i=\frac{r_i-\operatorname{mean}(r)}{\operatorname{std}(r)+\epsilon}. \]

高于组均值的轨迹被增强,低于组均值的轨迹被抑制。符号 \(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 的判断框架

算术强度可写为

\[ I=\frac{\text{FLOPs}}{\text{bytes moved from slow memory}}. \]

其中分子是执行的浮点运算量,分母是从 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}\),平均自然对数交叉熵为

\[ H=-\frac{1}{L}\sum_{i=1}^{L}\log p(x_i\mid x_{<i}), \qquad \mathrm{PPL}=\exp(H). \]

其中 \(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 有三个结构性变化:

  1. 输出不再是最终文本,而是中间动作序列(tool call / code / API)。
  2. 成功标准不再是 “看起来对”,而是是否在外部环境中完成目标。
  3. 推理成本由 “单次回答” 转为 “长时 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 的组合轨迹。课程反复提醒,如果数据只保留最终答案,模型会失去 “如何到达答案” 的学习信号。

轨迹数据的四个必要字段

  1. 上下文状态:任务背景、可用工具、历史动作。
  2. 决策动作:模型当前选择的操作与参数。
  3. 环境反馈:工具返回、执行日志、外部错误信息。
  4. 终局标签:成功/失败、质量评分、代价统计。

奖励设计:局部奖励与终局奖励的平衡

课程给出的实践倾向是,尽量让奖励与最终任务完成度一致,同时为关键中间步骤设置轻量 shaping。若中间奖励过强,模型会为了拿分而偏离真实任务;若只有终局奖励,训练又会因为稀疏信号而效率低下。

奖励设计的工程判据

有效奖励通常满足三点:可计算、可解释、可扩展。可计算意味着能在流水线上自动生成;可解释意味着失败样本能回溯问题来源;可扩展意味着在新任务上不需要全部重写。

数据质量与评估质量的耦合

讲者在早段就强调 “data, evaluation and systems” 同等重要。原因是坏评估会反向污染数据筛选;坏数据又会让评估指标失真,形成负反馈。研发上必须把数据治理和评估治理一起做,而不是分部门串行。

误区:先把模型训大再补评估

在 Agent 场景里,这种顺序通常成本更高。模型越大、rollout 越长,后补评估意味着要在更高单次实验成本下重新定位问题,迭代速度会显著下降。

本章小结

Agent 训练阶段的数据单位是轨迹,不是答案;奖励函数要在稀疏终局目标和可学习中间信号间做平衡。最关键的是,数据与评估必须并行设计。

算力与成本:从训练可行到产品可用

前面已经说明训练阶段会改变主要稀缺资源,本节把这种差异写成可核算的成本模型。这里不追求给所有项目套一个美元单价,而是区分一次性的训练投入、持续发生的推理费用、评估环境成本与运行维护成本,并解释为什么 Agent 的长链路会让后两项快速上升。

课程中的成本讨论框架

本小节承接官方 slide 22 的数量级估算,把课堂中的 FLOPs、GPU-hours 和推理链路转换成项目台账。阅读时应把每个数字当作依赖硬件、利用率和任务分布的变量,而不是固定常数;真正要建立的是“假设可见、公式可复算、版本可比较”的成本纪律。 讲者在多个位置给出 “compute cost around ...” 的数量级提示,核心目的是让研究决策与资源现实对齐。即便某条路径在离线实验有效,也必须评估其训练时间、并行开销、推理成本和部署成本。

训练成本与推理成本必须分开记账

课程明确指出,很多实验只优化训练资源,却忽略 inference cost。对于 Agent 产品,推理侧往往是持续性支出,且会随着任务链路拉长而成倍增长,因此不能只看训练阶段的 “一次性” 成本。

成本分解模型

可把总成本粗略拆为:

\[ C_{\text{total}} = C_{\text{data}} + C_{\text{train}} + C_{\text{eval}} + C_{\text{inference}} + C_{\text{ops}} \]

其中最容易被低估的是 \(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 世界的稳健策略。

合成工具训练的三类偏差

  1. 错误类型偏差:仿真器未覆盖真实系统的脏数据与异常码。
  2. 延迟偏差:真实网络波动和队列抖动在仿真中被简化。
  3. 权限偏差:真实鉴权、配额、审计流程被忽略。

本章小结

工具使用训练决定 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;
  • 新策略的快速筛选;
  • 失败类型的早期预警。

开集评估的核心困难

开集任务(如复杂客服、多轮协作、开放式写作)通常存在多解、长路径和偏好冲突。课程提醒,单一准确率指标不再有效,必须引入过程指标与结果指标共同约束。

开集评估中最常见的两个坑

  1. 用 “像人类” 取代 “完成目标”:观感好但任务失败。
  2. 用单次胜负取代稳定性:一次成功掩盖高方差问题。

评估设计模板

层级 指标 示例
结果层 任务完成率、成功成本 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 的系统优化策略

  1. 异步 rollout 与训练解耦,减少互相阻塞;
  2. 把高频短工具调用本地化缓存,降低 RPC 往返;
  3. 对轨迹做分级存储,热数据放快存,冷数据批量归档;
  4. 用失败类型路由替代统一重试,减少无效计算。

系统优化中的错配风险

若评估口径没同步更新,系统优化可能带来 “看似更快但更差” 的假象。例如吞吐提高了,但平均任务质量下降;或延迟降低了,但错误恢复率明显下滑。

本章小结

长任务 Agent 的上限高度依赖系统工程能力。训练与系统是一体两面,不做系统优化会让算法增益被基础设施损耗掉。

安全、鲁棒性与上线策略

课程主体不是安全专讲,但其“环境、奖励、评估”框架直接决定上线风险。Agent 的输出会触发真实动作,错误可跨步骤累积,还可能主动寻找奖励捷径;因此本节把课堂机制延伸到最小权限、动作确认、审计、回滚和人类接管,而不把安全缩成一句拒答提示。

从训练安全到运行时安全

安全控制必须沿着数据、策略、工具和运行环境分层布置,因为任何单点过滤都看不到完整动作链。训练阶段可以加入拒绝与恢复轨迹,推理阶段限制动作空间,运行时再以审计和人类确认兜底;三层共同决定系统是否能在未知输入下保持边界。 课程虽以训练为主,但其评估框架天然延伸到上线安全。Agent 的风险点包括越权工具调用、错误自动化放大、长链路偏航和不可解释决策。

安全策略分层

  1. 训练层:加入反例轨迹和拒绝策略数据;
  2. 推理层:策略约束、动作白名单、敏感操作确认;
  3. 监控层:实时审计、异常回滚、人类接管阈值。

鲁棒性评估应覆盖失败恢复

多数 benchmark 聚焦最终结果,但生产环境更关心 “失败后是否能自救”。课程关于 open-ended evaluation 的讨论可直接映射到该问题:需要在评估中显式纳入恢复路径质量。

鲁棒性观测指标

  • 首次失败后的恢复成功率;
  • 恢复所需额外步骤数;
  • 恢复过程中新增风险动作比例;
  • 恢复后结果是否满足业务阈值。

分阶段上线

对 Agent 产品,课程思想对应的上线方法是 “先可控,再扩域”:先在闭集任务上线高置信动作,再逐步引入开集任务,并持续校准评估器。

上线反模式

一次性放开所有工具权限、把开集任务直接按闭集规则打分、缺少失败复盘机制,这三种做法在 Agent 场景会显著放大风险与成本。

本章小结

Agent 安全不是额外模块,而是训练、评估、推理、运维的联合产物。鲁棒性要通过失败恢复能力来度量,而非只看一次成功率。

组织与研发流程:把课程观点转成执行机制

当 data、evaluation 与 systems 同时决定实验成败,团队边界也必须围绕同一任务闭环重新组织。本节把技术依赖转成可执行的协作机制:共享版本化任务集、共同审查成本与失败轨迹,并让模型、评估、平台和产品负责人对同一上线门槛负责。

跨职能协同的必要性

根据课程对 “data-eval-systems” 的强调,Agent 团队不能按传统 “模型组/平台组/应用组” 完全割裂。至少在关键迭代周期内,数据、评估、系统、产品应共用一套优先级与实验台账。

最小可执行组织单元

建议建立 “训练-评估-系统” 三人小组:一人负责策略实验,一人负责评估设计,一人负责基础设施瓶颈优化。每周以统一任务集复盘,而不是各自汇报局部指标。

实验管理与复盘模板

字段 记录内容 目的
假设 本次改动要解决的具体问题 防止 “试试也行” 的随机实验
评估口径 闭集+开集指标、样本集版本 保证实验可比较
成本账单 训练/评估/推理分项资源消耗 评估 ROI,避免隐性亏损
失败复盘 失败类型与恢复路径分析 沉淀下一轮数据与规则
将课程理念落地为团队实验管理模板

一句话流程准则

先定义成功,再开始训练;先定义失败恢复,再扩大权限。

本章小结

课程的价值不仅是技术路线,更是研发方法。将数据、评估、系统协同固化为流程,才能持续获得可复现增益。

实战推演:三类 Agent 项目的训练与交付路径

前面完成了来源讲解和机制拆分,本节用三类项目检验这些原则能否落地。三条路径覆盖只读知识任务、有副作用的流程自动化和长时开放研究任务;比较重点不是选哪个模型,而是任务可验证性、工具权限、失败恢复和单位成功成本如何改变训练方案。

路径 A:内部知识问答型 Agent

这是最常见也是最容易被低估难度的一类。表面上像传统 RAG 问答,实际上只要涉及多轮澄清、跨系统检索与动作执行,就已经进入 Agent 设计范畴。基于本课方法,可采用 “轻量 SFT + 任务化闭集评估 + 受限工具调用” 的策略启动。

路径 A 的落地节奏

  1. 第 1 周建立任务分解与工具白名单,只允许只读操作。
  2. 第 2 周补齐 close-ended evaluation,覆盖高频 FAQ 与关键业务术语。
  3. 第 3 周引入有限 open-ended 任务,跟踪失败恢复率与越权率。
  4. 第 4 周再扩充上下文窗口和工具集合,避免早期过度复杂化。

这种路径的成功关键不是追求最强模型,而是快速建立 “可量化反馈”。若没有评估闭环,团队很容易在提示词和模板工程里反复迭代,却无法证明任务完成率是否真正改善。

路径 B:流程自动化型 Agent

路径 A 主要验证检索与回答,路径 B 则进入会改变业务状态的动作空间。写入工单、发起审批或修改 CRM 都要求幂等性、事务边界和回滚机制;训练数据也必须记录动作前后状态,不能只保存最终文本回复。 此类项目通常连接工单、审批、CRM、BI 等业务系统,目标是减少人工流程跳转。它对工具调用准确性和异常恢复能力要求高,训练策略应更偏向 Agent RL 与策略约束。

路径 B 的主要风险

流程型 Agent 最怕 “看似完成,实则破坏状态一致性”。例如自动填单成功率高,但字段语义错配;自动发起流程成功率高,但审批链漏节点。这类问题在仅看闭集准确率时很难暴露。

阶段 目标 验证重点
设计期 定义动作空间与权限边界 是否存在危险动作未隔离
训练期 提升多步流程完成率 失败后是否能回滚并重计划
试运行 降低人工介入频次 自动化收益是否覆盖推理成本
扩张期 横向接入更多流程 新流程接入后旧流程是否退化
流程自动化型 Agent 的分阶段交付要点

路径 C:研究助理型 Agent

流程自动化通常有明确终局状态,研究助理却面对多解、长证据链和动态工具。它需要同时评估检索覆盖、引用真实性、实验可复现性和结论边界;任何一个漂亮的最终报告,都必须能回溯到实际检索与执行记录。 研究助理型 Agent 需要检索文献、生成实验计划、执行脚本、汇总报告,天然是 open-ended 且长时链路。课程中的 “evaluation is the key” 在这类场景体现最明显:没有多维评估,团队会很快被 “生成内容看起来不错” 的假象误导。

研究助理 Agent 的幻觉风险更隐蔽

这类系统经常出现 “论证结构完整但证据链断裂” 的输出。若评估只看语言流畅度或主观可读性,模型会被激励去写更像论文的文本,而非更真实的研究结论。

三条路径的共性工程清单

  1. 必须先定义任务完成的机器可判定标准,再设计训练数据。
  2. 必须在评估中记录失败恢复路径,而不仅是最终成败。
  3. 必须把推理成本和人工复核成本一起纳入 ROI。
  4. 必须有最小权限原则和紧急回滚通道。
  5. 必须做版本化评估集,避免指标漂移导致误判。

课程观点在实战中的映射

不论是哪一类 Agent 项目,真正的交付单位都不再是 “模型版本”,而是 “模型 + 评估 + 系统 + 运行策略” 的组合版本。只有组合版本才具有可复现业务价值。

本章小结

三类项目虽然目标不同,但工程规律一致:先评估、再训练;先约束、再扩权;先可复现、再追求规模。课程中的方法论可以直接作为项目启动模板。

评估样例库与排障手册:把质量控制写成文档

项目上线后,评估不能停留在一次性 benchmark。线上失败、对抗样例和历史事故要持续回灌为版本化资产,本节因此把课程的评估优先原则整理成样例库、归因流程和上线检查表,使每次策略修改都能回答“改善了什么、破坏了什么、增加了多少成本”。

评估样例库的分层构造

为了避免 “新策略提升 A 指标却破坏 B 能力”,建议将评估集划分为核心样例库、对抗样例库和回归样例库三层。核心库负责覆盖主业务, 对抗库负责暴露脆弱点,回归库负责监控历史问题是否复发。

建议的样例库配比

  • 核心样例库:60%(覆盖高频真实任务)
  • 对抗样例库:25%(越权、提示注入、长链路干扰)
  • 回归样例库:15%(历史事故与线上坏例)

排障优先级:先判定是评估问题还是策略问题

很多团队排障会直接改 prompt 或模型参数,但课程强调评估的重要性后,应先判断 “是否因为评估器偏差导致假失败/假成功”。若评估器本身不稳,后续所有优化都可能偏航。

排障反模式

  1. 不复现实验环境,直接根据线上截图改策略。
  2. 只看平均分,不看失败分布和失败类型迁移。
  3. 发现退化后立即回滚全部改动,导致无法定位根因。

标准化排障流程

样例库只能说明哪里失败,标准化流程负责把失败转成可验证修复。本小节按定位、归因、最小修复和全量验证四步推进,要求每一步保留输入、环境、指标与成本证据,避免看到坏例后直接反复改 prompt。

步骤 执行动作 产出
定位 在固定评估集复现实验差异 失败样例清单 + 指标对比
归因 区分评估漂移/数据偏移/策略回归 根因标签与证据链
修复 最小改动验证假设 修复候选版本与风险说明
验证 全量回归 + 对抗测试 + 成本复核 上线建议与回滚条件
可直接执行的 Agent 排障工作流

长表:常见故障与处理策略

完成根因分类后,团队还需要把高频故障固化成共享语言。下面的长表把工具、上下文、重试、评估、权限、记忆和环境问题分别列出,使线上事件能够快速路由到对应 owner,并沉淀为下一版回归样例。 | 故障类型 | 症状 | 处理建议 | | --- | --- | --- | | 故障类型 | 症状 | 处理建议 | | 工具误调用 | 参数格式正确但业务语义错误 | 在评估中加入语义约束检查;增加工具前置确认步骤 | | 上下文漂移 | 多轮后目标偏离原任务 | 引入阶段性目标重述机制;加入计划一致性奖励 | | 重试风暴 | 失败后连续无效重试导致成本飙升 | 设置失败路由与重试上限;按错误类型分流处理 | | 评估振荡 | 小改动导致指标大幅波动 | 扩大评估样本;增加置信区间与分桶统计 | | 开集退化 | 闭集提升但开集体验变差 | 增加 open-ended 评审权重;补充真实任务回放 | | 权限越界 | 触发未经授权的写操作 | 强化动作白名单;高风险工具强制人审 | | 记忆污染 | 错误历史进入长期记忆 | 增加记忆有效期与可信度标签;支持记忆回收 | | 延迟失控 | 复杂任务响应时间不可接受 | 采用阶段式答复;并行化可独立子任务 | | 解释失真 | 给出看似合理但与行为不符的理由 | 将解释与实际执行日志绑定校验 | | 环境脆弱性 | 外部 API 抖动即导致任务失败 | 加入容错层、缓存层和降级策略 |

验收前检查清单

修复在离线样例上通过,并不意味着已经可以上线。本小节把课程中的评估、成本与系统约束收束成十项门槛,重点检查版本可复现、危险动作门控、失败恢复、实时观测和回滚路径是否真实可用。

上线前 10 项必检

  1. 评估集是否版本锁定并可复现。
  2. 是否同时通过闭集与开集基线。
  3. 高风险工具是否有权限门控。
  4. 失败恢复路径是否经过压测。
  5. 推理成本是否在预算区间。
  6. 异常日志是否可追踪到具体动作。
  7. 是否定义了上线后回滚阈值。
  8. 关键指标是否有实时告警。
  9. 人工接管流程是否可用。
  10. 线上样例是否可回灌训练与评估。

本章小结

把评估与排障流程文档化,能够显著减少 “经验主义调参”。课程强调的评估优先原则,在工程上可以直接落实为样例库、排障模板和上线检查清单。

总结与延伸

全课总结表

主题 课程核心判断 实践动作
训练流程 SFT \(→\) Reasoning RL \(→\) Agent RL 按阶段构建数据和奖励,避免一步到位
评估体系 evaluation is the key 闭集提速,开集保真,双轨并行
成本约束 训练成本与推理成本必须分开管理 建立端到端成本仪表盘
工具训练 synthetic tools 可扩展能力边界 合成数据与真实回放联合训练
系统瓶颈 长时任务常卡在内存与通信 异步调度、缓存与分层存储优化
安全上线 风险控制贯穿训练到运行时 分阶段放权与失败恢复评估
Lecture 01 的可执行结论

关键结论回顾

六条必须记住的结论

  1. Agent 成功率取决于系统协同,而非单点模型分数。
  2. Reasoning RL 是连接文本能力与执行能力的关键桥梁。
  3. 数据与评估必须共设计,否则会互相污染。
  4. 成本分析必须覆盖训练、评估和推理全链路。
  5. 工具使用训练要关注决策质量,而不只是调用格式。
  6. 开集任务里,失败恢复能力比一次成功更重要。

进一步阅读

  • Berkeley RDI Agentic AI MOOC(Fall 2025)课程主页与讲义。
  • Yann Dubois 关于 LLM 训练与评估的公开分享与论文。
  • ReAct、SWE-bench、WebArena、OSWorld 等 Agent 任务与评测工作。
  • 工具使用与长任务强化学习相关实践(tool simulation、async rollout)。
  • 推理模型与 Agent 模型结合的后训练研究方向。