Fara7B展现合成数据扩展如何变革计算机使用智能体

本文深入探讨了微软研究团队如何通过创新的FaraGen合成数据生成引擎解决训练计算机使用智能体(CUA)的数据瓶颈,并详细介绍了由此训练的7B参数模型Fara-7B,该模型仅通过截图理解界面并能执行复杂多步骤网页任务,在多个基准测试中表现出色。

Fara7B展现合成数据扩展如何变革计算机使用智能体

引言

训练计算机使用智能体模型历来很困难。这主要是因为数据瓶颈——确实没有现成的大型真实人机交互数据集可用。考虑到达到当今大语言模型性能所需的文本数据量,以及我们如何克服高质量文本数据匮乏的问题,如何推进计算机使用智能体的发展可能对你们中的一些人来说是显而易见的……如果你想到的是合成数据生成,那么你绝对正确。

开个玩笑,你接近答案了。

缺乏现成的计算机使用智能体模型意味着生成合成数据会很困难——但我们能做的,是创建一个可扩展的合成数据生成引擎,用于多步骤网络任务。这正是微软研究人员所做的,并且在介绍Fara-7B模型的论文中进行了详细讨论。

本文内容

在本文中,我们将介绍研究人员如何训练Fara-7B。首先概述他们如何克服计算机使用数据缺乏的问题(通过开发名为FaraGen的数据引擎)。我们还将展示如何自己尝试该模型,亲眼看看Fara-7B如何完成计算机任务。

关键要点

  • FaraGen 是一个用于基于网络任务的可扩展合成数据引擎,它使用多智能体系统来:
    1. 从真实网站提出任务,
    2. 通过协作智能体和用户反馈解决任务,生成真实的轨迹,
    3. 使用基于大语言模型的质量检查来验证轨迹,确保数据的高保真度。
  • Fara-7B 是一个基于FaraGen数据训练的70亿参数计算机使用智能体模型,它处理截图作为输入,执行复杂、多步骤的网络任务。
  • Fara-7B 在多个基准测试(WebVoyager、Online-Mind2Web和WebTailBench)上的表现优于其他规模相当的计算机使用智能体模型。

用于计算机使用智能体的FaraGen数据生成引擎

微软的研究人员介绍了FaraGen,一个新的数据生成引擎,能够为计算机使用智能体模型生成数据。这里的数据指的是FaraGen能够以每个任务约1美元成本生成的已验证多步骤网络轨迹。FaraGen流水线包含三个主要阶段:任务提议、任务解决和任务验证。

任务提议

任务提议旨在生成现实的任务。用户希望计算机使用智能体做什么?计算机使用智能体能做什么?FaraGen从ClueWeb22和Tranco等数据集中获取高价值URL。研究人员更多地使用前者,因为他们认为前者覆盖了更多有用的网站,而“无用的企业落地页”更少。

部分任务是通过 (1) “目标URL”(约占训练数据的28%)发现的,即从原始URL中提取并提炼成具体、可验证且可实现用户意图的任务。部分任务通过 (2) 智能体URL探索(约占训练数据的67%)发现,其中使用多模态大语言模型智能体遍历网站——同时获取截图和可访问性树——在迭代执行操作以完成任务的同时,根据已进行的操作和当前页面阶段来提炼任务。还有 (3) 其他任务(约占训练数据的5%)是使用大语言模型生成的,即通过将任务变异为多个相似的变体。

任务解决

FaraGen使用一个多智能体框架(基于Magnetic-One)来解决合成的网络任务,生成包含完整观察序列、动作和思考的轨迹。这些轨迹用于监督微调来训练Fara-7B。在本文末尾,我们将讨论如何在DigitalOcean GPU Droplet上实现和运行此模型。

在上图中,我们可以看到有两个主要智能体:协调器和网络浏览者。另一个智能体是用户模拟器,当需要用户输入时会触发,从而允许完成多轮次任务。此外还有关键点,它会触发模型停止,只有在获得用户指令后才继续前进。关于FaraGen如何处理其流水线的任务解决阶段,更多上下文概述如下。

协调器智能体

协调器智能体,顾名思义,是协调者。其主要目标是指导网络浏览者的进度,防止常见的失败模式,确保遵守关键点,并在必要时调用用户模拟器智能体。

协调器智能体通过维护一个账本来实现这一点:根据网络浏览者过去和未来的动作,协调器预测账本字段的值。

