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

APIGen-MT:高效生成多轮人机交互Agent数据的两阶段框架

APIGen-MT:高效生成多轮人机交互数据的两阶段框架

引言

随着人工智能技术的飞速发展,AI代理(Agent)已从简单的聊天机器人发展为能够执行复杂现实任务的系统,例如管理金融交易、安排预约和处理客户服务等。然而,构建真正稳健可靠的AI代理仍面临一个关键挑战:高质量多轮交互数据的稀缺性。本文将深入解析一个创新性的解决方案——APIGen-MT框架,这是一个专为生成高质量多轮人机交互数据而设计的两阶段框架。

研究背景:多轮人机交互数据的挑战

数据稀缺与收集成本

在公共预训练语料库中,高质量的代理交互数据极为稀缺。现有的多轮对话数据集往往无法满足复杂任务的需求,特别是在需要精确执行、可靠性和遵循特定领域政策的应用场景中。而手动收集和标注这类数据不仅耗时,而且成本高昂,尤其对于需要专业知识的特定领域应用。

多轮交互的固有复杂性

多轮交互涉及复杂的对话动态,包括长期依赖关系的跟踪、缺失信息的请求以及复杂函数调用的执行。直接一次性生成这样的多轮对话数据极具挑战性,因为任何一个中间步骤的错误或幻觉(hallucination)都可能导致整个交互的失败。此外,每轮对话的内容依赖于之前的函数调用及其输出,这使得保持一致性和正确性变得尤为困难。

现有方法的局限性

现有的数据生成方法大多集中在单轮交互上,无法捕捉真实世界中多轮交互的复杂性。一些方法虽然涉及多轮交互,但缺乏真实的人机互动元素,这对于生成真实感强的数据至关重要。

APIGen-MT: 两阶段框架解决方案

APIGen-MT通过将任务生成过程分为两个明确的阶段,巧妙地解决了上述挑战:

第一阶段:任务配置和验证

这一阶段旨在生成详细的任务蓝图(blueprint),包括用户意图、可验证的地面真实动作(groundtruth actions)和预期的最终输出。具体步骤如下:

  1. 上下文准备:收集与任务相关的上下文信息,如可用的API、领域特定的规则或策略、参考数据等。

  2. 基于LLM的数据生成器:使用大型语言模型(LLM)生成初始任务配置,包括:

    • 详细的用户指令(q),描述高级意图
    • 完成意图所需的地面真实动作序列(agt)
    • 提供给用户的预期最终输出(ogt)
  3. 格式和执行检查:对生成的配置进行自动技术验证,包括:

    • 验证生成动作的结构正确性(如有效的API调用格式)
    • 确认每个动作在模拟目标环境中的可执行性
  4. 评审委员会:通过多个LLM评审员组成的委员会对通过规则检查的任务进行语义评估,评估任务的质量、一致性、完整性及合理性。

  5. 反馈生成和改进:如果任务在验证或评审阶段失败,反馈生成器会汇总失败原因和评审意见,进行反思并生成改进计划,指导数据生成器在后续迭代中优化任务提案。

第二阶段:人机环境交互轨迹收集

基于第一阶段生成的验证任务配置,这一阶段通过模拟人机交互来生成完整的多轮交互轨迹:

  1. 模拟人机交互:使用基于LLM的模拟人类用户与测试代理(如gpt-4o)进行交互。模拟人类用户根据任务指令和特定人格特征,逐步揭示信息或子目标,而代理则解释不断发展的上下文,根据需要与环境进行API调用,并做出连贯的响应。

  2. 轨迹收集:通过模拟交互产生完整的交互轨迹,包括对话轮次、代理动作和环境响应。每个轨迹通过与第一阶段生成的地面真实动作(agt)和预期输出(ogt)进行比较来验证。只有通过状态和输出检查的轨迹才会被接受进入数据集,确保交互既具有动态合理性,又基于正确的解决方案。

