当前位置: 首页 > article >正文

大模型探索式轨迹优化:基于试错的自主智能体学习新方法

 人工智能咨询培训老师叶梓 转载标明出处

现有的开源LLMs在构建智能体方面的效果远不如GPT-4。标准的构建开源LLM智能体的方法涉及模仿学习,即基于专家轨迹对LLMs进行微调。然而,这些方法完全依赖于专家演示,由于对目标环境探索不足而可能产生次优策略,限制了它们的泛化能力。为了解决这一问题,来自北京大学、加州大学洛杉矶分校、俄亥俄州立大学和伊利诺伊大学香槟分校的研究者们提出了一种名为探索式轨迹优化(Exploration-based Trajectory Optimization, ETO)的新型学习方法。该方法允许智能体从探索失败中学习,通过迭代优化框架提高性能。

方法

ETO通过行为克隆开始训练基础智能体,然后通过迭代的方式不断从试错中增强策略。图1展示了探索式轨迹优化(ETO)的过程。在这一流程中,Agent首先通过行为克隆学习基础任务执行策略,然后在实际环境中探索并收集失败的轨迹。这些失败轨迹与先前收集的专家成功轨迹形成对比,Agent利用这些对比信息通过直接偏好优化(DPO)等技术更新其策略。这个过程循环进行,以提高Agent在完成任务时的性能和适应性。

首先,研究者们使用行为克隆(BC)来训练一个基础智能体。行为克隆是通过在专家互动轨迹数据上进行监督式微调,从而为构建强大的智能体打下坚实的基础。在这项工作中,研究者们采用了ReAct风格的轨迹来进行BC,这种方法在每次行动之前还会生成“思考链”(Chain-of-Thought, CoT)理由。

为了简化表示,研究者们用带有CoT的行动来表示。给定一个专家轨迹数据集D,其中包含多个轨迹,通过在自回归损失上微调大模型(LLM)来获得基础智能体πbase。这个过程中,智能体的参数θ被优化以最大化专家轨迹的概率。

然而,仅依赖专家轨迹的行为克隆无法使智能体探索环境,可能导致次优策略。为了训练更强大的智能体,让模型探索失败轨迹非常重要。研究者们采用了强化学习的方法,通过试错来让智能体主动探索环境并获得奖励,从而细化策略。

图 2 展示了ETO的迭代探索-训练循环的概述。从通过行为克隆训练的基础LLM智能体开始,该方法允许智能体迭代地收集失败轨迹,并通过不断从对比失败-成功轨迹对中学习来更新其策略。

在探索阶段,基础智能体πbase根据行为克隆的训练数据指令探索环境,收集轨迹。然后,环境会返回与轨迹相对应的奖励。研究者们基于最终奖励构建失败-成功轨迹对,并且只收集奖励不同的轨迹对。如果智能体生成的轨迹和专家轨迹都成功完成了任务,那么这个对就会被丢弃。最终,研究者们得到了对比轨迹数据集Dp。

在训练阶段,智能体的策略通过模拟轨迹对中的对比失败-成功信息来更新。给定轨迹对ew ≻ el| u,可以通过Bradley-Terry模型来模拟失败-成功关系。然后,使用最大似然法来获得最优策略πθ,这个优化目标旨在增加成功轨迹ew的可能性,并减少失败轨迹el的可能性,同时保持基本智能体能力的约束项。

为了进一步提高智能体的性能,ETO采用了迭代的探索-训练方式。在训练阶段之后,智能体的策略可以用来收集新的失败案例,并创建对比轨迹对。然后,这些新数据被用来通过轨迹对比学习进一步增强智能体。

ETO算法的输入包括专家轨迹数据集D、行为克隆步数T1、ETO迭代次数I、训练阶段步数T2和初始LLM策略πθ。算法首先进行行为克隆,然后迭代地从探索失败中学习,最后输出最终策略πθ。

通过迭代地探索环境以收集失败轨迹,并在训练阶段学习“失败-成功”轨迹对的对比信息来更新策略,ETO能够显著提高智能体的性能。这种方法不仅提高了智能体在已知任务上的性能,还增强了其在未知任务上的泛化能力。

想要掌握如何将大模型的力量发挥到极致吗?叶老师带您深入了解 Llama Factory —— 一款革命性的大模型微调工具。9月22日晚,实战专家1小时讲解让您轻松上手,学习如何使用 Llama Factory 微调模型。

加下方微信或评论留言,即可参加线上直播分享,叶老师亲自指导,互动沟通,全面掌握Llama Factory。关注享粉丝福利,限时免费录播讲解。

LLaMA Factory 支持多种预训练模型和微调算法。它提供灵活的运算精度和优化算法选择,以及丰富的实验监控工具。开源特性和社区支持使其易于使用,适合各类用户快速提升模型性能。

实验

实验在三个代表性的智能体数据集上进行,包括用于网络导航的WebShop、用于模拟科学实验的ScienceWorld,以及用于具身家务任务的ALFWorld。这些环境提供了不同任务的测试场景,并且能够以部分可观测马尔可夫决策过程(POMDP)的形式正式描述。