is_in_loop(是否陷入循环)和last_action_successful(上次动作是否成功)这两个特征尤为重要,因为网络浏览者智能体最常见的失败模式之一就是陷入重复动作的循环。

协调器和网络浏览者智能体都可以随时停止,这可能造成逻辑冲突。如果任务仍未完成,协调器可以覆盖网络浏览者的停止决定。

论文中的表3显示了决策层次结构:关键点(最高权限)覆盖所有标志,而网络浏览者的停止决定优先级最低。当强制网络浏览者停止时,其他动作被禁用,而不是以编程方式强制停止。这允许网络浏览者思考为何被强制停止,有助于Fara-7B泛化到新的关键点场景。

任务完成后,协调器从历史记录中识别任务目标的URL,以帮助验证者确认目标准确性。

网络浏览者智能体

网络浏览者接收协调器智能体维护的账本中next_steps(下一步)字段的指令。网络浏览者使用Playwright在浏览器中执行动作(例如点击、键入、滚动)。研究人员使用Browserbase来提供稳定、受管理的浏览器环境,确保网络浏览者的动作(例如导航动态网站)能够一致执行,不会崩溃或超时。

用户模拟器

用户模拟器智能体在触发时,通过在关键点(例如给予同意或分享个人详细信息)模拟人类响应,允许数据生成流水线从该关键点继续执行。

轨迹验证

除了上一阶段任务解决中评估任务完成情况的标志外,FaraGen还采用多个验证器(大语言模型评判器)来确保质量和正确性。你可能会问为什么需要“多个验证器”——原因是验证策略必须是互补的,因为不同任务需要不同类型的证据检查。面向动作的任务受益于多模态证据检查,而信息检索任务则依赖于规则评分来确保质量。

功能 目标失败模式
对齐验证器 检查最终动作历史是否与用户意图一致。
规则验证器 根据预定义的标准清单对轨迹进行评分。
多模态验证器 检查最终截图以确认成功的视觉证据。

FaraGen的效果如何?

为了展示FaraGen数据生成流水线的有效性,其生成的数据被用来训练Fara-7B。这是一个计算机使用智能体模型,仅通过截图理解计算机界面,通过预测坐标执行动作,并且足够紧凑,可以在本地设备上运行。

Fara-7B

需要澄清的是,Fara-7B是多智能体解决系统的一个概念验证蒸馏版本。Fara-7B基于Qwen2.5-VL-7B视觉语言模型构建,在FaraGen流水线生成的145,000个高质量轨迹上进行训练,有效地将多智能体交互蒸馏成多样化的任务演示。该模型利用监督微调从这些轨迹中学习,并融入接地、拒绝训练和用户界面问答等任务,以增强其定位元素、避免有害行为和减少幻觉的能力。

任务类型 目的 方法 对Fara-7B的影响
接地 提高在截图中定位用户界面元素(例如按钮、链接)的能力。 - 生成超过500K个样本,将自然语言查询映射到屏幕坐标。- 使用Omniparser和DOM注释来标记元素。 增强点击/键入动作的精确性。减少可交互元素的幻觉。
拒绝训练 教导模型拒绝有害或不安全的任务。 - 合成有害任务(例如非法活动、网络钓鱼)。- 公共数据集如WildGuard。 在有害任务上实现94.2%的拒绝率。提高安全性和合规性。
用户界面问答和字幕生成 增强对网页内容和上下文的理解。 - 从网页截图生成问答对和字幕。- 侧重于提取事实信息。 减少回答中的幻觉。提高回答关于网页内容的用户查询的准确性。

Fara-7B通过截图来解释浏览器交互,而其内部推理和状态历史则以文本形式维护。给定最新的截图以及过去动作的完整记录,Fara-7B决定后续动作以及必要的参数(如点击位置的坐标)。

仅凭70亿参数,Fara-7B就实现了其规模下的最先进性能,在WebVoyager(73.5%准确率)和WebTailBench(38.4%)等基准测试中超越了UI-TARS-1.5-7B等同类模型,同时与GPT-4o等大得多的模型保持竞争力。

评估Fara-7B

除了在WebVoyager、Online-Mind2Web和DeepShop上评估Fara-7B外,研究人员还开发了他们称之为WebTailBench的基准测试。