框架的关键创新点

  1. 两阶段分离设计:通过将任务生成和对话模拟分开,APIGen-MT确保了任务结构的正确性和对话的自然性。

  2. 反馈循环机制:通过迭代反馈机制,框架能够从失败中学习并逐步改进任务生成过程。

  3. 真实模拟人机交互:通过模拟真实的人机对话,生成既真实又可验证的多轮交互数据。

τ-bench 案例研究

使用 τ-bench 作为测试平台实现了 APIGen-MT 框架。为了生成和验证任务,将每个 τ-bench 域中可用的 API 建模为有向图,其中节点表示 API,边表示 API 之间的依赖关系。利用专门的上下文采样器(包括 API 采样器、策略采样器、域数据采样器、角色采样器和示例采样器)来确保任务的多样性、真实性和扎实性。

实施严格的三阶段验证流程:

  • 第一阶段:操作验证——格式检查、执行检查、政策合规性检查
  • 第二阶段:对齐验证——评估真实操作是否准确满足用户意图
  • 第三阶段:最终语义审查与细化- 根据委员会的综合评分

另外还引入了反向任务重组技术,该技术利用组合性原理,从更简单、经过独立验证的“构建块”构建复杂任务。在第二阶段,模拟了由 LLM 建模的代理与人类用户之间的多轮交互轨迹。采用拒绝采样,以确保只保留达到任务目标的轨迹。

实验验证与性能评估

模型训练与基准测试

研究者使用APIGen-MT生成的数据训练了一系列不同架构和规模的模型(xLAM-2-fc-r系列),包括Llama 3.1/3.2和Qwen 2.5,参数规模从1B到70B不等。这些模型在两个流行的代理能力基准测试上进行了评估:τ-bench和BFCL v3。

实验结果亮点

  1. BFCL v3测试结果
    • xLAM-2-70b-fc-r和xLAM-2-32b-fc-r分别占据排行榜的前两名位置
    • xLAM-2-70b-fc-r在多轮准确率上达到了75.12%
    • 较小的模型如xLAM-2-8b-fc-r也展现出显著能力,其多轮准确率为69.25%
    • xLAM-2-3b-fc-r在相关性检测方面达到了94.44%的准确率

  1. τ-bench测试结果
    • xLAM-2-70b-fc-r模型的整体成功率达到56.2%,显著优于基础的Llama 3.1 70B Instruct模型(38.2%)和其他开源模型如DeepSeek v3(40.6%)
    • 该模型表现甚至超过了某些专有模型如gpt-4o(52.9%),接近Claude 3.5 Sonnet(60.1%)
    • 较小的模型如xLAM-2-32b-fc-r和xLAM-2-8b-fc-r也展现出令人印象深刻的性能,成功率分别为54.6%和46.7%

一致性与稳定性实验

  1. pass^k曲线分析
    • 结果显示,随着k的增加,APIGen-MT训练的模型的成功率下降幅度较小,表明其具有更高的可靠性和一致性
    • 特别是在复杂的航空领域,xLAM-2-70b-fc-r的pass^5得分高于Claude,体现出其在多次试验中的一致性

  1. BoN用户LM设置评估
    • 采用Best-of-N(BoN)用户LM设置的实验表明,使用BoN用户模拟的模型在平均成功率上更高,且方差更低
    • 这证明BoN方法不仅能提高用户模拟的稳定性,还能提升代理性能

数据收集与统计

研究者使用τ-bench提供的API,在零售和航空两个领域中收集数据。统计结果显示:

  • 任务配置的成功率(Phase 1)达到了70%
  • 轨迹模拟的成功率(Phase 2)为67%
  • 总共收集到3,820个验证通过的轨迹
  • 轨迹轮次范围从1次到29次不等
  • 平均每个轨迹包含7次工具调用和6次用户轮次

这些数据充分证明了APIGen-MT框架能有效生成复杂领域中具有严格策略约束的高质量多轮数据。

未来研究方向

尽管APIGen-MT取得了显著进展,仍有一些值得进一步探索的方向:

1. 提高人类用户模拟的稳定性

  • 研究更确定性的人类用户模拟方法,如基于规则的系统或强化学习代理
  • 开发更精细的过滤指标,以更好地评估和选择高质量的模拟轨迹

