<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>MLLM on LeoDreamer</title>
        <link>https://LeoDreamer2004.github.io/tags/mllm/</link>
        <description>Recent content in MLLM on LeoDreamer</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-cn</language>
        <lastBuildDate>Wed, 13 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://LeoDreamer2004.github.io/tags/mllm/index.xml" rel="self" type="application/rss+xml" /><item>
            <title>论文阅读 - GUI 智能体</title>
            <link>https://LeoDreamer2004.github.io/p/paper-reading/gui-agentic-rl/</link>
            <pubDate>Wed, 13 May 2026 00:00:00 +0000</pubDate>
            <guid>https://LeoDreamer2004.github.io/p/paper-reading/gui-agentic-rl/</guid>
            <description>&lt;p&gt;我们延续着 Agentic RL 的话题, &lt;a class=&#34;link&#34; href=&#34;../agentic-rl&#34; &gt;之前的博客&lt;/a&gt; 中我们已经介绍了 Agentic RL 的一些基本概念和方法, 以及一些相关的论文. 由于 Agentic RL 的应用领域非常广泛, 包括了很多不同的任务和环境, 这里围绕综述 &lt;a class=&#34;link cite-GUI-Agentic-RL-Survey&#34;&gt;[&lt;span class=&#34;material-index&#34;&gt;&lt;/span&gt;]&#xA;    &lt;span class=&#34;material-name&#34;&gt;Unknown-material&lt;/span&gt; &#xA;&lt;/a&gt; 着重讨论一下 GUI Agent.&lt;/p&gt;&#xA;&lt;h2 id=&#34;native-gui-agent&#34;&gt;Native GUI Agent&#xA;&lt;/h2&gt;&lt;p&gt;字节的 UI-TARS &lt;a class=&#34;link cite-UI-TARS&#34;&gt;[&lt;span class=&#34;material-index&#34;&gt;&lt;/span&gt;]&#xA;    &lt;span class=&#34;material-name&#34;&gt;Unknown-material&lt;/span&gt; &#xA;&lt;/a&gt; 是一个专门针对 GUI 交互的智能体. 作为一个 native 的 GUI Agent, 论文明确强调 UI-TARS 不依赖 HTML、accessibility tree 或人工写的多模块流程. GUI native model 虽然更理想, 但缺少大规模高质量 GUI 数据, 尤其缺少把感知、推理、记忆、动作串起来的完整交互轨迹&lt;/p&gt;&#xA;&lt;h3 id=&#34;核心框架&#34;&gt;核心框架&#xA;&lt;/h3&gt;&lt;p&gt;UI-TARS 的 pipeline 并不特别, 基本上沿用的还是正常 Agentic RL 的框架.&lt;/p&gt;&#xA;&lt;div class=&#34;math-block math-algo&#34;&gt;&#xA;    &lt;p class=&#34;math-title&#34;&gt;算法&lt;span class=&#34;math-subtitle&#34;&gt;UI-TARS-GUI-Rollout&lt;/span&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong class=&#34;algo-input&#34;&gt;输入 &amp;gt; &lt;/strong&gt;&#xA;任务指令 $I$, GUI 环境 $\mathcal{E}$, UI-TARS policy $\pi_\theta$, 最大交互步数 $T$, 最近截图窗口大小 $m$, 统一动作空间 $\mathcal{A}$.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong class=&#34;algo-output&#34;&gt;输出 &amp;gt; &lt;/strong&gt;&#xA;任务完成结果 $r$, 执行轨迹 $\tau$.&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;初始化 GUI 环境, 截图和交互历史：&#xA;&lt;/p&gt;&#xA;$$&#xA;   s_0=\mathcal{E}.\mathrm{reset}(I)&#xA;   $$&lt;p&gt;&#xA;&lt;/p&gt;&#xA;$$&#xA;   o_0=\mathcal{E}.\mathrm{screenshot}(s_0)&#xA;   $$&lt;p&gt;&#xA;&lt;/p&gt;&#xA;$$&#xA;   H_0=\emptyset,\quad \tau=\emptyset&#xA;   $$&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;构造模型输入：&#xA;&lt;/p&gt;&#xA;$$&#xA;   h_t=\mathrm{Serialize}&#xA;   \left(&#xA;   I,&#xA;   H_t,&#xA;   o_{\max(0,t-m+1):t}&#xA;   \right)&#xA;   $$&lt;p&gt;&#xA;其中 $H_t$ 包含历史 &lt;code&gt;Thought&lt;/code&gt;、&lt;code&gt;Action&lt;/code&gt; 和必要的状态摘要.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;UI-TARS 生成下一步：&#xA;&lt;/p&gt;&#xA;$$&#xA;   (z_t,a_t)\sim \pi_\theta(\cdot \mid h_t)&#xA;   $$&lt;p&gt;&#xA;其中, $z_t$ 是 thought, $a_t \in \mathcal{A}$ 是 GUI action.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;如果 $a_t=\texttt{Finished()} $, 则停止执行, 进入评测阶段.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;如果 $a_t=\texttt{CallUser()}$, 则请求用户介入, 当前任务可记为需要人工帮助.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;否则, 将动作映射到真实 GUI 操作, 例如点击、输入、滚动、拖拽或快捷键：&#xA;&lt;/p&gt;&#xA;$$&#xA;   s_{t+1}=\mathcal{E}.\mathrm{step}(s_t,a_t)&#xA;   $$&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;获取新截图：&#xA;&lt;/p&gt;&#xA;$$&#xA;    o_{t+1}=\mathcal{E}.\mathrm{screenshot}(s_{t+1})&#xA;    $$&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;更新历史, 记录轨迹：&#xA;&lt;/p&gt;&#xA;$$&#xA;    H_{t+1}=H_t\oplus {z_t,a_t}&#xA;    $$&lt;p&gt;&#xA;&lt;/p&gt;&#xA;$$&#xA;    \tau \leftarrow \tau \cup {o_t,z_t,a_t,o_{t+1}}&#xA;    $$&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;重复 2-8 步骤, 直到达到最大步数后停止.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;用任务评测器判断最终状态是否达成目标 $r=\mathrm{Eval}(s_T,I)$&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;返回 $(r,\tau)$&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;UI-TARS 把不同平台的 GUI 操作统一成一套 action schema. 比如桌面的 click 和移动端的 tap, 在语义上都归为坐标点击.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;UI-TARS&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;253px&#34; data-flex-grow=&#34;105&#34; height=&#34;1740&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://arxiv.org/html/2501.12326v1/extracted/6146349/figures/model_arc.png&#34; srcset=&#34;https://LeoDreamer2004.github.io/model_arc_1931450895530743216_hu_83cd861f061ab511.png 800w, https://LeoDreamer2004.github.io/model_arc_1931450895530743216_hu_e405a926fc024c33.png 1600w, https://arxiv.org/html/2501.12326v1/extracted/6146349/figures/model_arc.png 1836w&#34; width=&#34;1836&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;数据构造&#34;&gt;数据构造&#xA;&lt;/h3&gt;&lt;p&gt;在感知层面, 为了提升截图理解，UI-TARS 构造了大规模 GUI screenshot 数据，并通过解析工具提取元素类型、层级、bounding box、文本内容等 metadata。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;论文选择用解析工具提取元素 metadata, 其中每个元素包含：&#xA;&#xA;$$&#xA;   b_i=(\mathrm{type}_i,\mathrm{text}_i,\mathrm{bbox}_i,\mathrm{depth}_i)&#xA;   $$&lt;/li&gt;&#xA;&lt;li&gt;基于这些数据，论文设计了五类任务：元素描述 (element description)、页面描述 (dense captioning)、状态转移描述 (state transition captioning)、GUI 问答 (GUI QA)、元素标记 (Set-of-Mark)。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;在动作层面, UI-TARS 训练模型直接预测元素坐标。做法是用元素 bbox 的中心点作为点击点，并将坐标归一化到屏幕尺寸，从而适配不同分辨率。论文也整合了 SeeClick、GUIAct、MultiUI 等开源数据，并统一到自己的 action space。&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;UI-TARS 数据示例&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;498px&#34; data-flex-grow=&#34;207&#34; height=&#34;800&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://arxiv.org/html/2501.12326v1/x1.png&#34; srcset=&#34;https://LeoDreamer2004.github.io/x1_15240836761993914470_hu_9dd17c658367e2ad.png 800w, https://LeoDreamer2004.github.io/x1_15240836761993914470_hu_c1170b01b7243c77.png 1600w, https://arxiv.org/html/2501.12326v1/x1.png 1661w&#34; width=&#34;1661&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;显式推理&#34;&gt;显式推理&#xA;&lt;/h3&gt;&lt;p&gt;原始动作轨迹通常只有观察和动作，没有显式推理。UI-TARS 的做法是给轨迹补上 thought，把数据格式扩展一个 thought 字段.&lt;/p&gt;&#xA;&lt;div class=&#34;math-block math-algo&#34;&gt;&#xA;    &lt;p class=&#34;math-title&#34;&gt;算法&lt;span class=&#34;math-subtitle&#34;&gt;UI-TARS-Thought-Augmentation&lt;/span&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong class=&#34;algo-input&#34;&gt;输入 &amp;gt; &lt;/strong&gt;&#xA;动作轨迹集合 $\mathcal{D}_{trace}$，VLM 标注器 $\mathcal{M}$，早期 UI-TARS checkpoint $\pi_{\theta_0}$.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong class=&#34;algo-output&#34;&gt;输出 &amp;gt; &lt;/strong&gt;&#xA;带 thought 的轨迹集合 $\mathcal{D}_{thought}$.&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;对每条轨迹和对每一步 $t$，构造上下文：&#xA;&#xA;$$&#xA;   \tau=(o_1,a_1,o_2,a_2,\dots,o_T,a_T)&#xA;   $$&#xA;&#xA;$$&#xA;   c_t=(I,o_{\le t},a_{\lt t})&#xA;   $$&lt;/li&gt;&#xA;&lt;li&gt;使用 ActRe 方式，给定当前上下文和目标动作 $a_t$，反向生成 thought：&#xA;&#xA;$$&#xA;   z_t=\mathcal{M}(c_t,a_t)&#xA;   $$&lt;/li&gt;&#xA;&lt;li&gt;约束 thought 覆盖以下 reasoning pattern：&#xA;&lt;ul&gt;&#xA;&lt;li&gt;task decomposition；&lt;/li&gt;&#xA;&lt;li&gt;long-term consistency；&lt;/li&gt;&#xA;&lt;li&gt;milestone recognition；&lt;/li&gt;&#xA;&lt;li&gt;trial and error；&lt;/li&gt;&#xA;&lt;li&gt;reflection。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;为减少“事后合理化”问题, 不提前给定真实动作, 使用 thought bootstrapping, 采样多个候选并选择能导向正确动作的思考-动作对：&#xA;&#xA;$$&#xA;     (z_t^j,a_t^j)\sim \pi_{\theta_0}(\cdot\mid c_t)&#xA;     $$&lt;/li&gt;&#xA;&lt;li&gt;得到增强轨迹：&#xA;&#xA;$$&#xA;   \tau^*=(o_1,z_1,a_1,\dots,o_T,z_T,a_T)&#xA;   $$&lt;/li&gt;&#xA;&lt;li&gt;返回 $\mathcal{D}_{thought}$&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;UI-TARS 思考模式示例&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;233px&#34; data-flex-grow=&#34;97&#34; height=&#34;5021&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://arxiv.org/html/2501.12326v1/extracted/6146349/figures/thought_pattern.png&#34; srcset=&#34;https://LeoDreamer2004.github.io/thought_pattern_16861972703966473245_hu_d39ec7353bf2f0ee.png 800w, https://LeoDreamer2004.github.io/thought_pattern_16861972703966473245_hu_e5aa0a66227eee15.png 1600w, https://LeoDreamer2004.github.io/thought_pattern_16861972703966473245_hu_effee642425043b4.png 2400w, https://arxiv.org/html/2501.12326v1/extracted/6146349/figures/thought_pattern.png 4889w&#34; width=&#34;4889&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;在线轨迹-bootstrapping&#34;&gt;在线轨迹 Bootstrapping&#xA;&lt;/h3&gt;&lt;p&gt;论文认为 GUI agent 的最大瓶颈是缺少真实交互过程数据，所以它让模型在大量虚拟 PC 上执行任务，自动收集 trace, 大致流程是:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;构造任务目标集合：$ \mathcal{G}_i=\mathcal{G}_{human}\cup\mathcal{G}_{model}$&lt;/li&gt;&#xA;&lt;li&gt;在多个虚拟机中并行执行任务, 得到原始轨迹集合 $\mathcal{T}_{raw}={\tau_j}$&lt;/li&gt;&#xA;&lt;li&gt;使用 rule-based reward 过滤明显异常轨迹，例如重复点击、无效操作.&lt;/li&gt;&#xA;&lt;li&gt;使用 VLM scoring 对剩余轨迹打质量分并丢弃低质量轨迹.&lt;/li&gt;&#xA;&lt;li&gt;对部分轨迹进行人工审查, 找到首次错误步骤并丢弃错误之后的部分.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;此外, 普通 offline 数据往往是“完美轨迹”，模型学不到如何从错误中恢复。UI-TARS 因此用自己生成的错误轨迹构造两类数据：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;错误纠正 (error correction): 指出某一步错了，并标注正确思考/动作;&lt;/li&gt;&#xA;&lt;li&gt;预先反应 (post-reflection): 假设错误已经发生，标注下一步如何补救.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;论文明确提出这里采用 DPO 优化:&lt;/p&gt;&#xA;$$&#xA;\mathcal{L}_{DPO}=-\log \sigma \left[ \beta \left( \log \frac{\pi_\theta(a_t^+\mid s_t)}{\pi_{\mathrm{ref}}(a_t^+\mid s_t)}- \log \frac{\pi_\theta(a_t^-\mid s_t)}{\pi_{\mathrm{ref}}(a_t^-\mid s_t)}\right)\right]&#xA;$$&lt;p&gt;&lt;img alt=&#34;UI-TARS 轨迹 Bootstrapping&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;516px&#34; data-flex-grow=&#34;215&#34; height=&#34;3278&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://arxiv.org/html/2501.12326v1/extracted/6146349/figures/online_bootstrap.png&#34; srcset=&#34;https://LeoDreamer2004.github.io/online_bootstrap_12979727169351833026_hu_f136d1706b3fee9b.png 800w, https://LeoDreamer2004.github.io/online_bootstrap_12979727169351833026_hu_3d7c5b0e40140e45.png 1600w, https://LeoDreamer2004.github.io/online_bootstrap_12979727169351833026_hu_5f0001fe89f5b02d.png 2400w, https://arxiv.org/html/2501.12326v1/extracted/6146349/figures/online_bootstrap.png 7058w&#34; width=&#34;7058&#34;&gt;&lt;/p&gt;&#xA;</description>
        </item></channel>
</rss>
