ChaosstuffAI

FireAct:走向语言代理微调

一句话总结

“

FireAct是一种针对来自多个任务和提示方法的轨迹对LLMs进行微调的新方法,相当于把解决问题的“思路”作为微调数据集来提升LLMs作为Agent的能力。

Image

摘要

当前大多数Agent都是依赖于few-shot prompting技术,忽视了通过微调LLMs来获取Agent的方向。作者通过在问答任务中使用Google搜索API,分别使用不同的基础语言模型、提示方法、微调数据和问答任务,发现经过微调的Agent表现最好。例如,将Llama2-7B与GPT-4生成的500个代理轨迹进行微调可以提高HotpotQA性能77%。因此提出了FireAct这一新的微调方法,该方法使用来自多个任务和提示方法的轨迹,并证明具有更多样化的微调数据可以进一步改善Agent的表现。

Image

介绍

有研究表明,针对特定推理需求进行微调的小型语言模型可以优于经过提示的大型语言模型,同时享受减少的推断时间和成本。但对LLMs(as Agent)微调的研究却非常少,只有少数针对Web导航和API工具使用的微调研究。

因此作者提出了FireAct,这是一种新的微调LLMs的方法,使用来自多个任务和提示方法生成的代理轨迹(通过提示GPT-4生成),并统一在ReAct格式中。

不过除了ReAct,作者还使用了另外两种和ReAct格式兼容的方法:

  • CoT:生成中间推理以弥合问题答案之间的差距。每个CoT轨迹可以转换为一个简单的单轮ReAct轨迹,“思考”是中间推理,“行动”是返回答案。CoT对于没有工具需求的简单问题非常有用。
  • Reflexion:在很大程度上遵循ReAct轨迹,但包含额外的反馈和自我反思。作者在第 6 和 10 轮 ReAct 中简单地提示进行Reflexion,以便长期 ReAct 轨迹可以改变解决当前任务的策略(例如,“电影搜索尚未有所帮助,我现在应该搜索导演”)。

实验

分别对GPT-3.5和Llama2(LoRA)进行三组微调实验。

单任务、单方法微调,即使用单一任务(HotpotQA)和单一提示方法(ReAct)进行fine-tuning。作者们使用500个few-shot prompting轨迹进行训练,并使用随机选择的500个HotpotQA问题进行评估。实验结果显示了fine-tuning和传统prompting相比的多种好处,包括性能提升、效率提高、更强的通用性和鲁棒性,以及成本效益,并且更小的开源模型可以与更强的商业模型相媲美。

Image

多方法微调,即使用CoT和Reflexion等方法与ReAct一起训练模型。结果表明,混合方法可以增加模型的灵活性,但最优的方法组合取决于基础语言模型。

Image

多任务微调,即将来自HotpotQA、StrategyQA和MMLU的数据结合起来用于单个模型的训练。结果表明,添加任务可能不会在显著不同的任务上提高下游性能,但也不会损害模型的原始性能。

讨论

作者在最后也分别对四个问题进行了讨论:

  • 什么时候对LLMs进行微调而不是提示?当下游任务已知,同时已经探索出了一些有效的Agent提示方法(例如,ReAct),并且可以获得足够的数据,那么微调可以提供更好的性能、更强的新任务泛化能力、更鲁棒的对抗环境以及更便宜高效的推断。
  • 要微调哪个模型?在论文实验的所有模型中,GPT-3.5 在各种设置下始终优于其他基于 LLM 的模型,这并不奇怪,因为它的模型规模要大得多。它还具有更好的样本效率和合理的成本(论文中每个微调实验的成本约为 10 美元)。然而,我们也展示了开源的 LLM 模型可以通过足够的微调数据使用正确的提示方法和任务混合即可达到与 GPT-3.5 相当的性能。从业者应该选择 GPT-3.5 的便利性和性能与开源模型的可控制性和可重复性之间的折衷方案。
  • 什么时候对Agent使用工具和反思?基于提示技术的Agent只能模仿一小部分成功的任务解决轨迹,大多时候可能会导致过度使用工具(例如,搜索已经在LLMs中存储的知识),并且在轨迹偏离“成功”的模式时无法恢复(例如,继续搜索类似但无用的查询)。而FireAct的多方法微调有助于提高Agent的灵活性和鲁棒性,但是知道何时寻求帮助(使用工具)和反馈(反思)的问题仍然没有得到解决。
  • 论文的局限性和未来方向?论文对Agent的微调仅限于一种任务(问答)和一个工具(谷歌搜索)。未来的工作可以应用FireAct提出的研究问题来处理更多的任务和语境设置(例如,使用更多API工具、网络或物理世界)。此外,作者还关注了三种方法(ReAct、CoT、Reflexion),它们维护单一的自回归轨迹上下文,使微调变得简单。目前尚未充分探索如何对涉及多个提示、角色和语境的更高级Agent进行微调,或者在复杂的Agent系统中怎样最佳地组合提示和微调。同时也将探索更适合和多样化的基准来开发和评估Agent。