大模型从失败中学习 —— 微调大模型以提升Agent性能
大模型从失败中学习 —— 微调大模型以提升Agent性能
在大模型微调领域,以往的研究往往只关注成功的交互轨迹,而忽视了失败的轨迹。然而,一篇来自《Learning From Failure: Integrating Negative Examples when Fine-tuning Large Language Models as Agents》的论文提出了一个创新性的解决方案——负面感知训练(Negative-Aware Training, NAT)。这种方法通过合理利用失败的交互轨迹,不仅能够提高资源利用率,还能显著提升模型在数学推理、多跳问答和策略性问答等任务中的性能。
方法
图1展示了传统方法与NAT范式在数据处理阶段的关键差异。传统方法倾向于简单过滤掉负面样本,而NAT则通过在任务查询中添加提示,对轨迹进行重新格式化,使其能够区分正面和负面样本。
在Agent框架中,任务解决过程被详细划分。首先,LLM被提供了一个系统提示,概述具体任务、可用工具以及预期的动作空间和输出格式。然后,通过ReAct格式提示模型回答查询,包括推理文本("thoughts")和"actions"。在互动阶段,系统执行LLM生成的动作,并将结果观察返回给LLM,直到生成完成动作或达到预定义的交互轮次阈值。
对于不同任务,研究者设计了相应的工具:
- 数学任务使用由SymPy实现的计算器
- 问答任务使用Serper 2 API进行搜索,并通过MPNet和DPR对搜索结果进行重新排名
负面感知训练范式的流程包括四个阶段:数据收集、数据清洗、负面感知重格式化和微调。其中,负面感知重格式化是核心部分,通过在样本后附加特定字符串,帮助模型区分成功和失败的结果。
实验
研究者在多个任务上进行了实验,包括数学推理、多跳问答和策略性问答。实验结果表明,NAT方法在不同任务上相较于其他方法有显著的性能提升。
具体来说:
- 在数学任务上,使用2k正面样本的7B模型,NAT实现了8.74%的性能提升
- 在HotpotQA上,NAT-2在EM和f1分数上分别比没有负面样本提高了2%和6%
- 在StrategyQA上,NAT比没有负面样本和NUT分别提高了8%和3%
研究还探讨了多个影响因素:
- 负面样本数量:随着负面数据量的增加,性能得到提升,当负面样本数量约为11k时性能趋于平稳
- 数据质量:高质量的负面数据(如来自GPT-3.5)对NAT效果有显著影响
- 模型学习内容:模型主要通过负面样本学习更好的推理和规划能力
- 提示选择:实验表明,区分正面和负面数据本身就能带来性能提升,而不仅仅是提示的内容
结论
实验结果表明,与传统的仅使用正面样本或简单地结合正面和负面样本的方法相比,NAT方法在多个任务和模型尺寸上都显示出了优越的性能。特别是在数据稀缺的场景下,NAT的性能提升更为显著。
论文链接:https://arxiv.org/pdf/2402.11651
代码链接:https://github.com/Reason-Wang/NAT
本文原文来自CSDN