Wink Pings

训练 agent,先别急着上 RL:Hugging Face 把后训练拆成 5 步

Hugging Face 把 agent 后训练拆成五步:SFT、蒸馏、RL、RL 环境、harness 与 scale。每步配图、直播、代码和文档。顺序比单个算法更值得看。

Sergio Paniego 在 X 上问,怎么 post-train 一个 agent。Hugging Face 把答案整理成一套五步课程,从 SFT 到 RL,再到真实 harness,每一步配图、直播、代码和文档。课程主页在 这里。

post-training 指预训练之后的训练阶段,把基座模型变成会听指令、会用工具、能完成特定任务的模型。agent 会多轮调用工具、读结果、决定下一步,训练要覆盖整段过程,不能只看单次回答。

SFT、蒸馏、RL、RL 环境四种学习信号示意图

这张图把 SFT、蒸馏、RL、RL 环境四种学习信号放在一起。模型从什么信号里学习,决定了后面需要准备什么。五步分别对应 SFTTrainer、DistillationTrainer、GRPOTrainer、GRPOTrainer、AsyncGRPOTrainer。

1. SFT

模型学习复制更强的模型产出的 agent traces,也就是完整任务记录,包含每次工具调用和结果。它便宜、稳定。问题是模型只看正确轨迹,看不到自己的失败,犯错后不知道怎么恢复。对应 TRL 的 SFTTrainer,需要一份 agent traces 数据集。

SFT 流程示意图

看直播:Training Agents 1,代码在直播说明里。文档:SFT Trainer。

2. 蒸馏

教师模型通过写数据,或在学生自己生成的 token 上给概率,来监督学生。教师可能是更大的模型,也可能是多个专家模型蒸进一个学生,或者同模型加额外上下文做自蒸馏。信号密集,每个 token 一个值,样本需求比 RL 少。代价是学生受教师知识上限限制,on-policy 蒸馏每一步都要跑教师。RL 用奖励替代教师,只检查结果。

蒸馏流程示意图

看直播:Training Agents 2。读:蒸馏简史,2026 年的蒸馏。文档:Distillation Trainer。

3. RL

模型从自己输出的分数里学习。写答案,奖励函数打分,高分答案概率被抬高。这一步不需要教师,只要能检查答案。课程用 GRPO,对同一 prompt 采样多个答案,全部打分,把高于组平均的答案概率抬高。组内比较告诉模型哪次尝试更好,不用另训一个模型估价值。信号弱于蒸馏,一个答案一个分数,需要大量尝试。普通奖励函数下,每个答案单轮,只打一次分。

RL 流程示意图

看直播:Training Agents 3。读:2026 年前沿模型如何按结果训练。文档:GRPO Trainer。

4. RL 环境

奖励来自在环境里行动。环境保留状态、暴露工具、能多轮回答,运行工具,记录变化,检查最终结果,比如跑代码测试。每个 episode 比单个答案长,生成 rollout 变成训练最慢的部分。

RL 环境示意图

看直播:Training Agents 4。读:RL 环境为什么现在能work。文档:TRL + OpenEnv,OpenEnv。

5. Harness 与 scale

每次 rollout 都是一次完整 agent 运行,走现有 agent harness,在远程沙箱里跑。训练和实际使用用同一个 harness,模型就在将来运行的设置里学习。生成和训练放在不同 GPU,长 episode 不会让 trainer 空转,更新后的权重再发回 vLLM。对应 AsyncGRPOTrainer。

Harness 与 scale 示意图

看 slides:Training a coding agent through a harness you did not write。读:multi-harness RL 指南,每个 rollout 一个沙箱。文档:Async GRPO Trainer,OpenEnv harnesses。

这套顺序的潜台词是:先把可复制的轨迹学会,再压缩教师信号,再用奖励探索,最后把训练环境贴近实际运行环境。直接上 RL 容易忽略 agent 的多轮结构。SFT 不是终点,但它是后面几步的起点。真正麻烦的部分在环境和 harness,不在某个 trainer 名字。

发布时间: 2026-10-29 18:45