Wink Pings

预训练只是打底,Agent 能不能干活看后面这五步

Hugging Face 放出一套免费的 post-training agents 课程,blog 配 YouTube 直播,从 SFT、蒸馏、RL 一路讲到 RL 环境和规模化训练。每一步都有流程图、课程、文档,部分还带能跑的项目。

Hugging Face 上有一份免费课程,讲 post-training agents,一份 blog 加一个 YouTube 播放列表,作者是 ben burtenshaw、Sergio Paniego、merve 几位。

先补个背景。post-training 指预训练之后的训练阶段,监督微调、蒸馏、强化学习都算。它做的事情是:把一个只会续写的模型,变成一个会听指令、会用工具、能完成具体任务的模型。Agent 的麻烦在于要多轮行动,调工具、读结果、再决定下一步。拿单轮问答那套去训 Agent,只教了它第一句话该怎么说。

后训练这块被讨论得少,预训练聊得多,但真正决定模型好不好用的,恰恰是 SFT、蒸馏、RL 这一串怎么排、怎么验。

这份材料的组织方式照着多轮来的。五步,每步一张流程图、一场直播或一份 slides、一篇解释文章,外加对应文档,部分章节配了能跑的项目。训练示例统一用 coding agent。

  1. 开始之前

术语先对齐。agent、harness、scaffold 这几个词经常被混着用,Hugging Face 专门写了一篇 glossary 来讲清楚,另有 20 页总览 slides。没接触过微调的,先补 LLM Course。

  1. SFT

模型学的是 agent trace,一个 Agent 解决某任务的完整录像,每次工具调用和返回结果都在里面,通常由更强的模型产出。这一步便宜、稳定。代价是模型只看正确轨迹,看不到自己犯错的样子,也就学不会怎么从错误里爬出来。这个缺口由 on-policy 蒸馏和 RL 补。

SFT 流程图:模型读取来自更强模型的 agent trace,按下一个 token 计算损失

  1. 蒸馏

教师模型监督学生。要么教师写数据,要么在学生自己生成的 token 上给概率。教师可以是更大的模型,可以是几个专家模型合体,就是 MOPD 的做法,也可以是同一个模型加上额外上下文,也就是自蒸馏。信号密度是每个 token 一个值,比 RL 省样本。反过来,学生的上限被教师的知识卡住,on-policy 蒸馏还得每一步都跑教师。

蒸馏流程图:学生生成 token,教师给出概率并对低概率 token 做纠正

  1. RL

不要教师了,改成一个奖励函数给模型自己的输出打分。写答案,打分,高分答案的概率被抬高。这里用的算法是 GRPO,每个 prompt 采样若干答案,全部打分,高于组内平均的那些概率上调。组内比较就够判断哪次尝试更好,不用另外训一个模型去估计。

信号比蒸馏弱,整段答案只给一个数,模型需要大量尝试。奖励函数简单时,每个答案就是一轮,只打一次分。

GRPO 流程图:同一 prompt 采样多个答案,按测试通过比例打分,与组内均值比较后回传

  1. RL 环境

奖励来自在一个有状态的环境里行动。环境跑工具、记录变化、检查最终结果,比如跑一遍代码任务的测试。每一轮 episode 都比单条答案长,生成 rollout 成了训练里最慢的部分。

环境流程图:模型在多轮环境中行动,由环境执行工具并检查最终结果

  1. Harness 与规模化

每次 rollout 是一次完整的 Agent 运行,跑在现成的 agent harness 里,外面套远程沙箱。用实际部署时的同一个 harness 来训练,模型学的就是它将来要跑的那个环境。生成和训练分在两组 GPU 上,长 episode 不会让 trainer 干等,更新完的权重再推回 vLLM。

规模化示意图:生成与训练分离在两组 GPU 上,权重同步回 vLLM

完整播放列表在这里,blog 原文在这里。

有网友提到,学这套课最好直接拿自己的一个小任务做前后对比,否则听完还是不知道哪一步起了作用。这个建议实用。五步摆在那里,真正知道自己缺哪块,得自己跑一遍才算数。

发布时间: 2026-10-30 00:37