2. 利用失败轨迹的价值

  • 将失败的轨迹作为负样本,与成功的轨迹一起用于对比学习
  • 对失败轨迹进行详细分析,提取常见错误模式并在训练中加以利用

3. 提高验证效率

  • 开发更高效的验证算法,如基于启发式的验证方法或增量验证策略
  • 根据任务复杂性和历史验证结果,自适应调整采样策略

4. 扩展应用领域

  • 将APIGen-MT框架应用于医疗、金融、教育等更多领域
  • 针对不同领域特点,优化框架各组件

5. 强化学习集成

  • 将强化学习技术集成到框架中,使代理能在与环境交互中动态调整行为
  • 通过强化学习实现自适应改进,根据环境反馈自动优化策略

结论

APIGen-MT框架通过其两阶段设计,有效解决了生成高质量多轮人机交互数据的难题。实验结果表明,使用该框架生成的数据训练的模型在多个基准测试中明显优于现有基线模型,且较小的模型也能达到与较大模型相媲美的性能。这一创新框架不仅为AI代理的训练提供了宝贵的数据资源,也为未来更可靠、高效和具备强大能力的AI代理系统的发展铺平了道路。

随着人工智能向着更智能、更自主的方向发展,像APIGen-MT这样的技术将在推动AI代理能力进步方面发挥越来越重要的作用,为各行各业的智能自动化带来更多可能性。

相关文章:

APIGen-MT:高效生成多轮人机交互Agent数据的两阶段框架

APIGen-MT:高效生成多轮人机交互数据的两阶段框架 引言 随着人工智能技术的飞速发展,AI代理(Agent)已从简单的聊天机器人发展为能够执行复杂现实任务的系统,例如管理金融交易、安排预约和处理客户服务等。然而&#x…...

【NLP】 21. Transformer整体流程概述 Encoder 与 Decoder架构对比

1. Transformer 整体流程概述 Transformer 模型的整个处理流程可以概括为从自注意力(Self-Attention)到多头注意力,再加上残差连接、层归一化、堆叠多层的结构。其核心思想是利用注意力机制对输入进行并行计算,从而避免传统 RNN …...

《Vue Router实战教程》21.扩展 RouterLink

欢迎观看《Vue Router 实战(第4版)》视频课程 扩展 RouterLink RouterLink 组件提供了足够的 props 来满足大多数基本应用程序的需求,但它并未尝试涵盖所有可能的用例,在某些高级情况下,你可能会发现自己使用了 v-sl…...

开发一个答题pk小程序的大致成本是多少

