推荐大家看一下OpenAI最近关于Agent RFT的实战分享。对于一些已经深度做过Agent的同学来说,这可能是一个小范围的共识,但是对于刚开始做、或者做得比较浅的同学,这个思路大概率就是后面会经历的路径。

为什么Agent需要RFT?

我们先来说一下怎么构建Agent。逻辑很简单:基于一个强大的基础模型,给他写System Prompt,教他Know-how,再配上一系列工具Tool。这样它就能调用工具来完成任务,而不只是回答问题。

在这个阶段,大家会不断调试PE。你会发现把Prompt写得更好一点,效果会提升;把基模换得更强,效果也会提升;把工具设计得更合理,拉开差异度,组合起来也能带出更好的效果。

但是,你再继续调教下去,很快就会遇到瓶颈。

尤其当你的垂直领域知识在公开语料中比较少时,模型会很难处理。你还会发现,可能自己本地调试跑得通,一旦部署到真正的线上环境,哪怕效果不错,但因为耗时长的问题,用户也不买单。可能用2个工具就能完成的事情,他可能要来回折腾10几下才搞定。

这种情况严重限制了Agent在生产环境的效果和用户的接受度。而OpenAI分享的Agent RFT,其实就是为了解决这个特定场景的精调问题。

RFT:如何用少量数据撬动性能飞跃

RFT的训练方式很特别。首先,你只需要准备少量的样本,比如100个你这个垂直场景的User Prompt。

然后,让Agent基于这些输入去跑任务。跑完之后,你需要对它跑的「整个轨迹」进行评分——注意,不仅是最终结果,中间的工具调用、思考过程全都要评,这样让Agent知道如何往正确的方向努力,学习曲线也不会那么陡峭。

这个评分可以是你定义的一套规则,让LM去评,也可以是人工去评。一个user prompt,多跑几次,可以出来多个结果,有好的,也有不好的,好的加分,不好的扣分。这里是最核心,也是最难的部分。

最后,用这些「带分数的轨迹数据」去精调模型。因为有得分,模型就知道哪些是「好过程」,哪些是「坏过程」,它就会往更好的表现上去迭代。

这里跟SFT(Supervised Finetuning)有本质区别。

SFT是准备一批海量的「标准好答案」,让Agent去模仿。这带来的问题是容易过拟合,而且数据准备成本极高。而RFT是让Agent自己去生成数据(轨迹),我们只负责定义一个Reward Model(评分标准)来「奖励」好过程。
 
 
Back to Top