实验设置:

数据集:实验涉及的数据集统计信息在表 1中展示,包括训练集、已见测试集(Seen)、未见测试集(Unseen)以及专家轨迹的平均交互轮数(Turns)。

训练配置:主要使用Llama-2-7BChat作为构建LLM智能体的基础模型,并在8个NVIDIA A100 80G GPU上进行实验。对于SFT阶段,批量大小为64,学习率设置为1e-5,并使用余弦调度器。ETO训练阶段的批量大小为32,学习率设置为1e-6,DPO损失中的β值根据数据集不同而有所调整。

基线对比:

与ETO进行对比的基线方法包括SFT行为克隆、Best-of-N采样、RFT(拒绝采样微调)和PPO(近端策略优化)。此外,还比较了GPT-3.5-Turbo、GPT-4以及未调优的Llama-2-7BChat。

评估:

所有方法都使用ReAct风格的交互格式进行评估,即在每个动作之前生成CoT理由。评估指标主要是测试集中所有任务实例的平均奖励。

实验结果:

表 2展示了ETO与基线方法在三个智能体数据集上的性能对比。ETO在所有数据集上的性能均显著超过了SFT模仿学习,并且在WebShop数据集上甚至超过了GPT-4的平均奖励,显示出非凡的性能。

在图 3中,展示了ETO与SFT基础智能体以及Oracle智能体在ScienceWorld-Seen测试集上的得分轨迹案例。ETO能够在更少的行动步骤中达到比SFT基础智能体更高的奖励,在某些情况下,如15-90和19-23,甚至超过了Oracle智能体,更早地达到了满分。

表 3 展示了基于不同基础LLMs(包括Llama-2-13B-Chat和Mistral-7B)的ETO方法的结果。这些结果表明,ETO能够一致地提升智能体的性能,即使是在更强大的LLMs上。

在图 4 中,展示了ETO迭代次数对性能的影响。结果表明,在WebShop和ScienceWorld数据集上,ETO在前两次迭代中能够提升智能体的性能,但进一步增加迭代次数并没有带来持续的性能提升,反而在第三次迭代后性能开始下降。

表 4 展示了不同对比数据构建策略的比较结果。轨迹级别的对比(trajectory-wise contrastive)提供了最佳性能,而步级别的对比(step-wise contrastive)则表现出较低的稳定性。

在没有专家轨迹的挑战性场景中,研究者们探索了ETO方法的潜力(表5)。在这种情况下,智能体需要依赖自我对弈来提升能力。实验结果表明,单独使用ETO并不能在没有行为克隆的情况下提升性能,而RFT(拒绝采样微调)显示出在没有专家轨迹的情况下增强智能体能力的潜力。当将RFT与ETO结合使用时,可以进一步增强智能体的性能。

这些实验结果不仅展示了ETO方法在不同任务和不同智能体上的有效性,还揭示了通过试错学习进一步提升智能体泛化能力的可能性。

论文链接:https://arxiv.org/pdf/2403.02502

代码链接:github.com/Yifan-Song793/ETO


http://www.kler.cn/news/305117.html

相关文章:

  • iPhone 16和iPhone 16 Pro将发布时缺少这一关键功能
  • LabVIEW编程快速提升的技术
  • linux 图形如何设置x11 为主要图形
  • fuaeehfnklae
  • 一模--解题--71-80
  • Centos 7.9 使用 crontab 实现开机启动
  • 【C++】string类中常用函数的模拟实现
  • 【信奥赛模拟题中的选择题】
  • 合资油车断崖式崩盘,买车的千万慎重了
  • SAP自动化-AS02修改资产信息
  • NASA数据集:ASTER L2 地表辐射率 VNIR 和 SWIR V003
  • 上门按摩小程序APP系统源码开发搭建
  • yolov5明厨亮灶检测系统,厨师帽-口罩检测,带pyqt界面-可检测图片和视频,支持中文标签,检测接口已封装好并优化,代码可读性强!
  • ​招​银​网​络​​大​疆​​元​象​一​面​
  • 河海大学《2020年+2021年827自动控制原理真题》 (完整版)
  • Netty权威指南:Netty总结-Netty线程模型与架构剖析
  • 如何正确使用MMPI量表进行测试?
  • 关于 -fsanitize=address 的使用注意事项
  • 链路聚合(Link Aggregation)
  • 分享一个爬虫数据挖掘 农村产权交易数据可视化平台 数据分析大数据 Java、python双版(源码、调试、LW、开题、PPT)
  • Linux内核编译并移植至ARM平台
  • 【数据结构和算法实践-树-LeetCode113-路径总和Ⅱ】
  • 【数据结构】6——图1,概念
  • 【nginx】ngx_http_proxy_connect_module 正向代理
  • 『功能项目』C#拓展 - 优化冗余脚本【36】
  • unity3d入门教程五
  • 【FastAPI】实现服务器向客户端发送SSE(Server-Sent Events)广播
  • [C#][IIS]framework4.0注册到IIS
  • 密码学---常见的其他密码
  • 第十一周:机器学习笔记