另一位人大老师的近期工作汇总,涉及数据合成(生成训练数据,指导agent模型)、奖励模型训练(用于监督agent进行规划)、主动行动(指导agent主动为人类提供服务)、工具选择(支持1600+工作调用)、多模态训练(操作手机)等。
0 新框架
具体实现还没有找到
0.1 MiniCPM4-Survey:
MiniCPM4-Survey是由THUNLP、中国人民大学和ModelBest联合开发的开源大语言模型智能体。它基于MiniCPM4 80亿参数基座模型,接受用户质量作为输入,自主生成可信的长篇综述论文。基于MiniCPM4-8B构建的MiniCPM4-Survey,能够生成可信的长篇调查报告,性能比肩更大模型,强于Webthinker-R1-7B等模型。
主要特性包括:
- 计划-检索-写作生成框架 — 我们提出了一个多智能体生成框架,包含三个核心阶段:计划(定义综述的整体结构)、检索(生成合适的检索关键词)和写作(利用检索到的信息,生成连贯的段落)。
- 高质量数据集构建——我们收集并处理大量人类专家写作的综述论文,构建高质量训练集。同时,我们收集大量研究论文,构建检索数据库。
- 多方面奖励设计 — 我们精心设计了包含结构、内容和引用的奖励,用于评估综述的质量,在强化学习训练阶段作奖励函数。
- 多步强化学习训练策略 — 我们提出了一个上下文管理器,以确保在促进有效推理的同时保留必要的信息,并构建了并行环境,维持强化学习训练高效。
1 webcpm
2023年的论文,《WEBCPM:用于中文长篇问答的交互式网络搜索》的论文,其核心方法是构建一个模仿人类在回答复杂问题时,如何通过与搜索引擎多次互动来“查找资料”和“整合答案”的AI框架。
传统方法往往是“一锤子买卖”式的检索,而这篇论文提出的方法则是“边想边搜”的动态过程 [cite: 16, 17, 18]。
1.1WebCPM的核心方法:会“思考和追问”的侦探
WebCPM框架则像一个聪明的侦探,他会把一个大案子(复杂问题)拆解成多个小线索(子问题),并通过与搜索引擎的多次互动来逐步逼近真相 [cite: 18, 19]。这个过程被分解为两个核心模型:搜索模型和合成模型。
1.1.1. 搜索模型 (Search Model):像侦探一样收集线索
这个模型模仿人类的搜索行为,它不是一次性完成任务,而是在一个专门的网页搜索界面中,通过执行一系列动作来逐步收集信息 [cite: 9, 43] 。这个模型内部又被拆解为三个小模块 [cite: 114, 115]:
-
动作预测模块 (Action Prediction):这是“大脑”,在每一步决定下一步该干什么。它有10个动作可选 [cite: 72],比如:
Search
:发起一次新的搜索。
Load Page
:打开搜索结果中的第i个网页。
Quote
:从当前网页中摘录一段有用的话作为“证据”(即“支撑事实”)。
Scroll Down
:向下滚动页面,查看更多内容。
Finish
:结束搜索。
-
搜索查询生成模块 (Search Query Generation):如果“大脑”决定要搜索,这个模块就负责生成具体的搜索关键词。它可能直接使用原始问题,也可能根据已有的信息,生成更精准的子问题或相关的关键词 [cite: 239]。
-
支撑事实提取模块 (Supporting Fact Extraction):如果“大脑”决定摘录证据,这个模块就负责从当前网页内容中,精确地抽取出连续的句子作为支撑事实 [cite: 153]。
整个搜索过程示例:
面对“麦田怪圈是如何形成的?”这个问题,搜索模型可能会执行如下动作序列 [cite: 119]:
- 动作:
Search
关键词: “麦田怪圈如何形成?”
- 动作:
Load Page <1>
(打开第一个搜索结果)
- 动作: 在页面中阅读后,执行
Quote
,摘录下“人为说”的定义作为事实1。
- 动作:
Go Back
(返回搜索结果页)
- 动作:
Load Page <3>
(打开第三个搜索结果)
- 动作: 在新页面中阅读后,执行
Quote
,摘录下“磁场说”的定义作为事实2。
- …(重复这个过程,直到收集到足够的事实)…
- 动作:
Finish
1.1.2. 合成模型 (Synthesis Model):撰写最终的调查报告
当搜索模型收集完所有“证据”(支撑事实)后,合成模型就登场了 [cite: 45, 158]。
-
工作原理:它接收原始问题和搜索模型收集到的一系列支撑事实,然后将这些零散的事实组织、融合成一段通顺、连贯、有逻辑的详细答案 [cite: 2, 158]。
-
抗干扰训练:为了让这个模型更“聪明”,研究者在训练时耍了个“小花招”。他们会有意地在人类收集的正确事实中,随机混入一些从其他问题里拿来的、完全不相关的“假证据” [cite: 160, 161, 162] 。模型被要求在有干扰的情况下,依然能生成和原始答案一致的内容。通过这种方式,模型学会了忽略无关信息和噪音,只专注于利用真正有用的事实来生成答案 [cite: 163]。
总结:WebCPM的核心方法是将复杂的长篇问答任务,分解为一个动态、多步的交互式搜索过程和一个抗干扰的答案生成过程。它通过模仿人类“分解问题、搜索、阅读、摘录、再搜索”的行为模式,来更有效地收集高质量信息,并利用这些信息生成全面、详细的答案。
2 ToolLLM
这篇论文的核心方法是 ToolLLM,一个旨在提升开源大型语言模型(LLM)使用真实世界API(工具)能力的通用框架。 [cite: 4] 该框架通过高质量的数据构建、创新的推理算法和全面的评估体系,成功地让模型掌握了超过16,000个真实API的使用。 [cite: 1, 6]
ToolLLM框架主要由以下几个关键部分组成:
2.1. ToolBench:一个高质量的工具使用指令微调数据集
ToolBench是该研究的核心贡献之一,它是一个专门为训练LLM使用工具而构建的大规模、高质量指令微调数据集。 [cite: 5] 整个构建过程利用ChatGPT自动化完成,包含三个主要阶段:
- API收集 (API Collection): 研究人员从一个名为RapidAPI Hub的平台收集了16,464个真实的RESTful API,这些API覆盖了金融、社交媒体、电子商务等49个不同类别。 [cite: 6, 39, 40]
- 指令生成 (Instruction Generation): 利用ChatGPT,针对收集到的API自动生成了大量多样的用户指令。 [cite: 7] 这些指令不仅涵盖了单个工具的使用场景,还包括了需要多个工具协作才能完成的复杂场景(例如,同一类别内的多工具或跨类别的多工具组合)。 [cite: 7, 46, 101, 102]
- 解决方案路径标注 (Solution Path Annotation): 针对每一条指令,研究团队再次使用ChatGPT来标注一个有效的解决方案路径,即一系列的API调用链。 [cite: 8]
2.2 DFSDT:一种创新的决策树推理算法
在进行解决方案路径标注时,研究人员发现传统的CoT (Chain-of-Thought) 或 ReACT 等推理方法存在局限性,例如容易出现错误传播且探索的解决方案空间有限。 [cite: 111, 112] 为了解决这个问题,他们提出了一种新颖的 基于深度优先搜索的决策树 (Depth-First Search-based Decision Tree, DFSDT) 算法。 [cite: 9]
DFSDT的核心思想是:
- 扩展搜索空间: 它允许LLM评估和探索多个不同的推理路径,而不仅仅是线性的单一路径。 [cite: 10, 114]
- 支持回溯和决策: 当模型在某个路径上遇到错误或发现此路不通时,可以回溯到上一个节点,并探索其他可能性,从而做出更审慎的决策。 [cite: 50, 115]
通过使用DFSDT,标注过程的效率和成功率得到了显著提升,尤其是在处理那些使用传统方法无法解决的复杂指令时。 [cite: 51] 同时,DFSDT也被用作一种通用的推理策略来增强LLM在实际应用中的决策能力。 [cite: 59]
ToolLLaMA:经过微调的强大工具使用模型
研究团队在他们构建的ToolBench数据集上,对开源的LLaMA模型进行了微调,最终得到了ToolLLaMA模型。 [cite: 12] 实验结果表明,ToolLLaMA在执行复杂的单工具和多工具指令方面表现出色,其性能与作为其“教师模型”的ChatGPT相当,并且显著优于Text-Davinci-003和Claude-2等其他模型。 [cite: 13, 56, 184] 更重要的是,ToolLLaMA展现了强大的泛化能力,能够有效地使用在训练期间从未见过的新API。 [cite: 13, 57]
API检索器与自动评估器
为了使整个框架更具实用性,该研究还包含另外两个组件:
- 神经API检索器 (Neural API Retriever): 在真实场景中,从海量API中手动挑选合适的工具是不现实的。 [cite: 61, 187] 因此,研究人员训练了一个使用Sentence-BERT模型为基础的API检索器,它可以根据用户指令自动推荐最相关的API给ToolLLaMA模型。 [cite: 12, 62]
- 自动评估器 (ToolEval): 为了高效、可扩展地评估LLM的工具使用能力,他们开发了一个名为ToolEval的自动评估器。 [cite: 11] ToolEval使用通过率(Pass Rate)和胜率(Win Rate)两个指标来衡量模型的表现,并且其评估结果与人类评估高度一致。 [cite: 52, 53, 54, 131]
综上所述,该论文的核心方法是通过 ToolLLM框架,特别是利用 DFSDT算法 构建了高质量的 ToolBench 数据集,并在此基础上训练出具备强大、泛化工具使用能力的 ToolLLaMA 模型,从而显著缩小了开源LLM与顶级闭源模型在工具使用能力上的差距。 [cite: 4, 186]
2.3 指令生成
指令生成是构建ToolBench
数据集的第二个关键阶段,其核心目标是创建足够多样化且贴近真实世界应用场景的指令,特别是要覆盖单个工具和多个工具协同使用的复杂情况 [cite: 87]。
整个过程是利用ChatGPT自动完成的,具体可以分解为以下几个步骤:
2.3.1. 核心思路:从API到指令
研究人员采用了一种“自下而上”的策略 [cite: 88]。他们不是先凭空想出用户指令再去找对应的API,而是反过来:
- 首先,从整个API集合中抽取出一小组API [cite: 89]。
- 然后,让ChatGPT理解这些被选中的API的功能,并围绕它们生成可能的用户指令 [cite: 90]。
2.3.2. 生成方法与提示工程 (Prompting)
为了引导ChatGPT生成高质量的指令,研究人员精心设计了输入提示(Prompt)。每次提供给ChatGPT的提示都包含:
- 任务描述:清晰地说明需要生成什么样的指令 [cite: 95] 。例如,对于多工具场景,会要求创建的指令必须使用到多个不同工具的API [cite: 410]。
- API文档:提供当前选中的所有API的详细文档,包括功能描述、必需参数、可选参数等,以帮助ChatGPT理解其功能和潜在的相互作用 [cite: 95]。
- 上下文示例 (In-context Examples):提供3个由人类专家编写的高质量“种子”示例,通过上下文学习来规范ChatGPT的输出行为 [cite: 95, 96] 。研究人员总共为单工具和多工具场景分别准备了12个和36个不同的种子示例,每次随机抽取3个使用,以保证生成指令的多样性 [cite: 98]。
- 具体要求:提示中还包含非常具体的要求,比如:
- 指令内容要创新且详尽,并包含API调用所需的具体参数值(如,不要只说“一个地址”,而是提供具体的街道名称) [cite: 393, 398]。
- 指令应直接陈述需求,而不是询问“该用哪个API” [cite: 402]。
- 生成的指令在句式(祈使句、陈述句等)和语气(礼貌、直接等)上应富有多样性 [cite: 451, 452]。
2.3.3. 针对不同场景的API抽样策略
为了生成不同复杂度的指令,研究人员设计了三种抽样场景,这主要基于RapidAPI平台的层级结构 [cite: 101]:
- I1 - 单工具指令 (Single-tool instructions):遍历每一个工具,并为其包含的多个API生成指令 [cite: 100]。
- I2 - 类别内多工具指令 (Intra-category multi-tool instructions):为了避免随机组合的工具之间毫无关联,研究人员从同一个类别(如“金融”或“电影”)中随机选择2到5个工具,并为这些功能相关的工具生成协同任务指令 [cite: 101]。
- I3 - 集合内多工具指令 (Intra-collection multi-tool instructions):与类别类似,从同一个集合(Collection,一种更细粒度的分类)中选择工具来生成指令 [cite: 101]。
2.3.4. 后处理与最终产出
在ChatGPT生成指令后,会进行一个过滤步骤,剔除那些包含了“幻觉”(即不存在于所提供列表中的)API的指令 [cite: 104]。
经过以上所有步骤,最终收集到了近20万个合格的(指令,相关API)数据
对,为后续训练API检索器和ToolLLaMA模型打下了基础 [cite: 91, 104]。
2.4 解决方案路径标注
这是构建ToolBench
数据集的是最具挑战性的阶段。其核心目标是为每一条用户指令,生成一个完整且有效的执行路径,这个路径由一系列的思考和API调用组成。
2.4.1. 基本流程:作为多轮对话的决策过程
整个标注过程被设计成一个与ChatGPT的多轮对话 [cite: 106]。
- 输入:给定一条用户指令(例如,“帮我朋友找一个生日礼物,她最喜欢的女演员是Hailee Steinfeld”)和一组相关的API [cite: 93, 105]。
- 执行:在每个步骤中,ChatGPT需要分析当前的状态,然后生成一个动作
aₜ
[cite: 107] 。这个动作的格式通常包含三个部分:“Thought”(思考),“API Name”(要调用的API名称),以及“Parameters”(调用API所需的具体参数) [cite: 109]。
- 反馈:执行动作(即真实调用API)后,会得到一个返回结果
rₜ
(Observation) [cite: 107, 94]。这个结果会被反馈给ChatGPT。
- 循环:ChatGPT基于历史的“动作-结果”序列,进行下一步的思考和决策,如此循环,直到任务完成 [cite: 107]。
- 结束:为了让模型知道何时结束,研究人员定义了两个特殊的结束函数:“Finish with Final Answer”(给出最终答案)和“Finish by Giving Up”(在多次尝试后放弃) [cite: 110]。
2.4.2. 核心挑战:传统方法的局限性
研究人员在初步研究中发现,像ReAct或CoT(思维链)这类传统的线性推理方法存在两大固有缺陷:
- 错误传播(Error Propagation):一旦中间某一步出错了,这个错误会影响后续所有步骤,导致模型陷入死循环或最终失败 [cite: 111]。
- 探索有限(Limited Exploration):这些方法只探索一条单一的推理路径 [cite: 111] 。对于复杂的指令,即便强如GPT-4也常常因为第一步走错而无法找到有效的解决方案,这使得标注工作非常低效和困难 [cite: 112]。
2.4.3. 创新方法:基于深度优先搜索的决策树 (DFSDT)
为了克服上述挑战,研究人员提出了一种名为 DFSDT (Depth-First Search-based Decision Tree) 的新方法 [cite: 49]。
- 核心思想:DFSDT不再是线性地走一步看一步,而是构建一个决策树来扩展搜索空间 [cite: 113] 。它允许模型在每个节点上评估多个不同的推理分支(即不同的“Thought”和API调用) [cite: 114]。
- 决策与回溯:模型可以做出更灵活的决策,选择一个最有希望的路径继续深入探索,或者当发现当前路径走不通时,可以放弃当前节点(通过调用“Finish by Giving Up”函数),回溯到上一个节点,并扩展一个新的、之前未尝试过的分支 [cite: 114, 115]。
- 保证多样性:在扩展新分支时,系统会提示模型它之前尝试过的失败路径,并明确要求它生成一个与之前所有尝试都不同的新动作,从而扩大搜索范围 [cite: 115]。
- 选择DFS的原因:之所以采用深度优先搜索(DFS)而非广度优先搜索(BFS),是因为标注任务的目标是只要找到一条可行的路径即可。DFS可以尽快深入探索直到找到一个成功解,从而节省大量的API调用成本;而BFS则会同时探索所有分支,成本过高 [cite: 116, 117]。
通过为所有生成的指令运行DFSDT算法,研究团队成功地为许多用传统方法无法解决的复杂指令找到了有效的解决方案路径 [cite: 51, 118] 。最终,他们保留了所有成功通过的标注结果,共计126,486个“(指令, 解决方案路径)”数据对,这些数据构成了训练ToolLLaMA模型的核心语料 [cite: 119]。
3 AgentRM
好的,我们来解读这篇名为《AgentRM:通过奖励建模增强智能体的泛化能力》的论文。
3.1 核心观点
这篇论文的核心观点是:为了提升AI智能体(Agent)在未知任务上的泛化能力,直接微调(finetune)一个“裁判”模型(即奖励模型 Reward Model, RM)来指导一个通用的“行动”模型(Policy Model),比直接微调“行动”模型本身要有效和稳健得多 [cite: 3]。
直接训练行动模型,很容易让它在熟悉的任务上表现出色,但在没见过的新任务上表现严重下滑,也就是“过拟合” [cite: 1, 16] 。而训练一个好的“裁判”,则能更普适地判断每一步行动的好坏,从而更好地指导行动模型在各种任务中做出决策 [cite: 23]。
3.2核心方法:AgentRM
基于以上发现,论文提出了 AgentRM,一个可泛化的奖励模型。它的主要作用是在AI智能体执行任务时,像一个经验丰富的教练一样,为每一步行动的“好坏”进行打分,从而指导智能体在测试时做出更好的决策 [cite: 4]。
论文探索了三种构建这个“裁判”(AgentRM)的方法 [cite: 5],其中效果最好、也是本文重点的是显式奖励建模 (Explicit Reward Modeling)。
3.2.1 显式奖励建模 (Explicit Reward Modeling)
这个方法的目标是为智能体在任务过程中的每一步(state)都计算出一个精确的奖励分数,这个分数代表了“从当前这步开始,最终能成功完成任务的期望有多高”。由于在任务结束前,环境通常不提供中间奖励,所以这个分数需要通过算法来估算 [cite: 49]。
该方法借鉴了蒙特卡洛树搜索(MCTS)的思想来自动标注每一步的奖励分数 [cite: 42, 50]。流程如下:
-
探索与构建搜索树 (Explore & Build Search Tree):
- 首先,有一个经过初步训练的“行动模型”(SFT Agent) [cite: 45]。
- 对于一个任务,让这个行动模型与环境互动,探索各种可能的行动路径 [cite: 45]。
- 所有这些探索路径被组织成一棵“搜索树”,树的节点代表状态(state),边代表动作(action) [cite: 51]。
-
MCTS估算节点价值 (Estimate Node Value):
- 通过重复执行一个包含四个阶段的循环(w次)来不断优化这棵树,并估算每个节点的价值(即期望奖励) [cite: 55]。
- 选择 (Selection):从根节点开始,使用UCT(Upper Confidence Bound for Trees)公式选择最值得探索的路径,直到抵达一个叶子节点 [cite: 56]。
- 扩展 (Expansion):在选中的叶子节点上,让行动模型采样k个可能的下一步动作,从而在树上创建出新的子节点 [cite: 56]。
- 模拟 (Simulation):对于新扩展出的节点,快速地执行n次完整的任务流程(rollout),并根据最终的任务结果(成功或失败)来估算这个节点的初始价值 [cite: 57]。
- 反向传播 (Backpropagation):将模拟阶段获得的分数沿着路径反向传回,更新路径上所有父节点的访问次数
N(s)
和期望奖励 V(s)
[cite: 58]。
-
训练奖励模型 (Reward Model Training):
- 当搜索树构建完成后,树上每个被充分访问过的节点
s
都有了一个比较准确的期望奖励估值 V(s)
[cite: 59]。
- 我们把这些“状态-奖励”
(s, V(s))
对提取出来,作为训练数据 [cite: 59]。
- 最后,训练一个语言模型(即AgentRM),让它学习预测任意一个状态
s
的奖励值,其目标是让预测值 V̂(s)
与树搜索估算出的 V(s)
之间的均方误差(MSE)最小 [cite: 59]。
3.2.2 如何使用AgentRM
训练好的AgentRM裁判模型,会在测试时(即面对新任务时)通过以下两种搜索方法来指导“行动模型”:
- Best-of-N 采样:让行动模型生成N个完整的解决方案(轨迹),然后用AgentRM为每个方案打分,最后选择得分最高的那个作为最终答案 [cite: 6, 69]。
- 步级别束搜索 (Step-level Beam Search):这是一种更精细的搜索。在任务的每一步,都生成多个(例如
W1*W2
个)可能的下一步动作,用AgentRM为这些动作打分,然后只保留分数最高的W1
个“候选路径”,并在此基础上继续探索下一步,如此循环直到任务结束 [cite: 6, 70, 71, 72, 73, 74]。
4. PROACTIVE AGENT
这篇论文的核心方法是提出一个创新的数据驱动框架,旨在将大型语言模型(LLM)代理从被动的“反应式”系统转变为能够预测用户需求并主动提供帮助的“主动式”系统 [cite: 1, 3, 28]。
该方法主要包含以下几个关键部分:
4.1. 自动数据生成流水线 (Data Generation Pipeline)
为了训练和评估主动式代理,研究者构建了一个全面的自动化数据生成流水线,该流水线能够模拟用户活动和对代理预测任务的反应 [cite: 70, 72]。这个流水线由三个核心组件构成:
-
环境健身房 (Environment Gym): 这是一个模拟环境,为主动式代理提供了一个可以交互的沙盒 [cite: 73]。
- 事件生成 (Event Generation): 它能够根据特定场景(如编码、写作或日常生活)生成一系列连贯的环境事件 [cite: 30, 74, 77] 。为了保证真实性,这些事件基于从真实世界收集的用户活动数据(如键盘鼠标操作、网页浏览记录等) [cite: 4, 31, 84]。
- 状态维护 (State Maintenance): 当用户活动发生或代理执行任务时,它会更新和维护环境的状态 [cite: 77, 103]。
-
主动式代理 (Proactive Agent): 在流水线中,这个组件负责根据历史事件推断用户需求,并预测用户可能需要分配的任务 [cite: 78, 108] 。如果预测被接受,它会与环境健身房内的工具交互以完成任务 [cite: 79, 114]。
-
用户代理 (User Agent): 该组件模拟用户的行为和响应 [cite: 80] 。它会根据预定义的特征决定是否接受主动式代理提出的任务建议 [cite: 81, 126]。
4.2. 奖励模型 (Reward Model)
为了自动评估代理所提任务的恰当性,并模拟用户代理的判断,研究者训练了一个奖励模型 [cite: 6, 146]。
- 训练数据: 研究者首先收集了由人类标注员标记的预测任务,标签分为“接受”或“拒绝” [cite: 5, 129, 133]。
- 功能: 这个模型学习模拟人类的判断标准 [cite: 6] 。它作为一个自动评估器,用来判断LLM代理的主动行为是否恰当 [cite: 6] 。该奖励模型在F1分数上与人类判断的一致性高达91.80% [cite: 39, 142]。
4.3. ProactiveBench 数据集
利用上述数据生成流水线,研究者创建了一个名为ProactiveBench的大规模、多样化的数据集 [cite: 7]。
- 该数据集包含6,790个事件,覆盖了编码、写作和日常生活三个场景 [cite: 7, 36]。
- 它分为两部分:一部分用于训练代理模型(6,790个训练条目),另一部分用于训练和测试奖励模型(1,640个训练条目和120个测试条目) [cite: 37, 38]。
4.4. 模型微调与评估
最后,研究者使用ProactiveBench数据集对现有的大型语言模型(如LLaMA-3.1-8B和Qwen2-7B)进行微调,以激发和提升它们的“主动性” [cite: 8, 34] 。实验结果表明,经过微调的模型在主动提供帮助方面的性能(F1分数达到66.47%)显著优于所有现有的开源和闭源模型 [cite: 9, 44]。
具体步骤如下:
-
微调的基础是ProactiveBench这个专门设计的数据集 [cite: 7] 。该数据集通过一个自动化的数据生成流水线创建,包含了在不同场景下(编码、写作、日常生活)模拟的用户活动事件 [cite: 30, 36] 。至关重要的是,数据集中不仅有事件的记录,还包含了在这些事件下,主动式代理应该提出的“正确”任务建议,或者在用户不需要帮助时保持沉默的“正确”决策 [cite: 72, 113]。
-
在微调过程中,模型并非简单地接收数据,而是通过一个结构化的提示词模板来学习主动行为。这个模板指导模型如何思考和响应。
-
该模板包含以下几个关键部分:
- 角色 (Role): 定义模型的身份,即“一个为用户提供主动建议的有用助手” [cite: 351, 352]。
- 任务 (Task): 指示模型需要“根据事件理解用户正在做什么并预测他们的需求”,并且“只有在完全理解用户行为时才提供帮助” [cite: 352, 353]。
- 格式 (Format): 要求模型以特定的JSON格式进行响应,该格式包含以下字段 [cite: 354]:
Purpose
: 用户上一步行动的目的 [cite: 355]。
Thoughts
: 模型对用户行为的思考 [cite: 355]。
Proactive Task
: 描述模型提议的任务;如果不需要帮助,则设置为’null’ [cite: 355]。
Response
: 如果提议了任务,用以通知用户的话术 [cite: 355]。
- 规则 (Rules): 提供明确的规则,例如确保任务的相关性、考虑事件的时机、仅在必要时提供帮助,以及根据事件历史推断用户的目的 [cite: 355]。
通过这种结合了高质量模拟数据和精心设计的提示词模板的微调方法,模型能够学习到何时应该主动介入、应该提供何种帮助,以及何时应该保持沉默,从而显著提升其“主动性” [cite: 8, 195]。
5 AgentCPM-GUI
好的,我们来解读这篇名为《AgentCPM-GUI:通过强化微调构建移动端GUI智能体》的论文。
5.1核心目标
这篇论文的核心目标是创建一个能在**手机图形用户界面(GUI)**上自主执行任务的AI智能体(Agent)。简单来说,就是让AI学会像人一样操作手机App,比如根据指令“去Bilibili看李子柒最新的视频并点个赞”,AI能自动完成打开App、搜索、点击视频、点赞等一系列操作 [cite: 432]。
为了实现这个目标,并解决现有方法在数据质量、模型泛化性和非英语环境支持上的不足,论文提出了一套名为 AgentCPM-GUI 的核心方法,其关键在于一个三阶段渐进式训练流程 [cite: 28, 33]。
5.2 核心方法:三阶段渐进式训练
这个训练流程像是在培养一个孩子,从“认识物体”到“模仿动作”,再到“独立思考”,一步步地构建AI的能力。
第一阶段:视觉感知与定位 (Visual Perception and Grounding)
- 目标:教会模型“看懂”手机屏幕上的内容 [cite: 72]。这就像教孩子认识图片里的东西,比如“这是按钮”、“这是文字输入框”。
- 训练方法:
- 使用一个包含海量GUI截图和标注的大型数据集进行预训练 [cite: 99, 103]。
- 训练任务主要有两种 [cite: 100]:
- OCR任务:给模型看一张截图,并用方框标出一个区域,让模型读出框里的文字(Bbox2Text)[cite: 169]。
- 控件定位任务:给模型一段文字描述(比如“打开网站的按钮”),让模型在截图上找到这个控件并输出其坐标(Fun2Point / Text2Point)[cite: 167, 168]。
- 效果:完成这个阶段后,模型具备了强大的底层视觉能力,能准确地将界面上的图标、按钮等视觉元素与它们的文字描述和功能对应起来 [cite: 104]。
第二阶段:有监督的模仿学习 (Supervised Imitation Learning)
- 目标:教会模型模仿人类在完成任务时的一系列连贯动作 [cite: 75, 77]。这就像让孩子观察并模仿大人如何一步步完成一个任务。
- 训练方法:
- 使用一个高质量的数据集,其中包含了大量“指令-操作序列”的轨迹。这些数据由人类标注员在真实的手机上操作主流App(覆盖中文和英文)记录下来的,确保了动作的真实性和准确性 [cite: 31, 108, 115, 127]。
- 通过监督式微调(SFT),让模型学习在给定一个指令和当前屏幕截图的情况下,预测出下一步应该执行的正确动作(如点击、滑动、输入文字等)[cite: 34, 76]。
- 为了让模型学会思考,训练数据中还加入了由GPT-4o生成的“思考过程”标注 [cite: 122, 123]。
- 效果:完成这个阶段后,模型建立了一个可靠的行为先验,能够生成符合逻辑、类似人类习惯的操作序列来完成简单任务 [cite: 34]。
第三阶段:强化微调 (Reinforcement Fine-tuning, RFT)
- 目标:让模型从简单的“模仿”升级为真正的“思考和规划”,提升其在复杂、长链条任务中的决策和泛化能力 [cite: 78, 218]。这就像孩子在掌握了基本动作后,通过不断试错和获得奖励来学会独立解决问题。
- 训练方法:
- 采用一种名为分组相对策略优化 (Group Relative Policy Optimization, GRPO) 的强化学习算法 [cite: 79, 137]。
- 对于一个任务,让当前的模型生成N个不同的动作序列(候选答案)[cite: 139]。
- 然后,一个奖励机制会对这些序列进行打分 [cite: 140]:
- 首先检查动作格式是否正确,格式错误直接得-1分 [cite: 143]。
- 如果格式正确但语义上是错误的操作,得0分 [cite: 144]。
- 如果格式和语义都完全正确,得1分 [cite: 144]。
- GRPO算法会利用这些分数来更新模型的策略,鼓励模型生成能获得更高奖励的动作序列。
- 效果:经过RFT阶段,模型不再是死板地模仿训练数据,而是学会了更鲁棒的自主规划和适应性行为,能够更好地处理在模仿学习阶段未曾见过的复杂场景 [cite: 80]。
5.3 视觉感知与定位
这个阶段的核心目标是让模型具备强大的底层“眼力”,能够准确地理解屏幕截图上的内容,并将语言描述与界面上的具体控件(Widget)对应起来 [cite: 73]。
5.3.1. 训练数据的准备
为了训练模型的定位能力,研究人员从多个来源收集了大量的GUI数据:
- 数据来源:数据来自于多个开源数据集(如AITZ、GUICourse、OS-Atlas等)以及团队自己收集的中文App截图 [cite: 99]。
- 数据形式:原始数据是屏幕截图和与之对应的XML元数据,这些元数据详细描述了界面上每个控件的属性,包括边界框坐标 (bounding box)和文本内容 [cite: 172, 173]。
- 数据增强:为了防止模型只学会GUI相关的知识而遗忘其他能力,训练时会混入50%的通用多模态数据(如对话、视觉问答等),这有助于稳定视觉模块的能力 [cite: 102]。
- 数据规模:整个第一阶段的预训练使用了高达1200万个样本 [cite: 103]。
5.3.2. 具体的训练任务
控件定位的训练主要通过以下两种任务来完成 [cite: 100]:
-
Fun2Point (根据功能定位):
- 任务描述:给模型一段关于某个控件功能的描述,模型需要输出该控件在屏幕上的中心点坐标 [cite: 167]。
- 例子:输入的功能描述是“这个按钮可以打开网站”,模型需要分析截图,找到对应的按钮并输出其坐标,如
POINT:[123,456]
[cite: 68, 167]。
- 数据制作:功能描述标签是通过一个强大的视觉语言模型(Qwen2.5-VL-72B)为截图上的控件自动生成的 [cite: 177]。
-
Text2Point (根据文本定位):
- 任务描述:给模型一个明确的文本字符串,模型需要在屏幕截图中找到这个文本所在的位置,并输出其坐标 [cite: 168]。
- 例子:输入的文本是“QQ音乐”,模型需要在截图中找到“QQ音乐”这个图标或文字,并输出其位置坐标 [cite: 417]。
- 数据制作:这类任务的标注数据可以直接从XML元数据中提取,将文本内容与其对应的边界框坐标对齐 [cite: 174]。
5.3.3. 模型的输出与评估
- 模型输出:在这些任务中,模型被训练来直接生成目标控件的点坐标 [cite: 185] 。这些坐标是归一化的,例如将屏幕的左上角定义为[0, 0],右下角定义为[1000, 1000] [cite: 86]。
- 评估方式:判断模型预测是否正确的方式是,检查其生成的坐标点是否落在真实控件的边界框之内(在一定的容忍度下) [cite: 144, 185]。
通过这个阶段的专门训练,AgentCPM-GUI模型在进入更复杂的模仿学习和强化学习阶段之前,就已经打下了坚实的视觉基础,能够精确地识别和定位GUI上的各种元素 [cite: 74, 104]。
5.4 模仿人类操作行为
在第一阶段(视觉感知与定位)让模型“看懂”屏幕之后,第二阶段的目标是教会模型模仿人类在手机上完成任务时的一系列连贯动作 [cite: 75, 77]。这就像教一个孩子在认识了物品之后,开始模仿大人如何一步步操作。
5.4.1 训练数据:高质量的“操作录像”
这个阶段的成功很大程度上依赖于高质量的训练数据。由于公开的中文GUI交互数据集很稀缺 [cite: 107],研究团队构建了一个大规模、高保真的数据集。
- 数据来源与规模:
- 团队自己收集了覆盖30多款主流中文App(如电商、社交、导航等)的数据 [cite: 108]。
- 总共包含了 5.5万条完整的任务轨迹,分解为 47万个原子操作步骤 [cite: 110]。
- 为了提升模型的跨语言泛化能力,他们还融合了多个公开的英文GUI数据集,如AITW、AITZ和AndroidControl等 [cite: 127]。
- 数据质量保证:
- 真机采集:所有操作轨迹都在真实的安卓手机上由人类标注员完成,而非模拟器,这保证了数据的真实性 [cite: 115, 116]。
- 动作确认:使用了一个定制的数据记录工具,标注员每完成一个动作(如点击、滑动),都需要手动确认后才会被记录,这有效避免了误操作和无关手势被录入数据 [cite: 117, 120]。
- 总数据量:经过整合和处理,整个第二阶段的SFT(监督式微调)使用了 690万 个实例进行训练 [cite: 134]。
5.4.2 训练方法:模仿人类的行为和思考
训练的核心是监督式微调 (Supervised Fine-tuning, SFT) [cite: 76]。模型被要求在看到用户指令和当前手机屏幕截图后,生成与人类标注员完全一致的下一步动作。
训练过程有几个关键点:
-
模仿动作 (Action Imitation):模型学习生成一个JSON格式的动作指令,比如 {"POINT": [123,456]}
代表点击坐标(123,456),或者 {"TYPE": "你好"}
代表输入文字“你好”。
-
引入“思考”过程 (Thought Generation):为了让模型不仅是机械地模仿动作,更是学会“思考为什么这么做”,研究人员使用GPT-4o为2.4万条轨迹自动生成了“思考”过程的标注 [cite: 123]。
* 示例:在点击搜索按钮前,模型会先生成思考:“我应该点击这个图标…”。
* 重要性:论文强调,如果没有这个“思考预热”步骤,模型在下一阶段的强化学习中将无法生成有效的推理链,说明这一步对培养模型的规划能力至关重要 [cite: 125]。
-
防止“思维僵化” (Mitigating Mode Collapse):研究发现,如果只用GUI交互数据进行训练,模型在后续强化学习阶段的思维会变得非常单一和重复 [cite: 130] 。为了解决这个问题,他们在训练数据中混入了50%的通用多模态对话数据,这有助于稳定模型的策略优化,保持其通用对话能力 [cite: 131]。
5.5 学习思考过程
在模型通过前两个阶段学会了“看懂屏幕”和“模仿动作”之后,第三阶段的目标是让模型从简单的模仿者,升级为能够自主思考和规划的“决策者”。这一阶段对于处理复杂的、长链条的任务至关重要 [cite: 218]。
5.5.1 核心训练算法:GRPO
这个阶段的核心算法是分组相对策略优化 (Group Relative Policy Optimization, GRPO) [cite: 137]。其基本流程如下:
- 生成候选方案:针对一个任务和当前的屏幕状态,让已经过SFT训练的模型生成 N 个不同的候选动作序列(即 N 种不同的操作方法) [cite: 139]。
- 评估与打分:对这 N 个候选方案中的每一个进行评估,并给出一个奖励分数
r
[cite: 140]。
- 计算优势 (Advantage):在这一组(Group)的 N 个候选方案内部,通过比较它们的得分,计算出每个方案的“相对优势”
Â
。简单来说,得分高于平均分的方案获得正优势,低于平均分的则获得负优势 [cite: 140, 141]。
- 更新策略:使用一个带惩罚项的优化目标函数,来更新模型的策略(policy)。更新的方向是提高生成“正优势”方案的概率,同时降低生成“负优势”方案的概率 [cite: 141]。
5.5.2 奖励机制的设计
如何给模型的动作打分是强化学习的关键。论文设计了一个细粒度的两阶段奖励验证方案 [cite: 142] ,分数范围被映射到 [-1, 1]
[cite: 143]:
- -1 分 (格式错误):如果模型生成的动作不符合预设的JSON格式(比如,JSON结构损坏或缺少字段),则直接给予-1分的惩罚 [cite: 143]。
- 0 分 (语义错误):如果动作的格式正确,但在任务逻辑上是错误的(例如,指令要求点击“确定”按钮,模型却点击了“取消”),则得0分 [cite: 144]。
- 1 分 (完全正确):当动作的格式和语义都完全正确时,才能获得1分的奖励 [cite: 144]。
- 针对坐标的特殊规则:对于点击(POINT)这类需要坐标的操作,其正确性有更严格的定义:只有当模型预测的坐标点落在真实目标控件的边界框 (bounding box) 之内时,才算正确,才能得1分,否则为0分 [cite: 144, 145]。
这种精细的奖励设计,能同时鼓励模型生成语法正确且对任务有益的动作。