WebTailBench WebTailBench包含跨越11个类别的609个手动验证任务,包括购物、航班、酒店、房地产、工作申请和多项目购物清单。它通过使用高流量网页来强调现实性,并通过覆盖现有基准测试中代表性不足或缺失的场景(例如比较购物)来强调任务多样性。该基准通过目标导向的任务和符合人类判断的验证系统确保客观性,同时还通过多步骤和跨站点的挑战来解决任务复杂性问题。它专为可重复评估而设计,并与其验证工具一同发布。

通过在DigitalOcean上运行Fara-7B来自动化计算机任务

训练这个70亿参数的模型使用了64个H100 GPU,耗时2.5天。不用担心,虽然我们想让你了解这个计算机使用模型的诞生过程,但我们不会展示如何在我们的Droplets上从零开始训练Fara-7B。相反,我们将向你展示如何使用Magnetic-UI运行这个模型,这种情况下一个H100 GPU Droplet就足够了。

  1. 首先,设置一个DigitalOcean GPU Droplet。
  2. 完成后,复制你的公共IPv4凭据,并使用SSH连接到您最喜欢的代码编辑器。
  3. 在终端中:
    1
    2
    3
    
    python3 -m venv .venv
    source .venv/bin/activate
    pip install magentic-ui[fara]
    
  4. 运行:
    1
    
    vllm serve "microsoft/Fara-7B" --port 5001 --dtype auto
    
  5. 在你的代码编辑器中,创建一个fara_config.yaml文件,并粘贴以下内容:
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    
    model_config_local_surfer: &client_surfer
      provider: OpenAIChatCompletionClient
      config:
        model: "microsoft/Fara-7B"
        base_url: http://localhost:5001/v1
        api_key: not-needed
        model_info:
          vision: true
          function_calling: true
          json_output: false
          family: "unknown" 
          structured_output: false
          multiple_system_messages: false
    
    orchestrator_client: *client_surfer
    coder_client: *client_surfer
    web_surfer_client: *client_surfer
    file_surfer_client: *client_surfer
    action_guard_client: *client_surfer
    model_client: *client_surfer
    
  6. 然后使用fara智能体启动Magentic-UI:
    1
    
    magentic-ui --fara --port 8081 --config fara_config.yaml
    

哇,Fara-7B给了我们完全正确的答案!

最终思考

我们对Fara-7B印象深刻。高质量、可扩展的合成数据可以有效克服困扰计算机使用智能体开发的数据稀缺瓶颈。这个70亿参数的模型,通过截图理解世界,以最先进的准确性执行复杂、多步骤的网络任务,具有改变游戏规则的潜力。我们很好奇,计算机使用、代码生成、推理优化等活跃人工智能研究领域取得的进展之间的联系,将如何影响可扩展、高影响力的产品和用例的采用。

参考资料

  • Fara-7B: An Efficient Agentic Model for Computer Use - Microsoft Research
  • Magentic-One — AutoGen
  • [2411.04468] Magentic-One: A Generalist Multi-Agent System for Solving Complex Tasks
  • Microsoft Fara-7B Computer Use Template (from Browserbase)

常见问题解答

什么是Fara-7B? Fara-7B是一个70亿参数的计算机使用智能体模型,仅通过截图理解界面,并以同类模型中最先进的准确性执行复杂、多步骤的网络任务。

什么是FaraGen? FaraGen是一个用于计算机使用智能体模型的可扩展合成数据生成引擎,以每个任务低于1美元的成本生成高保真度的多步骤网络轨迹。

Fara-7B是如何训练的? 它是在FaraGen多智能体系统生成的145,000个高质量合成轨迹上,使用监督微调进行训练的。

FaraGen流水线的主要阶段是什么? 三个主要阶段是任务提议、任务解决(使用多智能体框架)和轨迹验证(使用大语言模型评判器)。

任务解决阶段的主要智能体是什么? 主要智能体是协调器(指导进度、防止循环、调用用户模拟器)和网络浏览者(执行浏览器动作)。用户模拟器在关键点被触发以获取用户输入。

什么是WebTailBench? WebTailBench是研究人员开发的一个新基准测试,包含跨越11个类别的609个手动验证任务,用于评估计算机使用智能体在现实世界、复杂以及代表性不足的场景(如比较购物)上的表现。

FaraGen使用的三个主要验证器是什么? 验证器包括对齐验证器(检查与用户意图的一致性)、规则验证器(根据预定义清单评分)和多模态验证器(检查最终截图的视觉证据)。

为什么合成数据生成对计算机使用智能体是必要的? 它克服了主要的数据瓶颈,因为没有现成的大型真实世界人机交互数据集来训练这些模型。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计