Agent Reinforcement Fine-Tuning (Agent RFT)
Nikola Balic (@nibzard)· emerging
问题
在优化prompt与任务设计后,Agent在特定业务任务上仍可能表现不佳,原因如下:
- 领域偏移(Domain shift):你的工具与业务context和基础模型的训练场景存在差异
- 工具使用低效(Inefficient tool use):Agent发起过多工具调用或调用错误工具,导致高延迟
- 推理效果欠佳(Suboptimal reasoning):模型无法针对你的特定工具输出开展有效推理
- 样本稀缺(Sample scarcity):部分领域(如新型GPU硬件、专业金融领域)缺乏训练数据
传统微调(fine-tuning)方法效果不佳,因为这类方法无法针对Agent与业务环境间的多步骤工具交互进行端到端训练。
方案
Agent强化微调(Agent RFT) 针对智能体任务对模型权重进行端到端训练,赋予模型以下核心能力:
- 通过实际工具调用探索:在训练轨迹生成过程中,智能体调用你的真实工具端点,从实际响应中学习
- 接收自定义奖励信号:你可通过灵活的评分器(基于模型、端点或字符串)定义「优质表现」的标准
- 掌握多步推理能力:智能体学会在上下文(context)窗口中结合工具输出开展连贯推理
- 适配业务指标优化:基于自定义奖励函数,可实现减少工具调用次数、提升回答准确率,或是在两者间取得平衡的目标
核心组件:
- 工具端点:托管与生产环境完全一致的工具,供模型在训练阶段直接调用
- 评分器端点:定义自定义奖励逻辑,用于评估智能体的最终答案和/或完整工具调用轨迹
- 唯一轨迹ID(Rollout IDs):为每条训练轨迹分配唯一标识,实现跨工具调用的状态统一管理
- 计算乘数(Compute Multiplier):控制探索广度(数值越高,单样本对应的训练轨迹生成数量越多)
# Agent RFT 训练设置
from openai import OpenAI
client = OpenAI()
# 1. 定义带有托管端点的工具集合
tools = [
{
"name": "search",
"url": "https://your-tools.modal.run/search",
"headers": {"Authorization": "Bearer YOUR_TOKEN"}
},
{
"name": "read_file",
"url": "https://your-tools.modal.run/read_file",
"headers": {"Authorization": "Bearer YOUR_TOKEN"}
}
]
# 2. 定义评分器(支持基于模型或自定义端点)
grader = {
"type": "model", # 若使用自定义评分逻辑,可替换为 "endpoint"
"model": "gpt-4o",
"response_format": {
"type": "json_schema",
"json_schema": {
"name": "grader_response",
"schema": {
"type": "object",
"properties": {
"score": {"type": "number"}, # 评分范围 0.0 至 1.0
"reasoning": {"type": "string"}
}
}
}
},
"prompt": """
基于以下维度评估智能体的回答:
1. 与真实答案的一致性
2. 推理过程的完整性
真实答案:{ground_truth}
智能体回答:{final_answer}
请给出0-1之间的分数,并说明评分依据。
"""
}
# 3. 启动微调任务
job = client.fine_tuning.jobs.create(
training_file="file-abc123",
model="gpt-4o-2024-08-06",
method="rft",
rft={
"tools": tools,
"grader": grader,
"hyperparameters": {
"n_epochs": 3,
"batch_size": 16,
"compute_multiplier": 1 # 探索系数
}
}
)
如何使用
前置条件:
- 任务定义明确、范围受限,且正确答案已达成共识
- 具备非零基准性能(模型有时能输出正确结果)
- 高质量训练数据(100-1000条样本,重质不重量)
- 托管工具端点,其行为与生产环境完全一致
训练流程:
- 基准评估:针对每个样本多次运行基础模型,测量结果方差
- 托管工具:部署可处理突发流量的工具端点(如FastAPI、Modal等)
- 设计评分器:构建难以被钻空子、可提供梯度(而非仅二元结果)的奖励函数
- 监控训练:跟踪奖励曲线、工具调用分布及推理令牌(Token)数量
- 评估结果:在验证集上对比微调后模型的准确率与延迟
Agent RFT的优化方向:
- 机器学习性能:通过优化推理过程与工具使用,提升最终答案质量
- 延迟:减少工具调用次数与推理令牌(通常可降低50%)
- 样本效率:仅需100条高质量样本即可取得出色结果
graph TD
A[训练样本] --> B[模型生成推演轨迹]
B --> C{是否调用工具?}
C -->|是| D[调用工具端点]
D --> E[工具响应]
E --> F[加入上下文]
F --> B
C -->|否| G[最终答案]
G --> H[调用评分器]
H --> I[奖励信号]
I --> J[更新模型权重]
J --> K[下一个样本]
style D fill:#fff3e0,stroke:#f57c00,stroke-width:2px
style H fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
style J fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
权衡
优点:
- 端到端优化:训练完整的Agent循环,而非仅优化最终输出
- 样本效率高:仅需100-1000个样本即可运行,而预训练则需要数百万样本
- 奖励机制灵活:支持复杂的多维度评分逻辑
- 自然提速:模型会自发学习使用更少的tokens和工具调用
- 领域适配:缩小基础模型与业务context之间的分布差异
缺点:
- 基础设施复杂度高:必须部署可靠的工具和评分器端点
- 流量突发:在训练步骤的分界点,训练过程会发送数百个并发请求
- 评分器设计成本高:需要精心设计奖励机制,避免模型投机取巧
- 训练成本高:由于涉及探索过程,其成本高于监督微调
- 调试难度大:难以追踪模型习得特定行为的原因
参考文献
关键词:
涵盖OpenAI智能体技术分享(Agent RFT)、大语言模型微调指南、Cognition Devon案例研究,以及RLAIF、奖励塑形工具使用激励等AI领域相关技术模式。
- 相关技术模式:RLAIF、基于奖励塑形的工具使用激励、推理修复型代码评审奖励
来源摘要
正在获取来源并生成中文摘要…