答题 PK 小程序通常指的是一种允许用户之间进行实时或异步答题竞赛的应用程序,可能结合PK答题、积分系统、排行榜等功能。 一、首先,确定答题 PK 小程序的基本功能模块。这可能包括用户注册登录、题库管理、题目类型(单选、多选、判断等&am…...

Android 应用蓝牙连接通信实现

Android 应用蓝牙连接通信实现,主要包括如下步骤: 一.打开蓝牙 // 获取蓝牙适配器 BluetoothAdapter bluetoothAdapter BluetoothAdapter.getDefaultAdapter() 1.判断蓝牙是否打开, bluetoothAdapter.isEnabled() 2. 如果未打开,执行打开蓝牙…...

GPT-2 语言模型 - 模型训练

本节代码是一个完整的机器学习工作流程,用于训练一个基于GPT-2的语言模型。下面是对这段代码的详细解释: 文件目录如下 1. 初始化和数据准备 设置随机种子 random.seed(1002) 确保结果的可重复性。 定义参数 test_rate 0.2 context_length 128 tes…...

科技项目验收测试包括哪些内容?有什么作用?

在现代科技快速发展的背景下,科技项目的验收测试已成为项目管理中的重要环节。科技项目验收测试是一种系统性的方法,旨在评估一个科技项目是否达到预定的技术指标和要求,确认项目的完成质量。该测试通常在项目实施完成后进行,通过…...

Java 设计模式:组合模式详解

Java 设计模式:组合模式详解 组合模式(Composite Pattern)是一种结构型设计模式,它允许将对象组织成树形结构,以统一的方式处理单个对象和对象集合。组合模式适用于需要表示“部分-整体”层次结构的场景,例…...

java实现加密解密

AES加密/解密核心步骤 参考 https://flying-fish.blog.csdn.net/article/details/142688630?fromshareblogdetail&sharetypeblogdetail&sharerId142688630&sharereferPC&sharesourceweixin_48616345&sharefromfrom_link工具类 import javax.crypto.Cip…...

websoket 学习笔记

目录 基本概念 工作原理 优势 应用场景 HTTP协议与 webSoket协议之间的对比 消息推送场景 1. 轮询(Polling) 2. 长轮询(Long Polling) 3. 服务器发送事件(Server-Sent Events, SSE) 4. WebSocket…...

博途 TIA Portal之1200做从站与汇川EASY的TCP通讯

上篇我们写到了博途做主站与汇川EASY的通讯。通讯操作起来很简单,当然所谓的简单,也是相对的,如果操作成功一次,那么后面就很容易了, 如果操作不成功,就会很遭心。本篇我们将1200做从站,与汇川EASY做主站进行TCP的通讯。 1、硬件准备 1200PLC一台,带调试助手的PC机一…...

【数据结构_6下篇】有关链表的oj题

思路: 1.分别求出这两个链表的长度 2.创建两个引用,指向两个链表的头节点;找到长度长的链表,让她的引用先走差值步数 3.让这两个引用,同时往后走,每个循环各自走一步 然后再判定两个引用是否指向同一个…...

vscode+wsl 运行编译 c++

linux 的 windows 子系统(wsl)是 windows 的一项功能,可以安装 Linux 的发行版,例如(Ubuntu,Kali,Arch Linux)等,从而可以直接在 windows 下使用 Linux 应用程序&#xf…...

快速幂(蓝桥杯)

1. 递归实现 递归方法通过将问题分解为更小的子问题来实现。具体步骤如下: 如果指数 b 为 0,返回 1。 如果 b 是偶数,则递归计算 (a^2)b/2。 如果 b 是奇数,则递归计算 a⋅(a^2)(b−1)/2。 伪代码: function fas…...

狂神SQL学习笔记一:初识MySQL、关系型数据库和非关系型数据库

菜鸟教程学习一半了,但是已经疲倦了,所以换一个课程学习,来提升学习质量,可能会有很多已经学习到的地方,就当是复习巩固了。 按照SQL学习课程来划分,分为45集,所以可能也会写45篇文章&#xff…...

关于 Spring Boot 微服务解决方案的对比,并以 Spring Cloud Alibaba 为例,详细说明其核心组件的使用方式、配置及代码示例

以下是关于 Spring Boot 微服务解决方案的对比,并以 Spring Cloud Alibaba 为例,详细说明其核心组件的使用方式、配置及代码示例: 关于 Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案! https://sca.aliyun.com/?spm7145af80…...

VS 基于git工程编译版本自动添加版本号

目录 概要 实现方案 概要 最近在用visual Studio 开发MFC项目时,需要在release版本编译后的exe文件自动追加版本信息。 由于我们用的git工程管理,即需要基于最新的git 提交来打版本。 比如: MFCApplication_V1.0.2_9.exe 由于git 提交信…...

小程序开发指南

小程序开发指南 目录 1. 小程序开发概述 1.1 什么是小程序1.2 小程序的优势1.3 小程序的发展历程 2. 开发准备工作 2.1 选择开发平台2.2 开发环境搭建2.3 开发模式选择 3. 小程序开发流程 3.1 项目规划3.2 界面设计3.3 代码开发3.4 基本开发示例3.5 数据存储3.6 网络请求3.7 …...

MySQL 超详细安装教程与常见问题解决方案

一、MySQL 安装教程 1. Windows 系统安装(以 MySQL 8.0 为例) 步骤 1:下载 MySQL Installer 访问 MySQL 官网下载页面。 选择 Windows (x86, 64-bit), MSI Installer(推荐使用完整版 mysql-installer-web-community-8.0.xx.xx.…...

pytorch软件封装

封装代码,通过传入文件名,即可输出类别信息 上一章节,我们做了关于动物图像的分类,接下来我们把程序封装,然后进行预测。 单张图片的predict文件 predict.py 按着路径,导入单张图片做预测from torchvis…...

【多线程-第四天-自己模拟SDWebImage的下载图片功能-看SDWebImage的Demo Objective-C语言】

一、我们打开之前我们写的异步下载网络图片的项目,把刚刚我们写好的分类拖进来 1.我们这个分类包含哪些文件: 1)HMDownloaderOperation类, 2)HMDownloaderOperationManager类, 3)NSString+Sandbox分类, 4)UIImageView+WebCache分类, 这四个文件吧,把它们拖过来…...

