Home [1] | GitHub [2] | Twitter [3] | Youtube [4] | Bilibili [5]
本文介绍字节跳动刚刚发布的 UI Agent 工作 UI-TARS: Pioneering Automated GUI Interaction with Native Agents [6] 。 UI-TARS 基于 Qwen2-VL 微调,通过大量 grounding 和 navigation 数据,经过三阶段训练,利用特定方法迭代优化,以远超多数工作的数据训练规模,实现了对中英文图片和指令的良好支持。
UI-TARS 的模型(2B、7B、72B)开源,但数据和训练代码都不开源。
一些相关链接:
• https://github.com/bytedance/UI-TARS [7] • https://github.com/bytedance/UI-TARS-desktop • Demo : https://huggingface.co/spaces/Aheader/gui_test_app UI-TARS 整体框架就是用一个 VLM 端到端的输出 Thought 和 具体动作。模型也是在 Qwen2-VL 的基础上进行微调得到的,不过他们训练的数据很大,grounding 数据量 20~40M 这种量级,navigation 数据量 300K 这种量级。
几点主要的贡献:
• 感知能力训练加入了几个新的任务,如 Dense Captioning,State Transition Captioning,Set-of-Mark (SoM)。 • 训练数据规模很大,是大部分工作的10+倍量级,效果确实不错,对中文图片和中文指令的支持也很好。 • 利用 Online Trace Bootstrapping 和 Reflection Tuning 方法从长期记忆的过往经验中不断迭代优化模型效果。 • 训练分为3阶段,但与SeeClick的阶段不同。这里第一和二阶段都是混合使用各种感知和决策数据,只是第一阶段量比较大,而第二阶段只使用质量较高的少量数据,同时加入了 Reflection Tuning 数据。第三阶段使用了 preference pairs 和 DPO。 整体框架 参考 CoT 结构,基于指令和当前状态 ,先生成 思考过程 ,再生成 具体的动作 :
预测时会把历史上所有的 和 都用上,同时用上最近历史动作的 个截图 (作者的实验中 ):
接下来介绍训练数据的构造方式。
感知训练数据 作者采用一种 自下而上 的数据构建方法, 从单个元素起步,进而发展到对整体界面的理解 。先关注 GUI 中小的局部部分,然后再把它们整合到更宽泛的背景中,此方法在识别组件的精度与解读复杂布局的能力之间实现平衡的同时,将错误降至最低。
主要包含上图中的 6 类数据。
• Task Grounding :一般的 grounding 任务。 • Element Description :为增强对 GUI 内特定元素,尤其是微小元素的识别与理解,作者专注于 为每个元素创建详尽且结构化的描述 。这类描述基于运用解析工具提取的元数据,并由 VLM 进一步综合而成,涵盖四个方面: (1)元素类型 (例如,窗口控制类型):对元素进行分类(例如,按钮、文本字段、滚动条); (2)视觉描述 ,对元素的外观加以描述,包含其 形状、颜色、文本内容和样式 ,直接源自图像; (3)位置信息 :描述 每个元素相对于其他元素的空间位置 ;(4) 元素功能 ,描述 元素的预期功能及可能的交互方式 。作者训练 UI-TARS 列举一张截图内的所有可见元素,并依据该截图生成它们的元素描述。 • Dense Captioning : 作者训练 UI-TARS 理解整个界面,同时保持准确性并最大程度减少幻觉。 Dense Captioning 的目标是为 GUI 截图提供全面、详尽的描述,不但要捕捉元素本身,还要捕捉它们的空间关系以及界面的整体布局 。对于截图中每个记录的元素,首先获取它们的元素描述。其后,使用 VLM 将所有图像和元素描述整合到一个具有凝聚力、高度详尽的 caption 中,该 caption 保留了 GUI 布局的结构。在训练过程中,只给 UI-TARS 提供图像,并要求其输出相应的密集标题。 • State Transition Captioning :这个任务用来识别和描述两张连续的屏幕截图之间的差别,并判断是否出现了诸如鼠标点击或键盘输入之类的动作。作者还引入了与 非交互式 UI 变化 (例如动画、屏幕刷新或背景更新)相对应的屏幕截图对。在训练过程中,给 UI-TARS 呈现一对图像,其任务是 预测这两张图像的具体视觉变化(以及可能的原因) 。通过这种方式, UI-TARS 得以学习到细微的 UI 变化,涵盖用户发起的动作和非交互式的转变 。这种能力对于需要精细交互理解和动态状态感知的任务而言至关重要。 • Question Answering (QA) : QA 提供了一种更为动态和灵活的方式,将这些任务与推理能力相融合 。作者合成了各种各样的 QA 数据,其涵盖了广泛的任务,包括界面理解、图像解读、元素识别以及关系推理。这提升了 UI-TARS 处理涉及更高程度抽象或推理的查询的能力。 • Set-of-Mark (SoM) :作者还增强了 UI-TARS 的 Set-of-Mark(SoM)提示能力。作者依据空间坐标在 GUI 屏幕截图上为解析出来的元素绘制出 视觉上有区别的标记 。这些标记在 形式、颜色和大小 等属性方面存在差异。通过这样的方式,UI-TARS 能够更好地将视觉标记与相应的元素关联起来。作者把 SoM 标注与 Dense Captioning 和 QA 等任务进行了集成。例如,会训练模型来描述被突出标记的元素。 整体的数据统计:
推理数据(System-2 Reasoning)的构造构成 包含 2 大类推理相关的数据。
1. Reasoning Enrichment with GUI Tutorials 从 MINT 和 OmniCorpus 两个图文交织的通用数据集中过滤和清洗出 6M 高质量的 GUI tutorials 。
平均来说,每个教程包含 510 个文本 token 和 3.3 幅图像。这个数据不但增强了模型对 GUI 操作的理解,而且为注入推理能力奠定了稳固的基础。
2. Reasoning Stimulation with Thought Augmentation 作者分 2 阶段构造出训练使用到的 thought 。
(1) ActRe ActRe (ReAct反过来):给定历史以及当前的动作 ,让 VLM 生成 :
在 ActRe 标注过程中,作者促使 VLM 呈现出更高级的、系统 2 的推理,这包含了深思熟虑、逐步进行的决策与反思。通过推动这些推理模式,作者鼓励模型去进行深思熟虑的、长期的规划与反思,以解决复杂的任务。正如下图所示,作者让 VLM 遵循的推理模式有:
• 任务分解 :引导模型把复杂任务拆解为更小的、可管理的子任务,让其能够一步步地处理复杂的工作流程。 • 长期一致性 :保证模型在整个任务中保持一致的目标,参考整体目标和操作历史,避免在复杂的多步骤任务中出现偏离。 • 里程碑识别 :让模型能够识别中间目标的达成,助力顺利过渡到后续目标。 • 试错 :让模型能够假设、测试和评估潜在的动作,特别是在模糊的情形下,比如在不直接交互的情况下核实搜索结果。 • 反思 :让模型能够在操作失败时识别并纠正错误,通过反思性推理鼓励适应性和错误恢复。 (2) Thought Bootstrapping Thought Bootstrapping :基于真实动作的条件对想法进行反向标注(即 ActRe)可能会产生误报,原因是 生成的想法可能在表面上看似与相应动作相符,却未确立真正的因果关系 。具体而言,动作背后的推理过程或许会被忽视,致使想法与动作的一致仅仅是巧合,而非通过逻辑推理达成。此问题之所以产生,是因为标注过程依赖于事先知晓动作,这可能会使想法倾向于与动作一致,而非反映出导致该动作的实际决策过程。
为解决此问题,作者采取了一种 bootstrapping 方式,在不具备真实动作的先验知识的情况下生成想法。通过对多个想法-动作对进行采样,如下式中所示,作者找出得到正确动作的想法,确保推理与所选动作存在因果关联。这种方法生成了更高质量的标注,因为它迫使模型模拟真实的决策流程,而不仅仅是为预先确定的动作进行辩解( 表示早期的模型 checkpoint)。
📌 ActRe 和 Thought Bootstrapping 这两阶段是怎么组合使用的?先利用 ActRe 的结果训练初版的 ?
作者 以中文和英文对想法进行标注 ,拓展了语言的多样性。
虽然作者为所有的轨迹都增添了想法(thought),但 在训练过程中也包含了原始的动作轨迹(不含想法) 。这个应该是通过不同的prompt来控制输出中是否包含想法。
跨平台统一的动作空间 从长期记忆的过往经验进行学习(利用已有模型迭代收集更多训练数据) 作者让 UI-TARS 能够从与真实世界设备的交互中动态学习。 借助半自动的数据收集、过滤和完善,在最大程度降低人工干预需求的同时模型持续改进。
Online Trace Bootstrapping 给定指令集合 ,利用现有模型和环境交互,获得轨迹集合 ,然后对这些轨迹进行过滤(去掉有噪音和不可用的轨迹),得到 。过滤方法包括: (1)基于规则的奖励 :启发式规则会剔除带有明显异常的轨迹(比如,不会改变环境的冗余动作); (2)VLM 评分 :VLMs 为剩余的轨迹赋予质量分数,分数低于预先设定阈值的轨迹会被移除; (3)人工审查 :一部分轨迹会由标注员做进一步的检查,他们 找出出现错误的步骤,丢弃任何后续的动作,并只保留有效的前缀 。
然后利用新得到的轨迹数据 微调现有模型 ,得到 :
对于每一轮,作者雇用标注员来改进或扩展指令集:
作者在 数百台虚拟机上 对上述过程进行多轮迭代,持续利用最新的模型 生成新的轨迹,以此来扩展和优化数据。
Reflection Tuning 大多数离线数据集包含的都是理想化、无错误的轨迹,因为标注员在数据标注过程中保证每个动作都符合期望。虽然这类数据在模型训练时有助于降低噪声,但也 使得代理无法学习如何从错误中恢复 。为了应对这一限制,作者提出了一种 反思调整策略 ,让模型接触到自身在真实使用中所犯的错误及其纠正方法,使 UI-TARS 能够学会如何从不理想的决策中恢复。
假设在步骤 出现错误,其中动作 被视为无效或非最优的。作者让标注员识别这个错误并标注出 纠正后的想法和动作 , 。这样就产生了以下的 错误纠正路径对 :
作者进一步要求标注员依据错误的动作 继续标注后续的步骤, 模拟错误已经出现的情形 。在确定下一步的想法 时,标注员必须反思之前错误的影响,然后提供正确的动作 以使任务进度重新回到正轨。例如,如果前一步是打算把网页添加到书签但错误地点击了关闭按钮,那么下一步就应该包含重新打开最近关闭的网页以再次尝试点击书签按钮。形式上现在有一个 反思后的轨迹对 :
作者使用正样本 进行 SFT 训练 , 仅针对已纠正的步骤(也就是 和 )计算损失 ,而错误的步骤(即 )不纳入训练的考虑范围。经由这个过程, UI-TARS 逐渐提升其识别和从错误中恢复的能力 ,让其在面临不完美或不确定的状况时能够做出有效的调整。培养这种反思能力增强了模型对于动态环境和任务的适应能力。
Agent DPO 在 Online Trace Bootstrapping 过程中,会自然生成大量的错误步骤(负例)。然而, SFT 只使用了纠正的步骤(即 “正例”),却忽略了负样本 ,负样本是可以用来引导模型避开次优动作的。
作者转而采用 直接偏好优化(DPO) ,DPO 可以同时利用纠正的动作和错误的动作。这种方法通过直接对纠正动作相对于错误动作的偏好进行训练来优化 UI-TARS,从而更有效地利用可用数据。
假设当前状态为 , 不正确的动作为 ,而正确的动作为 ,DPO 的目标函数如下:
训练方法 作者使用 Qwen-2-VL 作为基模,并采用一个 三阶段的训练流程 。此流程利用各类 GUI 任务提升模型的能力,所使用的数据总量约为 50B tokens 。 每个阶段逐渐引入更高质量的数据 ,以增强模型在复杂推理任务上的表现。
• 持续预训练阶段 :作者运用前面提到的 全套数据(不包含 reflection tuning 数据) ,以恒定的学习率进行持续预训练。这一基础阶段让模型学习自动 GUI 交互所需的全部知识,涵盖感知、基础和动作轨迹,保证对各类 GUI 元素和交互的广泛覆盖。 • 退火阶段 :接着作者选取感知、基础、动作轨迹、 reflection tuning 数据 的 高质量子集 来进行退火。退火过程逐步调整模型的学习动态,推动更具针对性的学习,使其在真实的 GUI 交互场景中更好地优化其 决策能力 。在此阶段训练之后的模型被记为 UI-TARS-SFT 。 • DPO 阶段 :最后,作者利用来自 Online Trace Bootstrapping 数据的标注反思对开展 DPO 训练。在这个过程中,模型优化其决策,强化最优动作,同时对次优动作进行惩罚。此过程提升了模型在真实世界 GUI 交互中做出精确、具有上下文感知的决策的能力。最终的模型被记为 UI-TARS-DPO 。 📌 据说头条内部还有以他们自有模型作为基模训练得到的模型版本,效果更好,可能很快会对外提供 API 服务。
实验结果 作者在 Perception、Grounding、Offline Navigation、Online Navigation 方向验证了 UI-TARS 的能力。下面摘取几个结果贴一下,更详细请见论文。
Grounding 能力:
Offline Navigation 能力:
Online Navigation 能力:
系统 1 和系统 2 推理的比较 域内评估 作者对比了系统 1 和系统 2 推理对模型性能的影响。 系统 1 推理指的是模型直接生成动作,不存在思维链 ,而 系统 2 推理 涉及一个更为深思熟虑的思考过程,即 模型在选择动作之前生成推理步骤 。作者训练 UI-TARS-7B 以获取这两种能力,但 在推理期间通过 prompt 工程来改变模型的推理行为。
作者首先在三个同领域的 agent 基准上评估性能:Mind2Web、AndroidControl 和 GUI Odyssey,它们在 UI-TARS 中均有相应的训练数据。为了提高评估效率,作者为 AndroidControl 和 GUI Odyssey 基准随机抽取 1000 个示例。作者使用 Best-of-N(Bo )抽样方法 ,其中 UI-TARS 针对每个输入抽样 个候选输出, 设定为 、 和 。 单步成功率 被用作评估指标。
如下图所示, 时,在所有这三个领域内的基准中,系统 2 推理的表现稍逊于系统 1 推理 。尽管通常认为系统 2 推理通过引入反思性、多步骤的过程能够提升任务执行效果,但此结果表明, 在单一样本的条件下,系统 2 推理的复杂性可能会导致不理想的推理步骤 。具体而言, 模型可能会引入不相关或不正确的推理步骤 ,比如提及不存在的对象或者做出错误的推断, 这增加了产生幻觉或无法生成正确动作的风险 。在没有多样化的候选输出时,模型可能会困在有缺陷的推理路径上,致使选择正确动作的可能性降低。
然而, 当 增加到 和 时,系统 2 模型开始展现出相较于系统 1 推理的显著优势 。候选输出数量的增多为决策空间带来了更大的多样性,使模型能够克服次优的推理路径。特别是, 系统 2 模型得益于探索多个推理链的机会 ,这弥补了 时所呈现的早期问题。候选的多样性提高了正确动作在抽样输出中的可能性,即便某些中间推理步骤并不理想。这种性能上的转变尤为突出,表明 当有充足的候选输出时,系统 2 那种深思熟虑、多步骤的推理能够有效地弥补其最初的劣势 。
虽然系统 2 推理在具备足够多样性时表现卓越,但在单一、决定性的输出(如 Bo1 中)达成最佳性能仍是一项重大挑战。未来发展方向包含 在多样化的真实世界场景中利用系统 2 推理的长处,同时尽量降低对多个样本的需求 。
域外评估 作者在 AndroidWorld 上对这两种推理方法进行评估,这是一个 域外(OOD) 基准,在 UI-TARS 中没有对应的训练数据。作者在 Bo1 对 UI-TARS-7B 和 UI-TARS72B 进行评估。有趣的是,来自 AndroidWorld 的结果与领域内的基准相比有了显著的转变。虽然系统 1 推理在领域内的场景(Mind2Web、Android Control 和 GUI Odyssey)中表现出色,但 系统 2 推理在域外环境(AndroidWorld)中显著优于系统 1 。这表明,尽管系统 2 在领域内的场景中或许会面临挑战,特别是在单样本的条件下,但 系统 2更深入的推理能力在域外情形中展现出了明显的优势 。在这些情形下,推理深度的增加有助于模型推广到之前未曾见过的任务,凸显了系统 2 推理在真实世界、多样化场景中的更广泛适用性和潜力。
UI Agents 知识星球&分享视频 UI Agents 技术发展迅猛,想紧跟 UI agents 技术前沿?我们的知识星球每周以视频方式 解读最新论文 ,为你开启技术新视野,快来加入吧!
加入知识星球,每周获取会员专享视频👇
扫码加微信小助手为好友,备注「agent」,小助手会定期邀请入群👇
当前星球包含的专享视频包括:
• 【2025.01.19】 AI Agent 论文分享:Insight-V—探索 VLM 的长链条视觉推理能力 [8] • 【2025.01.12】 UI Agent 论文分享:PC-Agent—提升模型认知能力以便更好完成复杂任务 [9] • 【2025.01.05】 UI Agent 论文分享:OS-Genesis—自动合成高质量且多样化的训练数据 [10] • 【2024.12.29】 UI Agent 论文分享:PAE-通过自动探索新任务不断扩展模型能力 [11] • 【2024.12.22】 UI Agent 论文分享:Iris-通过自动构造的数据提升模型效果 [12] • 【2024.12.15】 UI Agent 论文分享:Falcon-UI—利用无监督数据预训练 UI Agent 模型 [13] • 【2024.12.08】 UI Agent 论文分享:Aguvis-来自 HKU & Salesforce 的大一统训练数据和训练框架 [14] • 【2024.12.01】 UI Agent 论文分享:ShowUI-当前最好的 UI Agents 开源模型,还适用中文 APP? [15] • 【2024.11.24】 UI Agent 论文分享:使用世界模型提升 UI Agents 效果? [16] • 【2024.11.17】 UI Agent 论文分享:来自华为诺亚方舟实验室的 LiMAC [17] • 【2024.11.11】 UI Agent 论文分享:来自 LG AI Research 的 Auto-Intent [18] 更多推荐阅读 引用链接 [1]
Home: https://www.breezedeus.com [2]
GitHub: https://github.com/breezedeus [3]
Twitter: https://twitter.com/breezedeus [4]
Youtube: https://www.youtube.com/@breezedeus [5]
Bilibili: https://space.bilibili.com/509307267 [6]
**UI-TARS: Pioneering Automated GUI Interaction with Native Agents**: https://arxiv.org/abs/2501.12326 [7]
https://github.com/bytedance/UI-TARS: https://github.com/bytedance/UI-TARS?tab=readme-ov-file [8]
AI Agent 论文分享:Insight-V—探索 VLM 的长链条视觉推理能力: https://www.bilibili.com/video/BV1itwkerEyu [9]
UI Agent 论文分享:PC-Agent—提升模型认知能力以便更好完成复杂任务: https://www.bilibili.com/video/BV1hZcGe1ELm [10]
UI Agent 论文分享:OS-Genesis—自动合成高质量且多样化的训练数据: https://www.bilibili.com/video/BV1aKrTY7EWB [11]
UI Agent 论文分享:PAE-通过自动探索新任务不断扩展模型能力: https://www.bilibili.com/video/BV1u26hY5Eyw [12]
UI Agent 论文分享:Iris-通过自动构造的数据提升模型效果: https://www.bilibili.com/video/BV1dgCNYXEfa?spm_id_from=333.788.videopod.sections&vd_source=e6243dcc9314341b281f7f3d5622b985 [13]
UI Agent 论文分享:Falcon-UI—利用无监督数据预训练 UI Agent 模型: https://www.bilibili.com/video/BV17VqfYfEjk [14]
UI Agent 论文分享:Aguvis-来自 HKU & Salesforce 的大一统训练数据和训练框架: https://www.bilibili.com/video/BV1erqxYhEBc [15]
UI Agent 论文分享:ShowUI-当前最好的 UI Agents 开源模型,还适用中文 APP?: https://www.bilibili.com/video/BV1U86FY9E1G [16]
UI Agent 论文分享:使用世界模型提升 UI Agents 效果?: https://www.bilibili.com/video/BV1pjBtYnE6C [17]
UI Agent 论文分享:来自华为诺亚方舟实验室的 LiMAC: https://www.bilibili.com/video/BV14eU7YWEEs [18]
UI Agent 论文分享:来自 LG AI Research 的 Auto-Intent: https://www.bilibili.com/video/BV1c1mpYtEqG