电脑提示“找不到mfc140u.dll“的完整解决方案:从原因分析到彻底修复

当你启动某个软件或游戏时,突然遭遇"无法启动程序,因为计算机中丢失mfc140u.dll"的错误提示,这确实令人沮丧。mfc140u.dll是Microsoft Foundation Classes(MFC)库的重要组成部分,属于Visual C Re…...

图像变换方式区别对比(Opencv)

1. 变换示例 import cv2 import matplotlib.pyplot as plotimg cv2.imread(url) img_cut img[100:200, 200:300] img_rsize cv2.resize(img, (50, 50)) (hight,width) img.shape[:2] rotate_matrix cv2.getRotationMatrix2D((hight//2, width//2), 50, 1) img_wa cv2.wa…...

图像颜色空间对比(Opencv)

1. 颜色转换 import cv2 import matplotlib.pyplot as plotimg cv2.imread("tmp.jpg") img_r cv2.cvtColor(img, cv2.COLOR_BGR2RGB) img_g cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) img_h cv2.cvtColor(img, cv2.COLOR_BGR2HSV) img_l cv2.cvtColor(img, cv2.C…...

【NLP】24. spaCy 教程:自然语言处理核心操作指南(进阶)

spaCy 中文教程:自然语言处理核心操作指南(进阶) 1. 识别文本中带有“百分号”的数字 import spacy# 创建一个空的英文语言模型 nlp spacy.blank("en")# 处理输入文本 doc nlp("In 1990, more than 60% of people in East…...

每天学一个 Linux 命令(15):man

可访问网站查看,视觉品味拉满:http://www.616vip.cn/15/index.html 每天学一个 Linux 命令(15):man 命令简介 man(Manual)是 Linux 中最核心的命令之一,用于查看命令、系统调用、库函数等的手册文档。它是用户和开发者获取帮助的核心工具,几乎覆盖了系统中的所有功…...

必刷算法100题之计算右侧小于当前元素的个数

题目链接 315. 计算右侧小于当前元素的个数 - 力扣(LeetCode) 题目解析 计算数组里面所有元素右侧比它小的数的个数, 并且组成一个数组,进行返回 算法原理 归并解法(分治) 当前元素的后面, 有多少个比我小(降序) 我们要找到第一比左边小的元素, 这样…...

Python依赖注入完全指南:高效解耦、技术深析与实践落地

Python依赖注入完全指南:高效解耦、技术深析与实践落地 摘要 依赖注入(DI)不仅是一种设计技术,更是一种解耦的艺术。它通过削减模块间的强耦合性,为系统提供了更高的灵活性和可测试性,特别是在 FastAPI 等…...

android​​弱网环境数据丢失解决方案(3万字长文)

在移动互联网时代,Android 应用已经成为人们日常生活中不可或缺的一部分。从社交媒体到在线购物,从移动办公到娱乐游戏,用户对应用的依赖程度与日俱增。然而,尽管网络基础设施在全球范围内得到了显著改善,弱网环境依然是一个普遍存在且难以完全避免的现实。特别是在一些发…...

答案之书和源代码

答案之书是一个神秘而神奇的工具,它可以帮助你在遇到问题或犹豫不决的时候找到答案或暗示。这个程序模拟了答案之书的功能,让你随机生成一个简短而有启发性的答案,让你在困境中找到一丝希望。 在这个程序中,你会看到一个画布上显…...