<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet href="/scripts/pretty-feed-v3.xsl" type="text/xsl"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:h="http://www.w3.org/TR/html4/"><channel><title>Hana&apos;s Blog</title><description>一个笨蛋学生</description><link>https://agusexp25.top</link><item><title>WorldArena 论文精读</title><link>https://agusexp25.top/blog/paper-deep-dive-worldarena</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-worldarena</guid><description>WorldArena 将 embodied world model 的视频感知质量、下游任务功能和人类判断放进同一套评测，并用 EWMScore 量化感知—功能鸿沟。</description><pubDate>Thu, 27 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; WorldArena 针对 embodied world model（EWM）的评测碎片化问题，建立一套同时覆盖感知质量与功能效用的 benchmark。它在 RoboTwin 2.0 的双臂操作场景上评测 14 个代表性模型，并发布公开 leaderboard 与 EWMScore。&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 论文真正要改变的不是某个视频指标，而是评价问题本身：一个视频即使清晰、连贯、很“像电影”，也可能无法生成有用的机器人数据、准确判断 policy，或规划出可执行动作。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;六个感知维度、16 个自动视频指标：Visual Quality、Motion Quality、Content Consistency、Physics Adherence、3D Accuracy、Controllability。&lt;/li&gt;
&lt;li&gt;三种功能测试：Embodied Data Engine、Embodied Policy Evaluator、Embodied Action Planner。&lt;/li&gt;
&lt;li&gt;70 名标注者对 3,500 个视频进行整体质量、指令遵循、物理合理性与 pairwise win-rate 评测。&lt;/li&gt;
&lt;li&gt;将归一化后的 16 个指标取算术平均，得到可解释的 EWMScore。&lt;/li&gt;
&lt;li&gt;在 14 个模型上发现 perception–functionality gap：EWMScore 与人类判断高度相关（Pearson $r=0.825$），但与 action-planning 仅弱相关（$r=0.360$）。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;世界模型通过动作条件的视频或状态预测，为机器人提供“心理模拟器”。在 embodied pipeline 中，它既可以生成合成数据，也可以作为 policy 的虚拟环境，还可以直接根据指令规划动作。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 既有 benchmark 多数把 EWM 当作视频生成器，只测 FVD、清晰度、运动平滑度等 perceptual fidelity；少量 embodied benchmark 则通常只覆盖闭环执行或单一模型类型。这样会遗漏两个关键问题：生成的视频是否遵守接触与几何约束？模型的预测是否足以支持下游 policy 学习和长时程控制？&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; WorldArena 的定位更像一个“能力剖面”而不是单一排行榜：它允许我们区分“画面好”“动力学对”“能做数据引擎”“能当模拟器”和“能规划动作”这几种并不等价的能力。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;给定初始观测 $o_0$、文本指令 $c$、动作序列 $a_{0:T}$ 和真实未来视频 $v^{gt}_{1:T}$，WorldArena 评估世界模型 $M$ 的两类输出：&lt;/p&gt;
&lt;p&gt;$$
\hat v_{1:T}=M(o_0, c, a_{0:T}), \qquad
\hat a_{0:T}=P(M,o_0,c).
$$&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Open-loop video prediction&lt;/strong&gt;：固定初始帧（及文本或动作条件），比较生成视频 $\hat v$ 与 ground truth。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Closed-loop task utility&lt;/strong&gt;：把模型接到 inverse dynamics model（IDM）或 policy，反复生成未来状态并在 RoboTwin 模拟器中执行。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Human judgment&lt;/strong&gt;：自动指标难以表达的物理 plausibility、指令遵循和整体观感由人工补充。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;最终目标不是只最大化一个视频分数，而是同时回答：模型是否看起来可信、是否遵守动作和物理、以及这种可信度能否转化为机器人任务成功。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://world-arena.ai/assets_common/photos/Embodied_evaluation.svg&quot; alt=&quot;WorldArena embodied task evaluation framework from paper Figure 3&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 评测流程由三条支路组成：视频质量分支计算 16 个指标，功能分支分别测试 data engine、policy evaluator、action planner，最后再用人类评测和 EWMScore 汇总；三条功能支路共享 RoboTwin 场景与 IDM 接口。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;六维视频质量&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;| 维度 | 指标与测量对象 |
| --- | --- |
| Visual Quality | MUSIQ Image Quality、LAION Aesthetic Quality、V-JEPA Similarity |
| Motion Quality | RAFT Dynamic Degree、Flow Score、Motion Smoothness |
| Content Consistency | DINO Subject Consistency、CLIP Background Consistency、光流 AEPE Photometric Consistency |
| Physics Adherence | Qwen3-VL Interaction Quality、SAM 3 + NDTW Trajectory Accuracy |
| 3D Accuracy | 深度图 Depth Accuracy、Qwen3-VL Perspectivity |
| Controllability | Qwen3-VL Instruction Following、Qwen2.5-VL Semantic Alignment、Action Following 多样性 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这组维度刻意把“像素看起来好”与“机器人运动是否合理”拆开。例如 Flow Score 高只说明运动明显，不保证抓取接触正确；Trajectory Accuracy 则直接比较机械臂轨迹，能揭示两者差异。&lt;/p&gt;
&lt;h4&gt;三种 embodied task&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Data Engine&lt;/strong&gt;：world model 根据首帧和指令生成视频，再由 IDM 抽取 action，生成 paired video–action 数据；用这些合成数据训练 $\pi_{0.5}$，观察下游任务成功率增益。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Policy Evaluator&lt;/strong&gt;：让 policy 的动作驱动 action-controllable world model 进行 rollout，并把模型中的成功率与 RoboTwin simulator 的成功率做相关性比较。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Action Planner&lt;/strong&gt;：world model 直接根据首帧和文本指令生成视频，IDM 转成动作，在模拟器闭环执行并统计成功率。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;人类评测&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 评分型评测让标注者按 1–5 分评价整体视频质量、Instruction Following 与 Physical Adherence，再归一化到 0–100；pairwise 评测则在同一 prompt 下选择更好的视频并计算 win rate。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;p&gt;对第 $m$ 个视频质量指标，设原始分数为 $s_m$，论文用经验上下界 $l_m,u_m$ 做线性归一化：&lt;/p&gt;
&lt;p&gt;$$
\tilde s_m=100\cdot\mathrm{clip}\left(\frac{s_m-l_m}{u_m-l_m},0,1\right).
$$&lt;/p&gt;
&lt;p&gt;其中 $l_m,u_m$ 是所有评测视频的第 1 和第 99 百分位边界；对于误差型指标（如 AEPE），实现中先做方向统一，使“越大越好”。EWMScore 是 16 项归一化分数的算术平均：&lt;/p&gt;
&lt;p&gt;$$
\mathrm{EWMScore}=\frac{1}{16}\sum_{m=1}^{16}\tilde s_m.
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 等权平均牺牲了任务特定的最优权重，却换来可解释性和跨模型可比性；它不应被理解为“真实机器人效用”的充分统计量。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Benchmark 本身不训练一个统一的 world model，而是为每个被测模型提供统一的数据后处理、指标计算和功能测试协议。Data Engine 任务例外地包含两阶段训练：先在 RobotTwin 2.0 上 fine-tune world model 生成视频，再冻结 world model，用 VPP 风格的 diffusion policy head/IDM 抽取动作，训练不同数据量的 $\pi_{0.5}$。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 对单个模型的运行时行为依评测角色而异：open-loop 只生成一段未来视频；policy evaluator 将 policy action 作为下一步条件反复 rollout；action planner 则从文本指令出发生成视频，再由 IDM 转成可执行动作。成功与否由 RoboTwin simulator 或 VLM judge 判定。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方仓库将实现拆成 &lt;code&gt;video_quality/&lt;/code&gt; 与 &lt;code&gt;embodied_task/&lt;/code&gt;。 &lt;code&gt;video_quality/evaluate.py&lt;/code&gt; 解析 &lt;code&gt;--dimension&lt;/code&gt; 和 YAML checkpoint 配置，实例化 &lt;code&gt;WorldArenaBenchmark&lt;/code&gt;，再按维度调用 MUSIQ、RAFT、DINO、VLM、深度与轨迹等模块；因此指标可以按需分开运行，而不是必须一次跑完全部 16 项。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;embodied_task/policy_eval_release_bundle/vlm_policy_evaluator.py&lt;/code&gt; 负责读取 rollout 视频、调用 VLM 判定任务成功；&lt;code&gt;calculate_policy_pearson_r.py&lt;/code&gt; 将 world-model 评测结果与 ground-truth simulator 结果对齐并计算 Pearson $r$。Data Engine 的 &lt;code&gt;step1_prepare_latent_wan.py&lt;/code&gt;、&lt;code&gt;step2_train_action_robotwin_wan.py&lt;/code&gt; 则把视频 latent 与 VPP policy 训练串起来。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 仓库还提供 &lt;code&gt;run_evaluation.sh&lt;/code&gt;、&lt;code&gt;run_VLM_judge.sh&lt;/code&gt;、配置 YAML 和 submission README；但模型权重、完整运行环境与所有第三方 checkpoint 不随仓库提供，复现实验仍需要自行准备依赖。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 数据来自 RoboTwin 2.0 Clean-50：50 个双臂操作任务，每个任务 50 个 episode；论文使用 2,000 个视频训练 world model、500 个视频测试。共评测 14 个模型，包括 Wan 2.2/2.6、Veo 3.1、CogVideoX 等通用视频模型，以及 Genie Envisioner、GigaWorld-0、TesserAct、WoW、Vidar、IRASim、CtrlWorld 和 Cosmos-Predict 2.5 的 text/action 变体。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/tsinghua-fib-lab/WorldArena/main/assets/video_eval.png&quot; alt=&quot;WorldArena perceptual evaluation dimensions&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; EWMScore 排名中 Wan 2.6（61.86）、CtrlWorld（59.70）、Veo 3.1（58.87）位居前列，Genie Envisioner（43.65）最低。通用大模型通常在 Image/Aesthetic Quality 上强，embodied 模型在轨迹、主体一致性和物理相关指标上更有优势。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Data Engine 中，绝大多数模型生成数据训练出的 $\pi_{0.5}$ 仍落后于真实数据；只有 RoboMaster 和 WoW 在 Task 2 超过 real-data baseline。Action Planner 的直接成功率也远低于 $\pi_{0.5}$（Task 1/2 为 77%/66%），说明视频预测能力尚未转化为长时程控制能力。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/tsinghua-fib-lab/WorldArena/main/assets/task_eval.png&quot; alt=&quot;WorldArena embodied task evaluation protocol&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;论文没有传统的“去掉一个模块”消融，而是用跨维度相关性和不同功能角色的对照验证 benchmark 设计：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;指标与人类判断&lt;/strong&gt;：EWMScore–human Pearson $r=0.825$，说明自动指标组合能近似主观总体质量。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;感知与 Data Engine&lt;/strong&gt;：相关性仅 $r=0.600$，视觉高分不保证合成数据能训练出强 policy。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;感知与 Action Planner&lt;/strong&gt;：相关性降到 $r=0.360$，表明闭环动作规划受动力学误差和长时程累积影响更大。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://world-arena.ai/assets_common/photos/Perceptual%20evaluation.svg&quot; alt=&quot;WorldArena perceptual and functional evaluation overview&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; WorldArena 在同一套 RoboTwin 协议上同时覆盖 text-conditioned、action-conditioned、通用视频与机器人专用模型，说明 benchmark 可以跨模型范式使用。仓库也公开 submission 格式、测试数据集和 leaderboard，允许新模型按相同协议加入比较。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 但这不是对真实机器人硬件的泛化证明：所有主要功能实验都依赖 RoboTwin 模拟器，真实部署中的相机噪声、接触建模和控制延迟仍未被覆盖。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; EWMScore 与人类判断高度相关，是因为 16 个指标覆盖了从清晰度到指令遵循的互补证据，减少单一 FVD 对失败模式的盲区。三类功能任务则把评价从“预测得像不像”推进到“预测是否改变下游决策”。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 核心创新是把 EWM 的三种使用方式写进 benchmark contract：数据引擎测学习增益、policy evaluator 测环境排序保真度、action planner 测闭环可执行性。这样“功能效用”不再是论文里一句口号，而是可重复的实验接口。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;| 评测 | 主要问题 | WorldArena 的补充 |
| --- | --- | --- |
| 传统视频 benchmark | 视频清晰、运动和一致性 | 增加物理、3D、可控性与 embodied task |
| 单一闭环 benchmark | 能否完成某类任务 | 同时测数据生成、policy 排序和规划 |
| 人工观感评测 | 人类觉得哪个更好 | 用自动 16 指标提供可扩展、可解释分数 |&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 评测假设 RoboTwin 2.0 足以代表双臂 manipulation，且 IDM 能从生成视频中恢复有意义的 action；VLM judge 的成功判定也被视作可接受的任务标签。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这些假设决定了 benchmark 更适合比较“当前模型在该场景下的相对能力”，而非给出跨 embodiment、跨 simulator 的绝对能力上限。&lt;/p&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 作者将工作定位为持续扩展的 benchmark，未来计划纳入更多模型；当前实验集中于 RoboTwin 2.0 双臂操作，尚未覆盖更广泛的机器人 embodiment 与真实世界任务。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;EWMScore 对 16 项指标等权，可能掩盖关键安全维度（例如接触物理）上的灾难性失败。&lt;/li&gt;
&lt;li&gt;经验百分位边界依赖当前 14 个模型和测试集；加入更强模型后，历史分数的可比性需要重新校准。&lt;/li&gt;
&lt;li&gt;Data Engine 只用每个 world model 生成 25 条轨迹训练 policy，样本量较小，难以估计 scaling curve。&lt;/li&gt;
&lt;li&gt;Policy evaluator 中 world model 成功率高于 simulator 可能来自对成功轨迹的偏置，相关性并不等于动力学真实度。&lt;/li&gt;
&lt;li&gt;Action Planner 的 IDM、VLM 和 simulator 各自引入误差，失败归因仍不够细粒度。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 对研究者而言，WorldArena 提供了一个很实用的实验纪律：发布 world model 时，至少同时报告一组感知指标、一个闭环功能指标和失败案例，而不是只展示最漂亮的视频。&lt;/p&gt;
&lt;p&gt;一个值得继续追问的问题是：能否从 EWMScore 的六维向量学习“任务条件权重”，让抓取任务更重视 interaction/trajectory，让导航任务更重视 depth/perspectivity？另一个方向是把 policy evaluator 的相关性直接纳入 world-model 训练目标，优化的不再是像素级未来，而是对 action consequence 的可决策预测。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/126839080_p0_master1200.232gprncye.webp"/><enclosure url="https://pic.hana0721.top/126839080_p0_master1200.232gprncye.webp"/></item><item><title>UMI-Bench 1.0 论文精读：把 UMI 数据到真实机器人评测串成一条可审计流水线</title><link>https://agusexp25.top/blog/paper-deep-dive-umi-bench</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-umi-bench</guid><description>精读 UMI-Bench 1.0：面向 UMI-style 策略的真实机器人基准，覆盖 10 个桌面任务、约 2 万条示教与可解释的 Seen/Unseen 评测。</description><pubDate>Thu, 27 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; UMI-Bench 1.0 不是一个新 Policy，而是一套围绕 Universal Manipulation Interface（UMI）数据设计的 real-robot benchmark：它规定数据如何采集、场景如何重置、动作如何执行、结果如何记录，并用任务因素拆解泛化失败。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文的贡献可以压缩为四点：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;将 UMI-style wrist-view observation、action representation、数据 schema 和物理部署放进同一评测协议。&lt;/li&gt;
&lt;li&gt;提供 10 个桌面任务（4 个 single-arm、6 个 bimanual），每个任务约 1,600--3,000 条示教，第一版合计约 20k demonstrations。&lt;/li&gt;
&lt;li&gt;规定固定工作台、重置图像、scene JSON、rollout manifest 与人工评分，使一次实验可以被复盘和审计。&lt;/li&gt;
&lt;li&gt;用两个任务相关因素构造 Seen/Seen、Seen/Unseen、Unseen/Seen、Unseen/Unseen 四个条件，并报告 Full Success Rate（FSR）与 0--100 Progress Score。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/haoxixi1/UMI-Bench/main/assets/images/overview-figure.jpg&quot; alt=&quot;UMI-Bench 任务、数据采集和真实 rollout 总览（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 仿真和 offline metric 无法完整反映接触动力学、相机伪影、摩擦、校准漂移、控制时序和操作员重置差异。RoboChallenge、RoboArena、ManipArena 等工作已经证明真实机器人评测需要统一协议，但它们没有围绕 UMI 的“数据到部署”耦合来设计。&lt;/p&gt;
&lt;p&gt;UMI-style 数据的特殊性在于：wrist-view 相机、动作 chunk、机器人 embodiment、场景重建和执行器接口相互依赖。如果训练使用一种 wrist-camera 或 action convention，而测试换了相机安装、reset 方式或控制频率，最终分数混合了模型能力与评测偏差。&lt;strong&gt;【Analysis】&lt;/strong&gt; 因此 UMI-Bench 的真正对象不是某个单独任务，而是“训练分布如何被搬运到物理世界”这条链路。&lt;/p&gt;
&lt;p&gt;与纯数据集发布相比，UMI-Bench 额外固定了 episode specification、scene metadata、评分 rubric 和 rollout audit package；与远程机器人平台相比，它优先保证本地实验的可重复迭代。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 给定 UMI-style demonstrations、任务 prompt、scene JSON 和一个待评测 checkpoint，基准需要在真实桌面机器人上执行一组固定 episode，并回答：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Observation&lt;/strong&gt;：策略接收 wrist-view RGB（可选 proprioception），第三人称相机只用于 debug，不作为 policy input。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Action&lt;/strong&gt;：动作接口由任务/策略配置指定，采用 action chunk 而非逐低层命令；每次 inference 返回 waypoint trajectory。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Environment&lt;/strong&gt;：1.2 m × 1.0 m × 0.75 m 桌面，表面覆盖 5 cm × 5 cm acrylic grid，网格供操作员重置与记录，不假设策略能读懂。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Embodiment&lt;/strong&gt;：FastTouch tabletop arm，支持单臂与双臂任务；wrist RGB 为 1280×1280、100 FPS，策略图像 resize 到 224×224。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dataset&lt;/strong&gt;：10 个任务、约 20k demonstrations；每任务 50 条 real-world evaluation episodes。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Metrics&lt;/strong&gt;：FSR 衡量是否同时满足全部任务条件，Progress Score 对子目标给部分分；首版不把耗时、重试次数或 action length 作为官方主指标。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;每个任务定义 Factor A（对象、外观、类别组合或材质变化）与 Factor B（位置、布局、姿态或动态变化）。四个条件的笛卡尔积让“物体没见过”和“几何/动力学没见过”可以分开统计。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/haoxixi1/UMI-Bench/main/assets/images/main-figure.jpg&quot; alt=&quot;UMI-Bench 的 data-to-evaluation pipeline（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 整体数据流是：FastUMI Pro 采集示教 → 结构化 metadata 与训练 repository → checkpoint → 固定 episode list 和 scene reset → wrist-view rollout → manifest、轨迹、视频与人工评分 → FSR、Progress Score 及 task-factor diagnostics。基准的“架构”是协议组件之间的接口，而非神经网络层。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;Standardized UMI Data Collection&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：任务定义、操作员示教、wrist RGB、TOF、IMU、gripper 与空间轨迹流。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;中间模块&lt;/strong&gt;：FastUMI SDK/ROS 初始化、stream check、相机与机器人标定检查、scene reset、录制、quality control、格式转换。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：HDF5 或 LeRobot-compatible episode，包含视频、timestamps、robot state、action chunks、scene metadata 与 quality flags。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要&lt;/strong&gt;：让训练数据的 observation/action convention 与后续物理评测保持同源。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文给出的检查频率包括 pose/IMU 500 Hz、RGB 60 Hz、TOF 30 Hz；导出时原始 60 FPS 流可对齐到 20/30/60 Hz training frequency。八维单臂 state/action 向量为 $[x,y,z,q_x,q_y,q_z,q_w,\mathrm{clamp}]$。&lt;/p&gt;
&lt;h4&gt;Scene JSON 与 Reset Image&lt;/h4&gt;
&lt;p&gt;每个 episode 记录 task id、object id/category/appearance/material、桌面 marker position、pose、target region、split 和 reset image。&lt;strong&gt;【Analysis】&lt;/strong&gt; 这一步把“看起来差不多的场景”转成可查询的分布变量，后续才能按对象、布局和子目标定位失败。&lt;/p&gt;
&lt;h4&gt;Evaluation Runner 与 Audit Package&lt;/h4&gt;
&lt;p&gt;runner 接收 checkpoint、task config、episode list、scene JSON、calibration 和 action-space config，执行统一 action chunk，并保存 manifest、predicted targets、transformed poses、gripper command、state samples、trajectory plot 与可选视频。人工分数独立存储，避免把主观评分覆盖原始 rollout。&lt;/p&gt;
&lt;h4&gt;Task Suite&lt;/h4&gt;
&lt;p&gt;| ID | 任务 | 手臂 | 主要能力 | Factor-B 例子 |
| --- | --- | --- | --- | --- |
| T1 | Sequential Object Stacking | Single | 空间对齐 | stacking position |
| T2 | Articulated Container Manipulation | Single | 铰链容器 | object position |
| T3 | Tool-Mediated Stamping | Single | 工具接触 | stamping position |
| T4 | Precision Slot Insertion | Single | 精细插入 | insertion position |
| T5 | Bimanual Material Pouring | Dual | 双臂稳定与倾倒 | basket/cup layout |
| T6 | Bimanual Packing and Transport | Dual | 协同搬运 | box position |
| T7 | Dynamic Pick-and-Place | Dual | 动态抓取 | turntable speed |
| T8 | Category Sorting and Placement | Dual | 语义分类 | placement position |
| T9 | Long-Horizon Rearrangement | Dual | 长时序规划 | target layout |
| T10 | Deformable Object Folding | Dual | 可变形物体 | initial position |&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;进度分数与泛化差距&lt;/h4&gt;
&lt;p&gt;对一个条件单元 $c$，Progress Score 是按任务 rubric 归一化到 0--100 的子目标得分。Factor-A 与 Factor-B 的泛化差距分别写成：&lt;/p&gt;
&lt;p&gt;$$
\Delta_{\mathrm{gen}} = S_{\mathrm{seen}} - S_{\mathrm{unseen}},
$$&lt;/p&gt;
&lt;p&gt;其中 $S$ 是对应条件下的平均 Progress Score。&lt;strong&gt;【Paper】&lt;/strong&gt; 论文强调分数来自 rollout 终止时的最终稳定物理状态；中途短暂失败但后来恢复，不会自动抹掉已完成的子目标。&lt;/p&gt;
&lt;h4&gt;Full Success Rate&lt;/h4&gt;
&lt;p&gt;$$
\mathrm{FSR}=\frac{1}{N}\sum_{i=1}^{N}\mathbf{1}[\text{all critical subgoals satisfied in final state}_i].
$$&lt;/p&gt;
&lt;p&gt;$N$ 是该 task 的 rollout 数。&lt;strong&gt;【Analysis】&lt;/strong&gt; 这使 FSR 更像“严格验收”，Progress Score 更像“过程诊断”；两者不能互相替代。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; UMI-Bench 不规定唯一的训练算法，而是提供统一数据、schema 和 baseline checkpoints。实验比较 $\pi_0$、$\pi_{0.5}$ 与 DreamZero；它们共享 observation interface、action space、task definitions、data split 和 evaluation episode list。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方公开仓库 &lt;code&gt;haoxixi1/UMI-Bench&lt;/code&gt; 目前是项目页源码（HTML/CSS/JS、视频构建脚本与静态素材），没有可复现的 policy training loop、dataloader 或 loss 实现。因此不能把网页构建脚本误写成模型训练代码；训练细节以论文和各 baseline 原仓库为准。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 每次 rollout 先依据 scene JSON 与 reset image 重建场景，再由 checkpoint 读取 wrist-view observation，预测 waypoint/action chunk，经 FastTouch SDK 执行，直到成功、达到 task-specific step budget、离开有效区域或触发安全停止。单臂任务最多 800--1,200 steps，T9 长时序任务为 1,800 steps；单臂 $\pi_0$/DreamZero 与双臂 DreamZero 默认最多 24 个 waypoint，双臂 $\pi_0$ 默认 50 个（长时序/动态任务 20 个）。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 项目页脚本只负责展示 rollout 视频和 poster，不包含机器人 runtime；因此实际 inference 行为应以论文附录和相应 baseline runner 为准。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;| 组件 | 论文规范 | 官方代码仓库现状 |
| --- | --- | --- |
| 项目页 | 展示 UMI-Bench、论文、视频、数据集和模型 | &lt;code&gt;index.html&lt;/code&gt;、&lt;code&gt;styles.css&lt;/code&gt;、&lt;code&gt;script.js&lt;/code&gt; 与静态 assets |
| 数据集 | UMI-Benchmark-v1 | Hugging Face 数据集链接：&lt;code&gt;UMIbenchmark/UMI-Benchmark-v1&lt;/code&gt; |
| Checkpoint | $\pi_0$、$\pi_{0.5}$、DreamZero 基线 | Hugging Face 模型链接：&lt;code&gt;UMIbenchmark/UMI-Benchmark-v1-checkpoints&lt;/code&gt; |
| 评测 runner | checkpoint + episode + scene JSON + calibration | 论文附录描述了接口，但项目页仓库未公开 runner 源码 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这里的“open and reproducible”更准确地理解为协议、数据与结果包的开放；截至论文版本，读者仍需组合论文附录、Hugging Face 资源和各 baseline 的执行代码来复现实验。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 每个任务 50 条 rollout，10 个任务、3 个模型共 1,500 次真实执行。FastTouch 控制回路内部 waypoint 以 400 Hz 采样，gripper 周期为 5 ms；机器人状态默认 30 Hz 记录。所有模型使用同一 episode list 和评分协议。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/haoxixi1/UMI-Bench/main/assets/images/task-distribution.jpg&quot; alt=&quot;10 个任务的示教与场景变体覆盖（论文 Appendix Figure）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 平均 Overall Score 为：$\pi_{0.5}$ 55.84、$\pi_0$ 48.90、DreamZero 40.59。$\pi_{0.5}$ 在 10 个任务中的 6 个排名第一；$\pi_0$ 在 T1/T2 两个 single-arm 任务最强，DreamZero 在 T3/T6 有竞争力。&lt;/p&gt;
&lt;p&gt;任务层面，T2 的 $\pi_0$ Overall Score 为 86.50，T6 的 DreamZero 为 72.50；T3（stamping）和 T9（long-horizon rearrangement）三种模型 FSR 均为 0%，说明“多阶段状态估计 + 最终精确放置”仍是瓶颈。&lt;/p&gt;
&lt;p&gt;总体条件均值从 Seen/Seen 的 59.62 降到 Factor-A shift 的 53.45、Factor-B shift 的 45.33，再到 combined shift 的 40.19。&lt;strong&gt;【Analysis】&lt;/strong&gt; 几何/动态分布变化造成的损失大于对象外观变化，表明策略仍依赖 demonstration-aligned motion prior。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/haoxixi1/UMI-Bench/main/assets/images/taskwise-radar.jpg&quot; alt=&quot;三种 baseline 的 task-wise Progress Score 与泛化差距（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;UMI-Bench 论文没有像策略论文那样消融网络模块，而是通过条件切分、task heatmap 和 subgoal rubric 做“协议级消融”：把同一 checkpoint 的对象变化、布局变化和组合变化分开，观察分数到底在哪个因素上坍塌。&lt;/p&gt;
&lt;p&gt;以 T5 Bimanual Material Pouring 为例，论文同时记录抓篮、保持在目标上方、抓量杯、倾倒、返回量杯和返回篮子等子目标，并统计 first-failure distribution。&lt;strong&gt;【Paper】&lt;/strong&gt; 这类诊断解释了“FSR 很低”是因为早期抓取失败，还是因为最后的返回/稳定性失败。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/haoxixi1/UMI-Bench/main/assets/images/folding-heatmap.jpg&quot; alt=&quot;任务 rollout heatmap 示例（论文 Appendix Figure）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;Factor A 的变化包含颜色、材质、尺寸、纹理、类别组合；Factor B 的变化包含位置、姿态、目标区域、物体密度、转盘速度等。T7 特别把 Factor B 定义为动态速度（8/15/30 deg/s），而不是简单的位置移动；T8 的 Factor A 是 mahjong category combination。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这种 task-defined factor 设计比统一的“随机扰动强度”更贴近真实失败原因，但也意味着不同任务的 Factor A/B 不能直接当作同一个物理量比较。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; UMI-Bench 的有效性来自三个闭环：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;分布闭环&lt;/strong&gt;：采集端与评测端共享 wrist-view、action schema 和场景元数据。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;执行闭环&lt;/strong&gt;：reset、chunk 执行、状态记录和终止规则被固定，减少“同一个模型换机器就变分数”。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;诊断闭环&lt;/strong&gt;：FSR 告诉我们是否完成，Progress Score 和 first-failure 告诉我们在哪一步失败，Factor A/B 告诉我们是哪类分布偏移。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 创新点不是新的视觉编码器或 policy head，而是把 benchmark unit 从“一个任务视频”提升为“数据、场景、执行和评分的可审计 episode”。对于 UMI-style policy，这种接口级统一本身就是实验变量控制。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;与 simulation benchmark 相比：UMI-Bench 把摩擦、接触、相机与控制时序留在真实世界。&lt;/li&gt;
&lt;li&gt;与 remote-robot benchmark 相比：它强调 local-first 的固定工作站和可重复 reset。&lt;/li&gt;
&lt;li&gt;与 dataset release 相比：它规定 checkpoint 如何进入 episode、如何记录 rollout、如何从最终状态评分。&lt;/li&gt;
&lt;li&gt;与 policy method 相比：它不主张某个模型更优，而是提供公平比较和失败归因的共同坐标系。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 设计隐含了几项假设：固定桌面工作站足以代表第一版 UMI-style tabletop deployment；wrist-view 是策略主要输入；5 cm grid 由人操作员可靠读取但不要求策略视觉识别；最终稳定状态可以作为跨任务评分的共同依据。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这些假设让协议更可控，却限制了它对移动操作、大工作空间和高频闭环策略的外推能力。&lt;/p&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 第一版聚焦 tabletop manipulation，不覆盖 mobile manipulation 或大工作空间；约 20k demonstrations 的规模仍小于大型 robot dataset；真实评测仍受操作员 reset、calibration drift、光照和硬件 timing 影响。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;每任务 50 条 rollout 对 FSR 的置信区间较宽，尤其在 0%--20% 区间，模型排序可能受偶然事件影响。&lt;/li&gt;
&lt;li&gt;Progress rubric 依赖人工判断，跨实验室的评分一致性和 inter-rater reliability 仍需要量化。&lt;/li&gt;
&lt;li&gt;Factor A/B 是任务相关定义，跨任务平均泛化差距时必须保留语义，不能简单解释为统一难度。&lt;/li&gt;
&lt;li&gt;项目页源码公开了展示层，但训练与评测 runner 尚未形成一个可直接运行的官方代码包，复现成本仍高于“下载后运行”。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;UMI-Bench 给策略研究的启发是：下一代论文不应只报告一个 aggregate success rate，而应同时发布 scene JSON、reset image、action-space contract、rollout manifest 和失败子目标。这样才能回答“模型真的学会了任务，还是只记住了对象外观/位置”。&lt;/p&gt;
&lt;p&gt;对 benchmark 设计者而言，值得继续推进三件事：扩大跨机器人 embodiment 的同协议评测；公开 runner 与自动化评分以降低人工成本；将时间、重试、碰撞和安全停止纳入可选但标准化的诊断指标。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 如果把 UMI-Bench 看成一条 measurement pipeline，那么它最有价值的产物不是某个模型的 55.84 分，而是让“数据分布 → 物理执行 → 失败因素”之间的因果链开始可追踪。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/120188807_p0_master1200.1lcf3tjzx5.webp"/><enclosure url="https://pic.hana0721.top/120188807_p0_master1200.1lcf3tjzx5.webp"/></item><item><title>Universal Manipulation Interface 论文精读：让机器人从野外人类示教中学习</title><link>https://agusexp25.top/blog/paper-deep-dive-umi</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-umi</guid><description>精读 UMI：用手持夹爪、鱼眼相机、隐式双目、视觉惯性 SLAM、延迟匹配与相对轨迹，把任意环境中的人类操作示教迁移到多种机器人。</description><pubDate>Thu, 27 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; UMI（Universal Manipulation Interface）要解决的是一个很实际的矛盾：裸手视频足够便携却没有精确动作，传统 teleoperation 有动作却必须把机器人带到每个环境。作者把 GoPro、3D 打印平行夹爪和软指套在手上，直接在家庭、咖啡馆等环境采集“带动作的第一视角数据”，再把同样的摄像头和夹爪装到机器人上执行。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-umi/UMI_hardware_v2.szos3czxc.webp&quot; alt=&quot;UMI 硬件与示教接口（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; UMI 的核心不是某个更大的 Policy，而是一层硬件与时序抽象：让训练时的人手数据和推理时的机器人数据在 observation、action 和 latency 三个维度尽量“长得一样”。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;设计低成本、可携带的手持 3D 打印夹爪：155° 鱼眼镜头扩大上下文，侧镜提供隐式双目，GoPro IMU 与 ORB-SLAM3 恢复带尺度的 6DoF 轨迹。&lt;/li&gt;
&lt;li&gt;用连续夹爪宽度、相对 EE（end-effector）轨迹和相对双臂位姿表达动作，减少精确全局标定与二值开合的限制。&lt;/li&gt;
&lt;li&gt;在推理时显式匹配相机、机器人和夹爪的观测/执行延迟，避免动态任务中的时序错位。&lt;/li&gt;
&lt;li&gt;将接口与 Diffusion Policy 解耦；同一数据可部署到不同机器人 embodiment，并在野外数据上展示 zero-shot 泛化。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Teleoperation（ALOHA、SpaceMouse、VR 等）通常具有较小的 embodiment gap，但采集成本高、场景受限；被动人类视频覆盖广，却缺少可监督的动作并存在人-机器人形态差异。早期手持夹爪工作提高了可携带性，但受限于单目 SfM 的尺度歧义、窄视野和低精度动作，主要停留在 quasi-static pick-and-place。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; UMI 的切入点是把“数据采集接口”和“策略网络”分开优化：先让采集设备提供足够可靠的动作与视觉，再让任意序列 Policy（本文使用 Diffusion Policy，ACT 也可作为替换）学习这些动作。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 给定手持夹爪在任意环境中的示教序列，学习一个策略，将同步的 RGB、相对 EE 位姿、夹爪宽度和历史 proprioception 映射到未来动作序列。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Observation&lt;/strong&gt;：腕部 GoPro 鱼眼图像；相对 EE pose；连续 gripper width；双臂时加入 inter-gripper pose。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Action&lt;/strong&gt;：相对于当前 EE 的一段 SE(3) 轨迹与连续夹爪宽度，而不是机器人 base 坐标系中的绝对位姿。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Embodiment&lt;/strong&gt;：单臂或双臂，论文展示 UR5 与 Franka FR2 等平台。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Data&lt;/strong&gt;：单个任务即可在野外多环境采集；cup arrangement 的扩展数据为 3 人、30 个地点、1400 条示教。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-umi/UMI-method.lwgwnquct.webp&quot; alt=&quot;UMI Policy Interface：同步观测、相对动作与延迟补偿（论文 Figure 5）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 数据流为：GoPro 视频与 IMU → 视觉惯性 SLAM、镜像处理和夹爪跟踪 → 与机器人流对齐的相对观测 → Diffusion Policy → 带时间戳的相对 EE/夹爪动作。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;手持示教接口&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 780 g 的 3D 打印平行夹爪成本约 73 美元，GoPro 与配件约 298 美元。软指提供被动顺应性，扳机启动录制；连续 fiducial-marker 跟踪夹爪宽度。双臂只需再增加一个相同单元。&lt;/p&gt;
&lt;h4&gt;鱼眼与侧镜&lt;/h4&gt;
&lt;p&gt;155° 原始鱼眼图像保留中心分辨率并扩大场景上下文；直接矫正为针孔图像会把外围拉伸、中心压缩。侧镜在同一帧内生成两个虚拟相机，裁剪后做数字反射并交换左右镜像，令物体朝向在三个视图中一致。&lt;/p&gt;
&lt;h4&gt;视觉惯性 SLAM&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 基于 ORB-SLAM3 联合优化视觉和 GoPro 加速度计/陀螺仪约束，在运动模糊或低纹理时短暂维持跟踪并恢复真实尺度；map-then-localize 使不同示教共享场景坐标，从而计算双臂相对位姿。&lt;/p&gt;
&lt;h4&gt;策略接口&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 策略输入是同步观测序列，输出未来相对 EE 轨迹与夹爪宽度序列。相对轨迹每个时间步都相对于同一个当前 pose，避免 delta action 的误差累积，也不依赖难以获得的全局坐标。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;p&gt;相对动作可写成：&lt;/p&gt;
&lt;p&gt;$$a_{t:t+H}={(T_{t\rightarrow t+i}, g_{t+i})}_{i=1}^{H}$$&lt;/p&gt;
&lt;p&gt;其中 $T_{t\rightarrow t+i}\in SE(3)$ 是相对于当前 EE 的目标位姿，$g$ 是连续夹爪宽度，$H$ 是 action horizon。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 与 delta 表达不同，$T_{t\rightarrow t+i}$ 不把前一步预测误差写入下一步参考系；与 absolute 表达不同，它不要求 SLAM 坐标和机器人 base 做高精度全局标定。&lt;/p&gt;
&lt;p&gt;延迟补偿可表示为：&lt;/p&gt;
&lt;p&gt;$$t_{execute}=t_{obs}+\Delta_{obs}+\Delta_{infer}+\Delta_{act}$$&lt;/p&gt;
&lt;p&gt;推理时丢弃时间戳早于 $t_{execute}$ 的动作，仅调度未来动作。观测侧则以最高延迟（通常是相机）为基准，对夹爪和 proprioception 流做线性插值。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; UMI 不绑定特定 Policy；实验统一使用 Diffusion Policy，视觉骨干按任务采用 ResNet 或 CLIP ViT。数据先经过 SLAM 与机器人运动学可行性过滤，再组成同步序列训练。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; README 的可复现实例是 &lt;code&gt;07_generate_replay_buffer.py&lt;/code&gt; 生成 Zarr 数据，随后运行 &lt;code&gt;train.py --config-name=train_diffusion_unet_timm_umi_workspace&lt;/code&gt;；单卡测试目标为 RTX 3090 24 GB。训练配置、数据读取和真实机器人 replay 分别位于 &lt;code&gt;configs/&lt;/code&gt;、&lt;code&gt;umi/&lt;/code&gt; 与 &lt;code&gt;scripts_real/&lt;/code&gt;。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;scripts_real/replay_real_robot.py&lt;/code&gt; 通过 &lt;code&gt;predict_action&lt;/code&gt; 得到 pose 与 gripper 序列，将动作转换为机器人控制器和夹爪的带时间戳 waypoint；执行循环会考虑帧延迟、命令延迟并丢弃过期动作。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方仓库同时提供数据采集、SLAM pipeline（&lt;code&gt;00_process_videos.py&lt;/code&gt; 至 &lt;code&gt;07_generate_replay_buffer.py&lt;/code&gt;）、Diffusion Policy 训练入口 &lt;code&gt;train.py&lt;/code&gt;、相机/夹爪/机器人 latency calibration 脚本以及 UR5、Franka 的 replay/evaluation 脚本。论文将接口描述为硬件无关，而代码通过具体 controller wrapper 和 &lt;code&gt;eval_robots_config.yaml&lt;/code&gt; 将相对动作落到每种机器人。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-umi/UMI-Task.2yz3dv4lnp.webp&quot; alt=&quot;UMI 评测任务：杯子、动态投掷、双臂折衣与洗碗（论文 Figure 7）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 四类任务覆盖 prehensile/non-prehensile、动态、双臂、可变形物体和超长时序；每个任务在随机初始状态评估，并单独做镜头、动作空间、延迟和双臂 proprioception 消融。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-umi/UMI-eval.8l0trq5x3r.webp&quot; alt=&quot;UMI 窄域与野外实验结果（论文 Figure 8/9）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 主要结果如下：&lt;/p&gt;
&lt;p&gt;| 任务 | 示教 | 成功率 |
| --- | ---: | ---: |
| Cup arrangement（UR5） | 305 | 20/20 = 100% |
| Cup arrangement（Franka FR2） | 同一 checkpoint | 18/20 = 90% |
| Dynamic tossing | 280 | 105/120 = 87.5% |
| Bimanual cloth folding | 250 | 14/20 = 70% |
| Dish washing | 258 | 14/20 = 70% |&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 杯子任务中，去掉鱼眼降至 55%（11/20）；delta action 为 80%，absolute action 仅 25%；镜像未经数字反射为 85%，反射并交换左右后达到 100%。投掷任务关闭延迟匹配后由 87.5% 降至 57.5%；去掉双臂相对位姿后折衣由 70% 降至 30%；洗碗中不用 CLIP ViT、从零训练 ResNet-34 为 0/10。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-umi/UMI-Action_repr.4920k6mkyf.webp&quot; alt=&quot;相对轨迹动作表示（论文 Figure 6）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 3 名示教者在 30 个地点收集 1400 条杯子示教；在咖啡馆金属桌和流水喷泉两个未见环境、未见杯子上，总成功率 43/60 = 71.7%，测试杯成功率 15/20 = 75%。只用实验室窄域数据的对照在新环境中为 0%，说明多样化 in-the-wild data 而不仅是预训练视觉骨干决定了泛化。&lt;/p&gt;
&lt;p&gt;数据效率与跟踪精度也很关键：UMI 在杯子任务上的采集速度超过 SpaceMouse teleoperation 的 3 倍；投掷任务中 SpaceMouse 在 15 分钟内没有产生成功示教。SLAM 平均 ATE 为 6.1 mm / 3.5°，双臂相对位姿 RPE 为 10.1 mm / 0.8°。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; UMI 同时压低了三个分布差异：腕部摄像头让视觉输入近似一致；相对轨迹消除全局坐标偏差；时间戳补偿让“看到”和“执行”处于同一时刻。这样 Diffusion Policy 面对的是更接近 i.i.d. 的监督信号，而不是用网络容量硬记住系统误差。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 创新在系统协同而非单点算法：鱼眼 + 侧镜补上下文/深度，VIO 补尺度/高速鲁棒性，连续夹爪补动作细节，相对表示补 embodiment，latency matching 补实时部署。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; ALOHA 等 leader-follower 把机器人带到示教者身边；UMI 把“机器人末端的观测与动作接口”带到示教者手上。被动视频方法从视觉中猜动作，UMI 直接记录可执行的 6DoF 轨迹，因此能覆盖投掷、双臂折衣和洗碗等任务。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 方法假设目标机器人能到达过滤后的示教轨迹，且能安装相似位置的腕部相机/夹爪；相对表示只在物体位于可达范围内提供 base 移动不变性；镜像、SLAM 和 latency 标定仍需要可靠工程流程。&lt;/p&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文指出直接镜像会混淆视觉编码器，必须数字反射；绝对动作受标定误差影响明显；SLAM 在极端低纹理/强运动模糊时仍可能失败；野外杯子模型在直射阳光下表现较差。动态任务还会受到目标机器人关节速度和可达性的限制。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; UMI 把相机和夹爪设计成“近似同构”，这提高迁移性，却也限制了传感器视角与末端形态；跨机器人仍需为每个 embodiment 做运动学过滤、控制器和 latency 标定。1400 条示教的采集与 SLAM 后处理成本也意味着，规模化前仍需更自动的数据质量检测。&lt;/p&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; UMI 给 VLA/机器人基础模型的启发是：大模型之前，先统一数据接口。相对轨迹可以成为跨 embodiment 的 action token，场景级 map 可提供双臂关系，而 latency metadata 则可作为策略条件输入。下一步值得研究的是把 UMI 的野外数据与语言任务描述结合，并让策略显式预测可达性、失败恢复和执行时间，而不只预测几何 waypoint。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/124956717_p0_master1200.83amt2xvmx.webp"/><enclosure url="https://pic.hana0721.top/124956717_p0_master1200.83amt2xvmx.webp"/></item><item><title>TouchAnything 论文精读：从第一视角视频估计双手触觉</title><link>https://agusexp25.top/blog/paper-deep-dive-touchanything</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-touchanything</guid><description>精读 TouchAnything：EgoTouch 用多视角视频、双手姿态和压力手套构建触觉监督，TouchAnything 以 cross-view attention 与 view dropout 预测双手压力图。</description><pubDate>Thu, 27 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 《TouchAnything》同时贡献了数据集 EgoTouch、vision-to-touch 基准和一个可处理缺失视角的基线模型。EgoTouch 包含 208 个操作任务、1,891 个 episode、约 20 小时（约 210 万帧）视频，覆盖 1,000 多个物体和室内外场景。每个同步时间点包含头戴第一视角、左右腕部相机、42 个双手 3D 关节，以及两只手的连续压力图。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://arxiv.org/html/2605.13083v1/teaser.png&quot; alt=&quot;EgoTouch 数据集总览（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://arxiv.org/html/2605.13083v1/figures/data_statistic_3.png&quot; alt=&quot;EgoTouch 任务分布与数据统计（论文 Figure 4）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 论文的关键判断是：第一视角视频缺失的不是更多模型容量，而是被手掌或物体遮挡的接触证据；腕部相机提供了几何上互补的观察，因而可以把“看不见的触觉”变成可学习的视觉监督。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;EgoTouch 数据集&lt;/strong&gt;：首个同时提供多视角视频、双手姿态与真实稠密压力的 in-the-wild 双手交互数据集。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;多视角基准&lt;/strong&gt;：按 seen/unseen object 和 ego、单腕、双腕配置评估 tactile prediction 与 contact detection。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;TouchAnything 模型&lt;/strong&gt;：共享 DINOv2、view embedding、cross-view attention、pose-aware fusion 与 joint-level tactile decoder。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;View dropout&lt;/strong&gt;：训练时随机丢弃腕部视角，使同一模型可以在只有 ego、一个腕部或三视角都可用时推理。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Ego4D、EPIC-KITCHENS 等第一视角数据很容易规模化，但通常只有 RGB，缺少接触力、压力分布和抓取稳定性等物理信号。EgoPressure 提供了压力监督，却主要是单手、受控的手-表面交互；OpenTouch 支持野外采集，但仍是单手单视角。GRAB、ARCTIC、OakInk 等数据集拥有双手或物体交互标注，但接触通常由解析模型或 MoCap 推断，不是真实压力。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 对 vision-to-touch 来说，手掌与物体的接触面恰好是第一视角最容易遮挡的区域。EgoTouch 的设计不是简单增加相机数量，而是把相机安装在手腕附近，让新增视角直接观察接触界面，同时保留头戴相机的全局上下文。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;给定长度为 $T$ 的同步片段和可用视角集合 $\mathcal V\subseteq{V^{ego},V^{wL},V^{wR}}$，模型接收：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Observation&lt;/strong&gt;：三路 $640\times480$ RGB（训练时缩放到 $224\times224$）和双手 42 个 3D 关节；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Target&lt;/strong&gt;：每帧两张 canonical hand-shaped $21\times21$ 压力图，记为 $\mathbf M\in\mathbb R^{T\times2\times21\times21}$；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;时间采样&lt;/strong&gt;：默认 $T=8$，帧间隔为 2；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出范围&lt;/strong&gt;：压力归一化到 $[0,1]$，左、右手分别输出一个通道。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;形式化地，目标是学习：&lt;/p&gt;
&lt;p&gt;$$
\hat{\mathbf M}&lt;em&gt;{1:T}=f&lt;/em&gt;\theta\left({V_v}&lt;em&gt;{v\in\mathcal V},\mathbf P&lt;/em&gt;{1:T}\right),\qquad
\mathbf P\in\mathbb R^{T\times42\times3}.
$$&lt;/p&gt;
&lt;p&gt;其中 $\mathbf P$ 是 WiLoR/Rokoko 来源的双手关节，$f_\theta$ 需要同时利用外观、时序、视角和手部几何。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://arxiv.org/html/2605.13083v1/model_architecture.png&quot; alt=&quot;TouchAnything 多视角触觉预测架构（论文 Figure 5）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 每个视角经共享 DINOv2 提取 patch token，加入相机类型 embedding 后，在 view-level summary 上做 cross-view attention，再用 gate 加权得到统一视觉特征；时间 Transformer 建模片段动态，手部 pose encoder 与视觉 token 做 joint-to-visual cross-attention，最后由 joint-level decoder 生成左右手压力图。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;共享视觉编码与视角身份&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：每个视角的 $T$ 帧 RGB。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;编码器&lt;/strong&gt;：冻结的 DINOv2 ViT-B/14，输出每帧 $N=256$ 个 patch token、维度 $D=768$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;View embedding&lt;/strong&gt;：为 &lt;code&gt;ego&lt;/code&gt;、&lt;code&gt;wrist_left&lt;/code&gt;、&lt;code&gt;wrist_right&lt;/code&gt; 各学习一个 $D$ 维向量并加到 token 上。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;作用&lt;/strong&gt;：共享 backbone 保持参数效率，view embedding 让模型知道 token 来自头部还是哪只手腕。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;src/models/vision_encoder.py&lt;/code&gt; 调用 &lt;code&gt;forward_features&lt;/code&gt; 并取 &lt;code&gt;x_norm_patchtokens&lt;/code&gt;；&lt;code&gt;configs/touchanything_with_glove_aug_wilor.yaml&lt;/code&gt; 将 &lt;code&gt;freeze&lt;/code&gt; 设为 &lt;code&gt;true&lt;/code&gt;，因此 DINOv2 不参与反向传播。&lt;/p&gt;
&lt;h4&gt;Cross-view attention 与 gated fusion&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 每路 patch 先做平均池化得到 view summary。两个 Transformer layer 在 summary 之间交换信息，然后 &lt;code&gt;view_gate&lt;/code&gt; 输出每个视角的标量权重，softmax 后对原始 patch 特征加权求和。这样腕部视角可以补足 ego 被遮挡的接触区域，质量较差的视角也不会被固定等权使用。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;MultiViewEncoder&lt;/code&gt; 的 &lt;code&gt;_apply_view_dropout&lt;/code&gt; 始终保留 ego，并以配置概率独立丢弃腕部视角；只有一个活动视角时直接跳过 cross-view Transformer。&lt;/p&gt;
&lt;h4&gt;时序建模&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;TemporalTransformer&lt;/code&gt; 对每个空间 patch 沿时间做 attention，再对每个时间点的 patch 做 spatial attention，最后经过 MLP 和 LayerNorm。这个 divided space-time 结构让模型同时捕捉接触发生/解除的时间变化与局部空间关系。&lt;/p&gt;
&lt;h4&gt;Pose encoder 与 pose-aware fusion&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：$(T,42,3)$ 双手关节。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Pose encoder&lt;/strong&gt;：每个 3D 关节先由 $3\rightarrow384\rightarrow768$ 的 MLP 投影，加可学习 joint position embedding，再由 2 层 Transformer 建模关节间关系。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Fusion&lt;/strong&gt;：每个 joint feature 作为 query，访问时间建模后的视觉 patch；每层包含 joint-to-visual cross-attention、joint self-attention 和 FFN。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要&lt;/strong&gt;：压力图位于手部坐标系，joint-level token 比一个全局 pose 向量更容易把视觉证据绑定到具体手指/掌部。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;pose_encoder.output_mode=&apos;per_joint&apos;&lt;/code&gt;，&lt;code&gt;fusion.type=&apos;cross_attention&apos;&lt;/code&gt;，对应 &lt;code&gt;(B,T,42,768)&lt;/code&gt; 的 joint features。&lt;/p&gt;
&lt;h4&gt;Joint-level tactile decoder&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;JointLevelTactileDecoder&lt;/code&gt; 将 42 个 joint feature 投影到 128 通道，按左右手拆分；每个关节通过可学习 soft weights scatter 到 $8\times8$ 网格，再经过卷积 refinement、反卷积和双线性插值生成 $21\times21$ 压力图。左右手分别通过同一结构输出一个 sigmoid 通道。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;多视角融合&lt;/h4&gt;
&lt;p&gt;设第 $v$ 个视角的 patch 特征为 $F_v\in\mathbb R^{N\times D}$，summary 为 $s_v=\frac1N\sum_iF_{v,i}$。Cross-view Transformer 得到 $\tilde s_v$，gate 计算：&lt;/p&gt;
&lt;p&gt;$$
\alpha_v=\operatorname{softmax}&lt;em&gt;v(g(\tilde s_v)),\qquad
F=\sum&lt;/em&gt;{v\in\mathcal V}\alpha_vF_v.
$$&lt;/p&gt;
&lt;p&gt;$g$ 是两层 MLP，$\alpha_v$ 是动态视角权重。它表达的不是“腕部永远更重要”，而是“当前片段中哪个视角更可靠”。&lt;/p&gt;
&lt;h4&gt;Contact-aware 重建损失&lt;/h4&gt;
&lt;p&gt;$$
\mathcal L=\lambda_{mse}\mathcal L_{MSE}+\lambda_{l1}\mathcal L_{L1}+\lambda_{tv}\mathcal L_{TV}.
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 默认 $\lambda_{mse}=1.0$、$\lambda_{l1}=0.5$、$\lambda_{tv}=0.01$。当真实压力 $M_{i,j}&gt;0.1$ 时，像素权重设为 3.0，否则为 1.0：&lt;/p&gt;
&lt;p&gt;$$
w_{i,j}=1+2,\mathbf1[M_{i,j}&gt;0.1].
$$&lt;/p&gt;
&lt;p&gt;加权 MSE/L1 防止稀疏压力图导致模型学成全零输出；TV 项为相邻网格施加空间平滑约束。&lt;/p&gt;
&lt;h4&gt;Volumetric IoU&lt;/h4&gt;
&lt;p&gt;$$
\operatorname{IoU}&lt;em&gt;{vol}=\frac{\sum&lt;/em&gt;{i,j}\min(M_{i,j},\hat M_{i,j})}{\sum_{i,j}\max(M_{i,j},\hat M_{i,j})}.
$$&lt;/p&gt;
&lt;p&gt;它同时考察接触位置和压力大小；Contact IoU 则先把压力阈值化，只衡量接触区域重叠。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 数据按 episode 划分为 80%/10%/10%，避免相邻帧泄漏；训练样本是三路同步视频片段、42 个关节和两张压力图。使用 AdamW（$5\times10^{-5}$、weight decay 0.05），cosine schedule，10 个 warmup epoch。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 配置脚本使用 6 GPU、每卡 batch size 16、梯度累积 3（有效 batch size 288），默认训练配置为 100 epochs；论文实验描述为 25 epochs。该差异应以具体 checkpoint 的启动参数为准，不能把两者混写成同一个实验设置。代码还以 0.2 概率做 glove appearance augmentation，以减轻手套颜色偏差。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;推理时不需要额外的 tactile 输入。调用者通过 &lt;code&gt;views&lt;/code&gt; 字典提供任意视角子集，ego-only、ego+wrist_left 和全视角走同一网络；模型输出 &lt;code&gt;(B,T,2,21,21)&lt;/code&gt; 压力图，再按阈值计算接触指标或渲染热力图。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方仓库的主要对应关系如下：&lt;/p&gt;
&lt;p&gt;| 论文概念 | 官方实现 |
| --- | --- |
| 共享 DINOv2 | &lt;code&gt;src/models/vision_encoder.py&lt;/code&gt; |
| 多视角、view dropout、cross-view gate | &lt;code&gt;src/models/multi_view_encoder.py&lt;/code&gt; |
| 时空 Transformer | &lt;code&gt;src/models/temporal_transformer.py&lt;/code&gt; |
| 42 关节 pose Transformer | &lt;code&gt;src/models/pose_encoder.py&lt;/code&gt; |
| joint-to-visual fusion | &lt;code&gt;src/models/fusion.py&lt;/code&gt; 的 &lt;code&gt;CrossAttentionFusion&lt;/code&gt; |
| 压力图 decoder | &lt;code&gt;src/models/pose_decoder.py&lt;/code&gt; 的 &lt;code&gt;JointLevelTactileDecoder&lt;/code&gt; |
| 加权重建与 TV | &lt;code&gt;src/losses/tactile_loss.py&lt;/code&gt; |
| HDF5 数据读取 | &lt;code&gt;src/data/touchanything_dataset.py&lt;/code&gt; |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 论文主文的结构图是概念层面的描述，代码则明确了实现细节：patch token 数为 256、cross-view 层数为 2、temporal 层数为 3、decoder 中间网格为 $8\times8$。这些细节决定了模型的空间归纳偏置，但不是论文声称的额外算法贡献。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://arxiv.org/html/2605.13083v1/data_collection.png&quot; alt=&quot;EgoTouch 数据采集硬件与同步模态（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; EgoTouch 使用头戴 RGB、双腕鱼眼相机、Rokoko Smartglove、16×16 压力手套和 HTC Vive Tracker，所有流在 30 Hz 时间线上对齐。五类环境为 Home、Workbench、Office、Retail 和 Outdoor。测试集同时报告 seen-object 与 unseen-object，后者检验新物体实例上的迁移。&lt;/p&gt;
&lt;p&gt;主要指标：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Temporal Accuracy&lt;/strong&gt;：接触出现/消失的帧级一致性；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Contact IoU&lt;/strong&gt;：压力阈值化后的时空接触区域重叠；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Volumetric IoU&lt;/strong&gt;：把压力大小也纳入 IoU；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MAE&lt;/strong&gt;：归一化压力的像素平均绝对误差。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://arxiv.org/html/2605.13083v1/ego_multi_predictions.png&quot; alt=&quot;腕部视角恢复被遮挡接触（论文 Figure 7）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Overall 结果如下（seen / unseen object）：&lt;/p&gt;
&lt;p&gt;| 视角 | C.IoU | V.IoU | MAE |
| --- | ---: | ---: | ---: |
| Ego-only | 0.4792 / 0.4396 | 0.4311 / 0.3743 | 0.0456 / 0.0615 |
| Ego + wL | 0.5030 / 0.4499 | 0.4575 / 0.3856 | 0.0437 / 0.0601 |
| Ego + wR | 0.5024 / 0.4497 | 0.4572 / 0.3854 | 0.0437 / 0.0602 |
| Ego + wL + wR | &lt;strong&gt;0.5030 / 0.4496&lt;/strong&gt; | &lt;strong&gt;0.4575 / 0.3852&lt;/strong&gt; | &lt;strong&gt;0.0436 / 0.0601&lt;/strong&gt; |&lt;/p&gt;
&lt;p&gt;相对 ego-only，全视角在 seen object 上带来 Contact IoU &lt;strong&gt;+5.0%&lt;/strong&gt;、Volumetric IoU &lt;strong&gt;+6.1%&lt;/strong&gt;；unseen object 上分别为 &lt;strong&gt;+2.3%&lt;/strong&gt; 和 &lt;strong&gt;+2.9%&lt;/strong&gt;。Temporal Accuracy 的提升较小且并不总是单调，说明腕部视角主要改善“在哪里接触、压力多大”，而不是单纯提高接触/非接触分类。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 单个腕部相机已经获得大部分收益，意味着真正关键的是至少一个能看到接触界面的视角；第二个腕部视角在更强的双手遮挡下才提供额外信息。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; View dropout 消融显示，未使用 dropout 时，模型从全视角切换到 ego-only 的 Volumetric IoU 相对下降 &lt;strong&gt;27.20%&lt;/strong&gt;；使用 $p=0.3$ 后下降仅 &lt;strong&gt;5.78%&lt;/strong&gt;。同时，全视角性能几乎不受损。&lt;/p&gt;
&lt;p&gt;数据规模从 25%、50%、75% 增加到 100% 时，Contact IoU 和 Volumetric IoU 持续提高，没有明显饱和。&lt;strong&gt;【Analysis】&lt;/strong&gt; 这说明当前瓶颈仍是交互多样性和覆盖范围，而不是已经足够强的 decoder。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在 unseen object 上，多视角仍然有效，但增益比 seen object 小；Workbench 是最难的场景之一，Outdoor 的 Temporal Accuracy 也出现新增视角后的轻微下降。失败案例中，黑色手套与黑色短裤颜色接近，模型在尚未接触的第一帧幻觉出左手压力。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这个结果把泛化问题拆成两类：腕部相机解决几何遮挡，却不能消除材质/颜色造成的视觉混淆；view dropout 解决传感器缺失，却不能替代跨物体的物理建模。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;互补几何证据&lt;/strong&gt;：腕部视角看到掌面接触区，直接减少 ego-only 的不可观测区域。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;姿态提供坐标系&lt;/strong&gt;：42 个关节把压力预测从“图像像素”约束到左右手的结构位置。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;接触加权损失&lt;/strong&gt;：稀疏压力图中非接触像素占多数，3× contact weight 抑制全零捷径。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;可变视角训练&lt;/strong&gt;：随机缺失视角迫使模型学习可组合的表示，而不是记住固定三相机模板。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 最实质的创新是数据采集范式和问题设定：把第一视角、双腕视角、双手姿态与真实压力放在同一时间轴上，并把“缺失视角下的触觉估计”定义为基准。模型本身是一个清晰、可复现的 baseline，创新重点不在新的 backbone。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;| 路线 | 监督/视角 | 主要缺口 | TouchAnything 的补充 |
| --- | --- | --- | --- |
| Ego4D / EPIC-KITCHENS | 大规模 ego RGB | 无真实触觉 | 加入压力与双手姿态 |
| EgoPressure | 单手 ego + pressure | 场景与手数受限 | 双手、多环境、双腕视角 |
| OpenTouch | 野外单手 tactile | 缺少腕部互补视角 | 直接观察接触界面 |
| MoCap/解析接触数据 | 解析或估计接触 | 非真实压力 | 连续压力图监督 |&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;头戴 ego view 始终可用，只有 wrist view 会缺失；&lt;/li&gt;
&lt;li&gt;训练与部署使用相同的压力手套/网格定义；&lt;/li&gt;
&lt;li&gt;WiLoR 或 Rokoko 能提供足够稳定的 42 关节；&lt;/li&gt;
&lt;li&gt;21×21 canonical grid 能表达不同手型和接触区域的空间对应；&lt;/li&gt;
&lt;li&gt;视觉中存在可学习的外观线索来推断压力，极端遮挡或低对比度下仍可能不可辨识。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 当前数据全部来自触觉手套，可能带来手套外观偏差，限制裸手触觉估计。数据规模消融尚未饱和，模型仍然 data-hungry。当前 benchmark 主要评估 tactile estimation，尚未直接验证接触感知操控、抓取稳定性或机器人策略学习。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;传感器域差异&lt;/strong&gt;：16×16 原始阵列被重映射为 21×21 网格，插值和手型 canonicalization 可能抹平细小峰值。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;时序窗口有限&lt;/strong&gt;：默认 8 帧、间隔 2 只覆盖短时接触，难以表达长程任务阶段或先接近后施力的因果关系。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;压力与动作的闭环尚未建立&lt;/strong&gt;：模型预测触觉，但没有把预测结果反馈给机器人控制器；因此还不能证明 tactile prediction 会提升真实操作成功率。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;单一阈值假设&lt;/strong&gt;：$0.1$ contact threshold 对不同物体、手指和传感器噪声未必一致。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;相机质量与同步成本&lt;/strong&gt;：三路相机、追踪器和两类手套提升了监督质量，也提高了真实部署的佩戴、标定与同步成本。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;从触觉估计到触觉基础模型&lt;/strong&gt;：EgoTouch 的规模仍小于纯视觉数据，但它提供了“视觉—姿态—压力”三模态对齐，可用于预训练 contact-aware encoder，再迁移到机器人策略。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;用不确定性处理不可观测性&lt;/strong&gt;：遮挡下的压力并非总能由 RGB 唯一决定。未来可以输出 pressure distribution 或 confidence，而不是单张确定性 heatmap。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;视角选择可以主动化&lt;/strong&gt;：当前 gate 只是被动加权。机器人可根据预测不确定性主动调整腕部相机或手腕姿态，形成 active perception。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;从人手到机器人手&lt;/strong&gt;：canonical hand grid 为跨 embodiment 对齐提供了接口，但仍需要手部拓扑、接触面积和执行器力矩之间的 retargeting。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;最终指标应回到控制&lt;/strong&gt;：更高 IoU 不一定意味着更好的抓取。下一步应把预测压力用于 grasp stability、contact-rich planning 和 tactile-enhanced world model，并报告真实机器人成功率。&lt;/li&gt;
&lt;/ul&gt;</content:encoded><h:img src="https://pic.hana0721.top/66497987_p0_master1200.58hynbbxn8.webp"/><enclosure url="https://pic.hana0721.top/66497987_p0_master1200.58hynbbxn8.webp"/></item><item><title>SONIC 论文精读：自然人形机器人全身控制的规模化动作跟踪</title><link>https://agusexp25.top/blog/paper-deep-dive-sonic</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-sonic</guid><description>精读 SONIC：以大规模物理动作跟踪为 humanoid foundation task，用多编码器与 FSQ universal token 统一遥操作、规划和 VLA 全身控制。</description><pubDate>Thu, 27 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; SONIC（Supersizing mOtion tracking for Natural humanoId Control）提出一个反直觉但很实用的观点：humanoid 的可扩展基础任务不一定是为“走路”“起身”等行为分别设计 reward，而可以是逐帧监督的 physics-based motion tracking。作者在 Unitree G1 上训练 42M 参数策略，使用 100M+ 帧（约 611 小时、50 Hz）动作数据和 21k GPU 小时，展示从动作跟踪到交互规划、VR/视频遥操作以及 GR00T VLA 全身操作的一体化链路。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-sonic/fig1_teaser.2a5ttrr4h8.webp&quot; alt=&quot;SONIC 的多任务 teaser（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; SONIC 的真正产品形态不是一个“会模仿动作的策略”，而是一个把不同动作来源压到同一 64 维 token 接口的运动操作系统：上游可以是规划器、SMPL、VR 或 VLA，下游始终是同一个 G1 控制器。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;把 motion tracking 作为可 scaling 的 foundation task。&lt;/strong&gt; 数据从 4M 扩到 100M 帧、模型从 1.2M 扩到 42M 参数、训练从 2k 扩到 21k GPU 小时，test-content 和 test-repetition 的成功率都稳定上升。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Universal control policy。&lt;/strong&gt; 三个专用 encoder（robot、human、hybrid）映射到共享 latent，经 Finite Scalar Quantization（FSQ）得到 universal token，再由 robot control decoder 输出关节目标；robot motion decoder 提供重建辅助监督。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Generative kinematic motion planner。&lt;/strong&gt; 在同一动作数据上学习 latent motion in-betweening，按用户速度、方向、风格和技能 keyframe 实时生成 0.8–2.4 秒参考片段。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;统一下游接口。&lt;/strong&gt; 视频、文本、音乐经 GEM 生成的人体动作、VR 遥操作和 VLA 都可以通过同一 token 空间驱动 G1；VLA 在五类 loco-manipulation 任务上平均成功率为 75%。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 传统 humanoid 控制通常是小型 MLP + 手工 reward：每个新技能都要重新设计速度、姿态、接触和稳定性项。AMP、ASE、CALM 等 adversarial imitation 虽然共享一个 imitation objective，但当动作分布变得多样时，判别器的学习信号容易变弱并出现 mode collapse。&lt;/p&gt;
&lt;p&gt;SONIC 选择 motion tracking，是因为每一帧都有明确的参考姿态，监督密度不会随着行为类别增加而稀释。动作捕捉领域已经积累了步行、舞蹈、运动、战斗和物体交互数据，因此“扩大数据和计算”比为每种行为编写 reward 更直接。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这也解释了 SONIC 与单任务 locomotion specialist 的关系：SONIC 并没有牺牲稳定性来换多样性。论文中的 OpenHomie 对照显示，在 0–5 m/s 速度跟踪测试中，SONIC survival rate 为 98.5%，而专用控制器为 43.0%。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 目标是在 Unitree G1（29 个 actuated joints）上学习策略 &lt;code&gt;π(a_t | s_t)&lt;/code&gt;，跟踪来自机器人、人体或混合接口的未来动作命令。&lt;/p&gt;
&lt;p&gt;| 项目           | SONIC 定义                                                                                                                  |
| -------------- | --------------------------------------------------------------------------------------------------------------------------- |
| Observation    | 10-step proprioception history：关节位置/速度、root angular velocity、root-frame gravity、上一动作；全部在 local frame 表达 |
| Motion command | &lt;code&gt;g_r&lt;/code&gt; robot motion、&lt;code&gt;g_h&lt;/code&gt; SMPL human motion、&lt;code&gt;g_m&lt;/code&gt; hybrid（稀疏头手 keypoint + 机器人下肢）                                 |
| Action         | 目标关节位置，由每个关节的 PD controller 跟踪                                                                               |
| Robot          | Unitree G1，29 DoF；仿真 Isaac Lab / MuJoCo，真实部署 Jetson Orin                                                           |
| Dataset        | 约 700 小时原始 mocap；过滤不可执行片段后 611 小时、317,189 clips、100M+ frames                                             |
| Evaluation     | test-content（182 个训练未见子类）、test-repetition（已见子类的新 take）和外部 PHUMA                                        |&lt;/p&gt;
&lt;p&gt;成功判定不是全局轨迹误差，而是 root height 或 end-effector height 偏离参考超过 0.25 m 即失败；MPJPE-L 在 14 个 body links 上计算，强调局部姿态与物理稳定性。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-sonic/fig6_method_overview.13mil628fv.webp&quot; alt=&quot;SONIC universal control policy 总览（论文 Figure 6）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; robot、human、hybrid 三类 motion command 分别编码，经过 FSQ quantizer 得到共享 universal token；control decoder 结合 token 与 proprioception 输出关节目标，motion decoder 重建 robot motion。不同应用只切换上游 motion generator 或 encoder，不重新训练控制器。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;Proprioception 与 motion encoder&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入：&lt;/strong&gt; actor 可获得的 noisy proprioception 历史和一个 motion command。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Robot encoder &lt;code&gt;E_r&lt;/code&gt;：&lt;/strong&gt; 编码未来 &lt;code&gt;F_r&lt;/code&gt; 帧机器人关节位置/速度。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Human encoder &lt;code&gt;E_h&lt;/code&gt;：&lt;/strong&gt; 编码未来 &lt;code&gt;F_h&lt;/code&gt; 帧 3D human joints（SMPL）。它隐式学习 human-to-robot retargeting，而不是在运行时显式求逆运动学。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Hybrid encoder &lt;code&gt;E_m&lt;/code&gt;：&lt;/strong&gt; 当前帧的头/手稀疏 keypoint 加未来机器人下肢动作，适配三点 VR 遥操作。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;三个 encoder 都是 MLP，但输入 schema 不同；多帧 lookahead 为策略提供 anticipatory context。&lt;/p&gt;
&lt;h4&gt;FSQ universal token&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 编码后的 latent 通过 FSQ 离散化为两个 token，每个 token 32 维、每维 32 levels，展平后是 64 维 universal token。相比 VQ-VAE，FSQ 不需要可坍缩的 codebook，更适合 33 类、8,447 子类的高多样性动作分布。&lt;/p&gt;
&lt;h4&gt;Control decoder 与 motion decoder&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;D_c(z, s_p) → a_t&lt;/code&gt;：将 token 和 proprioception 解码成目标关节位置，供 PD 控制器执行。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;D_r(z) → ĝ_r&lt;/code&gt;：只依赖 token 重建 robot motion；对 human token 而言，这个分支就是训练期的隐式 retargeting 监督。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 仓库 &lt;code&gt;gear_sonic/trl/modules/universal_token_modules.py&lt;/code&gt; 的 &lt;code&gt;UniversalTokenModule&lt;/code&gt; 实现了 encoder → FSQ → decoder 流程，支持 &lt;code&gt;g1&lt;/code&gt;、&lt;code&gt;smpl&lt;/code&gt;、&lt;code&gt;teleop&lt;/code&gt; 命名 encoder、可选 latent residual，以及 29 DoF body / 14 DoF hand 的层级动作拆分。默认配置 &lt;code&gt;all_mlp_v1.yaml&lt;/code&gt; 将 &lt;code&gt;num_fsq_levels=32&lt;/code&gt;、&lt;code&gt;fsq_level_list=32&lt;/code&gt;、&lt;code&gt;max_num_tokens=2&lt;/code&gt; 写死为 64 维 token。&lt;/p&gt;
&lt;h4&gt;Kinematic motion planner&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; planner 把当前 pose 和目标 keyframe 之间的 in-betweening 变成 latent token 预测。输入被下采样 4 倍，网络用 masked-token prediction 迭代确定高置信度 token；关键帧可以来自速度/方向/风格命令，也可以来自 squatting、crawling、boxing 等技能片段。root 的 x、y 位移与 heading 由 critically damped spring 生成，避免瞬时反向或过大速度命令。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;Motion tracking MDP&lt;/h4&gt;
&lt;p&gt;$$
\mathcal{M}=\langle\mathcal{S},\mathcal{A},\mathcal{T},\mathcal{R},\gamma\rangle,\qquad
r_t=\mathcal{R}(s^p_t,s^g_t)+\mathcal{P}(s^p_t,a_t)
$$&lt;/p&gt;
&lt;p&gt;&lt;code&gt;s^p_t&lt;/code&gt; 是 proprioception，&lt;code&gt;s^g_t&lt;/code&gt; 是 motion command；&lt;code&gt;R&lt;/code&gt; 同时约束 root、body-link、末端位姿和速度误差，&lt;code&gt;P&lt;/code&gt; 惩罚不平滑或不稳定动作。策略输出目标关节位置，低层 PD 完成力矩级跟踪。&lt;/p&gt;
&lt;h4&gt;Universal token 的联合损失&lt;/h4&gt;
&lt;p&gt;$$
\mathcal{L}=\mathcal{L}&lt;em&gt;{\mathrm{PPO}}+\mathcal{L}&lt;/em&gt;{\mathrm{recon}}+\mathcal{L}&lt;em&gt;{\mathrm{token}}+\mathcal{L}&lt;/em&gt;{\mathrm{cycle}}
$$&lt;/p&gt;
&lt;p&gt;$$
\mathcal{L}&lt;em&gt;{\mathrm{recon}}=\sum&lt;/em&gt;{x\in{r,h,m}}\left|D_r(z_x)-g_r\right|_2^2
$$&lt;/p&gt;
&lt;p&gt;$$
\mathcal{L}_{\mathrm{token}}=|z_r-z_h|_2^2+|z_r-z_m|_2^2+|z_m-z_h|_2^2
$$&lt;/p&gt;
&lt;p&gt;$$
\mathcal{L}_{\mathrm{cycle}}=\left|E_r\big(D_r(z_h)\big)-z_r\right|_2^2
$$&lt;/p&gt;
&lt;p&gt;&lt;code&gt;z_r,z_h,z_m&lt;/code&gt; 分别是三类 encoder 的 token。&lt;code&gt;L_recon&lt;/code&gt; 让不同输入都能还原同一个 robot motion，&lt;code&gt;L_token&lt;/code&gt; 直接拉近跨模态 token，&lt;code&gt;L_cycle&lt;/code&gt; 约束 human→robot→robot encoder 的闭环一致性。FSQ 的梯度通过 straight-through estimator 传回 encoder；PPO 更新 encoder、quantizer、control decoder，辅助损失更新 encoder 和 motion decoder。&lt;/p&gt;
&lt;h4&gt;Critically damped root spring&lt;/h4&gt;
&lt;p&gt;$$
x(t)=x_T-\left[x_T-x_0+\left(v_0+\frac{c}{2}(x_T-x_0)\right)t\right]e^{-\frac{c}{2}t}
$$&lt;/p&gt;
&lt;p&gt;&lt;code&gt;x_0,v_0&lt;/code&gt; 是当前状态，&lt;code&gt;x_T&lt;/code&gt; 是目标 keyframe，&lt;code&gt;c&lt;/code&gt; 是阻尼系数。论文对 pelvis x、y 和 heading 使用不同 &lt;code&gt;c&lt;/code&gt;，将速度命令转换为约 1 秒后的平滑目标。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 训练在 Isaac Lab 中用 PPO，critic 可以看到 privileged simulator state，而 actor 只看到部署时可用的 noisy observation。每个 rollout 同时产生三类 command 的 token，并联合优化四项损失；domain randomization 覆盖物理参数、外部 push 和 motion command 扰动。数据采样采用按固定时长分 bin、按 capped failure rate 加权的 adaptive sampler。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;config/trainer/trl_ppo_aux.yaml&lt;/code&gt; 与 &lt;code&gt;UniversalTokenModule&lt;/code&gt; 的 auxiliary-loss 接口将 PPO 和 token/reconstruction/cycle loss 放到一个 trainer；&lt;code&gt;config/exp/manager/universal_token/all_modes/sonic_release.yaml&lt;/code&gt; 则组合 G1、teleop、SMPL 三种 encoder。代码仓库还提供 &lt;code&gt;train_agent_trl.py&lt;/code&gt;、checkpoint 配置和 Isaac Lab evaluation 脚本。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 运行时以 50 Hz 执行 policy、500 Hz 下发命令、100 Hz 接收操作者输入、10 Hz 运行 planner。planner 每 100 ms 或命令变化时重规划，生成 0.8–2.4 秒参考片段；control decoder 每次读取最新 proprioception 和 token。Jetson Orin 上 policy forward 为 1–2 ms，motion generation 约 12 ms。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; C++ TensorRT 部署位于 &lt;code&gt;gear_sonic_deploy&lt;/code&gt;，Python 启动器是 &lt;code&gt;gear_sonic/scripts/launch_inference.py&lt;/code&gt;。默认 checkpoint 需要 200 ms 左右的 10-frame lookahead；仓库还提供 80 ms、4-frame 的 low-latency teleoperation checkpoint。VLA 输出的 64 维 token 可与手部动作拼成 meta action，再由控制器解码。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;| 论文概念                  | 官方代码位置                                                                        | 对照结论                                                               |
| ------------------------- | ----------------------------------------------------------------------------------- | ---------------------------------------------------------------------- |
| 多 encoder + FSQ          | &lt;code&gt;gear_sonic/trl/modules/universal_token_modules.py&lt;/code&gt;                                 | &lt;code&gt;UniversalTokenModule&lt;/code&gt; 明确实现命名 encoder、FSQ 和多 decoder          |
| 32×32×2 token             | &lt;code&gt;config/actor_critic/universal_token/all_mlp_v1.yaml&lt;/code&gt;                               | 两个 token、每 token 32 维，展平为 64 维                               |
| PPO + auxiliary losses    | &lt;code&gt;trl/trainer/ppo_trainer_aux_loss.py&lt;/code&gt;、&lt;code&gt;trl/losses/token_losses.py&lt;/code&gt;                 | PPO 与 recon/token/cycle 辅助目标联合训练                              |
| observation/action schema | &lt;code&gt;config/manager_env/observations/&lt;/code&gt;、&lt;code&gt;config/manager_env/commands/terms/motion.yaml&lt;/code&gt; | 命令按 tokenizer observation 组装，action 可拆 body/hand               |
| 部署                      | &lt;code&gt;gear_sonic_deploy/&lt;/code&gt;、&lt;code&gt;gear_sonic/scripts/launch_inference.py&lt;/code&gt;                      | TensorRT/C++ 控制环与 Python VLA/相机接口分离                          |
| checkpoint                | README Model Card、&lt;code&gt;download_from_hf.py&lt;/code&gt;                                            | 默认、low-latency、SONIC v1.1 三种 G1 checkpoint；论文实验对应最大模型 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 当前仓库比论文更像一个持续演进的工程平台，包含 checkpoint 兼容、VLA launcher、数据采集和多 embodiment 配置；不能把 README 中后来发布的 v1.1 或 low-latency 结果倒推为论文实验结果。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-sonic/figS1_deployment_architecture.1zj00mbx2q.webp&quot; alt=&quot;SONIC 的 deployment 多速率架构（论文 Supplementary Figure S1）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 训练数据覆盖 33 个大类、8,447 个子类；test-content 的子类与训练完全不重叠，test-repetition 只更换表演者和 take。真实世界评估使用 124 条动作序列；VLA 任务按严格 binary success 统计，每任务 10–20 次试验。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-sonic/fig2_scaling_benchmark.5mojo57oy7.webp&quot; alt=&quot;SONIC 的 scaling、基线比较与 sim-to-real 结果（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;数据从 4M 扩到 100M 帧、模型从 1.2M 扩到 42M 参数、compute 从 2k 扩到 21k GPU 小时，success rate 沿三条轴均显著提高；42M 模型在 test-content 达到 99.6% success、23.8 mm MPJPE-L。&lt;/li&gt;
&lt;li&gt;与 BeyondMimic、Any2Track、GMT 比较时，SONIC 在 test-content / test-repetition / PHUMA 上分别达到 98.5% / 99.2% / 97.2% success；在 test-content 上 MPJPE-L 为 23.7 mm，比 BeyondMimic 的 40.9 mm 低约 42%。&lt;/li&gt;
&lt;li&gt;与 OpenHomie 速度 specialist 对比，SONIC survival rate 为 197/200（98.5%），OpenHomie 为 86/200（43.0%），并在约 4 m/s 前保持稳定。&lt;/li&gt;
&lt;li&gt;124 条动作的真实部署成功率为 123/124（99.2%），整体 MPJPE-L 为 25.7 mm；脚部 sim-to-real gap 最大（53.7 mm real vs. 29.0 mm sim）。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-sonic/figS7_latent_alignment.64elcq93e6.webp&quot; alt=&quot;多 encoder latent consistency 的消融（论文 Supplementary Figure S7）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;| 配置           | test-content SR | MPJPE-L |
| -------------- | --------------: | ------: |
| FSQ            |           99.3% | 26.6 mm |
| VQ-VAE         |           98.7% | 35.3 mm |
| FSQ-16-16      |           96.9% | 35.7 mm |
| FSQ-32-32      |           98.8% | 27.5 mm |
| Robot encoder  |           99.6% | 23.8 mm |
| Human encoder  |           99.6% | 24.4 mm |
| Hybrid encoder |           99.2% | 26.5 mm |&lt;/p&gt;
&lt;p&gt;FSQ 比 VQ-VAE 少 8.7 mm MPJPE-L；增加 token dimension 的收益大于单纯增加 quantization levels。移除 &lt;code&gt;L_token&lt;/code&gt; 与 &lt;code&gt;L_cycle&lt;/code&gt; 后跨 encoder divergence 增加约 8 倍，说明共享 token 不是自然出现的，需要显式一致性损失。&lt;/p&gt;
&lt;p&gt;VLA action-space ablation 更直接：universal token + hands 的平均成功率为 68%，显式 SMPL pose + hands 只有 27%；soda-can-to-trash-can 从 0% 提升到 60%。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 泛化有三层：未见子类（test-content）、已见类别的新表演（test-repetition）和不同 retargeting pipeline 的 PHUMA。三者都保持高成功率，说明策略学到的是局部人体运动与物理稳定性先验，而非记忆固定轨迹。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 不过 baseline 使用了不同数据集和 retargeting pipeline，因此跨方法数字同时混入了数据规模、数据质量和评测协议差异；论文也明确提醒这不是严格 data-matched benchmark。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 首先，逐帧目标姿态让每个时间步都有低方差监督，数据增加不会像 adversarial discriminator 那样把任务变成“区分整个动作分布”。其次，10-step proprioception history 与 future reference 让策略能提前准备接触和支撑脚。最后，FSQ token 把 VLA 的动作预测从连续高维 SMPL 姿态变成结构化 latent；小误差不会直接破坏整条运动学链。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;训练任务的 scaling 设计&lt;/strong&gt;：把 humanoid control 的扩展瓶颈从 reward engineering 转移到数据、模型和 GPU 计算。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Universal token interface&lt;/strong&gt;：一个离散瓶颈同时服务机器人、人体和 hybrid command，并为 VLA 提供稳定 action space。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tracking + planner 的分层组合&lt;/strong&gt;：planner 负责“想做什么”和连续过渡，tracker 负责物理执行；两者共享动作分布而不需要每个技能重训。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;全身 loco-manipulation&lt;/strong&gt;：token 覆盖脚和手，使 VLA 能在一个 action sequence 中同时抓取、行走、踩踏和投掷。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; SONIC 不是“更大的 locomotion policy”，也不是传统 retargeting + tracking 的简单串联。它把 retargeting 变成训练期的 latent alignment，把 planner 变成可替换的上游，把动作空间变成跨接口共享的 token；因此新增应用主要是接入新的 motion generator，而非修改控制器 reward。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;人类 mocap 经 GMR/PyRoki retarget 后仍保留足够多的可执行运动信息。&lt;/li&gt;
&lt;li&gt;未来若干帧 reference 和 10-step proprioception history 足以应对接触与平衡的短期不确定性。&lt;/li&gt;
&lt;li&gt;不同 encoder 的“同一动作”可以被配对，因而 &lt;code&gt;L_token&lt;/code&gt;/&lt;code&gt;L_cycle&lt;/code&gt; 有明确监督。&lt;/li&gt;
&lt;li&gt;64 维 FSQ token 的容量足够表达 33 类、8,447 子类动作，而不牺牲控制精度。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文没有对长时间运行的安全性和能耗给出形式化分析。极端外力或非常动态的动作仍可能导致失衡；domain randomization 和 spring filter 只能缓解而不能保证安全。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;100M 帧和 21k GPU 小时的训练成本仍然很高，数据清洗、retargeting 和多演员覆盖也是隐性工程门槛。&lt;/li&gt;
&lt;li&gt;成功率定义偏向“是否摔倒/是否偏离”，并不等价于接触力、能耗、舒适度或任务完成质量。&lt;/li&gt;
&lt;li&gt;real-world 足部误差明显高于上肢，说明脚端接触和地面模型仍是 sim-to-real 的主要薄弱点。&lt;/li&gt;
&lt;li&gt;VLA 实验训练轨迹数量从 200 到 3,900 不等，且每个任务只有 10–20 次测试；跨机器人、跨场景的统计稳定性尚未证明。&lt;/li&gt;
&lt;li&gt;共享 token 依赖动作配对和固定 embodiment decoder；换机器人形态时，是否能保留同一 token 语义仍需额外实验。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; SONIC 给出的研究路线是“先学会稳定地执行人类动作，再在其上学习意图和任务”。这比让 VLA 直接回归每个关节的连续姿态更模块化：高层模型只需预测 token，低层控制器负责物理可行性。&lt;/p&gt;
&lt;p&gt;对后续工作，我认为有三个值得验证的方向：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Token 的跨 embodiment 预训练。&lt;/strong&gt; 如果 token 真的是运动语义而不只是 G1-specific latent，可以冻结 token space，只替换 robot decoder。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;安全与能耗进入 universal objective。&lt;/strong&gt; 在保持逐帧 tracking supervision 的同时加入接触风险、温升和能耗约束，可能比事后 safety filter 更有效。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;从动作跟踪到闭环世界模型。&lt;/strong&gt; planner 目前主要在运动空间 in-between；若再加入视觉状态和物体 affordance，token 可以成为连接“身体如何动”和“任务需要什么”的中间语言。&lt;/li&gt;
&lt;/ol&gt;</content:encoded><h:img src="https://pic.hana0721.top/76117294_p0_master1200.2rvq8fo0ul.webp"/><enclosure url="https://pic.hana0721.top/76117294_p0_master1200.2rvq8fo0ul.webp"/></item><item><title>SIMPLER 论文精读：用仿真可靠评测真实机器人操作策略</title><link>https://agusexp25.top/blog/paper-deep-dive-simpler</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-simpler</guid><description>精读 SIMPLER：通过系统辨识、视觉匹配和变体聚合，把真实数据训练的机器人策略放进仿真，并用 MMRV 与 Pearson 评估其与真实表现的相关性。</description><pubDate>Thu, 27 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文提出 SIMPLER（Simulated Manipulation Policy Evaluation for Real Robot Setups），将“在真实世界训练的机器人操作策略”放入为 Google Robot 与 WidowX/BridgeData V2 定制的仿真环境中评测。作者不要求做完整 digital twin，而是优先修正最影响评测相关性的 control gap 与 visual gap，并通过配对 sim-real 实验证明：仿真成功率能够较好地反映真实策略的相对排名、分布偏移敏感性和新型纹理鲁棒性。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-simpler/fig2.8adzyiudiv.webp&quot; alt=&quot;SIMPLER 环境与真实评测的总体流程（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;提出一个面向真实机器人 setup 的可复用仿真评测套件，覆盖 RT 系列 Google Robot 与 BridgeData V2 的 WidowX 任务。&lt;/li&gt;
&lt;li&gt;用离线轨迹做 controller system identification，减少相同动作在 sim 与 real 中产生的末端轨迹差异。&lt;/li&gt;
&lt;li&gt;提出 Visual Matching：真实背景绿幕合成 + 物体/机器人前景纹理匹配；同时比较 Variant Aggregation 这一随机化替代方案。&lt;/li&gt;
&lt;li&gt;引入 Mean Maximum Rank Violation（MMRV），与 Pearson correlation 一起衡量“仿真是否能正确传递策略改进信号”。&lt;/li&gt;
&lt;li&gt;开源环境、策略推理、评测脚本和新环境构建流程，使其他研究者可以用 Gym API 批量评测自己的策略。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 论文真正改变的是评测目标：仿真不是用来证明“这一条 rollout 和真实 rollout 完全相同”，而是用来回答“策略 A 在现实中优于策略 B 时，仿真是否也会给出 A &gt; B”。这个相对排序目标让环境逼真度从“越高越好”变成“对决策信号是否有用”。&lt;/p&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 泛化操作策略覆盖的任务、物体和 embodiment 越来越多，但真实评测具有三个瓶颈：每次 rollout 需要占用实体机器人；不同实验室的相机、灯光和工作台难以复现；大规模 checkpoint 或数据增强消融的比较成本随任务数线性增长。现有 benchmark 往往固定硬件或只覆盖单一技能，难以服务 RT-1、RT-2-X、RT-1-X、Octo 这类 generalist policy。&lt;/p&gt;
&lt;p&gt;仿真 benchmark（如 SAPIEN、ManiSkill、Isaac Sim、RLBench）能提供廉价、可控、可并行的场景，但多数工作在仿真中训练并在仿真中测试，不能保证“真实数据训练的 policy”在其中保持相同的行为。导航领域通常构造完整房间 digital twin；操作任务还要复现抓取接触、关节摩擦、物体材质和动态遮挡，完全复制现实的成本更高。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; SIMPLER 与传统 sim-to-real 的方向相反。它不问“sim 训练的策略能否迁移到 real”，而问“real 训练的策略能否在一个廉价 sim 中被可靠筛选”。因此 domain randomization 不再是训练时增加鲁棒性的手段，而变成评测时观察策略行为模式的对照组。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 给定若干策略 $\pi_1,\ldots,\pi_N$，真实评测得到成功率 $R_i$，仿真评测得到 $R_{\mathcal{S},i}$。目标不是要求 $R_i=R_{\mathcal{S},i}$，而是要求二者在策略集合上的相对关系一致：如果 $R_i&gt;R_j$，则应有 $R_{\mathcal{S},i}&gt;R_{\mathcal{S},j}$。&lt;/p&gt;
&lt;p&gt;一次 rollout 的观测是 RGB 图像和语言任务指令；动作使用 7 维末端执行器控制：世界坐标系平移增量、轴角旋转增量和夹爪开合。Google Robot 默认控制频率为 3 Hz，Bridge/WidowX 为 5 Hz；仿真内部约 500 Hz。&lt;/p&gt;
&lt;h3&gt;评测指标&lt;/h3&gt;
&lt;p&gt;Pearson 相关系数衡量线性一致性：&lt;/p&gt;
&lt;p&gt;$$
r=\frac{\sum_i (R_i-\bar R)(R_{\mathcal{S},i}-\bar R_\mathcal{S})}
{\sqrt{\sum_i(R_i-\bar R)^2}\sqrt{\sum_i(R_{\mathcal{S},i}-\bar R_\mathcal{S})^2}}.
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Pearson $r$ 的问题是：它只看线性拟合，且对真实成功率很接近的一组策略非常敏感。论文因此定义两两策略的 rank violation：&lt;/p&gt;
&lt;p&gt;$$
\operatorname{RV}(i,j)=|R_i-R_j|,\mathbf{1}\left[(R_{\mathcal{S},i}&gt;R_{\mathcal{S},j})\ne(R_i&gt;R_j)\right],
$$&lt;/p&gt;
&lt;p&gt;并取每个策略最严重的错误排序，再对策略求平均：&lt;/p&gt;
&lt;p&gt;$$
\operatorname{MMRV}(R,R_\mathcal{S})=\frac1N\sum_{i=1}^N\max_j\operatorname{RV}(i,j).
$$&lt;/p&gt;
&lt;p&gt;MMRV 范围为 $[0,1]$，越低越好；它把“排错了多少”与“被排错的两个策略在现实中差多少”同时纳入。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-simpler/fig2.8adzyiudiv.webp&quot; alt=&quot;SIMPLER 的控制与视觉 gap 修正组件（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;p&gt;SIMPLER 的数据流可以压缩成一句话：从真实 demo 或评测视频抽取 setup 信息，建立 SAPIEN/ManiSkill 环境；用 SysID 校准机器人控制器，用 Visual Matching 或 Variant Aggregation 生成观测；把 policy action 按真实机器人接口执行，统计每个任务和策略的成功率。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;Control Gap：离线系统辨识&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 输入是一小批真实演示轨迹中的动作 ${\mathbf a_i}$、末端位姿 ${(\mathbf x_i,R_i)}$ 和初始仿真控制器参数。输出是关节 PD stiffness 与 damping，使同一串开环动作在仿真中产生接近真实的 6D 末端轨迹。作者使用三轮 simulated annealing，每轮缩小搜索范围。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-simpler/control_gap.9kgx4uccst.webp&quot; alt=&quot;系统辨识前后，仿真机器人对真实轨迹的跟踪差异（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这一步不是把物理世界完全辨识出来，而是对评测最敏感的“动作到末端运动”的闭环接口做校准。对于基于视觉的策略，几厘米的抓取偏差可能就会把成功变成失败，因此控制 gap 往往比物体质量的细节更优先。&lt;/p&gt;
&lt;h4&gt;Visual Matching：让策略看到相似的画面&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Visual Matching 包含两个阶段：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Green screening&lt;/strong&gt;：用在线 inpainting 从真实视频首帧移除机器人和前景物体；仿真渲染得到前景 segmentation mask $M$，再合成
$$I&apos;=M\odot I_{\text{sim}}+(1-M)\odot I_{\text{real}}.$$&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Texture matching&lt;/strong&gt;：对差异最大的物体，先在真实图像中分割并对齐仿真姿态，再把真实 RGB texture unproject 到仿真 mesh；机器人 link 则可直接从真实图像挑选颜色并制作多套 texture。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-simpler/visual_matching.5q85lvuf0m.webp&quot; alt=&quot;Visual Matching：真实背景绿幕与前景纹理烘焙（论文 Figure 4）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方仓库的 &lt;code&gt;rgb_overlay_path&lt;/code&gt; 将真实背景图传给 evaluator，环境通过 segmentation mask 生成前景合成；&lt;code&gt;additional_env_build_kwargs&lt;/code&gt; 可选择 &lt;code&gt;robot_init_x/y&lt;/code&gt;、物体位置、相机和纹理 variant。&lt;code&gt;simpler_env/utils/env/&lt;/code&gt; 提供观测转换，策略只接收与真实部署相同格式的 RGB 图像。&lt;/p&gt;
&lt;h4&gt;Variant Aggregation：不匹配，而是平均多个变体&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 作为替代方案，作者沿 background、lighting、distractor、table texture 四个轴各构造两个变体，平均所有变体的成功率。它类似 domain randomization，但用于评测而非训练。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; Variant Aggregation 的假设是：多个偏差的平均值会抵消单一场景的偶然性。实验却显示 Visual Matching 更可靠，说明对视觉敏感的 policy 会把“随机化范围”当成新的分布，而不是现实分布的无偏估计。&lt;/p&gt;
&lt;h4&gt;Environment Builder 与资产流程&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 环境基于 SAPIEN 构建，机器人 URDF 来自公开仓库或 ROS 导出；常见物体来自 Objaverse，少见物体通过扫描或单视图重建；尺寸在 Blender 中校准，碰撞几何用 CoACD 生成。刚体资产使用材料密度与摩擦系数的合理近似；柜门等 articulated object 需要手工建模。最后调节机器人和相机位姿，使固定物体边缘和初始夹爪位置与真实视频大致对齐。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; README 将代码分为 &lt;code&gt;ManiSkill2_real2sim/&lt;/code&gt;（机器人、资产和环境）、&lt;code&gt;simpler_env/evaluation/&lt;/code&gt;（评测循环）、&lt;code&gt;simpler_env/policies/&lt;/code&gt;（RT-1/Octo 适配）和 &lt;code&gt;tools/&lt;/code&gt;（指标、视频、SysID）。环境通过 &lt;code&gt;simpler_env.make(name)&lt;/code&gt; 或标准 Gym API 使用。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;SysID 损失&lt;/h4&gt;
&lt;p&gt;$$
\mathcal L_{\text{transl}}=\frac1T\sum_{i=1}^T|\mathbf x_i-\mathbf x&apos;&lt;em&gt;i|&lt;em&gt;2,
\qquad
\mathcal L&lt;/em&gt;{\text{rot}}=\frac1T\sum&lt;/em&gt;{i=1}^T\arcsin\left(\frac{|R_i-R&apos;_i|_F}{2\sqrt2}\right),
$$&lt;/p&gt;
&lt;p&gt;$$
\mathcal L_{\text{sysid}}=\mathcal L_{\text{transl}}+\mathcal L_{\text{rot}}.
$$&lt;/p&gt;
&lt;p&gt;其中 $(\mathbf x_i,R_i)$ 是真实末端位置与旋转，$(\mathbf x&apos;_i,R&apos;_i)$ 是用同一动作在 sim 中得到的结果；$(\mathbf p,\mathbf d)$（PD 参数）隐含在仿真轨迹中。平移与旋转采用相加而不是额外权重，论文未报告跨 embodiment 的单位归一化细节。&lt;/p&gt;
&lt;h4&gt;Visual Matching 合成&lt;/h4&gt;
&lt;p&gt;$M$ 是仿真前景的二值 mask，$I_{\text{sim}}$ 是机器人和交互物体渲染，$I_{\text{real}}$ 是移除前景后的真实背景。该式只替换背景，阴影与遮挡仍由仿真前景近似。&lt;/p&gt;
&lt;h4&gt;分布偏移敏感性&lt;/h4&gt;
&lt;p&gt;对某一 shift，作者报告两个变体相对 base 的平均变化：&lt;/p&gt;
&lt;p&gt;$$
\Delta\operatorname{Success}(\text{shift})=\frac12\sum_{k=1}^{2}\left(\operatorname{Success}(\text{shift},k)-\operatorname{Success}(\text{base})\right).
$$&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;SIMPLER 本身不训练新的 robot policy；训练对象是被评测的 RT-1、RT-1-X、RT-2-X 或 Octo，论文只使用其公开 checkpoint 和真实数据。SIMPLER 的“训练阶段”更准确地说是环境 calibration：从离线 demonstration 中抽取轨迹，优化控制参数，并准备背景、mesh、texture 与相机姿态。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 推理时 policy 从仿真 RGB 与语言指令产生动作；Google Robot 以 3 Hz、WidowX 以 5 Hz 发送控制命令，底层在约 500 Hz 仿真频率下执行。长时程任务完成一个 subtask 后，环境更新语言指令并继续，直到最终成功或 episode 截止。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;simpler_env/evaluation/maniskill2_evaluator.py&lt;/code&gt; 的 &lt;code&gt;run_maniskill2_eval_single_episode&lt;/code&gt; 是实际 rollout 核心：构造 &lt;code&gt;obs_mode=&quot;rgbd&quot;&lt;/code&gt; 环境，设置 &lt;code&gt;sim_freq=513&lt;/code&gt;、&lt;code&gt;control_freq&lt;/code&gt;、最大步数和 segmentation camera；reset 时传入机器人初始位置/四元数及物体位置或 episode id。每个时间步调用 &lt;code&gt;model.step(image, task_description)&lt;/code&gt;，把 &lt;code&gt;world_vector&lt;/code&gt;、&lt;code&gt;rot_axangle&lt;/code&gt;、&lt;code&gt;gripper&lt;/code&gt; 拼成 7D action，再调用 &lt;code&gt;env.step&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;simpler_env/policies/octo/octo_model.py&lt;/code&gt; 默认维护长度为 2 的 image history，预测 horizon 为 4、执行 horizon 为 1，并用 &lt;code&gt;ActionEnsembler&lt;/code&gt; 融合重叠预测；这说明论文中的“policy inference”在代码里还包含具体的 action chunking 与 ensemble 策略。RT-1 适配位于 &lt;code&gt;simpler_env/policies/rt1/rt1_model.py&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;simpler_env/utils/metrics.py&lt;/code&gt; 固化了论文中的 &lt;code&gt;REAL_PERF&lt;/code&gt; 与 &lt;code&gt;SIMPLER_PERF&lt;/code&gt;，并实现 &lt;code&gt;pearson_correlation&lt;/code&gt;、&lt;code&gt;mean_maximum_rank_violation&lt;/code&gt;。该文件还把每个 checkpoint 的 success rate 转成无序 trial 结果，以便进行 Kruskal–Wallis 分布检验。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 代码与论文的边界很清楚：论文提出“怎样设计有信息量的环境”，代码负责“如何批量运行 policy、保存视频并汇总指标”。因此复现实验时不能只安装环境；还要保证 policy 的 action ordering、控制频率、相机输入和 episode termination 与真实 setup 一致。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 作者在 Google Robot 任务上评测 RT-1（converged、15% 和 begin checkpoint）、RT-1-X、RT-2-X、Octo-Base；在 BridgeData V2/WidowX 上评测 RT-1-X、Octo-Base、Octo-Small。Google Robot 的仿真结果对四种 arm/gripper texture 求平均，Octo 额外对三个随机种子求平均；总计约 1500 个配对 sim-real episodes。&lt;/p&gt;
&lt;p&gt;任务包括 pick coke can、move near、open/close drawer、place apple in closed drawer，以及 WidowX 的 spoon-on-towel、carrot-on-plate、stack-cube、put-eggplant-in-basket 等刚体操作。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-simpler/results_bridge.mtab01fh.webp&quot; alt=&quot;BridgeData V2 上真实与仿真成功率（论文 Figure 6）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Google Robot 三个任务上，Validation MSE、Variant Aggregation、Visual Matching 的平均指标如下：&lt;/p&gt;
&lt;p&gt;| 评测协议 | MMRV ↓ | Pearson $r$ ↑ |
| --- | ---: | ---: |
| Validation MSE | 0.375 | 0.308 |
| SIMPLER-VarAgg | 0.143 | 0.778 |
| SIMPLER-VisMatch | &lt;strong&gt;0.056&lt;/strong&gt; | &lt;strong&gt;0.924&lt;/strong&gt; |&lt;/p&gt;
&lt;p&gt;按任务看，Visual Matching 在 Pick Coke Can 的 MMRV/Pearson 为 0.031/0.976，在 Drawer 上为 0.027/0.942。论文报告 RT-1 Converged 与 RT-2-X 在 Google Robot 上通常同时获得较高 real/sim 表现，RT-1 Begin 与 RT-1-X 较低；BridgeData V2 上 Octo-Small 整体优于 Octo-Base 与 RT-1-X。个别 policy 对视觉差异敏感，例如 RT-1 15% 和 Octo-Base 的 sim-real 成功率变化明显。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-simpler/fig1_scatterplot.86ue0t1asd.webp&quot; alt=&quot;SIMPLER 的 real-sim 策略排序散点图（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 结果支持的不是“仿真成功率就是现实成功率”，而是“SIMPLER 的排序错误通常只发生在现实成功率接近的策略之间”。这正是 MMRV 比单纯 Pearson 更适合 checkpoint selection 的原因。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-simpler/results_dist_shifts_google_robot.3uvkt9hzdd.webp&quot; alt=&quot;不同分布偏移下的成功率变化（论文 Figure 8）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; SysID 消融中，论文给出的 control loss/MMRV 为：未校准设置 0.267/0.070、另一组参数 0.432/0.100，SIMPLER SysID 达到 &lt;strong&gt;0.131/0.031&lt;/strong&gt;。视觉消融中，仅调整 drawer 或 robot texture、或只做 green-screen 都不能稳定改善相关性；同时使用 green-screen、drawer matching 与 robot matching 时，MMRV 为 &lt;strong&gt;0.050&lt;/strong&gt;、real-sim success gap 为 &lt;strong&gt;0.136&lt;/strong&gt;，最佳。&lt;/p&gt;
&lt;p&gt;物理属性消融改变空可乐罐密度、夹爪静摩擦和柜门关节摩擦，成功率最多变化约 15%，但在合理参数范围内 MMRV 仍低、Pearson 仍高。把 Google Robot 环境移植到 Isaac Sim 后也保持良好相关性，说明对于这些以刚体为主的任务，具体 simulator 不是决定性因素。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-simpler/results_simulators.7w7k7nm2r8.webp&quot; alt=&quot;SAPIEN 与 Isaac Sim 的比较（论文 Figure 10）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 作者沿 background、lighting、distractors、table texture、camera pose 五个轴测试分布偏移。仿真和真实都显示 camera pose 与 table texture 影响较大，lighting 与 distractors 影响较小；对 solid table color 的平均下降约 4%（sim 约 2%），patterned texture 的下降约 25%（sim 约 24%）。&lt;/p&gt;
&lt;p&gt;更有说服力的是新偏移预测：仿真中 Octo-Base 使用未调 arm texture 的成功率为 0%，换成 tuned texture 后为 29.3%，而 RT-1-X 对 arm texture 更鲁棒。真实世界把机械臂包上不同礼品包装纸后，仍观察到 Octo-Base 比 RT-1-X 更敏感，说明 SIMPLER 可以预测未在校准阶段显式设计的行为模式。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 有三层原因：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;先校准 action-to-motion 接口。&lt;/strong&gt; 操作策略的错误常由抓取时序和末端位姿累积产生，SysID 直接最小化这类轨迹差。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;把视觉差异集中到 policy 真正看到的像素。&lt;/strong&gt; 绿幕保留真实房间背景，纹理匹配覆盖高敏感前景，避免为所有墙面和灯具做昂贵建模。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;评测相对关系而非绝对值。&lt;/strong&gt; 即使摩擦、阴影或接触仍不完美，只要这些误差不会系统性地改变策略排序，sim 就能作为开发信号。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 创新不是新的 policy architecture，而是一个可操作的 evaluation system：用 offline data 做控制校准、用半自动视觉合成降低建模成本、用 MMRV 定义评测质量，并以 paired experiments 验证这些选择。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;| 方向 | 训练/评测方向 | 目标 | SIMPLER 的区别 |
| --- | --- | --- | --- |
| Sim-to-real/domain randomization | sim 训练 → real 部署 | 提高迁移成功率 | real 训练 → sim 评测，关心排序信号 |
| Digital twin | 尽可能复刻一个场景 | 逐帧/物理逼真 | 只建“足够能排序”的环境 |
| Validation action MSE | 离线动作误差 | 选择 checkpoint | 直接执行闭环 policy，结果更贴近真实行为 |
| 传统 rank correlation | 只比较名次 | 检查排序 | MMRV 还惩罚大幅度的错误排序 |&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 该方法隐含四个假设：任务主要是刚体操作；真实 setup 的背景和相机在 episode 内近似固定；少量 demonstration 足以辨识关键控制参数；策略的真实性能差异不会被仿真误差完全淹没。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 如果两个策略只相差 1–2 个百分点，或者策略利用了仿真中不存在的接触细节，MMRV 也无法把不可辨识的差异恢复出来。SIMPLER 更适合做“粗粒度模型选择与鲁棒性诊断”，而不是替代最终真实验收。&lt;/p&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 当前环境集中在刚体物体，尚未覆盖布料、软体和复杂可变形物体；green-screen 假设固定相机，不能准确建模真实阴影等细节；环境创建仍需人工整理资产、构造 articulated object 和调纹理，距离自动生成成千上万个高质量场景还有差距。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;校准数据与评测分布耦合。&lt;/strong&gt; 如果 demonstration 只覆盖一种夹爪姿态，SysID 得到的参数未必适用于新的动作幅度或负载。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;策略输入接口仍可能不一致。&lt;/strong&gt; 真实系统的延迟、压缩、曝光和 proprioception 若没有在 simulator 中复现，视觉匹配只能修正外观，不能修正时序差。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;成功标签比较粗。&lt;/strong&gt; 二元 success rate 无法解释“抓住但放置偏了”等中间行为；视频和 episode stats 仍需人工审计。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MMRV 依赖策略集合。&lt;/strong&gt; 增加一个极差或极好的 policy 会改变平均 rank violation，因此跨论文比较时必须固定 checkpoint 集合和任务集合。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;GPU 与环境依赖重。&lt;/strong&gt; 官方代码要求 NVIDIA GPU、特定 CUDA/NumPy 版本，并依赖 ManiSkill2 子模块；这会削弱“可复现”的门槛优势。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;评测环境也可以被学习。&lt;/strong&gt; 可以把 MMRV 作为环境设计的 outer-loop objective，自动搜索相机、材质和控制参数，而不是手工决定哪些 gap 值得修正。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;从排序扩展到诊断。&lt;/strong&gt; 将 success rate 换成失败类型、接触阶段和动作延迟的分布，可构造“策略行为谱”，帮助定位是视觉、控制还是长时程规划导致失败。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为 VLA checkpoint 选择提供低成本闭环。&lt;/strong&gt; 训练期间每隔若干步在 SIMPLER 上跑一次，可能比保存 validation MSE 更早发现策略已经学会或遗忘某种 embodiment 技能。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;面向动态和软体任务的下一步。&lt;/strong&gt; 对布料、液体和双臂协作，单纯刚体 simulator 不够；可以把可微物理、视频预测器和真实短片段校准结合起来，保持“相对性能相关”这一目标。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SIMPLER 的经验可迁移到其他 benchmark。&lt;/strong&gt; 任何希望用 sim 做 offline policy selection 的系统，都应同时报告绝对误差、Pearson/Spearman 和带幅度的 rank violation，并公开 real-sim paired 数据。&lt;/li&gt;
&lt;/ol&gt;</content:encoded><h:img src="https://pic.hana0721.top/95619535_p0_master1200.8okafg4jti.webp"/><enclosure url="https://pic.hana0721.top/95619535_p0_master1200.8okafg4jti.webp"/></item><item><title>SIM1 论文精读：让变形物理模拟成为零样本数据扩展器</title><link>https://agusexp25.top/blog/paper-deep-dive-sim1</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-sim1</guid><description>精读 SIM1：通过真实场景数字化、变形稳定求解器和扩散轨迹生成，把少量衣物示教扩展为可直接迁移到真实机器人的合成监督。</description><pubDate>Thu, 27 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 《SIM1: Physics-Aligned Simulator as Zero-Shot Data Scaler in Deformable Worlds》研究一个很具体、但对具身学习很关键的问题：衣物的形状、接触和拓扑不断变化，真实示教昂贵，而传统刚体模拟生成的数据很难直接迁移。作者的判断是，模拟失败的根因不是“合成”，而是没有被真实世界约束。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-sim1/figure-1.8vnnkw9qpr.webp&quot; alt=&quot;SIM1 的 real-to-sim-to-real 总览（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; SIM1 把数据扩展问题改写成对齐问题：先把真实场景做成有公制尺度的数字孪生，再用稳定的软体动力学和人类式运动生成，让仿真样本不仅“看起来像”，而且在机器人控制下“反应得像”。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;提出面向变形物体的 real-to-sim-to-real（R2S2R）数据引擎，统一处理几何、动力学和运动三类 sim-real gap。&lt;/li&gt;
&lt;li&gt;用高精度扫描与网格后处理得到带纹理、亚毫米级几何精度的衣物资产；用 ARX ACONE 的 URDF 对齐双臂机器人。&lt;/li&gt;
&lt;li&gt;在 Newton/VBD 基础上加入 Augmented Vertex Block Descent（AVBD）式应变约束，减少实时抓取、拉伸时的过度变形与接触不稳定。&lt;/li&gt;
&lt;li&gt;将示教轨迹拆成 interaction 与 moving 区段，用 diffusion-based trajectory generation 补全运动，并以规则和视频判别器过滤失败样本。&lt;/li&gt;
&lt;li&gt;在真实 T-shirt folding 上，纯合成数据训练的策略达到 90%（$\pi_{0.5}$）零样本成功率，并报告约 1:15 的合成/真实样本等价关系。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 刚体操作可以依赖成熟的资产库、抓取点和 pick-and-place primitive；衣物操作则同时受到连续形变、摩擦、遮挡和接触拓扑变化影响。少量真实示教覆盖不了这些状态，导致 VLA 或 imitation policy 在训练分布外快速失效。&lt;/p&gt;
&lt;p&gt;传统 S2R 往往从随机化开始，但随机化只能扩大“错误模拟”的覆盖范围。SIM1 强调先做 R2S：几何尺寸要对应，机器人运动要对应，软体响应也要对应；只有在这个基础上，合成数据的规模才有价值。与只做资产重建的方案相比，本文还把在线软体求解和运动生成纳入同一个闭环。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 给定少量真实或仿真遥操作轨迹 $D={\tau_i}$、真实工作空间的机器人和衣物，SIM1 需要生成一批带 RGB、机器人状态和动作的合成轨迹 $\tilde D$，使只用 $\tilde D$ 训练的 policy 能在真实机器人上执行。&lt;/p&gt;
&lt;p&gt;| 维度                  | SIM1 的设定                                                                                          |
| --------------------- | ---------------------------------------------------------------------------------------------------- |
| Observation           | 仿真中渲染的头部相机 RGB、双臂状态与衣物粒子/网格状态                                                |
| Action Representation | 双臂关节/末端位姿轨迹与夹爪开合；扩散模块使用 16 维 EE 向量（左右各 3D position、四元数和 openness） |
| Policy                | 论文评估 $π_{0.5}$ 与 $π_0$，合成数据以 LeRobot 格式导出供 imitation learning                        |
| Robot / Embodiment    | ARX ACONE 双臂；仿真遥操作使用 ARX X5 映射到模拟机器人                                               |
| Dataset               | 1,000 条真实轨迹、200 条仿真源轨迹；生成数据最多扩展到 10k 条                                        |
| Task                  | T-shirt folding 为主，另展示 towel flipping、shorts/long-sleeve folding、crumpled garment flattening |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这里的目标不是学习一个“更强的模拟器评分”，而是让模拟器生成的监督在真实控制闭环中保持有效；因此最终指标必须是 real-robot success，而非仅仅是渲染逼真度。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-sim1/figure-2.1e9ceeyib7.webp&quot; alt=&quot;SIM1 三阶段框架：场景数字化、变形稳定物理模拟与结构化轨迹合成（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 数据流是：真实场景扫描与资产导入 → 通过行为匹配校准的软体模拟 → 轨迹分解、扩散补全、质量筛选和外观随机化 → 输出可用于策略训练的合成 episode。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;SIM1-Scene：真实场景数字化&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 衣物安装在 mannequin 上，用 EinScan Rigil Pro 获取多视角 RGB 与 LiDAR，融合成点云后移除 mannequin 点，再进行 Poisson reconstruction、补洞、平滑和 remeshing，最终得到带纹理的 OBJ。文中称几何精度可达亚毫米级。机器人则直接导入厂商 CAD 生成的 URDF，并校正根坐标与双臂相对标定；桌面等环境资产按真实测量尺寸放置。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这个模块的关键不是把照片变成漂亮 mesh，而是保留接触点、桌面高度和双臂工作空间的公制关系。衣物尺寸偏差会同时改变碰撞、摩擦和可达性，后续求解器再准确也无法补偿这种系统误差。&lt;/p&gt;
&lt;h4&gt;SIM1-Sim：变形稳定的刚柔耦合&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-sim1/figure-3.7w7k7q9hm6.webp&quot; alt=&quot;AVBD 应变约束与双向行为校准（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; cloth mesh 的顶点是粒子、边是连接关系。每次外力作用后，先运行 Newton-VBD 更新，再检查每条边的伸长；超过阈值时激活虚拟弹性约束，把额外的拉力加入下一轮顶点优化，从而快速传播接触引起的应变。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 模拟参数 $\Theta={\rho,E,\nu,\mu,\eta,\zeta}$ 分别表示密度、Young&apos;s modulus、Poisson&apos;s ratio、摩擦、恢复和 relaxation。作者不声称恢复真实材料参数，而是把真实双臂关节流送入模拟器，再比较布料下垂、折叠和接触行为，人工迭代参数直到达到操作层面的行为一致。&lt;/p&gt;
&lt;h4&gt;SIM1-DataGen：结构化变形操作合成&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 轨迹被拆成 interaction segments 与 moving segments。稳定抓取与接触片段直接从示教池中重用并随机重排；片段之间的运动由 conditional diffusion 根据历史和边界 pose 补全。这样做避免了在变形物体上自动寻找可靠 grasp point，也避免把接触片段粗暴切断。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方 &lt;code&gt;components/datagen/splitter.py&lt;/code&gt; 的 &lt;code&gt;SplitterFine&lt;/code&gt; 通过双夹爪位置变化阈值（默认 &lt;code&gt;stable_thresh=0.01&lt;/code&gt;）检测 stable/moving 区间，合并相邻状态并把过短 stable 段并入 moving。&lt;code&gt;components/datagen/datagen_core.py&lt;/code&gt; 中 &lt;code&gt;DataGenerator&lt;/code&gt; 将稳定段组织成带 &lt;code&gt;history/src/tgt/traj/mask/lengths&lt;/code&gt; 的 batch，送入 diffusion flow；扩散输出再经过 EE 轨迹平滑和 IK 转换回关节序列。&lt;/p&gt;
&lt;h4&gt;质量筛选与外观随机化&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 首先用衣物粒子状态的规则快速剔除明显失败样本，再训练 ResNet-18 + Transformer 的二分类视频判别器 $D(V)$。只有 $D(V)&gt;\tau_{disc}$ 的轨迹进入 Blender 渲染；材质、灯光和相机参数被随机化，最后连同机器人状态与动作写成 LeRobot 数据。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;video_filtter.py&lt;/code&gt; 将正负视频按较小类平衡采样，抽取固定采样率的最多 8 秒片段，ResNet-18 提取每帧特征后由 Transformer 聚合，输出有效性分数。&lt;code&gt;filter_cloth_quality.py&lt;/code&gt; 读取 replay USD 的最后一帧衣物顶点，用 $z_{max}$ 与 $y_{min}$ 阈值过滤；位置随机化时先用 Kabsch 对齐到参考 USD。代码中的过滤器是可解释的后处理，并非论文中所称的端到端可微物理判定。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;应变约束&lt;/h4&gt;
&lt;p&gt;对连接顶点 $i,j$ 的边 $e$，静止长度为 $l_0$，最大允许伸长比例为 $\xi$：&lt;/p&gt;
&lt;p&gt;$$
C(e)=|e_i-e_j|-(1+\xi)l_0\le 0.
$$&lt;/p&gt;
&lt;p&gt;当 $C(e)&gt;0$ 时约束激活。$e_i,e_j\in\mathbb R^3$ 是当前顶点位置，$\xi$ 控制允许的局部拉伸量。它把“布料不能被瞬间拉长太多”写成可检测的局部条件。&lt;/p&gt;
&lt;h4&gt;约束能量与增广更新&lt;/h4&gt;
&lt;p&gt;$$
E_{strain}^{(n)}(e)=
\begin{cases}
\frac12 k^{(n)}C(e)^2+\lambda^{(n)}C(e),&amp;#x26;C(e)&gt;0\
0,&amp;#x26;\text{otherwise}
\end{cases}
$$&lt;/p&gt;
&lt;p&gt;其中 $k^{(n)}$ 是第 $n$ 次 Newton 迭代的 penalty stiffness，$\lambda^{(n)}$ 累积约束力。参数更新为：&lt;/p&gt;
&lt;p&gt;$$
k^{(n+1)}=\min(k_{max},k^{(n)}+\beta|C(e)|),\qquad
\lambda^{(n+1)}=\lambda^{(n)}+k^{(n)}C(e).
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 逐步增加刚度比一次性设置很大 stiffness 更适合实时交互：先允许求解器找到可行方向，再逐渐把过度伸长压回阈值，降低局部发散风险。&lt;/p&gt;
&lt;h4&gt;扩散轨迹目标&lt;/h4&gt;
&lt;p&gt;给定干净轨迹 $x_0$、噪声/掩码等级 $k$、历史 $h$ 以及起止 pose $p_s,p_e$，论文训练 transformer 预测噪声残差：&lt;/p&gt;
&lt;p&gt;$$
\min_\theta;\mathbb E\left[|\epsilon-\epsilon_\theta(g(x_0,k);h,p_s,p_e,k)|_2^2\right].
$$&lt;/p&gt;
&lt;p&gt;$g$ 是把轨迹扰动到等级 $k$ 的 corruption function，$\epsilon$ 是真实噪声，$\epsilon_\theta$ 是条件模型输出。推理时它补全 interaction 片段之间的 moving 区间，而不是重新生成已经验证过的抓取接触。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 流程从 200 条仿真遥操作源轨迹出发。轨迹先按稳定/移动状态分段，再随机重用接触片段并用 diffusion 生成中间运动；规则过滤和视频判别器移除无效 episode，Blender 进行材质、灯光、相机随机化，最终生成 RGB、状态和 action 对齐的数据。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;run_pipeline.sh&lt;/code&gt; 把 &lt;code&gt;apps/datagen_app.py --use_dp --mode fine&lt;/code&gt;、Kalman 平滑、&lt;code&gt;apps/replay_app.py&lt;/code&gt;、关节可达性过滤和衣物质量过滤串起来。&lt;code&gt;DataGenerator.__init__&lt;/code&gt; 当前实现会将 &lt;code&gt;use_dp&lt;/code&gt; 固定为 &lt;code&gt;True&lt;/code&gt; 并加载 &lt;code&gt;flow_ckpt_three.pth&lt;/code&gt;；因此 README 中的“可选 DP”在该入口上实际是强制启用的。生成后 &lt;code&gt;ee16_to_joint()&lt;/code&gt; 为每个 16 维末端向量调用 Newton IK，并附加夹爪开合限制。&lt;/p&gt;
&lt;p&gt;&amp;#x3C;Algorithm
number={1}
title=&apos;SIM1 synthetic-data training pipeline&apos;
inputLabel=&apos;输入&apos;
outputLabel=&apos;输出&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 训练好的 policy 只接收真实机器人 RGB 与状态，不需要额外 real-data fine-tuning。真实控制器执行一段 action 后获得下一帧观测，整个过程是闭环的；论文把这种从纯仿真训练到真实部署称为 zero-shot sim-to-real。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方仓库主要开源数据生成、replay、过滤、渲染和 LeRobot 转换，并提供 &lt;code&gt;replay_batch.sh&lt;/code&gt; 等脚本。真实 VLA policy 的训练/部署控制器不在该仓库中，因此动作执行频率、低层控制器和 checkpoint 细节应以论文实验系统为准，不能从代码仓库推断。&lt;/p&gt;
&lt;p&gt;&amp;#x3C;Algorithm
number={2}
title=&apos;SIM1 zero-shot real-robot deployment&apos;
inputLabel=&apos;输入&apos;
outputLabel=&apos;输出&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;| 论文概念          | 官方代码位置                                                             | 实际行为                                                         |
| ----------------- | ------------------------------------------------------------------------ | ---------------------------------------------------------------- |
| 场景与资产路径    | &lt;code&gt;scripts/sim1_asset_paths.py&lt;/code&gt;, &lt;code&gt;download_assets.sh&lt;/code&gt;                      | 从 Hugging Face bundle 查找 &lt;code&gt;acone&lt;/code&gt;、&lt;code&gt;cloth&lt;/code&gt;、&lt;code&gt;model&lt;/code&gt; 与参考 NPZ |
| 轨迹分段          | &lt;code&gt;components/datagen/splitter.py&lt;/code&gt;                                         | 按夹爪变化阈值检测 stable/moving，并合并短片段                   |
| Diffusion DataGen | &lt;code&gt;components/datagen/datagen_core.py&lt;/code&gt;, &lt;code&gt;components/datagen/traj_df/&lt;/code&gt;      | 对 16 维 EE 特征做归一化、flow inference、平滑，再 IK 到关节空间 |
| 物理 replay       | &lt;code&gt;apps/replay_app.py&lt;/code&gt;, &lt;code&gt;newton/&lt;/code&gt;                                          | 重放轨迹并写出 NPZ/USD；求解器实现基于 Newton/Warp               |
| 质量过滤          | &lt;code&gt;scripts/filter_joint_unreachable.py&lt;/code&gt;, &lt;code&gt;scripts/filter_cloth_quality.py&lt;/code&gt; | 关节跳变/EE 可达性检查，加 USD 顶点阈值与 Kabsch 对齐            |
| 渲染和导出        | &lt;code&gt;components/render/&lt;/code&gt;, &lt;code&gt;components/lmdb2lerobot/&lt;/code&gt;                         | Blender 随机化渲染，转换为 LeRobot 风格数据                      |
| 论文中的 policy   | 未在仓库完整提供                                                         | 论文报告 $π_{0.5}$ / $π_0$ 结果，但官方仓库重点是模拟与数据栈    |&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-sim1/figure-4.2h91pb43bj.webp&quot; alt=&quot;SIM1 的真实/仿真采集与泛化评测设置（论文 Figure 4）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 真实环境用 ARX ACONE 双臂和 kinesthetic teaching 收集 1,000 条轨迹；仿真在 RTX 4090 上运行，操作员通过 ARX X5 做同构遥操作，得到 200 条种子轨迹。每个配置评估 30 次，成功定义为衣物达到目标折叠构型且没有掉落或重新展开。&lt;/p&gt;
&lt;p&gt;训练数据包括 200 条真实/仿真源轨迹或扩展后的 10k synthetic samples。泛化测试分别改变空间位置（平移最多 8 cm、旋转 ±15°）、衣物/桌面纹理及摩擦、灯光强度/方向和相机高度（±5°）。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-sim1/figure-5.5flbst2lr0.webp&quot; alt=&quot;SIM1 生成的多衣物、多任务与多环境资产（论文 Figure 5）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-sim1/figure-9-10.9o0j2msuoc.webp&quot; alt=&quot;真实机器人 zero-shot sim-to-real 部署与跨衣物泛化（论文 Figure 9）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 主要结果如下：&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-sim1/figure-7.96ahe1rh03.webp&quot; alt=&quot;SIM1 的 in-domain 与 out-of-domain 成功率（论文 Figure 7）&quot;&gt;&lt;/p&gt;
&lt;p&gt;| 评测                     | 结果                                                                      |
| ------------------------ | ------------------------------------------------------------------------- |
| $\pi_{0.5}$ in-domain    | 真实数据 97%，sim-teleoperated 87%，sim-generated 90%                     |
| $\pi_{0.5}$ from scratch | 真实数据 0%，合成数据 76%                                                 |
| $\pi_0$ zero-shot / 泛化 | 论文摘要报告 zero-shot 76%，泛化提升 +56%                                 |
| 泛化收益（$\pi_{0.5}$）  | spatial +50%，texture +13%，lighting +47%，viewpoint +40%（相对真实基线） |
| 跨衣物部署               | 未见过的 polo shirt 上，合成策略 70%，真实数据基线 20%                    |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这些数字支持两个层次的结论：在相同数据量下，物理对齐模拟可以接近真实示教；当数据规模扩大时，随机化带来的覆盖度开始超过少量真实数据的覆盖度。from-scratch 对照也说明结果并非完全依赖 $\pi_{0.5}$ 或 $\pi_0$ 的已有操作先验。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-sim1/figure-8.7p4ccancb0.webp&quot; alt=&quot;SIM1 的数据规模曲线与模块效果（论文 Figure 8）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 消融表明模块是逐步累积的：&lt;/p&gt;
&lt;p&gt;| 方法                         | Pass rate | 平均 success |
| ---------------------------- | --------: | -----------: |
| Baseline（刚体式轨迹策略）   |        0% |            - |
| + trajectory decomposition   |       65% |           0% |
| + diffusion-based generation |       38% |          33% |
| + deformation-stable solver  |       40% |          76% |&lt;/p&gt;
&lt;p&gt;仅分段可以产生样本，但片段衔接不连续；加入 diffusion 后动作更像人类、in-domain 成功率达到 47%；加入变形稳定求解器后平均成功率提升到 76%，说明运动生成的外观合理并不等于接触动力学正确。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Figure 8 的拟合曲线给出数据等价关系：代表性的 $\pi_{0.5}$ in-domain 约 15 条 synthetic samples 才能提供 1 条 real demonstration 的训练价值；texture generalization 场景约为 5:1。这里的等价点来自拟合曲线，不应理解为所有任务和数据规模都固定遵循 15:1。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Figure 6 展示 towel、shorts、长袖衣物和皱衣服等任务，说明数据生成管线并不绑定单一 T-shirt folding。真实部署还测试了训练和模拟中没有出现的 polo shirt，体现对材质、尺寸和纹理变化的迁移。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 泛化提升主要来自两种覆盖的叠加：几何/动力学对齐降低了合成监督的偏差，外观与位姿随机化扩大了视觉分布。若只做后者，模型可能学到大量与真实接触不一致的视觉捷径。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; SIM1 的有效性来自三个误差源同时被约束：metric mesh 让碰撞位置对，AVBD 让接触下的应变传播对，interaction-preserving trajectory synthesis 让动作语义和接触时刻对。三者缺一时，数据会在策略训练中形成互相矛盾的视觉、状态与 action 标签。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;【Paper】对齐优先于规模&lt;/strong&gt;：把 R2S 作为合成扩展的前置条件，而不是训练后再做 domain adaptation。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Paper】面向实时刚柔耦合的稳定求解&lt;/strong&gt;：应变约束在接触拉伸时自适应激活，而非只追求离线 cloth simulation 的高精度。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Paper】接触片段复用 + 运动扩散补全&lt;/strong&gt;：保留最难生成的 grasp/contact，生成相对容易的 moving transition。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Analysis】质量筛选成为数据生成的一等公民&lt;/strong&gt;：宁可丢弃失败样本，也不把物理错误传播给 policy。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; MimicGen 一类刚体方法可以把轨迹按抓取点切片后重组；SIM1 不假设 deformable object 存在稳定可检测的 grasp primitive，而是从示教中直接复用接触片段。普通 domain randomization 只改变外观或位姿；SIM1 先校准行为，再随机化外观。单纯高保真 soft-body solver 也不够，因为它还需要在线双臂控制映射、轨迹生成与质量过滤才能成为数据引擎。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 少量示教中的 interaction segment 足以覆盖任务所需的有效接触模式。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 通过专家视觉反馈可以把材料参数调到操作层面的行为一致，但不保证物理参数真实可辨识。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 训练和部署的机器人、相机布局与动作接口足够同构；若 embodiment 或控制频率变化很大，sim-real gap 仍可能重新出现。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 粒子阈值与视频判别器能筛掉主要失败模式；对极端遮挡、粘连或拓扑改变，过滤器可能失去判别力。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 材料校准仍需要针对每种衣物由专家调参，限制了对任意 cloth type 的全自动扩展。作者也只在有限真实任务上验证了 zero-shot transfer，不能据此断言所有变形物体都能达到相同收益。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 几何扫描、mannequin 分割、纹理映射和 URDF 标定本身是昂贵的工程流程；“减少真实示教”不等于消除现实采集成本。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 论文中的参数匹配依赖人工视觉判断，可能存在操作者偏差，也缺乏统一的行为距离指标。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 视频 discriminator 的正负样本来自模拟失败，若模拟器没有覆盖某种真实失败，过滤器无法发现分布外风险。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方仓库开源的是模拟/生成栈，真实 policy 的训练和部署控制器并不完整公开，复现实验成功率仍需要额外系统组件。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 1:15 等价关系来自特定任务和拟合区间；在更复杂的衣物拓扑、双手遮挡或高摩擦材料上，合成数据的边际收益可能饱和得更早。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; SIM1 给具身数据扩展一个值得推广的顺序：先问“模拟中的 action 是否会让物体以真实方式变化”，再问“如何随机化更多外观”。对未来工作，我认为有三条路线很自然：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;用可观测的布料轨迹、接触事件和成功率替代纯人工材料调参，形成自动 system identification。&lt;/li&gt;
&lt;li&gt;把规则过滤器、视频判别器与真实少量回放组成 active data curation，让失败样本反过来更新模拟器。&lt;/li&gt;
&lt;li&gt;将 R2S2R 的对齐信号暴露给 VLA policy，例如把应变、接触和不确定性作为辅助监督，减少策略只依赖纹理线索。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 论文最重要的启示并不是“仿真可以取代真实数据”，而是“只有行为对齐的仿真才具有可扩展的监督价值”。在变形操作中，几何、动力学和动作生成必须作为一个系统共同验证。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/65089776_p0_master1200.5c1kl2nzfo.webp"/><enclosure url="https://pic.hana0721.top/65089776_p0_master1200.5c1kl2nzfo.webp"/></item><item><title>RoboTwin 2.0 论文精读：用可规模化仿真数据提升双臂操作鲁棒性</title><link>https://agusexp25.top/blog/paper-deep-dive-robotwin-2</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-robotwin-2</guid><description>精读 RoboTwin 2.0：MLLM 闭环代码生成、RoboTwin-OD、五轴域随机化与 embodiment-aware grasping 如何共同缩小双臂操作的 sim-to-real gap。</description><pubDate>Thu, 27 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; RoboTwin 2.0 面向双臂协作操作，提供数据生成器、超过 100,000 条专家轨迹、50 个任务、5 种双臂 embodiment 和统一 benchmark。核心不是提出一个新的 policy 网络，而是把“任务程序如何生成、场景如何变、不同机器人如何执行”变成可自动扩展的基础设施。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-robotwin-2/main.3uvkt8pivp.webp&quot; alt=&quot;RoboTwin 2.0 系统总览（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; RoboTwin 2.0 将仿真从“干净场景中的固定脚本”升级为一个带视觉反馈的程序合成闭环：MLLM 写任务代码，仿真执行十次暴露失败，VLM 定位原因，代码代理再修复；随后在物体、杂乱、光照、背景、桌高和语言上做结构化随机化，生成能迁移到真实双臂平台的数据。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;RoboTwin-OD：731 个物体实例、147 个类别，带 placement、functional、grasp point/axis 与多粒度语言描述。&lt;/li&gt;
&lt;li&gt;MLLM + simulation-in-the-loop 的专家代码生成器，在 10 次模拟试验和最多 5 轮修复中筛选可执行程序。&lt;/li&gt;
&lt;li&gt;五个域随机化轴：clutter、lighting、background、tabletop height、language；并针对不同 DoF 的机器人生成候选抓取姿态。&lt;/li&gt;
&lt;li&gt;50+ 双臂任务、5 种 embodiment 和 benchmark；代码生成 ASR 提升 10.9 个百分点，合成数据显著改善 VLA 的仿真与真实环境鲁棒性。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 双臂任务涉及交接、协同装配、工具使用和双物体同步移动。真实示教同时覆盖多种物体、语言、光照和硬件，采集成本随组合数快速增长，因此 simulation-based synthesis 很有吸引力。&lt;/p&gt;
&lt;p&gt;已有工作主要有三类短板：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;生成质量不可控&lt;/strong&gt;：一次生成的脚本可能抓空、放错位置或根本无法运行，失败轨迹会污染训练集。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;随机化过于表面&lt;/strong&gt;：只换颜色或相机，而没有把 clutter、物理可行性、桌面高度和语言变化一起纳入。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;忽视 embodiment 差异&lt;/strong&gt;：Franka 的高 DoF 机械臂可以 top-down 抓取，Piper 等低 DoF 平台可能只能侧向接近；相同脚本并不等于相同可达性。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 因而 RoboTwin 2.0 的研究问题是数据工厂问题：如何让“任务程序质量”“环境覆盖度”和“跨机器人可执行性”同时可扩展，而不是只增加轨迹数量。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 给定任务名称与自然语言目标，系统要输出能在指定 embodiment 上完成任务的 Python task program，并由它生成视觉、本体感知和动作轨迹。单条 episode 的 observation 包括多视角 RGB、关节状态和语言 instruction；action 是由 task API 驱动的末端位姿/夹爪控制序列，而非一个统一的离散 action token。&lt;/p&gt;
&lt;p&gt;| 维度 | RoboTwin 2.0 设定 |
| --- | --- |
| 任务 | 50+ 个双臂协作任务，如 Handover Block、Stack Bowls、Open Laptop |
| 资产 | RoboTwin-OD 731 instances / 147 categories |
| Embodiment | Aloha-AgileX、Piper、Franka、UR5、ARX-X5 |
| 数据 | 每个任务支持 clean 与 domain-randomized 轨迹；论文报告超过 100,000 条 |
| 目标 | 生成高成功率专家程序，并评估 Easy/Hard 环境中的泛化 |&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-robotwin-2/main.3uvkt8pivp.webp&quot; alt=&quot;RoboTwin 2.0 Pipeline（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;p&gt;上图中的数据流是：RoboTwin-OD 与 skill API 提供可操作对象和动作原语，MLLM 生成 task code，模拟器执行并记录结果，VLM observer 给出视觉诊断，修复后的程序再进入随机化数据采集与 benchmark。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;RoboTwin-OD 与 affordance annotations&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 534 个自建 RGB-to-3D 物体、153 个 Objaverse 物体和 44 个 PartNet-Mobility articulated 物体组成资产库。每个对象有 15 条经人工核验的描述，以及 placement point、functional point、grasp point 和 grasp axis。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-robotwin-2/robotwin-od.5q85lv1z1v.webp&quot; alt=&quot;RoboTwin-OD 对象库（论文 Figure 6）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方仓库把对象与任务 API 放在 assets/、envs/ 和 envs/utils.py，具体任务类（例如 envs/stack_bowls_two.py）通过 grasp_actor、place_actor、move 等原语读写这些标注。这样新物体主要是资产和关键点配置问题，而不是重新手写整套控制器。&lt;/p&gt;
&lt;h4&gt;MLLM expert code generation&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-robotwin-2/gpt.362b98200i.webp&quot; alt=&quot;MLLM 专家代码生成闭环（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; code-generation agent 读取 API 列表、函数调用示例、层级约束和任务描述，先生成 Python 程序。每轮执行 10 次，日志记录不可运行代码、左右臂抓取失败、错误放置和规划失败；VLM observer 逐帧查看关键步骤，报告失败时间点与可能原因。代码代理融合定量日志和定性视觉诊断，最多连续修复 5 轮，达到设置的成功率阈值即停止。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; code_gen/task_generation_mm.py 会写出 envs_gen/gpt_task.py（其中 task 是任务名），调用 insert_observation_points 注入观测点，再由 run() 汇总 success_rate、error_message 和 run_records。仓库默认每个候选程序最多尝试 5 次，test_gen_code.py 中的模拟评估以 10 次 rollout 形成成功率。&lt;/p&gt;
&lt;h4&gt;五轴 domain randomization&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-robotwin-2/randomization.2dpfrhleca.webp&quot; alt=&quot;五轴域随机化与纹理库（论文 Figure 4）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Clutter&lt;/strong&gt;：从 OD 采样任务无关物体，使用碰撞感知放置，并排除与目标物视觉/语义相似的 distractor。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Background&lt;/strong&gt;：由 1,000 个表面描述生成 20,000 张候选纹理，经人工筛选得到 11,000 张。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Lighting&lt;/strong&gt;：随机化颜色温度、光源类型、数量、强度和位置。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tabletop height&lt;/strong&gt;：在合理范围内改变桌面高度，改变视角和空间关系。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Language&lt;/strong&gt;：MLLM 生成任务模板与对象描述，再组合成多种 instruction。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; envs/_base_task.py 读取 domain_randomization 配置；官方 env_cfg/task_config/demo_randomized.yml 打开 random_background、cluttered_table、random_light，并把 random_table_height 设为 0.03。get_cluttered_table() 负责杂乱物体插入，table_z_bias 通过均匀采样改变桌高。&lt;/p&gt;
&lt;h4&gt;Embodiment-aware grasp adaptation&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 对每个对象预先标注多个抓取轴和接近方向，再叠加带 reachability bias 的角度扰动，并行尝试 motion planning。该模块为同一语义任务生成“适合当前手臂”的候选姿态，而不是强迫所有机器人复用一种 grasp。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 令任务程序为 $P$，场景随机变量为 $\xi$，模拟器执行结果为 $r(P,\xi)\in{0,1}$。代码生成阶段的目标可写成：&lt;/p&gt;
&lt;p&gt;$$
P^* = \arg\max_P ; \mathbb{E}&lt;em&gt;{\xi\sim\mathcal{D}&lt;/em&gt;{sim}}[r(P,\xi)]
$$&lt;/p&gt;
&lt;p&gt;其中 $\mathcal{D}_{sim}$ 包含动力学、感知和场景随机性。论文用 10 次 rollout 的平均值估计该期望；达到阈值便接受程序。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 对策略训练而言，随机化数据近似扩大了训练分布：&lt;/p&gt;
&lt;p&gt;$$
\min_\theta;\mathbb{E}&lt;em&gt;{(o,a)\sim\mathcal{D}&lt;/em&gt;{clean}\cup\mathcal{D}&lt;em&gt;{rand}}[\ell(\pi&lt;/em&gt;\theta(o),a)]
$$&lt;/p&gt;
&lt;p&gt;这不是论文提出的新损失，而是解释为什么 clean 与 randomized 轨迹混合后，policy 对未见背景、clutter 和桌高变化更稳定。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文将生成的专家轨迹用于 ACT、DP、RDT、Pi0、DP3 等 policy。域随机化预训练实验使用 32 个任务、9,600 条轨迹（每任务 300 条），再在 5 个未见任务上用 50 条 clean demonstrations 做单任务适配。真实实验中 RDT 使用 1,000 条合成轨迹与 10 条真实示教，另设 synthetic-only 对照。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 数据采集入口是 scripts/collect_data.py 与 collect_data.sh；demo_clean.yml 和 demo_randomized.yml 控制场景开关，默认保存 RGB、qpos 和双腕相机数据。策略训练本身不在 RoboTwin 主仓库中，而是通过 XPolicyLab/外部 policy 代码读取 HDF5 或转换后的 LeRobot 数据。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; benchmark 推理时固定 50 条 clean demonstrations 进行单任务训练，再在 Easy（干净）和 Hard（clutter、光照、纹理、桌高随机化）各执行 100 次 rollout。真实部署在 COBOT-Magic 双臂平台上，测试 seen/unseen background 与 clean/cluttered 四种组合。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; scripts/eval_policy.sh 统一启动 policy server 与 simulator；eval_policy_multitask.py 从任务配置读取 domain randomization，eval_policy_xpolicylab.py 将观测中的 language instruction 传给策略。RoboTwin 本身负责环境与成功判定，具体 action decoding 由 ACT、RDT、Pi0 等适配器实现。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;| 论文概念 | 官方代码位置 | 对照结论 |
| --- | --- | --- |
| MLLM 代码生成 | code_gen/task_generation_mm.py | 生成、插入观测点、执行和迭代修复均有实现 |
| VLM observer | code_gen/observation_agent.py | 读取 episode 图像，输出步骤级诊断 |
| Task API | envs/_base_task.py、envs/utils.py | grasp/place/move 等原语支撑任务脚本 |
| 域随机化 | envs/_base_task.py、env_cfg/task_config/demo_randomized.yml | 五轴中的视觉/空间轴在配置中可开关 |
| 数据采集 | scripts/collect_data.py | 支持多 embodiment、RGB/qpos/wrist camera 保存 |
| Policy 训练 | XPolicyLab 与外部仓库 | RoboTwin 仓库提供环境和数据，不内置完整 VLA 训练器 |&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-robotwin-2/real-world-experiment.5c1puzto9f.webp&quot; alt=&quot;RoboTwin 2.0 真实世界四种测试条件（论文 Figure 8）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 评估分为四部分：自动专家代码生成、embodiment-aware grasping、策略鲁棒性预训练、真实世界 sim-to-real，以及 50 任务 benchmark。主要 backbone 包括 ACT、DP、RDT、Pi0、DP3。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;| 实验 | 关键结果 |
| --- | --- |
| 代码生成 | RoboTwin 2.0 + MM feedback 的 ASR 为 71.3%，Vanilla 为 62.1%；Top5-ASR 为 78.6% |
| 迭代效率 | MM feedback 的平均修复轮数 CR-Iter 为 1.76，RoboTwin 1.0 为 2.42 |
| 抓取适配 | 五种 embodiment 平均成功率从 52.2% 提升到 60.5%，增幅 8.3 个百分点 |
| 仿真鲁棒性 | RDT + randomized 平均 24.8%，相对其 pretrained baseline 提升 31.9%；Pi0 + randomized 为 29.1% |
| 真实 few-shot | 10 条真实示教 + 1,000 条合成轨迹，在四种条件下平均提升 24.4 个百分点 |
| 真实 zero-shot | 仅合成数据在 unseen background 条件下仍提升 21.0/20.5 个百分点 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 改进主要出现在低 DoF 平台和复杂环境：Franka/UR5 已有较大可达空间，抓取候选扩展的边际收益小；Piper 的成功率提升 22.7 个百分点，说明“数据多”之外，动作是否对 embodiment 可行同样关键。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 代码生成消融把 Vanilla、仅执行日志反馈（FB）和日志 + VLM（MM FB）分开。RoboTwin 2.0 上 ASR 依次为 62.1%、66.7%、71.3%，说明符号日志和视觉诊断具有互补性；单独视觉反馈并不是替代执行器，而是帮助定位语义层错误。&lt;/p&gt;
&lt;p&gt;域随机化消融比较 clean 与 randomized 预训练。RDT 的平均成功率从 14.6% 提升到 24.8%，Pi0 从 24.9% 提升到 29.1%；增益在未见任务和随机化测试中更明显。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; benchmark 在 50 个任务上使用 50 条 clean demonstrations 训练，并用 100 rollouts 测 Easy/Hard。Hard 平均成功率为：RDT 13.7%、Pi0 16.3%、ACT 1.7%、DP 0.6%、DP3 5.0%。预训练 VLA 更抗域偏移，但 Pi0 从 Easy 到 Hard 仍下降 30.1 个百分点，说明通用预训练不能替代专门的 randomized data。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; DP3 在 clean few-shot 条件下较强，部分原因是仿真 point cloud 和背景分割近乎完美；这提醒我们 benchmark 的传感器假设会影响模型排名，真实部署时应报告感知噪声和标定误差。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; RoboTwin 2.0 同时作用于三个误差源：MLLM 闭环减少“程序语义错误”，affordance/embodiment 适配减少“运动学不可行”，域随机化减少“训练与部署分布差异”。三者串联后，合成数据不再只是数量扩张，而是带有质量控制和覆盖度设计。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;程序级闭环&lt;/strong&gt;：把执行结果变成可解释的 code repair 信号。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;结构化随机化&lt;/strong&gt;：五个轴分别对应真实部署中的视觉、空间和语言变化。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;跨 embodiment affordance&lt;/strong&gt;：抓取姿态候选显式编码机器人可达性。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;生成器 + benchmark 一体化&lt;/strong&gt;：同一任务 API 同时用于采集、训练和评测，降低复现实验的接口成本。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; GenSim 类方法重点是从语言生成新任务；RoboTwin 2.0 更进一步，把任务生成、失败诊断、随机化和多机器人执行放在同一闭环。它的主要产物是“可反复运行的数据生成系统”，而非一次性的 task script 或单一 policy。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;模拟器中的碰撞、摩擦、相机和控制误差足以覆盖真实变化的主要部分。&lt;/li&gt;
&lt;li&gt;物体 affordance 标注和 skill API 能表达 50+ 任务的关键交互。&lt;/li&gt;
&lt;li&gt;MLLM/VLM 的诊断能从十次 rollout 中定位可修复原因。&lt;/li&gt;
&lt;li&gt;语言、视觉和桌面随机化的组合不会引入与任务目标冲突的歧义。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 作者指出合成数据仍可能遗漏真实传感器噪声和罕见 edge case；embodiment adaptation 尚未建模 force/tactile feedback，因此对精细接触控制有限。未来工作包括提高 sim-to-real fidelity、支持更复杂的多物体任务与真实部署。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;VLM observer 依赖视觉帧和外部模型，诊断成本与延迟可能随任务长度增长；论文没有报告完整的 API 调用成本或失败诊断准确率。&lt;/li&gt;
&lt;li&gt;50 个任务虽覆盖广，但大多仍是桌面短时操作；长时序、动态物体和接触力主导任务的外推尚未验证。&lt;/li&gt;
&lt;li&gt;真实实验只在 COBOT-Magic 上展示四类任务，跨平台真实部署证据仍少于仿真 benchmark。&lt;/li&gt;
&lt;li&gt;benchmark 的 Hard 条件主要是视觉/空间随机化，尚未系统加入遮挡、深度缺失、执行器延迟等更强感知与控制扰动。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; RoboTwin 2.0 给 VLA 数据工程的启发是：扩充数据时要同时问“覆盖了哪些变化”“轨迹是否真的可执行”“是否适合目标硬件”。对后续研究，可以沿三条线推进：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;将 tactile、force 和接触事件加入 affordance 与 success checker，让随机化从视觉域扩展到交互域。&lt;/li&gt;
&lt;li&gt;把代码生成器产生的失败日志整理成可学习的 recovery policy，而不只用于离线修复脚本。&lt;/li&gt;
&lt;li&gt;在 benchmark 中拆分语言、视觉、运动学和传感器噪声的独立贡献，报告每个域轴的 scaling law。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果你的目标是训练一个新的 bimanual VLA，较稳妥的起点是先用 demo_randomized 数据做跨任务预训练，再用少量真实 demonstrations 做 embodiment 与相机标定适配；不要只在 clean simulation 上追求高成功率。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/143484250_p0_master1200.9ddjzdu0z1.webp"/><enclosure url="https://pic.hana0721.top/143484250_p0_master1200.9ddjzdu0z1.webp"/></item><item><title>RoboDojo 论文精读：统一仿真与真实世界的通用机器人操作评测基准</title><link>https://agusexp25.top/blog/paper-deep-dive-robodojo</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-robodojo</guid><description>精读 RoboDojo：用 42 个仿真任务、18 个真实任务和统一策略接口，系统诊断通用机器人操作策略的泛化、记忆、精度与部署可靠性。</description><pubDate>Thu, 27 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; RoboDojo 不是一个新的 Policy，而是一套把“能力诊断”和“物理部署验证”连成闭环的评测基础设施：仿真侧覆盖 Generalization、Memory、Long-Horizon、Precision、Open 五个维度，真实侧用三种双臂机器人检验接触、噪声和执行稳定性。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文的贡献可以拆成四层：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;统一的 sim-and-real pipeline&lt;/strong&gt;：相同的 observation/action 接口连接 Isaac Sim 与真实机器人，减少从仿真到实体部署的策略侧改造。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;RoboDojo Benchmark&lt;/strong&gt;：42 个仿真任务和 18 个真实任务；仿真任务覆盖五个能力维度，真实任务覆盖 ARX X5、Piper、Piper X 三种 embodiment。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;RoboDojo-RealEval&lt;/strong&gt;：固定机械臂、相机、灯光、工作区、场景 reset 与评分协议，并支持远程云端评测。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;XPolicyLab&lt;/strong&gt;：将 30 个机器人策略接入同一代码框架，配套训练、部署、转换和 leaderboard 流程。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-robodojo/teaser.41ysor4oja.webp&quot; alt=&quot;RoboDojo overall teaser from paper&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这项工作的价值不在于“任务数量更多”本身，而在于把 benchmark 从一次性的成功率表格变成持续的诊断循环：仿真快速定位能力短板，真实平台检查这些改进是否真的能安全执行。&lt;/p&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 现有操作 benchmark 往往有两个结构性问题。第一，任务虽然改变物体、布局或指令，但底层操作模式仍然相近，难以区分“看懂了新场景”和“真正学会了新能力”。第二，仿真与真实评测通常彼此割裂：仿真便宜且可扩展，却遗漏接触动力学、标定误差和执行噪声；真实机器人更接近部署，却昂贵、慢且难复现。&lt;/p&gt;
&lt;p&gt;RoboDojo 将相关工作中的互补思想组合起来：CALVIN 一类工作强调语言条件的长时序执行，RoboTwin 强调跨场景泛化，RMBench 关注记忆，精细操作工作关注精度，而 RoboDojo 试图在同一套协议下同时测量这些能力，并额外加入开放语义与真实世界部署。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 因而它更像“能力剖面（capability profile）”而不是单一总分。一个策略可能在 Long-Horizon 得分较高，却在 Precision 或 Open 几乎失效；这种差异比一个平均成功率更适合指导下一轮模型设计。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 给定一个带语言任务指令的双臂操作环境，策略接收同步的视觉与机器人状态观测，输出动作并完成 episode。RoboDojo 关心的不是某一个任务的最优策略，而是策略在多种能力维度和物理条件下的可靠性。&lt;/p&gt;
&lt;p&gt;| 项目 | RoboDojo 定义 |
| --- | --- |
| Observation | 仿真或真实环境的 RGB 相机流、机器人状态与语言指令；真实平台使用头部相机和双腕相机 |
| Action | 由各策略实现负责的关节、末端位姿或其他控制表示，通过统一接口发送给环境 |
| Simulation embodiment | ARX X5 双臂，双臂基座间距 0.6 m |
| Real embodiments | ARX X5、Piper、Piper X |
| Simulation tasks | 42 个，分为 Generalization 12、Memory 6、Long-Horizon 8、Precision 8、Open 8 |
| Real tasks | 18 个，每种 embodiment 6 个 |
| Metrics | Success Rate（完整成功）与 Score（允许中间步骤部分得分） |
| Evaluation budget | 仿真每任务 50 episodes；真实世界每任务 10 trials |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 仿真训练数据包含 35 个任务目录、3,500 条轨迹、1,859,602 帧（约 20.66 小时，25 Hz）；真实示教包含 1,800 条轨迹、1,611,841 帧（约 17.91 小时，25 Hz）。Open 维度不进入仿真训练集，用于测试技能重组和开放语义迁移。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;RoboDojo 的系统架构由三部分组成：配置驱动的 Isaac Sim 仿真平台、标准化的 RoboDojo-RealEval 真实平台，以及承上启下的 XPolicyLab。策略只需实现 observation 更新、action 预测、reset 和批量 query 等接口，就能在两种环境中运行。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-robodojo/tasks.robodojo.webp&quot; alt=&quot;RoboDojo task coverage from paper&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 数据流可概括为：任务配置与随机种子生成场景 → 环境输出统一 observation → XPolicyLab policy server 预测 action → 仿真或真实机器人执行 → success/score 记录并汇总到 leaderboard。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;配置驱动仿真与数字资产&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：YAML 任务配置、随机种子、资产元数据。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;中间模块&lt;/strong&gt;：Isaac Lab vectorized interface、MagicSim manager、场景构造器和 success checker。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：可复现的刚体、关节体或可变形物体场景，以及逐 episode 的观测和评分。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;作用&lt;/strong&gt;：任务定义与 simulator runtime 解耦，同一套执行器可以替换物体、布局、灯光和 reset 分布。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 资产库为每个物体记录类别、语言描述、放置区域、成功判定标注和 manipulation affordance。自动示教由 &lt;code&gt;grasp&lt;/code&gt;、&lt;code&gt;place&lt;/code&gt;、&lt;code&gt;handover&lt;/code&gt;、&lt;code&gt;insert&lt;/code&gt;、&lt;code&gt;open&lt;/code&gt;、&lt;code&gt;close&lt;/code&gt;、&lt;code&gt;stack&lt;/code&gt;、&lt;code&gt;push_up&lt;/code&gt; 等低层技能组合，并使用 cuRobo v2 规划；难以自动合成的任务则通过 VR teleoperation 收集。&lt;/p&gt;
&lt;h4&gt;Heterogeneous Parallelism&lt;/h4&gt;
&lt;p&gt;传统 vectorized simulation 克隆同一个场景模板，只改变 pose 或 seed。RoboDojo 让并行环境保留独立的对象类别、几何、干扰物数量、关节结构和布局，同时共享 stepping interface。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这一步的关键是把“并行”与“场景同质化”解耦。它既保持 GPU 吞吐，又避免策略只在重复的桌面模板上刷分。&lt;/p&gt;
&lt;h4&gt;RoboDojo-RealEval&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-robodojo/real_world_hardware.robodojo.webp&quot; alt=&quot;RoboDojo-RealEval hardware from paper&quot;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;固定因素&lt;/strong&gt;：机械臂和相机相对位姿、工作区几何、照明、桌面与场景布局。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;评测界面&lt;/strong&gt;：触屏网页用于 scene reset、运行策略、急停、视频采集和云端评分。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;布局复现&lt;/strong&gt;：把目标布局图与实时视频叠加，帮助评测者在每次 trial 前恢复一致初始状态。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;部署模式&lt;/strong&gt;：本地策略服务器或远程 policy server，通过统一通信协议连接真实机器人客户端。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 真实任务并不与仿真任务一一配对，因此 RealEval 不是严格的 paired sim-to-real transfer benchmark，而是对仿真能力的物理世界补充测试。&lt;/p&gt;
&lt;h4&gt;XPolicyLab&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-robodojo/xpolicylab_pipeline.robodojo.webp&quot; alt=&quot;XPolicyLab pipeline from paper&quot;&gt;&lt;/p&gt;
&lt;p&gt;XPolicyLab 统一数据转换、训练模板、部署流程、配置和评测脚本，同时保留每个 Policy 的内部架构。论文将 30 个策略接入共享代码库，使同一个实现可以先在仿真中快速迭代，再以很少的 policy-side adaptation 部署到 RealEval。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;分维度聚合&lt;/h4&gt;
&lt;p&gt;设五个能力维度为 $d\in{G,P,L,M,O}$，每个维度包含若干任务。论文最终的 overall 指标是维度均值：&lt;/p&gt;
&lt;p&gt;$$
S_{\mathrm{overall}}=\frac{1}{5}\sum_{d}S_d,\qquad
C_{\mathrm{overall}}=\frac{1}{5}\sum_{d}C_d.
$$&lt;/p&gt;
&lt;p&gt;其中 $S_d$ 是维度 $d$ 的平均 Success Rate，$C_d$ 是平均 Score。&lt;strong&gt;【Paper】&lt;/strong&gt; 采用维度均值而不是所有任务直接平均，避免任务数量较多的维度主导总分。&lt;/p&gt;
&lt;h4&gt;真实世界部分得分&lt;/h4&gt;
&lt;p&gt;对一个 trial，三位 evaluator 分别给出包含中间子步骤的分数 $c_1,c_2,c_3$，最终分数为：&lt;/p&gt;
&lt;p&gt;$$
C_{\mathrm{trial}}=\frac{c_1+c_2+c_3}{3}.
$$&lt;/p&gt;
&lt;p&gt;Success Rate 则只统计完整任务是否成功。&lt;strong&gt;【Analysis】&lt;/strong&gt; 这解释了为何真实世界常出现“Score 明显高于 Success Rate”：策略完成了部分动作，却在最后对齐、接触或阶段切换时失败。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; RoboDojo 本身不是单一训练算法。仿真示教来自自动轨迹合成和 VR teleoperation，真实示教采用同 embodiment 的 leader-follower teleoperation；XPolicyLab 为不同模型提供统一训练入口。评测 leaderboard 中大多数仿真策略使用三个随机种子，每个任务每个 seed 运行 50 trials；真实策略按 embodiment 训练一个 seed。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方仓库公开的是 benchmark、仿真环境和评测基础设施，具体 Policy 的训练超参数由 XPolicyLab 中各模型目录维护；论文附录列出代表性模型的 foundation checkpoint、batch size 和训练步数。论文未声称所有 30 个模型共享同一优化器或损失函数。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 推理阶段只依赖当前环境 observation 和任务指令。仿真中多个异构环境并行 step；真实世界中 policy server 通过通信协议返回 action，客户端负责机器人执行、reset、视频记录和安全终止。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 论文给出的官方代码入口为 &lt;a href=&quot;https://github.com/Luminis-Sim/Robodojo&quot;&gt;Luminis-Sim/Robodojo&lt;/a&gt;，项目文档和 leaderboard 分别位于 &lt;a href=&quot;http://robodojo-benchmark.com/&quot;&gt;robodojo-benchmark.com&lt;/a&gt; 与 &lt;a href=&quot;https://XPolicyLab.github.io&quot;&gt;XPolicyLab.github.io&lt;/a&gt;。从论文与公开仓库的职责划分可确认：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;benchmark 侧负责任务配置、资产、Isaac Sim/Isaac Lab 环境、异构并行、reset 与成功判定；&lt;/li&gt;
&lt;li&gt;XPolicyLab 侧负责策略适配、数据转换、训练模板、policy server 和评测脚本；&lt;/li&gt;
&lt;li&gt;RealEval 侧负责真实硬件客户端、布局复现、急停、视频和评分协议。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这是一种“薄适配层”设计：策略作者不需要重写每个 benchmark 的数据加载和部署逻辑，但仍需处理自身的相机预处理、动作空间和控制频率。论文没有给出一个所有策略共用的神经网络架构，因此不能把 RoboDojo 误读成新的 VLA 模型。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 仿真 benchmark 在 42 个任务、2,100 个 episodes 上评测（每任务 50 次），并报告五维 Success Rate 与 Score。Generalization 再拆为 25 个 standard 和 25 个 random episodes。真实 benchmark 在 18 个任务上运行 10 trials，共 180 次物理试验/策略，覆盖 ARX X5、Piper、Piper X。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-robodojo/real_highlight.robodojo.webp&quot; alt=&quot;Representative real-world tasks from paper&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 仿真和渲染使用 8 张 RTX 4090；RealEval 的效率实验在同一局域网内用 RTX 4090 policy server。人类参考由有经验的 VR 或真实机器人 teleoperator 完成，并不参与策略排名。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;仿真 leaderboard（3 Jul. 2026 版本）最值得关注的不是某个模型夺冠，而是“整体仍处于低成功率区间”：&lt;/p&gt;
&lt;p&gt;| Policy | Overall Score | Overall Success | 最强维度 |
| --- | ---: | ---: | --- |
| Hy-Embodied-0.5-VLA | 13.07 | 8.80% | Long-Horizon 25.74 / 14.92% |
| Spatial Forcing | 12.38 | 8.04% | Generalization 14.12 / 9.33% |
| $\pi_{0.5}$ | 11.41 | 6.91% | Open 1.98 / 1.67% |
| X-VLA | 10.13 | 6.52% | Precision 18.32 / 12.00% |
| Human teleoperation | 80.42 | 76.03% | 参考上限 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Hy-Embodied-0.5-VLA 在平均、Memory 和 Long-Horizon 领先；Spatial Forcing 在 Generalization 领先；X-VLA 在 Precision 领先；$\pi_{0.5}$ 在 Open 维度领先但仍只有 1.67% 成功率。维度间的领先者不同，说明“整体更强”不等于“每种能力都强”。&lt;/p&gt;
&lt;p&gt;真实世界的差距更大：$\pi_{0.5}$ 在 18 个任务上的 overall Score 为 22.9、Success Rate 为 12.8%；InternVLA-A1 为 12.0 / 7.2%，GalaxeaVLA 为 9.0 / 4.4%；人类 teleoperation 为 100 / 100。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; Score 与 Success Rate 的分离揭示了 physical execution bottleneck：策略往往能抓取、移动或放置其中几步，却无法稳定完成对齐、接触、阶段转换和错误恢复。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;论文没有把 RoboDojo 作为单一神经网络做传统“去掉某模块”的 ablation，而是对 benchmark 机制本身做受控比较：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;异构并行&lt;/strong&gt;：零动作 rollout 吞吐从 40.0 提升到 77.4 interactions/s，约 1.94×；加入 $\pi_{0.5}$ 推理后从 39.2 提升到 64.0，约 1.63×。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Standard vs Random&lt;/strong&gt;：Hy-Embodied-0.5-VLA 从 21.98 降到 1.57（下降 92.9%）；Spatial Forcing 从 21.25 降到 6.98（下降 67.2%），说明空间 grounding 有帮助但仍不够。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;跨 GPU 稳定性&lt;/strong&gt;：不同 RTX 4090 上 overall Success Rate 的最大标准差为 0.5 个百分点，Score 最大标准差为 0.49。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;真实重复性&lt;/strong&gt;：$\pi_{0.5}$、InternVLA-A1、GalaxeaVLA 三轮复测的 overall Success Rate 标准差不超过 1.3 个百分点，Score 标准差不超过 1.2。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Generalization 维度最多包含 25 个干扰物、随机背景、灯光、布局和目标物体；作者还提供 100 条与评测任务独立的 DLC trajectories 作视觉数据增强。Open 维度则故意不提供对应示教，测试模型能否把训练中见过的基础技能重组到新语义目标。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 结果显示，真正困难的是 scene-level shift 后的 metric grounding 与闭环控制，而不只是识别物体。Memory 任务要求记住已经离开视野的类别或演示顺序；Long-Horizon 要求保持阶段进度并处理双臂 handover；Precision 要求在狭窄接触空间中平滑修正；Open 则要求从语言意图落到可执行 affordance。这四类失败模式分别对应记忆检索、技能组合、接触控制和语义—动作对齐。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; RoboDojo 有效的第一原因是把可诊断性写进任务设计：五个维度近似正交，策略的强弱不会被一个大而杂的总分掩盖。第二原因是异构并行让高多样性场景的评测成本可接受。第三原因是 RealEval 把硬件、reset 和评分中的隐变量固定下来，使跨时间、跨用户比较更可信。第四原因是 XPolicyLab 降低接入成本，让 benchmark 能快速覆盖多种 action representation 和模型范式。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;能力维度化&lt;/strong&gt;：从“任务集合”升级为 Generalization / Memory / Precision / Long-Horizon / Open 的诊断矩阵。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;仿真异构并行&lt;/strong&gt;：并行环境不再要求场景同质化。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;可复现真实评测&lt;/strong&gt;：远程硬件、布局 replay、双盲评分和视频发布形成完整闭环。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;一次接入、两处评测&lt;/strong&gt;：统一 policy interface 连接 simulation 与 physical deployment。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; RoboDojo 与 VLA/Policy 方法的区别在于它不改变模型参数，而改变“模型如何被测量”。与只测仿真的 benchmark 相比，它加入真实世界的执行稳定性；与只测真实机器人的平台相比，它提供大规模、可重复、细分能力的仿真反馈；与只改变物体或语言的泛化测试相比，它显式构造记忆、精度、工具使用、双臂协同和开放语义等不同难点。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 维度均值能比任务均值更公平地表示综合能力。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 固定布局与隐藏验证布局能降低 leaderboard overfitting 和 gaming。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 真实任务虽不与仿真一一配对，但共享的能力信号足以支持定性比较；它不能直接给出严格的 sim-to-real transfer coefficient。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 统一接口减少工程差异，却无法消除各策略相机预处理、控制频率和 action horizon 的先验差别。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 真实世界评测受硬件成本、执行时间、人工 reset 和安全约束限制，因此只选取每种 embodiment 的 6 个任务，并非穷尽所有能力。Real benchmark 也刻意不构造仿真任务的一一对应版本。Leaderboard 仍需要隐藏布局、视频、checkpoint 与代码发布等治理流程来抵抗过拟合。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 第一，仿真数字资产和接触模型再丰富，也不能覆盖真实摩擦、柔性、传感器延迟和碰撞风险；因此高仿真分数不应被解释为部署保证。第二，真实每任务 10 trials 对低成功率策略的置信区间仍然较宽，任务级排名可能受偶然接触状态影响。第三，Score 的部分进度定义依赖 evaluator，跨任务的可加性弱于 Success Rate。第四，30 个策略的训练数据、算力和微调预算并不完全同质，leaderboard 更适合做系统诊断，不宜当作纯粹的模型架构竞赛。&lt;/p&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;从平均分转向能力曲线&lt;/strong&gt;：下一代 Policy 应报告五维 profile，并把 Precision、Memory、Open 的失败轨迹作为训练信号，而不是只优化熟悉的 pick-and-place。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;把 execution stability 作为一等目标&lt;/strong&gt;：真实世界暴露的 jitter、oscillation、contact instability 和 unsafe behavior，提示 action smoothness、接触感知和 recovery policy 应进入训练目标。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;让 benchmark 反过来驱动数据设计&lt;/strong&gt;：Generalization 的随机场景、Memory 的稀疏证据、Long-Horizon 的阶段切换和 Open 的新语义，都可以直接转化为针对性数据采集协议。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;仿真—真实闭环而非单向迁移&lt;/strong&gt;：仿真用于高频实验，真实平台用于最终校验；两者共享接口和日志后，可以研究“哪些仿真指标最能预测物理失败”，而不只是追求 paired task 的 transfer ratio。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;开放 leaderboard 需要治理&lt;/strong&gt;：隐藏布局、三随机种子、全 embodiment 覆盖、视频与代码发布，是让公开分数可复现、可审计的必要条件。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; RoboDojo 最重要的研究问题不是“谁在榜首”，而是：当一个策略在某个维度进步时，是否也改善了真实机器人上的安全性、平滑性和错误恢复？如果未来 benchmark 继续扩展任务并保持协议稳定，它可能成为连接 VLA 预训练、操作技能学习和真实部署工程的共同测量坐标系。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/131135880_p0_master1200.9rjzqc0dp5.webp"/><enclosure url="https://pic.hana0721.top/131135880_p0_master1200.9rjzqc0dp5.webp"/></item><item><title>RoboChallenge 论文精读：用远端机器人做大规模 VLA 真实评测</title><link>https://agusexp25.top/blog/paper-deep-dive-robochallenge</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-robochallenge</guid><description>精读 RoboChallenge：以远端机器人、视觉任务复现和 Table30，探索可扩展、可复现的真实机器人 VLA 评测。</description><pubDate>Thu, 27 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; RoboChallenge 关注的不是提出一个新的 Vision-Language-Action（VLA）policy，而是回答一个更基础的问题：当要在许多真实机器人、任务和候选模型上做评测时，如何兼顾可扩展性、可复现性与对不同控制范式的兼容性。论文给出在线真实机器人基础设施，并以 30 个桌面及桌边任务组成 Table30 初始 benchmark。&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 它把评测接口从「主办方运行你的模型」翻转为「你的程序远程读取机器人状态、再把动作放进队列」；随后用图像对齐来约束人类 reset 的初始状态。前者减少部署摩擦，后者针对真实机器人基准中最隐蔽、也最容易扭曲排名的变量。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;提出 &lt;strong&gt;remote robot&lt;/strong&gt; 范式：模型与推理代码始终运行在参赛者一侧，平台提供带时间戳的观测、动作队列与调度 API。&lt;/li&gt;
&lt;li&gt;建设包含 UR5、Franka Panda、Cobot Magic ALOHA、ARX-5 四类机器人的初始 10 台机器人 fleet，并提供多路 RealSense RGB-D 传感器。&lt;/li&gt;
&lt;li&gt;提出 Visual Task Reproduction：让测试员把实时相机画面与留出的参考首帧对齐，降低 reset 分布和测试员策略对结果的影响。&lt;/li&gt;
&lt;li&gt;发布 Table30：用 Success Rate（SR）和 Progress Score 区分「最终完成」与「已取得多少有效进展」，并报告五个已公开配置的基线结果。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方仓库 &lt;a href=&quot;https://github.com/RoboChallenge/RoboChallengeInference&quot;&gt;RoboChallengeInference&lt;/a&gt; 是参赛端示例、客户端与 mock server；它不包含论文中 $\pi_0$、$\pi_{0.5}$、CogACT 或 OpenVLA/OFT 的训练实现和 checkpoint。因此，本文对代码的讨论限定为评测通信与执行循环。&lt;/p&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 模拟器 benchmark 覆盖范围大、成本低，但数字孪生无法穷尽现实中的相机漂移、接触、道具差异和人类布置误差。真实机器评测不可省略，然而常见的三种提交方式各有缺陷：提交 checkpoint / model files 会遇到 CUDA、框架与硬件不匹配；提交 Docker image 仍难调试；由评测端调用参赛者线上 Model API 则要求用户有稳定公网入口，并天然偏向「停机—推理—执行」循环。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文特别指出 Real-Time Action Chunking 一类方法需要知道观测精确时间与动作排队状态，不能被简化为一个同步的 observation-to-action RPC。RoboChallenge 的目标因此不是仅托管若干任务，而是提供可让不同推理节奏和 temporal alignment 策略接入的真实机器低层接口。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这与只比较固定 policy checkpoint 的 benchmark 有本质差异：RoboChallenge 的比较单位是「一个声明的模型与其运行时控制系统」。它获得了实现自由度，也把模型声明是否诚实的问题留给了协议与社区治理。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 对一个任务 $\mathcal T$、参赛者控制程序 $\pi$ 与真实机器人 $R$，系统在时刻 $t$ 返回观测：&lt;/p&gt;
&lt;p&gt;$$
o_t={I_t^{(1)},\ldots,I_t^{(V)}, q_t, t_{\rm robot}, n_t},
$$&lt;/p&gt;
&lt;p&gt;其中 $I_t^{(v)}$ 是一个或多个 RGB / depth 相机流，$q_t$ 是与所选 action mode 对应的机器人状态，$t_{\rm robot}$ 是平台时间戳，$n_t$ 是尚待执行的动作数。参赛程序可在自己的机器上计算动作序列 $A_t=\pi(o_t,\mathcal T)$，连同每个动作的 duration 投递到 FIFO action queue；机器人按队列顺序执行。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 评测目标不是让所有模型共享某种 action representation。论文的平台支持 joint 或 end-point / position 控制；单臂或双臂的可用相机与动作维度随机器人而定。输入输出的契约是「状态—动作队列」，而不是某个 VLA 的 token format。&lt;/p&gt;
&lt;p&gt;| 要素     | RoboChallenge 的定义                                              |
| -------- | ----------------------------------------------------------------- |
| 观测     | 带时间戳的 RGB、depth、proprioception；代码示例以 pickle 字典返回 |
| 控制     | joint 或 position，支持 left / right / 双臂等 mode                |
| 时序     | 独立 capture 与 action submission；客户端可以查看 pending queue   |
| 执行端   | 用户本地 GPU 与模型；平台侧只运行机器人与测试 harness             |
| 评测输出 | 每个 task 的 SR、Progress Score、视频与记录                       |&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-robochallenge/remote-robot-api-crop.45iemgxa5j.webp&quot; alt=&quot;RoboChallenge 远端机器人接口与异步观测、动作队列（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; RoboChallenge Site 集中托管真实机器人、相机与 action queue；Challenge Participant 在任意地点运行自己的 Transformer / policy，通过 API 拉取 observation、提交 action。平台不交换 Docker 镜像或 checkpoint，只承诺观测和队列的时序接口。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;Remote robot API&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 用户可发 capture request 得到 RGB、depth 与 proprioception，并把带 duration 的动作送入 FIFO 队列。已经提交的动作不可撤回；平台同时返回当前队列长度，使用户可以自行实现同步控制、temporal alignment 或 action ensembling。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;robot/interface_client.py&lt;/code&gt; 的 &lt;code&gt;get_state()&lt;/code&gt; 请求 &lt;code&gt;state.pkl&lt;/code&gt;，发送图像尺寸、&lt;code&gt;image_type&lt;/code&gt; 和 &lt;code&gt;action_type&lt;/code&gt;；&lt;code&gt;post_actions()&lt;/code&gt; 将 &lt;code&gt;actions&lt;/code&gt; 与 &lt;code&gt;duration&lt;/code&gt; POST 到 &lt;code&gt;/action&lt;/code&gt;。客户端先做 10 次 &lt;code&gt;/clock-sync&lt;/code&gt; 采样，以两程时间的中点估计并平均 clock offset。每次动作提交会携带随机 hash，最多重试 5 次。&lt;/p&gt;
&lt;h4&gt;机器人与传感器&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 初始 fleet 含 UR5（6-DoF + Robotiq gripper）、Franka Panda（7-DoF，替换为 Robotiq gripper）、双 6-DoF 的 Cobot Magic ALOHA，以及桌面 ARX-5。论文列出选型约束：持续运行的耐久性、研究社区普及度、安全性，以及最高 100 Hz cyclic position control 与毫米级 repeatability。每台机器配有多台 RealSense RGB-D 相机，通常包括俯视主相机、腕部相机，单臂设置另有侧相机。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; README 指定 &lt;code&gt;left_hand&lt;/code&gt;、&lt;code&gt;right_hand&lt;/code&gt;、&lt;code&gt;high&lt;/code&gt; 为状态请求的相机位置；mock server 根据 &lt;code&gt;joint&lt;/code&gt; / &lt;code&gt;pos&lt;/code&gt; 与 left/right 前缀校验动作长度。它是本地调试用的仿真接口，不是平台真实机器人驱动。&lt;/p&gt;
&lt;h4&gt;Visual Task Reproduction&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-robochallenge/visual-task-reproduction-crop.362b9auj2m.webp&quot; alt=&quot;Visual Task Reproduction：测试员以参考画面叠加实时相机来复现任务初始状态（论文 Figure 5）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 人类测试员本身会造成很大方差：熟悉演示分布的人、第一次读任务说明的人、以及有动力为某个模型寻找「sweet spot」的人，会摆出不同的初始物体位置。平台从 demonstration 中抽取并留出 reference episodes；每次 rollout 将其中的首帧叠到实时预览上，测试员据此移动道具并检查桌面等因素。作者称之为 controlled tester，经验上其稳定性优于仅依赖「经验测试员」。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 它约束的是视觉输入而非物体的精确三维 pose。这很贴近 VLA 实际接收的信号，也避免了额外动作捕捉系统；但相机画面相似不必然代表遮挡、摩擦、物体重量或深度完全等价。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Table30 把每个任务分为若干 stage，并令每个 stage 有 progress points $p_k$。第 $r$ 次 rollout 的未归一化进度可概括为：&lt;/p&gt;
&lt;p&gt;$$
P_r=\sum_{k\in\mathcal C_r}p_k-0.5,n_r,
$$&lt;/p&gt;
&lt;p&gt;其中 $\mathcal C_r$ 是完成的 stages，$n_r$ 是 retry 次数。一个 stage 的 progress 若已降至负值，或连续失败 retry 超过 4 次，则该 rollout 被提前终止。论文将每个 rollout 的总 progress points 设为 10，每个 task 执行 10 次，故 task-level Progress Score 的满分为：&lt;/p&gt;
&lt;p&gt;$$
\mathrm{PS}(\mathcal T)=\sum_{r=1}^{10}P_r\le 100.
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Success Rate 则只衡量最终是否完成关键 stages：&lt;/p&gt;
&lt;p&gt;$$
\mathrm{SR}(\mathcal T)=\frac1{10}\sum_{r=1}^{10}
\mathbb{1}[\text{rollout }r\text{ 完成所有 critical stages}].
$$&lt;/p&gt;
&lt;p&gt;因此一次在最后一步失败的执行可以有较高 PS、零 SR；多次重试后勉强完成则可有正 SR、较低 PS。两者不能互相替代。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; RoboChallenge 本身不训练统一 policy，也没有 policy loss、optimizer 或公共 checkpoint。平台为每个任务提供最多约 1,000 条 demonstration episodes；用户自行选择 VLA 与 fine-tuning 方案。论文的 &lt;strong&gt;Task-specific&lt;/strong&gt; 设置使用每个任务的全部演示数据分别训练，典型地在 8 GPU 上耗时约一天；&lt;strong&gt;Generalist&lt;/strong&gt; 设置从每个任务取约 50 条样本混合训练，但只混合同一种机器人，因此更准确地说是 machine generalist。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 训练前，reference episodes 会从可训练演示中留出，以供 Visual Task Reproduction 使用；这使测试首帧不会直接落入同一批训练样本。论文没有报告这些基线的统一学习率、batch size、数据增广或 loss，不能把它们补写为 RoboChallenge 的标准训练配方。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 评测时，平台给出可执行窗口，用户在本地加载权重、分配 GPU、warm-up 推理引擎。骨架程序在机器人状态正常且 action queue 清空时取观测、推理并提交动作；等待队列清空后再取下一帧，因而示例走的是 steady-state 的 observe–infer–act cycle。论文同时强调，低层异步 API 并不强制所有用户采用这一周期。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;robot/job_worker.py&lt;/code&gt; 只在 job status 为 &lt;code&gt;ready&lt;/code&gt; 时启动机器人，循环中跳过非 &lt;code&gt;normal&lt;/code&gt; 状态或 &lt;code&gt;pending_actions != 0&lt;/code&gt; 的状态。&lt;code&gt;demo.py&lt;/code&gt; 的 &lt;code&gt;GPUClient.infer()&lt;/code&gt; 把完整 state 字典交给参与者实现的 &lt;code&gt;DummyPolicy.run_policy()&lt;/code&gt;；示例默认请求 $224\times224$ 的三路图像、&lt;code&gt;joint&lt;/code&gt; 控制和 0.05 秒 duration。这些是样例默认值，不是论文对所有 submission 的限制。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;| 论文中的能力   | 官方代码位置                | 可核对的实际行为                                                      |
| -------------- | --------------------------- | --------------------------------------------------------------------- |
| 参与者本地推理 | &lt;code&gt;demo.py&lt;/code&gt;                   | &lt;code&gt;DummyPolicy&lt;/code&gt; 是待替换接口；&lt;code&gt;GPUClient&lt;/code&gt; 将完整 state 传给用户 policy  |
| 任务调度与运行 | &lt;code&gt;robot/job_worker.py&lt;/code&gt;       | 轮询 job collection，遇到 &lt;code&gt;ready&lt;/code&gt; 的 job 后启动并驱动执行循环         |
| 状态与动作协议 | &lt;code&gt;robot/interface_client.py&lt;/code&gt; | &lt;code&gt;state.pkl&lt;/code&gt; 以 pickle 返回；&lt;code&gt;/action&lt;/code&gt; 以 JSON 投递动作序列和 duration |
| 时间对齐       | &lt;code&gt;robot/interface_client.py&lt;/code&gt; | 对 &lt;code&gt;/clock-sync&lt;/code&gt; 连续采样 10 次，使用平均 offset                      |
| 离线调试       | &lt;code&gt;mock_server/&lt;/code&gt;、&lt;code&gt;test.py&lt;/code&gt;   | FastAPI mock server 回放数据并校验 action mode / 维度，不连接真实平台 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 代码把「模型」刻意留为用户的实现空位，这正体现 remote robot 的边界：平台标准化机器交互与调度，而不试图标准化 VLA 内部。但这也意味着同名模型可以配不同 temporal policy、后处理甚至人为干预；仅靠结果表无法完全归因到 base model。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-robochallenge/table30-task-distribution-crop.4n8gb1ynvm.webp&quot; alt=&quot;Table30 的算法挑战、机器人类型、场景位置和目标物体分布（论文 Figure 7）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Table30 的 30 个任务均发生在桌面或桌边，却覆盖摆花、整理餐桌、折布、插网线、扫码、开抽屉、扫垃圾、浇花等不同活动。平台按 precise 3D localization、occlusion / multi-view、temporal dependence、long horizon、多物体识别、双臂协作和 soft body 等能力组织难点。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 每个 task 有 10 次 rollout；评分既看最后是否成功，也按 stage 累加 progress 并对 retry 罚分。作者的基线包括 $\pi_0$、$\pi_{0.5}$、CogACT 与 OpenVLA/OFT；论文的结果图和表实际列出了 $\pi_{0.5}$、$\pi_0$、CogACT 及两种 multi-task 配置共五个条目，不能据此推断未展示的 OpenVLA/OFT 数值。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-robochallenge/table30-score-distribution-crop.4qs28rrqnc.webp&quot; alt=&quot;Table30 各模型的 Success Rate 与 Progress Score 累积分布（论文 Figure 8）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 已报告条目的 30-task 平均值如下；SR 是百分比，PS 满分为 100：&lt;/p&gt;
&lt;p&gt;| 设置                          |  平均 SR |  平均 PS |
| ----------------------------- | -------: | -------: |
| $\pi_{0.5}$，Task-specific    | &lt;strong&gt;43.7&lt;/strong&gt; | &lt;strong&gt;62.2&lt;/strong&gt; |
| $\pi_0$，Task-specific        |     28.3 |     47.6 |
| CogACT，Task-specific         |     11.7 |     21.8 |
| $\pi_{0.5}$/multi，Generalist |     17.7 |     31.3 |
| $\pi_0$/multi，Generalist     |      9.3 |     20.6 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; $\pi_{0.5}$ 的 task-specific 曲线在 SR 和 PS 的各个排序百分位都领先。论文还观察到，在每任务仅约 50 条演示、按机器混合训练时，$\pi_{0.5}$/multi 在少数任务上能超过 task-specific 版本；这是一项关于该数据划分和基线的结果，并非对跨机器人通用能力的证明。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 该论文没有对一个新模型架构给出传统的模块消融表；其「ablation」更接近评测协议的设计诊断。作者让经验测试员、不了解数据的测试员和试图提升某个模型成绩的 adaptive tester 分别执行两个任务，发现测试者与物体摆放方式会显著改变 SR。后者还会在成功区域附近不断布置物体，形成 sweet-spot bias。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 为检验环境变化，作者对输入图像人为加入背景、遮挡等扰动，观察 VLA 输出仍大体一致；它支持「不必进行光学级复现」的设计判断，但只是 proof-of-concept，不是所有视觉扰动与所有模型的严格鲁棒性结论。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Table30 特意让任务难度、机器人、地点类别和目标物体性质多样化。跨任务平均表现最低的是 temporal（SR 5、PS 14）与 softbody（SR 8、PS 27）；precise3d 也偏难（SR 18、PS 38）。全体 30 个任务的平均为 SR 22、PS 37；simple-pick 标签的任务平均 SR 为 42。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这些数字说明评测集能区分当前模型，却不等于已证明对未见机器人、移动底盘、触觉任务或开放环境的泛化。Table30 的初始范围仍是固定桌面附近、夹爪操作与现有四种机器形态。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 远端访问让参赛者在熟悉的硬件和软件栈上保留完整控制循环，消除了「提交镜像在另一台机器跑不起来」这一与 policy 能力无关的失败源。视觉复现则将人类 reset 从隐含变量变成可操作流程：测试员不需要重演数据采集者的经验，只需要让模型实际会看到的画面接近 reference。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 最大创新不是某个 action decoder，而是评测接口与 protocol 的共同设计。时间戳、观测 buffer、action queue 让复杂 online control 有接口基础；reference-frame reset 又约束了真实世界里最难消除的初始分布偏移。两者缺一不可：只有 API 会留下人为 reset bias，只有统一 reset 又会把控制范式锁死在固定 runner 中。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;| 维度       | 提交模型 / Docker     | 评测端调用参赛者模型 API | RoboChallenge remote robot       |
| ---------- | --------------------- | ------------------------ | -------------------------------- |
| 推理运行处 | 主办方机器            | 参赛者服务器             | 参赛者本地 / 自己的算力          |
| 主要接口   | 权重或容器            | model input / output     | 带时间戳状态与动作队列           |
| 部署风险   | 环境、GPU、依赖不一致 | 公网可达性与服务维护     | 参与者需保持本地程序在线         |
| 控制节奏   | 常被 runner 固化      | 多为同步 RPC             | capture 与 action 可异步组织     |
| 可核验性   | 可检查提交物          | 可检查服务调用           | 最弱：平台无法确认实际运行的模型 |&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 方法假定：（1）参考图像足以约束对 policy 重要的初始状态；（2）不同用户能正确将自己的归一化、坐标系和 action duration 适配到 API；（3）用户不会把声称的 generalist 置换为 task-specific 模型，或引入 human-in-the-loop；（4）公开录像、模型/代码发布倡议和社区监督能提供足够的诚信约束；（5）同一 task 的 10 次 rollout 足以描述该设置的随机性。&lt;/p&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 推理运行在用户侧的直接代价是平台无法验证实际运行的模型是否与声明一致。用户理论上可以使用完全不同的方案、把本应是 multi-task generalist 的结果替换为独立调优的模型，甚至进行 human-in-the-loop 操作。论文的处理方式是信任参与者，并鼓励公开代码和模型。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 固定的 reference test cases 也可能让 submission 对这些特定测试初态过拟合；作者称截至写作时尚未观察到这种情形，但没有将其排除。平台目前采用更重视单模型稳定性的 benchmark protocol；随机抽取模型且测试员不知道模型身份的 comparative protocol 尚只是未来计划。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 评测的可扩展性仍受物理运营约束：道具准备、测试员、设备维护和排期可使等待时间达到数小时至数天。其次，真实机器与多机器人设置增加生态有效性，却也让同一 policy 的结果同时受相机标定、夹爪、机械臂控制器和场地状态影响。最后，官方仓库只公开接口骨架与 mock server，未给出论文基线的完整训练配方；读者应将 Table30 视为公开的测量结果，而非已可端到端复现的全部 baseline pipeline。&lt;/p&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 一个成熟的真实机器人 leaderboard 不该只发布单一 SR，而应同时发布初态协议、每步或分阶段成绩、视频、控制频率、观测延迟、动作队列状态及可能的人工干预记录。RoboChallenge 已把视频和 logs 纳入结果的一部分；下一步可考虑加密版本化的 policy artifact、受限随机 reference set、盲测 comparative protocol，以及把 action trace 与模型身份做可审计绑定。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 对 VLA 研究者而言，Table30 的低分标签也给出很具体的方向：单帧策略难处理 temporal dependence，$224\times224$ 输入对 precise 3D 操作是瓶颈，soft body 需要比纯视觉模仿更可靠的状态估计或交互反馈。比起只提高平均 SR，更值得追问的是某种 memory、3D representation、触觉或 closed-loop recovery 是否确实改善了这些失败模式。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/101003773_p0_master1200.3uvfruqg2c.webp"/><enclosure url="https://pic.hana0721.top/101003773_p0_master1200.3uvfruqg2c.webp"/></item><item><title>RoboCasa 论文精读：把日常机器人训练数据扩展到十万条轨迹</title><link>https://agusexp25.top/blog/paper-deep-dive-robocasa</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-robocasa</guid><description>精读 RoboCasa：用可交互厨房、LLM 任务设计与 MimicGen 轨迹扩增构建大规模仿真数据，并验证模拟数据的规模效应和真实迁移价值。</description><pubDate>Thu, 27 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;论文名称&lt;/strong&gt;：《RoboCasa: Large-Scale Simulation of Everyday Tasks for Generalist Robots》
&lt;strong&gt;作者&lt;/strong&gt;：Soroush Nasiriany、Abhiram Maddukuri、Lance Zhang 等
&lt;strong&gt;发表会议&lt;/strong&gt;：Robotics: Science and Systems（RSS 2024）
&lt;strong&gt;论文链接&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2406.02523&quot;&gt;arXiv:2406.02523&lt;/a&gt;
&lt;strong&gt;代码链接&lt;/strong&gt;：&lt;a href=&quot;https://github.com/robocasa/robocasa&quot;&gt;robocasa/robocasa&lt;/a&gt;
&lt;strong&gt;项目主页&lt;/strong&gt;：&lt;a href=&quot;https://robocasa.ai/&quot;&gt;RoboCasa&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; RoboCasa 不是单一策略或单一基准，而是一套面向日常厨房操作的可扩展数据生产线：用多样的可交互场景承载任务，用 LLM 提议有语义的复合活动，再用少量人类遥操作示教驱动 MimicGen 大规模合成轨迹；实验表明，生成数据从每任务 100 条增加到 3,000 条时，多任务行为克隆的成功率持续上升。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;构建厨房仿真框架：10 种平面布局与 12 种装修风格组合为 120 个场景，具有橱柜、抽屉和可改变状态的电器；资产库包含 2,509 个物体、153 个类别。&lt;/li&gt;
&lt;li&gt;定义 100 个任务：25 个 atomic tasks 覆盖抓放、开关门/抽屉、旋钮、按钮、插入和导航等 8 类基础传感运动技能；75 个 composite tasks 由 LLM 辅助提出并由人工实现。&lt;/li&gt;
&lt;li&gt;发布逾 10 万条轨迹的数据集：4 名操作者先收集每个 atomic task 的 50 条高质量示教，再以 MimicGen 扩增，从而降低大规模数据采集的人力门槛。&lt;/li&gt;
&lt;li&gt;在仿真中展示清晰的规模趋势，并在真实厨房中证明与仿真数据共同训练可以优于只用目标真实数据训练。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 机器人学习的瓶颈常常不是模型，而是覆盖足够物体、场景和任务变化的交互数据。真实数据昂贵、采集慢、容易受硬件和安全条件限制；但过于简单的仿真环境又无法提供日常操作所需的丰富物体、可动家具与长程任务组合。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; RoboCasa 建立在 RoboSuite 之上，选择厨房作为首个领域：它既包含抓取、放置等基础动作，也天然包含门、抽屉、开关与多物体整理等状态变化。论文将已有工作中的两个长处合并：一方面从大型仿真框架获得环境多样性，另一方面从 MimicGen 获得“少量真人 seed demonstration → 大量成功轨迹”的数据扩增能力。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这篇论文的关键不在于宣称“仿真替代真实”，而是把仿真看作可控的数据规模杠杆。场景/物体/任务多样性、轨迹生成与策略学习在同一系统内闭环，因而能问一个更严格的问题：在其他训练条件不变时，扩充成功示教是否真的带来策略收益？&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 给定语言指令 $l$、过去 $H$ 个观测 $o_{t-H+1:t}$，策略预测未来动作序列。论文的主要多任务实验使用 Franka Panda 加 Omron 移动底座，并以行为克隆训练 BC-Transformer：观测由三个相机画面、末端执行器位姿和移动底座位姿构成，输出为连续机器人动作。&lt;/p&gt;
&lt;p&gt;| 维度     | RoboCasa 论文设定                                          |
| -------- | ---------------------------------------------------------- |
| 环境     | 厨房；120 个由布局、风格与纹理组合的场景                   |
| 具身     | 轮式移动操作臂，也支持人形和带臂四足机器人                 |
| 基础技能 | 抓放、门/抽屉开关、旋钮、拨杆、按钮、插入、导航            |
| 任务     | 25 个 atomic tasks + 75 个 composite tasks                 |
| 观测     | 三路相机、末端执行器位姿、移动底座位姿、语言目标           |
| 训练目标 | 从示教学习条件策略，评估新物体及未见场景风格下的任务成功率 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 对于 atomic tasks，目标是学习一个共享的多任务策略；对于由多个技能串联的 composite tasks，论文改为每个任务各训练一个策略，并比较从头训练与从 atomic-policy 初始化后微调。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; RoboCasa 的数据流为：场景与资产随机化 → 任务规格 → 人类 seed demonstrations → MimicGen 轨迹扩增与成功筛选 → 多任务 imitation learning。论文的架构重点是数据生成与评测基础设施，而不是提出一个新的 policy network。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;可交互厨房与视觉随机化&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文收集常见厨房平面图并建模 10 种布局；再组合 Industrial、Scandinavian、Coastal、Modern 等 12 种风格。墙面、地板、台面和橱柜面板各有 100 张由 MidJourney 生成的纹理，可作为视觉 domain randomization。电器被处理为可关节化对象：例如微波炉门可开合、炉灶旋钮可旋转，且旋钮会触发炉眼点亮等状态变化。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这里的随机化不是只改背景颜色。布局改变可达性，家具与电器改变交互状态，纹理改变视觉外观；三者分别覆盖几何、动力学前提与感知域。它们共同决定“同一个语言任务”是否会在训练集中呈现足够多的实现方式。&lt;/p&gt;
&lt;h4&gt;任务层级：atomic 与 composite&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 25 个 atomic tasks 将 8 类基础技能显式拆开，便于复用轨迹分段逻辑；75 个 composite tasks 则描述“准备咖啡”“解冻食物”“整理食品柜”等有语义的厨房活动。任务设计分两步：先让 GPT-4 列出 20 类高层厨房活动，再由 GPT-4 或 Gemini 1.5 为每类活动提出代表性任务。论文明确说明，LLM 输出会被过滤或修改，最终任务仍需人工编程实现。&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h4&gt;MimicGen 轨迹扩增&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; MimicGen 先将一条 seed demonstration 分解为围绕参考物体的操作片段。面对新场景时，它按该参考物体的当前位姿变换每个片段、拼接为完整轨迹，并让机器人执行。只有最终成功的生成尝试被保留，因此生成过程带有 rejection sampling。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 该过程依赖两个前提：任务需具有已知的 object-centric subtask 序列，且 seed trajectory 要带有相应分段标注。RoboCasa 利用 8 个基础技能的共享结构缓解人工负担，例如所有抓放任务都能复用“抓取参考物 → 放置到目标物”的分段模板和终止检测器。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文的策略学习部分采用条件行为克隆。令 $o_{t-H+1:t}$ 是长度为 $H$ 的观测历史，$l$ 是语言指令，$a_{t:t+A-1}$ 是要预测的 $A$ 步动作序列，则可写为：&lt;/p&gt;
&lt;p&gt;$$
\hat a_{t:t+A-1} = \pi_\theta(o_{t-H+1:t}, l)
$$&lt;/p&gt;
&lt;p&gt;训练以示教动作监督预测动作：&lt;/p&gt;
&lt;p&gt;$$
\mathcal L_{\mathrm{BC}}(\theta) =
\mathbb E_{(o,l,a)\sim \mathcal D}
\left[\sum_{j=0}^{A-1} \ell!\left(\hat a_{t+j}, a_{t+j}\right)\right]
$$&lt;/p&gt;
&lt;p&gt;其中 $\mathcal D$ 可为人类遥操作数据或 MimicGen 生成数据；$\ell$ 是动作误差。&lt;strong&gt;【Paper】&lt;/strong&gt; 原文将具体 BC-Transformer 实现交由 RoboMimic，并未在正文为该损失指定单独的新公式；上式用于明确其监督对象，而非论文额外提出的算法贡献。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 轨迹生成的缩放变量是每任务示教数 $N$：Human-50、Generated-100、Generated-300 与 Generated-3000 仅在数据来源/规模上变化。实验由此将“更多生成数据是否有用”转化为受控比较。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 首先，4 名操作者用 3D SpaceMouse 为每个 atomic task 收集 50 条示教，共 1,250 条；每条示教均在随机厨房布局、风格和 AI 纹理下采集。随后，MimicGen 以这些示教为种子，对 24 个 non-navigation atomic tasks 每个合成 3,000 条轨迹，得到 72,000 条；另有 28,000 条使用 AI 生成物体的轨迹，组成逾 10 万条的发布数据。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 主实验用 RoboMimic 的 BC-Transformer 训练四个多任务数据设置。模型读取过去 10 帧观测和语言目标，预测未来 10 步动作；每步重规划一次。三个相机各用一个 ResNet-18 编码器，视觉特征由 FiLM 融合，再输入约 2,000 万参数、6 层的 Transformer。训练 50 万个 gradient steps，学习率 $10^{-4}$ 并使用 warmup。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 每个控制时刻，策略取最近 10 个观测、三路图像和语言目标，输出未来 10 步动作，但只执行第一步，下一时刻重新规划。这个 receding-horizon 设计让策略可用新的视觉反馈修正先前预测。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方仓库当前主分支已是后续的 RoboCasa365，而非论文 2024 初版：README 标注其扩展到 365 个任务、2,500+ 厨房场景及更多数据。因此下列代码观察描述的是项目的当前实现，不能当作原论文的实验设置。&lt;/p&gt;
&lt;p&gt;| 论文中的角色   | 当前代码位置                                                               | 可核查行为                                                                   |
| -------------- | -------------------------------------------------------------------------- | ---------------------------------------------------------------------------- |
| 仿真任务入口   | &lt;code&gt;robocasa/__init__.py&lt;/code&gt;                                                     | 注册 RoboCasa 环境，支持以 Gymnasium 方式创建任务。                          |
| 人类示教采集   | &lt;code&gt;robocasa/scripts/collect_demos.py&lt;/code&gt;                                        | 接收键盘/SpaceMouse 等设备输入，逐步执行动作，并将成功 episode 汇总为 HDF5。 |
| 数据集索引     | &lt;code&gt;robocasa/utils/dataset_registry_utils.py&lt;/code&gt;                                 | 按 &lt;code&gt;pretrain&lt;/code&gt;、&lt;code&gt;target&lt;/code&gt;、&lt;code&gt;real&lt;/code&gt; split 和 human/MimicGen 来源返回数据元信息。 |
| 数据下载与格式 | &lt;code&gt;robocasa/scripts/download_datasets.py&lt;/code&gt;、&lt;code&gt;docs/datasets/using_datasets.md&lt;/code&gt; | 当前发布数据支持 LeRobot 格式下载。                                          |
| MimicGen 使用  | &lt;code&gt;docs/use_cases/mimicgen.md&lt;/code&gt;                                               | 文档给出以已有 seed demonstrations 为起点生成新轨迹的流程。                  |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 代码演进本身很有信息量：论文建立的是“可扩展的接口与数据生产范式”，而非固定 100 任务的封闭系统。阅读复现实验时应固定到论文对应版本或数据快照；直接使用今日主分支能获得更多功能，却无法复现本文表格里的任务数与数据规模。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; atomic-task 对比包括 Human-50（25 task、每 task 50 条，合计 1,250 条）与 Generated-100/300/3000（24 task，分别合计 2,400/7,200/72,000 条）。训练图像使用 AI 纹理，评估时换为人工精选纹理；每个 task 在 5 个固定评估场景运行 50 次，并只评估未见物体实例。五个场景中有两个使用训练未见的风格。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; composite-task 实验选择 ArrangeVegetables、MicrowaveThawing、RestockPantry、PreSoakPan 和 PrepareCoffee：每个任务只有 50 条人类示教，比较从零训练与在 Generated-3000 atomic policy 上微调。真实机器人实验使用 DROID 硬件上的 Franka Panda，覆盖 counter→sink、sink→counter、counter→cabinet 三个抓放任务；每任务收集 50 条、横跨 5 种物体类别的真实示教。&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在 24 个 atomic tasks 上，Human-50 的总体成功率为 &lt;strong&gt;28.8%&lt;/strong&gt;，Generated-3000 为 &lt;strong&gt;47.6%&lt;/strong&gt;。从图中可见 Generated-100、Generated-300、Generated-3000 随数据量增大而逐步提升，说明收益并非只来自“生成轨迹替换人工轨迹”，还与规模直接相关。&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 不同技能的难度并不均匀：门/抽屉开关和按钮按压的成功率较高；抓放和插入较难。作者将其归因于物体可供性多样、精细接触要求更高等因素。该差异提醒我们，“总成功率提升”并不等于每种具身能力都已被解决。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 真实机器人中，Real only 在 seen objects 上平均成功率为 &lt;strong&gt;13.6%&lt;/strong&gt;，Real + Sim 为 &lt;strong&gt;24.4%&lt;/strong&gt;；在 unseen objects 上则由 &lt;strong&gt;2.6%&lt;/strong&gt; 升至 &lt;strong&gt;9.3%&lt;/strong&gt;。论文报告 seen-object 平均值相对提高 79%。这些结果支持仿真数据可作为真实小数据训练的补充，但绝对成功率仍有限。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文最核心的 ablation 是数据规模：Generated-100、Generated-300、Generated-3000 共享生成机制与策略训练设置，区别是每 task 的保留示教数。总体柱状图从 34.9%、35.2% 到 47.6% 上升，而 Human-50 为 28.8%。因此作者的结论是：经过成功筛选的自动生成轨迹能以较低人工成本形成可缩放的训练集。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 附录还以相同观测编码器比较 Diffusion Policy 与 BC-Transformer：在单阶段 PickPlaceCounterToSink 上，BC-Transformer 达到 56%，Diffusion Policy 为 12%。作者指出两者采用的 observation history 不同（BC-Transformer 为 10，Diffusion Policy 为 2），因而这不是对架构能力的完全隔离比较。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 仿真评估刻意把训练纹理与评估纹理分离，并保留未见物体实例、未见厨房风格，测试的是视觉与物体泛化，而不只是回放训练场景。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 对 composite tasks，从 atomic 数据预训练后再微调优于从零训练，并使 5 个任务中的 4 个获得非零成功率；但整体仍然困难。作者观察到的失败包括精细操作失误和阶段间切换失败。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 真实迁移与 composite 微调共同描述了一个边界：RoboCasa 的规模化数据能提供有用先验，但长程阶段组合与 sim-to-real 的视觉/控制差异不会因单纯增加单阶段成功轨迹而自动消失。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; MimicGen 让少量高质量示教承担“结构模板”的角色，把变化最大的部分——物体位置、场景配置和资产外观——交给仿真反复实例化。相比让人类为每种厨房状态重新遥操作，这种分工更适合规模化。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 生成过程仅保留完成任务的轨迹，避免把明显失败的动作作为 BC 标签；而 receding-horizon BC-Transformer 又能在每步使用最新观测重规划。前者提高监督数据的有效密度，后者降低动作序列一次预测到底的脆弱性。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文的创新组合可概括为：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;面向日常操作而设计的高交互性、大规模厨房仿真资产与场景。&lt;/li&gt;
&lt;li&gt;将 LLM 用于扩展“应该做什么”的任务语义空间，而不是让 LLM 直接控制机器人。&lt;/li&gt;
&lt;li&gt;将 MimicGen 与共享基础技能、自动分段逻辑耦合，系统化扩增多任务示教。&lt;/li&gt;
&lt;li&gt;用数据规模曲线、复合任务微调与真实 co-training 三组实验检查数据集是否真正对学习有用。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 单纯的 domain randomization 常把随机化视为缩小 sim-to-real 差距的手段；RoboCasa 还把它作为制造训练分布覆盖度的机制。单纯的 benchmark 常给定任务和数据；RoboCasa 重点展示如何持续生产数据。与端到端大模型路线相比，论文采用的 BC-Transformer 相对朴素，这反而使性能提升更容易归因于环境和数据规模。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; MimicGen 假设 task 能写成已知的 object-centric subtask 序列，并需要带分段信息的 seed demonstrations；这对高度结构化的厨房基础技能有效，但不适用于任意开放式操作。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 实验也假设仿真中的成功状态和物体位姿足够可靠，能够自动筛除失败生成轨迹。现实世界中通常没有同等完美的状态访问与 success oracle。&lt;/p&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 作者指出，composite task 的微调成功率仍低；MimicGen 轨迹虽满足任务成功，但可能出现抖动或碰撞。作者建议未来利用仿真状态自动检测并过滤这些不良轨迹。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; LLM 虽能提出活动和任务，但场景与任务实现仍需要人工引导和编程。论文还明确缺少高灵巧操作、可变形物体操作和双臂操作，并计划从厨房扩展到更多环境、结合其他模拟器、互联网视频与真实机器人数据。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 论文的规模曲线主要来自 atomic tasks，且只对 24 个 non-navigation tasks 用 MimicGen 扩增。因而它强力证明了“可分段的短程操作可以规模化”，却尚未证明长程、全身移动与开放世界任务具有相同的缩放规律。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 生成器的成功筛选可能使数据偏向容易完成的轨迹，弱化接触边界、恢复动作和罕见状态。BC 在这种数据上变好，并不保证机器人遇到失败前兆时也会更会纠错。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; Real + Sim 提升明显但绝对数值仍低，说明相机标定、控制频率、控制器和光照差异仍是不可忽略的 sim-to-real gap；不能把该实验读为“仅凭仿真即可部署”。&lt;/p&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; RoboCasa 提供的最有价值视角是把数据集当作系统，而不是一个静态下载文件。若要追求通用机器人，研究者需要同时设计：哪些状态变化值得被模拟、任务如何被组合、少量人类示教如何成为可复用模板、生成数据如何做质量控制，以及评测如何隔离“更多数据”与“更容易测试”的影响。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 一个自然的后续方向是让高层模型提出并验证新任务候选，但保留可执行性检查、碰撞/平滑度过滤及人工审核；另一个方向是为 composite task 显式学习子任务切换、失败恢复与层级策略，而非期望单一扁平 BC policy 自动从 atomic pretraining 中获得长程组合能力。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/86800103_p0_master1200.4qrwyrtj6a.webp"/><enclosure url="https://pic.hana0721.top/86800103_p0_master1200.4qrwyrtj6a.webp"/></item><item><title>Open X-Embodiment 论文精读：用跨机器人数据训练 RT-X 通用策略</title><link>https://agusexp25.top/blog/paper-deep-dive-open-x-embodiment</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-open-x-embodiment</guid><description>精读 Open X-Embodiment：统一 22 种机器人、60 个数据集与 RLDS 格式，并分析 RT-1-X/RT-2-X 如何从跨具身数据中获得正迁移。</description><pubDate>Thu, 27 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;论文名称&lt;/strong&gt;：《Open X-Embodiment: Robotic Learning Datasets and RT-X Models》&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;作者&lt;/strong&gt;：Open X-Embodiment Collaboration（作者按字母顺序列出）&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;论文链接&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2310.08864&quot;&gt;arXiv&lt;/a&gt;　&lt;strong&gt;项目主页&lt;/strong&gt;：&lt;a href=&quot;https://robotics-transformer-x.github.io/&quot;&gt;robotics-transformer-x.github.io&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;官方代码&lt;/strong&gt;：&lt;a href=&quot;https://github.com/google-deepmind/open_x_embodiment&quot;&gt;google-deepmind/open_x_embodiment&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-open-x-embodiment/oxe-overview.7sny9zvf5j.webp&quot; alt=&quot;Open X-Embodiment 数据与机器人多样性总览（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 本文的核心不是提出一个全新的网络，而是把分散在不同实验室、机器人和任务上的示教数据统一起来，并用 RT-1 与 RT-2 的跨具身版本（RT-1-X、RT-2-X）验证“大而杂”的机器人数据是否能带来正迁移。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;发布 Open X-Embodiment（OXE）数据集：1M+ 条真实机器人轨迹、60 个已有数据集、22 种 robot embodiments，覆盖 527 skills 与 160,266 tasks，数据来自 21 家机构（数据池包含 34 个 robotic research labs）。&lt;/li&gt;
&lt;li&gt;将数据转换为 RLDS 格式，使不同相机、动作空间和 episode 结构可以被统一读取。&lt;/li&gt;
&lt;li&gt;在 9 种机械臂的数据混合上训练 RT-1-X 与 RT-2-X，系统评估跨具身 co-training 的 in-distribution、OOD generalization 和 emergent skills。&lt;/li&gt;
&lt;li&gt;证明容量是关键：RT-1-X 在小数据域平均成功率比原方法高约 50%，而 55B 的 RT-2-X 在跨机器人新技能上达到约 3 倍于 RT-2 的表现。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; NLP 和 Computer Vision 已通过大规模预训练模型从“每个任务一个模型”走向通用 backbone；机器人学习却仍经常为每个任务、环境和机器人单独训练策略。原因不只是数据量小，更是 embodiment、相机、坐标系和控制频率都不一致。&lt;/p&gt;
&lt;p&gt;过去的跨机器人工作通常显式缩小 embodiment gap：共享 action representation、加入 embodiment conditioning、学习可迁移表征，或把机器人与环境因素解耦。OXE 采取了相反的实验立场：先做粗粒度数据对齐，直接把多种机器人数据喂给同一个 Transformer policy，观察是否已经存在正迁移。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这使论文更像一项基础设施与 scaling study：它把“能否训练机器人通用模型”的瓶颈，从单一算法设计转移到数据标准、混合策略和模型容量。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 给定语言指令 $l$、最近的图像历史 $I_{t-H+1:t}$ 和机器人状态，学习一个能在不同 embodiment 上执行的策略：&lt;/p&gt;
&lt;p&gt;$$
\pi_\theta(a_t \mid I_{t-H+1:t}, l, e),
$$&lt;/p&gt;
&lt;p&gt;其中 $e$ 表示由数据集约定的动作解释（例如绝对位置、位置增量或速度），而不是显式输入给模型的统一 embodiment id。&lt;/p&gt;
&lt;p&gt;| 项目 | 论文设定 |
| --- | --- |
| Observation | 每个数据集选择一个 canonical RGB camera view，并统一分辨率；输入还包括自然语言 task instruction |
| Action | 7-DoF end-effector action：$x,y,z$、roll/pitch/yaw 和 gripper；另加 episode termination，共 8 个维度 |
| Action representation | 每个维度均匀离散为 256 bins；归一化后按 embodiment 反归一化 |
| Dataset format | RLDS serialized TFRecord，支持变长 episode、不同相机模态和并行读取 |
| Training mixture | 实验时使用 9 个 manipulator 的机器人数据；OXE 完整仓库包含 22 种 embodiment |
| Inference | RT-1 在本地运行，RT-2 通过云端服务查询，控制频率约 3–10 Hz |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这里的“统一”并不是把所有机器人变成同一坐标系：论文明确保留各数据集原本的 absolute/relative/velocity 语义，因此模型输出的同一个 token 在不同 embodiment 上可能对应完全不同的运动。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-open-x-embodiment/rtx-architecture.86ue0v3qzc.webp&quot; alt=&quot;RT-1-X 与 RT-2-X 架构及离散动作输出（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 两个模型共享“图像 + 语言 → 离散 end-effector action”的接口：RT-1-X 使用 FiLM-conditioned EfficientNet 与 decoder-only Transformer；RT-2-X 则把动作序列写成文本 token，与 Web-scale vision-language 数据 co-fine-tune。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;Open X-Embodiment Dataset 与 RLDS&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：来自 60 个数据集的原始 episode，可能含多个 RGB/深度相机、点云和不同自由度动作。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;处理&lt;/strong&gt;：选定一台 canonical camera，调整图像分辨率；将原动作映射为 7-DoF end-effector 字段并逐数据集归一化。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：RLDS episode，包含 observation、action、语言标注和 episode 边界。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要&lt;/strong&gt;：没有共享 schema，DataLoader 无法在不同机构的数据之间切换，跨具身训练也就无法复现。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方仓库的 README 说明每个数据集都是 RLDS episode；Colab 展示了 &lt;code&gt;tfds.load&lt;/code&gt;、episode 可视化、批处理和 checkpoint 推理。仓库还提供数据集元数据 spreadsheet，但没有在代码仓库中放入完整的 1M+ 轨迹。&lt;/p&gt;
&lt;h4&gt;RT-1-X：机器人专用 Policy&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：长度为 15 的 RGB 图像历史和 USE language embedding。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;视觉编码&lt;/strong&gt;：ImageNet-pretrained EfficientNet-B3 + FiLM，将语言条件注入视觉特征；Token Learner 压缩为 81 个 image tokens。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;时序建模&lt;/strong&gt;：8 层 Transformer，默认 8 heads；动作 token 作为占位 token 拼接到图像 token 后。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：每个时间步 11 个 token，覆盖 termination、3 个 world-vector、3 个 rotation、gripper 和 base 相关维度。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;models/rt1.py&lt;/code&gt; 中 RT-1-X 推理配置为 &lt;code&gt;num_image_tokens=81&lt;/code&gt;、&lt;code&gt;num_action_tokens=11&lt;/code&gt;、&lt;code&gt;layer_size=256&lt;/code&gt;、&lt;code&gt;vocab_size=512&lt;/code&gt;，并将 &lt;code&gt;world_vector_range&lt;/code&gt; 改为 &lt;code&gt;(-2, 2)&lt;/code&gt;。代码默认不使用前一时刻 action token，而是将其置零。&lt;/p&gt;
&lt;h4&gt;RT-2-X：VLM-to-VLA&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; RT-2-X 基于 RT-2-PaLI-X（ViT + UL2），把 8 维离散动作写成类似自然语言的数字序列，在约一比一的 WebLI/VLM 数据与机器人数据混合上 co-fine-tune。这样 Web pretraining 提供视觉和语言泛化，机器人数据把抽象语义落到 action tokens。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; RT-2-X 的关键增益不是新的 action decoder，而是让高容量 VLM 有足够参数吸收跨机器人、多任务分布；这也解释了 RT-1-X 在大数据域出现 underfitting，而 55B RT-2-X 能恢复性能。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;p&gt;动作离散化对每个连续维度 $a^d$ 使用数据集专属范围 $[l_d,u_d]$：&lt;/p&gt;
&lt;p&gt;$$
k^d = \left\lfloor \frac{\operatorname{clip}(a^d,l_d,u_d)-l_d}{u_d-l_d}(V-1) \right\rfloor,
$$&lt;/p&gt;
&lt;p&gt;其中 $V$ 是词表大小，$k^d\in{0,\ldots,V-1}$。&lt;strong&gt;【Paper】&lt;/strong&gt; RT-X 论文主实验描述 256 bins；&lt;strong&gt;【Code】&lt;/strong&gt; JAX RT-1-X 示例使用 &lt;code&gt;vocab_size=512&lt;/code&gt;，说明开源 checkpoint/config 与论文版本存在实现差异。&lt;/p&gt;
&lt;p&gt;两个模型都使用分类交叉熵：&lt;/p&gt;
&lt;p&gt;$$
\mathcal L(\theta)=-\sum_{t,d}\log p_\theta(k^d_t\mid I_{t-H+1:t},l).
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; RT-1 的 &lt;code&gt;tokenize_action&lt;/code&gt; 先对各字段 clip、归一化并转成整数 token；&lt;code&gt;detokenize_action&lt;/code&gt; 再按相同范围还原连续动作。代码中 &lt;code&gt;terminate_episode&lt;/code&gt; 是 3 类 one-hot，而运动与夹爪字段按 vocab bins 解码。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; RT-1-X 仅使用机器人数据；RT-2-X 采用机器人数据与原始 VLM 数据约一比一的 co-fine-tuning。动作在离散空间上进行 categorical cross-entropy 训练。实验混合数据来自 RT-1、QT-Opt、Bridge、Task Agnostic Robot Play、Jaco Play、Cable Routing、RoboTurk、NYU VINN、Austin VIOLA、Berkeley UR5、TOTO 和 Language Table 等数据集。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;models/rt1_inference_example.py&lt;/code&gt; 将输入图像 resize 到 &lt;code&gt;300×300&lt;/code&gt;、缩放到 &lt;code&gt;[0,1]&lt;/code&gt;，JAX forward 后对最后时间步的 action logits 做 softmax/argmax，再调用 &lt;code&gt;detokenize_action&lt;/code&gt;。若预测出的 termination 无效，示例代码回退到 base pose 模式。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;| 论文描述 | 官方代码对应 | 需要注意的差异 |
| --- | --- | --- |
| RT-1-X 架构 | &lt;code&gt;models/rt1.py&lt;/code&gt; 的 &lt;code&gt;RT1&lt;/code&gt;、&lt;code&gt;ImageTokenizer&lt;/code&gt;、&lt;code&gt;Transformer&lt;/code&gt; | JAX 实现默认使用 SwiGLU FFN，并提供 Token Learner 开关 |
| Action tokenization | &lt;code&gt;tokenize_action&lt;/code&gt; / &lt;code&gt;detokenize_action&lt;/code&gt; | 示例 checkpoint 使用 512 vocab，论文正文写 256 bins |
| 数据读取 | &lt;code&gt;colabs/Open_X_Embodiment_Datasets.ipynb&lt;/code&gt; | 依赖 TFDS/RLDS；完整数据通过外部 bucket/TFDS 获取 |
| 推理 | &lt;code&gt;models/rt1_inference_example.py&lt;/code&gt; | 只提供 RT-1/RT-1-X JAX 推理示例；仓库未提供 RT-2-X 训练实现 |&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-open-x-embodiment/oxe-overview.7sny9zvf5j.webp&quot; alt=&quot;OXE 数据集构成：数据集、embodiment、轨迹、技能与对象多样性（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文共进行 3,600 次试验，覆盖 6 个真实机器人。小数据域包括 Kitchen Manipulation、Cable Routing、NYU Door Opening、AUTOLab UR5 和 Robot Play；大数据域包括 Bridge 与 RT-1 paper data。比较对象是各数据集原作者方法、单数据集 RT-1，以及 RT-X。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-open-x-embodiment/rt1x-results.pg2udq06r.webp&quot; alt=&quot;RT-1-X 在五个小数据域及均值上的成功率比较（论文 Figure 4）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在 5 个小数据域中，RT-1-X 有 4 个超过 Original Method；图中均值约为 Original Method 的 1.5 倍，提升主要来自数据稀缺域的正迁移。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在大数据域，RT-1-X 在 Bridge 上为 27%、Google Robot 任务上为 73%，低于单域 RT-1 的 40% 和 92%；55B RT-2-X 则分别达到 50% 和 91%。这说明小模型无法充分吸收大而杂的数据，高容量 VLM 才能在数据丰富域中维持竞争力。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-open-x-embodiment/rt2x-emergent.58i3xcvhff.webp&quot; alt=&quot;RT-2-X 跨 embodiment emergent skills 任务示例（论文 Figure 5）&quot;&gt;&lt;/p&gt;
&lt;p&gt;| 设置 | Emergent skills | RT-2 generalization |
| --- | ---: | ---: |
| RT-2 55B，仅 Google Robot action | 27.3% | 62% |
| RT-2-X 55B，完整 robotics data | 75.8% | 61% |
| RT-2-X 55B，去掉 Bridge | 42.8% | 54% |
| RT-2-X 5B，history=2 | 44.4% | 52% |
| RT-2-X 5B，无 history | 14.5% | 30% |
| RT-2-X 5B，从零开始且无 Web pretraining | 0% | 1% |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 完整 RT-2-X 55B 在 Google Robot 上执行 Bridge 数据中出现、但 Google Robot 原始数据没有的技能，成功率达到 75.8%，约为 RT-2 的 3 倍。去掉 Bridge 后降至 42.8%，支持“跨机器人数据带来技能迁移”的解释。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在 unseen objects、backgrounds 和 environments 的 RT-2 generalization 测试中，RT-2 与 RT-2-X 接近（62% vs 61%）。因此 OXE 的主要新证据不是进一步提升已有 VLM 的视觉泛化，而是让目标机器人获得原数据集中不存在的行为技能。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这一区分很重要：跨 embodiment co-training 对“看起来不同”的场景未必有额外收益，但对“做什么”有明显收益；数据中的技能覆盖和模型容量共同决定正迁移能否发生。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; OXE 同时扩大了三种覆盖：物体/场景、语言技能、机器人 embodiment。对小数据域，其他机器人的相似操作提供了视觉与动作先验；对大模型，Web pretraining 负责语义和视觉抽象，机器人混合数据负责把抽象语义落到控制动作。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 真正的创新组合是“社区数据协作 + 统一 RLDS schema + RT-X 基线模型 + 可复现实验”。论文有意不把贡献包装成新的 Policy architecture，而是建立一个可持续扩展的 X-embodiment substrate。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 以往方法通常先学习 embodiment-invariant representation 或显式做 action translation；RT-X 只做粗粒度字段对齐，不输入 embodiment id，也不对坐标系做统一转换，直接让 Transformer 在数据中学习条件化的动作语义。这种简单性降低了接入成本，但把压力转移给数据质量与模型容量。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 7-DoF end-effector action 足以覆盖本文评估的机械臂任务。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 每个数据集可以选出有代表性的 canonical camera，并接受不同视角仍存在较大差异。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 模型能够从视觉和语言上下文隐式推断动作字段的 embodiment-specific 语义；当传感器或执行器差异更大时，该假设可能失效。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 实验没有覆盖 sensing/actuation modality 差异极大的机器人，也没有测试对全新机器人（训练中未出现的 embodiment）的泛化；论文没有给出何时正迁移、何时负迁移的通用判据。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;【Analysis】粗对齐的动作语义存在歧义。&lt;/strong&gt; 相同的 token 可能表示绝对位姿、增量或速度，训练数据的比例变化会改变策略的隐式坐标系。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Analysis】数据混合存在长尾与来源偏差。&lt;/strong&gt; Franka 数据在场景多样性上占主导，xArm 与 Google Robot 贡献了大量轨迹；采样权重会直接影响迁移方向。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Analysis】图像单视角限制了可观测性。&lt;/strong&gt; README 明确 RT-1-X 当前只接收 workspace RGB，不接 wrist camera、in-hand camera 或 depth。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Analysis】评估主要是成功率。&lt;/strong&gt; 论文证明了行为是否完成，却较少报告动作平滑度、能耗、碰撞风险和跨实验室部署成本。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;从“统一动作空间”转向“可解释的动作条件”。&lt;/strong&gt; 后续模型可以显式输入 embodiment、坐标系和控制模式，减少同一 token 多重语义造成的负迁移。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;数据规模之外还要研究 mixture law。&lt;/strong&gt; OXE 提供了规模，但哪些数据应过采样、哪些技能能跨机器人迁移，仍需要 dataset-level attribution 与 gradient conflict 分析。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;用 RLDS 作为机器人数据的公共 ABI。&lt;/strong&gt; 统一 schema 的价值不只在下载方便，它还允许不同 Policy、评估器和仿真器复用同一数据管线。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;评估“新机器人”而非只评估“新技能”。&lt;/strong&gt; 真正的 robot generalist 应在训练未见的 kinematics、camera 和 actuator 上零样本或少样本适配。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;RT-X 是路线而非终点。&lt;/strong&gt; 论文展示了正迁移可行，但也清楚暴露了容量、数据偏差和传感器异构性三个下一阶段瓶颈。&lt;/li&gt;
&lt;/ol&gt;</content:encoded><h:img src="https://pic.hana0721.top/131135880_p0_master1200.9rjzqc0dp5.webp"/><enclosure url="https://pic.hana0721.top/131135880_p0_master1200.9rjzqc0dp5.webp"/></item><item><title>Open-H-Embodiment 论文精读：让医疗机器人也拥有可扩展的基础模型数据</title><link>https://agusexp25.top/blog/paper-deep-dive-open-h-embodiment</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-open-h-embodiment</guid><description>精读 Open-H-Embodiment：780 小时、20 种医疗机器人平台的数据基础设施，以及 GR00T-H 和 Cosmos-H-Surgical-Simulator 的跨具身验证。</description><pubDate>Thu, 27 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;论文名称&lt;/strong&gt;：《Open-H-Embodiment: A Large-Scale Dataset for Enabling Foundation Models in Medical Robotics》&lt;br&gt;
&lt;strong&gt;作者&lt;/strong&gt;：Open-H-Embodiment Consortium（首位作者 Nigel Nelson 等）&lt;br&gt;
&lt;strong&gt;发表形式&lt;/strong&gt;：arXiv 预印本（2026）&lt;br&gt;
&lt;strong&gt;论文链接&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2604.21017&quot;&gt;arXiv:2604.21017&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;数据集&lt;/strong&gt;：&lt;a href=&quot;https://huggingface.co/datasets/nvidia/PhysicalAI-Robotics-Open-H-Embodiment&quot;&gt;Hugging Face&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;代码&lt;/strong&gt;：&lt;a href=&quot;https://github.com/open-h/open-h-embodiment&quot;&gt;Open-H 数据仓库&lt;/a&gt;、&lt;a href=&quot;https://github.com/NVIDIA-Medtech/GR00T-H&quot;&gt;GR00T-H&lt;/a&gt;、&lt;a href=&quot;https://github.com/NVIDIA-Medtech/Cosmos-H-Surgical-Simulator&quot;&gt;C-H-S-S&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-open-h-embodiment/overview.webp&quot; alt=&quot;Open-H 数据集与两条基础模型路线（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 医疗机器人领域真正缺的不是又一个窄任务策略，而是能跨机构、跨设备、跨任务共享的训练数据。Open-H 收集 119 个数据集、780 小时的同步视频与运动学，覆盖 20 种平台和 33 类任务；在此之上，GR00T-H 证明医疗领域的 post-training 能提升 VLA 的长程成功率，Cosmos-H-Surgical-Simulator（C-H-S-S）则证明单个动作条件世界模型可以服务多种手术机器人。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;建立首个大规模、跨具身、多机构的医疗机器人数据集：超过 50 家机构、125,815 个 episode、780 小时配对视频和运动学，统一为 LeRobot v2.1 格式。&lt;/li&gt;
&lt;li&gt;发布 GR00T-H：在 601 小时真实手术子集上 post-train GR00T-N1.6-3B，支持相对末端执行器控制和具身专属 action head。&lt;/li&gt;
&lt;li&gt;发布 C-H-S-S：在 9 种具身、32 个数据集上微调 Cosmos-Predict 2.5-2B，用 44 维统一动作空间生成未来手术视频。&lt;/li&gt;
&lt;li&gt;给出可复现实验：GR00T-H 在 SutureBot 上达到 25% 端到端完成率（其他基线为 0%），在 29 步离体缝合序列上达到 64% 平均子任务成功率。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 通用机器人已经通过 Open-X-Embodiment、Octo、OpenVLA 等工作验证了“跨具身数据 + 大模型预训练”的规模效应，但手术机器人仍停留在 JIGSAWS（约 3 小时）、SutureBot（约 6 小时）等单机构、单平台数据集。临床数据采集还要面对 IRB、隐私、专有控制接口、同步和安全审查，导致数据难以公开和复用。&lt;/p&gt;
&lt;p&gt;这造成了一个特殊的 domain gap：手术动作比普通桌面抓取更长程、更接触密集，也更依赖组织形变和器械状态。论文引用的 SutureBot 结果显示，直接把通用 VLA 拿来做缝合，甚至不如在单一平台上从零训练的 ACT。问题因此不只是模型容量，而是模型没有见过足够多的医疗视觉—运动关联。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; Open-H 的关键判断是把“医疗机器人基础模型”拆成两层：先用统一数据学习可迁移的视觉、语言和运动先验，再在目标机构用少量数据做具身/任务适配。这与为每台机器人单独训练一个 policy 的路线不同，也让世界模型、视觉表征和规划器共享同一数据基础设施。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 数据层面，Open-H 要求每个样本至少有同步视频和运动学，并附带任务 prompt、平台说明、同步方式、控制坐标系和数据多样性等 README 元数据。数据覆盖五种环境真实性层级：数字仿真（84 小时）、benchtop/phantom（119 小时）、ex vivo（75 小时）、in vivo（3 小时）和临床人体手术（499 小时）。&lt;/p&gt;
&lt;p&gt;| 维度 | Open-H 设定 |
| --- | --- |
| 观测 | 单目/双目内窥镜、wrist/第三视角 RGB、深度、超声，部分数据含 gaze 与力 |
| 动作 | 原始关节或笛卡尔轨迹；GR00T-H 统一为相对 EEF + 6D rotation |
| 具身 | Versius、da Vinci、dVRK、MIRA、BiTrack、Maestro、Franka、UR5e 等 20 个平台 |
| 任务 | 缝合、打结、组织操作、peg transfer、超声扫描、内窥镜导航等 33 类 |
| 规模 | 119 数据集、125,815 episodes、780 小时 |
| 发布格式 | LeRobot v2.1；视频 MP4、运动学 Parquet，CC-BY-4.0 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; GR00T-H 学习的是从多视角视觉与语言到相对末端动作 chunk 的映射；C-H-S-S 学习的是给定当前帧和未来运动学，生成 12 帧后续视频。两者共享数据，但前者输出动作，后者预测动作造成的视觉后果。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-open-h-embodiment/overview.webp&quot; alt=&quot;Open-H 的机构、机器人、任务和两条模型路线（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 数据经 LeRobot v2.1 统一后，一路进入 GR00T-H 的 VLA post-training，另一路进入 C-H-S-S 的动作条件视频生成；前者用于真实机器人控制，后者用于仿真评估与合成数据。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;Open-H 数据层&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：各机构原始视频、关节/末端轨迹、语言或阶段标注。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;处理&lt;/strong&gt;：转换为 LeRobot v2.1，并为每个数据集保留平台专属 README；对超声参数、手术阶段、主动器械等扩展字段提供规范。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：可由统一 DataLoader 读取的多具身 episode。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要&lt;/strong&gt;：仅统一张量维度会隐藏 clutch、线缆迟滞、未驱动器械等语义；README 把这些“数据外知识”显式交给下游用户。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-open-h-embodiment/dataset-composition.webp&quot; alt=&quot;Open-H 数据组成：平台、环境和任务分布（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;h4&gt;GR00T-H Policy&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;基础模型&lt;/strong&gt;：GR00T-N1.6-3B 的 VLM backbone + DiT action expert。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;动作表示&lt;/strong&gt;：所有数据转成相对 EEF 控制，平移为相对位移，旋转用连续的 6D rotation；每个机器人配置保留独立 action head。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;采样&lt;/strong&gt;：601 小时真实手术数据；Versius 采样比例封顶 20%，其余按数据规模采样。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;归一化&lt;/strong&gt;：按数据集统计量做 weighted moment matching，统计到每个具身、动作维度和 chunk 时间步，z-score 后裁剪到 &lt;code&gt;[-5, 5]&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么有效&lt;/strong&gt;：相对动作减少模型学习每种机器人的 forward kinematics；独立 head 则允许吸收不同器械的线缆伸缩、磨损和映射差异。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Cosmos-H-Surgical-Simulator&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：一张 context frame 与 12 个动作向量。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;中间模块&lt;/strong&gt;：Cosmos-Predict 2.5 的 VAE latent、2B DiT 去噪器和按时间步注入动作的 MLP。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：12 帧未来视频；自回归连接 6 个 chunk 可得到 72 帧轨迹。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;统一动作空间&lt;/strong&gt;：44 维向量，较短的具身动作通过 zero-padding 对齐；平移采用 relative 格式，旋转采用 6D 表示。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;用途&lt;/strong&gt;：重放真实动作评估视频预测，也可作为 policy 的 in-silico 环境和合成数据生成器。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;GR00T-H 的跨具身动作归一化&lt;/h4&gt;
&lt;p&gt;对具身 $e$ 的动作 chunk $a^{(e)}_{1:K}$，论文采用逐维、逐时间步的 z-score：&lt;/p&gt;
&lt;p&gt;$$
\tilde a^{(e)}&lt;em&gt;{k,d}=\operatorname{clip}\left(\frac{a^{(e)}&lt;/em&gt;{k,d}-\mu^{(e)}&lt;em&gt;{k,d}}{\sigma^{(e)}&lt;/em&gt;{k,d}},-5,5\right)
$$&lt;/p&gt;
&lt;p&gt;$k$ 是 chunk 内时间步，$d$ 是动作维度，$\mu$ 与 $\sigma$ 来自按训练混合比例加权合并的统计量。&lt;strong&gt;【Analysis】&lt;/strong&gt; 保留 $k$ 维度让模型区分“马上执行”的动作和 chunk 尾部动作，避免一个全局统计量抹平时间结构。&lt;/p&gt;
&lt;h4&gt;C-H-S-S 的动作条件生成&lt;/h4&gt;
&lt;p&gt;$$
\hat v_{t+1:t+12}=F_\theta\left(v_t,,a_{t:t+11},,\epsilon\right)
$$&lt;/p&gt;
&lt;p&gt;其中 $v_t$ 是当前视频帧的 latent，$a$ 是 44 维动作序列，$\epsilon$ 是扩散噪声，$F_\theta$ 是 Cosmos DiT。模型训练每次预测 12 帧，推理时将最后一帧作为下一 chunk 的 context。&lt;/p&gt;
&lt;p&gt;评估使用逐帧 L1 和 SSIM：&lt;/p&gt;
&lt;p&gt;$$
L1=\frac{1}{N}\sum_{i=1}^{N}|\hat I_i-I_i|,\qquad SSIM(\hat I_i,I_i)
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; L1 衡量像素误差，SSIM 衡量结构相似度；它们只能评价 open-loop 重放，不能直接证明闭环手术物理正确。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;open_h/prepare_datasets.sh&lt;/code&gt; 依次复制 &lt;code&gt;modality.json&lt;/code&gt;、生成 &lt;code&gt;stats.json&lt;/code&gt; 和 &lt;code&gt;temporal_stats.json&lt;/code&gt;；&lt;code&gt;gr00t_h_config.yaml&lt;/code&gt; 记录具身标签、数据路径、混合比例和训练参数。C-H-S-S 仓库的 &lt;code&gt;scripts/README_ACTION_SPACE.md&lt;/code&gt; 明确实现了 44D zero-padding、每具身归一化和 12 步 action chunk。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; GR00T-H 的独立推理入口是 &lt;code&gt;scripts/deployment/standalone_inference_script.py&lt;/code&gt;；C-H-S-S 提供 &lt;code&gt;scripts/.../inference_open_h.py&lt;/code&gt;，按 JSON manifest 加载不同具身。代码仓库还提供 TensorRT、动作统计计算和批量 episode 评估脚本。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;| 论文描述 | 官方代码对应 | 需要注意的实现细节 |
| --- | --- | --- |
| 统一数据格式 | &lt;code&gt;open_h/prepare_datasets.sh&lt;/code&gt;、各 embodiment &lt;code&gt;modality.json&lt;/code&gt; | 先生成 temporal stats，否则训练会失败 |
| 具身专属动作投影 | &lt;code&gt;open_h/embodiments/*_config.py&lt;/code&gt; 与 GR00T projector index | 同平台不同机器也可使用不同配置 |
| GR00T-H 多具身训练 | &lt;code&gt;open_h/gr00t_h_config.yaml&lt;/code&gt;、&lt;code&gt;launch_train.py&lt;/code&gt; | N1.7 仓库当前 README 记录 16 具身/34+机构；论文 v3 的统计为 20 平台/50+机构，版本口径不同 |
| C-H-S-S 44D 动作 | &lt;code&gt;scripts/README_ACTION_SPACE.md&lt;/code&gt;、&lt;code&gt;action_conditioned.py&lt;/code&gt; | 44D 是每时间步维度，样本动作张量为 &lt;code&gt;(12, 44)&lt;/code&gt; |
| 推理与评估 | &lt;code&gt;inference_open_h.py&lt;/code&gt;、&lt;code&gt;cosmos_h_surgical_simulator_quant_eval.py&lt;/code&gt; | 量化评估是 open-loop action replay |&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-open-h-embodiment/eval-setups.webp&quot; alt=&quot;GR00T-H 在 dVRK、Versius 与 MIRA 上的评估设置（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 主要 policy 对比包括 GR00T-H、未 post-train 的 GR00T-N1.6、ACT 和用 50 小时 dVRK 子集适配的 LingBot-VA。SutureBot 端到端实验包含 needle pickup、handover、throw、extraction、knot tying 五个阶段，每个模型 20 次尝试。OOD 实验改变 wound 配置和光照；data-efficiency 实验使用约 33% 或 100% 的本地微调数据。另在 Versius Peg Transfer、MIRA needle pickup 和皮肤猪肉离体缝合上验证跨具身性能。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-open-h-embodiment/subtask-survival.webp&quot; alt=&quot;SutureBot 端到端任务生存率与 OOD 结果（论文 Figure 4）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 结果呈现出明显的长程优势：&lt;/p&gt;
&lt;p&gt;| 评估 | GR00T-H | GR00T-N1.6 | ACT | LingBot-VA |
| --- | ---: | ---: | ---: | ---: |
| SutureBot 端到端完成（20 次） | &lt;strong&gt;5/20（25%）&lt;/strong&gt; | 0/20 | 0/20 | 0/20 |
| OOD 三任务平均 | &lt;strong&gt;54%&lt;/strong&gt; | 30% | 5% | 未报告 |
| 33% 微调数据三任务平均 | ≈47% | ≈20% | ≈47% | 未报告 |
| 100% 微调数据三任务平均 | &lt;strong&gt;≈73%&lt;/strong&gt; | ≈37% | ≈50% | 未报告 |&lt;/p&gt;
&lt;p&gt;在端到端实验中，GR00T-H 到 throw 阶段仍保留 12/20 条轨迹，GR00T-N1.6 和 ACT 都只有 4/20；这说明 post-training 主要改善了错误累积后的恢复能力，而不是只提升早期抓取。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-open-h-embodiment/gr00t-h-multi-embodiment.webp&quot; alt=&quot;GR00T-H 的跨具身成功率（论文 Figure 6）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在 dVRK-Si、CMR Versius 和 MIRA 三个平台上，GR00T-H 都显著优于 GR00T-N1.6，总体平均差异的 Fisher 检验为 $p&amp;#x3C;0.001$。这支持“共享 backbone + 具身专属 head”比单平台策略更能抵抗设备变化的结论。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-open-h-embodiment/gr00t-h-exvivo.webp&quot; alt=&quot;GR00T-H 在 29 个离体缝合子任务上的成功率（论文 Figure 7）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 29 步、290 次离体实验的平均成功率为 64%。needle pickup、handover、set-down needle 和三步 knot tying 基本接近满分；readjust、open wound、抓取 suture tail 以及两步 cut suture 明显较弱，切线步骤只有 20–30% 左右。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这不是“模型整体不会缝合”，而是误差集中在快速、细接触和组织形变相关动作。因而最有价值的下一轮数据并非盲目扩大所有任务，而是针对切割、抓尾线和组织接触采集 failure/recovery demonstrations。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-open-h-embodiment/cosmos-results.webp&quot; alt=&quot;C-H-S-S 在 benchtop 与 tissue-based 数据上的 L1/SSIM（论文 Figure 8）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; C-H-S-S 在 25 个数据集上做 72 帧自回归重放，每个 episode 使用 3 个随机种子。benchtop 场景保持较低 L1 和较高 SSIM，tissue-based 场景误差更高、种子方差更大；原因包括内窥镜光照、器械遮挡、湿组织高光和可变形解剖结构。chunk 边界的 sawtooth 误差存在但幅度有限，说明模型能维持跨 chunk 的场景状态。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; Open-H 同时解决了三个瓶颈：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;统计覆盖&lt;/strong&gt;：更多平台和机构让模型看到器械、视角、光照和动作风格的变化。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;表示对齐&lt;/strong&gt;：相对 EEF + 6D rotation 把不同机器人的控制问题映射到共同坐标系。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;评估闭环&lt;/strong&gt;：C-H-S-S 和 Cosmos-Surg-dVRK 把昂贵的真实机器人试错变成可批量的视频 rollout 筛选。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 真正的创新不在单个 Transformer 层，而在“数据基础设施 + 两种基础模型验证”的组合：Open-H 让跨具身医疗数据可用；GR00T-H 验证策略迁移；C-H-S-S 验证世界建模迁移。三者共同把医疗机器人从单任务 benchmark 推向可扩展的研究平台。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; JIGSAWS、SutureBot 等数据集是“一个平台、一个任务族”的 benchmark；Open-H 是“多平台、多真实性层级、多模态”的 corpus。ACT 直接从头学习某一任务的动作分布，而 GR00T-H 先学习医疗领域先验再进行小数据适配。单平台 Cosmos-Surg 模型只能回答“这台机器人会发生什么”，C-H-S-S 试图回答“在训练分布内的多台机器人上，这个动作会发生什么”。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 统一 LeRobot schema 和相对动作足以保留跨平台迁移所需的信息。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 具身专属 action head 可以吸收硬件差异，但不能自动解决未见平台的动力学和安全约束。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; open-loop 视频指标能反映世界模型的基础 fidelity；闭环策略安全性仍需额外指标与真实实验。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;GR00T-H 的 25% 端到端 SutureBot 完成率和 64% 离体平均成功率距离临床可靠性仍很远。&lt;/li&gt;
&lt;li&gt;所有自主评估都在 phantom、benchtop 或 ex vivo 条件进行；活体组织的出血、运动和刚度变化尚未覆盖。&lt;/li&gt;
&lt;li&gt;模型没有检测组织撕裂、器械故障或患者移动的显式安全机制。&lt;/li&gt;
&lt;li&gt;Open-H 以成功示教为主，失败轨迹不足；这会限制 world model 对异常状态的建模。&lt;/li&gt;
&lt;li&gt;C-H-S-S 的 L1/SSIM 只适用于有 ground truth 的 open-loop replay，不能衡量闭环工具位置和物理接触真实性。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 数据时长的 64% 来自 Versius 临床流程，平台和任务分布并非均匀；“780 小时”不能简单等价为 780 小时同质量的动作监督。论文 v3 与当前代码仓库的版本也存在口径差异（论文报告 20 平台，GR00T-H README 介绍 16 个具身），复现实验必须锁定 commit、数据清单和模型版本。&lt;/p&gt;
&lt;p&gt;此外，统一 44D zero-padding 解决了张量接口，却可能让模型把“未使用维度”当作缺失值而非结构性信息；未来需要显式 action mask、动力学约束和风险预测。最后，临床部署还要求不确定性估计、可中断控制和审计日志，这些不属于当前 policy/world-model 训练目标。&lt;/p&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;数据治理本身是模型创新。&lt;/strong&gt; 对医疗机器人，schema、同步、平台 README 和许可协议与网络结构同等重要。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;从“成功率”转向“可诊断性”。&lt;/strong&gt; 29 步实验暴露了 cut suture、抓尾线等具体失败模式，下一步应围绕失败类型主动采样。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;世界模型应成为训练基础设施。&lt;/strong&gt; 如果 C-H-S-S 能进一步加入工具轨迹、组织接触和风险标签，就可以支持策略筛选、反事实数据生成和安全回归测试。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;跨具身不等于零样本通用。&lt;/strong&gt; 共享 backbone 负责迁移视觉—语言先验，具身 head 和少量本地数据仍负责精确控制；两者的边界值得单独研究。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;临床价值需要新的指标。&lt;/strong&gt; 工具尖端偏差、组织损伤风险、动作可逆性和人类接管频率，比单纯像素 SSIM 更接近真实手术需求。&lt;/li&gt;
&lt;/ol&gt;</content:encoded><h:img src="https://pic.hana0721.top/49383596_p0_master1200.6t7pmts45l.webp"/><enclosure url="https://pic.hana0721.top/49383596_p0_master1200.6t7pmts45l.webp"/></item><item><title>Open-AoE 论文精读：把智能手机第一视角视频变成具身学习基础设施</title><link>https://agusexp25.top/blog/paper-deep-dive-open-aoe</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-open-aoe</guid><description>精读 Open-AoE：2,000 小时智能手机第一视角操作数据，如何通过手部、相机和动作标注连接 VLA、WAM、世界模型与跨具身机器人控制。</description><pubDate>Thu, 27 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;论文名称&lt;/strong&gt;：《Open-AoE: An Open Egocentric Manipulation Dataset and Toolchain for Embodied Learning》&lt;br&gt;
&lt;strong&gt;作者&lt;/strong&gt;：Zishuo Li、Bowen Yang、Changtao Miao 等 AoE Team  以及 Ant Group、浙江大学、香港大学等机构&lt;br&gt;
&lt;strong&gt;论文链接&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2607.14183&quot;&gt;arXiv:2607.14183&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;代码与数据&lt;/strong&gt;：&lt;a href=&quot;https://github.com/ant-research/Open-AoE&quot;&gt;Open-AoE GitHub&lt;/a&gt;、&lt;a href=&quot;https://huggingface.co/datasets/inclusionAI/OpenAoE-2000h&quot;&gt;Hugging Face 数据集&lt;/a&gt;、&lt;a href=&quot;https://www.modelscope.cn/datasets/inclusionAI/OpenAoE-2000h&quot;&gt;ModelScope 数据集&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-open-aoe/figure1_v5.icuyygyg0.webp&quot; alt=&quot;Open-AoE 数据集、处理管线与工具链总览（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Open-AoE 不是单独发布一批视频，而是把“手机采集 → 质量筛选 → 手部/相机重建 → 原子动作标注 → 机器人与模型训练”做成可复用的开放闭环。首个版本约含 2,000 小时真实操作视频，来自 500+ 贡献者和 400+ 手机型号。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;发布 Open-AoE-2000H：视频与去畸变 RGB、相机内参和 6-DoF 轨迹、双手 MANO 重建、有效性掩码、双语原子动作标注在同一时间轴上对齐。&lt;/li&gt;
&lt;li&gt;开放四阶段数据生产流程：端侧在线检测、离线质量检查与场景标注、重建与语义标注、三道质量门和人工抽检。&lt;/li&gt;
&lt;li&gt;开放三套下游工具：AoE-Visualization、AoE-Reconstruct-Retarget、AoE-Training-Ready，分别服务于数据审查、跨具身运动转换和模型训练。&lt;/li&gt;
&lt;li&gt;用统一审计验证数据的视觉多样性、语义覆盖、图文一致性和训练样本产出，而不是只报告总时长。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 具身模型的瓶颈不是互联网图像，而是能描述“手如何接近物体、相机如何移动、动作何时开始和结束”的真实交互数据。机器人遥操作信号精确但昂贵；AR/VR 或定制头戴设备能提供手部和相机信息，却提高了采集门槛；Ego4D、EPIC-KITCHENS 等被动视频规模大，但通常缺少可直接用于控制的几何和时间标注。&lt;/p&gt;
&lt;p&gt;Open-AoE 继承 AoE（Always-on Egocentric）的手机采集思路，试图解决两个断裂：第一，如何低成本、长时间地获得自然操作；第二，如何把原始视频加工成 VLA、World Action Model（WAM）、World Model 和机器人重定向真正能消费的格式。&lt;strong&gt;【Analysis】&lt;/strong&gt; 因而本文的主要创新更接近“数据基础设施设计”，而不是提出一个新的 policy 网络。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 每个样本是一段带统一帧索引的第一视角操作片段，核心输入输出如下：&lt;/p&gt;
&lt;p&gt;| 层级 | 输入 / 输出 | 作用 |
| --- | --- | --- |
| 观测 | 原始与去畸变 RGB、相机内参、设备信息 | 视觉建模与质量审查 |
| 几何 | 双手 MANO pose/shape、21 关节、有效性、相机 6-DoF 轨迹 | 手物交互与跨具身转换 |
| 语义 | 英文原子动作、verb、object、hand、bbox、置信度，以及中文描述 | 任务意图和时间边界 |
| 下游动作 | 110D dense MANO、48D wrist-fingertip、20/26D hand+camera、机器人关节或 EEF | 按模型需要适配，而非强行统一成一个 action |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 数据集覆盖 8,000+ tasks、400+ scenes 和 400+ consumer-phone models。论文明确区分了“人手运动表示”和“机器人控制表示”：例如 28-DoF 是重定向后的机器人关节空间，而 world-model recipe 的 26D 是人手 20D 加相机 6D，两者不可互换。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-open-aoe/figure1_v5.icuyygyg0.webp&quot; alt=&quot;Open-AoE 的数据处理与下游模块总览（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 数据从手机端的 consent、自动录制和隐私控制开始，经过四阶段处理后形成同步的 RGB、MANO、相机运动和 action text；同一证据层随后被 Visualization、Reconstruct-Retarget 和 Training-Ready 复用。训练和推理的具体操作分别见 4.4 与 4.5。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;A. 端侧采集与离线质量控制&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：手机摄像头视频、设备状态和佩戴状态。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：通过合规检查、去隐私和帧率固定的 qualified Parts。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;模块&lt;/strong&gt;：端侧手部可见性检测、边界截断提醒、佩戴/稳定性检查、低照度补光与过热/存储保护；离线再检查黑帧、曝光、旋转、编码完整性、第三人称视角、抖动和敏感信息。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要&lt;/strong&gt;：让错误在数据源头被拦截，减少带宽和后续重建成本。人脸等隐私内容会被像素化，元数据中的身份字段被匿名化。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;B. 场景标注与时间切片&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 合格视频先按连续合格/不合格区间切成 Parts，固定帧率并保留统一 process-tag。随后由 Qwen3.7-Plus 做语义级合规判断、有效动作判断，并从 closed-set label tree 中选择 domain、scene、task 和 salient objects。&lt;/p&gt;
&lt;h4&gt;C. 相机与手部重建&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; DROID-W 估计相机轨迹；针对手持和穿戴采集重新调节 robust kernel，以抑制抖动和躯干运动。两手检测器提供 bbox 和跨帧关联，HaWoR 从 bbox 重建 3D MANO，再用 SLAM 对齐尺度并变换到世界坐标。最后通过 global bundle adjustment 联合优化手网格、动态物体掩码和相机轨迹，减少分段重建的尺度漂移。&lt;/p&gt;
&lt;h4&gt;D. 原子动作与质量门&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 从重建网格提取 21-joint keypoints，并生成带英文描述的语义片段；人类复核纠正模型幻觉。交付前依次通过：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;completeness gate：手部重建有效帧比例足够高；&lt;/li&gt;
&lt;li&gt;correctness gate：重定向到 28-DoF 机器人空间时 IK 失败率低；&lt;/li&gt;
&lt;li&gt;consistency gate：相机轨迹连续、无突跳。&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;E. 三条下游工具链&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-open-aoe/fig3-reconstruct-retarget.4clmhwyvyx.webp&quot; alt=&quot;AoE-Reconstruct-Retarget：从手机视频到 4D 资产、机器人轨迹与 robotized video（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;AoE-Visualization&lt;/strong&gt; 用 Rerun 风格的时间线同时显示去畸变视频、MANO mesh、21-keypoint skeleton、future wrist trail 与 world-frame 3D 视图。&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;aoe-visualization/visualize.py&lt;/code&gt; 支持 &lt;code&gt;--sample&lt;/code&gt; 或 &lt;code&gt;--data_dir&lt;/code&gt;，每个样本输出 &lt;code&gt;AoE_output_vis.mp4&lt;/code&gt;；没有 OpenGL 时会回退到 NumPy 着色渲染。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;AoE-Reconstruct-Retarget&lt;/strong&gt; 接入 EgoInfinity、Do-as-I-Do 等重建路线，并提供 Phantom（Unitree G1 + Dex3/Inspire）、Retarget Galbot 和 Retarget Lab。输出可以是 4D hand-object asset、机器人可执行轨迹或保留原场景的 robotized video。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;AoE-Training-Ready&lt;/strong&gt; 按任务暴露多个 action interface：dense MANO 适合细粒度手部监督，wrist-fingertip 或 EEF/关节表示适合机器人，hand+camera 表示适合第一视角视频动力学，latent/weak action 则服务于世界模型。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;110D dense MANO 表示&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 每只手 55D，由有效性、腕部平移、腕部 axis-angle、速度和 45D MANO pose 组成：&lt;/p&gt;
&lt;p&gt;$$
\mathbf{s}^{hand} = [v,; t_{xyz},; r_{aa},; \dot t_{xyz},; p_{MANO}] \in \mathbb{R}^{55},\qquad
\mathbf{s}^{both} = [\mathbf{s}^{left},\mathbf{s}^{right}] \in \mathbb{R}^{110}.
$$&lt;/p&gt;
&lt;p&gt;其中 $v$ 是 0/1 有效标记，$t$ 单位为米，$r_{aa}$ 为弧度制 axis-angle，$\dot t$ 为米/秒，$p_{MANO}$ 为 45 个关节旋转参数。坐标是当前 OpenCV 相机坐标系（$x$ 向右、$y$ 向下、$z$ 向前），所以速度同时包含手和相机的相对运动。&lt;/p&gt;
&lt;h4&gt;World-model 的 26D hand+camera action&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;ACTION_SPEC.md&lt;/code&gt; 定义 hand action 为 20D：左右手各含 wrist xyz、rotation 6D 和 gripper open/close proxy；可追加相邻帧相机相对运动的 6D（平移 3 + axis-angle 3）：&lt;/p&gt;
&lt;p&gt;$$
\mathbf{a}&lt;em&gt;{t} = [\mathbf{h}&lt;/em&gt;{t},; \Delta \mathbf{c}&lt;em&gt;{t}] \in \mathbb{R}^{26},\qquad
\Delta T_t = T&lt;/em&gt;{c2w,t}^{-1}T_{c2w,t+1}.
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这一定义把相机自运动显式当成 action condition，避免模型把头部/手机移动误认为物体动力学。它和重定向侧的 28D 机器人关节向量属于不同问题。&lt;/p&gt;
&lt;h4&gt;训练窗口产出&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 对长度为 $L_q$ 秒的序列，以 history $h=2$ 秒、future $f=2$ 秒、stride $\Delta=2$ 秒构造窗口：&lt;/p&gt;
&lt;p&gt;$$
N_q = \max\left(0,\left\lfloor\frac{L_q-h-f}{\Delta}\right\rfloor+1\right).
$$&lt;/p&gt;
&lt;p&gt;每小时产出率为 $Y=\sum_qN_q/\sum_qL_q/3600$，相对无边界上限的保留率为 $\eta=Y/(3600/\Delta)$。这个指标只衡量边界和时间不连续造成的损失，不把下游任务过滤混进来。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 数据生产训练链路是：上传后先筛选与匿名化，再做时间切片、语义标注、相机轨迹估计、MANO 重建和原子动作复核，最后通过三道质量门交付。下游转换不是简单改文件后缀，而是根据目标模型选择 action semantics：VLA 使用可归一化的状态/动作，WAM 使用 hand+camera 的 next-state 条件，世界模型则可只保留视频或使用弱 MANO 监督。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; LeRobot converter &lt;code&gt;convert_open_aoe_to_lerobot.py&lt;/code&gt; 将样本写为 &lt;code&gt;observation.images.front&lt;/code&gt;、&lt;code&gt;observation.state&lt;/code&gt;、&lt;code&gt;action&lt;/code&gt; 和 &lt;code&gt;task&lt;/code&gt;；默认输出 224×224 图像、30 FPS。110D action 的字段名显式记录左右手 valid、wrist、velocity 和 MANO pose，动作对应下一帧手状态。各模型子目录还提供 SmolVLA、GR00T N1.7、H-RDT、VITRA、DreamZero、LingBot-VA、Ctrl-World、iVideoGPT、GenieRedux、LAOM、AdaWorld 和 DreamDojo 的独立 recipe。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 推理阶段不再运行采集端的筛选和重建，而是直接读取已对齐样本：VLA policy 从图像、语言和状态预测机器人动作；WAM 或 action-conditioned video model 读取当前帧与 hand+camera action 预测下一帧；重定向模块则把手腕/手指目标送入 IK、dex-retargeting 或 TCP 求解器。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; Visualization 的 CLI 对一个样本或目录逐段渲染；Retarget Lab 以 &lt;code&gt;trajectory_6dof × hand_source × retargeting&lt;/code&gt; 组织 12 个组合单元。训练 recipe 的 launcher、patch 和依赖均放在各自目录，不会把某一模型的命令伪装成仓库级标准。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;| 论文描述 | 官方仓库实现 | 对照结论 |
| --- | --- | --- |
| 可视化数据浏览器 | &lt;code&gt;aoe-visualization/visualize.py&lt;/code&gt; 与 &lt;code&gt;aoe_vis&lt;/code&gt; | 支持单样本/批量渲染，OpenGL 不可用时回退 NumPy |
| 数据规格 | &lt;code&gt;open-aoe-2000h/README.md&lt;/code&gt;、&lt;code&gt;ACTION_SPEC.md&lt;/code&gt; | 明确目录、坐标系、字段和 20D/26D action 差异 |
| LeRobot 训练适配 | &lt;code&gt;aoe-training-ready/lerobot/scripts/convert_open_aoe_to_lerobot.py&lt;/code&gt; | 默认 224px、30 FPS，导出 state/action/task 与视频 |
| 多模型训练 | &lt;code&gt;aoe-training-ready/*/README_OPEN_AOE.md&lt;/code&gt; | 每个模型独立依赖、转换器和 launcher，不存在全局统一格式 |
| 跨具身重定向 | &lt;code&gt;aoe-reconstruct-retarget/phantom&lt;/code&gt;、&lt;code&gt;retarget_galbot&lt;/code&gt;、&lt;code&gt;retarget-lab&lt;/code&gt; | 覆盖 G1、Galbot/Galaxea、Sharpa、XHand 等路线 |&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-open-aoe/fig4-training-ready.83as35nrci.webp&quot; alt=&quot;Open-AoE 的 Training-Ready 表示谱与模型连接（论文 Figure 4）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 数据分析主要在随机抽取的 100 小时上进行，并与 OpenEgo、EgoDex、EgoXtreme 比较。视觉多样性使用 CLIP embedding；语义/时间分析统计 action vocabulary、覆盖率、片段时长与密度；一致性由 Idefics2 逐序列评分；训练效用使用 2 秒 history、2 秒 future、2 秒 stride 的窗口规则。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-open-aoe/fig_clip_six_metrics.4xva47tckn.webp&quot; alt=&quot;CLIP 六项视觉多样性指标（论文 Figure 5）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Open-AoE 在 3,000 次平衡随机试验的六项视觉指标均值上排名第一：Effective Rank 97.43、Participation Ratio 40.47、Meaningful Coverage 19.89、Normalized Cluster Entropy 0.712、Effective Clusters 16.29、kNN Domain Mixing 0.0775。论文特别指出，前两项和 kNN mixing 的优势在所有试验中都保持第一，说明设备、场景和采集者带来的变化并非只由少数样本贡献。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 语义方面，Open-AoE 的主 action 字段包含 32,407 个自然语言描述、8,030 个 object strings、175 个 verbs 和 135 个 scenes；评估时间线覆盖率为 99.99%，平均片段 9.64 秒、密度 13.97 segments/min。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-open-aoe/fig_temporal_semantic.5mojo8gvn1.webp&quot; alt=&quot;不同数据集的语义宽度与时间标注特征（论文 Figure 6）&quot;&gt;&lt;/p&gt;
&lt;p&gt;严格意义上，本文没有像 policy 论文那样逐模块移除的 ablation；它做的是数据属性审计。&lt;strong&gt;【Paper】&lt;/strong&gt; 一致性评估中，Open-AoE 的 Idefics2 sequence-macro 为 4.583/5（95% bootstrap CI [4.557, 4.608]），85.4% 序列达到至少 4 分，只有 2.2% 处于不高于 2 分的低分区间。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这些比较支持“标注完整且视觉支持度高”，但不能直接推出某个数据字段对机器人成功率的因果贡献。相机多样性改善泛化仍是需要受控训练实验验证的假设。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 训练窗口分析显示每小时约 1,760 个候选 history-future windows，相当于理论上限 1,800 的 97.8%；98.93% 条目至少有一只有效手，98.02% 双手均有效；bbox 有效率 100%，平均置信度 0.947。所有五类主要 supervision（action、bbox、confidence、hand pose、camera pose）都具有近乎普遍的序列级覆盖。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这里的“泛化”主要体现为视觉域、场景、贡献者和手机光学系统的覆盖，而不是在一个统一机器人 benchmark 上报告成功率。真正的跨机器人泛化仍依赖具体模型 recipe、重定向后端和硬件评测。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; Open-AoE 的有效性来自三个互补的对齐：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;时间对齐&lt;/strong&gt;：动作边界、视频帧、手部和相机轨迹共享帧索引，减少下游重新同步。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;因果拆分&lt;/strong&gt;：手的运动与相机自运动分别可用，世界模型不必把视角变化当成物体变化。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;表示分层&lt;/strong&gt;：同一段证据可按模型需要变成 MANO、EEF/关节、hand+camera 或 latent action，避免一个 action vector 同时牺牲手部细节和机器人可执行性。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 真正的创新不是“2,000 小时”这一单一数字，而是把低门槛采集、结构化生产、跨具身重定向和模型适配放在同一个开源仓库中。&lt;strong&gt;【Analysis】&lt;/strong&gt; 这使数据集从静态 corpus 变成可以被贡献者、重建方法作者和模型团队共同迭代的 infrastructure。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;被动 egocentric dataset 通常只给 RGB 与粗粒度标签；Open-AoE 额外提供 MANO、相机轨迹、原子动作和质量门。&lt;/li&gt;
&lt;li&gt;机器人数据集通常以某一种 embodiment 为中心；Open-AoE 先保留人类运动证据，再由不同后端映射到 G1、Galbot、Sharpa 或 XHand。&lt;/li&gt;
&lt;li&gt;多数数据发布不包含训练接口；Open-AoE 将 LeRobot、GR00T、SmolVLA、WAM 和 World Model recipe 分开维护，明确每种格式的语义边界。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 手机视频经过筛选和重建后，足以恢复可用于学习的手物几何与相机运动。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; MANO 和 IK 的质量门能作为下游可用性的代理，但低 IK 失败率不等于真实机器人接触动力学正确。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 设备和 FOV 多样性有望形成自然 sensor-domain randomization；该收益需要跨相机、跨机器人控制实验确认。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 当前训练适配器按模型分别定义，不能假设一个 recipe 的 action layout 可直接迁移到另一个模型。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 报告没有把手机采集数据宣称为真实机器人数据的替代品；robotized video 仅用于保持场景和任务进度的配对视觉信号，不能替代真实硬件执行。不同数据集的 action ontology 也不一致，因此词汇量比较不是严格控制的共享本体 benchmark。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 单目视频下的遮挡、透明物体、接触力和物体 6D pose 仍然难以可靠恢复；bundle adjustment 只能缓解尺度/坐标问题，不能凭空产生触觉。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 端侧自动录制和离线 VLM 标注会引入选择偏差：被过滤掉的失败、遮挡或非典型动作可能正是鲁棒策略需要的 hard negative。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 98% 左右的手部有效率来自已筛选的交付集，不能直接代表自然部署时的观测缺失率。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 20D gripper proxy 只是开合标量，&lt;code&gt;ACTION_SPEC.md&lt;/code&gt; 明确说明当前 recipe 尚未完成 MANO forward kinematics 到指尖动作的统一升级。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 许可证、MANO 权重、第三方机器人资产和外部模型 checkpoint 分开管理，复现实验仍需要额外下载和遵守各自许可。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;把数据管线当作模型的一部分。&lt;/strong&gt; 对具身学习而言，时间切片、坐标系、质量门和 action semantics 会直接改变训练分布，不能只把它们当工程脚本。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;相机动作值得成为显式变量。&lt;/strong&gt; 在第一视角视频中，解释视觉变化至少需要区分 observer motion、hand motion 和 object motion；26D hand+camera 是一个简单但可检验的起点。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;跨具身学习可以先学“关系”再学关节。&lt;/strong&gt; 双手角色、腕部轨迹、接触时序和释放时刻比某一机器人的绝对关节角更容易迁移。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;下一步应做因果 ablation。&lt;/strong&gt; 固定视频和模型，只分别加入相机轨迹、MANO、原子动作和手机域随机化，才能回答哪些字段真正带来泛化。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;开放基础设施需要闭环反馈。&lt;/strong&gt; 未来贡献不应只增加小时数，还应回传重建失败、重定向失败、真实机器人回放和模型错误案例，让数据筛选规则随下游需求演化。&lt;/li&gt;
&lt;/ol&gt;</content:encoded><h:img src="https://pic.hana0721.top/92079701_p0_master1200.64eg2t4l77.webp"/><enclosure url="https://pic.hana0721.top/92079701_p0_master1200.64eg2t4l77.webp"/></item><item><title>OmniUMI 论文精读：让机器人从人类对接触的感觉中学习</title><link>https://agusexp25.top/blog/paper-deep-dive-omniumi</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-omniumi</guid><description>OmniUMI 把 RGB、深度、轨迹、触觉、抓取力和外部力矩放进同一个手持 UMI，并用双边反馈与阻抗控制学习接触丰富的操作。</description><pubDate>Thu, 27 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; UMI（Universal Manipulation Interface）让人类在机器人不在场的地方采集示教，但传统 UMI 主要记录 RGB 与轨迹。OmniUMI 认为，擦除、插入、脆弱物体抓取等任务的关键不是几何位置，而是“接触发生了什么”：手指施加了多大抓取力、末端承受了什么外部力矩、触觉表面如何变形。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-omniumi/fig1-crop.73uopzidux.webp&quot; alt=&quot;OmniUMI 系统总览（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; OmniUMI 的真正贡献是把 sensing、human demonstration、policy interface 和 controller 一起设计：同一个可换夹爪 embodiment 既采集多模态物理交互，也尽量原样出现在部署端。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;一个同步采集 RGB、深度、轨迹、触觉、内部抓取力和外部 interaction wrench 的紧凑手持接口。&lt;/li&gt;
&lt;li&gt;通过电机化 gripper 的 bilateral feedback 让操作者感受到抓取阻力；手持 embodiment 同时保留外部接触和触觉的自然感知。&lt;/li&gt;
&lt;li&gt;将多模态观测接入 Diffusion Policy，并把预测的力编译成 virtual target pose，用 Cartesian-to-joint impedance 执行，避免显式切换位置/力控制模式。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 机器人在环的 teleoperation 数据质量高，但需要昂贵硬件和受限场景；UMI、FastUMI 等 robot-free interface 降低了采集成本，却主要是 visuomotor。触觉、内部力和外部力矩工作分别证明了各自价值，但通常是“向已有接口外挂一个传感器”。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; OmniUMI 把问题从“再加一个 modality”提升为系统级一致性问题：多种传感器有不同协议、频率和坐标系；机械触发的夹爪还会污染力矩传感器；如果示教和部署的末端 embodiment 不同，触觉与力观测的分布会一起漂移。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 给定手持接口记录的同步序列，学习一个策略将视觉、局部接触和力相关观测映射为未来 action chunk，并在机器人端以阻抗控制执行。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Observation&lt;/strong&gt;：鱼眼 RGB、深度、轨迹/proprioception、触觉 embedding、内部抓取力 $f_t^{int}$、外部 wrench $f_t^{ext}$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Action&lt;/strong&gt;：末端平移增量 $(\Delta x,\Delta y,\Delta z)$、6D 旋转、预测 Cartesian force $f_t$ 和 virtual gripper width。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Embodiment&lt;/strong&gt;：共享的电机化 quick-swap gripper；采集与部署复用 gripper-side 结构。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;目标&lt;/strong&gt;：在 force-sensitive pick-and-place、wrench-informed wiping、tactile-informed selective release 中验证数据和控制链路。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-omniumi/fig2-crop.3yf6r1o041.webp&quot; alt=&quot;OmniUMI 硬件架构（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; custom hub 把相机、深度、6 轴力传感器、运动跟踪、电机夹爪和触觉模块接到一条主机链路；同步观测进入多模态 policy，输出再经过 virtual-target 与 impedance controller 执行。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;Custom hub 与共享夹爪&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; hub 负责通信、协议转换、电压调节和设备管理，避免每个传感器各自接线。motorized quick-swap gripper 同时服务于示教和执行，降低几何、接触和传感上下文的 collection–deployment gap。电机化驱动还避免机械触发对外部力/矩读数的扰动。&lt;/p&gt;
&lt;h4&gt;内部抓取力与 bilateral feedback&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 电机电流 $i_t$ 经电机力矩常数 $k_\tau$ 和传动有效半径 $r_g$ 换算抓取力：&lt;/p&gt;
&lt;p&gt;$$F_t^{int}\approx\frac{k_\tau i_t}{r_g}$$&lt;/p&gt;
&lt;p&gt;主端 gripper 通过 bilateral control 感受从端的接触阻力，因此操作者能在拿起、保持和释放物体时直接调节抓取强度，而不是只看画面猜测。&lt;/p&gt;
&lt;h4&gt;外部 interaction wrench&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 6 轴传感器的原始读数先减去姿态相关重力/静态偏置，再从 sensor frame 变换到 end-effector frame：&lt;/p&gt;
&lt;p&gt;$$w_t^{ee}=T_{s\rightarrow ee}(w_t^{raw}-w_t^{grav})$$&lt;/p&gt;
&lt;p&gt;这一步把“传感器姿态变化造成的假力”与真实环境接触分开。手持过程中操作者的本体感觉与传感器读数还形成了额外的人机对齐。&lt;/p&gt;
&lt;h4&gt;生物仿生触觉手指与视觉&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 触觉被整合到受保护的 finger 结构中，尽量保留小物体操作能力。RGB/深度提供场景和几何上下文，触觉记录局部变形，轨迹提供运动参考；触觉图像先经 encoder 压成低维 embedding，再与 wrench 和 proprioception 拼接。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;p&gt;观测和动作接口分别为：&lt;/p&gt;
&lt;p&gt;$$o_t={I_t^{rgb},I_t^{depth},z_t^{tac},p_t,f_t^{int},f_t^{ext}}$$&lt;/p&gt;
&lt;p&gt;$$a_t=[\Delta x_t,\Delta y_t,\Delta z_t,r_t^{6D},f_t^x,f_t^y,f_t^z,g_t^w]$$&lt;/p&gt;
&lt;p&gt;其中 $z_t^{tac}=\phi_{tac}(I_t^{tac})$ 是触觉 embedding，$r^{6D}$ 是连续旋转表示，$g^w$ 是 gripper width。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 预测力不作为独立 force-control 分支，而是调节 Cartesian stiffness：&lt;/p&gt;
&lt;p&gt;$$\Delta p_t=K_{p,t}^{-1}f_t,\qquad p_t^v=p_t^{ref}-\Delta p_t$$&lt;/p&gt;
&lt;p&gt;小力对应高刚度、较大力对应低刚度；由 $T_t^{vt}=(R_t^{ref},p_t^v)$ 得到 virtual target pose。随后 operational-space gain 经 Jacobian 映射到 joint-space：&lt;/p&gt;
&lt;p&gt;$$K_{p,t}^{(q)}=J^\top K_{x,t}J+K_q,\quad K_{d,t}^{(q)}=J^\top K_{xd,t}J+K_{qd}$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这个接口的关键是把“想保持的位置”和“愿意让开的程度”写在同一个目标里，避免控制器在位置模式和力模式之间跳变。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 采用 Diffusion Policy 风格的 conditional U-Net。视觉输入和低维触觉/力观测共同形成 observation condition，再与 diffusion-step embedding 组成全局条件；训练时对 action chunk 加噪并学习去噪轨迹。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 推理使用 DDIM 生成未来 action chunk，并采用 receding horizon 执行。每个 action chunk 的位姿与预测力先转为 virtual target，再经 damped-least-squares IK 和 joint impedance controller 下发。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 项目页目前只提供论文、视频和演示，GitHub 按钮标记为 “Code (Coming Soon)”。因此没有可核对的 model、DataLoader、训练脚本或 evaluation 实现；上文关于代码行为的描述均不适用，本文只对照论文公式和系统图，不虚构官方实现细节。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 实验分三层：先在 10 个静态姿态下验证外部 wrench 的重力补偿；再在同一个白板擦除任务中比较 direct human、无 bilateral feedback 的 teleoperation 和 OmniUMI 的三种示教信号；最后测试三类下游接触任务。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-omniumi/fig4-crop.5mojo8ebwa.webp&quot; alt=&quot;重力补偿前后的外部力测量（论文 Figure 4）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;| 任务 | 对照 | OmniUMI | 指标 |
| --- | ---: | ---: | --- |
| 满瓶矿泉水抓取放置 | 无抓取力 0% | 100% | 成功率；滑落率由 100% 降至 0% |
| 白板交互擦除 | 无 wrench：5% 残留标准 0% | 100% | 50% 残留标准：60% → 100% |
| 嵌套透明杯选择性释放 | 无 tactile：20% | 100% | 双杯同时保留率 80% → 0% |&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-omniumi/fig9-crop.26m7w54p45.webp&quot; alt=&quot;力相关接触任务定性结果（论文 Figure 8）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 白板擦除中，加入 wrench 的策略能维持 $F_z&gt;7,N$，而无 wrench 的策略出现高频接触振荡并留下红色痕迹。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 三种示教信号在同一白板任务上都更接近 direct human：OmniUMI 的抓取力时间曲线幅值和节奏更稳定，擦除阶段 $F_z$ 的振荡更小，触觉 marker-offset 的 ℓ₂ 轨迹也更接近人类；无 bilateral feedback 的 teleoperation 在三者上都更噪。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-omniumi/fig10-crop.7ehij4xmi7.webp&quot; alt=&quot;触觉选择性释放结果（论文 Figure 9）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文未报告大规模跨机器人 benchmark，而是用三类 interaction capability 证明物理信号的针对性价值：内部力帮助负载抓取，wrench 帮助持续表面接触，触觉帮助透明嵌套杯的低力释放。作者同时承认，当前评测任务和 embodiment 仍然有限。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 视觉只能间接推断接触状态，且同一像素变化可能对应不同摩擦、载荷或滑移。OmniUMI 直接记录这些低维物理变量，并让操作者在采集时感知它们，减少了“示教者想做什么”和“数据里记录了什么”的错位。共享夹爪又让部署端看到相似的触觉与力学上下文。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 创新是三者耦合而非新 backbone：统一硬件 hub、human-aligned interaction acquisition、multimodal Diffusion Policy 和 impedance-compatible virtual target。论文把系统工程约束提升为学习接口的一部分。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 传统 UMI 主要把“人的运动”记录下来；OmniUMI 还记录“人如何调节接触”。与单独加入 tactile 或 force 的 modality-centric 方法相比，它同时处理传感器共存、示教感知、跨阶段一致性和控制落地。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 方法假设 gripper-side embodiment 能在采集与部署间复用，目标机器人具备足够的可达性和阻抗控制接口，并且重力模型、坐标变换和触觉编码足够稳定。若机器人换用完全不同的手指或相机位置，物理观测分布仍可能发生明显变化。&lt;/p&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 作者指出，当前还没有系统隔离“human alignment → 数据质量 → 最终任务成功率”的因果链；实验覆盖的接触条件、任务时长和 embodiment 也有限。更丰富的 dexterous manipulation、长时序任务、更多机器人和更原则化的 impedance-aware policy 是后续方向。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 预测力通过 stiffness schedule 间接实现，依赖增益、IK 阻尼和机器人动力学的联合调参；论文暂未给出稳定性或 passivity 的完整证明。触觉 embedding 目前是低维压缩，细粒度滑移和剪切力信息可能在压缩中丢失。没有公开代码也使硬件标定、同步频率和训练超参难以复现。&lt;/p&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; OmniUMI 暗示，接触丰富的 VLA 不应只把触觉当作额外图像 token。更有价值的方向包括：把内部力、外部 wrench 和触觉事件编码成可解释的 interaction token；把 stiffness、执行时间和失败恢复作为 policy 输出；用同一套 calibration/metadata 让基础模型学习“何时该坚持轨迹、何时该让开”。在代码公开后，最值得复核的是多模态时间同步、触觉 encoder 的训练方式，以及 virtual target 在不同机器人阻抗参数下是否保持一致。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/103975128_p0_master1200.8vniavqp93.webp"/><enclosure url="https://pic.hana0721.top/103975128_p0_master1200.8vniavqp93.webp"/></item><item><title>MimicGen 论文精读：用少量人类示教规模化生成机器人数据</title><link>https://agusexp25.top/blog/paper-deep-dive-mimicgen</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-mimicgen</guid><description>精读 MimicGen：将人类示教拆成物体中心片段，通过位姿变换、插值和成功筛选生成跨场景、物体与机械臂的大规模模仿学习数据。</description><pubDate>Thu, 27 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; MimicGen 研究的是机器人模仿学习中的数据瓶颈：高质量 teleoperation demonstration 很贵，但很多示教的核心操控技能在不同物体位置、场景和机械臂之间是重复的。系统从一个很小的 source dataset 出发，把每条轨迹按 object-centric subtask 切段，再将片段变换到新场景中执行；只有任务成功的尝试才写入 generated dataset。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-mimicgen/system-overview.mimicgen.webp&quot; alt=&quot;MimicGen 系统流程：示教切段、片段变换与新轨迹执行（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; MimicGen 的关键不是生成一条“看起来合理”的轨迹，而是把重定向后的轨迹放回环境中真实执行，用 task success 做最后过滤。因此它更像一个 replay-and-verify 数据工厂，而不是离线的几何数据增强器。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;提出通用的数据生成系统 MimicGen：从少量 human demonstrations 生成新的场景配置、物体实例和机器人硬件上的示教。&lt;/li&gt;
&lt;li&gt;在 18 个任务、2 个模拟器和真实机械臂上生成 50K+ demonstrations，source demonstrations 约 200 条。&lt;/li&gt;
&lt;li&gt;覆盖 pick-and-place、插入、铰接物体、长时程任务、移动操作和毫米级装配，而非只验证单一抓取任务。&lt;/li&gt;
&lt;li&gt;证明 1,000 条 MimicGen 数据训练出的 BC-RNN policy，在许多任务上显著超过 10 条 source demos；与同数量的人类示教相比也有相近性能。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方 &lt;a href=&quot;https://github.com/NVlabs/mimicgen&quot;&gt;NVlabs/mimicgen&lt;/a&gt; 发布了数据生成器、robosuite / Factory 环境接口、任务配置、数据集脚本和调试工具。README 当前版本说明公开数据集包含 12 个任务、48K+ trajectories；论文实验统计为 18 个任务、50K+ trajectories，二者是代码发布范围与论文实验范围的差异。&lt;/p&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 传统 Behavior Cloning（BC）把示教中的状态—动作对直接拟合为 policy。问题在于，覆盖更大初始状态分布通常需要成百上千甚至数万条人类轨迹。论文用 robomimic 的例子说明：即使是把 coke can 从一个 bin 放到另一个 bin 的简单任务，200 条示教也只能达到 73.3% 成功率；而真实世界大规模数据收集还需要多名操作员、多个厨房和数月时间。&lt;/p&gt;
&lt;p&gt;已有 replay-based imitation 方法尝试把历史轨迹复用于新状态，但通常依赖特定任务、特定算法或不能真正验证重放是否成功。MimicGen 的区别是：它把“轨迹可重用”落实为统一的 object-centric 变换接口，并在环境执行后过滤失败样本，使生成数据可以无缝接入已有 BC pipeline。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这是一种 data-centric 视角：提升 policy 的办法不一定是更大的模型，也可以是把有限人类时间投入到少数高质量 source skills，再用环境交互把这些 skills 展开到更宽的状态分布。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 每个操作任务被建模为 MDP，示教数据为：&lt;/p&gt;
&lt;p&gt;$$
\mathcal D_{\mathrm{src}}={(s_0^i,a_0^i,s_1^i,a_1^i,\ldots,s_{H_i}^i)}_{i=1}^{N}.
$$&lt;/p&gt;
&lt;p&gt;目标是从小的 source dataset $\mathcal D_{\mathrm{src}}$ 生成目标任务分布上的 $\mathcal D$，再用 BC 学习 policy $\pi_\theta$：&lt;/p&gt;
&lt;p&gt;$$
\theta^*=\arg\min_\theta;\mathbb E_{(s,a)\sim\mathcal D}[-\log\pi_\theta(a\mid s)].
$$&lt;/p&gt;
&lt;p&gt;系统依赖三个假设：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;【Paper】Action space&lt;/strong&gt; 是末端执行器 delta pose（3D 平移、axis-angle 旋转和夹爪开关），因而可以转换成 controller target pose。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Paper】Subtask structure&lt;/strong&gt; 已知，任务可写成相对于单个对象坐标系的一串 object-centric subtasks。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Paper】Observation for generation&lt;/strong&gt;：每个 subtask 开始时可以取得相关对象的 pose；部署训练好的 policy 时不需要再显式提供这个 pose。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;| 要素 | MimicGen 定义 |
| --- | --- |
| 输入 | source demonstrations、目标场景初始状态、subtask specification |
| 中间表示 | 每个 subtask 的末端执行器 target-pose sequence 与 gripper action |
| 输出 | 在环境中成功执行并通过过滤的新 trajectory |
| 变化维度 | 初始状态分布 $D$、对象实例 $O$、机器人硬件 $R$ |
| 下游学习 | 论文使用 BC-RNN 训练 image-based 或 low-dim policy |&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 左侧先把 source trajectory 按 subtask termination signal 解析成连续片段；右侧针对一个新场景，逐个 subtask 选择 source segment、按对象 pose 变换、插入过渡轨迹并执行。整条轨迹完成后，通过 task success 判断是否写入数据集。&lt;/p&gt;
&lt;p&gt;数据流可以概括为：&lt;code&gt;source demos → segment parser → segment selector → object-pose transform → interpolation → controller execution → success filter&lt;/code&gt;。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;Source Dataset Parser&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：一条示教轨迹和 task spec 中的 &lt;code&gt;subtask_term_signal&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：$M$ 个 subtask segment，每段保存 eef pose、target pose、gripper action 及相关 object pose。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;作用&lt;/strong&gt;：把长时程行为拆成可复用的局部技能，例如 coffee preparation 可拆成抓 mug、放到机器、抓 pod、插入机器。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;mimicgen/utils/file_utils.py&lt;/code&gt; 的 &lt;code&gt;parse_source_dataset&lt;/code&gt; 读取 HDF5 并根据 task spec 找到 segment 边界；&lt;code&gt;DataGenerator.randomize_subtask_boundaries&lt;/code&gt; 还会按配置对边界加入随机 offset。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Reference Segment Selection&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：当前 eef pose、当前 subtask 的 object pose、所有 source segment 的起始信息。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：一个 source demonstration index。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;策略&lt;/strong&gt;：默认是 &lt;code&gt;random&lt;/code&gt;；&lt;code&gt;nearest_neighbor_object&lt;/code&gt; 按对象位置的 L2 距离加旋转角距离，从 top-$k$ 中随机选一个；代码还提供按机器人到目标轨迹距离选择的策略。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要&lt;/strong&gt;：不同 source demo 可能有不同抓取姿态和动作风格。代码中的 &lt;code&gt;select_src_per_subtask&lt;/code&gt; 决定每个 subtask 是否重新选择 demo；关闭时一条生成轨迹固定使用同一条 source demo，避免跨片段策略不兼容。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Object-Centric Pose Transform&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：source segment 的 target poses、source 对象 pose、当前场景对象 pose。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：新场景中的 target-pose sequence。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;作用&lt;/strong&gt;：保持末端执行器相对对象的位姿关系，使“以 mug 的这个方向接近”变成“以新 mug 的对应方向接近”。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 对应 &lt;code&gt;mimicgen/utils/pose_utils.py&lt;/code&gt; 的 &lt;code&gt;transform_source_data_segment_using_object_pose&lt;/code&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Interpolation and Waypoint Execution&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：当前 eef pose 与变换后片段的首个 target pose。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：可逐步执行的 &lt;code&gt;WaypointTrajectory&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;作用&lt;/strong&gt;：用位置线性插值和旋转插值连接相邻片段，并可在首个 target pose 上固定若干步；执行时再把绝对 target pose 转成 delta action。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;WaypointTrajectory.merge&lt;/code&gt; 负责插值，&lt;code&gt;WaypointSequence&lt;/code&gt; 保存 pose、gripper action 与 noise；默认仿真配置是 5 个 interpolation steps、0 个 fixed steps。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Success Filter and Dataset Writer&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：一次完整执行的 states、observations、actions 和环境 success。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：成功 demonstration 或丢弃该尝试。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;作用&lt;/strong&gt;：生成失败率（data generation rate）可能很低，但保留下来的轨迹是真实执行过的成功数据，适合训练下游 policy。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这一步让生成器与单纯 replay 的目标不同：生成器的成功率衡量“生产成本”，而 policy success 衡量“数据学习价值”，两者并不等价。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;末端执行器位姿变换&lt;/h4&gt;
&lt;p&gt;设 source segment 中的控制目标为 $T_W^{C_t}$，source 对象起始位姿为 $T_W^{O_0}$，新场景对象位姿为 $T_W^{O&apos;_0}$。MimicGen 令相对对象位姿保持不变：&lt;/p&gt;
&lt;p&gt;$$
T_{O_0}^{C_t}=T_{O&apos;_0}^{C&apos;_t},
$$&lt;/p&gt;
&lt;p&gt;因此新场景的控制目标为：&lt;/p&gt;
&lt;p&gt;$$
T_W^{C&apos;_t}=T_W^{O&apos;_0}\left(T_W^{O_0}\right)^{-1}T_W^{C_t}.
$$&lt;/p&gt;
&lt;p&gt;这里 $W$ 是 world frame，$O_0/O&apos;_0$ 是 source / new object frame，$C_t/C&apos;_t$ 是控制器 target frame。公式只改变对象在世界中的位姿，不改变动作相对于对象的几何关系。&lt;/p&gt;
&lt;h4&gt;Delta pose action&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 每个动作包含 7 个量：$\Delta p\in\mathbb R^3$、axis-angle 形式的 $\Delta r\in\mathbb R^3$ 和 gripper command。控制器将：&lt;/p&gt;
&lt;p&gt;$$
p_{t+1}^{\mathrm{target}}=p_t^{E}+\Delta p_t,
$$&lt;/p&gt;
&lt;p&gt;并把 $\Delta r_t$ 施加到当前 eef rotation。&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;mimicgen/env_interfaces/robosuite.py&lt;/code&gt; 将 pose target 与当前 eef pose 相减 / 相乘，执行时再乘以 controller 的最大平移和旋转尺度。&lt;/p&gt;
&lt;h4&gt;Behavioral Cloning&lt;/h4&gt;
&lt;p&gt;成功轨迹组成的 $\mathcal D$ 用 BC 训练：&lt;/p&gt;
&lt;p&gt;$$
\mathcal L_{\mathrm{BC}}(\theta)=\mathbb E_{(s,a)\sim\mathcal D}[-\log\pi_\theta(a\mid s)].
$$&lt;/p&gt;
&lt;p&gt;论文的实验 policy 是 robomimic 的 BC-RNN；low-dim 输入含 ground-truth object poses，image policy 输入 front-view 与 wrist-view RGB 图像。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 每个任务通常先由一名操作员收集 10 条 source demos（Mobile Kitchen 为 25 条，Square 使用 robomimic 数据），再用 MimicGen 生成每个 task variant 的 1,000 条成功轨迹。下游使用 BC-RNN；image agent 的图像为 84×84，真实机器人任务为 120×160，并采用 pixel-shift augmentation。low-dim policy 使用 $10^{-3}$ 学习率，image policy 沿用 robomimic 默认配置；模拟任务每个 checkpoint 用 50 次 rollout 评估，报告 3 个训练 seed 中的最大成功率。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; MimicGen 不是部署时的 policy。数据生成完成后，训练好的 BC-RNN 只接收正常的 policy observation：low-dim agent 可以使用环境状态，image agent 使用相机图像和本体感知，不再需要显式 object pose 或 source segment。运行时由 policy 直接输出 action，环境控制器执行。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;| 论文概念 | 官方代码位置 | 实际行为 |
| --- | --- | --- |
| 数据生成主循环 | &lt;code&gt;mimicgen/datagen/data_generator.py&lt;/code&gt; | reset 环境、选择 source demo、变换每个 subtask、执行并收集结果 |
| task spec | &lt;code&gt;mimicgen/configs/task_spec.py&lt;/code&gt; | 保存 object reference、termination signal、selection、noise 和插值超参 |
| source 解析 | &lt;code&gt;mimicgen/utils/file_utils.py&lt;/code&gt; | 从 HDF5 读取 datagen info 并切出 subtask indices |
| 位姿计算 | &lt;code&gt;mimicgen/utils/pose_utils.py&lt;/code&gt; | pose transform、rotation / position interpolation |
| 选择策略 | &lt;code&gt;mimicgen/datagen/selection_strategy.py&lt;/code&gt; | random、nearest-neighbor object、robot-distance 等策略 |
| waypoint 执行 | &lt;code&gt;mimicgen/datagen/waypoint.py&lt;/code&gt; | 保存绝对 pose target，执行时转换为 delta action 并加噪声 |
| 数据集脚本 | &lt;code&gt;mimicgen/scripts/generate_dataset.py&lt;/code&gt; | 反复尝试直到收集指定数量的成功 demo |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方实现还支持 &lt;code&gt;transform_first_robot_pose&lt;/code&gt;、&lt;code&gt;interpolate_from_last_target_pose&lt;/code&gt; 和随机 subtask boundary offsets 等论文正文没有展开的工程选项。Mobile Kitchen 的 base action 在当前实现中直接复制，而不像 arm action 那样按参考坐标系变换。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-mimicgen/reset-d0.mimicgen.webp&quot; alt=&quot;MimicGen 的 reset distribution 与真实机器人 Stack 示例（论文 Figure 6）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 实验覆盖 robosuite（MuJoCo）和 Factory（Isaac Gym）中的基础堆叠、插入、铰接、长时程厨房、移动操作和精密装配。每个任务有默认分布 $D_0$、更宽的 $D_1$，部分任务还有更难的 $D_2$；也测试了新物体实例和 Sawyer、IIWA、UR5e 等不同机械臂。&lt;/p&gt;
&lt;p&gt;真实实验在 Stack 与 Coffee 上各收集 10 条 $D_0$ source demos，再为宽分布 $D_1$ 生成 200 / 100 条成功 demos。相机使用 front-facing 和 wrist-mounted RealSense。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-mimicgen/core-results.mimicgen.webp&quot; alt=&quot;MimicGen image-based agent 的 source、生成数据与数据规模对比结果（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文报告的 image-based agent 结果显示，10 条 source demos 到 1,000 条 $D_0$ generated demos 后，多数任务有大幅提升：&lt;/p&gt;
&lt;p&gt;| 任务 | 10 条 source demos | 1,000 条 MimicGen $D_0$ demos |
| --- | ---: | ---: |
| Square | 11.3% | 90.7% |
| Threading | 19.3% | 98.0% |
| Three Piece Assembly | 1.3% | 82.0% |
| Mobile Kitchen | 2.0% | 46.7% |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 更宽的 $D_1/D_2$ 分布上，训练成功率为 42%–99%；Mug Cleanup 在未见 mug 上达到 90.7%，在每回合更换的 12 个 mugs 上达到 75.3%。Factory 的 Nut-Bolt、Gear 和 Frame Assembly 在 $D_0$ 上达到 82%–99%，在更宽分布上仍有 37%–81%。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-mimicgen/real-stack.mimicgen.webp&quot; alt=&quot;真实机器人 Stack 任务示例（论文 Figure 6 右侧子图）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 动作噪声是一个关键消融：默认在执行 transformed segment 时加入 $\sigma=0.05$ 的 Gaussian noise。去掉噪声会提高 data generation rate，却可能让 low-dim agent 下降最多 30%、image agent 下降最多 40%。仅在原始场景 replay 并加噪声，也不如进行 object-pose transform：Square 的 $D_0$ 成功率从 source 的 11.3% 提升到 42.0%，但仍低于 MimicGen 的 90.7%。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 选择策略的消融显示，关闭 nearest-neighbor / per-subtask 选择通常显著降低数据生成率，但 policy 成功率不一定同步下降。生成 200、1,000、5,000 条数据时，主要收益出现在 200→1,000，继续增加到 5,000 往往出现 diminishing returns。使用 10、50、200 条 source demos 的差异也通常 modest，说明 source demo 的选择质量可能比单纯数量更重要。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;跨机器人&lt;/strong&gt;：用 Panda source demos 生成 Sawyer、IIWA、UR5e 数据，Square $D_0$ 的 data generation rate 为 38%–74%，但训练后的 policy 成功率仍约 80%–91%。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;跨物体&lt;/strong&gt;：同一 Mug Cleanup source mug 可转移到未见 mug 以及每回合随机的新 mug。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;真实世界&lt;/strong&gt;：Stack 的 generation rate 为 82.3%，Coffee 为 52.1%；宽分布上的最终成功率分别为 36% 与 14%。论文认为真实结果较低的一个原因是安全设置使用了 50 个 interpolation steps，而仿真通常只有 5 个。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;低质量示教&lt;/strong&gt;：来自不同熟练度操作员、不同 teleoperation device 的 source demos 仍能生成性能相近的下游 policy。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;降低 human labeling burden&lt;/strong&gt;：人类只需覆盖少数稳定技能，环境负责展开初始状态分布。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;把几何不变性显式化&lt;/strong&gt;：相对对象坐标系保留了抓取、接近、插入等动作的局部结构，比对整条世界坐标轨迹做随机平移更合理。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;执行闭环过滤&lt;/strong&gt;：失败的重定向轨迹不会污染训练集；所以即使 generation rate 低，数据质量仍可能高。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;保留原有 policy pipeline&lt;/strong&gt;：最终数据仍是普通 observation-action trajectories，可以直接交给 BC-RNN，不需要为每个下游 policy 设计新损失。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 真正的创新是三个工程假设的组合：以 object-centric subtasks 作为可复用单元，以 target pose 作为跨机器人接口，再以“执行成功”作为数据质量控制。单独的轨迹 replay、动作噪声或离线 pose augmentation 都无法同时提供这三点。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 与直接收集更多人类数据相比，MimicGen 用约 10 条 source demos 生成 1,000 条成功 demos，在不少任务上达到相近 policy 性能；与 replay-based imitation 相比，它改变了任务实例并在新场景中执行，而不是只在原始 reset 上重复播放。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 它不是无条件的“数据倍增器”。生成器只会重用 source demos 已经包含的动作策略；如果新任务需要不同的 subtask 顺序、双物体关系或新的动力学，几何变换不会凭空创造这些能力。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 关键前提包括：subtask 顺序已知；每个 subtask 主要相对于一个对象；对象 pose 在生成时可观测；对象属于同一类别且有对齐的 canonical frame；任务是 quasi-static；机器人使用兼容的末端控制 frame。代码还隐含了 HDF5 数据格式、termination signal 和环境接口必须正确实现的工程假设。&lt;/p&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;需要人工指定 object-centric subtask 及其顺序，不能自动处理任务结构改变。&lt;/li&gt;
&lt;li&gt;每个 subtask 只支持一个 reference object，不适合依赖多个物体同时约束的动作。&lt;/li&gt;
&lt;li&gt;线性 / spherical interpolation 不感知碰撞，也可能加入不利于 policy 学习的中间动作。&lt;/li&gt;
&lt;li&gt;只展示了同类、刚性、尺度相近且 canonical frame 对齐的物体转移，不覆盖软体或形状差异很大的物体。&lt;/li&gt;
&lt;li&gt;主要验证 quasi-static 单臂任务；动态任务、不同物体动力学和多臂任务未被覆盖。&lt;/li&gt;
&lt;li&gt;Mobile Kitchen 中 base action 直接复制，且当前实现假设 base 与 arm 不同时运动。&lt;/li&gt;
&lt;li&gt;只按 task success 过滤，生成数据仍可能存在选择偏差与轨迹 artifacts。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;成功过滤产生 selection bias&lt;/strong&gt;：困难初始状态更容易被丢弃，训练集可能低估真实部署中的失败区域；generation rate 不能替代覆盖率指标。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;位姿误差会沿长时程累积&lt;/strong&gt;：每个 subtask 只在起点对齐对象，若对象估计或控制器有偏差，后续片段仍可能从错误状态开始。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;技能组合不是任意可交换的&lt;/strong&gt;：不同 source demos 的抓取姿态、放置方向和夹爪时序可能不兼容，&lt;code&gt;per-subtask=False&lt;/code&gt; 虽能减少混搭，却也限制了组合多样性。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;下游 BC 并不会自动识别生成痕迹&lt;/strong&gt;：插值段和动作噪声改变了状态—动作分布；仿真中有效的 noise / interpolation 超参需要针对真实硬件重新调节。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; MimicGen 给出的更一般启发是：机器人数据的“数量”应拆成技能多样性、状态覆盖率和执行质量三个维度。未来可以沿三个方向推进：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;让视觉语言模型或任务规划器自动提出并验证 subtask graph，减少手工 task spec。&lt;/li&gt;
&lt;li&gt;用碰撞感知 motion planner、可学习的插值器和更强的数据质量判别器替换线性插值与 binary success filter。&lt;/li&gt;
&lt;li&gt;把生成过程中的失败尝试、对象 pose uncertainty 和 source-demo provenance 一并记录，训练能感知数据置信度的 policy，而不是只保留成功轨迹。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 对实际项目而言，最值得复用的不是某个固定的 5-step interpolation 超参，而是“source skill → 几何重定向 → 环境验证 → policy training”的闭环。只要任务能找到稳定的参考坐标系和可靠的成功判定器，就有机会把昂贵的人类示教转化为更宽的训练分布。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/126903857_p0_master1200.2dpaix2l3u.webp"/><enclosure url="https://pic.hana0721.top/126903857_p0_master1200.2dpaix2l3u.webp"/></item><item><title>LIBERO-Plus 论文精读：VLA 鲁棒性的系统性体检</title><link>https://agusexp25.top/blog/paper-deep-dive-libero-plus</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-libero-plus</guid><description>精读 LIBERO-Plus：在 7 类扰动、10,030 个任务上拆解 VLA 的脆弱性，解释位置偏置、语言忽略与组合泛化缺口。</description><pubDate>Thu, 27 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;论文名称&lt;/strong&gt;：《LIBERO-Plus: In-depth Robustness Analysis of Vision-Language-Action Models》&lt;br&gt;
&lt;strong&gt;作者&lt;/strong&gt;：Senyu Fei、Siyin Wang、Junhao Shi 等（复旦大学、上海人工智能实验室等）&lt;br&gt;
&lt;strong&gt;论文链接&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2510.13626&quot;&gt;arXiv&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;代码与基准&lt;/strong&gt;：&lt;a href=&quot;https://github.com/sylvestf/LIBERO-plus&quot;&gt;GitHub&lt;/a&gt; · &lt;a href=&quot;https://sylvestf.github.io/LIBERO-plus/&quot;&gt;项目主页&lt;/a&gt; · &lt;a href=&quot;https://huggingface.co/datasets/Sylvest/LIBERO-plus&quot;&gt;Hugging Face 数据集&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-libero-plus/benchmark.45iemea1ln.webp&quot; alt=&quot;LIBERO-Plus 基准组成：7 类扰动、21 个低层组件和 10,030 个任务（论文 Figure 6）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文不再把“原始 LIBERO 成功率”当作能力代理，而是对物体布局、相机、机器人初始状态、语言、光照、背景和传感器噪声做可控扰动；结果显示，许多 VLA 在轻微变化下从约 95% 跌到 30% 以下，甚至把语言输入完全忽略。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;提出七维鲁棒性分析协议，覆盖视觉、状态和语言输入，并将每一维继续拆成可量化的 21 个子组件。&lt;/li&gt;
&lt;li&gt;构建自动化的 LIBERO-Plus 基准：10,030 个任务、五级难度（L1–L5），可直接替换原 LIBERO 安装包。&lt;/li&gt;
&lt;li&gt;对 10 个代表性开源模型做统一评测，发现相机视角和机器人初始状态是最危险的分布偏移；语言扰动的“稳定”主要来自模型不看语言。&lt;/li&gt;
&lt;li&gt;定义组合泛化缺口（Compositionality Gap），用成功条件下的协方差刻画两种扰动叠加是否产生额外损失。&lt;/li&gt;
&lt;li&gt;用超过 20,000 条成功轨迹做 mix-SFT，OpenVLA-OFT+ 在 LIBERO-Plus 上达到 79.5%（项目 README 四舍五入为 79.6%），说明多样化训练确实能改善鲁棒性。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 原始 LIBERO、Simpler 等基准主要报告固定相机、固定场景和标准指令下的平均成功率。这种设置适合比较“在同一分布内谁更强”，却无法回答机器人遇到视角偏移、初始姿态改变或输入噪声时是否仍能完成任务。论文将这种差异称为从 interpolation 到真正 generalization 的鸿沟。&lt;/p&gt;
&lt;p&gt;与 AGNOSTOS、RL4VLA、VLATest、COLOSSEUM 等工作相比，LIBERO-Plus 的区别在于同时覆盖七个维度、自动生成大规模任务，并在每个维度内提供 L1–L5 难度。被评测模型包含 OpenVLA/OFT 变体、$\pi_0$、$\pi_0$-Fast、Nora、WorldVLA、UniVLA 和 RIPT-VLA，横跨 autoregressive、diffusion、world-model 和 RL 后训练路线。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 给定 LIBERO episode 和策略 $\pi$，对一个输入因素施加扰动 $D_i$，测量成功指示变量 $Y\in{0,1}$ 的条件概率：&lt;/p&gt;
&lt;p&gt;| 维度 | 具体操作 | 主要考察能力 |
| --- | --- | --- |
| Objects Layout | 加入干扰物、移动/旋转目标物 | 目标识别与空间不变性 |
| Camera Viewpoints | 改变第三视角位姿和 FOV | 视角变化下的几何推理 |
| Robot Initial States | 改变机械臂初始关节状态 | proprioception 与运动学 |
| Language Instructions | LLM 改写、增加语言复杂度 | 指令理解与跟随 |
| Light Conditions | 强度、方向、颜色、阴影 | 光照不变视觉 |
| Background Textures | 桌面/场景材质替换 | 背景域泛化 |
| Sensor Noise | jitter、Gaussian blur 等图像退化 | 感知抗噪 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方仓库把扰动后的 BDDL 任务和分类写入 &lt;code&gt;libero/libero/benchmark/task_classification.json&lt;/code&gt;；每项任务包含 &lt;code&gt;category&lt;/code&gt; 与 &lt;code&gt;difficulty_level&lt;/code&gt;。评测时 README 要求把 &lt;code&gt;num_trials_per_task&lt;/code&gt; 从 50 改成 1，以便大规模跑完 10,030 个任务。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;LIBERO-Plus 不是一个新的 Policy，而是一套“生成扰动 → 分层任务 → 统一 rollout → 统计分析”的诊断管线。原始 LIBERO 任务先按七维因素扩展，再过滤、平衡并由四个代表模型的准确率划分难度；最终将模型输出汇总为单维、双维和极端遮挡实验。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-libero-plus/diff-crop.64elcqfkfq.webp&quot; alt=&quot;LIBERO-Plus 难度等级下的模型性能曲线（论文 Figure 5）&quot;&gt;&lt;/p&gt;
&lt;p&gt;数据流可以概括为：&lt;code&gt;LIBERO task → BDDL/scene perturbation → simulator rollout → success rate → robustness/compositionality metrics&lt;/code&gt;。训练增强实验则从同一自动化管线收集成功轨迹，对 OpenVLA-OFT 做 mix-SFT。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;扰动生成器&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：原始 BDDL、场景资产、相机/机器人参数和语言模板。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：带后缀（如 &lt;code&gt;_add&lt;/code&gt;、&lt;code&gt;_light&lt;/code&gt;、&lt;code&gt;_language&lt;/code&gt;、&lt;code&gt;_table&lt;/code&gt;）的新任务文件。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;作用&lt;/strong&gt;：将“鲁棒性”从模糊概念变成可重复的参数扫描。目标位移、相机球面偏移、初始关节采样、材质与光照变化都能独立控制。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 仓库提供数百个新增物体、纹理和 scene asset；安装方式是直接 &lt;code&gt;pip install -e .&lt;/code&gt; 替换原 LIBERO，并从 Hugging Face 下载 &lt;code&gt;assets.zip&lt;/code&gt;。&lt;/p&gt;
&lt;h4&gt;统一评测器&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：模型 checkpoint、suite、任务分类和每任务 rollout 次数。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：每个模型×扰动维度的成功率及绝对下降值。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;作用&lt;/strong&gt;：保证 OpenVLA、diffusion policy 和 world-model policy 在相同任务集合上比较，而不是比较各自挑选的场景。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;诊断实验&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;对象布局拆分&lt;/strong&gt;：区分“加干扰物”和“移动目标物”，识别模型是在找目标语义还是记住像素位置。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;光照极端消融&lt;/strong&gt;：&lt;code&gt;3rd-black&lt;/code&gt; 只遮第三视角，&lt;code&gt;all-black&lt;/code&gt; 遮所有相机，区分全局视图和 wrist view 的贡献。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;语言诊断&lt;/strong&gt;：空指令与跨物体目标替换，检查模型是否真正根据语言改变动作。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;组合泛化&lt;/strong&gt;：对六类非语言扰动做两两组合，并与独立性乘积比较。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;p&gt;单维或双维扰动的成功率定义为：&lt;/p&gt;
&lt;p&gt;$$
s(d_i,d_j)=P(Y=1\mid D_i=d_i,D_j=d_j),\quad d_i,d_j\in{0,1}.
$$&lt;/p&gt;
&lt;p&gt;在成功样本条件下，双扰动的联合比例为：&lt;/p&gt;
&lt;p&gt;$$
p(D_i=1,D_j=1\mid Y=1)=\frac{s(1,1)}{\sum_{a,b\in{0,1}}s(a,b)}.
$$&lt;/p&gt;
&lt;p&gt;论文把组合泛化缺口定义为条件协方差：&lt;/p&gt;
&lt;p&gt;$$
\Delta_{ij}=\operatorname{Cov}(D_i,D_j\mid Y=1)
=p(1,1\mid Y=1)-p(D_i=1\mid Y=1)p(D_j=1\mid Y=1).
$$&lt;/p&gt;
&lt;p&gt;其中 $\Delta_{ij}&amp;#x3C;0$ 表示两种扰动共同出现时，比“单独影响相乘”的预期更差；$\Delta_{ij}=0$ 才符合独立性假设。这个指标测量的是成功事件中的交互，而不是简单把两个百分比相减。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文没有提出新的 Policy loss，而是用自动化扰动管线收集超过 20,000 条成功轨迹，并从官方 OpenVLA-OFT 权重出发进行 mixed fine-tuning。数据增加了场景、物体和扰动的多样性，目标是让策略在训练时就看到测试分布之外的变化。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这是一种 evaluation-driven post-training：基准既是诊断工具，也是数据生成器。它改善的是暴露过的分布覆盖，不等于已经解决真实机器人中的动力学、摩擦和传感器延迟。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 推理阶段沿用各模型原本的 rollout policy；LIBERO-Plus 只替换任务、场景和输入，不要求模型增加额外的鲁棒模块。每个扰动任务执行一次（README 的推荐配置），成功与否写入分类对应的统计桶。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方仓库主要实现 benchmark，而不是重新实现 OpenVLA、$\pi_0$ 等模型。可核对的实现点包括：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;libero/libero/benchmark/task_classification.json&lt;/code&gt;：任务 ID、扰动类别和 L1–L5 难度映射。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;libero/libero/bddl_files/libero_mix/&lt;/code&gt;：混合 suite 中按 &lt;code&gt;add&lt;/code&gt;、&lt;code&gt;light&lt;/code&gt;、&lt;code&gt;language&lt;/code&gt;、&lt;code&gt;table&lt;/code&gt;、&lt;code&gt;moved&lt;/code&gt; 等后缀组织的任务。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;benchmark_scripts/check_task_suites.py&lt;/code&gt; 与 &lt;code&gt;render_single_task.py&lt;/code&gt;：检查任务套件并渲染单个任务。&lt;/li&gt;
&lt;li&gt;README 的安装流程：替换 LIBERO、下载 assets、将 &lt;code&gt;num_trials_per_task&lt;/code&gt; 设为 1；训练数据和 OpenVLA-OFT+ checkpoint 通过 Hugging Face 单独提供。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;因此，论文中“模型结构、优化器和 action representation”的细节来自各模型原论文；LIBERO-Plus 代码本身只负责环境、任务资产与评测协议。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;论文评测十个开源 checkpoint：OpenVLA、OpenVLA-OFT、去 wrist 的 OpenVLA-OFT_w、mix-SFT 的 OpenVLA-OFT_m、$\pi_0$、$\pi_0$-Fast、Nora、WorldVLA、UniVLA 和 RIPT-VLA。原始列 &lt;code&gt;Original&lt;/code&gt; 是未扰动 LIBERO 成功率，其余列是七个扰动维度的成功率。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-libero-plus/camera-crop.70b2s6p92h.webp&quot; alt=&quot;相机视角扰动示例（论文 Figure 11–16 中的 Camera dimension）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 代表性结果如下（单位：成功率 %）：&lt;/p&gt;
&lt;p&gt;| 模型 | Original | Camera | Robot | Language | Light | Background | Noise | Layout |
| --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: |
| OpenVLA | 76.5 | 1.1 | 4.1 | 26.8 | 4.4 | 25.3 | 19.3 | 31.6 |
| OpenVLA-OFT | 97.1 | 59.7 | 37.2 | 81.5 | 85.8 | 92.4 | 76.7 | 77.1 |
| $\pi_0$ | 94.2 | 15.8 | 6.6 | 61.0 | 79.6 | 78.5 | 79.4 | 70.4 |
| $\pi_0$-Fast | 85.5 | 66.4 | 24.8 | 63.3 | 73.0 | 67.7 | 75.8 | 70.3 |
| RIPT-VLA | 97.5 | 58.3 | 36.7 | 80.1 | 87.9 | 90.4 | 73.8 | 76.5 |
| OpenVLA-OFT_m | 97.6 | 57.9 | 30.6 | 83.6 | 91.6 | 83.6 | 76.3 | 73.2 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 平均来看，相机和机器人初始状态最具破坏性；背景和光照通常较温和，但这并不代表模型学到了语义不变性。带 wrist camera 的 OpenVLA-OFT 比仅第三视角的 OFT_w 更能抵抗视角变化；多样化 co-training 的 $\pi_0$ 系列在噪声和背景上相对稳健。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-libero-plus/heatmap-crop.5trrjl0cfl.webp&quot; alt=&quot;双扰动条件概率热图：上三角是独立性乘积，下三角是真实联合结果（论文 Figure 4）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;对象布局。&lt;/strong&gt; 加入干扰物时，$\pi_0$、$\pi_0$-Fast、RIPT-VLA、UniVLA 和 WorldVLA 的下降较小；但移动目标物会让成功率显著下滑，说明模型更像记住目标的空间位置。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;光照与黑屏。&lt;/strong&gt; 所有相机都置黑（&lt;code&gt;all-black&lt;/code&gt;）后性能几乎归零；只遮第三视角（&lt;code&gt;3rd-black&lt;/code&gt;）时，OpenVLA-OFT、$\pi_0$-Fast 等仍分别达到约 43.6、43.0、67.3% 的准确率。wrist view 提供了近距离几何和接触线索，解释了光照扰动下的表面稳定性。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;语言。&lt;/strong&gt; 空指令对 object suite 影响很小，仅 long suite 明显下降；将目标从 alphabet soup 换成 tomato sauce 等 OOD 物体后，成功率接近零。模型常执行原目标动作，所谓“语言鲁棒”实质上是 language-agnostic。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;论文进行 2,000 次独立重复实验，对六类非语言扰动计算组合指标。热图中大多数联合结果低于单维成功率乘积，得到一致的负 $\Delta_{ij}$：扰动并非可独立分解，而是在共享特征空间中耦合成更强的噪声。&lt;/p&gt;
&lt;p&gt;进一步的 post-training 结果：OpenVLA-OFT+ 在 Camera、Robot、Language、Light、Background、Noise、Layout 上分别为 &lt;strong&gt;92.8、30.3、85.8、94.9、93.9、89.3、77.6%&lt;/strong&gt;，总成功率 &lt;strong&gt;79.5%&lt;/strong&gt;，相对 OFT_m 提升 11.6 个百分点；相机提升 37.2 个百分点最明显。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; LIBERO-Plus 的价值不在于把任务数量简单做大，而在于把“输入因素”与“失败模式”对齐。相机扰动直接测试坐标变换，初始状态扰动测试本体感与运动学，目标位移测试语义是否脱离绝对像素位置，空语言测试多模态融合是否真的发生。这样才能将一个低分归因到可研究的机制，而不是笼统地说模型不泛化。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;诊断维度完整&lt;/strong&gt;：同时覆盖 vision、state、language 三种输入通道。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;自动化与细粒度并存&lt;/strong&gt;：10,030 个任务配合 21 个子组件和五级难度。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;从相关性到交互性&lt;/strong&gt;：条件协方差形式的 $\Delta_{ij}$ 能发现组合扰动的额外损失。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;诊断闭环训练&lt;/strong&gt;：用失败暴露的变化生成成功轨迹，验证 robustness-oriented post-training 的收益。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;传统 LIBERO leaderboard 问“同一套场景谁成功率高”；LIBERO-Plus 问“任务条件稍微改变后，策略是否仍使用正确的感知、语言和几何线索”。它更接近 reliability evaluation，而不是单一能力排行榜。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;仿真中的材质、光照、相机和 BDDL 改动足以代表有意义的分布偏移；论文没有证明它们覆盖真实硬件的全部误差。&lt;/li&gt;
&lt;li&gt;单次 rollout 足以估计大规模 benchmark 的相对趋势；README 因成本建议每任务一次，但随机策略下方差可能被低估。&lt;/li&gt;
&lt;li&gt;成功轨迹 mix-SFT 的收益主要来自多样性，而不是额外的训练预算或 checkpoint 差异。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文结论强调当前结果主要来自模拟 LIBERO；它没有声称模型已经具备真实世界中的鲁棒性。作者也指出，标准 benchmark 的高分可能只是有限环境中的 trajectory memorization。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;语言实验集中在空指令和目标替换，尚未系统区分语法改写、否定、指代和长程组合指令。&lt;/li&gt;
&lt;li&gt;10,030 个任务虽大，但七个维度的采样分布、难度阈值和四模型分层会影响 leaderboard 的可迁移性。&lt;/li&gt;
&lt;li&gt;组合缺口目前主要是 pairwise covariance；三维及更高阶交互仍可能被遗漏。&lt;/li&gt;
&lt;li&gt;训练增强使用成功轨迹，失败恢复、碰撞安全和闭环纠错没有纳入目标函数。&lt;/li&gt;
&lt;li&gt;benchmark 代码不包含各 VLA 的统一实现，复现实验仍依赖不同仓库、权重和预处理细节。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这篇论文给 VLA 研究的直接提醒是：先问策略在依赖什么线索，再问它的平均成功率是多少。一个实用的后续路线是把 LIBERO-Plus 的扰动标签作为训练 curriculum：先解决相机和初始状态，再加入目标位移、语言替换，最后用组合缺口筛选真正需要结构化建模的交互。&lt;/p&gt;
&lt;p&gt;对模型设计而言，wrist view 的结果说明局部几何观测可能比更大的 backbone 更能提升鲁棒性；空语言和目标替换则提示需要显式的 language grounding 或 goal-conditioned action decoder。对评测而言，未来 leaderboard 至少应同时报告单维曲线、组合缺口、失败恢复率和真实部署转移，而不是只给一个 Original 平均分。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/78391247_p0_master1200.5j4sgia4wg.webp"/><enclosure url="https://pic.hana0721.top/78391247_p0_master1200.5j4sgia4wg.webp"/></item><item><title>LIBERO 论文精读：终身机器人学习知识迁移基准</title><link>https://agusexp25.top/blog/paper-deep-dive-libero</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-libero</guid><description>精读 LIBERO：用可程序化生成的 130 个语言条件机器人任务，系统评估终身学习中的知识迁移、策略架构、任务顺序与预训练。</description><pubDate>Thu, 27 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; LIBERO（LIfelong learning BEchmark on RObot manipulation）是一个面向机器人操作的 lifelong learning benchmark。论文不是提出一套新的 policy，而是提供任务生成器、130 个任务、示教数据、三类策略架构、三类终身学习算法和一套评测协议，让研究者可以回答“机器人究竟迁移了什么知识”。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-libero/overview.45ieme5n5d.webp&quot; alt=&quot;LIBERO benchmark overview from paper Figure 1&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; LIBERO 的关键价值在于把“终身学习”从一句口号变成可拆解的实验变量：保持物体不变只改变目标，保持目标不变只改变空间关系，再逐步加入混合分布，从而区分 declarative knowledge（对象、位置）与 procedural knowledge（动作、行为）的迁移和遗忘。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;提出基于 Robosuite、PDDL 和 Ego4D 行为模板的程序化任务生成流程，原则上可以持续生成新任务。&lt;/li&gt;
&lt;li&gt;发布四个任务套件：LIBERO-Spatial、LIBERO-Object、LIBERO-Goal 各 10 个任务，LIBERO-100 含 100 个任务；后者再划分为 LIBERO-90 预训练和 LIBERO-10（论文中称 LIBERO-LONG）终身学习评测。&lt;/li&gt;
&lt;li&gt;为每个任务提供 50 条高质量人类遥操作示教（Thread Velcro 为 100 条），降低研究者收集数据的门槛。&lt;/li&gt;
&lt;li&gt;统一比较 ResNet-RNN、ResNet-T、ViT-T 三类 visuomotor policy，以及 ER、EWC、PackNet、Sequential Fine-tuning 和 Multitask Learning。&lt;/li&gt;
&lt;li&gt;报告多个反直觉发现：顺序微调的 forward transfer 反而最好；没有一种视觉编码器在所有知识迁移类型上都占优；朴素监督预训练可能损害下游终身学习。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 传统 lifelong learning 多在图像或文本分类中研究 declarative knowledge，例如类别和实体。机器人决策还必须迁移 procedural knowledge：如何抓取、移动、开关或组合多个动作。比如“从冰箱取果汁”失败，可能是忘了果汁的位置，也可能是忘了开冰箱门的动作。&lt;/p&gt;
&lt;p&gt;单纯的 multitask learning 可以同时访问所有任务数据，但计算和存储成本高，也不符合机器人持续接收任务的设定。经典 lifelong learning 则要求任务按序到达，学习第 $k$ 个任务时不能完整访问前 $k-1$ 个任务数据，因此必须在 forward transfer（新任务学得更快）和 backward transfer / forgetting（旧任务性能保持）之间折中。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; LIBERO 的实验设计比“在一张总表上比较算法”更有诊断性：Spatial 主要考察空间关系，Object 主要考察对象概念，Goal 主要考察动作目标，LIBERO-100 则把这些因素纠缠在一起。这种 controlled distribution shift 是理解失败原因的前提。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 每个机器人任务 $T^k$ 由初始状态分布 $\mu_0^k$ 和目标谓词 $g^k$ 定义；所有任务共享状态空间 $S$、动作空间 $A$、动力学 $T$ 和 horizon $H$。机器人按顺序学习 $K$ 个任务，并使用同一个 task-conditioned policy $\pi(\cdot\mid s;T)$。&lt;/p&gt;
&lt;p&gt;在实际 benchmark 中，论文采用 lifelong imitation learning：每个任务提供示教集合 $D^k={\tau_i^k}$，轨迹包含图像、机器人关节/夹爪状态和连续末端执行器动作。由于图像观测通常不是 Markov 的，策略使用历史观测 $o_{\le t}$ 近似状态。&lt;/p&gt;
&lt;p&gt;目标是累计优化已经见过的任务：&lt;/p&gt;
&lt;p&gt;$$
J_{\mathrm{LRL}}(\pi)=\frac{1}{k}\sum_{p=1}^{k}
\mathbb E\left[\sum_{t=1}^{L^p}g^p(s_t^p)\right].
$$&lt;/p&gt;
&lt;p&gt;行为克隆阶段则最小化：&lt;/p&gt;
&lt;p&gt;$$
J_{\mathrm{BC}}(\pi)=\frac{1}{k}\sum_{p=1}^{k}
\mathbb E_{(o_t^p,a_t^p)\sim D^p}
\left[\sum_t\mathcal L\big(\pi(o_{\le t};T^p),a_t^p\big)\right].
$$&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;LIBERO 的系统由三层组成：任务生成器负责把自然语言行为模板变成场景和目标；benchmark 层固定任务套件、示教和任务顺序；policy 层接收图像、语言和机器人状态并输出连续动作。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-libero/procedural-generation.1sfs56ruj7.webp&quot; alt=&quot;LIBERO procedural task generation pipeline from paper Figure 2&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 数据流可以概括为：Ego4D 语言模板 → 采样任务指令 → 选择 Robosuite 场景并生成 PDDL 初始状态 → 用谓词描述目标 → 视觉语言策略通过 GMM action head 输出末端执行器动作。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;程序化任务生成器&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：Ego4D 的人类活动语言描述和模拟器已有物体/场景。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;中间结果&lt;/strong&gt;：行为模板、自然语言 instruction、PDDL 文件。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：可执行的初始状态分布 $\mu_0$、目标谓词 $g$ 和对应模拟任务。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 生成器先从 Ego4D 抽取“Open ...”“Put ...”等行为模板，再填入模拟器物体；随后根据 instruction 选择厨房等场景，PDDL 同时描述对象类别、摆放关系和初始开关状态。目标由 unary predicates（如 &lt;code&gt;Open(X)&lt;/code&gt;）和 binary predicates（如 &lt;code&gt;On(A,B)&lt;/code&gt;、&lt;code&gt;In(A,B)&lt;/code&gt;）的合取组成，全部谓词满足时 episode 结束。&lt;/p&gt;
&lt;h4&gt;三种视觉语言策略&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-libero/architectures.pg2uavz3g.webp&quot; alt=&quot;LIBERO policy architectures from paper Figure 6&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;| Policy | Vision encoder | Temporal backbone | Language fusion | 适合观察 |
| --- | --- | --- | --- | --- |
| ResNet-RNN | ResNet | LSTM | FiLM + LSTM input | 低成本、较短时序 |
| ResNet-T | ResNet | Transformer decoder | language token + visual tokens | 时序与空间关系 |
| ViT-T | ViT | Transformer decoder | language token 参与视觉和时序融合 | 物体种类丰富的场景 |&lt;/p&gt;
&lt;p&gt;三者都把多模态特征送入 Gaussian Mixture Model（GMM）输出头，再采样连续末端执行器动作。&lt;strong&gt;【Code】&lt;/strong&gt; 官方仓库当前配置将 &lt;code&gt;bc_transformer_policy&lt;/code&gt; 的时序 Transformer 设为 4 层、6 个 heads、最大序列长度 10，并默认使用 ResNet image encoder、MLP language encoder 与 GMM head；可通过 Hydra 配置切换 &lt;code&gt;bc_rnn_policy&lt;/code&gt;、&lt;code&gt;bc_vilt_policy&lt;/code&gt; 和不同 lifelong algorithm。&lt;/p&gt;
&lt;h4&gt;Lifelong learning algorithms&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Sequential Fine-tuning（SeqL）&lt;/strong&gt;：只用当前任务数据更新共享策略，作为低成本基线。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Experience Replay（ER）&lt;/strong&gt;：保存旧任务少量样本，与新任务混合训练，属于 memory-based 方法。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Elastic Weight Consolidation（EWC）&lt;/strong&gt;：用 Fisher 信息估计参数重要性，对旧任务重要参数施加正则，属于 regularization-based 方法。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;PackNet&lt;/strong&gt;：为已学任务冻结/分配参数子网络，属于 dynamic-architecture 方法。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Multitask Learning（MTL）&lt;/strong&gt;：同时访问所有任务数据，作为理想化上界。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;Forward transfer、negative backward transfer 与 AUC&lt;/h4&gt;
&lt;p&gt;设 $c_{i,j,e}$ 是已经学习前 $i-1$ 个任务、在任务 $i$ 上训练 $e$ 个 epoch 后评估任务 $j$ 的 success rate。当前任务 $i$ 的最佳成功率为 $c_{i,i}=\max_e c_{i,i,e}$，达到该值的最早 epoch 为 $e_i^*$。&lt;/p&gt;
&lt;p&gt;$$
\mathrm{FWT}&lt;em&gt;k=\frac{1}{11}\sum&lt;/em&gt;{e\in{0,5,\ldots,50}}c_{k,k,e},
\quad
\mathrm{NBT}&lt;em&gt;k=\frac{1}{K-k}\sum&lt;/em&gt;{\tau=k+1}^{K}(c_{k,k}-c_{\tau,k}),
$$&lt;/p&gt;
&lt;p&gt;$$
\mathrm{AUC}&lt;em&gt;k=\frac{1}{K-k+1}\left(\mathrm{FWT}&lt;em&gt;k+\sum&lt;/em&gt;{\tau=k+1}^{K}c&lt;/em&gt;{\tau,k}\right).
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; FWT 越高表示新任务学得快，NBT 越低表示旧任务保留得好，AUC 同时考虑两者。&lt;strong&gt;【Analysis】&lt;/strong&gt; 这三个指标避免只看最后一个 success rate：一个算法即使不遗忘，但每个新任务都要从头学，也不算好的 lifelong learner。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 每个任务使用 50 条人类 teleoperation trajectories；训练采用 behavioral cloning，策略根据当前图像历史、语言指令和机器人状态预测 GMM 动作分布。论文实验使用单张 A100 或 A40，训练和评估在仿真中进行；LIBERO-90 的短任务可用于预训练，LIBERO-LONG 的 10 个长任务用于下游终身学习。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方 README 的复现实验入口是 &lt;code&gt;python libero/lifelong/main.py seed=SEED benchmark_name=BENCHMARK policy=POLICY lifelong=ALGO&lt;/code&gt;；配置中可选 &lt;code&gt;base&lt;/code&gt;、&lt;code&gt;er&lt;/code&gt;、&lt;code&gt;ewc&lt;/code&gt;、&lt;code&gt;packnet&lt;/code&gt;、&lt;code&gt;multitask&lt;/code&gt;，数据下载脚本支持四个任务套件和 Hugging Face 镜像。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 推理时机器人只访问当前 observation 和 task instruction，不再访问旧任务数据；策略输出 GMM 的连续末端执行器动作并与模拟器交互。任务在所有 PDDL goal predicates 满足时成功。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方实现把 benchmark、policy、lifelong method 和 optimizer 拆成 Hydra 配置树。&lt;code&gt;benchmark_scripts/download_libero_datasets.py&lt;/code&gt; 负责下载示教；&lt;code&gt;libero/configs/policy/&lt;/code&gt; 定义三种 BC policy、ResNet/patch image encoder、语言 encoder、位置编码和 GMM head；&lt;code&gt;libero/configs/lifelong/&lt;/code&gt; 提供 &lt;code&gt;er.yaml&lt;/code&gt;、&lt;code&gt;ewc.yaml&lt;/code&gt;、&lt;code&gt;packnet.yaml&lt;/code&gt;、&lt;code&gt;multitask.yaml&lt;/code&gt; 等算法配置。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 论文中的方法贡献是“可控 benchmark + 初始研究协议”，而不是仓库中的某个单一模型。代码最重要的可复现接口是把五种算法和三种 policy 组合成实验矩阵；因此阅读结果时应同时记录 &lt;code&gt;benchmark_name&lt;/code&gt;、&lt;code&gt;policy&lt;/code&gt;、&lt;code&gt;lifelong&lt;/code&gt; 和 &lt;code&gt;seed&lt;/code&gt;，否则不同表格之间并不可直接比较。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;四个套件的分布变化如下：&lt;/p&gt;
&lt;p&gt;| Suite | 任务数 | 主要变化 | 需要迁移的知识 |
| --- | ---: | --- | --- |
| LIBERO-Spatial | 10 | 物体相同，空间关系变化 | declarative spatial knowledge |
| LIBERO-Object | 10 | 布局相近，物体类型变化 | declarative object knowledge |
| LIBERO-Goal | 10 | 物体和布局固定，目标变化 | procedural goal/behavior knowledge |
| LIBERO-100 | 100 | 物体、布局、目标混合变化 | entangled knowledge |&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-libero/metrics.362b982vxb.webp&quot; alt=&quot;LIBERO evaluation metrics from paper Figure 3&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 所有结果平均三个 random seeds，并报告标准误；success rate 被选作底层指标，因为操作任务中的训练 loss 与真实完成率并不总是同步。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文的主要结论可以压缩成三点：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Transformer temporal backbone 普遍优于 RNN&lt;/strong&gt;：ResNet-T 和 ViT-T 在多数套件上的 AUC 明显高于 ResNet-RNN，说明长期依赖的抽象方式本身就是关键变量。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;视觉架构具有任务专长&lt;/strong&gt;：在 ER 下，ResNet-T 往往在 Spatial/Goal 上更强；ViT-T 在 Object 上受益于更强的视觉容量。没有单一 encoder 在所有分布变化上胜出。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;算法与架构存在交互&lt;/strong&gt;：PackNet 在 LIBERO-X 上的 NBT 很低，但在 LIBERO-LONG 上 forward transfer 较差；ER 的整体表现更稳健。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;以 LIBERO-LONG 为例，ResNet-T + ER 的 FWT/NBT/AUC 为 &lt;code&gt;0.48/0.32/0.32&lt;/code&gt;，ViT-T + PackNet 为 &lt;code&gt;0.36/0.14/0.34&lt;/code&gt;；后者更不容易忘记，但前者学新任务更快。&lt;strong&gt;【Analysis】&lt;/strong&gt; 这正是 AUC 比单一“最终成功率”更有解释力的地方。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;语言 embedding。&lt;/strong&gt; BERT、CLIP、GPT-2 与 Task-ID embedding 在 LIBERO-LONG 上没有统计显著差异。论文推测，当前 sentence embedding 更像 bag-of-words，只负责区分任务，而没有真正利用 instruction 的语义结构。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;终身算法。&lt;/strong&gt; SeqL 在所有套件上 FWT 最好，说明 ER/EWC/PackNet 的抗遗忘机制同时牺牲了新任务适应速度；PackNet 在短任务上保护旧知识有效，但参数分割会减少单个长任务可用容量；EWC 的正则化甚至可能阻碍当前任务优化。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;任务顺序。&lt;/strong&gt; 同一算法和架构仅改变 task ordering，性能就会显著变化，尤其是 PackNet。任务顺序不是实验噪声，而是 benchmark 应显式报告的条件。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-libero/task-order.3yf6qyjiou.webp&quot; alt=&quot;Task ordering results from paper Figure 4&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 作者用 LIBERO-90 的 90 个短任务做 supervised pretraining，再在 LIBERO-LONG 上进行 lifelong learning。结果显示，朴素预训练不一定改善下游性能，部分架构/算法组合反而下降。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-libero/pretraining.2yz3dsgr1p.webp&quot; alt=&quot;Pretraining effects from paper Figure 5&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这不是“预训练无效”的普遍结论，而是说明行为克隆预训练可能把模型塑造成过于具体的动作/视觉表示，降低后续任务中的可塑性；预训练目标、数据顺序和冻结策略需要与 lifelong objective 一起设计。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; LIBERO 有效的根本原因是把变量拆开了。Spatial/Object/Goal 三套任务共享大量因素，只改变一个知识轴，因而可以把性能差异归因到空间、对象或程序行为，而不是笼统地归因于“泛化能力”。同时，FWT 与 NBT 把适应速度和记忆保持分离，避免算法通过完全冻结模型获得虚假的抗遗忘成绩。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Benchmark as a microscope&lt;/strong&gt;：任务套件不是简单增加数量，而是提供知识类型的受控实验。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Procedural generation&lt;/strong&gt;：自然语言模板、场景、PDDL 状态和目标形成可扩展的任务生产线。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Policy–algorithm matrix&lt;/strong&gt;：同一 benchmark 同时比较视觉/时序架构和终身算法，揭示二者的交互效应。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Lifecycle metrics&lt;/strong&gt;：FWT、NBT、AUC 让“学得快、忘得少、总体好”成为可复现实验对象。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;LIBERO 不把 lifelong robot learning 简化为“多任务 BC 的最后一个 checkpoint”。它保留任务到达顺序、旧数据不可完全访问和持续评估旧任务三个约束；MTL 只是上界，SeqL 则是 forward-transfer 参照。&lt;strong&gt;【Analysis】&lt;/strong&gt; 因此 LIBERO 更接近真实部署中的数据生命周期，而非离线数据集上的静态 benchmark。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 所有任务共享状态/动作空间和动力学，主要变化来自初始分布与目标谓词。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 机器人主要通过少量示教进行 imitation learning，当前版本不是稀疏奖励 RL 的完整解决方案。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 仿真中的视觉和动力学差异仍然有限，benchmark 分数不能直接等价为真实机器人上的终身能力。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 任务文本被当作 task condition，但现有 embedding 实验表明策略可能只使用任务 ID 的区分信息。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; LIBERO 的初始研究集中在四个模拟任务套件、三种 policy 和三种 lifelong algorithm；作者将更丰富的语言编码、对任务顺序更鲁棒的算法、以及更有效的预训练列为开放方向。当前 benchmark 主要采用 imitation learning，因为 sparse-reward RL 在这些操作任务上训练困难。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;仿真偏差&lt;/strong&gt;：PDDL goal 成功并不包含接触安全、力控制和硬件磨损，sim-to-real 仍需独立验证。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;示教分布限制&lt;/strong&gt;：每任务 50 条轨迹足以做 benchmark，但可能不足以覆盖多种合法行为，影响对多模态 procedural knowledge 的测量。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;记忆预算未完全统一&lt;/strong&gt;：ER 的 replay 容量、PackNet 的参数掩码和 EWC 的正则强度有不同资源含义，横向比较需要同时报告内存和可训练参数。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;语言变量仍较弱&lt;/strong&gt;：如果自然语言只承担 task identifier，LIBERO 还不能充分检验 compositional language grounding。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;长程交互有限&lt;/strong&gt;：LIBERO-LONG 只有 10 个长任务，真实世界中任务数量、对象变化和动力学变化可能更加开放。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 读完 LIBERO 后，最值得带走的不是“ER 还是 PackNet 更好”，而是以下研究方法：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;先定义要迁移的知识，再设计只改变一个因素的任务套件；否则任何结果都难以解释。&lt;/li&gt;
&lt;li&gt;评估 lifelong policy 时同时画出 learning curve、FWT、NBT 和 AUC，并报告 task ordering 与 seed。&lt;/li&gt;
&lt;li&gt;把 policy architecture 当成一等公民：视觉 encoder、temporal module 和 language fusion 可能比算法名字更决定迁移效果。&lt;/li&gt;
&lt;li&gt;预训练应优化“可塑性 + 稳定性”，而不是只追求短期 BC success rate；可以尝试 representation replay、任务关系建模或 meta-learned consolidation。&lt;/li&gt;
&lt;li&gt;下一步可把 LIBERO 的 PDDL 目标与真实机器人安全约束连接起来，并增加开放词汇对象、触觉、力反馈和可组合语言 instruction。&lt;/li&gt;
&lt;/ul&gt;</content:encoded><h:img src="https://pic.hana0721.top/78075718_p0_master1200.51eqrx8rbi.webp"/><enclosure url="https://pic.hana0721.top/78075718_p0_master1200.51eqrx8rbi.webp"/></item><item><title>InternData-A1 论文精读：合成数据能否预训练通用机器人策略？</title><link>https://agusexp25.top/blog/paper-deep-dive-interndata-a1</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-interndata-a1</guid><description>精读 InternData-A1：用可组合、高保真、跨 embodiment 的合成操控数据预训练 π₀，验证其能在仿真和真实机器人任务中匹敌闭源 π-dataset。</description><pubDate>Thu, 27 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-interndata-a1/interndata-a1-overview.webp&quot; alt=&quot;InternData-A1 的数据规模、物体类型、技能与 embodiment（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; InternData-A1 的论点不是“仿真替代真实数据”，而是：当合成数据同时覆盖足够多的
embodiment、场景、物体物理和可组合技能时，它可以提供强到足以预训练通用 VLA（Vision-Language-Action）
Policy 的动作先验；论文以与 $\pi_0$ 相同的架构，检验这种先验能否追平闭源 $\pi$-dataset。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;发布 InternData-A1：共 637,498 条轨迹、401,430,981 帧、7,433.91 小时，覆盖 4 种机器人、18 类技能、70 个任务与 227 个室内场景。&lt;/li&gt;
&lt;li&gt;提出解耦且可组合的合成流水线：资产、原子技能、任务配置、轨迹规划与渲染分别处理，使同一技能能在不同物体、场景和 embodiment 中复用。&lt;/li&gt;
&lt;li&gt;采用物理与视觉高保真资产，覆盖刚体、关节物体、衣物等可变形物体和流体；并在相机、光照、布局、物体姿态、抓取/接触位点上随机化。&lt;/li&gt;
&lt;li&gt;仅用 InternData-A1 预训练 $\pi_0$，在 RoboTwin 2.0 的 49 项双臂任务、9 项真实任务及 10 项 sim-to-real 任务上与官方 $\pi_0$ 对照，展示合成预训练的可迁移性。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 大规模真实机器人数据已证明能让 VLA 获得跨任务、场景和 robot embodiment 的泛化，但遥操作采集依赖熟练操作员、硬件和大量人工。仿真则具备可控场景与自动扩展的优势，却常局限于刚体 pick-and-place、少量技能，或没有证明其数据足以承担大规模 VLA pre-training。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 因而本文的真正变量是“数据分布”而不是“网络容量”。作者固定 $\pi_0$ 架构，将训练来源替换为 InternData-A1，试图回答：合成数据在多样性、真实性和规模上达到什么程度，才不再只是 downstream augmentation，而能学习到可迁移的 action prior。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 给定资产库与自然语言式任务模板，系统要自动产生可执行的示教轨迹
$\mathcal D_{sim}={(o_{1:T}, q_{1:T}, a_{1:T}, l)}$：$o$ 是多视角 RGB 与相机参数，$q$ 是机器人本体状态，$a$ 是 dense joint-space control label，$l$ 是语言指令。每条轨迹必须先通过物理仿真验证，才会渲染并保存为 LeRobot 格式。&lt;/p&gt;
&lt;p&gt;| 层次     | 论文中的对象                         | 作用                                  |
| -------- | ------------------------------------ | ------------------------------------- |
| 资产     | robot、房间、刚体/关节/衣物/流体物体 | 决定 embodiment 与物理/视觉分布       |
| 原子技能 | Pick、Place、Push 等 18 类技能       | 将对象与约束映射成末端执行器 waypoint |
| 任务     | 70 个不同上下文与技能组合            | 定义语言、顺序/并行双臂行为与动作约束 |
| 轨迹     | CuRobo 插值后的关节动作              | 经物理验证后成为 VLA 监督信号         |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 数据包含 AgiBot Genie-1（7.9%）、Franka Panda（23.3%）、AgileX Split Aloha + Piper-100（30.8%）及 ARX Lift-2 + R5a（37.8%）。70 个任务中含 4 个流体、4 个可变形、15 个关节物体任务和 47 个刚体任务；18 个 long-horizon 任务均至少含 3 个连续技能。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-interndata-a1/interndata-a1-pipeline.webp&quot; alt=&quot;InternData-A1 的环境构建、技能组合、随机化与生成流水线（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 数据流为：任务模板检索 robot/scene/object 资产，组合原子技能为 waypoint，再经 domain randomization、CuRobo 规划与物理验证；成功轨迹才进入渲染和 LeRobot 存储。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;高保真环境与资产接口&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 机器人以经过接触动力学验证的 USD 资产表示；场景来自 GRUtopia 的 GRScenes-100，并附有可操纵区域元数据。刚体记录物理属性、canonical pose 与自动抓取位姿；关节物体带 joint axis、部件 pose、damping 和 stiffness；衣物以 Vertex Block Descent 模拟；流体以粒子动力学和等值面渲染建模。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这套统一资产接口的意义在于把“如何表示一个可操作对象”从每个任务脚本中抽走。若物理参数和交互标注只存在于专用任务代码里，技能就很难跨对象、跨房间复用。&lt;/p&gt;
&lt;h4&gt;原子技能与任务组合&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 每个 scripted skill 接收物体状态（pose、joint state）、机器人状态（base 与 end-effector pose）和用户约束，输出目标末端的 6D waypoint。以 Pick 为例，系统筛选 grasp candidates，生成 pre-grasp、grasp 和 post-grasp pose；与关节物体交互的 Push 则根据 contact annotation 生成 pre-contact、contact 与 post-contact waypoint。用户只需指定左右臂、技能的串/并行关系和少量空间范围。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; waypoint 是此处的关键中间表示：高层 skill 只关心语义约束，低层 planner 只关心连续可行运动。论文因此能把“拿盘子—交给另一只手—放上架子”写成配置组合，而不是为每个新任务重新示教。&lt;/p&gt;
&lt;h4&gt;Domain Randomization&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 系统随机扰动主相机和腕相机（旋转 $\pm5^\circ$、平移 $\pm5$ cm），从 174 个 environment map 中采样光照，替换同类物体、随机桌面与背景布局，并在任务规定空间内采样机器人与目标物的初始 pose。抓取候选由 AnyGrasp 自动产生并筛选，最终从 top-40 高置信候选中随机选择；关节物体和衣物的接触区域也在邻域内随机采样。&lt;/p&gt;
&lt;h4&gt;Planner–Renderer 解耦&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; CuRobo 在 waypoint 间插值为 dense joint actions，并先在物理仿真中执行。只有成功的 episode 才开启渲染和记录，避免为失败的长任务浪费 GPU 渲染。论文进一步把 CPU 偏重、串行的 planning 与 GPU 偏重、并行的 rendering 解耦，用 batch、动态调度、Stack Render、Balancer 和 Supervisor 组织集群，报告端到端吞吐相对基线提升 $2\text{--}3\times$。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 原子技能可抽象为从状态与约束到 waypoint 序列的映射：&lt;/p&gt;
&lt;p&gt;$$
W = f_s(x^{obj}, x^{robot}, c), \qquad
W={w_i}_{i=1}^{K},\quad w_i\in SE(3)
$$&lt;/p&gt;
&lt;p&gt;其中 $s$ 表示某个 skill，$x^{obj}$ 含物体 pose 或关节状态，$x^{robot}$ 含 base 与末端状态，$c$ 是对象、方向、接触/放置区域等约束；$w_i$ 是第 $i$ 个末端 6D 目标 pose。$K$ 随技能而变，例如 Pick 通常需靠近、闭合与抬起等多个 waypoint。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 将随机化显式写为：&lt;/p&gt;
&lt;p&gt;$$
\xi\sim p(\xi),\qquad \tau = \operatorname{Sim}\bigl(\operatorname{Plan}(W;\xi)\bigr)
$$&lt;/p&gt;
&lt;p&gt;$\xi$ 汇集相机、光照、布局、物体 pose、抓取候选和接触区域的随机变量；$\operatorname{Plan}$ 是 CuRobo 插值/规划，$\operatorname{Sim}$ 是物理验证。只有成功的 $\tau$ 会被渲染，这将“随机得多”与“仍物理可执行”同时作为数据质量门槛。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 作者采用与 $\pi_0$ 相同的架构：PaliGemma 初始化视觉—语言部分，action expert 从随机权重开始；仅使用 InternData-A1 预训练 680k iterations、32 张 A100。总 batch size 为 512，learning rate 为 $5\times10^{-5}$，constant schedule。下游 regular 与 sim-to-real 任务从该 checkpoint post-train 30k iterations（8 GPU、batch 128、$2.5\times10^{-5}$、cosine decay）；dexterous 任务训练 100k iterations。&lt;/p&gt;
&lt;p&gt;&amp;#x3C;Algorithm
number={1}
title=&apos;InternData-A1 合成数据与 π₀ 预训练&apos;
inputLabel=&apos;输入&apos;
outputLabel=&apos;输出&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 本文并未改变 $\pi_0$ 的部署机制：在下游任务上 post-training 后，Policy 从当前视觉、语言与 robot proprioception 输出动作，控制器按环境执行。实验里每个真实任务使用 JAX 版本的 $\pi_0$(InternData-A1) post-train 30k steps 的 checkpoint；每个任务设 15 个 evaluation setting、每个 setting 两次 rollout，共 30 次并报告平均成功率。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方项目页只链接到受访问许可约束的 &lt;a href=&quot;https://huggingface.co/datasets/InternRobotics/InternData-A1&quot;&gt;Hugging Face 数据集&lt;/a&gt;，没有单独的 InternData-A1 pipeline GitHub 仓库或可复现实验脚本。公开文件树可见已发布的 &lt;code&gt;sim&lt;/code&gt;/&lt;code&gt;real&lt;/code&gt; 数据目录、&lt;code&gt;InternDataAssets&lt;/code&gt;、机器人 URDF/资产，以及一个 &lt;code&gt;InternDataAssets/curobo&lt;/code&gt; 目录。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;curobo&lt;/code&gt; 目录是 CuRobo 的代码与资产副本，能佐证论文使用 CuRobo 规划，但不等于论文的环境构建、skill composition、randomization、Balancer 或 Supervisor 实现。因此无法将 4.2 中的专属生成逻辑逐文件映射；文章不把这些未公开的细节标为可复现实装。数据集页面目前为 gated，使用者还需接受 InternData-A1 COMMUNITY LICENSE AGREEMENT。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-interndata-a1/interndata-a1-real_setup.webp&quot; alt=&quot;真实机器人评测覆盖三种 embodiment 与九项任务（论文 Figure 4）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 主要对比固定模型架构而改变 pre-training source：$\pi_0$ (Scratch) 没有预训练，$\pi_0$ 是以闭源 $\pi$-dataset 训练的官方 checkpoint，$\pi_0$(InternData-A1) 则只以论文合成数据预训练。仿真评测使用 RoboTwin 2.0 的 49 个双臂任务，Easy 为整洁场景、Hard 为杂乱场景；每种设置报告两个 checkpoint、每个 100 次 trial 的平均成功率。真实评测使用 Genie-1、ARX Lift-2 与二者均未见过的 ARX AC One，含 5 个 regular 与 4 个 dexterous 任务。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-interndata-a1/interndata-a1-real_results.webp&quot; alt=&quot;InternData-A1 与官方 π₀ 在九项真实任务上的比较（论文 Figure 5）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在 49 个 RoboTwin 任务上，$\pi_0$(InternData-A1) 的平均成功率为 Easy 60.0%、Hard 26.5%，高于官方 $\pi_0$ 的 55.0%、20.0%，也远高于 Scratch 的 23.5%、2.5%。论文文字将提升概括为对官方 checkpoint 的 Easy +5%、Hard +6.5%。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 真实 regular task 跨 in-distribution 与 out-of-distribution 设置的平均表现比 $\pi$-dataset 预训练高 6.2%。在 4 项高难度 dexterous task（折衣、分拣工业零件、拧瓶盖、拉拉链）中，InternData-A1 与官方 $\pi_0$ 表现相当，尽管 ARX AC One、对象和技能均为新条件。&lt;/p&gt;
&lt;p&gt;| 预训练数据                | 49 Sim Easy | 49 Sim Hard | Sort Rubbish | Pass Bottle |
| ------------------------- | ----------: | ----------: | -----------: | ----------: |
| OXE（真实）               |       32.5% |       11.0% |        40.0% |       36.7% |
| Agibot World（真实）      |       52.5% |       12.0% |        53.3% |       56.7% |
| RoboCasa（仿真）          |       50.0% |       11.0% |        23.3% |       13.3% |
| &lt;strong&gt;InternData-A1（仿真）&lt;/strong&gt; |   &lt;strong&gt;60.0%&lt;/strong&gt; |   &lt;strong&gt;26.5%&lt;/strong&gt; |    &lt;strong&gt;90.0%&lt;/strong&gt; |   &lt;strong&gt;60.0%&lt;/strong&gt; |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 上表的开放数据对比中，各数据源均只预训练 500k iterations；InternData-A1 在两个真实任务上相对 RoboCasa 的平均改进为 57.7%。这不是“合成天生优于真实”的一般结论，而是在该模型、预算和任务集下，本文合成数据的规模与真实性带来的实证结果。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 作者将数据分为 PnP（30.61%）、Art（11.67%）、Base（35.95%）和至少三技能的 Long（21.77%），以 full data 或每次移除一类数据训练 $\pi_0$ 0.5 epoch，并在 RoboTwin 2.0 测试：&lt;/p&gt;
&lt;p&gt;| 数据组成  | Easy / Hard 成功率 |
| --------- | -----------------: |
| Full      |  &lt;strong&gt;58.0% / 25.0%&lt;/strong&gt; |
| w.o. PnP  |      57.0% / 22.5% |
| w.o. Art  |      55.5% / 19.5% |
| w.o. Base |      52.5% / 20.5% |
| w.o. Long |      54.0% / 19.0% |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; PnP 和 Base 占比最大，却不是移除后跌幅最大的唯一因素；去掉 Art 或 Long 在 Hard 下尤其明显。这支持“覆盖不同轨迹几何与多阶段控制”的价值，但该消融只训练 0.5 epoch，不能直接量化完整 680k-step 训练时每类数据的边际收益。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-interndata-a1/interndata-a1-sim_to_real.webp&quot; alt=&quot;四项直接 sim-to-real 任务及仿真/真实数据量对比（论文 Figure 6）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 四项直接 sim-to-real 实验从同一个 $\pi_0$(InternData-A1) checkpoint 出发，分别以 200–1,600 条仿真 episode 或 200 条真实 episode post-train，每个策略评估 30 次。Sort Rubbish、Wipe Stain 等基础技能任务中，200 条仿真数据已可与 200 条真实数据相当；动态物体和语言 grounding 更强的 Flip Package、Instructional Pick 约需 1,600 条仿真数据，约为 $8:1$ 的数据比。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 另有 6 个任务仅用 500 条仿真数据 post-train：Make Sandwich、Pack 达到超过 50%，Close Box/Close Microwave 为 63%/87%，双臂 Sweep/Handover 为 60%/57%。论文强调背景、灯光、纹理和桌面布局不必逐像素复刻，但 camera view 与 joint action space 需粗对齐。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 该方法将有效数据的来源拆成两个相互约束的条件：一是“大而杂”——重复的原子技能在多物体、多场景和长任务中形成可重组的 action prior；二是“不能脱离物理”——规划、仿真验证和随机化共同保证标签仍可执行。单独扩大资产库只能增加视觉变化，单独复制轨迹又无法覆盖新的接触与关节几何；两者结合才可能对真实控制有帮助。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 相对于新增一个模型模块，论文的创新重点是数据生产系统：跨 embodiment 资产接口、state-to-waypoint 原子技能、技能配置式组合、planner–renderer 解耦及高维随机化。尤其是把完整 long-horizon task 写成可重用 skill 的顺序/并行组合，突破了仿真数据仅靠大量单步 pick-and-place 扩张的路径。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 传统 synthetic benchmark 主要评估一个 Policy 是否能在固定环境内学习；InternData-A1 把合成器当作“预训练语料工厂”，以预训练后能否迁移到未见 robot、真实场景和新技能来衡量数据。相对只改变物体实例的 task augmentation，它把 task 统计定义为不同上下文、原子技能组合和 action-space constraint，因此目标是 trajectory diversity，而非仅增加图片数。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 结论依赖几个条件：目标任务与数据集中原子技能有足够重叠；相机视角和机器人关节 action space 能够对齐；关键接触的 simulator physics 足够可信；以及下游仍允许 post-training。它并未证明一个纯合成 checkpoint 可以在任意真实任务上无需适配地可靠运行。&lt;/p&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 作者指出受物理模拟器限制，系鞋带、穿针等高度灵巧的任务难以模拟；未来将扩展数据的任务多样性与 dexterity。论文也承认复杂任务通常需要更多仿真后训练数据，直接 sim-to-real 的表现依赖合适的 camera 与 action-space 对齐。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 首先，$\pi$-dataset 是闭源，尽管统一架构与下游流程已尽量公平，仍无法控制其精确数据配方、清洗标准和训练细节。其次，任务生成流水线尚没有独立、端到端可执行的官方仓库，外部研究者难以复核技能脚本、调度器与资源成本。最后，论文中的“高保真”主要经下游成功率间接验证；对材料、摩擦、流体和衣物等误差最敏感的长程接触场景，仍缺少系统的 failure taxonomy。&lt;/p&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 对数据中心的 Embodied AI 而言，最值得复用的也许不是某一个资产库，而是这条设计原则：把 skill 的语义、waypoint 的几何、planner 的可行性与 renderer 的观测分开，使每一层都能独立扩张和诊断。下一步可研究基于真实失败案例自动反向选择随机化变量、对产生 sim-to-real gap 的物理属性做主动校准，以及让 VLA 在部署时识别自己遇到了数据集中未覆盖的接触模式。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/3602563_p0_master1200.8hh43k1p88.webp"/><enclosure url="https://pic.hana0721.top/3602563_p0_master1200.8hh43k1p88.webp"/></item><item><title>HiFi-UMI 论文精读：仅用高保真 UMI 数据学习可部署操作策略</title><link>https://agusexp25.top/blog/paper-deep-dive-hifi-umi</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-hifi-umi</guid><description>精读 HiFi-UMI：用 3 mm 轨迹精度、40 μs 硬件同步和六视角采集，把机器人无关示教推进到零机器人后训练与真实机器人部署。</description><pubDate>Thu, 27 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; HiFi-UMI 的核心不是再造一个 VLA，而是把 UMI（Universal Manipulation Interface）数据生产系统做得足够可信：头戴式离线双目惯性 SLAM 负责低漂移轨迹，双手在同一头部坐标系中获得原生相对位姿，统一 GPIO 触发保证微秒级同步，双手各两枚超广角相机补足遮挡。经仿真回放筛选后，这些机器人无关示教可以单独承担 post-training，并直接驱动真实双臂机器人。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-hifi-umi/overview.77eanp5e4a.webp&quot; alt=&quot;HiFi-UMI 系统总览：采集、数据引擎与部署&quot;&gt;&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文的贡献可以拆成四层：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;数据采集硬件–软件协同。&lt;/strong&gt; 把轨迹精度、双手相对位姿、时间同步、视场角和在线质量控制作为同一个系统问题，报告约 3 mm workspace-local end-effector error、低于 40 μs 的跨传感器偏移和约 200° 的双手覆盖范围。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;可回放的数据引擎。&lt;/strong&gt; 原始记录经过轨迹重建、自动清洗、simulation retargeting、AI 辅助标注、人工验证和统计导出；轨迹重建和回放验证通过率都约为 98%，累计保留率约 96%。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Zero-robot post-training。&lt;/strong&gt; 在 StarVLA-QwenPI、OpenPI-π0.5 和 LingBot-VA 三个 backbone 上，UMI-only post-training 与同场景 teleoperation 的 aggregate success-rate 差分别为 −2.5、+3.1 和 −0.6 个百分点。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;可扩展数据资源。&lt;/strong&gt; 从 20,000+ 小时、4.32M+ episodes 的处理语料中发布 2,000 小时的 HiFi-UMI-2K，覆盖 110+ scenes 和 482,100+ episodes。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 真正被挑战的假设是“post-training 必须有一小份真实机器人 anchor”。论文把问题改写为：只要 robot-free action label 的 fidelity 足够高，是否可以完全移除这个 anchor？&lt;/p&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 真实机器人 teleoperation 的轨迹天然位于目标机器人的 observation、action 和动力学空间中，但每小时数据都要占用目标机器人、操作设备、场地和安全人员。Ego-video 规模大，却没有可执行 action；UMI 位于两者之间：人手持设备完成示教，成本和采集地点更灵活，同时保留腕部视觉与相对末端运动。&lt;/p&gt;
&lt;p&gt;已有 UMI 系统的瓶颈集中在四点：腕部视觉 SLAM 容易被手和物体遮挡并累积 drift；双手相对位姿常由跨相机共视后处理得到；软件或无线时间戳会制造 action-label misalignment；单枚 155° wrist fisheye 视场狭窄，接触和深度线索不稳定。&lt;strong&gt;【Analysis】&lt;/strong&gt; 这解释了为什么此前 robot-free 数据大多用于 pre-training，而 deployment-oriented post-training 仍依赖少量真实机器人示教。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 每条示教包含多视角观测、机器人状态、语言指令和未来动作块：&lt;/p&gt;
&lt;p&gt;$$
\tau=\left{(o_t^{(m)},q_t^{(m)},\ell,a_{t:t+H_m-1}^{(m)})\right}_{t=1}^{T},
$$&lt;/p&gt;
&lt;p&gt;其中 $m$ 表示具体 backbone，$o_t$ 是其使用的 wrist views，$q_t$ 是 proprioception，$\ell$ 是任务语言，$H_m$ 是该模型的原生 action horizon。头戴式 stereo views 只用于离线重建，部署时不输入 policy。&lt;/p&gt;
&lt;p&gt;对双臂 $j$，每一个未来 action 都锚定在同一个当前观测位姿：&lt;/p&gt;
&lt;p&gt;$$
\Delta T_{t_0,h}^{j,(m)}=\left(T_{j,t_0}^{(m)}\right)^{-1}T_{j,t_0+\delta_h}^{(m)}.
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 平移用 anchor end-effector frame 表示，旋转用 Rotation6D，夹爪开合保持 absolute target；每只手有 $3+6+1=10$ 个物理通道，双臂共 20 个 active channels。三种 backbone 可以保留各自 tensorization、padding、masking、normalization 和 horizon，但共享这套物理语义。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; “共享 anchor、逐行独立恢复”很关键：如果把 action chunk 递归地接在前一个预测目标上，微小误差会在 chunk 内累积；锚定当前实测位姿则把问题限制为每一行的局部恢复。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-hifi-umi/capture-device.b9n3im2pr.webp&quot; alt=&quot;HiFi-UMI 采集设备与六视角感知架构&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 整体数据流只有一条：便携设备捕获头部和双手同步观测 → 离线重建并自动清洗轨迹 → simulation retargeting 验证能否被目标 embodiment 执行 → 标注、人工复核和分布均衡 → 为 VLA/WAM 做 pre-training 或 task-specific post-training → 在真实双臂机器人上闭环执行。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;采集设备&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Head-mounted offline stereo-inertial SLAM。&lt;/strong&gt; 头部双目相机和 IMU 估计全局头部轨迹；双手的 fiducial marker cube 在同一头部坐标系中定位，再组合出左右手世界轨迹。&lt;strong&gt;【Paper】&lt;/strong&gt; 离线优化可以同时利用过去和未来观测，并在动态场景中使用 sliding-window local consistency，而不是依赖会被操作物体破坏的 global loop closure。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Native bimanual relative pose。&lt;/strong&gt; 左右 marker 在同一头部相机帧中被同时观测，双手相对位姿是原生测量，而不是从两个 wrist camera 的共视结果中事后相减。&lt;strong&gt;【Analysis】&lt;/strong&gt; 这直接针对双手协作时最敏感的误差源。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Full-palm glove gripper。&lt;/strong&gt; 两根不对称手指分别对应拇指和其余四指；窄指尖照顾小物体精细操作，较宽的近端接触面支撑大物体，并保留操作者的接触和力分布。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Six-view sensing and GPIO trigger。&lt;/strong&gt; 每只手两枚非平行 fisheye 相机，整体约 200° 水平和垂直覆盖；头部和双手还带 IMU、夹爪角度 encoder。所有传感器由一个共享 GPIO 外部触发，跨相机、IMU、encoder 的 offset 小于 40 μs。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Online quality control。&lt;/strong&gt; 采集时检测欠曝光、motion blur、过快运动和手离开头部视场，并通过语音提示现场修正；操作者还可在线标记 task/subtask boundary。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;六阶段数据引擎&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-hifi-umi/data-flywheel.wjaptgj9f.webp&quot; alt=&quot;HiFi-UMI 数据处理飞轮&quot;&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Collection &amp;#x26; upload：&lt;/strong&gt; 硬件同步、在线告警、在线切片和 Wi-Fi 并行上传。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Trajectory reconstruction &amp;#x26; cleaning：&lt;/strong&gt; 离线 SLAM 重建头部，检测 marker 得到双手轨迹，异常轨迹自动重算或移除；约 98% 通过。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Simulation retargeting：&lt;/strong&gt; 用目标 embodiment 的 whole-body controller 在仿真中回放，过滤运动学或动力学不可行轨迹；重建后的约 98% 通过。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;AI-assisted annotation：&lt;/strong&gt; 联合头戴和手部视角生成任务描述、subtask 边界、对象和异常候选，并输出置信度。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Human verification：&lt;/strong&gt; 人工优先检查低置信度、自动告警和分布异常样本，保留审核状态、拒绝原因和修订历史。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Analysis &amp;#x26; export：&lt;/strong&gt; 统计任务、场景、对象、action pattern 和 replay success，按目标模型显式均衡后导出训练格式。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 数据质量不是一个事后评分，而是每一阶段都在删除或标记不合格样本的 cumulative gate。&lt;strong&gt;【Analysis】&lt;/strong&gt; 这种“可追溯的过滤—重放—再导出”让数据规模和数据可用率可以同时被讨论。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;Chunk-anchored action reconstruction&lt;/h4&gt;
&lt;p&gt;$$
\hat{T}&lt;em&gt;{j,t_0+\delta_h}=T&lt;/em&gt;{j,t_0},\Delta T_{t_0,h}^{j}.
$$&lt;/p&gt;
&lt;p&gt;这里 $T_{j,t_0}$ 是当前实测末端位姿，$\Delta T$ 是模型预测的相对 SE(3) 增量，$\hat T$ 是送给控制器的未来目标。平移、Rotation6D 和绝对夹爪开合在 backbone-specific tensor 中分别归一化。&lt;/p&gt;
&lt;h4&gt;VLA flow matching&lt;/h4&gt;
&lt;p&gt;StarVLA-QwenPI 的 action head 从噪声 $\epsilon\sim\mathcal N(0,I)$ 和真实 action chunk $a$ 构造：&lt;/p&gt;
&lt;p&gt;$$
a_\tau=(1-\tau)\epsilon+\tau a,
\qquad
\mathcal L_{FM}=\mathbb E\left[\left|v_\theta(a_\tau,\tau,z_t)-(a-\epsilon)\right|_2^2\right].
$$&lt;/p&gt;
&lt;p&gt;OpenPI-π0.5 使用等价的 continuous flow-matching 目标；LingBot-VA 则联合 future-video latent 和 action 的 flow-matching loss：&lt;/p&gt;
&lt;p&gt;$$
\mathcal L_{LingBot}=\mathcal L_{video}+\mathcal L_{action}.
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 这些公式描述的是三种 policy 的训练接口，而不是 HiFi-UMI 的数据重建损失。HiFi-UMI 的创新在于让输入 action label 达到足以支撑这些既有 policy head 的 fidelity。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文比较三种训练条件：真实机器人 teleoperation post-training、仅 HiFi-UMI post-training，以及 HiFi-UMI pre-training + HiFi-UMI post-training。每个任务使用 3,200 条 UMI trajectory；teleoperation 对照约 300 条，采集于评测场景。StarVLA-QwenPI 另用 4,000 小时 HiFi-UMI 做 pre-training；OpenPI-π0.5 和 LingBot-VA 从公开 base checkpoint 开始。&lt;/p&gt;
&lt;p&gt;StarVLA-QwenPI 的 pre-training 用 AdamW、global batch 2,048、3,000-step warm-up，action DiT 和 projection 的峰值 learning rate 为 $10^{-4}$；post-training 为 50,000 steps、global batch 512。LingBot-VA 更新 Transformer、冻结 causal VAE 和 text encoder，使用 3,500 steps 与等权 video/action loss。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; VLA 使用 timestamped receding-horizon control：将图像、proprioception 和夹爪状态对齐到同一 observation time，再独立恢复 action chunk 的每一行。StarVLA-QwenPI 生成 20 步、执行前 10 步；OpenPI-π0.5 保留其原生 horizon。LingBot-VA 使用 block-causal streaming，reset 后生成 12 个 action，之后每次生成 24 个 action，并用 rolling KV cache 接入真实执行历史。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 本次核对的官方项目页提供论文、演示和 HiFi-UMI-2K 数据集链接，但论文与项目页没有公开可用于复现实验的 GitHub 训练代码仓库。因此无法把 &lt;code&gt;Model&lt;/code&gt;、&lt;code&gt;DataLoader&lt;/code&gt;、loss、checkpoint 或 inference 映射到具体文件；官网前端 JavaScript 只负责展示项目内容，不应被当作训练实现。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文明确给出了数据处理和三种 backbone 的训练/部署接口，但没有给出足以复现硬件采集、SLAM、whole-body replay 或完整 fine-tuning 的代码清单。下文的“代码”结论仅限于“官方代码未提供”，其余实现描述都标作 &lt;code&gt;【Paper】&lt;/code&gt; 或 &lt;code&gt;【Analysis】&lt;/code&gt;。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 评测平台是固定式双臂 Tianji Robotics Marvin M6，每臂 7-DoF，使用与 HiFi-UMI 末端相同的夹爪和四路 wrist cameras；头戴 stereo pair 不输入 policy。控制器以 125 Hz 插值 end-effector target，并通过 EtherCAT 以 1 kHz 下发关节命令。&lt;/p&gt;
&lt;p&gt;四个任务覆盖不同 interaction dynamics：Stain Wiping（接触和覆盖）、Shirt Folding（双手可变形物体）、Remote Insertion（精确受限放置）和 Produce Sorting（语义分类与双臂协调）。每个 task–policy pair 进行 40 次 rollout，成功要求在 timeout 内完成、最终状态稳定至少 2 秒且没有 safety intervention。&lt;/p&gt;
&lt;p&gt;数据并不 sample-matched：UMI 每任务 3,200 条、约 10–20 小时，来自不同操作者和场景；teleoperation 每任务约 300 条、约 3–7 小时，且采自评测场景。&lt;strong&gt;【Analysis】&lt;/strong&gt; 因而比较的是两种实际数据生产管线能否达到同等部署效果，不是每条轨迹的严格 data efficiency。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-hifi-umi/main-success.86ue0v857l.webp&quot; alt=&quot;三种 backbone 上 UMI-only 与 teleoperation post-training 的主结果&quot;&gt;&lt;/p&gt;
&lt;p&gt;| Backbone | HiFi-UMI post-training | Teleoperation post-training | UMI − Teleop |
| --- | ---: | ---: | ---: |
| StarVLA-QwenPI | 51.3%（82/160） | 53.8%（86/160） | −2.5 pp |
| OpenPI-π0.5 | 77.5%（124/160） | 74.4%（119/160） | +3.1 pp |
| LingBot-VA | 56.9%（91/160） | 57.5%（92/160） | −0.6 pp |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 三个差值方向不一致，且每个任务只有 40 次 rollout（一次成功就是 2.5 个百分点），所以论文把结论表述为 approximate parity，而不是某个数据源显著优于另一个。最强单项是 OpenPI-π0.5 在 Remote Insertion 上的 85%，即使 UMI 没有在评测场景采集轨迹。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这里的控制实验比跨模型绝对分数更有信息：同一 backbone、action semantics、normalization、optimization 和 deployment executor 内只替换 post-training data source，说明高 fidelity UMI 至少可以替代 in-domain teleoperation 的部署锚点。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-hifi-umi/pretraining-scaling.99u3br3zfn.webp&quot; alt=&quot;Remote Insertion 的 UMI 数据规模与预训练初始化消融&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; OpenPI-π0.5 在 Remote Insertion 上的 UMI post-training 随 episode 数量从 400、800、1,600、3,200 增加到 6,400，成功率依次为 37.5%、65%、70%、85% 和 82.5%；约 3,200 条后开始饱和。StarVLA-QwenPI 的初始化消融显示，UMI-pretrained policy 只用 800 条任务数据就超过 Qwen-VL 初始化、3,200 条数据训练的 52.5% baseline。&lt;/p&gt;
&lt;p&gt;在四个 benchmark tasks 上用相同 3,200 条任务轨迹做 post-training，UMI pre-training 将 StarVLA-QwenPI aggregate success 提高 18.1 个百分点。&lt;strong&gt;【Analysis】&lt;/strong&gt; 预训练的主要收益不是让最终 policy 获得更多 task labels，而是把 visual-motor prior 的起点前移，从而同时改善低数据区间和最终上限。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-hifi-umi/downstream-success.9kgx4wj76k.webp&quot; alt=&quot;HiFi-UMI 预训练对下游真实机器人成功率的影响&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 4,000 小时 UMI pre-training 使十个未见任务的 action error 降低 41%，每个任务都改善。held-out action error 在一次训练 pass 内下降 61%，pre-decay power-law 拟合为：&lt;/p&gt;
&lt;p&gt;$$
L_{heldout}(S)=L_\infty+A S^{-\alpha},\qquad \alpha=0.268,\quad R^2=0.993,
$$&lt;/p&gt;
&lt;p&gt;其中 $S$ 是累计处理的 UMI action chunks。OOD scaling 的速度取决于 interaction family：utensil/tableware 最快，granular transfer 居中，cloth folding 最慢。&lt;strong&gt;【Analysis】&lt;/strong&gt; 这说明“对象是否见过”不是唯一因素，预训练数据是否覆盖相似的接触、容器几何、重抓和折叠动力学更重要。&lt;/p&gt;
&lt;p&gt;LingBot-VA 的 ground-truth-video oracle diagnostic 显示，UMI→Real 的 full-chunk XYZ RMSE 为 24.33 mm、frame-to-frame rotation error 为 0.65°；UMI→UMI 为 21.13 mm 和 0.88°，与 teleoperation→Real 的 21.64 mm 和 0.46° 同处厘米级、亚度级范围。&lt;strong&gt;【Paper】&lt;/strong&gt; 这是 action decoder 的诊断，不代表可部署推理时可以跳过 future-video generation。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; HiFi-UMI 有效不是因为一个单独的硬件指标，而是误差链条被同时压低：空间误差由头部视角、离线 stereo SLAM 和 native 双手位姿控制；时间误差由 GPIO trigger 控制；可观测性误差由双手四枚 fisheye 相机缓解；可执行性误差由仿真 replay 过滤。这样 robot-free label 才不再只是 pre-training 的弱监督，而可以承担 task-specific post-training。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 方法创新集中在 data-production system，而非新 policy architecture：把 offline SLAM、native relative pose、hardware sync、wide-FoV sensing 和 full-palm gripper 作为一个 fidelity contract；用 replayable data engine 让每条 episode 都有重建、回放、标注和审核痕迹；再用跨 VLA/WAM 的 controlled comparison 验证 zero-robot post-training。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 以往工作通常减少 teleoperation 比例，但保留一个 real-robot anchor；HiFi-UMI 不再问“anchor 能否缩到多小”，而是问“robot-free data 的 fidelity 能否高到让 anchor 变成零”。因此论文的单位不是一个 network block，而是从采集到 deployment 的闭环数据系统。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 主要假设包括：局部 3 mm 轨迹精度足以覆盖目标 workspace；同一 full-palm gripper 可以消除大部分接触 interface gap；仿真 retargeting 的通过可以作为真实可执行性的前置筛选；四个桌面双臂任务和三个 backbone 足以初步检验 post-training 来源替代。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这些假设还没有覆盖移动机器人、灵巧手、软体物体的长时程恢复，或比 Marvin M6 更大的 embodiment gap。高保真是必要条件，但论文没有证明它对所有任务都充分。&lt;/p&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; zero-robot post-training 只覆盖四个桌面双臂任务和三个 backbone；pre-training scaling 与 downstream gain 只在 StarVLA-QwenPI 上验证。每个 task–policy pair 只有 40 次 rollout，一次结果变化 2.5 个百分点。fidelity 被作为整体系统设计验证，没有分别 degradation trajectory accuracy、relative pose、synchronization、FoV。UMI 与 teleoperation 的后训练数据量也不匹配，结论不是 equal-sample efficiency；pre-training 收益是否继续增长、是否同样帮助 teleoperation post-training，仍需更大规模实验。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 评测机器人使用与采集一致的 gripper 和 wrist views，换成不同末端或移动底盘后 action semantics 未必保持不变；仿真 replay 不能完全模拟摩擦、柔性物体和接触恢复；96% usable ratio 仍把 fidelity 与场景覆盖绑定在一起；多视角 AI annotation 的跨任务误差分布和训练实现尚未公开。Remote Insertion 中 UMI policy 更直接但重试更多，也说明 nominal motion efficiency 与 recovery robustness 不是同一指标。&lt;/p&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;机器人数据的瓶颈可能从“机器人数量”转为“action-label contract”。&lt;/strong&gt; 采集设备、坐标定义、同步和回放验证被标准化后，更多数据可以在没有目标机器人的地点并行产生。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;零机器人后训练不等于零 embodiment 问题。&lt;/strong&gt; 它移除的是 task-specific teleoperation anchor，而不是所有 robot calibration。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;应把 fidelity 做成可消融的 specification。&lt;/strong&gt; 固定 episode 数和场景覆盖，分别注入时间偏移、相对位姿噪声、FoV 遮挡和 SLAM drift，才能测出部署成功率对每种误差的阈值。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;数据配比应按 interaction dynamics 设计。&lt;/strong&gt; cloth folding scaling 慢于 utensil/tableware，下一批数据应主动增加 deformable-object topology、regrasp、接触修正和恢复行为。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;replay metadata 可以反向决定下一轮采集。&lt;/strong&gt; 失败原因、场景覆盖和模型不确定性可以形成 collection 到 deployment 的主动数据飞轮。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;HiFi-UMI-2K 的价值不只是 2,000 小时。&lt;/strong&gt; 六视角视频、校准双手轨迹、夹爪状态、语言边界和质量元数据共同提供了 VLA、WAM、offline evaluation 与 data curation 的接口。&lt;/li&gt;
&lt;/ol&gt;</content:encoded><h:img src="https://pic.hana0721.top/126839080_p0_master1200.232gprncye.webp"/><enclosure url="https://pic.hana0721.top/126839080_p0_master1200.232gprncye.webp"/></item><item><title>FastUMI 论文精读：可扩展、硬件无关的通用操作接口</title><link>https://agusexp25.top/blog/paper-deep-dive-fastumi</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-fastumi</guid><description>精读 FastUMI：用解耦硬件、T265 跟踪和数据处理生态降低真实机器人示教门槛，并验证 ACT、Diffusion Policy 与 1 万条轨迹数据。</description><pubDate>Thu, 27 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;《FastUMI: A Scalable and Hardware-Independent Universal Manipulation Interface with Dataset》发表于 arXiv（v2，2025 年 2 月），作者来自上海人工智能实验室、上海交通大学、布里斯托大学、复旦大学、香港大学、西交利物浦大学、中国电信等机构。&lt;/p&gt;
&lt;p&gt;**【Paper】**本文的目标不是提出一个新的视觉策略，而是解决“策略缺数据”的上游瓶颈：把人类第一视角示教转换成带有精确末端轨迹、夹爪开合和同步视频的机器人数据，并且尽量不绑定某一种机械臂或夹爪。FastUMI 在 UMI 的基础上重做机械结构，以 RealSense T265 直接提供跟踪位姿，配套 ROS 采集和 HDF5/Zarr 转换工具，并公开超过 10,000 条、覆盖 22 个日常任务的示教轨迹。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-fastumi/fastumi-overview.webp&quot; alt=&quot;FastUMI 手持设备与机器人端设备总览（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;**【Analysis】**FastUMI 的关键抽象是“观察视角一致 + 动作坐标可转换”：人手拿着的设备和机器人末端的设备看到近似同一画面，同时 T265、ArUco 标记和 URDF 让同一段示教可落到 TCP 或关节空间。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;以模块化指尖、ISO 兼容相机支架和相同视角设计，解除对 Weiss WSG-50 等专用夹爪的依赖。&lt;/li&gt;
&lt;li&gt;用商业化 RealSense T265 取代 GoPro-VIO/SLAM 流程，减少标定、坐标变换和部署复杂度，并针对遮挡设计质量检查与回环辅助。&lt;/li&gt;
&lt;li&gt;提供从原始 ROS 数据到 absolute/relative TCP、absolute joint 轨迹的处理链，兼容 ACT 与 Diffusion Policy（DP）。&lt;/li&gt;
&lt;li&gt;针对第一视角数据提出 Smooth-ACT、PoseACT、Depth-Enhanced DP 和动态误差补偿，并在 12 个真实任务上验证。&lt;/li&gt;
&lt;li&gt;开放覆盖 22 个任务的 10,000+ 条轨迹数据集，包含视觉、位姿和夹爪状态。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;**【Paper】**真实机器人交互数据通常通过遥操作采集，优点是动作标签精确，代价是需要机器人本体、专用控制器和复杂标定。纯视频方法便宜，却难以恢复接触动力学和精确动作；UMI 这类手持接口缓解了二者的矛盾，但原 UMI 对特定夹爪和 GoPro-VIO 的依赖限制了跨平台部署。&lt;/p&gt;
&lt;p&gt;**【Analysis】**FastUMI 的切入点是“先把数据接口标准化，再谈策略规模化”。它不假设一个统一的 action representation，而是同时输出 TCP 和 joint 两种表示，让下游算法选择绝对坐标、相对位移或扩散动作空间。与 UMI 的差别也主要在系统工程：硬件解耦、独立跟踪模块和可审计的数据质量流程共同降低了每条轨迹的边际成本。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;**【Paper】**一次示教由手持设备产生，观测为 GoPro 155° 鱼眼图像与 T265 位姿；机器人端安装相同的 GoPro、可调支架和插拔式指尖。设 T265 相对初始位姿为 $(p_i,R_i)$，已知相机到夹爪中心的偏移 $\Delta_{c2g}$、机器人基座位姿和 URDF，则系统需要生成：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Observation&lt;/strong&gt;：同步视频帧、T265 位姿、ArUco 标记位置。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Action&lt;/strong&gt;：绝对 TCP、相邻帧相对 TCP，或由 IK 得到的绝对关节角；夹爪宽度归一化到 $[0,1]$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Robot / Embodiment&lt;/strong&gt;：论文展示 xArm、Flexiv、Z1 等单臂平台，也支持双臂扩展。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dataset&lt;/strong&gt;：约 10,000 条轨迹、22 个日常任务；策略评测使用 12 个任务，每个任务 200 条示教。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;FastUMI 可以看作三层：硬件层负责一致视角与位姿，采集层负责 ROS 多线程同步，处理层负责坐标变换、夹爪估计和策略数据导出。示教端只需手持设备，推理端把同构视觉设备安装到机器人末端；策略本身位于两者之间。&lt;/p&gt;
&lt;p&gt;**【Analysis】**数据流是：&lt;code&gt;GoPro/T265/ArUco → ROS 录制 → HDF5 原始 episode → TCP 或 joint 处理 → ACT/DP 训练与执行&lt;/code&gt;。硬件结构和数据格式被刻意分离，因此更换机械臂时主要修改 URDF、基座位姿和偏移配置。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;手持设备与机器人端设备&lt;/h4&gt;
&lt;p&gt;**【Paper】**手持设备由 GoPro、T265、顶盖、标记和可替换指尖组成。GoPro 负责宽视野观测，T265 负责视觉惯性位姿；机器人端使用 ISO 标准兼容的安装座和 7.5/5 cm 延长臂调节镜头，使鱼眼图像底部与指尖底部对齐。模块化指尖覆盖 Open X-Embodiment 中超过 90% 的常见夹爪类型（论文表述）。&lt;/p&gt;
&lt;h4&gt;位姿跟踪与质量控制&lt;/h4&gt;
&lt;p&gt;**【Paper】**系统要求至少 95% 的采样位姿达到 T265 的 High confidence；低置信度帧被剔除并由邻帧插值。桌面上的蓝色 3D 打印槽帮助 T265 回到熟悉特征以触发 loop closure。论文观察到靠近桌面、夹爪遮挡视觉特征时误差会升高。&lt;/p&gt;
&lt;h4&gt;夹爪宽度估计&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt;&lt;code&gt;data_processing_to_tcp.py&lt;/code&gt; 和 &lt;code&gt;data_processing_to_joint.py&lt;/code&gt; 用 &lt;code&gt;DICT_4X4_50&lt;/code&gt; 检测两个 ArUco 标记。两标记均可见时取像素中心距离；只看到一个时关于图像中心镜像估计；都不可见时沿时间插值，再按 &lt;code&gt;marker_min&lt;/code&gt;、&lt;code&gt;marker_max&lt;/code&gt; 线性映射到 &lt;code&gt;gripper_max&lt;/code&gt;。&lt;/p&gt;
&lt;h4&gt;TCP 与关节轨迹转换&lt;/h4&gt;
&lt;p&gt;**【Paper】**先将 T265 位姿加上相机到夹爪的偏移，得到基座坐标系下的绝对 TCP；相邻绝对 TCP 相减得到 relative TCP；最后用 URDF 和连续初值求 IK 得到 absolute joint。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-fastumi/fastumi-transformation.webp&quot; alt=&quot;T265 到 TCP、基座坐标与偏移的变换示意（论文 Figure 6）&quot;&gt;&lt;/p&gt;
&lt;p&gt;**【Code】**代码中的 &lt;code&gt;base_position&lt;/code&gt;、&lt;code&gt;base_orientation&lt;/code&gt;、&lt;code&gt;offset&lt;/code&gt; 和 &lt;code&gt;flange_to_tcp&lt;/code&gt; 全部放在 &lt;code&gt;config/config.json&lt;/code&gt;。IK 使用 &lt;code&gt;ikpy.chain.Chain.from_urdf_file&lt;/code&gt;，上一帧关节解作为下一帧初值，减少时间序列中的跳变。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;p&gt;绝对 TCP 位置由相机位姿和偏移得到：&lt;/p&gt;
&lt;p&gt;$$
p_{cam}^{(i)}=p_{b2g}+p_i-R_{b2g}\Delta_{c2g},\qquad
p_{ee}^{(i)}=p_{cam}^{(i)}+R_{cam}^{(i)}\Delta_{c2g}.
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;$p_i,R_i$ 是 T265 的局部位姿，$p_{b2g},R_{b2g}$ 是初始夹爪中心在基座中的位姿，$\Delta_{c2g}$ 是相机中心到夹爪中心的偏移。相邻帧的相对轨迹为：&lt;/p&gt;
&lt;p&gt;$$
p_{rel}^{(i)}=p_{ee}^{(i+1)}-p_{ee}^{(i)},\qquad
R_{rel}^{(i)}=(R_{ee}^{(i)})^{-1}R_{ee}^{(i+1)}.
$$&lt;/p&gt;
&lt;p&gt;ArUco 距离 $d$ 到物理夹爪宽度 $W$ 的映射为：&lt;/p&gt;
&lt;p&gt;$$
W=\frac{d-d_{min}}{d_{max}-d_{min}}G_{max}.
$$&lt;/p&gt;
&lt;p&gt;**【Code】**实现中结果会裁剪到 $[0,G_{max}]$，再除以 &lt;code&gt;gripper_max&lt;/code&gt; 作为策略输入或动作的夹爪通道。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;h4&gt;Smooth-ACT&lt;/h4&gt;
&lt;p&gt;**【Paper】**标准 ACT 的绝对关节预测在第一视角下可能产生未见过的姿态。Smooth-ACT 在 Transformer decoder 顶部增加 GRU，同时监督 decoder 输出和 GRU 输出：&lt;/p&gt;
&lt;p&gt;$$
\mathcal L=|\hat a-a|&lt;em&gt;1+|\hat a&lt;/em&gt;{GRU}-a|&lt;em&gt;1+\lambda D&lt;/em&gt;{KL}(q_\phi(z|a,o)|\mathcal N(0,I)).
$$&lt;/p&gt;
&lt;h4&gt;PoseACT 与 Depth-Enhanced DP&lt;/h4&gt;
&lt;p&gt;PoseACT 将 action 改成绝对或相对 TCP pose，推理时再通过机器人运动学映射回关节角。Depth-Enhanced DP 使用 Depth Anything V2 从 GoPro 帧预测深度，将裁剪后的深度伪彩色图与 RGB 一起送入 ViT-Base/16；论文报告 RTX 4090 上约 20 Hz 的大模型深度推理。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;**【Paper】**机器人端 GoPro 保持与手持设备相同的视角，策略读取当前图像和状态后输出 joint 或 TCP action。PoseACT 的 TCP 输出经过运动学映射，DP 的 relative TCP 通过延迟匹配执行；非平行夹爪还可启用动态误差补偿，在夹爪闭合导致 TCP 沿局部 Z 轴偏移时修正目标。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;**【Code】**官方仓库 &lt;code&gt;zxzm-zak/FastUMI_Data&lt;/code&gt; 当前公开的是数据采集和处理生态，而不是 ACT/DP 的完整训练实现：&lt;/p&gt;
&lt;p&gt;| 论文概念 | 代码位置 | 实际行为 |
| --- | --- | --- |
| ROS 采集 | &lt;code&gt;data_collection.py&lt;/code&gt; | 订阅图像与 &lt;code&gt;/camera/odom/sample&lt;/code&gt;，按 60 Hz 视频、200 Hz 轨迹写入临时 CSV，再抽帧为 HDF5 |
| TCP 处理 | &lt;code&gt;data_processing_to_tcp.py&lt;/code&gt; | 基座变换、偏移修正、ArUco 宽度插值并输出 TCP HDF5 |
| Joint 处理 | &lt;code&gt;data_processing_to_joint.py&lt;/code&gt; | 用 ikpy 和 xArm URDF 连续求 IK，追加归一化夹爪通道 |
| DP 数据 | &lt;code&gt;data_processing_tcp_to_dp.py&lt;/code&gt; | 将 TCP HDF5 转为 UMI 风格 Zarr |
| 配置 | &lt;code&gt;config/config.json&lt;/code&gt; | 记录 xArm6、基座位姿、偏移、marker 距离和 &lt;code&gt;flange_to_tcp&lt;/code&gt; |&lt;/p&gt;
&lt;p&gt;**【Analysis】**因此论文中的 Smooth-ACT、PoseACT、Depth-Enhanced DP 属于作者实验算法描述，官方公开仓库主要保证“数据能被这些算法消费”，不能把仓库误读为完整策略训练代码。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;**【Paper】**数据集包含 22 个日常任务；策略评测选取 12 个任务：4 个 hinged、6 个 pick-place、1 个 pick-push 和 1 个 button press。每个任务训练 200 条示教，每次测试 15 次。T265 与 RoboBaton MINI 的位姿误差在 Pick Cup、Open Container、Rearrange Coke 等任务上用 MoCap 参考进行比较。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-fastumi/fastumi-dataset.webp&quot; alt=&quot;FastUMI 数据集任务与示教数量分布（论文 Figure 8）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-fastumi/fastumi-tasks.webp&quot; alt=&quot;12 个真实机器人评测任务（论文 Figure 9）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;**【Paper】**ACT 使用 absolute joint，DP 使用 relative TCP。12 任务成功率如下（单位：%）：&lt;/p&gt;
&lt;p&gt;| 任务 | DP | ACT |
| --- | ---: | ---: |
| Open Container / Open Roaster | 93.33 / 80.00 | 86.67 / 86.67 |
| Open Drawer / Open Suitcase | 53.33 / 40.00 | 80.00 / 86.67 |
| Rearrange Coke / Fold Towel | 80.00 / 93.33 | 86.67 / 73.33 |
| Pick Bear / Unplug Charger | 80.00 / 86.67 | 20.00 / 86.67 |
| Pick Lid / Pick Pen | 53.33 / 53.33 | 93.33 / 20.00 |
| Sweep Trash / Open Ricecooker | 46.67 / 20.00 | 6.67 / 80.00 |&lt;/p&gt;
&lt;p&gt;**【Analysis】**这不是“某个策略全面胜出”：DP 的相对轨迹在重复移动和跨工作空间任务上更稳，ACT 的绝对关节在部分深度敏感任务上更直接；第一视角造成的可见性和坐标分布决定了表示选择。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;h4&gt;跟踪模块&lt;/h4&gt;
&lt;p&gt;**【Paper】**T265 在无遮挡 Pick Cup 上的 10 条轨迹误差约 7–12 mm，在 Open Container 上约 16–19 mm；Rearrange Coke 约 19–36 mm。MINI 在 Pick Cup 约 13–17 mm、Open Container 约 10–12 mm，说明遮挡条件下不同传感器存在互补性。&lt;/p&gt;
&lt;h4&gt;算法改进&lt;/h4&gt;
&lt;p&gt;| 任务 | Original DP | Depth-Enhanced DP |
| --- | ---: | ---: |
| Pick Lid | 53.33 | 80.00 |
| Open Ricecooker | 20.00 | 93.33 |&lt;/p&gt;
&lt;p&gt;| 任务 | ACT | Smooth-ACT | PoseACT absolute | PoseACT relative |
| --- | ---: | ---: | ---: | ---: |
| Pick Bear | 20.00 | 60.00 | 80.00 | 73.33 |
| Sweep Trash | 6.67 | 26.67 | 53.33 | 60.00 |&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-fastumi/fastumi-depth.webp&quot; alt=&quot;Depth-Enhanced DP 的深度映射过程（论文 Figure 7）&quot;&gt;&lt;/p&gt;
&lt;p&gt;**【Paper】**深度输入对需要垂直对齐或按压的任务提升明显；GRU 平滑减少非法关节跳变；relative TCP 对长轨迹更好，但会牺牲部分绝对高度信息。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;**【Paper】**相机对比中，GoPro 鱼眼第一视角在 Pick Bear/Open Container 上分别达到 80%/100%，与多视角 D435i 的 86.67%/100% 接近，而窄视角第一视角 D435i 仅 0%/0%。Pick Cup 的 ACT 成功率随示教量 200、400、800 增加为 20.00%、26.67%、53.33%。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;**【Analysis】**FastUMI 同时减少了三种分布偏移：手持与机器人端保持视觉一致，TCP/关节转换显式处理 embodiment，质量检查减少传感器异常进入训练集。策略性能因此更多由数据与表示决定，而不是被采集系统的偶然差异主导。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;**【Analysis】**真正的创新不是“换一台跟踪器”，而是把硬件接口、坐标变换、数据质量和下游 action representation 设计成可组合的生态。T265 解决部署复杂度，ISO 支架解决机械臂异构，ArUco 与 IK 解决动作标签，Smooth-ACT/DP-depth 则处理第一视角带来的算法退化。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;**【Paper】**与依赖真实机器人遥操作的系统相比，FastUMI 采集阶段只需手持设备；与纯视频示教相比，它直接记录末端位姿；与原 UMI 相比，它把专用夹爪和 VIO/SLAM 依赖拆掉，并公开更大、更广任务的数据集。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;**【Analysis】**系统依赖“人手设备运动可代表机器人末端运动”“手持与机器人端相机视角足够一致”“URDF 与标定偏移准确”三个假设。任一假设失效，策略可能学到错误的几何关系，即使图像看起来相似也无法执行。&lt;/p&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;(1) 主要依赖视觉，缺少力觉/触觉；(2) 尚未覆盖移动操作、全身控制等更复杂形态；(3) 有线连接限制便携性和野外应用；(4) 手持数据与部署 embodiment 仍可能存在形态差异。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;**【Analysis】**T265 的置信度和漂移仍受光照、遮挡影响，蓝色槽和回环只是在限定环境中缓解问题；ArUco 宽度映射依赖固定标记几何，反光、污损或单标记镜像会引入系统误差；代码默认 xArm6 配置，迁移到新夹爪仍需重新测量偏移、夹爪尺度和 IK 初值。最后，论文的 12 任务测试主要是已见物体位置的新场景，尚不能等同于开放世界泛化。&lt;/p&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;**【Analysis】**FastUMI 给数据系统设计的启发是：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;先定义可转换的中间表示（TCP、relative TCP、joint），再绑定具体策略；这样一个数据集可以服务 ACT、DP 和后续 VLA。&lt;/li&gt;
&lt;li&gt;视觉一致性往往比更大的 backbone 更先决定跨 embodiment 成败；相机支架是 policy transfer 的一部分，而不是机械附件。&lt;/li&gt;
&lt;li&gt;数据质量应成为数据集的显式字段。置信度、漂移、插值比例和标定版本若能写入 episode metadata，训练时就可以按质量加权或过滤。&lt;/li&gt;
&lt;li&gt;第一视角策略需要“表示 + 几何约束”共同设计：PoseACT、relative action 和深度增强分别解决坐标稳定性、长轨迹和深度缺失，单一表示很难覆盖所有任务。&lt;/li&gt;
&lt;/ol&gt;</content:encoded><h:img src="https://pic.hana0721.top/42175762_p0_master1200.6m4jay5vlg.webp"/><enclosure url="https://pic.hana0721.top/42175762_p0_master1200.6m4jay5vlg.webp"/></item><item><title>EgoVerse：面向机器人学习的全球第一视角人类数据集论文精读</title><link>https://agusexp25.top/blog/paper-deep-dive-egoverse</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-egoverse</guid><description>精读 EgoVerse：用可持续增长的第一视角人类数据、统一数据基础设施和跨 embodiment 共训，系统研究人类经验如何迁移到机器人操作。</description><pubDate>Thu, 27 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; EgoVerse 不是单一的离线数据集，而是由数据采集设备、云端处理和访问系统、标准化数据集以及跨实验室评测组成的 living dataset。当前版本包含 1,362 小时、约 80,000 个 episode、1,965 个任务、240 个场景和 2,087 名 demonstrator。论文把资源分成两部分：&lt;code&gt;EgoVerse-A&lt;/code&gt;（&lt;code&gt;egoversea&lt;/code&gt;）按统一协议采集，用于可复现实验；&lt;code&gt;EgoVerse-I&lt;/code&gt;（&lt;code&gt;egoversei&lt;/code&gt;）由产业伙伴在真实环境中采集，强调规模、开放任务和丰富标注。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-egoverse/teaser-crop.webp&quot; alt=&quot;EgoVerse collaborative framework overview from paper Figure 1&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 论文真正解决的问题不是“再收集一个更大的视频集”，而是把人类经验变成一种跨机器人可复用的中间层：先统一坐标、动作和元数据，再用共享协议测量哪些 diversity 能转化为机器人泛化。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;提出持续接收贡献的 EgoVerse 数据生态，统一人类和机器人 episode 的格式、标注与访问方式。&lt;/li&gt;
&lt;li&gt;发布跨实验室、跨任务、跨机器人 embodiment 的大规模 human-to-robot transfer study，而非只在单一平台上报告结果。&lt;/li&gt;
&lt;li&gt;设计相机中心的动作表示和分位数归一化，使第一视角人手轨迹能与机器人末端轨迹共同训练。&lt;/li&gt;
&lt;li&gt;发现 co-training 人类数据通常带来 ID/OOD 提升（最高约 30% 的相对改进），但多样人类数据的正向 scaling 依赖 domain-aligned human–robot data。&lt;/li&gt;
&lt;li&gt;在受控实验中区分 demonstrator diversity 与 scene diversity：前者提升对新人的泛化，后者对未见环境的收益更强，尤其在数据预算受限时。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 机器人模仿学习的瓶颈是物理数据采集：需要昂贵硬件、熟练 teleoperator 和受控场景，规模和多样性很难像互联网图像或文本那样增长。人类每天在不同房间、物体和身体形态下操作，第一视角视频和 3D hand pose 因而成为潜在的可扩展监督。&lt;/p&gt;
&lt;p&gt;现有 human dataset 往往是为某个实验一次性采集，缺乏统一的 schema、版本管理和跨机构复现实验。另一方面，人类和机器人在运动学、视角、速度、控制接口上存在 embodiment gap；直接把两类轨迹拼起来，策略可能学会把它们分成两个互不相干的分布。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; EgoVerse 的切入点是基础设施与科学问题同时设计：&lt;code&gt;EgoDB&lt;/code&gt; 让数据持续长大，&lt;code&gt;EgoVerse-A&lt;/code&gt; 让“增加多少数据、哪一种 diversity 有用”可以被隔离出来。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;给定人类数据 $D_H$ 与机器人数据 $D_R$，每条样本包含图像观测 $o_t$、状态/姿态和未来动作块 $a_{t:t+k}$。目标是训练一个共享策略，使其在不同 embodiment 上最小化行为克隆误差：&lt;/p&gt;
&lt;p&gt;$$
\pi^* = \arg\min_\pi; \mathbb{E}&lt;em&gt;{(o,a)\sim D_H\cup D_R}
\left[\mathcal{L}&lt;/em&gt;{\mathrm{BC}}(\pi(o),a)\right].
$$&lt;/p&gt;
&lt;p&gt;人类手部位姿在移动设备坐标系 $T_t^{device}$ 中观测。为了让动作只依赖当前相机帧，论文把未来位姿变换回时刻 $t$ 的设备坐标系，构成相机中心动作块。研究问题可拆成三个问题：人类数据加入机器人训练是否在多个平台上稳定有效；多样数据量增加时什么样的 aligned data 能防止负迁移；以及 demonstrator diversity 与 scene diversity 分别如何影响泛化。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-egoverse/arch-crop.webp&quot; alt=&quot;EgoVerse cross-embodiment policy architecture from paper Figure 4&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 图像和 proprioception 先经过 modality-specific stems，被 token 化到共享空间；共享 Transformer encoder 聚合 human/robot 观测，随后由 embodiment-specific 或 shared action head 预测动作块。人类和机器人样本在训练时分别计算损失，再进行 co-training。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;EgoVerse 数据采集与标注&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：Aria 眼镜、产业伙伴 wearable rigs，或头戴式 iPhone 的 RGB 视频；机器人端是多相机图像、状态和动作。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：统一 episode，至少包含 egocentric RGB、每只手 21 个 3D keypoints、6-DoF head pose；&lt;code&gt;EgoVerse-A&lt;/code&gt; 还记录 task、scene、object set 与 demonstrator 元数据，&lt;code&gt;EgoVerse-I&lt;/code&gt; 可提供 1–2 秒粒度语言、active-hand 和 static/mobile manipulation 标签。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要&lt;/strong&gt;：手和头的轨迹把“人类如何移动”转成可对齐的几何监督；任务与场景元数据则让受控 split 成为可能。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-egoverse/capture_setup-crop.webp&quot; alt=&quot;Human capture setup and unified annotations from paper Figure 2&quot;&gt;&lt;/p&gt;
&lt;h4&gt;EgoDB 数据管理系统&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 原始数据上传到 S3-backed storage，nightly pipeline 做预处理、验证和索引，episode metadata 写入 SQL；网页 viewer 支持浏览示例和标注，训练端按 filters 同步子集。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-egoverse/egoDB-crop.webp&quot; alt=&quot;EgoDB data management pipeline from paper Figure 3&quot;&gt;&lt;/p&gt;
&lt;h4&gt;跨 embodiment 表示&lt;/h4&gt;
&lt;p&gt;机器人动作按平台不同表示：Georgia Tech 双 ARX5 使用 camera-frame 的 6D Euler pose + gripper（每步 14D），Stanford 使用 quaternion + gripper（每步 16D），UCSD Unitree G1 使用腕部 $\mathbb{SE}(3)$ 加五个相对手部 keypoint。&lt;/p&gt;
&lt;p&gt;人类动作块定义为：&lt;/p&gt;
&lt;p&gt;$$
a^H_{t:t+k} = \left[
\left(T_t^{\mathrm{device}}\right)^{-1}T_{t+i}^{\mathrm{device}}p^H_{t+i}
\right]_{i=1}^{k}.
$$&lt;/p&gt;
&lt;p&gt;这样，未来相机运动被显式消除，手部轨迹与机器人末端轨迹拥有同一个“当前观测帧”参考系。&lt;/p&gt;
&lt;h4&gt;Transformer policy&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 共享的 egocentric RGB stem 使用 ResNet-18；proprioception 进入 MLP；learned query attention 把不同模态转换成固定数量 token。共享 token 与 robot wrist-camera、proprioception 等独立 token 拼接后送入 Transformer encoder，learnable tokens 汇聚 task-relevant context。动作解码器是多层 Transformer decoder，采用 flow matching 生成连续 action chunk，必要时为不同 action space 使用独立 head。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方 &lt;code&gt;egomimic/algo/hpt.py&lt;/code&gt; 实现了 modality stems、共享 trunk、action tokens 和 domain-specific heads；&lt;code&gt;preprocess_tokens()&lt;/code&gt; 拼接 token 并加入正弦位置编码，&lt;code&gt;postprocess_tokens()&lt;/code&gt; 可取 action token、mean 或 max。仓库同时提供 &lt;code&gt;egomimic/algo/pi.py&lt;/code&gt;，基于 OpenPI/PI0 进行另一条 co-training 路径。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;分位数归一化&lt;/h4&gt;
&lt;p&gt;为减轻不同传感器和 embodiment 的量纲差异，论文把每个 feature 的第 1 和第 99 百分位映射到 $[-1,1]$：&lt;/p&gt;
&lt;p&gt;$$
\hat{x}=2\left(\frac{x-q_{0.01}}{q_{0.99}-q_{0.01}}\right)-1.
$$&lt;/p&gt;
&lt;p&gt;$q_{0.01}$、$q_{0.99}$ 是训练分布分位点。相比均值方差归一化，分位数对少量异常姿态更稳健。&lt;/p&gt;
&lt;h4&gt;BC co-training&lt;/h4&gt;
&lt;p&gt;$$
\mathcal{L}&lt;em&gt;{\mathrm{BC-cotrain}}
=\mathcal{L}&lt;/em&gt;{\mathrm{CFM}}^{robot}+\mathcal{L}_{\mathrm{CFM}}^{human}.
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 每一步从 human 与 robot mini-batch 分别计算 conditional flow matching loss，再求和。CFM 让 action decoder 学习从噪声状态到示范动作块的向量场；$\phi$ 和 $\theta$（encoder 与 decoder）联合优化。&lt;/p&gt;
&lt;h4&gt;可选的表示对齐损失&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;hpt.py&lt;/code&gt; 还实现了基于 Sinkhorn 的 optimal transport（OT）对齐：先取 trunk 的 action tokens，再按动作距离构造跨 batch cost；可选 Soft-DTW 处理时序形状。该分支不是正文主结果的必要条件，代码中由 &lt;code&gt;ot_6dof&lt;/code&gt;、&lt;code&gt;use_dtw&lt;/code&gt; 等开关控制。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; &lt;code&gt;EgoVerse-A&lt;/code&gt; 的 dataset unit 通常约 5 分钟，产出每任务 5–10 条演示；六个 flagship task 覆盖单臂、双臂、精细放置与长时程操作。机器人每任务约 150–300 条演示。训练阶段对图像做 random crop 与 color jitter，并对不同 embodiment 的 action/proprioception 独立归一化。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 推理时策略读取当前 egocentric RGB、必要的 wrist camera 和 proprioception，生成长度为 $k$ 的 action chunk；机器人只执行闭环控制所需的一段，再获取新观测。人类数据本身不参与运行时决策，而是在训练时提供跨 embodiment 的行为先验。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;| 论文组件 | 官方代码位置 | 可核对行为 |
| --- | --- | --- |
| 训练入口 | &lt;code&gt;egomimic/trainHydra.py&lt;/code&gt; | 使用 PyTorch Lightning + Hydra，支持 DDP 和配置化 dataset filters。 |
| HPT policy | &lt;code&gt;egomimic/algo/hpt.py&lt;/code&gt; | modality stems、共享 Transformer trunk、action tokens、domain heads 与 BC/OT loss。 |
| Pi0 路径 | &lt;code&gt;egomimic/algo/pi.py&lt;/code&gt; | 调用 OpenPI &lt;code&gt;PI0Pytorch&lt;/code&gt;，按 embodiment 注册 action converter，并支持语言/状态 prompt。 |
| 数据配置 | &lt;code&gt;egomimic/hydra_configs/data/*.yaml&lt;/code&gt; | &lt;code&gt;human_bimanual&lt;/code&gt; 与 &lt;code&gt;eva_bimanual&lt;/code&gt; 等 domain 通过 SQL lambda filters 选择 episode。 |
| 数据可视化 | &lt;code&gt;egomimic/scripts/data_visualization/latent_inspector.py&lt;/code&gt; | 浏览 per-episode zarr，叠加 Cartesian、orientation、keypoint 和 annotation。 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 代码仓库是可运行的数据处理与训练框架，但云端 EgoDB、所有原始数据和论文中三家实验室的硬件不随仓库发布。因此读者可以复现实验配置和模型逻辑，却不能仅靠 &lt;code&gt;git clone&lt;/code&gt; 重建论文的完整数据规模与真实机器人 rollout。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-egoverse/robots-crop.webp&quot; alt=&quot;Three robot platforms used in the consortium study from paper Figure 3&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 评测覆盖三种平台：Georgia Tech 的双 ARX5、Stanford 的肩部安装双 ARX5，以及 UCSD 的 Unitree G1 + Inspire Hand。四个代表性 flagship task（具体主结果聚焦 object-in-container、cup-on-saucer、bag-grocery）各做 20 次 ID 和 20 次 OOD rollout，报告按任务子指标聚合的 normalized score。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-egoverse/tasks-crop.webp&quot; alt=&quot;Flagship task definitions from paper Figure 4&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-egoverse/flagship-crop.webp&quot; alt=&quot;Co-training results across robots from paper Figure 5&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 加入 &lt;code&gt;EgoVerse-A&lt;/code&gt; 人类数据后，大多数机器人和任务的 ID/OOD normalized score 都提升，最高约 30%。这不是单一平台现象：单臂 object-in-container、精细双臂 cup-on-saucer 和长时程 bag-grocery 在不同机器人上总体复现了 co-training 的收益。&lt;/p&gt;
&lt;p&gt;论文也报告了一个重要反例：Stanford 平台的 bag-grocery 性能下降，而 Georgia Tech 与 UCSD 上升。作者推测是该 embodiment 的机械限制迫使机器人演示采用与人类策略不同的动作路线，导致共享策略面对冲突 supervision。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-egoverse/scaling-crop.webp&quot; alt=&quot;Domain-aligned data enables scaling from paper Figure 6&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 固定机器人数据，逐步增加 diverse human data 与 domain-aligned human data：&lt;/p&gt;
&lt;p&gt;| 训练条件 | 结果解释 |
| --- | --- |
| 仅增加 diverse &lt;code&gt;EgoVerse-A&lt;/code&gt; | 8 小时数据本身未稳定带来 ID/OOD 增益。 |
| 仅加入 aligned human data | 有任务锚点，但规模收益有限。 |
| 少量 aligned + 增加 diverse data | 出现正向 scaling；例如 2 小时 aligned 数据可“锚定”2–8 小时 diverse 数据。 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这更像“表示学习的坐标系校准”而非简单的数据量定律：aligned data 告诉策略哪些人类动作与当前机器人任务语义对应，之后多样数据才更容易被当作可迁移变化，而不是噪声。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 受控 diversity 子集固定 16 名 demonstrator 和 16 个 scene，在固定预算下改变覆盖范围。增加 demonstrator 数量（单 scene 2 小时或多 scene 8 小时）持续改善对 unseen demonstrator 的 Avg-MSE；增加 scene 数量 ${1,2,4,8,16}$ 则持续改善对 unseen scene 的泛化。联合扩展时，scene diversity 的边际收益逐渐超过额外 demonstrator diversity，且在低数据预算下最明显。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; EgoVerse 的有效性来自三层互补约束：相机中心坐标把移动的人体视角变成稳定的局部动作问题；共享视觉 stem 和 Transformer trunk 迫使 human/robot 观测进入可比较的 latent space；aligned human data 提供语义锚点，diverse data 再扩展外观、场景和运动风格的覆盖。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;数据集 → living ecosystem&lt;/strong&gt;：采集、处理、查询和版本化是一体化设计，而非一次性发布压缩包。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;跨实验室可复现研究&lt;/strong&gt;：同一任务协议、不同机器人平台，让“有效性”不依赖单一硬件。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;把 diversity 拆因子&lt;/strong&gt;：分别测 demonstrator 与 scene，避免把所有变化混成一个“更多数据”变量。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;简单但关键的对齐&lt;/strong&gt;：相机中心 action chunk 与 quantile normalization 让不同来源能共享 BC/CFM 目标。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 传统 robot dataset 的扩展路径是增加 teleoperation 轨迹；EgoVerse 把人类经验作为 embodiment-agnostic 数据层，再在下游决定机器人。与只追求大规模 in-the-wild 视频的方法相比，它保留了任务语义、手部几何和 scene/demonstrator 元数据，因此能做可控 scaling study；与只在单一实验室验证 human-to-robot transfer 的工作相比，它把跨平台复现作为主要结果。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;人类 hand/head pose 足以作为机器人末端运动的有用 proxy。&lt;/li&gt;
&lt;li&gt;任务语义在不同 embodiment 间可通过共享 instruction 和局部坐标对齐。&lt;/li&gt;
&lt;li&gt;统一的视觉与动作归一化能吸收大部分传感器/控制接口差异。&lt;/li&gt;
&lt;li&gt;少量 domain-aligned 数据可以为大规模 diverse data 提供稳定锚点。&lt;/li&gt;
&lt;li&gt;offline Avg-MSE 的趋势至少能部分反映下游机器人泛化；论文也承认这不是 rollout 的替代品。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 研究主要集中在 human-and-robot co-training，尚未系统比较 pre-train/fine-tune 等更广泛的算法路线。scene 与 demonstrator diversity 的受控实验主要依赖 offline metrics，仍需要更多真实机器人 rollout 来验证其与操作成功率的对应关系。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 数据生态的规模依赖合作机构、云存储和访问权限，个人研究者未必能获得与论文相同的 episode 分布；统一 action schema 仍不能消除动力学、接触模型和控制频率差异；人类手部轨迹是“怎么动”的 proxy，不等价于机器人可执行的 grasp affordance；持续更新还会造成 dataset shift，需要冻结版本和 data cards 才能稳定比较。&lt;/p&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这篇论文给出的最大启发是：机器人 foundation model 的瓶颈不只是模型参数，而是“哪些经验能被可靠地共享”。后续工作可以把 aligned data 选择写成可学习的 curriculum，在 EgoDB schema 中加入接触事件、物体 affordance 和失败标签，并建立把 offline diversity 指标、跨 embodiment latent distance 与真实 rollout 放在同一协议中的版本化 benchmark。&lt;/p&gt;
&lt;p&gt;如果把人类视为一组连续变化的 embodiment，那么 EgoVerse 的 scene/demonstrator scaling 实验也提供了一个有趣视角：机器人不是从“人类”迁移到“某一台机器”，而是在一个经验流形上寻找可执行的子空间。真正可扩展的 robot learning 数据系统，应该同时记录数据量、来源、对齐程度和可迁移边界。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/103975128_p0_master1200.8vniavqp93.webp"/><enclosure url="https://pic.hana0721.top/103975128_p0_master1200.8vniavqp93.webp"/></item><item><title>EgoSteer 论文精读：从第一视角视频到可操控灵巧操作</title><link>https://agusexp25.top/blog/paper-deep-dive-egosteer</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-egosteer</guid><description>精读 EgoSteer：EgoSmith 数据流水线、统一机器人栈与世界模型增强 VLA 如何共同实现 40+ 任务的可操控双手灵巧操作。</description><pubDate>Thu, 27 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;论文名称&lt;/strong&gt;：《EgoSteer: A Full-Stack System Towards Steerable Dexterous Manipulation from Egocentric Videos》&lt;br&gt;
&lt;strong&gt;论文链接&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2607.09701&quot;&gt;arXiv:2607.09701&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;代码与模型&lt;/strong&gt;：&lt;a href=&quot;https://github.com/egosteer/egosteer&quot;&gt;egosteer/egosteer&lt;/a&gt;、&lt;a href=&quot;https://huggingface.co/EgoSteer/models&quot;&gt;Hugging Face&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;项目主页&lt;/strong&gt;：&lt;a href=&quot;https://egosteer.github.io/&quot;&gt;egosteer.github.io&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-egosteer/Teaser.5q85lxzbqq.webp&quot; alt=&quot;EgoSmith、Robot Stack 与 EgoSteer 的全栈系统（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; EgoSteer 不把“通用灵巧操作”归因于单个模型，而是把数据、动作接口、纠错闭环和策略目标一起设计：EgoSmith 把野外第一视角视频变成可监督的 4D 手部数据，统一机器人栈把人类先验映射到双手平台，EgoSteer 再用世界模型特征回归提升动作精度。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;EgoSmith&lt;/strong&gt;：四阶段自动流水线（预过滤、4D 运动估计、语言标注、后过滤）产出 9.60K 小时、2.09M episodes、1.04B frames 的 12 数据集语料；相对 HaWoR 约 9 倍吞吐。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;统一机器人栈&lt;/strong&gt;：同一套低层 FK/IK 与控制节点服务遥操作、策略推理和人类介入；通过相对运动映射实现无跳变接管，并收集 187 小时、193 个任务的数据。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;EgoSteer VLA&lt;/strong&gt;：Qwen3-VL-2B 骨干、DiT 风格 flow-matching action expert，以及仅训练期使用的 DINOv3 world-model expert。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;全栈验证&lt;/strong&gt;：40 个任务平均成功率 75%，组合泛化与未见任务分别为 65% 和 62%；box folding、cake unboxing 少样本适配达到 75%/83%。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 夹爪机器人已经可以执行许多语言条件任务，但双手高自由度系统仍缺少三个关键条件：大量语言对齐示范、精确且统一的动作表示，以及能够处理部署分布偏移的纠错机制。直接在灵巧机器人上采集这些数据成本高、动作空间又依赖具体硬件。&lt;/p&gt;
&lt;p&gt;第一视角人类视频提供了规模，却通常只有 RGB：相机抖动、遮挡、深度缺失和语言缺失会使原始视频成为不稳定监督。EgoSteer 的思路是把问题拆成“可规模化的数据加工”和“可迁移的机器人闭环”两部分，再用一个训练期辅助目标弥合视觉理解与动作生成之间的鸿沟。&lt;/p&gt;
&lt;p&gt;与仅扩大真实机器人数据的 VLA 相比，本文的差异在于：人类视频负责学习操作先验，真实机器人数据负责 embodiment grounding，DAgger 只收集失败状态的纠正片段；世界模型则在训练时要求骨干预测动作之后的视觉语义，而不是在部署时增加规划开销。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 一个 episode 表示为&lt;/p&gt;
&lt;p&gt;$$\tau={l,\mathbf K,(\mathbf I_t,\mathbf D_t,\mathbf T^{w2c}&lt;em&gt;t,\mathbf s^w_t,\mathbf a^w_t)&lt;/em&gt;{t=0}^{N-1}}.$$&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：语言指令 $l$、相机内参 $\mathbf K$、最近 6 帧 RGB（1 FPS、覆盖 5 秒）和对应的状态历史。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;状态 / 动作&lt;/strong&gt;：双手各包含 3D wrist translation、6D wrist rotation、15D fingertip keypoints，总维度为 48；动作以当前相机坐标系下相对当前状态表示。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：长度 $h=32$ 的连续动作 chunk，控制频率 30 Hz。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;机器人&lt;/strong&gt;：RealMan 双臂平台与 AgiBot G1 两种 embodiment；遥操作使用 PsiBot SynGlove-Air 和 Vive Trackers。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;深度&lt;/strong&gt;：EgoSmith 输出深度和相机轨迹，但模型输入实际只使用 RGB；深度主要用于数据重建与质量控制。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-egosteer/model-arch.5xbdhdlgro.webp&quot; alt=&quot;EgoSteer 模型架构：Qwen3-VL、Action Expert 与训练期 World Model（论文 Figure 4）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 多模态输入先经过共享 Qwen3-VL backbone；Action Expert 读取 backbone 的 key-value cache，通过 joint attention 生成 flow-matching 动作 chunk；World Model Expert 读取相同骨干表示并预测未来 DINOv3 特征，只在训练时存在。整体数据流是“语言 + 图像历史 + 状态 → backbone → action/world-model heads”。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;EgoSmith 数据流水线&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-egosteer/pipeline_recreated_editable.5c1pv2r0c2.webp&quot; alt=&quot;EgoSmith 四阶段数据处理流水线（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;预过滤&lt;/strong&gt;：128 点稀疏光流剔除行走和剧烈相机运动；YOLO 手部检测要求置信度至少 0.30、框面积在图像 2%–50%，且每帧至少有两只位于下中央区域的手。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;4D 运动估计&lt;/strong&gt;：用 DPVO 替代易漂移且昂贵的 DROID-SLAM，再用 Any4D 的 metric depth 对齐尺度；将 HaWoR 的相机系 MANO 手部重建转到一致的 world space。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;语言标注&lt;/strong&gt;：Qwen3.5-VL-Plus 先过滤没有有效手-物交互的片段，再生成五级 coarse-to-fine 指令；另有 3.5% 片段在此阶段被丢弃。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;后过滤&lt;/strong&gt;：在 episode、chunk、frame 三层检查相机、腕部和指尖轨迹的尺度、旋转与瞬时跳变。&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;统一机器人栈与 DAgger&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-egosteer/robot-stack.7sny9zxwic.webp&quot; alt=&quot;统一机器人栈支持遥操作、推理和人工纠错（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 手套提供腕部 $SE(3)$ 位姿和手指关节；腕部通过 mink 求 IK，手部通过关节映射驱动。推理时策略发布同一坐标约定下的腕部轨迹和指尖关键点，因此训练、介入和部署共享低层动力学。&lt;/p&gt;
&lt;p&gt;接管瞬间记录机器人状态 $(\mathbf T_t^R,\mathbf q_t^R)$ 与人类状态 $(\mathbf T_t^H,\mathbf q_t^H)$，之后只映射相对变化：&lt;/p&gt;
&lt;p&gt;$$\mathbf T_{t&apos;}^R=\mathbf T_t^R(\mathbf T_t^H)^{-1}\mathbf T_{t&apos;}^H,\qquad \mathbf q_{t&apos;}^R=\mathbf q_t^R+\mathbf q_{t&apos;}^H-\mathbf q_t^H.$$&lt;/p&gt;
&lt;p&gt;这样脚踏板切换不会把人手的绝对坐标直接“瞬移”到机器人；论文报告接管成功率超过 85%，只有介入片段被加入后续 DAgger 训练。&lt;/p&gt;
&lt;h4&gt;Qwen3-VL Backbone 与 Action Expert&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Backbone 将 6 帧图像作为视频序列处理，状态经两层 MLP 注入连续 token；状态历史以 75% 概率替换为可学习 mask，降低模型只看 proprioception 的 shortcut。双相机 post-training 时，胸前视角以 50% 概率 dropout。&lt;/p&gt;
&lt;p&gt;Action Expert 是约 300M 参数的 14 层 DiT（hidden 1024、8 heads、MLP 2816），每层同时 attend 自身 token 与 backbone 第 $2\ell$ 层的 KV cache。代码中对应 &lt;code&gt;src/model/vlm/qwen3_expert.py&lt;/code&gt; 与 &lt;code&gt;src/model/action/action_head.py&lt;/code&gt;。&lt;/p&gt;
&lt;h4&gt;World Model Expert&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 4 层、约 70M 参数的 Transformer 接收干净动作 chunk、相对相机运动和 144 个 learnable query，输出未来帧的 DINOv3 ViT-L/16 特征。384×384 输入产生 24×24 的 teacher grid，再由 2×2 线性投影上采样。该 expert 不在推理图中，因此辅助目标没有部署时延。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;Flow Matching 与 RTC&lt;/h4&gt;
&lt;p&gt;给后缀动作 $\mathbf a_{\mathrm{suf}}$ 加高斯噪声 $\boldsymbol\epsilon$，取 $\eta\in[0,1]$：&lt;/p&gt;
&lt;p&gt;$$\tilde{\mathbf a}&lt;em&gt;{\mathrm{suf}}=(1-\eta)\boldsymbol\epsilon+\eta\mathbf a&lt;/em&gt;{\mathrm{suf}},$$
$$\mathcal L_{\mathrm{CFM}}=\mathbb E\left[\left|\pi(\tilde{\mathbf a}&lt;em&gt;{\mathrm{suf}},\eta,\mathbf C_t)-(\mathbf a&lt;/em&gt;{\mathrm{suf}}-\boldsymbol\epsilon)\right|_2^2\right].$$&lt;/p&gt;
&lt;p&gt;其中 $\mathbf C_t$ 包含语言、内参、图像和状态历史。RTC 把前 $d$ 步干净动作作为 prefix，模型只对后缀去噪；预训练 $d=0$，机器人 post-training 随机采样 $d\in[0,5]$。&lt;/p&gt;
&lt;h4&gt;World Model 损失&lt;/h4&gt;
&lt;p&gt;$$\mathcal L_{\mathrm{WM}}=\frac1{H_vW_v}\sum_{u,v}\left|\mathbf Z_{u,v}-\hat{\mathbf Z}_{u,v}\right|_2^2.$$&lt;/p&gt;
&lt;p&gt;这里 $\mathbf Z$ 是冻结 DINOv3 teacher 的未来帧特征，$\hat{\mathbf Z}$ 是 World Model Expert 的重建。特征回归比像素生成更不容易被光照和背景噪声干扰。&lt;/p&gt;
&lt;h4&gt;总目标&lt;/h4&gt;
&lt;p&gt;$$\mathcal L_{\mathrm{total}}=\mathcal L_{\mathrm{CFM}}+\mathcal L_{\mathrm{WM}}+0.05\mathcal L_{\mathrm{VLM}}.$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 配置文件 &lt;code&gt;egosteer_qwen3_vl.yaml&lt;/code&gt; 中对应 &lt;code&gt;flow_loss_weight: 1.0&lt;/code&gt;、&lt;code&gt;wm_loss_weight: 1.0&lt;/code&gt;、&lt;code&gt;ce_loss_weight: 0.05&lt;/code&gt;；VLM 分支在混合数据训练时承担 next-token prediction。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 预训练使用 9.6K 小时 EgoSmith 数据；真实机器人 post-training 使用 187 小时 teleoperation 数据，随后三轮 DAgger 收集 3.7K 条、8.3 小时纠正轨迹。预训练阶段 128 张 A800、global batch 4608、175K steps（164 小时）；post-training 阶段 96 张 A800、batch 384、60K steps（29 小时）。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 部署时 action chunk 长度仍为 32，模拟延迟固定为 $d=4$；只保留前 12 步，因此扣除 prefix 后每轮实际执行 8 个新动作步。World Model Expert 被丢弃，策略通过 WebSocket server 向 Robot Stack 返回动作。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方仓库是可运行的训练、评估和 serving 实现，而不只是模型定义：&lt;/p&gt;
&lt;p&gt;| 论文概念 | 代码位置与实现 |
| --- | --- |
| 策略与三项损失 | &lt;code&gt;src/policy/egosteer.py&lt;/code&gt;、&lt;code&gt;src/policy/egosteer_loss.py&lt;/code&gt;；flow、WM、CE 分开计算后加权 |
| Qwen3-VL backbone | &lt;code&gt;src/model/vlm/qwen3_vl_backbone.py&lt;/code&gt;；新增 &lt;code&gt;&amp;#x3C;state&gt;&lt;/code&gt;、&lt;code&gt;&amp;#x3C;action&gt;&lt;/code&gt; slot token |
| Action Expert | &lt;code&gt;src/model/vlm/qwen3_expert.py&lt;/code&gt;；14 层、KV projection、AdaLN 条件化 |
| World Model | &lt;code&gt;src/model/world_model/frozen_teacher.py&lt;/code&gt; 与 &lt;code&gt;world_model/frozen_regression.yaml&lt;/code&gt;；DINOv3 teacher 冻结 |
| 数据窗口 | &lt;code&gt;src/dataset/vla_dataset.py&lt;/code&gt;；RGB history=6、action horizon=32、WebDataset shuffle buffer=16384 |
| 训练启动 | &lt;code&gt;train.py&lt;/code&gt; 与 &lt;code&gt;scripts/train_egosteer_fsdp2_single_node.sh&lt;/code&gt;；支持单机、多机和 cloud launcher |
| 推理服务 | &lt;code&gt;src/serving/websocket_policy_server.py&lt;/code&gt; 与 &lt;code&gt;src/policy/egosteer_inference.py&lt;/code&gt; |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; README 提供 &lt;code&gt;EgoSteer-3B-Base&lt;/code&gt;（9.6K 小时人类视频预训练）和 &lt;code&gt;EgoSteer-3B-RealMan&lt;/code&gt;（RealMan post-training）权重。代码默认使用 Qwen3-VL-2B 与 DINOv3-ViT-L/16，最小推理环境为 Python 3.10、PyTorch 2.10 和 CUDA 12.8。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-egosteer/teleop_task_7x6.5q85lxzbqq.webp&quot; alt=&quot;七类灵巧操作任务与双手机器人设置（论文 Figure 5）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 主实验覆盖 32 个 seen、4 个 compositional generalization、4 个 unseen task，每个任务 10 次随机试验；动作和语言均采用自由形式，物体、桌布和初始布局随机化。数据集包含 PnP Easy/Medium/Hard、non-prehensile、reorient、bimanual、contact-rich 七类。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-egosteer/main_exp_visualization.7sny9zxwne.webp&quot; alt=&quot;40 个任务上的成功率与类别分布（论文 Figure 6）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; EgoSteer 在 40 个任务上平均成功率 75%，其中 22 个任务超过 80%；组合泛化平均 65%，未见任务 62%。它能遵循目标物体、指定手和细粒度动作指令，并在失败后重试。&lt;/p&gt;
&lt;p&gt;基线比较中，EgoSteer 达到约 74%，Being-H0.5 为 39%，$\pi_{0.5}$ 为 22%。论文将差距归因于统一动作表示、更高分辨率、训练期 RTC 和更完整的部署优化。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-egosteer/scaling_law_visualization.et918d91t.webp&quot; alt=&quot;预训练规模、DAgger、基线和组件消融结果（论文 Figure 7 / Table 1）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;| 变体 | 平均成功率 | 观察 |
| --- | ---: | --- |
| EgoSteer-FT（无 DAgger） | 22.5% | 仅 teleop fine-tuning，容易在部署分布偏移下失败 |
| EgoSteer-DG | &lt;strong&gt;62.5%&lt;/strong&gt; | 仅增加 8.3 小时纠正数据 |
| No WM-objective | 31% | 细粒度动作精度下降 |
| No training-RTC | 39% | contact-rich 任务出现暂停和抖动 |
| Noisy data | 33% | 指令遵循与收敛均恶化 |
| Ours | &lt;strong&gt;44%&lt;/strong&gt; | 完整组件 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 预训练从 3K 扩展到 6K、9.6K 小时会同时降低预训练 loss、提升真实执行 success/progress；这支持 EgoSmith 的数据质量和 EgoSteer 的 scaling behavior。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在 120 条 box-folding 示范（RealMan，18 steps、40 秒）和 200 条 cake-unboxing 示范（AgiBot G1，9 steps、1 分钟）下，预训练模型分别达到 75% 和 83%。Diffusion Policy、IMLE 以及从零训练的 EgoSteer 均为 0%，说明第一视角预训练提供的是可迁移的操作先验，而非单任务轨迹记忆。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 性能提升来自三个互补的归纳偏置：EgoSmith 让监督信号在几何和语言上变干净；统一 48D action space 让人类与机器人共享“要做什么”的接口；DINOv3 world-model loss 则迫使 backbone 的表示包含动作后未来状态，而不是只做静态图像-语言匹配。DAgger 进一步把有限人工时间集中在策略最容易犯错的状态。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 真正的创新不是“再加一个 Transformer”，而是把数据引擎、动作接口、训练目标和执行时序一起优化。尤其是 world-model expert 训练后移除，使“未来想象”成为零推理开销的表征正则；RTC 将异步计算延迟显式纳入训练分布，解决了很多 VLA 在实验室离线指标高、上机却停顿的问题。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 传统 VLA 通常在固定 embodiment 的机器人轨迹上端到端拟合；EgoSteer 先用人类视频学习跨 embodiment 的语义与手部先验，再用少量机器人数据完成 grounding。它也不同于单纯的 offline imitation：Robot Stack + DAgger 允许从任意部署状态接管并回收失败样本。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 人类腕部与指尖轨迹包含可迁移的操作知识，且能通过统一相对坐标表达。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; DINOv3 特征足以作为未来状态的稳定语义目标。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 6 帧、5 秒历史与 32 步 chunk 覆盖了主要任务的短期动力学；对更快接触事件或长时规划，这一假设可能不成立。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 机器人自由度仍限制了人类高灵巧知识的迁移；数据、模型和 embodiment 都缺少触觉反馈，限制了接触丰富任务；9.6K 小时预训练规模仍可扩大，以覆盖更广先验和提升未见任务泛化。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; EgoSmith 的 4D 重建和语言标注依赖多个外部模型，质量阈值与数据集权重带有启发式成分；不同相机、手型和控制器的标定误差可能被模型误学成动作规律。实验报告主要是成功率，尚未充分拆解恢复次数、碰撞风险、能耗或每次推理的真实延迟；论文也未明确说明所有 40+ 任务的完整公开评测协议。&lt;/p&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;数据工程本身就是模型能力&lt;/strong&gt;：当原始视频规模达到十万小时量级时，深度、相机轨迹、语言和质量过滤的接口设计，可能比再堆几层网络更决定下游上限。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;训练期辅助目标要服务于部署瓶颈&lt;/strong&gt;：预测 DINOv3 future feature 与部署时的动作精度直接相关，而不是泛化的“多任务学习”装饰。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;纠错数据应按失败状态采集&lt;/strong&gt;：DAgger 用 8.3 小时把 22.5% 提升到 62.5%，提示真实机器人数据的边际价值取决于是否覆盖 policy 自己走到的分布。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;异步控制需要进入训练分布&lt;/strong&gt;：RTC 的 prefix/suffix 设计值得推广到所有有高频控制和可变推理延迟的 VLA。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;下一步问题&lt;/strong&gt;：如何把触觉、力控和更高 DoF 手部加入同一 action space？如何让世界模型预测不止一个未来帧，并支持长时任务规划？这些问题决定 EgoSteer 能否从“40 个任务的 steerability”走向真正开放世界的 dexterous autonomy。&lt;/li&gt;
&lt;/ol&gt;</content:encoded><h:img src="https://pic.hana0721.top/101003773_p0_master1200.3uvfruqg2c.webp"/><enclosure url="https://pic.hana0721.top/101003773_p0_master1200.3uvfruqg2c.webp"/></item><item><title>EgoScale 论文精读：用 2 万小时人类视频扩展灵巧操作</title><link>https://agusexp25.top/blog/paper-deep-dive-egoscale</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-egoscale</guid><description>精读 NVIDIA EgoScale：把大规模第一视角人类视频、动作缩放律与人机对齐 mid-training 组合起来，迁移到 22-DoF 灵巧手。</description><pubDate>Thu, 27 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;论文名称&lt;/strong&gt;：《EgoScale: Scaling Dexterous Manipulation with Diverse Egocentric Human Data》&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;作者&lt;/strong&gt;：Ruijie Zheng、Dantong Niu、Yuqi Xie、Jing Wang、Mengda Xu、Yunfan Jiang、Fernando Castañeda、Fengyuan Hu、You Liang Tan、Letian Fu、Trevor Darrell、Furong Huang、Yuke Zhu、Danfei Xu、Linxi Fan&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;机构&lt;/strong&gt;：NVIDIA、University of California, Berkeley、University of Maryland&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;论文 / 项目&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2602.16710&quot;&gt;arXiv&lt;/a&gt; · &lt;a href=&quot;https://research.nvidia.com/labs/gear/egoscale/&quot;&gt;EgoScale project page&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;代码状态&lt;/strong&gt;：项目页截至论文发布时标注 “GitHub (Coming Soon!)”，没有可供本文核对的公开官方代码。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-egoscale/pull_figure-egoscale.webp&quot; alt=&quot;EgoScale 两阶段人类到机器人学习流程（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; EgoScale 把人类视为一个可扩展的“数据 embodiment”：先在 20,854 小时第一视角视频上预测相对 wrist motion 与 retargeted hand joints，再用少量严格对齐的人机 play data 做 mid-training，最后只需少量机器人示教就能学习长时程的 22-DoF 灵巧操作。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Human-data scaling law&lt;/strong&gt;：在 1k–20k 小时范围内，人类动作验证损失与数据量呈近似 log-linear 关系，拟合式为 $L=0.024-0.003\ln(D)$，$R^2=0.9983$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;两阶段迁移 recipe&lt;/strong&gt;：大规模但有噪声的人类预训练负责学习通用运动结构；约 50 小时人类 + 4 小时机器人组成的 aligned mid-training 负责把结构锚定到机器人传感和控制接口。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;灵巧操作收益&lt;/strong&gt;：在 Galaxea R1 Pro + 22-DoF Sharpa 手上，完整方法相对无预训练基线的平均成功率提升 54%（论文摘要口径）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;少样本与跨 embodiment&lt;/strong&gt;：Fold Shirt 单个机器人示教达到 0.88 成功率；在 Unitree G1 的 7-DoF tri-finger 手上也观察到明显收益。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 机器人示教数据昂贵，尤其是需要接触、手指协调和长时程规划的 dexterous manipulation。第一视角人类视频的数量和场景覆盖远大于机器人 teleoperation，但存在两个错配：视频中的人手不是目标机器人，且 in-the-wild 手部追踪和相机位姿估计带有噪声。&lt;/p&gt;
&lt;p&gt;已有 human-to-robot 方法通常依赖几十到几百小时的人类数据，或只迁移 wrist / fingertip 轨迹。EgoScale 的问题意识是：如果把规模扩大到两万小时，并显式监督高自由度 hand articulation，噪声是否会被多样性抵消？以及，是否只需要一个小的“人类—机器人对齐层”就能完成 embodiment grounding？&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这把问题拆成了两个可独立测量的因素：数据规模决定表示是否丰富，对齐数据决定表示是否可执行。若两者混在一个数据集里，就很难知道性能来自“更多视频”还是“更接近目标机器人的示教”。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 每个时间步的输入为第一视角图像、语言指令，以及机器人数据可用的 proprioceptive state。模型输出一个未来动作 chunk：&lt;/p&gt;
&lt;p&gt;$$
A_t=(a_t,\ldots,a_{t+H}),\qquad a_t=(\Delta W_t, a_{\text{hand},t}).
$$&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Observation&lt;/strong&gt;：30 FPS 的 egocentric RGB；对机器人还包括关节状态。人类样本没有 proprioception，因此输入 learnable placeholder token。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Arm action&lt;/strong&gt;：相对 wrist 变换 $\Delta W_t\in SE(3)$，消除绝对相机位姿和工作空间差异。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Hand action&lt;/strong&gt;：把 21 个手部 keypoints retarget 到 Sharpa 的 22-DoF joint space。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;主要 embodiment&lt;/strong&gt;：Galaxea R1 Pro 双臂轮式 humanoid，固定底座和躯干，双手为 Sharpa Wave 22-DoF。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;目标任务&lt;/strong&gt;：Shirt Rolling、Card Sorting、Tongs for Fruit Transfer、Bottle Unscrewing、Syringe Liquid Transfer。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-egoscale/architecture-egoscale.webp&quot; alt=&quot;EgoScale flow-based VLA 架构（论文 Figure 2b）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 图像和语言先由 VLM backbone 编码，DiT action expert 在 flow-matching 目标下生成动作 chunk；共享的 wrist action abstraction 连接人类和机器人，embodiment-conditioned MLP adapters 只处理各平台的 state 输入和 hand action 输出。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;人类动作重表示&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 相机位姿为 $T^t_{w\leftarrow c}\in SE(3)$，第 $i$ 个手部 keypoint 为 $H^t_{c,i}$，腕部世界坐标为 $W^t_w=T^t_{w\leftarrow c}H^t_{c,1}$。在一个 action chunk 内使用 $\Delta W^t=(W^0_w)^{-1}W^t_w$，因此模型学习的是局部运动而非“人在房间中的绝对位置”。&lt;/p&gt;
&lt;p&gt;手部 keypoints 通过带 joint limits 和 kinematic constraints 的优化程序映射到 22 个 Sharpa 关节。&lt;strong&gt;【Analysis】&lt;/strong&gt; 这一步不是为了让 Sharpa 模拟人的全部动力学，而是把“手指如何协同弯曲、夹捏和保持接触”变成与机器人控制接口同构的监督信号。&lt;/p&gt;
&lt;h4&gt;数据层：scale 与 alignment 解耦&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-egoscale/ego_data_collection-egoscale.webp&quot; alt=&quot;EgoScale 人类数据采集与模型输入（论文 Figure 2a）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Stage I 混合了多种 egocentric datasets，总计 20,854 小时，覆盖 9,869 个场景、6,015 个任务和 43,237 个物体；其中额外加入 829 小时高精度 EgoDex。Stage II 的 aligned play data 有约 50 小时人类轨迹和 4 小时机器人轨迹，344 个 tabletop tasks，每个任务约 30 条人类和 5 条机器人轨迹，并使用与机器人匹配的头戴及腕部相机、Vive trackers 和 Manus gloves。&lt;/p&gt;
&lt;h4&gt;Flow-based VLA 与 embodiment adapters&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：视觉—语言 embedding、机器人 proprioception（人类样本用可学习 placeholder）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;共享模块&lt;/strong&gt;：VLM backbone、相对 wrist motion 预测头、DiT action expert。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;平台特定模块&lt;/strong&gt;：state encoder 和 hand-action decoder 的轻量 MLP adapters。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：与当前 embodiment 匹配的 wrist motion 和 hand joint action chunk。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 对 G1，7-DoF tri-finger 的 state / hand action 经过自己的 adapter，主干仍复用人类预训练结构。&lt;strong&gt;【Analysis】&lt;/strong&gt; 这比把所有 embodiment 映射到统一关节向量更稳妥：共享的是操控语义和 wrist-level motion，真正受硬件约束的部分留在接口层。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;Wrist motion&lt;/h4&gt;
&lt;p&gt;$$
W^t_w=T^t_{w\leftarrow c}H^t_{c,1},\qquad
\Delta W^t=(W^0_w)^{-1}W^t_w.
$$&lt;/p&gt;
&lt;p&gt;其中 $T^t_{w\leftarrow c}$ 是相机到世界的刚体变换，$H^t_{c,1}$ 是 wrist keypoint，$\Delta W^t$ 是相对腕部位姿。它把 global camera motion 从动作标签中剥离出来。&lt;/p&gt;
&lt;h4&gt;Flow matching action prediction&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 给定 observation embedding $\phi_t$、state token 和噪声动作 $x_\tau$，DiT 学习从噪声路径到真实动作 chunk 的向量场 $v_\theta(x_\tau,\tau\mid\phi_t)$。论文没有公开完整的采样离散化细节，因此这里不补写具体 solver 或步数。&lt;/p&gt;
&lt;h4&gt;Human-data scaling law&lt;/h4&gt;
&lt;p&gt;$$
L(D)=0.024-0.003\ln(D),
$$&lt;/p&gt;
&lt;p&gt;其中 $D$ 是人类预训练小时数，$L$ 是收敛时 held-out human-video validation loss。&lt;strong&gt;【Paper】&lt;/strong&gt; 该拟合只覆盖 1k–20k 小时，不能据此断言无限外推；它的重要性在于 offline loss 与真实机器人 task completion 同步提升。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 训练分三阶段：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Stage I human pretraining&lt;/strong&gt;：20k 小时人类数据，100k steps，global batch size 8,192，learning rate $5\times10^{-5}$，全量解冻 VLA。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Stage II aligned mid-training&lt;/strong&gt;：50k steps，batch size 2,048，learning rate $3\times10^{-5}$；冻结 vision-language backbone，只更新 vision encoder、DiT 和 state/action adapters。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Stage III post-training&lt;/strong&gt;：任务级机器人示教上 fine-tune 10k steps，batch size 512，learning rate $3\times10^{-5}$；若使用 mid-training，post-training 时冻结 vision encoder。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 推理时输入当前视觉、语言和 proprioception，flow-based action expert 生成未来动作 chunk。相对 wrist action 送入双臂末端执行器控制，hand action decoder 输出对应手的关节目标；G1 的下肢平衡和 locomotion 由独立 Homie policy 处理。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; NVIDIA 项目页提供了论文、视频和交互式图表，但 GitHub 链接仍是 “Coming Soon!”。因此没有可核对的 model definition、DataLoader、loss 实现、checkpoint 或 inference script。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这意味着本文只能对照论文中的训练配方和架构图，不能声称某个公开仓库实现了 20,854 小时数据管线，也不能验证 flow sampler、retargeting 权重或 adapter 的具体代码细节。后续代码发布后，最值得复核的是：动作 chunk 长度、flow solver、手部 retargeting 的目标项、数据混合比例和 G1 adapter 的参数量。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-egoscale/dexterous_manipulation_tasks_v2-egoscale.webp&quot; alt=&quot;EgoScale 的五个灵巧操作评测任务（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 主要平台是 Galaxea R1 Pro + 22-DoF Sharpa hands，使用头戴相机和两台腕部相机。五个任务分别是双手卷衣服、从牌堆分离并插入指定卡片、用 tongs 夹水果、拧开瓶盖，以及抽取—注入液体的 syringe 长时程任务。除 Shirt Rolling 使用 20 条示教外，其余任务各使用 100 条 teleoperation demonstrations；每个方法使用两个随机种子，每个 checkpoint 通常评估 10 次，Tongs 在四种瓶子上共 16 次。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-egoscale/success_rate_task_completion_bar_plot-egoscale.webp&quot; alt=&quot;主要任务完成分数与成功率（论文 Figure 4）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文比较 No Pretrain、Midtrain Only、Human Pretrain 和 Human Pretrain + Midtrain。完整方法在五个任务上总体最好；摘要报告平均 success rate 相对无预训练提升 54%，正文则报告平均 task-completion score 提升超过 55%。两种口径分别对应二值成功率与细粒度完成分数，不能混为同一个指标。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 结果支持一种互补关系：人类预训练提供广覆盖的动作先验，aligned mid-training 则解决“这些动作如何被当前机器人看见和执行”。仅增加少量对齐数据不能替代规模化人类预训练。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;h4&gt;数据规模&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-egoscale/human_data_scaling_combined-egoscale.webp&quot; alt=&quot;人类数据规模、验证损失和机器人性能的关系（论文 Figure 5）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 预训练数据从 1k、2k、4k、10k 增加到 20k 小时，平均 task-completion score 从 0.30 单调上升到 0.71；小数据模型更早过拟合，大数据模型在训练过程中持续改善。held-out human validation set 含 2,000 个 egocentric episodes，每条轨迹采样 20 个时间步，每步从 flow policy 采样 16 个 action chunks 后计算 wrist 与 hand action MSE。&lt;/p&gt;
&lt;h4&gt;手部动作空间&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-egoscale/human_action_space_completion_barplot-egoscale.webp&quot; alt=&quot;不同人类手部动作表示的消融（论文 Figure 8）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 对比 wrist-only、fingertip-based 和 retargeted joint-space。wrist-only 在 Cards、Tongs 等需要接触时序的任务上明显较差；fingertip-based 虽然几何信息更多，但映射到关节后可能产生不稳定构型；retargeted joints 在各任务上最稳定。这里说明的是监督空间的物理可执行性，而不是 retargeting 算法本身被宣称为论文核心创新。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;h4&gt;One-shot task transfer&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-egoscale/midtraining_v2-egoscale.webp&quot; alt=&quot;Aligned mid-training 带来的 one-shot transfer（论文 Figure 6）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Fold Shirt 和 Unscrewing Water Bottles 都不在 mid-training task 中。post-training 每个任务只给 1 条机器人示教，并配合每个物体 100 条 aligned human demonstrations；Pretrain + Midtrain 分别达到 0.88 和 0.55 成功率，而缺少任一阶段的模型在该设置下失败。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这不是“零样本完成新任务”：模型仍看到了目标任务的一条机器人示教和配对人类示教。更准确的说法是，mid-training 让共享的 motion primitives 能在极低机器人数据量下被重新绑定。&lt;/p&gt;
&lt;h4&gt;Cross-embodiment transfer&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-egoscale/g1taskandsuccess_v3-egoscale.webp&quot; alt=&quot;Unitree G1 tri-finger 跨 embodiment 结果（论文 Figure 7）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Unitree G1 使用较短手臂和 7-DoF tri-finger hand，评测 Pen in Bin 与 Dish in Rack。加入包含 G1 play data 的 mid-training 后，两项任务都优于只在 G1 数据上训练的模型；论文还观察到人类预训练策略的行为更平滑。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 第一，20k 小时数据覆盖更多物体、场景和手指构型，使模型在看到目标机器人任务前就学到“抓取—保持—操作”的统计结构。第二，relative wrist + joint-space hand action 同时保留了跨 embodiment 的运动不变量和接触所需的细粒度关节信息。第三，mid-training 通过匹配视角和同步动作，把抽象先验接到真实传感器与执行器，而不是要求海量成对人机数据。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 真正的创新组合是“规模化人类动作预训练 + 小规模对齐 mid-training + 灵巧手动作监督 + scaling-law 验证”。单独的 flow-based VLA、动作 retargeting 或 MLP adapter 都不是该工作的唯一新组件。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 许多 human-to-robot 方法把人类视频当作视觉表示或高层意图来源，EgoScale 则把它直接当作 wrist 与 hand action supervision；许多 dexterous 工作只在小规模、受控数据上验证，EgoScale 把问题推进到“数据规模本身是否可预测地提升真实机器人性能”。因此它更像一个数据与训练 recipe 的论证，而不是一个全新的 policy backbone。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 人类 hand pose 和相机运动可以由现成 perception pipelines 估计到足够有用的程度。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; relative wrist motion 能跨相机、机械臂和工作空间共享。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 目标机器人最好拥有与人手相近的可操作自由度，或至少能通过 adapter 保留关键 motion primitives；若硬件无法表达夹捏和独立手指控制，迁移收益可能下降。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; aligned mid-training 的视角、标定和任务分布必须足够接近部署域；这一步并非对任意 embodiment 都能免标注泛化。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 作者没有在正文列出单独的 limitation section，但结论承认：实验只覆盖 1k–20k 小时，不能外推到无限数据；更大收益可能需要同时扩展 model capacity；更长时程规划和 compositional generalization 仍是开放问题；无标签视频如何通过 self-supervised objectives 加入，也尚未解决。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;动作标签成本仍高&lt;/strong&gt;：20,854 小时并非原始视频直接训练，而是依赖 SLAM、hand-pose estimation 和 retargeting，数据清洗与算力门槛很高。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;模型—硬件耦合&lt;/strong&gt;：22-DoF Sharpa joint space 是强监督来源，也是潜在瓶颈；对欠驱动或软体手，adapter 能否保留同样的接触结构仍未充分验证。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;评测规模有限&lt;/strong&gt;：主要真实任务数量、随机种子和每任务试验次数仍小于互联网规模数据论文的统计标准，成功率对初始化和人工 overlay 也较敏感。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;代码不可复现&lt;/strong&gt;：官方实现尚未公开，外部研究者无法核对数据混合、动作 retargeting 目标和 flow sampling 的细节。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; EgoScale 最值得借鉴的不是“再收集一个更大的视频集”，而是把数据路线拆成可诊断的三层：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;用 offline human-action loss 监控表示是否随数据规模改善，并检查它是否真的预测真实机器人收益。&lt;/li&gt;
&lt;li&gt;用显式 action representation 把视觉学习导向可执行的 wrist / hand motion，而非只学习任务语义。&lt;/li&gt;
&lt;li&gt;用极小但高质量的 aligned play data 做 embodiment grounding，把昂贵的机器人数据花在“接口对齐”而不是重复覆盖人类已经展示过的运动。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 后续研究可以沿三条线推进：将 retargeted joint labels 与无标签视频的时序预训练结合；研究 scaling law 是否同时受模型容量、动作 chunk horizon 和 embodiment diversity 控制；以及把 one-shot transfer 的“共享 motion structure”显式表示成可检索的 skill primitives。若代码发布，首先应复现实验 Figure 5 的 loss—data—robot performance 三联关系，因为它是论文从经验结果走向可预测数据工程的关键证据。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/102841826_p0_master1200.4clh7xw95k.webp"/><enclosure url="https://pic.hana0721.top/102841826_p0_master1200.4clh7xw95k.webp"/></item><item><title>EgoLive 论文精读：面向真实人类任务的大规模第一视角数据集</title><link>https://agusexp25.top/blog/paper-deep-dive-egolive</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-egolive</guid><description>精读 EgoLive：用双目头戴设备和自动化多模态标注，把 1,680 小时真实服务场景转化为可用于机器人学习的第一视角数据。</description><pubDate>Thu, 27 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;《EgoLive: A Large-Scale Egocentric Dataset from Real-World Human Tasks》关注的不是新的 Policy，而是机器人学习最常见的瓶颈：高质量、可扩展、具有真实世界覆盖的数据从哪里来。作者发布了一个面向人类日常工作任务的第一视角（egocentric）数据集，并配套一条从双目视频到几何、运动和语言标注的自动化生产线。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-egolive/overview.egolive.webp&quot; alt=&quot;EgoLive 数据集规模与双目第一视角示例（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; EgoLive 的核心贡献是把“人类自然地完成任务时看到了什么、手做了什么、场景长什么样”包装成可规模化生产的训练样本，而不是把人类动作强行映射成某一种机器人的关节轨迹。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;发布 1,680 小时、65,866 个 episode、346 类任务的开源标注数据，覆盖家庭服务、整理、清洁、物流、零售和药房等真实场景。&lt;/li&gt;
&lt;li&gt;设计 JoyEgoCam 头戴式双目设备：每个相机 2160×2160、60 FPS、水平与垂直视场角约 130°，并以 200 Hz IMU 辅助相机运动估计。&lt;/li&gt;
&lt;li&gt;建立自动化标注管线，提供 6-DoF 手/腕轨迹、手与交互物体 mask、1152×1152 深度、相机位姿、子任务边界和细粒度语言描述。&lt;/li&gt;
&lt;li&gt;从离散标签长尾和 Cosmos-Embed1-448p 的连续特征空间两个角度分析数据多样性，并用手部、深度和 caption 评估验证标注质量。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 论文没有给出独立的 GitHub 代码仓库；官方入口是 &lt;a href=&quot;https://robotdata-market.jdcloud.com/console/market&quot;&gt;JD Cloud Robot Data Market&lt;/a&gt;。因此本文的“代码实现对照”只讨论论文明确写出的处理组件，不虚构不存在的训练脚本。&lt;/p&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 现有机器人数据主要来自三类采集方式：真实机器人遥操作、Universal Manipulation Interface（UMI）和人类第一视角视频。遥操作具有真实的机器人动力学先验，但需要专用硬件、熟练操作员和昂贵的部署环境；UMI 让人类手持带相机的夹爪示教，降低了视觉域差异，却仍然绑定某种 robot embodiment，也不容易扩展到灵巧手。&lt;/p&gt;
&lt;p&gt;第一视角视频的优势是设备简单、可在不受空间约束的真实环境中长时间记录。Ego4D、EPIC-KITCHENS-100 等通用数据集规模很大，但缺少相机轨迹、3D 手关键点、稠密 hand/object mask 和程序化子任务边界。EgoMimic、EgoDex、HOI4D、HOT3D 补充了操作相关监督，不过多数仍集中在实验室、桌面或家庭短任务。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; EgoLive 选择的切入点是“部署场景覆盖 + 几何标注完整度”的组合：它不直接提供机器人 action label，却尽量保留从视觉观察到人类操作先验所需的中间变量，为后续 retargeting、VLA 预训练和 workflow decomposition 留出接口。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; EgoLive 可以形式化为一个带时间同步的多模态 episode 集合：&lt;/p&gt;
&lt;p&gt;$$
\mathcal D = {(V^L, V^R, I, K, \mathcal P, \mathcal H, \mathcal M, \mathcal Z, \mathcal C)}_{e=1}^{N}
$$&lt;/p&gt;
&lt;p&gt;其中 $V^L,V^R$ 是左右相机视频，$I$ 是 IMU，$K$ 是相机内参与触发时间戳，$\mathcal P$ 是相机 6-DoF 轨迹，$\mathcal H$ 是 3D 手/腕关键点，$\mathcal M$ 是手和交互物体 mask，$\mathcal Z$ 是深度或点云，$\mathcal C$ 是子任务 caption，$N=65{,}866$。&lt;/p&gt;
&lt;p&gt;| 维度                | EgoLive 设定                                                    |
| ------------------- | --------------------------------------------------------------- |
| 观察（Observation） | 双目 RGB、标定文件、触发时间戳、200 Hz IMU                      |
| 视觉分辨率 / 频率   | 每路 2160×2160、60 FPS；深度 1152×1152                          |
| Episode             | 通常 1–3 分钟，单个连续中长时任务                               |
| 任务规模            | 346 类、65,866 个 episode、1,680 小时                           |
| 几何监督            | 相机位姿、深度、点云、3D 手关键点                               |
| 语义监督            | 手-物交互、子任务边界、动作/物体/属性描述                       |
| Robot action        | &lt;strong&gt;未直接提供&lt;/strong&gt;；需要下游方法进行 retargeting 或 action learning |&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-egolive/capture-system.egolive.webp&quot; alt=&quot;JoyEgoCam 采集设备与双目视野（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 数据流从 JoyEgoCam 的双目 RGB 与 IMU 开始，经过去畸变/左右视图分离后并行进入手部重建、手物语义、深度与相机定位、子任务切分和语言描述模块，最终写出一个时间对齐的多模态 episode。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;JoyEgoCam 采集&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：佩戴者在真实家庭、零售、药房等环境中的自然操作。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：左右同步视频、内参、触发帧时间戳和 IMU。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;设计目的&lt;/strong&gt;：头戴式设备让视角跟随人的注意与移动，同时避免 VR 头显遮挡面部或手持设备干扰手部动作。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;关键参数&lt;/strong&gt;：双目 RGB、2160×2160、60 FPS、约 130°×130° FoV、IMU 200 Hz。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Motion Tracking&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 每个单目视图先用 HaMeR 估计 MANO 参数，获得稳定的 2D 投影；随后用 ORB-SLAM3 融合双目 RGB 和 IMU 估计相机 ego-motion，并以第一帧左目初始化。最后在 stereo space 中联合优化，使 3D 手关键点同时满足左右相机的投影约束。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这种“两阶段”结构把单目手部模型的可见性优势和双目系统的绝对尺度优势结合起来：前者负责找到手，后者负责消除深度漂移和跨视角不一致。&lt;/p&gt;
&lt;h4&gt;Semantic Understanding&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 手和交互物体先由手-物检测模型定位，再由 BoT-SORT 跨帧关联，SAM2 生成稠密 mask。检测/跟踪结果用于切分原始 episode 的原子子任务；每个 1–20 秒的 clip 再交给 fine-tuned Qwen3-VL-32B，通过多阶段 reasoning 生成包含手、物体和动作的 caption。&lt;/p&gt;
&lt;h4&gt;3D Scene Reconstruction&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; FoundationStereo 在校准后的双目图像上生成 1152×1152 深度图。深度与相机轨迹结合后，可以恢复工作空间的点云，为接触关系、手-物相对位姿和后续 human-to-robot 对齐提供几何监督。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-egolive/annotation-pipeline.egolive.webp&quot; alt=&quot;EgoLive 自动化多模态标注管线（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;双目手部几何一致性&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文没有给出完整的优化目标，但描述了在 MANO 初值上进行 stereo optimization，使左右相机的重投影误差一致。可将其抽象为：&lt;/p&gt;
&lt;p&gt;$$
\min_{\mathbf X,,\boldsymbol\xi}
\sum_{c\in{L,R}}\sum_{j=1}^{J}
\left|\pi_c(\mathbf X_j;\boldsymbol\xi_c)-\mathbf u_{c,j}\right|_2^2
$$&lt;/p&gt;
&lt;p&gt;其中 $\mathbf X_j$ 是第 $j$ 个 3D 手关键点，$\boldsymbol\xi_c$ 是相机位姿，$\pi_c$ 是相机投影函数，$\mathbf u_{c,j}$ 是左右图像中的 2D 关键点。该目标的作用是把单目预测提升为具有绝对尺度且跨视角一致的 3D 轨迹。&lt;/p&gt;
&lt;h4&gt;深度误差统计&lt;/h4&gt;
&lt;p&gt;对校准板角点，论文用已知几何计算参考深度 $d^*$，再报告：&lt;/p&gt;
&lt;p&gt;$$
e_i = |d_i-d_i^*|,\qquad
\mathrm{MeanError}=\frac{1}{M}\sum_{i=1}^{M}e_i
$$&lt;/p&gt;
&lt;p&gt;并统计 $e_i&amp;#x3C;{5,10,20,30,40}$ mm 的比例。这里的阈值分布比单一平均误差更能反映机器人操作距离内的可用性。&lt;/p&gt;
&lt;h4&gt;Caption 一致性&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; LLM-as-a-Judge 将生成描述拆成四个维度：hand consistency、object consistency、action consistency 和 global consistency。前三项检查手、物体属性和动作是否对应视频，global consistency 检查整句是否完整、自然且联合正确。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; EgoLive 是数据集论文，不训练一个端到端机器人 Policy。需要训练的模型只存在于标注生产线内部：HaMeR、手-物检测器、BoT-SORT、SAM2、ORB-SLAM3、FoundationStereo，以及 fine-tuned Qwen3-VL-32B。论文未公开这些组件的训练集、epoch、optimizer 或 checkpoint 配置。&lt;/p&gt;
&lt;p&gt;因此，面向数据生产的可复现实验流程是：&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在 captioning 阶段，模型输入不是整段长视频，而是由手-物跟踪切出的短 clip。Qwen3-VL-32B 采用多阶段 reasoning，输出结构化自然语言；论文示例显示，描述会明确“哪只手、拿什么物体、做什么动作以及方向/属性”。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 论文未提供官方代码仓库，只有 &lt;a href=&quot;https://robotdata-market.jdcloud.com/console/market&quot;&gt;JD Cloud 数据集市场&lt;/a&gt; 入口。因此无法核对 dataloader、checkpoint、训练脚本或实际发布文件格式。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文明确给出的实现组件和版本线索包括：HaMeR + MANO（手重建）、ORB-SLAM3（视觉惯性定位）、BoT-SORT（跟踪）、SAM2（分割）、FoundationStereo（深度）和 fine-tuned Qwen3-VL-32B（caption）。这些名称是论文描述，不等价于一个可直接运行的官方 pipeline。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 数据来自不受约束的真实场景，episode 通常持续 1–3 分钟。作者从三个角度评估数据集：语义/特征分布、手部重建、深度重建和 instruction captioning。深度实验使用 0.5–3.5 m 的阶梯阵列与 ChArUco 校准板，先用 BFGS 联合优化相机相对校准板的 6D 位姿，再把板上角点几何作为参考深度。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;| 数据集        | 场景         |        时长 | 分辨率        |    FPS | 多视角 | 运动跟踪 | 语言  | 深度  |
| ------------- | ------------ | ----------: | ------------- | -----: | :----: | :------: | :---: | :---: |
| Ego4D         | 真实世界     |     3,680 h | 不一致        |     30 |   ✗    |    ✗     |   ✓   |   ✗   |
| EgoDex        | 实验室       |       829 h | 1920×1080     |     30 |   ✗    |    ✓     |   ✓   |   ✗   |
| Xperience-10M | 真实世界     |     1,059 h | 512×512       |     20 |   ✓    |    ✓     |   ✓   |   ✓   |
| &lt;strong&gt;EgoLive&lt;/strong&gt;   | &lt;strong&gt;真实世界&lt;/strong&gt; | &lt;strong&gt;1,680 h&lt;/strong&gt; | &lt;strong&gt;2160×2160&lt;/strong&gt; | &lt;strong&gt;60&lt;/strong&gt; | &lt;strong&gt;✓&lt;/strong&gt;  |  &lt;strong&gt;✓&lt;/strong&gt;   | &lt;strong&gt;✓&lt;/strong&gt; | &lt;strong&gt;✓&lt;/strong&gt; |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在论文列出的代表性数据集中，EgoLive 以 2160×2160、60 FPS 和完整多模态标注形成组合优势；其 1,680 小时时长仅次于 Ego4D，但后者并非操作导向且缺少几何监督。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;论文没有 Policy ablation，也没有逐项移除标注模块的消融实验。作者采用跨数据集对比和质量可视化替代消融：EgoLive 的 object/action/attribute 词频曲线均高于 EgoDex 与 Xperience-10M，表现出更长的语义尾部；t-SNE 中覆盖区域更广，同时局部簇更紧凑。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-egolive/distribution.egolive.webp&quot; alt=&quot;EgoLive 的离散任务类别与语义词云（论文 Figure 4）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;h4&gt;语义覆盖&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 数据覆盖 household service、organization、cleaning、logistics 等任务。作者从 instruction caption 中提取 object/action/attribute 标签，在 log-log 频率图上观察到更宽的长尾，说明数据不仅重复高频动作，也包含更多低频交互组合。&lt;/p&gt;
&lt;h4&gt;连续特征空间&lt;/h4&gt;
&lt;p&gt;使用 Cosmos-Embed1-448p 提取图像 embedding，再用 t-SNE 可视化 object、environment、action 的联合表示。&lt;strong&gt;【Paper】&lt;/strong&gt; EgoLive 占据更宽的 manifold 区域，并保留局部语义簇；这支持“覆盖更广，同时局部交互模式仍可学习”的判断，但不等价于已经证明下游机器人成功率提升。&lt;/p&gt;
&lt;h4&gt;几何质量&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 深度平均误差在 0.5–0.7 m 处约 3 mm；在约 0.9 m 以内属于典型人类操作距离时误差较低。距离增大到 3.5 m，平均误差升至 18.035 mm，$&amp;#x3C;40$ mm 的像素比例仍为 93.478%。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-egolive/depth-scenes.egolive.webp&quot; alt=&quot;真实家庭、零售场景中的深度图与点云重建（论文 Figure 10）&quot;&gt;&lt;/p&gt;
&lt;h4&gt;Caption 质量&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-egolive/caption-examples.egolive.webp&quot; alt=&quot;Instruction captioning 的四个定性示例（论文 Figure 11）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 四个示例中，玻璃清洁和外套整理的 caption 在 action/object/hand/global 四项均通过；海绵清洁和铺床示例出现动作或全局不一致。这说明 LLM caption 能提供丰富监督，但仍需要自动或人工质量控制。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; EgoLive 有效的关键不是某一个视觉模型，而是三个闭环：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;采集闭环&lt;/strong&gt;：双目 + IMU 同时保留宽视野、绝对尺度和时间同步。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;标注闭环&lt;/strong&gt;：2D 手检测、3D 几何、手物语义和语言描述互相约束，单一模型出错时仍可用其他模态发现问题。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;分布闭环&lt;/strong&gt;：先在真实业务场景采集，再用离散长尾和连续 manifold 检查覆盖是否坍缩到少数任务。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;将第一视角数据采集从实验室/桌面操作扩展到真实服务和商业工作流。&lt;/li&gt;
&lt;li&gt;用定制硬件把高分辨率、高帧率双目和 200 Hz IMU 做成可长时间佩戴的设备。&lt;/li&gt;
&lt;li&gt;把手轨迹、相机轨迹、深度、mask、子任务边界和 caption 放入同一 episode。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 真正有价值的创新是“dataset interface”：它没有规定下游必须使用某个机器人动作空间，因此更适合跨 embodiment 的 representation pretraining、retargeting 和 data curation。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;| 路线                 | 监督来源                        | 可扩展性 | embodiment 依赖 | EgoLive 的差异                             |
| -------------------- | ------------------------------- | -------- | --------------- | ------------------------------------------ |
| 机器人遥操作         | 真实 robot state/action         | 低       | 高              | 不采集机器人轨迹，换取更大场景覆盖         |
| UMI                  | 手持 gripper + 视频             | 中       | 中到高          | 保留自然手形态，不绑定夹爪接口             |
| 通用 egocentric 数据 | 视频 + 语言                     | 高       | 低              | 补上几何、手物 mask 和子任务边界           |
| EgoLive              | 双目视频 + IMU + 自动多模态标注 | 高       | 低              | 面向真实工作流，支持后续跨 embodiment 学习 |&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文隐含或明确依赖以下假设：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;头戴式相机视角能够作为人类操作的有效视觉代理；&lt;/li&gt;
&lt;li&gt;双目重建和 SLAM 在动态手部遮挡、快速运动下仍可提供足够稳定的几何；&lt;/li&gt;
&lt;li&gt;手、交互物体与动作的组合足以描述原子操作；&lt;/li&gt;
&lt;li&gt;LLM 生成的语言可作为语义监督，而无需为每个 clip 提供人工逐字标注。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这些假设对机器人 transfer 并不自动成立：人类视角与机器人相机高度不同，手的运动也不能直接执行，仍需 retargeting 或 latent action interface。&lt;/p&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;论文没有单独列出 limitations 小节。&lt;strong&gt;【Paper】&lt;/strong&gt; 从实验描述可确认，远距离深度误差随距离增加；caption 示例中也存在 action/object/global 不一致。论文还没有报告下游 VLA 或机器人在 EgoLive 上训练后的成功率提升。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;没有 robot action&lt;/strong&gt;：数据天然适合表征学习，却不能直接替代真实机器人示教；从人手到具体机械臂需要姿态映射、接触建模和控制策略。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;自动标注误差会级联&lt;/strong&gt;：检测漏检会影响 BoT-SORT，跟踪错误会影响子任务切分，切分错误又会诱导 Qwen3-VL 生成错误 caption。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;隐私与授权成本&lt;/strong&gt;：真实家庭和商业场景涉及人脸、商品和工作流程，论文未展开公开数据的隐私过滤、授权范围和持续更新机制。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;分布统计不等于 transfer&lt;/strong&gt;：词频长尾和 t-SNE 覆盖只能说明数据多样，不能证明某个 robot embodiment 的泛化性能。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;缺少可复现代码&lt;/strong&gt;：没有公开 annotation pipeline、模型权重与过滤规则，研究者难以逐步复现表 2 和 caption 质量。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; EgoLive 给机器人学习的启发是：下一代数据集不必在“纯视频”和“真实机器人轨迹”之间二选一，而可以发布一组可组合的中间监督。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;从 video-to-action 变成 video-to-interface&lt;/strong&gt;：先学习手、物体、相机和子任务的共享表示，再由不同 embodiment 的 adapter 生成动作。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;把质量控制做成训练目标&lt;/strong&gt;：利用双目重投影误差、mask 时序一致性和 caption 四维评分构造 sample weight，进行 quality-aware imitation learning。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;研究长时任务分解&lt;/strong&gt;：1–3 分钟 episode 与 1–20 秒 atomic clip 的层级结构，适合训练 high-level planner + low-level skill policy。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;主动采集长尾数据&lt;/strong&gt;：词频和 embedding manifold 可以反过来指导下一轮采集，把资源投入罕见物体、动作和场景组合。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;评估真实 transfer&lt;/strong&gt;：后续工作应报告从 EgoLive 预训练到具体 robot 的 zero-shot、few-shot 和 cross-embodiment 指标，而不止是数据规模。&lt;/li&gt;
&lt;/ol&gt;</content:encoded><h:img src="https://pic.hana0721.top/102841826_p0_master1200.4clh7xw95k.webp"/><enclosure url="https://pic.hana0721.top/102841826_p0_master1200.4clh7xw95k.webp"/></item><item><title>EgoInfinity 论文精读：把任意视角网络视频编译成可执行机器人动作</title><link>https://agusexp25.top/blog/paper-deep-dive-egoinfinity</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-egoinfinity</guid><description>精读 EgoInfinity：以共享度量 3D、交互状态修正和 SE(3) 等变根坐标估计，将网络人类视频转化为跨机器人可 retarget 的 4D 手—物交互数据。</description><pubDate>Thu, 27 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; EgoInfinity 不把网络视频直接当作 2D pseudo-action，而是建设一个可替换模块组成的 4D hand-object interaction（HOI）data engine。输入为带语义标注的 RGB 视频，输出为米制手部轨迹、物体点云/网格、6-DoF 物体轨迹与交互状态；这些 agent-agnostic 表示随后可被编译到不同机器人上。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-egoinfinity/egoinfinity-pipeline.5c1pv2pjc1.webp&quot; alt=&quot;EgoInfinity 数据引擎总览（论文 pipeline 图）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这篇论文的关键不是“从视频恢复一只手”，而是把异构视觉模型的输出校到同一度量坐标系，并让接触状态决定物体怎么动。只有这样，web video 才从看起来合理的影像变成可送入 IK 与 policy 的数据资产。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;提出面向 web-scale 的模块化 4D HOI 数据引擎，自动完成目标物体发现、度量几何、手物体追踪、交互修正与坐标重构，无需 mocap、深度相机、CAD、wearable 或人工指定物体。&lt;/li&gt;
&lt;li&gt;以 MoGe-2、Flow3r、GeoCalib、WiLoR、SAM-3/SAM-2、SAM-3D 等模块建立共享的 metric camera frame，而非直接拼接彼此尺度不一致的预测。&lt;/li&gt;
&lt;li&gt;利用 &lt;code&gt;static&lt;/code&gt;、&lt;code&gt;grasped&lt;/code&gt;、&lt;code&gt;moving&lt;/code&gt; 交互状态修正物体 6-DoF：握住时绑定到手，静止时锁定至稳健点云中心，降低纯视觉跟踪漂移。&lt;/li&gt;
&lt;li&gt;提出机器人专属、$SE(3)$-equivariant 的根坐标估计器，以 flow matching 对部分可见人体带来的多解性采样，并用 IK 可行性选择候选。&lt;/li&gt;
&lt;li&gt;在 106 段 Action100M 操作视频上展示跨 Unitree G1、Robonaut2、双 Franka FR3 的 retargeting，以及 LEAP 手抓取和 Franka 切、倒、擦等真实机器人演示。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 实验室和工厂示教具备 robot-compatible action，却受场地、对象与操作者限制；网络视频覆盖更广，却没有尺度、物体 6-DoF、接触状态和机器人关节轨迹。仅在 2D 画面或像素空间对齐人类动作，容易产生视觉上流畅但物理上未 grounding 的 pseudo-action。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; EgoInfinity 利用 Action100M 的文本标注做语言 grounding：Action100M 本身含 1.47 亿 action segments、约 14.6 年视频。论文不宣称一次性发布一个静态大数据集，而强调一个能伴随其中各感知模块进步而更新的 data engine。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这与传统 video imitation 的分界在于中间表示。若中间层是二维手腕轨迹，之后的 retargeter 只能猜深度；若中间层保留有尺度的手、物体、重力和接触关系，retargeter 才有机会把“同一个任务意图”迁移给形态不同的机器人。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 给定一段长度为 $T$ 的 RGB 视频 $V_{1:T}$ 及其文本描述 $d$，引擎生成每帧的手与物体状态：&lt;/p&gt;
&lt;p&gt;$$
\mathcal H_t={\mathcal M_t^h,\mathcal K_t^h,{}^c\mathbf p_t^h,
\mathcal P_t^o,\mathcal M^o,{}^c\mathbf p_t^o,s_t}.
$$&lt;/p&gt;
&lt;p&gt;其中，$\mathcal M_t^h$、$\mathcal K_t^h$ 是 MANO 手网格和关键点，${}^c\mathbf p_t^h\in SE(3)$ 是相机系手位姿；$\mathcal P_t^o$、$\mathcal M^o$、${}^c\mathbf p_t^o$ 分别为物体点云、网格和 6-DoF 位姿，$s_t$ 是交互状态。目标不是恢复完整人体，而是产出能被下游 robot embodiment 使用的 agent-agnostic 交互表示。&lt;/p&gt;
&lt;p&gt;对于目标机器人 $r$，retargeter 接收手部轨迹与可选重力 ${}^c\mathbf g$，估计根坐标 ${}^c\mathbf p^r$，再寻找满足机器人运动学的关节轨迹 $q_{1:T}$。这使得只有手出现在画面中时，仍能定义机器人 torso/base 下的可执行目标。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-egoinfinity/egoinfinity-retarget.4joudc8xqq.webp&quot; alt=&quot;从重建手轨迹到跨 embodiment 运动 retargeting（论文 Figure：Retargeting pipeline）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 数据流为：视频与语义描述 → 共享度量几何下的手/物体重建 → interaction-aware refinement → 4D HOI → 机器人根坐标候选 → IK 与后处理关节轨迹。架构中的前半段刻画“人做了什么”，后半段处理“这个机器人怎样做”。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;共享度量几何与自动目标发现&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 系统先以 WiLoR 进行轻量 Pass 1，找出有手且满足手部运动/相机运动线索的片段；仅对活跃片段运行昂贵的 Pass 2。MoGe-2 估计焦距和全局 metric scale，Flow3r 提供密集深度，GeoCalib 从早期帧估计重力。WiLoR 输出 MANO pose/shape、手网格和关键点；缺失或不稳定帧由 infilling 模块补全。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 目标物体不由人手选定。系统从视频描述抽取 object noun，以 SAM-3 的文本提示定位目标，再以 SAM-2 沿时间传播 mask；mask 与深度反投影为每帧物体点云，视觉证据充足时由 SAM-3D 生成网格，FoundationPose++ 跟踪同一 metric frame 中的 6-DoF 位姿。&lt;/p&gt;
&lt;h4&gt;Interaction-Aware Refinement&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 视觉跟踪的核心失败是：物体本应静止却漂移，握住时被遮挡而位姿跳变。EgoInfinity 先由 mask/depth 给出初始物体提议，再以 MEMFOF optical flow 与手关键点将帧归入 &lt;code&gt;static&lt;/code&gt;、&lt;code&gt;grasped&lt;/code&gt;、&lt;code&gt;moving&lt;/code&gt;。在握持段，物体按 palm-aligned canonical transform 刚性绑定到手；静止段使用稳健点云中心锁定；移动段保留视觉提议，最后过滤不合理尺度和背景误检。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这里的物理性来自“状态条件下该信谁”，不是一个端到端 physics simulator：抓住时手是比受遮挡物体更可靠的参考，未接触时反而不应让手带动物体。这种不对称约束正好压住单目重建最典型的 drift。&lt;/p&gt;
&lt;h4&gt;部分人体可见下的 root-frame 估计&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 根坐标网络 $\Phi$ 的输入是双手位姿轨迹和可选重力，输出相机系的机器人 root pose。它使用 Vector Neuron（VN）层和 VN-Transformer：先用手位置中心化得到 translation equivariance，再以 3D vector feature 保持 rotation equivariance；rotation head 的两个向量经 Gram--Schmidt 变为 $SO(3)$ 矩阵，translation 则预测 root-relative offset。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 由于相同手部轨迹可对应多个身体/torso 姿态，作者不用确定性回归，而以 conditional flow matching 建模根坐标分布。模型在 MuJoCo 中为每个目标机器人独立训练，用程序生成的手轨迹与随机相机提供监督，并注入 tracking noise、tracking jump、手遮挡和 gravity noise；30% 样本丢弃重力输入。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 手和物体模块必须先处于同一相机系与米制尺度，初始 HOI 状态才可写为：&lt;/p&gt;
&lt;p&gt;$$
\mathcal H_t=
{\mathcal M_t^h,\mathcal K_t^h,{}^c\mathbf p_t^h,
\mathcal P_t^o,\mathcal M^o,{}^c\mathbf p_t^o}.
$$&lt;/p&gt;
&lt;p&gt;上标 $c$ 表示 camera frame；${}^c\mathbf p\in SE(3)$ 同时编码旋转与平移。这里的共享坐标是接触判断、绑定和 retargeting 的前提，而非展示层的可选附加信息。&lt;/p&gt;
&lt;p&gt;对于根坐标估计，论文要求任意刚体变换 $\mathbf G\in SE(3)$ 下满足：&lt;/p&gt;
&lt;p&gt;$$
\mathbf G\cdot\Phi(\mathbf x)=\Phi(\mathbf G\cdot\mathbf x),
$$&lt;/p&gt;
&lt;p&gt;其中 $\mathbf x$ 为手轨迹与可选重力。它保证把输入视频的相机系整体旋转/平移后，预测 root frame 也作同样变换，而不是依赖某个固定相机朝向。&lt;/p&gt;
&lt;p&gt;translation head 的恢复式为：&lt;/p&gt;
&lt;p&gt;$$
{}^c\mathbf t^r={}^c\mathbf R^r\mathbf v+\mathbf c.
$$&lt;/p&gt;
&lt;p&gt;${}^c\mathbf R^r$ 是预测的根旋转，$\mathbf v$ 是 root-relative offset，$\mathbf c$ 是手位置质心。通过预测中心化后的相对位移，网络避免直接回归随相机平移变化的绝对坐标。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 训练分为两类。数据引擎本身组合既有感知模块，并没有在文中定义一个统一的端到端可训练损失；目标机器人上的 $\Phi$ 则完全用 MuJoCo 合成数据训练：在操作工作区附近生成平滑双手 Cartesian 轨迹，使用 warm-started position-only IK 与样条构造可行 motion，再随机采样相机，将手轨迹和真值 root pose 变到 camera frame。&lt;/p&gt;
&lt;p&gt;&amp;#x3C;Algorithm
number={1}
title=&apos;Robot-Specific Root Estimator Training&apos;
inputLabel=&apos;输入&apos;
outputLabel=&apos;输出&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 对一段视频，flow model 在重叠时间窗中生成多个 root-frame 假设；论文使用 20 步 Euler 积分采样。候选先经 $k$-means 聚类，窗口级估计用 translation 线性插值和 rotation SLERP 变为每帧 root trajectory。每个候选随后接受带 warm start、null-space regularization 的 sequential IK 评估，按收敛率、末端残差、manipulability、关节限位余量与平滑度选优；失败帧插值，手指再从 MANO keypoint 做机器人专属几何映射。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 截至本文写作时，arXiv 和官方 Hugging Face 页面没有给出可运行的 EgoInfinity data-engine 或 retargeter 源码，故不能把论文中的模块、loss 或超参数当作已经可复现的实现。frontmatter 的 &lt;code&gt;code&lt;/code&gt; 因而保持为空。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方发布的是 &lt;a href=&quot;https://huggingface.co/spaces/Rice-RobotPI-Lab/EgoInfinity&quot;&gt;EgoInfinity Browser&lt;/a&gt; 与标为 preview 的 &lt;a href=&quot;https://huggingface.co/datasets/Rice-RobotPI-Lab/egoinfinity&quot;&gt;EgoInfinity dataset&lt;/a&gt;。dataset 的 sample 目录确实含 &lt;code&gt;camera.json&lt;/code&gt;、&lt;code&gt;depth.npz&lt;/code&gt;、&lt;code&gt;flow.mp4&lt;/code&gt;、&lt;code&gt;hand_joints.bin&lt;/code&gt;、&lt;code&gt;object_pose.bin&lt;/code&gt;、&lt;code&gt;scene.json&lt;/code&gt;、&lt;code&gt;signals.json&lt;/code&gt;、物体 &lt;code&gt;.ply&lt;/code&gt;，以及 &lt;code&gt;retarget/{franka,g1,robonaut2,xlerobot}/trajectory.npz&lt;/code&gt;、仿真视频与指标；它验证了论文所述中间表示和 retarget 输出的发布形态。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 数据卡写“104 个 clips 具有四种 embodiment 的 retarget 结果”，论文正文则称 curated subset 有 106 个视频。两者可能反映不同发布快照或可成功 retarget 的子集；官方没有在页面解释差异，使用者应以下载版本的实际清单为准。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-egoinfinity/egoinfinity-experiments.7q15spmc6.webp&quot; alt=&quot;EgoInfinity 的数据浏览、跨机器人 retargeting 与真实机器人示例（论文 experiments 图）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 作者在 Action100M 的可扩展 curated subset 上处理 106 段 manipulation videos。评估涵盖浏览器式数据服务、数据统计、三种差异很大的 embodiment（Unitree G1、NASA Robonaut2、dual-Franka FR3）和真实机器人执行/学习。报告的 retarget 指标包括逐帧 IK rate、手位置/朝向误差、关节限位余量、manipulability 与 joint-velocity smoothness。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 真实侧一条路线是在 LEAP dexterous hand 上把提取手轨迹作为 grasp policy prior；另一条路线是将动作直接 retarget 给 dual-arm Franka FR3，展示 cutting、pouring、wiping。论文将这些视作从网络视频到可执行行为的端到端验证，而非对一个单独 VLA backbone 的训练比较。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 三个 embodiment 的数据集级结果如下。IK Rate 是逐帧收敛比例；位置/朝向误差均相对于 IK target，而不是对人类动作的绝对成功率。&lt;/p&gt;
&lt;p&gt;| Robot       | IK Rate | Pos. Error | Ori. Error | Joint-Limit Margin | Manipulability | Smoothness |
| ----------- | ------: | ---------: | ---------: | -----------------: | -------------: | ---------: |
| Unitree G1  |   0.821 |    2.86 cm |      6.73° |          0.619 rad |          0.012 |    0.00693 |
| Robonaut2   |   0.774 |    6.67 cm |      8.25° |          0.134 rad |          0.058 |    0.00343 |
| Dual-Franka |   0.706 |   10.27 cm |     12.17° |          0.572 rad |          0.080 |    0.00582 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; G1 的 tracking error 和 IK rate 最好，不能简单推出它“更适合所有任务”：指标还取决于 root-frame 模型、工作区与人手轨迹的重合程度。Dual-Franka 的较低 IK rate 与较大误差更像是在量化 embodiment mismatch，也说明编译到不同机器人不会是零损失操作。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-egoinfinity/egoinfinity-stats.6m4n1e7j0h.webp&quot; alt=&quot;106 段 curated Action100M 子集的时长、物体、动词与交互状态分布（论文 Figure：Dataset statistics）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 数据统计图显示：88% clips 中、47% objects 被实际操作；握持类型在左手、右手与双手间较均衡。该图的意义是证明 pipeline 处理的不是只含静态物体的 web 视频，不过作者未在正文给出端到端吞吐量、单位视频成本或大规模训练集上的 policy scaling curve。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 当前论文没有报告带数值的标准 ablation table，例如移除交互状态修正、改用纯视觉 object pose、移除重力或改变 root estimator 后的统一对比。论文通过其设计与定性/系统级结果论证模块必要性，但不能据此量化 Phase F、SAM-3D、Flow3r 或 flow matching 分别贡献了多少。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 最有价值的补充消融应固定同一组源视频和目标机器人，依次移除 static lock、grasp binding、metric calibration、重力、flow multi-hypothesis，再同时报告接触滑移/漂移、IK feasible rate 和真实任务成功率。只有把视觉几何指标连到执行结果，才能检验“物理 grounding”是否真的发生。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文的主要泛化维度是任何视角与 cross-embodiment：画面可以只出现局部人体，系统仍用手轨迹推断 root frame；同一 HOI 能送入 G1、Robonaut2 或双 Franka。真实结果进一步包含抓取、切割、倒液与擦拭这类不同 interaction pattern。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这不是严格的 open-world performance guarantee。论文的视觉范围仍偏向近似静态机位的教学/操作视频，且模型选择、对象可见性和接触复杂度都会影响能否形成可靠的 metric HOI。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; EgoInfinity 把原本相互抵消的误差变成可约束的量：depth 给尺度，gravity 给方向，手和物体都落入同一 frame；随后状态机提供时序先验。面对遮挡，视觉证据变弱但“手正在握持”的语义仍强，因此将物体绑定到手比继续逐帧追踪更稳定。retarget 部分再以 IK 作为最终可执行性筛选器，使产生的 root hypothesis 必须经机器人运动学检验。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 三项相互关联的创新是：跨模块 metric calibration、interaction-aware object refinement，以及对任意视角/部分人体观测进行多模态根坐标推断的 $SE(3)$-equivariant flow retargeter。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; “引擎”思路本身也很重要：它不押注一个永久最强的单一视觉 backbone，而是规定模块之间必须传递什么中间语义与坐标关系。相比把所有错误压进一个 black-box VLA，这更容易替换感知器或定位失败环节。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;| 路线                     | 中间表示                           | 主要短板                        | EgoInfinity 的取舍                              |
| ------------------------ | ---------------------------------- | ------------------------------- | ----------------------------------------------- |
| 实验室/穿戴式示教        | 已对齐的第一视角与动作             | 成本高、场景多样性有限          | 接受较噪的网络 RGB，以重建与修正换取规模/多样性 |
| 2D human-video imitation | 图像、2D keypoint 或 pseudo-action | 深度、尺度、接触和 6-DoF 不充分 | 显式恢复 metric hand-object state               |
| 传统 retargeting         | 全身 mocap 或已知人体根坐标        | 任意网络视角下身体常不可见      | 直接从手轨迹分布预测 robot root hypothesis      |&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 系统假设视频近似 static camera；需要语义描述足以产生目标物体 prompt；假设单目 metric depth、手重建与 object segmentation 能在共享坐标中达到可用精度；同时，根坐标网络必须对每个目标机器人在仿真中单独训练。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这些假设决定数据引擎更接近“自动化筛选 + 编译器”而非对所有网络视频零配置运行的通用解码器。它可以丢弃低质量视频，但若筛选偏好稳定教学镜头，最终数据分布仍会有选择偏差。&lt;/p&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 作者明确限定在 approximately static-camera 视频，因而排除 body-mounted 与 handheld footage；系统不保证精确手物接触对齐、指尖落点、力一致性或 no-slip；没有 tactile observation；retargeter 是机器人专属的，面对新形态需要 retrain/calibration，且适合 functional transfer 而非精确人体运动模仿。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 首先，当前实验量证明了“可 retarget”与若干真实技能示例，却不足以分离视频质量、重建质量、root 推断和控制器对失败的贡献。其次，SAM-3 的文本 prompt 能否找对对象强依赖原始描述，包含多个可交互对象或含糊动词时可能出现语义错配。最后，preview dataset 的 104/106 数量差异和源码未公开，限制了对性能、筛选规则与修正细节的独立复现。&lt;/p&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 可以把 EgoInfinity 视作 VLA 训练之前的 data compiler：先把大量非结构化行为视频转成带几何、接触和动作可行性证据的数据，再让 policy 学习。后续很自然的方向包括：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;用 SLAM-aware geometry 放宽静态机位假设，并显式估计相机/人体运动的不确定性。&lt;/li&gt;
&lt;li&gt;将接触从粗粒度状态提升为接触点、摩擦和力的概率分布，再以触觉或仿真约束校准。&lt;/li&gt;
&lt;li&gt;将 IK score 反向用于数据质量过滤或 retargeter 训练，形成“视频—几何—可执行性”的闭环筛选。&lt;/li&gt;
&lt;li&gt;在公开、版本化的数据与源码基础上，比较不同 4D 中间表示对 policy pretraining、world model 和真实泛化的边际收益。&lt;/li&gt;
&lt;/ol&gt;</content:encoded><h:img src="https://pic.hana0721.top/101003773_p0_master1200.3uvfruqg2c.webp"/><enclosure url="https://pic.hana0721.top/101003773_p0_master1200.3uvfruqg2c.webp"/></item><item><title>EBench 论文精读：通用移动操作能力诊断</title><link>https://agusexp25.top/blog/paper-deep-dive-ebench</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-ebench</guid><description>精读 EBench：用 26 个跨移动、长时程与灵巧精密操作的任务，把通用操作策略的单一成功率拆成五维能力画像和四类泛化诊断。</description><pubDate>Thu, 27 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-ebench/teaser-1.icuyxspc6.webp&quot; alt=&quot;EBench benchmark teaser from paper Figure 1&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; EBench 是一个基于 NVIDIA Isaac Sim 的通用移动操作 benchmark：26 个任务同时覆盖 mobile pick-and-place、long-horizon multi-stage 与 tabletop dexterous-and-precise，并把每个任务标注为五个能力轴，再通过 Background、Object、Instruction、Mix 四种 OOD 条件测量泛化。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;提供数据合成、评分库和分布式评测 runner 的开源代码；完整 validation split 在 8 张消费级 GPU 上约 30 分钟完成。&lt;/li&gt;
&lt;li&gt;设计 26 个任务、9 类室内场景和 11 类 atomic skill，避免只用一个 leaderboard scalar 掩盖能力短板。&lt;/li&gt;
&lt;li&gt;通过资产级 train/test 隔离和四种受控扰动，测量视觉、语言、物理与组合分布偏移。&lt;/li&gt;
&lt;li&gt;在 $pi_0$、$pi_{0.5}$、XVLA、InternVLA-A1 上展示：总体 Test SR 仅相差 5.1 个百分点，但能力剖面可相差数十个百分点。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; RLBench、CALVIN、LIBERO 等固定底座桌面套件对短时程抓取很成熟，却很少覆盖移动底盘、长时程规划和亚厘米级接触操作。RoboCasa、RoboTwin、GenManip 扩大了场景或任务数量，但通常仍按单一 regime 汇报成功率；RMBench 则只针对记忆能力。EBench 的切入点是把三种操作 regime 放进同一动作协议，并为每项结果保留可解释坐标。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这使 benchmark 从“谁的分数最高”变成“模型能力向量如何与任务需求匹配”。对于模型迭代，后者更接近可执行的诊断信号。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 每个 episode 接受三路 $224\times224$ RGB 视角（left、right、topdown）、proprioceptive state 和自然语言指令；双臂各输出 6-DoF joint position 或 end-effector pose 加 gripper width，移动底盘输出 $(v_x,v_y,\omega)$。物理仿真为 60 Hz，最长 episode 为 5,000 steps（约 83 秒）。&lt;/p&gt;
&lt;p&gt;任务标签由五个轴组成：Scene（9 类）、Atomic Skill（11 类）、Range（短 / 长时程）、Precision（低 / 中 / 高，high 为小于 1 cm）和 Operating Mode（mobile / fixed-base dexterous）。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-ebench/method-1.83as34zidb.webp&quot; alt=&quot;EBench end-to-end data synthesis and client-server architecture from paper Figure 2&quot;&gt;&lt;/p&gt;
&lt;p&gt;数据流是“任务与资产 → 两路 demonstration synthesis → IsaacSim server → VLA/WAM client → 共享评分库”：灵巧任务由遥操作采集，移动与长时程任务由关键帧位姿和 cuRobo 生成，再经 client-server 协议执行。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;两路数据合成&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Teleoperation（7 个 dexterous-and-precise 任务）&lt;/strong&gt;：actor-follower 机构保留接触反馈，适合 peg-in-hole、nut tightening 等微调动作。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Key-frame + cuRobo（10 mobile + 9 long-horizon）&lt;/strong&gt;：标注者给出稀疏末端位姿和移动底盘 waypoint，cuRobo 求解无碰撞、minimum-jerk 轨迹，适合难以稳定遥操作的长序列。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 最终 post-training 数据为 6,600 episodes、91.4 小时，存储为 LeRobot 格式。&lt;strong&gt;【Analysis】&lt;/strong&gt; 两路采集把“动作精度”和“长序列成功率”解耦，代价是 motion-planned 数据可能比真实人类示教更规则。&lt;/p&gt;
&lt;h4&gt;Scoring library&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 评分由可组合 primitive 构成，包括 scene-graph object relation、关节角、物体倾角 / 朝向和子目标 temporal ordering，并同时返回 binary Success Rate 与连续 progress Score。&lt;/p&gt;
&lt;h4&gt;Evaluation runner&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 仓库把 Isaac Sim server、&lt;code&gt;genmanip-client&lt;/code&gt; 和各模型 baseline 分开；模型通过 &lt;code&gt;EvalClient.reset/step&lt;/code&gt; 获取 observation 并提交 action。&lt;code&gt;gmp submit/eval/status&lt;/code&gt; 负责提交、监控和结果分析，在线平台还能自动生成五轴能力图和泛化报告。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 对模型 $m$ 和任务子集 $S$，成功率可写为：&lt;/p&gt;
&lt;p&gt;$$\mathrm{SR}(m,S)=\frac{1}{|S|}\sum_{i\in S}\mathbf{1}[\mathrm{success}_i(m)]$$&lt;/p&gt;
&lt;p&gt;其中 $S$ 可以是某个 capability 轴的切片，而不是整个测试集。Test-to-Validation retention 定义为：&lt;/p&gt;
&lt;p&gt;$$R_{\mathrm{SR}}=\frac{\mathrm{SR}&lt;em&gt;{test}}{\mathrm{SR}&lt;/em&gt;{val\text{-}train}},\qquad R_{score}=\frac{Score_{test}}{Score_{val\text{-}train}}$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; $R$ 把“绝对能力”和“分布迁移损失”分开：高 SR 但低 $R$ 的策略并不一定适合部署。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 四个 baseline 都从 pretrained checkpoint 在同一 EBench 数据上 fine-tune 200K steps，batch size 128，AdamW，cosine scheduler + warm-up，peak learning rate $1\times10^{-5}$。每帧使用三路图像、状态和指令，策略按 60 Hz 查询。&lt;/p&gt;
&lt;p&gt;&amp;#x3C;Algorithm
number={1}
title=&apos;EBench post-training and evaluation preparation&apos;
inputLabel=&apos;输入&apos;
outputLabel=&apos;输出&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;baselines/X-VLA/run.py&lt;/code&gt; 用 &lt;code&gt;AutoModel.from_pretrained(..., trust_remote_code=True)&lt;/code&gt; 加载模型，拼接 joints、缩放后的 base 和 gripper 为 proprio，调用 &lt;code&gt;model.inference_api(..., steps=10)&lt;/code&gt; 产生 chunk，再反缩放并逐步发送。&lt;code&gt;baselines/InternVLA-A1/inference.py&lt;/code&gt; 维护 30 步 action queue 与图像历史，使用 &lt;code&gt;EvalClient&lt;/code&gt; 执行 chunk；若通信失败，两者都会重建 client 并 reset。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 代码的核心不是重写 simulator，而是把不同策略的输入输出适配到同一个 client contract，这正是跨架构比较可复现的关键。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-ebench/capability_profiling-1.3gp52g0yka.webp&quot; alt=&quot;EBench capability profiling setup from paper Figure 3&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 26 任务包括 10 mobile pick-and-place、9 mobile long-horizon、7 tabletop dexterous；每模型评测三次并报告均值 ± 标准差。OOD 轴分别固定改变 background、object、instruction，或同时改变三者。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;| Model        | Val-Train SR |   Test SR | SR retention |
| ------------ | -----------: | --------: | -----------: |
| $\pi_0$      |        30.5% |     24.4% |         0.80 |
| XVLA         |        28.3% |     24.7% |         0.87 |
| InternVLA-A1 |    &lt;strong&gt;33.1%&lt;/strong&gt; |     27.6% |         0.83 |
| $\pi_{0.5}$  |        32.1% | &lt;strong&gt;29.5%&lt;/strong&gt; |     &lt;strong&gt;0.92&lt;/strong&gt; |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; $\pi_{0.5}$ 同时取得最高 Test SR、Score（45.6%）和 retention；InternVLA-A1 的 Val-Train SR 最高，却在 Val-Unseen 降到 20.8%。因此总分相近并不表示行为相近。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-ebench/generalize-sr-1.4g58fm3pta.webp&quot; alt=&quot;EBench generalization results from paper Figure 4&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 预训练敏感性实验显示，EBench 是三套 benchmark 中最能拉开 pretrained / from-scratch 差距的一套：$\pi_{0.5}$ 从零训练到预训练提升 8.5%→29.5% SR（+21.0），$\pi_0$ 提升 +13.2，XVLA 提升 +9.0；LIBERO 已接近饱和，RoboTwin 2.0 Hard 的 from-scratch 结果甚至可超过预训练 baseline。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-ebench/sr-vs-steps-1.9ddp9ghhqn.webp&quot; alt=&quot;Fit-generalization curves across training steps from paper Figure 5&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Background / Instruction 的 Test SR 约为 27–35%，Object swap 降至 21–29%，三者混合的 Mix 最难（18–23%）。训练动态上，$\pi_{0.5}$ 的 Val-Train 与 Test 曲线最同步；XVLA 在中间 checkpoint 非单调；InternVLA-A1 到 200K 时拟合最强但保留率仍只有 0.83。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; EBench 有效的原因不是任务数量本身，而是把“能力标签”和“受控扰动”绑定到同一资产协议：模型失败后，可以区分是高精度控制、长时程信用分配、物体物理变化还是语言改写导致的。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 三种操作 regime 的统一动作空间。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 五轴 capability taxonomy 与连续 progress metric。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 资产级隔离和四轴 OOD 诊断。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 开源 server/client/analysis 工具把 benchmark 变成可重复运行的评测基础设施。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 传统 suite 优化“一个平均分”，EBench 优化“可解释的误差分解”。它不是提出新的 Policy，而是改变 policy 比较和迭代的观测量。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 任务标签能代表关键能力，且模拟中的受控资产变化可近似部署中的分布偏移。&lt;strong&gt;【Analysis】&lt;/strong&gt; 这两个假设若不成立，五轴分数可能只是 benchmark-specific correlation，而非真实机器人能力。&lt;/p&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; EBench 完全在仿真中运行，作者不声称分数可直接预测真实机器人表现；26 个任务对 9 类场景仍较稀疏，场景级排名应谨慎解读，未来计划扩展到 50 个以上任务。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 运动规划生成的 19 类轨迹与遥操作的 7 类轨迹在动作分布上并不对称；三路固定视角也未覆盖遮挡、光照和传感器失效。另一个风险是把多个 atomic skill 叠加成 long-horizon 后，失败归因仍可能混合，最好配合逐子目标日志。&lt;/p&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; EBench 给 VLA 训练带来三个直接方向：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;用 capability profile 做 targeted data collection，而不是平均增加所有任务数据。&lt;/li&gt;
&lt;li&gt;对 Object / Mix 轴做显式物理增强，避免只提升背景和语言鲁棒性。&lt;/li&gt;
&lt;li&gt;根据 profile 做 mixture-of-experts 或 capability-aware routing，让移动规划与灵巧接触控制共享视觉语言骨干、使用专门 action head。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;更重要的是，未来报告模型时应同时给出“绝对成功率 + 分布迁移保留率 + 能力向量”。只有这样，benchmark 才能回答部署前真正关心的问题：模型到底会什么，以及换一个场景后还会不会。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/103975128_p0_master1200.8vniavqp93.webp"/><enclosure url="https://pic.hana0721.top/103975128_p0_master1200.8vniavqp93.webp"/></item><item><title>DreamControl-v2 论文精读：让人形机器人在自身空间里“做梦”</title><link>https://agusexp25.top/blog/paper-deep-dive-dreamcontrol-v2</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-dreamcontrol-v2</guid><description>精读 DreamControl-v2：把异构人体动作预先重定向到 Unitree-G1 空间，用可控扩散先生成参考轨迹，再以物理 RL 学习可自主执行的全身技能。</description><pubDate>Thu, 27 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; DreamControl-v2 研究的是一个很具体却很棘手的问题：如何让人形机器人自主完成“下蹲捡取、打开抽屉、倒水、擦拭、出拳”等需要全身协调和环境接触的长时任务。作者延续 DreamControl 的两阶段思想：先用生成模型“梦”出参考动作，再让物理仿真中的 RL 策略学会跟踪这些动作，同时完成任务目标。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-dreamcontrol-v2/method.dreamcontrolv2.webp&quot; alt=&quot;DreamControl-v2 四阶段系统总览（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这篇论文最重要的设计转移是：不再生成“人的动作再适配机器人”，而是先把人体动作离线重定向到目标机器人，再在机器人自己的运动空间训练可控扩散模型。这样，空间约束、数据分布和后续 RL 使用的轨迹处在同一个坐标系里。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;汇集 AMASS/HumanML3D、GRAB、Nymeria，以及经过物理优化的 OmniRetarget 轨迹，构建统一的 G1 robot-space 数据集。&lt;/li&gt;
&lt;li&gt;在 G1 轨迹上训练带 text 与 spatio-temporal control 的 OmniControl 风格 guided diffusion prior。&lt;/li&gt;
&lt;li&gt;将自动可行性过滤放入参考轨迹生成流程，减少原 DreamControl 中的任务专用 IK、人工筛选和试错式 prompt calibration。&lt;/li&gt;
&lt;li&gt;通过扩散轨迹数量、数据混合和 MDM 初始化的消融，展示先验规模对下游 RL 的影响，并在仿真及真实 Unitree-G1 上验证 8 项技能。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 直接在 RL 中学习复杂人形操作会遇到长时域探索、接触动力学和稀疏任务奖励。DreamControl 的做法是使用 OmniControl 这类人体动作扩散模型生成“像人一样”的轨迹，再把轨迹误差写入 RL 奖励，因此推理时策略不需要看到参考轨迹，仍可自主适应环境。&lt;/p&gt;
&lt;p&gt;原流程的瓶颈在于 &lt;strong&gt;generate-then-retarget&lt;/strong&gt;：先在人体空间满足手部约束，重定向到 G1 后末端位置可能偏离目标；工程上只能不断调整人体空间的 prompt，并人工删除失衡、脚滑或无法执行的样本。论文的核心假设是，若训练数据一开始就在 G1 空间，扩散模型便能直接回答“G1 的右腕在第 40 帧到达这个位置”。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 给定文字指令 $p$、长度为 $N$ 的时空控制信号 $c\in\mathbb{R}^{N\times J\times3}$，模型生成 G1 轨迹 $T\in\mathbb{R}^{N\times D}$：&lt;/p&gt;
&lt;p&gt;$$
T \sim P_\theta(T\mid p,c).
$$&lt;/p&gt;
&lt;p&gt;控制信号可以只约束一个关节的一两个关键帧，也可以同时约束双手和膝盖。轨迹随后经后处理变成 G1 的关节角 $q_t\in\mathbb{R}^{27}$、全局位姿 $T_t\in SE(3)$ 以及双手的开合命令。RL policy 的观测包含真实机器人本体感知和机器人根坐标系下的物体位姿；参考轨迹只出现在训练奖励中，部署时不作为观测输入。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;四个阶段分别是：人体/机器人数据重定向到 G1、训练可控扩散先验、采样并过滤多条参考轨迹、在 IsaacLab 中用 PPO 训练全身控制策略。数据流是“文字 + G1 空间时空约束 → 扩散轨迹 → 可执行轨迹集合 → 物理 RL policy”。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;Robot-space 数据构建&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 对人体数据选择髋、膝、踝、肩、肘、腕等 12 个对应关键点，求解：&lt;/p&gt;
&lt;p&gt;$$
(q_{robot},T_{robot})=\mathcal{F}&lt;em&gt;{retarget}(\mathcal{P}&lt;/em&gt;{human}).
$$&lt;/p&gt;
&lt;p&gt;Pyroki/JAX 求解器最小化相对关节角、相对关键点、脚滑和尺度差异。Xsens 格式的 Nymeria 先通过带置信度权重的 SMPL 拟合转换；随后所有轨迹重采样到 20 FPS、裁剪/补齐到 10 秒，并把根朝向 canonicalize 到 Z+。PHC 风格过滤会去掉跑步机跑步等缺少环境语境的动作；Nymeria 还用关键词和时间戳截取 drawer、cabinet 等交互片段。&lt;/p&gt;
&lt;h4&gt;G1 轨迹表示与扩散模型&lt;/h4&gt;
&lt;p&gt;每帧使用 263 维表示：根角速度 1 维、平面速度 2 维、根高度 1 维、22 个关节的位置/速度/6D 旋转，以及 4 维足部接触特征。该表示沿用 HumanML3D/MDM 的 canonicalized SMPL 结构，因此可以从 MDM 权重初始化 OmniControl 风格 Transformer。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-dreamcontrol-v2/diffusion-qualitative.dreamcontrolv2.webp&quot; alt=&quot;扩散模型在多种时空约束下生成的 G1 轨迹（论文附录 Figure 4）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; realism-guidance block 是一个零初始化的 Transformer 副本，输入文字与约束并调制主干特征；采样时再结合 classifier-free guidance 和关键点空间梯度，把轨迹推向指定位置。与 ControlNet 的直觉相同，零初始化使训练初期不会破坏原有运动先验。&lt;/p&gt;
&lt;h4&gt;后处理、过滤与 RL&lt;/h4&gt;
&lt;p&gt;采样的 263 维轨迹经 $\mathcal{F}&lt;em&gt;{post}$ 恢复到 27 个 G1 关节角和全局位姿。自动过滤检查手-物体距离、根高度、脚部稳定性、障碍物碰撞和抓取时腕部朝向。保留下来的多条轨迹组成 ${\hat\tau_i}&lt;/em&gt;{i=1}^\kappa$，RL 以轨迹跟踪奖励与任务完成奖励联合训练。动作空间是 27 个目标关节角加左右 Inspire 手的二值开合命令；腰部 roll/pitch 锁定，仅允许 yaw。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;Retargeting&lt;/h4&gt;
&lt;p&gt;$$
q_{robot},T_{robot}=\mathcal{F}&lt;em&gt;{retarget}(\mathcal{P}&lt;/em&gt;{human})
$$&lt;/p&gt;
&lt;p&gt;$\mathcal{P}_{human}$ 是人体关键点序列，输出是 G1 关节角与根部 SE(3) 位姿。&lt;strong&gt;【Analysis】&lt;/strong&gt; 这一步把“人体数据很丰富”和“控制器只认 G1”之间的接口固定下来。&lt;/p&gt;
&lt;h4&gt;Xsens 到 SMPL&lt;/h4&gt;
&lt;p&gt;$$
\mathcal{P}&lt;em&gt;{human}=\arg\min&lt;/em&gt;{\theta,T_{pose}}\left|\mathbf{w}\odot\big(\mathbf{x}&lt;em&gt;{xsens}-\mathcal{F}&lt;/em&gt;{smpl}(\theta,T_{pose})\big)\right|_2^2.
$$&lt;/p&gt;
&lt;p&gt;其中 $\mathbf{w}$ 提高腕、膝、踝等可靠关节的权重，$\mathcal{F}_{smpl}$ 是可微前向运动学。&lt;/p&gt;
&lt;h4&gt;空间引导&lt;/h4&gt;
&lt;p&gt;$$
\mu_t\leftarrow\mu_t-\tau\nabla_{\mu}\mathcal{G}(\mu_t,\mathbf{c}),
$$&lt;/p&gt;
&lt;p&gt;$\mu_t$ 是当前去噪轨迹，$\mathcal{G}$ 是前向运动学得到的关键点与控制信号之间的 MSE，$\tau$ 控制引导步长。它使“右腕在第 $t_g$ 帧到达把手”成为采样过程中的可微约束。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 扩散模型使用 AdamW，学习率 $1\times10^{-5}$，从 MDM 预训练权重初始化；RL 在 IsaacLab/IsaacSim 中使用 PPO，约 8,912 个并行环境、2,000–5,000 次迭代。每个任务采样约 500 条参考轨迹，训练 8 个技能库策略。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 推理时输入开放词汇文字和 G1 空间中的控制点，扩散模型直接生成候选轨迹；过滤器选出可行样本后，训练好的 policy 根据本体感知与物体相对位姿闭环输出动作。由于参考轨迹已经被蒸馏进奖励训练，部署阶段不必再运行扩散模型或调 prompt。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 截至论文与项目主页公开信息，作者没有提供可访问的官方 GitHub 代码仓库或训练配置；项目页仅提供论文、视频和演示。因此本文不对具体 Python 文件、DataLoader 或 checkpoint 做代码级断言。可以复现的实现线索来自论文：Pyroki/JAX 负责重定向，OmniControl/MDM 负责扩散先验，IsaacLab + PPO 负责 RL。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;三种扩散训练数据配置为 AMASS（21.8K）、AMASS + Nymeria（26.4K）和 Full-Mix（29.6K）；后者再加入 GRAB 与 OmniRetarget。扩散模型指标包括 FID、R-Precision、Diversity、Control L2 与 Skating Ratio；RL 指标为 100 个随机仿真环境上的 Success Ratio 和 Control Error。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Full-Mix 的 FID 为 0.265、Control L2 为 0.066、Skating Ratio 为 0.096；在 8 个技能上，Success Ratio 分别为 Pick 0.99、Punch 0.99、Deep Squat &amp;#x26; Pick 0.94、Drawer Open 0.96、Pour 0.92、Vertical Wipe 1.00、Deep Squat 0.99、Step &amp;#x26; Punch 0.91。真实实验在 Unitree-G1 上展示了 Drawer Open、Deep Squat &amp;#x26; Pick 和 Punch 等技能。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-dreamcontrol-v2/traj-scale.dreamcontrolv2.webp&quot; alt=&quot;扩散轨迹数量对下游 RL 成功率的影响（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 数据规模扩大带来稳定收益：Full-Mix 在 Non-AMASS 测试集上的 FID 从 AMASS-only 的 2.720 降至 0.316，R-Precision Top-3 从 0.117 升至 0.264。增加采样轨迹数量时，3 个任务的 RL 成功率持续上升并趋于饱和，说明参考轨迹覆盖度直接影响策略对物体位置变化的泛化。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;在 AMASS 测试集上，Full-Mix 与 AMASS-only 表现接近（FID 0.320 vs. 0.328），没有明显损害旧域能力；在 Non-AMASS 测试集上则显著更好。&lt;strong&gt;【Analysis】&lt;/strong&gt; 这支持“统一归一化 + 异构数据混合”可以扩展技能覆盖，而不是简单地用新数据覆盖旧分布。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-dreamcontrol-v2/spatial-prompt.dreamcontrolv2.webp&quot; alt=&quot;直接在机器人空间 prompt 与人体空间试错校准的对比（论文 Figure 4）&quot;&gt;&lt;/p&gt;
&lt;p&gt;Prompt calibration 的 FID/Control L2/有效轨迹率为 AMASS 2.010/0.180/8.0%、Full-Mix 3.260/0.260/4.0%；预重定向为 0.265/0.066/68.0%。从 MDM 初始化也优于随机初始化：FID 0.265 对 0.741，R@3 0.388 对 0.254。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 预重定向同时解决了两个错位：几何错位（人体手到达的位置不等于 G1 手的位置）和分布错位（AMASS 动作不覆盖抽屉、倒水等机器人交互）。扩散先验负责提供多样、语义一致的候选，RL 则把这些候选转化为能处理动力学和扰动的闭环控制器。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;真正的创新不是重新发明 diffusion 或 PPO，而是把“数据统一、空间约束、自动过滤、RL 蒸馏”串成可扩展接口：任何新的人体/机器人数据先进入 G1 空间，任何任务通过文字和少量关键点约束取样，再由同一 RL 配方学习。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;DreamControl 需要先在人类空间生成，再 retarget，并通过试错调整 prompt；DreamControl-v2 在机器人空间训练和采样，约束在变换前后保持一致。与只做轨迹跟踪或 teleoperation 的方法相比，RL policy 在部署时不依赖外部参考轨迹。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;人体与 G1 存在足够稳定的 22 关节语义对应关系。&lt;/li&gt;
&lt;li&gt;统一的 263 维表示能容纳 locomotion、抓取和接触动作。&lt;/li&gt;
&lt;li&gt;任务特定的过滤器可以用几何阈值近似安全性与可行性。&lt;/li&gt;
&lt;li&gt;扩散轨迹覆盖度足够高时，PPO 能从 tracking reward 中学到自主闭环行为。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文主要强调原 DreamControl 的可扩展性瓶颈，并未给出系统性的失败案例或安全性证明；真实部署展示在 Unitree-G1 和固定腰部自由度配置上，技能库规模为 8 项。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 预重定向把复杂度从推理期移到了数据工程期：Pyroki 求解、Xsens/SMPL 对齐、任务关键词切片和每任务过滤器仍需维护。263 维动作表示还依赖精确的 G1 标定，换机器人可能需要重新训练或至少重新适配。最后，成功率是在随机仿真环境中统计的，不能直接等价为开放世界中的安全可靠性。&lt;/p&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这项工作给通用 humanoid policy 一个很实用的模块化方向：把“生成先验”当作数据引擎，而不是部署时必须运行的策略。后续值得追问三件事：第一，能否让过滤器由可学习的世界模型替代，减少手写 task heuristic；第二，能否在统一 robot-space 中加入视觉观测，让空间 prompt 从人工关键点走向场景理解；第三，轨迹数量的收益何时饱和，是否可以用主动采样把预算集中到高不确定性物体位姿。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/75863098_p0_master1200.8aduokw8y2.webp"/><enclosure url="https://pic.hana0721.top/75863098_p0_master1200.8aduokw8y2.webp"/></item><item><title>DexUMI 论文精读：用人手作为通用灵巧操作接口</title><link>https://agusexp25.top/blog/paper-deep-dive-dexumi</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-dexumi</guid><description>精读 DexUMI：通过可穿戴外骨骼与视觉适配，把人类灵巧手示教迁移到 Inspire Hand 和 XHand。</description><pubDate>Thu, 27 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;《DexUMI: Using Human Hand as the Universal Manipulation Interface for Dexterous Manipulation》把 embodiment gap 拆成 action/kinematic gap 与 visual gap，分别用硬件和软件适配处理：外骨骼约束人手运动并记录编码器、腕姿态、视觉和触觉；离线流水线再把人手区域替换成目标机器人手。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-dexumi/teaser.webp&quot; alt=&quot;DexUMI 从人类示教到不同机器人手执行的总览（论文 Teaser）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; DexUMI 的关键不是训练更大的策略，而是让示教数据在采集时就“长得像”目标机器人：外骨骼提供可迁移动作，同位相机和同型触觉保持观测一致，最后再做机器人手视觉合成。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;为目标机器人手优化可穿戴外骨骼，使指尖 workspace 匹配且保持可穿戴性。&lt;/li&gt;
&lt;li&gt;集成关节编码器、iPhone ARKit、腕下 OAK-1 相机和触觉传感器，直接记录动作与观测。&lt;/li&gt;
&lt;li&gt;用 SAM2、ProPainter 和动作回放构造机器人视角示教视频，并处理遮挡。&lt;/li&gt;
&lt;li&gt;在欠驱动 Inspire Hand 和全驱动 XHand 的四类任务上达到约 86% 平均阶段成功率，采集吞吐量是传统 teleoperation 的 3.2 倍。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 灵巧手在自由度、连杆、驱动方式、接触面和传感器上差异很大。teleoperation 有空间视角错位且缺少直接触觉；视觉 hand retargeting 又受遮挡和指尖定位误差影响。DexUMI 反过来让人直接与物体交互，再把动作和图像转换到机器人域。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 给定目标机器人手的运动学与传感器配置，构造外骨骼和数据处理函数，使示教分布与机器人执行分布接近。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：RGB 观测 (o_t)、腕部 6-DoF 位姿、外骨骼关节角和触觉 (f_t)。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：长度 (L=16) 的 UR5 相对末端动作与手部动作；Inspire 为 6-DoF，XHand 为 12-DoF。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;执行&lt;/strong&gt;：策略 10 Hz 预测，只执行前 8 步；UR5/Inspire/XHand 分别以 125/10/60 Hz 执行并线性插值。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;机器人&lt;/strong&gt;：12-DoF（6 主动 DoF）Inspire Hand 与 12-DoF 全驱动 XHand。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-dexumi/hardware-method.webp&quot; alt=&quot;DexUMI 的硬件适配架构（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 数据流为“外骨骼示教 → 时间对齐与动作映射 → 机器人手回放 → 人手分割/背景修复/机器人手合成 → DINO-V2 + tactile 的 Diffusion Policy”。部署时只保留机器人侧传感器。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;外骨骼机制与 workspace 优化&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 外骨骼参数 (mathbf p) 包括关节位置和连杆长度。目标是匹配指尖在 (SE(3)) 中的运动映射，并以参数边界保证佩戴性和拇指避碰。XHand 可从 URDF 初始化；Inspire 的闭环连杆先用动捕指尖轨迹，再用等 DoF 四连杆拟合。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-dexumi/hardware-method.webp&quot; alt=&quot;外骨骼与传感器设计（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;h4&gt;传感器与动作映射&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Alps 电阻式编码器测量主动关节，逐关节回归映射为机器人电机值；iPhone ARKit 追踪腕姿；OAK-1 150° DFoV 相机固定在手腕下方；XHand 使用磁式触觉阵列，Inspire 使用 FSR。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 标定脚本为 &lt;code&gt;real_script/teleoperation/calibrate_inspire_mapping.py&lt;/code&gt; 和 &lt;code&gt;calibrate_xhand_mapping.py&lt;/code&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;软件适配&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-dexumi/software-method.webp&quot; alt=&quot;视觉适配流水线：分割、背景修复与机器人手合成（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; (1) SAM2 分割人手/外骨骼；(2) ProPainter 修复被删背景；(3) 回放同一组动作录制机器人手视频并再次分割；(4) 用两种 mask 的交集进行遮挡感知合成。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 对应 &lt;code&gt;0_interpolation.py&lt;/code&gt;、&lt;code&gt;1_replay_hand.py&lt;/code&gt;、&lt;code&gt;3_segment.py&lt;/code&gt;、&lt;code&gt;4_inpaint_exo.py&lt;/code&gt;、&lt;code&gt;5_compose_video.py&lt;/code&gt; 和 &lt;code&gt;6_generate_dataset.py&lt;/code&gt;，最终写出 Zarr 中的图像、pose、hand_action、proprioception 与 FSR。&lt;/p&gt;
&lt;h4&gt;Diffusion Policy&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 视觉经增强后的 DINO-V2，取 CLS token 与触觉、本体状态拼接，策略预测 16 步 action chunk。手动作可选 absolute 或 relative，腕部始终 relative。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;p&gt;外骨骼优化目标为：&lt;/p&gt;
&lt;p&gt;$$
\max_{\mathbf p};\mathcal S(\mathcal W_{\mathrm{exo}}^{\mathrm{tip}}(\mathbf p),\mathcal W_{\mathrm{robot}}^{\mathrm{tip}})
$$&lt;/p&gt;
&lt;p&gt;其中指尖 workspace 是所有指尖位姿的集合，外骨骼参数包含关节位置和连杆长度。实现时两侧 workspace 采样并计算最近邻距离；一项鼓励覆盖机器人空间，另一项抑制不可达姿态。&lt;strong&gt;【Analysis】&lt;/strong&gt; 这可看作带边界约束的对称 Chamfer-like workspace 距离。&lt;/p&gt;
&lt;p&gt;扩散训练脚本对动作 (a) 加噪并预测噪声：&lt;/p&gt;
&lt;p&gt;$$
\mathcal L=\mathbb E_{s,\epsilon}[\lVert\epsilon-\epsilon_\theta(a_s,s,o_t,f_t)\rVert_2^2]
$$&lt;/p&gt;
&lt;p&gt;其中 noisy action 是第 (s) 步的加噪动作，视觉与本体输入在 (o_t)，触觉输入为 (f_t)。&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;train_diffusion_policy.py&lt;/code&gt; 明确生成 &lt;code&gt;timesteps&lt;/code&gt;、&lt;code&gt;noisy_actions&lt;/code&gt; 并调用模型计算 loss。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 每任务训练 400 epochs；轨迹数为 Cube 310、Egg Carton 175、Tea 400、Kitchen 370 加 100 条 knob-only。Inspire/XHand 分别以 45/30 FPS 记录，按传感器延迟对齐、插值并下采样 3 倍。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 训练入口使用 Hydra、Accelerate 和可选 EMA；数据 batch 包含 &lt;code&gt;camera_0&lt;/code&gt;、&lt;code&gt;action&lt;/code&gt;、&lt;code&gt;proprioception&lt;/code&gt;、&lt;code&gt;fsr&lt;/code&gt;。优化器、noise scheduler 和 checkpoint 由配置实例化。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;eval_xhand.py&lt;/code&gt; 和 &lt;code&gt;eval_inspire_hand.py&lt;/code&gt; 每 100 ms 采集观测并生成 16 步 chunk，只执行前 8 步。relative 手动作加到当前电机值；XHand 维护 virtual current motor position，减小外力造成的读数漂移。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方仓库还包含 STM32 固件、FSR/编码器驱动、动作回放和完整数据生成脚本。视觉适配是离线脚本链，不是端到端生成模型；机器人手视频必须真实回放采集，这是复现时的硬件前置条件。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-dexumi/experiment.webp&quot; alt=&quot;Cube、Egg Carton、Tea 与 Kitchen 四类任务（论文 Figure 4）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 每任务评估 20 个 episode，并复用各方法的初始物体配置。Cube 测试精确抓取；Egg Carton 测试多指协同；Tea 要求用镊子夹茶叶；Kitchen 包含关火旋钮、搬锅、抓盐和撒盐。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-dexumi/comparison.webp&quot; alt=&quot;相对/绝对手动作与触觉对比（论文 Figure 5）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 完整系统在 Inspire 的 Cube/Carton/Tea(tool、leaf) 上为 1.00/0.85/1.00/0.85；XHand Tea 为 1.00/0.85，Kitchen 的 knob/pan/salt 为 0.95/0.95/0.75。摘要报告平均成功率约 86%。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 去掉软件适配后，Raw/Mask 在 Inspire 上明显下降：Cube 从 1.00 变为 0.20/0.60，Carton 从 0.85 变为 0.05/0.10。absolute 手动作也更脆弱；Inspire Tea leaf 在带触觉时为 0.00，而 relative 为 0.85。触觉收益取决于任务，XHand 抓盐有明显帮助，但镊子任务受噪声和弱力信号影响。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-dexumi/efficiency.webp&quot; alt=&quot;DexUMI 的数据采集效率对比（论文 Figure 6）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 15 分钟采集实验显示，DexUMI 虽比裸手慢，但 collection throughput 是 teleoperation 的 3.2 倍；两种手型都能完成精细、接触丰富和长时序任务。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 外骨骼把人类动作投影到机器人可达域；同位相机/同型触觉使输入语义一致；relative action 允许策略持续修正接触误差；视觉合成则消除训练时的人手外观。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 真正的创新是 interface co-design：机制、传感器、数据生成和 action space 一起设计。单独 retargeting 或 inpainting 都不能同时保证接触动力学和遮挡一致。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; teleoperation 传递远程控制，DexUMI 让人直接操作物体再离线转换；视觉 retargeting 依赖指尖追踪，DexUMI 读取编码器和触觉；普通 imitation learning 不处理 embodiment gap，而 DexUMI 先在数据层处理它。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 方法假设指尖 workspace 足以代表主要接触几何、腕下相机能固定、机器人手形状可由动作回放得到。移动相机、掌面接触主导或软物体任务会削弱这些假设。&lt;/p&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 每种机器人手仍需单独优化外骨骼；当前只匹配指尖 workspace。3D 打印变形会让编码器失真，FSR 对安装敏感，XHand 触觉高压后会漂移。视觉流水线依赖真实机器人手回放，inpainting 可能模糊且要求相机刚性安装。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 86% 平均成功率来自每任务 20 次、有限初始状态，尚不足以证明跨物体、跨操作者和跨相机泛化。每条示教都要占用目标手回放，数据生成吞吐量也受硬件数量限制；SAM2 固定 prompt 在不同背景下可能失效。&lt;/p&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 对 VLA/模仿学习而言，扩大模型前应先检查训练与部署的 observation/action 是否等价。未来可把 workspace 优化扩展到接触 patch 和力闭环，用动作条件生成模型替代真实手回放，并学习对相机位姿变化不敏感的视觉表征。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/124956717_p0_master1200.83amt2xvmx.webp"/><enclosure url="https://pic.hana0721.top/124956717_p0_master1200.83amt2xvmx.webp"/></item><item><title>BeyondMimic 论文精读：从动作跟踪到可组合的人形机器人控制</title><link>https://agusexp25.top/blog/paper-deep-dive-beyondmimic</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-beyondmimic</guid><description>精读 BeyondMimic：用统一强化学习动作跟踪获得敏捷、自然的人形技能，再以状态–动作潜空间扩散和分类器引导实现零样本任务组合。</description><pubDate>Thu, 27 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;论文名称&lt;/strong&gt;：《BeyondMimic: From Motion Tracking to Versatile Humanoid Control via Guided Diffusion》&lt;br&gt;
&lt;strong&gt;作者&lt;/strong&gt;：Qiayuan Liao、Takara E. Truong、Xiaoyu Huang、Yuman Gao、Guy Tevet、Koushil Sreenath、C. Karen Liu&lt;br&gt;
&lt;strong&gt;机构&lt;/strong&gt;：UC Berkeley、Stanford University&lt;br&gt;
&lt;strong&gt;论文链接&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2508.08241&quot;&gt;arXiv&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;代码&lt;/strong&gt;：&lt;a href=&quot;https://github.com/HybridRobotics/whole_body_tracking&quot;&gt;HybridRobotics/whole_body_tracking&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;项目主页&lt;/strong&gt;：&lt;a href=&quot;https://beyondmimic.github.io/&quot;&gt;BeyondMimic&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-beyondmimic/fig1.webp&quot; alt=&quot;BeyondMimic 总体框架：动作跟踪与引导扩散（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; BeyondMimic 把“学会动作”和“完成任务”拆成互补的两阶段：第一阶段用紧凑、与动作无关的 RL 配方跟踪大量人类动作；第二阶段把这些策略滚动出的状态–动作轨迹压到 VAE 潜空间，用 guided diffusion 在部署时对未来状态施加新目标，因而无需为每个任务重新训练。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;用相同 MDP、奖励、随机化和超参数训练不同动作，约 2.5 小时人类动作在仿真中全部验证，并将 30 段（约 15 分钟）部署到真实 Unitree G1。&lt;/li&gt;
&lt;li&gt;通过相对身体位姿、低阻抗 PD setpoint、三项正则和自适应采样，兼顾敏捷性、自然性与 sim-to-real 稳定性。&lt;/li&gt;
&lt;li&gt;提出状态–动作 co-diffusion：VAE 提供平滑动作潜变量，扩散模型同时预测短时域状态和潜变量，允许在推理时加入任意可微任务代价。&lt;/li&gt;
&lt;li&gt;在未见过的速度/航点控制、关键帧 inpainting、障碍物绕行和任务切换上实现零样本组合，并在真实机器人上展示。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 传统模型式人形控制把 CoM、接触和足端规划交给低频规划器，再由高频控制器跟踪；简化动力学容易产生僵硬、屈膝和缺乏手臂协调的动作。DeepMimic 类方法能复现高动态动作，却通常“一动作一套调参”；AMP 学到的是风格先验，但策略仍然绑定具体任务。VAE 多技能策略虽然可组合，却依赖训练时显式目标，对障碍规避等隐式目标泛化较差。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; BeyondMimic 的切入点不是把所有任务标签收集齐，而是让“可行且像人的轨迹分布”成为先验，再在测试时优化任务代价。这样，规划和控制共享同一个短时域生成器，避免独立 planner 与 tracker 的分布错位。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入（跟踪策略）&lt;/strong&gt;：运动相位 $oldsymbol\psi$、anchor 位姿误差、IMU twist、相对默认姿态的关节位置、关节速度和上一动作；不使用时间堆叠。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：归一化关节位置 setpoint $mathbf a$，经 $oldsymbol\theta^{sp}=\boldsymbol\theta^0+\boldsymbol\alpha\odot\mathbf a$ 送入低层位置 PD，产生关节力矩。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;跟踪目标&lt;/strong&gt;：参考动作经前向运动学得到各目标身体的位姿与 twist；非 anchor 身体在 yaw 对齐、保持高度的 anchor-centered 坐标中比较，以容忍全局漂移。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;数据与 embodiment&lt;/strong&gt;：重定向的人类动作（LAFAN1 及补充动作集），Unitree G1 人形机器人；训练在 Isaac Lab 仿真，部署在真实硬件。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;扩散阶段输入/输出&lt;/strong&gt;：过去 $N$ 步、当前步和未来 $H$ 步的状态–潜变量轨迹；每次解码当前潜变量，输出最新的关节 setpoint。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-beyondmimic/fig7.webp&quot; alt=&quot;动作跟踪、VAE 与状态–动作扩散的两阶段架构（论文 Figure 7）&quot;&gt;&lt;/p&gt;
&lt;p&gt;数据流可以概括为：参考动作 → RL motion tracker → 滚动得到 state/action → VAE 将动作变成 latent → state–latent diffusion 预测短轨迹 → classifier guidance 修改未来状态 → VAE decoder 解码当前 latent 为关节 setpoint。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;统一的 RL Motion Tracking&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入/输出&lt;/strong&gt;：输入为参考相位和机器人本体感知，输出为每关节 setpoint。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;相对身体目标&lt;/strong&gt;：跟踪位置、方向、线速度和角速度；anchor 保留最小的全局位置/方向误差用于平衡。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;奖励&lt;/strong&gt;：统一 task reward 加三项正则——软关节限位、动作变化率和非末端身体自碰撞惩罚。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;随机化&lt;/strong&gt;：仅随机地面摩擦/恢复系数、默认关节偏置、躯干质心，并周期性施加速度扰动。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;自适应采样&lt;/strong&gt;：根据片段失败率提高困难片段采样概率，学会后再回到近似均匀分布。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;tracking_env_cfg.py&lt;/code&gt; 以 Isaac Lab manager 配置 MDP；&lt;code&gt;mdp/commands.py&lt;/code&gt; 计算相位、anchor 和身体误差，&lt;code&gt;rewards.py&lt;/code&gt; 实现指数型跟踪奖励，&lt;code&gt;events.py&lt;/code&gt; 实现三类随机化，&lt;code&gt;scripts/rsl_rl/train.py&lt;/code&gt; 调用 PPO 训练。代码仓库覆盖动作跟踪训练；部署控制器位于另一个 &lt;code&gt;motion_tracking_controller&lt;/code&gt; 仓库。&lt;/p&gt;
&lt;h4&gt;VAE 动作表示&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：参考相位 $oldsymbol\psi$ 与 anchor 误差。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：动作潜变量 $mathbf z$；decoder 还读取重力投影、IMU twist、关节状态和上一动作，重建 $hat{\mathbf a}$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;作用&lt;/strong&gt;：把尖锐、不规则的 PD setpoint 转成平滑、低维且带动作意图的表示，减轻扩散直接拟合力矩尖峰的不稳定。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;State–Latent Diffusion&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：混合 character/yaw-centric 参数化的状态序列与 latent 序列，并为每个 state/latent 位置独立采样噪声步。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：未来短时域的状态–latent 轨迹；当前 latent 经 decoder 变成动作。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;作用&lt;/strong&gt;：状态预测提供动作影响未来的因果线索，因此任务代价可以直接写在未来状态上，不需要额外的高维 forward dynamics model。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Classifier Guidance&lt;/h4&gt;
&lt;p&gt;把任务写成可微代价 $G(\tau)$，在每次反向去噪时加入 $-\nabla_\tau G$，就能把无条件的人类动作先验偏向航点、速度、关键帧或 SDF 障碍物约束。推理过程中不更新网络参数。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;Motion-tracking reward&lt;/h4&gt;
&lt;p&gt;$$
r=\sum_{s\in{p,R,v,\omega}}\exp\left(-\frac{\bar e_s}{\sigma_s^2}\right)-\lambda_l r_{limit}-\lambda_s r_{smooth}-\lambda_c r_{contact}
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; $ar e_s$ 是所有目标身体在位置、方向、线速度或角速度上的平均平方误差，$\sigma_s$ 是尺度；三个 $\lambda$ 控制硬件安全、平滑性和自碰撞。指数形式让小误差区域的改进仍有梯度，同时不同动作共享同一奖励尺度。&lt;/p&gt;
&lt;h4&gt;VAE 与 diffusion objective&lt;/h4&gt;
&lt;p&gt;$$
\mathcal L_{VAE}=\mathbb E[|\hat{\mathbf a}-\mathbf a|^2]+\beta D_{KL}(q_\mathcal E(\mathbf z|\boldsymbol\psi,\mathbf e_{anchor})|\mathcal N(0,I))
$$&lt;/p&gt;
&lt;p&gt;$$
\mathcal L_{Diffusion}=\mathbb E\left[|z_\phi(\tau^{\mathbf k},\mathbf k)-\tau|^2\right]
$$&lt;/p&gt;
&lt;p&gt;其中 $\tau$ 是 state–latent 轨迹，$\mathbf k$ 为每个位置独立的去噪步。第一式约束 latent 可解码为动作，第二式学习轨迹数据的 score/去噪场。&lt;/p&gt;
&lt;h4&gt;Guidance&lt;/h4&gt;
&lt;p&gt;$$
\nabla_\tau\log p(\tau|\tau^*)=\nabla_\tau\log p(\tau)-\nabla_\tau G(\tau)
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这解释了“训练任务无关、推理目标可变”：扩散模型提供行为先验梯度，代价梯度只负责在该先验附近选择满足当前任务的模式。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 阶段一用 PPO 在 Isaac Lab 中训练 motion tracker；阶段二先用 tracker rollout 收集 state/action，再以 DAgger 训练条件 VAE，最后对 state–latent 轨迹做自监督 DDPM 训练。训练数据不含任务标签，所有策略使用共享配方。作者强调 C++ 低延迟执行、精确同步和厂家动力学参数是迁移关键。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 每个控制周期从当前本体状态构造历史窗口，以高斯噪声初始化 state–latent 未来轨迹；反向去噪时对任务代价求梯度并加入 guidance。当前 latent 用最新观测交给 VAE decoder，解码成关节 setpoint，PD 控制器执行后滚动窗口继续预测。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方仓库明确覆盖 motion tracking：&lt;code&gt;scripts/csv_to_npz.py&lt;/code&gt; 完成动作预处理，&lt;code&gt;replay_npz.py&lt;/code&gt; 回放，&lt;code&gt;scripts/rsl_rl/train.py&lt;/code&gt;/&lt;code&gt;play.py&lt;/code&gt; 训练和评估；&lt;code&gt;tracking_env_cfg.py&lt;/code&gt; 给出 G1 的观测、动作、奖励、事件和终止配置。README 建议用 Isaac Lab 2.1.0、Isaac Sim 4.5.0、Python 3.10，并通过 WandB registry 管理动作。扩散控制器和 C++ 部署代码不在该仓库中，论文中的第二阶段需结合项目发布的其他组件理解。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-beyondmimic/fig2.webp&quot; alt=&quot;真实机器人多样动作与部署示例（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 训练约 2.5 小时动作，仿真中验证全部片段；挑选 30 段、总计 15 分钟部署到 G1。评估覆盖静态平衡、跳跃/踢腿/空翻、舞蹈和步行跑步，并在室外软土、落叶和不平地面测试。自然性用户研究招募 $N=77$，将 BeyondMimic 与 Unitree 原生控制器进行 20 组 5 秒片段二选一。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-beyondmimic/fig4.webp&quot; alt=&quot;自然步行、跑步与地面反作用力比较（论文 Figure 4）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;空中侧翻峰值加速度约 $31,m/s^2$，骨盆角速度最高约 $20,rad/s$（平均 $7.01,rad/s$），并能连续完成接触丰富的动作。&lt;/li&gt;
&lt;li&gt;用户整体偏好 BeyondMimic 的自然性为 70.8% 对 29.2%（$p&amp;#x3C;.001$）；步行 57.0%，跑步 84.7%。&lt;/li&gt;
&lt;li&gt;速度控制仿真误差：步行 12.14%，跑步 13.65%；真实机器人可连续跑过 50 m，并能在被扶住后暂停、稳定、恢复。&lt;/li&gt;
&lt;li&gt;同一低速命令可产生步行或慢跑等多模态步态，并自然完成步行到跑步的切换。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-beyondmimic/fig8.webp&quot; alt=&quot;MDP 设计、自适应采样与潜空间扩散消融（论文 Figure 8）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Rot6D 比 quaternion/axis-angle 更利于 sim-to-real；注入 2 ms 延迟已增加速度误差，5 ms 出现失败，10 ms 在三次中失败两次。移除自适应采样后，四个动作中的三个在 30k iteration 仍有困难片段失败；潜空间扩散的 cartwheel 仿真成功率从无 latent 的 5% 提升到 95%。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-beyondmimic/fig5.webp&quot; alt=&quot;命令控制与关键帧 inpainting（论文 Figure 5）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-beyondmimic/fig6.webp&quot; alt=&quot;技能切换与任务组合（论文 Figure 6）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 推理时可组合航点代价与 SDF 障碍规避代价，绕开障碍后到达目标；也可把 joystick 速度跟踪替换为航点目标，或在走路、跑步和连续空翻之间切换。关键帧每 0.2 s 注入一次时，模型能把稀疏姿态补成连续的 cartwheel，并回到命令控制的步行。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 第一阶段把复杂的“像人”偏好隐式装进动作数据，同时用相对身体坐标释放无害的全局漂移；第二阶段不直接扩散尖锐 PD action，而是在平滑 latent 上建模，并让 decoder 使用最新 proprioception 修正细节。扩散先验因此负责“选一个可行的人类动作模式”，guidance 只需施加小的任务偏置。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 真正的创新是把共享配方的 scalable motion tracking 与 state–action latent diffusion 连接起来：前者提供大量可迁移技能，后者把技能变成可在测试时优化的短轨迹分布。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; DeepMimic/AMP 的任务目标在训练时决定策略；层级方法把 planner 和 controller 分开；目标条件 VAE 需要预先枚举条件。BeyondMimic 则把任务代价延迟到去噪过程，因而可以组合训练集没有出现过的目标。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;人类动作数据覆盖足够多的“原子技能”，新任务能在其邻域内被组合。&lt;/li&gt;
&lt;li&gt;任务代价对短时域状态轨迹可微，且 guidance 不会把样本推离可行动作流形。&lt;/li&gt;
&lt;li&gt;真实系统状态估计、执行延迟和动力学误差足够小；否则扩散预测的优势会被闭环延迟吞没。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 扩散控制依赖状态估计质量；当前预测时域约 0.64 s，难以处理需要提前规划的远距离目标。历史窗口有助于稳定预测，却可能让模型陷入重复运动；提高 guidance weight 又会在模式切换和高方差状态下 destabilize。细粒度目标仍需轻量 guidance 调参，起步和收尾阶段更容易绊倒。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 代码仓库只公开动作跟踪训练，完整扩散训练和实时部署复现实验的门槛仍高（Isaac Lab、WandB 动作注册、机器人描述文件和硬件同步均不可省略）。此外，依赖重定向质量和 G1 的特定关节/执行器建模，换 embodiment 时“共享超参数无需调参”的范围需要重新验证。&lt;/p&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;“先学会可行分布，再在推理时优化目标”可能是人形机器人从模仿走向通用控制的一条更稳健路径。&lt;/li&gt;
&lt;li&gt;相对坐标、低阻抗和严格低延迟这些工程选择并非附属项，而是决定高动态 sim-to-real 能否成立的算法组成部分。&lt;/li&gt;
&lt;li&gt;后续研究可把 0.64 s 局部预测与高层世界模型结合，或学习自适应 guidance / 状态估计器，降低切换瞬态和手工权重调节。&lt;/li&gt;
&lt;/ul&gt;</content:encoded><h:img src="https://pic.hana0721.top/94819769_p0_master1200.4xv4u7folx.webp"/><enclosure url="https://pic.hana0721.top/94819769_p0_master1200.4xv4u7folx.webp"/></item><item><title>A1 论文精读：Fully Transparent、Adaptive、Efficient 的 Truncated VLA</title><link>https://agusexp25.top/blog/paper-deep-dive-a1</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-a1</guid><description>精读 A1：用多出口 VLM 与跨层 Truncated Flow Matching 同时压缩 backbone 和 action head 的推理成本，并对照官方代码分析实现。</description><pubDate>Thu, 27 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; A1 面向一个很实际的部署矛盾：VLA 的大 VLM backbone 提供了泛化能力，但 7B 级模型和需要 10–20 次 denoising 的 diffusion/flow action head 很难在普通硬件上实时运行。论文提出一个完整开源的 VLA stack，并把“省算力”定义为端到端问题，而不是只压缩语言模型。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;论文链接&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2604.05672&quot;&gt;arXiv:2604.05672&lt;/a&gt;　&lt;strong&gt;代码&lt;/strong&gt;：&lt;a href=&quot;https://github.com/ATeam-Research/A1&quot;&gt;ATeam-Research/A1&lt;/a&gt;　&lt;strong&gt;项目页&lt;/strong&gt;：&lt;a href=&quot;http://www.ateam.xin/#/research/A1&quot;&gt;A1&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; A1 的关键不是发明一个更大的 policy，而是把每个控制时刻的计算预算变成可调旋钮：动作在浅层已经稳定时立即退出；若使用 Flow Matching，则把上一层的 action chunk 当作下一层的初值，避免每层重新从随机噪声开始。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;联合加速两个瓶颈&lt;/strong&gt;：用 action-consistency early exit 减少 VLM 层数，用 Inter-Layer Truncated Flow Matching 减少每层 denoising 次数。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;共享 action head 的多出口训练&lt;/strong&gt;：训练时对随机层或所有层的动作同时监督，推理时可以在中间层直接接 action head。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;跨 embodiment 预训练&lt;/strong&gt;：混合 DROID、AgiBot、RoboCOIN、RoboMind、GM-100、RoboChallenge，以及 15,951 条自采轨迹。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;完整开源&lt;/strong&gt;：论文承诺公开权重、训练与推理代码、数据处理脚本/清单和评测协议。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;性能与效率并重&lt;/strong&gt;：LIBERO 平均 96.6%、VLABench 平均 53.5%、RoboChallenge 29.00%；Flow Matching episode latency 最多下降 72.3%，MLP 版本 backbone 计算量最多下降 76.6%。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 典型 VLA 由两部分组成：VLM 将图像、语言和 proprioception 压成语义表示，action head 再把表示解码成连续动作。大 backbone 的问题是每个 token 都要经过全部层；Flow/Diffusion action head 的问题是一次动作还要重复多次 denoising。只优化其中一项，另一项就会成为新的瓶颈。&lt;/p&gt;
&lt;p&gt;A1 依赖三个经验观察：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Trajectory convergence&lt;/strong&gt;：Flow Matching 轨迹通常在少于三步时已经靠近正确 mode，后续步骤主要做精修。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Action redundancy&lt;/strong&gt;：相邻控制时刻的 action chunk 大多平滑，不需要每次都做同等强度的更新。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Layer-wise coupling&lt;/strong&gt;：中间 VLM hidden state 已包含足够的空间与视觉特征，可以先产生一个可用动作。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; DeeR-VLA 也使用 dynamic early exit，但 A1 的边界更宽：它把 action head 的迭代开销纳入同一个预算控制器，并且保留一个共享 head，而不是为每个出口各自维护完整 head。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在时刻 $t$，观测为多相机图像、语言指令和机器人状态：&lt;/p&gt;
&lt;p&gt;$$o_t=[I^1_t,ldots,I^n_t,q_t],$$&lt;/p&gt;
&lt;p&gt;其中 $q_t$ 包含关节角、夹爪位姿等 proprioceptive state。策略输出长度为 $H$、动作维度为 $D$ 的 chunk：&lt;/p&gt;
&lt;p&gt;$$A_t=[a_t,a_{t+1},ldots,a_{t+H-1}]in\mathbb{R}^{H\times D}.$$&lt;/p&gt;
&lt;p&gt;论文同时实现两种 head：A1-MLP 用 L1 回归直接预测 chunk；A1-FM 学习条件 vector field，生成多模态连续动作。&lt;/p&gt;
&lt;p&gt;| 要素         | A1 设定                                                       |
| ------------ | ------------------------------------------------------------- |
| Observation  | 多视角 RGB、语言、proprioception（具体相机随数据集而变）      |
| VLM          | Molmo 初始化的 Vision-Language Model                          |
| Action head  | 400M 级 Qwen2 Flow Matching，或轻量 MLP                       |
| Action chunk | 仿真配置通常为 10 步；预训练配置为 50 步，具体由 YAML 决定    |
| Robot        | ARX、Franka、UR5、AgiBot、OpenArm、Dobot 等多种 embodiment    |
| Benchmarks   | LIBERO、VLABench、LIBERO-Plus、RoboChallenge 与真实机器人任务 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;configs/models/pretrain.yaml&lt;/code&gt; 将 &lt;code&gt;fixed_action_dim&lt;/code&gt; 设为 32、&lt;code&gt;num_actions_chunk&lt;/code&gt; 设为 50；LIBERO 配置则使用 10 步 chunk。代码因此支持论文表格之外的不同动作维度与 horizon，而不是把 7D/8-step 写死。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 数据流是 &lt;code&gt;image + language + state → VLM layer i → shared action head → action chunk&lt;/code&gt;。训练阶段让多个层都产生可监督动作；推理阶段逐层执行并比较相邻层的动作差异，满足阈值即退出。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;Molmo VLM backbone 与多出口&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：多相机图像、语言 token、state token。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：每个候选层的 prefix KV cache 或 hidden state。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;作用&lt;/strong&gt;：提供视觉语义和 implicit affordance prior。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要&lt;/strong&gt;：A1 的目标不是把 VLM 换成小模型，而是让强 VLM 只计算到“已经足够”的深度。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;AffordVLAEarlyExit&lt;/code&gt; 继承 &lt;code&gt;Molmo&lt;/code&gt;。模型 forward 返回 &lt;code&gt;exit_layer&lt;/code&gt; 与 &lt;code&gt;exit_action&lt;/code&gt;；候选层的 KV cache 会传入 Flow Matching head。&lt;code&gt;a1/model.py&lt;/code&gt; 中主干层数由配置决定，因而出口集合可以按实验设置取每两层一个出口。&lt;/p&gt;
&lt;h4&gt;MLP action head&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：指定层的 action-token hidden states。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：连续 action chunk。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;作用&lt;/strong&gt;：并行回归动作，计算量相对 VLM 可忽略。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;训练&lt;/strong&gt;：对中间层动作施加 L1 loss。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;它适合作为“只加速 backbone”的基线：由于 head 很小，即使每层都调用一次，也不会像 FM head 那样把节省的 VLM 计算重新花掉。&lt;/p&gt;
&lt;h4&gt;Flow Matching action head&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：主 VLM 的 prefix KV、当前 proprioception、噪声动作 $x_t$ 和时间 $t$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;中间模块&lt;/strong&gt;：state/action/time projection → Qwen2 decoder-only expert → MLPResNet vector-field head。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：$H\times D$ 的 vector field 或最终 action chunk。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;作用&lt;/strong&gt;：表达一对多的连续动作分布，并通过 KV-conditioned self-attention 读取 VLM 语义。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;FlowMatchingActionHead&lt;/code&gt; 默认使用约 896 hidden size 的 Qwen2 expert；其 &lt;code&gt;predict_vector_field&lt;/code&gt; 支持 2D 或 4D attention mask。代码动态把 &lt;code&gt;qwen2.model.config.num_hidden_layers&lt;/code&gt; 设成当前缓存层数，使同一个 expert 能配合不同深度的 VLM prefix。&lt;/p&gt;
&lt;h4&gt;Action-consistency threshold&lt;/h4&gt;
&lt;p&gt;相邻出口产生 $A_t^{(i-1)}$ 与 $A_t^{(i)}$ 后，使用 cosine similarity、L2 distance 或 mean absolute deviation 等指标计算差异。每层阈值不是手工拍脑袋设置，而是从训练集的 discrepancy 分布离线校准，并通过目标 exit distribution 控制平均计算量。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;Flow Matching 训练目标&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 采样噪声 $\epsilon\sim\mathcal N(0,I)$ 与 $\tau\in[0,1]$，构造：&lt;/p&gt;
&lt;p&gt;$$A_t^\tau=\tau A_t+(1-\tau)\epsilon,$$&lt;/p&gt;
&lt;p&gt;并回归条件 vector field：&lt;/p&gt;
&lt;p&gt;$$\mathcal L_\tau(\theta)=\mathbb E\left[|v_\theta(A_t^\tau,o_t)-u(A_t^\tau\mid A_t)|_2^2\right],\quad u=\epsilon-A_t.$$&lt;/p&gt;
&lt;p&gt;$v_\theta$ 是 action head 预测的速度场，$u$ 是连接噪声与真实动作的监督方向；论文使用偏向低噪声阶段的 Beta 分布采样时间。&lt;/p&gt;
&lt;h4&gt;Euler action integration&lt;/h4&gt;
&lt;p&gt;$$A_t^{\tau+\delta}=A_t^\tau+\delta v_\theta(A_t^\tau,o_t).$$&lt;/p&gt;
&lt;p&gt;$\delta$ 是积分步长；标准推理中总步数为 10。&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;AffordVLAEarlyExit.predict_actions_flow_matching&lt;/code&gt; 从 $t=1$、&lt;code&gt;dt=-1/steps&lt;/code&gt; 反向积分到 0，这与论文正文的时间方向写法相反，但和代码训练时的 $A^\tau=\tau\epsilon+(1-\tau)A$ 约定一致，实际含义都是从噪声走向动作。&lt;/p&gt;
&lt;h4&gt;Early exit criterion&lt;/h4&gt;
&lt;p&gt;$$\Delta_t^i=d\left(A_t^{(i)},A_t^{(i-1)}\right)&amp;#x3C;\eta_i.$$&lt;/p&gt;
&lt;p&gt;$d$ 是动作差异度量，$\eta_i$ 是第 $i$ 个出口的阈值。训练集收集每层差异矩阵 $V\in\mathbb R^{K\times N}$，再根据目标概率 $p_k\propto\rho^k$ 对尚未分配的样本做 filtered quantile，从而得到互斥的出口比例。&lt;/p&gt;
&lt;h4&gt;Inter-Layer warm start&lt;/h4&gt;
&lt;p&gt;$$A_{t,0}^{(i+1)}=A_{t,1}^{(i)}.$$&lt;/p&gt;
&lt;p&gt;右侧是上一层经过截断 denoising 的结果。它把“每层重新采样”的 FM 变成跨层传播的 refinement，既减少步数，也让浅层输出更接近下一层的稳定 mode。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 训练分为两阶段：先用公开与自采多机器人轨迹预训练，再针对具体 robot/task fine-tune。数据统一为同步的 $(o_t,s_t,\ell,a_t)$ episode，过滤缺帧、时间戳异常、极端 outlier、长时间静止段，并做 dataset-level 与 embodiment-level balanced sampling。图像使用 sharpening、random erasing；state 使用随机维度 zero-out。&lt;/p&gt;
&lt;p&gt;优化时冻结 ViT；VLM 学习率为 $5\times10^{-5}$，action head 为 $5\times10^{-4}$，前 1,000 步 warm-up，随后 cosine annealing。&lt;strong&gt;【Code】&lt;/strong&gt; 训练入口是 &lt;code&gt;a1/train.py&lt;/code&gt; 与 &lt;code&gt;launch_scripts/train_vla.py&lt;/code&gt;，具体数据混合和模型类型由 &lt;code&gt;configs/experiments/*.yaml&lt;/code&gt;、&lt;code&gt;configs/datasets/*.yaml&lt;/code&gt; 注入，而非写死在脚本中。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 推理时从浅层开始逐层计算。MLP head 在每层快速得到 action；FM head 则每层只执行 $\delta$ 次截断 denoising，并用上一层输出 warm-start。若差异小于阈值，立即返回当前 chunk，否则继续到下一出口；最后一层是必然退出的 fallback。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;| 论文概念          | 官方代码位置与行为                                                                                            |
| ----------------- | ------------------------------------------------------------------------------------------------------------- |
| VLM + action head | &lt;code&gt;a1/vla/affordvla.py&lt;/code&gt;；普通模型支持 &lt;code&gt;l1_regression&lt;/code&gt;、&lt;code&gt;diffusion&lt;/code&gt;、&lt;code&gt;flow_matching&lt;/code&gt;                             |
| Early-exit 模型   | &lt;code&gt;a1/vla/affordvla_early_exit.py&lt;/code&gt;；forward 输出 &lt;code&gt;exit_layer/exit_action&lt;/code&gt;                                       |
| Flow Matching     | &lt;code&gt;a1/vla/action_heads.py&lt;/code&gt; 的 &lt;code&gt;FlowMatchingActionHead&lt;/code&gt;，Qwen2 expert 读取主干 KV                                |
| 多层计算          | 通过 &lt;code&gt;len(past_key_values)&lt;/code&gt; 动态设置 Qwen2 expert 的有效层数                                                  |
| Warm start        | &lt;code&gt;predict_actions_flow_matching(..., input_x=...)&lt;/code&gt; 接收上一层 action 作为初值                                  |
| 数据管线          | &lt;code&gt;a1/data/vla/&lt;/code&gt; 下的 RLDS、LeRobot、RoboChallenge 等 builder 与 batch transform                                |
| 评测入口          | &lt;code&gt;eval_libero_exit.sh&lt;/code&gt;、&lt;code&gt;robot_experiments/libero/eval_libero_exit_fm_truncated_anchor.py&lt;/code&gt;、&lt;code&gt;eval_vlabench.sh&lt;/code&gt; |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 代码层面最重要的实现细节是 KV cache：中间层输出并不是重新编码成一个静态向量，而是直接作为 Qwen2 action expert 的 past keys/values。这让 action head 能看到与当前 VLM 深度一致的 prefix，同时避免重复计算已完成的主干层。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 仿真包含 LIBERO 四个 suite（Spatial、Object、Goal、Long）和 VLABench 四类任务；真实实验覆盖 Franka、AgiBot、OpenArm、Dobot-Arm，并在 UR5 等平台收集训练数据。RoboChallenge 使用 Table30 的 30 个真实机器人任务，每项任务测试 10 次；LIBERO-Plus 用于 zero-shot distribution shift。&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 主要结果如下：&lt;/p&gt;
&lt;p&gt;| Benchmark             |    A1 结果 | 对比                                        |
| --------------------- | ---------: | ------------------------------------------- |
| LIBERO average        |  &lt;strong&gt;96.6%&lt;/strong&gt; | $\pi_0.5$ 96.9%，A1 在 Object 达 99.8%      |
| VLABench average      |  &lt;strong&gt;53.5%&lt;/strong&gt; | $\pi_0.5$ 49.5%                             |
| Real-world mean       |  &lt;strong&gt;56.7%&lt;/strong&gt; | $\pi_0.5$ 47.5%，$\pi_0$ 40.8%              |
| RoboChallenge Table30 | &lt;strong&gt;29.00%&lt;/strong&gt; | $\pi_0$ 28.33%，X-VLA 21.33%，RDT-1B 15.00% |
| LIBERO-Plus zero-shot |  &lt;strong&gt;75.3%&lt;/strong&gt; | 高于 OpenVLA-OFT、$\pi_0$、$\pi_0$-FAST     |&lt;/p&gt;
&lt;p&gt;真实任务中，A1 在 AgiBot 的 pick glue 和 clean table 分别达到 80% 与 20%；fruit arrangement 只用 50 条样本仍达到 50%。这些结果说明多机器人预训练带来的并非单一轨迹记忆，而是一定程度的跨硬件迁移。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; A1-MLP 的 early exit 展现出清晰的 compute–accuracy 曲线：&lt;/p&gt;
&lt;p&gt;| exit criterion $c$ | 计算量下降 | 平均成功率 |       推理时间 |
| -----------------: | ---------: | ---------: | -------------: |
|                1.0 |      15.6% |      96.6% | 20.6 s（上升） |
|                0.7 |      39.1% |      96.3% |         16.5 s |
|                0.4 |      58.5% |      94.0% |          6.8 s |
|                0.1 |      76.6% |      92.3% |          5.6 s |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; A1-FM 中，&lt;code&gt;c=1.0, δ=2&lt;/code&gt; 且 warm-start 时，LIBERO 平均成功率为 96.4%，episode latency 从 37.8 s 降到 10.5 s（72.3%）；没有 warm-start 时同样 &lt;code&gt;δ=2&lt;/code&gt; 仍需 27.5 s。单纯把每层 denoising 设为 10 步甚至会让 early exit 的时间升到 40.9 s，说明“减少 VLM 层数”并不自动等于端到端加速。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在未见过的 LIBERO-Plus 上，标准 LIBERO 训练的 A1-FM 达到 75.3% 平均成功率（Spatial 86.6%、Object 80.0%、Goal 66.8%、Long 58.0%）。&lt;strong&gt;【Analysis】&lt;/strong&gt; 这项实验把效率方法和表征泛化分开检验：A1 并不是只在熟悉布局里靠提前退出取得高分，而是保留了 Molmo 的跨场景视觉语义能力。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; A1 同时利用了两种冗余。VLM 深层的表示变化在简单动作上很小，层间 action consistency 可以把这些“无效深度”跳过；Flow trajectory 在当前层已经接近正确 mode 时，下一层不必从噪声重新开始。前者减少 $L$，后者减少每层的 $\delta$，所以收益近似作用在端到端乘积上，而不是单独优化某个模块。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 真正的新组合是“共享多出口训练 + 训练集校准阈值 + 跨层截断 FM”。其中阈值校准把抽象的预算 $c$ 变成可执行的每层 quantile；warm-start 则避免 early-exit 把计算转移给 action head。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;与静态 pruning 不同：A1 对每个控制时刻动态选择深度。&lt;/li&gt;
&lt;li&gt;与只做 VLM early exit 的方法不同：A1 同时控制 flow denoising。&lt;/li&gt;
&lt;li&gt;与为每个出口复制 head 不同：A1 训练一个共享 action head，减少参数和维护成本。&lt;/li&gt;
&lt;li&gt;与单纯减少 FM steps 不同：A1 还跨层复用上一层的 action state，因此少步数不会从随机初值开始。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 方法依赖中间层已经携带可用 affordance，以及相邻层的动作差异能预测“是否值得继续计算”。&lt;strong&gt;【Analysis】&lt;/strong&gt; 这两个假设在训练分布外可能失效：动作可能看起来稳定但尚未完成接触细节，或者层间差异小却共同偏离目标。因此最终 fallback 和阈值校准不可省略。&lt;/p&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;论文结论强调的是效率与开放性，没有单独列出完整的 limitation 清单。论文未明确说明不同 backbone、不同阈值指标在更广泛机器人上的失效边界，也未报告训练数据去重、各数据源规模占比对结果的独立贡献。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Early exit 可能增加 wall-clock 开销&lt;/strong&gt;：MLP 的 &lt;code&gt;c=1.0&lt;/code&gt; 和 FM 的 &lt;code&gt;δ=10&lt;/code&gt; 已显示计算量下降但时间上升，真实收益依赖 kernel、KV cache 和通信实现。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;阈值需要离线校准&lt;/strong&gt;：换 robot、相机、动作归一化或任务分布后，原有 discrepancy quantile 未必仍对应目标 exit ratio。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;跨层 action head 的训练成本更高&lt;/strong&gt;：同时监督多层会增加 forward/head 调用；论文没有给出相对单出口训练的总训练时间和显存曲线。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Flow Matching 的时间约定存在文稿/代码差异&lt;/strong&gt;：正文写作是 $0\rightarrow1$，代码以 $t=1$、负步长反向积分；复现时必须以 checkpoint 与实现的约定为准。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;RoboChallenge 平均分仍有限&lt;/strong&gt;：29.00% 虽超过若干开源基线，但距离闭源强基线还有明显差距，复杂长时序和接触任务仍是瓶颈。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; A1 给出的重要研究视角是：VLA 的效率不应只用参数量或单次 FLOPs 衡量，而应问“这一次控制决策到底需要多少计算”。从这个视角可以继续探索：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;用不确定性、接触事件或 value model 替代单一 action discrepancy，减少“稳定但错误”的早退；&lt;/li&gt;
&lt;li&gt;让 exit budget 随任务阶段、剩余时间和能耗动态变化，而不是固定指数分布；&lt;/li&gt;
&lt;li&gt;将 warm-start 从 FM action chunk 扩展到视觉 token、KV cache 或 latent world model；&lt;/li&gt;
&lt;li&gt;把训练时的多出口监督与 real-time scheduler 联合优化，直接最小化 success–latency–energy 的 Pareto 前沿；&lt;/li&gt;
&lt;li&gt;对每个 embodiment 学习可迁移的阈值校准器，避免换硬件后重新收集大规模 calibration set。&lt;/li&gt;
&lt;/ul&gt;</content:encoded><h:img src="https://pic.hana0721.top/3602563_p0_master1200.8hh43k1p88.webp"/><enclosure url="https://pic.hana0721.top/3602563_p0_master1200.8hh43k1p88.webp"/></item><item><title>WSA1 论文精读：3D World-Spatial-Action Robot Control</title><link>https://agusexp25.top/blog/paper-deep-dive-wsa1</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-wsa1</guid><description>精读 WSA1：用 3D 世界预测、3D 一致视觉思考和 3D 逆动力学统一 VLA/WAM，并以 6,000 小时异构数据实现高效泛化。</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 《WSA1: a 3D-Centric World-Spatial-Action Model for Generalizable Robot Control》提出 World-Spatial-Action（WSA）范式。它不把机器人控制理解为“看图后直接回归动作”，而是要求模型同时回答三个问题：动作会怎样改变 3D 世界、目标 3D 状态应该在 2D 视觉上呈现什么样子、从这个 3D 状态变化反过来应该执行什么动作。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-wsa1/overview-crop.szoryhhgr.webp&quot; alt=&quot;WSA1 的数据配方与三层闭环概览（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; WSA1 的真正卖点不是增加一个深度分支，而是把 forward dynamics（action → world）和 inverse dynamics（world → action）放进同一个可互相 attend 的 latent space；2D visual thinking 则充当语言目标与 3D 状态之间的语义桥梁。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;提出 3D-Centric World-Spatial-Action Joint Modeling，联合学习 3D world prediction、3D-consistent 2D visual thinking 与 3D inverse dynamics。&lt;/li&gt;
&lt;li&gt;构造带三个专家的 Mixture-of-Transformers（MoT）：2D Spatial Expert、3D Spatial Expert 和 3D Action Expert，并用双向 world–action attention 施加因果依赖。&lt;/li&gt;
&lt;li&gt;将约 6,000 小时的 InternData-A1、RoboTwin、AgiBot-World、RoboChallenge 与 EgoDex 混合预训练，其中真实机器人数据约 1,000 小时，覆盖 8 种 embodiment、300+ 任务和 50+ 原子技能。&lt;/li&gt;
&lt;li&gt;WSA1-B（3B）和 WSA1-L（6B）在 RoboTwin2.0 hard 上分别达到 92.7% 与 93.1% SR；在 7 个真实桌面任务上达到 77.5%/80.3% SR，超过论文对比的 π0.5。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 现有 Robot Foundation Model 大致分成两条路线：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;2D-centric VLA&lt;/strong&gt;：以 π0.5、OpenVLA 等为代表，从语言、图像和 proprioception 直接生成连续动作，优点是继承 VLM 的语义知识，但通常是 reactive policy。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;2D/3D-centric WAM&lt;/strong&gt;：先预测未来视频或几何，再由 action expert 执行，提供 imagine-then-execute 能力，但很多工作仍是单向的“预测后执行”。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-wsa1/paradigms-crop.7p4cc50rnv.webp&quot; alt=&quot;VLA、WAM 与 WSA 的建模范式对比（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;p&gt;论文认为两类方法共享两个瓶颈：第一，2D 视觉表示与真实物理交互的 3D 结构不匹配；第二，单纯 imitation learning 依赖大规模真实 teleoperation，成本高且数据只覆盖演示分布。WSA 的回答是：用 3D 因果先验提高每小时数据的信息密度，并用 simulation 与 human egocentric data 补足真实数据。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 因而 WSA 不只是“给 VLA 加深度图”。它改变的是策略的联合分布：从 $p(A\mid O)$ 变为同时约束 $p(G\mid A,O)$、$p(V\mid G,O)$ 与 $p(A\mid G,O)$ 的闭环模型。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在时刻 $t$，任务指令为 $l$，视觉观测为 $v_t$，机器人状态为 $s_t$，合并当前观测 $O_t={v_t,s_t,l}$。动作不是单步向量，而是长度为 $H$ 的 chunk：&lt;/p&gt;
&lt;p&gt;$$
A_t=(a_{t+1},\ldots,a_{t+H}).
$$&lt;/p&gt;
&lt;p&gt;标准行为克隆目标是：&lt;/p&gt;
&lt;p&gt;$$
\max_\theta;\mathbb{E}&lt;em&gt;{(v_t,s_t,A_t,l)\sim D&lt;/em&gt;{dem}}
\left[\log\pi_\theta(A_t\mid v_t,s_t,l)\right].
$$&lt;/p&gt;
&lt;p&gt;WSA1 进一步引入未来 3D 世界状态 $G_t=(g_{t+1},\ldots,g_{t+K})$ 和未来子目标图像 $V_t=(v_{t+1},\ldots,v_{t+N})$，学习：&lt;/p&gt;
&lt;p&gt;$$
p(G_t\mid A_t,O_t),\qquad p(V_t\mid G_t,O_t),\qquad p(A_t\mid G_t,O_t).
$$&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;$p(G_t\mid A_t,O_t)$ 是 &lt;strong&gt;Action-Conditioned 3D World Model&lt;/strong&gt;：预测动作造成的场景变化。&lt;/li&gt;
&lt;li&gt;$p(V_t\mid G_t,O_t)$ 是 &lt;strong&gt;3D World-Aware Visual Thinking&lt;/strong&gt;：把 3D 目标状态投影成可理解的 2D 子目标。&lt;/li&gt;
&lt;li&gt;$p(A_t\mid G_t,O_t)$ 是 &lt;strong&gt;3D Inverse Dynamics&lt;/strong&gt;：从期望的 3D 状态演化生成可执行动作。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方仓库的默认策略配置将 &lt;code&gt;chunk_size&lt;/code&gt; 与 &lt;code&gt;n_action_steps&lt;/code&gt; 设为 50（WSA-Base），推理时从 action chunk 队列逐步取出动作；WSA-Large 的 &lt;code&gt;action_horizon&lt;/code&gt;、&lt;code&gt;n_action_steps&lt;/code&gt; 由对应 checkpoint 配置决定。代码还支持 action normalization、proprioception 和多相机输入。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-wsa1/framework-crop.2dpfrfeoub.webp&quot; alt=&quot;WSA1 的 Mixture-of-Transformers 与注意力依赖规则（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 当前图像、语言和机器人状态先编码成 observation tokens，再送入共享的 MoT。2D Spatial Expert 产生视觉子目标 latent，3D Spatial Expert 产生未来 3D scene latent，3D Action Expert 对 noisy action chunk 做 flow-based denoising。数据流只有一条主线：&lt;code&gt;Observation + Instruction → 2D/3D latent → action chunk&lt;/code&gt;，同时 3D latent 与 action token 双向交互。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;2D Spatial Expert：指令对齐的视觉思考&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：$O_t$ 与目标 3D 世界 latent $G_t$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：未来子目标图像的抽象 visual tokens $h_v$，而不是 RGB 像素。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;作用&lt;/strong&gt;：回答“完成 instruction 后场景在视觉上应该是什么样子”，保留物体语义、外观和时序变化。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;训练信号&lt;/strong&gt;：用预训练 VAE/Cosmos tokenizer 编码的子目标图像作为 target。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;论文将这一支初始化为 Qwen3-VL 或 Wan2.2 风格的视觉生成 backbone。&lt;strong&gt;【Analysis】&lt;/strong&gt; 预测 latent 而非像素让它更像“视觉计划”而不是昂贵的视频渲染器。&lt;/p&gt;
&lt;h4&gt;3D Spatial Expert：动作导致的世界预测&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：当前观测 $O_t$ 与动作 chunk $A_t$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：未来 3D 场景的 latent $h_g$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;作用&lt;/strong&gt;：学习 forward dynamics，显式编码物体位姿、遮挡和接触变化等几何后果。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;教师表示&lt;/strong&gt;：论文使用 Depth Anything 等 3D foundation model 产生的几何 token。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;3D Action Expert：3D inverse dynamics&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：$O_t$、未来 3D scene latent 和加噪动作 $\hat A_t$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：动作 flow field，经过迭代去噪得到完整 action chunk。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;作用&lt;/strong&gt;：把目标 3D 状态转成机器人末端位姿或关节控制，避免只从二维相关性猜动作。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Bidirectional World–Action Attention&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 依赖规则有三条：所有未来 token 可看当前 observation；visual token 可看 3D scene token，保证 2D–3D consistency；3D scene token 与 action token 彼此全连接，形成 world–action mutual constraints。&lt;strong&gt;【Analysis】&lt;/strong&gt; 这一步是 WSA 与“先预测未来再单独执行”的 WAM 的本质差异：action-conditioned world model 和 inverse dynamics 共享信息，而不是两个串联模块。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;视觉思考损失&lt;/h4&gt;
&lt;p&gt;$$
\mathcal{L}&lt;em&gt;{2D}=\mathbb{E}\left[|f&lt;/em&gt;{2D}(O_t,G_t)-f_{enc}(V_t)|_2^2\right].
$$&lt;/p&gt;
&lt;p&gt;$f_{2D}$ 是 2D Spatial Expert，$f_{enc}$ 是冻结的图像 tokenizer，$V_t$ 是演示中的未来子目标图像。该损失让视觉计划与目标 3D 状态一致。&lt;/p&gt;
&lt;h4&gt;3D 世界预测损失&lt;/h4&gt;
&lt;p&gt;$$
\mathcal{L}&lt;em&gt;{3D}=\mathbb{E}\left[|f&lt;/em&gt;{3D}(O_t,A_t)-f_g(G_t)|_2^2\right].
$$&lt;/p&gt;
&lt;p&gt;$f_g$ 是预训练 3D teacher（例如 Depth Anything），$f_{3D}$ 要从动作和当前观测恢复未来几何。&lt;/p&gt;
&lt;h4&gt;Action flow matching&lt;/h4&gt;
&lt;p&gt;$$
\hat A_t=\tau A_t+(1-\tau)\omega,\qquad \omega\sim\mathcal{N}(0,I),
$$&lt;/p&gt;
&lt;p&gt;$$
\mathcal{L}&lt;em&gt;{ACT}=\mathbb{E}\left[|\omega-A_t-f&lt;/em&gt;{act}(O_t,G_t,\hat A_t)|_2^2\right].
$$&lt;/p&gt;
&lt;p&gt;其中 $f_{act}$ 预测从噪声到真实动作的 flow。总目标为：&lt;/p&gt;
&lt;p&gt;$$
\mathcal{L}&lt;em&gt;{total}=\mathcal{L}&lt;/em&gt;{2D}+\mathcal{L}&lt;em&gt;{3D}+\mathcal{L}&lt;/em&gt;{ACT}.
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 仓库的 WSA-Large &lt;code&gt;training_loss&lt;/code&gt; 实际记录 &lt;code&gt;loss_video&lt;/code&gt;、&lt;code&gt;loss_action&lt;/code&gt; 和可选 &lt;code&gt;loss_3d&lt;/code&gt;，并由 &lt;code&gt;lambda_video&lt;/code&gt;、&lt;code&gt;lambda_action&lt;/code&gt;、&lt;code&gt;lambda_3d&lt;/code&gt; 加权。WSA-Base 的 3D 分支使用 query bottleneck 对齐 Depth Anything 中间层，代码中同时计算 cosine loss 与 layer-normalized MSE；这是比论文公式更具体的工程实现。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 训练分两阶段：第一阶段在异构数据上预训练行为与世界先验，第二阶段在目标 embodiment/benchmark 上 post-train。两阶段都保留三种 WSA 学习目标，而不是预训练完后只保留 action loss。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; WSA-Base 的 launch 脚本提供 &lt;code&gt;wsa_base_pretrain.sh&lt;/code&gt;、RoboTwin/LIBERO/真实机器人 fine-tune；WSA-Large 对应 &lt;code&gt;wsa_large_pretrain.sh&lt;/code&gt; 与 6B Wan2.2 backbone。README 记录训练使用 8 张 NVIDIA H200；推理示例则以 RTX 4090 为参考。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;推理时不使用真实未来图像或 Depth Anything teacher。模型从当前 observation 和 instruction 生成视觉/3D latent，并对 action chunk 做有限步 diffusion/flow denoising，然后闭环执行前若干动作，再读取新观测。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;WSALargePolicy.predict_action_chunk&lt;/code&gt; 调用 &lt;code&gt;model.infer_action&lt;/code&gt;，支持文本或预计算 context；&lt;code&gt;select_action&lt;/code&gt; 将 chunk 放入 deque，逐步弹出单步动作。WSA-Base 默认 &lt;code&gt;num_inference_steps=10&lt;/code&gt;，WSA-Large 的 joint inference 同时推进 video 与 action scheduler。&lt;strong&gt;【Analysis】&lt;/strong&gt; 论文图中展示的 goal 3D scene 是推理时的内部计划；真实部署并不需要把 3D 点云显式输出给控制器。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;| 论文概念 | 官方代码位置 | 实际实现要点 |
| --- | --- | --- |
| WSA-Base policy | &lt;code&gt;src/lerobot/policies/WSA_Base/modeling_wsa_base.py&lt;/code&gt; | Qwen3-VL-2B + action expert；支持 2D/3D query、Cosmos tokenizer 与 DA3 teacher。 |
| WSA-Large policy | &lt;code&gt;src/lerobot/policies/WSA_Large/modeling_wsa_large.py&lt;/code&gt; | Wan2.2-based model；推理入口为 &lt;code&gt;infer_action&lt;/code&gt;，输出 action chunk 后做 denormalization。 |
| MoT / experts | &lt;code&gt;WSA_Base/modeling_wsa_base.py&lt;/code&gt;、&lt;code&gt;WSA_Large/core/models/wan22/mot.py&lt;/code&gt; | 三路 expert 共享 token 流和依赖 mask；Large 变体由 &lt;code&gt;WSALarge&lt;/code&gt;/&lt;code&gt;WSALargeJoint&lt;/code&gt; 选择。 |
| 3D target | &lt;code&gt;WSA_Base/da3_teacher.py&lt;/code&gt;、&lt;code&gt;WSA_Large/core/models/wan22/future_3d_expert.py&lt;/code&gt; | 训练时调用 Depth Anything 生成中间层 target，压缩为 future-3D query。 |
| 数据与训练 | &lt;code&gt;launch/wsa_*_pretrain.sh&lt;/code&gt;、&lt;code&gt;src/lerobot/datasets&lt;/code&gt; | LeRobot v3 数据格式，多数据集采样和 action/state normalization。 |
| 真实机器人推理 | &lt;code&gt;evaluation/Real_Piper_Example&lt;/code&gt;、&lt;code&gt;evaluation/Real_Lift2_Example&lt;/code&gt; | GPU policy server 与机器人 client 分离，通过同步/WebSocket 请求闭环执行。 |&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 真实实验使用单臂 AgileX PiPER（7-DoF、三相机）与双臂 ARX Lift2（两条 7-DoF 手臂、三相机），包含 RGB block sorting、object organization、trash cleaning、pen holder placement、toy box organization、sweep trash、unzip pencil bag 七项任务。仿真使用 RoboTwin2.0 50 个双臂任务和 LIBERO 四个 suite；RoboTwin hard 模式包含背景和 distractor 随机化。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方仓库提供 RoboTwin、LIBERO、PiPER 和 Lift2 的 inference README；真实机器人示例把模型服务端和机器人端拆开，便于将 checkpoint 接到自己的硬件。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 结果摘要如下：&lt;/p&gt;
&lt;p&gt;| Benchmark | WSA1-B | WSA1-L | 对照观察 |
| --- | ---: | ---: | --- |
| RoboTwin2.0 hard（50 tasks） | 92.7% | &lt;strong&gt;93.1%&lt;/strong&gt; | 开源模型中最高，超过 Fast-WAM 91.8% 与 InternVLA-A1 89.6%。 |
| LIBERO average | 97.4% | &lt;strong&gt;98.2%&lt;/strong&gt; | 接近或超过多数 VLA/WAM，Large 在 Spatial/Goal/10 suite 均强。 |
| 真实 7-task SR | 77.5% | &lt;strong&gt;80.3%&lt;/strong&gt; | π0.5 为 54.9%，InternVLA-A1 为 39.2%。 |
| 真实 7-task completeness | 82.7% | &lt;strong&gt;86.5%&lt;/strong&gt; | 说明即使未完全成功，动作执行进度也更高。 |&lt;/p&gt;
&lt;p&gt;真实任务上，WSA-L 在 trash cleaning、sweep trash、unzip pencil bag 等需要多步空间规划和接触操作的任务上提升明显。&lt;strong&gt;【Analysis】&lt;/strong&gt; 这与 3D world/action mutual constraints 的预期一致，但论文没有做“只增加参数量”的严格控制，因此不能把全部增益归因于 WSA 结构。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-wsa1/wsa_study-crop.7w7k7kmxei.webp&quot; alt=&quot;WSA 三种联合目标的消融结果（论文 Figure 4）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在 RoboTwin2.0 上，action-only baseline SR 约 59.7%（另一处实验描述四舍五入为 60%）；加入 visual thinking 后约 76%，加入 3D world prediction 后约 75%，三者联合达到 80.14%。视频监督更擅长 appearance/语义和时序可见变化，3D 监督更擅长物体位姿、接触和几何约束。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-wsa1/pretrain_study-crop.39lx6vodjf.webp&quot; alt=&quot;WSA 预训练与后训练策略消融（论文 Figure 5）&quot;&gt;&lt;/p&gt;
&lt;p&gt;预训练消融从约 80% 提升到 89%，在预训练和 post-training 两阶段都保留 WSA modeling 后达到约 93%。&lt;strong&gt;【Analysis】&lt;/strong&gt; 这说明辅助目标不仅是“预训练正则项”：如果下游阶段移除 2D/3D 目标，模型会丢掉一部分可迁移的 world-action prior。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 泛化来自三个维度：&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-wsa1/vis_study-crop.2vfhg0g2rq.webp&quot; alt=&quot;WSA1 的视觉子目标、3D 世界预测与动作执行可视化（论文 Figure 6）&quot;&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;数据源泛化&lt;/strong&gt;：simulation 提供大量低成本交互，human video 提供手物关系与任务语义，real robot data 缩小 sim-to-real gap。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;空间泛化&lt;/strong&gt;：随机物体位置、姿态、背景和 distractor，检验模型是否学习几何而非像素记忆。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;embodiment 泛化&lt;/strong&gt;：同一预训练策略迁移到 PiPER、Lift2 以及仿真双臂任务。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;论文报告的 6,000 小时并非 6,000 小时真实机器人轨迹：表 1 中 InternData-A1 占 396M frames，AgiBot-World 占 206M frames，EgoDex 占 68M frames；真实机器人数据合计约 1,000 小时。&lt;strong&gt;【Analysis】&lt;/strong&gt; 因此“数据高效”更准确的含义是减少昂贵 real-robot hours，而不是减少所有 embodied frames。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; WSA1 可能有效有三层原因：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;3D prediction 把“动作对场景的影响”变成可监督的中间变量，减少仅凭当前图像回归动作的歧义。&lt;/li&gt;
&lt;li&gt;visual thinking 保留 VLA 的开放世界语义，使 3D geometry 不会变成与 instruction 脱节的几何重建。&lt;/li&gt;
&lt;li&gt;3D scene token 与 action token 双向 attention，令 forward 和 inverse dynamics 共享可校验的状态表示；动作既要能解释未来世界，未来世界也要能支持动作生成。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;建模对象的创新&lt;/strong&gt;：从 VLA/WAM 的单向联合分布转为 world–spatial–action 三元联合建模。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;约束方式的创新&lt;/strong&gt;：用 attention dependency rules 实现软因果归纳偏置，而不是额外串联一个规划器。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;数据配方的创新&lt;/strong&gt;：让 human、simulation、real 三种数据各自承担“任务意图、控制机制、现实校准”的角色。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;| 范式 | 主要联合对象 | 因果方向 | 主要缺口 |
| --- | --- | --- | --- |
| 2D VLA | 视觉/语言 → action | 单向 | 缺少预测和显式 3D dynamics。 |
| 2D WAM | future video + action | 多为 2D 单向 | 视频变化未必对应物理几何变化。 |
| 3D WAM | future 3D world + action | predict → execute | forward model 与 inverse model 未充分双向耦合。 |
| WSA1 | 2D visual + 3D world + action | world ↔ action，visual 受 3D 约束 | 仍依赖 teacher 和大量异构数据。 |&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;预训练 3D teacher 的 latent 足以表达 manipulation 所需的几何和接触信息。&lt;/li&gt;
&lt;li&gt;未来子目标图像和未来 3D scene 可以被压缩成与动作共享的 latent，而不会丢失控制关键信息。&lt;/li&gt;
&lt;li&gt;来自不同 robot、simulation 和 human video 的表示能够通过统一 observation/action schema 对齐。&lt;/li&gt;
&lt;li&gt;action chunk 和有限步 denoising 的计算延迟仍适合闭环控制。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;论文结论主要强调可扩展与数据效率，&lt;strong&gt;【Paper】&lt;/strong&gt; 没有单独列出完整的 limitation section，也没有报告长时记忆、失败恢复或 RoboChallenge2.0 训练代码。官方 README 的 TODO 仍包括 RoboChallenge2.0 workflow 和下一代 WSA1.5。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;【Analysis】teacher 依赖&lt;/strong&gt;：训练需要 Depth Anything/DA3 生成 3D target，teacher 的遮挡、尺度和跨相机误差可能被蒸馏进策略；代码中还要承担额外 teacher forward 成本。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Analysis】因果性仍是结构归纳偏置&lt;/strong&gt;：双向 attention 强制 token 互读，但并不等价于从干预数据中识别真实物理因果。论文没有做 action intervention 或 counterfactual world prediction 评测。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Analysis】评测规模有限&lt;/strong&gt;：真实实验只有 7 个桌面任务、每任务 30 个配置，尚不足以覆盖移动操作、柔性物体、工具使用和长时任务。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Analysis】参数量与训练配方混杂&lt;/strong&gt;：WSA-L 同时更大且 backbone 不同，WSA 与 baseline 的数据、训练步数和计算预算未完全严格匹配。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Analysis】部署成本&lt;/strong&gt;：Large 依赖 Wan2.2、text encoder 和 diffusion/flow scheduler；README 给出的训练需要 8×H200，实时性和显存门槛仍高。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;从“预测像素”转向“预测可控制状态”&lt;/strong&gt;：world model 不一定要生成逼真的视频，能否预测与 action decoder 对齐的 3D latent 可能更实用。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;把 forward/inverse consistency 变成数据筛选信号&lt;/strong&gt;：若一个演示的 action 无法解释预测的 3D 变化，或 3D 目标无法反推出 action，可在预训练前识别噪声轨迹。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;研究真实干预评测&lt;/strong&gt;：未来应加入“执行动作 A/B 后场景如何不同”的 counterfactual benchmark，而不仅是最终 success rate。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;更细的 embodiment factorization&lt;/strong&gt;：将任务、几何、动力学和机器人本体拆成可组合 token，有望减少每换一台机器人就重新 fine-tune 的成本。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;长时任务需要 memory&lt;/strong&gt;：当前 WSA1 的 action chunk 仍是短期闭环。WSA1.5 README 已提出 memory capabilities，说明下一步自然方向是把 3D world state 从短期 goal 扩展为可检索的长期场景记忆。&lt;/li&gt;
&lt;/ol&gt;</content:encoded><h:img src="https://pic.hana0721.top/72300463_p0_master1200.83amt5a3ia.webp"/><enclosure url="https://pic.hana0721.top/72300463_p0_master1200.83amt5a3ia.webp"/></item><item><title>Do World Action Models Generalize Better than VLAs? 论文精读</title><link>https://agusexp25.top/blog/paper-deep-dive-world-action-model-robustness</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-world-action-model-robustness</guid><description>精读 WAM 与 VLA 的鲁棒性对比：RoboTwin 2.0-Plus 和 LIBERO-Plus 如何用 7 类扰动检验视频时空先验、训练数据多样性与推理效率。</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文不提出一个新的 policy，而是回答一个很具体的问题：把视频生成 world model 改造成 World Action Model（WAM）之后，是否真的比典型 Vision-Language-Action（VLA）更能应对训练分布之外的视觉、语言和机器人状态？作者在单臂 LIBERO-Plus 与双臂 RoboTwin 2.0-Plus 上，统一测试公开 checkpoint，并把扰动拆成可复现的维度。&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; WAM 的优势更像是“预训练时已经学过视频中的运动规律”，而不是“推理时多算几步就必然更强”：它们在噪声、光照、干扰物布局上经常领先，但在相机视角和初始关节状态改变时并不稳；$π_{0.5}$ 依靠更丰富的机器人与网页数据也能达到相近甚至更好的结果。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;提出 &lt;strong&gt;RoboTwin 2.0-Plus&lt;/strong&gt;：在 50 个双臂任务上沿 7 个维度、21 个子维度施加结构化扰动，并给出 1 个 clean baseline 加 7 个正交分支的评测协议。&lt;/li&gt;
&lt;li&gt;将 WAM、经典 VLA 和混合方法（如 MOTUS、VLA-JEPA）放在 LIBERO-Plus 与 RoboTwin 2.0-Plus 上比较，而不是只报告单一干净测试集。&lt;/li&gt;
&lt;li&gt;分析视频 backbone 的时空先验、task-specific 数据多样性、action 生成方式与 inference latency 各自对鲁棒性的影响。&lt;/li&gt;
&lt;li&gt;给出可复用的 benchmark 代码与配置，官方仓库同时支持数据采集、扰动开关和策略评估。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文最后的结论是有条件的：WAM 通常对视觉扰动更鲁棒，但不是所有扰动都受益；推理开销则是现实部署的主要障碍。&lt;/p&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 典型 VLA 以 VLM 为 backbone，学习从当前历史状态 $h_t$ 到动作的条件分布：&lt;/p&gt;
&lt;p&gt;$$
\pi(a_t\mid h_t).
$$&lt;/p&gt;
&lt;p&gt;VLM 的 next-token 或 action diffusion 训练擅长语义和空间 grounding，却未必显式预测“执行动作后画面会怎样”。当测试环境改变光照、背景、杂物或相机时，策略可能依赖训练集中的外观捷径。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; WAM 则从视频生成模型出发。其视频 backbone 在互联网视频上学习时空变化，机器人微调阶段再让 latent 表示与动作关联。论文讨论的代表包括 Cosmos-Policy、GE-Act、LingBot-VA、Fast-WAM 和 DreamZero；MOTUS、VLA-JEPA 作为部分加入 world modeling 的混合路线单独分析。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这里的对照不是“有 world model / 没有 world model”的二元实验。模型同时改变了 backbone、action representation、训练数据、是否做 embodied pre-training、扩散步数和 action chunk，因此论文更准确的定位是&lt;strong&gt;系统性 robustness study&lt;/strong&gt;。它能发现设计的关联，但不能把所有差异归因于单一模块。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;h3&gt;3.1 评测对象&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 对每个候选 policy，在相同任务和初始条件下执行 clean 与扰动分支，记录 episode success rate。论文主要关心四个问题：&lt;/p&gt;
&lt;p&gt;| 问题 | 需要回答的证据 |
| --- | --- |
| RQ1：WAM 是否鲁棒？ | 两个 benchmark 的总体与分维度成功率 |
| RQ2：优势是否普遍？ | camera、robot、language、light、background、noise、layout 的分项结果 |
| RQ3：为何有差异？ | backbone 先验、训练数据与 action/world coupling 的对照 |
| RQ4：代价是什么？ | 相同设备上的每次 inference wall-clock |&lt;/p&gt;
&lt;h3&gt;3.2 扰动与成功率&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; RoboTwin 2.0-Plus 覆盖 50 个 Aloha-AgileX 双臂任务。完整评测是每任务 8 个配置：clean，以及 Camera、Robot、Language、Light、Background、Noise、Layout 七个只激活一个维度的分支；每个配置运行 50 episodes。总体分数是各扰动分支的平均成功率，而不是只看 clean baseline。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这种设计把“场景变了所以失败”和“策略本来就不会做任务”尽量分离：同一任务、同一模型、一次只打开一个开关。它仍然不是现实世界所有 shift 的分布，因为扰动幅度、组合方式和 simulator 物理都被预先规定。&lt;/p&gt;
&lt;h3&gt;3.3 WAM 与 VLA 的条件分解&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文用两种抽象描述差别。VLA 直接估计：&lt;/p&gt;
&lt;p&gt;$$
\pi_\theta(a_t\mid h_t).
$$&lt;/p&gt;
&lt;p&gt;WAM 可能联合生成未来状态与动作：&lt;/p&gt;
&lt;p&gt;$$
p_\phi(h_{t+1},a_t\mid h_t),
$$&lt;/p&gt;
&lt;p&gt;或先生成未来视觉状态、再由 inverse-dynamics model（IDM）解码动作：&lt;/p&gt;
&lt;p&gt;$$
p_\phi(h_{t+1}\mid h_t),g_\psi(a_t\mid h_t,h_{t+1}).
$$&lt;/p&gt;
&lt;p&gt;有些方法（如 GigaWorld-Policy）采取相反的 action-first 因果方向。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这不是声称两类 policy 在理论上不可互相表达；在有限数据、有限算力和不完美目标下，它们把学习难点放在不同位置：VLA 更依赖 embodied data 学动态，WAM 把一部分动态先验交给视频预训练，再学习 action 与未来状态之间的关系。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-world-action-model-robustness/perturbation-strip-crop.8dxlvzs3s9.webp&quot; alt=&quot;RoboTwin 2.0-Plus 的七类结构化扰动示例（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文的方法主体是“benchmark + comparative protocol”：环境生成器从 clean episode 出发，只打开一个 YAML perturbation branch，候选 policy 读取被扰动的 observation 和 instruction，随后以 success rate 汇总。代码侧的核心数据流是 &lt;code&gt;task_config/*.yml → RoboTwin task setup → render-time / scene-time perturbation → policy rollout → success check&lt;/code&gt;。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;七维扰动 taxonomy&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 七个维度与实际子维度如下：&lt;/p&gt;
&lt;p&gt;| 维度 | 子维度 | 具体变化 |
| --- | --- | --- |
| Sensor Noise | N1–N5 | motion / Gaussian / zoom / fog / glass blur |
| Light Conditions | L1–L4 | diffuse color、方向、specular、shadow |
| Camera Viewpoints | C1–C3 | 距离、球面位置、yaw/pitch/roll |
| Robot Initial States | 1 项 | 关节噪声与夹爪极端初值 |
| Background Textures | B1–B2 | 场景主题、桌面材质 |
| Objects Layout | O1–O2 | 干扰物数量、目标物位姿 |
| Language Instructions | R1–R3 | 对话包裹、常识改写、目标状态描述 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方仓库在 &lt;code&gt;task_config/&lt;/code&gt; 中把分支声明为 YAML。&lt;code&gt;demo_vision_noise.yml&lt;/code&gt; 让每帧 RGB 以 1.0 probability 注入五类噪声；&lt;code&gt;demo_light.yml&lt;/code&gt; 仅打开 lighting ablation；&lt;code&gt;demo_camera.yml&lt;/code&gt; 默认启用 C1/C3、关闭 C2 以避免仿真不稳定；&lt;code&gt;demo_language_plus.yml&lt;/code&gt; 组合 R1/R2/R3；&lt;code&gt;demo_background_plus.yml&lt;/code&gt; 和 &lt;code&gt;demo_objects_plus.yml&lt;/code&gt; 分别启用增强背景与目标位姿扰动。&lt;/p&gt;
&lt;h4&gt;LIBERO-Plus 与 RoboTwin 2.0-Plus&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 两套 benchmark 互补：LIBERO-Plus 是 MuJoCo/robosuite 上的单臂 Franka Panda，2 路 $256\times256$ 相机、7-dim delta EEF；RoboTwin 2.0-Plus 是 SAPIEN/ManiSkill3 上的 Aloha-AgileX 双臂，3 路 $320\times240$ 相机、14-dim joint position，控制频率约 25–30 Hz。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 如果某个模型在两者都稳定，证据比单一 simulator 更强；但两者 action space、camera 数量和训练 demo 数都不同，所以跨 benchmark 的绝对分数不能直接横向排序。&lt;/p&gt;
&lt;h4&gt;WAM 家族的设计分叉&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Cosmos-Policy&lt;/strong&gt; 把 robot state、future image 和 value estimates 编成 latent frames，在同一个 diffusion 过程中做 policy、world model 和 value prediction。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;GE-Act&lt;/strong&gt; 从 Genie Envisioner 的视频 latent 经轻量 flow-matching action decoder 产生 action trajectory。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;LingBot-VA&lt;/strong&gt; 在交错序列中自回归生成 future visual state 与 action，动作可看作 IDM 输出。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Fast-WAM&lt;/strong&gt; 联合去噪 state/action，但测试时可以省略显式视觉状态生成；它因此更快且不需要 task-agnostic embodied pre-training。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这些不是论文重新实现的统一模型；作者使用公开 checkpoint 或公开实现，因而结论应理解为“当前可用实现的 robustness profile”，而不是控制变量完全相同的架构竞赛。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 若把视觉历史、语言和动作都纳入状态 $h_t$，VLA 的直接策略为：&lt;/p&gt;
&lt;p&gt;$$
\pi(a_t\mid h_t).
$$&lt;/p&gt;
&lt;p&gt;WAM 的 IDM 形式为：&lt;/p&gt;
&lt;p&gt;$$
p(h_{t+1},a_t\mid h_t)=p(h_{t+1}\mid h_t)g(a_t\mid h_t,h_{t+1}).
$$&lt;/p&gt;
&lt;p&gt;其中 $p(h_{t+1}\mid h_t)$ 是视频 backbone 对未来视觉状态的分布，$g$ 将状态变化解码为 robot action。联合去噪方法则直接拟合 $p(h_{t+1},a_t\mid h_t)$。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 公式揭示了实验假设：若未来状态预测的时空先验能在噪声、光照和 clutter 下保持稳定，$g$ 就可以从较可靠的状态变化中生成动作；但相机位姿和 robot initial state 改变的是几何对应关系，单纯的视频先验未必足够。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 作者整理了不同模型的训练数据阶段。经典 VLA（如 $π_0$、OpenVLA-OFT、X-VLA）通常需要 cross-embodiment robot data；$π_{0.5}$ 还加入 high-level planning、VQA、captioning、grounding 和 mobile manipulation 数据。WAM 中 Cosmos-Policy 主要做 task-specific trajectories，LingBot-VA 使用约 16k 小时 cross-embodiment data，Fast-WAM 则只做 task-specific finetuning。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 为了在 RoboTwin 上比较 $π_{0.5}$，作者从预训练 checkpoint 出发，在完整 27.5k RoboTwin demonstrations 上训练 60k gradient steps：AdamW（$β_1=0.9,β_2=0.95$）、gradient clipping 1.0、cosine learning-rate decay（$2.5\times10^{-5}$ 到 $2.5\times10^{-6}$）、batch size 64，并采用 delta joint actions。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 评测时模型都处于 closed-loop rollout：policy 根据当前 observation 和 language instruction 输出 action chunk，环境执行后返回下一 observation。WAM 可能还要扩散生成 future visual state；因此其 runtime 不仅包含 action decoder，还包含 state denoising、VAE 与 autoregressive/KV-cache 等开销。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 同一设备的 wall-clock 对比如下：$π_{0.5}$ 为 63 ms/chunk，X-VLA 195 ms，Fast-WAM 190 ms，GE-Act 300 ms，Cosmos-Policy 390 ms，LingBot-VA 在 real-world 配置 480 ms、RoboTwin 配置 5230 ms；后者相对 $π_{0.5}$ 慢 83 倍。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方仓库 &lt;a href=&quot;https://github.com/Robot-Robustness/RoboTwin2.0-Plus&quot;&gt;RoboTwin2.0-Plus&lt;/a&gt; 是 benchmark 与数据采集实现，不是论文中所有 VLA/WAM 的统一训练仓库。&lt;code&gt;script/collect_data.py&lt;/code&gt; 读取 &lt;code&gt;task_config/&amp;#x3C;name&gt;.yml&lt;/code&gt;，构造 task class，调用 &lt;code&gt;setup_demo()&lt;/code&gt;、&lt;code&gt;play_once()&lt;/code&gt; 和 &lt;code&gt;check_success()&lt;/code&gt;；成功 episode 才保存 trajectory。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 关键实现位置包括：&lt;/p&gt;
&lt;p&gt;| 代码位置 | 实际职责 |
| --- | --- |
| &lt;code&gt;task_config/demo_*.yml&lt;/code&gt; | 选择 clean 或单一扰动分支、episode 数和相机/数据字段 |
| &lt;code&gt;envs/_base_task.py&lt;/code&gt; | 解析 sensor noise、camera、background、object、language 等开关 |
| &lt;code&gt;envs/camera/camera.py&lt;/code&gt; | 创建 head / wrist cameras 与相机配置 |
| &lt;code&gt;script/collect_data.py&lt;/code&gt; | 采集 episode、写 seed、保存成功 trajectory |
| &lt;code&gt;description/task_instruction_plus/&lt;/code&gt; | 提供 50 tasks × 50 variants 的语言 JSON |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 例如 &lt;code&gt;demo_objects_plus.yml&lt;/code&gt; 将 distractor 数量设为 3–15，并以 2 cm 的 x/y Gaussian noise 与 $±15^\circ$ yaw 扰动目标位姿；&lt;code&gt;demo_vision_noise.yml&lt;/code&gt; 让五种噪声在 episode 间循环。代码支持逐子维度开关，但论文主协议只汇报七个聚合分支。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-world-action-model-robustness/perturbation-strip-crop.8dxlvzs3s9.webp&quot; alt=&quot;RoboTwin 2.0-Plus 中 Camera、Robot、Language、Light、Background、Noise、Layout 的示例（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; RoboTwin 2.0-Plus 的 50 个双臂任务使用 clean + domain-randomized demonstrations；LIBERO-Plus 则是 40 个任务（4 suites × 10），两套 benchmark 的训练和控制频率不同。RoboTwin 评测统一使用单个模型覆盖所有任务；LIBERO 汇报更多公开 checkpoint。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; RoboTwin 上评估 X-VLA、MOTUS、LingBot-VA、Fast-WAM 以及重新 finetune 的 $π_{0.5}$。DreamZero 因 cross-embodiment 不兼容、Wan2.1-14B 重新训练成本高和超过 15 分钟 warm-up 被排除；GigaWorld-Policy 因 checkpoint 尚未公开，只进入架构比较。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; RoboTwin 2.0-Plus 结果（成功率 %）：&lt;/p&gt;
&lt;p&gt;| Model | Original | Camera | Robot | Language | Light | Background | Noise | Layout | Total |
| --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: |
| $π_{0.5}$ | 78.4 | 45.6 | 27.6 | 74.4 | 49.6 | 71.7 | 64.9 | 56.8 | 58.6 |
| X-VLA | 65.6 | 23.2 | 65.2 | 64.4 | 63.1 | 58.6 | 49.7 | 34.8 | 53.1 |
| MOTUS | 87.0 | 21.6 | &lt;strong&gt;85.0&lt;/strong&gt; | 83.2 | 84.6 | 84.4 | 43.1 | 82.8 | 71.5 |
| LingBot-VA | &lt;strong&gt;92.1&lt;/strong&gt; | 28.9 | 36.2 | &lt;strong&gt;87.3&lt;/strong&gt; | &lt;strong&gt;89.0&lt;/strong&gt; | &lt;strong&gt;91.3&lt;/strong&gt; | &lt;strong&gt;80.9&lt;/strong&gt; | &lt;strong&gt;87.9&lt;/strong&gt; | &lt;strong&gt;74.2&lt;/strong&gt; |
| Fast-WAM | 91.2 | 30.4 | 53.2 | 86.7 | 88.8 | 90.0 | 76.4 | 83.2 | 72.7 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; LingBot-VA 总体 74.2%，在七个扰动维度中的五个排名第一；Fast-WAM 72.7% 排第二。$π_{0.5}$ 的 clean 成功率只有 78.4%，扰动平均降至 58.6%，而 LingBot-VA 在 noise、light、layout 上分别为 80.9%、89.0%、87.9%。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; LIBERO-Plus 的关键总分是：$π_{0.5}$ 85.7%、Cosmos-Policy 82.2%、GE-Act 80.3%、VLA-JEPA 77.9%、Fast-WAM 51.5%。因此“WAM 必然超过 VLA”并不成立：在单臂 LIBERO 上，$π_{0.5}$ 既是最快的模型，也获得最高总体成功率。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-world-action-model-robustness/case-study-crop.7i14gjifek.webp&quot; alt=&quot;RoboTwin 2.0-Plus 中 $π_{0.5}$ 与 LingBot-VA 的三组失败/成功案例（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 案例显示，噪声下 $π_{0.5}$ 可能撞上 hammer，layout 下会撞到红色干扰块，强光下抓取对齐失败；对应的 LingBot-VA 在图中三例均完成任务。案例是定性证据，不能替代表格中的全量 episode 统计。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 最有信息量的“自然消融”来自同一 Fast-WAM 架构的两个 checkpoint：RoboTwin checkpoint 在 clean + domain-randomized 27.5k demonstrations 上训练，LIBERO checkpoint 只用 clean demonstrations。前者从原始 91.2% 降到扰动总分 72.7%；后者从原始 97.6% 暴跌到 51.5%，camera 16.4%、background 53.7%、noise 37.7%。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 由于 backbone 与 architecture 相同，这个对照强烈提示 task-specific data diversity 是必要条件；但它仍不是严格的随机种子消融，两个 checkpoint 还跨 benchmark、embodiment 和数据生成器，不能把 21.2 个百分点的差距全部归因于“是否 domain randomization”。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文也通过模型家族做结构性对照：MOTUS 使用 video backbone 但由额外 VLM 生成动作，在 RoboTwin 的 robot initial state 维度达到 85.0%；VLA-JEPA 用 human video 的 future-state objective 增强 VLA，在 LIBERO 达到 77.9%。这些中间结果说明，时空先验“如何接入”与“是否存在”同样重要。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-world-action-model-robustness/cosmos-pred-crop.13miky0j6h.webp&quot; alt=&quot;Cosmos-Policy 在噪声、光照和背景变化下预测未来图像的示例（论文 Figure 4）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; WAM 的优势主要集中在视觉外观扰动。Cosmos-Policy 在 LIBERO 的 noise、light 和 layout 取得 92.7%、96.5% 和 82.2%；未来图像在噪声输入下仍能恢复运动中的机械臂。相反，异常高饱和背景可能造成空间扭曲和颜色不一致。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 两个 benchmark 共同显示 camera viewpoint 与 robot initial state 是较难的维度。它们改变的不只是像素统计，而是视角到动作坐标、初始几何和接触轨迹的映射；视频预训练学到的自然运动先验不自动解决 embodiment calibration。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 推理速度表明 robustness 与 inference compute 不成正比：$π_{0.5}$ 63 ms/chunk 却在 LIBERO 取得 85.7%；LingBot-VA 在 RoboTwin 配置为 5230 ms/chunk 才取得 74.2%。Fast-WAM 省略测试时的显式状态生成后为 190 ms，但仍约为 $π_{0.5}$ 的 3 倍。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 论文证据支持三条相互作用的因果链：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;时空先验&lt;/strong&gt;：视频 backbone 见过大量物体运动、手部运动和镜头变化，因此对 blur、light 等视觉扰动更不容易丢失动态线索。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;动态—动作耦合&lt;/strong&gt;：IDM-style WAM 先问“未来状态应该是什么”，再解释“动作怎样造成它”，比只从当前像素回归动作多了一个结构化中间变量。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;数据多样性&lt;/strong&gt;：Fast-WAM 的跨 benchmark 对照说明先验不是万能的；若 task-specific demonstrations 只有 clean 场景，video prior 仍可能在未见背景和 camera 上失败。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这篇工作的真正创新在于把 robustness 从“某个模型在 clean benchmark 的一个数字”变成可诊断的 profile：扰动 taxonomy、正交配置、两个 embodiment、模型训练数据表和 runtime 表被放在同一个分析框架里。RoboTwin 2.0-Plus 的代码还把 benchmark 变成可扩展的 declarative test suite，而不是一次性脚本。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;| 维度 | 经典 VLA | WAM / hybrid |
| --- | --- | --- |
| Backbone | VLM，常以 next-token/action objective 预训练 | 视频生成 world model 或附加 video objective |
| 核心条件 | 当前观测直接到 action | 联合生成 future state/action，或 IDM 解码 |
| 鲁棒性来源 | 更丰富的 robot/web/human data | web-scale video 的 spatiotemporal prior + embodied/task finetune |
| 推理代价 | 通常较低 | diffusion denoising、VAE、AR/KV cache 额外开销 |
| 失败模式 | 对外观/遮挡分布敏感 | 对几何、语言推理和异常背景仍可能敏感 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 所以工程选择不是“WAM 取代 VLA”，而是权衡：如果部署预算容许 diffusion、且目标是视觉扰动下的泛化，WAM 值得考虑；如果需要高频控制、已有大量多样机器人数据或 action latency 更重要，$π_{0.5}$ 一类 VLA 可能更合适。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 实验隐含的关键假设包括：成功率足够代表 policy quality；单维度扰动可以隔离 failure cause；公开 checkpoint 的训练数据和实现差异可以通过说明进行公平比较；视频预训练中的动态先验与机器人操作存在可迁移关系。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这些假设对 benchmark 很实用，但要谨慎外推到真实机器人：连续轨迹质量、接触力、安全性、恢复行为和长尾组合扰动都没有被 success rate 完整刻画。&lt;/p&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文的评测以 simulation benchmark 为主，没有在本文中系统报告真实机器人实验；DreamZero 因 checkpoint、算力和 warm-up 限制无法纳入量化比较；RoboTwin 训练时已有一定 background/language randomization，可能与 Plus 分支重叠；主要指标是 success rate，未详细分析 failure mode 或 trajectory quality。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 第一，WAM、VLA 的 action representation、chunk size 和控制频率不同，例如 LingBot-VA 使用 30-dim absolute EEF + joints、chunk 4，而 $π_{0.5}$ 使用 50-step chunk；这会影响扰动敏感性与 latency，不能只看 architecture 标签。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 第二，LIBERO 与 RoboTwin 的总分不是同一数据分布上的 paired measurement。第三，camera C2 默认关闭，完整的 3D viewpoint shift 尚未成为主结果。第四，语言 R1/R2/R3 的组合分支把不同难度混在一起，若要研究 language reasoning，应该使用仓库提供的 &lt;code&gt;demo_language_r2.yml&lt;/code&gt; / &lt;code&gt;demo_language_r3.yml&lt;/code&gt; 做细分。&lt;/p&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这篇论文最值得带走的不是某个冠军数字，而是三条研究路线：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;把 robustness 当作训练目标的分解，而不是最后的测试标签。&lt;/strong&gt; noise、light、layout 与 camera、robot state 应分别建模，模型可能在前者变强、后者变弱。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;将视频先验与 calibration 先验结合。&lt;/strong&gt; WAM 擅长外观与动态，但几何变化需要 camera-to-action、proprioception 和 embodiment-specific adaptation；两者结合可能比继续增大视频 backbone 更划算。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;同时优化鲁棒性与 latency。&lt;/strong&gt; Fast-WAM 的“训练时预测、测试时省略视觉生成”说明 world-model supervision 不必等于每一步都生成完整视频；蒸馏、少步 denoising、action-only heads 和 asynchronous execution 是自然方向。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;扩展 benchmark 的因果诊断。&lt;/strong&gt; 除 success rate 外加入 recovery、collision、trajectory smoothness、contact stability，并测试组合扰动和真实 camera/robot calibration shift，才能判断时空先验是否真的提升了可部署性。&lt;/li&gt;
&lt;/ol&gt;</content:encoded><h:img src="https://pic.hana0721.top/68232005_p0_master1200.60uu51sjdo.webp"/><enclosure url="https://pic.hana0721.top/68232005_p0_master1200.60uu51sjdo.webp"/></item><item><title>What Matters for Latent Actions in Robot Learning 论文精读</title><link>https://agusexp25.top/blog/paper-deep-dive-what-matters-latent-actions</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-what-matters-latent-actions</guid><description>系统拆解 What Matters for Latent Actions in Robot Learning：41 项设计选择、三阶段训练、代理指标与真实机器人验证。</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;论文名称&lt;/strong&gt;：《What Matters for Latent Actions in Robot Learning》&lt;br&gt;
&lt;strong&gt;作者&lt;/strong&gt;：Xizhou Bu、Qingda Hu、Lei Zhou、Lingfeng Zhang、Yingbo Tang、Zihao Liu、Xinyi Tao、Zhiqiang Ma、Qingqiu Huang、Chufeng Tang、Hongbo Wang、Jing Zhang、Jiayi Ma、Hangjun Ye、Wei Li、Xiaoshuai Hao&lt;br&gt;
&lt;strong&gt;论文链接&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2608.19613&quot;&gt;arXiv&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;项目主页&lt;/strong&gt;：&lt;a href=&quot;https://carldegio.github.io/latent_action.github.io/&quot;&gt;LAM project&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;代码链接&lt;/strong&gt;：&lt;a href=&quot;https://github.com/XizoB/What-Matters-for-Latent-Actions-in-Robot-Learning&quot;&gt;GitHub&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-what-matters-latent-actions/main.8z79iaszqq.webp&quot; alt=&quot;论文 Figure 1：latent-action 学习的三阶段流程与 41 项设计选择&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文把 latent action learning 统一成可比较的 autoencoding 框架，系统评估 latent-action 建模范式、正则化、动作头、维度、归一化和数据规模，回答“哪些设计真正改善机器人控制”，而不是只报告某一个方法的孤立结果。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 研究覆盖 41 个去重后的设计选择、三个 benchmark（LIBERO、LIBERO-Plus、RoboTwin2.0）和 Franka Panda 真实实验，主要结论是：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;原始 LAPO（IDM-FDM）在直接使用 raw video 时仍是最强基线之一；$\Delta$DINO 这种简单的语义特征差分也很有竞争力。&lt;/li&gt;
&lt;li&gt;连续正则化方法的类型差异小于正则化强度差异；VAE 是默认首选，VQ-VAE 在 zero-shot 鲁棒性上更有优势。&lt;/li&gt;
&lt;li&gt;latent action 维度 32 在 7-DoF 单臂和 14-DoF 双臂之间取得最稳健的折中；已有合适正则时不必额外归一化。&lt;/li&gt;
&lt;li&gt;FDM 重建指标比训练 probe 解码 physical action 更能预测下游表现，但只适合粗粒度筛选。&lt;/li&gt;
&lt;li&gt;用 latent action 微调 VLM backbone，且扩大 Stage-II 视频规模，会稳定提升下游策略和真实机器人成功率。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; VLA 需要把视觉、语言和 physical action 对齐，但机器人 action data 的规模远小于互联网图像/视频。Latent Action Model（LAM）试图从无标注视频的相邻帧中提取紧凑的 $z_t$，把“状态如何变化”作为 physical action 的替代监督，从而把海量 video-only data 接入机器人学习。&lt;/p&gt;
&lt;p&gt;已有方法大致分两类：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;IDM-FDM&lt;/strong&gt;：Inverse Dynamics Model 从 $(o_t,o_{t+1})$ 推断 $z_t$，Forward Dynamics Model 再用 $(o_t,z_t)$ 重建未来帧，代表是 LAPO、LAOF、CoMo。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CFD-AE&lt;/strong&gt;：先计算 $\Delta$RGB、$\Delta$DINO 或 optical flow，再用 Encoder/Decoder 压缩和重建差分。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 过去工作往往只改一个模块、换一套数据和 action head，导致“方法更好”与“实验配方更好”混在一起。这篇论文的价值不在于提出全新的 LAM，而在于把这些选择放到同一坐标系中，测量它们对 downstream policy 的真实影响。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在时间 $t$，机器人观察图像 $o_t$，执行 physical action $a_t\in\mathbb{R}^{d_a}$ 并到达 $o_{t+1}$。LAM 学习低维 latent action $z_t\in\mathbb{R}^{d_z}$，使其包含从当前帧到未来帧的 transition information。&lt;/p&gt;
&lt;p&gt;轨迹可写成：&lt;/p&gt;
&lt;p&gt;$$
\tau=(o_t,a_t,z_t,o_{t+1},l)_{t=1}^{T},
$$&lt;/p&gt;
&lt;p&gt;其中 $l$ 是语言指令。训练分为三阶段：&lt;/p&gt;
&lt;p&gt;| 阶段 | 数据 | 目标 | 是否需要 physical action |
| --- | --- | --- | --- |
| Stage I Pre-training | 无标注视频帧 | 学习 LAM 与 transition representation | 否 |
| Stage II Mid-training | 语言标注视频 + 自动生成 $z_t$ | 用 latent action 微调 VLM backbone | 默认否，可做可访问对照 |
| Stage III Post-training | 机器人示教 $(o_t,a_t,l)$ | 学 physical-action policy | 是 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Stage I 使用 700M spatiotemporal Transformer，随机时间下采样因子来自 ${1,2,3,4,5}$，帧被 center-crop 到 $224\times224$；Stage II/III 使用 Qwen3-VL-4B 与 OpenVLA-OFT 配方。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-what-matters-latent-actions/cfm.7i14gjov4h.webp&quot; alt=&quot;论文 Figure 2：LAPO、LAOF、CoMo 与 CFD-AE 的统一比较&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 统一数据流是：相邻观测进入 LAM 得到 $z_t$；Stage-II 用 $(o_t,z_t,l)$ 微调 VLM；Stage-III 再把 VLM 表征接到 physical-action head。IDM-FDM 通过未来帧重建学习隐式 transition，CFD-AE 则直接重建预定义的帧差分。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;Latent-action modeling&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;LAPO&lt;/strong&gt;：$z_t=\mathrm{IDM}(o_t,o_{t+1})$，$\hat o_{t+1}=\mathrm{FDM}(o_t,z_t)$。优点是无需额外预处理，直接从 raw frames 学习。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;LAOF&lt;/strong&gt;：在 LAPO 的未来帧重建外，再由 FlowDecoder 重建 optical flow；论文分别测试 RAFT 与 SEA-RAFT。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CoMo&lt;/strong&gt;：将 IDM 的未来帧输入替换为 $\Delta$DINO，以减轻 causal leakage。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CFD-AE&lt;/strong&gt;：$z_t=\mathrm{Encoder}(\Delta_t)$，$\hat{\Delta}_t=\mathrm{Decoder}(z_t)$，其中 $\Delta_t$ 可为 $\Delta$RGB、$\Delta$DINO 或 optical flow。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 这四种方法共享 latent dimension 和 autoencoding 预算，因此比较重点是“motion signal 从哪里来”，而不是网络容量差异。&lt;/p&gt;
&lt;h4&gt;正则化&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 总目标为 $\mathcal{L}=\mathcal{L}&lt;em&gt;{method}+\lambda&lt;/em&gt;{reg}\mathcal{L}_{reg}$，比较 AE、VQ-VAE、VAE、Sparsity 和 SIGReg：&lt;/p&gt;
&lt;p&gt;| 方法 | latent 约束 | 直觉 |
| --- | --- | --- |
| AE | 无额外约束 | 重建能力最强但可能 shortcut |
| VQ-VAE | codebook 离散化 | 学可复用 action prototypes |
| VAE | KL 到 $\mathcal{N}(0,I)$ | 连续、平滑、可采样 |
| Sparsity | VCM + $\ell_1/\ell_2$ | 少量维度激活、降低冗余 |
| SIGReg | 随机投影后匹配高斯 | 保持各向同性、避免 collapse |&lt;/p&gt;
&lt;h4&gt;Latent action integration&lt;/h4&gt;
&lt;p&gt;给定 $h_t=\mathrm{VLM}_{\psi}(o_t,l)$，论文比较五种 action head：DAP（$h\to a$）、LAP（$h\to z\to a$）、JAP（$h\to[z,a]$）、JAP-DAP 和 JAP-LAP。DAP 只把 latent action 当 Stage-II 的辅助监督；LAP 在推理时保留 latent bottleneck；JAP 则让 latent 与 physical action 从同一个高层特征并行预测。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-what-matters-latent-actions/actionhead.232ly48iyn.webp&quot; alt=&quot;论文 Figure 4：不同 action head 的跨 benchmark 平均性能&quot;&gt;&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;LAPO 重建：&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;$$
z_t=\mathrm{IDM}(o_t,o_{t+1}),\qquad \hat{o}&lt;em&gt;{t+1}=\mathrm{FDM}(o_t,z_t),
$$
$$
\mathcal{L}&lt;/em&gt;{recon}=\lVert o_{t+1}-\hat{o}_{t+1}\rVert_2^2.
$$&lt;/p&gt;
&lt;p&gt;其中 $z_t$ 是需要被压缩的 transition code，$\hat{o}_{t+1}$ 是 FDM 的预测帧；该损失迫使 latent action 携带足以解释状态变化的信息。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;VAE 正则：&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;$$
\mathcal{L}&lt;em&gt;{reg}^{VAE}=D&lt;/em&gt;{KL}\big(p_{IDM}(z_t|o_t,o_{t+1}),|,\mathcal{N}(0,I)\big).
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; $\lambda_{reg}$ 决定“保留 transition 信息”和“限制 latent 容量”的平衡；过大时 latent 过于规整，FDM 反而无法重建真实变化。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Physical-action 训练：&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;$$
\mathcal{L}&lt;em&gt;{latent}=\lVert z_t-\hat z_t\rVert_2^2,\qquad
\mathcal{L}&lt;/em&gt;{act}=\lVert a_t-\hat a_t\rVert_2^2.
$$&lt;/p&gt;
&lt;p&gt;JAP 使用 $\mathcal{L}&lt;em&gt;{latent}+\mathcal{L}&lt;/em&gt;{act}$，DAP/LAP 在各自阶段使用对应分支的损失。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Stage I 在约 5,900 万帧的混合 video-only corpus 上训练 150k steps；数据包括 OXE 子集以及 Robotwin、Liberoplus。Stage II 用 LAM 的 IDM 自动标注 $z_t$，再以 latent action 监督 Qwen3-VL-4B；Stage III 用 LIBERO、LIBERO-Plus 或 RoboTwin 的 physical action 做策略后训练。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 推理阶段只需当前 front-view RGB observation 与语言指令。VLM 产生 $h_t$，随后由 DAP/LAP/JAP action head 输出 physical action；评测不使用 wrist camera、joint state 或数据增强，以隔离 latent-action backbone 的影响。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方 GitHub 仓库在本次核对时仅包含 README，未提供模型定义、DataLoader、训练脚本、配置或推理实现。因此无法把论文中的 IDM/FDM、正则化和 action head 映射到具体代码文件；项目页提供的模型与数据链接也不能替代仓库源码。文章中的实现细节均以论文正文和附录为准。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; LIBERO 是 7-DoF 单臂 end-effector delta control；LIBERO-Plus 在相同任务上加入 RobotInit 等扰动，本文报告最具挑战的 RobotInit；RoboTwin2.0 是 14-DoF 双臂 joint-position control，选取 12 个任务。每个消融通常汇报 3 个随机种子的平均成功率。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-what-matters-latent-actions/metrics.8adzya5h2c.webp&quot; alt=&quot;论文 Figure 5：四种 latent-action proxy metric 与下游性能的相关性&quot;&gt;&lt;/p&gt;
&lt;p&gt;代理指标包括负的 Linear/MLP probe loss、SSIM Gain 和 MSE Gain。前两者测 latent 是否能解码 physical action，后两者测 FDM 是否比“直接复制当前帧”更好地重建未来帧。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在七种建模范式的跨 benchmark 平均中，排序为 LAPO 0.7327 &gt; $\Delta$DINO 0.7280 &gt; CoMo 0.7167 &gt; $\Delta$RGB 0.6973 &gt; LAOF 0.6907 &gt; SEA-RAFT 0.6433 &gt; RAFT 0.6427。LAPO 不需要 optical-flow 预处理，说明简单的 raw-frame IDM-FDM 仍然是强基线；$\Delta$DINO 接近 LAPO，表明预训练语义空间本身提供了有效归纳偏置。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; optical flow 并没有带来预期收益：像素位移会丢掉接触、遮挡、边界变化等 transition cues，且估计误差会传播到 latent。LIBERO-Plus 的噪声扰动进一步放大了这一问题。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 连续正则化的类型并非主导因素，强度才是关键。推荐值为 VAE $10^{-7}$、Sparsity $10^{-5}$、SIGReg $10^{-3}$，VQ-VAE 为 1；VQ-VAE 在 LIBERO-Plus 的平均成功率 0.517，高于 AE 0.445、VAE 0.433、Sparsity 0.468 和 SIGReg 0.467，但在其他 benchmark 不一定占优。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-what-matters-latent-actions/latentdims.1hsybtf9py.webp&quot; alt=&quot;论文 Figure 7：latent action 维度对三个 benchmark 的影响&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; action integration 上，DAP 最弱，LAP 更强，JAP 以及先联合微调再接 DAP/LAP 的混合方案整体最好。解释是 latent action 不应只作为一次性的 Stage-II 标签，而应在 downstream training 中持续约束 backbone，同时避免过窄的 latent bottleneck 直接限制 physical action。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; $d_z=32$ 是跨 embodiment 的稳健折中：LIBERO 上 $d_z=16$ 得到 0.926、$d_z=32$ 为 0.922；LIBERO-Plus 上 $d_z=8$ 为 0.526、$d_z=32$ 为 0.516；RoboTwin2.0 上 $d_z=32$ 达到 0.856，明显高于 $d_z=8$ 的 0.802。适当正则化后不归一化 latent action 更好，33 个方法- benchmark 组合中 28 个受益，平均提升 +0.0115。&lt;/p&gt;
&lt;p&gt;Stage-II 数据规模从 Robotwin+Liberoplus（14.5%）扩展到完整约 59M 帧后，三个 benchmark 都提升，LIBERO-Plus 的增益最高可达 9.0%，说明 latent-action VLM tuning 存在稳定的 scaling trend，而不只是某个 action head 的偶然收益。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-what-matters-latent-actions/realworld.6po8yt89su.webp&quot; alt=&quot;论文 Figure 8：Franka Panda 真实机器人任务与 LA-Tuned 对比&quot;&gt;&lt;/p&gt;
&lt;p&gt;真实实验中，OpenVLA-OFT（LA-Tuned）在 400 次 rollout 中成功 317 次，原始 OpenVLA-OFT 成功 259 次，整体成功率从 64.75% 提升到 79.25%；10k 个 Stage-III steps 时 LA-Tuned 已达 85.0%，超过 baseline 在 40k steps 的 76.25%。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; latent action 的有效性来自三个互补因素：第一，FDM 重建迫使 representation 关注可预测的状态转移；第二，VLM backbone 在大规模视频上获得 motion-aware visual features；第三，LAP/JAP 把这些 features 与 physical control 保持结构化连接。它不是把 latent 当作“更短的 action token”，而是把 latent 当作视觉表征到控制之间的中间坐标系。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文的创新主要是实验方法论：统一 autoencoding 框架、跨 41 项选择的 controlled study、代理指标相关性分析以及 VLM latent-action scaling law。与提出一个新网络相比，这种系统基准更适合指导后续 LAM 工程取舍。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 传统 LAM 论文常围绕单一正则或动作头证明有效；本文把“latent 如何学”“latent 如何接入 policy”“如何评价 latent”拆成三个正交问题，并显示强基线、超参数和训练阶段耦合关系。结论因此更像设计准则，而非一个不可替换的模型配方。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 主要假设包括：相邻帧足以提供可学习的 transition signal；自动生成的 latent action 可以作为 VLM 的稳定监督；video-only 表征的提升能迁移到 physical action policy。&lt;strong&gt;【Analysis】&lt;/strong&gt; 这些假设在 front-view、有限任务和固定控制接口下成立，但不代表所有机器人 embodiment 或长时程任务都成立。&lt;/p&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文强调 proxy metric 不能取代完整 downstream evaluation：Pearson 相关性较高，但 Spearman 相关性明显较低，因此只能做粗粒度筛选，不能可靠地给模型排序。跨 latent dimension 比较时，所有 proxy 的相关性还会下降。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 研究仍主要使用单帧 front-view 输入，Stage-I 的 700M Transformer 和 8×H200 训练成本很高；RoboTwin2.0 只选 12 个任务；官方仓库暂未提供可复现实验代码。因此，结论对多视角、proprioception、长 horizon 和更低算力设置的外推仍需验证。&lt;/p&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;先选强基线，再调正则强度。&lt;/strong&gt; LAPO + VAE($10^{-7}$) + $d_z=32$ 是合理起点，避免一开始堆叠复杂 optical-flow 或稀疏正则。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;把 latent 保留到 policy learning。&lt;/strong&gt; 若有 physical action labels，JAP/JAP-LAP 的联合训练比只在预训练阶段使用 latent 更有说服力。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;代理指标应按同一维度使用。&lt;/strong&gt; FDM 的 SSIM/MSE Gain 更贴近 transition，但最终模型选择仍必须回到真实任务成功率。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;数据规模是可扩展杠杆。&lt;/strong&gt; 在 Stage-III 配方固定时扩大 video-only Stage-II 数据仍有收益，说明机器人数据稀缺并不意味着 representation 学习无法扩展。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;值得继续研究的方向&lt;/strong&gt;：从单帧 latent action 走向 history-aware latent、把接触/力觉纳入 transition supervision，以及设计能跨 action dimension 校准的 proxy metric。&lt;/li&gt;
&lt;/ol&gt;</content:encoded><h:img src="https://pic.hana0721.top/112236596_p0_master1200.232gogbiox.webp"/><enclosure url="https://pic.hana0721.top/112236596_p0_master1200.232gogbiox.webp"/></item><item><title>VTAM 论文精读：让机器人用触觉预测接触动力学</title><link>https://agusexp25.top/blog/paper-deep-dive-vtam</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-vtam</guid><description>精读 VTAM：把 GelSight 触觉流纳入视频世界模型，并用虚拟力正则抑制视觉主导，在薯片抓取、黄瓜削皮和白板擦拭上实现稳健接触控制。</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-vtam/overview.webp&quot; alt=&quot;VTAM system overview from paper Figure 1&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; VTAM（Video-Tactile Action Model）把第三人称相机、腕部相机和 GelSight 触觉图像编码到同一个视频 latent 空间，预测未来视觉与触觉变化，再由条件 Diffusion Policy 联合生成动作、状态和虚拟力。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;以预训练 video transformer 为 backbone，通过轻量 modality-transfer finetuning 接入触觉，不需要 tactile-language paired data 或独立触觉预训练。&lt;/li&gt;
&lt;li&gt;用交替的 in-view self-attention 与 cross-view attention 建模视觉—触觉的时空动力学，而不是把触觉当作策略末端的额外 token。&lt;/li&gt;
&lt;li&gt;从 GelSight 形变光流构造三维 virtual force proxy，并把它放进动作去噪目标，缓解训练中的 modality collapse。&lt;/li&gt;
&lt;li&gt;在薯片抓取放置、黄瓜削皮、不同高度与倾角的白板擦拭上，分别达到 90%、85% 和 95% 成功率。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 视觉适合识别物体和几何，但在抓取遮挡、滑移、柔性物体变形等场景中，关键接触状态并不可靠地出现在视觉 token 里。已有 tactile-augmented VLA 多采用语义空间投影或 policy 末端拼接，模型必须在面向静态语义对齐的 latent 中间接学习接触物理；高频触觉梯度很容易被视觉梯度压制。&lt;/p&gt;
&lt;p&gt;生成式 world model 提供了另一条路线：用未来观测约束模型学习动力学。VTAM 的问题是如何把局部、高频、接触界面的形变动态纳入视频世界模型，同时保证这些信号真的影响动作生成。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 因此 VTAM 的关键不只是“多一个传感器”，而是把触觉提升为可预测的状态变量，再用辅助目标把它与控制梯度绑定。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在时间 $t$，模型接收两路 RGB-D 视觉流、GelSight tactile stream、语言指令以及机器人 proprioceptive state。每个视图经 VAE 编码为连续 latent $z_t^v$，其中 $v=1,2$ 是两路相机，$v=3$ 是触觉。&lt;/p&gt;
&lt;p&gt;输出包含未来视频 latent、未来触觉 latent，以及长度为 $H$ 的动作、状态和虚拟力序列。动作 $a\in\mathbb{R}^7$ 表示 6-DoF 末端位姿与 1D 夹爪宽度，状态 $s\in\mathbb{R}^{16}$，虚拟力 $f\in\mathbb{R}^3$。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-vtam/model-arch.45iem79e0v.webp&quot; alt=&quot;VTAM architecture from paper Figure 2&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 三路 VAE latent 经过 28 个交替注意力块形成 visuo-tactile representation；该表示通过 cross-attention 条件化 action diffusion head，同时预测 future actions、future states 与 future forces。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;多视图视频—触觉世界模型&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 每个 block 先在单一视图内做 self-attention，保留相机画面或触觉形变的空间结构；再把三路 token 拼接后做 cross-view attention，让视觉运动与接触变形交换信息。这样既能表达同一帧内的局部压力分布，也能表达跨帧的滑移与接触转变。&lt;/p&gt;
&lt;h4&gt;虚拟力正则&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 令 $I_0$ 为无接触触觉参考帧，$I_t$ 为当前帧。由稠密光流 $u_t=(u_x,u_y)$ 计算：&lt;/p&gt;
&lt;p&gt;$$
f_x=\mathbb{E}[u_x],\qquad f_y=\mathbb{E}[u_y],\qquad f_z=\mathbb{E}[\nabla\cdot u_t].
$$&lt;/p&gt;
&lt;p&gt;$f_x,f_y$ 近似切向剪切，$f_z$ 用形变场散度近似法向压缩。它不是标定后的物理力，而是与接触形变几何相关的低维 proxy；预测它比重建整张高分辨率触觉图更容易稳定训练。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Stage I 在未来多视图 latent 上做 flow matching：&lt;/p&gt;
&lt;p&gt;$$
\mathcal{L}&lt;em&gt;{\mathrm{stage1}}=\mathbb{E}\left[|v&lt;/em&gt;\theta(z_t,t)-v^*|_2^2\right].
$$&lt;/p&gt;
&lt;p&gt;Stage II 把动作、虚拟力和状态拼成联合目标 $z_0=[a;f;s]$，条件 token 为 $c=[0_{10};s_t]$。最终目标是：&lt;/p&gt;
&lt;p&gt;$$
\mathcal{L}&lt;em&gt;{\mathrm{stage2}}=\mathcal{L}&lt;/em&gt;{\mathrm{action}}+\lambda_1\mathcal{L}&lt;em&gt;{\mathrm{state}}+\lambda_2\mathcal{L}&lt;/em&gt;{\mathrm{force}}.
$$&lt;/p&gt;
&lt;p&gt;其中三项分别匹配动作、状态和虚拟力的 velocity field；$\lambda_1,\lambda_2$ 控制状态与触觉监督强度。联合去噪让动作不仅拟合历史轨迹，还要与可预测的物理状态转移一致。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 作者采用两阶段训练。Stage I 只微调预训练视觉 backbone，使其先学会未来视觉—触觉 latent dynamics；Stage II 固定这一对齐后的世界表示，引入 action/state/force 联合 flow matching。真实数据由人工 teleoperation 收集，包含 100 条薯片、105 条擦拭和 61 条削皮轨迹。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 先对齐世界表示再学习控制，隔离了“模态迁移”和“动作优化”造成的分布漂移；这是比端到端同时训练更易收敛的工程选择。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 推理时，当前视觉—触觉观测进入世界模型，action diffusion head 预测未来动作 chunk；控制器执行动作并在下一次更新时读取新的真实观测。论文报告数据采集与执行频率为 30 Hz，策略推理频率为 1 Hz。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 项目页链接到 &lt;code&gt;https://github.com/haorany7/VTAM&lt;/code&gt;，但截至本文写作该地址返回 HTTP 404，未能获得官方模型定义、数据加载器、训练配置或推理脚本。因此下表只列出论文中可确认的接口，代码行为均标记为“论文未明确说明”。&lt;/p&gt;
&lt;p&gt;| 组件 | 论文可确认内容 | 官方代码状态 |
| --- | --- | --- |
| 感知输入 | 两路相机 + GelSight + proprioception | 仓库 404，无法核验 |
| 世界模型 | 预训练 video transformer，28 个交替注意力块 | 仓库 404，无法核验 |
| 动作头 | 条件 diffusion，联合预测 action/state/force | 仓库 404，无法核验 |
| 数据 | 100/105/61 条三类任务 teleoperation 轨迹 | 仓库 404，无法核验 |&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-vtam/experiment-setup.1ow67a7hgi.webp&quot; alt=&quot;VTAM robot experiment setup from paper Figure 3&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 平台是 6-DoF xArm6 平行夹爪，夹爪手指安装 GelSight Mini；两台 Intel RealSense D455 组成双头视觉。每个模型在四类真实试验上评估，每项 20 次，总计 80 次；基线包括 Genie Envisioner、视觉版 $\pi_{0.5}$ 和简单 tactile injection。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;| 模型 | Chip | Peel | Wipe |
| --- | ---: | ---: | ---: |
| Genie Envisioner | 0% | 0% | 2.5% |
| $\pi_{0.5}$（Vision） | 10% | 0% | 0% |
| $\pi_{0.5}$ + Tactile | 5% | 0% | 0% |
| &lt;strong&gt;VTAM&lt;/strong&gt; | &lt;strong&gt;90%&lt;/strong&gt; | &lt;strong&gt;85%&lt;/strong&gt; | &lt;strong&gt;95%&lt;/strong&gt; |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; VTAM 在薯片任务中能根据触觉确认是否真正夹住；削皮时保持连续剪切力；擦拭时适应平面与倾斜白板。视觉基线常在抓取失败后仍继续放置，或在倾斜表面施加过大法向力。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-vtam/compare-full.webp&quot; alt=&quot;Qualitative comparison from paper Figure 4&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 薯片任务上的 10 次消融结果如下：&lt;/p&gt;
&lt;p&gt;| 变体 | 触觉集成方式 | 成功率 |
| --- | --- | ---: |
| Vision-only | 无 | 0% |
| Late-Fusion Tactile | 仅下游注入 | 0% |
| No Virtual-Force Reg. | Joint latent | 10% |
| VTAM | Hierarchical world model | 90% |&lt;/p&gt;
&lt;p&gt;这组结果同时回答两个问题：只在动作头拼接触觉不足以学习接触动力学；没有 virtual-force regularization 时，视觉梯度会重新占主导。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-vtam/tactile-prediction.webp&quot; alt=&quot;Tactile stream prediction from paper Figure 5&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 视频 backbone 的预测可保持两路相机的时间一致性，并生成合理的触觉演化；细节有轻微模糊，但作者认为不影响操作相关信息。论文未报告跨机器人本体或大规模未见任务的额外数字，因此不能把该结果外推成通用 zero-shot 能力。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 视觉 latent 负责全局几何与语义，触觉 latent 负责接触界面的高频变化；预测未来而非被动拼接，使模型必须解释“当前形变将如何演化”。virtual force 又给触觉路径提供直接梯度，避免 action loss 仅靠视觉就达到局部最优。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 创新是三个机制的组合：共享视频 latent 的 visuo-tactile dynamics、联合 action/state/force flow matching，以及由形变推导的 virtual-force regularization。任一机制单独存在都不能解释完整的消融差距。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;| 维度 | 典型 tactile-VLA | VTAM |
| --- | --- | --- |
| 触觉角色 | 额外语义 token 或末端特征 | 可预测的世界状态 |
| 融合位置 | 反应式 late fusion | 视频 backbone 内的 cross-view attention |
| 物理监督 | 通常无显式目标 | virtual force velocity matching |
| 控制约束 | 直接回归动作 | action/state/force 联合去噪 |&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 方法假设 GelSight 形变光流与接触力单调相关，且预训练视频 VAE 能保留触觉图像所需的局部细节；同时假设两路视觉、触觉和状态在时间上可以精确同步。论文没有给出标定误差、传感器失效或不同 tactile hardware 的系统评估。&lt;/p&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文主要展示三类任务和单一 xArm6/GelSight 组合；作者没有报告大规模跨本体、跨传感器或长时部署结果。virtual force 是 proxy 而非真实 3D 力，不能直接替代力矩传感器的物理标定。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 形变光流对材质、光照和接触面积敏感，换用不同弹性体可能需要重新校准；28 层多视图 transformer 与 diffusion head 的实时成本也未公开。更重要的是，触觉只在发生接触后提供强信号，模型仍需视觉完成接近、搜索和脱离阶段的状态估计。&lt;/p&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; VTAM 提示，下一代 VLA 的 multimodality 不应止于“把传感器 token 拼起来”，而应让每种传感器都进入可预测的 world model。一个直接方向是把 virtual force 扩展成 slip、contact mode 和 deformation phase 的离散 latent，再用真实力传感器或自监督事件标签校准 proxy。另一个方向是研究触觉缺失时的 modality dropout，使策略能在传感器污染或延迟下优雅退化。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/70977889_p0_master1200.9gx5x526gc.webp"/><enclosure url="https://pic.hana0721.top/70977889_p0_master1200.9gx5x526gc.webp"/></item><item><title>VP-VLA 论文精读</title><link>https://agusexp25.top/blog/paper-deep-dive-vp-vla</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-vp-vla</guid><description>精读 VP-VLA：以 crosshair 和 bounding box 作为 System 2 规划与 System 1 控制之间的原生视觉接口，提升 VLA 的空间 grounding 与 OOD 操作鲁棒性。</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; VP-VLA（Visual Prompting as an Interface for Vision-Language-Action Models）将一个端到端 VLA 拆为两个频率不同的系统：高层 &lt;strong&gt;System 2 Planner&lt;/strong&gt; 负责理解指令、判断当前子任务并找出目标物与目标位置；低层 &lt;strong&gt;System 1 Controller&lt;/strong&gt; 负责把这些结果转化为动作。两者不通过额外 token、dense mask 或新模态通信，而是通过叠加在原始 RGB 图像上的视觉提示（visual prompt）通信：抓取时画 crosshair，放置时画 bounding box。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-vp-vla/vp-vla-fig1-teaser.webp&quot; alt=&quot;VP-VLA generalization motivation from paper Figure 1&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; VP-VLA 的关键不是让低层 action policy 额外学习一种抽象的 affordance 表示，而是把高层已完成的“看哪里、放到哪里”判断，画成 VLA 原本就会处理的 RGB 证据；低层于是从“同时理解意图、定位与控制”变成“跟踪明确空间锚点”。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 提出双系统 VLA：事件驱动的 System 2 只在任务阶段切换时重规划，System 1 高频执行视觉—动作控制。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 提出 native visual prompting interface：用目标掩码的中心 crosshair 表示交互锚点，用目标区域的 bounding box 表示放置约束，均直接覆盖到 RGB 观察上。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 加入 visual grounding auxiliary objective，使 VLA backbone 显式预测提示的离散坐标，避免把叠加符号当作无关噪声。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在 RoboCasa-GR1-Tabletop、SimplerEnv 与真实 Franka 任务上报告稳定收益，尤其改善 novel object、未见位置与 clutter 场景下的空间 grounding。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 标准 VLA 把语言 $l$ 与多相机观测 $o_t$ 直接映射为 action chunk。单个网络必须在一次或少数几次 forward 中完成指令解析、目标实例识别、空间关系推理、接触点选择和低层控制。论文认为这种 monolithic bottleneck 会使模型在训练场景分布之外依赖图像捷径，而非真正根据语言定位对象。&lt;/p&gt;
&lt;p&gt;已有方法也会在 VLA 前插入中间表示，例如 goal image、轨迹、关键姿态、affordance map 或 dense segmentation mask。&lt;strong&gt;【Paper】&lt;/strong&gt; 作者指出：训练自由的 VLM grounding 通常不够精确；dense mask 与 VLM 的自然 RGB 输入分布不同，常要另加 encoder 或复杂 fusion；只在第一帧标点的静态提示又无法随多阶段操作更新。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这里的取舍非常具体：信息量太少的纯文本不能约束落点，信息量太大的 mask 则改变了下游模型的感知分布。crosshair 与 box 用极少像素表达“交互中心”和“可放置区域”，同时保留场景原貌，是一种刻意追求兼容性的中间接口。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 常规策略为&lt;/p&gt;
&lt;p&gt;$$
a_t = \pi_\theta(l,o_t), \qquad
o_t={o_t^1,\ldots,o_t^m},
$$&lt;/p&gt;
&lt;p&gt;其中 $m$ 是相机数，$a_t={a_t^1,\ldots,a_t^n}$ 是用来掩盖推理延迟、保持运动平滑的 action chunk。VP-VLA 额外构造视觉接口图像 $I_{vp}^t$，得到&lt;/p&gt;
&lt;p&gt;$$
a_t=\pi_\theta(l,o_t,I_{vp}^t)
=h_\psi!\left(f_\omega(l,o_t,I_{vp}^t)\right).
$$&lt;/p&gt;
&lt;p&gt;$f_\omega$ 是 VLM backbone，$h_\psi$ 是连续 action decoder，$\theta={\omega,\psi}$。区别不在于额外输入一张“处理过的图片”本身，而在于 $I_{vp}^t$ 来自显式的子任务与实体 grounding，因此其符号与当前阶段一一对应。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-vp-vla/vp-vla-fig2-pipeline.webp&quot; alt=&quot;VP-VLA dual-system architecture from paper Figure 2&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 数据流为：&lt;code&gt;instruction + observation + robot state → System 2 → text-conditioned segmentation → RGB visual prompt → System 1 → action chunk&lt;/code&gt;。训练时，System 1 还从关键帧的提示中学习坐标 grounding；部署时，System 2 不需要每个控制步都调用。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;System 2 Planner：按事件更新的高层推理&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 规划器先把全局指令分解为有序子任务，再在当前观测、指令和机器人状态下识别当前子任务 $s_k$、目标物 $e_{obj}$ 与目标位置 $e_{loc}$：&lt;/p&gt;
&lt;p&gt;$$
{s_k,e_{obj},e_{loc}}=
\operatorname{VLM}_{\text{planner}}(l,o_t,S_t).
$$&lt;/p&gt;
&lt;p&gt;不是每帧都运行该 VLM。作者以夹爪状态作为物理阶段代理：夹爪由开变闭或由闭变开时，认为抓取/释放等语义阶段可能已经改变，才触发重评估。这样“拿起杯子”完成后，提示才会从杯子转向桌面或容器。&lt;/p&gt;
&lt;h4&gt;视觉提示生成：SAM3 把名字变成空间约束&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 给定实体名称，text-conditioned segmentation model $\mathcal{G}$ 在图像上产生提示：&lt;/p&gt;
&lt;p&gt;$$
\psi_t=\mathcal{G}(o_t,e_{obj},e_{loc}), \qquad
\psi_t={C,B}.
$$&lt;/p&gt;
&lt;p&gt;$C\in\mathbb{R}^2$ 是目标物 mask 重心处的 crosshair，适合 pick；$B\in\mathbb{R}^4$ 是目标放置区域的 box，适合 place。两者叠加到 overhead RGB 观察，形成 $I_{vp}^t$。对于开门、关门等非抓取原语，论文同样以对象的交互位置作为提示对象。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; crosshair 和 box 分别编码“在哪里接触”与“哪里可满足约束”，但不强迫低层策略复制一个像素级 mask。这让 action policy 仍能使用背景、遮挡、夹爪姿态等原始视觉线索来决定具体轨迹。&lt;/p&gt;
&lt;h4&gt;System 1 Controller：带提示的连续动作策略&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; System 1 同时接收语言、原始图像与 visual-prompt 图像，由 VLM 提取多模态表征、action decoder 输出连续控制信号。论文的实现细节使用 QwenOFT：将 OpenVLA-OFT 的 Prismatic VLM 替换成 Qwen3-VL-4B-Instruct；action decoder 预测 action chunk。&lt;/p&gt;
&lt;h4&gt;关键帧 visual grounding&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 作者只在 episode 第一帧和事件帧附加 grounding supervision。图像坐标被划分为 $N=1000$ 个离散 bin：对于 crosshair，模型输出 $(x,y)$；对于 box，输出 $[x_1,y_1,x_2,y_2]$ 的结构化 JSON。目标是让 VLM 内部表征与画出的提示建立可读的空间对应。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;事件触发条件&lt;/h4&gt;
&lt;p&gt;$$
E_t=\mathbb{1}!\left(\left|\phi(S_t)-\phi(S_{t-1})\right|&gt;\epsilon\right).
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; $S_t$ 是机器人物理状态，$\phi$ 是状态映射，$\epsilon$ 是阈值。在桌面实验中，$\phi$ 被实例化为 gripper status：开闭状态改变时 $E_t=1$，System 2 重做阶段判断。这个定义是启发式 event detector，不等同于从视觉直接证明子任务成功。&lt;/p&gt;
&lt;h4&gt;联合训练目标&lt;/h4&gt;
&lt;p&gt;$$
\mathcal{L}&lt;em&gt;{\text{total}}
=\mathcal{L}&lt;/em&gt;{\text{action}}(\theta)
+\lambda,\mathbb{1}&lt;em&gt;{\text{event}}\mathcal{L}&lt;/em&gt;{\text{grounding}}(\omega).
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; $\mathcal{L}&lt;em&gt;{\text{action}}$ 是 action prediction 的 L1 loss；$\mathcal{L}&lt;/em&gt;{\text{grounding}}$ 是离散位置 token 的 cross-entropy；$\lambda$ 权衡二者，实验设为 $0.1$。grounding loss 仅对 VLM 参数 $\omega$ 反传，而 action loss 更新包含 VLM 与 action decoder 的策略参数。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 指示函数把 auxiliary loss 放在信息发生变化的时刻：若每一帧都反复要求同一坐标，监督信号可能大量重复；若完全不要求位置输出，VLM 也可能把彩色符号视作无意义的 augmentation。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 数据准备首先以规则将任务拆成子任务列表；关键帧上由 VLM 选择当前子任务、对象与位置名称；随后用 text-conditioned segmentation 在到下一关键帧前的全部帧上生成 mask 与 box，并转成 overlays。OXE 实验沿用 starVLA 的设置，丢弃 visual prompt 为空的 episode，且该过滤同时用于方法与 baseline。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 训练基于 starVLA，在 8 张 GPU 上完成；System 1 使用 Qwen3-VL-4B-Instruct，AdamW 对 VLM 的学习率为 $10^{-5}$、对 action model 为 $10^{-4}$，$\lambda=0.1$。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 初始帧和每次 event 时，System 2 将当前阶段翻译为实体名称；SAM3 在最新 observation 生成 overlay；System 1 在控制循环中根据该 overlay 预测并执行 action chunk。没有 event 时沿用当前提示，避免高层 VLM 成为每一步控制的延迟瓶颈。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;| 论文组件                | 官方代码位置                                                     | 可核对的实现行为                                                                                                                            |
| ----------------------- | ---------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
| 数据预处理              | &lt;code&gt;data_preparation/{Robocasa_tabletop,SimplerEnv}/&lt;/code&gt;               | 多进程启动 VLM 与 SAM3 server，将每个 episode 的 overlay、mask、box 和 subtask 记录保存为 &lt;code&gt;.npz&lt;/code&gt;。                                          |
| 训练数据                | &lt;code&gt;starVLA/dataloader/visual_prompt_datasets.py&lt;/code&gt;                   | primary view 根据当前帧 mask/box 绘制提示；可配置 &lt;code&gt;feed_both_images&lt;/code&gt; 同时给原图和 overlay，wrist view 保持原图。                            |
| action + grounding 训练 | &lt;code&gt;starVLA/training/train_starvla_visual_prompt.py&lt;/code&gt;                | trainer 先运行 policy 的 action forward/backward，再用 visual-prompt 坐标问答运行 &lt;code&gt;qwen_vl_interface&lt;/code&gt;，以 &lt;code&gt;visual_prompt&lt;/code&gt; loss scale 加权。 |
| prompt 绘制             | &lt;code&gt;visual_prompt_utils.py&lt;/code&gt;、&lt;code&gt;visual_prompt_utility/sam3_client.py&lt;/code&gt; | object prompt 设为 &lt;code&gt;crosshair&lt;/code&gt;，location prompt 设为 &lt;code&gt;box&lt;/code&gt;；server 取最高分目标。                                                           |
| 运行时阶段切换          | &lt;code&gt;examples/*/eval_files/model2*_interface*_visual_prompt.py&lt;/code&gt;      | 首帧和 gripper state change 触发 VLM query；其输出决定是否推进 subtask，再请求 SAM3 重新覆盖图像。                                          |
| 评测服务                | &lt;code&gt;README.md&lt;/code&gt;、&lt;code&gt;examples/*/eval_files/run_eval.sh&lt;/code&gt;                 | 同时需要 policy server、SAM3 server、VLM server 与对应模拟环境。                                                                            |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 仓库公开的示例配置与论文正文并非完全一致：论文的 implementation details 写 Qwen3-VL-4B-Instruct + QwenOFT，&lt;code&gt;examples/*/train_files/*visual_prompt.yaml&lt;/code&gt; 当前列出 Qwen2.5-VL-3B-Instruct + &lt;code&gt;QwenGR00T&lt;/code&gt;。README 则将 VP-VLA 描述为基于 Qwen3-VL-4B-Instruct。读者复现时应以具体 checkpoint、config 和 release 版本为准，不能把示例 YAML 直接当作论文唯一配置。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-vp-vla/vp-vla-fig3-real-setup.webp&quot; alt=&quot;VP-VLA real-world robot setup and task suites from paper Figure 3&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; RoboCasa-GR1-Tabletop 包含 24 个桌面厨房任务、共 24,000 条视频；作者跟随 GR00T-X-Embodiment-Sim 的 Humanoid Robot Tabletop Manipulation subset，每个任务独立运行 50 次。SimplerEnv 使用 OXE 的 BridgeDataV2 与 Fractal 子集，训练 70k steps，8 GPU、每卡 batch size 32，并在四个官方任务上评测。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 真实实验使用桌面固定的 Franka Research 3 七自由度机械臂，输入为固定第三人称和末端第一人称两张 RGB 图，均 resize 到 224×224；total batch size 为 256，action chunk size 为 16。任务包括 cluttered waste sorting、按颜色抓 egg、以及 egg carton 中的空间放置。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-vp-vla/vp-vla-fig4-real-results.webp&quot; alt=&quot;VP-VLA real-world quantitative results from paper Figure 4&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在 RoboCasa-GR1-Tabletop 上，VP-VLA 的平均成功率为 &lt;strong&gt;53.8%&lt;/strong&gt;，相对主要 baseline QwenOFT 的 &lt;strong&gt;48.8%&lt;/strong&gt; 增加 &lt;strong&gt;5.0&lt;/strong&gt; 个百分点；在多阶段 &lt;code&gt;PnP * to * Close&lt;/code&gt; 上为 54.3% 对 43.7%。在 &lt;code&gt;Placemat → Plate&lt;/code&gt; 的 novel split，论文报告 70.0% 对 52.0%；在 &lt;code&gt;Tray → Plate&lt;/code&gt;，为 66.0% 对 56.0%。&lt;/p&gt;
&lt;p&gt;| Robocasa 方法        |   Average | PnP _ to _ Close |
| -------------------- | --------: | ---------------: |
| Isaac-GR00T N1.5     |     48.2% |            45.3% |
| Isaac-GR00T N1.6     |     47.6% |            24.2% |
| QwenGR00T + Qwen3VL  |     47.8% |            50.3% |
| QwenPI + Qwen3VL     |     43.9% |            42.3% |
| QwenOFT + Qwen3VL    |     48.8% |            43.7% |
| &lt;strong&gt;VP-VLA + Qwen3VL&lt;/strong&gt; | &lt;strong&gt;53.8%&lt;/strong&gt; |        &lt;strong&gt;54.3%&lt;/strong&gt; |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在 SimplerEnv，VP-VLA 平均 &lt;strong&gt;58.3%&lt;/strong&gt;，QwenOFT 为 50.0%，绝对提升 &lt;strong&gt;8.3&lt;/strong&gt; 个百分点；&lt;code&gt;Put Eggplant in Yellow Basket&lt;/code&gt; 从 70.8% 提升到 95.8%。论文表中 $\pi_{0.5}$ 与 Isaac-GR00T-N1.6-Bridge 的平均分均为 57.1%。&lt;/p&gt;
&lt;p&gt;| SimplerEnv 任务                   |   QwenOFT |    VP-VLA |
| --------------------------------- | --------: | --------: |
| Put Spoon on Towel                |     58.3% | &lt;strong&gt;66.7%&lt;/strong&gt; |
| Put Carrot on Plate               | &lt;strong&gt;50.0%&lt;/strong&gt; | &lt;strong&gt;50.0%&lt;/strong&gt; |
| Stack Green Block on Yellow Block | &lt;strong&gt;20.8%&lt;/strong&gt; | &lt;strong&gt;20.8%&lt;/strong&gt; |
| Put Eggplant in Yellow Basket     |     70.8% | &lt;strong&gt;95.8%&lt;/strong&gt; |
| Average                           |     50.0% | &lt;strong&gt;58.3%&lt;/strong&gt; |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 真实 waste-sorting 中，VP-VLA / QwenOFT 的 ID 成功率为 87.5% / 80.0%，OOD 为 85.0% / 63.3%。颜色 egg 任务中，ID、OOD-color、OOD-position 分别为 77.1%、75.0%、75.0%，baseline 为 58.3%、29.2%、54.2%。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; RoboCasa 的组件消融结果如下。完整模型 53.8%，移除 grounding loss 降到 49.4%；把 grounding 扩展到所有帧为 49.5%；把 crosshair 换成单个 point 为 47.3%；将提示直接叠加在主要 RGB 而不是采用论文的分离视觉输入设计，为 50.8%。&lt;/p&gt;
&lt;p&gt;| 变体                   |   Average |
| ---------------------- | --------: |
| w/o grounding          |     49.4% |
| w/ all-frame grounding |     49.5% |
| w/ point               |     47.3% |
| w/ direct overlay      |     50.8% |
| &lt;strong&gt;Full VP-VLA&lt;/strong&gt;        | &lt;strong&gt;53.8%&lt;/strong&gt; |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; SimplerEnv 的 decomposition 消融显示，若同时画 object crosshair 和 location box、而不按阶段切换，平均为 57.3%；使用任务分解的设置为 58.3%。两个数字接近，但论文强调前者不具备应对长多阶段任务的明确状态机。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; point 的退化说明“有目标”不足以解释收益，提示的几何形状也很重要：crosshair 既指向中心又提供局部结构；而关键帧优于全帧 supervision 则支持该方法的核心立场——提示应在决策点承载语义，不应变成每帧重复的视觉水印。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; VP-VLA 的提升主要出现在需要重新定位与精确放置的 OOD 设置：新物体、随机初始位置、变化的外观、干扰物与新容器。真实结果中，waste sorting 的 ID→OOD 落差只有 2.5 个百分点，QwenOFT 的落差为 16.7；新颜色 egg 的 77.1%→75.0% 也优于 baseline 的 58.3%→29.2%。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这不是对“所有 OOD”都成立的保证。视觉提示的泛化依赖两个上游条件：planner 必须说对对象名，SAM3 必须在新场景中分割对该对象。实验说明该链路在所测 shift 上有效，但也让误差源从一个黑盒 VLA 变成可单独观察的 planner 与 segmenter。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; VP-VLA 同时降低了三类不确定性：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;语义不确定性&lt;/strong&gt;：System 2 将长 instruction 缩减为当前一个原子子任务，低层不用在每步重新判断全局阶段。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;空间搜索不确定性&lt;/strong&gt;：crosshair 将抓取的候选区域从整张图缩到目标局部；box 提供放置的可接受区域，而不是单点终点。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;时间不确定性&lt;/strong&gt;：夹爪 event 将昂贵的推理与低延迟控制解耦，提示只在语义可能变化时更新。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;grounding loss 使第一、二项真的进入 policy 的表示空间；否则“叠加图像”有可能只是一种未被模型利用的 augmentation。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 将 System 2 的符号级结果投影回原生 RGB，而非向 VLA 注入一种额外 dense modality。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 以 object anchor 与 placement constraint 区分抓取和放置阶段的空间需求。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 以 event-driven planner 支持动态、多阶段提示，而不是给整段任务一次静态目标。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 把高层的错误、分割的错误、低层控制的错误显式分开；可解释性在这里是工程上的可诊断性，不只是可视化效果。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;| 路线                              | 接口                    | 主要风险                           | VP-VLA 的不同点                          |
| --------------------------------- | ----------------------- | ---------------------------------- | ---------------------------------------- |
| 端到端 VLA                        | language + RGB → action | 单个模型承担全部推理与控制         | 将阶段理解/grounding 与控制显式解耦。    |
| 纯文本 hierarchical policy        | 子任务文本              | 文本难精确给出像素级接触与放置约束 | 用 crosshair/box 给出可消费的空间提示。  |
| dense mask / affordance interface | RGB + dense 新模态      | 分布不匹配、额外 encoder/fusion    | 只画轻量 RGB overlay，保持输入模态一致。 |
| 静态 point prompt                 | 第一帧点位              | 物体移动、子任务切换后提示过时     | 用 gripper event 动态重规划与重绘。      |&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 抓取或释放等 gripper 状态变化足以作为多数子任务阶段切换的代理。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 目标物中心与目标区域 box 是对低层控制足够的信息密度，而不必传递 dense mask。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 预训练 VLM 能可靠输出当前实体名称，SAM3 能将文字正确 ground 到当前图像。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 相机视角、对象可见性和标注的子任务边界需与部署时相近；若目标被严重遮挡或动作不是由夹爪开闭分段，event heuristic 可能不再合适。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文没有单列“Limitations”章节。正文中可直接确认的边界包括：真实视觉提示除 egg carton placement 的目标位置由用户指定外，均依赖自动预测；baseline 数值部分来自原论文或同行评审文献；并且 System 2 的阶段切换在实验中使用 gripper status 这个特定物理代理。论文未明确量化 VLM 或 SAM3 出错时的失败率。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 误差会级联：VLM 若把实例名称说错，SAM3 即使分割很准也是在标错物体；System 1 会忠实执行错误目标。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; event 不是完成验证：夹爪闭合可能是空抓，夹爪打开也可能是意外释放。仅依靠开闭变化触发 phase switch，在接触丰富或非抓取任务上可能造成过早推进。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; box 只表达图像平面的放置约束，无法直接表示高度、可达性、碰撞和接触力；像素内的“正确位置”不必然是机器人可执行的 3D 位置。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 官方代码需要 policy、SAM3、VLM 和多个 conda 环境同时运行。分系统提升了可诊断性，但也提高部署资源、同步与延迟管理的复杂度。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 公开 YAML 与论文 backbone/framework 的不一致使复现实验配置存在歧义，需要作者提供准确 release tag 或 checkpoint manifest。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; VP-VLA 最值得借鉴的不是具体的红色 crosshair 或黄色 box，而是“让中间表示迁就下游模型的既有感知能力”。如果接口必须让 VLA 新学一个模态，接口本身可能成为新的瓶颈；若接口能在 RGB 中清楚表达并由辅助目标校准，层级分工才真正成立。&lt;/p&gt;
&lt;p&gt;接下来值得检验的方向包括：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;用视觉成功判别器、力觉或 3D state 共同触发阶段切换，替代单一 gripper event。&lt;/li&gt;
&lt;li&gt;让 planner 输出多个带置信度的对象/位置候选，由 controller 结合可达性筛选，减少单次 grounding 错误的灾难性影响。&lt;/li&gt;
&lt;li&gt;把 box 扩展为带深度与接触姿态的 3D constraint，同时仍用 RGB-compatible rendering 保持 VLA 输入分布一致。&lt;/li&gt;
&lt;li&gt;在更长时程、非抓取、柔性物体和遮挡交互中比较：究竟是 interface 本身泛化，还是上游 VLM/SAM3 的先验在贡献收益。&lt;/li&gt;
&lt;/ol&gt;</content:encoded><h:img src="https://pic.hana0721.top/142350190_p0_master1200.2yyy3wl757.webp"/><enclosure url="https://pic.hana0721.top/142350190_p0_master1200.2yyy3wl757.webp"/></item><item><title>VLAC 论文精读：让 VLA 同时成为策略与过程奖励模型</title><link>https://agusexp25.top/blog/paper-deep-dive-vlac</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-vlac</guid><description>精读 VLAC：用成对观测预测带符号的任务进度，把 InternVL 变成可泛化的 Critic，并接入异步 PPO 让真实机器人从成功与失败中持续改进。</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;论文名称&lt;/strong&gt;：《A Vision-Language-Action-Critic Model for Robotic Real-World Reinforcement Learning》&lt;br&gt;
&lt;strong&gt;作者&lt;/strong&gt;：Shaopeng Zhai、Qi Zhang、Tianyi Zhang 等，Shanghai AI Lab&lt;br&gt;
&lt;strong&gt;论文链接&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2509.15937&quot;&gt;arXiv:2509.15937&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;代码 / 模型&lt;/strong&gt;：&lt;a href=&quot;https://github.com/InternRobotics/VLAC&quot;&gt;VLAC GitHub&lt;/a&gt;、&lt;a href=&quot;https://huggingface.co/InternRobotics/VLAC&quot;&gt;Hugging Face&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-vlac/overview.webp&quot; alt=&quot;VLAC overview from paper Figure 1&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; VLAC（Vision-Language-Action-Critic）把“当前两帧相比是否更接近语言目标”建模成一个带正负号的 progress delta：它既能作为跨任务的 dense reward 和 done signal，也能在同一自回归模型中生成机器人动作，最终接入真实世界 PPO。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;用 pair-wise progress understanding 代替任务专用的 reward shaping：任意中间帧都可以作为局部起点，正值表示进展、负值表示退步。&lt;/li&gt;
&lt;li&gt;把 3000 小时以上人类 egocentric 数据、1200 小时公开机器人数据、15 小时自采数据和 VQA 数据混合训练，使 Critic 具备跨实体、场景和任务的泛化能力。&lt;/li&gt;
&lt;li&gt;在一个基于 InternVL 的 autoregressive backbone 中同时实现 progress、task-done、task-description、VQA 与 delta-Eef action generation。&lt;/li&gt;
&lt;li&gt;设计低延迟、异步的真实机器人 RL 基础设施，并提供 offline demonstration replay、return and explore、human guided explore 三档人机协同。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 论文真正改变的是 RL 的“反馈接口”：策略不再依赖每个任务重新写 reward 和终止分类器，而是把通用多模态理解直接转成可计算的局部 TD-like 信号。&lt;/p&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 真实世界 RL 的难点并不只是优化器，而是反馈稀疏、失败样本利用率低，以及每个任务都要重新设计 reward 和 done detector。通用 VLM 的单帧打分通常空间精度不足、对视角和光照敏感，逐帧分数也可能非单调；时间对比或 TD 表征虽然平滑，却往往缺少跨任务泛化。&lt;/p&gt;
&lt;p&gt;VLAC 选择“比较两帧”而不是“给一帧绝对完成度”。这使数据中的任意子片段都能产生监督，也自然得到 forward / backward 的正负样本。更重要的是，任务描述、参考轨迹和两帧图像都进入同一个语言条件接口，所以 one-shot 示例可以补足新任务的语义锚点。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 一条任务轨迹表示为 $V=(O,l_{task})$，其中 $O=(o_1,ldots,o_T)$ 是 RGB 图像序列，$l_{task}$ 是语言目标。给定任意两个时间点 $i$ 和 $i+\Delta t$，模型输出相对进度：&lt;/p&gt;
&lt;p&gt;$$
c_{i,i+\Delta t}=\mathrm{VLAC}(o_i,o_{i+\Delta t};l_{task})
$$&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Observation&lt;/strong&gt;：一对 RGB 图像，可选当前轨迹起点、参考演示图像，以及任务语言。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Critic output&lt;/strong&gt;：有符号的相对 progress delta；正值表示第二帧更接近目标，负值表示退步。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Done output&lt;/strong&gt;：给定单帧和任务描述，输出完成概率 / 0-1 判断。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Action output&lt;/strong&gt;：多视角图像、机械臂状态、任务描述和最近动作历史，输出 7 维 delta end-effector pose（x、y、z、roll、pitch、yaw、open）的数字字符串。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Embodiment&lt;/strong&gt;：实验使用 AGILE PiPER，7-DoF 末端执行器控制；真实 RL 包含 Rice Transfer、Unfold Mat、Pick-and-Place Bowl、Desktop Sweep 等任务。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-vlac/vlac-architecture.webp&quot; alt=&quot;VLAC architecture and data mixture from paper Figure 2&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 多源数据先被转成 progress、done、task-description、VQA 和 action 任务；InternVL backbone 输出统一语义 token，推理时按 prompt 选择 Critic 或 Actor 角色。RL rollout 中，8B VLAC 负责 reward / done，2B VLAC 负责动作，二者通过异步服务与机器人交互。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;Pair-wise progress critic&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：$(o_i,o_j,l_{task})$，可附带参考轨迹。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：归一化的 progress delta $c_{i,j}$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;作用&lt;/strong&gt;：将成功轨迹的自然时间顺序转成局部监督；交换两帧就得到反向样本。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;数据构造&lt;/strong&gt;：相邻帧间隔约 0.2 秒；像素差低于 1% 时标为零进展；每对样本同时构造细粒度 / 长跨度、正向 / 反向四元组；5% 概率交叉采样不匹配的任务描述并标为零。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Task completion 与 description head&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 从轨迹前 30% 与后 20% 的帧生成任务描述；前 80% 标记未完成，后 95% 标记完成，中间区间不标注以避免边界噪声。这样 Critic 不只是比较两帧，还学习“什么状态算完成”。&lt;/p&gt;
&lt;h4&gt;Action head&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 动作以语义空间中的数字模板生成，例如 &lt;code&gt;x: -47mm, y: 19mm, ... open: 0&lt;/code&gt;。固定的非数字模板 token 不参与动作搜索，只有数值 token 记录 logits，降低自回归长度并保证输出可解析。动作使用 delta-Eef 表示，减少对具体机械臂绝对坐标系的依赖。&lt;/p&gt;
&lt;h4&gt;Multi-source representation learning&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 数据混合包括 Ego4D HOD、Bridge、Droid、FMB、RoboSet、AGIBOT、自采机器人轨迹，以及 LLaVA、SpatialQA、RobotVQA、Spot-the-diff 和 InstructPix2Pix。人类数据提供通用任务进程先验，机器人数据提供动作 grounding，差异数据集增强细粒度视觉比较。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;局部进度标签&lt;/h4&gt;
&lt;p&gt;$$
c_{i,i+\Delta t}=\frac{\Delta t}{T-i},\qquad \Delta t\in[-i+1,T-i]\cap\mathbb Z
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; $T$ 是轨迹长度，$i$ 是第一帧位置，$\Delta t$ 可以为正或负。该标签只描述局部窗口内的相对前进程度，不依赖轨迹从任务起点开始，因此能混用截断片段和不同采集策略的数据。&lt;/p&gt;
&lt;h4&gt;VOC / VROC / VOC-F1&lt;/h4&gt;
&lt;p&gt;$$
v_i=v_{i-\Delta t}+c_{i-\Delta t,i}(1-v_{i-\Delta t}),\quad v_0=0
$$&lt;/p&gt;
&lt;p&gt;$$
\mathrm{VOC\text{-}F1}=2\frac{\mathrm{VOC}\cdot\mathrm{VROC}}{\mathrm{VOC}+\mathrm{VROC}}
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; VOC 衡量预测值与原始时间顺序的 rank correlation；VROC 在反转输入视频后评估稳定性；VOC-F1 要求二者同时高。负率 NR 则统计 $c_{i,j}&amp;#x3C;0$ 的比例，用于发现不利于任务的动作。&lt;/p&gt;
&lt;h4&gt;PPO objective&lt;/h4&gt;
&lt;p&gt;$$
L^{PPO}=\mathbb E_t\left[\min(r_tA_t,\mathrm{clip}(r_t,1-\epsilon,1+\epsilon)A_t)\right],\quad r_t=\frac{\pi_{new}(a_t|s_t)}{\pi_{old}(a_t|s_t)}
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; $A_t$ 由 GAE 得到。VLAC 在 action token 生成前的 hidden state 上接线性 value head；动作 token 的 logits 与 $V(s_t)$ 一起计算 PPO，并加入 entropy regularization。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; VLAC 预训练使用 batch size 3200、最高学习率 $8\times10^{-4}$，总计约 4000 小时视频 / 机器人数据，采样约 4000 万条（部分为多轮对话）。真实 RL 采用 2B actor 与 8B critic；actor 预先用约 100 条 tele-operation 轨迹初始化，critic 负责 reward 和 done。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方仓库的 &lt;code&gt;GAC_model&lt;/code&gt; 通过 prompt 模板实现 pair-wise critic、trajectory critic、done 判断和 VLA action generation。视频推理默认将视频压缩到 5 FPS，并用 &lt;code&gt;batch_num&lt;/code&gt;、&lt;code&gt;skip&lt;/code&gt; 控制显存与比较间隔；支持 zero-shot 或提供 reference video 的 one-shot 模式。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 代码仓库公开的是推理与数据处理实现，训练入口明确指向 InternVL2 / ms-swift，而不是一个独立的 PPO 训练脚本。几个关键对应关系如下：&lt;/p&gt;
&lt;p&gt;| 论文描述 | 官方代码位置 / 行为 |
| --- | --- |
| pair-wise progress prompt | &lt;code&gt;evo_vlac/utils/model_utils.py&lt;/code&gt; 中 &lt;code&gt;prompt_templete[&apos;v3&apos;]&lt;/code&gt; |
| trajectory critic / done | &lt;code&gt;GAC_model.web_trajectory_critic&lt;/code&gt;、&lt;code&gt;get_trajectory_done&lt;/code&gt; |
| action parsing | &lt;code&gt;get_action_prompt&lt;/code&gt;、&lt;code&gt;fast_results_format&lt;/code&gt; 与 &lt;code&gt;data_processing_vlm.py&lt;/code&gt; |
| 7 维动作格式 | &lt;code&gt;format_songling&lt;/code&gt;：x/y/z、roll/pitch/yaw、open |
| 训练 | README 建议参考 InternVL2 quick start；论文中的 PPO 基础设施未完整开源 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 因此不能把仓库中的视频 critic API 误认为完整的 real-world RL trainer；论文报告了 Ray、ZeroMQ、vLLM / Torch inference worker 等系统，但公开仓库主要帮助复现实验接口和输出解析。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-vlac/tasks.webp&quot; alt=&quot;Real-world task setup from paper Figure A1&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Critic 评估覆盖 Bridge、Droid、RT1、RoboNet、Dobb-E、RH20T、EgoDex、RoboFAC，重点考察新实体、新场景、新任务和成功 / 失败轨迹区分。Actor 评估使用五类桌面任务；真实 RL 主要报告四类任务，每个成功率点由 10 次 trial 计算。部署时 observation 包含 instruction、front camera image 和 robot end-pose。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-vlac/voc-f1.webp&quot; alt=&quot;VOC-F1 comparison from paper&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 关键结果包括：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;RT1 这类训练未见的机器人、场景和任务，在 one-shot 条件下 VOC-F1 达到 0.95；&lt;/li&gt;
&lt;li&gt;RoboNet 没有语言标注且时间结构不平滑，zero-shot VOC-F1 为 0，但给出参考样例后显著恢复，说明模型确实依赖任务语义而非盲目拟合时间；&lt;/li&gt;
&lt;li&gt;RoboFAC-success 的 VOC-F1 为 0.89，RoboFAC-fail 为 0.44，能够把失败过程与正常进展分开；&lt;/li&gt;
&lt;li&gt;Actor 平均成功率为 75%，加入 lighting transfer 后为 57%，scene transfer 后为 63%，仍能在未额外采集数据的扰动环境中执行。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-vlac/rl-results.webp&quot; alt=&quot;Real-world RL success curves from paper&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 四任务 RL 的 Baseline、Return-and-explore、Human-guided explore、Offline Demonstration Replay 平均最终成功率分别为 88%、95%、98%、93%。论文摘要还报告：约 200 个真实交互 episode 内，成功率从约 30% 提升到约 90%；人机介入可进一步提高样本效率并在部分任务达到 100%。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 消融显示，去掉 task-progress pretraining 后，VLAC w/o pretrain 的平均成功率降至 16%，而完整 VLAC 为 75%；这说明进度理解不仅改善 critic，也帮助 Actor 判断“当前阶段是否真的完成”。在多机器人实验中，Pick-and-Place Bowl 达到 80% 成功率所需的每机器人 episode 数为：8 台 64、4 台 147、2 台 325；并行 embodiment 带来明显的数据效率收益。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-vlac/vlac-ppo.webp&quot; alt=&quot;VLAC actor and PPO interface from paper&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; lighting transfer 通过关闭荧光灯并加入彩色闪光源，scene transfer 使用不同地点、工作台和未精确标定的视角。Actor 在这些变化下仍能生成合理动作；one-shot reference 则为新任务提供了最小的上下文锚点。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这里的泛化更接近“语义与过程接口的迁移”，并不等于对任意机械臂都无需重新校准：动作仍需通过 embodiment-specific 的 pose 归一化和执行器适配落地。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 第一，pair-wise delta 把长时程 credit assignment 拆成局部比较，减少单帧绝对打分的视角偏差。第二，负向配对和失败轨迹让模型看到“做错一步”的证据，而不是只在成功终点学习。第三，人类视频提供了比机器人数据更广的任务先验，弥补真实机器人数据稀缺。最后，Actor 与 Critic 共享 backbone，使进度表征直接影响动作阶段判断。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 创新点不是单独提出一个 reward model，而是把 progress、done、action 和多模态理解统一为可 prompt-control 的 autoregressive model，再用异步系统把它接进真实机器人 RL。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;| 路线 | 反馈形式 | 迁移代价 |
| --- | --- | --- |
| 手工 reward shaping | 任务专用规则 / 终点信号 | 每个任务重写 |
| 单帧 VLM scoring | 绝对完成度 | 易受视角、遮挡、光照影响 |
| 时间对比表征 | 隐式排序或 embedding 距离 | 通常缺少语言和跨任务语义 |
| &lt;strong&gt;VLAC&lt;/strong&gt; | 两帧 + 语言的 signed progress delta | 通过 prompt 或 one-shot 迁移 |&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 成功且高效的轨迹中，时间通常与任务进度正相关；像素差很小的相邻帧可视为零进展。&lt;strong&gt;【Analysis】&lt;/strong&gt; 这也带来边界：如果示教包含回退、等待、绕路或任务本身允许多种顺序，时间排序未必等于因果贡献，progress label 可能把“更晚”误当成“更好”。&lt;/p&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文讨论了三点：人机协同的时机和 reset 选择仍依赖启发式；PPO + tokenized delta-Eef 接口与自回归动作头耦合，对 diffusion / flow-matching policy 没有直接适配；多任务在线学习仍可能出现 reward scale drift、梯度干扰和 episodic forgetting。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;$c_{i,j}=\Delta t/(T-i)$ 依赖“时间越晚越接近完成”的弱因果假设，复杂失败轨迹需要更强的 outcome-aware 标注。&lt;/li&gt;
&lt;li&gt;VOC / VROC 主要测排序一致性，不直接测 reward 校准误差；相同排序但不同幅值仍可能导致 PPO advantage 尺度不稳定。&lt;/li&gt;
&lt;li&gt;8B critic 的低延迟服务、2B actor、并行机器人和 replay buffer 对 GPU 与工程系统要求很高，开源仓库不足以单机复现论文完整 RL 基础设施。&lt;/li&gt;
&lt;li&gt;论文展示了 7 维 delta-Eef action，但跨 embodiment 的坐标系、控制频率和安全约束仍需要额外适配。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; VLAC 给出的研究方向可以概括为“把通用多模态理解变成 RL 可消费的接口”。后续值得继续追问：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;能否用 uncertainty 或 calibrated value 取代固定的 progress scale，让 Critic 同时输出奖励和置信区间？&lt;/li&gt;
&lt;li&gt;能否学习 action-agnostic 的 progress representation，再接入 diffusion policy、flow matching 或离散 token policy？&lt;/li&gt;
&lt;li&gt;人类 intervention 是否可以从三种手工策略变成基于失败模式覆盖率和边际收益的自动调度？&lt;/li&gt;
&lt;li&gt;多机器人 scaling 是否能与 replay prioritization、task-wise normalization 和 gradient surgery 结合，稳定多任务在线演化？&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;VLAC 的启示并不是“一个大模型自动解决真实世界 RL”，而是：当 dense critic、done detector、policy prior 和低延迟系统被设计成同一条闭环时，真实机器人终于有机会把失败也变成可学习的数据。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/98259515_p0_master1200.3ns7nvxpav.webp"/><enclosure url="https://pic.hana0721.top/98259515_p0_master1200.3ns7nvxpav.webp"/></item><item><title>ViVa 论文精读：让视频生成模型成为机器人价值函数</title><link>https://agusexp25.top/blog/paper-deep-dive-viva</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-viva</guid><description>精读 ViVa：把 Wan2.2 的时空生成先验改造成价值模型，同时预测未来本体状态与任务回报，并接入 RECAP 改善长时程机器人强化学习。</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; ViVa（Video-generative Value model）针对长时程机器人任务中的价值估计问题：单帧 VLM 能理解“现在有什么”，却不一定知道动作之后会发生什么。作者将预训练视频生成器 Wan2.2 改造成一个 value function，在给定三路相机图像和机器人本体状态后，同时预测 $K$ 步之后的本体状态与当前状态的标量 value。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-viva/viva-method.1zj00da5e9.webp&quot; alt=&quot;ViVa 方法总览（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; ViVa 的关键不是让模型生成可观看的视频，而是借用“必须解释时空变化”的生成训练目标，让 value 预测被机器人动力学约束，从而更早发现进展和错误。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;将机器人 value estimation 定义为 future anticipation 问题，指出视频生成模型比静态 VLM 更适合表达交互动态。&lt;/li&gt;
&lt;li&gt;通过 latent injection 在不改 Wan2.2 核心 DiT 的前提下加入本体状态和标量 value 两种新模态。&lt;/li&gt;
&lt;li&gt;联合预测未来本体状态与 value，使价值信号与 embodiment dynamics intrinsically coupled。&lt;/li&gt;
&lt;li&gt;在衬衫折叠、纸箱包装、纸卷整理三个长时程任务上取得强相关性、事件敏感性和泛化表现；接入 RECAP 后平均成功率达到 80%。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; VLA 在大规模预训练后已能执行多种操作，但现实交互具有 partial observability、接触动力学和 delayed feedback。RL 中的 value function 负责估计从当前状态出发的期望未来回报，并据此计算 advantage、筛选更好的行为。&lt;/p&gt;
&lt;p&gt;以 GVL、TopReward 和 $pi^*_{0.6}$ 为代表的方案主要使用 VLM：前两者从稀疏采样帧或 token 概率得到 value，后者在 RECAP 中用密集监督训练 VLM value model。&lt;strong&gt;【Analysis】&lt;/strong&gt; 这些方法的共同瓶颈是 backbone 的预训练目标偏向静态图像语义，而不是显式预测“物体如何移动、接触如何改变结果”。ViVa 因此选择视频生成先验，并将预测未来本体状态作为额外的 embodiment 约束。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在 MDP 中，时刻 $t$ 的联合观测为 $x_t=(o_t,q_t)$，其中 $o_t$ 是三路 RGB 视角，$q_t$ 是 14 维末端执行器位姿或关节状态。策略 $pi$ 的 value 定义为：&lt;/p&gt;
&lt;p&gt;$$V^{\pi}(x_t)=\mathbb E_{\pi}\left[\sum_{k=t}^{T}r_k\mid x_t\right].$$&lt;/p&gt;
&lt;p&gt;模型输入是当前的 &lt;code&gt;cam_left_wrist&lt;/code&gt;、&lt;code&gt;cam_right_wrist&lt;/code&gt;、&lt;code&gt;cam_high&lt;/code&gt; 和归一化本体状态；输出是 $hat q_{t+K}$ 与 $hat v_t$，其中 $hat v_t$ 表示任务进展/结果。实验固定 $K=50$。&lt;/p&gt;
&lt;p&gt;任务包括：双臂折叠衬衫（最长 300 秒）、纸箱包装（最长 300 秒）和纸卷整理（最长 240 秒）。每个任务有 50 个 held-out episodes，并人工标注 milestone 与 error frames。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; ViVa 将七帧 latent 序列送入 Wan2.2：&lt;/p&gt;
&lt;p&gt;&lt;code&gt;[blank, current state, left wrist, right wrist, high view, future state, value]&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;前五帧是 clean conditioning，最后两帧是加噪 target；DiT 通过 flow matching 反演 target。&lt;strong&gt;【Analysis】&lt;/strong&gt; 这相当于把“未来状态”和“价值”放在同一个生成空间里，让 value 不能只依赖静态外观。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;Latent injection&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;图像&lt;/strong&gt;：预训练时空 VAE 将每路图像压成 latent frame。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;本体状态&lt;/strong&gt;：先归一化到 $[-1,1]$，再 repeat-padding 到 latent frame 的 $H&apos;\times W&apos;\times C&apos;$ 个元素。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;标量 value&lt;/strong&gt;：归一化后 broadcast 到整张 latent frame，使所有元素携带同一个值。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;blank token&lt;/strong&gt;：因果 VAE 所需的零帧占位符。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Wan2.2 Diffusion Transformer&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 核心 DiT 不做结构修改，只用 latent injection 扩展模态。训练时对 future-state latent 和 value latent 分别采样噪声与 flow time；推理时固定条件前缀并做 reverse diffusion。&lt;/p&gt;
&lt;h4&gt;RECAP 接口&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; ViVa 替换 RECAP 中的 VLM value model，其他 advantage 估计、二值 improvement indicator 和 advantage-conditioned policy training 保持不变。这样可以把性能变化归因于 value representation。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;Flow matching loss&lt;/h4&gt;
&lt;p&gt;令干净 latent 为 $z_0$，高斯噪声为 $z_1\sim\mathcal N(0,I)$，插值路径为：&lt;/p&gt;
&lt;p&gt;$$z_\tau=(1-\tau)z_0+\tau z_1,\quad \tau\sim\mathcal U[0,1].$$&lt;/p&gt;
&lt;p&gt;DiT 预测恒定速度 $z_1-z_0$，总目标为：&lt;/p&gt;
&lt;p&gt;$$\mathcal L=\lambda_{prop}\mathbb E|v_\theta(z_\tau^q;\tau,c)-(z_1-z_0^q)|&lt;em&gt;2^2+\lambda&lt;/em&gt;{val}\mathbb E|v_\theta(z_\tau^v;\tau,c)-(z_1-z_0^v)|_2^2.$$&lt;/p&gt;
&lt;p&gt;其中 $c$ 是五帧 clean prefix，$lambda_{prop}=0.5$、$lambda_{val}=1.0$（实验默认值）。第一项提供 embodiment 动力学监督，第二项直接监督 value。&lt;/p&gt;
&lt;h4&gt;Outcome-aware return&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 对长度为 $T$ 的 episode，非终止步奖励为 $1/T$；成功终止奖励为 0，失败终止奖励为 1。因此：&lt;/p&gt;
&lt;p&gt;$$G_t=\begin{cases}(T-t)/T,&amp;#x26;success\(T-t)/T+1,&amp;#x26;failure.\end{cases}$$&lt;/p&gt;
&lt;p&gt;成功轨迹的 value 位于 $[0,1)$，失败轨迹位于 $[1,2)$，两者始终有 1.0 的 margin。&lt;strong&gt;【Analysis】&lt;/strong&gt; 该设计把“进展快慢”和“最终是否失败”分离，避免模型把接近终点的失败状态误认为高价值。&lt;/p&gt;
&lt;h4&gt;Event Response Score&lt;/h4&gt;
&lt;p&gt;对标注事件 $k$，以事件前后窗口均值计算：&lt;/p&gt;
&lt;p&gt;$$ERS_k=d_k\frac{V_{after}^{(k)}-V_{before}^{(k)}}{V_{before}^{(k)}+\epsilon},$$&lt;/p&gt;
&lt;p&gt;其中 milestone 的 $d_k=+1$、error 的 $d_k=-1$。MS/ES 是两类事件的平均 ERS；MDR/ErrDR 是 ERS 大于 0 的检测比例。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 训练数据来自三任务的 demonstration 与两轮 RECAP rollout：第一轮每任务 150 成功/50 失败，第二轮 100 成功/50 失败；模型训练一个 epoch，batch size 192，使用 8 张 NVIDIA A800，$K=50$。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;VivaDataset&lt;/code&gt; 从 LeRobot 数据集中读取三路图像和 &lt;code&gt;observation.state&lt;/code&gt;，以 &lt;code&gt;future_offset&lt;/code&gt; 取未来状态；状态按训练集 min/max 归一化到 $[-1,1]$。&lt;code&gt;VivaModel.training_step&lt;/code&gt; 对整段 latent 加噪，只在 future-state 与 value 两帧上计算 MSE flow-matching loss。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 推理时只提供前五帧条件，reverse diffusion 生成 future-state/value 两帧。value latent 的元素均值经 $[-1,1]\to[0,1]$ 重缩放得到 $hat v_t$；future-state latent 则按 repeat-padding 的逆过程分块平均还原为 14 维状态。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;inference.py&lt;/code&gt; 逐帧读取 episode，调用 &lt;code&gt;predict_value&lt;/code&gt;，将预测值写回 parquet；官方脚本默认使用 1 个 DDIM denoising step，并同时保存归一化 prediction 与按 episode 长度反归一化的 &lt;code&gt;model_prediction&lt;/code&gt;。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;| 论文描述 | 官方代码位置 | 对照结果 |
| --- | --- | --- |
| 七帧 latent 与条件 mask | &lt;code&gt;viva_utils.py&lt;/code&gt;, &lt;code&gt;viva_model.py&lt;/code&gt; | &lt;code&gt;[1,1,1,1,1,0,0]&lt;/code&gt; 与论文一致 |
| Wan2.2 backbone | &lt;code&gt;wan_model.py&lt;/code&gt;, &lt;code&gt;wan/&lt;/code&gt; | 加载 Wan2.2-TI2V-5B，核心 DiT 复用 |
| 状态/值注入 | &lt;code&gt;viva_model.py&lt;/code&gt; | repeat-padding 与 broadcast 均显式实现 |
| 数据与未来状态 | &lt;code&gt;viva_dataset.py&lt;/code&gt; | LeRobot，多任务配置，默认 &lt;code&gt;future_offset: 50&lt;/code&gt; |
| 推理输出 | &lt;code&gt;inference.py&lt;/code&gt; | 输出 &lt;code&gt;[0,1]&lt;/code&gt; value 与 episode-scale remaining-frame 估计 |&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-viva/viva-tasks.pg2u1s68s.webp&quot; alt=&quot;ViVa 的三个真实机器人任务（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;p&gt;三个任务分别考察柔性织物双臂协调、纸箱多阶段装配和纸张撕取/回卷。评估集每任务 50 个 episode，并标注关键里程碑与实际发生的错误。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Pearson/Spearman 全局相关性如下：&lt;/p&gt;
&lt;p&gt;| 方法 | Shirt P/S | Box P/S | Paper P/S |
| --- | --- | --- | --- |
| GVL | 0.276 / 0.263 | -0.081 / -0.114 | -0.099 / -0.096 |
| TopReward | 0.118 / 0.090 | 0.503 / 0.499 | 0.318 / 0.241 |
| $\pi^*_{0.6}$ | 0.740 / 0.720 | &lt;strong&gt;0.946 / 0.945&lt;/strong&gt; | 0.926 / 0.936 |
| ViVa | &lt;strong&gt;0.984 / 0.982&lt;/strong&gt; | 0.868 / 0.850 | &lt;strong&gt;0.952 / 0.948&lt;/strong&gt; |&lt;/p&gt;
&lt;p&gt;ViVa 在衬衫和纸卷上领先，纸箱上由 $pi^*_{0.6}$ 领先。事件级指标更能反映 RL 信号质量：衬衫任务 ViVa 的 MDR/ErrDR 为 0.990/1.000，而 VLM baseline 仅 0.407/0.500。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-viva/viva-errors.3k8qzu7cnv.webp&quot; alt=&quot;ViVa 对细微操作错误的 value 响应（论文 Figure 5）&quot;&gt;&lt;/p&gt;
&lt;p&gt;接入 RECAP 的真实机器人成功率为：&lt;/p&gt;
&lt;p&gt;| 方法 | Shirt | Box | Paper | 平均 |
| --- | ---: | ---: | ---: | ---: |
| $\pi_{0.5}$ | 60 | 40 | 40 | 46.7 |
| Gigabrain-0 | 50 | 50 | 20 | 40.0 |
| RECAP (VLM) | 70 | 60 | 60 | 63.3 |
| RECAP (ViVa) | &lt;strong&gt;90&lt;/strong&gt; | &lt;strong&gt;70&lt;/strong&gt; | &lt;strong&gt;80&lt;/strong&gt; | &lt;strong&gt;80.0&lt;/strong&gt; |&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 架构消融显示：将 VLM 换成 video generator 后，衬衫 MDR 从 0.407 提升到 1.000；加入当前 proprioception 和 future-state prediction 后，纸卷 ES/ErrDR 达到 0.055/0.778。去掉预训练视频权重会显著恶化，衬衫 ES 从 0.012 降至 -0.524。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-viva/viva-loss.6f1f5mmjk5.webp&quot; alt=&quot;损失权重与预测 horizon 消融（论文 Figure 8/9）&quot;&gt;&lt;/p&gt;
&lt;p&gt;最佳折中是 $\lambda_{prop}=0.5$、$K=50$；$K=10$ 上下文不足，$K=75$ 则引入更多噪声。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在未见过的 pants folding 任务上，ViVa 的相关性为 0.819/0.799，事件敏感性 ES 为 0.037，综合指标较 $pi^*_{0.6}$ 的 0.643 提升超过 60%。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-viva/viva-trajectory.92qvfzfl9p.webp&quot; alt=&quot;跨任务 value trajectory（论文 Figure 6）&quot;&gt;&lt;/p&gt;
&lt;p&gt;效率方面，ViVa 训练成本 4 GPU·days、推理 0.18 s/frame；VLM baseline 为 6 GPU·days、0.32 s/frame。仅预测 value 的 video variant 更快（3 GPU·days、0.11 s/frame），但事件质量下降。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; value 的监督本质上要求模型回答“当前行为是否把系统带向成功”。未来本体状态是一个低维、可检查的中间目标：若模型无法预测合理的末端姿态/关节变化，就很难仅凭外观给出稳定 value。视频 DiT 的时空先验则提供了跨帧的运动归纳偏置。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 真正的创新是把 value 从一个孤立的 discriminative head，改写成生成序列中的一个 target frame；未来状态预测不是辅助可视化，而是让 value 学会遵守 embodiment dynamics 的训练约束。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;VLM value model 主要对当前帧做语义判别；ViVa 通过 noisy-target denoising 学习条件分布，并在同一 latent sequence 中联合建模未来状态与回报。前者问“这帧像不像成功”，后者问“从这帧出发，系统将如何演化以及结果如何”。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;三路视觉和 14 维本体状态足以作为 MDP 状态的实用代理。&lt;/li&gt;
&lt;li&gt;预测固定 horizon 的未来状态能提供足够的 dynamics grounding。&lt;/li&gt;
&lt;li&gt;大规模通用视频预训练的时空先验可以迁移到机器人操作。&lt;/li&gt;
&lt;li&gt;归一化 return 的排序与 RECAP 所需的 advantage 信号一致。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 受资源限制，作者尚未对 value model 做大规模预训练；跨任务泛化潜力仍留作未来工作。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 论文只评估三个任务、单一机器人形态与三路相机；代码依赖 Wan2.2-TI2V-5B 和多 GPU 训练，复现实验门槛较高。把标量 value broadcast 成整张 latent frame 虽然简单，但空间冗余可能限制更细粒度的 value uncertainty 表达。推理默认单步 DDIM 也意味着生成质量与速度之间的权衡尚未充分探索。&lt;/p&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; ViVa 给出的方向是“用生成模型做 critic”，而不是只把生成模型当 policy 或 world model。后续可以沿三条线推进：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;让模型预测 action-conditioned future state，从 state value 走向 Q/advantage 建模；&lt;/li&gt;
&lt;li&gt;用多步或不确定性采样估计 value interval，而不是单一标量；&lt;/li&gt;
&lt;li&gt;在更多 embodiment 与跨任务数据上预训练，使视频先验真正转化为通用机器人动力学先验。&lt;/li&gt;
&lt;/ul&gt;</content:encoded><h:img src="https://pic.hana0721.top/98073480.3rbvmy4uvn.webp"/><enclosure url="https://pic.hana0721.top/98073480.3rbvmy4uvn.webp"/></item><item><title>VideoVLA 论文精读：让视频生成器同时想象与执行</title><link>https://agusexp25.top/blog/paper-deep-dive-videovla</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-videovla</guid><description>精读 VideoVLA：基于 CogVideoX-5B 的多模态 DiT 同时预测未来视频 latent 与 7D 动作，在 SIMPLER 和真实 Realman 上验证视频想象带来的泛化能力。</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;论文名称&lt;/strong&gt;：《VideoVLA: Video Generators Can Be Generalizable Robot Manipulators》&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;作者&lt;/strong&gt;：Yichao Shen、Fangyun Wei、Zhiying Du、Yaobo Liang、Yan Lu、Jiaolong Yang、Nanning Zheng、Baining Guo&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;机构&lt;/strong&gt;：西安交通大学、Microsoft Research Asia、复旦大学&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;会议&lt;/strong&gt;：NeurIPS 2025&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;论文 / 代码 / 项目&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2512.06963&quot;&gt;arXiv&lt;/a&gt; · &lt;a href=&quot;https://github.com/VideoVLA-Project/VideoVLA&quot;&gt;官方代码&lt;/a&gt; · &lt;a href=&quot;https://videovla-nips2025.github.io/&quot;&gt;项目主页&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; VideoVLA 不把视频生成仅当作可视化副产品：给定当前图像和语言指令，它在一个多模态 Diffusion Transformer 中&lt;strong&gt;联合预测未来视频 latent 和将要执行的动作 chunk&lt;/strong&gt;，借由二者在每一次去噪中的耦合，把预训练视频模型的条件理解、未来演化与物理先验迁移为机器人操控的泛化能力。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;将 CogVideoX 的 Video DiT 扩展为 Video-Action DiT：视频、语言与连续动作在一个统一 token 序列中交互。&lt;/li&gt;
&lt;li&gt;提出 dual-prediction：对未来视觉结果和动作同时施加 DDPM 去噪监督，而不是只学习动作。&lt;/li&gt;
&lt;li&gt;在 SIMPLER 和 Realman 真实机器人上测试 in-domain、新物体、跨 embodiment 新技能三类能力，并报告优于所列基线的总体结果。&lt;/li&gt;
&lt;li&gt;分析视觉想象与执行结果的相关性：高质量 imagined future 与更可靠的动作、较高的任务成功率相关。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 论文的关键转向不是“在 VLA 旁边再生成一段视频”，而是要求 action token 与 future-video token 在同一生成过程里彼此解释。视频预测因此为动作施加了一个很强的反事实约束：如果这段动作真会完成指令，模型也应能同时想象出合理的后果。&lt;/p&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 常见 VLA 主要从视觉、视觉语言或语言理解模型迁移能力，再在机器人数据上微调。它们能读懂指令、识别物体，但面对未见物体、未见任务或未见环境时，泛化仍有限。另一边，大型视频生成器在新文本/新图像条件下生成连贯未来的能力，包含物体外观、运动与部分物理动态先验。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; VideoVLA 的出发点是两类条件生成问题的结构相似性：视频模型根据文本和首帧预测未来世界，操控策略根据语言和当前观测预测未来行为。前者的“未来”尚没有可执行动作，后者的动作也未必被显式约束其视觉后果；论文用联合生成弥合这个缺口。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 相比把视频生成器作为高层 planner、再由另一个 policy 跟踪计划，VideoVLA 的耦合更紧：它只训练一个生成器。代价是不能在推理时先筛选多个未来视频再选动作；收益是 action 和 video 能在扩散的每个时间步交换信息，而不是只在两个模块接口处相接。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 给定语言指令 $\mathcal{T}$ 与当前视觉观测 $\mathcal{O}$，策略要同时输出：&lt;/p&gt;
&lt;p&gt;$$
\mathcal{A}={\boldsymbol{a}&lt;em&gt;i\in\mathbb{R}^{7}}&lt;/em&gt;{i=1}^{K},\qquad
\mathcal{F}={\boldsymbol{F}&lt;em&gt;j}&lt;/em&gt;{j=1}^{N}.
$$&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;$\mathcal{A}$ 是 action chunk。每步 7 维：前三维腕部旋转、接着三维腕部平移、最后一维夹爪二值状态（0 闭合、1 张开）。&lt;/li&gt;
&lt;li&gt;$\mathcal{F}$ 是执行该 chunk 后预期看到的未来视频。模型实际预测其 latent，而非 RGB 像素。&lt;/li&gt;
&lt;li&gt;每次执行一个 chunk 后获取新观测，再重复预测；动作频率和视频帧频率可以不同。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 预训练使用 OXE（Open X-Embodiment）中与前作相同的子集：约 2,250 万帧，来自 60 个数据集、22 类机器人 embodiment；真实实验另采集 5,824 个 Realman 样本，覆盖 pick、stack、place 三项任务。&lt;/p&gt;
&lt;p&gt;| Embodied AI 项目      | VideoVLA 的选择                                         |
| --------------------- | ------------------------------------------------------- |
| Observation           | 当前单帧图像，经 3D-causal VAE 编为首帧 latent          |
| Language              | T5 编码为固定 226 个 token                              |
| Action representation | 不离散化的连续 7D action；一次预测 6 步（论文默认实验） |
| Future representation | CogVideoX 3D-causal VAE 的 future-frame latent          |
| Policy / decoder      | 预训练 CogVideoX-5B 初始化的多模态 DiT                  |
| Deployment            | 每轮只执行预测 6 步动作中的前 3 步，然后重新观测        |&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 架构由两类 encoder 和一个 DiT backbone 构成：T5 把指令变成文本 token；CogVideoX 的 3D-causal VAE 把训练视频变成 latent；DiT 以文本 token 和当前首帧 latent 为条件，联合生成 future-frame latents 与 action chunk。粉色 VAE decoder 只在展示 imagined future 时使用，并不参与机器人控制输出。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 一句话数据流：&lt;code&gt;instruction + current-image latent → unified DiT → future-video latents + action chunk&lt;/code&gt;；训练与运行时分别如何构造/去噪，在 4.4 与 4.5 展开。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;条件编码：T5 与 3D-causal VAE&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; T5 将 $\mathcal{T}$ 编为 226 个 token $\boldsymbol{T}$。3D-causal VAE 将视频 $\mathcal{F}$ 编为 $\mathcal{V}={\boldsymbol{V}&lt;em&gt;j}&lt;/em&gt;{j=1}^{n}$；因其因果性，$\boldsymbol{V}_1$ 只编码首帧，恰好可作为当前观测 $\mathcal{O}$ 的表示。训练时编码完整视频获得首帧和未来 latent；推理时只编码当前图像以获得 $\boldsymbol{V}_1$。&lt;/p&gt;
&lt;h4&gt;Unified Video-Action DiT&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 模型以 raster order 展平当前/未来视觉 latent，拼接文本 $\boldsymbol{T}$、当前图像 $\boldsymbol{V}&apos;_1$、带噪未来 latent ${\boldsymbol{V}&apos;&lt;em&gt;j}&lt;/em&gt;{j=2}^{n}$ 与带噪动作 $\mathcal{A}$。所有模态投影至共同 embedding dimension 后，经 self-attention 在时间和模态之间交互；扩散 timestep 用 adaptive LayerNorm 注入。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 这让模型不是先“生成视频、再由视频取动作”，也不是并排的两个 head：future-video token 与 action token 在相同 DiT block 中共同去噪。论文还比较同步与异步 schedule，默认同步训练、同步推理的 SIMPLER 平均成功率为 80.4%，高于异步训练/同步推理的 73.8% 和异步训练/异步推理的 71.0%。&lt;/p&gt;
&lt;h4&gt;双预测为何是必要约束&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 消融中，完整 dual-prediction 在 Google Robot 的 SIMPLER in-domain 三任务均值为 80.4%；只去掉 video loss 降至 27.0%，只预测 action 降至 25.5%。在新物体 / 新技能泛化上，完整模型为 65.2% / 48.6%，&lt;code&gt;No video loss&lt;/code&gt; 为 12.7% / 4.4%，&lt;code&gt;Action only&lt;/code&gt; 为 11.3% / 2.1%。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这份消融支持“视频损失很重要”，但不单独证明提升完全来自视频模型的物理常识：同时损失也增加了预测目标、提供了稠密的时间监督。它证明的是这种联训设定有效，不等价于对每个动作都进行了显式的 model-predictive verification。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 对目标 future-video latents 与 action chunk 加高斯噪声后，DiT 学习同时预测噪声。可将训练目标概括为：&lt;/p&gt;
&lt;p&gt;$$
\mathcal{L}_{\mathrm{dual}}
= \lambda_v\left\lVert\widehat{\boldsymbol{\epsilon}}_v-\boldsymbol{\epsilon}_v\right\rVert_2^2&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;\lambda_a\left\lVert\widehat{\boldsymbol{\epsilon}}_a-\boldsymbol{\epsilon}_a\right\rVert_2^2.
$$&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;$\boldsymbol{\epsilon}_v,\boldsymbol{\epsilon}_a$：分别加到视频 latent、动作上的高斯噪声；&lt;/li&gt;
&lt;li&gt;$\widehat{\boldsymbol{\epsilon}}_v,\widehat{\boldsymbol{\epsilon}}_a$：模型预测的噪声；&lt;/li&gt;
&lt;li&gt;$\lambda_v,\lambda_a$：两项损失的权重。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 公开配置 &lt;code&gt;config_use/action_config/videovla_config.yaml&lt;/code&gt; 的 &lt;code&gt;VideoDiffusionLoss_withact&lt;/code&gt; 将 &lt;code&gt;vd_lw&lt;/code&gt; 与 &lt;code&gt;act_lw&lt;/code&gt; 都设为 1，和上述等权的 dual loss 对应；该配置没有替代论文的理论定义。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文采用 CogVideoX-5B 初始化，预训练 100K iterations、微调 15K iterations，使用 32 张 AMD MI300X、batch size 256、AdamW（learning rate $10^{-5}$，weight decay $10^{-4}$）。仿真推理预测 13 个 future latents（49 帧）；真实机器人为效率预测 4 个 future latents（13 帧）。两种情形均预测 6 个动作。&lt;/p&gt;
&lt;p&gt;&amp;#x3C;Algorithm
number={1}
title=&apos;VideoVLA Dual-Prediction Training&apos;
inputLabel=&apos;输入&apos;
outputLabel=&apos;输出&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 公开仓库提供 inference、配置和模型实现，但 README 没有给出可复现的 OXE DataLoader 或完整训练入口。仓库配置中网络是 42 层、hidden size 3072、48 attention heads，视频长度为 49；这能核对发布的推理模型规格，却不能独立复跑论文数据处理和训练报告。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 每轮推理只输入当前观测：编码首帧后，模型从噪声中同时去噪出视频 latent 和 6 步动作；部署时只执行前 3 步，获取新图像后再次调用策略。论文默认使用 50 个 DDIM denoising steps；局限性实验为了实时性改为预测 4 个 future latents、以 10 steps 去噪，单张 H100 约 1.1 秒，有效控制频率约 3 Hz。&lt;/p&gt;
&lt;p&gt;&amp;#x3C;Algorithm
number={2}
title=&apos;VideoVLA Receding-Horizon Inference&apos;
inputLabel=&apos;输入&apos;
outputLabel=&apos;输出&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;| 论文描述            | 官方代码位置                                    | 可确认的实际行为                                                                                               |
| ------------------- | ----------------------------------------------- | -------------------------------------------------------------------------------------------------------------- |
| Video-Action DiT    | &lt;code&gt;dit_video_concat_withact.py&lt;/code&gt;                   | 用线性层将 7D 动作投影为 action token；最后一个 action head 输出 7D noise prediction。                         |
| 多模态损失          | &lt;code&gt;config_use/action_config/videovla_config.yaml&lt;/code&gt; | &lt;code&gt;VideoDiffusionLoss_withact&lt;/code&gt;，视频与动作权重均为 1。                                                           |
| 输入与 action shape | &lt;code&gt;sample_video_action.py&lt;/code&gt;、&lt;code&gt;inference.yaml&lt;/code&gt;      | 推理初始化 &lt;code&gt;[1, 6, 7]&lt;/code&gt; 的零动作；&lt;code&gt;action_lenght&lt;/code&gt;（仓库拼写）为 6。                                             |
| 采样配置            | &lt;code&gt;videovla_config.yaml&lt;/code&gt;                          | 配置列出 &lt;code&gt;VPSDEDPMPP2MSampler_withact&lt;/code&gt;、50 steps、Dynamic CFG scale 6。                                        |
| 输出                | &lt;code&gt;sample_video_action.py&lt;/code&gt;                        | 代码取得 &lt;code&gt;samples_z, action_samples_z&lt;/code&gt;，但示例脚本只把解码视频写为 MP4，未把动作样本序列化或接入机器人控制器。 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 论文写作中的“DDIM 50 steps”和发布 YAML 的 sampler 类名 / CFG scale 并不完全同名同值；在无训练、部署与评测脚本的情况下，不能把这份最小推理仓库视作论文全部实验的逐行复现。因此上表只报告能从公开文件直接确认的事实。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 仿真使用 SIMPLER：WidowX 在 Visual Matching（VM）下评 4 个任务；Google Robot 在 VM 与 Variant Aggregation（VA）下评 Pick Up Coke Can、Move Near、Open/Close Drawer、Open and Place。VA 会改变背景、光照和桌面纹理。所有仿真模型从 OXE 训练，指标为多次 trial 的 success rate。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 真实实验用配有 7-DoF 手臂与夹爪的 Realman；论文采集 5,824 个 pick、stack、place 样本，并对预训练模型进行微调。真实新物体测试使用 12 个训练未见物体，跨 embodiment 新技能则让 Realman 执行只在 WidowX 训练数据中出现过的动作技能。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在 12 个 SIMPLER in-domain 任务的总体平均上，VideoVLA 为 &lt;strong&gt;63.0%&lt;/strong&gt;，高于表中 CogACT 的 62.6%、$\pi_0$ 的 50.0%、SpatialVLA 的 47.1%、OpenVLA 的 26.0%。分组看，VideoVLA 的 WidowX-VM 平均为 53.1%，Google-VA 平均为 62.8%，Google-VM 为 73.1%（后者略低于 CogACT 的 75.2%）。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 真实 Realman 的 in-domain 三类任务总平均为 &lt;strong&gt;64.6%&lt;/strong&gt;，高于 CogACT（58.4%）、$\pi_0$（50.7%）、SpatialVLA（22.9%）和 OpenVLA（9.7%）。在 12 个真实新物体上，VideoVLA 平均为 &lt;strong&gt;50.6%&lt;/strong&gt;；相较 CogACT 的 26.9%、$\pi_0$ 的 21.8%，优势主要出现在 Clear Tape、Toy Duck 等多个物体，但不是每一项都第一。&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 上图的定性案例并列展示实际执行和 predicted video。论文把可执行动作带来的视频结果称为 visual imagination，并以此说明视频与动作在外观和运动上存在对应；定性图用于展示而非替代 success-rate 统计。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;| 消融（Google Robot, SIMPLER VM） | Pick Up | Move | Open/Close |     平均 |
| -------------------------------- | ------: | ---: | ---------: | -------: |
| CogVideoX-5B 预训练（默认）      |    92.3 | 82.9 |       66.2 | &lt;strong&gt;80.4&lt;/strong&gt; |
| CogVideoX-5B 从头训练            |    18.6 | 10.8 |        9.2 |     12.6 |
| OpenSora-1.1 backbone            |    67.7 | 57.1 |       25.9 |     50.2 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 预测更长未来也更好：49 / 25 / 13 个 future frames 的平均成功率依次为 80.4% / 77.4% / 75.2%。作者据此认为，更长的视觉时间视野能帮助动作预测提前考虑后果。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在 SIMPLER 的 10 个新物体上，VideoVLA 平均 success rate 为 &lt;strong&gt;65.2%&lt;/strong&gt;，对第二名 SpatialVLA（50.8%）领先 14.4 个点，并在 10 个物体中的 8 个上最好。Google Robot 的跨 embodiment 新技能迁移平均为 &lt;strong&gt;48.6%&lt;/strong&gt;，高于 CogACT 的 20.4% 与 SpatialVLA 的 18.9%。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Realman 跨 embodiment 新技能迁移平均为 &lt;strong&gt;58.0%&lt;/strong&gt;，超过 CogACT 的 35.1%。这些技能在 WidowX 的训练数据中存在、在 Realman 的训练数据中不存在；实验试图区分“换物体”与“换 embodiment 后学习未演示技能”。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 预训练视频 DiT 已在大规模视频中学习“文本条件下可能发生什么”的统计规律。VideoVLA 将动作也放进同一去噪问题，迫使一个可用于 robot control 的低维输出与高维视觉后果同步。这比只用 action loss 多出两层约束：对象/指令的语义一致性，以及轨迹随时间的可见后果。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 核心创新是 &lt;strong&gt;joint visual-action diffusion&lt;/strong&gt;，而非仅使用 CogVideoX 初始化。若未来视频只由一个冻结模型离线打标签，动作模型未必能在 sampling 中获得视频 token 的逐步反馈；VideoVLA 的 token-level joint denoising 正是其同步策略优于异步策略的设计理由。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;| 方法范式                    | 主要预训练先验                      | 行为输出                          | VideoVLA 的差异                                              |
| --------------------------- | ----------------------------------- | --------------------------------- | ------------------------------------------------------------ |
| 理解型 VLA                  | VLM / vision-language understanding | 动作 token 或 action chunk        | VideoVLA 迁移视频生成能力，并预测动作的视觉后果。            |
| 独立 video planner + policy | 未来视频与控制器分离                | planner 输出视频，policy 输出动作 | VideoVLA 让 future video 与 action 在同一个 DiT 内联合采样。 |
| 纯 Diffusion Policy         | 机器人轨迹分布                      | 连续动作                          | VideoVLA 将视频 latent 作为联合目标和生成变量。              |&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 方法依赖三项假设：(1) 高质量通用视频先验能转移到相机视角下的机器人场景；(2) 训练数据中的 future video 与 action 已经时空对齐；(3) 联合生成学到的相关性足以跨越 embodiment 间不同的运动学和控制接口。第三项尤其强，因为同样的图像后果可能由不同 robot action 实现。&lt;/p&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 最大限制是推理速度。面向真实部署时，预测 4 个 future latents（13 帧）和 6 个动作、执行其中 3 步，在单张 H100 上约需 1.1 秒，约 3 Hz。作者将瓶颈归于 CogVideoX-5B，建议后续使用更小的 robot-oriented video generator、one-step denoising 或模型蒸馏。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;想象不是验证。&lt;/strong&gt; 模型生成的未来视频与动作来自同一个生成模型，二者自洽不必然代表二者都对真实环境正确；论文的相关性分析也没有把 imagined future 接入显式选择、拒绝或闭环纠错机制。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;视觉后果未必可辨识动作。&lt;/strong&gt; 第三人称图像下，多种 action trajectory 可能产生相近未来帧；特别是接触力、精细夹爪状态、遮挡区域很难仅凭视频确定。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;公开复现链尚不完整。&lt;/strong&gt; 官方仓库已发布模型和示例推理，但没有完整训练/数据加载/机器人部署流程；论文的训练数据变换与全部评测细节不能只靠当前代码仓库复现。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;高成本限制控制频率与探索。&lt;/strong&gt; 3 Hz 对慢速 pick-and-place 可用，却难以应对快速接触、扰动恢复或需要大量 candidate sampling 的场景。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; VideoVLA 值得延伸的方向不是把视频长度一味加大，而是让 visual imagination 进入决策闭环：生成多个 action-video 样本，以视觉可达性、碰撞风险或目标进展为准则重排序；执行后比较真实观测和预测，检测模型失配并触发重规划。这样视频才从训练期 auxiliary target 升级为测试期的可用 world model。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 跨 embodiment 的下一步也应显式引入 embodiment token、运动学约束或 action canonicalization。VideoVLA 目前用统一的 7D wrist rotation/translation/gripper 表示降低差异，但不同臂长、坐标系、夹爪与低层控制器仍会把同一“想象结果”映射到不同可行动作。&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 作者以 SIFT、SAM、SAM-PT 与 Hungarian matching 比较 imagined video 和实际 execution 的前景关键点轨迹；Google 与 WidowX 图中更高的运动相似度对应更高成功概率。在新物体 / 新技能设置中，人工评定的 visual-imagination success rate 为 84.0% / 63.4%，实际执行 success rate 为 65.2% / 48.6%。这表明 imagination 有信息量，也同时显示从“看起来合理”到“真实执行成功”仍有明显落差。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/92079701_p0_master1200.64eg2t4l77.webp"/><enclosure url="https://pic.hana0721.top/92079701_p0_master1200.64eg2t4l77.webp"/></item><item><title>TwinBrainVLA 论文精读：冻结通用大脑的双流 VLA</title><link>https://agusexp25.top/blog/paper-deep-dive-twinbrainvla</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-twinbrainvla</guid><description>精读 TwinBrainVLA：冻结 Left Brain、训练 Right Brain，并用 AsyMoT 将通用视觉语义注入 Flow-Matching 控制器，缓解 VLA 的 catastrophic forgetting。</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;论文名称&lt;/strong&gt;：《TwinBrainVLA: Unleashing the Potential of Generalist VLMs for Embodied Tasks via Asymmetric Mixture-of-Transformers》&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;作者&lt;/strong&gt;：Bin Yu、Shijie Lian、Xiaopeng Lin 等（中关村科学院、哈尔滨工业大学等）&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;论文链接&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2601.14133&quot;&gt;arXiv:2601.14133&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;代码链接&lt;/strong&gt;：&lt;a href=&quot;https://github.com/ZGC-EmbodyAI/TwinBrainVLA&quot;&gt;ZGC-EmbodyAI/TwinBrainVLA&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;实现链接&lt;/strong&gt;：&lt;a href=&quot;https://github.com/Phys-Brain/PhysBrain-VLA&quot;&gt;Phys-Brain/PhysBrain-VLA&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 标准 VLA 把预训练 VLM 直接在机器人数据上微调，控制能力变强的同时却遗忘了开放世界视觉语义。TwinBrainVLA 复制两条同构 VLM 路径：冻结的 &lt;strong&gt;Left Brain&lt;/strong&gt; 作为语义锚点，训练的 &lt;strong&gt;Right Brain&lt;/strong&gt; 负责本体感知与控制；通过单向 &lt;strong&gt;Asymmetric Mixture-of-Transformers（AsyMoT）&lt;/strong&gt;，Right Brain 在每层注意力中查询 Left Brain 的 Key-Value，再由 Flow-Matching Action Expert 生成连续动作。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;用 POPE、SEED-Bench、ScienceQA 和 MME 追踪 VLA 微调过程，展示只用机器人数据、甚至混入通用视觉问答数据，仍会出现严重的 catastrophic forgetting。&lt;/li&gt;
&lt;li&gt;提出双流架构：Left Brain 始终冻结并保留通用能力，Right Brain 专门学习 sensorimotor control，并额外接收 proprioceptive state。&lt;/li&gt;
&lt;li&gt;提出 AsyMoT：Right Brain 的 Query 同时访问自身 KV 与 Left Brain KV；Left Brain 只做自己的 self-attention，因此信息流是单向的。&lt;/li&gt;
&lt;li&gt;在 SimplerEnv、RoboCasa、LIBERO 和 Franka Research 3 实验中验证 OOD 泛化，并通过 freezing、交互频率和 twin-to-one distillation 做补充分析。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; VLA 的吸引力在于把互联网规模 VLM 的语义先验迁移到机器人：模型应该能识别未见过的物体、理解组合指令，并把这些知识用于长时域规划。但机器人数据的目标是精确预测低层动作，和 VLM 预训练的语言/视觉目标并不一致。直接最小化 action loss 会把 backbone 推向窄域 controller，牺牲原本的 generalist brain。&lt;/p&gt;
&lt;p&gt;论文对比了三类缓解思路：混入通用 QA 数据的 co-training、加入 Chain-of-Thought 的 VLA，以及通过数据工程避免视觉 shortcut。TwinBrainVLA 的取舍是结构性隔离：不要求每轮微调都重新维护通用数据，而是保留一份永不被 action loss 改写的语义副本。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-twinbrainvla/motivation_2.webp&quot; alt=&quot;VLA 微调中的 catastrophic forgetting 证据（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 给定多视角图像 $I$、语言指令 $T$、机器人本体状态 $s$ 和示教动作序列 $a$，学习一个连续控制策略：&lt;/p&gt;
&lt;p&gt;$$
\pi(a_{t:t+H}\mid I_{t}, T, s_t)
$$&lt;/p&gt;
&lt;p&gt;其中 $H$ 是 action horizon，动作可以包含末端位姿、夹爪或关节控制量。论文实验主要使用 Qwen2.5-VL-3B-Instruct 和 Qwen3-VL-4B-Instruct 两种 backbone；训练数据来自 OXE 的 Bridge-V2、Fractal，以及 RoboCasa 使用的 PhysicalAI-Robotics-GR00T-X-Embodiment-Sim。代码实现还支持多 embodiment 条件和 action query token。&lt;/p&gt;
&lt;p&gt;这里的核心约束不是“如何再加一个视觉 encoder”，而是：&lt;strong&gt;如何在 Right Brain 专门化时，让控制策略仍能访问没有被机器人数据污染的语义表示？&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/ZGC-EmbodyAI/TwinBrainVLA/main/assets/TwinBrainVLA-arch.svg&quot; alt=&quot;TwinBrainVLA 总体架构：Left Brain、Right Brain、AsyMoT 与 Flow-Matching Action Expert（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 两条同构 VLM 接收图像和指令；Left Brain 只接收 $(I,T)$ 并冻结，Right Brain 接收 $(I,T,s)$ 并训练。每个 Transformer 层内，Right Brain 用自己的 Query 拼接两条路径的 KV 做注意力，最后将 Right Brain 表示交给 Action Expert 生成连续动作。训练与推理的具体循环分别见 4.4 和 4.5。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;Left Brain：冻结的 Generalist&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：视觉观测 $I$ 与文本指令 $T$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：语义 hidden states $H_L$，以及每层的 $K_L,V_L$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;作用&lt;/strong&gt;：作为 semantic capability reservoir，保留 VLM 预训练的 open-world knowledge。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要&lt;/strong&gt;：如果它参与 action loss 的梯度更新，就会重新落入单流 VLA 的遗忘路径。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Left Brain 从训练开始到结束都保持冻结。&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;PhysBrainVLA.py&lt;/code&gt; 的 &lt;code&gt;MoT_Qwen_VL_Interface&lt;/code&gt; 载入两份独立 VLM，并在 &lt;code&gt;freeze_left_vlm&lt;/code&gt; 为真时调用 &lt;code&gt;freeze_qwen_vl&lt;/code&gt;；前向时还对 Left Brain 的 hidden/KV 使用 &lt;code&gt;detach&lt;/code&gt;，确保 joint attention 不把梯度传回左路。&lt;/p&gt;
&lt;h4&gt;Right Brain：带状态的 Specialist&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：图像 $I$、指令 $T$、proprioceptive state $s$，以及代码实现中的 &lt;code&gt;&amp;#x26;lt;|propri|&amp;#x26;gt;&lt;/code&gt;、&lt;code&gt;&amp;#x26;lt;|action|&amp;#x26;gt;&lt;/code&gt; 特殊 token。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;中间模块&lt;/strong&gt;：vision encoder、text tokenizer、state encoder $\phi$、Right VLM Transformer。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：用于 action expert 的条件表示 $H_R$，或 action query token 的 hidden states。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;作用&lt;/strong&gt;：让可训练路径专门吸收机器人动力学、embodiment 差异和动作时序。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;状态编码器把关节角等状态投影到 VLM embedding 空间：&lt;/p&gt;
&lt;p&gt;$$
H_R^0=[V(I);T(T);\phi(s)]
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 公开的 PhysBrain 实现比论文初版更具体：Right Brain 可使用 prior/posterior 两种 action-token 排布，并引入 LLR regularization 防止模型过度依赖 Left Brain KV；这属于集成实现的扩展，不应倒推为 arXiv 论文正文的核心训练目标。&lt;/p&gt;
&lt;h4&gt;AsyMoT：单向语义桥&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在第 $l$ 层，Left Brain 只做自身注意力：&lt;/p&gt;
&lt;p&gt;$$
H_L^{l+1}=\operatorname{Attn}(Q_L^l,K_L^l,V_L^l)+\operatorname{FFN}(H_L^l)
$$&lt;/p&gt;
&lt;p&gt;Right Brain 则构造：&lt;/p&gt;
&lt;p&gt;$$
K_{joint}^l=[\operatorname{sg}(K_L^l);K_R^l],\quad
V_{joint}^l=[\operatorname{sg}(V_L^l);V_R^l]
$$&lt;/p&gt;
&lt;p&gt;再用 $Q_R^l$ 查询：&lt;/p&gt;
&lt;p&gt;$$
H_R^{l+1}=\operatorname{Softmax}!\left(\frac{Q_R^lK_{joint}^{l\top}}{\sqrt{d_k}}\right)V_{joint}^l+\operatorname{FFN}(H_R^l)
$$&lt;/p&gt;
&lt;p&gt;它和 Cross-Attention 的差别是：Cross-Attention 的 Query 通常只能看另一路 KV；AsyMoT 让 Right Brain 同时看 Left Brain 和自己的上下文，因此既能读取语义锚点，又不会丢掉本体状态与动作 token 的局部信息。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;private/PhysBrainVLA.py&lt;/code&gt; 在每一层分别投影两路 QKV，并以 &lt;code&gt;torch.cat([f_k, t_k], dim=2)&lt;/code&gt;、&lt;code&gt;torch.cat([f_v, t_v], dim=2)&lt;/code&gt; 构造联合 KV；&lt;code&gt;mot_attention_mode=&apos;unidirectional&apos;&lt;/code&gt; 时 frozen stream 只看自身，trainable stream 看联合 KV。代码还实现了 &lt;code&gt;full_joint&lt;/code&gt; 作为消融/兼容模式。&lt;/p&gt;
&lt;h4&gt;Flow-Matching Action Expert&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：Right Brain 条件 $H_R$ 与噪声动作 $a_0$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：长度为 $H$ 的连续动作轨迹 $a_1$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;模块&lt;/strong&gt;：条件 Diffusion Transformer（DiT）/ &lt;code&gt;FlowmatchingActionHead&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;作用&lt;/strong&gt;：把离散 token 级语义转换为平滑的连续控制。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;论文使用向量场回归：&lt;/p&gt;
&lt;p&gt;$$
\mathcal L_{action}=\mathbb E_{t,a_0,a_1}\left[\left|v_\psi(a_t,t,H_R)-(a_1-a_0)\right|_2^2\right]
$$&lt;/p&gt;
&lt;p&gt;其中 $a_0$ 是高斯噪声，$a_1$ 是真实动作，$a_t$ 是两者之间的插值，$v_\psi$ 是 DiT 预测的速度场。&lt;strong&gt;【Analysis】&lt;/strong&gt; 这一步把“通用语义是否被保留”和“动作轨迹如何去噪”解耦：前者由双脑表示负责，后者由 action expert 负责。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;p&gt;论文的总目标只对机器人动作优化：&lt;/p&gt;
&lt;p&gt;$$
\mathcal L_{total}=\mathcal L_{action}(\theta_R,\psi,\phi;D_{robot})
$$&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;$\theta_R$：Right Brain 可训练参数；&lt;/li&gt;
&lt;li&gt;$\psi$：Flow-Matching Action Expert 参数；&lt;/li&gt;
&lt;li&gt;$\phi$：state encoder 参数；&lt;/li&gt;
&lt;li&gt;$D_{robot}$：机器人示教数据集。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 与单流 VLA 的关键差异是，action loss 不需要直接约束 Left Brain；冻结本身就是保持语义能力的结构先验。&lt;strong&gt;【Analysis】&lt;/strong&gt; 这会把优化问题变成“允许右脑遗忘、但禁止整个系统失去语义锚点”，而不是要求一组参数同时满足两个相互冲突的目标。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; SimplerEnv 使用 OXE Bridge-V2 与 Fractal 子集；RoboCasa 使用 Humanoid Tabletop Manipulation 数据。实验训练基于 starVLA，使用 16 张 NVIDIA H100，并保持两条 VLM 以相同预训练权重初始化。Left Brain 不更新，Right Brain、state encoder 和 action expert 由 flow-matching action loss 更新。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方 TwinBrainVLA 仓库目前主要提供 README 和架构资产，完整可运行的模型逻辑在 PhysBrain-VLA 的 &lt;code&gt;physbrain_vla/PhysBrainVLA.py&lt;/code&gt;；代码实际会加载两份 VLM，显存成本近似翻倍，并支持 Qwen2.5-VL、Qwen3-VL（以及集成分支中的 Qwen3.5）。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 推理时不需要 CVAE 或额外语义数据：机器人读取图像、指令和状态，Left Brain 产生冻结的语义 KV，Right Brain 通过 AsyMoT 查询它们，Action Expert 从噪声动作开始沿 learned vector field 去噪，输出一个连续动作 chunk，再交给底层控制器执行。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; PhysBrain 实现会定位 &lt;code&gt;&amp;#x26;lt;|action|&amp;#x26;gt;&lt;/code&gt; query token 的 hidden states 作为 action head 条件，并支持按 embodiment id 注入机器人类型；这说明公开实现已经把论文中的“状态条件”落实为具体 token/embedding 接口。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;| 论文概念 | 官方实现位置 | 实际行为 |
| --- | --- | --- |
| 双 VLM | &lt;code&gt;physbrain_vla/PhysBrainVLA.py:MoT_Qwen_VL_Interface&lt;/code&gt; | 载入 &lt;code&gt;frozen_vlm&lt;/code&gt; 与 &lt;code&gt;trainable_vlm&lt;/code&gt; 两份模型 |
| 冻结 Left Brain | &lt;code&gt;physbrainvla_conf/utils.py&lt;/code&gt;、&lt;code&gt;freeze_left_vlm&lt;/code&gt; | 冻结参数，前向结果 detach；可切换为不冻结做消融 |
| AsyMoT | &lt;code&gt;private/PhysBrainVLA.py&lt;/code&gt; 的逐层 attention loop | Right Q 查询 &lt;code&gt;[frozen KV; trainable KV]&lt;/code&gt;，默认单向 |
| 状态输入 | &lt;code&gt;build_qwenvl_inputs&lt;/code&gt;、&lt;code&gt;embodiment_conditioned_mlp.py&lt;/code&gt; | &lt;code&gt;&amp;#x26;lt;|propri|&amp;#x26;gt;&lt;/code&gt; token、state encoder 与 embodiment id |
| Action Expert | &lt;code&gt;starVLA/.../GR00T_ActionHeader.py&lt;/code&gt; | FlowmatchingActionHead / DiT 负责连续动作 |
| 训练与部署 | &lt;code&gt;deployment/&lt;/code&gt;、&lt;code&gt;README.md&lt;/code&gt; | 仓库 README 称 TwinBrainVLA 已集成到 PhysBrain 1.0；原始论文仓库本身没有独立训练脚本 |&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 主要指标是独立试验的平均成功率：SimplerEnv 每个任务 Avg@480，RoboCasa 每个任务 50 次，真实 Franka 任务每个设置 30 次。SimplerEnv 包含 WidowX 的四个 OOD 操作；RoboCasa GR1 Tabletop 包含 24 个带铰接物体的操作任务；真实实验使用 Franka Research 3，训练 300 条遥操作轨迹。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-twinbrainvla/RoboCasa_visualize.webp&quot; alt=&quot;RoboCasa GR1 Tabletop 的任务可视化（论文 Appendix Figure 9）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-twinbrainvla/franka.webp&quot; alt=&quot;Franka Research 3 真实机器人设置（论文 Figure 4）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; SimplerEnv 的平均成功率如下：&lt;/p&gt;
&lt;p&gt;| 方法 | Qwen2.5-VL-3B | Qwen3-VL-4B |
| --- | ---: | ---: |
| Vanilla VLA | 52.5 | 55.2 |
| Isaac-GR00T-N1.6-Bridge | 57.1 | 57.1 |
| TwinBrainVLA | &lt;strong&gt;58.4&lt;/strong&gt; | &lt;strong&gt;64.5&lt;/strong&gt; |&lt;/p&gt;
&lt;p&gt;Qwen3-VL-4B 版本相对最强基线提升 $+7.4$ 个百分点。RoboCasa 24 任务平均成功率为 Qwen2.5-VL-3B &lt;strong&gt;53.5%&lt;/strong&gt;、Qwen3-VL-4B &lt;strong&gt;54.6%&lt;/strong&gt;，高于 Isaac-GR00T-N1.6 的 47.6%、QwenGR00T 的 47.8% 和 QwenPI 的 43.9%。LIBERO 四个 suite 合并训练时，TwinBrainVLA 达到 &lt;strong&gt;97.6%&lt;/strong&gt; 平均成功率。&lt;/p&gt;
&lt;p&gt;真实 Franka 结果也体现 OOD 差异：&lt;/p&gt;
&lt;p&gt;| 方法 | In-Domain | OOD | Pick-All |
| --- | ---: | ---: | ---: |
| OpenVLA | 7/30 | 0/30 | 0/30 |
| π0.5 | 28/30 | 13/30 | 2/30 |
| Vanilla VLA | 22/30 | 9/30 | 0/30 |
| TwinBrainVLA | &lt;strong&gt;28/30&lt;/strong&gt; | &lt;strong&gt;15/30&lt;/strong&gt; | &lt;strong&gt;3/30&lt;/strong&gt; |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 绝对收益在 In-Domain 上并不夸张，主要差异出现在改变颜色的 OOD 和 Pick-All 长时域任务；这和论文“保留通用语义”的动机是相符的，但仍不能据此断言它已经解决了开放世界泛化。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 去掉冻结策略（让 Left Brain 也训练）后，Qwen3-VL-4B 在 SimplerEnv 的平均成功率从 64.5% 降至 58.8%，约下降 5.7 个百分点；论文正文将其概括为约 7% 的下降。去掉 Left Brain 和跨脑连接后退化为 Vanilla VLA，平均性能约下降 7 个百分点。&lt;/p&gt;
&lt;p&gt;AsyMoT 交互频率的消融显示，过度稀疏的跨脑连接会损害性能：Qwen3-VL-4B 在间隔 $k=8$ 层时为 61.9%，而完整连接为 64.5%；不过 Qwen2.5-VL-3B 在 $k=1$、Qwen3-VL-4B 在 $k=2$ 有轻微波动优势，说明“每层交互”不是普适最优的唯一选择。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-twinbrainvla/attn_map.webp&quot; alt=&quot;Right Brain 查询 Left Brain 语义 token 的运行时注意力图（论文 Figure 5）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文的泛化证据来自三个层次：SimplerEnv 的 OOD 场景、LIBERO 跨 suite 合并训练、以及真实 Franka 中改变颜色并要求 Pick-All。另一个补充实验是 twin-to-one distillation：用 TwinBrainVLA 作为 teacher，把语义增强的 Right Brain 表示蒸馏给单流 student，平均成功率从 Vanilla VLA 的 55.2% 提升到 58.4%，但仍低于 teacher 的 64.5%。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; TwinBrainVLA 的收益来自三个互补约束：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;表示锚定&lt;/strong&gt;：Left Brain 的参数和 KV 不被 action loss 改写，语义空间不会随窄域机器人数据漂移。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;可训练专化&lt;/strong&gt;：Right Brain 可以大胆学习状态、接触和 embodiment，而不必保护同一组参数的聊天能力。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;逐层读取&lt;/strong&gt;：AsyMoT 不是只在末端拼接一个视觉特征，而是在每个 Transformer block 让控制流按 Query 选择需要的语义 token。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 真正的创新不是简单复制 VLM，而是把“语义保持”从正则项变成网络拓扑：单向联合 KV、stop-gradient 和独立参数共同形成不对称的信息流。Flow Matching 则沿用当前 VLA 常见的连续动作生成范式。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;| 路线 | 防遗忘方式 | 代价 |
| --- | --- | --- |
| Co-training | 混入通用 QA 数据 | 数据配比、标注和任务冲突难以控制 |
| CoT-VLA | 让模型学习显式推理链 | 需要昂贵的 embodied CoT 标注 |
| TwinBrainVLA | 结构性冻结语义副本，并让控制流查询它 | 多一份 VLM 的显存与推理计算 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这是一种“用算力换数据工程”的设计：它把防遗忘的维护成本从数据侧转移到了模型侧。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;两条 VLM 以相同 checkpoint 初始化后，Left/Right hidden space 足够对齐，联合 KV 才有意义。&lt;/li&gt;
&lt;li&gt;预训练 VLM 已经包含与机器人任务相关的物体、空间和指令语义；瓶颈主要在控制适配而非知识缺失。&lt;/li&gt;
&lt;li&gt;Right Brain 的 Query 能学会选择 Left Brain 中有用的 token，而不是把跨脑连接当作捷径。&lt;/li&gt;
&lt;li&gt;双倍 backbone 的计算开销在训练和部署预算内可接受。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 第一，双 VLM 导致训练和部署成本显著高于单流 VLA；论文承认这是效率上的主要限制。第二，AsyMoT 虽然让 Right Brain 读取通用能力，但“如何把高层语义无缝融合进低层策略”仍未完全解决，作者将更深层的 semantic fusion 列为未来工作。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;论文中 catastrophic forgetting 的诊断主要是 VLM benchmark 曲线，尚未建立“某个语义能力被保留”到“某个机器人 OOD 成功”的逐样本因果对应。&lt;/li&gt;
&lt;li&gt;SimplerEnv、RoboCasa 和 Franka 的提升来自不同数据与 embodiment，跨设置的统一 scaling law 仍未知；两条 VLM 还可能共享同一视觉偏差。&lt;/li&gt;
&lt;li&gt;公开 TwinBrainVLA 仓库主要是说明与架构资产，完整训练实现转移到 PhysBrain-VLA，论文版本和集成版本之间存在 LLR、action token、embodiment conditioning 等扩展，复现实验需要仔细对齐 commit 与配置。&lt;/li&gt;
&lt;li&gt;两份模型都执行视觉编码和 Transformer 计算，部署时延、显存和能耗可能抵消部分泛化收益；twin-to-one 只展示了初步蒸馏结果。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; TwinBrainVLA 提供了一个值得继续追问的抽象：VLA 是否应该把“知识保持”和“控制专化”设计成两个不同的生命周期？从这个视角出发，可以探索：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;用低秩 adapter 或 KV cache 压缩 Left Brain，降低双流部署成本；&lt;/li&gt;
&lt;li&gt;让跨脑连接按任务、层或 token 动态稀疏，而不是固定每层连接；&lt;/li&gt;
&lt;li&gt;用语义一致性、空间问答和动作成功率的联合评估，测量哪些 general capabilities 真正转化成 control gains；&lt;/li&gt;
&lt;li&gt;将 twin-to-one distillation 变成持续蒸馏，让单流 student 在新 embodiment 上继承冻结语义锚点；&lt;/li&gt;
&lt;li&gt;把 Left Brain 扩展为可检索的多专家 memory，而不是一份固定 VLM 副本。&lt;/li&gt;
&lt;/ul&gt;</content:encoded><h:img src="https://pic.hana0721.top/71187447_p0_master1200.13mdb6lism.webp"/><enclosure url="https://pic.hana0721.top/71187447_p0_master1200.13mdb6lism.webp"/></item><item><title>Training-Time Action Conditioning 论文精读</title><link>https://agusexp25.top/blog/paper-deep-dive-training-time-action-conditioning</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-training-time-action-conditioning</guid><description>精读 Training-Time Action Conditioning：用训练时模拟推理延迟和 action prefix 条件化，去掉 RTC 的推理时 inpainting 开销。</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;论文名称&lt;/strong&gt;：《Training-Time Action Conditioning for Efficient Real-Time Chunking》&lt;br&gt;
&lt;strong&gt;作者&lt;/strong&gt;：Kevin Black、Allen Z. Ren、Michael Equi、Sergey Levine&lt;br&gt;
&lt;strong&gt;机构&lt;/strong&gt;：Physical Intelligence&lt;br&gt;
&lt;strong&gt;论文链接&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2512.05964&quot;&gt;arXiv&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;代码状态&lt;/strong&gt;：论文没有给出独立代码仓库；本文的 &lt;code&gt;【Code】&lt;/code&gt; 对照来自论文附录 Algorithm 1 的 JAX 参考实现。&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Real-Time Chunking（RTC）为了让异步 action chunk 连续，会在每次 denoising 时用 pseudoinverse guidance 做 inference-time inpainting；本文改为在训练阶段随机模拟 inference delay，让模型直接学习 &lt;code&gt;action prefix → action postfix&lt;/code&gt;，因此推理时只需普通 action generation。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;将推理延迟 $d$ 显式加入训练过程，用真实 action prefix 条件化 postfix。&lt;/li&gt;
&lt;li&gt;只需三处轻量修改：每个 action token 使用独立 flow-matching timestep、prefix 设为 clean action、loss 只计算 postfix。&lt;/li&gt;
&lt;li&gt;不改模型主干和机器人 runtime，训练好的策略与 inference-time RTC 使用相同接口。&lt;/li&gt;
&lt;li&gt;在动态 Kinetix 仿真中，$d\ge 2$ 时训练时方法优于 inference-time RTC；在 $π_{0.6}$ 的 box building 与 espresso making 中，保持相近成功率并缩短推理延迟。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;VLA 的动作 chunk 通常比控制周期长。模型还在生成下一段动作时，机器人必须继续执行上一段，否则每个 chunk 之间会出现停顿。RTC 的做法是异步生成下一段，并把上一段与当前段重叠的动作作为 prefix，通过 inference-time inpainting 固定 prefix、生成剩余 postfix。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 这个设计有两个代价：第一，inpainting 每个 denoising step 都需要 vector-Jacobian product（等价于额外反向传播），增加 latency；第二，prefix 越长，基于模型 Jacobian 的线性化越难保持整个 postfix 的一致性。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 与 SmolVLA 的异步执行相比，RTC 专门处理了 chunk discontinuity；与 A2C2、VLASH 相比，本文不添加 correction head，也不只看一个未来动作，而是条件化完整 hard prefix。它与更小的 VLA 或层级式 VLA 正交：那些方法减少模型计算，本文则减少实时控制路径上的额外计算。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 设策略在观测 $\mathbf{o}_t$ 下生成长度为 $H$ 的动作 chunk：&lt;/p&gt;
&lt;p&gt;$$
\mathbf{A}&lt;em&gt;t=[\mathbf{a}&lt;em&gt;t,\mathbf{a}&lt;/em&gt;{t+1},\ldots,\mathbf{a}&lt;/em&gt;{t+H-1}]\sim p(\mathbf{A}_t\mid\mathbf{o}_t).
$$&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Prediction horizon $H$&lt;/strong&gt;：一次预测的动作步数。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Execution horizon $s$&lt;/strong&gt;：一段 chunk 实际执行的步数，满足 $s\le H$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Inference delay $d$&lt;/strong&gt;：从 $t$ 开始推理，结果在 $t+d$ 才可用的控制步数。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Action prefix&lt;/strong&gt;：当前 chunk 的前 $d$ 步，它们在等待模型时由上一 chunk 提供。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Action postfix&lt;/strong&gt;：从 $t+d$ 开始、真正需要模型生成的部分。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;有效 prefix 要满足 $d\le H-s$。训练时学习的条件分布从原来的
$p(\mathbf{A}_t\mid\mathbf{o}_t)$ 变为：&lt;/p&gt;
&lt;p&gt;$$
p(\mathbf{A}_{t+d:H}\mid\mathbf{o}&lt;em&gt;t,\mathbf{A}&lt;/em&gt;{t:t+d}).
$$&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-training-time-action-conditioning/diagram.99u3bluu18.webp&quot; alt=&quot;Overlapping action chunks and action prefix from paper Figure 1&quot;&gt;&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-training-time-action-conditioning/architecture.13mil3tkb6.webp&quot; alt=&quot;Training-time action conditioning architecture from paper Figure 2&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 输入是观测、带噪 action chunk 和逐 token 的 flow-matching timestep；prefix token 输入 ground-truth action 且 timestep 固定为 &lt;code&gt;1.0&lt;/code&gt;，postfix token 仍按普通 flow matching 加噪并预测。数据流可以概括为：&lt;code&gt;observation + clean prefix + noisy postfix → action expert / DiT → postfix velocity&lt;/code&gt;。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;Action Prefix Conditioning&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：当前观测、长度为 $d$ 的真实 prefix、延迟 $d$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：长度为 $H-d$ 的 postfix action chunk。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;作用&lt;/strong&gt;：把“上一段已经承诺的动作”变成模型可直接读取的条件，而不是在每个采样步用梯度把输出拉回 prefix。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要&lt;/strong&gt;：异步 chunk 的连续性是实时控制的硬约束；直接条件化比推理时纠偏更便宜。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Per-token Flow-matching Time&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 普通 flow matching 给整个 chunk 一个 timestep $\tau$。本文让 prefix token 使用 $\tau=1$，postfix token 使用采样得到的 $\tau\in[0,1]$。对采用 adaLN-zero 的 diffusion transformer，这只需要让 scale、shift、gate 沿 token 维变化，不增加可学习参数。&lt;/p&gt;
&lt;h4&gt;Postfix-only Loss Mask&lt;/h4&gt;
&lt;p&gt;prefix 是条件，不是预测目标。因此训练 loss 只在 postfix token 上计算；否则模型会被迫重建已经给定的 prefix，浪费监督并削弱对延迟的适配。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;p&gt;本文沿用 conditional flow matching。对动作 chunk 加入高斯噪声：&lt;/p&gt;
&lt;p&gt;$$
\mathbf{A}_t^\tau=\tau\mathbf{A}_t+(1-\tau)\boldsymbol{\epsilon},\qquad
\boldsymbol{\epsilon}\sim\mathcal{N}(\mathbf{0},\mathbf{I}).
$$&lt;/p&gt;
&lt;p&gt;模型 $\mathbf{v}_\theta$ 预测从噪声流向数据的 velocity，标准目标为：&lt;/p&gt;
&lt;p&gt;$$
\mathcal{L}&lt;em&gt;{\mathrm{FM}}=
\mathbb{E}\left|\mathbf{v}&lt;/em&gt;\theta(\mathbf{A}_t^\tau,\mathbf{o}_t,\tau)-
(\boldsymbol{\epsilon}-\mathbf{A}_t)\right|_2^2.
$$&lt;/p&gt;
&lt;p&gt;训练时把 timestep 改成向量 $\boldsymbol{\tau}$：&lt;/p&gt;
&lt;p&gt;$$
\tau_i=\begin{cases}
1,&amp;#x26;i&amp;#x3C;d\
\tau,&amp;#x26;i\ge d
\end{cases},
\qquad
\mathcal{L}&lt;em&gt;{\mathrm{post}}=
\frac{\sum&lt;/em&gt;{i=d}^{H-1}\ell_i}{H-d}.
$$&lt;/p&gt;
&lt;p&gt;这里 $i$ 是 action token 索引，$d$ 是 prefix 长度，$\ell_i$ 是第 $i$ 步的 flow-matching 误差。$\tau_i=1$ 使 prefix 保持 clean；postfix 才参与 denoising 与梯度更新。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 每个 batch 随机采样 delay $d$，而不是为每种 latency 单独训练一个 checkpoint。仿真中先以普通 action chunking 训练 32 epochs，再从第 24 epoch 继续 fine-tune 8 epochs；delay 从 ${0,1,2,3,4}$ 中按指数衰减分布采样。真实实验从基础模型 fine-tune 8,000 steps，batch size 为 512，delay 在 $[0,10]$ 均匀采样，覆盖 50 Hz 控制器上的最多约 200 ms 延迟。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 推理接口与 inference-time RTC 相同：输入当前观测、padding 后的 prefix 和 delay，输出 postfix。区别在于采样过程中不再计算 pseudoinverse guidance 或 vector-Jacobian product；每一步只需普通模型前向和 prefix 覆盖。&lt;/p&gt;
&lt;p&gt;&amp;#x3C;Algorithm
number={2}
title=&apos;Training-time RTC action generation&apos;
inputLabel=&apos;输入&apos;
outputLabel=&apos;输出&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 论文附录 Algorithm 1 给出了 JAX 参考实现：&lt;code&gt;compute_loss&lt;/code&gt; 中新增 &lt;code&gt;delay&lt;/code&gt;、&lt;code&gt;prefix_mask&lt;/code&gt; 和 &lt;code&gt;postfix_mask&lt;/code&gt; 三段逻辑；&lt;code&gt;sample_actions&lt;/code&gt; 中每个积分步都用 &lt;code&gt;jnp.where&lt;/code&gt; 把 prefix 写回 &lt;code&gt;x_t&lt;/code&gt;，并给 prefix 使用 timestep &lt;code&gt;1.0&lt;/code&gt;。这说明方法并不要求重写 action expert，只需要让模型接受形状为 &lt;code&gt;(batch, horizon)&lt;/code&gt; 的 timestep。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 论文没有提供独立 GitHub 仓库、训练配置或 checkpoint，因此无法进一步核对数据加载、优化器和部署脚本。上面的代码对照仅覆盖附录中明确展示的 loss 与 sampling 行为。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 仿真使用 dynamic Kinetix，预测 horizon $H=8$、4-layer MLP-Mixer、32 epochs，2048 次 rollout 统计每个点的 binary solve rate，测试 $d=0\ldots4$。对比项为 naive async、inference-time RTC 和 training-time RTC。&lt;/p&gt;
&lt;p&gt;真实实验使用 $\pi_{0.6}$ VLA，在 box building 与 espresso making 两个任务上 fine-tune；机器人控制频率为 50 Hz，远程 H100 上使用 5 个 denoising steps。训练时 RTC 平均端到端延迟为 108 ms（约 $d=5$），inference-time RTC 为 135 ms（约 $d=7$）。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-training-time-action-conditioning/box.2a5ttpih0b.webp&quot; alt=&quot;Real-world evaluation tasks from paper Figure 4&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-training-time-action-conditioning/coffee.51ew1s4l5m.webp&quot; alt=&quot;Espresso evaluation task from paper Figure 4&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-training-time-action-conditioning/plots-sim.2a5ttpih85.webp&quot; alt=&quot;Simulated solve rate versus inference delay from paper Figure 3&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 仿真曲线显示：在 $d=0$ 与 $d=1$，training-time RTC 与 inference-time RTC 接近，前者略低；从 $d=2$ 起，training-time RTC 超过 inference-time RTC，且延迟越高差距越明显。naive async 随 delay 增长下降最快。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-training-time-action-conditioning/real-results.7w7k7kjs3n.webp&quot; alt=&quot;Real-world success rate and duration from paper Figure 5&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在两个真实任务上，training-time 与 inference-time RTC 的成功率和执行时长相近，但都比 synchronous inference 更快。论文的关键结论不是“训练时方法一定更准”，而是用少量额外训练换掉了实时路径中的额外计算。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;论文没有单独的组件 ablation 表，而是用不同 delay 的横向比较验证设计目标：当 prefix 变长、inference-time inpainting 需要修正的 token 增多时，training-time RTC 的优势扩大。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这同时暴露了一个 trade-off：$d=0/1$ 时 postfix 更长，普通模型得到更多直接监督，因此专门训练 prefix 的 checkpoint 不一定占优；延迟较大时，条件化带来的分布匹配收益才超过监督被 mask 掉的损失。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 真实实验表明，基础模型并未预训练 action-prefix conditioning，仍可通过目标任务上的 8,000 steps fine-tuning 加入该能力。训练时均匀采样 $d\in[0,10]$，因此同一个 checkpoint 能覆盖一段延迟范围，而不是只适配单一 latency。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; inference-time inpainting 把“已承诺的 prefix”当作采样过程中的软约束，需要在每个 denoising step 通过模型 Jacobian 修正 postfix；training-time conditioning 则直接改变学习目标，让模型参数化的就是 $p(\text{postfix}\mid\text{observation},\text{prefix})$。前者是在推理时补救，后者是在训练时消除分布错配。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 创新点不在新的 backbone，而在把系统 latency 变成数据生成变量：&lt;code&gt;delay distribution → prefix length → per-token flow time → masked loss&lt;/code&gt;。这种改法保留了 RTC 的异步 runtime，却把计算预算从每次 rollout 转移到一次性的 fine-tuning。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;| 方法               | 连续性来源                                | 额外运行时计算 | 延迟适配方式                  |
| ------------------ | ----------------------------------------- | -------------- | ----------------------------- |
| Naive async        | 无显式 prefix 约束                        | 低             | 不适配，chunk 间可能出现 jerk |
| Inference-time RTC | denoising 时 pseudoinverse / soft masking | 高             | 推理时可灵活改变              |
| Training-time RTC  | 训练好的 hard prefix 条件化               | 接近普通采样   | 训练时采样 delay 分布         |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 因此两种 RTC 不是简单的“训练版”和“推理版”实现细节，而是把连续性约束放在不同时间尺度：一个放在每次 action generation，一个放在策略学习阶段。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 方法依赖三个假设：实际 prefix 来自与训练数据一致的 action chunk；延迟可以用有限分布 $d$ 近似；模型架构能够为不同 action token 提供不同 flow timestep。若执行中出现训练分布之外的延迟或 prefix 被低层控制器严重修改，论文没有给出保证。&lt;/p&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; training-time RTC 只能处理与 delay 对应的 hard prefix，不能像 inference-time RTC 那样对 prefix 之后的重叠动作做 soft conditioning；此外，delay 的训练分布需要根据预期推理延迟认真选择。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;prefix loss 被完全 mask 后，低 delay 下早期动作获得的监督减少，解释了仿真中 $d=0/1$ 的轻微退化。&lt;/li&gt;
&lt;li&gt;训练时使用 ground-truth prefix，部署时 prefix 来自模型历史输出，存在 teacher-forcing 与 closed-loop 分布差异。&lt;/li&gt;
&lt;li&gt;一个 checkpoint 覆盖宽 delay 区间更方便，但可能不如按硬件和网络状态分别训练的 checkpoint；论文也提到为每个 delay 单独投入训练计算可能更好。&lt;/li&gt;
&lt;li&gt;论文只在 Kinetix、两个真实任务和 $\pi_{0.6}$ 上验证，尚不足以说明在不同 action expert、不同控制频率或大规模多任务 VLA 上同样成立。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这篇工作给实时机器人系统一个很实用的设计原则：当 runtime 为了满足约束而反复做梯度修正时，可以先问“这个约束能否被搬到训练分布里”。如果答案是肯定的，最有价值的优化可能不是再造一个更小的模型，而是让模型在训练时看到真实的延迟、缓存和 prefix。&lt;/p&gt;
&lt;p&gt;对后续研究，我认为有三条路线值得尝试：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;用在线测得的 latency 分布替代手工设定的 delay sampler，并在训练中动态重加权。&lt;/li&gt;
&lt;li&gt;让 hard prefix 与 soft prefix 共存：短 prefix 使用训练时条件化，较远的重叠动作使用轻量 correction，而不是完整 pseudoinverse guidance。&lt;/li&gt;
&lt;li&gt;将 prefix 的可信度、低层跟踪误差和通信抖动一并作为条件，学习真正面向 deployment 的 action continuation policy。&lt;/li&gt;
&lt;/ul&gt;</content:encoded><h:img src="https://pic.hana0721.top/91341540_p0_master1200.7pw5duffp.webp"/><enclosure url="https://pic.hana0721.top/91341540_p0_master1200.7pw5duffp.webp"/></item><item><title>TraceVLA 论文精读：用视觉轨迹提示补上 VLA 的时空记忆</title><link>https://agusexp25.top/blog/paper-deep-dive-tracevla</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-tracevla</guid><description>精读 TraceVLA：用 Co-Tracker 把机器人和物体的历史运动叠加到当前图像，在不堆叠历史帧的情况下增强 VLA 的空间—时间感知。</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;论文名称&lt;/strong&gt;：《TraceVLA: Visual Trace Prompting Enhances Spatial-Temporal Awareness for Generalist Robotic Policies》&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;作者&lt;/strong&gt;：Ruijie Zheng、Yongyuan Liang、Shuaiyi Huang、Jianfeng Gao、Hal Daumé III、Andrey Kolobov、Furong Huang、Jianwei Yang&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;论文链接&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2412.10345&quot;&gt;arXiv&lt;/a&gt; · &lt;strong&gt;代码&lt;/strong&gt;：&lt;a href=&quot;https://github.com/umd-huang-lab/tracevla&quot;&gt;umd-huang-lab/tracevla&lt;/a&gt; · &lt;strong&gt;项目主页&lt;/strong&gt;：&lt;a href=&quot;https://tracevla.github.io/&quot;&gt;tracevla.github.io&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-tracevla/tracevla-overview.webp&quot; alt=&quot;TraceVLA 总体架构：原始观测、叠加轨迹的观测、分隔 token 与动作 token（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; TraceVLA 不把一串高度相似的历史图像直接塞进 VLA，而是用 Co-Tracker 找到运动中的点，把它们的轨迹画在当前图像上，再将“原图 + 轨迹图”作为多模态提示输入模型。这样，VLA 可以同时看到清晰的当前状态和紧凑的历史运动线索。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;提出 Visual Trace Prompting：用稠密点跟踪与 active-point 筛选，把状态—动作历史编码为 2D 视觉轨迹。&lt;/li&gt;
&lt;li&gt;基于 OpenVLA 微调 7B TraceVLA，并用约 150K 条带轨迹标注的机器人操作数据训练；另提供基于 Phi-3-Vision 的 4B 版本。&lt;/li&gt;
&lt;li&gt;在 SimplerEnv 的 137 个配置和 WidowX-250 真实机器人任务上验证，7B 模型在 SimplerEnv 的 overall success rate 为 47.7%，比 OpenVLA 的 40.2% 高 7.5 个百分点；真实 corn pick-place 任务达到 8/10，而 OpenVLA 为 1/10。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; VLA 将视觉—语言基础模型与机器人动作 token 对齐，具备跨任务、跨物体和跨场景的泛化潜力。但典型 VLA 推理只把当前图像 $o_t$ 映射为动作 $a_t$，模型容易对当前帧做反应式决策，却不知道机械臂刚刚从哪里来、物体如何运动、上一动作是否已经造成遮挡或碰撞风险。&lt;/p&gt;
&lt;p&gt;一种直接方案是把 $o_{t-N},\ldots,o_t$ 全部拼接输入。论文认为这些帧通常视觉上高度冗余，额外 image tokens 反而会让模型难以抓住与控制有关的变化。TraceVLA 的关键取舍是：保留一张干净原图，再用少量可视化轨迹表达运动历史。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这不是给 VLA 增加一个新的 3D state encoder，而是把 temporal grounding 转换成视觉编码器擅长的“几何图形识别”问题，因此可以复用 OpenVLA 的 backbone 和动作头。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 给定当前观测 $o_t$、最近 $N$ 帧历史 $\mathbf h_t=(o_{t-N},\ldots,o_t)$ 与语言任务 $l$，模型需要输出机器人动作 $a_t$：&lt;/p&gt;
&lt;p&gt;$$
\hat a_t = \pi_\theta(o_t,; \operatorname{Trace}(\mathbf h_t),; l).
$$&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Observation&lt;/strong&gt;：RGB 图像；训练和 WidowX 实验使用固定第三人称视角，真实机器人图像为 $256\times256$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Trace&lt;/strong&gt;：从 $K\times K$ 网格点开始，用 Co-Tracker 跨 $N$ 帧跟踪，再保留运动总量超过阈值 $\kappa$ 的点，随机采样 $M$ 条轨迹。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Action representation&lt;/strong&gt;：沿用 OpenVLA 的离散 action token。官方 &lt;code&gt;ActionTokenizer&lt;/code&gt; 将每个连续动作维度量化到 256 个 bin，再映射到词表末端 token。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Embodiment / tasks&lt;/strong&gt;：SimplerEnv Google robot 仿真与 WidowX-250 真实桌面操作；任务涵盖 pick-and-place、抽屉、软物体和推扫等操作。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-tracevla/tracevla-trace-generation.webp&quot; alt=&quot;Visual Trace 生成：Co-Tracker 跟踪网格点、筛选 active points，并将轨迹叠加到当前观测（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 数据流只有一句话：历史图像 $\rightarrow$ Co-Tracker 点轨迹 $\rightarrow$ active-point 筛选与采样 $\rightarrow$ 当前图像上的彩色 trace $\rightarrow$ 原图和 trace 图之间插入 separator token $\rightarrow$ VLA 预测动作 token。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;Active-point visual trace&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：长度为 $N$ 的图像窗口和 $K\times K$ 网格点。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;中间模块&lt;/strong&gt;：Co-Tracker 输出每个点的 $(x,y)$ 序列；计算相邻帧位移 $\Delta p_{t&apos;}=|p_{t&apos;+1}-p_{t&apos;}|_1$，将总位移超过 $\kappa$ 的轨迹标为 active。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：随机采样的 $M$ 条轨迹，绘制在 $o_t$ 上，并在末端画方向箭头。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要&lt;/strong&gt;：静态背景点几乎没有控制价值，过滤后轨迹只突出机械臂末端和被推动、抓取的物体。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 训练配置在论文中给出 $K=40,M=5,N=6$，而公开推理代码 &lt;code&gt;TraceProcessor&lt;/code&gt; 使用 &lt;code&gt;grid_size=30&lt;/code&gt;，默认 &lt;code&gt;num_points=5&lt;/code&gt;、&lt;code&gt;buffer_size=10&lt;/code&gt;、&lt;code&gt;window_size=15&lt;/code&gt;，并每 25 步重新进行 dense tracking。这是论文超参数与当前代码默认值的明确差异。&lt;/p&gt;
&lt;h4&gt;双图像输入与 trace dropout&lt;/h4&gt;
&lt;p&gt;叠加轨迹可能遮住夹爪或目标物，因此模型同时接收原始图像和 trace 图，并用特殊 separator token 分开。训练时以概率 $\alpha$ 将 trace 图替换回原图并移除 trace 提示，使模型在 Co-Tracker 失败或光照不佳时仍能退化为普通 VLA。&lt;/p&gt;
&lt;h4&gt;VLA 与 action decoder&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; TraceVLA 从 OpenVLA 7B 微调；TraceVLA-mini 以 4B Phi-3-Vision 为 backbone，并在 Open-X-Embodiment 上采用与 OpenVLA 类似的预训练配方。模型仍然由 vision encoder、projector、语言模型和 action-token head 构成，创新集中在输入提示而不是更换 action policy。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;prismatic/models/vlas/openvla.py&lt;/code&gt; 的 &lt;code&gt;predict_action&lt;/code&gt; 调用 &lt;code&gt;generate_actiontokens&lt;/code&gt;，随后由 &lt;code&gt;ActionTokenizer.decode_token_ids_to_actions&lt;/code&gt; 将 token 反量化为连续动作，并按保存的 &lt;code&gt;q01/q99&lt;/code&gt; 统计量反归一化。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;Active-point 筛选&lt;/h4&gt;
&lt;p&gt;$$
\Delta p_{t&apos;}=\left|p_{t&apos;+1}-p_{t&apos;}\right|&lt;em&gt;1,
\qquad
\hat{\mathcal P}=\left{p\in\mathcal P\mid\sum&lt;/em&gt;{t&apos;=t-N}^{t-1}\Delta p_{t&apos;}&gt;\kappa\right}.
$$&lt;/p&gt;
&lt;p&gt;$p$ 是一条点轨迹，$\mathcal P$ 是所有网格点轨迹，$\hat{\mathcal P}$ 是过滤后的 active points。这个公式把“运动”作为历史信息的稀疏性先验。&lt;/p&gt;
&lt;h4&gt;VLA action-token 目标&lt;/h4&gt;
&lt;p&gt;$$
\mathcal L(\theta)=-\sum_{j=1}^{d_a}\log p_\theta(y_{t,j}\mid o_t,\operatorname{Trace}(\mathbf h_t),l,y_{t,&amp;#x3C;j}),
$$&lt;/p&gt;
&lt;p&gt;其中 $y_{t,j}$ 是第 $j$ 个离散动作 token，$d_a$ 是动作维度。&lt;strong&gt;【Code】&lt;/strong&gt; 训练脚本默认 &lt;code&gt;action_loss_calculation=&quot;action_token_only&quot;&lt;/code&gt;，即只对动作 token 计算交叉熵，而不是对整段语言 prompt 求 loss。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 轨迹标注来自 BridgeData-v2、Google RT-1 robot 数据以及 WidowX-250 的演示，总量约 150K。为降低离线标注成本，训练阶段把 demonstration 切成重叠的 $2N$ 段，每段只做一次 $K\times K$ dense tracking，却覆盖未来 $2N$ 帧。7B 与 4B 模型都在基础 VLA 上额外微调 5 个 epoch。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;vla-scripts/train.py&lt;/code&gt; 通过 &lt;code&gt;get_vla_dataset_and_collator&lt;/code&gt; 构造 RLDS 数据集；配置项包含 Open-X 数据根目录、FSDP/多 GPU 训练和 action-token-only loss。官方 README 给出的 TraceVLA 训练命令是 8 节点、每节点 8 GPU 的 &lt;code&gt;torchrun&lt;/code&gt;。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 推理初期先用普通 prompt；有足够历史后，第一次运行 dense $K\times K$ tracking 找到 active points，之后只跟踪这 $M$ 个点。由于 Co-Tracker 约 30–40 步后可能丢失轨迹，系统会周期性 dense re-query，再用当前帧的 trace 图预测动作。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;TraceProcessor.process_image&lt;/code&gt; 在 &lt;code&gt;begin_track_step&lt;/code&gt; 前返回原图；成功跟踪后保留最近 &lt;code&gt;window_size&lt;/code&gt; 个 trace，并用 &lt;code&gt;_visualize_trace&lt;/code&gt; 绘制彩色线段和箭头。&lt;code&gt;tracevla_simpler.py&lt;/code&gt; 在 trace 无效时切换到普通 prompt，在有效时将 &lt;code&gt;[image, image_overlaid]&lt;/code&gt; 送入 processor。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方仓库的关键对应关系如下：&lt;/p&gt;
&lt;p&gt;| 论文概念                | 代码位置                             | 实际行为                                             |
| ----------------------- | ------------------------------------ | ---------------------------------------------------- |
| Visual trace generation | &lt;code&gt;prismatic/eval/trace_processor.py&lt;/code&gt;  | Co-Tracker、active-point 过滤、缓存和绘图            |
| Prompt fallback         | &lt;code&gt;prismatic/eval/tracevla_simpler.py&lt;/code&gt; | &lt;code&gt;has_trace=False&lt;/code&gt; 时使用 OpenVLA prompt              |
| VLA action decoding     | &lt;code&gt;prismatic/models/vlas/openvla.py&lt;/code&gt;   | 生成 token 后反量化并按 &lt;code&gt;q01/q99&lt;/code&gt; 反归一化           |
| Action discretization   | &lt;code&gt;prismatic/vla/action_tokenizer.py&lt;/code&gt;  | 256 个 bin，映射到词表末端 token                     |
| Training entry          | &lt;code&gt;vla-scripts/train.py&lt;/code&gt;               | RLDS dataset、FSDP、多 GPU 与 action-token-only loss |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 代码把 trace processor 放在推理 wrapper，而不是改写语言模型的内部 attention；因此方法的可移植性很强，但性能上限也依赖 2D tracker 在新相机、遮挡和快速运动下的可靠性。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 仿真使用 SimplerEnv 的 visual matching 与 variant aggregation 两种设置，覆盖 Move Near、Pick Coke Can、Open/Close Drawer 三个任务和 137 个环境配置；真实评测使用固定第三人称相机的 WidowX-250，设计 8 个任务，其中 4 个任务用于未见泛化。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-tracevla/tracevla-simplerenv-results.webp&quot; alt=&quot;SimplerEnv 与真实机器人评测中的 TraceVLA / OpenVLA 平均结果（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;p&gt;基线包括 OpenVLA、OpenVLA-Phi3、Octo-Base 和 RT1-X。指标为任务成功率；variant aggregation 额外改变相机姿态、光照、背景、干扰物和桌面纹理。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; SimplerEnv 的关键结果如下：&lt;/p&gt;
&lt;p&gt;| 模型          |        Visual Matching |    Variant Aggregation |   Overall |
| ------------- | ---------------------: | ---------------------: | --------: |
| OpenVLA       |     47.1 / 15.3 / 49.5 |     54.0 / 52.8 / 22.5 |     40.2% |
| TraceVLA      | &lt;strong&gt;53.7 / 28.0 / 57.0&lt;/strong&gt; | &lt;strong&gt;56.4 / 60.0 / 31.0&lt;/strong&gt; | &lt;strong&gt;47.7%&lt;/strong&gt; |
| OpenVLA-Phi3  |     46.1 / 46.7 / 22.5 |     51.9 / 49.7 / 22.2 |     39.9% |
| TraceVLA-mini | &lt;strong&gt;50.4 / 52.2 / 31.0&lt;/strong&gt; | &lt;strong&gt;55.0 / 52.4 / 23.2&lt;/strong&gt; | &lt;strong&gt;44.0%&lt;/strong&gt; |&lt;/p&gt;
&lt;p&gt;三列顺序分别是 Move Near、Pick Coke Can、Open/Close Drawer。&lt;strong&gt;【Paper】&lt;/strong&gt; TraceVLA 7B 相对 OpenVLA overall 提升 7.5 个百分点，4B 版本相对 OpenVLA-Phi3 提升 4.1 个百分点。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-tracevla/tracevla-real-results.webp&quot; alt=&quot;WidowX-250 真实机器人任务上的成功率对比（论文 Figure 5）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在未出现在训练集的 pick-place corn 任务上，TraceVLA 成功 8/10，OpenVLA 成功 1/10。附加的 banana、eggplant、battery、push-cloth 四个未见任务也显示 TraceVLA 更能遵循新目标和新运动指令。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-tracevla/tracevla-ablation.webp&quot; alt=&quot;微调、历史帧、visual trace 的消融对比（论文 Figure 6）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 消融回答了三个问题：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;只在同一小数据子集上继续微调并不能解释收益：OpenVLA 仅提升 1.1%，OpenVLA-Phi3 反而下降 0.3%。&lt;/li&gt;
&lt;li&gt;把 6 张历史图像直接拼接给 OpenVLA 使 overall success rate 下降约 6%，说明冗余视觉 token 会干扰决策。&lt;/li&gt;
&lt;li&gt;用文本坐标描述轨迹比 baseline 高 2.4%，但仍比 visual trace 低 6.4 个百分点，证明视觉编码器比纯文本更适合消费这种几何运动提示。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 轨迹长度 $N=3$ 比默认设置额外带来 3.2% 提升；$N=12$ 可能遮挡关键物体，体现历史信息量与场景可读性之间的 trade-off。论文附录还报告了合理范围内线宽、透明度和颜色变化对性能影响很小。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; variant aggregation 中，TraceVLA 在相机方向、干扰物和背景变化下平均提升超过 20%（相对于对应 OpenVLA 条件）。真实实验则从三类变化测试泛化：未见物体（banana、battery）、未见目标（eggplant 放到 plate）和未见运动（push cloth）。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-tracevla/tracevla-costs.webp&quot; alt=&quot;额外 GPU memory 与 inference time 开销（论文 Figure 9）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; batch size 为 32 时，加入第二张图的训练显存差异小于 10 GB；H100 上额外文本与图像 token 约增加 0.002 秒/步，5 点 Co-Tracker 约增加 0.03 秒/步，(40\times40) dense tracking 摊销后约 0.004 秒/步。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; TraceVLA 同时解决了“历史太长”和“当前状态不能丢”两个矛盾：轨迹线把历史压缩成低带宽几何提示，原图则保留抓取点、纹理和语言 grounding 所需的细节。active-point 过滤进一步把 token 预算从“多张完整图像”转为“少量运动线”。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;表示创新&lt;/strong&gt;：把 state-action history 变成可视化轨迹，而非追加 observation frames。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;系统创新&lt;/strong&gt;：原图 + overlay + separator 只需对现有 VLA 的输入格式做小改动。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;工程创新&lt;/strong&gt;：dense tracking 只负责发现 active points，之后用稀疏跟踪维持实时性。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;鲁棒性设计&lt;/strong&gt;：trace dropout 让模型学会在有、无 trace 两种模式下工作。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;历史帧堆叠增加的是原始视觉上下文，text trace 增加的是坐标 token；TraceVLA 增加的是由视觉 encoder 直接解析的运动几何。&lt;strong&gt;【Analysis】&lt;/strong&gt; 这使它不依赖额外的时序 Transformer 或显式 3D state，同时更接近 OpenVLA 已经学会的图像理解路径。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;2D 点轨迹足以表达当前任务所需的主要空间关系；论文没有证明所有接触和深度关系都能由 2D trace 恢复。&lt;/li&gt;
&lt;li&gt;运动明显的点比静态背景更有控制价值，且随机采样 $M$ 个 active points 不会丢掉关键对象。&lt;/li&gt;
&lt;li&gt;Co-Tracker 在训练与部署相机上能稳定工作；否则模型依赖 dropout 学到的 fallback。&lt;/li&gt;
&lt;li&gt;OpenVLA 的 action tokenizer 与低层控制器已经足够，瓶颈主要来自时空观测而非动作空间。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 额外图像和 Co-Tracker 会增加训练显存与推理时间；长 trace 可能遮挡夹爪或物体；Co-Tracker 需要周期性 dense re-query 以避免丢轨迹。作者还提出未来可研究多点空间轨迹预测与 3D point cloud 表示。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;active-point 的运动阈值 (kappa) 依赖像素尺度、相机视角和动作速度，跨数据集迁移时可能需要重新调参。&lt;/li&gt;
&lt;li&gt;随机采样 5 个点并不保证覆盖真正的接触点；快速运动、遮挡、反光或纹理贫乏区域会让 trace 断裂。&lt;/li&gt;
&lt;li&gt;轨迹是 2D 投影，无法区分沿视线方向的运动；对堆叠、插入和遮挡严重的任务，2D 线索可能不充分。&lt;/li&gt;
&lt;li&gt;代码默认值（例如 grid size 30、窗口 15、每 25 步重绘）与论文中 $K=40,N=6$ 并不完全一致，复现实验时必须锁定 commit、checkpoint 和配置。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; TraceVLA 最值得借鉴的不是“画线”本身，而是它把时序建模拆成了一个可插拔的 perception adapter：任何能输出稀疏几何提示的 tracker、光流或 segmentation memory，都可以替换 Co-Tracker，而不必重写 VLA 主体。&lt;/p&gt;
&lt;p&gt;后续研究可以沿三个方向展开：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;从被动轨迹到预测轨迹&lt;/strong&gt;：让模型同时预测未来的关键点轨迹，再把预测轨迹作为 action planning 的中间表示。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;从 2D 到 3D / object-centric trace&lt;/strong&gt;：将深度、物体 ID 和接触状态一起画入 prompt，减少视角变化和遮挡造成的歧义。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;自适应 trace budget&lt;/strong&gt;：根据场景运动量动态决定 $M,N$ 和重绘频率，在静态场景省算力、在快速接触阶段保留更多历史。&lt;/li&gt;
&lt;/ul&gt;</content:encoded><h:img src="https://pic.hana0721.top/62258773_p0_master1200.7zr0vfh0rf.webp"/><enclosure url="https://pic.hana0721.top/62258773_p0_master1200.7zr0vfh0rf.webp"/></item><item><title>TouchWorld 论文精读：让触觉既能预测未来，也能实时纠错</title><link>https://agusexp25.top/blog/paper-deep-dive-touchworld</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-touchworld</guid><description>精读 TouchWorld：通过分层规划、触觉世界模型与 30 Hz 残差控制，把视觉语义、接触预测和快速触觉反馈组合成灵巧操作策略。</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;《TouchWorld: A Predictive and Reactive Tactile Foundation Model for Dexterous Manipulation》来自哈尔滨工业大学（深圳）与 PHANES AI。论文的核心判断是：触觉不应该只是 VLA 的一个低频输入 token，而应同时扮演“预测接触目标”和“快速闭环纠错”两种角色。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-touchworld/teasor.13mikzb1e4.webp&quot; alt=&quot;TouchWorld 系统概念总览（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; TouchWorld 把一个容易互相干扰的单环控制器拆成三种时间尺度：1 Hz 的语义规划与触觉子目标预测、10 Hz 的视觉-触觉动作块生成、30 Hz 的触觉残差修正；这样既保留 VLA 的长程语义能力，又能在滑移、错位和力不匹配发生时迅速回到可执行轨迹。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;提出包含 Subtask Planner 与 Tactile World Model 的 High-Level Planning Layer，输出可执行子任务和未来视觉-触觉子目标。&lt;/li&gt;
&lt;li&gt;提出 Visuo-Tactile Goal-Conditioned Policy，以 flow matching 的 Diffusion Transformer 生成名义动作块。&lt;/li&gt;
&lt;li&gt;提出 Tactile-Conditioned Refinement Policy（Tactile Residual Transformer，TRT），在高频触觉历史上预测局部残差。&lt;/li&gt;
&lt;li&gt;建立六任务真实机器人 benchmark；平均成功率在 clean setting 为 65.0%，在人为扰动下为 53.7%，相对最强基线分别提升 15.7 和 18.5 个百分点。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 视觉和语言擅长回答“要做什么、物体在哪里”，却难以直接观测接触力、滑移、抓握稳定性或插入是否卡住。灵巧操作因此天然是一个 multi-timescale control 问题：语义阶段变化慢，动作块生成居中，而接触状态变化可能需要毫秒级响应。&lt;/p&gt;
&lt;p&gt;现有 VLA 通常在一个 monolithic loop 中同时做任务推理、动作生成和反馈；已有 tactile policy 也常把触觉当作和图像同频的附加输入。论文认为这会造成两个错配：慢速语义推理占用快速控制容量，低频动作刷新又来不及应对局部接触变化。TouchWorld 的思路与 slow-fast visual-tactile policy、Diffusion Policy 和通用 VLA 互补，但显式增加了“未来触觉目标”与“残差反馈”两条路径。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 给定任务指令 $\ell$、多视角图像 $I_t$、本体状态 $s_t$、触觉观测 $X_t$ 和高层记忆 $m_t$，系统要输出当前执行动作 $a_t$。四个策略模块满足：&lt;/p&gt;
&lt;p&gt;$$
\ell_t^{sub}=\pi_{subtask}(\ell,I_t,m_t), \quad
g_t=\pi_{world}(\ell,\ell_t^{sub},I_t,X_t),
$$&lt;/p&gt;
&lt;p&gt;$$
(\hat A_{t:t+H-1},c_t)=\pi_{goal}(\ell,\ell_t^{sub},g_t,I_t,s_t,X_t),
$$&lt;/p&gt;
&lt;p&gt;$$
\tilde A_{\tau:\tau+W-1}=\pi_{tactile}(\hat A_{\tau:\tau+W-1},s_{\tau-k:\tau},X_{\tau-k:\tau},c_t).
$$&lt;/p&gt;
&lt;p&gt;其中 $H$ 是名义动作块长度，$W$ 是 TRT 的 look-ahead 窗口，$k$ 是反馈历史长度。论文的实现使用 $H=32$、$W=16$、每次提交 $C=4$ 个修正动作。&lt;/p&gt;
&lt;p&gt;机器人平台是配备 Wuji dexterous hands 与 JQ-Industries tactile glove 的 humanoid platform；遥操作侧使用 Meta Quest headset、Touch Plus controllers 和 Wuji Glove。任务包括 Water Flower、Tabletop Clearing、Cup Insertion、Power Plug Insertion、Pot Wiping、Tissue Pulling，并各自设置 clean 与 human perturbation 两种条件。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-touchworld/3-layer.8s41mwaxf3.webp&quot; alt=&quot;TouchWorld 三层架构（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 数据流是“任务指令与观测 → 子任务和触觉子目标 → 名义动作块 → 触觉残差动作”。三层分别以 1 Hz、10 Hz、30 Hz 更新，模块之间通过子任务文本、goal image / goal tactile 与 context token 传递信息。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;High-Level Planning Layer&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Subtask Planner&lt;/strong&gt;：输入任务指令、当前图像和记忆，输出 &lt;code&gt;{原始任务, executable subtask, 可选 reasoning}&lt;/code&gt;。记忆保存前序子任务、子目标与执行状态，帮助模型识别阶段转换。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tactile World Model（TWM）&lt;/strong&gt;：根据当前视觉-触觉状态和子任务预测短期 visual-tactile clip 或 terminal tactile goal。只有在子任务改变或任务状态显著变化时刷新，稳定阶段复用已有目标。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这一层不直接输出关节控制量，而是把长时程问题压缩为下游策略可消费的“当前阶段”和“预期接触结果”。&lt;/p&gt;
&lt;h4&gt;Visuo-Tactile Goal-Conditioned Policy&lt;/h4&gt;
&lt;p&gt;输入包含全局任务、当前子任务、RGB 图像、image-form tactile、proprioception 和 TWM 的 goal image / tactile latent；输出长度为 $H$ 的 nominal action chunk。原始触觉被渲染或归一化为图像，使 VLA backbone 可以沿用图像-语言预训练接口；Diffusion Transformer action expert 用 flow matching 从噪声生成动作序列。&lt;/p&gt;
&lt;h4&gt;Tactile-Conditioned Refinement Policy&lt;/h4&gt;
&lt;p&gt;TRT 输入名义动作的长度 $W$ look-ahead 窗口、最近 $k$ 步本体与触觉历史以及 VLA context token，输出同长度残差。图像触觉使用 tactile-image encoder，矩阵读数使用卷积层，低维触觉状态使用 Fourier features 与 MLP；不同模态随后由 residual Transformer 融合。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;p&gt;TRT 的残差定义为：&lt;/p&gt;
&lt;p&gt;$$
\Delta A_{\tau:\tau+W-1}=f_\phi(\hat A_{\tau:\tau+W-1},s_{\tau-k:\tau},X_{\tau-k:\tau},c_t),
$$&lt;/p&gt;
&lt;p&gt;$$
\tilde A_{\tau:\tau+W-1}=\hat A_{\tau:\tau+W-1}+\Delta A_{\tau:\tau+W-1}.
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; $f_\phi$ 只需学习示范高频动作与名义动作之差，而不是重新学习完整任务策略。训练目标为：&lt;/p&gt;
&lt;p&gt;$$
\mathcal L_{fb}=\left|f_\phi(\cdot)-\left(A^*&lt;em&gt;{\tau:\tau+W-1}-\hat A&lt;/em&gt;{\tau:\tau+W-1}\right)\right|_2^2,
$$&lt;/p&gt;
&lt;p&gt;其中 $A^*$ 是示范动作，损失只施加在触觉敏感的 residual action subspace；其余维度继续采用名义输出。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 训练分四阶段，且不对整个层级端到端反向传播：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;用 128,866 条带子任务标签和记忆变体的 teleoperation 记录微调 Qwen3-VL-4B-Instruct Subtask Planner。&lt;/li&gt;
&lt;li&gt;先在 EgoTouch 人类双手触觉视频上预训练 Wan2.2-TI2V-5B，再用 10 小时机器人示范（约 108 万帧、30 FPS）微调 TWM；每个样本预测 384×224 分辨率的 17 帧未来 visual-tactile clip。&lt;/li&gt;
&lt;li&gt;用全局任务、子任务、视觉、图像触觉、本体状态和未来动作块训练 flow-matching nominal policy。&lt;/li&gt;
&lt;li&gt;固定已训练的 nominal policy，接入 TRT，用高频示范动作减去 nominal action 得到 residual target，训练 VLA-refinement stack。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 部署时 High-Level Planning Layer 低频刷新子任务和触觉子目标；nominal policy 以 10 Hz 生成动作块；TRT 在 30 Hz 控制循环内用滑动窗口反复修正。每次只提交前 $C=4$ 个动作，随后用新触觉重新预测，因此一个动作块不会锁死后续控制。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;论文与项目主页截至本文写作时未公开可访问的官方代码仓库，只有论文、项目主页和 LaTeX 源码。因此没有可核对的 model definition、DataLoader、loss implementation 或 checkpoint 路径；本文关于 1/10/30 Hz、$H/W/C$ 和四阶段训练的描述均来自论文正文。&lt;strong&gt;【Analysis】&lt;/strong&gt; 后续若作者公开代码，最值得复核的是 image-form tactile 的具体归一化、TWM 的刷新判据以及 TRT 的 residual action mask。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-touchworld/hardware.2rvvi61bw1.webp&quot; alt=&quot;TouchWorld 真实机器人硬件平台（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-touchworld/task_setting.6m4n14ja0m.webp&quot; alt=&quot;六个真实机器人任务与扰动设置（论文 Figure 4）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 每个任务收集 200 条 teleoperated training trajectories，并进行 100 次真实机器人评估 rollout。基线为 Pi-0.5、FTP-1（无预测-反应层级的单体触觉策略）和 GR00T N1.7。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;| 方法           | Clean 平均 | Human perturbation 平均 |
| -------------- | ---------: | ----------------------: |
| Pi-0.5         |      40.7% |                   27.7% |
| FTP-1          |      49.3% |                   35.2% |
| GR00T N1.7     |      39.3% |                   26.0% |
| &lt;strong&gt;TouchWorld&lt;/strong&gt; |  &lt;strong&gt;65.0%&lt;/strong&gt; |               &lt;strong&gt;53.7%&lt;/strong&gt; |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; TouchWorld 在六项任务上均优于三个基线。clean setting 的逐任务成功率为 Water 72、Clearing 76、Cup 66、Plug 45、Wiping 70、Tissue 61；扰动 setting 分别为 60、62、52、35、57、56。提升在插拔、擦拭和软物体拉取等接触密集任务最明显，同时长时程任务也保持优势。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-touchworld/ablation_results_stacked.92qvg1q65d.webp&quot; alt=&quot;TouchWorld 组件消融（论文 Figure 5）&quot;&gt;&lt;/p&gt;
&lt;p&gt;| 配置                | Clean 平均 | 扰动平均 | 移除后说明           |
| ------------------- | ---------: | -------: | -------------------- |
| Full                |      65.0% |    53.7% | 完整层级             |
| w/o Tactile World   |      60.2% |    51.2% | 失去未来接触目标     |
| w/o Subtask Planner |      55.5% |    46.2% | 长时程阶段一致性下降 |
| w/o TCR             |      55.3% |    40.3% | 在线局部纠错缺失     |
| w/o Tactile         |      43.3% |    30.0% | 触觉贡献最大         |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 去掉 tactile input 的退化最大；去掉 TCR 对 human perturbation 尤其敏感，说明预测路径负责“应该接触到哪里”，反应路径负责“实际偏了以后怎么回来”。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;TWM 的 held-out 子目标预测结果如下：&lt;/p&gt;
&lt;p&gt;| 方法                     | Temporal Contact Accuracy | Contact IoU | Volumetric IoU |
| ------------------------ | ------------------------: | ----------: | -------------: |
| Current tactile copy     |                      70.4 |        31.8 |           24.6 |
| Nearest-neighbor subgoal |                      77.5 |        39.2 |           31.0 |
| &lt;strong&gt;Tactile World Model&lt;/strong&gt;  |                  &lt;strong&gt;86.3&lt;/strong&gt; |    &lt;strong&gt;52.7&lt;/strong&gt; |       &lt;strong&gt;43.8&lt;/strong&gt; |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; TWM 不只是复制当前触觉或检索相似轨迹，而是更准确地预测接触发生的时间与终点压力几何。Subtask Planner 分析中，memory-augmented Qwen3-VL-4B 的 subtask accuracy / execution success / transition F1 为 88 / 65 / 82，高于 zero-shot 32B 的 69 / 54 / 71，说明阶段监督与执行记忆比单纯增大模型更关键。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-touchworld/infer_demo.3k8qzwhy5y.webp&quot; alt=&quot;TouchWorld 代表性推理过程（论文 Figure 6）&quot;&gt;&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 第一，TWM 将触觉从“当前状态描述”变为“未来接触参考”，给动作生成提供了比当前帧更稳定的目标。第二，TRT 学习 residual 而非完整 policy，输入短历史即可集中处理滑移、冲击和插入错位。第三，分层频率避免让 1 Hz 的语言推理阻塞 30 Hz 的控制回路。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;论文真正的新意不是单独使用 tactile、world model 或 diffusion，而是把 predictive tactile goal 与 reactive tactile refinement 放在同一策略闭环中，并用子任务记忆把长时程语义接口固定下来。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;单体 VLA 直接从观测到动作；TouchWorld 先决定“当前阶段”和“预期接触结果”，再生成名义动作，最后让触觉残差只修正局部误差。与纯 reactive policy 相比，它提前预测接触；与纯 world model policy 相比，它又保留了高频反馈通道。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 体系假设触觉可以转换到跨人类与机器人共享的 image-form 表示，且短期子目标足以支持当前子任务。&lt;strong&gt;【Analysis】&lt;/strong&gt; 它还隐含假设名义策略已经能完成大部分语义与几何进展，TRT 的局部修正不会改变任务阶段；若名义动作完全错误，残差层可能无力救回。&lt;/p&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 真实评估只有六个任务；TWM 只预测短时域目标；更换触觉传感器或手型需要重新校准与适配数据；固定的更新频率、动作块长度和 commit interval 可能不是所有接触动态的最优选择。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 四阶段训练减少了优化耦合，却也可能造成模块接口的分布偏移：TWM 预测误差、planner 选错子任务和 nominal policy 的动作误差会层层传递。另一个风险是 image-form tactile 牺牲了部分原始力信号的物理可解释性；论文尚未报告跨传感器、跨手型或大规模未见任务的 zero-shot 迁移。&lt;/p&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;TouchWorld 给出的研究路线可以概括为“语义慢、动作中、反馈快”，但更重要的是明确每个时间尺度的责任边界：Planner 负责阶段，World Model 负责目标，nominal policy 负责进展，TRT 负责纠偏。后续值得探索三点：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;让 TWM 输出带不确定性的多个 tactile goals，并由策略在线选择，而不是只预测单一未来。&lt;/li&gt;
&lt;li&gt;根据接触事件自适应调整 1/10/30 Hz 调度和 commit interval，在平稳运动时省算力、在冲击时提高反馈率。&lt;/li&gt;
&lt;li&gt;用统一的 tactile latent 和 action residual mask 做跨传感器、跨 embodiment 迁移，验证“预测-反应”分解是否比重新训练整套 VLA 更可扩展。&lt;/li&gt;
&lt;/ol&gt;</content:encoded><h:img src="https://pic.hana0721.top/56422576_p0_master1200.7i0z6ufn65.webp"/><enclosure url="https://pic.hana0721.top/56422576_p0_master1200.7i0z6ufn65.webp"/></item><item><title>ThinkAct 论文精读：用视觉潜变量让 VLA 先思考再行动</title><link>https://agusexp25.top/blog/paper-deep-dive-thinkact</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-thinkact</guid><description>精读 ThinkAct：用动作对齐的视觉奖励通过 GRPO 训练 embodied reasoning，再以视觉计划 latent 条件化 DiT Action Model，实现长时规划、少样本适应与自纠错。</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; ThinkAct 关注一个常见但棘手的 VLA 缺口：模型可以把当前图像和指令映射到动作，却不一定知道“接下来要完成哪些子目标”。论文提出双系统（dual-system）框架：Reasoning MLLM $\mathcal{F}&lt;em&gt;\theta$ 负责慢速思考，DiT Action Model $\pi&lt;/em&gt;\phi$ 负责快速控制；两者通过视觉计划 latent $c_t$ 连接。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-thinkact/overview.4n8gap3tkg.webp&quot; alt=&quot;ThinkAct architecture overview from paper Figure 2&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; ThinkAct 的真正改动不是给 VLA 加一段文字 CoT，而是把思考结果压缩成可对齐到场景的 2D 轨迹，再把这段视觉计划交给动作扩散模型执行。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;用目标完成（goal completion）与轨迹一致性（trajectory alignment）组成 action-aligned visual reward，并以 GRPO 强化 MLLM 的 embodied reasoning。&lt;/li&gt;
&lt;li&gt;从推理输出中抽取 $K$ 个 2D gripper keypoints，形成紧凑的 visual plan latent，而不是依赖昂贵的逐步语言标注。&lt;/li&gt;
&lt;li&gt;以 latent projector 将计划接入 DiT Action Model，支持 MLLM 慢速思考、策略高速控制的异步执行。&lt;/li&gt;
&lt;li&gt;在 SimplerEnv、LIBERO、EgoPlan-Bench2、RoboVQA 和 OpenEQA 上验证长时规划、少样本适应与自纠错能力。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; OpenVLA、TraceVLA 等端到端 VLA 直接预测低层动作，短技能有效，但对长指令、跨场景变化和中途失败不够稳健。ECoT、RAD 和 CoT-VLA 引入中间推理或视觉子目标，却依赖人工/模型生成的 CoT 监督，扩展成本高；通用 VLM 的 GRPO 工作则通常用 QA 正确率，无法约束计划是否真的对应可执行运动。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; ThinkAct 把“推理是否正确”改写成一个可由视觉轨迹验证的问题：终点要接近演示终点，整条轨迹要像真实的 gripper motion。这样奖励不再只问答案对不对，而是问计划是否能落到场景中。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在时间步 $t$，模型接收视觉观测 $o_t$ 与语言指令 $l$，输出动作 $a_t$。动作可以是文本命令，也可以是 7-DoF 控制向量 $[\Delta x,\Delta\theta,\Delta Grip]$。ThinkAct 将问题拆成：&lt;/p&gt;
&lt;p&gt;$$
c_t=\mathcal{F}&lt;em&gt;\theta(o_t,l),\qquad [a_t,\ldots,a&lt;/em&gt;{t+N}]=\pi_\phi(c_t,o_t,l).
$$&lt;/p&gt;
&lt;p&gt;其中 $c_t\in\mathbb{R}^{|c_t|\times d}$ 是视觉计划 latent；它解码为 $K$ 个归一化 2D 点 $\tau=[p_k]_{k=1}^{K}$，$p_1$ 与 $p_K$ 分别表示 gripper 的起点和目标终点。$N$ 是一次思考覆盖的环境交互步数，允许思考频率低于动作频率。&lt;/p&gt;
&lt;p&gt;| 要素 | ThinkAct 定义 |
| --- | --- |
| Observation | 单帧 RGB；自纠错实验扩展为短视频片段 |
| Language | 任务指令 $l$ |
| Reasoning model | Qwen2.5-VL 7B 初始化的 MLLM |
| Action model | 432M 参数、DiT-based diffusion policy |
| Action | 文本命令或 7-DoF 控制向量 |
| Plan latent | $K=8$ 个 2D gripper keypoints 的视觉轨迹 |&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 训练阶段先让 MLLM 生成 &lt;code&gt;&amp;#x3C;think&gt;...&amp;#x3C;/think&gt;&lt;/code&gt; 与 &lt;code&gt;&amp;#x3C;answer&gt;...&amp;#x3C;/answer&gt;&lt;/code&gt;，并在答案中产生轨迹 $\tau$；轨迹由视觉检测器得到的参考轨迹 $\hat\tau$ 监督。随后冻结 MLLM，把 $c_t$ 经 latent projector 注入状态编码器和动作模型。推理时 MLLM 每 $N$ 步更新一次计划，$\pi_\phi$ 每一步输出动作。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这是一种“慢思考、快执行”的时钟解耦：计划 latent 是跨多个动作步复用的高层意图，而不是每个控制周期都重新生成语言解释。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;Action-aligned visual reward&lt;/h4&gt;
&lt;p&gt;给定预测轨迹 $\tau$ 和检测器得到的参考轨迹 $\hat\tau$，目标奖励比较首尾点：&lt;/p&gt;
&lt;p&gt;$$
r_{goal}=\frac{1}{2}\bigl(f(p_1,\hat p_1)+f(p_K,\hat p_K)\bigr),\quad
f(p,p&apos;)=\max(0,1-\lVert p-p&apos;\rVert_2^2).
$$&lt;/p&gt;
&lt;p&gt;轨迹奖励使用 Dynamic Time Warping（DTW）：&lt;/p&gt;
&lt;p&gt;$$
r_{traj}=\max(0,1-d_{DTW}(\tau,\hat\tau)).
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 最终奖励为&lt;/p&gt;
&lt;p&gt;$$
r=0.9r_{visual}+0.1r_{format},\qquad
r_{visual}=0.5r_{goal}+0.5r_{traj}.
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; $r_{goal}$ 防止“轨迹形状像，但终点错了”，$r_{traj}$ 防止“只猜对起点和终点，中间运动不物理”。二者组合把长时目标与运动过程同时纳入奖励。&lt;/p&gt;
&lt;h4&gt;Visual plan latent 与动作模型&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; MLLM 自回归地产生 reasoning embeddings $v_t$ 和 plan embeddings $c_t$。$c_t$ 可解码为 2D 轨迹，但接入动作模型时保留其 latent 形式，经 Q-Former latent projector 映射到 Action Model 的输入空间。Action Model 还接收视觉状态与语言条件，输出一段连续动作。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; latent 而不是完整文本的好处是接口稳定、长度紧凑，并且允许动作模型学习“计划到控制”的映射，而无需理解自然语言 CoT 的全部措辞。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;GRPO 目标&lt;/h4&gt;
&lt;p&gt;对同一输入 $(o_t,l)$ 从旧策略采样 $M$ 个回答 $z_i$，按奖励计算组内优势：&lt;/p&gt;
&lt;p&gt;$$
A_i=\frac{r_i-\operatorname{mean}(r_1,\ldots,r_M)}{\operatorname{std}(r_1,\ldots,r_M)}.
$$&lt;/p&gt;
&lt;p&gt;论文优化目标为：&lt;/p&gt;
&lt;p&gt;$$
\mathcal{J}&lt;em&gt;{GRPO}(\theta)=\frac{1}{M}\sum&lt;/em&gt;{i=1}^{M}
\left[\frac{\mathcal{F}&lt;em&gt;\theta(z_i|o_t,l)}{\mathcal{F}&lt;/em&gt;{\theta_{old}}(z_i|o_t,l)}A_i
-\beta D_{KL}(\mathcal{F}&lt;em&gt;\theta\Vert\mathcal{F}&lt;/em&gt;{\theta_{old}})\right].
$$&lt;/p&gt;
&lt;p&gt;$A_i$ 只表达同组相对质量，$\beta$ 用 KL 项限制模型偏离冷启动策略过远。&lt;/p&gt;
&lt;h4&gt;动作适配损失&lt;/h4&gt;
&lt;p&gt;冻结 $\mathcal{F}_\theta$ 后，使用动作示范更新状态编码器、latent projector 和动作模型：&lt;/p&gt;
&lt;p&gt;$$
\mathcal{L}&lt;em&gt;{IL}(\phi)=\mathbb{E}&lt;/em&gt;{(o_i,l,a_i)}
\left[\ell\bigl(\pi_\phi(c_t,o_i,l),a_i\bigr)\right].
$$&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 训练是三阶段：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;MLLM cold-start SFT&lt;/strong&gt;：使用 OXE 轨迹及 RoboVQA、EgoPlan-IT、Video-R1-CoT 等 QA 数据，学习正确的输出格式、轨迹表达和基础 embodied understanding。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;GRPO reinforced fine-tuning&lt;/strong&gt;：对 OXE 与 Something-Something v2 轨迹计算视觉奖励；QA 数据继续提供 accuracy / ROUGE 奖励。训练 6K iterations，rollout size 为 5。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reasoning-enhanced action adaptation&lt;/strong&gt;：冻结 MLLM，将缓存的 $c_t$ 接入 DiT policy；在 100K OXE 样本上训练，再对 LIBERO 任务微调。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 输入单帧观测时，MLLM 生成当前计划 latent；Action Model 基于该 latent、观测和指令预测一段动作。执行 $N$ 步后重新观察并重新思考。自纠错设置将输入扩展为 $o_{t-N:t}$，让 MLLM 能发现物体掉落等失败并重规划。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 截至论文项目页（页面标注 &lt;code&gt;Code (⏳)&lt;/code&gt;），作者尚未公开官方代码仓库，因此无法核对模型定义、DataLoader、checkpoint 或实际推理细节。本文中带有 &lt;code&gt;【Code】&lt;/code&gt; 的段落仅表示项目页提供的链接状态；所有实现级结论均以“论文未明确说明”处理。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; MLLM 初始化为 Qwen2.5-VL 7B。冷启动 20K iterations、batch size 32、学习率 $10^{-5}$；GRPO 6K iterations、batch size 64、学习率 $10^{-6}$、rollout size 5。动作模型是 432M 参数 DiT policy，状态编码器由 DINOv2 图像编码器和 CLIP 文本编码器组成；Q-Former 使用 32 个 queries。实验使用 16 张 80GB A100。&lt;/p&gt;
&lt;p&gt;训练数据包括 OXE 的 fractal20220817 与 bridge 子集、Something-Something v2、RoboVQA、EgoPlan-IT、Reflect 与 LLaVA-Video-178K。评测覆盖 SimplerEnv、LIBERO、EgoPlan-Bench2、RoboVQA 和 OpenEQA。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-thinkact/visualize_manipulation.lwgwazqhi.webp&quot; alt=&quot;ThinkAct qualitative manipulation reasoning from paper Figure 3&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 机器人操作成功率如下：&lt;/p&gt;
&lt;p&gt;| Benchmark | ThinkAct | 对比结论 |
| --- | ---: | --- |
| Simpler-Google Visual Matching | 71.5% | 高于 DiT-Policy 56.0% |
| Simpler-Google Variant Aggregation | 65.1% | 高于 DiT-Policy 48.2% |
| Simpler-Bridge Visual Matching | 43.8% | 高于 DiT-Policy 32.4% |
| LIBERO Overall | 84.4% | 高于 CoT-VLA 83.9% |&lt;/p&gt;
&lt;p&gt;在 embodied reasoning 上，ThinkAct 在 EgoPlan-Bench2 达到 48.2，RoboVQA Overall 达到 59.8，OpenEQA Overall 达到 56.2。论文报告其相较第二名在 EgoPlan-Bench2 提升 2.5 个百分点、RoboVQA 提升 4.1 BLEU。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-thinkact/visualize_comparisons.46f7pyd3q.webp&quot; alt=&quot;ThinkAct embodied reasoning comparisons from paper Figure 4&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-thinkact/fewshot.1vze2mhs58.webp&quot; alt=&quot;ThinkAct few-shot adaptation results from paper Figure 5&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 去掉 $r_{traj}$ 后 SimplerEnv / EgoPlan / RoboVQA 为 59.2 / 47.9 / 58.5；去掉 $r_{goal}$ 后为 59.1 / 47.6 / 58.9；同时去掉两者仅剩 56.9 / 47.2 / 58.3，接近 SFT cold-start 的 56.4 / 46.4 / 57.9。说明 QA 奖励单独不足以诱导结构化长时计划，轨迹和终点视觉反馈缺一不可。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 少样本 LIBERO 实验每个任务只用 10 条示范、评测 100 次。ThinkAct 在 Spatial、Object、Goal、Average 上分别达到 52%、39.1%、36.2%、34.7%，相对 Magma 在 Spatial 和 Goal 上分别高 9.5 和 7.3 个百分点。论文还展示了失败后重抓物体的自纠错案例。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-thinkact/visualize_reflection.8adzy7zopz.webp&quot; alt=&quot;ThinkAct self-reflection and correction from paper Figure 6&quot;&gt;&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 端到端策略最容易学到“当前画面对应的局部动作”，却难以表示多个子目标之间的顺序。ThinkAct 用轨迹 latent 提供了一个低带宽、可视觉验证的中间状态：它告诉动作模型先去哪、终点在哪，同时保留局部控制的自由度。$r_{goal}$ 提供任务方向，$r_{traj}$ 提供运动形状，二者共同降低计划漂移。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 核心创新是 reward/interface 的组合，而非单独使用 GRPO 或 Diffusion Policy：用视觉轨迹把 RL 奖励从 QA 正确率扩展到可执行性；用 latent 而非语言 CoT 连接 reasoning 与 action；让 reasoning 与 control 异步运行，在不牺牲控制频率的情况下增加思考深度。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; ECoT/RAD 依赖显式 CoT 监督，CoT-VLA 依赖生成的视觉子目标；ThinkAct 通过 RL 从奖励中探索推理轨迹，不要求每一步都有人工文字标签。与只在动作空间施加 RL 的方法相比，它先在视觉空间约束 plan，再由动作模型负责连续控制。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 方法依赖四个假设：2D gripper 轨迹足以表达任务关键意图；离线检测器得到的 $\hat\tau$ 能代表正确行为；一个计划 latent 可以复用 $N$ 步；MLLM 生成的 reasoning 与 latent 轨迹语义一致。遮挡、深度、多臂协同和快速变化环境都可能违反这些假设。&lt;/p&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; ThinkAct 继承预训练 MLLM 的视觉与空间幻觉：模型可能引用不存在的物体属性或错误关系，导致下游计划和动作失败。作者建议 grounding-aware training 与 hallucination suppression；安全关键场景还需要更强的人类意图对齐与 safeguards。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 论文主要在仿真和离线视频上证明收益，真实世界部署的延迟、相机标定、检测器失败率和安全边界没有系统量化。7B MLLM 的 rollout 也可能带来显著 GPU 成本；轨迹奖励偏向末端执行器运动，对双臂协同、工具使用和非抓取操作未必充分。&lt;/p&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; ThinkAct 提供了一个可迁移的设计模板：先寻找能被视觉验证的中间计划，再用 RL 让基础模型探索这些计划，最后用独立控制器把计划落地。后续可以把 2D 点扩展到带接触、深度和对象身份的 scene graph latent，用真实失败构造反事实视觉奖励，并让不确定性估计决定何时重新思考，而不是固定 $N$。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/95619535_p0_master1200.8okafg4jti.webp"/><enclosure url="https://pic.hana0721.top/95619535_p0_master1200.8okafg4jti.webp"/></item><item><title>TacVLA 论文精读：接触感知触觉融合 VLA</title><link>https://agusexp25.top/blog/paper-deep-dive-tacvla</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-tacvla</guid><description>精读 TacVLA：用低维触觉 token 与接触感知门控，让 VLA 在遮挡、拆解和盒内抓取中的接触控制更可靠。</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;论文名称&lt;/strong&gt;：《TacVLA: Contact-Aware Tactile Fusion for Robust Vision-Language-Action Manipulation》&lt;br&gt;
&lt;strong&gt;作者&lt;/strong&gt;：Kaidi Zhang、Heng Zhang、Zhengtong Xu、Zhiyuan Zhang、Md Rakibul Islam Prince、Xiang Li、Xiaojing Han、Yuhao Zhou、Arash Ajoudani、Yu She&lt;br&gt;
&lt;strong&gt;机构&lt;/strong&gt;：Purdue University、Istituto Italiano di Tecnologia&lt;br&gt;
&lt;strong&gt;论文链接&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2603.12665&quot;&gt;arXiv:2603.12665&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;项目主页&lt;/strong&gt;：&lt;a href=&quot;https://sites.google.com/view/tacvla&quot;&gt;TacVLA&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-tacvla/Main_figure_V2.4ubo67rx8w.webp&quot; alt=&quot;TacVLA 总览：双目视觉、本体状态与触觉进入 VLM 和 Action Expert（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; TacVLA 在 Pi0.5 风格的 VLA 中加入紧凑触觉编码器，并用二值接触标志控制触觉 token 的 embedding 与 attention mask；机器人在非接触阶段主要依赖视觉和语言，检测到接触后才让 touch 参与跨模态决策。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;把 15×8、每帧 120 个测量值的触觉阵列编码成 36 个 token，避免把触觉图像化后带来的长序列开销。&lt;/li&gt;
&lt;li&gt;提出 contact-aware gating：接触时保留触觉 token，非接触时将其置零并屏蔽其注意力。&lt;/li&gt;
&lt;li&gt;在四种 constraint-locked disassembly、in-box picking、相机遮挡和人类干扰下进行真实机器人评测。&lt;/li&gt;
&lt;li&gt;在拆解任务上取得 83.75% 平均成功率，在盒内抓取上取得 70%，分别比微调 Pi0.5 的 63.75% 和 10% 更高。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 视觉擅长描述全局场景，却会在末端执行器遮挡、盒内弱光和接触瞬间失效；它也难以直接观测摩擦、滑移、压力分布与卡滞。VLA 如果只依赖 RGB 与语言，往往知道“应该抓什么”，却不知道“是否已经真正抓住”。&lt;/p&gt;
&lt;p&gt;已有 tactile VLA 工作通常把触觉作为持续输入，或把触觉图像经过视觉 backbone 后与视觉 token 直接拼接。论文的判断是：触觉是&lt;strong&gt;状态依赖&lt;/strong&gt;的局部信号，在没有接触时可能只是噪声；静态拼接会让 token 竞争和 modality imbalance 变得更严重。TacVLA 因而把问题从“如何再加入一种传感器”改写成“何时让 touch 获得注意力”。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 平台是一台 7-DoF Franka Emika Panda，配有平行夹爪、固定 front camera、wrist camera，以及安装在一根手指上的 15×8 触觉阵列。所有模态以 10 Hz 同步记录。&lt;/p&gt;
&lt;p&gt;| 项目 | 定义 |
| --- | --- |
| Observation | front/wrist RGB、语言指令、15×8 tactile map、robot proprioception |
| Action | Pi0.5 action expert 预测的连续动作序列 |
| 任务 | 四种锁定拆解动作与盒内探索抓取 |
| 数据 | 每个任务 50 条人类 teleoperation demonstrations |
| 目标 | 接触丰富、视觉遮挡下仍能完成定位、接触确认、调整和恢复 |&lt;/p&gt;
&lt;p&gt;四个拆解任务分别需要拉出紧轴、按压卡扣、旋转 90° 后拉出，以及向内滑动后拉出；盒内抓取则要求先探索直到建立接触，再抓取并放入碗中。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-tacvla/Disassembly.8adzyb1k63.webp&quot; alt=&quot;四种 constraint-locked disassembly 的几何约束（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; front 与 wrist 图像由 SigLIP Vision Encoder 编码；语言和 proprioception 使用 PaliGemma tokenizer；触觉阵列经轻量 MLP 投影为 36 个 tactile tokens，并加入固定 2D sine-cosine positional embedding。经过门控的三类 token 拼接后进入 Gemma 2 6B VLM，融合表示再作为 prefix 送入 Pi0.5 风格的 flow-matching Action Expert，输出连续动作序列。&lt;/p&gt;
&lt;p&gt;数据流可以概括为：&lt;code&gt;RGB + language + proprio + tactile → modality tokenizers → contact-aware gating → VLM non-causal attention → action expert → action chunk&lt;/code&gt;。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;Compact tactile tokenizer&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：单帧 15×8 tactile map，共 120 个测量值。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;中间模块&lt;/strong&gt;：MLP encoder 将 map 投影到模型 hidden space，再附加固定二维位置编码。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：36 个 tactile tokens。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;作用&lt;/strong&gt;：保留局部接触分布、整体压力和接触几何，同时把 token 数控制在可与 VLM 共同处理的规模。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 36 并不等价于恢复高分辨率接触图；它更像是一个“足够判断接触与调整方向”的低带宽接口，适合当前论文的短时域任务。&lt;/p&gt;
&lt;h4&gt;Contact-aware gating&lt;/h4&gt;
&lt;p&gt;论文用阈值规则检测接触：超过压力阈值的 taxel 数量超过固定 count 时，令接触标志 $c_t=1$。触觉 token 与 attention mask 随之变为：&lt;/p&gt;
&lt;p&gt;$$
M_t^{\mathrm{tac}} = c_t \cdot \mathbf{1}, \qquad
\tilde z_t^{\mathrm{tac}} = c_t \cdot z_t^{\mathrm{tac}}.
$$&lt;/p&gt;
&lt;p&gt;当 $c_t=0$，触觉 embedding 被置零，且对应 token 不参与 attention；当 $c_t=1$，触觉 token 恢复并与视觉、语言进行 cross-modal interaction。固定 token 拓扑避免了动态插入/删除 token 带来的位置变化。&lt;/p&gt;
&lt;h4&gt;VLM 与 Action Expert&lt;/h4&gt;
&lt;p&gt;Gemma 2 6B 以 non-causal attention 处理拼接 prefix，让三种模态自由互相 attend。随后 Action Expert 按 Pi0.5 设计，用 flow matching 预测连续动作序列。论文没有公开每层 LoRA target、动作 horizon 或 action head 的代码实现。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;p&gt;策略条件分布写为：&lt;/p&gt;
&lt;p&gt;$$
a_{t:t+H} \sim \pi_\theta(a_{t:t+H}\mid \tilde z_t),
$$&lt;/p&gt;
&lt;p&gt;其中 $\tilde z_t=[z_t^{\mathrm{vis}},z_t^{\mathrm{lan+pro}},\tilde z_t^{\mathrm{tac}}]$ 是门控后的多模态 token，$H$ 是动作序列长度，$\pi_\theta$ 是 VLA policy。&lt;/p&gt;
&lt;p&gt;门控公式的关键不是学习一个连续权重，而是使用 $c_t\in{0,1}$ 做硬路由：&lt;/p&gt;
&lt;p&gt;$$
c_t=\mathbb{1}\left[\sum_{i=1}^{120}\mathbb{1}(p_{t,i}&gt;\tau)&gt;N\right],
$$&lt;/p&gt;
&lt;p&gt;其中 $p_{t,i}$ 是第 $i$ 个 taxel 的压力读数，$\tau$ 是压力阈值，$N$ 是超过阈值的 taxel 数门槛。论文未明确给出 $\tau$ 与 $N$ 的具体数值。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 每个任务收集 50 条示教，所有模态按时间对齐。模型从 OpenPI 的 pi05 base checkpoint 出发，以 LoRA 微调 10,000 个 gradient steps；tactile encoder 在微调时冻结。扩散策略基线则训练 200 epochs。论文未明确说明 TacVLA 的 batch size、学习率、动作 horizon 和 LoRA target layers。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 推理时每个 10 Hz 时间步都重新判断接触状态。非接触阶段主要依赖视觉定位；一旦检测到接触，触觉 token 进入 VLM 上下文，帮助策略决定按压、旋转、滑动、重新抓取或继续抬升。盒内任务尤其依赖“只有确认接触后才进入 lifting/place 阶段”的状态转换。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 截至论文 v2（2026-03-24），项目主页只提供论文、演示视频和实验说明，论文写明“code will be released”。因此本节没有可核对的官方 model definition、DataLoader、loss 实现或 checkpoint。上文关于 Gemma 2 6B、SigLIP、MLP tactile encoder、LoRA 和冻结 tactile encoder 的描述均来自论文，而不是代码审计。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-tacvla/Hardware_image.51ew1ne2n3.webp&quot; alt=&quot;TacVLA 的 Franka、双相机与手指触觉阵列硬件（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 每个任务 50 条 teleoperation demonstrations，四个拆解任务和一个盒内抓取任务都在真实 Franka 平台上评测。对照方法包括 finetuned Pi0.5、直接拼接触觉的 Pi0.5（w/o gating）、image Diffusion Policy 与 3D Diffusion Policy。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-tacvla/Tasks_Description_V3.92qvg1i66m.webp&quot; alt=&quot;拆解与盒内抓取的时序步骤（论文 Figure 4）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;| 方法 | 拆解平均 | 盒内抓取 |
| --- | ---: | ---: |
| 3D Diffusion Policy + Tactile | 31.25% | 5% |
| Diffusion Policy + Tactile | 48.75% | 0% |
| Finetuned Pi0.5 | 63.75% | 10% |
| &lt;strong&gt;TacVLA&lt;/strong&gt; | &lt;strong&gt;83.75%&lt;/strong&gt; | &lt;strong&gt;70%&lt;/strong&gt; |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; TacVLA 在四个拆解任务上分别达到 100%、90%、70%、75%，相对 Pi0.5 在最困难的 slide-pull Task 4 提升 45 个百分点。盒内抓取中，前置相机完全看不到箱内，wrist camera 还受到弱光和遮挡影响，TacVLA 仍能通过探索和多次 re-grasp 达到 14/20 成功。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-tacvla/robustness_bar_chart.4clmhmqjx1.webp&quot; alt=&quot;相机遮挡下四个拆解任务的成功率（论文 Figure 6）&quot;&gt;&lt;/p&gt;
&lt;p&gt;去掉门控、只把 tactile token 持续拼接时，拆解平均成功率从 83.75% 降到 71.25%，盒内抓取从 70% 降到 40%。Task 3 的 no-gating 版本只有 60%，甚至低于不使用触觉的 Pi0.5（65%）。&lt;strong&gt;【Analysis】&lt;/strong&gt; 这说明增益并非来自“多一个传感器”这么简单，而来自触觉参与时机与接触状态的一致性。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-tacvla/Robustness_Demonstration.1vze2pjnup.webp&quot; alt=&quot;遮挡与人类干扰的鲁棒性测试流程（论文 Figure 5）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 阻挡 front camera 后，Pi0.5 在四个任务上的成功率为 40%、40%、5%、35%，TacVLA 为 70%、65%、45%、70%；平均成功率从约 30% 提升到约 62%。在人为把物体放回盒内的运行时干扰中，TacVLA 能检测状态变化、回到盒内并重新抓取，Pi0.5 则无法恢复。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; TacVLA 把“视觉定位”和“接触确认”拆成两个互补阶段：接触前，触觉噪声不会与视觉 token 争夺注意力；接触后，局部压力分布成为动作修正的直接证据。固定 token 拓扑又避免了动态 token 删除导致的 positional shift，因此门控只改变信息可见性，不改变 backbone 的序列结构。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;真正的创新点是 &lt;strong&gt;state-dependent modality arbitration&lt;/strong&gt;：触觉不是始终在线的第三路视觉，而是由物理事件触发的条件输入。低维 tokenization 负责效率，硬门控负责时序上的信息隔离，两者共同服务于 contact-rich manipulation。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;与静态拼接的 visuotactile policy 相比，TacVLA 在 token level 选择“现在是否应该听 touch”；与从零训练的 Diffusion Policy 相比，它保留了预训练 VLM 的视觉-语言先验，再以 LoRA 注入触觉和任务数据。&lt;strong&gt;【Analysis】&lt;/strong&gt; 因而它更像是在已有 VLA 的上下文路由上增加一个物理状态开关，而不是重新设计完整控制器。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;压力阈值和 taxel 数量可以可靠地区分接触与非接触。&lt;/li&gt;
&lt;li&gt;单指上的 15×8 阵列足以支持这些任务所需的接触判断。&lt;/li&gt;
&lt;li&gt;短时域动作序列与 10 Hz 观测足以覆盖拆解和盒内抓取的状态变化。&lt;/li&gt;
&lt;li&gt;预训练 Pi0.5 的视觉-语言表示可迁移到新增 tactile token。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; (1) 二值 threshold gating 不能连续、可学习地调节 modality importance；(2) 触觉阵列空间分辨率有限，限制了细粒度接触几何推理；(3) 当前只验证短时域、接触中心任务，尚未覆盖更长时域和更复杂任务。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 硬门控把接触检测错误直接传递给策略：漏检会让模型在关键接触阶段“失聪”，误检则会重新引入噪声。论文也没有报告阈值跨传感器、跨物体的校准方式，或不同接触材质下的稳定性。此外，实验每个任务只有 50 条示教，且主要在单一 Franka embodiment 上完成，泛化到不同夹爪、传感器和动作频率仍需验证。&lt;/p&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;TacVLA 给出的启发不是“所有 VLA 都应加触觉”，而是应把每种传感器的&lt;strong&gt;信息有效区间&lt;/strong&gt;显式建模。下一步可以让 gate 从二值规则升级为可校准的连续 routing policy，例如根据压力历史、滑移概率和视觉不确定性共同决定触觉权重；也可以把 contact flag 作为 auxiliary state prediction 训练信号，让模型学会预判即将发生的接触，而不是等阈值触发。&lt;/p&gt;
&lt;p&gt;另一个值得延伸的方向是长时域 memory：当前门控只回答“此刻是否接触”，却没有记录“接触发生过什么、是否滑移、上一次 re-grasp 是否成功”。将 tactile events 压缩成事件 token，再交给 VLM 的长上下文或层级 policy，可能比持续输入原始触觉更适合复杂装配。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/70434530_p0_master1200.b9htgy5uw.webp"/><enclosure url="https://pic.hana0721.top/70434530_p0_master1200.b9htgy5uw.webp"/></item><item><title>T-Rex 论文精读：Tactile-Reactive Dexterous Manipulation</title><link>https://agusexp25.top/blog/paper-deep-dive-t-rex</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-t-rex</guid><description>精读 T-Rex：用 100 小时触觉同步数据、时间 VQ-VAE 与异步 MoT，让 VLA 在双手灵巧操作中以高频触觉闭环修正动作。</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;《T-Rex: Tactile-Reactive Dexterous Manipulation》针对一个常被忽略的事实：视觉可以告诉机器人“物体在哪里”，但在插入、擦拭、翻页、拧灯泡等接触丰富任务中，真正决定成败的是力、滑移和局部形变。论文同时解决数据、表示和推理频率三个瓶颈：构建 100 小时触觉同步数据集；在 Qwen3-VL-2B 上设计具有 latent/action/tactile 三个专家的 Mixture-of-Transformers（MoT）；用时间触觉 VQ-VAE 压缩高频力历史。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-t-rex/teaser_v6_0609.2rvvi62vex.webp&quot; alt=&quot;T-Rex 系统总览（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; T-Rex 的关键不是“把触觉拼到视觉 token 后面”，而是把控制时间尺度拆开：低频视觉语言流负责语义和动作先验，高频触觉流只在需要时继续 flow matching 的末端去噪。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;T-Rex Dataset&lt;/strong&gt;：207 个日常物体、22 个 motor primitives，筛选出 502 个可行组合，累计 7,755 条轨迹和 100 小时示教；官方代码仓库说明约 50 小时以 LeRobot v3.0 格式开放。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;T-Rex Model&lt;/strong&gt;：变量速率 MoT。latent expert 建模视觉语言上下文，action expert 生成低频动作，tactile expert 复用 KV cache 做高频修正。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Temporal tactile VQ-VAE&lt;/strong&gt;：把每个指尖 16 帧、6 维力历史离散成 codebook token，同时保留当前力向量和形变图，兼顾动态与瞬时接触。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Benchmark&lt;/strong&gt;：12 个真实双手任务，覆盖力敏感、形变、插入和双手协调；平均成功率 65%，比最强基线高约 30 个百分点。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 现有 VLA 通常以 RGB 和语言为主，触觉工作又常停留在单任务、单臂或静态 encoder。直接从零学习同步视觉—触觉—动作需要昂贵的长时遥操作数据；而让标准 VLM 以视觉频率运行，也无法跟上触觉信号的高频变化。&lt;/p&gt;
&lt;p&gt;相关路线大致有三类：ACT/ViTacFormer 一类的视觉触觉模仿学习、RDP 一类的 slow-fast diffusion policy，以及通过大规模人类视频预训练获得通用动作先验的 VLA。T-Rex 的区别在于把三者组合为一个 foundation-model recipe：先用 22,889 小时人类第一视角视频获得语义和运动先验，再用触觉同步机器人数据做 mid-training，最后只需约 100 条任务示教做 post-training。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;在控制时刻 $t$，策略接收三路 $640\times360$ RGB、语言指令、双手十个指尖的力/力矩历史和形变图，输出长度为 16 的动作 chunk：&lt;/p&gt;
&lt;p&gt;$$
\mathbf A_{t:t+H}=\pi_\theta(\mathbf o_t,\ell,\mathbf f_{t-15:t},\mathbf d_t),\qquad H=16.
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 平台是固定基座 Dexmate Vega-1，双臂各 7 个关节，配两只 22-DoF Sharpa Wave 手。手臂使用相对 end-effector delta 控制，手指使用绝对关节控制；低层控制线程以 300 Hz 跟踪高层策略目标。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-t-rex/model_v2_0524.1sfs5001vs.webp&quot; alt=&quot;T-Rex MoT 架构：latent、action、tactile 三专家（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 视觉语言上下文先进入 latent expert 和 action expert，action expert 从噪声去噪到 $\tau_{\mathrm{split}}=0.4$ 并缓存 KV；随后 tactile expert 读取实时触觉 token，在不重跑视觉塔的情况下完成剩余去噪并输出动作 chunk。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;Mixture-of-Transformer-Experts&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Latent expert&lt;/strong&gt;：Qwen3-VL-2B 的视觉语言主干，预测未来视觉 latent，提供语义和时间上下文。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Action expert&lt;/strong&gt;：1.41B 参数、62 维动作、chunk 长度 16；使用 flow matching 产生低频基础动作。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tactile expert&lt;/strong&gt;：约 0.62B 参数，FFN intermediate size 1536；只处理 $[0,\tau_{\mathrm{split}}]$ 的末端轨迹，适合高频调用。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;三个专家共享 self-attention 的 token 空间，但拥有独立的 $Q/K/V/O$ 投影、FFN 和输出 head。&lt;strong&gt;【Analysis】&lt;/strong&gt; 这样既保留跨模态信息交换，又避免用一个统一 head 同时拟合“看懂任务”和“瞬时反射”两种统计性质不同的信号。&lt;/p&gt;
&lt;h4&gt;Spatial-temporal tactile encoder&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 每个指尖取最近 16 帧、每帧 6 维力向量。共享卷积权重的 1D temporal encoder 下采样后得到 256 维 embedding，再用大小为 64 的 EMA codebook 量化；另一路把当前力向量线性投影；第三路用冻结的轻量 ResNet 风格网络编码单通道形变图。三路 token 拼接为：&lt;/p&gt;
&lt;p&gt;$$
\mathbf z_t^\tau=\left[\operatorname{Emb}&lt;em&gt;{vq}(E_f(\mathbf f&lt;/em&gt;{t-15:t}));\operatorname{Proj}_f(\mathbf f_t);\operatorname{Proj}_d(E_d(\mathbf d_t))\right].
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方 &lt;code&gt;tactile_vqvae/models/&lt;/code&gt; 实现 VQ-VAE，训练时以 magnitude-weighted MSE 重建高力接触，并通过 EMA 重置低使用率 code；&lt;code&gt;qwen_vla/modeling_vla.py&lt;/code&gt; 支持将 VQ-VAE 嵌入 checkpoint，在训练和推理中 on-the-fly 编码，不要求离线预烘焙 codes。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;p&gt;给定示教动作 $\mathbf A^{demo}$ 和高斯噪声 $\boldsymbol\epsilon$，线性路径及共享速度目标为：&lt;/p&gt;
&lt;p&gt;$$
\mathbf x_\tau=(1-\tau)\mathbf A^{demo}+\tau\boldsymbol\epsilon,\qquad v^\star=\boldsymbol\epsilon-\mathbf A^{demo}.
$$&lt;/p&gt;
&lt;p&gt;其中 $\tau=1$ 是噪声端，$\tau=0$ 是动作端。action 和 tactile 两个专家在不重叠的时间区间回归同一个 $v^\star$：&lt;/p&gt;
&lt;p&gt;$$
\mathcal L=\mathcal L_{act}+\lambda_{tac}\mathcal L_{tac}+\lambda_{future}\mathcal L_{future},
\quad \lambda_{tac}=1,\ \lambda_{future}=0.5.
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 共享目标让 tactile expert 学到的是“如何修正同一条动作轨迹”，而非另一个独立 policy；KV cache 则把视觉语义固定在 slow tick 的边界状态。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 训练分三阶段：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Human-video pretraining&lt;/strong&gt;：22,889 小时第一视角视频，训练 latent/action experts，学习视觉语义与粗粒度运动先验。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tactile-grounded mid-training&lt;/strong&gt;：100 小时触觉同步双手数据，训练 tactile expert 并把动作先验对齐到 Vega-1 的多视角和动作空间。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Task post-training&lt;/strong&gt;：每个下游任务约 100 条示教，保留已获得的触觉反应能力。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;优化器是 AdamW，峰值学习率 $10^{-4}$，cosine schedule，bf16，24 张 H100，per-device batch size 16，梯度裁剪 1.0。两个 flow expert 的时间从 $\operatorname{Beta}(1.5,1.0)$ 采样；tactile expert 的采样区间缩放到 $(0,0.4]$。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;慢流每个 chunk 运行一次：action expert 用 6 个 Euler steps 从 $\tau=1$ 到 $0.4$；快流在 chunk 内偏移 ${0,4,8,12}$ 处触发，每次用 4 个 Euler steps 从 $0.4$ 到 $0$。快流复制缓存的视觉 KV，加入新触觉 token，输出更新后的完整动作 chunk。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方仓库 &lt;code&gt;scripts/train.py&lt;/code&gt;/&lt;code&gt;scripts/test.py&lt;/code&gt; 对应 post-train 和 ZMQ 推理；&lt;code&gt;qwen_vla/modeling_vla.py&lt;/code&gt; 明确实现 &lt;code&gt;forward_flow_action_partial&lt;/code&gt; 与 &lt;code&gt;tactile_flow_continue&lt;/code&gt; 两段式接口。&lt;code&gt;scripts/train.sh&lt;/code&gt; 使用 &lt;code&gt;action_dim=62&lt;/code&gt;、&lt;code&gt;action_chunk=16&lt;/code&gt;、&lt;code&gt;use_tactile_vec=1&lt;/code&gt;、&lt;code&gt;use_tactile_deform=1&lt;/code&gt;、&lt;code&gt;use_tactile_vqvae=1&lt;/code&gt;，并设置 tactile loss weight 1.0、cascaded tactile dropout 0.1。推理脚本说明 fast 请求直接返回最终 action chunk，而不是把一个独立的 $\hat A$ 与残差相加。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-t-rex/setup_v3_0528.9kgx4mt181.webp&quot; alt=&quot;Vega-1、Sharpa Wave 双手与遥操作采集系统（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 每个任务评估 16 次，随机化物体位置和朝向；多阶段任务使用 progress-based rubric。基线包括 ViTacFormer、RDP、Tactile-VLA、EgoScale、$\pi_{0.5}$ 和 $\pi_{0.5}$ + tactile。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;12 个任务的平均成功率如下（百分比）：&lt;/p&gt;
&lt;p&gt;| 方法 | 平均成功率 |
| --- | ---: |
| ViTacFormer | 3 |
| RDP | 6 |
| Tactile-VLA | 15 |
| $\pi_{0.5}$ | 17 |
| EgoScale | 35 |
| $\pi_{0.5}$ + tactile | 6 |
| &lt;strong&gt;T-Rex&lt;/strong&gt; | &lt;strong&gt;65&lt;/strong&gt; |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; T-Rex 在 Flip Page、Transfer Egg、Apply Paste 等任务分别达到 96、75、66；在 Acid-Base Neutralization、Extract Card 等同时依赖力和形变的任务也保持 70% 左右。最强基线 EgoScale 为 35%，因此提升超过 30 个百分点。简单把触觉拼到 $\pi_{0.5}$ 反而降到 6%，说明触觉融合方式比“是否增加触觉输入”更重要。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-t-rex/data_efficiency_v2_0529.3uvkt1yl2l.webp&quot; alt=&quot;触觉表示、异步结构和数据效率消融（论文 Figures 6–8）&quot;&gt;&lt;/p&gt;
&lt;p&gt;六任务平均结果：完整模型 65%；去掉触觉 42%；用 MLP Force + Deform 58%；只用 Deform 54%；MLP Force + VQ-VAE Force 59%；去掉异步结构 60%。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这组结果把收益拆成三层：触觉本身约贡献 23 个百分点；时间 VQ-VAE 相比简单 MLP 仍有约 6–7 个百分点；异步 cascaded denoising 再贡献约 5 个百分点。VQ-VAE 的价值并非单纯降维，而是把力历史变成稳定的离散动态词汇。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-t-rex/dataset_analysis_v2_0610.4n8gasf7k6.webp&quot; alt=&quot;T-Rex 数据集统计：物体、motor primitives 与长尾分布（论文 Figure 4）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 数据集由 207 个物体与 22 个 primitive 组合，经可行性筛选得到 502 对、7,755 条轨迹。与同等 100 小时的 task-specific 数据相比，motor-primitive 组织方式带来更好的 zero-shot transfer；在下游示教数从 10 增加到 200 的曲线中，mid-training 版本在低数据区间明显更高。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 第一，22,889 小时人类视频提供“怎么做”的先验，避免触觉数据承担语义学习；第二，触觉中训把先验绑定到真实接触动力学；第三，slow/fast 分工让高频闭环不必重复运行昂贵视觉塔。三者分别对应数据效率、表示质量和运行时延。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;将 variable-rate MoT 用于双手触觉 VLA，而非任务专用小网络。&lt;/li&gt;
&lt;li&gt;用 cascaded flow matching 在同一动作轨迹上拼接低频规划和高频 refinement。&lt;/li&gt;
&lt;li&gt;将 16 帧力历史离散化，并与当前力和空间形变并行编码。&lt;/li&gt;
&lt;li&gt;以 motor primitive × object 的覆盖策略构建中训数据，而不是只收集完整任务。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;RDP 是视觉扩散策略加触觉快速分支，ViTacFormer 是 ACT 式任务策略；T-Rex 的 action expert 保留 foundation VLA 的广泛先验，tactile expert 只学习末端去噪区间，并通过 KV cache 异步运行。&lt;strong&gt;【Analysis】&lt;/strong&gt; 因此它不是“触觉版 ACT”，而是把触觉视为改变生成轨迹末端的条件变量。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;方法假设触觉修正主要发生在动作 chunk 的末端去噪区间；假设 slow tick 的视觉语言上下文在数个 fast tick 内仍然有效；还假设十个指尖的力/形变足以覆盖任务所需的接触状态。论文没有证明这些假设对全手掌接触或更长时程任务同样成立。&lt;/p&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 长时程、精确接触协调任务仍受遥操作难度限制，未来可能需要 reinforcement learning 或 online interaction refinement。硬件方面存在传感器畸变、跨设备 calibration drift，以及缺少密集掌面触觉的问题。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 论文主要报告成功率，尚未公开 latency、能耗和 fast tick 失步时的安全边界；固定 $\tau_{split}=0.4$ 也可能无法适应不同任务的接触阶段。数据集虽有 207 个物体，但 502 个可行组合仍来自单一 Vega-1/Sharpa Wave embodiment，跨硬件迁移需要新的触觉标定和 action mapping。&lt;/p&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;T-Rex 给触觉 VLA 的启发是：不要强迫所有模态以同一频率、同一 token 形式和同一 head 处理。更可扩展的方向可能是让 split timestep 随接触状态自适应，让触觉 expert 预测 uncertainty 并在传感器漂移时退回视觉策略，或将掌面触觉、声音和关节电流统一为同一类高频 residual stream。另一个值得验证的问题是：当 fast expert 只修正 flow trajectory 的末端时，它能否覆盖真正需要重新规划的接触失败？&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/69606244_p0_master1200.64eg2rlm3q.webp"/><enclosure url="https://pic.hana0721.top/69606244_p0_master1200.64eg2rlm3q.webp"/></item><item><title>StarVLA-α 论文精读</title><link>https://agusexp25.top/blog/paper-deep-dive-starvla-alpha</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-starvla-alpha</guid><description>StarVLA-α 用 Qwen3-VL、轻量 MLP action head 和统一数据管线重新审视 VLA 复杂度，系统分析 action head、机器人预训练与数据工程。</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;【Paper】StarVLA-α 不追求新的 action architecture，而是固定强大的 Qwen3-VL backbone，使用最小化的数据处理、连续 action regression 和跨 benchmark 的统一训练，回答“VLA 中哪些复杂设计真的必要”。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-starvla-alpha/teaser.1hsybtanh3.webp&quot; alt=&quot;StarVLA-α overview from paper Figure 1&quot;&gt;&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;【Paper】提出一个由 Qwen3-VL 和轻量 MLP action head 组成的简单 baseline，在 LIBERO、SimplerEnv、RoboTwin 2.0、RoboCasa-GR1 四个 benchmark 上统一评测。&lt;/li&gt;
&lt;li&gt;【Paper】在控制 backbone、数据和训练协议后，比较 FAST 离散 token、MLP regression、flow-matching 以及 GR00T 式双系统 action head，发现连续 action 很重要，但连续 head 之间差距有限。&lt;/li&gt;
&lt;li&gt;【Paper】重新评估 OXE、InternData-A1、RoboTwin-Rand 等 action-specific pretraining，说明预训练收益依赖目标 embodiment 和数据域，OOD 数据甚至会伤害性能。&lt;/li&gt;
&lt;li&gt;【Paper】提出 all-in-one generalist 评估：单个模型联合训练四类 benchmark，使用 32 维 zero padding 统一 action interface；RoboCasa-GR1 平均成功率达到 57.3%。&lt;/li&gt;
&lt;li&gt;【Paper】在 ARX5 的 RoboChallenge 真实世界评测中达到 33.6% success rate、54.5 progress score，分别高于 π0.5 的 12.7% 和 27.6%。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;【Paper】当前 VLA 结果难以直接比较，原因不是单一模型结构，而是整条 pipeline 同时变化：vision tower、language backbone、action tokenizer、action chunk、proprioception、历史帧、动作坐标系、预训练数据和 benchmark-specific evaluation 往往一起变化。这样一来，论文报告的提升可能来自数据清洗或评测工程，而不是模型本身。&lt;/p&gt;
&lt;p&gt;【Analysis】StarVLA-α 的价值更接近“实验控制组”而非传统意义上的新架构。它把问题拆成三个可检验的轴：action head 是否需要复杂化、action-specific pretraining 是否普适、数据工程是否在强 VLM 上仍然必要。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;给定多视角 RGB 观测 $I$ 和语言指令 $l$，模型需要输出长度为 $H$ 的连续动作块：&lt;/p&gt;
&lt;p&gt;$$
\hat{A}={\hat{a}_1,\ldots,\hat{a}_H},\qquad \hat{a}_t\in\mathbb{R}^{D}.
$$&lt;/p&gt;
&lt;p&gt;其中 $H$ 是 action horizon，$D$ 是 embodiment 的 action dimension。单 benchmark 训练时，$D$ 可为 7、14、29 等；all-in-one 训练时，论文将不同机器人的动作向量补零到 $D_{max}=32$。输入默认只有 RGB 和语言，state、历史帧、delta/relative action 都作为可控 ablation，而不是默认输入。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-starvla-alpha/method.mta26itb.webp&quot; alt=&quot;StarVLA-α architecture from paper Figure 2&quot;&gt;&lt;/p&gt;
&lt;p&gt;【Paper】统一流程是 &lt;code&gt;RGB + instruction → Qwen3-VL → action-token hidden states → MLP → continuous action chunk&lt;/code&gt;；benchmark-specific 部分只保留薄适配器，用于 observation、action interface 和 evaluator 的格式转换。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;Qwen3-VL backbone&lt;/h4&gt;
&lt;p&gt;【Paper】Qwen3-VL 原生接收图像和文本，不需要额外拼接 CLIP/SigLIP 等视觉塔。它输出融合后的 token hidden states，承担视觉理解、指令 grounding 和跨任务表征。&lt;/p&gt;
&lt;h4&gt;Action token 与 MLP head&lt;/h4&gt;
&lt;p&gt;【Paper】在指令末尾追加 $H$ 个 action token，每个 token 对应一个未来时间步。第 $t$ 个 token 的 hidden state $h_t$ 输入共享的 MLPResNet，直接回归 $D$ 维连续动作。&lt;/p&gt;
&lt;p&gt;【Code】官方 &lt;code&gt;starVLA/model/framework/VLM4A/QwenOFT.py&lt;/code&gt; 使用特殊字符 &lt;code&gt;🔍&lt;/code&gt; 作为 action token，在 prompt 中构造 “Please predict the next H robot actions” 后，从 Qwen 输出的最后 hidden state 中收集这些 token 的 embedding。&lt;code&gt;MLP_ActionHeader.py&lt;/code&gt; 的 head 是 &lt;code&gt;LayerNorm → Linear → ReLU → 2 个 residual MLP block → LayerNorm → Linear&lt;/code&gt;，对每个 chunk step 独立映射到 action vector。&lt;/p&gt;
&lt;h4&gt;Minimal data pipeline&lt;/h4&gt;
&lt;p&gt;【Paper】训练 split 上计算 action 的均值和标准差，并做 zero-mean、unit-variance normalization；评测遵循各 benchmark 官方 protocol。默认不加入 proprioception、历史帧或复杂 action transform。&lt;/p&gt;
&lt;p&gt;【Code】代码仓库的通用 LeRobot dataloader 会保存 &lt;code&gt;dataset_statistics.json&lt;/code&gt;，推理接口返回 &lt;code&gt;normalized_actions&lt;/code&gt;；具体 robot 的反归一化和 gripper 语义由 benchmark/robot adapter 负责。&lt;/p&gt;
&lt;h4&gt;Cross-embodiment padding&lt;/h4&gt;
&lt;p&gt;【Paper】all-in-one 模型把低维 action 右侧补零到 32 维，再用同一个 action head 预测。论文比较了 RDT action 和 multi-action head，说明简单 padding 在多个 benchmark 上不逊色，且在 Google Robot VM 和 RoboCasa-GR1 上分别提升 2.9 和 4.8 个百分点。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;p&gt;VLM 的融合表示写作：&lt;/p&gt;
&lt;p&gt;$$
H=\operatorname{VLM}&lt;em&gt;{\phi}(I,l,\tau&lt;/em&gt;{1:H_a}),
$$&lt;/p&gt;
&lt;p&gt;其中 $\tau_{1:H_a}$ 是追加的 action tokens，$H$（此处为矩阵）包含每个 token 的 hidden state。取出对应位置后：&lt;/p&gt;
&lt;p&gt;$$
\hat{a}&lt;em&gt;t=f&lt;/em&gt;{\theta}(h_t),\qquad t=1,\ldots,H_a,
$$&lt;/p&gt;
&lt;p&gt;其中 $H_a$ 是 action horizon，$f_\theta$ 是共享参数的 MLP action head，输出维度为 $D$。&lt;/p&gt;
&lt;p&gt;训练目标是逐元素 L1 regression：&lt;/p&gt;
&lt;p&gt;$$
\mathcal{L}&lt;em&gt;{\mathrm{L1}}=\frac{1}{H_aD}\sum&lt;/em&gt;{t=1}^{H_a}\sum_{j=1}^{D}\left|\hat{a}&lt;em&gt;{t,j}-a&lt;/em&gt;{t,j}\right|.
$$&lt;/p&gt;
&lt;p&gt;【Analysis】L1 目标与 diffusion/flow-matching 相比没有采样过程或噪声时间变量，优化和推理路径都更短；代价是它不能显式表示同一观测下的多峰动作分布。&lt;/p&gt;
&lt;p&gt;对于多 embodiment 的统一接口：&lt;/p&gt;
&lt;p&gt;$$
\tilde{a}_t=[a_t^{(1:D)},0,\ldots,0]\in\mathbb{R}^{32}.
$$&lt;/p&gt;
&lt;p&gt;【Paper】该式不是新的 action representation，而是把异构维度的接口复杂度下沉到 padding；模型依靠视觉、语言和训练分布学习哪些维度有效。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;【Paper】specialist 训练分别使用每个 benchmark 的训练集；generalist 训练将 LIBERO、SimplerEnv、RoboTwin 2.0 和 RoboCasa-GR1 合并。all-in-one 实验使用 learning rate $1\times10^{-4}$、batch size 256，并将 action 维度补到 32。&lt;/p&gt;
&lt;p&gt;【Code】训练入口是 &lt;code&gt;starVLA/training/train_starvla.py&lt;/code&gt;，采用 PyTorch + Accelerate + DeepSpeed，优化器为 AdamW，模型 forward 返回 &lt;code&gt;action_loss&lt;/code&gt;。QwenOFT 的 forward 取 action chunk 的最后 $H_a$ 个标签并计算 L1 loss；配置文件决定 action dimension、horizon、batch size 和冻结模块。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;【Code】&lt;code&gt;Qwenvl_OFT.predict_action&lt;/code&gt; 在 &lt;code&gt;torch.inference_mode()&lt;/code&gt; 下处理输入，按训练分辨率 resize 图像，追加相同的 action prompt，读取 action-token hidden states 后一次性输出 &lt;code&gt;[B,H_a,D]&lt;/code&gt; 的 &lt;code&gt;normalized_actions&lt;/code&gt;。部署 adapter 再按 robot 的统计量反归一化，并按 action chunk 的步长执行。&lt;/p&gt;
&lt;p&gt;【Paper】论文没有把推理写成额外的 sampling algorithm；MLP variant 是单次 forward，π/GR00T/FAST 变体则由各自 action head 的实现决定。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;| 论文描述                   | 官方代码位置                                     | 对照结论                                                       |
| -------------------------- | ------------------------------------------------ | -------------------------------------------------------------- |
| Qwen3-VL + MLP             | &lt;code&gt;model/framework/VLM4A/QwenOFT.py&lt;/code&gt;               | &lt;code&gt;Qwenvl_OFT&lt;/code&gt; 组合 VLM interface 与 action model。              |
| action token               | &lt;code&gt;QwenOFT.py::_gather_action_token_embeddings&lt;/code&gt;    | 通过 token id 从最后一层 hidden states 中收集 action queries。 |
| 连续 action regression     | &lt;code&gt;model/modules/action_model/MLP_ActionHeader.py&lt;/code&gt; | 两个 residual MLP block，输出每步 action。                     |
| L1 objective               | &lt;code&gt;QwenOFT.py::forward&lt;/code&gt;                            | &lt;code&gt;nn.L1Loss()&lt;/code&gt; 对预测 chunk 与末端标签 chunk 求损失。           |
| normalization / deployment | &lt;code&gt;dataloader/*&lt;/code&gt;、&lt;code&gt;examples/*/eval_files&lt;/code&gt;          | 统计量落盘，adapter 负责反归一化与 action 语义。               |
| 多种 action head           | &lt;code&gt;QwenFast.py&lt;/code&gt;、&lt;code&gt;QwenPI.py&lt;/code&gt;、&lt;code&gt;QwenGR00T.py&lt;/code&gt;       | 代码提供 FAST、flow-matching 和 dual-system 可替换实现。       |&lt;/p&gt;
&lt;p&gt;【Analysis】论文中的 StarVLA-α 是一个受控 baseline，而 GitHub 仓库是持续演进的 Lego-like 平台，包含更多 backbone、benchmark 和部署支持；不能把仓库当前全部功能都当成论文实验的一部分。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;【Paper】实验覆盖五类 embodiment/场景：LIBERO 单臂仿真、SimplerEnv 的 WidowX 与 Google Robot、RoboTwin 2.0 双臂、RoboCasa-GR1 humanoid，以及真实 ARX5 RoboChallenge。比较对象包括 FAST、OpenVLA-OFT、π0、π0.5 和 GR00T-N1.6。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-starvla-alpha/model-compare-crop.8l0trfg3dx.webp&quot; alt=&quot;Action-head comparison from paper Figure 3&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;| 方法                 | LIBERO avg | Simpler WidowX | Google VM | RoboTwin clean* | RoboCasa-GR1 |
| -------------------- | ---------: | -------------: | --------: | ---------------: | -----------: |
| π0.5                 |       96.9 |           46.9 |      72.7 |             82.7 |         37.0 |
| GR00T-N1.6           |       97.0 |           62.0 |      67.7 |                — |         47.6 |
| StarVLA-α specialist |   &lt;strong&gt;98.8&lt;/strong&gt; |       &lt;strong&gt;64.6&lt;/strong&gt; |  &lt;strong&gt;76.0&lt;/strong&gt; |             88.2 |         53.8 |
| StarVLA-α generalist |       97.8 |       &lt;strong&gt;65.2&lt;/strong&gt; |      74.3 |         &lt;strong&gt;88.7&lt;/strong&gt; |     &lt;strong&gt;57.3&lt;/strong&gt; |&lt;/p&gt;
&lt;p&gt;【Paper】specialist StarVLA-α 在 LIBERO 达到 98.8%，在 Google VM 达到 76.0%；generalist 在 RoboCasa-GR1 达到 57.3%，比 specialist 高 3.5 个百分点。表中 &lt;code&gt;*&lt;/code&gt; 表示 clean 与 random 数据共同训练，&lt;code&gt;—&lt;/code&gt; 表示论文未报告。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-starvla-alpha/combined_side_by_side.7ehiitr6uh.webp&quot; alt=&quot;Scaling and batch-size results from paper Figure 5&quot;&gt;&lt;/p&gt;
&lt;p&gt;真实机器人上，StarVLA-α 在 ARX5 的 11 个 RoboChallenge 任务平均 success rate 为 33.6%、progress score 为 54.5；π0.5 分别为 12.7% 和 27.6%。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-starvla-alpha/action-crop.4n8gar52rx.webp&quot; alt=&quot;Action parameterization comparison from paper Figure 4&quot;&gt;&lt;/p&gt;
&lt;h4&gt;Action head&lt;/h4&gt;
&lt;p&gt;| 变体            | LIBERO avg |   WidowX | RoboCasa-GR1 |
| --------------- | ---------: | -------: | -----------: |
| StarVLA-α-FAST  |       97.8 |     35.6 |         45.0 |
| StarVLA-α-MLP   |   &lt;strong&gt;98.8&lt;/strong&gt; |     64.6 |     &lt;strong&gt;53.8&lt;/strong&gt; |
| StarVLA-α-GR00T |       98.7 |     65.3 |         52.8 |
| StarVLA-α-π     |       98.1 | &lt;strong&gt;65.9&lt;/strong&gt; |         48.9 |&lt;/p&gt;
&lt;p&gt;【Paper】离散 FAST 在几乎所有 benchmark 上落后；连续 MLP、flow-matching 和 dual-system 的差距则很小。论文据此认为“连续 action”比“连续 action 的具体 head”更关键。&lt;/p&gt;
&lt;h4&gt;Action-specific pretraining&lt;/h4&gt;
&lt;p&gt;【Paper】在 RoboTwin clean 50×50 上，直接 fine-tune 为 50.3%，+OXE 降到 30.2%，+InternData-A1 为 63.6%，+RoboTwin-Rand 为 79.7%。但在 RoboCasa-GR1 上，这些预训练变体分别只有 27.8%、35.4% 和 33.3%，低于无额外预训练的 53.8%。&lt;/p&gt;
&lt;h4&gt;Data engineering&lt;/h4&gt;
&lt;p&gt;【Paper】proprioception、历史帧、delta action、relative action 在低数据区间有时带来小幅收益；数据足够时通常接近 baseline。例如 RoboCasa 24×1000 时，baseline 53.8%，四种变体为 54.2%、52.6%、54.8%、55.5%。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;【Paper】模型规模从 2B 增加到 4B 会显著改善 SimplerEnv，8B 相对 4B 的额外收益通常不超过 1%；在当前训练规模下，4B 是性能与成本的折中点。总 batch size 从 64 增加到 1024 时，SimplerEnv WidowX 与 RoboCasa 平均成功率总体上升，说明跨数据集训练中 batch diversity 本身就是重要变量。&lt;/p&gt;
&lt;p&gt;【Analysis】这组结果提醒我们，所谓“模型泛化”同时受 backbone capacity、数据混合比例和优化噪声影响。若不控制 batch size，容易把训练动力学误判为 architecture gain。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;【Analysis】第一，Qwen3-VL 已经提供强视觉-语言先验，动作学习主要变成把语义 grounding 映射到连续控制空间；第二，MLP head 避免了 tokenizer、迭代采样和双系统之间的额外误差源；第三，统一数据管线减少了 benchmark-specific overfitting，使 backbone 的迁移能力真正暴露出来。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;【Paper】创新点不是新模块，而是将“复杂设计是否必要”变成可复现实验问题：固定 backbone、数据规模和训练协议后逐项替换 action head、预训练数据与输入接口。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;| 维度         | 常见 VLA 做法                           | StarVLA-α                                |
| ------------ | --------------------------------------- | ---------------------------------------- |
| 目标         | 在单 benchmark 上追求最好分数           | 建立可解释的控制组并测跨 benchmark 泛化  |
| action head  | FAST、diffusion、flow、dual-system 并存 | 默认连续 MLP，其他 head 作为受控对照     |
| 数据         | 大量 embodiment-specific preprocessing  | raw RGB + language，最小 normalization   |
| 多机器人接口 | RDT action / multi-head 等专用设计      | 统一补零到 32 维                         |
| 评测         | specialist 常见                         | specialist 与 all-in-one generalist 并列 |&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;【Paper】强 VLM 的语义和视觉表征足以支撑动作学习，不必依赖大规模 action pretraining。&lt;/li&gt;
&lt;li&gt;【Paper】不同 embodiment 的 action 可以通过 padding 放入同一输出空间。&lt;/li&gt;
&lt;li&gt;【Analysis】训练数据需要覆盖足够的 embodiment 和任务，否则 padding 只是在输出端制造未监督维度。&lt;/li&gt;
&lt;li&gt;【Analysis】单步 MLP regression 对当前任务的动作多峰性影响有限；在接触丰富、长时域或强不确定性任务上，这个假设可能不成立。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;【Paper】作者强调额外 pretraining 的收益具有域依赖性；OXE 等异域数据可能损害目标任务。论文也没有声称简单 MLP 在所有机器人、控制频率和长时域任务上都优于 diffusion/flow head。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;【Analysis】论文的“简单”依赖强大的 Qwen3-VL-4B 初始化，算力和显存门槛并不简单；小模型结论不能直接外推。&lt;/li&gt;
&lt;li&gt;【Analysis】zero padding 没有显式 embodiment ID，模型只能从图像、语言和数据分布隐式推断机器人身份，数据混合不平衡时可能产生负迁移。&lt;/li&gt;
&lt;li&gt;【Analysis】action chunk 仍是 benchmark-specific 配置（代码示例中可见 8、16、50 等 horizon），因此 pipeline 并未完全消除时序工程。&lt;/li&gt;
&lt;li&gt;【Analysis】真实世界结果只展示有限 robot/task 组合，且部署 adapter 仍负责反归一化、gripper 索引和控制频率对齐；这些工程细节会影响可复现性。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;【Analysis】VLA 研究应先建立强 baseline，再引入复杂 action head；如果 MLP 已经达到同等水平，复杂度的收益必须用吞吐、延迟、稳定性或 OOD 指标证明。&lt;/li&gt;
&lt;li&gt;【Analysis】action pretraining 更像“域适配器”而非通用能力来源。未来可按 embodiment/task 相似度选择性混合数据，而不是默认扩大数据规模。&lt;/li&gt;
&lt;li&gt;【Analysis】all-in-one 评测值得成为标准：同一 checkpoint 不经 benchmark-specific fine-tuning，才能测出真正的跨 embodiment 能力。&lt;/li&gt;
&lt;li&gt;【Analysis】batch size、数据混合和模型初始化应当进入 VLA 论文的标准 ablation，否则 architecture comparison 仍然会被训练动力学混淆。&lt;/li&gt;
&lt;li&gt;【Analysis】一个自然的后续方向是保留 StarVLA-α 的统一接口，同时让模型按任务不确定性动态选择 MLP、flow-matching 或更长 horizon 的 action decoder。&lt;/li&gt;
&lt;/ol&gt;</content:encoded><h:img src="https://pic.hana0721.top/116834498_p0_master1200.1e974fnzok.webp"/><enclosure url="https://pic.hana0721.top/116834498_p0_master1200.1e974fnzok.webp"/></item><item><title>StarVLA 论文精读：用可插拔骨干与动作头统一 VLA 研究</title><link>https://agusexp25.top/blog/paper-deep-dive-starvla</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-starvla</guid><description>精读 StarVLA：以 backbone–action-head 分解统一 FAST、OFT、π 与 GR00T，并复用训练、评测和部署接口降低 VLA 复现实验门槛。</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;论文名称&lt;/strong&gt;：《StarVLA: A Lego-like Codebase for Vision-Language-Action Model Developing》
&lt;strong&gt;作者&lt;/strong&gt;：StarVLA Community、Von Neumann Institute, HKUST
&lt;strong&gt;论文链接&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2604.05014&quot;&gt;arXiv:2604.05014&lt;/a&gt;
&lt;strong&gt;代码 / 项目页&lt;/strong&gt;：&lt;a href=&quot;https://github.com/starVLA/starVLA&quot;&gt;StarVLA GitHub&lt;/a&gt;、&lt;a href=&quot;https://starvla.github.io/&quot;&gt;Project Page&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; StarVLA 不是提出一种新的 VLA policy，而是一套研究基础设施：将系统分解为提供多模态表征的 &lt;strong&gt;backbone&lt;/strong&gt; 与生成动作的可插拔 &lt;strong&gt;action head&lt;/strong&gt;，让 FAST 离散自回归、OFT 并行回归、$\pi$ flow matching、GR00T 双系统共享同一数据契约、训练入口、基准评测与部署接口。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;以 backbone–action-head 分解容纳四类动作解码范式，并让 Qwen3-VL、Cosmos-Predict2 等 VLM / world-model backbone 可替换。&lt;/li&gt;
&lt;li&gt;把 behavior cloning、multimodal co-training 和 cross-embodiment data mixture 做成与具体 action head 无关的训练配方。&lt;/li&gt;
&lt;li&gt;用统一服务端—客户端接口接入 LIBERO、SimplerEnv、RoboTwin 2.0、RoboCasa-GR1 和 BEHAVIOR-1K。&lt;/li&gt;
&lt;li&gt;提供少数据工程、可复现的单 benchmark baseline，并报告跨 benchmark、跨 embodiment 的单模型训练结果。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 它的关键交付物不是某一行最高分，而是控制变量的能力：当数据、I/O、trainer 与 evaluator 固定时，性能变化才能更可靠地归因于 backbone、action representation 或 action head。&lt;/p&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 现有 VLA 常被分为两条独立路线：一类把 vision-language model 的 token 表示转成动作，另一类借助生成式 world model 的去噪过程产生动作或未来观测。动作又可表示成离散 token、连续回归或 flow matching；各项目还常绑定专属的数据预处理、训练框架和 benchmark protocol，使横向结果混入实现差异。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; StarVLA 用 policy-centric 表述把它们放在共同坐标中：未来观测预测、语言推理等可作为附加监督或归纳偏置；部署接口仍是从观测和语言到 action chunk 的 policy。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-starvla/vla-form.icuynb422.webp&quot; alt=&quot;StarVLA 的统一 VLA 形式：以动作损失为核心、以辅助预测为可选归纳偏置（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 统一的是软件接口和比较单位，并不证明所有 world model 与 VLM policy 在建模或成本上等价；后者仍受辅助信号、数据规模、采样开销和闭环控制方式影响。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在时刻 $t$，系统根据多模态历史观测 $\mathbf{x}_{\leq t}$ 和语言指令 $\ell$ 预测未来 $k$ 步动作，以及可选辅助输出：&lt;/p&gt;
&lt;p&gt;$$
\pi(\mathbf a_{t:t+k},\mathbf y_{\mathrm{aux}}\mid\mathbf x_{\leq t},\ell).
$$&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Observation&lt;/strong&gt;：$\mathbf{x}_{\leq t}$ 可含 RGB、深度、触觉、proprioception 等；具体任务可只使用其中一部分。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Action&lt;/strong&gt;：$\mathbf a_{t:t+k}$ 是连续或离散化的 future action chunk，维度和归一化依 embodiment 而定。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Language&lt;/strong&gt;：$\ell$ 是自然语言任务指令。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Auxiliary output&lt;/strong&gt;：$\mathbf y_{\mathrm{aux}}$ 可为未来视觉、子目标或语言推理；direct policy 可为空。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 总目标为：&lt;/p&gt;
&lt;p&gt;$$
\mathcal L=\mathcal L_{\mathrm{action}}+\mathcal L_{\mathrm{aux}}.
$$&lt;/p&gt;
&lt;p&gt;$\mathcal L_{\mathrm{action}}$ 监督动作，$\mathcal L_{\mathrm{aux}}$ 表示可选的语言对齐或未来观测信号。该公式是共同的比较语言，不要求每个模型都预测世界状态。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-starvla/frameworks.3d5j4fqaui.webp&quot; alt=&quot;四种 action decoding 在相同 VL foundation model 接口下的实例化：FAST、OFT、GR00T 与 π（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 原始多视角图像、语言和可选 state 先经 backbone 得到多模态 hidden states，再由 action head 输出归一化 action chunk。模型内部唯一的可替换边界是“multimodal representation → actions”，所以数据、训练和评测不因 head 改变而改变。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;统一 I/O 与可替换边界&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 所有 framework 都暴露训练入口 &lt;code&gt;forward({raw images, str, ...})&lt;/code&gt;，返回 loss dictionary；推理入口 &lt;code&gt;predict_action({raw images, str, ...})&lt;/code&gt;，返回 &lt;code&gt;normalized_actions&lt;/code&gt;。训练与部署都消费接近环境层的 raw observation，避免 tokenizer、图像处理或 action scaling 散落在 benchmark 脚本中。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 截至 2026-08-10 的官方仓库提交 &lt;code&gt;0ed0aad&lt;/code&gt;，&lt;code&gt;starVLA/model/framework/base_framework.py&lt;/code&gt; 将 &lt;code&gt;forward(examples)&lt;/code&gt; 约定为返回含 &lt;code&gt;action_loss&lt;/code&gt; 的字典，将 &lt;code&gt;predict_action(examples)&lt;/code&gt; 约定为返回 &lt;code&gt;[B,T,action_dim]&lt;/code&gt; 的 &lt;code&gt;normalized_actions&lt;/code&gt;。代码也提醒：持续演进的最新 revision 未必复现旧 checkpoint，应锁定发布时 revision 与 checkpoint config。&lt;/p&gt;
&lt;h4&gt;四种 action head&lt;/h4&gt;
&lt;p&gt;| 变体          | 动作表示与解码                                                               | 论文中的作用                   |
| ------------- | ---------------------------------------------------------------------------- | ------------------------------ |
| StarVLA-FAST  | FAST tokenizer 离散化动作，以 next-token prediction 自回归生成               | 检验 VLM-native token decoding |
| StarVLA-OFT   | 在预定义 action token 的 hidden state 上接轻量 MLP，并行回归连续动作         | 最轻量的可插拔连续 head        |
| StarVLA-$\pi$ | layer-wise cross-DiT 以多层 VL hidden states 为条件，迭代 flow-matching 去噪 | 检验生成式连续控制             |
| StarVLA-GR00T | VL backbone 作慢速 System 2，DiT flow-matching 作快速 System 1               | 容纳双系统推理 / 控制模式      |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 当前仓库的 &lt;code&gt;VLM4A/QwenFast.py&lt;/code&gt;、&lt;code&gt;QwenOFT.py&lt;/code&gt;、&lt;code&gt;QwenPI.py&lt;/code&gt; 和 &lt;code&gt;QwenGR00T.py&lt;/code&gt; 分别实现相近变体。&lt;code&gt;QwenOFT.py&lt;/code&gt; 将 action special token 加入 prompt，抽取对应 hidden state，以 MLP 和 L1 loss 回归 action horizon；&lt;code&gt;QwenFast.py&lt;/code&gt; 将轨迹编码成 FAST token，再用语言模型 generation 解码。这里是代码核验结果，不应把 2026-08 的参数与模块倒推成论文冻结版本。&lt;/p&gt;
&lt;h4&gt;Backbone、data 与 benchmark adapters&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; VLM 与 world-model backbone 通过 adapter 接到共同 hidden-state 边界；异构机器人数据通过统一 mixture 接入。benchmark 以 policy server 和独立 evaluator 通信，adapter 负责 resize、归一化 / 反归一化、chunk 选择、sticky gripper 等环境规则。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;starVLA/dataloader/lerobot_datasets.py&lt;/code&gt; 根据 &lt;code&gt;data_mix&lt;/code&gt; 建立带 robot type / embodiment tag 的 &lt;code&gt;LeRobotMixtureDataset&lt;/code&gt;；&lt;code&gt;deployment/model_server/server_policy.py&lt;/code&gt; 启动 WebSocket policy server；LIBERO、SimplerEnv、RoboTwin examples 各保留 &lt;code&gt;model2*_interface.py&lt;/code&gt;。这对应论文的“核心 policy 不 import simulator，差异留在薄 adapter”。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;辅助目标如何区分范式&lt;/h4&gt;
&lt;p&gt;$$
\mathcal L_{\mathrm{aux}}=
\begin{cases}
0,&amp;#x26;\text{direct VLA},\
\mathcal L_{\mathrm{language/reasoning}},&amp;#x26;\text{VLM-based VLA},\
\mathcal L_{\mathrm{future\ observation}},&amp;#x26;\text{world-model-based VLA}.
\end{cases}
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; direct policy 只优化动作；VLM-based 模型可加子任务、spatial grounding 或 reasoning token；WM-based 模型可预测 image / video，或把它作为隐式 latent structure。共享动作损失不表示三者训练难度或推理成本相同。&lt;/p&gt;
&lt;h4&gt;多目标 co-training 损失&lt;/h4&gt;
&lt;p&gt;$$
\mathcal L_{\mathrm{co}}=\mathcal L_{\mathrm{action}}+\lambda_{\mathrm{vlm}}\mathcal L_{\mathrm{vlm}}.
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; $\mathcal L_{\mathrm{vlm}}$ 来自额外 vision-language web data，$\lambda_{\mathrm{vlm}}$ 平衡动作拟合和多模态能力保持。&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;train_starvla_cotrain.py&lt;/code&gt; 每步对 VLA batch 反传 &lt;code&gt;action_loss&lt;/code&gt;，并对 VLM batch 反传乘以 &lt;code&gt;trainer.loss_scale.vlm&lt;/code&gt; 的 language-model loss，是公式的直接对应。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-starvla/dataflow.b9n37oyr1.webp&quot; alt=&quot;StarVLA 将异构数据、dataloader、foundation model、action head 与训练 / 部署连成统一管线（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 基础配方是 benchmark 内 supervised fine-tuning：从公开 VL 权重初始化，只用该 benchmark 的标准 demonstrations，不使用 VLA-specific 大规模预训练、data augmentation 或 DAgger。两种可复用扩展分别是双 dataloader 的 multimodal co-training，以及按 sampling weights 混合不同机器人数据的 cross-embodiment training。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 统一训练不等于所有 head 获得相同的 hyperparameter budget；action horizon、采样步数、backbone size 和 batch size 仍会改变成本。框架的价值是让这些差异显式化，而不是自动抹平。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; evaluator 将图像、语言和可选 state 打包到 policy interface；server 调用 &lt;code&gt;predict_action&lt;/code&gt; 得到 normalized action chunk；adapter 用 checkpoint 的 &lt;code&gt;dataset_statistics.json&lt;/code&gt; 反归一化并转换为环境控制。模拟与真实机器人可沿用同一边界。&lt;/p&gt;
&lt;p&gt;&amp;#x3C;Algorithm
number={2}
title=&apos;StarVLA 的 server-client 推理与执行&apos;
inputLabel=&apos;输入&apos;
outputLabel=&apos;输出&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;| 论文抽象                        | 当前官方代码对应                                       | 阅读边界                                     |
| ------------------------------- | ------------------------------------------------------ | -------------------------------------------- |
| framework registry + 可替换组件 | &lt;code&gt;base_framework.py&lt;/code&gt; 的 &lt;code&gt;build_framework()&lt;/code&gt; 与 registry | 现有 registry 含论文后加入的模型             |
| 机器人监督训练                  | &lt;code&gt;starVLA/training/train_starvla.py&lt;/code&gt;                    | trainer 读取 framework 返回的 &lt;code&gt;action_loss&lt;/code&gt;  |
| VLA + VLM 双目标                | &lt;code&gt;train_starvla_cotrain.py&lt;/code&gt;                             | 两次 forward/backward，使用 &lt;code&gt;loss_scale.vlm&lt;/code&gt; |
| cross-embodiment mixture        | &lt;code&gt;dataloader/lerobot_datasets.py&lt;/code&gt;                       | mixture 名称与数据格式会随 release 增长      |
| 模拟与实机部署                  | &lt;code&gt;deployment/model_server/&lt;/code&gt;、&lt;code&gt;examples/**/eval_files/&lt;/code&gt;  | WebSocket 默认，另有 GR00T 兼容 ZMQ 路径     |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; README 显示报告发布后仓库仍加入 WM4A、RL post-training、Franka、DOMINO、RoboDojo 等能力。本文因此把论文的四个代表范式和五个主 benchmark 作为论文事实，把当前 checkout 的行为单独标为代码事实。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 单 benchmark 结果尽量遵循官方训练和评测流程。LIBERO 使用四 suite 的联合 policy，按每 suite 10 task、每 task 50 episode 汇总；SimplerEnv 使用 Visual Matching / Variant Aggregation；RoboTwin 2.0 覆盖 50 task 的 clean 与 randomized 条件；RoboCasa-GR1 汇总 24 task。generalist setting 则将 LIBERO、SimplerEnv、RoboTwin 2.0 和 RoboCasa-GR1 合并训练一个模型，不做 benchmark-specific fine-tuning。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 下表摘取最能体现不同 head 可在同一基础设施比较的结果；不同 benchmark 的 success rate 不可横向相减。&lt;/p&gt;
&lt;p&gt;| Benchmark / 设置                  |                                                     StarVLA 代表结果 | 对照信息                             |
| --------------------------------- | -------------------------------------------------------------------: | ------------------------------------ |
| LIBERO，Qwen3-VL-4B               | OFT &lt;strong&gt;96.6%&lt;/strong&gt; avg，GR00T 96.5%，$\pi$ 95.7%，FAST 95.4%（30K steps） | OpenVLA-OFT 为 97.1%（175K steps）   |
| LIBERO，Cosmos-Predict2-2B        |                 OFT &lt;strong&gt;95.8%&lt;/strong&gt;，$\pi$ 95.5%，GR00T 95.2%（30K steps） | 世界模型 backbone 可接同一 head 边界 |
| SimplerEnv WidowX VM，Qwen3-VL-4B |                              GR00T &lt;strong&gt;65.3%&lt;/strong&gt;，OFT 64.6%，$\pi$ 60.9% | 文中 GR00T N1.5 为 61.9%             |
| SimplerEnv Google Robot           |                                      OFT：VM &lt;strong&gt;76.0%&lt;/strong&gt;，VA &lt;strong&gt;70.2%&lt;/strong&gt; | 只报告 OFT 代表配置                  |
| RoboCasa-GR1（24 tasks）          |                  OFT &lt;strong&gt;48.8%&lt;/strong&gt;，GR00T 47.8%，$\pi$ 43.9%，FAST 39.0% | 连续 head 在该设置更强               |
| RoboTwin 2.0                      |             $\pi$：clean 88.1%、random &lt;strong&gt;88.8%&lt;/strong&gt;；OFT：88.2% / 88.3% | unified policy 覆盖 50 task          |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这些数字说明在作者 recipes 和 protocol 下，多个 backbone–head 组合能达到强基线；它们不足以证明某动作表示在所有数据规模、所有真实机器人上占优。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; technical report 的实验重心是 framework baseline 与 cross-benchmark demonstration，而不是严格模块消融；论文未给出“移除统一接口 / 只替换某组件”且其余预算完全不变的标准 ablation。因此不能把不同 head 的横向成绩当作每个工程设计的因果效应。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-starvla/cotrain-curves.lwgwd470m.webp&quot; alt=&quot;空间 grounding 与机器人动作的 co-training 曲线：仅动作微调会快速遗忘感知能力，spatially guided co-training 更稳定（论文 Figure 4，图中研究引用自 ST4VLA）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文引用的 StarVLA-based ST4VLA study 显示：action-only 的 Google Robot VM / VA、WidowX VM 为 66.1 / 63.5、54.7；加入 co-training 后为 70.2 / 66.5、61.1；加 spatial pretraining 后为 84.6 / 75.9、73.2。Vanilla VLA 的 RefCOCO-g IoU@0.5 在约 20K step 内接近随机。此证据支持 co-training infrastructure，但结果应归属于 ST4VLA，而非 StarVLA 四种 head 的消融。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 一个 jointly trained generalist 在不做下游专门微调时，得到 LIBERO 平均 97.8%，SimplerEnv WidowX / Google VA / Google VM 为 70.2 / 73.8 / 79.3%，RoboTwin random 为 87.8%，RoboCasa-GR1 为 &lt;strong&gt;57.3%&lt;/strong&gt;。训练采用 $10^{-4}$ 学习率、总 batch 256，将低自由度 action padding 到共享 32 维向量；RoboCasa 高于表中对应 specialist 的最佳 48.8%。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; generalist 在部分列更高、在另一些列不是最高。更稳妥的结论是：统一 padding 与 mixture 训练没有使模型在多套件上崩溃，并且 RoboCasa 出现正迁移；对新机器人和真实长时程任务仍需额外验证。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 标准 raw I/O 减少“方法差异实为 preprocessing 差异”的风险；独立 action head 使研究者可以复用昂贵的 data / evaluator investment；server-client 边界又允许各 simulator 在独立环境运行，降低多 benchmark 的依赖冲突。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 创新是双向模块化：外层以 raw observation 到 action 的契约固定训练 / 部署边界，内层以 backbone representation 到 action head 的契约固定模型组合边界。四个范式用来证明该边界不只服务单一 decoding family。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;| 路线               | 常见耦合                                       | StarVLA 的改变                             |
| ------------------ | ---------------------------------------------- | ------------------------------------------ |
| 单论文 VLA 实现    | model、data、trainer、evaluator 共演化         | 将 backbone / head 移至显式配置与 registry |
| 单一动作范式工具包 | action representation 绑定 backbone 与 trainer | 用同一外部 contract 运行四类 head          |
| benchmark 专用脚本 | evaluator 依赖混入 policy runtime              | policy server 与 benchmark client 分离     |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 它更像 VLA 研究的实验操作系统，而不是替代 FAST、OFT、$\pi$ 或 GR00T 的新 policy；评价重点应是可复现性、组合速度和接口语义一致性，不只是单项 SOTA。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 设计假设不同 backbone 都能提供 action head 可消费的对齐表征，且 raw example 与 normalized action 的共同契约足以覆盖不同 benchmark。&lt;strong&gt;【Analysis】&lt;/strong&gt; 对 image-text-action 任务这通常务实；在高频触觉、复杂接触或全身 humanoid 控制中，同步、时延、action frequency 与 safety constraints 仍可能是不能由统一字典抹平的差异。&lt;/p&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 报告明确说明 StarVLA 仍在积极维护和扩展。RL fine-tuning 在论文撰写时仍是计划中的集成，公开重点是 supervised 和 co-training；工作定位是可复现、低数据工程 baseline，而非解决全部 generalist robot 问题。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;统一 API 可能隐藏 delta / absolute action、夹爪离散化、延迟与 chunk 执行等关键语义差异。&lt;/li&gt;
&lt;li&gt;统一 framework 降低实现门槛，却不能消除大规模 GPU、专有数据和 simulator 环境的复现成本。&lt;/li&gt;
&lt;li&gt;仓库快速演进；若论文、config、checkpoint 和 evaluator revision 不一起固定，复现责任边界仍模糊。&lt;/li&gt;
&lt;li&gt;多 benchmark 成功率主要来自 simulation protocol；可部署到实体机器人不等于所有 embodiment 都已有闭环实机验证。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 对后续 VLA 工作，一个值得发布的最小实验单元是四元组：&lt;code&gt;(checkpoint revision, dataset statistics, training config, evaluator revision)&lt;/code&gt;。它比只发布权重更接近可验证的科学对象。提出新方法时也应明确它改变的是 backbone、action head、auxiliary objective、data mix 还是 adapter；改变面越清晰，结果越可解释和复用。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/66952181_p0_master1200.6ikvtocw16.webp"/><enclosure url="https://pic.hana0721.top/66952181_p0_master1200.6ikvtocw16.webp"/></item><item><title>SpatialVLA 论文精读：用 3D 空间表示统一跨机器人 VLA</title><link>https://agusexp25.top/blog/paper-deep-dive-spatialvla</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-spatialvla</guid><description>精读 SpatialVLA：通过 Ego3D Position Encoding 与 Adaptive Action Grids，把 3D 场景理解和跨机器人动作迁移带入 VLA。</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;论文名称&lt;/strong&gt;：《SpatialVLA: Exploring Spatial Representations for Visual-Language-Action Model》&lt;br&gt;
&lt;strong&gt;作者&lt;/strong&gt;：Delin Qu 等（上海人工智能实验室、复旦大学、上海交通大学等）&lt;br&gt;
&lt;strong&gt;论文链接&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2501.15830&quot;&gt;arXiv:2501.15830&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;代码&lt;/strong&gt;：&lt;a href=&quot;https://github.com/SpatialVLA/SpatialVLA&quot;&gt;SpatialVLA/SpatialVLA&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;项目主页&lt;/strong&gt;：&lt;a href=&quot;https://spatialvla.github.io&quot;&gt;spatialvla.github.io&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-spatialvla/pipeline.webp&quot; alt=&quot;SpatialVLA pipeline from paper Figure 2&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; SpatialVLA 认为，通用机器人策略的瓶颈不只是视觉语义，而是没有把观测和动作都放进可对齐的 3D 空间。它在 PaliGemma 2 上分别加入 Ego3D Position Encoding（观测端）和 Adaptive Action Grids（动作端），再用 110 万条真实机器人轨迹进行跨 embodiment 预训练。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;用单目深度估计和相机内参构造相机坐标系中的 Ego3D 表示，不依赖每台机器人的外参标定。&lt;/li&gt;
&lt;li&gt;把 7D 连续动作拆成平移、旋转、夹爪三组空间 token；平移在球坐标中建 3D 网格，旋转在 roll-pitch-yaw 中建 3D 网格。&lt;/li&gt;
&lt;li&gt;用拟合动作分布的 Gaussian quantile 划分网格，并在新机器人上重新拟合分布、用三线性插值初始化新 token（Spatial Embedding Adaption）。&lt;/li&gt;
&lt;li&gt;在 SimplerEnv、WidowX、Franka 和 LIBERO 上进行零样本、微调和空间理解评估；LIBERO 平均成功率达到 78.1%。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; RT-2、OpenVLA 等 VLA 通常将图像 token、语言 token 与离散动作 token 放入同一个自回归模型，但图像主要提供 2D 语义，动作则按每个标量独立分桶。跨机器人时，摄像头安装位置、工作空间、自由度和控制器都不同，导致“同一个 token”未必表示相同的空间运动。&lt;/p&gt;
&lt;p&gt;已有跨 embodiment 方法（如 Octo、RDT、HPT）主要解决数据或网络接口统一；3D-LLM、LEO、3D-VLA 则增强 3D 场景问答和规划。&lt;strong&gt;【Analysis】&lt;/strong&gt; SpatialVLA 的切入点更窄也更实用：不重做一个 3D 世界模型，而是把深度几何注入 VLA 的视觉输入，并让动作 token 本身携带空间邻接关系。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 给定当前观测 $\mathbf{o}_t$（一张 third-person RGB 图像）和语言指令 $\mathbf{L}$，策略输出未来 $H$ 步动作：&lt;/p&gt;
&lt;p&gt;$$
\mathbf{A}_t=[\mathbf{a}&lt;em&gt;t,\ldots,\mathbf{a}&lt;/em&gt;{t+H-1}],\qquad
\mathbf{a}_t={x,y,z,\mathrm{roll},\mathrm{pitch},\mathrm{yaw},\mathrm{grip}}.
$$&lt;/p&gt;
&lt;p&gt;平移与旋转被归一化到每个机器人环境的动作范围；平移再变换到 $(\theta,\phi,r)$ 球坐标。模型一次动作只生成 3 个 token（translation、rotation、gripper），而不是 7 个独立标量 token。实现中 action chunk 长度为 $T=4$，因此一次生成 12 个 token。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-spatialvla/pipeline.webp&quot; alt=&quot;SpatialVLA overall architecture from paper Figure 2&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 图像经 SigLIP 提取语义特征，并与 Ego3D 位置嵌入相加；PaliGemma 2 根据视觉、语言上下文自回归预测三组空间动作 token，再由 tokenizer 解码成连续控制量。预训练后，动作网格和 token 嵌入可针对新机器人重新适配。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;Ego3D Position Encoding&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：RGB 图像 $I_t$、相机内参 $K$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;中间模块&lt;/strong&gt;：ZoeDepth 预测深度图 $D$；反投影 $\pi^{-1}$ 得到每个视觉 patch 的相机坐标 $(x,y,z)$；对坐标做 sinusoidal frequency encoding，再经过两层 MLP。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：与 SigLIP 特征同维度的 $\mathbf{P}&apos;$，并与 2D 特征 $\mathbf{X}$ 相加得到 $\mathbf{O}_{3d}$。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;$$
\mathbf{O}_{3d}=\mathbf{X}+\mathbf{P}&apos;=\mathbf{X}+\mathrm{MLP}(\gamma(\mathbf{P})).
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;modeling_spatialvla.py&lt;/code&gt; 中的 &lt;code&gt;Ego3DPositionEmbeddingMLP&lt;/code&gt; 使用 8 个频率、以 $(0,0,2)$ 为中心做归一化；&lt;code&gt;backproject_patch&lt;/code&gt; 在每个 SigLIP patch 内采样 $2\times2$ 个深度点并聚合。&lt;strong&gt;【Analysis】&lt;/strong&gt; 因为坐标在相机自 egocentric frame 中，模型不需要知道“这台机器人底座在世界坐标哪里”，降低了跨平台标定依赖。&lt;/p&gt;
&lt;h4&gt;Adaptive Action Grids&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;平移&lt;/strong&gt;：将 $(x,y,z)$ 转成 $(\theta,\phi,r)$，分别划分 16、32、8 个 bin，共 $16\times32\times8=4096$ 个 translation token。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;旋转&lt;/strong&gt;：roll、pitch、yaw 各 16 个 bin，共 $16^3=4096$ 个 rotation token。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;夹爪&lt;/strong&gt;：开、闭两个 token。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;总词表&lt;/strong&gt;：$4096+4096+2=8194$ 个动作 token。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;网格不是等宽划分，而是先统计整个训练混合数据中每个变量的分布，拟合 $\mathcal{N}(\mu^a,\Sigma^a)$，再用等概率区间切分。方向 $(\theta,\phi)$ 分配更多分辨率，以保留精细方向控制。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;scripts/action_config.json&lt;/code&gt; 固定了上述 bin 数；&lt;code&gt;TranslationTokenizer&lt;/code&gt; 使用球坐标索引 &lt;code&gt;disc_theta * (M_phi M_r) + disc_phi * M_r + disc_r&lt;/code&gt;，解码时取网格中心并裁剪回 $[-1,1]^3$。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;p&gt;动作变量 $a$ 的网格边界满足：&lt;/p&gt;
&lt;p&gt;$$
\int_{a_i}^{a_{i+1}} f(x),dx\approx\frac1M,
$$&lt;/p&gt;
&lt;p&gt;其中 $f$ 是拟合 Gaussian 的概率密度，$M$ 是该变量的 bin 数。这样高密度区域拥有更细的有效分辨率，低频区域不会浪费 token。&lt;/p&gt;
&lt;p&gt;训练采用标准自回归交叉熵：&lt;/p&gt;
&lt;p&gt;$$
\mathcal{L}(\theta)=\mathbb{E}_{p(\mathbf{A}_t|\mathbf{o}_t)}
\left[\mathrm{CE}(\mathfrak{a}_t,\tilde{\mathfrak{a}}_t)\right].
$$&lt;/p&gt;
&lt;p&gt;其中 $\mathfrak{a}_t$ 是由真实动作查询网格得到的 token，$\tilde{\mathfrak{a}}_t$ 是模型预测序列。&lt;strong&gt;【Code】&lt;/strong&gt; 代码中的 &lt;code&gt;SpatialActionTokenizer&lt;/code&gt; 负责离散化和解码，模型语言 embedding 末端的 8194 个位置被替换为可学习空间 token embedding。&lt;/p&gt;
&lt;p&gt;新机器人适配时，对新分布重新划网格；新网格 token 用相邻旧网格 embedding 三线性插值初始化：&lt;/p&gt;
&lt;p&gt;$$
\mathbf{e}&lt;em&gt;{new}^{i}=\sum&lt;/em&gt;{j=1}^{K}w_j\mathbf{e}^{j},\qquad \sum_jw_j=1.
$$&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 预训练数据是 OXE 子集与 RH20T 的混合，共约 1.1M 条真实机器人 episode。模型从 PaliGemma 2 初始化，优化视觉塔、LLM、Ego3D MLP 和动作 token embedding；文本 token embedding 冻结，预训练最后三分之一阶段移除 DROID 数据。训练使用 64 张 A100、10 天、batch size 2048。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 入口是 &lt;code&gt;train/spatialvla_pretrain.py&lt;/code&gt;；默认 &lt;code&gt;freeze_llm_embed=True&lt;/code&gt;、&lt;code&gt;use_vision_zoe=True&lt;/code&gt;，数据通过 &lt;code&gt;data/dataset.py&lt;/code&gt; 构建 RLDS loader。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 推理时只使用当前帧和语言指令，不运行 ZoeDepth 之外的额外规划器。模型预测 4 步 action chunk，执行 ensemble 后再请求下一个 chunk；单张 RTX 4090 约需 8.5GB 显存，速度约 20Hz。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;processing_spatialvla.py&lt;/code&gt; 中 &lt;code&gt;action_token_num=3&lt;/code&gt;，按 &lt;code&gt;action_chunk_size&lt;/code&gt; 截取生成序列并调用 &lt;code&gt;decode_token_ids_to_actions&lt;/code&gt;；模型输出不足时会补零，因此部署时必须保证生成长度和 EOS 设置正确。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;| 论文描述 | 官方实现 | 需要注意的差异 |
| --- | --- | --- |
| 8194 个动作 token | &lt;code&gt;action_config.json&lt;/code&gt; 与 &lt;code&gt;SpatialActionTokenizer&lt;/code&gt; | 4096 平移 + 4096 旋转 + 2 夹爪 |
| Ego3D 位置编码 | &lt;code&gt;Ego3DPositionEmbeddingMLP&lt;/code&gt;、&lt;code&gt;backproject_patch&lt;/code&gt; | ZoeDepth 与 SigLIP 使用独立预处理 |
| 空间 token embedding | &lt;code&gt;SpatialVLAModel.spatial_embed_tokens&lt;/code&gt; | 推理前复制到语言模型 embedding 尾部 |
| 预训练 / 微调 | &lt;code&gt;spatialvla_pretrain.py&lt;/code&gt;、&lt;code&gt;spatialvla_finetune.py&lt;/code&gt; | 微调支持 LoRA 与 &lt;code&gt;adapt_emb&lt;/code&gt; |
| 新分布迁移 | tokenizer 的 &lt;code&gt;set_bins&lt;/code&gt; 与 embedding adaption 逻辑 | 需要提供新环境统计量，论文未给出自动校准脚本 |&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-spatialvla/experinment_overview.webp&quot; alt=&quot;SpatialVLA experiment overview from paper Figure 3&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 评估覆盖 7 类机器人学习场景、24 个真实机器人任务和 3 个模拟环境：SimplerEnv 的 Google Robot / WidowX 零样本，BridgeData V2 WidowX 实机，LIBERO 四个 suite，以及 Franka 新设置微调。空间理解任务专门改变物体布局、杯子高度、背景和动态干扰。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-spatialvla/windowx_zeroshot.webp&quot; alt=&quot;WidowX zero-shot evaluation from paper Figure 5&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 主要结果如下：&lt;/p&gt;
&lt;p&gt;| 评估 | SpatialVLA 结果 | 对比结论 |
| --- | ---: | --- |
| SimplerEnv Google Robot，zero-shot Visual Matching | 71.9% | 比 RoboVLM 高 15.6 个百分点；超过 RT-2-X 的 60.7% |
| SimplerEnv Google Robot，zero-shot Variant Aggregation | 68.8% | 使用 3.5B 参数，优于 RT-2-X 的 64.3%（55B） |
| SimplerEnv WidowX 总体成功率 | 34.4%（zero-shot）/ 42.7%（微调） | 高于 RoboVLM 的 13.5% / 31.3% |
| LIBERO 平均成功率 | 78.1% | 四个 suite 综合第一；LIBERO-Spatial 为 88.2% |&lt;/p&gt;
&lt;p&gt;在实机 WidowX 上，模型能在未见背景、物体姿态和人工移动干扰下保持较高成功率；在 Franka 上，单任务成功率约 82%，指令跟随比 OpenVLA 高 12 个百分点，多任务成功率 57%。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-spatialvla/action_grids.webp&quot; alt=&quot;Adaptive action grids from paper Figure 2&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在 Google Fractal + Bridge V2 混合数据上的预训练消融显示：完整模型在 &lt;code&gt;Move Near&lt;/code&gt; 上达到 79.2% Variant Aggregation / 85.4% Visual Matching；将动作改成线性 256 bins 后分别降至 47.1% / 52.9%，去掉 Ego3D 后为 66.7% / 62.0%。8194 分辨率优于 1026 和 4610，说明空间结构与足够分辨率同时重要。&lt;/p&gt;
&lt;p&gt;微调消融中，加入 Gaussian adaption 后 &lt;code&gt;Pick Coke Can&lt;/code&gt; Visual Matching 从 77.0% 提升到 86.0%，&lt;code&gt;Put Eggplant in Yellow Basket&lt;/code&gt; 成功率从 91.7% 提升到 100%。LIBERO 上，LoRA + Spatial Embedding Adaption 达到 Spatial 88.2%、Object 89.9%、Goal 78.6%、Long 55.5%，均高于仅 LoRA。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-spatialvla/spatial_setup.webp&quot; alt=&quot;Spatial understanding setups from paper Figure 7&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 空间理解测试包括“把离机器人最近的玩具放到车上”、改变杯子高度、改变锅高度等任务。SpatialVLA 在 Franka 空间指令任务达到 73% 准确率，并在 WidowX 的高度变化任务中显著超过基线。&lt;strong&gt;【Analysis】&lt;/strong&gt; 这些结果更直接验证了 Ego3D 的作用：任务要求的是相对距离和布局，而不是只识别物体类别。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 观测端的深度坐标为视觉 patch 提供了“在哪儿”，动作端的联合网格提供了“往哪儿移动”的结构；二者都在机器人无关的相机 / 空间坐标系中表达，减少了仅凭纹理学习的捷径。等概率 Gaussian 网格还把 token 容量集中到高频、细粒度运动上。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;真正的创新不是单独加入深度或改用更多 bins，而是把空间先验同时放入输入和输出，并让动作 token 的 embedding 可插值迁移。这样，预训练得到的不是某一台机器人的绝对动作表，而是一个可重新离散化的空间动作词典。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;OpenVLA / RT-2 采用每维独立标量分桶；SpatialVLA 将平移和旋转分别视为 3D 网格，token 索引保留坐标邻接。Octo/HPT 主要在网络模块或 embodiment stem 上对齐数据；SpatialVLA 直接对齐几何观测和动作表示。π0 使用连续 flow matching 解码，而 SpatialVLA 保留 VLM 自回归接口，以更少 token 换取约 20Hz 的推理速度。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;单目 ZoeDepth 的相对深度足以支持任务所需的空间关系；&lt;/li&gt;
&lt;li&gt;不同机器人在相机坐标系中的动作分布可以通过 Gaussian 和网格重新参数化；&lt;/li&gt;
&lt;li&gt;当前帧和短 action chunk 足以处理大多数短时操作，长时记忆不是主要瓶颈。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Gaussian 假设在单轴运动或噪声较大的数据上可能造成网格聚集，挤压其他方向的动作分辨率。作者建议未来结合 VAE 等隐式分布建模。自回归三 token 解码虽快，但仍慢于能并行输出动作的 diffusion decoder；模型只看当前帧和历史 token，在 LIBERO-Long 等长时任务上表现较弱。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; Ego3D 依赖 ZoeDepth 的单目深度质量，透明、反光和遮挡场景可能产生系统误差；动作网格统计需要新机器人数据，极少样本时 Gaussian 参数会不稳定。论文没有报告动作网格数量、统计量变化与成功率之间的完整敏感性曲线，也未证明相机内参误差对跨平台迁移的容忍度。&lt;/p&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;SpatialVLA 给出的重要信号是：VLA 的“通用性”可以从表示层获得，而不一定要继续堆大语言模型参数。后续工作可以沿三个方向推进：用混合密度或 normalizing flow 替代单一 Gaussian；把离散空间 token 与 diffusion / flow action head 结合；引入历史帧或显式 3D memory 解决长时任务。对实际部署者而言，先记录目标机器人动作统计量，再做 embedding 插值，可能比从头微调整个 VLA 更节省数据。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/56422576_p0_master1200.7i0z6ufn65.webp"/><enclosure url="https://pic.hana0721.top/56422576_p0_master1200.7i0z6ufn65.webp"/></item><item><title>Spatial Traces 论文精读：把时间轨迹写进深度图的 ST-VLA</title><link>https://agusexp25.top/blog/paper-deep-dive-spatial-traces</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-spatial-traces</guid><description>精读 Spatial Traces：将关键点历史轨迹投影到预测深度图，让 SpatialVLA 同时利用三维位置与运动历史；分析其少样本 SimplerEnv 实验、消融与局限。</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;论文名称&lt;/strong&gt;：《Spatial Traces: Enhancing VLA Models with Spatial-Temporal Understanding》&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;作者&lt;/strong&gt;：Maxim A. Patratskiy、Alexey K. Kovalev、Aleksandr I. Panov&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;发表形式&lt;/strong&gt;：arXiv 预印本（2025）&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;论文链接&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2508.09032&quot;&gt;arXiv&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;项目页&lt;/strong&gt;：&lt;a href=&quot;https://ampiromax.github.io/ST-VLA&quot;&gt;ST-VLA&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-spatial-traces/st-vla-architecture.webp&quot; alt=&quot;ST-VLA 总体架构：轨迹与深度图融合后同 RGB、语言一并送入 VLA（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Spatial Traces 不改变 VLA 的动作头，而是将过去观测中追踪到的关键点轨迹覆盖到当前预测的深度图，再将这个带轨迹的深度表征与当前 RGB 表征相加。它试图让模型在同一个视觉提示中回答两个互补问题：末端与物体在三维上“在哪里”，以及刚才“怎样运动过来”。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;提出 Spatial Traces visual prompting：用 Co-Tracker 从历史帧构造关键点轨迹，并按深度写入当前深度图，统一编码时间与空间信息。&lt;/li&gt;
&lt;li&gt;在 SpatialVLA 的组件组合上构建 ST-VLA：SigLIP 编码当前 RGB，ZoeDepth 预测深度，Ego3D Positional Encoder 编码带轨迹的深度，二者的视觉 embedding 相加后条件化 PaliGemma2 风格的 VLA。&lt;/li&gt;
&lt;li&gt;只用 Bridge 训练集中的 52 条轨迹（1,969 个真实环境步骤）作 LoRA 微调，在 SimplerEnv 四项任务上报告相对 SpatialVLA 平均 SR 高 4 个百分点、相对 TraceVLA 高约 19 个百分点。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这篇工作的要点不是“记住更多帧”，而是把历史压缩成一个与当前视角对齐的中间表征。与将多帧原样堆叠相比，这会控制 token 和上下文长度；代价是把有效信息的上限交给了深度估计与点追踪质量。&lt;/p&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 许多 VLA 以当前视觉观测与语言指令预测动作，即 $a_t = \operatorname{VLA}(o_t, I)$。这类单帧条件化策略可以辨识场景，但很难从当前一张图分辨“静止的错误姿态”和“正沿正确方向移动的过程”。操控中的旋转、抓取后校正、遮挡恢复，常常需要这种时间上下文。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 空间路线以 SpatialVLA 为代表：利用 RGB-D、egocentric geometry 和 Ego3D positional encoding，使模型获得位置和几何线索；但它主要处理静态观测。时间路线如 TraceVLA 则把 Co-Tracker 轨迹绘到 RGB 图上，额外保留原图输入，以轨迹提示历史运动；但它没有显式的深度定位。Spatial Traces 的定位正是把两条路线放到同一张 depth prompt 中。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这里“空间 + 时间”不是简单地多加一个模态。轨迹只有二维像素坐标时，模型知道它移动过，却未必知道其与桌面、目标物的前后关系；单独的深度图反过来只描述此刻。将轨迹写入深度图，相当于让每个轨迹像素携带一个可被空间编码器读取的位置线索。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文把语言条件下的操控任务写作&lt;/p&gt;
&lt;p&gt;$$
\mathcal P = (S, O, A, T_F, S_I, S_G, I),
$$&lt;/p&gt;
&lt;p&gt;其中 $S$、$O$、$A$ 分别是状态、观测与动作空间，$T_F$ 是状态转移，$S_I$ 和 $S_G$ 是初始与目标状态，$I$ 是文本指令。策略需输出动作序列，使 $T_F(S_I, [a_0, \ldots, a_N]) = S_G$。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 该方法在时刻 $t$ 使用大小为 $b$ 的观测缓冲区 $[o_{t-b+1}, \ldots, o_t]$ 与指令 $I$ 预测相对三维位移动作 $a_t$。Figure 1 的实验配置使用 30 张历史观测；$b$ 也是实验中改变的消融变量。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文文字称以动作预测与训练集真值之间的 MSE 为目标，但紧随其后的写法是 $\theta^* = \arg\max_\theta \mathbb E[\operatorname{MSE}(\operatorname{VLA}_\theta)]$。最大化 MSE 与前一句“minimize”相冲突；将其理解为最小化监督误差才与问题设定一致，论文未给出更精确的损失展开。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 输入由当前 RGB 观测、最近 $b$ 个观测构成的缓存，以及语言指令组成。缓存分别流向轨迹预测器 $M_T$，当前帧流向深度预测器 $M_D$ 和 RGB 图像处理器 $P_I$；带轨迹的深度经空间处理器 $P_D$ 编码。两条视觉 embedding 相加后，与语言 embedding 一起输入 VLA 并输出下一动作。&lt;/p&gt;
&lt;p&gt;整体数据流可概括为：&lt;code&gt;历史 RGB → 轨迹；当前 RGB → 深度；轨迹写入深度 → 深度/RGB 特征相加 → VLA 动作&lt;/code&gt;。训练与在线执行的逐步流程分别见 4.4、4.5。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;轨迹与深度提示（Spatial Traces）&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Co-Tracker 根据缓冲区内的图像追踪 $m$ 个关键点，得到&lt;/p&gt;
&lt;p&gt;$$
T_t = [t_1, \ldots, t_m], \qquad
t_i = [(x_0, y_0), \ldots, (x_b, y_b)].
$$&lt;/p&gt;
&lt;p&gt;每条 $t_i$ 是同一点跨时间的二维坐标序列。ZoeDepth 从当前观测估计深度图 $D_t$。将轨迹坐标对齐到当前深度图并写入后得到 $D_t^T$；论文将该操作记为 $D_t^T = D_t \leftarrow T_t$。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 为减少相邻帧几乎不变时 Co-Tracker 不能立即找到显著点的影响，前五个环境步骤不提供 trace。这个设计意味着方法在 episode 开始时退化为不含时间提示的空间/视觉输入，而不是假装有可靠历史。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-spatial-traces/st-vla-trace-variants.webp&quot; alt=&quot;三种轨迹写入深度图的方式：自身帧深度（A）、前一帧深度（B）、当前帧最近物体深度（C），论文 Figure 7）&quot;&gt;&lt;/p&gt;
&lt;h4&gt;双路视觉编码与融合&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 原始 RGB 由 SigLIP 图像处理器 $P_I$ 得到 $E_{O_t}$；带轨迹深度图由 SpatialVLA 引入的 Ego3D Positional Encoder 得到 $E_{D_t^T}$。二者逐元素相加：&lt;/p&gt;
&lt;p&gt;$$
E_V = E_{O_t} + E_{D_t^T}.
$$&lt;/p&gt;
&lt;p&gt;随后模型将 $E_V$ 与文本指令 embedding $E_I$ 送入 VLA。论文的具体动作模型基于 PaliGemma2，并从 SpatialVLA 实验所用 checkpoint 初始化。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 加和融合是一个很强的结构假设：两条 encoder 的输出必须位于可直接叠加的表示空间。它带来低改动、低 token 开销的优势，但不像 cross-attention 那样能显式决定“此时更信 RGB 还是深度轨迹”。后文的失败案例表明，轨迹弱时该假设无法自动补回缺失的时间证据。&lt;/p&gt;
&lt;h4&gt;轨迹深度的 Type A / B / C&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Type A 把轨迹像素赋为其对应历史观测中的深度；Type B 使用前一观察的深度，往往接近背景深度；Type C 则取当前深度图中最近物体的深度。论文因 Type B 不够有信息量而未将它纳入后续测试，比较 A 与 C。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-spatial-traces/st-vla-depth-traces.webp&quot; alt=&quot;当前深度图、原始轨迹与写入后的轨迹深度示例（论文 Figure 8）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 因此策略从单帧条件化&lt;/p&gt;
&lt;p&gt;$$
a_t = \operatorname{VLA}(o_t, I)
$$&lt;/p&gt;
&lt;p&gt;改写为带历史的条件化：&lt;/p&gt;
&lt;p&gt;$$
a_t = \operatorname{VLA}([o_{t-b+1}, \ldots, o_t], I)
= \operatorname{VLA}(E_V, E_I).
$$&lt;/p&gt;
&lt;p&gt;其中 $o_t$ 为当前观测，$I$ 为自然语言任务，$E_V$ 为融合视觉特征，$E_I$ 为语言特征。等号左侧表达“历史作为输入”，右侧表达其在实现中先被压缩为视觉 embedding；它们不是要求 VLA 接收原始 30 帧 token 的两种并行输入。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 微调数据来自 Bridge 的训练切分：52 条真实机器人遥操作轨迹，共 1,969 步。所有模型使用相同随机种子与样本顺序，以维持与 SpatialVLA、TraceVLA 的可比性。训练在全部线性层插入 LoRA，rank 为 32；使用 AdamW、学习率 $5\times10^{-5}$、batch size 1、2 个 epoch。单个模型在一张 NVIDIA TITAN RTX 上训练约两小时。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; “仅更新 adapter 参数”来自 LoRA 的常规参数高效微调机制；论文明确给出 LoRA 施加位置，但未逐层列出冻结参数清单，也未公开训练脚本，因而无法进一步确认哪些非线性层或归一化参数是否可训练。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 每个控制时刻，系统维护最近 $b$ 张观测，重新计算关键点轨迹与当前深度图，并通过同一融合路径预测相对三维位移动作。论文未明确说明控制频率、动作离散化细节或是否进行 action chunking；这些信息不能从论文中确定。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方仓库 &lt;a href=&quot;https://github.com/AmpiroMax/ST-VLA&quot;&gt;AmpiroMax/ST-VLA&lt;/a&gt; 的默认分支为 &lt;code&gt;master&lt;/code&gt;，仓库仅有 &lt;code&gt;README.md&lt;/code&gt; 与 &lt;code&gt;index.html&lt;/code&gt; 两个文件：前者只写有 &lt;code&gt;# st-vla.github.io&lt;/code&gt;，后者是项目页文本，说明 ST-VLA 是“augmented with spatial traces”的操控 VLA，并标注 “More details coming soon.”。截至本次核验，仓库没有模型、数据集、训练、推理、评测、配置或 checkpoint 文件。&lt;/p&gt;
&lt;p&gt;| 论文中应有的部分                                  | 官方仓库核验结果             | 可确认结论                                            |
| ------------------------------------------------- | ---------------------------- | ----------------------------------------------------- |
| Co-Tracker / ZoeDepth / Ego3D / PaliGemma2 的组装 | 未提供源码                   | 只能以论文描述为准，无法核对调用、版本或预后处理      |
| LoRA 训练与 MSE 目标                              | 未提供训练脚本或配置         | 无法确认实际 loss、冻结参数、epoch 调度与随机种子实现 |
| 缓冲区、前五步无 trace、Type A/C 渲染             | 未提供推理代码               | 无法确认边界条件、时延或实时控制频率                  |
| SimplerEnv 评测与结果复现                         | 未提供 eval 脚本、数据或权重 | 无法由官方仓库独立复现文中数值                        |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 因而本文的“代码对照”结论是代码发布尚未完成，而不是“代码与论文一致”。这一区别很重要：论文给出了足够清晰的系统层设计，但工程可复现性、依赖版本与训练细节仍是开放问题。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 评测环境是建立在 Robosuite 之上的 SimplerEnv。任务来自 Bridge 数据分布，包含 Put Spoon、Put Carrot、Stack Blocks、Put Eggplant 四项。GCS（Goal Condition Success）衡量是否达到基础完成条件，例如使目标物离开桌面；SR（Success Rate）要求完成所有任务阶段并达到最终目标状态，因此比 GCS 更严格。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-spatial-traces/st-vla-simplerenv-tasks.webp&quot; alt=&quot;SimplerEnv 中的四类 Bridge 任务与语言指令示例（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 对比方法包括 OpenVLA、RT-1-X、Octo、Octo-Small、RoboVLM、SpatialVLA 和 TraceVLA。前五项 baseline 的数值取自 SpatialVLA 论文；SpatialVLA、TraceVLA 与 ST-VLA 在本文的相同训练和后处理流程下比较。因而跨越这两组的绝对比较需谨慎，而 ST-VLA 对 SpatialVLA / TraceVLA 的相对比较最直接。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-spatial-traces/st-vla-main-results.webp&quot; alt=&quot;各方法的平均 GCS 与 SR；ST-VLA 在图中最高（论文 Figure 4）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 四任务逐项结果中，ST-VLA 的 GCS 分别为 36.4、50.0、90.9、81.8；SR 分别为 36.4、25.0、36.4、54.5。SpatialVLA 的平均 GCS / SR 为 50.0 / 34.1，ST-VLA 在 Figure 4 中为 64.8 / 38.1，故对应提升为 14.8 与 4.0 个百分点。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; ST-VLA 在 Put Spoon、Put Carrot 与 Stack Blocks 的 GCS 上最好；Put Eggplant 的 SR 为 54.5，低于 TraceVLA 的 72.7。也就是说，空间—时间融合并非每一项指标都占优，尤其在最后任务上 TraceVLA 的时间提示仍更强。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 论文摘要把 ST-VLA 相对 TraceVLA 的 SR 提升概括为 19%。正文写为 18.7%，而 Figure 4 的数值为 $38.1-19.9=18.2$ 个百分点；这些四舍五入/汇总口径未完全一致。文章的稳妥结论应是“约 18–19 个百分点”，不应把它解释为精确的相对百分比增长。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 缓冲区消融比较 7、15、30 帧。30 帧在 Stack Blocks 与 Put Eggplant 上取得最高 GCS，也在 Put Spoon、Stack Blocks、Put Eggplant 上取得最高或并列最高 SR；7 帧在 Put Spoon 的 GCS 为 54.5，15 帧在 Put Carrot 的 SR 为 36.4。论文据此认为长历史更稳定，但没有声称 30 帧在每个单项指标都最优。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 轨迹深度渲染消融比较 Type A 与 Type C、buffer 15 与 30。作者解释 Type C 的统一深度值更易从背景中区分，结论是其优于 Type A；但表格内存在任务依赖性，例如 Type A、buffer 15 在 Stack Blocks 的 GCS / SR 为 90.9 / 36.4，优于 Type C、buffer 15 的 72.7 / 9.1。因此“Type C 更好”应理解为作者的整体偏好，而不是对每个格子都严格支配。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 为排除“小数据微调本身”带来的收益，论文还对比 base model、只微调、零样本 traces 与 ST-VLA。只在 Bridge 小样本上微调使平均 SR 下降 10 个百分点；零样本 traces 的平均 SR 下降 6.8 个百分点；ST-VLA 的联合方案最高。这支持 visual prompt 与微调协同、而非只由微调驱动收益的解释。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文展示的泛化证据是：用很小的 Bridge 子集微调，仍能在 SimplerEnv 的四种操控任务和不同初始物体状态下取得改善。Put Spoon 的案例中，ST-VLA 在中途受阻后仍完成抓取与放置。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这不等价于真实机器人、跨本体或开放世界泛化。实验没有报告实机闭环成功率，也没有报告跨相机、跨机械臂、跨场景或跨语言指令的独立测试；因此应将结论限定为受控模拟基准下的少样本适应性。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 对相机而言，单帧中的夹爪位置、目标物关系常有歧义。轨迹提供运动方向和已走路径，深度则给出接近/远离、桌面层级与相对几何。把它们在像素对齐的 depth map 上结合，等于将“过去的运动”落在“当前的空间坐标系”中；这正适合放置、绕物旋转等需要判断状态变化的动作。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 关键创新是 &lt;em&gt;depth-conditioned trace rendering&lt;/em&gt;，而非引入新的大型 VLA 或将 Co-Tracker、ZoeDepth 本身训练得更好。它以 visual prompting 的方式复用 SpatialVLA 既有的深度编码接口，使时序信息在前端预处理阶段进入模型。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;| 方法       | 时间线索           | 空间线索       | 融合位置                                  |
| ---------- | ------------------ | -------------- | ----------------------------------------- |
| SpatialVLA | 当前帧为主         | RGB-D 与 Ego3D | 模型内部的空间表征                        |
| TraceVLA   | RGB 上的关键点轨迹 | 无显式深度提示 | 原图与带轨迹图作为视觉提示                |
| ST-VLA     | 历史关键点轨迹     | 当前预测深度图 | 先把轨迹写入深度，再与 RGB embedding 相加 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 因此 ST-VLA 是表示层的“对齐融合”：它不要求 VLA 学会从两套未对齐输入中自行关联轨迹与几何，而先以渲染规则固定对应关系。这也解释了为何渲染规则 Type A/C 是决定性能的关键超参数。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 方法依赖四个假设：当前深度预测足够可靠；Co-Tracker 能找到稳定且有任务意义的点；二维轨迹写入的深度值不会严重遮挡目标；以及 RGB 与 Ego3D depth embeddings 可以安全相加。任一假设失效时，额外提示可能是噪声而不是记忆。&lt;/p&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文指出效果依赖准确的深度预测与能够发现显著点的轨迹生成。当连续图像变化很小，Co-Tracker 可能生成很短甚至没有轨迹；Put Carrot 的失败案例中，夹爪慢速旋转就造成该问题。轨迹还可能遮挡目标物，妨碍可见性与距离估计；当机械臂直接向相机移动时，轨迹也未必提供足够的交互线索。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 第一，论文只在 SimplerEnv 验证，深度、相机运动模糊、追踪丢失在真实机器人上往往更难。第二，前五步禁用轨迹是务实但固定的 warm-up 策略，若任务在开局就要求快速决策，它没有自适应地判断“是否已有可信运动证据”。第三，论文没有报告每步追踪和深度估计的端到端时延，实时控制可行性仍未被量化。第四，少量 52 条轨迹对成本很友好，却也使统计稳定性与任务覆盖范围受限。&lt;/p&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 我认为 Spatial Traces 最值得延伸的方向有三条：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;用置信度门控替代固定相加：让模型根据 depth uncertainty、轨迹长度和遮挡率，动态决定深度轨迹 embedding 的权重。&lt;/li&gt;
&lt;li&gt;从 2D 绘制升级到可维护的 3D scene memory：论文也提出考虑 3D reconstructed observations。这样历史点不必每一步重新“贴”到当前图上，可更自然地处理视角变化与遮挡。&lt;/li&gt;
&lt;li&gt;以任务相关关键点取代通用稠密追踪：抓取点、接触点、物体边界和夹爪 tip 对控制价值不同，若由语言/任务引导追踪点选择，提示可能更少但更有效。&lt;/li&gt;
&lt;/ol&gt;</content:encoded><h:img src="https://pic.hana0721.top/104786218_p0_master1200.8vnievbkwk.webp"/><enclosure url="https://pic.hana0721.top/104786218_p0_master1200.8vnievbkwk.webp"/></item><item><title>SLIM-0.5B 论文精读：用 action-grounded predictive latents 做紧凑机器人策略</title><link>https://agusexp25.top/blog/paper-deep-dive-slim</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-slim</guid><description>精读 SLIM：以逆/前向动力学联合预训练 MoT latent，再以 flow matching 输出连续动作，在不做具身预训练下兼顾鲁棒性与低延迟。</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;论文名称&lt;/strong&gt;：《SLIM-0.5B: Learning Action-Grounded Predictive Latents for Robot Manipulation》&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;作者 / 机构&lt;/strong&gt;：Jingkai Wang、Zihan Tang 等，复旦大学、北京智源人工智能研究院、清华大学、中国人民大学。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;论文与代码&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2608.09771&quot;&gt;arXiv&lt;/a&gt; · &lt;a href=&quot;https://kzz1031.github.io/slim-project-page/&quot;&gt;Project Page&lt;/a&gt; · &lt;a href=&quot;https://github.com/kzz1031/SLIM&quot;&gt;官方代码&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; SLIM（Self-supervised Latent Interaction Model）用 0.47B 参数的两流
Mixture-of-Transformers（MoT）替代大 VLM 或像素级 world model：先在轨迹中用互补的
inverse dynamics（IDM）与 forward dynamics（FDM）学习 action-grounded predictive latents，
再以 flow matching 根据当前观测、语言和本体状态生成动作 chunk；部署时不生成未来图像。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;将控制主体放在 observation latent 与连续 action token 的交互上，而不是每步运行大型 VLM，得到 0.47B 的紧凑策略。&lt;/li&gt;
&lt;li&gt;提出 masked trajectory prediction：IDM 从当前/未来 latent 还原动作，FDM 从当前 latent 与动作预测未来 latent，使表征同时满足两个方向的动力学约束。&lt;/li&gt;
&lt;li&gt;在原始 LIBERO 训练、不接触 LIBERO-Plus 数据的前提下，报告 97.5% 的 LIBERO 成功率与 77.45% 的零样本 LIBERO-Plus 成功率；CALVIN ABC→D 的平均成功序列长度为 4.556。&lt;/li&gt;
&lt;li&gt;真实五任务、多任务混合训练中，SLIM 的平均 progress score 为 67.8，并在论文控制的 H100 测试里以 60.6 ms/chunk、4.26 GiB 增量显存运行。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 大型 Vision-Language-Action（VLA）策略把视觉、语言与动作放入同一多模态骨干，能利用广泛语义先验，但动作引起的状态变化通常只由动作监督隐式学得。另一端，world action model（WAM）直接预测未来图像或视频—动作轨迹，动力学建模更显式，却要拟合纹理、光照等控制无关细节；若推理阶段还 rollout future，会增加闭环延迟。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; SLIM 的切入点是 latent-space prediction：未来不是额外要生成的视觉输出，而是训练时塑造控制表征的目标。它与 JEPA 一样预测 embedding 而非像素，但额外要求 latent 对机器人动作“可解释、可预测”。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这并非简单缩小 VLA。关键取舍是把语言从 joint attention 序列中拆出，作为两个 stream 的 cross-attention 条件；主计算预算留给“当前状态—候选动作”的交互，因此更贴近 manipulation 的局部闭环需求。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在时刻 $t$，策略接收语言指令 $y$、多视角 RGB 观测 $o_t$ 与 proprioceptive state $q_t$。T5-small 将语言编码为 $\ell=g_{\mathrm{lang}}(y)$，DINOv2 视觉编码器将观测编码为 $N_z$ 个 latent：&lt;/p&gt;
&lt;p&gt;$$
Z_t=g_\psi(o_t)\in\mathbb{R}^{N_z\times d_z}.
$$&lt;/p&gt;
&lt;p&gt;策略输出长度为 $H$ 的连续动作 chunk：&lt;/p&gt;
&lt;p&gt;$$
A_t=(a_t,\ldots,a_{t+H-1}).
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 动作不做离散 tokenization；MoT 直接处理连续动作向量嵌入。训练第一阶段还可访问 $o_{t+H}$，得到 online latent $Z_{t+H}$ 与 EMA target $\bar Z_{t+H}$；第二阶段和部署阶段均不输入未来观测。&lt;/p&gt;
&lt;p&gt;| 要素                  | SLIM 的具体选择                              |
| --------------------- | -------------------------------------------- |
| Vision encoder        | DINOv2-B/14                                  |
| Language encoder      | T5-small                                     |
| 控制状态              | 多视角视觉 patch latents + 7D proprioception |
| Action representation | 连续 7D action、chunk prediction             |
| Policy                | 16 层、hidden dim 768 的 two-stream MoT      |
| 训练目标              | Stage 1：IDM + FDM；Stage 2：flow matching   |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 默认 LIBERO 配置使用两路图像、224px 输入、&lt;code&gt;dense_patch&lt;/code&gt; 视觉条件、$H=8$、4 个推理采样步；语言最大长度为 32 token，代码位于 &lt;code&gt;configs/libero/stage1_idm0125_fdm1_h8.yaml&lt;/code&gt; 与 &lt;code&gt;stage2_policy_h8_40ep.yaml&lt;/code&gt;。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-slim/architecture.9ddp9bfzqo.webp&quot; alt=&quot;SLIM 的 MoT 双流骨干：observation/action joint attention，分别对语言做 cross-attention（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 视觉 latent 与一个状态 token 组成 observation stream；带 flow timestep 的连续动作嵌入组成 action stream；两流在每层共享 joint attention，再各自对语言做 cross-attention 和 FFN。future-slot embeddings $M_z$ 占据未来 latent 的位置，供 FDM 与策略阶段使用。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 数据流只需概括为：当前 observation latent、状态、语言和 action variable 进入 MoT，MoT 输出动作速度场或未来 latent；训练/部署的完整流程分别见 4.4、4.5。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;两流 MoT：让动作有机会读取状态，而不让语言主导控制&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; observation 与 action token 分别具有独立的 $Q,K,V$ 投影、AdaLN 和 FFN，但在同一个 attention 中交互。语言不混入该 attention，而是每个 stream 单独 cross-attend 到语言 token。动作 flow sampling 时，观测/语言保持固定，反复更新的是 action stream。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;slim/model/slim_transformer.py&lt;/code&gt; 的 &lt;code&gt;SLIMBlock&lt;/code&gt; 正是该分工：&lt;code&gt;forward_action_only()&lt;/code&gt; 缓存状态和语言的 K/V，仅在每个采样步更新 action token。这解释了论文低延迟的一个工程来源，而不仅是参数量更小。&lt;/p&gt;
&lt;h4&gt;IDM：由状态变化反推动作&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 将干净动作 $A_t$ 与高斯噪声 $\epsilon$ 插值为带噪动作 $\tilde A_t^\tau$。MoT 观察 $Z_t,Z_{t+H},q_t,\ell$ 与带噪动作，预测其 velocity。因为未来 latent 是可见条件，模型要回答“什么动作造成了这次变化”。&lt;/p&gt;
&lt;h4&gt;FDM：由当前状态和动作预测未来 latent&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; FDM 用 learnable mask slots $M_z$ 替换未来位置，只给出 $Z_t,A_t,q_t,\ell$，预测 $\hat Z_{t+H}$；目标来自 stop-gradient 的 EMA encoder。它迫使未来表示保留可被当前状态与动作预测的成分，而不是重建所有像素细节。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-slim/idm-fdm.39lx6vdbfy.webp&quot; alt=&quot;IDM、FDM 与目标专用 attention mask（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 两个目标构成一个有用的“夹逼”：只做 IDM 可能学习与数据集动作相关、却不稳定的捷径；只做 FDM 又可能把动作忽略为平均未来。两者共享 MoT，才要求同一个空间既能区分动作，也能保留动作可预测的变化。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;Flow matching 的插值与目标速度&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 对 $\epsilon\sim\mathcal N(0,I)$ 和 $\tau\sim U(0,1)$：&lt;/p&gt;
&lt;p&gt;$$
\tilde A_t^\tau=(1-\tau)\epsilon+\tau A_t,\qquad V_t^*=A_t-\epsilon.
$$&lt;/p&gt;
&lt;p&gt;$\tilde A_t^\tau$ 是时刻 $\tau$ 的带噪 action chunk，$V_t^*$ 是从噪声端流向数据端的目标速度。$v_\theta$ 不是直接回归动作，而是回归该速度，推理时积分得到动作。&lt;/p&gt;
&lt;h4&gt;Stage 1 的双向动力学损失&lt;/h4&gt;
&lt;p&gt;$$
\mathcal L_{\mathrm{IDM}}=
\mathbb E\left[\left|v_\theta(\tilde A_t^\tau,\tau\mid Z_t,Z_{t+H},q_t,\ell)-V_t^*\right|_2^2\right],
$$&lt;/p&gt;
&lt;p&gt;$$
\hat Z_{t+H}=p_\theta(M_z\mid Z_t,A_t,q_t,\ell),\qquad
\mathcal L_{\mathrm{FDM}}=
\left|\operatorname{LN}(\hat Z_{t+H})-
\operatorname{LN}(\operatorname{sg}(\bar Z_{t+H}))\right|_1,
$$&lt;/p&gt;
&lt;p&gt;$$
\mathcal L_{\mathrm{stage1}}=\lambda_{\mathrm{IDM}}\mathcal L_{\mathrm{IDM}}
+\lambda_{\mathrm{FDM}}\mathcal L_{\mathrm{FDM}}.
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; $\operatorname{sg}$ 阻断 EMA target 的梯度，LN 令目标与预测在归一化空间比较。论文最佳联合权重为 IDM:FDM = 0.125:1。&lt;/p&gt;
&lt;h4&gt;部署一致的策略目标&lt;/h4&gt;
&lt;p&gt;$$
\mathcal L_{\mathrm{stage2}}=\mathcal L_{\mathrm{FM}}=
\mathbb E\left[\left|v_\theta(\tilde A_t^\tau,\tau\mid Z_t,M_z,q_t,\ell)-V_t^*\right|_2^2\right].
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Stage 2 中真实 $Z_{t+H}$ 不再出现；它被 Stage 1 学得的 predictive slots $M_z$ 取代。因此“预测未来”只作为训练归纳偏置，不成为推理时的额外生成任务。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 阶段一从机器人轨迹自监督学习：IDM 可见当前和未来观测、FDM 可见当前观测和干净动作；阶段二由阶段一权重初始化，仅使用当前观测、状态、语言和示教动作训练可部署的 flow policy。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 默认 Stage 1 训练 3 epochs，EMA momentum 为 0.999，global batch size 为 128（8 GPU × 每卡 16）；Stage 2 训练 40 epochs。两阶段均采用 AdamW、cosine schedule、action model LR $10^{-4}$、vision encoder LR $10^{-5}$，并把 bias/norm 参数排除在 weight decay 之外。训练入口分别是 &lt;code&gt;slim/training/stage1.py&lt;/code&gt;、&lt;code&gt;slim/training/stage2.py&lt;/code&gt;。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 部署只需当前多视角观测、proprioception 和语言。future slots 是学习到的常量 token，不需要相机看到未来，也不生成未来帧。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;SLIMModel.predict_action()&lt;/code&gt; 仅编码当前 &lt;code&gt;image&lt;/code&gt;、&lt;code&gt;state&lt;/code&gt; 和语言，然后调用 &lt;code&gt;action_model.predict_action()&lt;/code&gt;；默认配置为 4 个 inference steps。&lt;code&gt;SLIMBlock.forward_action_only()&lt;/code&gt; 复用 context K/V，避免每个采样步重算状态与语言分支。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;| 论文概念                    | 官方实现                               | 可核对的行为                                                                                        |
| --------------------------- | -------------------------------------- | --------------------------------------------------------------------------------------------------- |
| DINOv2 online / EMA encoder | &lt;code&gt;slim/model/slim_model.py&lt;/code&gt;             | online encoder 可反传；EMA encoder 不接收梯度，Stage 1 后每个优化步更新                             |
| MoT 双流及语言注入          | &lt;code&gt;slim/model/slim_transformer.py&lt;/code&gt;       | state/action 各自 QKV、FFN、cross-attention，共享 joint attention                                   |
| 两阶段数据差异              | &lt;code&gt;slim/training/stage1.py&lt;/code&gt;、&lt;code&gt;stage2.py&lt;/code&gt; | Stage 1 的 DataLoader 要求 &lt;code&gt;future_image&lt;/code&gt;；Stage 2 显式 &lt;code&gt;include_future_image=False&lt;/code&gt;                |
| 连续动作与归一化            | &lt;code&gt;slim/data/dataset.py&lt;/code&gt;、LIBERO 配置    | 7D action、$H=8$，默认分位数 &lt;code&gt;q01_q99&lt;/code&gt; 归一化                                                       |
| 可复现实验检查点            | &lt;code&gt;README.md&lt;/code&gt;                            | 发布了 LIBERO epoch 40 与 CALVIN epoch 15 checkpoint，并要求保留 &lt;code&gt;config.yaml&lt;/code&gt;、&lt;code&gt;action_stats.json&lt;/code&gt; |&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-slim/experiment-settings.6po8yymyq4.webp&quot; alt=&quot;SLIM 的真实世界、LIBERO/LIBERO-Plus 与 CALVIN ABC→D 评测设置（论文 Figure 4）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; LIBERO 包含 Long、Spatial、Object、Goal 四个 suite；LIBERO-Plus 在其上加入相机、初始机器人状态、语言、光照、背景、噪声、布局七类扰动，SLIM 只以原始 LIBERO 数据训练并零样本测试。CALVIN 在 A/B/C 训练环境中训练、在未见的 D 环境中进行最多五条指令的长程组合评测。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 真实世界为五种任务：胡萝卜入碗、叠三盘、把吐司从烤面包机取出放盘、叠积木、擦白板。每项 150 条示教，共 750 条，多任务混合训练；每个任务—条件组合测试 10 次，并考察 nominal、distractor、lighting、background 四种条件。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 主要数字应按评测协议解读：LIBERO 是成功率，LIBERO-Plus 是对同一 checkpoint 的零样本鲁棒性成功率，而 CALVIN 主指标是平均连续成功指令数，不能与前两者直接相减比较。&lt;/p&gt;
&lt;p&gt;| Benchmark / 指标              |               SLIM |                                               论文列出的强对照 |
| ----------------------------- | -----------------: | -------------------------------------------------------------: |
| LIBERO overall success        |              97.5% |                              Fast-WAM 97.6%，OpenVLA-OFT 97.1% |
| LIBERO-Plus zero-shot overall |             77.45% |                              VLA-JEPA 79.5%，OpenVLA-OFT 69.6% |
| CALVIN ABC→D Avg. Length      |          4.556 / 5 |                                   FLOWER 4.53，UnifiedVLA 4.41 |
| 真实世界平均 progress         |               67.8 |                                $\pi_{0.5}$ 56.8，Fast-WAM 40.0 |
| H100 latency / VRAM           | 60.6 ms / 4.26 GiB | $\pi_{0.5}$ 193.1 ms / 7.94 GiB；Fast-WAM 360.6 ms / 13.63 GiB |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; SLIM 在 LIBERO-Plus 并非所有扰动均最好：例如 robot initial-state shift 为 36.90%，低于表中 VLA-JEPA 的 67.7%。更准确的结论是其整体鲁棒性强且计算效率突出，而不是在每种 OOD 偏移上全面领先。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-slim/realworld-bars.7lkqeewndo.webp&quot; alt=&quot;真实世界各条件下的平均 progress score（论文 Figure 6）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-slim/ablation.73uoptv9rr.webp&quot; alt=&quot;Stage 1、IDM:FDM 权重和 EMA target 的消融（论文 Figure 7）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 加上 Stage 1 后，LIBERO-Plus 从约 68.2% 升至 77.45%，CALVIN 从约 4.43 升至约 4.52；IDM:FDM = 0.125:1 给出最好的联合结果，极端权重更差。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; EMA target 是必要的稳定器：没有 EMA 时，LIBERO-Plus 从 77.45% 降至 66.82%，CALVIN 从 4.556 降至 4.382。表征有效秩从 61.28 降至 13.95，而 token cosine similarity 从 0.071 升到 0.352；虽然 future-latent MSE 反而更低（0.245→0.166），论文将其解释为低秩坍塌下更容易拟合的退化 target。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 泛化证据有三层：LIBERO-Plus 的七类零样本扰动、CALVIN 的未见环境 D 及长程指令组合、真实环境中背景/光照/干扰物变化。它们说明预测 latent 的收益没有仅停留在原始 LIBERO 分布内。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这些证据仍集中于桌面操作和单一模型尺度；它们支持“latent interaction 对这些分布有用”，但尚不足以证明跨机器人形态、开放词汇指令或大规模跨具身数据下仍有相同的 scaling 优势。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; SLIM 将“动作是否合理”转写成两个可学习问题：它是否解释当前到未来的变化（IDM），以及该变化是否能由状态和动作预测（FDM）。这比只从 $o_t$ 做行为克隆提供更密集的结构约束，又不像像素预测那样要求模型分配容量给纹理重建。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; EMA target 防止 encoder 与 predictor 共同快速漂移到常量或低秩表示；消融中的有效秩和性能同时下降，是这个机制必要性的直接支持。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 创新不是“使用 flow matching”本身，也不是单独使用 future latent，而是将 inverse/forward masked prediction 放入部署时同一 MoT，并让 Stage 2 用 future slots 替代真实未来 latent。由此，训练时显式注入 dynamics，推理时仍保持当前观测到动作的短路径。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;| 路线         | 主要表征 / 推理负担                                 | SLIM 的差异                                                         |
| ------------ | --------------------------------------------------- | ------------------------------------------------------------------- |
| 大型 VLA     | 大 VLM 主导每步控制                                 | 将主干换成紧凑 observation-action interaction，语言为条件而非主序列 |
| 像素级 WAM   | 预测 future frame/video，可能 test-time imagination | 仅训练期预测 latent；部署不生成未来视觉                             |
| JEPA 式预测  | embedding prediction                                | 加入 action reconstruction，使 future latent 对动作因果地可辨识     |
| 分离 IDM/FDM | 两个模块或表征空间                                  | 两个目标共享同一个 MoT policy backbone                              |&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 方法假设 DINOv2 latent 中已含有足够的可控视觉因素，且“$H$ 步后的 latent”是一个合适的预测粒度。若关键接触状态难以从 RGB latent 识别，或动作后果高度随机，FDM 目标可能不再是好的控制表征监督。&lt;/p&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 实验只覆盖一个紧凑模型规模，尚未建立该范式如何随模型容量、预训练数据规模和 embodiment diversity 扩展。作者将跨具身轨迹上的 scaling 视为后续方向。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;FDM 只预测固定 horizon 的 latent，无法显式提供长期规划所需的多步分支或不确定性；长程能力主要仍依赖闭环反复执行。&lt;/li&gt;
&lt;li&gt;论文将低延迟与小显存放在单张 H100、PyTorch eager、各模型原生 horizon/sampling schedule 下比较，适合展示部署开销，但不等价于严格统一计算预算的基准。&lt;/li&gt;
&lt;li&gt;使用 DINOv2 与 T5-small 仍带有外部预训练先验；“无 additional embodied pretraining”不应被误读为“从头学视觉与语言”。&lt;/li&gt;
&lt;li&gt;Stage 1 需要同一轨迹的 future observation；这在离线示教数据中自然成立，但并不能直接解决在线环境下的因果探索与数据覆盖问题。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; SLIM 说明 world-model 思想不必等同于“在推理时生成世界”。对控制而言，更关键的是将动作后果写入 policy 的内部表征。一个值得继续验证的方向是：将 FDM target 从单一未来时刻扩展为多尺度、带不确定性的 predictive slots，再用规划或 value learning 选择 action chunk。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 另一个研究问题是动作可辨识性：如果多个动作导致视觉上相似的未来，IDM 会遭遇天然多模态。可在 future latent 外引入力觉、末端位姿或接触事件，并让模型显式预测分布而非点目标；这可能比一味放大 VLM 更直接改善精细操作。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/67997247_p0_master1200.6po3p2g2e0.webp"/><enclosure url="https://pic.hana0721.top/67997247_p0_master1200.6po3p2g2e0.webp"/></item><item><title>SimpleVLA-RL 论文精读：用在线强化学习扩展 VLA 的数据与泛化能力</title><link>https://agusexp25.top/blog/paper-deep-dive-simplevla-rl</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-simplevla-rl</guid><description>精读 SimpleVLA-RL：基于 veRL 为 OpenVLA-OFT 接入闭环并行 rollout、二值结果奖励与探索增强，在 LIBERO、RoboTwin 和真实机器人上验证 VLA 的 RL scaling。</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;《SimpleVLA-RL: Scaling VLA Training via Reinforcement Learning》研究一个很具体但重要的问题：当 VLA 已经通过 SFT 学会基本操作后，能否像 Large Reasoning Model 一样，仅用环境最终成败的奖励继续扩展能力？作者在 veRL 上实现了 SimpleVLA-RL，并将 OpenVLA-OFT 作为主要 backbone。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-simplevla-rl/overview_v4.2h91oy30jh.webp&quot; alt=&quot;SimpleVLA-RL 论文 Figure 1：从 SFT 模型出发进行在线 RL，环境返回任务成败奖励&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; SFT 把机器人限制在“示教里见过的动作套路”，SimpleVLA-RL 则让策略在并行仿真环境中反复试错；只要一组采样同时出现成功和失败，GRPO 就能把成功轨迹的 action token 概率推高，从而获得更强的长时程控制与泛化。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;在 veRL 中加入 VLA 专用的交互式 trajectory sampling、并行多环境渲染、分布式训练与推理，形成端到端在线 RL 框架。&lt;/li&gt;
&lt;li&gt;使用不依赖任务过程奖励的二值 outcome reward，并提出 dynamic sampling、higher rollout temperature 和 clip higher 三种探索增强策略。&lt;/li&gt;
&lt;li&gt;在 LIBERO、RoboTwin 1.0/2.0 上显著超过 SFT 基线；只用每个任务一条示教时，LIBERO-Long 从 17.3% 提升到 91.7%。&lt;/li&gt;
&lt;li&gt;仅用仿真数据训练的策略在真实双臂 Piper 上平均成功率由 17.5% 提升到 38.5%。&lt;/li&gt;
&lt;li&gt;观察到 &lt;code&gt;pushcut&lt;/code&gt;：策略在没有示教该动作的情况下，学会用推动替代抓取-搬运-放置。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 现有 VLA 通常遵循“多模态预训练 → 大规模 SFT”的路线。扩展 SFT 需要昂贵的人类遥操作轨迹，而且训练分布往往绑定于固定物体、场景和任务组合，导致长时程与分布外泛化较弱。LLM 的在线 RL 可以通过随机采样和规则奖励探索多条推理路径，但 VLA 的 rollout 必须真正执行动作、刷新视觉观测和 proprioception，成本更高。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 论文的切入点不是设计新的 action decoder，而是把 VLA 的 action token 当作可以采样、计算 log-probability 的离散决策单元。这样 PPO/GRPO 的“概率比率—优势—策略更新”链条可以直接复用，同时把环境交互补到 LLM rollout 缺失的闭环部分。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在时间步 $t$，状态由视觉观测、机器人本体状态和语言指令组成：&lt;/p&gt;
&lt;p&gt;$$s_t=(o_t^{\mathrm{vis}},o_t^{\mathrm{prop}},l_{\mathrm{task}}).$$&lt;/p&gt;
&lt;p&gt;策略输出长度为 $K$ 的 action chunk。每个 action 是 $d$ 维连续控制量（例如末端位姿增量与夹爪），再由 OpenVLA-OFT 的 tokenizer 表示为 action tokens。环境执行 chunk 后返回新观测，直到成功、失败或达到最大步数。&lt;/p&gt;
&lt;p&gt;SimpleVLA-RL 使用 trajectory-level outcome reward：&lt;/p&gt;
&lt;p&gt;$$R_i=\begin{cases}1,&amp;#x26;\text{trajectory }i\text{ 完成任务},\0,&amp;#x26;\text{otherwise.}\end{cases}$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;verl/workers/rollout/rob_rollout.py&lt;/code&gt; 的 &lt;code&gt;RobotwinEnvWrapper&lt;/code&gt; 负责 &lt;code&gt;initialize&lt;/code&gt;、&lt;code&gt;step&lt;/code&gt; 和 &lt;code&gt;eval_success&lt;/code&gt;；&lt;code&gt;verl/utils/reward_score/evaluation_utils/libero_util/&lt;/code&gt; 与 RoboTwin 环境的 &lt;code&gt;check_success&lt;/code&gt; 将环境状态转换为 0/1 结果。训练时该标量被写到有效 action token 的末端位置，再由 GRPO 计算组内优势。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;SimpleVLA-RL 由四个协同部分组成：OpenVLA-OFT policy、veRL actor/rollout worker、并行环境池和 reward manager。每轮先复制同一任务 $G$ 份，在不同环境实例中采样；每个环境执行 action chunk 后重新编码图像与 proprio，再生成下一个 chunk。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文的整体数据流是：SFT policy → temperature sampling → 多环境闭环 rollout → 任务成功判定 → group-relative advantage → clipped policy update。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;verl/trainer/ppo/ray_trainer.py&lt;/code&gt; 串起 dataloader、rollout、reward、advantage 与 checkpoint；&lt;code&gt;verl/workers/actor/dp_rob.py&lt;/code&gt; 计算 action-token log-probability 和 policy loss；&lt;code&gt;verl/workers/rollout/rob_rollout.py&lt;/code&gt; 用线程池并行初始化和推进环境。仓库支持 LIBERO、RoboTwin 1.0/2.0，并提供 OpenVLA 与 OpenVLA-OFT 的实现。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;交互式 VLA Rollout&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：任务语言、当前 RGB/proprioception、旧策略 $\pi_{\theta_{old}}$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;中间模块&lt;/strong&gt;：action-token sampling、chunk decoder、环境 &lt;code&gt;step&lt;/code&gt;、done 过滤。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：包含每个 action token 概率、状态和最终成功标记的完整 trajectory。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;必要性&lt;/strong&gt;：LLM 一次生成完整文本；机器人动作会改变世界，下一次决策必须依赖新观测。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;rob_rollout.py&lt;/code&gt; 先用 &lt;code&gt;env_thread_pool&lt;/code&gt; 并行初始化环境，再循环调用 &lt;code&gt;_generate_one_step&lt;/code&gt; 与 &lt;code&gt;wrapper.step&lt;/code&gt;。完成的环境会从 active 列表移除，避免继续浪费采样预算。&lt;/p&gt;
&lt;h4&gt;二值 outcome reward&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 所有成功轨迹的 action token 获得 1，失败轨迹获得 0，不设计距离、碰撞等任务专属过程奖励。优点是 reward verifier 可跨任务复用；代价是只有最终结果，无法告诉策略“错在第几步”。&lt;/p&gt;
&lt;h4&gt;三种探索增强&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Dynamic sampling&lt;/strong&gt;：丢弃一组全成功或全失败的样本，持续采样直到组内同时存在成功与失败，避免 GRPO 的标准差为 0、优势消失。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Clip higher&lt;/strong&gt;：把 importance ratio 的上界从 $1.2$ 提高到 $1.28$，允许低概率 action token 更快增权。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Higher rollout temperature&lt;/strong&gt;：采样温度从 $1.0$ 调到 $1.6$，扩大动作轨迹的多样性。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-simplevla-rl/vla_ablation_1_clip_higher.8hh7tocme5.webp&quot; alt=&quot;SimpleVLA-RL 的 clip higher 消融（论文 Figure 3b）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;p&gt;对同一初始任务采样 $G$ 条 trajectory，组内优势为：&lt;/p&gt;
&lt;p&gt;$$\hat A_i=\frac{R_i-\operatorname{mean}(R_{1:G})}{\operatorname{std}(R_{1:G})+\epsilon}.$$&lt;/p&gt;
&lt;p&gt;其中 $R_i\in{0,1}$ 是整条轨迹奖励，$\epsilon$ 防止数值除零；dynamic sampling 保证实际训练组通常包含两种结果。&lt;/p&gt;
&lt;p&gt;去掉 KL reference model 后，SimpleVLA-RL 的目标为：&lt;/p&gt;
&lt;p&gt;$$
\mathcal J(\theta)=\mathbb E\left[\frac1G\sum_{i=1}^G\frac1{|a_i|}\sum_t
\min\left(r_{i,t}\hat A_i,\operatorname{clip}(r_{i,t},1-\varepsilon_{low},1+\varepsilon_{high})\hat A_i\right)\right],
$$&lt;/p&gt;
&lt;p&gt;$$r_{i,t}=\frac{\pi_\theta(a_{i,t}\mid s_{i,t})}{\pi_{\theta_{old}}(a_{i,t}\mid s_{i,t})},\quad
\varepsilon_{low}=0.2,;\varepsilon_{high}=0.28.$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 非对称 clipping 的方向性很明确：成功轨迹的 token 概率上升可以走得更远，而概率下降仍受 $0.8$ 下界约束；这把有限更新预算偏向“发现新动作”。去掉 KL 则减少显存和 reference forward，但也牺牲了一个显式的保守锚点。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 主要实验先对 OpenVLA-OFT 做 SFT，再在相同任务的仿真场景中在线 RL。训练使用 8 张 A800 80GB，学习率 $5\times10^{-6}$、batch size 64、每个 prompt 采样 8 条 trajectory、256 个 action tokens；LIBERO 最大交互 512 步，RoboTwin 根据任务使用 200/400/800 步。训练采样温度为 1.6，评估使用 greedy decoding。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;ray_trainer.py&lt;/code&gt; 在 rollout 后调用 &lt;code&gt;reward_fn.verify&lt;/code&gt;，将结果写入 &lt;code&gt;token_level_scores&lt;/code&gt;；&lt;code&gt;core_algos.py&lt;/code&gt; 的 &lt;code&gt;compute_grpo_outcome_advantage&lt;/code&gt; 完成 group normalization；&lt;code&gt;dp_rob.py&lt;/code&gt; 的 &lt;code&gt;compute_policy_loss&lt;/code&gt; 使用上下界不同的 &lt;code&gt;torch.clamp&lt;/code&gt;。仓库脚本 &lt;code&gt;examples/run_openvla_oft_rl_libero.sh&lt;/code&gt; 与 &lt;code&gt;run_openvla_oft_rl_twin2.sh&lt;/code&gt; 负责把模型、数据集和 GPU 配置接入训练器。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 评估时关闭随机探索，使用 greedy action-token decoding。机器人每次获得一个 chunk，执行后重新读取环境观测，直到完成或超时。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;main_eval.py&lt;/code&gt; 支持离线读取生成结果并调用 verifier；RoboTwin wrapper 将 &lt;code&gt;eval_success&lt;/code&gt; 作为 episode 终止条件。官方代码的 OpenVLA-OFT 版本只使用单视角图像、语言和 proprioception（LIBERO 配置还可关闭 proprioception），因此不能直接加载官方使用 wrist camera/MLP action head 的 checkpoint，需要按仓库配置重新 SFT。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;| 论文概念 | 官方代码位置 | 实际行为 |
| --- | --- | --- |
| VLA rollout | &lt;code&gt;verl/workers/rollout/rob_rollout.py&lt;/code&gt; | 多环境线程池、逐 chunk 交互、done 过滤、轨迹收集 |
| Outcome reward | &lt;code&gt;verl/trainer/main_ppo.py&lt;/code&gt;、环境 &lt;code&gt;check_success&lt;/code&gt; | 任务级 0/1 分数，映射到有效 action token |
| GRPO advantage | &lt;code&gt;verl/trainer/ppo/core_algos.py&lt;/code&gt; | 按 &lt;code&gt;n_samples&lt;/code&gt; 分组做均值/标准差归一化 |
| 非对称 clipping | &lt;code&gt;verl/workers/actor/dp_rob.py&lt;/code&gt; | &lt;code&gt;clip_ratio_low=0.2&lt;/code&gt;、&lt;code&gt;clip_ratio_high=0.28&lt;/code&gt; |
| 模型与 action token | &lt;code&gt;verl/utils/vla_utils/openvla_oft/&lt;/code&gt; | LLaMA2 词表输出离散 action，chunk 长度由配置控制 |
| 训练入口 | &lt;code&gt;verl/trainer/ppo/ray_trainer.py&lt;/code&gt; | rollout → reward → advantage → actor update → eval/checkpoint |&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 实验覆盖 LIBERO（Goal、Spatial、Object、Long）、RoboTwin 1.0、RoboTwin 2.0，并在两台 AgileX Piper 上做真实部署。LIBERO 每个任务评估 50 个 held-out 场景；RoboTwin 2.0 选择 12 个任务，覆盖约 112–637 步的短、中、长和超长时程，每个任务评估 100 个场景。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;| Benchmark | OpenVLA-OFT SFT | + SimpleVLA-RL | 提升 |
| --- | ---: | ---: | ---: |
| LIBERO 平均 | 91.0 | &lt;strong&gt;99.1&lt;/strong&gt; | +8.1 |
| LIBERO-Long | 86.5 | &lt;strong&gt;98.5&lt;/strong&gt; | +12.0 |
| RoboTwin 1.0 平均 | 39.8 | &lt;strong&gt;70.4&lt;/strong&gt; | +30.6 |
| RoboTwin 2.0（12 任务） | 38.3 | &lt;strong&gt;68.8&lt;/strong&gt; | +30.5 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在 RoboTwin 2.0，SimpleVLA-RL 的 68.8% 平均成功率高于 $\pi_0$ 的 49.2% 与 RDT 的 33.3%；短时程任务平均从 21.3% 提升到 64.9%，中时程从 47.1% 到 72.5%，长/超长时程从 46.5% 到 69.0%。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-simplevla-rl/vla_ablation_3_dynamic_sampling.5q85llqihp.webp&quot; alt=&quot;Dynamic sampling 消融（论文 Figure 3a）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-simplevla-rl/vla_ablation_2_temperature_higher.1lck9htccc.webp&quot; alt=&quot;Higher rollout temperature 消融（论文 Figure 3c）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 三个策略分别缓解不同问题：dynamic sampling 防止无梯度 group，higher temperature 提供更多候选轨迹，clip higher 放宽成功 token 的增权幅度。论文报告三者组合带来约 10–15% 的一致收益；单独移除任一项都会下降，说明它们并非重复的“加随机性”。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在每个 LIBERO 套件只用 9 个 seen tasks 训练、留出 1 个 unseen task 时，SFT 随训练任务成功率提高而明显过拟合，部分 unseen task 甚至降到 0%；SimpleVLA-RL 则在 Spatial、Object、Goal 三类划分上持续提高 unseen task。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-simplevla-rl/libero_goal_unseen_2_new.4920jumdz1.webp&quot; alt=&quot;LIBERO Goal unseen 泛化曲线（论文 Figure 4 顶部样例）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-simplevla-rl/libero_object_unseen_1_new.70b2rx8i45.webp&quot; alt=&quot;LIBERO Object unseen 泛化曲线（论文 Figure 4 中部样例）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-simplevla-rl/libero_spatial_unseen_0_new.7ehiisgt2k.webp&quot; alt=&quot;LIBERO Spatial unseen 泛化曲线（论文 Figure 4 底部样例）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 最极端的数据效率实验只给每个任务一条 demonstration：平均成功率由 48.9% 提升到 96.9%，LIBERO-Long 由 17.3% 提升到 91.7%，与使用完整 500 条示教后再 RL 的 99.1% 仅差 2.2 个百分点。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; sim-to-real 实验完全不使用真实示教：Stack Bowls、Place Empty Cup、Pick Bottle、Click Bell 四项平均由 17.5% 提升到 38.5%，超过 RDT 的 23.5%。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 关键不是“二值奖励足够精细”，而是三个条件同时成立：SFT policy 已经能偶尔成功；仿真环境能快速给出可靠终局标签；每组采样有足够多样性。成功轨迹提供正向 policy gradient，失败轨迹提供相对基线，RL 因而能重排已有动作分布并扩大可行策略集合。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 真正的工程创新是把 VLA rollout 变成 veRL 的一等公民：并行环境渲染、视觉状态刷新、action-token log-probability 对齐和奖励写回都在同一训练循环内完成。算法层面的创新则是把 LLM RL 中的 dynamic sampling、非对称 clipping 和温度调节迁移到机器人控制。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; SFT 优化“复现示教动作”，SimpleVLA-RL 优化“在环境中完成任务”；Diffusion Policy 或连续 MLP action head 没有天然的 token-level categorical probability，而 OpenVLA-OFT 的离散 action token 使 GRPO 可以直接计算 ratio。论文因此没有声称框架已经覆盖 diffusion VLA，仓库 roadmap 也把 flow-matching RL 列为后续工作。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 初始 policy 必须有非零任务能力，否则采样不到成功轨迹，0/1 reward 的 group advantage 全为零。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 仿真成功判定与真实任务目标相符，且 domain randomization 足以支撑 sim-to-real。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; action-token 的概率比率能够代表连续控制变化；当 tokenizer 量化误差或 chunk 很长时，这一假设可能变弱。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 失败模式实验显示：没有 SFT（0 条 trajectory）时，五个 RoboTwin 2.0 任务均为 0%，RL 也无法启动；100 条示教平均仅从 7.3% 提升到 25.4%，而 1000 条示教可从 28.2% 提升到 50.4%。这说明 outcome-only RL 存在明显的能力阈值。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 闭环 rollout 仍然昂贵。并行化降低了墙钟时间，却没有消除仿真、渲染和 GPU 推理的总算力成本。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 二值奖励对稀有成功很脆弱；若一组样本全失败，dynamic sampling 只能继续花预算探索，不能提供中间方向。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 当前公开实现围绕 OpenVLA/OpenVLA-OFT 的离散 action-token 头，官方 checkpoint 因输入视角和 action head 差异不能直接复用；对 diffusion/flow-matching VLA 的扩展尚未实现。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; &lt;code&gt;pushcut&lt;/code&gt; 说明奖励允许绕开示教套路，但也意味着只验证“任务完成”时，策略可能学到对真实硬件更脆弱、对碰撞更不安全的捷径。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; SimpleVLA-RL 给出的最有价值结论是：VLA 的 scaling 不一定等同于继续收集更多人类轨迹。一个可行的组合是“少量示教负责冷启动，仿真 RL 负责扩大行为分布，真实评测负责校准迁移”。&lt;/p&gt;
&lt;p&gt;后续值得追问三件事：第一，能否用 curriculum 或轻量过程奖励降低“能力阈值”；第二，如何把 action chunk 的连续不确定性纳入 GRPO，而不是只对离散 token 做 ratio；第三，如何把安全约束、能耗和动作平滑加入 outcome reward，使 &lt;code&gt;pushcut&lt;/code&gt; 一类新策略在真实机器人上同样可靠。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/99213551_p0_master1200.4jopcsx1ya.webp"/><enclosure url="https://pic.hana0721.top/99213551_p0_master1200.4jopcsx1ya.webp"/></item><item><title>RynnValue 论文精读：用时间距离训练可扩展的机器人价值基础模型</title><link>https://agusexp25.top/blog/paper-deep-dive-rynnvalue</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-rynnvalue</guid><description>RynnValue 用从观测到语言目标的剩余时间替代偏好与归一化进度，在 7,000+ 小时异构机器人数据上训练价值模型，并作为 VLA 的密集奖励接口。</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; RynnValue 研究的不是“机器人下一步该怎么动”，而是“当前观测距离语言指定的目标还有多远”。论文把这个距离定义为 temporal distance：从观测时间戳到重新标注的任务完成 cutoff 的剩余秒数。它因此是一个带语言条件的 cost-to-go，而不是轨迹内部归一化到 &lt;code&gt;[0, 1]&lt;/code&gt; 的进度分数。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-rynnvalue/rynnvalue-architecture.3d5j4en7wy.webp&quot; alt=&quot;RynnValue architecture overview from paper Figure 1&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; RynnValue 的核心转变是把 reward model 从“给一段轨迹打分”改造成一个可复用的 value interface：输入语言、视觉序列和 embodiment metadata，输出每个观测到目标的剩余时间；再取其相反数作为 potential，就能直接接入策略评估、失败检测和 RL reward shaping。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;用 timestamp-derived temporal distance 替代 preference pair 和 normalized progress，统一 10 个来源、1.67M 原始 episode、3.09M instruction-conditioned segments（7,000+ 小时）上的监督。&lt;/li&gt;
&lt;li&gt;提出 random temporal sampling、temporal-order shuffling 与 value-isolation attention，分别打破采样间隔、序列位置和跨 query value 泄漏造成的 shortcut。&lt;/li&gt;
&lt;li&gt;使用 absolute / relative 两个 distributional value head，并以 symlog 256-bin、two-hot 目标稳定覆盖长尾时间范围。&lt;/li&gt;
&lt;li&gt;保留 RynnBrain 的语言能力，联合训练视频描述、instruction matching 和 success 判断，增强语言-视觉 grounding。&lt;/li&gt;
&lt;li&gt;RynnValue-8B 在 RBM-EVAL-OOD 上达到平均 Kendall’s $\tau_a=0.675$，超过 preference-supervised Robometer 的 0.655；作为 dense reward 后，真实双臂 Franka 的 online / offline RL 平均成功率分别达到 72.5% / 82.5%。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 通用机器人策略越来越依赖 RL，但 reward supervision 比 policy capacity 更容易成为瓶颈。手工 reward 难以迁移到开放任务，成功/失败的 sparse signal 又无法为长时程行为提供方向。已有 reward model 通常依赖偏好比较、参考 demonstration 或局部状态比较；这些监督绑定了特定轨迹和比较集合，难以在不同 robot、视角和时长之间复用。&lt;/p&gt;
&lt;p&gt;归一化 progress 看似便宜，却只是“当前轨迹走了百分之多少”的坐标：不同任务的 0.5 可能对应完全不同的剩余工作量，也不能表达一次 regression。RynnValue 选择的 temporal distance 则具有明确的 goal-conditioned cost-to-go 解释：时间越少越接近目标，任务失败或回退时距离可以增加。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这不是把 progress 的回归器换成更大的 backbone，而是改变 supervision interface。只要数据有 instruction、时间戳和合理的 completion cutoff，就能生成标签；因此数据规模与任务多样性可以独立扩展，而不需要为每个数据集重新设计进度标尺或偏好标注协议。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 给定语言指令 $\ell$、embodiment / camera metadata $m$ 和按时间采样的观测序列 $I={I_{t_i}}_{i=1}^{K}$，模型同时预测：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Absolute temporal distance&lt;/strong&gt;：$v_i^\star=\max(0,t_G-t_i)$，即观测到完成 cutoff $t_G$ 的剩余秒数。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Relative temporal displacement&lt;/strong&gt;：$\Delta_i^\star=t_{i+1}-t_i$，描述呈现序列中相邻观测的前进或回退；负值代表 temporal regression。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Language analysis&lt;/strong&gt;：视频描述、instruction-video Match、task Success。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;训练主设置为 $K=8$ 个观测。绝对值支持范围为 &lt;code&gt;[0, 512]&lt;/code&gt; 秒，相对值范围为 &lt;code&gt;[-256, 256]&lt;/code&gt; 秒。推理时把绝对距离变成更高更好的 potential：&lt;/p&gt;
&lt;p&gt;$$
\Phi_t= -v_t
$$&lt;/p&gt;
&lt;p&gt;再通过 potential-based shaping 接入 RL。这里 $v_t$ 越小越接近完成，$\Phi_t$ 越接近零。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Embodied AI Checklist&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;| 项目                  | RynnValue 的实现                                                                          |
| --------------------- | ----------------------------------------------------------------------------------------- |
| Vision Encoder        | RynnBrain / Qwen3-VL 视觉编码器，支持单视角、多视角与视频帧                               |
| Language Model        | RynnBrain 的 multimodal language backbone；LM head 负责分析文本                           |
| Multimodal Fusion     | instruction、metadata、图像和 temporal query 交错组成一条序列                             |
| Action Representation | 模型本身不输出动作；输出 temporal value 作为 reward interface                             |
| Policy / Decoder      | 由下游 π₀.₅、IQL 或 DSRL policy 消费 value potential                                      |
| Dataset               | AgiBot、EgoDex、Galaxea、InternData-A1、OXE、RDT、RoboCOIN、RoboMIND、RoboTwin、Soft-FOLD |
| Real-world Deployment | 双臂 Franka、四个 RGB 相机；zero-shot reward annotator                                    |&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; RynnValue 以 RynnBrain 为 backbone。输入序列可写成：&lt;/p&gt;
&lt;p&gt;$$
x=[m,\ell,I_{t_1},V_1,I_{t_2},R_1,V_2,\ldots,I_{t_K},R_{K-1},V_K,p_{ver}],
$$&lt;/p&gt;
&lt;p&gt;其中 $V_i$ 是第 $i$ 个观测的 absolute-value query group，$R_i$ 是相邻观测的 relative-value query group，$p_{ver}$ 请求生成视频分析与验证结果。backbone 一次 forward 得到所有 query hidden states；两个 value head 读取对应位置，LM head 生成文本分析。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这个拆分让 value 预测和语言生成共享视觉-语言表征，但不共享数值输出头：时间距离由专门 distributional head 解码，文本仍由原始 LM head 自回归生成。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;Grouped temporal queries&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：一个观测对应的视觉-语言上下文。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：$N$ 个重复 query 的 hidden states；论文和代码默认 $N=8$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;作用&lt;/strong&gt;：单个 token 容易成为信息瓶颈，需要同时看物体状态、交互、子任务阶段和完成证据。模型将同组 hidden states 拼接，而不是平均，保留互补信息。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;modeling_rynn_value_lang.py&lt;/code&gt; 在 &lt;code&gt;_compute_value_outputs&lt;/code&gt; 中按 &lt;code&gt;value_token_repeat&lt;/code&gt; 把重复 token reshape 成一个 slot，再送入 value head；relative slot 走同样逻辑。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Dual distributional heads&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Absolute head&lt;/strong&gt; 输出 256 个 symlog bin 的 logits，学习剩余时间。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Relative head&lt;/strong&gt; 输出 256 个 symlog bin 的 logits，学习相邻呈现观测的有符号时间差。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要&lt;/strong&gt;：绝对目标提供到终点的全局锚点，相对目标提供局部变化信号，二者共同帮助模型识别回退和恢复。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;value_heads.py&lt;/code&gt; 提供 &lt;code&gt;LinearValueHead&lt;/code&gt; 与 &lt;code&gt;BroValueHead&lt;/code&gt;；论文实验使用隐藏宽度 4096、深度 8 的 BRO-style residual MLP。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Value-isolation attention&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 不同观测的 value query group 不能互相 attend；同组重复 query 可以互相可见。context token 也不能 attend temporal query，避免早先的 value 预测通过后续语言或视觉 token 间接泄漏。这样每个 value 必须依据自己的观测、instruction 和 metadata 推断。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;attention_impl.py&lt;/code&gt; 注册 &lt;code&gt;pred_slot_isolated_eager&lt;/code&gt;，根据 &lt;code&gt;pred_slot_id&lt;/code&gt; 构造可见性 mask。推理脚本还显式把 &lt;code&gt;hf_config._attn_implementation&lt;/code&gt; 设为该实现，以兼容旧 checkpoint。&lt;/p&gt;
&lt;h4&gt;Language analysis and mismatch augmentation&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 最后一个 verification prompt 要求模型依次生成 &lt;code&gt;Video Description&lt;/code&gt;、&lt;code&gt;Match&lt;/code&gt; 和 &lt;code&gt;Success&lt;/code&gt;。训练中 10% 样本把 instruction 替换为另一条轨迹的 instruction，并监督 &lt;code&gt;Match: No&lt;/code&gt; / &lt;code&gt;Success: No&lt;/code&gt;；此时绝对距离 loss 被 mask，因为原 completion cutoff 不再适用，但 relative loss 仍保留。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这一步避免模型只根据“画面看起来越来越像完成”输出平滑曲线，也迫使它把 value 与语言目标绑定，而不是学习与任务无关的视觉活跃度。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;Symlog two-hot distributional readout&lt;/h4&gt;
&lt;p&gt;绝对与相对连续目标先经过 symlog，再编码到相邻的两个 bin：&lt;/p&gt;
&lt;p&gt;$$
\mathcal{L}&lt;em&gt;{abs}=-\frac{\omega}{K}\sum&lt;/em&gt;{i=1}^{K}\sum_{b=1}^{|B_V|}
\operatorname{TwoHot}_{B_V}(v_i^\star)_b\log\operatorname{softmax}(z_i^V)_b
$$&lt;/p&gt;
&lt;p&gt;$$
\mathcal{L}&lt;em&gt;{rel}=-\frac{1}{K-1}\sum&lt;/em&gt;{i=1}^{K-1}\sum_{b=1}^{|B_R|}
\operatorname{TwoHot}_{B_R}(\Delta_i^\star)_b\log\operatorname{softmax}(z_i^R)_b
$$&lt;/p&gt;
&lt;p&gt;其中 $z_i^V,z_i^R$ 是两个 head 的 bin logits，$\omega$ 在 instruction mismatch 样本上为 0。two-hot 让连续值由相邻 bin 插值表达；symlog 压缩长尾时间，同时保持零附近的分辨率。&lt;/p&gt;
&lt;p&gt;推理时取 symlog 空间中的期望并做 inverse symlog：&lt;/p&gt;
&lt;p&gt;$$
v_i=\operatorname{symexp}\left(\sum_b c_b^V\operatorname{softmax}(z_i^V)_b\right),\quad
\Delta_i=\operatorname{symexp}\left(\sum_b c_b^R\operatorname{softmax}(z_i^R)_b\right).
$$&lt;/p&gt;
&lt;p&gt;语言损失为标准 causal LM loss，最终目标是：&lt;/p&gt;
&lt;p&gt;$$
\mathcal{L}=\mathcal{L}&lt;em&gt;{abs}+\mathcal{L}&lt;/em&gt;{rel}+\lambda_{lang}\mathcal{L}&lt;em&gt;{lang},\qquad \lambda&lt;/em&gt;{lang}=2.
$$&lt;/p&gt;
&lt;h4&gt;Potential-based reward shaping&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在策略学习中，value model 只提供 potential，保留人工确认的成功终止项：&lt;/p&gt;
&lt;p&gt;$$
r_t=\kappa(\gamma\Phi_{t+1}-\Phi_t)+
\begin{cases}0,&amp;#x26;t=T-1,&amp;#x26;\text{otherwise}\end{cases}
$$&lt;/p&gt;
&lt;p&gt;论文使用 $\kappa=0.1$（RynnValue）和 $\kappa=1.0$（Robometer）。这样 temporal distance 的物理秒数不会被压成任务特定的 &lt;code&gt;[0,1]&lt;/code&gt;，却仍满足 reward shaping 的 policy-invariance 形式。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 数据先经过 source-aware curation：移除 malformed / placeholder instruction 和只描述移动、接近、转向的非操作片段；长轨迹按原生 temporal annotation 切分，没有 annotation 时保留 coarse segment；再设置 completion cutoff 并从时间戳生成标签。Qwen3-VL-27B 生成的片段描述用于语言监督。&lt;/p&gt;
&lt;p&gt;每条样本随机采 8 帧。50% 序列不排序，剩余序列采用带 rewind probability 0.3 的 forward-biased temporal walk；因此相对标签既可能为正也可能为负。优化器为 AdamW，学习率 $10^{-6}$，$\beta=(0.9,0.95)$，weight decay 0.1，gradient norm clip 100，bf16 + FSDP hybrid sharding，per-device batch size 2。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 推理时关闭训练期的随机采样和顺序扰动，按 chronological order 输入帧，但保留 value-isolation mask。模型解码每个观测的 $v_t$ 与相对值，并可额外生成描述、Match、Success。用于 RBM-EVAL-OOD 时只读取最后观测的 $-v_{end}$ 作为 trajectory score。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;rynn_infer/inference.py&lt;/code&gt; 对每个 prefix 均匀重采样视频帧，读取 prefix 最后一个 value slot，渲染 Remaining Time 曲线。真实 RL 的 reward service 则使用右侧 third-person RGB，历史前缀均匀抽 4 帧以匹配 Robometer 协议，且只调用 absolute head。&lt;/p&gt;
&lt;p&gt;&amp;#x3C;Algorithm
number={2}
title=&apos;Temporal-value inference and reward interface&apos;
inputLabel=&apos;输入&apos;
outputLabel=&apos;输出&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方仓库 &lt;code&gt;alibaba-damo-academy/RynnValue&lt;/code&gt; 不只是模型定义，还包含完整评测和 RL 工具链：&lt;/p&gt;
&lt;p&gt;| 代码位置                                      | 与论文对应的行为                                                                     |
| --------------------------------------------- | ------------------------------------------------------------------------------------ |
| &lt;code&gt;rynn_value/configuration_rynn_value_lang.py&lt;/code&gt; | Qwen3-VL 配置、256 bins、symlog 支持、query repeat 与 isolation attention 配置       |
| &lt;code&gt;rynn_value/modeling_rynn_value_lang.py&lt;/code&gt;      | hidden state gather、absolute / relative head、two-hot CE loss、mismatch fusion mask |
| &lt;code&gt;rynn_value/value_tokenizer.py&lt;/code&gt;               | scalar 与 symlog bin distribution 的 encode / decode                                 |
| &lt;code&gt;rynn_value/attention_impl.py&lt;/code&gt;                | &lt;code&gt;pred_slot_isolated_eager&lt;/code&gt; 自定义 attention 实现                                     |
| &lt;code&gt;rynn_value/processing_rynn_value_lang.py&lt;/code&gt;    | special token、训练 target 构造与 &lt;code&gt;process_episode()&lt;/code&gt; 推理 API                       |
| &lt;code&gt;rynn_infer/inference.py&lt;/code&gt;                     | prefix scoring、Remaining Time 曲线与分析文本解析                                    |
| &lt;code&gt;robometer/&lt;/code&gt;                                  | RBM-EVAL-OOD 的 policy ranking、alignment、confusion matrix 与 reward server         |
| &lt;code&gt;pi-rl/&lt;/code&gt;                                      | π₀.₅ 的 offline IQL 与 online DSRL-style latent SAC                                  |&lt;/p&gt;
&lt;p&gt;论文把 RynnValue 称为“开源 value foundation model”；代码还提供 HuggingFace &lt;code&gt;trust_remote_code=True&lt;/code&gt; 的 checkpoint 转换脚本。&lt;strong&gt;【Analysis】&lt;/strong&gt; 因此复现实验的关键不只在 backbone 权重，也在 processor 发出的 query token 排列和自定义 attention 注册；仅替换成普通 causal attention 会重新引入 value-token shortcut。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 内在 value 质量在 RBM-EVAL-OOD 上评测：976 条来自 6 个 OOD 数据集的轨迹，覆盖不同机构、robot embodiment、相机视角和任务族；指标是预测排序与真实质量排序之间的 Kendall’s $\tau_a$。此外，论文把模型部署到双臂 Franka，使用双腕相机与左右 third-person 相机，在四个任务上测试 offline IQL 和 online DSRL。&lt;/p&gt;
&lt;p&gt;任务包括 Bread Basket Placement、Steak Serving with a Spatula、Box-in-Drawer Placement、Bimanual Box Transfer。offline 使用固定初始状态；online 对前三个任务和双臂搬箱随机化物体初始位置。每个任务评估 20 次。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-rynnvalue/rynnvalue-training.1ow677wy7s.webp&quot; alt=&quot;RynnValue training strategy and value isolation from paper Figure 2&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; RBM-EVAL-OOD 结果如下（平均 Kendall’s $\tau_a$）：&lt;/p&gt;
&lt;p&gt;| 方法                      | 偏好监督 | 平均 $\tau_a$ |
| ------------------------- | -------: | ------------: |
| Robometer (RBM-1M)        |       是 |         0.655 |
| Robometer (Progress only) |       否 |         0.292 |
| RynnValue-4B              |       否 |         0.670 |
| RynnValue-8B              |       否 |     &lt;strong&gt;0.675&lt;/strong&gt; |&lt;/p&gt;
&lt;p&gt;RynnValue-8B 在 USC Franka、USC Koch、USC Trossen 上取得分项最好，4B 在 UTD SO101 上最好。4B 与 8B 差距很小，说明收益主要来自 temporal-distance target、数据多样性和 shortcut suppression，而不是单纯增大 backbone。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-rynnvalue/rynnvalue-matrix.5trrjbu3x0.webp&quot; alt=&quot;Instruction-trajectory confusion matrices from paper Figure 3&quot;&gt;&lt;/p&gt;
&lt;p&gt;RynnValue 的 instruction-trajectory confusion matrix 对角线最清晰，normalized diagonal margin 为 0.79，高于最强 baseline 的 0.67。这验证了它在给定语言目标下区分匹配和不匹配轨迹的能力，而不只是识别“画面是否总体更接近完成”。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-rynnvalue/rynnvalue-scaling.13mikx2huy.webp&quot; alt=&quot;Scaling and design analysis for RynnValue from paper Figure 4&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 完整模型平均为 0.675。去掉不同组件后的平均分：&lt;/p&gt;
&lt;p&gt;| 变体             | 平均 $\tau_a$ | 下降原因（论文解释）                        |
| ---------------- | ------------: | ------------------------------------------- |
| w/o Shuffle      |         0.189 | 序列位置重新成为进度 proxy                  |
| Uniform Sampling |         0.379 | 固定间隔诱导 stereotypical value curve      |
| w/o Isolation    |         0.482 | value query 可跨组外推                      |
| w/o Language     |         0.537 | 缺少视频语义与 instruction grounding        |
| w/o Relative     |         0.627 | 缺少局部 forward / backward temporal signal |
| Full Model       |     &lt;strong&gt;0.675&lt;/strong&gt; | —                                           |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 顺序打乱与 isolation 是互补约束：前者阻断“第几个 token 就代表第几阶段”，后者阻断“看前一个 value 就能猜下一个 value”。两者同时存在时，模型才必须重新读取当前观测中的物体关系和失败迹象。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; scaling 分析把“episode 数量”和“task diversity”拆开控制。固定任务、增加 episode 时误差很快饱和；固定每任务 episode 数、增加任务数量时，held-out unseen tasks 的 temporal-distance error 持续下降。这说明异构数据的价值主要来自 goal structure、视觉配置和执行方式的覆盖，而非同一任务的重复观测。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-rynnvalue/rynnvalue-value-case.2yz3djexnf.webp&quot; alt=&quot;Temporal-value curve comparison from paper Figure 5&quot;&gt;&lt;/p&gt;
&lt;p&gt;在真实轨迹案例中，RynnValue 能在 trial-and-error 区间明显降低 potential，恢复后再次上升，并在接近完成时对扰动保持敏感；Robometer 的 normalized progress 则更容易出现平台和突跳。真实 RL 平均成功率：online 为 72.5%（Robometer 52.5%），offline 为 82.5%（Robometer 63.8%）。&lt;/p&gt;
&lt;h3&gt;5.5 Real-world policy learning&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; RynnValue 没有看到目标任务、物体或工作空间，作为 zero-shot reward annotator 使用。offline IQL 中，Bread Basket Placement 达到 100%，Steak Serving 与 Box-in-Drawer 均为 90%；online DSRL 平均 72.5%，在 Steak Serving 和 Bimanual Box Transfer 上分别比 Robometer 高 30 和 35 个百分点。&lt;/p&gt;
&lt;p&gt;Box-in-Drawer 的 online 提升有限：任务对夹爪稳定性和盒-抽屉几何对齐非常敏感，而 reward model 只看 third-person RGB，视觉相似状态可能对应不同的抓取稳定性。论文把这视为视觉观测下的 calibration 难点，而不是 value interface 已经解决的问题。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 有三层原因：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;目标有控制语义&lt;/strong&gt;：剩余时间天然是到目标的 cost-to-go，跨任务共享“越快完成越好”的方向；progress 的分母却随轨迹变化。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;标签几乎免费&lt;/strong&gt;：时间戳和 cutoff 足以生成每帧 dense label，数据规模不被偏好标注吞吐限制。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;训练主动破除捷径&lt;/strong&gt;：随机间隔破除 arithmetic pattern，顺序打乱破除位置 proxy，isolation 破除跨帧 value extrapolation，语言辅助任务补足 goal grounding。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 真正的新意不是“预测秒数”这一回归形式，而是把 temporal distance 设计成跨 embodiment 的统一接口，并围绕它配套数据 relabeling、distributional readout、relative supervision、mismatch augmentation 与 attention mask。&lt;strong&gt;【Analysis】&lt;/strong&gt; 这些组件共同解决了一个实际问题：如果没有 shortcut suppression，时间标签越便宜，模型越可能学会数据采样协议而非任务状态。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;| 维度                 | Preference / progress reward model     | RynnValue                                       |
| -------------------- | -------------------------------------- | ----------------------------------------------- |
| 监督                 | 偏好 pair、参考轨迹或 &lt;code&gt;[0,1]&lt;/code&gt; progress | 时间戳到 completion cutoff 的 cost-to-go        |
| 标尺                 | 往往是任务/数据集内部坐标              | 物理时间，带方向与目标条件                      |
| 跨数据集迁移         | 需要重新校准比较集或进度定义           | 共享同一 temporal-distance interface            |
| 对 regression 的响应 | 可能被序列先验抹平                     | relative target + shuffled order 显式提供负变化 |
| 下游接口             | score / progress                       | $\Phi=-v$，可直接 potential shaping             |&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文的 temporal distance 对应近似 minimum-time objective；completion cutoff 能代表语义上的完成点；RGB 和 instruction 足以估计中间价值。&lt;strong&gt;【Analysis】&lt;/strong&gt; 因而它隐含了几个边界：耗能、安全、接触力和精度成本没有进入标签；若同一任务存在“更慢但更安全”的策略，最短时间未必是最优 value。模型也只看短窗口观测，长时程遮挡或不可观测状态会造成误判。&lt;/p&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;当前模型从短窗口采样观测，尚未覆盖更长 horizon 和真正 streaming 的在线推理。&lt;/li&gt;
&lt;li&gt;temporal-distance target 近似 minimum-time objective，尚未表达 energy、safety、precision 等任务特定成本。&lt;/li&gt;
&lt;li&gt;未来需要扩展到更多 end-effector（尤其 dexterous hand）和 mobile manipulation，把导航与交互纳入同一接口。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;cutoff relabeling 是监督质量的关键；若数据含有 post-completion motion 或失败轨迹缺少清晰终点，零值边界会偏移。&lt;/li&gt;
&lt;li&gt;physical seconds 仍受执行速度和控制器影响。相同视觉状态在不同硬件上的剩余时间可能不同，metadata 只能部分缓解这一点。&lt;/li&gt;
&lt;li&gt;真实 RL 中 reward service 使用历史前缀重采样和第三人称 RGB，与训练期 8 帧、多视角输入存在 protocol gap。&lt;/li&gt;
&lt;li&gt;论文展示了四个真实任务，尚不能据此推断对接触丰富、遮挡严重或需要 proprioception 的任务同样可靠；作者也明确指出 Box-in-Drawer 的视觉歧义。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; RynnValue 给 VLA 研究的启发，是把“策略学习”和“价值监督”重新拆开：一个通用 value model 不必输出动作，却可以成为多个 policy、多个 embodiment 和多个 RL 算法之间的共享接口。对后续工作，我认为有三条值得继续验证：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;把 scalar temporal distance 扩展成向量成本，例如 &lt;code&gt;(time, energy, safety risk, contact precision)&lt;/code&gt;，再研究如何做 Pareto 或任务条件化 shaping。&lt;/li&gt;
&lt;li&gt;将 value-isolation 从静态 mask 扩展到 streaming memory，让模型在不泄漏预测的前提下利用更长历史。&lt;/li&gt;
&lt;li&gt;让 policy 反过来查询 value uncertainty，而不是只使用期望 bin center；在视觉歧义状态主动收集数据，可能比继续扩大无标签视频更有效。&lt;/li&gt;
&lt;/ol&gt;</content:encoded><h:img src="https://pic.hana0721.top/99749488_p0_master1200.83an1pr7zr.webp"/><enclosure url="https://pic.hana0721.top/99749488_p0_master1200.83an1pr7zr.webp"/></item><item><title>RT-1：Robotics Transformer 论文精读</title><link>https://agusexp25.top/blog/paper-deep-dive-rt1</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-rt1</guid><description>精读 RT-1 的实时多任务机器人策略。</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;论文名称&lt;/strong&gt;：《RT-1: Robotics Transformer for Real-World Control at Scale》&lt;br&gt;
&lt;strong&gt;作者&lt;/strong&gt;：Anthony Brohan、Noah Brown、Chelsea Finn、Karol Hausman、Sergey Levine、Ted Xiao、Fei Xia 等&lt;br&gt;
&lt;strong&gt;会议&lt;/strong&gt;：ICLR 2023&lt;br&gt;
&lt;strong&gt;论文链接&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2212.06817&quot;&gt;arXiv&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;项目主页&lt;/strong&gt;：&lt;a href=&quot;https://robotics-transformer1.github.io/&quot;&gt;Robotics Transformer 1&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;代码&lt;/strong&gt;：&lt;a href=&quot;https://github.com/google-research/robotics_transformer&quot;&gt;google-research/robotics_transformer&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; RT-1 把“图像 + 自然语言指令 $\rightarrow$ 机器人动作”视为 sequence modeling：FiLM-EfficientNet 提取语言条件视觉 token，TokenLearner 压缩 token，decoder-only Transformer 预测离散动作。模型约 35M 参数，在 13 台机器人、17 个月、约 130k 条演示上学习 744 条指令，并以 3 Hz 闭环执行。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;提出实时约束下的 Robotics Transformer 架构。&lt;/li&gt;
&lt;li&gt;建立约 130k episodes、13 台机器人、744 条指令的数据集。&lt;/li&gt;
&lt;li&gt;系统验证 model size、data quantity、data diversity、simulation 和 multi-robot data。&lt;/li&gt;
&lt;li&gt;在超过 3000 次真实试验中达到 97% seen、76% unseen、83% distractor、59% background 成功率。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; RT-1 的关键不是单纯堆 Transformer，而是语言早期融合、视觉 token 压缩、非自回归动作头与高多样性数据的组合。&lt;/p&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 机器人 imitation learning 的数据采集昂贵，论文借鉴视觉和 NLP 的大模型范式，问一个 backbone 能否吸收开放式多任务数据并重组已见 skill 与 object。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;语言条件策略&lt;/strong&gt;：通常由 CNN/MLP 做动作回归，容量有限。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Transformer policy&lt;/strong&gt;：Gato、Behavior Transformer 序列化轨迹，但没有同时解决语言融合与实时延迟。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;高层规划 + 低层控制&lt;/strong&gt;：SayCan 先规划技能，再调用单技能 controller；RT-1 试图把多技能 controller 做成 backbone。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; RT-1 主要做已见 verb 与 noun 的组合泛化，并不等于开放词汇机器人。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 策略接收语言指令和最近 6 帧 $300\times300$ RGB 图像，输出 arm、base、mode 动作，直到 terminate 或达到时间上限。&lt;/p&gt;
&lt;p&gt;| 项目 | 定义 |
| --- | --- |
| Embodiment | 7DoF arm、两指夹爪、移动底座 |
| Arm action | 位移、旋转和 gripper opening，共 7 维 |
| Base action | $x,y,yaw$，共 3 维 |
| Mode | arm / base / terminate |
| Action | 连续维度均匀分为 256 bins |
| Training | 成功 tele-operation demonstration 上的 behavioral cloning |
| Runtime | 约 3 Hz，模型预算小于 100 ms |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; RT1ActionTokenizer 将浮点 action 映射到 vocab_size=256 个桶；int32 action 是 one-hot 类别，时间窗口默认 6。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-rt1/rt1-full-model-crop.webp&quot; alt=&quot;RT-1 完整架构：USE、FiLM-EfficientNet、TokenLearner 与 Transformer（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 6 帧图像经过 ImageNet-pretrained EfficientNet-B3，USE 指令 embedding 通过 identity-initialized FiLM 注入；81 个视觉 token 经 TokenLearner 压成 8 个，6 帧形成 48 个上下文 token，输入 8 层 decoder-only Transformer。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; FiLM 早期提取 task-relevant 特征，TokenLearner 将注意力长度从 $6\times81$ 降到 $6\times8$，共同满足实时闭环。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; EfficientNet 输出 $9\times9\times512$ feature map，即 81 个视觉 token；FiLM 使用零初始化的 $\gamma,\beta$，保持预训练网络初始为 identity；TokenLearner 输出每帧 8 个 learned token；Transformer 使用 8 层 self-attention、约 19M 参数。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; film_conditioning_layer.py 实现 $(1+\gamma(c))\odot h+\beta(c)$；configs/transformer_mixin.gin 默认 8 layers、8 heads、layer size 128、feed-forward size 512、dropout 0.1、vocab size 256。&lt;/p&gt;
&lt;p&gt;对连续维度 $a_j\in[a_j^{\min},a_j^{\max}]$：&lt;/p&gt;
&lt;p&gt;$$b_j=\left\lfloor\frac{a_j-a_j^{\min}}{a_j^{\max}-a_j^{\min}}(256-1)\right\rfloor.$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; tokenize 先 clip、归一化、取整；detokenize 反变换，非法离散 index 置为 0。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;p&gt;$$
\mathcal L_{\mathrm{BC}}
=-\frac{1}{TK}\sum_{t=1}^{T}\sum_{k=1}^{K}
\log\operatorname{softmax}(z_{t,k})[b_{t,k}].
$$&lt;/p&gt;
&lt;p&gt;其中 $T=6$ 为窗口时间步，$K$ 为动作 token 数，$b_{t,k}$ 为离散标签。&lt;strong&gt;【Code】&lt;/strong&gt; transformer_network.py 用 SparseCategoricalCrossentropy 计算 action loss，SequenceAgent 对 last step 做 mask 并用 Adam 更新。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 训练数据是成功的人类 VR demonstration，系统随机采样指令并随机化背景、物体位置。最大数据集约 130k episodes、744 条语言指令。&lt;strong&gt;【Code】&lt;/strong&gt; 公开仓库提供 TensorFlow/TFAgents 网络、Adam learning rate $10^{-4}$ 与 checkpoint 读取，但不含内部数据采集 pipeline。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; RT-1 约以 3 Hz 闭环执行；TokenLearner 和重用重叠窗口 token 分别带来约 2.4 倍和 1.7 倍加速。&lt;strong&gt;【Code】&lt;/strong&gt; 推理时逐维取 argmax 并写回 state，窗口满 6 步后左移；动作槽位不使用前一动作 token embedding，因此不是完整 autoregressive decoding。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;| 概念 | 代码位置 | 行为 |
| --- | --- | --- |
| FiLM-EfficientNet | film_efficientnet/ | 512 维 context 产生逐通道 $\gamma,\beta$，零初始化 |
| Image tokenizer | tokenizers/image_tokenizer.py | 81 个 token；可选 TokenLearner 输出 8 个 |
| Action tokenizer | tokenizers/action_tokenizer.py | 连续 action 映射 256 bins |
| Transformer | transformer.py、configs/transformer_mixin.gin | 8 层 self-attention、causal mask |
| Loss / state | transformer_network.py、sequence_agent.py | sparse CE、Adam、6-step state window |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 公开代码适合核对 tokenizer、网络结构和 stateful inference，不能逐行复现论文内部数据采集与真实厨房评估。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-rt1/robot-setup-crop.webp&quot; alt=&quot;RT-1 的训练教室、真实厨房和移动机械臂（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 数据来自 13 台 Everyday Robots，收集 17 个月；测试使用 classroom、Kitchen1、Kitchen2，覆盖 seen/unseen instructions、distractor/background robustness 与长时序指令。baseline 与 RT-1 使用同一份大规模数据。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-rt1/main-baselines-crop.webp&quot; alt=&quot;RT-1 与 Gato、BC-Z 的成功率（论文 Figure 4）&quot;&gt;&lt;/p&gt;
&lt;p&gt;| 模型 | Seen | Unseen | Distractors | Backgrounds |
| --- | ---: | ---: | ---: | ---: |
| Gato | 65 | 52 | 43 | 35 |
| BC-Z | 72 | 19 | 47 | 41 |
| BC-Z XL | 56 | 43 | 23 | 35 |
| &lt;strong&gt;RT-1&lt;/strong&gt; | &lt;strong&gt;97&lt;/strong&gt; | &lt;strong&gt;76&lt;/strong&gt; | &lt;strong&gt;83&lt;/strong&gt; | &lt;strong&gt;59&lt;/strong&gt; |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; RT-1 在超过 700 条训练指令上达到 97% seen success；unseen 76%；distractor/background 为 83%/59%。SayCan 长时序实验中，Kitchen1、Kitchen2 execution success 都为 67%。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-rt1/data-ablation-crop.webp&quot; alt=&quot;数据量与数据多样性消融（论文 Figure 5）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 完整数据的 seen/unseen/distractor/background 为 97/76/83/59。将每任务样本上限降到 200、100、50（保留约 51%、37%、22% 数据）时泛化逐步下降；只保留 75% 任务、仍保留 97% 数据时，四项为 86/67/42/53。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 覆盖哪些 skill-object 组合比单个组合重复多少次更关键。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-rt1/sim-delta-crop.webp&quot; alt=&quot;RT-1 在模拟物体和跨机器人数据上的迁移结果（论文 Figure 6）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 加入 simulation data 后，模拟中见过的物体从 23% 提升到 87%，unseen skill 从 7% 到 33%，real-object performance 基本不降。加入 209k 条 Kuka 数据后，classroom 仅降 2 个百分点，EDR bin-picking 从 22% 到 39%；单独 Kuka 数据训练控制 EDR 为 0%。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 早期语言融合聚焦视觉，TokenLearner 节省注意力预算，离散 action token 统一回归接口，大而多样的数据提供组合泛化。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;FiLM-EfficientNet → TokenLearner → Transformer 的紧凑接口。&lt;/li&gt;
&lt;li&gt;数据采集、背景随机化、simulation model selection 与真实评估形成 scaling loop。&lt;/li&gt;
&lt;li&gt;分别测量 data quantity、data diversity、heterogeneous source 和 long-horizon。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Gato 缺少语言条件化 image tokenizer 和 TokenLearner；BC-Z 是无历史的 continuous-action policy。RT-1 在 encoder 内融合语言，保留 6 帧历史并用离散 token 建模。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; RT-1 的 action head 仍是专门的 robot Transformer；RT-2 才把 action token 放回大型 VLM 词表。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;训练与部署的 action spec、相机视角和机器人动力学足够接近。&lt;/li&gt;
&lt;li&gt;新指令主要是已见 skill 与 object 的新组合。&lt;/li&gt;
&lt;li&gt;6 帧历史足以处理短期上下文。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; RT-1 是 imitation learning，难以超过 demonstrator；新指令泛化受限于已见概念组合，不能可靠产生训练中从未出现的新 motion；任务仍以不太灵巧的厨房 manipulation 为主。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;256-bin 均匀量化可能引入控制误差，并依赖部署方正确提供 min/max spec。&lt;/li&gt;
&lt;li&gt;非自回归 action slots 牺牲动作维度之间显式的条件依赖。&lt;/li&gt;
&lt;li&gt;公开代码没有数据采集和训练 pipeline，难以复现完整 scaling 曲线。&lt;/li&gt;
&lt;li&gt;跨 Kuka/EDR 依赖混合训练，不能推出任意 embodiment 的零样本迁移。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 先设计高效 observation/action token 接口，再考虑把 backbone 做大；评估数据规模必须同时报告 diversity；simulation 与其他机器人数据应作为能力增量，并在目标 embodiment 上保留锚点数据。RT-1 把路线从单任务 controller 推进到了可规模化的 robot policy backbone。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/75863098_p0_master1200.8aduokw8y2.webp"/><enclosure url="https://pic.hana0721.top/75863098_p0_master1200.8aduokw8y2.webp"/></item><item><title>RLinf-VLA 论文精读：统一且高效的 VLA 强化学习框架</title><link>https://agusexp25.top/blog/paper-deep-dive-rlinf-vla</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-rlinf-vla</guid><description>精读 RLinf-VLA：用统一接口连接 VLA、PPO/GRPO 与多种模拟器，并通过混合 GPU 分配和细粒度流水线提升具身强化学习效率。</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; RLinf-VLA 不是一个新的 VLA backbone，而是一套面向 VLA 强化学习（RL）的系统与算法实践：它统一了模型、环境和 RL 算法接口，再通过可配置的 GPU allocation 与 rollout pipeline，让“生成动作—模拟器执行—策略更新”这条闭环更容易扩展和复现。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-rlinf-vla/overview.2h91ozhq5l.webp&quot; alt=&quot;RLinf-VLA 系统总览（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;统一抽象&lt;/strong&gt;：以统一接口接入 ManiSkill、LIBERO、RoboTwin 等模拟器，OpenVLA、OpenVLA-OFT、&lt;code&gt;π_0&lt;/code&gt; 等 VLA，以及 PPO、GRPO 等算法。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;混合资源调度&lt;/strong&gt;：支持 collocated、disaggregated 和 hybrid 三种 GPU allocation；hybrid 模式允许 Simulator 与 Generation 使用不同 GPU 分区，而 Training 可使用全部 GPU。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;细粒度流水线&lt;/strong&gt;：将一个 simulator instance 切成多个 sub-simulator，通过 &lt;code&gt;pipeline_stage_num=2&lt;/code&gt; 让环境推进和 action generation 重叠，降低 GPU bubbles。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;具身 RL 设计选择&lt;/strong&gt;：系统化比较 action-level/chunk-level value、partial reset、valid action mask、trajectory-length normalization 和 GRPO reward filtering。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;强实验结果&lt;/strong&gt;：单个模型在 130 个 LIBERO 任务上达到 98.11% success，在 25 个 ManiSkill 任务上达到 97.66%；RoboTwin 六个任务平均达到 84.63%。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; VLA 把图像、语言指令和机器人状态映射到动作，但 SFT 只覆盖示教分布。遇到新物体、新语言或执行误差时，策略可能进入示教数据没有覆盖的状态；online RL 能通过环境 reward 直接优化这些失败后的恢复行为。&lt;/p&gt;
&lt;p&gt;已有 VLA+RL 工作往往是“某个模型 + 某个模拟器 + 某个算法”的垂直实现。这样会带来三个问题：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;比较不公平&lt;/strong&gt;：模型、环境 wrapper、episode 处理和 evaluation protocol 同时变化。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;系统不匹配&lt;/strong&gt;：VLA inference、GPU simulator 和 gradient training 对显存/计算的需求不同，简单共享 GPU 会产生等待和 offload 开销。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;经验难迁移&lt;/strong&gt;：action chunk 的 credit assignment、episode reset 和 GRPO 的组内归一化没有统一实现。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; RLinf-VLA 的定位更接近“具身 RL 基础设施 + 可复用算法组件”，而不是单点策略模型。论文将系统效率和训练稳定性放在同一篇技术报告中讨论，这也是它与只改 loss 的方法的本质区别。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; VLA RL 被建模为部分可观测 MDP：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Observation&lt;/strong&gt; $o_t$：多视角 RGB、语言指令和 proprioceptive state。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Policy&lt;/strong&gt; $pi_\theta(a_t\mid o_t)$：VLA 根据观测生成 action 或 action chunk。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Environment&lt;/strong&gt;：ManiSkill、LIBERO、RoboTwin 等模拟器，返回下一观测和 reward。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Objective&lt;/strong&gt;：最大化轨迹的折扣回报 $J(\theta)=\mathbb E[\sum_t \gamma^t r_t]$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Action hierarchy&lt;/strong&gt;：Chunk → Atomic Action → Token。一个 chunk 含多个连续控制 action，每个 action 又可拆成模型输出的多个 token。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;因此训练闭环不是单次 forward，而是：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;Observation → Generation(VLA) → Action/Chunk → Simulator → Reward/next Observation
       ↑                                                        ↓
       └────────────────────── Training(PPO/GRPO) ─────────────┘
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-rlinf-vla/rollout.1sfs4yu7e7.webp&quot; alt=&quot;VLA 强化学习 rollout pipeline（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;RLinf-VLA 将一次 RL epoch 拆成三个组件：&lt;strong&gt;Generation&lt;/strong&gt; 负责按 observation 采样动作，&lt;strong&gt;Simulator&lt;/strong&gt; 执行动作并产生 trajectory，&lt;strong&gt;Training&lt;/strong&gt; 计算 advantage/loss 并更新 actor。统一 data interface 将不同环境的 observation、action chunk、termination 和 reward 映射成相同的数据结构。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 资源层提供三种运行模式：&lt;/p&gt;
&lt;p&gt;| 模式 | 资源关系 | 主要优点 | 主要问题 |
| --- | --- | --- | --- |
| Collocated | 三个组件共享 GPU，rollout 开始/结束时 offload | 配置简单、显存集中 | Generation 与 Simulator 互等，GPU 长时间占用但不计算 |
| Disaggregated | 每个组件使用互不重叠的 GPU 分区 | 组件间互不干扰 | rollout 等待 Training 时会有整块 GPU 空闲 |
| Hybrid | Generation/Simulator 分区，Training 可覆盖全部 GPU | 兼顾隔离和利用率 | 需要 placement 与 pipeline 调参 |&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-rlinf-vla/hybrid-pipeline.szorsrfr3.webp&quot; alt=&quot;Hybrid allocation with fine-grained pipeline（论文 Figure 4）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;Unified Environment Interface&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：各模拟器原生 observation、动作和 reset 配置。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：统一的 observation/action batch、chunk-level reward、termination/truncation 和 episode metadata。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;功能&lt;/strong&gt;：把 GPU-parallelized 的 ManiSkill/RoboTwin 与 CPU-parallelized 的 LIBERO 放到同一 runner 中，并原生支持 &lt;code&gt;chunk_step&lt;/code&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 对应 &lt;code&gt;rlinf/envs/maniskill/maniskill_env.py&lt;/code&gt;、&lt;code&gt;rlinf/envs/libero/libero_env.py&lt;/code&gt; 和 &lt;code&gt;rlinf/envs/robotwin/robotwin_env.py&lt;/code&gt;；环境注册与构造由 &lt;code&gt;rlinf/envs&lt;/code&gt; 下的 factory 完成。&lt;/p&gt;
&lt;h4&gt;Flexible GPU Placement&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：GPU 数量、环境数量、Generation/Simulator 的 profile latency。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：$(N_G,N_S,k)$，分别表示 Generation GPU 数、Simulator GPU 数和 pipeline stage 数。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;功能&lt;/strong&gt;：在 &lt;code&gt;k=1&lt;/code&gt; 的 collocated 与 &lt;code&gt;k=2&lt;/code&gt; 的 pipelined rollout 中选择预计耗时更低的配置。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Profiling 先测量不同 batch size 下的 $t_G$ 与 $t_S$，再比较：&lt;/p&gt;
&lt;p&gt;$$
t_1=m\left[t_G\left(\frac{n_S}{N}\right)+t_S\left(\frac{n_S}{N}\right)\right]
$$&lt;/p&gt;
&lt;p&gt;和 pipeline 的估计耗时 $t_2$，选择 $\arg\min_{k\in{1,2},N_G+N_S=N}t_k$。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方仓库的 &lt;code&gt;rlinf/scheduler/placement/&lt;/code&gt; 与 &lt;code&gt;rlinf/utils/placement.py&lt;/code&gt; 实现 placement；&lt;code&gt;examples/embodiment/config/*&lt;/code&gt; 通过 &lt;code&gt;cluster.component_placement&lt;/code&gt; 和 &lt;code&gt;rollout.pipeline_stage_num&lt;/code&gt; 配置它。&lt;/p&gt;
&lt;h4&gt;Multi-granularity RL Calculation&lt;/h4&gt;
&lt;p&gt;同一 action chunk $c_t=(a_{t,1},\ldots,a_{t,C})$ 可以在三种粒度计算：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Chunk-level&lt;/strong&gt;：$\pi(c_t\mid o_t)=\prod_i\pi(a_{t,i}\mid o_t,a_{t,&amp;#x3C;i})$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Action-level&lt;/strong&gt;：每个 atomic action 的概率为其 token 概率乘积。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Token-level&lt;/strong&gt;：直接使用单个 action token 的 log-probability。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 粒度越细，credit assignment 越精确，但需要保存/计算的 log-probability 更多；RLinf-VLA 将粒度做成配置项，因而可以在不重写 runner 的情况下做消融。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;PPO clipped objective&lt;/h4&gt;
&lt;p&gt;$$
L^{\mathrm{PPO}}=\mathbb E_t\left[\min\left(r_t(\theta)\hat A_t,;\operatorname{clip}(r_t(\theta),1-\epsilon,1+\epsilon)\hat A_t\right)\right]
$$&lt;/p&gt;
&lt;p&gt;其中 $r_t(\theta)=\pi_\theta(a_t\mid o_t)/\pi_{\theta_{old}}(a_t\mid o_t)$，$\hat A_t$ 是 advantage，$\epsilon$ 是 clip ratio。对 action chunk，$\hat A_t$ 可以广播到 chunk 内 token，也可以为每个 atomic action 单独估计。&lt;/p&gt;
&lt;h4&gt;GAE&lt;/h4&gt;
&lt;p&gt;$$
\delta_t=r_t+\gamma V(o_{t+1})-V(o_t),\qquad
\hat A_t=\delta_t+\gamma\lambda\hat A_{t+1}
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; PPO 不使用独立的大 critic，而是在 VLA language model 上挂轻量 value head；action-level value 输出 $C$ 个值，chunk-level value 只输出一个标量。&lt;/p&gt;
&lt;h4&gt;GRPO relative advantage&lt;/h4&gt;
&lt;p&gt;对同一 observation 采样的 group $G$ 条轨迹，GRPO 使用组内回报的相对值：&lt;/p&gt;
&lt;p&gt;$$
\hat A_i=\frac{R_i-\operatorname{mean}(R_{1:G})}
{\operatorname{std}(R_{1:G})+\varepsilon}
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文进一步加入 valid action mask，屏蔽任务完成后的 action；并按 trajectory length 归一化 loss，避免长 episode 在 batch 中占据过大权重。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;训练输入是 SFT/VLA checkpoint、并行环境和 Hydra 配置；输出是更新后的 actor checkpoint。一次 epoch 先收集 rollout，再算 advantage 与 log-probability，最后用 PPO/GRPO 更新 actor/value head。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;rlinf/runners/embodied_runner.py&lt;/code&gt; 负责同步训练主循环，&lt;code&gt;rlinf/runners/async_ppo_embodied_runner.py&lt;/code&gt; 与 &lt;code&gt;rlinf/runners/async_embodied_runner.py&lt;/code&gt; 提供异步变体；PPO worker 位于 &lt;code&gt;rlinf/workers/actor/async_ppo_fsdp_worker.py&lt;/code&gt;，算法函数集中在 &lt;code&gt;rlinf/algorithms/&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;以官方 &lt;code&gt;examples/embodiment/config/maniskill_async_ppo_openvlaoft.yaml&lt;/code&gt; 为例，配置使用 action-level reward、token-level log-probability、GAE、&lt;code&gt;gamma=0.99&lt;/code&gt;、&lt;code&gt;gae_lambda=0.95&lt;/code&gt;、LoRA rank 32 和 FSDP gradient checkpointing。&lt;strong&gt;【Code】&lt;/strong&gt; 这些是示例配置，不应当被理解为所有实验的唯一超参数。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;推理阶段不计算 advantage，也不更新参数。模型接受当前 observation，生成一个 action 或 action chunk；环境执行 chunk 后返回新 observation。若配置了 auto-reset，完成或截断的子环境会被重新初始化。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;rlinf/runners/embodied_eval_runner.py&lt;/code&gt; 用于评测；不同模型的 action decoding 与 chunk horizon 位于 &lt;code&gt;rlinf/models/&lt;/code&gt; 和环境 wrapper 中。真实部署配置还可见 &lt;code&gt;examples/embodiment/config/realworld_eval_dual_franka.yaml&lt;/code&gt;，但本文实验主体仍是模拟器训练。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;| 论文概念 | 官方代码位置 | 对照结论 |
| --- | --- | --- |
| Generation / Simulator / Training | &lt;code&gt;rlinf/runners/embodied_runner.py&lt;/code&gt; | runner 将 rollout 与 update 解耦，便于同步或异步执行 |
| PPO / GRPO | &lt;code&gt;rlinf/algorithms/&lt;/code&gt;、&lt;code&gt;rlinf/workers/actor/&lt;/code&gt; | advantage 与 loss 通过 registry/config 组合 |
| VLA 模型 | &lt;code&gt;rlinf/models/&lt;/code&gt;、&lt;code&gt;examples/embodiment/config/model/&lt;/code&gt; | OpenVLA/OFT、OpenPI 等模型遵循统一 actor 接口 |
| Simulator | &lt;code&gt;rlinf/envs/maniskill/&lt;/code&gt;、&lt;code&gt;libero/&lt;/code&gt;、&lt;code&gt;robotwin/&lt;/code&gt; | wrapper 统一 reset、chunk step、reward 和 episode flags |
| GPU placement | &lt;code&gt;rlinf/scheduler/placement/&lt;/code&gt; | 支持 component placement 与 pipeline stage 配置 |
| Checkpoint / sync | &lt;code&gt;rlinf/utils/checkpoint.py&lt;/code&gt;、&lt;code&gt;rlinf/hybrid_engines/weight_syncer/&lt;/code&gt; | actor 权重在训练与 rollout worker 间同步 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 论文中的“统一接口”在代码层面主要表现为配置驱动的 runner、env wrapper 和 actor worker 组合；它并没有把所有模型强行改成同一个网络，而是要求它们满足相同的 observation/action contract。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 实验覆盖三类模拟器和三类问题：&lt;/p&gt;
&lt;p&gt;| Benchmark | 训练设置 | 评测重点 |
| --- | --- | --- |
| ManiSkill | 25 个 pick-and-place 任务，256 个随机 episode 的 vision/language/action OOD | OpenVLA 与 OpenVLA-OFT，PPO/GRPO 及 GPU allocation |
| LIBERO | 一个模型联合训练 5 个 task group，共 130 个任务；每任务 50 episode、3 个 seeds | 大规模 multitask 与 GRPO 泛化 |
| RoboTwin | 6 个任务，每任务 1000 个固定训练 scene seeds | 128 个未见 seeds 的 OOD success |&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-rlinf-vla/libero.3d5j4frei7.webp&quot; alt=&quot;LIBERO-130 训练曲线（论文 Figure 7）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;LIBERO-130&lt;/strong&gt;：OpenVLA-OFT 单模型平均 success &lt;strong&gt;98.11%&lt;/strong&gt;，相比 base 平均提升 &lt;strong&gt;56.02 个百分点&lt;/strong&gt;；这是跨 5 个 task group 的统一模型，而不是每组单独训练。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ManiSkill&lt;/strong&gt;：OpenVLA RL 后达到 &lt;strong&gt;81.93%&lt;/strong&gt;（base 39.10%），OpenVLA-OFT RL 后达到 &lt;strong&gt;77.05%&lt;/strong&gt;（base 18.29%）；论文报告的 25-task 最佳结果为 &lt;strong&gt;97.66%&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;RoboTwin&lt;/strong&gt;：6 个任务平均 &lt;strong&gt;84.63%&lt;/strong&gt;，平均提升超过 60%；在 Bottles、Can、Hand 等困难任务上超过 SimpleVLA-RL。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;真实 drawer-closing 初步实验&lt;/strong&gt;：SFT-only 与 sim-RL 模型均为 8/10 success，但 RL 模型执行更直接；这只是小规模 transfer 证据，不是大规模 real-world benchmark。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-rlinf-vla/efficiency.2yz3dkj359.webp&quot; alt=&quot;不同 GPU allocation 与 pipeline 的吞吐比较（论文 Figure 9）&quot;&gt;&lt;/p&gt;
&lt;p&gt;系统效率方面，ManiSkill 上 OpenVLA 的 hybrid &lt;code&gt;pipe=2&lt;/code&gt; 相比 disaggregated baseline 最高 &lt;strong&gt;1.88×&lt;/strong&gt;，常见设置保持 &lt;strong&gt;1.61×–1.69×&lt;/strong&gt; 优势；LIBERO/RoboTwin 的 collocated 设置相较 SimpleVLA-RL 最高达到 &lt;strong&gt;2.27×&lt;/strong&gt; 加速。&lt;strong&gt;【Paper】&lt;/strong&gt; 最优模式依赖 simulator 是否 GPU-parallelized、模型是否输出 action chunk，以及 Generation/Simulator 的耗时比例。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-rlinf-vla/ablation-value.4g58fbn7uw.webp&quot; alt=&quot;PPO 中 action-level 与 chunk-level value 的消融（论文 Figure 11）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 消融给出几条可复用的经验：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Action-level value 优于 chunk-level value&lt;/strong&gt;：在 OpenVLA-OFT 的 ManiSkill 与 LIBERO-Goal 上 success 更高、value loss 更低。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Partial reset 更适合 PPO 的 success-once 目标&lt;/strong&gt;：子环境成功后立即 reset，可在相同 rollout budget 中采集更多有效轨迹。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Trajectory-length normalization 有帮助&lt;/strong&gt;：LIBERO-Goal 中，按轨迹长度归一化的 GRPO 比不归一化更稳定。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Valid action mask 通常有利于 GRPO&lt;/strong&gt;：屏蔽成功后的无效 action，和 length normalization 叠加时收益更明显；但 ManiSkill 上收益并不总是显著。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Success-rate filter 不是普适增益&lt;/strong&gt;：在某些 OpenVLA ManiSkill 设置可避免训练崩溃，但在 OpenVLA-OFT 的部分任务上影响较小。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; ManiSkill 的 OOD 协议分别改变视觉、语言和动作条件；RoboTwin 使用未见 scene seeds；LIBERO 则用一个模型覆盖 130 个任务。三者共同说明 RL 后的收益不只来自单一训练轨迹记忆。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 但“泛化”仍受 benchmark 设计约束：大多数 OOD 变化发生在已知模拟器与任务族内，不能直接推出对真实机器人、全新 embodiment 或开放世界物体的泛化。真实实验只有 10 次尝试，证据强度明显低于模拟结果。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; RLinf-VLA 的收益来自两个相互独立的杠杆：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;系统杠杆&lt;/strong&gt;：hybrid placement 把 Generation 与 Simulator 的资源竞争显式化，pipeline 则用另一个 sub-simulator 填补等待时间。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;优化杠杆&lt;/strong&gt;：action-level value、partial reset 和 valid mask 让 reward 更贴近“完成任务一次”的目标，减少 chunk 内和成功后的无效 credit assignment。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果只提高 GPU 数量而不改变 allocation，rollout 仍会被最慢组件限制；如果只改 loss 而保留 GPU bubble，wall-clock 训练成本依旧很高。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;把 VLA RL 的 resource scheduling 当作一等公民&lt;/strong&gt;，而不是把 simulator 当作普通 DataLoader。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;用可组合接口承载多模型、多环境、多算法&lt;/strong&gt;，让实验比较更接近 controlled study。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;将 chunk/action/token 三种粒度暴露为配置&lt;/strong&gt;，同时覆盖 PPO 的 critic 与 GRPO 的 policy loss。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;把经验性训练技巧写进可复现配置&lt;/strong&gt;，例如 partial reset、trajectory normalization 和 reward filtering。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; SimpleVLA-RL 证明了大规模 VLA RL 可行，但主要沿用 LLM RL 基础设施；RLinf-VLA 针对 embodied setting 处理了 simulator GPU contention、向量化环境和 chunked action。与单一算法论文相比，它的主要产物是一个可扩展平台和跨 benchmark 的实践结论。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Training 活跃时通常使用全部 $N$ 张 GPU，placement 重点优化 rollout 阶段。&lt;/li&gt;
&lt;li&gt;自动 placement 主要考虑 Simulator 与 Generation 的二分配，并把 pipeline 深度限制为 $k\le2$。&lt;/li&gt;
&lt;li&gt;环境 reward 足以评估任务完成度，且模拟器 API 能可靠返回 termination/success。&lt;/li&gt;
&lt;li&gt;Action chunk 的 log-probability 可以在 token/action/chunk 粒度一致地重算或缓存。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这些假设让系统易于落地，但也限制了更复杂的多阶段 pipeline、异步 off-policy 或昂贵真实机器人 rollout。&lt;/p&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文把 off-policy RL（仅以 DSRL/Soft Actor-Critic 风格支持 &lt;code&gt;π&lt;/code&gt; 系列模型）列为初步扩展，主要实验仍集中在 on-policy PPO/GRPO。自动 placement 也只搜索两阶段 pipeline；不同任务的最优模式仍需 profile。真实世界实验规模有限。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;系统复杂度转移&lt;/strong&gt;：统一接口降低了模型接入成本，却增加了 Hydra 配置、Ray/worker、FSDP 和 weight sync 的运维成本。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;吞吐不等于样本效率&lt;/strong&gt;：1.88×/2.27× 是 wall-clock 或 throughput 加速，不代表同等环境交互量下的最终策略质量提高同样比例。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;资源搜索空间仍有限&lt;/strong&gt;：只考虑最多两级 pipeline，未覆盖多模型 serving、异构 GPU、网络拓扑和动态负载变化。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;奖励与 reset 强耦合&lt;/strong&gt;：partial reset、valid mask 的收益依赖 success-once 目标；换成 dense reward、长时序任务后结论可能改变。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;公平比较风险&lt;/strong&gt;：不同 benchmark 的 base checkpoint、action horizon 和评测协议不同，跨模型直接比较最终 success 需要谨慎。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这篇论文给 VLA RL 的最大启发不是“选择 PPO 还是 GRPO”，而是先把实验拆成三个可测量层次：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;策略层&lt;/strong&gt;：action chunk 如何分配 credit，value/log-probability 用哪种粒度。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;交互层&lt;/strong&gt;：环境 reset、mask、trajectory length 是否与 reward 定义一致。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;系统层&lt;/strong&gt;：Generation、Simulator、Training 的瓶颈是否被 profile，并由 placement/pipeline 消除。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;一个值得继续验证的方向是让 placement 与 learning progress 联动：训练早期模型生成慢、环境成功率低，后期可能反过来由 simulator 或数据通信成为瓶颈。静态 &lt;code&gt;pipeline_stage_num&lt;/code&gt; 可能不是最优，动态调整 rollout batch、GPU 分区和 action horizon 有机会进一步降低成本。&lt;/p&gt;
&lt;p&gt;另一个方向是把 RLinf-VLA 的统一 contract 延伸到真实机器人：将 Robot、camera、网络和安全约束也纳入资源调度，才能检验“统一具身 RL 平台”是否能从 simulator 走向长期在线学习。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/112236596_p0_master1200.232gogbiox.webp"/><enclosure url="https://pic.hana0721.top/112236596_p0_master1200.232gogbiox.webp"/></item><item><title>RLinf-USER：真机在线策略学习系统 论文精读</title><link>https://agusexp25.top/blog/paper-deep-dive-rlinf-user</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-rlinf-user</guid><description>精读 RLinf-USER：将机器人作为一等硬件资源，以异步流水线、云边通信和持久回放缓冲区支撑长时程真机在线策略学习。</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; RLinf-USER（下文简称 USER）并不提出新的 robot policy，而是提出一套面向真机 online policy learning 的系统：将机器人与 GPU 同等抽象为可发现、可调度的硬件资源，再用云边通信、异步数据流和持久化 replay buffer 把长时间学习闭环组织起来。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;将 GPU、物理机器人及其相机、SpaceMouse 等外设纳入统一 Hardware Abstraction Layer（HAL），支持异构机器人发现、健康检查和按 rank 的资源绑定。&lt;/li&gt;
&lt;li&gt;用 UDP tunnel、按 key 分片的 distributed data channel，以及限制 NCCL CTA 数的 SM-aware weight synchronization 解决云边环境中的连通性与 GPU 争用。&lt;/li&gt;
&lt;li&gt;将 rollout、真机交互、传输、训练和权重同步解耦为 fully asynchronous pipeline，并以 persistent-cache-aware buffer 支撑跨天、跨策略版本的数据复用与恢复。&lt;/li&gt;
&lt;li&gt;通过 CNN/MLP、flow policy 和 $\pi_0$，以及 SAC、SAC-Flow、RLPD、HG-DAgger 等组合，在仿真和 Franka/ARX 真机任务上验证系统的可扩展性。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这篇论文的关键贡献是改变“真机 RL 的默认执行模型”。它把机器人看作稀缺、慢速、可能断连的生产资源，因此首要目标是让机器人尽量持续产出安全交互数据，而不是让每一步都等待一次同步优化。&lt;/p&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 模拟器可以加速、并行和重置，因而许多分布式 RL 系统以同步或 GPU 中心的流水线为前提；真机却受制于交互时长、人工 reset、网络边界和高维视觉轨迹存储。训练较慢、网络抖动或 checkpoint 更新若阻塞控制，都会直接减少最昂贵的资源——机器人交互时间。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; ROS2、Zenoh 提供机器人通信能力，但并不直接覆盖学习工作负载的调度；SERL、QT-Opt 等系统主要面对单机器人或较小模型。Reverb、Flashbax 等 memory-centric buffer 采样快，但难以保存长周期视觉轨迹并在重启后恢复。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; USER 的定位不是替代 ROS 或 Ray：机器人控制仍由具体环境和驱动承担，Ray 负责 cluster membership/worker placement。论文新增的是把“物理资源 + 分布式学习 + 数据生命周期”连接成可复用闭环的一层系统语义。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文将真实世界任务建模为部分可观测 MDP：&lt;/p&gt;
&lt;p&gt;$$
(\mathcal{S},\mathcal{O},\mathcal{A},P,r,\gamma),
$$&lt;/p&gt;
&lt;p&gt;其中 $s_t$ 是隐状态、$o_t$ 为观测、$a_t$ 为动作、$P$ 为状态转移、$r$ 为奖励、$\gamma\in(0,1)$ 为折扣因子。策略只根据观测给出 $\pi_\theta(a_t\mid o_t)$。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 与常规 RL 的区别在于，数据 $(o_t,a_t,r_t,o_{t+1})$ 不是由大量同质 simulator 自动产生，而是来自异构真机、不同网络域、不同 policy version 和可能有人介入的长时程执行。系统因此必须同时满足以下约束：不中断 rollout、可追溯存储、可安全更新权重、并允许多种 policy/algorithm/reward 接入。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这意味着 USER 优化的不是单个 $J(\pi)$ 的数值，而是完成该优化所需的端到端吞吐、恢复性和可控性；只比较单步 actor loss 或 GPU utilization 无法说明系统是否适合真机学习。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-rlinf-user/architecture-crop.5c1purygs9.webp&quot; alt=&quot;USER 的系统架构（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 数据从 edge 上的 Env Worker/Robot Node 经 distributed channel 流向 Rollout Worker 与 Train Worker；HAL 决定进程实际绑定的机器人或 GPU，通信平面承担 tunnel、数据通道与权重同步。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;统一硬件抽象层&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 一个 node 输出若干 hardware unit；每个 unit 可以是一张 GPU，也可以是一台机器人及其所需外设。HAL checker 定义设备类型、发现方法和实例 metadata；启动时 hardware probe 汇总 inventory。GPU、相机等 PCIe/USB 设备可自动发现，IP 绑定的机器人则由配置驱动，并可检查网络可达性和传感器状态。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 当前官方仓库将这层实现放在 &lt;code&gt;rlinf/scheduler/hardware/&lt;/code&gt;：&lt;code&gt;Hardware&lt;/code&gt; 基类用注册表组织枚举策略，&lt;code&gt;robots/franka.py&lt;/code&gt;、&lt;code&gt;robots/xsquare.py&lt;/code&gt; 等提供机器人类型；&lt;code&gt;examples/embodiment/config/realworld_sac_flow_image.yaml&lt;/code&gt; 直接在 &lt;code&gt;cluster.node_groups[*].hardware&lt;/code&gt; 中声明 Franka 的 &lt;code&gt;robot_ip&lt;/code&gt; 和 &lt;code&gt;node_rank&lt;/code&gt;。&lt;/p&gt;
&lt;h4&gt;自适应通信平面&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-rlinf-user/communication-pipeline-crop.9ddp962k7w.webp&quot; alt=&quot;USER 学习框架与跨节点数据流（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; tunnel 将 NAT、校园网或工厂 VLAN 彼此隔离的节点放入扁平 TCP/IP 视图。&lt;code&gt;Channel&lt;/code&gt; 是可异步 &lt;code&gt;put/get&lt;/code&gt; 的具名 FIFO；它按 robot ID 等 key 分片到多个轻量服务，尽量让同一 edge 域内的 observation/action 不必绕行云端。GPU 间 NCCL 同步会消耗 streaming multiprocessor（SM），因此 USER 通过可调的 NCCL CTA 上限避免同步抢占 rollout。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;rlinf/scheduler/channel/&lt;/code&gt; 包含 &lt;code&gt;channel.py&lt;/code&gt;、&lt;code&gt;channel_worker.py&lt;/code&gt;，cluster 的 placement/config 位于 &lt;code&gt;rlinf/scheduler/cluster/&lt;/code&gt; 和 &lt;code&gt;rlinf/scheduler/placement/&lt;/code&gt;。仓库说明也将 &lt;code&gt;actor&lt;/code&gt;、&lt;code&gt;rollout&lt;/code&gt;、&lt;code&gt;env&lt;/code&gt; 分别放到可配置的 node group，而非固定同机部署。&lt;/p&gt;
&lt;h4&gt;异步流水线与持久缓冲区&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-rlinf-user/buffer-crop.8z79iau9g1.webp&quot; alt=&quot;Persistent-Cache-Aware Buffer：内存缓存保存最近轨迹，磁盘保存持久历史（论文 Figure 5）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Env/Rollout 持续产生 trajectory；训练从 autonomous replay buffer 与 demonstration buffer 异步采样，reward 可以在 rollout 时或离线后处理；新权重再按周期推给 rollout。buffer 将数据异步写入磁盘，在内存只保留带 FIFO replacement 的有界 cache；索引携带 policy version、timestamp 和 episode ID，已逐出的数据仍可按需从磁盘载入。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;rlinf/data/storage/replay/buffer.py&lt;/code&gt; 中的 &lt;code&gt;TrajectoryCache&lt;/code&gt; 是按 trajectory ID 管理的 FIFO tensor cache：新条目覆盖最旧 slot，缓存外的轨迹仍由持久存储层索引。示例配置将 &lt;code&gt;replay_buffer.enable_cache&lt;/code&gt;、&lt;code&gt;cache_size&lt;/code&gt;、&lt;code&gt;sample_window_size&lt;/code&gt; 与独立的 &lt;code&gt;demo_buffer&lt;/code&gt; 显式暴露出来。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; USER 是 system framework，算法目标取决于接入的 learner。以论文的 SAC 为例，最大熵目标为：&lt;/p&gt;
&lt;p&gt;$$
J(\pi)=\sum_{t=0}^{T}\mathbb{E}&lt;em&gt;{(o_t,a_t)\sim\rho&lt;/em&gt;\pi}
\left[r(o_t,a_t)+\alpha\mathcal{H}(\pi(\cdot\mid o_t))\right].
$$&lt;/p&gt;
&lt;p&gt;其中 $\rho_\pi$ 是策略诱导的采样分布，$\mathcal{H}$ 鼓励探索，温度 $\alpha$ 调节 reward 与熵的权衡。buffer 提供的 batch 让 critic 最小化 soft Bellman residual：&lt;/p&gt;
&lt;p&gt;$$
\mathcal{L}&lt;em&gt;Q(\psi)=\mathbb{E}&lt;/em&gt;{(o,a,r,o&apos;)\sim\mathcal{B}}
\left[Q_\psi(o,a)-\left(r+\gamma\mathbb{E}&lt;em&gt;{a&apos;\sim\pi&lt;/em&gt;\theta}
[Q_{\bar\psi}(o&apos;,a&apos;)-\alpha\log\pi_\theta(a&apos;\mid o&apos;)]\right)\right]^2.
$$&lt;/p&gt;
&lt;p&gt;这里 $\mathcal{B}$ 是 replay buffer，$Q_\psi$ 与 $Q_{\bar\psi}$ 分别为 critic 和 EMA target critic，$a&apos;$ 为下一观测的策略动作。&lt;strong&gt;【Analysis】&lt;/strong&gt; USER 不改变这一定义；它改变的是如何在不停机、跨节点和可恢复的数据条件下持续填充、采样和版本化 $\mathcal{B}$。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 训练 worker 可替换地支持 SAC、SAC-Flow、RLPD 与 HG-DAgger。RLPD 以固定比例混合 online replay 与 demonstration；HG-DAgger 在人工干预激活时执行人类动作并把介入数据加入 demonstration buffer。论文的 SAC/RLPD 设定使用 ResNet10+MLP、buffer size 20,000、batch size 256、$\gamma=0.96$、$3\times10^{-4}$ 学习率；SAC-Flow 使用 4 个 denoising steps。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; rollout node 上的 policy inference 与 robot node 的 action execution 可以分离：前者通常持有 GPU，后者可在 edge CPU 机器上控制机器人。异步并不表示动作可无序执行；它只让数据生成、训练和同步不互相等待，单条 robot control loop 仍需按实时性和安全约束顺序闭环。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方仓库已经超出论文 v3 的最初实验快照，包含更多模型、simulator 和算法；因此下表将论文组件映射到当前公开实现，而非把仓库新增功能误写为论文结论。&lt;/p&gt;
&lt;p&gt;| 论文概念       | 官方代码中的对应入口                                             | 含义                                               |
| -------------- | ---------------------------------------------------------------- | -------------------------------------------------- |
| HAL / 异构资源 | &lt;code&gt;rlinf/scheduler/hardware/&lt;/code&gt;、&lt;code&gt;rlinf/scheduler/cluster/config.py&lt;/code&gt; | 注册硬件类型、解析 &lt;code&gt;node_groups&lt;/code&gt; 和资源 placement  |
| 异步传输       | &lt;code&gt;rlinf/scheduler/channel/&lt;/code&gt;                                       | Worker 间 channel 与服务端实现                     |
| 真机环境       | &lt;code&gt;rlinf/envs/realworld/&lt;/code&gt;                                          | Franka、XSquare、GIM 等机器人及相机/遥操作 wrapper |
| 数据存储       | &lt;code&gt;rlinf/data/storage/replay/buffer.py&lt;/code&gt;                            | trajectory cache 与 replay 存储逻辑                |
| 真机 recipe    | &lt;code&gt;examples/embodiment/config/realworld_*.yaml&lt;/code&gt;                    | policy、algorithm、buffer、机器人绑定与训练参数    |&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文以 Franka 完成 Peg Insertion、Charger Plugging、Cap Tightening、Pick-and-Place 和 Table Clean-up 五项真机操作任务；小型 CNN/flow policy 在 RTX 4090（24 GB）训练，大型 $\pi_0$ 在 4×A100（80 GB）服务器训练。任务组合覆盖规则 dense/sparse reward、人工二元奖励和 learned reward model。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 同时测试双 Franka 并行采集，以及 7-DoF Franka 与 6-DoF 低成本 ARX 的异构联合训练；通信实验将 City A 的训练节点与 City B 的 rollout/robot 节点通过 tunnel 连接。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 系统并非只支持一种 policy：Peg Insertion 与 Charger 上的 SAC、RLPD 和 SAC-Flow 都能在约 2,000 s 内接近满成功率。对于 foundation VLA，$\pi_0$ 经 HG-DAgger online training 后，Pick-and-Place 从 $39/60$ 提升至 $58/60$，Table Clean-up 从 $9/20$ 提升至 $16/20$；前者约用 30 分钟和约 200 条 online samples 达到 96% 成功率。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 双 Franka 的不同任务并行训练约在 2,500 s 内收敛，与单臂基线相当。Franka+ARX 的一套 CNN policy 在不同 DoF、末端形态与相机参数下约两小时收敛，说明 HAL 至少可以承载这种 cross-embodiment 联合数据采集。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这些数字验证的是“同一系统能够跑通多种组合”，不是 CNN、flow、$\pi_0$ 之间的控制变量性能排名；它们训练预算、奖励和任务难度本来就不同。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-rlinf-user/async-sync-ablation.7ehiitx22z.webp&quot; alt=&quot;Peg Insertion 上 asynchronous 与 synchronous pipeline 的收敛对比（论文 Figure 10a）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 异步化的收益来自 stage overlap，而不是每个单独 stage 变快。对 $\pi_0$ + HG-DAgger，episode generation period 从 45.068 s 降至 37.538 s（1.20×），training period 从 45.011 s 降至 7.903 s（5.70×）；对 CNN + SAC，分别从 20.291 s 降至 13.108 s（1.55×）和从 0.643 s 降至 0.135 s（4.61×）。Peg Insertion 的曲线中，异步方案约 1,500 s 收敛，同步方案超过 8,000 s。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 权重同步 interval 也被消融：interval 为 1 或 8 时，episode 内频繁更新会带来 policy non-stationarity，导致收敛较慢甚至失败；更大的 interval 更稳定。这是“异步”不可忽略的控制面设计，而非只把所有 RPC 放到后台即可。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; distributed channel 在跨城云边实验中把单 episode generation time 从 69.265 s 降至 21.979 s，约 3×；相同网络域中则从 18.696 s 降至 17.304 s。结果表明按 key 本地化 edge 间 observation/action 流量，比把全部数据先送云端再转发更有效。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; buffer profiling 显示：增大 cache ratio 会提高采样吞吐；纯内存最快但受容量限制，纯磁盘容量大但吞吐不足一半，persistent + cache 方案在两者间折中。&lt;strong&gt;【Analysis】&lt;/strong&gt; 这类泛化主要指部署、网络和数据规模的泛化；不应将其直接解读为 policy 在新物体或新任务上的泛化能力。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; USER 针对三个真实系统瓶颈逐一解除耦合：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;采集慢&lt;/strong&gt;：生成和训练分离，优化慢时机器人仍可继续执行。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;网络不对称&lt;/strong&gt;：channel 分片让高频的 edge 内控制流停留在 edge，tunnel 只解决域间可达性。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;轨迹长且易中断&lt;/strong&gt;：持久索引保留历史，内存 cache 处理热点采样，重启不会将已付出代价的真机数据归零。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; HAL 中“机器人是一等硬件资源”是最有生产价值的抽象。它让 scheduler 不再只安排 GPU rank，而能把一个 rollout process 明确绑定到某台机器人及其传感器；这使多臂、异构和 cloud-edge placement 不必在每个 algorithm script 中手写。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;| 维度         | 单机/同步真机 RL               | USER                                         |
| ------------ | ------------------------------ | -------------------------------------------- |
| 资源单位     | 通常把机器人视作环境或外部服务 | 机器人、GPU 与外设都是可调度 hardware unit   |
| 执行模型     | rollout 常等待训练/同步        | 生成、训练、传输、同步并行推进               |
| 数据生命周期 | 内存 replay 为主               | 索引化磁盘持久化 + 有界内存 cache            |
| 云边通信     | 常见中心转发                   | tunnel + 按 key 分片的 localizing channel    |
| 扩展点       | script 与环境耦合              | policy、algorithm、reward、hardware 分别抽象 |&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 系统依赖网络 tunnel 可建立、设备健康检查能识别不可用资源、以及策略可容忍周期性的非即时权重更新。&lt;strong&gt;【Analysis】&lt;/strong&gt; 它还隐含假设：任务可以安全地以当前版本连续执行，且 buffer 中不同 policy version 的离策略数据适合所选算法；对高风险接触任务，额外的 safety shield、动作约束与人工监控仍不可省略。&lt;/p&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文强调真实机器人不能任意加速、廉价 reset 或大规模复制，并把这视为系统设计动机。实验主要在两类机械臂和五类桌面操作任务上进行；buffer、通信与异步设计的收益也在给定网络、硬件和任务配置下测量，论文未声称已覆盖所有机器人或所有真实世界故障模式。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 第一，异步提高 throughput 也扩大了数据 staleness：训练参数、rollout 参数和缓冲区内 policy version 会不同步，论文只用同步 interval 消融触及这项算法—系统耦合。第二，HAL 能发现设备不等于能保证动作安全；网络短断、相机漂移、力控异常和人为介入仍需要 robot-specific fail-safe。第三，论文的“约 3×”通信收益来自特定跨城拓扑，不能直接外推到带宽、NAT 或 robot control frequency 完全不同的现场。&lt;/p&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 对真机 embodied learning 而言，算法进步应与系统预算共同报告：每小时可获得多少有效轨迹、恢复一次需损失多少数据、权重延迟有多大、以及发生异常时是否可安全降级。接下来的自然方向包括：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;version-aware off-policy correction&lt;/strong&gt;：利用 buffer 已保存的 policy version 显式估计或限制 stale data 的影响。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;安全优先的异步控制面&lt;/strong&gt;：将 shield、故障检测和人工接管纳入 scheduler 的一等状态，而不是环境 wrapper 的附属逻辑。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;VLA 的云边协同&lt;/strong&gt;：让大模型训练留在云端、低延迟 action head 位于 edge，并量化 accuracy、动作延迟与通信成本的 Pareto frontier。&lt;/li&gt;
&lt;/ol&gt;</content:encoded><h:img src="https://pic.hana0721.top/66119164_p0_master1200.3d5duqih46.webp"/><enclosure url="https://pic.hana0721.top/66119164_p0_master1200.3d5duqih46.webp"/></item><item><title>RL-100 论文精读：用真实世界 RL 把扩散策略推向 100% 成功率</title><link>https://agusexp25.top/blog/paper-deep-dive-rl-100</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-rl-100</guid><description>精读 RL-100：在扩散视觉运动策略上统一模仿学习、迭代离线 RL 与在线 RL，并用一致性蒸馏实现一步控制。</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; RL-100 关注的不是“机器人能否完成一次任务”，而是能否在真实环境中同时满足可靠性（success rate）、效率（time-to-completion）和鲁棒性（长时间运行、扰动恢复）。作者在 Dynamic Push-T、Agile Bowling、Pouring、Soft-towel Folding、Dynamic Unscrewing、Orange Juicing 两个子任务以及 Box Folding 共八项任务上评估。&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 先用 teleoperation demonstrations 训练扩散 visuomotor policy，再交替执行保守的离线 RL、策略 rollout 数据扩充和短程在线 RL；同一 clipped PPO surrogate 作用于每个 diffusion denoising step，最后把多步扩散策略蒸馏成 one-step consistency controller。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;提出三阶段 IL → iterative offline RL → online RL 的真实机器人后训练流程，把大部分数据预算放在更安全、可复用的离线阶段。&lt;/li&gt;
&lt;li&gt;将扩散采样写成嵌套的 two-level MDP，在所有去噪步共享环境级 advantage，统一离线和在线的 clipped PPO 目标。&lt;/li&gt;
&lt;li&gt;用 reconstruction / VIB 正则稳定视觉表征，并用 consistency distillation 将 $K$ 步采样压缩到一步。&lt;/li&gt;
&lt;li&gt;框架兼容 2D RGB 与 3D point cloud、single action 与 action chunking，也兼容 diffusion 和 flow policy。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 八项真实任务最终评测达到 1000/1000 成功；零样本变化平均 90.0%，少样本适应平均 86.7%，人工扰动下平均 96.0%，榨汁机器人在商场连续运行约七小时无失败。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-rl-100/fig1.39lx6oo16v.webp&quot; alt=&quot;RL-100 八类真实机器人任务（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 纯行为克隆（BC）拥有良好的人类先验，却继承了 teleoperator 的慢动作、覆盖不足和偶发错误，形成 imitation ceiling。直接在真实硬件上做 online RL 又会遭遇样本昂贵、分布偏移和性能崩溃。扩散策略能表示连续、多模态动作，但多步去噪使 RL 的 credit assignment 更困难。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; RL-100 的关键视角是把“示范数据的安全性”和“交互数据的改进能力”放在同一优化接口中：示范负责把策略锚定在可执行动作流形，RL 只需在其附近寻找更快、更稳的轨迹。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 每个时间步输入视觉观测 $o_t$（RGB 或点云）与机器人本体状态 $q_t$（关节位置/速度、夹爪状态），输出单步动作 $u_t\in\mathbb{R}^{d_a}$ 或长度为 $n_a$ 的动作块 $[u_t,\ldots,u_{t+n_a-1}]$。策略通过条件扩散生成动作，预测末端位姿增量时对每个动作维度归一化。&lt;/p&gt;
&lt;p&gt;任务奖励大多是成功时终止并给 $+1$、其余时刻为 0 的稀疏奖励，另加时间步惩罚和动作抖动惩罚；Dynamic Push-T 使用基于位姿误差、推进进度和动作平滑度的 dense reward。&lt;strong&gt;【Paper】&lt;/strong&gt; 实验覆盖 UR5、Franka + LeapHand、xArm–Franka 等单臂和双臂 embodiment。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-rl-100/fig6.5trrjbo02z.webp&quot; alt=&quot;RL-100 三阶段训练与策略分解（论文 Figure 6）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 观测编码器将点云/RGB 与 proprioception 融合为条件 $c_t$，扩散 actor 经过 $K$ 次去噪生成动作；离线阶段用改进策略产生新 rollout 并重新加入数据集，在线阶段直接在真实硬件上针对残余失败微调，部署时可切换 DDIM 或一步 consistency model。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;观测编码器与稳定正则&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：最近 $n_o$ 帧观测和机器人状态。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：视觉特征 $z_t$，与 proprioceptive feature 拼接形成 $c_t$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;rl_100/policy/rl100_3d.py&lt;/code&gt; 提供 &lt;code&gt;DP3Encoder&lt;/code&gt;、&lt;code&gt;DP3EncoderReconVIB&lt;/code&gt; 和 &lt;code&gt;PointNetImaginationExtractorGP&lt;/code&gt;；配置默认使用 DP3 点云编码器、512 点输入和 64 维输出，也提供 2D policy 分支。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; reconstruction loss 用 Chamfer distance 重建点云并重建状态，VIB 用 KL 项约束潜变量；RL 阶段将两项权重降低 10 倍，防止表征漂移又给策略改进留出空间。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Diffusion / Flow Actor&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：带噪动作 $a^k_t$、denoising timestep $k$ 和条件 $c_t$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：噪声或 clean-action 预测，最终得到单动作或动作块。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;RL1003D&lt;/code&gt; 可实例化 &lt;code&gt;ConditionalUnet1D&lt;/code&gt;、轻量 &lt;code&gt;SampleConditionalUnet1D&lt;/code&gt;、MLP/SkipNet，以及 DDIM、consistency 和 flow scheduler；&lt;code&gt;n_action_steps&lt;/code&gt; 控制动作块长度。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 单步模式适合 bowling 等需要快速反应的任务；chunking 通过一次输出连续动作减少抖动，更适合 folding、assembly 等长时协调任务。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Iterative Offline RL 与 OPE Gate&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 每轮先用 IQL 训练 $Q,V$ 和 transition model，再以 PPO surrogate 更新候选策略。Approximate model-Q（AM-Q）离线评估候选策略与当前 behavior policy，只有当估计回报提升超过阈值 $\delta$ 时才接受更新；随后 rollout、合并数据并重新 BC。这一 gate 抑制了离线价值函数过估计导致的策略崩溃。&lt;/p&gt;
&lt;h4&gt;One-step Consistency Distillation&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; consistency actor 以多步 diffusion actor 为 teacher，在离线和在线 RL 同时训练。teacher 使用 stop-gradient，RL 继续优化 teacher，而 consistency loss 让 student 从初始噪声直接输出动作。推理从约 10-step DDIM 变为单次前向，论文报告在 Box Folding 上墙钟时间从 65.1 s（DP-2D）降至 41.4 s。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;p&gt;行为克隆的噪声预测目标为&lt;/p&gt;
&lt;p&gt;$$\mathcal{L}&lt;em&gt;{IL}=\mathbb{E}\left[|\epsilon-\epsilon&lt;/em&gt;\theta(a^k_t,k,c_t)|_2^2\right].$$&lt;/p&gt;
&lt;p&gt;其中 $\epsilon$ 是高斯噪声，$k$ 是扩散步，$\epsilon_\theta$ 是 denoiser。它让策略先复制示范中的动作分布。&lt;/p&gt;
&lt;p&gt;对一个环境动作内部的 $K$ 个去噪转移，统一 PPO 目标为&lt;/p&gt;
&lt;p&gt;$$J(\pi)=\mathbb{E}\left[\sum_{k=1}^{K}\min\left(r_k A_t,\operatorname{clip}(r_k,1-\varepsilon,1+\varepsilon)A_t\right)\right].$$&lt;/p&gt;
&lt;p&gt;其中 $r_k=\pi(a^k|s^k)/\pi_b(a^k|s^k)$ 是第 $k$ 步 importance ratio，$A_t$ 是环境时间步的 advantage，$\varepsilon$ 是 PPO clip 范围。&lt;strong&gt;【Analysis】&lt;/strong&gt; 共享 $A_t$ 将稀疏任务奖励沿整条 denoising chain 传播，避免只在最终动作处学习。&lt;/p&gt;
&lt;p&gt;在线阶段的总损失为&lt;/p&gt;
&lt;p&gt;$$\mathcal{L}_{on}=-J(\pi)+\lambda_V\mathbb{E}(V(s_t)-\hat V_t)^2,$$&lt;/p&gt;
&lt;p&gt;其中 $\hat V_t$ 由 GAE/bootstrapped return 得到。蒸馏阶段再加 $\lambda_{CM}\mathcal{L}_{CM}$。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方仓库将训练入口分为 &lt;code&gt;train.py&lt;/code&gt;、&lt;code&gt;train_real.py&lt;/code&gt; 和 &lt;code&gt;train_ddp.py&lt;/code&gt;；&lt;code&gt;rl_100/unidpg/&lt;/code&gt; 中实现 offline/online buffer、IQL critic、PPO 和 transition model，配置文件位于 &lt;code&gt;rl_100/config/&lt;/code&gt;。README 还提供 &lt;code&gt;adroit_door_medium&lt;/code&gt; smoke-test 数据集与 Diffusion/Flow recipe selector。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;RL1003D&lt;/code&gt; 把 observation encoder、diffusion/flow action head 和 scheduler 组合为统一 policy；&lt;code&gt;BehaviorProximalPolicyOptimization&lt;/code&gt; 在 &lt;code&gt;unidpg/uni_ppo.py&lt;/code&gt; 中计算 advantage、GAE 和 PPO ratio。配置中的 &lt;code&gt;num_inference_steps: 10&lt;/code&gt;、&lt;code&gt;cm_inference_steps: 1&lt;/code&gt; 对应论文的 DDIM 与 consistency 部署模式，&lt;code&gt;n_action_steps&lt;/code&gt; 与 &lt;code&gt;chunk_as_single_action&lt;/code&gt; 对应动作块语义。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 论文将 RL-100 描述为 task/embodiment/representation-agnostic，但代码仍需要为具体机器人提供 runner、dataset、shape metadata 和 reset 逻辑；“agnostic”指核心优化接口不变，而不是无需适配即可运行。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 真实任务包含动态刚体、流体/颗粒、可变形毛巾、灵巧手旋拧、双臂折叠和多阶段榨汁。大多数任务每种方法评测 50 个 episode，Soft-towel Folding 的 consistency policy 额外连续评测 250 次。DP-2D 与 DP3 是 imitation baselines，RL-100 分别报告 DDIM 和 consistency model。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-rl-100/fig3.4qs28fs61r.webp&quot; alt=&quot;RL-100 在零样本、少样本和人工扰动下的测试设置（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;| 阶段                 | 平均成功率 | 关键观察                                      |
| -------------------- | ---------: | --------------------------------------------- |
| DP-2D                |      45.3% | 动态、接触丰富任务明显失败                    |
| DP3                  |      67.8% | 点云表征提升 bowling，但 Box Folding 仍为 48% |
| Iterative Offline RL |      91.8% | Box Folding 96%、Pouring 92%                  |
| Online RL (DDIM)     |     100.0% | 八项任务共 450/450 成功                       |
| Online RL (CM)       |     100.0% | 七项评测任务共 550/550，含 250/250 折叠       |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 离线阶段相对 DP3 在 Box Folding 提升 48 个百分点、Pouring 提升 44 个百分点；在线阶段消除剩余失败。CM 一步推理在 Box Folding 上为 41.4 s，DDIM 为 45.6 s，DP-2D 为 65.1 s。Dynamic Push-T 中 RL-100 每单位时间完成 20 次成功，高于专家 teleoperator 的 17 次和初学者的 13 次。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-rl-100/fig4.4joud060q4.webp&quot; alt=&quot;RL-100 与基线的步数、墙钟时间和人类效率比较（论文 Figure 4）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 结果呈现清晰的单调链条：DP-2D → DP3 → RL-100 Offline → RL-100 DDIM/CM。去掉离线数据飞轮会失去大部分成功率增益；不做在线 RL 则难以清理长尾失败；不做 consistency distillation 则保留多步采样延迟。论文还在仿真 door task 中比较 reconstruction/VIB、固定 encoder 与联合训练，说明表征正则对稳定 RL 更新有帮助。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 零样本改变摩擦、物体形状、容器、材料和干扰物，平均成功率 90.0%；只额外训练 1–3 小时的少样本适应平均 86.7%；在人为拉扯、推撞、敲击和反向旋拧下平均 96.0%。&lt;strong&gt;【Analysis】&lt;/strong&gt; 这些测试并非只考察视觉识别，而是在检验闭环控制是否能在接触动力学变化后及时恢复。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 三个环节分别解决三个瓶颈：IL 限制探索风险，迭代离线 RL 以大量低成本 rollout 获得 value-directed 改进，短程 online RL 专门覆盖离线数据中没有的失败状态。共享去噪 advantage 则把稀疏任务信号分配给生成动作的每一步。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;目标统一&lt;/strong&gt;：离线和在线不切换优化器，减少训练阶段边界处的性能跌落。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;数据飞轮&lt;/strong&gt;：更好的策略产生更好的数据，再用 IL 将多模态行为压回一个可部署 policy。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;部署共设计&lt;/strong&gt;：训练时就加入 consistency distillation，而不是部署前再做可能损伤性能的压缩。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 与只做 BC 的 Diffusion Policy 相比，RL-100 明确优化成功率、完成时间和抗扰动；与从零开始 real-world RL 相比，它用示范策略提供安全先验；与仅在最终动作上加 RL 的做法相比，它把扩散链视为内部 MDP，在 denoising transition 粒度计算 ratio 和 credit。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 需要人工或任务逻辑提供成功终止与 reset；离线阶段依赖 IQL/transition model 的保守估计；consistency policy 假设 teacher 的多步动作分布可以被一步网络近似。&lt;strong&gt;【Analysis】&lt;/strong&gt; 在遮挡严重、奖励判定困难或 reset 代价极高的家庭场景，这些假设仍可能成为主要瓶颈。&lt;/p&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 作者指出未来需处理更多 clutter、遮挡、透明/高反光物体、变化光照和非平稳布局；reset 与 recovery 仍需人工参与，计划探索 learned reset policy、scripted recovery 和 failure-aware action chunking。论文也将多任务、多机器人大模型上的 scaling law 留作后续工作。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 100% 成功率来自精心设计的八项任务和有限评测次数，不能直接等价于开放世界可靠性；奖励主要是终止成功信号，效率 shaping 与 jitter penalty 的权重需要按任务调节。CM 在 Orange Juicing–Removal 上因 IK-induced pose discontinuity 和噪声敏感性未评测，说明一步蒸馏并非对所有控制模式都安全。&lt;/p&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; RL-100 给 VLA 后训练的启发不是“把 PPO 接到任意 policy 后面”，而是先找出 policy 内部真正产生动作的随机过程，再在该过程上定义可计算的 likelihood 和 conservative update。对未来的大型 VLA，可以保留语言模型的语义先验，只把 diffusion/flow action head、offline OPE gate 和 consistency distillation 作为部署层。&lt;/p&gt;
&lt;p&gt;另一个值得复用的工程结论是数据预算分配：论文八项任务平均约 115 条人工示范，随后约 566 条离线 rollout 和 434 条在线 rollout。&lt;strong&gt;【Analysis】&lt;/strong&gt; 这更像“少量高质量人类数据 + 大量自主试错”的生产配方，而不是追求无限示范数据；但它成立的前提是 reset、奖励和安全审批已经自动化到足够低的边际成本。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/99213551_p0_master1200.4jopcsx1ya.webp"/><enclosure url="https://pic.hana0721.top/99213551_p0_master1200.4jopcsx1ya.webp"/></item><item><title>RICL 论文精读：给预训练 VLA 注入 In-Context Adaptability</title><link>https://agusexp25.top/blog/paper-deep-dive-ricl</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-ricl</guid><description>精读 RICL：通过检索增强上下文、动作插值和少量 priming 数据，把原本不会 ICL 的 π₀-FAST 改造成可用 10–20 条示教适应新操作的 VLA。</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;论文名称&lt;/strong&gt;：《RICL: Adding In-Context Adaptability to Pre-Trained Vision-Language-Action Models》&lt;br&gt;
&lt;strong&gt;作者&lt;/strong&gt;：Kaustubh Sridhar、Souradeep Dutta、Dinesh Jayaraman、Insup Lee&lt;br&gt;
&lt;strong&gt;机构&lt;/strong&gt;：University of Pennsylvania、University of British Columbia&lt;br&gt;
&lt;strong&gt;会议&lt;/strong&gt;：CoRL 2025&lt;br&gt;
&lt;strong&gt;论文链接&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2508.02062&quot;&gt;arXiv:2508.02062&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;代码与模型&lt;/strong&gt;：&lt;a href=&quot;https://github.com/ricl-vla/ricl_openpi&quot;&gt;ricl-vla/ricl_openpi&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;项目主页&lt;/strong&gt;：&lt;a href=&quot;https://ricl-vla.github.io/&quot;&gt;ricl-vla.github.io&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-ricl/ricl-overview.6po8yuc47q.webp&quot; alt=&quot;RICL 方法总览（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 普通 VLA 主要靠 imitation learning 学参数，面对新物体、新动作或新场景通常需要重新 finetune；RICL（Re-training for In-Context Learning）先用一组 priming demonstrations 训练 VLA 使用上下文，部署时再从目标任务的 10–20 条示教中检索相似状态，把它们和 query 一起送入模型，从而实现不更新参数的 few-shot adaptation。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;给出一种 post-training recipe：从预训练的 π₀-FAST-DROID 出发，只微调语言模型、冻结图像编码器，得到可处理检索上下文的 RICL-VLA。&lt;/li&gt;
&lt;li&gt;用 DINOv2 图像 embedding 和近邻检索把长轨迹压缩成少量相关的 state-action examples，再通过 action interpolation 将最近邻动作与 VLA 输出融合。&lt;/li&gt;
&lt;li&gt;在 Franka DROID 平台的 8 个操作任务上验证：20 条目标任务示教、不做参数更新时，完整任务成功率从 π₀-FAST-DROID 的 2.5% 提升到 31.25%。&lt;/li&gt;
&lt;li&gt;在同一批 20 条示教上继续 finetune 时，RICL-VLA 的聚合成功率达到 61.67%，高于直接 finetune 基础 VLA 的 31.67%。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; LLM 的 In-Context Learning（ICL）来自 next-token prediction：给模型几个输入–输出示例，模型就能在不改参数的情况下完成新任务。Retrieval-Augmented Generation（RAG）进一步把“挑选示例”的工作交给检索器。对机器人而言，示例不是文本答案，而是视觉观测、proprioception 和动作序列。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; π₀-FAST 是自回归 VLA：PaliGemma 的 SigLIP 图像编码器和 Gemma LLM 接收多视角图像、语言指令、本体状态，并用 FAST tokenizer 把连续动作离散成 token。它在 DROID 数据上表现出跨场景泛化，但 imitation objective 本身不会自动教会模型“如何读懂一段示教并迁移”。&lt;/p&gt;
&lt;p&gt;已有 ICL agent（如 REGENT、MTT、ICRT）通常从头训练通用策略，或把完整轨迹直接塞进 context。RICL 的切入点是保留大规模 VLA 的视觉和语言能力，只通过少量机器人数据进行 post-training，并用检索选择局部邻居，避免上下文长度和注意力复杂度随着完整轨迹增长。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 给定预训练 VLA &lt;code&gt;π₀&lt;/code&gt;、一个新任务的少量示教集合 $\mathcal D_{new}$，目标是在不更新参数的前提下，根据当前 query 观测输出动作：&lt;/p&gt;
&lt;p&gt;$$
\hat a_t = \pi_\theta\bigl(q_t,; r_1, r_2, \ldots, r_K\bigr),
$$&lt;/p&gt;
&lt;p&gt;其中 $q_t$ 包含三路 RGB 图像、语言 prompt 和 8 维 proprioceptive state，$r_i$ 是从示教中检索到的第 $i$ 个 state-action example，$K=4$。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 实验使用 Franka DROID：三个相机（top、side/right、wrist），15 Hz 控制频率；state 为 7 个 joint angle 加 gripper position，action chunk 为连续 15 步、每步 7 个 joint velocity 加 1 个 gripper position，即 &lt;code&gt;(15, 8)&lt;/code&gt;。测试任务覆盖未见物体（pokeball、idli plate、squeegee、bagel）、新动作、厨房水槽新场景和 DROID 长尾物体。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-ricl/ricl-architecture.4g58fcrdkt.webp&quot; alt=&quot;RICL-π₀-FAST-DROID 架构（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 每个输入序列由 4 个 retrieved observations 和 1 个 query observation 组成；每个 observation 都含三路图像、prompt、state 与 action chunk。图像和文本 token 进入 PaliGemma，LLM 只在 query 的 action token 上计算训练损失，最后由 FAST tokenizer 解码为动作。推理时的完整循环见 4.5。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;Retrieval：从示教缓冲区找相似状态&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：当前 query 的 top image，以及目标任务示教的预处理 episode。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;中间表示&lt;/strong&gt;：DINOv2 为每个 top image 生成 embedding；FAISS 建立 L2 近邻索引。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：4 个最近邻的 top/right/wrist image、state、prompt 和 15 步 action chunk。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;作用&lt;/strong&gt;：把“从几十条长示教中定位相似时刻”从 Transformer 中外包给检索器，让模型专注于局部动作迁移。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 正文描述使用 top image 做检索。&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;src/openpi/policies/policy.py&lt;/code&gt; 的在线 &lt;code&gt;RiclPolicy.retrieve&lt;/code&gt; 也使用 &lt;code&gt;query_top_image&lt;/code&gt; 和 &lt;code&gt;top_image_embeddings&lt;/code&gt;；但训练数据加载器中的路径名 &lt;code&gt;embedding_type = &quot;embeddings__wrist_image_left&quot;&lt;/code&gt; 暗示训练预处理曾使用 wrist embedding。论文和代码在这一实现细节上并不完全一致，不能把检索视为多视角联合 embedding。&lt;/p&gt;
&lt;h4&gt;Context packing：把邻居和 query 拼成一个序列&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;RiclObservation&lt;/code&gt; 为每个邻居建立 &lt;code&gt;retrieved_i_&lt;/code&gt; 前缀，并在末尾追加 &lt;code&gt;query_&lt;/code&gt;。&lt;code&gt;Pi0FASTRicl.compute_loss&lt;/code&gt; 将 5 个 observation 的 embedding 和 attention mask 沿 token 维拼接；&lt;code&gt;create_decode_indices&lt;/code&gt; 只选择各段 prompt/state/action 区域的 token，避免对图像 token 计算无用的词表投影。&lt;/p&gt;
&lt;h4&gt;Action interpolation：最近邻动作作为连续先验&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 最近邻 action token 的 one-hot 分布与 LLM 的 softmax 输出按图像距离加权混合。距离越近，越相信示教动作；距离越远，越依赖模型自身的泛化能力。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;Pi0FASTRicl.interpolate_actions&lt;/code&gt; 对每个 action token 计算同样的离散插值；默认配置 &lt;code&gt;λ=10&lt;/code&gt;，距离先按训练集最大距离归一化。该层不是简单的 nearest-neighbor policy，因为 LLM 仍可逐 token 修正最近邻动作。&lt;/p&gt;
&lt;h4&gt;Frozen vision encoder 与可训练 LLM&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; RICL 只更新 Gemma LLM，SigLIP image encoder 保持 frozen。这样可以把 post-training 的容量集中在“理解 retrieved context”上，同时尽量保留 π₀ 原有视觉表示和场景泛化能力。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;get_freeze_filter_with_frozen_img_encoder()&lt;/code&gt; 对 &lt;code&gt;.*img.*&lt;/code&gt; 参数施加冻结过滤器；&lt;code&gt;train_pi0_fast_ricl.py&lt;/code&gt; 的 &lt;code&gt;train_step&lt;/code&gt; 只对 &lt;code&gt;config.trainable_filter&lt;/code&gt; 求梯度。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;p&gt;令 $a&apos;&lt;em&gt;j$ 为第一个（最近）检索邻居在第 $j$ 个动作 token 上的 one-hot 向量，$p_j=\operatorname{softmax}(\pi&lt;/em&gt;\theta)_j$ 为 LLM 概率，$d$ 为 query 与最近邻 top-image embedding 的 L2 距离，则：&lt;/p&gt;
&lt;p&gt;$$
\tilde p_j = e^{-\lambda d},\operatorname{onehot}(a&apos;_j) + \left(1-e^{-\lambda d}\right)p_j.
$$&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;$\lambda$：距离衰减强度；论文和官方配置均使用 10。&lt;/li&gt;
&lt;li&gt;$d$：归一化后的视觉相似度距离；$d=0$ 时完全采用最近邻 token，距离增大时逐渐回到 LLM 分布。&lt;/li&gt;
&lt;li&gt;$\tilde p_j$：送入交叉熵的最终 token 分布，所有 $N_{act}$ 个动作 token 都独立应用该插值。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;训练时只对 query 的 action chunk 计算 cross-entropy；retrieved action 作为上下文而不是额外监督目标。&lt;strong&gt;【Analysis】&lt;/strong&gt; 这使优化目标更接近真实部署：模型必须根据邻居预测 query 的动作，而不是机械地复述邻居。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 作者收集 20 个 priming tasks，每个 task 20 条示教，共约 400 条轨迹。对每条轨迹的每个状态都作为 query，再从同一 task 的其他示教中检索 4 个邻居，训练输入因此和部署形式一致。模型从 π₀-FAST-DROID 初始化，训练 3 个 epoch，图像编码器冻结。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;pi0_fast_droid_ricl&lt;/code&gt; 配置为 action horizon 15、4 个 retrieved observations、batch size 16、2 张 A100、Cosine decay 学习率（peak &lt;code&gt;2.5e-5&lt;/code&gt;，300 warmup steps，3000 decay steps），训练配置上限为 10,000 steps。&lt;code&gt;process_collected_demos.py&lt;/code&gt; 将原始 DROID &lt;code&gt;trajectory.h5&lt;/code&gt; 与三路帧转换为 &lt;code&gt;(state, actions, images, DINO embeddings)&lt;/code&gt;；&lt;code&gt;retrieve_within_collected_demo_groups.py&lt;/code&gt; 用 FAISS/L2 预计算每个 query 的近邻。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 用户只需为新 task 收集 10–20 条 teleoperated demonstrations。每次控制循环中，RICL 根据当前 top image 检索 4 个相似状态，把它们与当前 query 拼入 context，预测一个 15 步 action chunk，并执行其中一部分动作后重新观察。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;RiclPolicy.retrieve&lt;/code&gt; 在启动时为 demos 建立 FAISS 索引；运行时只对 query top image 做一次 DINOv2 embedding。&lt;code&gt;serve_policy_ricl.py&lt;/code&gt; 加载 checkpoint 和 &lt;code&gt;--policy.demos_dir&lt;/code&gt;，通过 websocket 向 DROID 客户端提供动作。默认部署策略在预测到 gripping action 前执行 3/15 步，抓取后执行 8/15 步；finetuned 版本抓取后执行 5/15 步。检索本身低于 1 ms，作者报告整体 rollout 约为 π₀-FAST 的 1.33 倍耗时。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;| 论文概念 | 官方代码位置 | 实现要点 |
| --- | --- | --- |
| RICL 模型 | &lt;code&gt;src/openpi/models/pi0_fast_ricl.py&lt;/code&gt; | &lt;code&gt;Pi0FASTRicl&lt;/code&gt; 拼接 5 个 observation，并实现 &lt;code&gt;interpolate_actions&lt;/code&gt; |
| 数据与近邻 | &lt;code&gt;preprocessing/process_collected_demos.py&lt;/code&gt;、&lt;code&gt;retrieve_within_collected_demo_groups.py&lt;/code&gt; | 处理 h5/帧、生成 DINO embedding、FAISS L2 检索 |
| 训练 | &lt;code&gt;scripts/train_pi0_fast_ricl.py&lt;/code&gt;、&lt;code&gt;src/openpi/training/config.py&lt;/code&gt; | query action CE loss；仅图像编码器冻结 |
| 推理 | &lt;code&gt;src/openpi/policies/policy.py&lt;/code&gt;、&lt;code&gt;scripts/serve_policy_ricl.py&lt;/code&gt; | 在线 embedding、FAISS 检索、websocket serving |
| FAST action | &lt;code&gt;src/openpi/models/tokenizer.py&lt;/code&gt;、&lt;code&gt;src/openpi/transforms.py&lt;/code&gt; | 将 &lt;code&gt;(15, 8)&lt;/code&gt; 连续动作离散/还原为 token 序列 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; README 还提供了 Hugging Face 上的 priming/retrieval demos 和 &lt;code&gt;pi0_fast_droid_ricl_checkpoint&lt;/code&gt;。因此该工作不只是论文算法，也给出了可在 Franka DROID 上复现实验的 checkpoint、预处理脚本和 serving 流程。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-ricl/franka-droid-setup.2rvvi61363.webp&quot; alt=&quot;Franka DROID 实验平台与厨房水槽新场景（论文 Figure 4）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 每个评测任务收集 20 条示教用于检索；每种方法在随机初始位置和朝向下执行 10 次 rollout，并统计完整任务成功率和中间 checkpoint 成功率。比较对象包括：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;π₀-FAST-DROID（基础 VLA）；&lt;/li&gt;
&lt;li&gt;RICL-π₀-FAST-DROID（只检索、不更新参数）；&lt;/li&gt;
&lt;li&gt;Retrieve and Play（直接执行最近邻动作）；&lt;/li&gt;
&lt;li&gt;从头训练的 Diffusion Policy（只在简单任务比较）；&lt;/li&gt;
&lt;li&gt;π₀-FAST-DROID-finetuned 与 RICL-VLA-finetuned（在同一 20 条示教上训练）。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-ricl/retrieval-pokeball.5xbdh3vi6j.webp&quot; alt=&quot;pokeball 任务的检索 query 与邻居可视化（论文 Figure 8）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 评测任务按难度覆盖语言 grounding、新物体、新动作、新场景、长尾物体和长时程组合：pokeball、idli plate、squeegee、sink-idli plate、sink-squeegee、toaster lever、bottom-shelf door、bagel into toaster。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-ricl/results-pokeball.2rvvi6138a.webp&quot; alt=&quot;pokeball 任务成功率示例（论文 Figure 5 的单任务图）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 聚合 8 个任务、每任务 10 次 rollout：&lt;/p&gt;
&lt;p&gt;| 方法 | 完整任务成功率 | 最高 checkpoint 成功率 |
| --- | ---: | ---: |
| π₀-FAST-DROID | 2.5% | 21.25% |
| RICL-π₀-FAST-DROID（20 条示教，仅 RAG/ICL） | 31.25% | 83.75% |
| π₀-FAST-DROID-finetuned | 31.67% | 论文未统一报告 |
| RICL-VLA-finetuned | 61.67% | 论文未统一报告 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; RICL 特别改善两类失败：一是基础 VLA 把 duck/apple 等 distractor 当成目标，二是面对 idli plate 的凹槽抓取、squeegee 的半抬升半拖动、底层柜门避障等 novel motion 时无法启动。RICL 在新厨房场景也保留了 π₀ 的场景泛化能力。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 31.25% 与“直接把基础 VLA 在 20 条示教上 finetune”的 31.67% 接近，说明在该实验规模下，检索上下文可以替代一次针对目标任务的参数更新；这不是“零样本”，而是把数据存放在外部示教缓冲区并在运行时取回。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-ricl/ablation-idli.1e9ce4q144.webp&quot; alt=&quot;idli plate 任务的示教数量消融（论文 Figure 5 右下角）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在 idli plate 任务中消融检索/finetune 使用的示教数量。5 条示教时 RICL 可能退化到基础 VLA 的错误行为（例如移动 apple）；至少 10 条后语言 grounding 才稳定，更多示教通常继续提升表现。RICL-VLA-finetuned 在每个示教数量下都优于直接 finetune π₀。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; RICL 能在以下变化下工作：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;priming 数据中不存在的 pokeball、idli plate、squeegee、bagel；&lt;/li&gt;
&lt;li&gt;需要新抓取和接触方式的动作；&lt;/li&gt;
&lt;li&gt;厨房水槽中的新相机位置、光照、背景和 distractor；&lt;/li&gt;
&lt;li&gt;DROID 中出现频率很低的 toaster 与 shelf 变体。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;动态 rollout 中，人为移动目标物体后，finetuned RICL-VLA 仍能重新定位并继续操作。没有任务相关 retrieval、只放入随机 priming 示教时，RICL 在三个原本 π₀ 能做的任务上保持 80% 成功率，作者据此认为 post-training 没有明显损害原有能力。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; RICL 把适应拆成两个互补问题：DINOv2/FAISS 负责“记忆中找哪个局部状态”，Gemma 负责“如何把局部状态和当前视觉几何组合起来”。相比把整段示教直接塞进 context，这种分工降低了序列长度，也避免模型先花容量做显式搜索。&lt;/p&gt;
&lt;p&gt;action interpolation 还提供了一个距离相关的行为先验：相似视觉状态时直接借用示教动作，状态不相似时逐渐释放给 LLM。于是模型同时拥有 nearest-neighbor 的稳定性和 VLA 的动作泛化能力。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Post hoc ICL injection&lt;/strong&gt;：不重新训练一个通用 agent，而是在已有 VLA 上补一层“会读示教”的能力。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;RAG + autoregressive action&lt;/strong&gt;：检索的是视觉–状态–动作片段，输出仍是 FAST token 的自回归 action chunk。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Distance-weighted action prior&lt;/strong&gt;：把最近邻动作以概率分布形式注入 LLM，而不是硬切换到行为克隆或只复制第一邻居。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Training/deployment alignment&lt;/strong&gt;：priming 数据的每个状态都按部署时的 query + 4 neighbors 方式构造，减少训练–推理分布差异。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; REGENT 从头训练 transformer policy，RICL 则从 π₀-FAST-DROID 的大规模预训练能力出发；MTT/ICRT 倾向把完整 demonstrations 放入上下文，RICL 只取检索到的局部状态；vanilla finetune 把新知识写入参数，RICL 把知识保留在可替换的外部 retrieval buffer 中。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 因此 RICL 的“模型更新”和“任务更新”是解耦的：模型只需 priming 一次，换任务时主要更换 demos 目录和 FAISS 索引。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;视觉相似度足够表达动作相关性&lt;/strong&gt;：top-image 的 DINOv2 L2 近邻应能找到可迁移的局部状态。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;目标任务与基础 VLA 能力相邻&lt;/strong&gt;：检索示教提供的是局部引导，而不是凭空创造超出 π₀ 能力边界的技能。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;示教质量和数量足够&lt;/strong&gt;：论文显示 5 条可能不稳定，10–20 条是实用下限。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;动作表示可被 FAST tokenizer 表达&lt;/strong&gt;：当前实现面向 15 步、8 维 DROID action chunk。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; RICL 不能可靠学习离基础 VLA 太远的任务，因此实验主要集中在 pick-and-place；它仍需要每个新任务的 teleoperated demonstrations，跨设置收集示教并不具备可扩展性；对打网球等显著不同的 novel motion 泛化较弱。作者建议扩大 priming tasks、模型规模和动作多样性，并探索从人类视频获取示教。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;检索依赖单张 top image，遮挡、视角变化或相似外观可能导致错误邻居；代码中训练 embedding 类型和论文文字也存在不一致。&lt;/li&gt;
&lt;li&gt;action interpolation 的距离归一化使用训练集最大距离，部署环境显著偏离 priming 分布时，$e^{-\lambda d}$ 的校准可能失真。&lt;/li&gt;
&lt;li&gt;4 个邻居带来约 4 倍 token 数，虽然实测 rollout 只慢约 1.33 倍，但显存和上下文长度仍限制更长 action horizon 或更多示教。&lt;/li&gt;
&lt;li&gt;评测规模为 8 个任务、每个 10 次 rollout，且主要是单臂 pick-and-place；更复杂的双臂、接触丰富或长时程任务仍缺少证据。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; RICL 的重要启发不是“给 VLA 加一个向量数据库”这么简单，而是把 VLA 的适应接口设计成可替换的外部 memory：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;如果检索器能理解接触状态、物体姿态和语言约束，示教缓冲区就可能成为比 task-specific finetune 更快的部署接口。&lt;/li&gt;
&lt;li&gt;action interpolation 可以推广为 uncertainty-aware mixture：距离、动作冲突和模型置信度共同决定邻居先验的权重，而不是只使用单一视觉距离。&lt;/li&gt;
&lt;li&gt;未来可以把人类视频、失败轨迹和离线 DROID 数据纳入同一个 retrieval pool，并让检索器学习“哪种示教最值得参考”。&lt;/li&gt;
&lt;li&gt;对真实机器人而言，最现实的路线可能是 RICL 做即时冷启动，再用少量在线数据进行“finetune like you pretrain”，兼顾无梯度适应速度和最终可靠性。&lt;/li&gt;
&lt;/ul&gt;</content:encoded><h:img src="https://pic.hana0721.top/133535742_p0_master1200.icpovr2id.webp"/><enclosure url="https://pic.hana0721.top/133535742_p0_master1200.icpovr2id.webp"/></item><item><title>PriorVLA 论文精读：保留预训练先验的 VLA 适配</title><link>https://agusexp25.top/blog/paper-deep-dive-priorvla</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-priorvla</guid><description>PriorVLA 用冻结 Prior Expert 与 Expert Queries 保留 VLA 的场景和运动先验，在少样本与 OOD 机器人操作中提升适配性能。</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;论文名称&lt;/strong&gt;：《PriorVLA: Prior-Preserving Adaptation for Vision-Language-Action Models》&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;作者&lt;/strong&gt;：Xinyu Guo、Bin Xie、Wei Chai、Xianchi Deng、Tiancai Wang、Zhengxing Wu、Xingyu Chen&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;论文链接&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2605.10925&quot;&gt;arXiv:2605.10925&lt;/a&gt; · &lt;strong&gt;项目主页&lt;/strong&gt;：&lt;a href=&quot;https://priorvla.github.io/&quot;&gt;priorvla.github.io&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;代码链接&lt;/strong&gt;：&lt;a href=&quot;https://github.com/xinyuguo1566/PriorVLA&quot;&gt;xinyuguo1566/PriorVLA&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-priorvla/overview.priorvla.webp&quot; alt=&quot;PriorVLA 总览：保留先验并比较 OOD、少样本表现（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 全量 fine-tuning 往往把大规模 VLA 预训练得到的通用能力当作初始化，在有限示教上不断移动参数，结果是训练分布内变好、分布外（OOD）场景中的先验被遗忘。PriorVLA 将原始 action expert 复制成两个角色：冻结的 &lt;strong&gt;Prior Expert&lt;/strong&gt; 只读地提供运动先验，可训练的 &lt;strong&gt;Adaptation Expert&lt;/strong&gt; 负责最终动作生成；再用 &lt;strong&gt;Scene Query、Motor Query、Action Query&lt;/strong&gt; 三种可学习接口，把视觉与运动先验送入适配分支。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;将下游 VLA 适配重新表述为“保存并利用 forward-pass priors”，而不只是更新初始化权重。&lt;/li&gt;
&lt;li&gt;提出 &lt;strong&gt;Dual Action Experts&lt;/strong&gt;：原始 action expert 冻结为 Prior Expert，同权重初始化的 Adaptation Expert 学习任务特化；前者的动作输出从不直接执行。&lt;/li&gt;
&lt;li&gt;提出 &lt;strong&gt;Expert Queries&lt;/strong&gt;：Scene Queries 从冻结 VLM 捕获场景先验，Motor Queries 从 Prior Expert 捕获运动先验，Action Queries 在 Adaptation Expert 内整合两者。&lt;/li&gt;
&lt;li&gt;只更新 full fine-tuning 约 25% 的参数，在 RoboTwin 2.0-Hard、LIBERO 和真实机器人上均超过强基线；增益在 OOD、few-shot 条件下最大。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 论文的关键不是再加一个“专家投票器”，而是把冻结分支变成可复用的表示源，同时限制信息通过 Query 接口流动。这样“记住预训练能力”和“学习新任务”在参数与注意力路径上都被显式解耦。&lt;/p&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 现代 VLA（如 $pi_0$、$pi_{0.5}$、OpenVLA）从多机器人、多任务数据中学习两类互补能力：VLM 编码视觉—语言中的场景结构，action expert 在 flow matching 或 diffusion 去噪过程中学习动作生成规律。下游任务却常只有几十条到几百条示教，且测试时会改变物体位置、背景、光照或桌面高度。&lt;/p&gt;
&lt;p&gt;全量 fine-tuning 能迅速提高 ID 成功率，却可能将广泛先验压缩成训练集中的窄模式。LoRA、冻结 VLM、参数约束和 replay 等工作分别减少更新量或限制漂移；query/bridge 方法则把视觉语言特征接到动作策略。&lt;strong&gt;【Paper】&lt;/strong&gt; PriorVLA 的区别是：它不把预训练网络仅看成待修改的参数集合，而把其 forward 表示本身当作需要保存、且要被下游策略读取的 prior source。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 给定视觉观测 $o_t$、语言指令 $l$、本体状态 $s_t$，策略在 action horizon $H$ 内预测动作块：&lt;/p&gt;
&lt;p&gt;$$
\hat a_{t:t+H-1}=\pi_\theta(\tilde a_{t:t+H-1},o_t,l,s_t),
$$&lt;/p&gt;
&lt;p&gt;其中 $\tilde a$ 是 flow-matching 去噪过程中的 noisy action chunk，$\hat a$ 是当前步的速度/去噪预测。目标是用有限下游数据学习一个适配策略，同时保持预训练 VLM 的场景先验与 action expert 的运动先验，并在 ID 与 OOD 条件下生成可靠动作。&lt;/p&gt;
&lt;p&gt;| 维度     | 论文设置                                                                          |
| -------- | --------------------------------------------------------------------------------- |
| Base VLA | $\pi_{0.5}$，VLM + flow-matching action expert                                    |
| 输入     | 图像、语言指令、本体状态；实验覆盖单臂 Franka 与双臂 AC-One                       |
| 输出     | 未来 $H$ 步 action chunk；仅 Adaptation Expert 的预测更新轨迹                     |
| 训练参数 | Adaptation Expert、三类 Queries、VLM vision encoder；约为 full fine-tuning 的 25% |
| 先验源   | 冻结 VLM 主干与冻结 Prior Expert                                                  |&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-priorvla/architecture.priorvla.webp&quot; alt=&quot;PriorVLA 架构：Dual Action Experts 与三类 Expert Queries（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 图像和指令先进入预训练 VLM；Scene Query 读取其层级表示。相同 noisy action chunk 同时送入 Prior Expert 和 Adaptation Expert，Motor Query 读取前者的内部去噪表示，Action Query 将 Scene/Motor Query 的缓存与当前适配分支的 token 融合，最后只有 Adaptation Expert 的输出执行 flow-matching 更新。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;Dual Action Experts&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：每个去噪步的同一 noisy action chunk 与观测条件。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Prior Expert 输出&lt;/strong&gt;：中间 hidden states（motor prior）；最终 denoising prediction 被丢弃。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Adaptation Expert 输出&lt;/strong&gt;：用于更新 action trajectory 的 denoising prediction。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要&lt;/strong&gt;：冻结副本阻止下游梯度改变预训练动作动力学；同权重初始化的适配副本仍有足够容量拟合新任务。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在第 $\tau$ 步，$\tilde a^\tau_{PE}=\tilde a^\tau_{Ada}=\tilde a^\tau$，但只有 $f^\tau_{Ada}$ 进入 flow-matching 更新 $\tilde a^{\tau+1}=FM(\tilde a^\tau,f^\tau_{Ada})$。因此 Prior Expert 是 read-only memory，而不是第二个控制器。&lt;/p&gt;
&lt;h4&gt;Expert Queries 与注意力路由&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-priorvla/attention.priorvla.webp&quot; alt=&quot;PriorVLA 的 token attention mask 与信息流（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Scene Query（SQ）&lt;/strong&gt;：插入 VLM 输入序列，可与原始 observation tokens 自注意力；其逐层 key/value cache 是紧凑的 scene-prior 接口。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Motor Query（MQ）&lt;/strong&gt;：附加在 Prior Expert 上，只读取冻结分支 noisy action tokens 并自注意力；Prior Expert 的原始动作 token 不读取 SQ/MQ，因而保持预训练去噪路径不变。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Action Query（AQ）&lt;/strong&gt;：插入 Adaptation Expert，与适配分支 noisy action、原始 observation、SQ、MQ 共同注意力；不直接读取 Prior Expert 的 raw action cache，迫使运动先验经 MQ 路由。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这是一种“单向读出、集中整合”的设计：SQ/MQ 负责压缩先验，AQ 负责决定下游动作生成时如何使用先验。移除 Query 后，即便冻结分支仍执行，也没有可学习的接口把先验变成有效条件。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;p&gt;对任意 token group $x$，第 $l$ 层的投影为 $Q_x^l=h_x^lW_Q^l$、$K_x^l=h_x^lW_K^l$、$V_x^l=h_x^lW_V^l$。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Scene Query 的更新为：&lt;/p&gt;
&lt;p&gt;$$
h_{sq}^{l+1}=\operatorname{Attn}(Q_{sq}^l,[K_{obs}^l\Vert K_{sq}^l],[V_{obs}^l\Vert V_{sq}^l]).
$$&lt;/p&gt;
&lt;p&gt;Motor Query 只从 Prior Expert 的 noisy action 读取：&lt;/p&gt;
&lt;p&gt;$$
h_{mq}^{l+1}=\operatorname{Attn}(Q_{mq}^l,[K_{mq}^l\Vert K_{\tilde a_{pe}}^l],[V_{mq}^l\Vert V_{\tilde a_{pe}}^l]).
$$&lt;/p&gt;
&lt;p&gt;Action Query 在 Adaptation Expert 中整合多源信息：&lt;/p&gt;
&lt;p&gt;$$
h_{aq,\tilde a_{ae}}^{l+1}=\operatorname{Attn}(Q_{aq,\tilde a_{ae}}^l,
[K_{aq,\tilde a_{ae}}^l\Vert K_{obs}^l\Vert K_{sq}^l\Vert K_{mq}^l],
[V_{aq,\tilde a_{ae}}^l\Vert V_{obs}^l\Vert V_{sq}^l\Vert V_{mq}^l]).
$$&lt;/p&gt;
&lt;p&gt;这里 $\Vert$ 表示 token 级拼接，$h$ 是 hidden state，$W_Q/W_K/W_V$ 是注意力投影。关键约束不在公式外另加正则，而在 mask 中禁止 Prior Expert 的 noisy action 直接穿透到 Adaptation Expert。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 训练 full Adaptation Expert、三组 Expert Queries 和 VLM vision encoder；其余 VLM 参数及 Prior Expert 全部冻结。损失仍是标准 flow-matching MSE，只作用于 Adaptation Expert 的 denoising prediction：&lt;/p&gt;
&lt;p&gt;$$
\mathcal L(\theta)=\mathbb E_{\tau,\tilde a}\left[|f^\tau_{Ada,\theta}(\tilde a,o,l,s)-u^\tau|_2^2\right],
$$&lt;/p&gt;
&lt;p&gt;其中 $u^\tau$ 是 flow-matching 目标速度，$\tau$ 是采样的去噪时间步。Prior Expert 的输出不参与 loss，Queries 也没有额外 auxiliary objective。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 推理时每个去噪步都用同一个 noisy action chunk 执行两条 expert 路径。Prior Expert 继续提供 MQ 的 motor prior，但其动作预测丢弃；AQ 驱动 Adaptation Expert 输出并更新 chunk。去噪完成后执行 Adaptation Expert 产生的动作块，并在下一控制时刻重新观测。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 截至论文提交时，作者的 &lt;a href=&quot;https://github.com/xinyuguo1566/PriorVLA&quot;&gt;GitHub 仓库&lt;/a&gt; README 仅说明“Code will be released soon”，没有可审计的模型定义、DataLoader、训练脚本或 checkpoint。因此本文不能把具体文件路径或超参数当作已验证实现；方法细节以论文为准。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这也意味着复现工作的关键风险在于 attention mask、逐层 KV cache 与 flow-matching 时间步的精确实现，而不是简单地把 action expert 复制两份。代码发布后，应重点核对冻结参数列表、AQ 是否能绕过 raw PE action cache、以及 Prior Expert 是否在每个去噪步重复计算。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-priorvla/setup.priorvla.webp&quot; alt=&quot;PriorVLA 的 LIBERO、RoboTwin 2.0 与真实机器人评测覆盖（论文 Figure 4）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 实验覆盖三个层次：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;RoboTwin 2.0&lt;/strong&gt;：13 个双臂任务，Easy 为 ID、Hard 为 OOD；标准设置每任务 50 条 clean demonstrations、每设置 300 次评测，并比较 few/standard/large 三种数据规模。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;LIBERO&lt;/strong&gt;：Spatial、Object、Goal、Long 四个 Franka task suites，每个 suite 10 个任务。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Real-world&lt;/strong&gt;：单臂 Franka 与双臂 AC-One，8 个任务；OOD 同时扰动 Light、Background、Object Position、Table Height；few-shot 每任务仅 10 条示教。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 主要结果如下（成功率均为百分比）：&lt;/p&gt;
&lt;p&gt;| 基准                                        |     PriorVLA |                           对比基线 | 结论                      |
| ------------------------------------------- | -----------: | ---------------------------------: | ------------------------- |
| RoboTwin 2.0 Easy（standard）               |           77 |                     $\pi_{0.5}$ 67 | +10                       |
| RoboTwin 2.0 Hard（standard）               |           53 |                     $\pi_{0.5}$ 42 | +11                       |
| RoboTwin 2.0 Hard（few / standard / large） | 31 / 53 / 65 |           $\pi_{0.5}$ 20 / 42 / 59 | +11 / +11 / +6            |
| LIBERO 平均                                 |         99.1 | $\pi_{0.5}$ 96.9、OpenVLA-OFT 97.1 | 在饱和 benchmark 上仍提升 |
| Real-world ID（standard）                   |           81 |                     $\pi_{0.5}$ 69 | +12                       |
| Real-world OOD（standard）                  |           57 |                     $\pi_{0.5}$ 41 | +16                       |
| Real-world ID / OOD（10 demos）             |      48 / 32 |                $\pi_{0.5}$ 24 / 10 | +24 / +22                 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 增益随数据减少或分布偏移而扩大，符合“先验是数据覆盖不足时的补充结构”这一解释；在 RoboTwin large-data Easy 上两者接近，说明先验保存并非替代充分示教，而是降低覆盖成本。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在 RoboTwin 六任务子集上，完整模型达到 Easy 77%、Hard 49%。移除 Prior Expert（等价于移除 PE→AE 的 MQ 路径）后为 75% / 42%；随机冻结分支为 75% / 43%；让 Prior Expert 可训练为 73% / 44%。这说明收益来自预训练运动先验，而不是“多一个分支”或参数量变化。&lt;/p&gt;
&lt;p&gt;Expert Query 消融进一步显示：SQ、MQ、AQ 全部保留时为 77% / 49%；去掉全部 Query 降至 61% / 28%。分别去掉 SQ、MQ、AQ 后为 75% / 42%、70% / 30%、71% / 43%，其中 SQ 对 Hard 最关键。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文没有将八个 OOD 因子拆成独立实验，而是联合施加四类扰动；作者明确指出这更接近部署但无法分辨单一因素的贡献。跨 Franka 与 AC-One 的结果表明，方法并不依赖单一 embodiment，但尚未证明在更多机器人形态或更长 horizon 上仍保持相同收益。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 有三层原因：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;参数层&lt;/strong&gt;：冻结 PE 与 VLM 主干为预训练能力提供稳定锚点，避免小数据梯度把动作动力学推向狭窄模式。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;表示层&lt;/strong&gt;：SQ/MQ 将分散在多层、多去噪步中的先验压缩成可读 cache，让适配分支能按任务选择性使用，而不是被动复制全部 hidden states。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;控制层&lt;/strong&gt;：AQ 只改变最终动作生成路径；先验不直接产生动作，因此不会与任务特化分支发生不受控的 action-level ensemble。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 创新点是“preserve + leverage”的组合：Dual Action Experts 负责 preserve，Expert Queries 负责 leverage，且二者通过 masked attention 形成明确的信息边界。&lt;strong&gt;【Analysis】&lt;/strong&gt; 单独冻结或单独加分支都不足以得到同样结果，消融实验支持这是一种结构性创新而非训练技巧。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;| 路线                  | 预训练模型角色                                 | 先验如何进入动作策略                   |
| --------------------- | ---------------------------------------------- | -------------------------------------- |
| Full fine-tuning      | 初始化，所有权重可漂移                         | 隐式地写入更新后的参数                 |
| LoRA / partial tuning | 限制更新子空间                                 | 先验留在未更新权重中，但未必被显式读取 |
| Frozen-VLM bridge     | 冻结视觉语言 backbone                          | 通过桥接层传递表征                     |
| PriorVLA              | 冻结 VLM + 冻结 PE 作为 read-only prior source | SQ/MQ 捕获，AQ 在 AE 内整合            |&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 方法隐含四个假设：预训练 VLM 表征仍覆盖下游场景的可用结构；预训练 action expert 的 hidden states 含有可迁移运动规律；Query bottleneck 足以表达任务所需先验；额外运行 PE 的计算开销在 chunked control 中可接受。若下游任务与预训练 embodiment 或动作空间完全不相容，这些假设可能失效。&lt;/p&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; (1) RoboTwin 只报告 50 任务中的 13 个子集，因为每个任务需单独训练模型；(2) 真实机器人 OOD 因子联合扰动，无法解耦单因素效果；(3) 推理时每个去噪步都执行冻结 Prior Expert，带来额外计算；(4) 尚未细致分析 scene/motor priors 在层与时间步之间的产生、交互和演化。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 官方代码尚未公开，复现者无法验证 mask 与缓存实现。其次，Prior Expert 与 Adaptation Expert 同时前向会近似翻倍 action-expert 计算，论文只称开销“manageable”，没有给出端到端 latency、显存峰值或 cache 复用测量。最后，成功率提升主要来自单一 base（$\pi_{0.5}$）和有限任务集；在完全不同的 VLA、连续长时任务、失败恢复或在线数据分布变化下，先验是否仍可靠仍待实验。&lt;/p&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; PriorVLA 把“预训练知识”从静态参数改写成可查询的运行时资源，这给后续工作留下几条路线：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;先验压缩&lt;/strong&gt;：蒸馏 MQ 的层级 KV cache，或按场景检索并缓存 PE 表示，减少双分支推理成本。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;可解释路由&lt;/strong&gt;：记录 AQ 对 SQ/MQ 的注意力，研究不同任务究竟依赖视觉先验还是运动先验。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;多先验库&lt;/strong&gt;：为不同 embodiment、技能或数据域保存多个冻结 Prior Experts，再用 Query router 选择组合。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;安全适配&lt;/strong&gt;：把 PE 的动作一致性作为运行时检查器，在 Adaptation Expert 产生异常动作时回退或缩小更新。&lt;/li&gt;
&lt;/ul&gt;</content:encoded><h:img src="https://pic.hana0721.top/71187447_p0_master1200.13mdb6lism.webp"/><enclosure url="https://pic.hana0721.top/71187447_p0_master1200.13mdb6lism.webp"/></item><item><title>PLD 论文精读：用残差强化学习让 VLA 自己生成训练数据</title><link>https://agusexp25.top/blog/paper-deep-dive-pld</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-pld</guid><description>精读 Probe, Learn, Distill：冻结 VLA 通才策略，用残差 RL 探测失败状态，再把分布对齐的恢复轨迹蒸馏回通才模型。</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;《Self-Improving Vision-Language-Action Models with Data Generation via Residual RL》提出 Probe, Learn, Distill（PLD），目标是减少 VLA post-training 对昂贵 teleoperation demonstrations 的依赖。它把一个已有但不完美的 VLA 当作 policy prior，先学习 task-specific residual policy，再生成与通才部署分布一致、同时包含失败恢复行为的数据，最后用标准 SFT 更新通才模型。&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; PLD 的关键不是让 RL 专家替代 VLA，而是让专家在 VLA 会走到的“坑里”接管，把如何脱困记录下来，再把这些恢复经验写回 VLA。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;提出三阶段的 Probe–Learn–Distill 自动 post-training recipe，不需要额外 oracle demonstrations。&lt;/li&gt;
&lt;li&gt;冻结 VLA backbone，只训练轻量 Gaussian residual actor，并用 off-policy RL 高效探索稀疏奖励任务。&lt;/li&gt;
&lt;li&gt;用 base-policy probing 初始化状态分布：先执行若干步通才策略，再由 residual specialist 接管，得到 deployment-aligned recovery trajectories。&lt;/li&gt;
&lt;li&gt;证明 PLD 数据同时适用于 flow-matching 的 $\pi_0$ 和 autoregressive action-token 的 OpenVLA，并改善 seen / unseen tasks。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 项目页将论文标注为 ICLR 2026 接收稿；论文 arXiv 版本为 v1（2025-10-30）。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-pld/pld-framework.8okfp46at7.webp&quot; alt=&quot;PLD 三阶段框架：残差 RL、混合轨迹收集与 SFT 蒸馏（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; VLA 通常靠 SFT 从人工示教中学习。问题在于 teleoperation 成本高，且人类示教往往没有覆盖“模型实际会访问的失败状态”。只保留成功 rollout 的 self-bootstrap data 又会复制 base policy 的错误；独立训练的 RL expert 则容易产生过于单一、远离通才策略分布的轨迹。&lt;/p&gt;
&lt;p&gt;论文比较了 WSRL、RLPD、JSRL、Cal-QL 等利用 policy prior 或 offline data prior 的方法。PLD 的区别是将二者组合：offline successful rollouts 用于 critic warm-start，base policy 又参与 residual exploration 和状态初始化。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这对应一个数据分布问题：SFT 需要的不只是“最优动作”，还需要在 deployment distribution 附近看到足够多的恢复动作。PLD 把 RL 的长处（发现纠错行为）和行为克隆的稳定性（蒸馏回大模型）拆开使用。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在部分可观测、稀疏二值奖励的语言条件操作任务中，观测 $o_t$ 包含 RGB 图像和 proprioception，语言目标为 $g$。VLA policy 写成：&lt;/p&gt;
&lt;p&gt;$$
a_t = D_\phi\big(h_\theta(o_t,g)\big),
$$&lt;/p&gt;
&lt;p&gt;其中 $h_\theta$ 是 vision-language backbone，$D_\phi$ 是 action head。动作是 7-DoF：6-DoF end-effector delta pose 加 1-DoF continuous gripper command。每个 episode 成功时得到 $r\in{0,1}$，目标是最大化 success rate。&lt;/p&gt;
&lt;p&gt;PLD 冻结 base policy $\pi_b$，学习条件 residual policy $\pi_\delta(a_\delta\mid s,a_b)$，其中 $a_b\sim\pi_b(\cdot\mid s)$，最终动作是：&lt;/p&gt;
&lt;p&gt;$$
\bar a = a_b + a_\delta.
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; residual policy 的输入显式包含 base action，因此它学习的是“如何修正当前 VLA 决定”，而不是从零重建一个通用控制器。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; PLD 由四个可串联的环节组成：每个任务训练 residual specialist；使用 hybrid rollout 采集成功轨迹；将多任务轨迹通过 SFT 蒸馏回通才 VLA；部署更新后的通才策略并继续覆盖新任务。&lt;/p&gt;
&lt;p&gt;数据流可以概括为：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;冻结 VLA π_b ──成功 rollout──&gt; offline buffer / Cal-QL critic
      │
      └─ base probing 状态 + residual π_δ ──&gt; 恢复轨迹 D^PLD
                                              │
                                              ▼
                                  VLA SFT / BC 蒸馏 ──&gt; 新通才策略
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;Residual Gaussian actor&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; residual actor 是轻量 Gaussian policy，输出被缩放并限制在 $[-\xi,\xi]$ 的 delta action。$\xi$ 由 scheduler 调节，默认 LIBERO 使用 $0.5$，SimplerEnv 使用 $0.1$。这样可以在早期保持接近 base policy 的探索，同时逐步扩大修正范围。&lt;/p&gt;
&lt;h4&gt;Offline / online hybrid replay&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 先收集 base policy 的成功轨迹作为 $\mathcal B_{offline}$，在线 residual 交互产生 $\mathcal B_{online}$。训练时等量采样两个 buffer，使 critic 持续看到高价值动作，又能吸收 residual 探索到的新状态。&lt;/p&gt;
&lt;h4&gt;Conservative critic warm-start&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; critic 在 offline successful rollouts 上用 Cal-QL 初始化；论文发现 Cal-QL 比 CQL 和简化 IQL 更稳定。训练使用 clipped double Q、LayerNorm，视觉输入由预训练 ResNetV1-10 编码。&lt;/p&gt;
&lt;h4&gt;Base-policy probing 与 hybrid trajectory&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 收集蒸馏数据时，先随机执行 $T_{base}$ 步 base policy，再让 residual policy 接管。轨迹前缀保留 $a_b$，接管后记录 $a_b+a_\delta$。probing 只用于把初始状态推向通才常访问的区域，不写入 RL replay buffer。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;p&gt;联合策略动作与 Q-learning 目标为：&lt;/p&gt;
&lt;p&gt;$$
\bar a_t=a_{b,t}+a_{\delta,t},\qquad
Q^{\bar\pi}(s_t,\bar a_t)\leftarrow r(s_t,\bar a_t)+\gamma,\mathbb E_{s_{t+1}}\left[Q_{target}^{\bar\pi}(s_{t+1},\bar a_{t+1})\right].
$$&lt;/p&gt;
&lt;p&gt;这里 $Q^{\bar\pi}$ 评估 base 与 residual 组合策略的长期回报，$\gamma$ 是折扣因子。&lt;strong&gt;【Analysis】&lt;/strong&gt; 关键点是 critic 评价“修正后的完整动作”，而不是把 residual 当作独立任务来评分。&lt;/p&gt;
&lt;p&gt;SFT 阶段使用 base VLA 原有 action head 的行为克隆目标：autoregressive head 使用 action-token NLL，flow / diffusion head 使用各自的连续动作目标。&lt;strong&gt;【Paper】&lt;/strong&gt; PLD 不绑定某一种 VLA action head，因此数据生成与模型蒸馏可以解耦。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; RL 训练阶段先用 base policy 成功轨迹填充 offline buffer，并用 Cal-QL 预训练 critic；随后冻结 $\pi_b$，交替进行 online rollout、online/offline 等量 replay、TD critic update 和 SAC-style residual actor update。默认 batch size 为 256、$\gamma=0.99$、AdamW learning rate $3\times10^{-4}$、warmup 100 episodes、critic:actor 更新比为 2，target update rate 为 0.005。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 部署时只需要更新后的通才 VLA：输入图像、proprioception 和语言目标，按原 action head 输出动作并执行。residual specialist 不需要在最终推理中常驻；它的作用是离线生成可蒸馏的数据。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 截至本文撰写时，论文和项目页没有提供可核验的公开 GitHub 代码仓库；因此无法对 model definition、DataLoader、训练脚本或 checkpoint 路径逐文件映射。本文涉及的网络结构、超参数和真实机器人设置均来自论文附录，不能表述为已在公开代码中复现。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 仿真使用 LIBERO-90 与 SimplerEnv；VLA 基座包括 flow-matching 的 $\pi_0$ 和 autoregressive action-token 的 OpenVLA。每个任务测试 50 episodes。真实实验使用 7-DoF Franka Panda（20 Hz、腕部与侧视相机、proprioception）以及双 6-DoF YAM arms 的 GPU insertion 长时任务。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-pld/method-compare-1.3rbyv9sivv.webp&quot; alt=&quot;PLD 残差 RL 在 8 个 LIBERO 任务上的训练曲线（论文 Figure 4）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; LIBERO 上，$\pi_0$ 的平均 success rate 从 93.4% 提升到 97.2%，OpenVLA 从 91.8% 提升到 99.2%；其中 OpenVLA Goal suite 提升 15.7 个百分点。SimplerEnv 的平均成功率从 71.8% 提升到 96.6%，平均增益 24.9 个百分点，单任务最高增益为 WidowX Pick Carrot 的 50.6 个百分点。&lt;/p&gt;
&lt;p&gt;| 基座    | 数据     |  Spatial |   Object |     Goal |      Avg |
| ------- | -------- | -------: | -------: | -------: | -------: |
| $\pi_0$ | baseline |     95.2 |     97.6 |     87.4 |     93.4 |
| $\pi_0$ | + PLD    | &lt;strong&gt;97.7&lt;/strong&gt; | &lt;strong&gt;98.5&lt;/strong&gt; | &lt;strong&gt;95.3&lt;/strong&gt; | &lt;strong&gt;97.2&lt;/strong&gt; |
| OpenVLA | baseline |     92.9 |     99.1 |    83.25 |     91.8 |
| OpenVLA | + PLD    | &lt;strong&gt;99.5&lt;/strong&gt; | &lt;strong&gt;99.1&lt;/strong&gt; | &lt;strong&gt;98.9&lt;/strong&gt; | &lt;strong&gt;99.2&lt;/strong&gt; |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 真实 Franka 实验中，peg insertion 为 30/30；cube pickup 中 PLD 数据蒸馏后为 30/30，而 RLPD 数据为 16/30、人类数据为 10/30。YAM 双臂系统将 GPU 任务拆成四阶段，在每个子任务最多 8 小时训练后，可连续执行插入、移动、再插入、拔出并放回桌面至少 1 小时，无人工 reset。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-pld/probing-ratio-1.3k8qzu6dpd.webp&quot; alt=&quot;Base-policy probing 比例消融：探测到约 0.6 后性能饱和（论文 Figure 12）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 消融显示：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;去掉 residual probing 或只用 base-policy rollout，会降低样本效率并明显损害 unseen-task 泛化。&lt;/li&gt;
&lt;li&gt;只用 RL expert rollout 虽然轨迹更“最优”，但分布过窄；hybrid PLD 数据的 SFT 表现更稳健。&lt;/li&gt;
&lt;li&gt;probing horizon $T_{base}\sim[0,\alpha T]$ 在 $\alpha=0.6$ 左右达到平台，继续增大反而下降。&lt;/li&gt;
&lt;li&gt;action scale 过大导致早期偏离 base policy、训练不稳定；过小则探索不足。&lt;/li&gt;
&lt;li&gt;Cal-QL critic warm-start 比 CQL / 简化 IQL 更稳定；on-the-fly 多动作采样主要改善样本效率，最终性能差异较小。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-pld/real-world-low-1.67y7a6zf6o.webp&quot; alt=&quot;探测状态与恢复动作带来的真实世界失败模式覆盖（论文 Figure 10）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在 LIBERO-90 的任务覆盖实验中，PLD 在只训练 10% 任务时，seen / unseen success rate 为 94.1% / 24.4%；coverage 提高到 80% 时为 86.4% / 26.8%。相同预算下，base-policy rollout 数据的 unseen success rate 仅为 1.5%–6.2%（随覆盖比例变化），说明成功筛选本身不能提供足够的跨任务信息。&lt;/p&gt;
&lt;p&gt;真实世界从 clean blue-cube 与 peg-insertion 训练迁移到 cluttered 环境时，PLD 在 blue cube、red cube、peg insertion 上分别达到 93.3%、66.7%、100%，对应 human data 的 40.0%、33.3%、100%。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 长时 LIBERO-100 组合任务中，PLD 超过 self-bootstrap rollout，但仍低于每个目标任务都给一条人类示教，表明“恢复覆盖”并不等价于完整的长程任务规划。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; PLD 同时解决了两个互相牵制的问题：residual RL 把探索限制在 base action 邻域，降低从零探索稀疏奖励的难度；probing 又把 specialist 放回 base policy 的访问分布，使 SFT 看到的是“模型会遇到什么、如何修复”，而不是与部署无关的理想轨迹。蒸馏阶段不改动数据生成目标，因此可复用不同 VLA action head。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Policy-aligned data generation&lt;/strong&gt;：数据分布由通才策略决定，而非只由 RL 最优性决定。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Residual takeover&lt;/strong&gt;：把任务专家变成可插拔的纠错器，避免直接更新大规模 VLA。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;RL-to-SFT bridge&lt;/strong&gt;：用 RL 发现技能、用 SFT 扩散技能，实现轻量专家到多任务通才的迁移。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; RLPD 主要依赖 offline/online replay，WSRL 依赖 warm-start，JSRL 通过 guide policy 改变初始状态分布；PLD 在此之上保留 frozen base policy、训练 residual actor，并把 base probing 轨迹显式作为蒸馏数据。它不是直接 RL fine-tune foundation policy，也不是简单复制 base policy 的成功片段。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 方法依赖以下假设：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;base VLA 至少能产生合理尝试，否则 residual 的局部修正空间可能不够。&lt;/li&gt;
&lt;li&gt;成功 / 失败 reward classifier 或环境奖励足够可靠；错误的 binary reward 会把错误恢复蒸馏回模型。&lt;/li&gt;
&lt;li&gt;base policy 的访问分布是值得对齐的；如果部署分布变化很大，probing 可能覆盖不到新失败模式。&lt;/li&gt;
&lt;li&gt;任务可以由 7-DoF delta pose 与 gripper action 表达，且 residual addition 在动力学上可执行。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文指出长时组合任务仍落后于目标任务人类示教；真实 peg-insertion 为增加多样性，仍需要人工随机移动孔位。YAM 任务虽然可连续运行一小时，但每个阶段的一次成功率并非 100%。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 首先，PLD 并没有消除人类成本：真实任务的初始 SFT、reward classifier 标注和机械环境随机化仍需要人工。其次，逐任务训练 residual specialist 的计算量随任务数线性增加；论文没有给出跨 embodiment 共享 residual 的成本分析。再次，action scale、probing horizon、critic 预训练方式都需要调参，换机器人或相机布局后未必可直接迁移。最后，SFT 把 recovery behavior 写回通才模型时可能产生负迁移，论文尚未提供安全约束、灾难性遗忘监控或在线回滚机制。&lt;/p&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; PLD 提供了一个很实用的“数据飞轮”模板：通才策略暴露失败分布，轻量 RL 专家负责修复，修复轨迹再反哺通才。后续值得研究：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;用不确定性或 value disagreement 自动决定何时 residual takeover，而不是随机固定 probing horizon。&lt;/li&gt;
&lt;li&gt;将 recovery trajectories 与失败片段配对，训练显式 failure detector / intervention policy。&lt;/li&gt;
&lt;li&gt;在多 embodiment 场景共享 residual latent，并把 action-space adapter 与 VLA backbone 解耦。&lt;/li&gt;
&lt;li&gt;为真实机器人加入 safety shield、碰撞约束和可回滚 checkpoint，避免错误 reward classifier 形成闭环放大。&lt;/li&gt;
&lt;li&gt;把 PLD 与 continual learning 结合，研究数据覆盖、KL 漂移和长期遗忘之间的定量关系。&lt;/li&gt;
&lt;/ol&gt;</content:encoded><h:img src="https://pic.hana0721.top/65089776_p0_master1200.5c1kl2nzfo.webp"/><enclosure url="https://pic.hana0721.top/65089776_p0_master1200.5c1kl2nzfo.webp"/></item><item><title>πRL 论文精读：为 Flow-based VLA 打通 Online RL</title><link>https://agusexp25.top/blog/paper-deep-dive-pi-rl</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-pi-rl</guid><description>精读 πRL：将 flow matching 的去噪过程改写为可计算似然的随机策略，使 π0 与 π0.5 能以 PPO 从在线交互中继续提升。</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;论文名称&lt;/strong&gt;：《πRL: Online RL Fine-tuning for Flow-based Vision-Language-Action Models》&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;论文链接&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2510.25889&quot;&gt;arXiv:2510.25889&lt;/a&gt; ｜ &lt;strong&gt;官方代码&lt;/strong&gt;：&lt;a href=&quot;https://github.com/RLinf/RLinf&quot;&gt;RLinf/RLinf&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-pi-rl/pi-rl-overview-crop.icuyly6aq.webp&quot; alt=&quot;πRL 的在线强化学习总览：SFT 后的 flow-based VLA 通过 Flow-Noise 或 Flow-SDE 与环境交互，再以 RL 更新&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; πRL 的关键不是给 VLA 外接一个通用 PPO，而是先解决 flow matching policy 的两个前置障碍：确定性 ODE 采样缺少探索，且很难直接得到 PPO 所需的 action log-likelihood。Flow-Noise 与 Flow-SDE 都把去噪转移改为有解析高斯概率的随机决策，从而让 $\pi_0$、$\pi_{0.5}$ 可以从在线交互中继续优化。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 提出两条 RL-compatible flow policy：Flow-Noise 在去噪过程中学习噪声网络；Flow-SDE 将 ODE 改写为同边缘分布的 SDE，并将去噪与环境交互建模为两层 MDP。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在 LIBERO、ManiSkill、MetaWorld、CALVIN 上评测 $\pi_0$ 与 $\pi_{0.5}$；附录还以 GR00T 验证方法不限于 $\pi$ 系列。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Flow-SDE 的 hybrid ODE-SDE rollout 每个环境步仅保留一个随机去噪步骤，论文报告相对完整两层 MDP 约有 $2\times$ 加速。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方 RLinf 公开 flow_sde、flow_noise、OpenPI policy、PPO 配置和四个基准的示例入口。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; VLA 往往按 pre-training → SFT 训练：VLM 接收图像、语言和可选 proprioception，action expert 输出连续动作。SFT 的上限受到专家示范成本和质量约束，故近年工作尝试用 online RL 改进策略。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 已有 VLA-RL 多针对离散 action token，或以显式 Gaussian head 表示连续最终动作。flow-based VLA 则学习条件向量场，将高斯噪声逐步变换为 action chunk；少量去噪步下，最终 action 的连续流似然不便直接计算，原始 ODE sampler 又没有随机探索。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 难点发生在 policy interface 而非 PPO 本身：如果不能可靠计算新旧策略对已采样 action 的概率比 $\rho$，policy gradient 就无从定义。πRL 的本质是为 flow sampler 构造一个可探索、可算 log-prob 的随机策略参数化。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在环境步 $t$，观测 $\mathbf{o}_t$ 包含 RGB、语言和模型所需状态，flow policy 产生长度 $H$ 的连续 action chunk：&lt;/p&gt;
&lt;p&gt;$$
\mathbf{A}&lt;em&gt;t=[a&lt;/em&gt;{t,0},\ldots,a_{t,H-1}]\sim\pi_\theta(\cdot\mid\mathbf{o}&lt;em&gt;t),
\qquad
\mathcal{J}(\pi&lt;/em&gt;\theta)=\mathbb{E}\left[\sum_{t=0}^{T}\gamma^tR_{\mathrm{ENV}}(\mathbf{o}_t,\mathbf{A}_t)\right].
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Conditional Flow Matching 从干净动作 $\mathbf{A}_t$、噪声 $\epsilon\sim\mathcal{N}(0,I)$ 构造中间状态 $\mathbf{A}_t^\tau=\tau\mathbf{A}_t+(1-\tau)\epsilon$，令向量场预测目标速度 $\mathbf{u}=\mathbf{A}_t-\epsilon$。推理则从高斯噪声开始，迭代去噪成动作块。&lt;/p&gt;
&lt;p&gt;| Embodied AI 要素      | πRL 中的设定                                                                            |
| --------------------- | --------------------------------------------------------------------------------------- |
| Observation           | 图像、语言；论文按官方设定说明 $\pi_0$ 使用 proprioception，而 $\pi_{0.5}$ 不使用 state |
| Action representation | 连续 action chunk；RL 把整块作为 macro-step                                             |
| Policy                | 条件 flow matching vector field，经多步去噪生成动作                                     |
| Training objective    | PPO，优势由 GAE 估计                                                                    |
| Environment           | LIBERO、ManiSkill、MetaWorld、CALVIN；附录提供 sim-to-real 案例                         |&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-pi-rl/pi-rl-mdp-formulation-crop.54yhzawpuc.webp&quot; alt=&quot;πRL 的两种 MDP：Flow-Noise 单层 MDP 与 Flow-SDE 的去噪—环境两层 MDP（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 数据流为：观测条件化 vector field 从初始噪声生成 action chunk，随机去噪转移给出 log-probability，执行 chunk 获得环境 reward，再用 PPO 更新 VLA 的可训练部分。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;Flow-Noise：可求概率的去噪链&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-pi-rl/pi-rl-noise-injection-crop.8s41mtsidx.webp&quot; alt=&quot;Flow-Noise 与 Flow-SDE 在去噪轨迹中注入随机性的示意（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Flow-Noise 在第 $k$ 个去噪步令下一状态服从高斯分布，均值保持原有 Euler 更新，协方差由噪声网络 $\sigma_{\theta&apos;}$ 给出。该网络以当前噪声动作和观测为条件，与 velocity field 联合训练。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入 / 输出&lt;/strong&gt;：输入 $\mathbf{A}^{\tau}$、$\mathbf{o}$、$\mathbf{v}^{\tau}$，输出随机 $\mathbf{A}^{\tau+\delta}$ 与解析 transition log-probability。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要&lt;/strong&gt;：整条去噪 path 的联合概率可写为初始噪声与逐步转移概率的乘积，不必估计最终动作的连续流密度。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;推理行为&lt;/strong&gt;：论文明确说明 fine-tuning 后丢弃 noise network，保留 deterministic policy。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Flow-SDE：去噪—环境两层 MDP&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Flow-SDE 从 probability-flow ODE 出发，加入 drift correction 与扩散项以构造等价 SDE。内层 state 是 $(\mathbf{o}&lt;em&gt;t,\mathbf{A}&lt;em&gt;t^\tau)$：未完成去噪时 reward 为 0；最后一步执行 action chunk 后才与外层环境交互，获得 $R&lt;/em&gt;{\mathrm{ENV}}$ 并转移到 $\mathbf{o}&lt;/em&gt;{t+1}$。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 完整两层 MDP 的长度会变为“环境步数 × 去噪步数”。hybrid rollout 每个环境步随机选择一个 SDE transition 做探索，其他去噪步骤照确定性 ODE 执行，因而缩短有效 horizon。&lt;/p&gt;
&lt;h4&gt;Critic placement&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-pi-rl/pi-rl-critic-pi05-crop.9kgx4k93zk.webp&quot; alt=&quot;π0.5 将 critic 接在 VLM 输出后的结构（论文 Figure 4 右）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; $\pi_{0.5}$ 将 critic 接在融合多模态输入的 VLM 输出后得到 $V_{\mathrm{vlm}}(\mathbf{o}_t)$；$\pi_0$ 的 action expert 同时依赖 noisy action 和 state，论文以去噪时间上的 value 均值近似 observation-level value。共享 actor-critic backbone 的动机是降低额外显存。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;Conditional Flow Matching&lt;/h4&gt;
&lt;p&gt;$$
\mathcal{L}&lt;em&gt;{\mathrm{CFM}}=
\mathbb{E}\left[\left|\mathbf{v}&lt;/em&gt;\theta(\mathbf{A}_t^\tau,\mathbf{o}_t)-
\mathbf{u}(\mathbf{A}_t^\tau\mid\mathbf{A}_t)\right|_2^2\right].
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; $\mathbf{v}_\theta$ 是预测的条件向量场，$\mathbf{u}$ 是目标速度，$\tau\in[0,1]$ 是 flow time；该 loss 负责从示范学习去噪，并不等于 RL 的 PPO objective。&lt;/p&gt;
&lt;h4&gt;Flow-Noise transition&lt;/h4&gt;
&lt;p&gt;$$
p(\mathbf{A}^{\tau+\delta}\mid\mathbf{A}^{\tau})=\mathcal{N}(\mu_\tau,\Sigma_\tau),\quad
\mu_\tau=\mathbf{A}^{\tau}+\mathbf{v}^{\tau}\delta,\quad
\Sigma_\tau=\operatorname{diag}(\sigma_{\theta&apos;}^2).
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; $\delta$ 是去噪步长，$\sigma_{\theta&apos;}$ 是可学习的标准差；因此整条 path 的 log-likelihood 是初始噪声概率与 $K$ 个 Gaussian transition 概率之和。&lt;/p&gt;
&lt;h4&gt;Flow-SDE transition&lt;/h4&gt;
&lt;p&gt;$$
d\mathbf{A}^\tau=\left[\mathbf{v}^\tau+
\frac{\sigma_\tau^2}{2\tau}\left(\mathbf{A}^\tau+(1-\tau)\mathbf{v}^\tau\right)\right]d\tau
+\sigma_\tau d\mathbf{w}&lt;em&gt;\tau,
\qquad \sigma&lt;/em&gt;\tau=a\sqrt{\frac{\tau}{1-\tau}}.
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; $d\mathbf{w}_\tau$ 是 Wiener noise，$a$ 控制探索强度；离散化后依旧有 Gaussian mean / variance，因此可直接得到 PPO 的逐步 log-probability。&lt;/p&gt;
&lt;h4&gt;PPO 与 chunk return&lt;/h4&gt;
&lt;p&gt;$$
\hat A_t=\sum_{k=0}^{T-t}(\gamma\lambda)^k
\left[R_{t+k}+\gamma V(s_{t+k+1})-V(s_{t+k})\right],
$$&lt;/p&gt;
&lt;p&gt;$$
\mathcal{J}_{\mathrm{PPO}}=\mathbb{E}\left[
\min\left(\rho_t\hat A_t,\operatorname{clip}(\rho_t,1-\varepsilon,1+\varepsilon)\hat A_t\right)
\right].
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; $R_t=\sum_{j=0}^{H-1}r_{t,j}$ 是 action chunk 内奖励的和；$\gamma$ 是折扣、$\lambda$ 是 GAE 的 bias-variance 系数、$\varepsilon$ 限制策略更新。Flow-Noise 的 $\rho_t$ 可来自整条去噪链，Flow-SDE 则来自内层随机转移。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 训练从 SFT checkpoint 开始：SFT 阶段按官方设置 fine-tune 全部 3.3B 参数；RL 阶段冻结 VLM，只更新 300M action expert，以降低显存开销。实验使用 PPO、GAE、chunk-level reward 与 8 张 NVIDIA H100 80GB。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 评测时不保留探索噪声：Flow-Noise 丢弃 noise network；Flow-SDE 使用 deterministic ODE sampling。每次从噪声生成 $H$ 个连续动作并执行。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 论文链接指向的官方仓库是 RLinf；以下对照基于当前主分支，而不是从论文图中反推实现。&lt;/p&gt;
&lt;p&gt;| 论文概念            | 官方代码位置                                                           | 实际实现                                                                                                          |
| ------------------- | ---------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- |
| policy 配置         | rlinf/models/embodiment/openpi/openpi_action_model.py 的 OpenPi0Config | noise_method 支持 flow_ode、flow_sde、flow_noise，并配置 noise_level、noise_logvar_range、action_chunk、num_steps |
| Flow-Noise 噪声网络 | 同文件 ExploreNoiseNet 初始化                                          | flow_noise 时创建隐藏层 [128, 64] 的 noise head，范围由 noise_logvar_range 限制                                   |
| 均值 / 方差         | sample_mean_var_val                                                    | flow_sde 计算 SDE mean 和 $\sqrt{\delta}\sigma$；flow_noise 使用 noise head；flow_ode 标准差为零                  |
| likelihood / critic | get_log_prob_value                                                     | 对保存的去噪 chain 逐步算 Gaussian log-prob；$\pi_{0.5}$ 可由 VLM prefix output 预测 value                        |
| 训练配置            | examples/embodiment/config/libero_spatial_ppo_openpi_pi05.yaml         | PPO 使用 GAE、chunk-level reward / logprob；示例设 num_action_chunks: 5、num_steps: 3、policy LR $5\times10^{-6}$ |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 示例将 actor、environment、rollout colocate；这与论文所述同 GPU 串行 shared allocation 一致。仓库已是通用 RL framework，因此不应把其中所有模型与算法都归因于 πRL。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; LIBERO 关注组合变化与长程操作；ManiSkill 包含 4,352 个 pick-and-place 任务组合；MetaWorld MT50 覆盖 50 个操作任务；CALVIN 测试持久场景中连续五个子任务。主比较从 few-shot SFT checkpoint 起步后做 RL，测量的是 online feedback 对目标分布中 SFT policy 的提升，而不是从零训练的样本效率。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Table 1 的 ID 平均成功率（%）如下。Flow-SDE 和 Flow-Noise 的相对排名随模型与基准而变。&lt;/p&gt;
&lt;p&gt;| Model       | SFT Avg. | Flow-SDE Avg. | Flow-Noise Avg. | 最佳平均增益 |
| ----------- | -------: | ------------: | --------------: | -----------: |
| $\pi_0$     |     51.1 |          78.7 |        &lt;strong&gt;80.3&lt;/strong&gt; |    &lt;strong&gt;+29.2&lt;/strong&gt; |
| $\pi_{0.5}$ |     55.6 |      &lt;strong&gt;86.6&lt;/strong&gt; |            84.7 |    &lt;strong&gt;+31.0&lt;/strong&gt; |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; $\pi_{0.5}$ 的 Flow-SDE 在 ManiSkill、MetaWorld、CALVIN 分别为 90.9%、70.7%、87.0%，Flow-Noise 在 LIBERO 达 98.3%。$\pi_0$ 的 Flow-Noise 在 LIBERO、MetaWorld 达 97.6%、85.8%，Flow-SDE 在 CALVIN 为 61.7%。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 两条路线接近但不完全同胜，说明不只是“有没有噪声”决定效果；critic 误差、reward、去噪步数和 chunk 长度都会改变有效的 PPO 信号。论文在消融中优先使用计算更高效的 Flow-SDE，是工程取舍而非 Flow-Noise 无效。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-pi-rl/pi-rl-mdp-ablation-crop.45iem4tyn8.webp&quot; alt=&quot;Flow-SDE 中不同 MDP 表述的训练与评测曲线（论文消融图）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Flow-SDE 消融有三条直接结论：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;固定与可学习噪声都可收敛；受控比较中固定 noise level 为 0.5，learnable noise bounds 为 0.08 和 0.16。&lt;/li&gt;
&lt;li&gt;小噪声减少探索扰动，但 $a=0.2$ 有更高 clipped fraction 和训练不稳定；必须平衡 exploration 与 rollout quality。&lt;/li&gt;
&lt;li&gt;$K=1$ 有明显 ODE-to-SDE 离散化误差；更大 $K$ 改善 rollout、但增加训练复杂度。更大 action chunk 虽可能提高 SFT 表现，却降低交互频率和 reward credit 的精度。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在 LIBERO-Spatial，RL eval 成功率在 noise $a=0.2/0.5/0.8$ 时为 73.1/94.5/98.1；在 $K=1/2/4/8$ 时为 88.5/97.0/94.5/86.7。这是该基准和预算下的测量值，不应视为通用最优超参数。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; OOD 被区分为环境 / 视觉变化（CALVIN、ManiSkill）和任务变化（MetaWorld ML45）。前两类中 ID 增益可迁移到 OOD；MetaWorld 未见任务的曲线波动，未显示显著稳定的提升。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这更支持 action-level refinement：PPO 能利用 reward 改进已知任务族中的接触、抓取和轨迹细节，但 sparse reward 未必足以让策略组合出新的任务目标。论文没有证明“RL 自动获得跨任务泛化”。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; πRL 将难以处理的最终 flow density 拆为一组 Gaussian transition。PPO 比较的是被实际采样的局部随机转移，因而同时获得 likelihood 与探索；action chunk 则压缩了外层环境决策的长度。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 创新是 flow-based VLA 的 RL-compatible formulation，而不是新的 VLM：Flow-Noise 给出整条随机去噪链的单层 MDP，Flow-SDE 显式表达去噪—环境两层决策，hybrid sampling 则使它能在在线训练中承担较短的有效 horizon。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 离散 action-token VLA 可用 softmax likelihood；普通连续 policy 常对最终动作建 Gaussian；πRL 的 policy action 是 flow 的中间去噪状态，保留多步生成结构后再为它定义 Gaussian transition。Flow-Noise 与 Flow-SDE 也不是参数化小改动：前者优化整条 stochastic chain，后者强调内层去噪 MDP 与 hybrid acceleration。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 方法要求环境 reward 足以区分动作质量，SFT policy 已能探索到有用区域，ODE-to-SDE 在所选 $K$ 与 noise 下稳定，且 chunk-level reward 不会掩盖关键的时间步 credit。任一条件不满足，PPO 都可能成为高方差甚至退化的更新。&lt;/p&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 作者指出 online RL 的 sample efficiency 仍低，现阶段框架依赖 sim-to-real deployment；未来希望提高效率以支持真实世界 RL。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 论文主要在可并行模拟器收集 rollout，实机仍受环境交互量、reward engineering 和安全约束限制。Flow-SDE 的 noise、去噪步数与 action chunk 并非独立旋钮；论文消融显示它们会共同改变 clip fraction、rollout success 与 critic 难度。MetaWorld task-level OOD 也表明 πRL 应被视作在线 skill refinement，而不是已被证实的跨任务泛化方法。&lt;/p&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 对生成式 robot policy，首先需要回答的可能不是“PPO 还是 GRPO”，而是“什么随机变量才是 policy action”。πRL 将去噪状态纳入 action space，提供了一条通用路线：先将生成轨迹改写成可计算、可探索的决策过程，再做 policy optimization。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 后续可探索 learned / process reward 以缓解 sparse-reward exploration，将 world model rollout 与 hybrid denoising 结合以减少实机采样，并将 uncertainty-aware critic、adaptive noise schedule 与安全约束共同纳入 flow policy 训练。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/145491169_p0_master1200.2dpccm5v9t.webp"/><enclosure url="https://pic.hana0721.top/145491169_p0_master1200.2dpccm5v9t.webp"/></item><item><title>OmniVTA 论文精读：视觉-触觉世界模型驱动的接触丰富操作</title><link>https://agusexp25.top/blog/paper-deep-dive-omnivta</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-omnivta</guid><description>精读 OmniVTA：从 21,879 条视觉-触觉-动作轨迹出发，用 TactileVAE、双流世界模型、接触感知融合与 60Hz 反射控制解决接触丰富操作。</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;论文名称&lt;/strong&gt;：《OmniVTA: Visuo-Tactile World Modeling for Contact-Rich Robotic Manipulation》&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;作者&lt;/strong&gt;：Yuhang Zheng、Songen Gu、Yupeng Zheng、Weize Li、Yujie Zang、Shuai Tian、Xiang Li、Ce Hao、Chen Gao、Si Liu、Haoran Li、Yilun Chen、Shuicheng Yan、Wenchao Ding&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;机构&lt;/strong&gt;：National University of Singapore、CASIA、Fudan University、TARS Robotics、Tsinghua University、Zhongguancun Academy、Beihang University&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;论文 / 代码 / 项目&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2603.19201&quot;&gt;arXiv&lt;/a&gt; · &lt;a href=&quot;https://github.com/MrSecant/OmniVTA&quot;&gt;GitHub&lt;/a&gt; · &lt;a href=&quot;https://mrsecant.github.io/OmniVTA&quot;&gt;Project Page&lt;/a&gt; · &lt;a href=&quot;https://huggingface.co/datasets/tars-robotics/OmniVitac&quot;&gt;OmniViTac Dataset&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; OmniVTA 把接触丰富操作拆成“慢速预测规划 + 快速触觉反射”两条环路：先由双流 Visuo-Tactile World Model 预测未来短时接触，再由 Adaptive Fusion Policy 生成动作块，最后用 60Hz Reflexive Latent Tactile Controller 根据预测与观测的差异做单步修正。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;发布 OmniViTac，一个包含 21,879 条视觉-触觉-动作对齐轨迹、86 个任务、126 个对象的真实世界数据集，并按接触物理归纳为 Wiping、Peeling、Cutting、Grasping、Assembly、Adjustment 六类模式。&lt;/li&gt;
&lt;li&gt;提出 TactileVAE：以 3D marker displacement 为输入，用时空 3D 卷积压缩触觉信号，再用 implicit neural representation 连续重建形变场。&lt;/li&gt;
&lt;li&gt;提出 VTWM：用两个并行的时空 diffusion transformer 建模视觉和触觉未来，并通过共享条件、动态权重和幅值权重强调接触区域。&lt;/li&gt;
&lt;li&gt;提出 AFP 与 RLTC：AFP 用 Latent Tactile Differential 和 gating 自适应调节视觉/触觉比重；RLTC 以 60Hz 输出高频残差动作，闭环恢复接触。&lt;/li&gt;
&lt;li&gt;在真实机器人六类任务上，OmniVTA 在对象多样性、未见高度、未见工具和突发扰动下都优于比较方法。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 擦拭、剥皮、切割、插接等任务的困难不只在几何对齐，还在于摩擦、滑移、法向力和接触状态转换。视觉容易被遮挡，也难以直接观测接触力，因此仅靠 RGB 的 visuomotor policy 很难判断“是否已经接触”“接触是否过强”或“是否发生滑移”。&lt;/p&gt;
&lt;p&gt;论文认为现有视觉-触觉方法有两个瓶颈：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;数据不足&lt;/strong&gt;：公开数据集通常任务少、轨迹少，且完整对齐的高频触觉-动作数据稀缺。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;触觉被动化&lt;/strong&gt;：多数方法把触觉当作 policy 的附加 observation，而不是显式预测接触动力学；action chunk 又往往开环执行，无法快速处理滑移、错位和外部扰动。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; OmniVTA 的切入点与普通“视觉特征 + 触觉特征拼接”不同：它把触觉变成一个可预测的内部状态，并把预测误差转化为控制信号。这更接近人类的 forward model 加 reflex，而不是单纯扩大 policy 的输入维度。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 给定当前与历史视觉观测、触觉观测、机器人本体状态以及历史动作，学习一个策略，输出未来动作块并在接触丰富任务中保持稳定。&lt;/p&gt;
&lt;p&gt;| 项目          | 定义                                                                             |
| ------------- | -------------------------------------------------------------------------------- |
| Observation   | RGB-D / RGB 视觉、3D marker displacement 触觉、末端位姿与夹爪状态                |
| 视觉频率      | 训练设置为 15Hz；数据采集相机为约 30Hz                                           |
| 触觉频率      | 60Hz（Xense 主传感器）                                                           |
| Action        | 末端相对动作与夹爪状态；world model 使用当前相机平面上的 2D 投影动作作为历史条件 |
| Slow output   | 15FPS 的 6-step action chunk                                                     |
| Fast output   | 60Hz 单步 residual action                                                        |
| Robot         | UFACTORY xArm7、平行两指夹爪、指尖触觉传感器                                     |
| Task patterns | Wiping、Peeling、Cutting、Grasping、Assembly、Adjustment                         |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 每个 action chunk 含未来 6 个 coarse actions，执行时插值到 60Hz；预测触觉 latent 的时间压缩为 15Hz，再通过重复插值与 60Hz 控制步对齐。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-omnivta/system.szortrrb9.webp&quot; alt=&quot;OmniVTA 的 slow-fast 系统架构（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Slow Policy 接收低频视觉、高频触觉和本体状态，由 VTWM 预测接触演化、AFP 生成长时域动作块；Fast Policy 即 RLTC，每 60Hz 比较预测和实际触觉并输出修正量，最终动作是两者的加权和。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这是一种频率分工：世界模型负责“接下来可能发生什么”，RLTC 负责“现在偏离了多少”。因此高成本的 diffusion rollout 不需要运行在 60Hz，而触觉反馈也不必承担长时域规划。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;TactileVAE：把 marker 位移变成连续触觉 latent&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 光学触觉传感器原始图像分辨率高、推理慢。OmniVTA 使用每个 marker 的三维位移 $(x,y,z)$，将单帧表示为 $H\times W\times3$ 张量。Encoder 由 causal 3D convolution、$M$ 个下采样模块和 projection-out 组成，输出 $H/s\times W/s\times C$ 的时空 latent，其中 $s=2^M$。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-omnivta/vae.1vze2pnlc7.webp&quot; alt=&quot;TactileVAE 的时空编码与隐式形变解码（论文 Figure 4）&quot;&gt;&lt;/p&gt;
&lt;p&gt;Decoder 不重建像素，而是用 implicit neural representation 表示连续形变场：给定空间坐标和 latent 局部特征，MLP 预测该点的三维位移。这样既保留局部接触结构，也能在任意查询坐标上连续重建。&lt;/p&gt;
&lt;h4&gt;Visuo-Tactile World Model：预测短时接触动力学&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-omnivta/slow-policy.4920jx1efg.webp&quot; alt=&quot;VTWM 与 AFP 的 slow policy 结构（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; VTWM 有两个并行分支：视觉分支用 SD-VAE 编码图像，触觉分支用预训练 TactileVAE 编码 marker displacement；两者分别送入 spatial-temporal diffusion transformer，联合生成未来视觉和触觉 latent。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Multi-modal Observation Conditioner&lt;/strong&gt;：分别编码视觉、触觉与历史动作，再映射到共享条件空间，作为两个分支的共同先验。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Action representation&lt;/strong&gt;：每个历史末端位置从 robot base frame 变换到当前 camera frame，再投影到图像平面，得到 2D action condition。论文的消融显示它在未见位置上优于 3D absolute / relative action。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dynamic-aware loss&lt;/strong&gt;：利用相邻触觉帧差分生成 $w_{dyn}$，强调变化快的空间位置；利用触觉幅值生成 $w_{amp}$，强调强接触区域。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Adaptive Visuo-Tactile Fusion Policy：让触觉权重随接触状态变化&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; AFP 包括 LTD Encoder、Adaptive Fusion 和 Visuo-Tactile Diffusion Policy。&lt;/p&gt;
&lt;p&gt;LTD 对当前触觉 latent $f_t^c$ 和预测触觉 latent $f_t^p$ 做拼接，并显式加入差分：&lt;/p&gt;
&lt;p&gt;$$
f_t=\operatorname{concat}(f_t^c,f_t^p,f_t^p-f_t^c)
$$&lt;/p&gt;
&lt;p&gt;差分项回答的是“未来接触是否正在偏离当前状态”，比简单 concat 更直接地表达潜在接触事件。&lt;/p&gt;
&lt;p&gt;接触概率头从 $f_t$ 预测未来窗口内的 contact probability，并用触觉形变阈值自动生成 BCE 标签。Gating network 根据 contact logit 与 $f_t$ 产生逐通道权重 $W_t,W_v$，满足 $W_t+W_v=1$，再与视觉特征 $f_v$、投影后的触觉特征 $\tilde f_t$ 融合：&lt;/p&gt;
&lt;p&gt;$$
f_{vt}=\operatorname{concat}(W_v\odot f_v, W_t\odot\tilde f_t)
$$&lt;/p&gt;
&lt;p&gt;视觉使用当前与历史帧即可；论文发现额外生成未来视觉对成功率提升不明显，却把 slow policy 推理时间从 230ms 增加到 480ms。&lt;/p&gt;
&lt;h4&gt;Reflexive Latent Tactile Controller：60Hz 残差闭环&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-omnivta/controller.2yz3dljf9f.webp&quot; alt=&quot;RLTC 的输入输出（论文 Figure 5）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; RLTC 输入单帧实测触觉、与当前控制步对齐的预测触觉 latent、历史 delta action 和 delta gripper state，经 LTD 与三层 MLP 输出单步 refined action $a_r$。由于 TactileVAE 在时间维压缩 4 倍，当前帧重复 4 次送入 encoder；15Hz 预测 latent 也重复 4 次，对齐 60Hz 反馈。&lt;/p&gt;
&lt;p&gt;训练数据由两类片段组成：触觉落在专家均值 ± 标准差之外的 abnormal recovery，以及处于有效分布内的 normal-contact。异常片段的监督是专家恢复动作与 slow action 的 residual，正常片段的目标 residual 为零。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;TactileVAE&lt;/h4&gt;
&lt;p&gt;$$
\mathbf d(\mathbf x)=\mathcal D_\theta\bigl(\gamma(\mathbf x),\Phi(\mathbf z_t,\mathbf x)\bigr)
$$&lt;/p&gt;
&lt;p&gt;其中 $\mathbf x\in\mathbb R^2$ 为空间坐标，$\gamma$ 是 positional encoding，$\Phi$ 从 latent feature map 插值局部特征，$\mathcal D_\theta$ 输出三维形变。训练目标为：&lt;/p&gt;
&lt;p&gt;$$
\mathcal L_{TacVAE}=|\mathbf d(\mathbf x)-\hat{\mathbf d}(\mathbf x)|&lt;em&gt;2^2+\lambda&lt;/em&gt;{KL}\mathcal L_{KL}
$$&lt;/p&gt;
&lt;h4&gt;VTWM diffusion objective&lt;/h4&gt;
&lt;p&gt;$$
\mathcal L_{diff}=\mathbb E\left[\sum_i(1-m_i)\odot|\epsilon_i-\epsilon_\theta(\mathbf z_o,t)_i|_2^2\right]
$$&lt;/p&gt;
&lt;p&gt;$\mathbf z_o$ 是历史视觉-触觉 observation latent，$m_i$ 标记已知的条件帧；只有未来帧的噪声预测参与损失。&lt;/p&gt;
&lt;p&gt;动态和幅值加权后：&lt;/p&gt;
&lt;p&gt;$$
\mathcal L_{VTWM}=\mathcal L_{diff}+\lambda_1\mathcal L_{dyn}+\lambda_2\mathcal L_{amp}
$$&lt;/p&gt;
&lt;p&gt;其中 $w_{dyn}$ 来自 $|X_{i+1}-X_i|&lt;em&gt;2$，$w&lt;/em&gt;{amp}$ 来自 $|X_i|_2$，二者 resize 到 tactile latent 的空间分辨率。&lt;/p&gt;
&lt;h4&gt;AFP 与 RLTC&lt;/h4&gt;
&lt;p&gt;动作 diffusion 从高斯噪声 $A_{c,T}$ 反向去噪到 action chunk $A_{c,0}$：&lt;/p&gt;
&lt;p&gt;$$
A_{c,t-1}=\alpha_tA_{c,t}-\gamma_t\epsilon_\theta(A_{c,t},t,f_c)+\sigma_t\mathcal N(0,I)
$$&lt;/p&gt;
&lt;p&gt;条件 $f_c=\operatorname{concat}(f_{vt},s)$ 包含融合特征与 proprioception。AFP 总损失为 $\mathcal L_{act}+\lambda_{ct}\mathcal L_{bce}$；RLTC 使用：&lt;/p&gt;
&lt;p&gt;$$
\mathcal L_{RLTC}=|a_r-\hat a_r|_2^2
$$&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 训练分四阶段：TactileVAE → VTWM → AFP → RLTC。TactileVAE 使用约 120 万触觉样本、8 张 A100 训练 50 epochs，$\lambda_{KL}=10^{-6}$；VTWM 使用 AdamW、学习率 $10^{-4}$、100k steps、$\lambda_{dyn}=\lambda_{amp}=1$；AFP 训练 250k steps，$\lambda_{ct}=0.2$；RLTC 使用正常接触与异常恢复片段监督。&lt;/p&gt;
&lt;p&gt;训练输入为 2 帧视觉、同一时间窗口内 8 帧触觉、2 个 proprioception observation。Slow policy 以 15Hz 生成 6-step chunk，执行时插值到 60Hz。主要模块参数量为 TactileVAE 1.96M、VTWM 271.57M、AFP 326.89M、RLTC 0.10M，总计 600.52M。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 推理时，VTWM 根据历史视觉、触觉和动作 rollout 未来触觉（以及训练时联合建模的视觉 latent）；AFP 只使用当前/历史视觉与预测触觉生成 6-step action chunk；RLTC 在每个 60Hz 控制周期读取实测触觉，与对应预测 latent 比较并输出修正量。最终执行动作可写成：&lt;/p&gt;
&lt;p&gt;$$
a_t=a_t^{slow}+\alpha a_t^{fast}
$$&lt;/p&gt;
&lt;p&gt;其中 $\alpha$ 是预定义的 fast-policy 权重。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 论文项目页列出的官方仓库是 &lt;code&gt;MrSecant/OmniVTA&lt;/code&gt;，数据集仓库为 Hugging Face &lt;code&gt;tars-robotics/OmniVitac&lt;/code&gt;，硬件仓库为 &lt;code&gt;MrSecant/OmniVTA_Hardware&lt;/code&gt;。截至本文检索时，GitHub 代码仓库公开内容只有 &lt;code&gt;LICENSE&lt;/code&gt;，没有 model definition、DataLoader、训练脚本、配置、checkpoint 或 inference entrypoint；硬件仓库也无法在无凭据环境中克隆。因此本文的模块接口、损失和超参数均以论文 v3 的 LaTeX 源码为准，不能把它们误写成已验证的代码行为。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这也意味着目前无法从代码确认例如 diffusion scheduler、网络层数、数据文件格式和动作归一化方式。若后续仓库公开，应优先补充这些“论文—实现”差异。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-omnivta/patterns.8okfp6dstd.webp&quot; alt=&quot;OmniViTac 六类物理接触模式（论文 Figure 6）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; OmniViTac 由 xArm7 机器人示教与 TacUMI 手持采集设备共同构建，记录 RGB-D、腕部/第三视角图像、指尖触觉、末端轨迹和夹爪状态。数据采集保持各传感器原生频率，离线按时间戳对齐，时间误差低于 10ms。&lt;/p&gt;
&lt;p&gt;六类模式分别对应不同的接触物理：Assembly 关注紧公差与多向力，Cutting 依赖法向力和力骤降，Adjustment 依赖扭转/剪切与滑移，Peeling 和 Wiping 需要持续维持法向压力与切向摩擦，Grasping 则覆盖脆弱物体、透明物体和铰接机构。&lt;/p&gt;
&lt;p&gt;真实实验使用 xArm7、平行夹爪与 Xense 触觉传感器；视觉 15Hz、触觉 60Hz。对象多样性评估每个对象 10 次；未见高度每个高度 5 次；未见工具和扰动实验每个设置 10 次。指标是成功率，同时要求任务完成且触觉传感器不损坏。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-omnivta/manipulation.92qvg1m42s.webp&quot; alt=&quot;六类任务的真实机器人操作结果（论文 Figure 7）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在对象多样性（O）、几何泛化（G）和扰动鲁棒性（P）三种设置中，OmniVTA 的主要成功率如下：&lt;/p&gt;
&lt;p&gt;| 任务       |    O |    G |    P |
| ---------- | ---: | ---: | ---: |
| Wipe       | 0.80 | 0.58 | 0.60 |
| Peel       | 0.55 | 0.48 | 0.63 |
| Cut        | 0.85 | 0.83 | 0.60 |
| Assembly   | 0.60 | 0.50 | 0.40 |
| Grasp      | 0.90 |    — |    — |
| Adjustment | 0.65 | 0.65 |    — |&lt;/p&gt;
&lt;p&gt;作为对照，OmniVTA w/o RLTC 在 Wipe 的 O/G/P 为 0.66/0.40/0.25，在 Cut 为 0.50/0.50/0.20；RDP 在 Wipe 为 0.50/0.38/0.42，在 Cut 为 0.65/0.50/0.43。&lt;strong&gt;【Analysis】&lt;/strong&gt; 这些数字最清楚地说明 RLTC 的价值集中在接触被打断时：它不只是提高平均成功率，而是显著提高重新建立接触的能力。&lt;/p&gt;
&lt;p&gt;论文还报告，OmniVTA 接触阶段平均切向形变为 0.35、最大 0.72，而 RDP 平均 0.56、最大 1.1，更容易出现过强接触并损坏传感器。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 关键消融结果可以归纳为：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;预测触觉长度从 0、2、4 增加到 6 个 latent steps 时，Wipe/Peel 平均成功率从 0.09、0.33、0.38 增至 0.40。&lt;/li&gt;
&lt;li&gt;用 contact state 替代完整预测触觉，平均成功率只有 0.37；说明“未来触觉的形状与强度”比一个二值接触标签更有用。&lt;/li&gt;
&lt;li&gt;LTD 将平均成功率从 0.47 提升到 0.53；在此基础上加入 gating 后达到 0.53，Wipe 从 0.57 提升到 0.66。&lt;/li&gt;
&lt;li&gt;加入生成视觉特征后平均为 0.54，提升很小，但 slow policy 推理从 230ms 变成 480ms。&lt;/li&gt;
&lt;li&gt;VTWM 在未见位置上用 2D action condition 的 $L_2=0.042$、Cosine=0.91，优于 3D relative（0.056/0.88）和 3D absolute（0.075/0.72）。在已见位置上，dynamic weighting 与 joint generation 将 $L_2$ 从 0.041 降到 0.035、Cosine 从 0.90 升到 0.93。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 消融给出一条因果链：更好的触觉 latent → 更准确的未来触觉 → 更合理的 gating → 更稳定的 action chunk；RLTC 则负责把这一条“预测链”在真实执行时拉回传感器观测。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 未见高度实验把 Wipe、Peel、Assembly、Adjustment 的对象放到训练中没有出现的高度；Cut 使用未见过的小刀。OmniVTA 在这些设置下保持较高成功率，尤其 Cut 的几何泛化达到 0.83。扰动实验中突然上下移动对象、破坏当前接触，OmniVTA 仍能通过 RLTC 快速恢复。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 未见工具仍有效说明策略更依赖触觉反馈和接触动力学，而非记忆训练轨迹的绝对几何。需要注意，这种泛化仍发生在单臂、平行夹爪和六类预定义模式内，不能直接外推到灵巧手或双臂场景。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 接触丰富操作同时包含两个时间尺度：擦拭和插接的整体运动需要长时域一致性，滑移和力骤变却要求毫秒级反应。单一 policy 很难同时覆盖这两个频率。OmniVTA 用 VTWM 提供 feedforward anticipation，用 RLTC 提供 feedback correction；AFP 再根据预测接触概率决定何时相信触觉。&lt;/p&gt;
&lt;p&gt;更关键的是，dynamic-aware loss 把训练容量集中在“正在变化”或“接触很强”的区域，避免世界模型被大量静态、无接触帧主导。这与触觉的空间局部性和 contact-driven dynamics 相匹配。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;数据层&lt;/strong&gt;：不是只增加轨迹数量，而是用物理接触模式组织数据，让不同任务共享可迁移的接触规律。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;表示层&lt;/strong&gt;：implicit decoder 把离散 marker 变成连续形变场；LTD 把当前—未来差异显式编码。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;预测层&lt;/strong&gt;：双流 diffusion world model 联合建模视觉与触觉，而不是把触觉当静态附加通道。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;控制层&lt;/strong&gt;：slow diffusion planner 与 60Hz tactile reflex controller 组成分层闭环。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; DP、DP+tactile、KineDex、ForceMimic 和 RDP 主要从视觉/触觉直接预测动作，或把力作为辅助输出。OmniVTA 先预测接触未来，再用预测结果调节模态权重与动作，且在执行阶段持续比较预测和观测。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 因此它的基本对象不是“observation → action”，而是“observation → latent contact dynamics → action + residual correction”。这使得触觉同时承担状态估计、未来想象和反馈控制三种职责。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;触觉 marker displacement 足以表达任务所需的接触信息，且可以被低维 latent 保留。&lt;/li&gt;
&lt;li&gt;未来短时触觉可以由历史视觉、触觉和动作预测；不必在推理时生成未来视觉。&lt;/li&gt;
&lt;li&gt;专家轨迹的触觉均值与标准差能够定义“有效接触分布”，异常状态可用它检测。&lt;/li&gt;
&lt;li&gt;slow action 与 fast residual 的加权和仍在机器人安全控制范围内。&lt;/li&gt;
&lt;li&gt;共享平行夹爪和相近传感器配置能减小 TacUMI 到 xArm7 的 embodiment gap。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文结尾明确指出 OmniViTac 目前面向单臂、夹爪式触觉操作，不包含双臂或灵巧手；未来工作包括扩展更大世界模型、双臂/灵巧手以及跨 embodiment 的视觉-触觉表示迁移。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;计算开销大&lt;/strong&gt;：VTWM 与 AFP 合计约 598M 参数；虽然 fast controller 只有 0.10M，但 slow policy 230ms 的延迟仍限制了更高频的重规划。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;传感器依赖明显&lt;/strong&gt;：训练与真实评测主要使用 Xense，跨传感器结果主要出现在 TactileVAE 表征实验，完整 policy 的跨传感器迁移尚未证明。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;异常定义是分布式的&lt;/strong&gt;：用均值 ± 标准差检测异常依赖专家数据覆盖；遇到未见材料、磨损传感器或长期漂移时，阈值可能失效。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;世界模型 horizon 较短&lt;/strong&gt;：预测重点是 24 个解码触觉帧，长时域任务仍依赖 action chunk 和连续重规划，尚未展示长时间闭环误差如何累积。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;代码可复现性暂时不足&lt;/strong&gt;：截至本文检索时官方代码仓库只有 LICENSE，训练脚本、配置、模型权重和数据处理实现尚未公开，读者无法端到端复现实验。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; OmniVTA 给 VLA / embodied policy 的启发不只限于加入触觉：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;把难观测的物理量变成可预测 latent&lt;/strong&gt;，比把原始传感器直接拼到 policy 更容易形成可解释的控制接口。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;预测误差本身就是控制信号&lt;/strong&gt;。LTD 使用 $f_t^p-f_t^c$，RLTC 使用预测与实测触觉偏差，这是一种通用的 model-based residual control 范式。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;多模态融合不应固定权重&lt;/strong&gt;。接触前视觉负责全局定位，接触中触觉负责局部力学；gating 把这种阶段性先验变成了可学习权重。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;数据集的 taxonomy 会影响模型设计&lt;/strong&gt;。如果只按语义任务划分，Wipe 与 Peel 看似不同；按剪切/法向力等物理模式组织后，它们可以共享接触动力学。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;值得继续追问的方向&lt;/strong&gt;：能否把 60Hz RLTC 扩展为安全约束控制器？能否让世界模型同时预测力、滑移和不确定性？能否用 OmniViTac 的跨传感器数据训练 sensor-invariant tactile token？&lt;/li&gt;
&lt;/ul&gt;</content:encoded><h:img src="https://pic.hana0721.top/70937229_p0_master1200.6bhnz4ob71.webp"/><enclosure url="https://pic.hana0721.top/70937229_p0_master1200.6bhnz4ob71.webp"/></item><item><title>OmniVLA-RL 论文精读：空间理解与在线强化学习统一的 VLA</title><link>https://agusexp25.top/blog/paper-deep-dive-omnivla-rl</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-omnivla-rl</guid><description>精读 OmniVLA-RL：用 MoT 三专家与 Block-wise Causal Attention 融合空间、语义和动作，并以 Flow-GSPO 稳定优化 Flow Matching 策略。</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;《OmniVLA-RL: A Vision-Language-Action Model with Spatial Understanding and Online RL》针对 VLA 的两个瓶颈：VLM 的 3D 空间精度不足，以及把连续动作接入在线 RL 时训练不稳定。作者提出两个相互配套的组件：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;OmniVLA&lt;/strong&gt;：基于 Mixture-of-Transformers（MoT）的 Reasoning、Spatial、Action 三专家架构。三者共享 Transformer 层，允许语言、视觉语义、3D 几何和动作表征在大模型内部双向交互。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Flow-GSPO&lt;/strong&gt;：把原本确定性的 Flow Matching ODE 改写成带噪声的 SDE，再用 Group Segmented Policy Optimization（GSPO）按完整 action block 计算似然比和优势，避免 token 级更新的偏差与崩溃。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在 LIBERO 上报告平均 97.6% 成功率，在 LIBERO-Plus 上 Flow-GSPO 达到 80.3%，高于 PPO 的 78.7% 和 GRPO 的 65.7%。这些结果来自论文表格与曲线；论文没有提供公开代码仓库链接。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;论文链接&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2604.17706&quot;&gt;arXiv:2604.17706&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-omnivla-rl/figure_01.67y7a6ybjb.webp&quot; alt=&quot;OmniVLA-RL overall architecture from paper Figure 1&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; OmniVLA-RL 的关键取舍是：先让空间表征进入 VLM 的核心层，再把一个 action chunk 看作 RL 的最小决策单元；前者解决“看得不准”，后者解决“学得不稳”。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;用 MoT 统一 Reasoning Expert、Spatial Expert 和 Action Expert，突破仅在视觉编码器（early fusion）或动作头（late fusion）注入空间信息的做法。&lt;/li&gt;
&lt;li&gt;提出 &lt;strong&gt;Block-wise Causal Attention&lt;/strong&gt;：空间与语义 token 构成彼此全可见的 prefix，action suffix 只能访问 prefix 和过去的 action block。&lt;/li&gt;
&lt;li&gt;提出 &lt;strong&gt;Flow-GSPO&lt;/strong&gt;：通过 Fokker–Planck 将 Flow Matching 的 ODE 变成 SDE，并以 action-block 级 GSPO 做稳定探索。&lt;/li&gt;
&lt;li&gt;在 LIBERO 与 LIBERO-Plus 上验证架构和在线 RL 的收益。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 传统 VLA 通常以预训练 VLM 为骨干，再接一个轻量 Action Head。语言和场景语义很强，但从单目或多视角 RGB 恢复物体位置、尺寸、朝向等 3D 信息并不可靠；抓取、避障和插入任务却恰恰依赖这些细节。&lt;/p&gt;
&lt;p&gt;空间信息的注入大致分为两类：Evo-0、SpatialVLA 等在 VLM 之前融合空间特征（early fusion）；FALCON 等在 VLM 之后与 action token 交叉注意（late fusion）。&lt;strong&gt;【Analysis】&lt;/strong&gt; 两者都把核心大模型当成黑盒，导致语言、语义视觉和几何特征无法在同一组 Transformer 层中充分对齐。&lt;/p&gt;
&lt;p&gt;另一方面，PPO 需要额外的 value model，GRPO 虽然省去 value model，却按 token 计算重要性比。对连续机器人轨迹而言，一个 token 的高概率并不代表整段 action chunk 合理，单 token 更新还可能破坏动作的时间连续性。Flow Matching 生成动作时又通常沿确定性 ODE 去噪，缺少在线 RL 所需的随机探索。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 机器人任务被建模为 MDP：&lt;/p&gt;
&lt;p&gt;$$
M=(\mathcal S,\mathcal A,\mathcal P,\mathcal R,\rho_0)
$$&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Observation&lt;/strong&gt;：多视角 RGB 图像 $I_t$、语言指令 $L$ 与本体状态 $s_{\mathrm{prop}}$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Action&lt;/strong&gt;：长度为 $H$ 的连续 action block $A_t=[a_{t,0},\ldots,a_{t,H-1}]$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Policy&lt;/strong&gt;：$a_t\sim\pi_\theta(\cdot\mid s_t)$，其中 $s_t$ 包含视觉、语言和本体信息。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Embodiment / Dataset&lt;/strong&gt;：实验在 LIBERO 与 LIBERO-Plus 仿真基准上进行；动作预训练使用 DROID，空间预训练使用大规模 3D 数据集。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;论文给出的在线 RL 配置是 $H=16$、每个 action block 使用 $K=10$ 个去噪步，组大小 $G=8$。论文未明确说明真实机器人部署结果。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Reasoning Expert 用 SigLIP 和预训练 VLM 编码多视角图像、语言；Spatial Expert 用 VGGT 提取细粒度 3D 特征；Action Expert 将融合后的表示映射为 action trajectory。三者共享 MoT Transformer，并由 Block-wise Causal Attention 控制信息可见性。&lt;/p&gt;
&lt;p&gt;数据流可以概括为：多视角 RGB + 指令 → 语义/空间 token 融合 → 条件 Flow Matching → 长度为 $H$ 的动作块。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;Reasoning Expert&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 输入是多视角观测 $\mathcal O={O_i}&lt;em&gt;{i=1}^M$ 和语言 token $z&lt;/em&gt;{lang}$。SigLIP 产生语义视觉 token $z_{sem}\in\mathbb R^{n\times d}$，再与语言 token 一起送入 decoder-only Transformer，建模 $p(z_{lang}\mid z_{sem})$。输出是可供空间和动作分支使用的全局语义上下文。&lt;/p&gt;
&lt;h4&gt;Spatial Expert&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; VGGT 从多视角图像提取空间特征 $z_{spatial}$，并在共享 Transformer 内与语义 token 做 attention。训练时在最终 hidden state $h_i\in\mathbb R^{C\times d}$ 上接轻量 Transformer Spatial Decoder，重建 point cloud、camera 参数和 surface normal。这个 auxiliary head 只负责几何监督，推理时不参与动作生成。&lt;/p&gt;
&lt;h4&gt;Action Expert&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 动作序列先经线性 projector 映射到 Transformer latent space，再由 Conditional Flow Matching（CFM）建模：&lt;/p&gt;
&lt;p&gt;$$
a_t\sim p(a\mid z_{spatial},z_{sem},z_{lang})
$$&lt;/p&gt;
&lt;p&gt;输出是可执行的连续 action chunk，而不是相互独立的单步动作。&lt;strong&gt;【Analysis】&lt;/strong&gt; action chunking 让模型直接学习一段轨迹的内部相关性，也让 RL 的信用分配单位与控制语义更一致。&lt;/p&gt;
&lt;h4&gt;Block-wise Causal Attention&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Spatial 与 Reasoning token 组成 omni-visible prefix，彼此完全可见；action token 构成 causal suffix，每个 action block 可以看完整 prefix 和自己之前的 action token，但不能看未来 action token。prefix 被禁止访问后续 latent noise，避免 Flow Matching 的随机噪声污染场景理解。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-omnivla-rl/attention_map.6wrgu7luip.webp&quot; alt=&quot;Block-wise Causal Attention mask from paper Figure 2&quot;&gt;&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;从 Flow Matching ODE 到随机 SDE&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 原始 Flow Matching 沿速度场 $v_\theta$ 积分：&lt;/p&gt;
&lt;p&gt;$$
\frac{\mathrm d A_t^\tau}{\mathrm d\tau}=v_\theta(A_t^\tau,s_t)
$$&lt;/p&gt;
&lt;p&gt;为引入探索，作者构造 SDE：&lt;/p&gt;
&lt;p&gt;$$
\mathrm dA_t^\tau=\left[v_\theta+\frac{\sigma_\tau^2}{2}\left(A_t^\tau+(1-\tau)v_\theta\right)\right]\mathrm d\tau+\sigma_\tau\mathrm dw_\tau
$$&lt;/p&gt;
&lt;p&gt;$\tau$ 是去噪时间，$\sigma_\tau$ 是噪声日程，$w_\tau$ 是 Wiener 过程。Euler–Maruyama 离散化后：&lt;/p&gt;
&lt;p&gt;$$
A_t^{\tau+\delta}=A_t^\tau+\left[v_\theta+\frac{\sigma_\tau^2}{2}(A_t^\tau+(1-\tau)v_\theta)\right]\delta+\sigma_\tau\sqrt\delta,\epsilon
$$&lt;/p&gt;
&lt;p&gt;因此转移概率是 $p(A_t^{\tau+\delta}\mid A_t^\tau,s_t)=\mathcal N(\mu_\tau,\Sigma_\tau)$，其中 $\Sigma_\tau=\sigma_\tau^2\delta I$。这一步把每个去噪步变成可计算 log-likelihood 的高斯转移。&lt;/p&gt;
&lt;h4&gt;Action-block 级重要性比&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 一个 action block 的策略概率是所有 $K$ 个高斯转移的乘积：&lt;/p&gt;
&lt;p&gt;$$
\pi_\theta(A_{t,i}\mid s_t)=\prod_{\tau=0}^{K-1}p_\theta(A_{t,i}^{\tau+\delta}\mid A_{t,i}^\tau,s_t)
$$&lt;/p&gt;
&lt;p&gt;为避免长序列造成数值尺度随长度增长，定义归一化重要性比：&lt;/p&gt;
&lt;p&gt;$$
s_{i,t}(\theta)=\exp\left(\frac{1}{|A_{i,t}|}\sum_{\tau=0}^{K-1}\log\frac{p_\theta(A_{t,i}^{\tau+\delta}\mid A_{t,i}^\tau,s_t)}{p_{\theta_{old}}(A_{t,i}^{\tau+\delta}\mid A_{t,i}^\tau,s_t)}\right)
$$&lt;/p&gt;
&lt;p&gt;其中 $|A_{i,t}|=H\times K$。同一状态采样 $G$ 个 action block，以任务回报归一化得到优势 $\hat A_{i,t}$，再使用 clipped GSPO 目标并减去 action-block 级 KL 惩罚：&lt;/p&gt;
&lt;p&gt;$$
\mathcal J_{Flow\text{-}GSPO}=\mathbb E\left[\frac1G\sum_i\min(s_{i,t}\hat A_{i,t},\operatorname{clip}(s_{i,t},1-\varepsilon,1+\varepsilon)\hat A_{i,t})-\beta D_{KL}(\pi_\theta\Vert\pi_{old})\right]
$$&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 训练采用三阶段渐进式流程：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Stage I：空间预训练&lt;/strong&gt;。初始化 PaLiGemma；冻结 Action Expert，联合训练 Reasoning 与 Spatial Expert。损失为 point cloud、camera、normal 三项重建损失之和。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Stage II：动作预训练&lt;/strong&gt;。解冻 Action Expert，关闭 Spatial Head，在 DROID 上用 CFM loss 学习动作生成：$\mathcal L_{CFM}=\mathbb E|v_t(x_t,t;c)-(x_1-x_0)|_2^2$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Stage III：在线 RL&lt;/strong&gt;。从 Stage II checkpoint 出发，全模型解冻；每个状态采样 $G=8$ 个 action block，执行后用任务完成奖励与 gripper 对齐奖励更新 Flow-GSPO。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-omnivla-rl/train_stage_omni.1ow677suql.webp&quot; alt=&quot;Three-stage training paradigm from paper Figure 3&quot;&gt;&lt;/p&gt;
&lt;p&gt;论文报告的关键超参数为 $\varepsilon=0.2$、$\beta=0.01$、$\sigma_\tau=0.1(1-\tau)$、$K=10$、$H=16$；优化器是 AdamW，学习率 $10^{-5}$、weight decay $0.01$，进行 200 次 RL update，每 10 步刷新 rollout buffer。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 推理时给定当前多视角观测和语言指令，从高斯噪声初始化 action block，沿 Flow Matching 轨迹迭代 $K$ 步，得到长度 $H$ 的连续动作并交给机器人控制器执行。与 RL 训练不同，推理阶段不需要计算优势或反向传播；论文未明确说明是否沿用 RL 阶段的噪声强度。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 截至本文写作，arXiv 论文、源文件 &lt;code&gt;00README.json&lt;/code&gt; 与论文正文均未给出官方 GitHub、配置文件或可运行代码链接，因此无法核对模型类、DataLoader、loss 实现和 checkpoint 命名。上文“代码”层面的结论只能写为：&lt;strong&gt;没有可分析的官方代码&lt;/strong&gt;；方法细节均来自论文。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; LIBERO 包含 Spatial、Object、Goal、Long 四个任务套件；LIBERO-Plus 增加组合式长时序任务，对多阶段操作、遮挡和精确定位提出更高要求。论文将 Flow-GSPO 与 PPO、GRPO 比较，并在 LIBERO 上与 Diffusion Policy、Octo、OpenVLA、SpatialVLA、CoT-VLA、$\pi_0$、$\pi_{0.5}$ 和 $F_1$ 比较。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; OmniVLA-RL 在 LIBERO 四个套件都排名第一：Spatial 99.2%、Object 99.2%、Goal 98.5%、Long 93.5%，平均 97.6%。相对 $\pi_0$ 的平均成功率 94.2%，绝对提升 3.4 个百分点；相对 OpenVLA 的 76.5%，提升 21.1 个百分点。Long 套件的 93.5% 说明 action block 和空间特征对误差累积敏感的长时序任务尤其重要。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-omnivla-rl/libero_plus_final_vector.3d5j4ej4tb.webp&quot; alt=&quot;LIBERO-Plus success-rate curves from paper Figure 4&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; LIBERO-Plus 消融结果如下：&lt;/p&gt;
&lt;p&gt;| 配置                   |    成功率 | 相对 SFT-only |
| ---------------------- | --------: | ------------: |
| OmniVLA-RL（SFT only） |     41.2% |             — |
| + PPO                  |     78.7% |         +37.5 |
| + GRPO                 |     65.7% |         +24.5 |
| + &lt;strong&gt;Flow-GSPO&lt;/strong&gt;        | &lt;strong&gt;80.3%&lt;/strong&gt; |     &lt;strong&gt;+39.1&lt;/strong&gt; |
| 去掉 Spatial Expert    |     32.9% |          −8.3 |&lt;/p&gt;
&lt;p&gt;Flow-GSPO 比 PPO 高 1.6 个百分点、比 GRPO 高 14.6 个百分点；去掉 Spatial Expert 后下降 8.3 个百分点，是架构消融中最大的损失。&lt;strong&gt;【Analysis】&lt;/strong&gt; 这同时支持两个判断：action-block 级 RL 更适合连续轨迹，而几何特征不是可有可无的附加输入。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文展示了从标准 LIBERO 到更长、更组合化的 LIBERO-Plus 的迁移，但没有报告真实机器人、未见物体类别或跨 embodiment 实验。因此对开放世界泛化的结论仍有限。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; OmniVLA-RL 的收益来自三层对齐：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Spatial Expert 提供局部几何锚点，减少“知道物体是什么但不知道在哪里”的歧义。&lt;/li&gt;
&lt;li&gt;Block-wise mask 让空间/语义理解不被 action noise 反向污染，同时保留 action 对完整 prefix 的访问。&lt;/li&gt;
&lt;li&gt;Flow-GSPO 把整段动作的概率和回报绑定，降低单 token 高方差梯度，并用 KL 抑制策略跳变。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 真正的创新不是简单堆叠 VGGT、VLM 和 Flow Matching，而是改变它们的耦合位置：几何表征进入共享 Transformer；随机性进入生成过程的转移概率；RL 的优化单位则与 action chunk 对齐。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;| 维度         | 常见 VLA / GRPO         | OmniVLA-RL                          |
| ------------ | ----------------------- | ----------------------------------- |
| 空间融合位置 | 编码器前或动作头后      | 共享 Transformer 内部               |
| 注意力结构   | 单一 causal mask        | omni-visible prefix + causal suffix |
| 生成过程     | 确定性 FM 或 token 采样 | SDE 随机 Flow Matching              |
| RL 单位      | token / 单步            | action block                        |
| 稳定性约束   | PPO clip 或 token KL    | block-level ratio + block-level KL  |&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 方法隐含假设包括：多视角观测足以由 VGGT 提供稳定几何特征，DROID 的动作分布能迁移到 LIBERO，且每个 action block 的累计奖励能够代表其内部动作质量。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 最后一个假设尤其关键：若奖励只在 block 末端稀疏出现，block 内部的信用分配仍可能粗糙；论文没有给出更细粒度 reward shaping 的消融。&lt;/p&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 作者承认当前验证主要在高保真仿真中完成，sim-to-real gap 尚未充分研究；同时模型没有专门的 world model 来做结构化长时序规划。未来工作包括真实机器人部署、加入生成式 world model，以及处理更开放的多模态操作任务。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;论文没有公开代码、训练日志或算力细节，结果难以复现和审计。&lt;/li&gt;
&lt;li&gt;LIBERO 的 97.6% 与 LIBERO-Plus 的 80.3% 来自单一仿真设置，尚不能证明跨相机、跨机器人或真实接触动力学的稳健性。&lt;/li&gt;
&lt;li&gt;三专家共享大部分 Transformer 层可能带来显存和训练耦合成本；论文没有报告与独立 backbone 的参数量、吞吐和延迟对比。&lt;/li&gt;
&lt;li&gt;SDE 噪声日程、$G$、$K$、$H$ 对探索和控制平滑度的敏感性没有系统网格实验。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这篇工作给后续 VLA-RL 三点启发：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;把表示对齐和策略优化放在同一粒度上。&lt;/strong&gt; 如果控制器执行的是 action chunk，训练目标也应优先描述 chunk 的概率与回报。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;随机生成模型可以直接提供 RL 的 transition likelihood。&lt;/strong&gt; Flow Matching 不必被当作只能做监督学习的动作头，加入可控噪声后即可接入 policy-gradient 框架。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;空间理解应进入 backbone，而不是只做外挂特征。&lt;/strong&gt; 更进一步的方向是让空间 token、语言计划和动作 chunk 共享可解释的中间状态，并由 world model 预测长时序后果。&lt;/li&gt;
&lt;/ol&gt;</content:encoded><h:img src="https://pic.hana0721.top/99749488_p0_master1200.83an1pr7.webp"/><enclosure url="https://pic.hana0721.top/99749488_p0_master1200.83an1pr7.webp"/></item><item><title>多相机视角扩展论文精读：用同步视角提升模仿学习的数据效率</title><link>https://agusexp25.top/blog/paper-deep-dive-multiview-il</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-multiview-il</guid><description>精读 Multi-Camera View Scaling：把一条同步多相机示教展开为伪示范，并以相机坐标动作和多视角动作聚合提升机器人模仿学习的数据效率与泛化。</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;论文名称&lt;/strong&gt;：《Multi-Camera View Scaling for Data-Efficient Robot Imitation Learning》&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;论文链接&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2604.00557&quot;&gt;arXiv:2604.00557&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;项目主页&lt;/strong&gt;：&lt;a href=&quot;https://yichen928.github.io/robot_multiview/&quot;&gt;Multiview Imitation Learning&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;代码状态&lt;/strong&gt;：截至本文撰写时，论文与项目主页均未公开官方代码仓库。&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 本文不通过重复遥操作收集更多轨迹，而是在一次示范时同步安装多台相机，把同一轨迹转成多条视觉和动作表征不同的 &lt;strong&gt;pseudo-demonstrations&lt;/strong&gt;。这以很小的额外采集成本增加视角多样性，并提升视觉模仿策略的样本效率与视角泛化。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;提出 Camera View Scaling：一条由 $V$ 台同步相机记录的专家轨迹可展开为 $V$ 条伪示范，而非要求人类重复示教。&lt;/li&gt;
&lt;li&gt;分析 robot base、end-effector（EEF）和 camera 三种动作坐标系；相机坐标系使同一物理动作在不同视角下也有不同监督目标。&lt;/li&gt;
&lt;li&gt;为 Diffusion Policy 设计多视角动作聚合：保留单视角模型接口，部署时可选地并行处理多个视角并组合去噪方向。&lt;/li&gt;
&lt;li&gt;在 robomimic 的 Square、Can、Lift 仿真任务，以及 FANUC CRX-10iA 真实倒水任务中验证方法。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Behavior Cloning 的泛化受训练分布限制；改变场景、物体摆放和背景来采集多样化示教，往往比重复做一次动作更耗人力。已有路线依赖更多硬件、跨机器人数据或环境随机化，而本文瞄准的是每条示教中未被利用的同步多视角信息。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 多视角在这里不等于把多张图直接送给一个多相机网络。训练时，每个相机视角被当作一条单视角样本，策略根据该视角图像学习输出匹配坐标系的动作；部署默认仍可以只保留前视相机 $Cam_F$。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 文章的关键不是新 backbone，而是改变“什么算一条训练示范”。同步视角带来的样本并不统计独立，它们共享同一段动作和场景；它更像具有物理一致性的 viewpoint augmentation，而不等价于采到 $N\times V$ 条独立轨迹。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 对长度为 $L_i$ 的第 $i$ 条专家轨迹，传统单视角数据为：&lt;/p&gt;
&lt;p&gt;$$
\tau_i={(\mathbf{o}&lt;em&gt;{i,t},\mathbf{a}&lt;/em&gt;{i,t})}_{t=1}^{L_i},
$$&lt;/p&gt;
&lt;p&gt;其中 $\mathbf{o}&lt;em&gt;{i,t}$ 是 RGB 观测，$\mathbf{a}&lt;/em&gt;{i,t}$ 是动作。视觉运动策略由感知编码器 $g_\phi$ 与策略骨干 $h_\theta$ 组成：&lt;/p&gt;
&lt;p&gt;$$
\hat{\mathbf{a}}=h_\theta\circ g_\phi(\mathbf{o}).
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 若一条轨迹由 $V$ 台同步相机记录，则可展开为 ${\tau_i^v}&lt;em&gt;{v=1}^{V}$。第 $v$ 条伪示范由 $\mathbf{o}&lt;/em&gt;{i,t}^v$ 和该视角坐标系中的 $\mathbf{a}_{i,t}^v$ 构成，训练集变为：&lt;/p&gt;
&lt;p&gt;$$
\mathcal{T}&lt;em&gt;{demo}^{MV}={(\mathbf{o}&lt;/em&gt;{i,t}^v,\mathbf{a}&lt;em&gt;{i,t}^v)}&lt;/em&gt;{i,t,v}.
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 机器人动作用末端变化 $(\Delta\mathbf{p},\Delta\mathbf{R},s)$ 表示，分别为 $\mathbb{R}^3$ 平移、$SO(3)$ 旋转和夹爪状态；默认策略骨干为 conditional Diffusion Policy。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-multiview-il/multiview-il-overview-cropped.3uvkt0pjjw.webp&quot; alt=&quot;相机视角扩展总览：一次示范被投影为多个视角伪示范（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 数据流是：一次遥操作同时记录多视角 RGB 序列；训练时随机选择一个视角，将该视角图像和对应动作表示送入原有单视角策略。默认部署只输入 $Cam_F$；当部署端有多个相机时，可在 diffusion sampling 中聚合各视角预测。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;Camera View Scaling 与伪示范&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 输入是同步多视角图像、真实机器人轨迹和相机外参；输出为每个视角的一组 &lt;code&gt;(image sequence, action sequence)&lt;/code&gt;。多机位改变了遮挡、物体相对位置与背景外观，而人类只需执行一次遥操作。&lt;/p&gt;
&lt;h4&gt;动作坐标系选择&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-multiview-il/multiview-il-action-space-cropped.60uzesh7d5.webp&quot; alt=&quot;Base、EEF 与 Camera 三种伪示范动作坐标系（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 三种动作处理如下：&lt;/p&gt;
&lt;p&gt;| 坐标系     | 伪示范动作                            | 所需信息      | 含义                         |
| ---------- | ------------------------------------- | ------------- | ---------------------------- |
| Robot base | $\mathbf{a}&lt;em&gt;{i,t}^v=\mathbf{a}&lt;/em&gt;{i,t}$ | 无额外变换    | 所有视角共享 base-frame 标签 |
| EEF        | 转到当前末端坐标系后共享标签          | 当前 EEF 位姿 | 表达相对末端变化             |
| Camera     | 每台相机独立变换                      | 外参与标定    | 视角和动作标签一起变化       |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; base space 直接复制动作；EEF space 用当前末端旋转把位移/旋转写成局部量；camera space 依据每个相机的外参重表达动作。对于单固定相机，base 与 camera 表达可互相转换；多相机时 camera space 同时扩展视觉输入和标签数值。&lt;/p&gt;
&lt;h4&gt;多视角动作聚合&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 同一个训练好的单视角模型分别处理每台相机画面。每步 diffusion 去噪时，模块把各视角预测先变换到共同坐标系、求和，再用于更新采样动作；其目标是偏好所有视角都支持的动作。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这是 prediction-level composition，而不是 feature-level fusion：相机 A 的 token 不会在网络内部直接 attend 相机 B。它可复用单视角网络并方便并行，但要求各相机预测能可靠变换到同一机器人动作语义。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;视角对应的动作变换&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 用 $\mathcal{F}^{v}$ 表示原动作到第 $v$ 个伪示范动作的变换：&lt;/p&gt;
&lt;p&gt;$$
\mathbf{a}&lt;em&gt;{i,t}^{v}=\mathcal{F}^{v}(\mathbf{a}&lt;/em&gt;{i,t}).
$$&lt;/p&gt;
&lt;p&gt;在 camera space，给定第 $v$ 个相机的外参旋转 $\mathbf{R}^{ext}_v$：&lt;/p&gt;
&lt;p&gt;$$
\Delta\mathbf{p}&lt;em&gt;{i,t}^{v}=\mathbf{R}^{ext}&lt;em&gt;v\Delta\mathbf{p}&lt;/em&gt;{i,t},\qquad
\Delta\mathbf{R}&lt;/em&gt;{i,t}^{v}=\mathbf{R}^{ext}&lt;em&gt;v\Delta\mathbf{R}&lt;/em&gt;{i,t}(\mathbf{R}^{ext}_v)^T.
$$&lt;/p&gt;
&lt;p&gt;这里 $\mathbf{R}^{ext}_v$ 将同一物理末端变化改写为该相机参考系下的动作，因此不同视角拥有与各自图像一致的标签。&lt;/p&gt;
&lt;h4&gt;组合后的条件分布&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 给定多视角观测，论文用 product-of-experts 组合单视角条件分布：&lt;/p&gt;
&lt;p&gt;$$
p_\Theta(\mathbf{a}&lt;em&gt;{aggr}\mid{\mathbf{o}^v}&lt;/em&gt;{v=1}^{V})
\propto\prod_{v=1}^{V}p_\Theta(\mathbf{a}\mid\mathbf{o}^v).
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在第 $t$ 个去噪步，预测 $\epsilon_\Theta(\mathbf{o}^v)$ 先经 $\mathcal{F}^{v^{-1}}$ 对齐到共同坐标系、按 $\gamma$ 累加，再映射回采样空间更新 $\mathbf{a}_{aggr}^t$。$\gamma$ 是聚合超参数，论文未明确报告具体取值。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 训练时，从同步多视角示范中选择视角，将 RGB 观测与同坐标系动作配对，并用 Diffusion Policy 的模仿目标更新模型。仿真实验采用预训练 DINOv3-base 视觉编码器并用 LoRA 微调；真实机器人使用 ResNet-18、Spatial Softmax 与 FiLM 条件化。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 不启用聚合时，策略如普通单视角 Diffusion Policy：输入 $Cam_F$，迭代去噪生成动作并执行。启用聚合时，仍由同一个策略独立处理 $V$ 张图，额外计算只发生在每个去噪步的动作变换与求和；论文将其作为多相机可用时的可选收益。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 论文 arXiv 页面与项目主页均未提供官方源码链接。因此无法核验 model definition、数据加载、损失、采样器、标定接口或训练超参数；本文不以项目页动图和文字推断代码行为。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 可确认的实现信息仅来自论文：仿真默认 baseline 是 Diffusion Policy，视觉编码器为 DINOv3-base + LoRA；真实实验使用 ResNet-18、Spatial Softmax、FiLM 条件化的 diffusion policy。更细的配置、训练轮数、batch size 与 $\gamma$ 取值，论文未明确说明。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-multiview-il/multiview-il-real-robot-cropped.6wrgu8qvxf.webp&quot; alt=&quot;FANUC CRX-10iA 真实倒水任务、平行夹爪与双相机设置（论文 Figure 4）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 仿真选取 robomimic 的 Square、Can、Lift，以成功率为指标。默认相机为正前方 $Cam_F$；相机绕工作区中心向左、右、上、下各旋转 $15^\circ$，得到 $Cam_{FL}$、$Cam_{FR}$、$Cam_{FU}$、$Cam_{FD}$。除特殊说明外，部署仅用 $Cam_F$。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 真实任务是抓取茶壶并向锅中倒水。系统为配平行夹爪与硅胶软指尖的 FANUC CRX-10iA，使用左右两个固定 RGB 相机；通过遥操作收集 50 条示范，并分别用 $N=25$ 和 $N=50$ 训练。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 下表给出仿真成功率。所有多视角结果均仅以 $Cam_F$ 部署，提升来自训练时的伪示范而非测试时增加输入相机。&lt;/p&gt;
&lt;p&gt;| 训练视角 / 动作空间 | Square $N=10/25/50$ | Can $N=10/25/50$   | Lift $N=10$ |
| ------------------- | ------------------- | ------------------ | ----------- |
| $Cam_F$ / Base      | 0.14 / 0.26 / 0.42  | 0.18 / 0.54 / 0.72 | 0.69        |
| 3 views / Base      | 0.16 / 0.31 / 0.47  | 0.27 / 0.63 / 0.78 | 0.79        |
| 3 views / Camera    | 0.17 / 0.29 / 0.47  | 0.30 / 0.68 / 0.83 | 0.76        |
| 5 views / Base      | 0.18 / 0.42 / 0.55  | 0.32 / 0.65 / 0.80 | 0.80        |
| 5 views / Camera    | 0.18 / 0.39 / 0.58  | 0.37 / 0.68 / 0.85 | 0.85        |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 例如 Can 的 $N=10$ 从 0.18 提升至 0.37，Lift 的 $N=10$ 从 0.69 提升至 0.85。结果显示更多视角在多数设置中继续有益，但增益随任务、动作坐标和示范数量变化，并不严格单调。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 真实倒水中，单视角训练在 $N=25/50$ 时的成功率为 0.45/0.70；双视角训练、不做聚合为 0.50/0.85；双视角训练并启用聚合为 0.75/0.85。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-multiview-il/multiview-il-attention-multiview-cropped.4clmhlqx9r.webp&quot; alt=&quot;五视角训练的注意力更集中于任务相关区域（论文 Figure 3 上半部分）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在 Square 上，EEF action space 低于 base：单视角 $N=10/25/50$ 为 0.06/0.25/0.32，五视角为 0.09/0.27/0.41，而对应 base 为 0.14/0.26/0.42 和 0.18/0.42/0.55。作者认为原因是 EEF 坐标原点随时间移动，增加了学习难度。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 相机选择也有影响。相近的 $Cam_F, Cam_{FL}, Cam_{FR}$ 在 Square 上取得 0.17/0.29/0.47；换成 front、top、side 三个差异很大的视角后为 0.17/0.24/0.40。作者解释，若最终只在 $Cam_F$ 部署，过远视角的分布差异可能无法帮助前视策略。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在 3 视角训练的 Square / Can 中，推理再使用三个视角聚合，成功率从 0.17/0.29/0.47 提升至 0.18/0.33/0.51，以及从 0.30/0.68/0.83 提升至 0.39/0.73/0.85。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在 Can，5 视角训练后，模型在 $Cam_F$、$Cam_{FL}$、$Cam_{FU}$ 部署的成功率分别是 $N=10$ 时 0.37、0.30、0.37，$N=25$ 时 0.68、0.66、0.77。只用 $Cam_F$ 训练的模型在后两种相机仅为 0.00/0.01 与 0.07/0.05，说明伪示范明显改善了相邻视角变化下的鲁棒性。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这一结论仍限定在论文的相机视角族，不能直接外推到任意陌生相机、焦距或遮挡模式；视角跨度与部署偏移的可承受范围仍需系统测试。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 单视角策略可能把背景、固定遮挡或透视关系误当成控制线索。同步视角让模型反复看到同一物理过程的不同投影，促使它依赖跨视角稳定的对象、末端与目标关系。论文注意力图与这一解释一致，但注意力图本身不构成因果证明。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 其核心是可插拔的数据构造规则：不改 Diffusion Policy 的网络，也不强制部署端常驻多相机。相较于纯 2D augmentation，同步真实相机提供真实遮挡和视差；相较于多相机端到端融合，本文先用多视角扩展训练数据，推理聚合仅是可选项。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 增加轨迹覆盖的是动作执行、物体初始状态和任务噪声；Camera View Scaling 覆盖的是同一状态的观测表达，两者不能互相替代。环境随机化通常由仿真器合成，而本文利用真实同步传感器取得几何一致变化；常规多相机策略联合编码视角，本文的基础网络保持单视角。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 方法要求采集时相机时间同步；camera space 还需要准确外参。论文默认新增视角与部署 $Cam_F$ 相近。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 同步误差、外参漂移、遮挡或与部署差异太大的相机，都会造成图像/动作错配或 harmful distribution shift。多视角聚合还假定各视角输出可变换至共同动作语义。&lt;/p&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文发现 top、side 等过远视角未必有益：当训练视角与仅在 $Cam_F$ 的部署分布相差过大，提升会很弱。camera space 还需要标定，增加人工工作；真实实验只有两个视角，作者因此认为训练阶段的增益有限。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 框架主要处理固定场景内的 viewpoint diversity；与环境随机化、跨形态数据和基础模型的结合被留作未来工作。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 论文覆盖三个仿真任务与一个真实任务，尚未量化“相机成本—标定误差—数据效率”的完整曲线。对于 wrist camera、动态相机、移动底盘或高接触灵巧手，能否直接采用同一相机空间变换，论文未明确说明。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; product-of-experts 假设多视角能相互校正。某台相机若强反光、误检或完全遮挡，简单求积可能放大错误高置信预测；一个自然方向是引入视角质量评估、置信度加权或遮挡检测。&lt;/p&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 对数据采集，最实用的结论是把“相机数”作为示教协议的一部分：在不增加遥操作次数时，优先围绕最终部署视角布置小幅、可标定的相机扰动，并保存时间同步与外参。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 后续可在固定预算下比较新增相机、新采轨迹和场景随机化各带来多少有效分布覆盖；这需要同时考察独立轨迹数、视角跨度、标定误差和部署视角偏移，而不能只报告 $N\times V$。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/133376054_p0_master1200.1ziuqmv790.webp"/><enclosure url="https://pic.hana0721.top/133376054_p0_master1200.1ziuqmv790.webp"/></item><item><title>μ₀：A Scalable 3D Interaction-Trace World Model 论文精读</title><link>https://agusexp25.top/blog/paper-deep-dive-mu0</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-mu0</guid><description>精读 μ₀ 如何用 TraceExtract 从视频构建事件级 3D 交互轨迹，再以 B-spline 与 Flow Matching 预训练可跨形态复用的世界模型。</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;论文名称&lt;/strong&gt;：《μ₀: A Scalable 3D Interaction-Trace World Model》&lt;br&gt;
&lt;strong&gt;作者&lt;/strong&gt;：Seungjae Lee、Yoonkyo Jung、Jusuk Lee、Jonghun Shin、Amir Hossein Shahidzadeh、Yao-Chih Lee、H. Jin Kim、Jia-Bin Huang、Furong Huang&lt;br&gt;
&lt;strong&gt;机构&lt;/strong&gt;：University of Maryland, College Park；Seoul National University&lt;br&gt;
&lt;strong&gt;发表形式&lt;/strong&gt;：arXiv 预印本（2026）&lt;br&gt;
&lt;strong&gt;论文链接&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2606.13769&quot;&gt;arXiv:2606.13769&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;代码&lt;/strong&gt;：&lt;a href=&quot;https://github.com/Yoonkyo/mu0&quot;&gt;Yoonkyo/mu0&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;项目主页&lt;/strong&gt;：&lt;a href=&quot;https://mu0-wm.github.io/&quot;&gt;mu0-wm.github.io&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-mu0/teaser.1sfs501zw0.webp&quot; alt=&quot;μ₀ 从视频到可复用动作先验的总览（论文 teaser）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; μ₀ 把世界模型的预测目标放在像素与动作之间：对对象、工具、手和接触区域等语义交互点，预测未来平滑的 3D interaction traces。TraceExtract 将异构人类 / 机器人视频转成带事件语言的 3D 轨迹监督；预训练后的 μ₀ 被冻结，再由目标机器人自己的 Action Expert 将轨迹特征变成动作块。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文的贡献可以拆成三个层次：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;TraceExtract 数据引擎&lt;/strong&gt;：用 DINOv2 entity clusters 选取任务相关 keypoints，用全局—局部 3D 重建得到跨相机一致的轨迹，再按运动事件生成层级语言描述。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;μ₀ 世界模型&lt;/strong&gt;：以 SmolVLM2 作为语义前缀，加入 permutation-equivariant Trace Expert；每个 query 用 cubic B-spline 控制点表示，并以 semantic Flow Matching 生成多模态未来。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;跨形态动作适配&lt;/strong&gt;：冻结 μ₀，只训练 Action Expert。后者读取一次 partial denoising 的 trace features，同时接收 gripper-camera、proprioception 和语言，输出目标机器人的连续 action chunks。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这条路线的核心赌注是：对“物体应该怎样移动”的建模比对“某个机器人每个关节该怎样动”的建模更容易跨 embodiment 复用；但真正闭环控制仍必须在目标机器人数据上学习。&lt;/p&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 机器人学习存在明显的数据悖论：视频数量多、包含丰富的物理行为，但缺少控制所需的 action labels；机器人动作数据昂贵、硬件相关，也难以跨平台合并。像素空间 Video World Model 虽然可从视频训练，却把大量容量花在背景和外观重建上，未必能保留接触与 metric geometry。VLA 直接输出动作，则受到 embodiment-specific labels 的限制。&lt;/p&gt;
&lt;p&gt;已有 motion-centric 方法使用 2D flow、3D flow、对象轨迹或视频生成后再抽轨迹。&lt;strong&gt;【Paper】&lt;/strong&gt; 论文认为它们普遍存在三类问题：固定网格会漏掉工具尖端和接触小区域；局部 / 2D 坐标会把相机运动和物体运动混在一起；长 demonstration 只配 episode-level caption，无法把局部轨迹绑定到 reach、grasp、move、release 等子目标。最接近的 TraceGen 使用 fixed-grid 3D traces、episode caption，并在推理时依赖 depth；μ₀ 针对这三点重新设计数据和模型。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 对每个视频时间点，TraceExtract 构造一个训练样本：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Observation&lt;/strong&gt;：当前 RGB 图像，可选 metric depth 图像。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Language&lt;/strong&gt;：事件级 caption 或滑动合并后的 task summary。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Query set&lt;/strong&gt;：$N$ 个语义 keypoints，来自 objects、tools、hands 和 contact regions；$N$ 可变且无序。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;History&lt;/strong&gt;：每个 query 最近 $h=8$ 帧的 3D reference-frame 轨迹。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Target&lt;/strong&gt;：未来 $H=32$ 帧的 3D 轨迹，坐标为 reference camera 下的 $(x,y,z)$，其中 $x,y$ 与图像平面对齐，$z$ 为 metric depth。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;模型学习映射：&lt;/p&gt;
&lt;p&gt;$$
\mu_0: (I_t, l_c, Q_t, T_{\mathrm{ref}}^{t-h:t})
\mapsto \hat T_{\mathrm{ref}}^{t:t+H}.
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; query 是“测量目标”，不是固定的动作 waypoint。这样同一物体运动可以作为不同机械臂的中间接口，但动作执行端仍要解决可达性、抓取姿态和动力学约束。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-mu0/architecture.9rk502h4dr.webp&quot; alt=&quot;μ₀ 与 Action Expert 接口的整体架构（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 数据流可以压缩成一句话：RGB / optional depth / language 先进入 VLM context，query 的 history 与 noisy spline controls 进入 Trace Expert，4-step denoising 后渲染出未来 traces；下游 Action Expert 读取一次中间 trace features，再结合机器人观测输出 action chunk。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;TraceExtract：从视频得到可训练的 3D 监督&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-mu0/pipeline.7zr655xr31.webp&quot; alt=&quot;TraceExtract 数据管线（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; TraceExtract 包含三个阶段：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Semantic keypoint sampling&lt;/strong&gt;：抽取 DINOv2 patch features 并聚类为 entity groups，在高可见度帧上为每个实体分配固定 keypoint budget，再用空间多样性采样；movement filter 排除静止或背景主导的点。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Global–local 3D reconstruction&lt;/strong&gt;：稀疏 anchor frames 先建立共享 global frame，再对局部 chunk 做密集重建并对齐回全局；跨 chunk 用最后一个有效的 world-space 位置传播身份。随后重投影到 reference camera，既消除相机运动又保留图像对齐。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Event-centric captioning&lt;/strong&gt;：对 trace acceleration 做 Savitzky–Golay 平滑，在峰值处找 action anchors，在谷值处切 chunk；VLM 使用 start / middle / end 三帧生成局部 caption，文本 LLM 再在滑动窗口内合并出更粗粒度的 task summary。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方仓库把样本保存成 &lt;code&gt;traj_history.npy&lt;/code&gt;、&lt;code&gt;traj_future.npy&lt;/code&gt;、&lt;code&gt;valid_steps_history.npy&lt;/code&gt;、&lt;code&gt;valid_steps_future.npy&lt;/code&gt;、&lt;code&gt;current_kp.npy&lt;/code&gt; 和可选的 &lt;code&gt;depth.npy&lt;/code&gt;；&lt;code&gt;src/lerobot/datasets/trace_dataset.py&lt;/code&gt; 负责读取、padding 和 mask，&lt;code&gt;bspline_basis.py&lt;/code&gt; 负责轨迹参数化。代码还支持用 Depth-Anything-V2 和 Grounded-SAM-2 在图像推理时合成 depth 与 keypoints。&lt;/p&gt;
&lt;h4&gt;VLM-conditioned backbone&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; SmolVLM2-2.2B 的前缀保留全局语义与语言上下文，Trace Expert 通过 cross-attention 读取 VLM key-value cache，同时维护独立的 motion stream。Depth 不直接伪装成 RGB：它先经过独立可训练 patch stem，再与 RGB 共享更深的 SigLIP 层。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;src/lerobot/policies/mu0/modeling_smolvla.py&lt;/code&gt; 中的 &lt;code&gt;prepare_images&lt;/code&gt; 和 &lt;code&gt;embed_prefix&lt;/code&gt; 处理 RGB / depth mask；训练配置默认对 depth 施加 0.7 dropout、RGB ColorJitter strength 0.3、depth meter-domain noise 标准差 0.01 m。&lt;code&gt;configuration_smolvla.py&lt;/code&gt; 中公开默认值是 &lt;code&gt;num_vlm_layers=16&lt;/code&gt;、&lt;code&gt;expert_width_multiplier=0.75&lt;/code&gt;，而论文附录描述的是 20 层、0.5× width；这说明 release 配置可能通过训练脚本覆盖默认值，不能把两者混为同一个固定实现。&lt;/p&gt;
&lt;h4&gt;Permutation-equivariant Trace Expert&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 每个 keypoint 都走共享处理栈，因此交换 query 顺序不会改变对应预测。输入 token 同时包含：history segment、future noisy control-point segment、当前像素位置的 Fourier embedding，以及从 frozen DINO feature map 双线性采样的局部语义特征。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;embed_suffix_trace&lt;/code&gt; 将 history 与 future suffix 拼接，并通过 &lt;code&gt;key_pad_mask&lt;/code&gt;、causal suffix mask 保持每个 query 的有效性和注意力约束；DINO 特征在 &lt;code&gt;_compute_dino_per_kp&lt;/code&gt; 中按当前 $(u,v)$ 采样后注入每个 query token。&lt;/p&gt;
&lt;h4&gt;B-spline trace representation&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 不直接回归 32 个未来点，而是用 $D=10$ 个 cubic B-spline control points 表示一条轨迹。这样可以压缩维度、平滑 tracker jitter，并让 Flow Matching 在低维控制点空间中工作。训练目标是 anchor-relative、按轴缩放的未来轨迹；推理时用固定 basis 一次矩阵乘法恢复 32 步轨迹。&lt;/p&gt;
&lt;h4&gt;Semantic Flow Matching、validity 与 rigidity&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 对控制点目标 $P^\star$ 注入高斯噪声，Trace Expert 预测从噪声到干净控制点的 velocity。validity head 预测每个 query 的未来每一步是否仍有效，用于处理遮挡 / track loss；rigidity loss 则要求同一 DINO cluster 内的 keypoints 在控制点序列中保持相对距离。&lt;/p&gt;
&lt;h4&gt;Trace-conditioned Action Expert&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; μ₀ 预训练完成后被冻结。动作端从纯噪声控制点开始，只执行 4-step Euler solver 中的一次 partial denoising，并取该步 Trace Expert hidden states 作为 motion descriptor。一个 zero-initialized gated cross-attention 将其注入 VLM 最后一层特征；随后 action denoiser 还接收 gripper-camera 的 DINOv2 token、proprioception MLP token 和 language token，生成连续动作块。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;src/lerobot/policies/mu0/mu0_policy.py&lt;/code&gt; 的 &lt;code&gt;_run_trace_model_partial_guidance&lt;/code&gt; 正是这一流程：&lt;code&gt;MOTION_GUIDANCE_STEPS&lt;/code&gt; 次部分去噪后，通过 &lt;code&gt;_bspline_render_basis&lt;/code&gt; 渲染 traces；&lt;code&gt;GatedMotionMixer&lt;/code&gt; 将 &lt;code&gt;expert_final&lt;/code&gt; 注入 VLM；&lt;code&gt;_sample_actions&lt;/code&gt; 使用固定的 Euler action-flow solver 产生 &lt;code&gt;chunk_size&lt;/code&gt; 个动作。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;B-spline 拟合&lt;/h4&gt;
&lt;p&gt;$$
P_n^\star = \arg\min_P
\left|M_n\odot\left(BP-[0;\tilde T_n^1]\right)\right|_F^2&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;\lambda_{\mathrm{bsp}}^2|\Gamma P|_F^2.
$$&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; $B\in\mathbb{R}^{(H+1)\times D}$ 是固定 cubic B-spline basis，首行把曲线钉在当前 anchor；$M_n$ 屏蔽无效 future steps；$\Gamma$ 是相邻控制点的一阶差分算子；$\lambda_{\mathrm{bsp}}=0.2$ 抑制控制点间距剧烈变化。代码 &lt;code&gt;build_bspline_basis&lt;/code&gt; 支持 $D\in{4,7,10}$，release 使用 10。&lt;/p&gt;
&lt;h4&gt;Flow Matching&lt;/h4&gt;
&lt;p&gt;$$
P^\tau = \tau\epsilon + (1-\tau)P^\star,
\qquad
\mathcal L_{\mathrm{flow}}=
\mathbb E\left|v_\theta(P^\tau,\tau,F_{\mathrm{cond}})-(\epsilon-P^\star)\right|_2^2.
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; $\tau\in[0,1]$ 是 flow time，$\epsilon\sim\mathcal N(0,I)$，$F_{\mathrm{cond}}$ 汇总 VLM、query 和局部 DINO 条件。adaLN-Zero 将 $\tau$ 注入每个 Trace Expert block；推理沿 $\tau:1\rightarrow0$ 做 4-step Euler。&lt;/p&gt;
&lt;h4&gt;完整训练目标&lt;/h4&gt;
&lt;p&gt;$$
\mathcal L=\mathcal L_{\mathrm{flow}}
+\lambda_{\mathrm{done}}\mathcal L_{\mathrm{done}}
+\lambda_{\mathrm{rig}}\mathcal L_{\mathrm{rig}}.
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; $\mathcal L_{\mathrm{done}}$ 是逐步 validity 的 BCE；$\mathcal L_{\mathrm{rig}}$ 对同一语义 cluster 内两点的控制点间距离计算方差。前者让轨迹能在遮挡处停止并冻结，后者把 DINO 聚类当作无需人工 segmentation 的弱结构先验。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Trace 预训练使用 $h=8$ 的历史、$H=32$ 的未来，训练时随机采样 $N\in[1,256]$ 个 keypoints。VLM / RGB SigLIP 保持冻结，Trace Expert、投影层、depth stem 和 adaLN-Zero head 更新；优化器为 AdamW，base learning rate $10^{-4}$、weight decay $10^{-10}$、effective batch size 24。训练还以 0.2 概率整批丢弃 history、以 0.3 概率逐 keypoint 丢弃 history，并以 0.7 概率丢弃 depth。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;docs/release/TRAINING.md&lt;/code&gt; 给出的 release recipe 显式设置 &lt;code&gt;history_len=8&lt;/code&gt;、&lt;code&gt;future_len=32&lt;/code&gt;、&lt;code&gt;trace_bspline_n_ctrl=10&lt;/code&gt;、&lt;code&gt;trace_done_head=true&lt;/code&gt;、&lt;code&gt;done_loss_weight=0.5&lt;/code&gt;、&lt;code&gt;rigidity_regularization_weight=5&lt;/code&gt;、&lt;code&gt;trace_bspline_reg_lambda=0.2&lt;/code&gt; 和 &lt;code&gt;trace_bspline_ctrl_clip=1.5&lt;/code&gt;。代码的配置默认值允许关闭 rigidity / done head，因此复现实验时应以 release 命令为准，而不是只看 dataclass 默认值。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 推理输入是当前 RGB（可选 depth）、语言、query 当前点与短 history。Trace Expert 从高斯控制点开始沿 $1\rightarrow0$ 做 4-step Euler，B-spline basis 将控制点解码为未来轨迹；done head 的 stop index 会截断并冻结轨迹尾部。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 在图像-only 模式，&lt;code&gt;lerobot_predict_trace_mu0_image_only.py&lt;/code&gt; 可从数据集读取 keypoints，也可调用 Grounded-SAM-2 合成 keypoints；depth 可来自数据、Depth-Anything-V2 或完全省略。动作策略只保留一次 partial guidance，避免每个控制周期完整 rollout μ₀。&lt;/p&gt;
&lt;p&gt;&amp;#x3C;Algorithm
number={2}
title=&apos;μ₀ Trace-conditioned Action Inference&apos;
inputLabel=&apos;输入&apos;
outputLabel=&apos;输出&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;| 论文模块             | 官方代码位置                                                  | 实际行为                                                                                        |
| -------------------- | ------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- |
| Trace dataset        | &lt;code&gt;src/lerobot/datasets/trace_dataset.py&lt;/code&gt;                       | 读取 history / future / validity / keypoint mask，并可加载 depth、cluster ids、B-spline targets |
| B-spline             | &lt;code&gt;src/lerobot/datasets/bspline_basis.py&lt;/code&gt;                       | 预计算 $D=4,7,10$ 的 cubic basis；推理用矩阵乘法渲染轨迹                                        |
| Trace model          | &lt;code&gt;src/lerobot/policies/mu0/modeling_smolvla.py&lt;/code&gt;                | VLM prefix + suffix Trace Expert，包含 DINO、depth、adaLN-Zero、done / rigidity 分支            |
| Trace training       | &lt;code&gt;src/lerobot/scripts/lerobot_train_trace_mu0.py&lt;/code&gt;              | 以 masked control-point Flow Matching 为主损失，按配置加入 done / rigidity                      |
| Action adaptation    | &lt;code&gt;src/lerobot/policies/mu0/mu0_policy.py&lt;/code&gt;                      | 冻结 trace policy，partial guidance 后由 Gemma-style Action Expert 预测 action chunks           |
| Image-only inference | &lt;code&gt;src/lerobot/scripts/lerobot_predict_trace_mu0_image_only.py&lt;/code&gt; | 支持 dataset keypoints、Depth-Anything-V2、Grounded-SAM-2 三种输入组合                          |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 论文把 μ₀ 描述成“冻结、可复用的 motion prior”，而代码接口更具体：下游策略并不消费完整 32-step trace，而消费一次 partial denoising 的 hidden states。这是计算效率和信息完整度之间的关键工程折中。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-mu0/setup.232ly5h8qa.webp&quot; alt=&quot;真实机器人平台与任务（论文 Figure 4）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 轨迹预测在 2D / 3D 设置下比较 Gemini、GPT-5.5、Track2Act、Hamster、3DFlowAction、Dream2Flow 和 TraceGen，预测 horizon 为 $T\in{8,16,32}$，只在 moving points 上计算 ADE、FDE、DTW。下游动作实验包括：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;RoboCasa365&lt;/strong&gt;：8 个随机化厨房任务；比较 Diffusion Policy、action-labeled 的 $\pi_0$ / $\pi_{0.5}$、video-only TraceGen 和 μ₀ + Action Expert。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;真实 UR3&lt;/strong&gt;：Pick object into Sink、Pour Almonds into object、Unfold Towel；分别收集 90、80、50 条 demonstrations，每项评估 20 次 rollout。机器人使用双指夹爪、第三人称与腕部 RGB 相机，proprioception 是 6D end-effector pose 加 gripper，共 7D。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 轨迹预测结果最值得注意的不是单一 Top-1 数字，而是多样本质量和速度：&lt;/p&gt;
&lt;p&gt;| 设置         | μ₀ 代表性结果                      | 对比                                  |
| ------------ | ---------------------------------- | ------------------------------------- |
| 2D Top-5 ADE | $T=8/16/32$: 0.124 / 0.188 / 0.227 | 三个 horizon 均为最佳                 |
| 2D Top-5 FDE | 0.186 / 0.261 / 0.284              | 三个 horizon 均为最佳                 |
| 3D Top-1 ADE | 0.209 / 0.288 / 0.325              | 三个 horizon 均为最佳                 |
| 3D Top-5 DTW | 0.127 / 0.187 / 0.223              | 三个 horizon 均为最佳                 |
| 推理延迟     | 0.29 s / image                     | 比次快的 Track2Act（0.85 s）快约 2.9× |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在 RoboCasa365 上，μ₀ 平均成功率为 &lt;strong&gt;30.25%&lt;/strong&gt;，比 TraceGen 高 7.25 个百分点，比 $\pi_0$ 高 5 个百分点，但低于使用大规模 action-labeled pretraining 的 $\pi_{0.5}$（42%）。这不是 data-matched 比较：μ₀ 的预训练只使用视频监督。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-mu0/real-results.8z79ic0j07.webp&quot; alt=&quot;真实 UR3 任务的成功率（论文 Figure 5）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 真实任务中 μ₀ + Action Expert 的平均成功率为 &lt;strong&gt;91.7%&lt;/strong&gt;，比去掉 Trace Expert 的 VLM + Action Expert 高 18.4 个百分点，比 $\pi_0$ 和 $\pi_{0.5}$ 分别高 20.0 和 11.7 个百分点，也比 TraceGen 高 10.0 个百分点。这里的结果支持“冻结轨迹特征不仅是可解释中间表示，也能提供有用的运动引导”。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-mu0/qualitative.4n8gash79t.webp&quot; alt=&quot;μ₀ 轨迹预测的定性比较（论文 Figure 6）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Top-5 DTW 消融如下：&lt;/p&gt;
&lt;p&gt;| 变体                      |     $T=8$ |    $T=16$ |    $T=32$ |
| ------------------------- | --------: | --------: | --------: |
| Full μ₀                   | &lt;strong&gt;0.127&lt;/strong&gt; | &lt;strong&gt;0.187&lt;/strong&gt; | &lt;strong&gt;0.223&lt;/strong&gt; |
| w/o B-spline（raw trace） |     0.156 |     0.222 |     0.258 |
| w/o DINOv2 features       |     0.139 |     0.193 |     0.230 |
| w/o Rigidity Loss         |     0.138 |     0.193 |     0.227 |
| w/o Depth                 |     0.112 |     0.168 |     0.207 |
| w/o Trace history         |     0.126 |     0.183 |     0.224 |
| w/o Depth &amp;#x26; history       |     0.127 |     0.187 |     0.223 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; B-spline 去掉后的退化最大，说明平滑且低维的 target parameterization 是主收益来源之一。DINO 和 rigidity 的影响较小但一致为正，表明它们更像稳定性与局部结构的增益，而不是单独决定性能的模块。值得注意的是，消融表中“无 depth”并未崩溃，符合论文希望模型在 RGB-only 条件下可用的目标。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 模型与数据规模都能带来改进：2.59B 模型在 $T=8/16/32$ 的 Top-5 DTW 为 0.127 / 0.187 / 0.223；342M 模型为 0.143 / 0.205 / 0.240。使用全部数据优于 5% 或 20% 子集。动作端在 200M 与 400M head 上都受益于 trace conditioning，说明 motion prior 的价值并不依赖某一个超大 action decoder。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 论文展示的是“跨数据源、跨动作标签稀缺程度”的泛化，而不是大规模跨 embodiment 真实部署：真实实验仍集中在 UR3 桌面任务，cross-embodiment 的主要证据来自冻结接口和 RoboCasa 上的 action adaptation。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; μ₀ 同时做了三个对齐：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;测量对齐&lt;/strong&gt;：semantic keypoints 把计算预算放到真正会动、会接触的部位。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;坐标对齐&lt;/strong&gt;：global 3D reconstruction + reference camera 让轨迹不再把 camera motion 当成 object motion，同时保留视觉 backbone 需要的像素对应关系。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;语言对齐&lt;/strong&gt;：motion-centric chunking 把 caption 的时间范围绑定到局部子目标，降低长 episode caption 的语义稀释。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;B-spline 使目标更平滑，Flow Matching 保留“一条指令对应多种合理路径”的可能性；DINO 局部特征与 rigidity 又为 query 提供实体级和部件级先验。最终 Action Expert 读到的是已经被语义和几何约束过的 motion tokens，而非从 RGB 直接猜动作。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 真正的新意不是单独提出某个 denoiser，而是把 &lt;strong&gt;数据测量对象（semantic 3D traces）—模型参数化（B-spline + permutation equivariance）—下游接口（frozen partial-denoising features）&lt;/strong&gt; 串成一条可复用链路。TraceExtract 还把过去昂贵的固定网格 trace curation 扩展到约 8× 的规模。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;| 路线              | 学习目标                    | 主要代价                            | μ₀ 的差异                                                                 |
| ----------------- | --------------------------- | ----------------------------------- | ------------------------------------------------------------------------- |
| Pixel world model | 未来像素                    | 重建背景与外观，几何 / 接触信号稀释 | 只预测交互点的 3D motion                                                  |
| VLA               | embodiment-specific actions | 需要昂贵动作标注                    | 预训练阶段完全 action-free                                                |
| 固定网格 trace    | 网格点轨迹                  | 背景占预算，漏小物体 / 接触点       | query-conditioned semantic points                                         |
| TraceGen          | fixed-grid 3D trace         | episode caption、推理依赖 depth     | entity sampling、global alignment、event captioning，并支持 depth dropout |&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 方法依赖四个隐含假设：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;物体和接触局部的 3D 运动足以传递大部分 manipulation intent；&lt;/li&gt;
&lt;li&gt;DINO cluster 能近似“同一实体 / 部件”，rigidity 约束才不会误伤不同物体；&lt;/li&gt;
&lt;li&gt;视觉轨迹到机器人动作之间存在可由少量 target-embodiment 数据学习的映射；&lt;/li&gt;
&lt;li&gt;4-step partial denoising 的 hidden state 已包含足够的未来信息，不必完整解码整条 trace。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; μ₀ 会继承 perception stack 的错误：semantic clustering、3D reconstruction、tracking 或 captioning 任一环节失败，都会产生噪声监督。3D trace 只描述几何和运动，没有显式建模 force、tactile feedback 或 contact mode。动作实验主要覆盖 tabletop manipulation、有限 embodiment 与任务族，移动操作臂、灵巧手和更长时序任务仍待验证。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 首先，trace 的 embodiment-agnostic 性并不等于 action-agnostic：不同夹爪的可达性、接触姿态与动力学差异仍由 Action Expert 承担。其次，reference-camera 轨迹虽然去除了相机运动，却仍可能受深度尺度、遮挡和跨 chunk 对齐误差影响。再次，rigidity 只约束 cluster 内距离，无法表达铰链、柔性物体或接触后形变。最后，论文主要报告平均成功率与轨迹距离，尚未给出长时域失败恢复、闭环 replanning 频率和真实部署算力预算的系统分析。&lt;/p&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; μ₀ 给出的研究方向不是“所有机器人都共享同一个策略”，而是把共享部分放到更稳定的中间层：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;从 action token 转向 motion token&lt;/strong&gt;：未来可以研究可组合的 trace vocabulary，把 reach / grasp / place 等局部几何模式做成可检索先验。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;把接触模式补回 3D trace&lt;/strong&gt;：在轨迹旁边预测接触概率、法向或力的离散状态，可能比单纯增加像素生成能力更直接地提升精细操作。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;在线修正 TraceExtract&lt;/strong&gt;：用执行失败反向定位 keypoint、深度或 caption 错误，形成 perception—world model—policy 的闭环数据引擎。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;更强的跨 embodiment 验证&lt;/strong&gt;：在同一物体任务上替换 UR3、移动机械臂和 dexterous hand，只微调 Action Expert，才能真正测量 motion prior 的可迁移边界。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;研究 partial denoising 的信息瓶颈&lt;/strong&gt;：代码只消费一次中间 hidden state，这是很有吸引力的效率设计；但不同任务所需的 denoising 深度可能不同，动态选择 guidance step 也许是下一步。&lt;/li&gt;
&lt;/ol&gt;</content:encoded><h:img src="https://pic.hana0721.top/104724685_p0_master1200.7p472bcti3.webp"/><enclosure url="https://pic.hana0721.top/104724685_p0_master1200.7p472bcti3.webp"/></item><item><title>MMaDA-VLA 论文精读：统一多模态指令与生成的离散扩散 VLA</title><link>https://agusexp25.top/blog/paper-deep-dive-mmada-vla</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-mmada-vla</guid><description>精读 MMaDA-VLA：把语言、图像、动作放进同一离散 token 空间，用并行迭代去噪共同生成目标观测与动作块。</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; MMaDA-VLA（MM ’26）提出一种 fully native、pretrained 的离散扩散 VLA：当前观测与语言指令作为条件，模型同时预测未来 goal observation 和一段 action chunk。它不再把 VLM、world model、inverse dynamics 或 policy head 串成多个阶段，而是让这些信息在一个共享的离散 token 序列中被联合去噪。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://agusexp25.top/images/paper-deep-dive-mmada-vla/figure-1.webp&quot; alt=&quot;MMaDA-VLA 与传统 VLA、world-model VLA 的比较（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这篇工作的关键不是“把 diffusion 加到动作头上”，而是把“未来会看到什么”和“接下来怎么动”变成同一个生成问题：模型在每次去噪时反复对齐两者，因而可以把动作块放在任务状态演化的上下文里修正。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;将语言、图像和连续机器人控制统一离散化，使用单一 masked-token objective 训练一个 8B 级 MMaDA-VLA。&lt;/li&gt;
&lt;li&gt;用 goal-observation generation 注入类似 world model 的动力学信息，但不依赖外部 world model 或 inverse dynamics module。&lt;/li&gt;
&lt;li&gt;设计 hybrid attention：模态内 full attention、模态间 causal attention；在同一迭代中并行 refinement goal image 与 action chunk。&lt;/li&gt;
&lt;li&gt;用大规模 cross-embodiment 预训练（约 5,300 万样本）再进行 LIBERO、CALVIN 和真实机器人微调，取得 LIBERO 98.0% 平均成功率与 CALVIN 4.78 平均完成子任务数。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方仓库提供训练、数据预处理、action tokenizer、推理和 dLLM cache 实现；但 README 没有给出真实机器人控制器的完整开源实现，真实部署细节仍以论文为准。&lt;/p&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 现有 VLA 大致有三条路线：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Hierarchical VLA&lt;/strong&gt;：VLM 输出语义，再由 policy head 或 action expert 预测动作。模块边界带来额外训练和信息损失。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Autoregressive discrete VLA&lt;/strong&gt;：把动作离散成 token 后按固定顺序生成，动作维度之间并没有天然的先后关系，却会承受 token-by-token 的误差传播。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;World-model VLA&lt;/strong&gt;：额外生成未来图像，或先生成 goal image 再通过 inverse dynamics 得到动作，代价是阶段增多、训练和推理不一致。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 动作 chunk 中的 7 个自由度更像一个“集合”而非自然语言句子。对它施加左到右顺序，会引入不必要的 inductive bias；而单纯并行一次预测又缺少修正机会。离散扩散提供了折中：先全部 mask，再用多个 denoising step 逐步确认 token。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 给定当前视觉观测 $o_t$ 和语言指令 $\ell$，传统策略建模 $\hat a_t \sim \pi_\theta(a_t \mid o_t,\ell)$。MMaDA-VLA 进一步预测 $t&apos;=t+k$ 时的目标观测以及长度为 $k$ 的动作块：&lt;/p&gt;
&lt;p&gt;$$
(\hat o_{t&apos;};\hat a_{t:t&apos;-1}) \sim \pi_\theta(o_{t&apos;},a_{t:t&apos;-1}\mid o_t,\ell).
$$&lt;/p&gt;
&lt;p&gt;其中 $k$ 是 action chunk size；论文在 LIBERO 使用 $k=5$，CALVIN 使用 $k=10$。机器人执行动作块后获得新观测，策略重新生成下一块，因此控制仍然是 closed loop。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Embodied AI 对照：&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;| 项目                  | MMaDA-VLA 实现                                                                                    |
| --------------------- | ------------------------------------------------------------------------------------------------- |
| Observation           | 第三视角与 wrist-view RGB，竖直拼接后 resize 到 $256\times256$；proprioception 以文本追加在指令后 |
| Vision Encoder        | MAGVIT-v2 image quantizer，输出离散视觉 token                                                     |
| Language              | LLaDA tokenizer                                                                                   |
| Action Representation | 每个动作维度量化为 256 bins；7-DoF 动作按 chunk 展平                                              |
| Policy                | 8B MMaDA backbone 上的 masked-token diffusion policy                                              |
| Goal / World Model    | 与 action chunk 并行生成 future goal observation                                                  |
| Robot                 | 仿真 LIBERO、CALVIN；真实 AgileX PiPER 6-DoF + 1-DoF gripper                                      |&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://agusexp25.top/images/paper-deep-dive-mmada-vla/figure-2.webp&quot; alt=&quot;MMaDA-VLA 框架与训练流水线（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 统一序列写成：&lt;/p&gt;
&lt;p&gt;$$
x=[\text{SOO}]\tilde o_t[\text{EOO}][\text{SOL}]\tilde\ell[\text{EOL}][\text{SOO}]\tilde o_{t&apos;}[\text{EOO}][\text{SOA}]\tilde a_{t:t&apos;-1}[\text{EOA}].
$$&lt;/p&gt;
&lt;p&gt;前半段是 instruction，后半段是 generation。训练时只对未来观测和动作 token 做随机 mask；推理时把这两段全部替换为 &lt;code&gt;[M]&lt;/code&gt;，再迭代恢复。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;统一离散 tokenization&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 文本使用 LLaDA tokenizer，图像使用 MAGVIT-v2，动作使用 256-bin tokenizer。三种 token 被映射到共享 vocabulary，模型因此只需要一个输出 head 和一个 masked-token loss。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;mmadavla/models/action_tokenizer.py&lt;/code&gt; 将动作裁剪到 $[-1,1]$，通过 &lt;code&gt;np.digitize&lt;/code&gt; 映射到 256 个 bin；&lt;code&gt;decode&lt;/code&gt; 使用 bin center 还原连续值。&lt;code&gt;action_num_vq_tokens = action_chunk_size × 7&lt;/code&gt;，所以 LIBERO 的 action 区域是 35 token，CALVIN 是 70 token。&lt;/p&gt;
&lt;h4&gt;Multi-modal prompting&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;mmadavla/utils/prompt.py&lt;/code&gt; 固定拼接 &lt;code&gt;[ti2ia] → current image → text → goal image → action&lt;/code&gt;。机器人状态被格式化为文本，和 task instruction 一起进入语言 token 区域；标签只保留 goal image 与 action 的被 mask 位置，其余位置使用 &lt;code&gt;ignore_id=-100&lt;/code&gt;。&lt;/p&gt;
&lt;h4&gt;Hybrid attention&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 同一模态内部使用 bidirectional full attention，让 goal image 或 action chunk 的 token 可以全局交换信息；不同模态之间使用 causal attention，保持从 current observation / instruction 流向 generation 的方向性。这样既避免 action dimension 的人为顺序，又避免完全双向的跨模态信息泄漏。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;construct_attention(..., AttnType.hybrid)&lt;/code&gt; 以区域编号 1–5 构造布尔 attention bias，并用 &lt;code&gt;query_mask &gt;= key_mask&lt;/code&gt; 实现跨区域的因果约束。&lt;/p&gt;
&lt;h4&gt;Goal observation generation&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; goal image 并不是最终要显示给机器人的“照片”，而是一个预测的未来状态 latent。它提供“完成这一段动作后环境应处于什么状态”的中间约束；动作 token 可以在 denoising 过程中持续读取这部分中间表示，而不必等整张 goal image 完成后再单独调用 inverse dynamics。&lt;/p&gt;
&lt;h4&gt;Key-value cache&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 指令在所有 denoising step 中不变，因此论文缓存每层的 $K_l,V_l,$ attention output 和 FFN output；generation 区域只刷新与缓存 value 向量 cosine similarity 最低的 $\lfloor\rho n&apos;\rfloor$ 个 token，每 $\lambda$ 个 step 刷新一次。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;mmadavla/utils/dllm_cache.py&lt;/code&gt; 把 prompt/gen 分开缓存，并通过 &lt;code&gt;refresh_index&lt;/code&gt; 选择低相似度位置。它是 training-free 的推理优化，不改变模型参数。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;Masked-token 训练目标&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 从 clean sequence $x$ 采样 diffusion step $s$，得到被 mask 的 $x^{(s)}\sim q_s(\cdot\mid x)$。令 $N_s$ 为 mask token 数量，训练目标为：&lt;/p&gt;
&lt;p&gt;$$
\mathcal L(\theta)=-\mathbb E\left[\frac{1}{N_s}\sum_{i=1}^{n}\mathbf 1[x_i^{(s)}=\text{[M]}]\log \pi_\theta(x_i\mid x^{(s)})\right].
$$&lt;/p&gt;
&lt;p&gt;其中 $\mathbf 1$ 只选择被破坏的位置，避免未 mask 的条件 token 主导损失；代码中对应 &lt;code&gt;F.cross_entropy&lt;/code&gt;，并用 &lt;code&gt;ignore_id&lt;/code&gt; 忽略其他位置。&lt;/p&gt;
&lt;h4&gt;Cosine mask schedule&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper / Code】&lt;/strong&gt; mask 比例采用 cosine schedule：&lt;/p&gt;
&lt;p&gt;$$
\gamma(r)=\cos\left(\frac{\pi r}{2}\right),\quad r\in[0,1].
$$&lt;/p&gt;
&lt;p&gt;训练中随机采样 $r$；代码中 &lt;code&gt;cosine_mask_schedule&lt;/code&gt; 返回该比例，并对 image token 与 action token 使用相同的 mask probability。&lt;/p&gt;
&lt;h4&gt;迭代去噪与 confidence remasking&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 第 $d$ 步先得到每个位置的 clean-token 预测 $\hat x^{(0)}$，再按预测置信度保留一部分 token、重新 mask 其余 token：&lt;/p&gt;
&lt;p&gt;$$
x_i^{(d-1)}=\begin{cases}
[M],&amp;#x26;c_i&amp;#x3C;\operatorname{sort}(c)[\beta],\
\hat x_i^{(0)},&amp;#x26;\text{otherwise}.
\end{cases}
$$&lt;/p&gt;
&lt;p&gt;这里 $c_i$ 是采样 token 的置信度，$\beta=\gamma(d/D)n&apos;$ 是下一步需要保留的 mask 数量。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;generate&lt;/code&gt; 使用 softmax 概率采样 token，再通过 &lt;code&gt;mask_by_random_topk&lt;/code&gt; 加入 Gumbel noise；随着 &lt;code&gt;ratio&lt;/code&gt; 增大，temperature 线性降到 0，使后期决策更确定。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 预训练使用约 5,300 万跨 embodiment 样本，混合 DROID、BC-Z、Language Table、Furniture Bench、Fractal、Bridge V2、Kuka、CALVIN、LIBERO 等数据。backbone 是 8B 的 MMaDA-8B-Base；全局 batch size 640，AdamW，learning rate $10^{-4}$，weight decay 0.01，cosine decay，warm-up ratio 0.01，文本长度 128。8 节点、每节点 8 张 H800 上预训练约 30 小时。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;train/train_mmadavla.py&lt;/code&gt; 的训练步骤是：读取 parquet → 拼接 robot state 文本 → 对 goal image 与 action 同步 mask → 用 &lt;code&gt;Prompting&lt;/code&gt; 生成 attention bias 和 labels → 前向交叉熵 → gradient clipping、AdamW 更新与 cosine scheduler。默认 mixed precision 为 bfloat16；从 base MMaDA 初始化时会扩展 action vocabulary。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 推理时 current observation 和 instruction 固定，goal observation 与 action chunk 全部初始化为 &lt;code&gt;[M]&lt;/code&gt;。模型执行 $D$ 次 denoising，在每次迭代中并行更新两段 token；最终分别用 MAGVIT-v2 decoder 和 action tokenizer 解码，机器人执行 action chunk，再回到下一轮闭环。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;MMaDAVLAModelLM.generate&lt;/code&gt; 默认 &lt;code&gt;timesteps=18&lt;/code&gt;，每步对 action / vision 两个区域分别采样、计算置信度、按 schedule 重新 mask。论文效率实验最终选择 24 denoising steps、6 cache-refresh steps；README 的命令没有覆盖这些推理参数，部署时需按评测脚本配置。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;| 论文概念           | 官方代码位置                                             | 代码行为                                                                      |
| ------------------ | -------------------------------------------------------- | ----------------------------------------------------------------------------- |
| Action tokenizer   | &lt;code&gt;mmadavla/models/action_tokenizer.py&lt;/code&gt;                    | 256 bins，动作范围 $[-1,1]$，按 chunk 展平                                    |
| Prompt / attention | &lt;code&gt;mmadavla/utils/prompt.py&lt;/code&gt;                               | current image、text、goal image、action 的固定区域编号与 hybrid bias          |
| Training loss      | &lt;code&gt;mmadavla/models/mmadavla.py&lt;/code&gt;、&lt;code&gt;train/train_mmadavla.py&lt;/code&gt; | 全序列 cross entropy，但 labels 只保留 masked generation token                |
| Diffusion schedule | &lt;code&gt;mmadavla/utils/diffusion.py&lt;/code&gt;                            | cosine mask、随机 mask、Gumbel top-k remasking                                |
| Inference          | &lt;code&gt;mmadavla/models/mmadavla.py&lt;/code&gt;                            | vision/action 两个区域并行采样，多步更新                                      |
| Cache              | &lt;code&gt;mmadavla/utils/dllm_cache.py&lt;/code&gt;                           | prompt/gen 分区 KV、attention、FFN cache；选择低 cosine similarity token 刷新 |
| Data               | &lt;code&gt;mmadavla/data/lerobot.py&lt;/code&gt;、&lt;code&gt;data/preprocess.py&lt;/code&gt;         | LeRobot episode、视频帧、状态和 action chunk 的读取与归一化                   |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 论文中的“world-model-like”是目标观测生成目标，不等同于一个可以任意 rollout 的显式 simulator。官方代码也没有单独的 inverse dynamics 网络；动作直接由同一 backbone 的 action vocabulary 解码。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; LIBERO 报告 Spatial、Object、Goal、Long 四个 suite；CALVIN 使用 ABC→D 设置，在 A/B/C 训练、D 测试，并统计连续五个子任务的成功率与平均完成长度。真实实验使用 AgileX PiPER、第三视角 RealSense D435 和腕部 DX200-2.8mm 相机；四类任务各收集 300 条 demonstration，每类评估 30 次。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://agusexp25.top/images/paper-deep-dive-mmada-vla/figure-3.webp&quot; alt=&quot;真实机器人设置、任务示例与成功率（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;| Benchmark              |                             MMaDA-VLA |                               最强对比方法 |                差值 |
| ---------------------- | ------------------------------------: | -----------------------------------------: | ------------------: |
| LIBERO average success |                             &lt;strong&gt;98.0%&lt;/strong&gt; |                          VLA-Adapter 97.3% |             +0.7 pp |
| CALVIN 1/5 → 5/5       | 99.8 / 98.6 / 96.3 / 93.5 / &lt;strong&gt;89.7%&lt;/strong&gt; | DreamVLA 98.2 / 94.6 / 89.5 / 83.4 / 78.1% | 第五子任务 +11.6 pp |
| CALVIN average length  |                              &lt;strong&gt;4.78&lt;/strong&gt; |                              DreamVLA 4.44 |               +0.34 |
| Real-world success     |                           83.3%–93.3% |                       GR00T N1 56.7%–70.0% |       +23.3–26.6 pp |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 最有说服力的不是 LIBERO 的小幅平均提升，而是 CALVIN 后续子任务成功率：当错误必须跨多个动作块传播时，goal observation 约束与并行 refinement 的组合更能维持轨迹一致性。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://agusexp25.top/images/paper-deep-dive-mmada-vla/figure-5.webp&quot; alt=&quot;生成目标观测与 ground truth 对比（论文 Figure 5）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在不使用预训练的 CALVIN 设置中，完整模型平均长度为 4.56；去掉 world-model 目标观测后降到 4.08，去掉 parallel denoising 后为 4.38，改为 causal attention 为 4.49，改为完全 bidirectional attention 为 4.52。&lt;/p&gt;
&lt;p&gt;这些结果区分了三个因素：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;World-model objective&lt;/strong&gt; 带来最大收益（−0.48），说明未来视觉状态确实提供了动作规划信号。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Parallel denoising&lt;/strong&gt; 比“先完整生成图像、再预测动作”更好（−0.18），动作可以读取图像生成过程中的中间 hidden states。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Attention 形式&lt;/strong&gt; 的影响较小（均小于 0.1），但 hybrid attention 同时保留了模态内全局交互和模态间方向性。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 预训练将 LIBERO 平均成功率从 94.5% 提升到 98.0%，将 CALVIN 平均长度从 4.56 提升到 4.78。目标观测可视化显示，模型能保留“任务是否完成”的高层状态变化，但 gripper 几何和小物体细节较模糊。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这表明 compact visual code 更像 dynamics abstraction，而不是像素级 world model：它对控制有用的原因可能是状态可辨识性，而非图像重建保真度。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://agusexp25.top/images/paper-deep-dive-mmada-vla/figure-7.webp&quot; alt=&quot;不同去噪步数与 cache 刷新设置下的延迟—性能折中（论文 Figure 7）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在单张 A100 上，KV cache 将平均延迟从约 2.0 s 降到 1.4 s；去噪步数增加时性能先升后降，24 steps 达到最佳平均长度 4.65。论文最终采用 24 steps、6 refresh steps 作为速度与成功率的折中。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 可以把它理解成三个互补的归纳偏置：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Shared token space&lt;/strong&gt; 让 vision、language、action 使用同一套 denoising 计算，减少模块边界的信息损失。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Goal observation&lt;/strong&gt; 把长时域动作变成“到达一个可预测状态”，给 action chunk 一个可检查的中间目标。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Iterative parallel refinement&lt;/strong&gt; 允许动作各维度互相参考并反复改写，避免 AR 顺序和早期错误锁死后续 token。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 真正的创新组合是“原生离散扩散 backbone + goal observation/action 联合生成 + hybrid attention + 大规模 cross-embodiment pre-training”。单独拿出任何一个部件，都能在已有工作中找到相近思想；贡献在于把训练和推理统一到一个可扩展的生成框架中。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;| 路线             | 生成关系                               | 主要代价                     |
| ---------------- | -------------------------------------- | ---------------------------- |
| Vanilla AR VLA   | 按顺序生成 action token                | 顺序偏置、误差累积           |
| Hierarchical VLA | VLM → policy head                      | 额外模块与接口失真           |
| World-model VLA  | goal image → inverse dynamics → action | 多阶段、训练/推理错配        |
| MMaDA-VLA        | goal image 与 action 同一序列并行去噪  | 多次前向带来延迟，需要 cache |&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 方法隐含了四个假设：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;离散视觉 token 足以表达与控制相关的未来状态；&lt;/li&gt;
&lt;li&gt;action chunk 的维度可被无序并行 refinement 有效建模；&lt;/li&gt;
&lt;li&gt;当前指令在一个 denoising cycle 内保持不变，因此 prompt cache 稳定；&lt;/li&gt;
&lt;li&gt;大规模跨 embodiment 数据学到的 token-level correspondence 能迁移到新机器人和新相机布局。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 生成目标观测的细粒度视觉保真度有限，gripper 和小型复杂物体可能模糊；迭代去噪天然重复计算，实时控制需要 KV cache；真实实验中的失败仍集中在窄开口抓取、抽屉位移不足和高杯堆叠不稳定等精细接触问题。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;代码与论文的部署鸿沟&lt;/strong&gt;：仓库公开了训练与模型推理，但真实 AgileX PiPER 的完整控制、相机同步和安全策略没有作为可复现实验脚本提供。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;离散化误差&lt;/strong&gt;：256 bins 对 7-DoF 每个维度独立量化，bin range 由训练数据决定；超出数据分布的精细动作可能被截断。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;延迟仍高于单次 forward policy&lt;/strong&gt;：24 次去噪即使有 cache 也需要约 1.4 s 量级，快速接触或高频控制场景可能无法直接使用。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;目标观测不是可验证的真实动力学&lt;/strong&gt;：生成图像只需在 token 空间合理，不保证满足碰撞、摩擦、关节极限等物理约束。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;实验对比的统计不确定性未充分展开&lt;/strong&gt;：论文报告成功率和平均长度，但没有系统给出多随机种子置信区间或不同 chunk size 的完整敏感性曲线。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这篇工作给后续 VLA 研究的启发是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;可以把 action chunk 看成需要全局修正的 structured sequence，而不是语言式 token stream；&lt;/li&gt;
&lt;li&gt;world model 不一定要独立存在，预测一个短 horizon 的可控目标状态也能作为 policy 的辅助坐标系；&lt;/li&gt;
&lt;li&gt;预训练的价值不仅是视觉语义迁移，也在于让模型看到不同 embodiment 下“动作 token 如何改变视觉 token”；&lt;/li&gt;
&lt;li&gt;cache 不应只是工程补丁，未来可以把“哪些 token 值得刷新”作为可学习的 computation allocation 问题；&lt;/li&gt;
&lt;li&gt;下一步值得研究连续 action diffusion 与离散视觉生成的混合表示，以及带物理约束的 goal-state token。&lt;/li&gt;
&lt;/ul&gt;</content:encoded><h:img src="https://pic.hana0721.top/62423081_p0_master1200.3ns7nvxp9b.webp"/><enclosure url="https://pic.hana0721.top/62423081_p0_master1200.3ns7nvxp9b.webp"/></item><item><title>MM-ACT 论文精读：Learn from Multimodal Parallel Generation to Act</title><link>https://agusexp25.top/blog/paper-deep-dive-mm-act</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-mm-act</guid><description>精读 MM-ACT：在共享离散 token 空间中统一生成任务规划、未来图像与动作，并用 Context-Shared Multimodal Learning 提升机器人控制。</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 《MM-ACT: Learn from Multimodal Parallel Generation to Act》提出一个统一的 Vision-Language-Action（VLA）模型：文本任务规划、未来图像预测和动作 chunk 都在同一个离散 token 空间里生成。模型使用 bidirectional attention，把三种任务写成“给定共享上下文，补全一个被 mask 的 block”。文本与图像使用 re-mask parallel decoding，动作则默认一次前向并行生成整个 chunk。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/blog/paper-deep-dive-mm-act/motivation.webp&quot; alt=&quot;MM-ACT 与 AR/Hybrid Unified VLA 的范式对比（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; MM-ACT 的关键不是简单增加一个 action head，而是把 VLA 重新表述为 block-level masked-token prediction：同一 Transformer、同一套 mask-and-predict 目标，既负责“下一步做什么”，也负责“做完后会看到什么”和“如何用语言描述子任务”。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;使用 language、vision、action 三个 modality-specific tokenizer，把文本、图像、机器人状态和动作拼成共享序列。&lt;/li&gt;
&lt;li&gt;提出 Context-Shared Multimodal Learning：三种目标从相同的多视角观察、任务指令和状态上下文出发，共享一次多模态建模过程。&lt;/li&gt;
&lt;li&gt;为文本/图像采用多步 re-mask decoding，为动作采用 one-step parallel decoding，在动作质量与控制频率之间做取舍。&lt;/li&gt;
&lt;li&gt;在 LIBERO、Franka real-world 和 RoboTwin2.0 上验证，报告 96.3%、72.0% 和 52.38% 的成功率；RoboTwin 中联合文本、图像和动作训练比 action-only 提升 9.25 个百分点。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 传统 VLA 往往把预训练 VLM 与动作头拼接。它们擅长语义理解，却不一定显式建模物理变化；视觉预测型方法能够预测未来，却常常缺少任务分解与语言规划。统一 VLA 试图同时生成多种模态，但已有方案通常混合 autoregressive（AR）文本、diffusion/re-mask 图像和动作，导致 attention 机制、训练目标和推理流程不一致。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这篇论文抓住的是“目标不一致”与“控制延迟”两个矛盾：AR 适合文本，却要逐 token 前向；diffusion/re-mask 更适合块状图像或动作，却需要多次前向。MM-ACT 选择统一为 mask predictor，再对不同模态使用不同的解码步数。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 给定机器人在时刻 $t$ 的多视角图像 $I_t$、语言指令 $l_t$、状态 $s_t$ 以及可选的历史描述，模型需要完成三类条件生成：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MMU / text generation&lt;/strong&gt;：输出当前任务的子任务规划 $y^{text}$；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;T2I / image generation&lt;/strong&gt;：预测执行动作 chunk 后的未来图像 $y^{img}$；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MM2A / action generation&lt;/strong&gt;：输出长度固定的动作 chunk $y^{act}$。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;共享上下文记为 $u=(I_t,l_t,s_t,\ldots)$，模态 token 为 $m\in{\texttt{&amp;#x3C;|mmu|&gt;},\texttt{&amp;#x3C;|t2i|&gt;},\texttt{&amp;#x3C;|mm2a|&gt;}}$。模型学习的是 $p_\theta(y^m\mid m,u)$，而不是为每个模态维护一个独立策略。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方训练配置将 &lt;code&gt;chunk_size&lt;/code&gt; 设为 8；LIBERO 使用 7 维 Franka action，RoboTwin 配置默认 &lt;code&gt;action_dim: 16&lt;/code&gt;。action codebook 的大小来自 checkpoint 配置，数据集代码的默认值虽写作 1024，但论文与模型准备脚本使用 2048，因此复现实验应以 checkpoint 的 &lt;code&gt;model.config.action_vocab_size&lt;/code&gt; 为准。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;/blog/paper-deep-dive-mm-act/method.webp&quot; alt=&quot;MM-ACT 的共享 token 空间与三种输出 block（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 多视角图像、语言、状态和模态标记先经过各自 tokenizer，形成交错的 shared context；Transformer 对完整序列做 bidirectional attention，再根据 modal token 在尾部补全文本、图像或动作 block。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;Modality-specific tokenizers&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;文本&lt;/strong&gt;：沿用 LLaDA tokenizer；文本 block 固定为 256，短答案用 &lt;code&gt;&amp;#x3C;eos&gt;&lt;/code&gt; 补齐。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;图像&lt;/strong&gt;：采用 Show-o 的 MAGVIT-v2 quantizer；图像先 pad 成正方形、缩放到 $256\times256$，编码为 256 个 image tokens，生成后再解码回图像。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;状态与动作&lt;/strong&gt;：对归一化到 $[-1,1]$ 的连续标量做 bin quantization。每个标量对应一个 action token，生成后反量化回连续值。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;training/robotwin_dataset.py&lt;/code&gt; 的 &lt;code&gt;quantize_state&lt;/code&gt; 与 &lt;code&gt;quantize_action&lt;/code&gt; 实现线性映射：$v\mapsto round((v+1)(B-1)/2)$；部署脚本再使用相反映射恢复动作。&lt;/p&gt;
&lt;h4&gt;Shared context 与 modal token&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 每种任务的上下文都是 &lt;code&gt;modal token + shared input&lt;/code&gt;。&lt;code&gt;shared input&lt;/code&gt; 交错包含多视角图像 token、任务指令、描述和可选 robot state。上下文之后追加固定长度的 mask block：图像为 256，动作长度为 $d_{action}\times N_{chunk}$。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; modal token 使同一个 backbone 具备“任务路由”能力；真正改变输出语义的不是网络分支，而是目标 block 的 tokenizer 范围与解码策略。&lt;/p&gt;
&lt;h4&gt;Bidirectional Transformer&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; MM-ACT 使用带双向 attention 的 mask-token predictor，所有 masked positions 可以在一次 forward 中同时得到 logits。相比 AR VLA，它避免为每个 action scalar 逐 token 运行完整网络；相比混合式模型，它不需要在 AR 与 diffusion head 之间切换。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;p&gt;对目标序列 $x_0=(x_0^1,\ldots,x_0^L)$，每个位置独立以 $p_{mask}=f_m(t)$ 被替换为 &lt;code&gt;&amp;#x3C;mask&gt;&lt;/code&gt;：&lt;/p&gt;
&lt;p&gt;$$
q_t(x_t^i\mid x_0^i)=(1-f_m(t))\mathbf{1}[x_t^i=x_0^i]+f_m(t)\mathbf{1}[x_t^i=\texttt{}].
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 文本使用 linear schedule；图像和动作使用 cosine schedule。动作训练固定 $t=1$，即整个 action block 从全 mask 状态开始，直接学习一次性补全。&lt;/p&gt;
&lt;p&gt;统一损失只在被 mask 的位置计算：&lt;/p&gt;
&lt;p&gt;$$
\mathcal{L}(\theta)=-\mathbb{E}\left[\sum_{m\in\mathcal{M}}\frac{\lambda_m}{t}\sum_{i\in\mathcal{I}&lt;em&gt;m}\mathbf{1}[x_t^i=\texttt{}]\log p&lt;/em&gt;\theta(x_0^i\mid C_m,x_t)\right].
$$&lt;/p&gt;
&lt;p&gt;其中 $\mathcal{M}$ 是三种模态，$\lambda_m$ 控制各任务的梯度权重，$C_m$ 是带 modal token 的 shared context。该式的含义是：三种任务可以使用不同数据 block，但优化器看到的是同一类 masked-token cross-entropy。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 训练采用两阶段策略。Stage 1 令 $\lambda_{mm2a}=0$，先训练文本和图像生成；Stage 2 主要优化动作，同时把文本和图像权重降到约 0.05–0.1，以保留跨模态能力。LIBERO 每个子基准约 11k steps，RoboTwin 多任务约 27k steps，Franka 每个任务约 8k steps；batch size 为 128，action chunk size 为 8。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;configs/mmact_robotwin_mix.yaml&lt;/code&gt; 默认 &lt;code&gt;co_action/co_t2i/co_mmu=True&lt;/code&gt;、&lt;code&gt;action_weight=1.0&lt;/code&gt;、&lt;code&gt;t2i_weight=0.05&lt;/code&gt;、&lt;code&gt;mmu_weight=0.05&lt;/code&gt;，优化器是 AdamW，learning rate 为 $5\times10^{-5}$，warmup 500 steps。&lt;code&gt;training/train_mmact_robotwin_mix.py&lt;/code&gt; 把 action、T2I、MMU batch 拼接后一次 forward，再按配置权重求和。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 部署时只生成动作。模型把 action block 初始化为 mask，一次 forward 得到所有动作 token 的 logits，采样后反量化成连续动作并执行第一个时间步；随后重新采集观察，滚动生成下一个 chunk。论文在 chunk size 8、one-step decoding 下报告最高约 40 Hz 的 action generation frequency（每 chunk 5 Hz 的控制设置）。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;MMACTModelLM.action_generate&lt;/code&gt; 同时支持 one-step 和 re-mask 路径，实际是否一次完成由 &lt;code&gt;timesteps&lt;/code&gt; 与部署配置控制；&lt;code&gt;deploy_policy.py&lt;/code&gt; 默认构造 6-step 接口，但论文实验最终选择 one-step action decoding。代码因此比论文叙述更通用，复现论文设置时需要显式把 action generation 的步数设为 1。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;| 论文概念 | 官方代码位置 | 实际行为 |
| --- | --- | --- |
| 统一模型 | &lt;code&gt;models/modeling_mmact.py&lt;/code&gt; | &lt;code&gt;MMACTModelLM&lt;/code&gt; 继承 &lt;code&gt;MMadaModelLM&lt;/code&gt;，复用 MMaDA backbone 并增加 action utilities。 |
| 多任务 forward | &lt;code&gt;forward_process_vla&lt;/code&gt; | 按 action、T2I、LM、MMU 的 batch 段建立 attention bias，分别计算 loss。 |
| 动作 loss | &lt;code&gt;forward_process_action&lt;/code&gt; / &lt;code&gt;forward_process_vla&lt;/code&gt; | 默认 plain cross-entropy，也支持 margin 或 Gaussian soft CE。 |
| 动作生成 | &lt;code&gt;action_generate&lt;/code&gt; | 在 action slice 上做并行采样和低置信度 re-mask；&lt;code&gt;timesteps=1&lt;/code&gt; 才是论文的 one-step 设置。 |
| 数据量化 | &lt;code&gt;training/robotwin_dataset.py&lt;/code&gt;、&lt;code&gt;training/libero_action_dataset.py&lt;/code&gt; | 连续状态/动作裁剪到 $[-1,1]$ 后映射到离散 bins。 |
| 训练入口 | &lt;code&gt;training/train_mmact_robotwin_mix.py&lt;/code&gt; | 通过 &lt;code&gt;co_action/co_t2i/co_mmu&lt;/code&gt; 组合任意模态，并按权重聚合。 |
| 部署 | &lt;code&gt;deployment/mmact_deploy.py&lt;/code&gt;、&lt;code&gt;experiments/robot/*/deploy_policy.py&lt;/code&gt; | 将视觉 token、状态 token 和 action block 拼接后调用模型生成。 |&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 实验覆盖三个层次：LIBERO 四个子基准（Spatial、Object、Goal、Long）的 Franka 仿真；RoboTwin2.0 的 Agilex Piper 双臂、八个 unseen bimanual tasks；以及 Franka Research 3 真实机器人上的 Press Button、Stack Block、Sort Vegetables and Fruits。RoboTwin 使用约 70k 个过滤后的训练样本，Franka 每个任务收集 100 条 teleoperation demonstrations。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/blog/paper-deep-dive-mm-act/franka.webp&quot; alt=&quot;Franka Research 3 的真实机器人设置与三个任务（论文 Figure 4）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;| Benchmark | MM-ACT 结果 | 对比结论 |
| --- | ---: | --- |
| LIBERO average SR | &lt;strong&gt;96.3%&lt;/strong&gt; | 高于 OpenVLA-OFT 95.4%、$\pi_0$ 94.2% 和 UniVLA 95.5%。 |
| LIBERO-Long | 93.0%（+Text） | 相比 action-only vanilla 的 88.0%，任务规划联合训练提升 5.0 个百分点。 |
| RoboTwin2.0（8 tasks） | &lt;strong&gt;52.38%&lt;/strong&gt; | 高于 $\pi_0$ 的 48.13% 与 OpenVLA-OFT 的 23.13%。 |
| Franka real-world | &lt;strong&gt;72.0%&lt;/strong&gt; | Press Button 80%、Stack Block 70%、Sort 66%。 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 结果支持两件事：统一 token space 并没有牺牲 action performance；更重要的是，在 out-of-domain 的 RoboTwin 上，跨模态训练的收益大于单纯更换解码器带来的收益。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;/blog/paper-deep-dive-mm-act/training.webp&quot; alt=&quot;Context-Shared Multimodal Learning 的训练数据构造（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; RoboTwin action-only baseline 的平均成功率是 43.13%。加入 text、image、text+image 后分别为 46.50%（+3.37）、48.75%（+5.62）和 52.38%（+9.25）。这说明三种目标共享上下文时存在互补监督，而不是简单的多任务平均。&lt;/p&gt;
&lt;p&gt;动作解码策略也揭示了效率边界：chunk size 8 时 one-step 为 43.13%、0.22 s，re-mask（6 steps）为 42.38%、1.06 s；chunk size 16 时 re-mask 提升到 56.75%，但仍需 1.06 s。论文因此选择 chunk 8 + one-step 作为实时控制默认值。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 文本与图像的解码策略对动作也有影响：image re-mask 达到 48.75%，高于 image one-step 的 46.13%；text one-step 与 re-mask 分别为 46.63% 和 46.50%。状态是否放入上下文也不同：text context 中加入 state 后为 43.50%，image context 中加入 state 后升至 51.50%。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;/blog/paper-deep-dive-mm-act/image-generation.webp&quot; alt=&quot;RoboTwin unseen 场景中的未来图像预测（论文 Figure 5）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 未来图像质量从 Stage 1 到 Stage 2 继续提升：PSNR 12.08→14.23、SSIM 0.79→0.80、LPIPS 0.11→0.09。相反，文本规划准确率由 81.5% 降到 68.7%；论文将其归因于文本目标在训练集上过快拟合，而图像目标仍在缓慢学习。这个反差说明跨模态训练并不自动让每个模态都变好。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 动作、未来图像和子任务文本都由同一份 observation-conditioned context 产生。文本迫使模型编码“下一步子任务”，图像迫使模型编码“动作后的状态变化”，动作则必须把这些语义和动力学线索落到可执行 token。共享 backbone 因此获得了比 action-only 更丰富的训练信号。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;统一目标&lt;/strong&gt;：将 AR token prediction 与 diffusion-like denoising 都改写成 masked-token cross-entropy。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;统一上下文&lt;/strong&gt;：不是把多个 head 的 loss 机械相加，而是让三种目标读取完全相同的多模态观察。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;按模态分配解码预算&lt;/strong&gt;：文本/图像用多步 re-mask，动作使用一次并行预测，把算力优先留给控制频率。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;离散 action representation&lt;/strong&gt;：连续控制通过 bin tokenizer 进入与文本、图像兼容的词表。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;| 路线 | 文本 | 图像 | 动作 | 主要代价 |
| --- | --- | --- | --- | --- |
| AR unified VLA | AR | AR | AR | 动作逐 token，延迟高。 |
| Hybrid unified VLA | AR | PD/re-mask | PD/re-mask | 需要混合 attention 与训练目标。 |
| MM-ACT | block mask | block mask | one-step block mask | 结构简单，但 action 一步预测依赖离散化和固定 chunk。 |&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 任务规划、未来图像和动作可以从同一时刻的 shared context 学到互补关系。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; action block 的固定长度足以覆盖控制需要；超过该 horizon 的长期规划由下一次滚动预测承担。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 将连续动作量化为 2048 bins 的离散 token 不会造成决定性控制误差。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 训练数据中的子任务文本与未来图像标注足够可靠，否则跨模态监督可能把噪声传给 action policy。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文没有单独列出长篇 limitation section，但实验明确显示 Stage 2 会使文本规划泛化从 81.5% 降到 68.7%，说明联合训练存在模态间的负迁移；同时，长 chunk 的 re-mask 虽提高成功率，却带来约五倍推理时间。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 论文的 one-step action 结果依赖固定 chunk size 8；对于更长动作序列，实验已显示 one-step 可能不如 re-mask。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; action token 的 bin quantization 将连续控制误差离散化，论文没有给出 codebook size、控制频率与精度之间的系统敏感性实验。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 真实机器人只覆盖三个任务，且每任务 100 条示教；相比大规模 VLA 预训练，跨 embodiment 和跨任务扩展仍未充分验证。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 仓库同时保留了 one-step 与多步接口，默认参数和论文实验设置并不完全相同；直接运行部署脚本可能得到 6-step action decoding，而不是论文报告的 one-step 配置。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; MM-ACT 提供了一个值得继续追问的设计空间：多模态辅助目标的价值可能不在于部署时生成它们，而在于训练时迫使策略学习更好的 latent state。后续可以沿三个方向推进：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;用 uncertainty-aware loss 或 gradient surgery 缓解 Stage 2 对文本的负迁移；&lt;/li&gt;
&lt;li&gt;让 action chunk size 与任务阶段、速度或置信度自适应，而不是固定为 8；&lt;/li&gt;
&lt;li&gt;把 depth、触觉、接触事件等新模态以同样的 tokenizer + mask block 方式接入，测试“共享上下文”能否扩展到真正的 physical state modeling。&lt;/li&gt;
&lt;/ol&gt;</content:encoded><h:img src="https://pic.hana0721.top/71875434_p0_master1200.7pvvr603z.webp"/><enclosure url="https://pic.hana0721.top/71875434_p0_master1200.7pvvr603z.webp"/></item><item><title>MWM 论文精读：让世界模型预测真正影响机器人决策的东西</title><link>https://agusexp25.top/blog/paper-deep-dive-mask-world-model</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-mask-world-model</guid><description>精读 ICML 2026 的 Mask World Model：以未来语义 mask 而非 RGB 像素训练世界模型，并用预测特征驱动扩散策略，提升机器人对外观变化的鲁棒性。</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;论文名称&lt;/strong&gt;：《Mask World Model: Predicting What Matters for Robust Robot Policy Learning》&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;论文链接&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2604.19683&quot;&gt;arXiv&lt;/a&gt; · &lt;strong&gt;代码&lt;/strong&gt;：&lt;a href=&quot;https://github.com/LYFCLOUDFAN/mask-world-model&quot;&gt;LYFCLOUDFAN/mask-world-model&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; MWM（Mask World Model）把机器人世界模型的预测目标从未来 RGB 视频改为未来&lt;strong&gt;语义 mask&lt;/strong&gt;：训练时从 mask 学习物体身份、空间布局和接触变化，测试时却只接收多视角 RGB。扩散式 action head 读取世界模型的预测特征并产生闭环动作。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;提出几何信息瓶颈（geometric information bottleneck）：以语义 mask 保留对象、布局与交互关系，舍弃纹理、反光、背景和照明等控制无关因素。&lt;/li&gt;
&lt;li&gt;以条件 flow matching 预训练 mask dynamics backbone，再以扩散策略的动作损失对齐预测特征与控制需求；部署阶段不需要外部分割器。&lt;/li&gt;
&lt;li&gt;在 LIBERO 上得到 98.3% 平均成功率、RLBench 六任务上得到 68.3%，并在 Franka 实机与外观扰动测试中优于 RGB 世界模型基线。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 视频世界模型常以未来 RGB 重建为目标。它适合视觉生成，却未必适合控制：桌布纹理、光照或反光改变了大量像素，却不改变“夹爪是否接触瓶子”这类决策变量。若模型把容量分给这些外观细节，闭环中的 appearance-driven 误差会不断累积。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; MWM 不同于把当前帧的 grounding mask 作为线上输入的路线。它在内部&lt;strong&gt;预测未来的语义结构&lt;/strong&gt;，让策略读取预测过程的 hidden states；mask 只是离线监督信号，不把在线分割质量、延迟或额外模型依赖带入控制回路。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 真正变化的是世界模型必须预测什么，而不只是给 RGB world model 加一项 segmentation auxiliary loss。这一归纳偏置直接针对背景、颜色和照明变化。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 时刻 $t$ 的输入是多视角 RGB $o_t={o_t^{(v)}}_{v=1}^{V}$、语言指令 $p$ 与低维 state；输出为连续末端执行器动作。训练数据另有机械臂、夹爪和任务物体的像素级 mask $m_t$，但只用于训练。目标是在外观分布改变后仍可靠操控。&lt;/p&gt;
&lt;p&gt;| 项目     | MWM 的设定                                                    |
| -------- | ------------------------------------------------------------- |
| 观测     | 第三人称 + wrist 多视角 RGB、语言；动作阶段使用低维 state     |
| 预测结构 | 4 个 RGB memory frames 条件下预测 5 个未来 mask latent        |
| 动作表示 | 36-step chunk；15 维为 7-DoF pose、1-DoF gripper、7-DoF state |
| 部署     | Receding-horizon control，每轮只执行 chunk 的第一步           |&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 多视角 RGB memory 经共享 video VAE 编码、归一化、时间插值和跨视角堆叠后输入 DiT；DiT 在文本 cross-attention 与 diffusion timestep 条件下预测未来 mask latent，并将各层 hidden states 缓存成 predictive feature bank，供 action diffusion head cross-attend。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;共享 VAE 与彩色 mask latent&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; mask 是离散类别图，视频扩散器却处理连续 latent。MWM 用固定调色板把语义区域渲染为 RGB-compatible 图像 $\tilde m_t$，RGB 与 mask 共用预训练 VAE 编码器 $E$：&lt;/p&gt;
&lt;p&gt;$$
z_t^o=E(o_t), \qquad z_t^m=E(\tilde m_t)
$$&lt;/p&gt;
&lt;p&gt;这避免另训 mask VAE，并使 RGB 条件和 mask target 落在同一 latent 接口。Normalize / Interpolate / Stack 随后统一时间采样率并融合多视角 token。&lt;/p&gt;
&lt;h4&gt;Mask dynamics DiT&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 28 层 DiT 接收干净的 memory RGB latent 与被加噪的未来 mask latent。memory slots 固定在零噪声时间步，损失只施加于 future slots，因此模型必须建模条件未来。3D RoPE 编码时间、高、宽位置；AdaIN-style 的尺度和偏移注入 timestep。&lt;/p&gt;
&lt;h4&gt;Predictive feature bank 与 action expert&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; MWM 不先把 mask 解码成图、再由另一网络看图选动作。它缓存 mask forecasting 中所有 block 的 hidden states $H_t={h_t^{(1)},\ldots,h_t^{(L)}}$，让 action transformer 直接对这些时空特征做 cross-attention。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这可能是 MWM-C2 强于“显式 mask rollout + inverse dynamics”的关键：策略读取连续、层级化的未来表征，免去一次 mask 解码和二次解释带来的误差传播。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 对干净未来 mask latent $z_0$ 与高斯噪声 $z_1\sim\mathcal N(0,I)$，flow matching 使用：&lt;/p&gt;
&lt;p&gt;$$
z_s=(1-s)z_0+sz_1, \qquad
\mathcal L_{\text{mask}}=\mathbb E\left[w(s)\left|v_\theta(z_s,s,c_t)-(z_1-z_0)\right|_2^2\right]
$$&lt;/p&gt;
&lt;p&gt;$c_t$ 是 RGB memory 与文本条件，$w(s)$ 是时间步权重，$z_1-z_0$ 为路径真实速度。动作头对 action-state chunk $u$ 加噪 $\tilde u=u+\sigma\epsilon$，以 score matching 优化：&lt;/p&gt;
&lt;p&gt;$$
\mathcal L_{\text{act}}=\mathbb E\left[\lambda(\sigma)\left|\phi_\xi(\tilde u,\sigma,H_t)+\epsilon/\sigma\right|_2^2\right]
$$&lt;/p&gt;
&lt;p&gt;其中 $\phi_\xi$ 是动作去噪器，$H_t$ 为预测特征库，$\lambda(\sigma)$ 调整不同噪声尺度的权重。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Stage 1 以 $\mathcal L_{\text{mask}}$ 训练 mask dynamics：4 帧 RGB 预测 5 个未来 latent，总共覆盖 9 帧；caption dropout 为 0.06，条件帧加幅度 0.1 的轻微噪声。Stage 2 从 Stage-1 checkpoint 开始，只优化 $\mathcal L_{\text{act}}$；VAE 冻结，DiT backbone 与 action expert 由动作梯度共同更新，不再加入 mask/video reconstruction loss。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 附录报告两阶段均用 AdamW、全局 batch 128、weight decay $10^{-5}$、warmup 1000 steps、bf16、gradient clip 1.0；学习率分别为 $3\times10^{-4}$ / $5\times10^{-5}$。每 suite 训练约需 8×A100 80GB：约 3.5 天（30k steps）加 1.5 天（18k steps）。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 测试时没有语义 mask 与外部分割器。系统输入最新 RGB、state 和指令，由 world model 得到预测特征；动作扩散器使用 10-step Euler sampling 产生 36-step chunk。控制器执行第一步，读入新观测后重新规划。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方实现是基于 Genie Envisioner / LTX-Video 的精简 fork。&lt;code&gt;configs/ltx_model/libero/video_model_libero.yaml&lt;/code&gt; 对应 Stage 1：&lt;code&gt;return_video: true&lt;/code&gt;、&lt;code&gt;train_mode: video_only&lt;/code&gt;、&lt;code&gt;action_expert: false&lt;/code&gt;；&lt;code&gt;action_model_libero.yaml&lt;/code&gt; 对应 Stage 2：&lt;code&gt;return_action: true&lt;/code&gt;、&lt;code&gt;train_mode: action_full&lt;/code&gt;、&lt;code&gt;action_expert: true&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 配置与论文关键数字一致：&lt;code&gt;n_previous: 4&lt;/code&gt;、&lt;code&gt;chunk: 9&lt;/code&gt;、&lt;code&gt;action_chunk: 36&lt;/code&gt;、两路 &lt;code&gt;valid_cam: [&apos;image&apos;, &apos;wrist_image&apos;]&lt;/code&gt;，以及 Stage 1 / 2 的学习率 $3e{-4}$ / $5e{-5}$。&lt;code&gt;data/libero_dataset.py&lt;/code&gt; 默认将 RGB key 后缀改为 &lt;code&gt;_mask&lt;/code&gt;；README 指出 &lt;code&gt;scripts/convert_libero_hdf5_to_lerobot.py&lt;/code&gt; 将实例分割映射为固定颜色的语义 mask。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 仓库没有随附完整数据和 checkpoint。复现实验还需 GE-Base 风格权重、LTX tokenizer/text encoder/VAE，以及包含 RGB 与 mask 字段的 LeRobot 数据集。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 仿真使用 LIBERO 四个 suite（每 suite 500 个评估 episode）和 RLBench 六任务（每任务 20 episodes）。真实系统为 Franka Emika Panda + 第三人称与 wrist 两台 Intel RealSense D435i；每个方法、每项任务均用 50 条示范 post-training。&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 四项实机任务是放置食物、开抽屉并放笔、倒水、把书放上架。其语义监督由 RoboEngine 离线标注，覆盖机械臂（含夹爪）及任务相关物体；推理依旧只看原始 RGB。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; LIBERO 平均成功率为 0.983，较 GE-ACT 的 0.965 提升 1.8 个百分点；在 long-horizon 的 LIBERO-10 为 0.960 vs. 0.944。&lt;/p&gt;
&lt;p&gt;| 方法                |   Spatial |    Object |      Goal | LIBERO-10 |      平均 |
| ------------------- | --------: | --------: | --------: | --------: | --------: |
| Cosmos + IDM        |     0.768 |     0.750 |     0.694 |     0.488 |     0.675 |
| Cosmos + Latent IDM |     0.948 |     0.992 |     0.892 |     0.842 |     0.919 |
| π0                  |     0.968 |     0.988 |     0.958 |     0.852 |     0.942 |
| GE-ACT              |     0.982 |     0.976 |     0.958 |     0.944 |     0.965 |
| MWM                 | &lt;strong&gt;0.988&lt;/strong&gt; | &lt;strong&gt;1.000&lt;/strong&gt; | &lt;strong&gt;0.982&lt;/strong&gt; | &lt;strong&gt;0.960&lt;/strong&gt; | &lt;strong&gt;0.983&lt;/strong&gt; |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; RLBench 六任务中 MWM 平均 68.3%，高于 FiS-VLA 的 50.0% 和 GE-ACT 的 30.8%；Umbrella Out、Frame off Hanger、Wine at Rack 分别达到 85%、75%、90%。Franka 四任务平均 67.5%，而 π0 与 GE-ACT 分别为 38.8%、23.8%；倒水任务中 MWM 为 60%，两个 RGB 基线为 5% / 10%。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 三种 mask 设计区分了收益来源：MWM-C1（显式未来 mask + IDM）平均 0.810；MWM-C2（直接接 predictive latent features 的 action diffusion）为 0.918；完整双视角 MWM 达 0.983。C1 相对 Cosmos + IDM 从 0.675 提升到 0.810。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 正文将 C2 的 RGB 对照写作 0.873→0.918，Table 1 的 Cosmos + Latent IDM 精确条目为 0.919；两者有 0.001 不一致，宜以表格为准。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 消融的要点不是“mask 必然最好”，而是仅改变预测表征已产生收益；直接让策略使用连续 feature bank 比“先生成 mask 图、再反推动作”更自然。C2 与 RGB latent baseline 的极小差异也说明相机设置和训练细节不可忽略。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 背景纹理、照明和物体颜色 shift 下，MWM OOD-SR 为 42.1%，优于 π0 的 19.2% 和 GE-ACT 的 12.5%；in-distribution SR 为 67.5%，保留率 $\mathrm{Retain}=\mathrm{OOD\text{-}SR}/\mathrm{SR}_{\mathrm{ID}}$ 为 0.62。随机视觉 token pruning 下，MWM nPAUC 为 0.648，略高于 GE-ACT 的 0.629。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; OOD-SR 的绝对值仍不高，背景扰动下 MWM 仅为 27.5%；token-pruning 的 0.019 nPAUC 优势也是温和证据。因此结论是“相对更鲁棒”，不是“已解决外观泛化”。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 操控主要取决于物体身份、相对布局与接触，而 RGB loss 对桌布花纹和高光同样敏感。预测语义 mask 强制 world model 做 task-relevant compression，把容量留给运动与交互；再让动作头读出该过程的 hidden states，使这个 bottleneck 能端到端适应控制。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 三个设计缺一不可：未来 mask 是预测 target；mask 不是线上输入；动作头读取预测过程的多层 features。前两点把语义知识蒸馏进 RGB-only policy，第三点避免把未来表征压成可能出错的显式图再二次处理。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;| 路线                  | 世界模型预测空间          | 部署是否需语义模型 | 控制使用什么                          |
| --------------------- | ------------------------- | ------------------ | ------------------------------------- |
| RGB video world model | RGB / photometric latent  | 否                 | RGB 预测特征或视频                    |
| 当前帧 grounding mask | 当前图像的显式 mask       | 通常需要           | mask 感知提示                         |
| MWM                   | 未来 semantic-mask latent | 否                 | 未来 mask dynamics 的 hidden features |&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 方法假定语义分区覆盖了任务决定因素。若成功取决于未标注的液体量、柔性形变、透明物边界、受力，或语言指令要求识别纹理文字，过强的几何 bottleneck 可能丢失必要信息。&lt;/p&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文未单列 Limitations 章节。其明确边界是：mask 监督离线产生；实机只覆盖四项桌面任务、每项 50 条示范；visual shift 集中于背景、照明与物体颜色；随机 token pruning 是评估压力测试而非方法贡献。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;离线 mask 的获得仍有成本。仿真可直接渲染，实机依赖 RoboEngine；类别定义变化或标注遗漏会限制扩展。&lt;/li&gt;
&lt;li&gt;去外观化存在任务依赖性；材质、文字、液面、可变形物或透明反光物的外观可能正是行动所需信息。&lt;/li&gt;
&lt;li&gt;实机对比规模较小且未报告误差条；RLBench 只覆盖六个任务，不能直接外推为开放世界通用能力。&lt;/li&gt;
&lt;li&gt;成本较高：论文报告每 suite 需 8×A100 80GB 约五天的两阶段训练。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; MWM 把问题指向一个更普适的方向：robot world model 不一定要模拟全部可见细节，更应预测 action-sufficient future representation。下一步可以自动发现而非人工指定这种表征；在任务需要时保留材质/文字等 appearance；并把预测不确定性显式交给规划器，让“看不清、预测不稳”触发更保守的动作。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/71849616_p0.1sfmv9l9of.webp"/><enclosure url="https://pic.hana0721.top/71849616_p0.1sfmv9l9of.webp"/></item><item><title>LingBot-VA 2.0 论文精读：原生视频-动作预训练如何服务通用机器人控制</title><link>https://agusexp25.top/blog/paper-deep-dive-lingbot-va-2</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-lingbot-va-2</guid><description>精读 LingBot-VA 2.0：以语义视觉-动作 tokenizer、因果 MoE DiT、Multi-Chunk Prediction 与异步闭环推理，实现可泛化的 video-action robot control。</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-lingbot-va-2/framework.26m7vrtpfv.webp&quot; alt=&quot;LingBot-VA 2.0 overview from paper Figure 2&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; LingBot-VA 2.0 不把通用视频生成器事后“改成”策略，而是原生预训练 video-action foundation model：语义视觉-动作 tokenizer 将状态与动作对齐到共享 latent，因果 DiT 同时预测未来视觉与动作，部署时又用 Foresight Reasoning 将预测计算与真实执行重叠。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;提出 native video-action pretraining：因果地从零训练完整 stack，避免双向 video backbone 改成因果控制器时的灾难性遗忘。&lt;/li&gt;
&lt;li&gt;用 semantic visual-action tokenizer 同时做视觉语义对齐和无动作标注视频的 latent-action 学习。&lt;/li&gt;
&lt;li&gt;在 video stream 使用 sparse MoE，并用 Multi-Chunk Prediction（MCP）迫使表示预测更远未来的动力学。&lt;/li&gt;
&lt;li&gt;以人类视频作 in-context demonstration，以 human-robot co-training 增加可扩展的 embodiment 数据。&lt;/li&gt;
&lt;li&gt;结合 Foresight Reasoning、consistency distillation 与部署优化，把异步控制频率由 35 Hz 提升至 225 Hz。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; VLA 往往直接学 $o_t,c\mapsto a_t$；video-action model 则联合学习“未来会看见什么”及“什么动作导致这个未来”。前者从图文预训练继承语义，后者能把连续时间、几何和接触的视觉动力学变成密集监督。&lt;/p&gt;
&lt;p&gt;现有 video-action 方法常从面向数字内容生成的 VAE 和双向 video diffusion backbone 出发，再加动作分支。论文指出三种错配：重建 VAE 优化外观而非物理语义；高维 latent 和多步 diffusion 推理难以高频闭环；web video 的通用生成目标没有显式编码动作导致的状态变化。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 本文的主张不只是“视频先验有用”，而是要求&lt;strong&gt;表示、时间因果性、计算容量和运行时调度&lt;/strong&gt;都与控制一致。因此 tokenizer 与异步执行并非外围工程，而被纳入 policy 的设计边界。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 将时间压缩后的视觉表示记为 $z_{0:N}$，低层控制按相邻 visual latent 的转移聚成 action chunk：&lt;/p&gt;
&lt;p&gt;$$
a_t=u_{tf_t:(t+1)f_t-1},\qquad t=0,\ldots,N-1,
$$&lt;/p&gt;
&lt;p&gt;其中 $f_t$ 是 tokenizer 时间下采样率。模型的因果分解是：&lt;/p&gt;
&lt;p&gt;$$
p_\theta(z_{1:N},a_{0:N-1}\mid z_0)=\prod_{t=0}^{N-1}
p_\theta(z_{t+1}\mid z_{\le t},a_{&amp;#x3C;t})
p_\theta(a_t\mid z_{\le t},a_{&amp;#x3C;t},z_{t+1}).
$$&lt;/p&gt;
&lt;p&gt;前一项以历史和过去动作预测下一状态；后一项是 inverse dynamics，在给定状态转移后解码本 chunk 动作。$a_t$ 不是单个电机命令，而是一段与一个 visual transition 对齐的动作块。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 高层 VLM planner 把长目标变为结构化子任务；semantic tokenizer 将图像、机器人视频和 human-video prompt 映射为 visual/action latent；因果 Mixture-of-Transformers（MoT）共享 attention、分别预测视觉与动作。MCP 在训练时增加远期监督，Foresight Reasoning 在部署时将其接入真实闭环。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-lingbot-va-2/vae.4xva3uftlk.webp&quot; alt=&quot;LingBot-VA 2.0 semantic visual-action tokenizer from paper Figure 3&quot;&gt;&lt;/p&gt;
&lt;h4&gt;Semantic visual-action tokenizer&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; ViT autoencoder 对视频 $o_{1:T}$ 将首帧按 $16\times16$ patch、后续帧按 $4\times16\times16$ tubelet 编码；帧内是 full attention，跨帧是 causal attention。除重建外，冻结的 Perception Encoder $G$ 提供 clip-level semantic alignment。&lt;/p&gt;
&lt;p&gt;冻结 visual tokenizer 后，inverse dynamics model（IDM）从连续 $z_t,z_{t+1}$ 压缩出 latent action $\ell_t$；forward dynamics model（FDM）以 transport map 与 residual 重建下一 latent。因此没有动作标签的 web video 也会成为 action-relevant 表示学习数据。&lt;/p&gt;
&lt;h4&gt;Causal MoT、MoE 和层次上下文&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; video 与 action 分别有前馈 expert，却共享 causal self-attention；video expert 使用 sparse MoE，action expert 保持 dense。主模型有 30 个 blocks、2048 维 video hidden state、768 维 action hidden state、128 个 routed SwiGLU experts 和 top-8 routing；二者在 3072 维 joint attention space 交互。&lt;/p&gt;
&lt;p&gt;planner 约以 2 Hz 后台运行，将 &lt;code&gt;done&lt;/code&gt;、&lt;code&gt;instruction&lt;/code&gt;、&lt;code&gt;generation_instruction&lt;/code&gt;、&lt;code&gt;local_scene_description&lt;/code&gt; 写入共享 buffer。低层 policy 在 action-chunk 边界读取后三个字段，故 planner 的低频和 latency 不会阻塞控制。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 容量被非对称地分配给承载复杂动力学的 video stream，而共享 attention 保留“动作是视觉转移解释”的耦合；这样比把两个完全独立的预测器拼接更易共同受益于长视频表征。&lt;/p&gt;
&lt;h4&gt;MCP、ICL 和 human-robot co-training&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-lingbot-va-2/mcp.45iem3z7ym.webp&quot; alt=&quot;LingBot-VA 2.0 Multi-Chunk Prediction from paper Figure 4&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; MCP 从 main DiT 的特征同时预测后面 1--3 个视觉 chunks，loss 权重为 $(0.5,0.2,0.1)$。它只在训练时使用，通常可在部署时删除。&lt;/p&gt;
&lt;p&gt;human-video ICL 将语义一致、但场景/视角/对象实例可不同的演示编码为 $z_{\mathrm{icl}}$，将其作为每个 robot chunk 可见的 task prompt。human-robot co-training 则把手的 6-DoF pose 和从手指关节导出的夹爪开度重定向为统一动作布局；world model 共享，动作 encoder/decoder 由人类或机器人本体分别拥有。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;p&gt;视觉 tokenizer 的联合目标为：&lt;/p&gt;
&lt;p&gt;$$
\mathcal L_{\mathrm{vis}}=
\underbrace{\lambda_1\lVert o-\hat o\rVert_1+
\lambda_{\mathrm{perc}}\mathcal L_{\mathrm{perc}}+
\lambda_{\mathrm{gan}}\mathcal L_{\mathrm{gan}}}&lt;em&gt;{\mathcal L&lt;/em&gt;{\mathrm{rec}}}
+\lambda_{\mathrm{align}}
\left\lVert\operatorname{avg}(W_{\mathrm{align}}z)-\operatorname{avg}(G(o))\right\rVert_2^2.
$$&lt;/p&gt;
&lt;p&gt;这里 $W_{\mathrm{align}}$ 将 latent 投影到教师特征空间，$\operatorname{avg}$ 是 temporal average pooling。它在保持视觉细节的同时将 latent 拉向 foundation model 的语义。&lt;/p&gt;
&lt;p&gt;latent action 与其前后向一致性为：&lt;/p&gt;
&lt;p&gt;$$
\ell_t=q_\phi(z_t,z_{t+1}),\qquad
\hat z_{t+1}=f_\psi(z_t,\ell_t)=K_tz_t+\delta_t,
$$&lt;/p&gt;
&lt;p&gt;$$
\mathcal L_\ell=\sum_t\left\lVert\hat z_{t+1}-z_{t+1}\right\rVert_2^2+
\left\lVert\hat z_t-z_t\right\rVert_2^2.
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; $d_\ell\ll\dim(z_t)$ 的瓶颈避免 $\ell_t$ 复制完整状态；$K_t$ 负责 token 间的信息搬运，$\delta_t$ 解释纯 transport 无法表达的变化。&lt;/p&gt;
&lt;p&gt;对 hidden token $h$，MoE 的输出为：&lt;/p&gt;
&lt;p&gt;$$
\operatorname{MoE}(h)=E_{\mathrm{shared}}(h)+
\sum_{i\in\mathcal R(h)}\alpha_i(h)E_i(h),\qquad
\alpha_i(h)=\gamma\frac{r_i(h)}{\sum_{j\in\mathcal R(h)}r_j(h)}.
$$&lt;/p&gt;
&lt;p&gt;其中 $r_i(h)=\sigma(g_i^\top h)$ 为 router score，$\mathcal R(h)$ 是 group-limited top-$k$ expert 集合，$\gamma$ 为缩放系数。论文用 auxiliary-loss-free balancing 根据实际 token load 更新 selection bias，而不是给主 diffusion loss 添加额外均衡梯度。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 先训练 tokenizer，后在共享 latent 空间预训练 causal video-action model。后阶段并非严格串行 curriculum：T2I、T2V、TI2VA、ICL、HCT 五个任务持续共同优化，只改变采样比例；早期偏 T2I、中期偏 T2V、后期偏 video-action，保留较小的早期任务比例防止遗忘。&lt;/p&gt;
&lt;p&gt;主目标采用 rectified-flow / flow-matching MSE。chunk size 每步在 1--4 latent frames 之间重采样，attention window 在 1--64 chunks 间变化；以 0.5 概率为历史加小噪声，缓解 autoregressive exposure bias。优化器为 Muon（Transformer block 内二维权重，lr $2\times10^{-3}$）和 AdamW（其余参数，lr $10^{-4}$）的混合，warm-up 2000 steps，global gradient norm clip 为 1。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-lingbot-va-2/async.3gp523bp3h.webp&quot; alt=&quot;LingBot-VA 2.0 Foresight Reasoning from paper Figure 5&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Foresight Reasoning 同步维持 execution stream 与 prediction stream。机器人执行 $a_t$ 时，模型从真实观测已校正的 cache $C_t$ 出发，先基于当前动作预测 $\hat z_{t+1}$，再以它预取 $a_{t+1}$；真实 $o_{t+1}$ 到达后会被编码为 $z_{t+1}$ 并覆盖 cache 中的 imagined latent。即在隐藏预测延迟的同时避免持续自回归变为 open loop。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; post-training 把 video 5-step、action 10-step 的 PF-ODE sampler distill 到各 2 steps，并结合 FP8 TensorRT、paged/ragged KV cache、FlashInfer attention plugin 和 runtime caching。论文报告异步 chunk latency 从 BF16 PyTorch baseline 的 927 ms 下降至 142 ms；每个 chunk 含 32 个低层控制步。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方项目页为 &lt;a href=&quot;https://technology.robbyant.com/lingbot-va-v2&quot;&gt;LingBot-VA 2.0&lt;/a&gt;。截至本文撰写时，论文 arXiv 页面、论文源码和项目页均未提供 LingBot-VA 2.0 的训练/推理公开仓库。因此不能将文中的 TensorRT、FlashInfer、FSDP、Muon 或 planner 写成可核验的具体文件和配置。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 本文对架构和超参数只以论文为据。特别是 225 Hz 依赖专门的 FP8 编译与运行时优化，不能由模型参数规模推断为任意 PyTorch 环境可复现的吞吐。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; RoboTwin 2.0 双臂 benchmark 使用 2,500 条 clean demonstrations（50/task）和 25,000 条 domain-randomized demonstrations（500/task）进行多任务训练，比较 X-VLA、$\pi_{0.5}$、Motus 与 LingBot-VA。&lt;/p&gt;
&lt;p&gt;real-world benchmark 包括 Fruit Sorting、Pen Collection、Drawer Tidying、Plate Handover；每任务 20 条 teleoperated demonstrations，训练的是一个跨任务 generalist policy。ICL 实验以四个已见盘子放置任务、每任务 15 条 demonstrations 微调，再测试人类 reference video 对未见对象—目标组合的迁移。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-lingbot-va-2/manipulation_bar.3nscxixun6.webp&quot; alt=&quot;LingBot-VA 2.0 real-world results from paper Figure 7&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; RoboTwin success rate（%）为：&lt;/p&gt;
&lt;p&gt;| 方法           |    Clean | Randomized |     Avg. |
| -------------- | -------: | ---------: | -------: |
| X-VLA          |     72.9 |       72.8 |     72.9 |
| $\pi_{0.5}$    |     82.7 |       76.8 |     79.8 |
| Motus          |     88.7 |       87.0 |     87.9 |
| LingBot-VA     |     92.9 |       91.6 |     92.2 |
| LingBot-VA 2.0 | &lt;strong&gt;93.8&lt;/strong&gt; |   &lt;strong&gt;93.4&lt;/strong&gt; | &lt;strong&gt;93.6&lt;/strong&gt; |&lt;/p&gt;
&lt;p&gt;相对 $\pi_{0.5}$ 的平均提升为 13.8 points，相对上一代 LingBot-VA 为 1.4 points（均按表中四舍五入值计算）。真实机器人柱状图中，LingBot-VA 2.0 在四个任务的 success rate 与 progress rate 都高于图示的 LingBot-VA 1.0、$\pi_{0.5}$；正文未提供柱状图的原始精确数值，故不将视觉读数写成精确百分比。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在相同 1.3B video-action architecture 与 token budget 下，语义 tokenizer 相比 WAN2.2 VAE 的 RoboTwin 结果为：&lt;/p&gt;
&lt;p&gt;| 指标              | WAN2.2 VAE Easy / Hard | 本文 tokenizer Easy / Hard |
| ----------------- | ---------------------: | -------------------------: |
| Horizon 1 average |            81.1 / 78.4 |            &lt;strong&gt;86.2 / 83.1&lt;/strong&gt; |
| Horizon 2 average |            75.5 / 73.9 |            &lt;strong&gt;85.7 / 84.0&lt;/strong&gt; |
| Horizon 3 average |            67.2 / 68.0 |            &lt;strong&gt;92.0 / 85.4&lt;/strong&gt; |
| 50 tasks average  |            78.0 / 76.0 |            &lt;strong&gt;86.6 / 83.1&lt;/strong&gt; |&lt;/p&gt;
&lt;p&gt;MCP 消融在 12 fps 和 50 fps 都更快收敛、最终更高。在 50 fps randomized setting，MCP 5k steps 时领先 29.7 points，且用 20k steps 达到 baseline 45k steps 的精度，即约 $2.3\times$ 训练加速。&lt;/p&gt;
&lt;p&gt;推理优化的累积结果为：927 ms / 35 Hz（BF16 PyTorch），466 ms / 69 Hz（+ consistency distillation），369 ms / 87 Hz（+ compiled low precision），272 ms / 118 Hz（+ long-horizon attention），最终 142 ms / 225 Hz（+ runtime overhead reduction）。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; ICL 只训练四个见过的物体—盘子任务后，给定 human reference video 和当前机器人观察，可展示把 calabash 放到 green plate、把 white paper cup 放到 silver plate 等未见组合；论文将其作为定性 rollout 展示，未报告该设置的汇总成功率。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 它泛化的是 procedure 和组合关系，并非无条件解决所有物理差异。human video 给出比语言更细的时序提示，但落地仍要依赖当前 robot observation 及本体专属动作接口。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; tokenizer 将“可重建”扩展为“语义对齐、可由状态转移解释”；因果训练使 offline pretraining 的依赖结构与 online control 对齐；MCP 使当前表示必须容纳更远的因果后果，而非靠局部外观复制下一帧。Foresight 的价值则不只是并行，而是用真实 observation 周期性切断预测误差链。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 语义视觉-动作 tokenizer、从头 causal video-action DiT、sparse MoE video stream、MCP、human-video ICL/human-robot co-training 与 Foresight Reasoning 构成完整的 native stack；作者的贡献在于把这些围绕 embodied control 的需求一起设计。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;| 维度       | 通用视频生成器再适配            | LingBot-VA 2.0                                   |
| ---------- | ------------------------------- | ------------------------------------------------ |
| tokenizer  | 像素/感知重建                   | 重建 + 语义对齐 + latent action                  |
| 时间结构   | 常见先双向预训练、再改因果      | 从头因果预训练                                   |
| 可扩展监督 | 主要依赖 robot action data      | web image/video、latent action、robot/human data |
| 长程信号   | next chunk 易被外观连续性解决   | MCP 监督 1--3 个未来 chunks                      |
| 实时闭环   | 串行生成或持续 imagined rollout | 预测/执行重叠，真实观察重落地                    |&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 它假设被动视频中由 IDM/FDM 提取的 latent transition 接近控制相关 action，semantic alignment 不会丢失触觉或力控关键信息，手到夹爪的重定向保留跨本体语义，且真实 observation 足够及时地修正 cache。面对强接触、不可观测状态、视觉遮挡或高系统延迟，这些假设会更脆弱。&lt;/p&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; planner 和 policy 仍是分开训练、通过固定接口耦合；latent action 来自被动视频，交互或 reinforcement signal 可能更贴近控制；还需扩展预训练数据、sparse backbone 与本体种类，当前重点是双臂操作。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 15.3B 总参数模型的 225 Hz 来自重型硬件/编译栈，且本版尚无官方公开代码，外部复核较困难。相对上一代 1.4 points 的 RoboTwin 增益也应与新增系统复杂度一同看待。最后，重落地能纠正可见的状态误差，却无法观测抓取滑移、力或被遮挡物体的内部状态。&lt;/p&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这篇论文的启发不是单纯“给 policy 加 MoE”，而是将 action representation、world modeling 与运行时调度放进同一训练—部署闭环。值得检验的下一步包括：把 tactile/force 也做成可预测、可重落地的 latent；让 planner boundary 与 MCP horizon 联合优化；在多本体、latency-matched 的公开 benchmark 上同时报告 active parameters、端到端延迟、能耗和成功率。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/94819769_p0_master1200.4xv4u7folx.webp"/><enclosure url="https://pic.hana0721.top/94819769_p0_master1200.4xv4u7folx.webp"/></item><item><title>LingBot-VA 论文精读：用因果世界模型驱动机器人控制</title><link>https://agusexp25.top/blog/paper-deep-dive-lingbot-va</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-lingbot-va</guid><description>精读 LingBot-VA：将视频世界建模与逆动力学动作生成交织为因果自回归序列，并以 MoT、KV Cache、部分去噪和 FDM 校正实现长时程闭环操控。</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;论文名称&lt;/strong&gt;：《Causal World Modeling for Robot Control》&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;作者&lt;/strong&gt;：Lin Li、Qihang Zhang、Yiming Luo、Shuai Yang、Ruilin Wang、Fei Han、Mingrui Yu、Zelin Gao、Nan Xue、Xing Zhu、Yujun Shen、Yinghao Xu&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;会议 / 期刊&lt;/strong&gt;：arXiv 预印本（v2，2026）&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;论文链接&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2601.21998&quot;&gt;arXiv&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;代码链接&lt;/strong&gt;：&lt;a href=&quot;https://github.com/robbyant/lingbot-va&quot;&gt;robbyant/lingbot-va&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;项目主页&lt;/strong&gt;：&lt;a href=&quot;https://technology.robbyant.com/lingbot-va&quot;&gt;LingBot-VA&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-lingbot-va/framework2-crop.8vnnkipamo.webp&quot; alt=&quot;LingBot-VA 视频—动作统一框架（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; LingBot-VA 不把策略视为“当前图像直接映射当前动作”的反应式函数。它先在 latent space 预测未来视觉状态，再根据这段视觉转变反推出动作；video token 和 action token 交错进入同一条因果自回归序列，用 autoregressive diffusion 联合生成。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;提出 video-action world model：以因果自回归方式联合建模未来视频 latent 与动作，不把长轨迹拆成彼此失忆的独立 chunk。&lt;/li&gt;
&lt;li&gt;设计非对称 Mixture-of-Transformers（MoT）：大视频流继承 Wan2.2-5B 的视觉生成先验，小动作流专门处理低维控制，同时用 attention 交互。&lt;/li&gt;
&lt;li&gt;用 Noisy History Augmentation 支持视频 latent 的部分去噪，并以 KV cache 和 FDM-grounded asynchronous inference 降低部署延迟、回接真实反馈。&lt;/li&gt;
&lt;li&gt;在 RoboTwin 2.0、LIBERO 与六项真实任务上评估长时程、精确、柔性物体操作、低样本适应和新配置泛化。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 创新不只是给 VLA 加一个视频 auxiliary loss，而是把动作定义成“预测视觉转变的 inverse dynamics 输出”。视频预训练获得的物理先验因此是动作生成的条件，而不是训练后可有可无的旁路特征。&lt;/p&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 常规 VLA 往往学习 $a_t\sim\pi_\theta(\cdot\mid o_t)$，让一个网络用机器人示范同时掌握视觉语义、物理动态和控制。论文将这一瓶颈称为 representation entanglement：动作监督相对稀疏，很难独自支撑高维视觉动态的学习。&lt;/p&gt;
&lt;p&gt;已有 world-model 路线包括交互式 neural simulator、按 chunk 生成视频—动作片段的 diffusion policy、以及先生成视觉子目标再由 policy 执行的两阶段方法。&lt;strong&gt;【Paper】&lt;/strong&gt; 作者认为前两类在闭环控制中会遭遇 reactivity gap、跨 chunk 的有限记忆，以及 chunk 内双向 attention 的因果不一致。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这篇工作的主张不是“画面越逼真，机器人越强”，而是需要对 action 有用、可由真实反馈反复修正的 future latent。由此也能理解：推理可让视频仅部分去噪，但动作仍需完整 flow integration。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在部分可观测操作中，机器人接收视觉观测 $o_t\in\mathcal O$、执行 $a_t\in\mathcal A$，并得到 $o_{t+1}$。作者将直接策略改写为 visual dynamics 与 inverse dynamics：&lt;/p&gt;
&lt;p&gt;$$
o_{t+1}\sim p_\theta(\cdot\mid o_{\le t}),\qquad
a_t\sim g_\psi(\cdot\mid o_t,o_{t+1}).
$$&lt;/p&gt;
&lt;p&gt;模型实际使用带历史的版本：&lt;/p&gt;
&lt;p&gt;$$
z_{t+1:t+K}\sim p_\theta(\cdot\mid z_{\le t},a_{&amp;#x3C;t}),\qquad
a_{t:t+K-1}\sim g_\psi(\cdot\mid\hat z_{t+1:t+K},z_{\le t},a_{&amp;#x3C;t}).
$$&lt;/p&gt;
&lt;p&gt;其中 $z_t=E(o_t\mid o_{&amp;#x3C;t})$ 为 causal video VAE latent，$\hat z$ 是想象的未来，$K$ 是一次预测的视觉 chunk。&lt;strong&gt;【Paper】&lt;/strong&gt; 论文将动作历史也作为 world dynamics 的输入，因为绝对 EEF pose 等动作包含 embodiment 过往构型和交互轨迹。&lt;/p&gt;
&lt;p&gt;| 输入 / 输出        | 内容                      | 用途                             |
| ------------------ | ------------------------- | -------------------------------- |
| $z_t$              | 多视角观测的 video latent | 表达视觉状态与环境动态           |
| $a_t$              | 机器人动作 / action token | 表达执行器运动和控制结果         |
| $c$                | T5 编码的指令             | 通过 cross-attention 规定任务    |
| $\hat z_{t+1:t+K}$ | 预测的未来视觉状态        | 为 inverse dynamics 提供目标转变 |&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-lingbot-va/framework2-crop.8vnnkipamo.webp&quot; alt=&quot;LingBot-VA 的 video stream 与 action stream 交错数据流（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; prompt 经语言编码器进入 transformer；图像经 Wan2.2 causal VAE 变为 video latent，连续动作经轻量 MLP 变为 action embedding。二者按时间交错后进入 MoT：video stream 用 flow matching 预测未来 latent，action stream 则根据该视觉转变、历史和指令生成动作；每轮执行后，真实观测重新进入上下文。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 视频以 $\tau=4$ 进行时间稀疏化，每个视频帧关联 $\tau$ 个连续动作，序列是 $[z_t,a_{t,1},\ldots,a_{t,\tau},z_{t+1},\ldots]$。预测 $K$ 个视觉帧因此对应 $\tau K$ 个高频动作，而不等价于用低帧率视频控制机器人。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;Causal video latent 与统一动作表示&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Wan2.2 causal VAE 使用 $4\times16\times16$ 时空压缩，再经过 patchify；拼接多路视角后，每帧有 $N=192$ 个空间 token。动作统一为每臂的 7 维 EEF pose、最多 7 维 joint 与 1 维 gripper，总计 30 维；缺失关节补零，并按训练集做逐维 quantile normalization。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;wan_va/dataset/lerobot_latent_dataset.py&lt;/code&gt; 读取 LeRobot episode 中预提取的 &lt;code&gt;latents/&lt;/code&gt;，将相机 latent 拼接；&lt;code&gt;_action_post_process&lt;/code&gt; 对动作按 latent frame 对齐、填充并依据 &lt;code&gt;inverse_used_action_channel_ids&lt;/code&gt; 保留当前 embodiment 的有效维度。RoboTwin 配置使用三路相机，LIBERO 使用两路。&lt;/p&gt;
&lt;h4&gt;非对称 MoT&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; video stream 从 Wan2.2-5B 初始化，宽度 $d_v=3072$、30 层；action stream 层数相同但宽度 $d_a=768$，总模型约 5.3B。每一层为两种 token 使用不同 QKV 投影；action 表示先投到视频维度参加联合 self-attention，再残差投回动作维度，最后线性映射回低维动作。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;wan_va/modules/model.py&lt;/code&gt; 的 &lt;code&gt;WanTransformer3DModel&lt;/code&gt; 默认 &lt;code&gt;action_dim=30&lt;/code&gt;，具有 &lt;code&gt;action_embedder&lt;/code&gt;、独立 &lt;code&gt;condition_embedder_action&lt;/code&gt; 与 &lt;code&gt;action_proj_out&lt;/code&gt;。其 &lt;code&gt;forward_train&lt;/code&gt; 把 noisy / condition 的 video 和 action token 拼接后共同前向，并返回两种预测。&lt;/p&gt;
&lt;h4&gt;动作流初始化&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 随机初始化动作网络时，动作和视频输出分布不匹配，会破坏联合 attention。论文将预训练视频权重插值到动作宽度，再乘以&lt;/p&gt;
&lt;p&gt;$$
\alpha=\sqrt{d_v/d_a}
$$&lt;/p&gt;
&lt;p&gt;以保持输出方差。&lt;strong&gt;【Analysis】&lt;/strong&gt; 该操作没有增加表达能力，却是把大 video backbone 的先验稳定转交给新 action branch 的必要分布对齐。&lt;/p&gt;
&lt;h4&gt;Causal teacher forcing 与 Noisy History Augmentation&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-lingbot-va/attention_mask2-crop.3d5j4dh2mp.webp&quot; alt=&quot;统一视频—动作预训练的因果 attention mask（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 训练时将真实交错 trajectory 用作 teacher-forcing context，每个 token 只能 attend 到时间更早的 token，因此可在一次前向中并行优化所有时间步。以 $p=0.5$，视觉历史还会被扰动为：&lt;/p&gt;
&lt;p&gt;$$
\tilde z_{\le t}=(1-s_{\mathrm{aug}})\epsilon+s_{\mathrm{aug}}z_{\le t},
\quad s_{\mathrm{aug}}\sim U[0.5,1],\quad\epsilon\sim\mathcal N(0,I).
$$&lt;/p&gt;
&lt;p&gt;这使 action decoder 能从部分带噪的视频表示提取控制信息，测试时不必先将 video token 完全去噪。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Flow Matching 对数据 $x_1$ 与噪声 $\epsilon$ 采用路径 $x^{(s)}=(1-s)\epsilon+s x_1$，目标速度是 $\dot x^{(s)}=x_1-\epsilon$：&lt;/p&gt;
&lt;p&gt;$$
\mathcal L_{\mathrm{FM}}=
\mathbb E_{s,\epsilon,x_1}\left[\left|v_\theta(x^{(s)},s)-\dot x^{(s)}\right|^2\right].
$$&lt;/p&gt;
&lt;p&gt;视频 dynamics 与 action inverse dynamics 分别遵循此目标，联合目标为：&lt;/p&gt;
&lt;p&gt;$$
\mathcal L=\mathcal L_{\mathrm{dyn}}+\lambda\mathcal L_{\mathrm{inv}},
$$&lt;/p&gt;
&lt;p&gt;$$
\mathcal L_{\mathrm{dyn}}=\mathbb E\left[\left|v_\theta(z_{t+1}^{(s)},s,\tilde z_{\le t},a_{&amp;#x3C;t}\mid c)-\dot z_{t+1}^{(s)}\right|^2\right],
$$&lt;/p&gt;
&lt;p&gt;$$
\mathcal L_{\mathrm{inv}}=\mathbb E\left[\left|v_\psi(a_t^{(s)},s,\tilde z_{\le t+1},a_{&amp;#x3C;t}\mid c)-\dot a_t^{(s)}\right|^2\right].
$$&lt;/p&gt;
&lt;p&gt;这里 $v_\theta$、$v_\psi$ 为视频 / 动作 vector field；$c$ 是指令；$\tilde z$ 是可带噪的历史；论文取 $\lambda=1$。&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;wan_va/train.py&lt;/code&gt; 用两套 &lt;code&gt;FlowMatchScheduler&lt;/code&gt; 对 latent 与 action 分别加噪，&lt;code&gt;compute_loss&lt;/code&gt; 对两项做 SNR-weighted MSE；action loss 额外受有效动作维度 mask 约束，最后直接相加反向传播。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 预训练汇集 Agibot、RoboMind、InternData-A1、OXE 的 OpenVLA 子集、UMI（不含 DexUMI）、RoboCOIN 及内部数据，约 16K 小时；每个来源按 90/10 切分训练 / 验证。设置为 1.4T token、AdamW 峰值学习率 $10^{-4}$、weight decay 0.01、cosine schedule、bf16、gradient clipping 2.0，文字 classifier-free dropout 为 0.1。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 训练随机采样 $K\in[1,4]$；报告的部署用 $K=4$，视频以 3 次 Euler step 积分至 $s=0.6$，动作以 10 次 step 积分至 $s=1.0$，video / action CFG 是 5.0 / 1.0。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 当前公开仓库提供 post-training 与 inference。&lt;code&gt;va_robotwin_train_cfg.py&lt;/code&gt; 默认 $10^{-5}$、50K steps、batch size 1；&lt;code&gt;va_libero_train_cfg.py&lt;/code&gt; 默认 5K steps、10 次 gradient accumulation。README 要求训练 checkpoint 的 &lt;code&gt;attn_mode&lt;/code&gt; 为 &lt;code&gt;flex&lt;/code&gt;，推理时改为 &lt;code&gt;torch&lt;/code&gt; 或 &lt;code&gt;flashattn&lt;/code&gt;。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-lingbot-va/async-crop.1764ilpewl.webp&quot; alt=&quot;同步、朴素异步与 FDM-grounded 异步控制对比（论文 Figure 4）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 基础推理缓存历史 token 的 key / value。每轮从噪声生成 $K$ 个未来视频 latent（仅部分去噪），再生成对应动作（完整积分）；机器人执行动作、接收真实图像并编码为新 $z$，再更新 cache。KV cache 避免重复计算，也保留了跨 chunk 的历史。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 异步控制中，机器人执行 $a_t$ 时后台生成下一 chunk。若直接基于旧视觉预测 $\hat z_t$ 续写 $\hat z_{t+1}$，会放大 stale forecast。FDM-grounded 方案使用最近真实反馈 $z_{t-1}$ 和当前执行动作 $a_t$ 前向预测 $z_t$，以反馈对齐的 latent 替代旧预测后再生成下一段；post-training 还加入 $\mathcal L_{\mathrm{fdm}}$。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 仓库实现为 server-client inference。RoboTwin 的 &lt;code&gt;eval_polict_client_openpi.py&lt;/code&gt; 获取 action、按 &lt;code&gt;action_per_frame&lt;/code&gt; 执行，得到关键帧后调用 &lt;code&gt;infer(..., compute_kv_cache=True, imagine=False, state=action)&lt;/code&gt; 更新 cache。配置与论文报告不同：RoboTwin 默认 &lt;code&gt;frame_chunk_size=2&lt;/code&gt;、video / action steps 25 / 50；LIBERO 为 4、20 / 50。应按模型 checkpoint 的实际 config 部署，不能把论文 3 / 10 step 直接视为仓库默认。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;| 论文概念                | 官方实现                                                                | 核对结果                                                                                       |
| ----------------------- | ----------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- |
| 统一 video-action MoT   | &lt;code&gt;wan_va/modules/model.py&lt;/code&gt; 的 &lt;code&gt;WanTransformer3DModel&lt;/code&gt;                    | 【Code】视频和动作有独立 embedding / output head，但在统一 transformer 前向内共同处理。        |
| LeRobot latent 管线     | &lt;code&gt;wan_va/dataset/lerobot_latent_dataset.py&lt;/code&gt;                              | 【Code】训练前须离线从视频抽取 &lt;code&gt;latents/&lt;/code&gt;，loader 再做多视角拼接、动作对齐、归一化与通道映射。 |
| 联合 flow matching      | &lt;code&gt;wan_va/train.py&lt;/code&gt; 的 &lt;code&gt;_add_noise&lt;/code&gt;、&lt;code&gt;compute_loss&lt;/code&gt;                       | 【Code】视频与动作各用 scheduler、SNR 权重 MSE，动作还使用 mask。                              |
| 分布式训练 / checkpoint | &lt;code&gt;wan_va/train.py&lt;/code&gt;、&lt;code&gt;wan_va/distributed/fsdp.py&lt;/code&gt;                         | 【Code】采用 FSDP；rank 0 以 diffusers 格式保存 transformer。                                  |
| 部署 / 评测             | &lt;code&gt;wan_va/wan_va_server.py&lt;/code&gt;、&lt;code&gt;evaluation/robotwin/&lt;/code&gt;、&lt;code&gt;evaluation/libero/&lt;/code&gt; | 【Code】模型服务器与仿真 client 分离；README 估计 RoboTwin 单卡 offload 评测约需 24GB VRAM。   |&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; RoboTwin 2.0 覆盖 50 项双臂任务，Easy 使用固定初始状态，Hard 随机化物体姿态与布局。训练使用每任务 50 条 clean 加每任务 500 条随机场景示范，合计 27,500 条；视频从 50 Hz 降至 12.5 Hz，动作维持 50 Hz，训练 50K steps、学习率 $10^{-5}$。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; LIBERO 的 Spatial、Object、Goal、Long 四个 suite 各含 10 个任务、每任务训练 50 条示范；每个 suite 以 3 个随机 seed、每 seed 500 次试验评测。真实部署评测 Make Breakfast、Pick Screws、Insert Tubes、Unpack Delivery、Fold Clothes、Fold Pants，每项以 50 条真实示范、500 steps、学习率 $10^{-4}$ 微调。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-lingbot-va/realworld_deployment-crop.4g58f9cwz3.webp&quot; alt=&quot;六项真实机器人操控任务的成功率与进度分数（论文 Figure 5）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; RoboTwin 50 任务平均成功率为 Easy 92.93%、Hard 91.55%，相对次优 Motus 高 4.2、4.6 个百分点；Horizon=3 时达到 93.22% / 93.28%，增益增至 8.2 / 9.1 个百分点。&lt;/p&gt;
&lt;p&gt;| 方法        | RoboTwin Easy | RoboTwin Hard | LIBERO Avg |
| ----------- | ------------: | ------------: | ---------: |
| $\pi_0$     |          65.9 |          58.4 |       94.1 |
| $\pi_{0.5}$ |          82.7 |          76.8 |          — |
| Motus       |          88.7 |          87.0 |          — |
| X-VLA       |          72.9 |          72.8 |       98.1 |
| LingBot-VA  |     &lt;strong&gt;92.93&lt;/strong&gt; |     &lt;strong&gt;91.55&lt;/strong&gt; |   &lt;strong&gt;98.5&lt;/strong&gt; |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; LIBERO 分项是 Spatial $98.5\pm0.3$、Object $99.6\pm0.3$、Goal $97.2\pm0.2$、Long $98.5\pm0.5$。论文的 SOTA 表述应在其选取的基线与协议下理解；其表中 Goal 的最高值实际是 OpenVLA-OFT 的 97.9。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 长 horizon 上的更大增益与“因果 cache + 真实回灌”叙事相一致，但不能仅据主结果断言收益完全来自记忆机制；数据规模、视频预训练和系统实现也共同变化。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-lingbot-va/loss_comparison-crop.83as2s8pqv.webp&quot; alt=&quot;不同动作网络初始化的训练动态（论文 Figure 6）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; RoboTwin Easy 的完整模型为 92.9；FDM-grounded async 为 90.4，而 naive async 为 74.3，Horizon=3 更降至 32.9。结论是并行化本身不足，必须用真实反馈对齐异步视觉预测。使用原始 Wan2.2-5B 直接 fine-tune 的基线为 80.6；随机初始化 action stream 的曲线梯度波动更大、收敛更慢，插值加缩放初始化最平稳。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-lingbot-va/generalization-crop.7p4cbx0f71.webp&quot; alt=&quot;新物体与 OOD 位置的泛化评测（论文 Figure 8）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 作者在“训练时仅见单一物体、测试换形状与纹理”和“训练时位置局部固定、测试随机特别是 OOD 区域”两个轴评估泛化，报告方法均优于比较对象。低数据分析中，10 条示范时该方法在 Make Breakfast progress score 比 $\pi_{0.5}$ 高 15.6 个百分点，在 RoboTwin Easy 高 10.3 个百分点。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 它同时解决了三个层次的问题：视频预训练提供物体与接触变化的表示；因果 attention 与 KV cache 让完整执行历史持续可用；部分去噪、异步执行、FDM 回锚共同把昂贵的生成过程变成可闭环使用的控制系统。缺少其中任一项，另两项也难以直接转化为实时机器人能力。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 最重要的组合是“video 先生成、action 由视觉转变反推，但两者不分离”。离线 video planner 会把误差单向传给 controller；普通 auxiliary video loss 则不能保证 action 真正以未来状态为条件。交错 token 和共享因果上下文让两条生成支路有共同的时间责任。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;| 路线                       | 未来状态的角色                 | 历史记忆                | 闭环校正                          |
| -------------------------- | ------------------------------ | ----------------------- | --------------------------------- |
| 反应式 VLA                 | 通常不显式预测                 | 有限 observation window | 读取当前图像                      |
| chunk diffusion            | 生成局部片段                   | chunk 边界易丢失        | 多在下一 chunk 回接               |
| video subgoal + controller | 外部中间目标                   | 两模块各自维护          | 依赖重规划频率                    |
| LingBot-VA                 | action inverse dynamics 的条件 | 因果 KV cache           | 每轮真实观测回灌，异步时 FDM 对齐 |&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 方法假设 video latent 含有足够的 action-relevant information，视觉与动作历史能近似恢复关键隐状态。若力觉、触觉、遮挡物体状态或精确 proprioception 是决定性信息，inverse dynamics 仍会多解；也假设 VAE 压缩和部分去噪不会删掉精密插装所需细节。&lt;/p&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文明确将大规模自回归 video-action 模型的 inference latency 视为部署障碍，即使有 KV cache 与部分去噪也需要异步预测 / 执行。作者还指出新平台需要少量 task-specific post-training 数据，示例是 50 demonstrations。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;成本高&lt;/strong&gt;：5.3B 模型、VAE 与多次 flow integration 仍然昂贵；官方 README 估计 RoboTwin 单卡 offload 评测约需 24GB VRAM。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;视觉盲区&lt;/strong&gt;：触觉、力觉和不可见状态未被显式建模，精细接触任务可能受限。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;异步仍依赖模型&lt;/strong&gt;：FDM 能修正 stale forecast，但面对执行器延迟、环境突变或模型外移动物体时，前向预测本身也可能出错。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;可复现边界&lt;/strong&gt;：官方仓库公开后训练、权重和部署代码，但默认 chunk / sampling steps 与论文报告不同；完整预训练数据与真实实验细节不能只靠当前仓库完全复现。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; LingBot-VA 提出一个直接的设计准则：world model 不必独立充当 planner；把预测状态变化作为 action model 的条件，可让 imagination 对控制拥有明确的学习责任。值得继续检验的方向包括：加入 tactile / force / proprioception 来增强 FDM 的反馈锚点；让模型估计未来 latent 的不确定性，并在不确定时动态缩短 chunk；以及探索统一动作接口在灵巧手、移动底盘和更多 embodiment 间的边界。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/93990522_p0_master1200.et40soxif.webp"/><enclosure url="https://pic.hana0721.top/93990522_p0_master1200.et40soxif.webp"/></item><item><title>LeRobot 论文精读：把机器人学习做成端到端开源基础设施</title><link>https://agusexp25.top/blog/paper-deep-dive-lerobot</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-lerobot</guid><description>精读 LeRobot：统一机器人中间件、LeRobotDataset、可异步推理栈与可复用策略实现，分析其如何降低真实机器人学习的工程门槛。</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;《LeRobot: An Open-Source Library for End-to-End Robot Learning》发表于 ICLR 2026。论文的对象不是某一个新的 VLA 或控制器，而是一套覆盖“电机通信 → 遥操作采集 → 数据存储/流式读取 → 策略训练 → 推理执行”的开源基础设施。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;作者&lt;/strong&gt;：Remi Cadene、Simon Aliberts、Francesco Capuano、Michel Aractingi、Adil Zouitine、Pepijn Kooijmans、Jade Choghari、Martino Russi、Caroline Pascal、Steven Palma、Mustafa Shukor、Jess Moss、Alexander Soare、Dana Aubakirova、Quentin Lhoest、Quentin Gallouédec、Thomas Wolf（Hugging Face 及合作机构）&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】核心贡献&lt;/strong&gt;：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;用 Python-native、可组合的 middleware 统一低成本机械臂、移动操作平台和 humanoid 的控制接口。&lt;/li&gt;
&lt;li&gt;提出可存储多路相机、状态、动作、任务文本和元数据的 &lt;code&gt;LeRobotDataset&lt;/code&gt;，并支持远程 streaming。&lt;/li&gt;
&lt;li&gt;提供覆盖 imitation learning、reinforcement learning 与 VLA 的 PyTorch 策略实现，以及可在远程机器运行的 asynchronous inference。&lt;/li&gt;
&lt;li&gt;通过 Hugging Face Hub 的公开数据和模型生态，形成“采集—训练—分享—复用”的闭环。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-lerobot/lerobot-figure1-crop.b9n37tken.webp&quot; alt=&quot;LeRobot end-to-end stack from paper Figure 1&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; LeRobot 的真正创新点是把机器人学习中经常被各实验室重复实现的“胶水代码”提升为公共抽象：研究者可以替换 robot、dataset 或 policy，而不必重写整条 pipeline。&lt;/p&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 经典机器人系统依赖显式模型（kinematics、contact model、planner 与 controller）的模块化流水线；它在结构化工厂环境中可靠，却难以覆盖家庭等非结构化场景。Robot learning 通过隐式模型直接学习 observation-to-action 映射，性能随数据和算力扩展，但引入了新的基础设施问题：不同机器人有不同 SDK，不同数据集使用 ROS bag、TFDS 或私有 JSON，策略实现和评测脚本也彼此割裂。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 低成本 teleoperation 硬件让分布式采集成为可能。SO-10X、ALOHA 等平台的成本远低于工业机械臂，社区可以贡献大量 demonstration；问题转而变成如何让这些异构数据可发现、可组合、可流式读取。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 因此 LeRobot 不是要取代 ACT、Diffusion Policy 或 Pi0，而是为它们提供共同的 data contract、robot contract 和 runtime contract。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-lerobot/sec2-robot-and-data-accessibility-crop.3d5j4fuwwf.webp&quot; alt=&quot;Open hardware and data accessibility from paper Figure 3&quot;&gt;&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 给定一个真实机器人及其传感器，系统需要支持以下闭环：&lt;/p&gt;
&lt;p&gt;| 环节 | 输入 | 输出 |
| --- | --- | --- |
| Control / middleware | 机器人配置、低层 SDK | 统一的 observation 与 action 接口 |
| Teleoperation | leader 状态、follower 状态、相机 | 专家轨迹 episode |
| Dataset | 多模态时间序列 | 可检索、可分享、可 streaming 的 &lt;code&gt;LeRobotDataset&lt;/code&gt; |
| Policy training | episode、任务文本、策略配置 | checkpoint 与 normalization stats |
| Inference | 实时 observation、策略 checkpoint | action chunk 及逐步执行的 action |&lt;/p&gt;
&lt;p&gt;机器人状态和动作的维度由 embodiment 决定；论文不假设统一的 action space。&lt;strong&gt;【Code】&lt;/strong&gt; 当前仓库通过 &lt;code&gt;Robot&lt;/code&gt;/&lt;code&gt;RobotConfig&lt;/code&gt; 注册不同硬件，并由 policy 的 &lt;code&gt;PolicyFeature&lt;/code&gt; 声明输入输出形状；因此扩展机器人主要是实现接口和特征映射，而不是修改训练器核心。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; LeRobot 的垂直集成由五层组成：硬件 middleware、数据采集与 &lt;code&gt;LeRobotDataset&lt;/code&gt;、策略模型、训练/评测脚本、推理 runtime。数据流可以概括为：&lt;code&gt;Robot/Teleoperator → processed observation-action → LeRobotDataset → Policy → action chunk → Robot&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 当前仓库将这些层分别组织在 &lt;code&gt;src/lerobot/robots&lt;/code&gt;、&lt;code&gt;src/lerobot/teleoperators&lt;/code&gt;、&lt;code&gt;src/lerobot/datasets&lt;/code&gt;、&lt;code&gt;src/lerobot/policies&lt;/code&gt;、&lt;code&gt;src/lerobot/scripts&lt;/code&gt; 与 &lt;code&gt;src/lerobot/async_inference&lt;/code&gt; 中。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;统一 Robot middleware&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：硬件配置、串口/网络地址、相机配置。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：标准化 observation；接收标准化 action 并发送给 follower。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;作用&lt;/strong&gt;：屏蔽 FeeTech、Dynamixel 等执行器 SDK 的差异。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;Robot&lt;/code&gt; 抽象提供 &lt;code&gt;connect&lt;/code&gt;、&lt;code&gt;get_observation&lt;/code&gt;、&lt;code&gt;send_action&lt;/code&gt;、&lt;code&gt;disconnect&lt;/code&gt; 等生命周期；&lt;code&gt;RobotConfig&lt;/code&gt; 通过 choice registry 注册具体平台。leader/follower 组合可直接用于 teleoperation。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;论文列举 SO-100/101、Koch-v1.1、ALOHA-2、Hope-JR、Stretch-3、LeKiwi 和 Reachy-2；&lt;strong&gt;【Code】&lt;/strong&gt; 截至当前 main 分支，README 还列出 OMX、EarthRover、OpenArm、Unitree G1、reBot B601 等，说明代码覆盖已超过论文统计快照。&lt;/p&gt;
&lt;h4&gt;LeRobotDataset&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：同步的 state/action、RGB/depth 相机帧、任务文本、FPS 和 embodiment 元数据。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：PyTorch &lt;code&gt;Dataset&lt;/code&gt; 或 &lt;code&gt;IterableDataset&lt;/code&gt; 样本。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;存储&lt;/strong&gt;：&lt;code&gt;data/**/*.parquet&lt;/code&gt; 保存表格状态，&lt;code&gt;videos/**/*.mp4&lt;/code&gt; 保存视频，&lt;code&gt;meta/info.json&lt;/code&gt;、&lt;code&gt;stats.json&lt;/code&gt;、&lt;code&gt;tasks.parquet&lt;/code&gt; 保存 schema、归一化统计与任务索引。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要&lt;/strong&gt;：把“不同机器人、不同相机、不同采样率”的数据变成可组合的统一 contract。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;LeRobotDataset&lt;/code&gt; 从本地目录或 Hugging Face Hub 加载数据；&lt;code&gt;StreamingLeRobotDataset&lt;/code&gt; 使用 &lt;code&gt;IterableDataset&lt;/code&gt;、有限长度 backtrack buffer 和 &lt;code&gt;torchcodec&lt;/code&gt; 按需解码远程视频，内存占用不再随 episode 总数线性增长。&lt;/p&gt;
&lt;h4&gt;策略与可复用 recipe&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文覆盖 ACT、Diffusion Policy、VQ-BET、HIL-SERL、TD-MPC、Pi0 与 SmolVLA 等范式，策略均以 PyTorch 实现，可从示教数据训练，也可直接加载 Hub 上的 checkpoint。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;PreTrainedPolicy&lt;/code&gt; 约定 &lt;code&gt;forward&lt;/code&gt;、&lt;code&gt;predict_action_chunk&lt;/code&gt; 和 &lt;code&gt;select_action&lt;/code&gt;。ACT、Diffusion、VQ-BeT、Pi0、SmolVLA 等策略用相同的 action-chunk 消费接口，训练器不需要知道每个模型的内部网络。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-lerobot/sec3-robot-learning-algos-crop.7ehiitz22x.webp&quot; alt=&quot;Robot learning algorithms supported by LeRobot&quot;&gt;&lt;/p&gt;
&lt;h4&gt;Asynchronous inference&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;物理解耦&lt;/strong&gt;：policy server 可以运行在有 GPU 的远程机器，robot client 只运行低层控制。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;逻辑解耦&lt;/strong&gt;：producer 预测未来 action chunk，consumer 以固定控制频率消费队列。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;重叠 chunk&lt;/strong&gt;：对相同 timestep 的动作调用可插拔聚合函数 &lt;code&gt;f&lt;/code&gt;；默认实现取最新动作，也可使用 weighted average。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;policy_server.py&lt;/code&gt; 负责 observation 到 chunk 的推理，&lt;code&gt;robot_client.py&lt;/code&gt; 的 &lt;code&gt;_aggregate_action_queues&lt;/code&gt; 合并时间戳重叠的 chunk，并通过 gRPC 传输。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-lerobot/sec3-async-inf-crop.9gxb6vxlje.webp&quot; alt=&quot;Asynchronous inference schema from paper Figure 6&quot;&gt;&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;数据样本与时间对齐&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 每一帧可以表示为&lt;/p&gt;
&lt;p&gt;$$
x_t = {o_t^{state},\ o_t^{image_1},\ldots,o_t^{image_m},\ a_t,\ task_t},
$$&lt;/p&gt;
&lt;p&gt;其中 &lt;code&gt;state&lt;/code&gt;、多路图像和 action 共享时间戳，&lt;code&gt;task&lt;/code&gt; 是可用于 language-conditioned policy 的文本元数据。对 action-chunk policy，模型输出&lt;/p&gt;
&lt;p&gt;$$
\hat a_{t:t+H-1}=\pi_\theta(o_{\le t}, task_t),
$$&lt;/p&gt;
&lt;p&gt;&lt;code&gt;H&lt;/code&gt; 是 look-ahead horizon，控制器再以固定频率执行其中的单步动作。&lt;/p&gt;
&lt;h4&gt;重叠 action 的聚合&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 对同一未来时刻收到的多个预测，系统计算&lt;/p&gt;
&lt;p&gt;$$
a_t=f\left(\hat a_t^{(1)},\hat a_t^{(2)},\ldots\right).
$$&lt;/p&gt;
&lt;p&gt;&lt;code&gt;f&lt;/code&gt; 可以是 latest、均值或任务定制的鲁棒聚合器。&lt;strong&gt;【Analysis】&lt;/strong&gt; 该抽象把“策略多久查询一次”和“机器人多久执行一次”解耦，是 LeRobot 面向慢速 VLA 的关键 runtime 设计。&lt;/p&gt;
&lt;h4&gt;Streaming 的内存边界&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;StreamingLeRobotDataset&lt;/code&gt; 只保留元数据、有限 backtrack/look-ahead 缓冲和当前视频解码帧；若缓冲上限为 &lt;code&gt;B&lt;/code&gt;，运行时缓存近似为 &lt;code&gt;O(B)&lt;/code&gt;，而不是完整数据集的 &lt;code&gt;O(N)&lt;/code&gt;。论文未给出统一的 &lt;code&gt;B&lt;/code&gt; 数值，因为它取决于 delta timestamp 和采样配置。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 训练器以 dataset、policy config 和 optimizer config 为输入，统一完成 batch 读取、预处理、loss 聚合、checkpoint 与评测。论文强调 recipe 可组合，而非规定单一损失：ACT 使用 L1+KL，Diffusion Policy 使用扩散目标，RL 策略使用各自的 critic/actor 目标。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;lerobot_train.py&lt;/code&gt; 创建 policy、dataloader 和 optimizer；dataset 的 &lt;code&gt;stats.json&lt;/code&gt; 用于 normalization，验证指标和 checkpoint 由统一 trainer 管理。当前仓库支持多 GPU/FSDP 配置，并在训练阶段区分 &lt;code&gt;forward&lt;/code&gt;（返回 loss）和推理阶段的 &lt;code&gt;select_action&lt;/code&gt;。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在线阶段，robot client 以控制频率读取 observation；policy server 预测长度为 &lt;code&gt;H&lt;/code&gt; 的 action chunk，并把带 timestep 的 chunk 送回 client。client 将 chunk 放入队列，聚合重叠预测后逐步发送给 follower。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 本地策略也遵循同一约定：&lt;code&gt;predict_action_chunk&lt;/code&gt; 产生 &lt;code&gt;[batch, horizon, action_dim]&lt;/code&gt;，&lt;code&gt;select_action&lt;/code&gt; 负责 action queue；ACT 在开启 temporal ensemble 时在线维护加权平均，Pi0/SmolVLA 等策略则按配置缓存 chunk。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;| 论文描述 | 官方代码位置 | 对照结论 |
| --- | --- | --- |
| 统一 middleware | &lt;code&gt;src/lerobot/robots/robot.py&lt;/code&gt;、各平台目录 | &lt;code&gt;Robot&lt;/code&gt; 生命周期接口与注册机制落地，硬件细节被隔离。 |
| 多模态数据格式 | &lt;code&gt;datasets/lerobot_dataset.py&lt;/code&gt;、&lt;code&gt;dataset_metadata.py&lt;/code&gt; | Parquet/MP4/JSON 元数据结构与论文一致。 |
| Streaming | &lt;code&gt;datasets/streaming_dataset.py&lt;/code&gt; | 通过 &lt;code&gt;IterableDataset&lt;/code&gt; 和 backtrack buffer 实现按需读取。 |
| 可复用 policy | &lt;code&gt;policies/pretrained.py&lt;/code&gt;、各 policy 子目录 | &lt;code&gt;forward&lt;/code&gt;/&lt;code&gt;predict_action_chunk&lt;/code&gt;/&lt;code&gt;select_action&lt;/code&gt; 形成统一策略 API。 |
| 异步推理 | &lt;code&gt;async_inference/policy_server.py&lt;/code&gt;、&lt;code&gt;robot_client.py&lt;/code&gt; | gRPC producer-consumer 与可插拔 chunk 聚合已实现。 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 论文统计的是 2025 年 9 月的生态状态，而当前 main 分支（代码提交时间 2026-08-25）已经新增更多 robot、policy 和仿真环境。因此代码适合说明架构演进，不应把 README 的最新清单当作论文实验结果。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文以真实机器人和社区 Hub 数据作为主要证据，统计 dataset、episode、下载量、模型上传/下载趋势，并在 MacBook M1、RTX 4090、A100 等平台测量策略显存和推理延迟。仿真侧提供 LIBERO 与 Meta-World 的统一评测接口；仿真主要用于系统化 benchmark，真实数据仍是核心训练来源。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 截至 2025 年 9 月，&lt;code&gt;LeRobotDataset&lt;/code&gt; 已有 16K+ 个公开数据集、2.2K+ 位贡献者。数据不仅来自原生支持的平台，Franka Panda、xArm、R1Pro 等机器人也被社区转换到统一格式，说明 schema 的价值超出硬件支持范围。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-lerobot/sec3-downloads_over_time_by_robot_type-crop.2a5ttjz3di.webp&quot; alt=&quot;Dataset downloads by robot type from paper Figure 4&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在策略生态中，轻量的单任务 ACT 因体积小、推理快、约 50 条轨迹即可起效而拥有最高上传/使用热度；SmolVLA 则通过语言条件获得更广的任务适用性。ACT 在 RTX 4090/A100 上约可达到 100–200 Hz，而较大的 &lt;code&gt;π_0&lt;/code&gt; 在低端设备上可能超过 5 秒超时。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-lerobot/sec3-models_uploaded_over_time_by_policy-crop.4g58fbqrv5.webp&quot; alt=&quot;Policy uploads over time from paper Figure 5&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 这篇工作没有针对单一模型的结构 ablation；主要对比的是系统设计的可扩展性：预加载 dataset 与 streaming dataset 的读取耗时、同步推理与异步 action-chunk 推理的 cycle time，以及不同 policy 的显存/延迟。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; streaming 在初始化后保持接近预加载格式的 steady-state 读取性能，同时把视频按需解码；异步推理的加速来自“计算下一段 chunk 与执行当前 chunk 重叠”，而非简单提高控制线程频率。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; generalization 体现在三个维度：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Embodiment&lt;/strong&gt;：同一 middleware 把低成本 arm、mobile manipulator 与 humanoid 接入共同 API。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Data&lt;/strong&gt;：schema 可以承载原生支持和社区转换的机器人配置，允许跨数据集混合。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Policy/runtime&lt;/strong&gt;：从单任务 ACT 到多任务 VLA，从本地 CPU/GPU 到远程 server，调用方只依赖统一的 action 接口。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这种 generalization 更像“接口层的可迁移性”，不是论文宣称某个策略在未见机器人上零样本成功；具体控制质量仍由 embodiment、数据和 policy 决定。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 机器人学习的瓶颈往往不是单个模型的表达能力，而是数据无法复用、控制循环被推理延迟阻塞、硬件接入成本过高。LeRobot 同时消除三类摩擦：统一 schema 让数据规模化，异步 runtime 让慢模型可部署，middleware 让同一训练代码跨机器人复用。三者叠加后，更多数据和更多算力才真正能转化为可重复实验。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;垂直整合而非单点算法&lt;/strong&gt;：把硬件、数据、policy 和部署放在同一个可组合抽象内。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Streaming-first 数据设计&lt;/strong&gt;：面向百万 episode 规模，避免“先下载完整数据集”成为实验门槛。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Runtime decoupling&lt;/strong&gt;：把 action prediction 与 control execution 在物理和逻辑上都解耦。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;开放生态作为系统组件&lt;/strong&gt;：Hub 上的数据集、checkpoint 和 dataset card 不是附属物，而是可复现训练闭环的一部分。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 与 ACT、Diffusion Policy 等“提出一个策略”不同，LeRobot 的评价对象是研究工作流：它不规定模型如何产生动作，而是规定模型如何被加载、训练、切换和执行。与 ROS 这类通用机器人 middleware 相比，LeRobot 更靠近 PyTorch training loop、dataset hosting 和 foundation-model inference，目标是减少 ML/robotics 之间的边界代码。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 社区愿意采用统一的 &lt;code&gt;LeRobotDataset&lt;/code&gt; 并上传公开数据。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 低成本硬件的可获得性足以支持分布式 teleoperation 采集。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 网络、时间同步和 action 聚合的质量足以让远程 inference 不破坏闭环稳定性。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 统一 API 能覆盖不同 embodiment 的关键差异；对于触觉、力控或高频实时控制，这一假设仍需额外验证。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; (1) 支持的机器人、gripper、sensor 和 controller 仍不完整；(2) robot learning algorithm 覆盖不全面；(3) 实际 inference 性能还缺少 quantization、graph compilation 等低层优化。作者把这些缺口视为适合社区贡献的路线图。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 首先，统一 schema 解决了“能否读取”，但不自动解决跨机器人 action semantics、坐标系和安全约束；混合数据前仍需 embodiment-aware processor。其次，streaming 把存储压力转成网络带宽和随机访问延迟，断网或高抖动环境下需要缓存策略。最后，异步 chunk 聚合可能平滑掉突发修正，安全关键任务仍需要 watchdog、限幅和低层 fallback。论文也没有给出在同一数据/硬件预算下各 policy 的严格端到端成功率对照。&lt;/p&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; LeRobot 提示一个容易被忽略的研究方向：机器人学习的“scaling law”不仅属于模型和数据，也属于基础设施。只有数据格式、采集工具、训练 recipe 和部署 runtime 同时标准化，新增数据和算力才会产生可累积的收益。&lt;/p&gt;
&lt;p&gt;对实践者而言，较稳妥的路线是先用 SO-10X 等低成本平台采集少量高质量 episode，借助 &lt;code&gt;LeRobotDataset&lt;/code&gt; 做可视化和统计，再从 ACT 等轻量策略开始；当任务需要语言条件或跨任务迁移时，再切换到 SmolVLA/Pi0，并用 asynchronous inference 把大模型放到远程 GPU。&lt;strong&gt;【Analysis】&lt;/strong&gt; 这不是“一个库解决所有机器人问题”，而是把最常见的工程分歧收敛成可替换的接口，让研究时间更多花在数据、目标和控制策略本身。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/133376054_p0_master1200.1ziuqmv790.webp"/><enclosure url="https://pic.hana0721.top/133376054_p0_master1200.1ziuqmv790.webp"/></item><item><title>Learning while Deploying 论文精读：让机器人群在部署中持续学习</title><link>https://agusexp25.top/blog/paper-deep-dive-learning-while-deploying</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-learning-while-deploying</guid><description>精读 LWD：用 DIVL 分布式价值学习与 QAM 流策略提取，把 16 台双臂机器人部署产生的离线与在线经验闭环用于通用 VLA 持续改进。</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;《Learning while Deploying: Fleet-Scale Reinforcement Learning for Generalist Robot Policies》提出 Learning While Deploying（LWD）。它研究的不是“如何把一个 specialist 任务做得更好”，而是：一个已经预训练好的 generalist VLA 在真实世界部署后，如何利用整个机器人 fleet 产生的异质经验继续变强，同时保留跨任务能力。&lt;/p&gt;
&lt;p&gt;论文的核心闭环是：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;离线数据初始化 → 16 台机器人部署 → 自动 rollout / 人工干预
       ↑                                      ↓
       └──── 混合 replay、DIVL + QAM 更新、周期性下发 ────┘
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-learning-while-deploying/teaser.45iem6dhyx.webp&quot; alt=&quot;LWD 的 fleet-scale deployment data flywheel（论文 teaser）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; LWD 最重要的转变是把 deployment 从评测终点改成持续产生训练信号的 data flywheel：离线 replay 负责稳定起步，在线 fleet replay 负责暴露分布偏移，而 DIVL 与 QAM 负责把稀疏结果转成对 flow-based VLA 可用的策略改进。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;提出面向 generalist VLA 的 fleet-scale offline-to-online RL 系统，在一套共享策略上同时训练八项真实操作任务。&lt;/li&gt;
&lt;li&gt;提出 Distributional Implicit Value Learning（DIVL）：学习 replay action-value 的分布，用 quantile 做 in-distribution TD bootstrap，并用分布熵自适应调节乐观程度。&lt;/li&gt;
&lt;li&gt;将 Q-learning with Adjoint Matching（QAM）用于 flow-based VLA 的 policy extraction，用 critic 的 action gradient 生成局部 flow 回归目标，避免穿过完整采样链路反传。&lt;/li&gt;
&lt;li&gt;在 16 台 Agibot G1 双臂机器人、8 项任务上验证；LWD Online 的整体平均分为 &lt;strong&gt;0.95&lt;/strong&gt;，长时程任务平均 step-wise score 为 &lt;strong&gt;0.91&lt;/strong&gt;。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 大规模 offline pretraining 让 VLA 获得了广泛先验，但部署环境不是固定测试集：物体实例、货架布局、用户指令、光照、接触状态和失败恢复都会发生变化。单次收集的 demonstration 很难覆盖这些 long-tail 情况。&lt;/p&gt;
&lt;p&gt;已有路线各自只解决了一部分问题：&lt;/p&gt;
&lt;p&gt;| 路线 | 能利用的数据 | 主要缺口 |
| --- | --- | --- |
| SFT / Behavior Cloning | 成功示教 | 失败、部分进度和稀有恢复通常被丢掉；长时程误差累积严重 |
| Interactive imitation / HG-DAgger | 人工纠正片段 | deployment 被当作动作标签来源，不能系统利用 autonomous failure 的结果 |
| Offline RL / RECAP | 固定 replay 与结果信号 | 更新后仍要重新收集一轮数据，难以快速适应 deployment distribution |
| Specialist online RL | 在线交互 | 多数针对单任务策略，无法证明共享 generalist VLA 的持续改进 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; LWD 的定位因此不是“更大的 DAgger”，而是把 autonomous rollout 当作 RL transition：一次失败也可以告诉 critic 哪些早期 action chunk 没有把任务推进下去；人工 intervention 则和普通在线 transition 一样进入 replay，而不是唯一的正例来源。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 机器人控制被写成带语言条件的 MDP：&lt;/p&gt;
&lt;p&gt;$$
\mathcal M=(\mathcal S,\mathcal A,\mathcal T,r,\gamma),\qquad s_t=(o_t,\ell_k)
$$&lt;/p&gt;
&lt;p&gt;其中 $o_t$ 是视觉与本体观测，$\ell_k$ 是任务指令。策略不是输出单步动作，而是输出长度为 $H$ 的 action chunk：&lt;/p&gt;
&lt;p&gt;$$
\mathbf a_t=\mathbf a_{t:t+H-1}\sim\pi_\theta(\cdot\mid s_t),\qquad
\mathbf r_t=\sum_{i=0}^{H-1}\gamma^i r_{t+i}.
$$&lt;/p&gt;
&lt;p&gt;论文使用稀疏二值终止奖励：只有 episode 成功结束时 $r=1$，否则为 $0$。训练样本统一表示为 $(s_t,\mathbf a_t,\mathbf r_t,s_{t+H})$。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 实验平台是 Agibot G1：两条 7-DoF 机械臂、平行夹爪、一个 head-view 与两个 wrist-view RGB 相机，joint-position control 频率为 30 Hz。任务分为四个 grocery restocking 任务和四个 3–5 分钟的 long-horizon 任务（功夫茶、果汁、鸡尾酒、鞋盒装箱）。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-learning-while-deploying/method.96ahdqj5yg.webp&quot; alt=&quot;LWD pipeline 与 DIVL/QAM architecture（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 上半部分是两阶段 pipeline：Stage 1 在静态 offline buffer 上初始化 policy、critic 和 distributional value；Stage 2 将 offline buffer 与不断增长的 online buffer 混合训练，并周期性地把共享 generalist policy 下发给 fleet。下半部分把 learner 拆成 DIVL value learning 和 QAM policy extraction 两条支路。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这种拆分把“判断 action 好不好”和“让 flow policy 更偏向好 action”解耦。value/critic 保留在中心 learner，只有 policy checkpoint 需要同步到边缘机器人，降低了 fleet 端部署复杂度。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;Distributional Value Model $V_\psi$&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：带视觉与语言的状态 $s_t$，由 Gemma3–SigLIP VLM 编码。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：固定 categorical support 上的 action-value 分布 $p_\psi(v\mid s_t)$，不是一个标量。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;作用&lt;/strong&gt;：保留同一状态下 replay actions 的多峰、重尾结果，供后续 quantile bootstrap 和 uncertainty estimation 使用。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;实现细节&lt;/strong&gt;：VLM 的 readout token 进入 value head；EMA critic 的标量输出被裁剪到 support，并按 C51 方式投影到相邻 atoms。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Critic $Q_\phi$&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：状态表示 $z_t$ 与 action chunk $\mathbf a_t$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;中间模块&lt;/strong&gt;：action chunk 先经 learned temporal attention pooling，再与 $z_t$ 拼接。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：两个 scalar critic head，采用 clipped double-Q 的最小值构造 DIVL target，以缓解过估计。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要&lt;/strong&gt;：$Q_\phi(s,\mathbf a)$ 的 action gradient 是 QAM 改进 flow vector field 的直接信号。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Flow-based VLA Policy&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：图像、语言指令、本体信息与高斯噪声。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;骨干&lt;/strong&gt;：论文实例化为 $\pi_{0.5}$ 风格的 PaliGemma VLM（Gemma-2B + SigLIP）和 Gemma-300M action expert。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：action chunk 的生成分布，由 flow-matching action head 逐步生成。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;训练状态&lt;/strong&gt;：offline 阶段 policy 与 value/critic 全量 fine-tune；online QAM 阶段冻结 policy VLM backbone，只更新 action expert，value/critic 继续全量更新。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Fleet Replay 与奖励&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; offline buffer 包含 demonstration、历史 policy rollout（成功和失败）以及围绕失败模式的人类 play data。online buffer 收集当前 policy transition，并在需要时加入 human intervention segment；两者在 online learner 中约以 1:1 比例混合。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;DIVL：从 value distribution 取 quantile&lt;/h4&gt;
&lt;p&gt;$$
p_\psi(v\mid s_t)=P\left(v=Q_\phi(s_t,\mathbf a_t)\mid
\mathbf a_t\sim\mathcal D(\cdot\mid s_t)\right)
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; $\mathcal D(\cdot\mid s_t)$ 是 replay 中与状态相符的 action 分布。模型先用 EMA critic 的标量值拟合这个分布：&lt;/p&gt;
&lt;p&gt;$$
\mathcal L_V=-\mathbb E_{(s_t,\mathbf a_t)\sim\mathcal D}
\log p_\psi\big(Q_{\bar\phi}(s_t,\mathbf a_t)\mid s_t\big).
$$&lt;/p&gt;
&lt;p&gt;从累积分布 $F_\psi$ 中取 $\tau$-quantile：&lt;/p&gt;
&lt;p&gt;$$
\operatorname{Quant}&lt;em&gt;\tau(V&lt;/em&gt;\psi(s))=\inf{v:F_\psi(v\mid s)\ge\tau},
$$&lt;/p&gt;
&lt;p&gt;并形成 chunk-level TD target：&lt;/p&gt;
&lt;p&gt;$$
y_Q=\mathbf r_t+\gamma^H\operatorname{Quant}&lt;em&gt;\tau(V&lt;/em&gt;\psi(s_{t+H})),
\qquad
\mathcal L_Q=\mathbb E[(Q_\phi(s_t,\mathbf a_t)-y_Q)^2].
$$&lt;/p&gt;
&lt;p&gt;较大的 $\tau$ 更乐观，较小的 $\tau$ 更保守；与直接在整个 action space 上取 $\max_a Q$ 不同，它仍然局限于 replay 的 in-support action。&lt;/p&gt;
&lt;h4&gt;自适应 $\tau$&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 令 categorical value distribution 的归一化熵为：&lt;/p&gt;
&lt;p&gt;$$
\mathcal H(s)=-\frac{1}{\log C}\sum_{c=1}^{C}p_{\psi,c}(s)\log p_{\psi,c}(s).
$$&lt;/p&gt;
&lt;p&gt;然后按不确定性调节 bootstrap 乐观度：&lt;/p&gt;
&lt;p&gt;$$
\tau(s)=\operatorname{clip}(\tau_{base}-\alpha\mathcal H(s),\tau_{min},\tau_{max}).
$$&lt;/p&gt;
&lt;p&gt;分布越分散，熵越高，$\tau$ 越低，从而减少不确定状态上的过估计；分布集中时保留更乐观的 target。论文的 constant-$\tau$ 对照使用经验平均值 $\tau=0.52$。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-learning-while-deploying/dynamic_tau_plot.5trrjd50bn.webp&quot; alt=&quot;DIVL 的 dynamic-$\tau$ 诊断图（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;h4&gt;QAM：用 critic gradient 改进 flow&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; flow matching 从 $\mathbf a^0\sim\mathcal N(0,I)$ 和 replay action $\mathbf a^1$ 构造：&lt;/p&gt;
&lt;p&gt;$$
\mathbf a^w=(1-w)\mathbf a^0+w\mathbf a^1,\quad
f_\theta(s,\mathbf a^w,w)\approx\mathbf a^1-\mathbf a^0.
$$&lt;/p&gt;
&lt;p&gt;QAM 保留一个固定 reference flow $f_\beta$，并把 critic gradient 放在终点 adjoint condition：&lt;/p&gt;
&lt;p&gt;$$
\tilde g_1=-\nabla_{\mathbf a}[Q_\phi(s,\mathbf a^1)/\lambda].
$$&lt;/p&gt;
&lt;p&gt;再沿 reference flow 解 adjoint dynamics，训练当前 flow 与 reference flow 的局部差异：&lt;/p&gt;
&lt;p&gt;$$
\mathcal L_{QAM}=\mathbb E\left[\int_0^1\left|
\frac{2(f_\theta-f_\beta)}{\sigma_w}+\sigma_w\tilde g_w\right|_2^2dw\right],
\quad \sigma_w=\sqrt{2(1-w)w}.
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; QAM 的关键不是再设计一个 action decoder，而是把“终点 action 应该沿 $\nabla_aQ$ 移动多少”变成 flow 时间轴上的局部监督，避开对完整 multi-step generation 做高成本、易不稳定的反向传播。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 离线阶段先以 demonstration 对预训练 $\pi_{0.5}$ 做 flow-matching SFT，得到 reference policy；随后在 offline buffer 上联合训练 policy、$Q_\phi$ 和 $V_\psi$。短任务使用 1-step chunk TD，长任务使用 10-step chunk TD，以更快传播稀疏终止奖励。online 阶段使用 1-step TD，因为 human intervention 与 autonomous transition 混合后，长 backup 可能跨越不同执行来源。&lt;/p&gt;
&lt;p&gt;在线 learner 每步从 $\mathcal B_{off}\cup\mathcal B_{on}$ 采样，更新 DIVL 和 QAM；每 50 个 training steps 向所有 actor 广播新 policy。每个 online experiment 的 wall-clock budget 为 4 小时，跨 16 台机器人约收集 60 robot-hours。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 推理端只需要 generalist policy：输入当前多视角观测和语言指令，由 flow action expert 生成 action chunk，在 G1 上以 joint-position control 执行；value、critic 和 replay coordinator 留在中心 learner。由于论文的 policy 是 chunk-level，执行过程中会按 action horizon 重规划，而不是每个底层控制周期重新运行完整 RL 更新。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 论文 arXiv 源码和官方项目页（&lt;a href=&quot;https://learning-while-deploying.github.io/&quot;&gt;learning-while-deploying.github.io&lt;/a&gt;）公开了方法、实验图和系统说明，但截至本文写作没有可供复现的官方 GitHub 代码仓库。因此以下是“论文算法 ↔ 公开材料”的对照，而不是逐文件代码审计：&lt;/p&gt;
&lt;p&gt;| 论文组件 | 公开材料中可确认的行为 | 代码状态 |
| --- | --- | --- |
| Fleet actor / learner | 16 台 G1，actor 上传 episode，中心 learner 混合 replay，策略每 50 steps 广播 | 论文与项目页有系统描述；未公开实现 |
| DIVL | categorical value distribution、quantile TD target、entropy-adaptive $\tau$ | 公式与消融公开；未公开实现 |
| QAM | 用 $\nabla_aQ$ 初始化 adjoint，再沿 reference flow 做局部回归 | 公式与算法公开；未公开实现 |
| Policy | $\pi_{0.5}$ 风格 PaliGemma + Gemma-300M action expert | 架构在论文中公开；未公开 checkpoint / training script |&lt;/p&gt;
&lt;p&gt;因此，不能把论文中的 Gemma、JAX、replay snapshot 或同步频率扩写成未经官方代码验证的 API 行为；需要复现时应以作者后续发布为准。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-learning-while-deploying/task-frames.1apqgdzi50.webp&quot; alt=&quot;八项真实任务与长时程操作场景（论文 task frames）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 四项 grocery 任务是 Restocking、Correction、Freezer Restocking 和 Open-Cooler Restocking，测试语言指令理解、物体选择、货架/容器变化与摆放修正。四项 long-horizon 任务是 Brew Gongfu Tea、Make Fruit Juice、Make Cocktail 和 Pack Shoes；每个 episode 通常持续 3–5 分钟，包含 5–8 个标注子步骤。&lt;/p&gt;
&lt;p&gt;grocery 以 episode binary success rate 评分；long-horizon 以子步骤平均分评分，完全成功为 1、轻微瑕疵或单次 retrial 为 0.5、多次失败为 0，并额外报告 cycle time。对比方法包括 SFT reference、RECAP、HG-DAgger、LWD Offline 与 LWD Online。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-learning-while-deploying/success_rate_plot.362b909kq3.webp&quot; alt=&quot;LWD 与基线的 success score、cycle time 对比（论文 Figure 4）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 主结果如下，数值为论文 Table 1 的任务分数：&lt;/p&gt;
&lt;p&gt;| 方法 | Grocery 平均 | Long-horizon 平均 | 八任务平均 |
| --- | ---: | ---: | ---: |
| SFT | 0.84 | 0.68 | 0.76 |
| RECAP | 0.95 | 0.77 | 0.85 |
| HG-DAgger | 0.96 | 0.73 | 0.85 |
| LWD Offline | 0.97 | 0.79 | 0.88 |
| &lt;strong&gt;LWD Online&lt;/strong&gt; | &lt;strong&gt;0.99&lt;/strong&gt; | &lt;strong&gt;0.91&lt;/strong&gt; | &lt;strong&gt;0.95&lt;/strong&gt; |&lt;/p&gt;
&lt;p&gt;逐任务看，LWD Online 在四项 long-horizon 任务上分别达到：功夫茶 &lt;strong&gt;0.89&lt;/strong&gt;、果汁 &lt;strong&gt;0.90&lt;/strong&gt;、鸡尾酒 &lt;strong&gt;0.93&lt;/strong&gt;、鞋盒 &lt;strong&gt;0.92&lt;/strong&gt;；grocery 四项为 1.00、1.00、0.97、0.98。论文还报告 long-horizon 平均 cycle time 相比 SFT 减少 &lt;strong&gt;23.75 秒&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 提升并不是单纯来自成功示教变多：long-horizon 的优势远大于 grocery，说明 TD backup 对“早期动作影响数分钟后结果”的 credit assignment 更有帮助；同时较短 cycle time 暗示 critic 学到的不只是终点成功，还偏好更少犹豫和 retrial 的 action chunk。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;h4&gt;DIVL 对比 scalar expectile&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 将 DIVL 替换为 scalar expectile value regression，其余组件保持不变。long-horizon 平均分在 offline 阶段由 0.72 提升到 0.79（+9.7%），online 阶段由 0.78 提升到 0.91（+16.7%）；short-horizon 也由 0.96/0.97 提升到 0.97/0.99。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-learning-while-deploying/tea_demo_v4.2oc9kfakh2.webp&quot; alt=&quot;功夫茶成功与失败轨迹中的 value progression（论文 Figure 5）&quot;&gt;&lt;/p&gt;
&lt;p&gt;成功轨迹的 value 通常随关键子步骤完成而上升，失败轨迹在碰撞后停留在较低水平。&lt;strong&gt;【Analysis】&lt;/strong&gt; 这支持“分布化 value 可以提供进度信号”的解释，但图是代表性 qualitative diagnostic，不等同于形式化的因果证明。&lt;/p&gt;
&lt;h4&gt;Adaptive $\tau$ 对比 constant $\tau$&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; offline 平均分从 constant $\tau=0.52$ 的 0.84 提升到 adaptive $\tau$ 的 0.88；改进在 Restocking、Correction 和 Cocktail 更明显。该结果隔离了 uncertainty-aware optimism calibration 的作用。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 所有任务共享一套 generalist policy，而不是每个任务一个 specialist。grocery 任务接近饱和时，LWD Online 仍保持最佳或接近最佳；long-horizon 任务则从 fleet experience 中获得最大收益。论文没有报告跨机器人硬件、未见过的任务类别或更长时间部署的独立泛化曲线，不能据此宣称开放世界泛化已经解决。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 可以把效果拆成三个互补因素：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;数据覆盖&lt;/strong&gt;：fleet 同时看到多任务、多场景、失败和人工恢复，online replay 更接近真正 deployment distribution。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;信用分配&lt;/strong&gt;：chunk-level Q 与 long-horizon multi-step TD 把终止结果向更早的决策传播，缓解单步 BC 的 compounding error。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;更新匹配生成策略&lt;/strong&gt;：DIVL 不强迫异质回报变成一个均值，QAM 又避免直接穿过 flow sampler 做不稳定 policy gradient。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文的实际创新是系统与算法的组合：DIVL 解决“fleet replay 中 value 怎么稳”，QAM 解决“flow VLA 怎么按 value 改”，offline 与 online 使用同一套目标解决阶段切换，fleet 基础设施则把这些更新变成持续 data flywheel。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 与 SFT/HG-DAgger 的区别是“使用结果”而不只是“模仿动作”；与 RECAP 的区别是持续混合 online replay，而不是 collect–train–deploy 的离散轮次；与 specialist RL 的区别是始终优化一套跨任务共享 policy。LWD 因而把规模化部署本身纳入算法闭环。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 方法依赖以下假设：任务可由稀疏终止成功标签评价；action chunk 的状态转移足以构造稳定 TD target；replay 中的 heterogeneous trajectories 可以由统一的 language-conditioned VLA 表示；human intervention 虽非 policy action，但仍可作为 reward-labeled transition 学习。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这些假设在当前八项任务上成立，并不保证在安全约束强、奖励不可观测、需要高层 task decomposition 或 intervention 频率极高的环境中成立。&lt;/p&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 作者明确指出：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;online 更新使用相对直接的实时 schedule，未必适合更大规模或长期 continual learning；&lt;/li&gt;
&lt;li&gt;long-horizon 实验多使用单条短语言指令，复杂任务仍需要更强的 task decomposition、细粒度 prompt 和闭环恢复；&lt;/li&gt;
&lt;li&gt;当前 policy learning 没有显式建模 execution safety，安全感知学习与控制仍是必要方向。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;成本与吞吐&lt;/strong&gt;：4 小时、16 台机器人约 60 robot-hours，说明 fleet RL 的数据效率仍依赖昂贵的真实硬件；论文没有给出与单机相同 wall-clock 或相同 interaction budget 的完整 scaling law。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;分布滞后&lt;/strong&gt;：异步 actor 可能执行旧 checkpoint，online buffer 混有不同 policy 版本；DIVL 能缓解 value 不确定性，但不能消除 off-policy lag。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;稀疏奖励的可诊断性&lt;/strong&gt;：value 曲线是代表性可视化，不能单独证明每个子步骤都得到正确 credit；失败原因、碰撞和安全代价仍未进入显式 reward model。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;复现门槛&lt;/strong&gt;：官方尚未公开训练代码、checkpoint 与完整 fleet backend，外部研究者只能复现论文级算法描述，难以核对工程细节。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; LWD 给出的研究路线不是“把机器人部署得更多”这么简单，而是把部署系统设计成可学习的闭环：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;对 VLA post-training，应该优先设计能吸收失败与部分进度的 replay schema，而不是只筛选成功视频；&lt;/li&gt;
&lt;li&gt;distributional value 的不确定性可以同时用于 bootstrap、数据重采样和人工接管触发；&lt;/li&gt;
&lt;li&gt;QAM 说明 flow/diffusion policy 的 RL 适配不必依赖显式 action likelihood，局部生成动力学也可以成为监督对象；&lt;/li&gt;
&lt;li&gt;fleet scale 的关键指标除了 success rate，还应包括数据到 learner 的延迟、checkpoint 到 actor 的延迟、版本一致性和安全事件率。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;更值得继续追问的是：当 fleet 扩展到更多任务和更长时间后，如何自动发现 reward hacking、避免旧经验压制新分布，以及怎样让高层语言规划与低层 QAM 更新形成分层闭环。LWD 把这些问题从“未来设想”推进到了可以在真实机器人系统上测量的工程问题。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/69461006_p0_master1200.1e974ctzq9.webp"/><enclosure url="https://pic.hana0721.top/69461006_p0_master1200.1e974ctzq9.webp"/></item><item><title>LaWAM 论文精读：用潜空间世界模型预测机器人动作的视觉子目标</title><link>https://agusexp25.top/blog/paper-deep-dive-lawam</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-lawam</guid><description>精读 LaWAM：把 Latent Action Model 的前向解码器复用为 Latent World Model，在 DINOv3 特征空间预测动作相关的未来视觉子目标，兼顾动力学预见与低延迟控制。</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;论文名称&lt;/strong&gt;：《LaWAM: Latent World Action Models for Efficient Dynamics-Aware Robot Policies》&lt;br&gt;
&lt;strong&gt;作者&lt;/strong&gt;：Jialei Chen 等 12 位作者&lt;br&gt;
&lt;strong&gt;时间&lt;/strong&gt;：arXiv 预印本，2026 年 6 月&lt;br&gt;
&lt;strong&gt;论文链接&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2606.15768&quot;&gt;arXiv&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-lawam/lawam-overview.4920k1cypw.webp&quot; alt=&quot;LaWAM 两阶段训练与推理总览（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; LaWAM 不生成未来像素视频，而是在冻结的 DINOv3 特征空间中，把策略预测的 latent action 解码成与当前场景和机器人 embodiment 对齐的 latent visual subgoal，再用这个子目标指导动作 chunk 生成。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;提出 Latent World Model（LaWM）：把 Latent Action Model 的 forward decoder 保留下来，直接预测未来 observation feature。&lt;/li&gt;
&lt;li&gt;提出 Latent World Action Model（LaWAM）：将预测的 latent visual subgoal 接入 VLA 的 Alternate-DiT action expert。&lt;/li&gt;
&lt;li&gt;用 latent-action distillation 训练策略先验，并用 Knowledge Insulation 防止动作专家破坏已经学到的动力学。&lt;/li&gt;
&lt;li&gt;在 LIBERO、RoboTwin 和真实机器人任务上同时取得高成功率与低延迟：LIBERO 平均成功率 98.6%，单个 action chunk 预测约 187 ms。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 论文的真正转折点不是“再加一个 world model”，而是改变了 policy-facing future 的接口：未来只保留对下一个动作 chunk 有用的结构化特征，不承担像素重建的负担。&lt;/p&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 传统 VLA 主要学习 $p(a_{1:T}\mid o,l)$：根据当前 observation $o$ 和语言指令 $l$ 直接输出动作序列。它能利用大规模 vision-language pretraining 理解“要做什么”，但没有显式建模“执行动作之后场景会怎样变化”。&lt;/p&gt;
&lt;p&gt;World-Action Model（WAM）通过预测未来 observation 或 video，让 policy 在动作生成时获得动力学预见。问题在于：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;像素空间视频包含大量与控制无关的纹理和外观冗余；&lt;/li&gt;
&lt;li&gt;迭代式视频生成带来很高的推理延迟，论文对比的 LingBot-VA 为 4482 ms，而普通 VLA $\pi_{0.5}$ 为 220 ms；&lt;/li&gt;
&lt;li&gt;manipulation 往往只需要“下一段动作会把机械臂和物体带到哪里”的紧凑描述。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 既有 Latent Action Model 通常用 inverse dynamics 从视觉转移中抽取 embodiment-agnostic 的 latent action，但预训练后会丢弃 forward decoder。LaWAM 的观察是：这个 decoder 本身已经是一个 action-conditioned world model，只是过去没有被当作 policy 的输入接口。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 给定当前观测 $o$、指令 $l$ 和固定物理时间跨度 $\tau$ 内的动作 chunk $a_{1:T}$，标准 VLA 直接建模：&lt;/p&gt;
&lt;p&gt;$$
p(a_{1:T}\mid o,l)
$$&lt;/p&gt;
&lt;p&gt;LaWAM 先用冻结视觉编码器 $f_{\psi}$ 得到当前和未来特征：$u=f_{\psi}(o)$、$u_T=f_{\psi}(o_T)$。第一阶段学习 posterior $q_{\phi}(z\mid u,u_T)$ 和 forward decoder；部署时未来特征不可见，因此策略要从 $(o,l)$ 预测 latent action $\hat z$，再得到未来子目标 $\hat u_T$。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：RGB observation、自然语言任务指令；论文实验使用 256×256 RGB 图像，不输入 proprioception。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：固定物理时间跨度对应的 end-effector action chunk。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;中间变量&lt;/strong&gt;：latent action $z$、当前 latent feature $u$、预测子目标 $\hat u_T$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;数据&lt;/strong&gt;：约 3000 小时机器人视频和 1500 小时 egocentric human 视频用于 LaWM；第二阶段 policy integration 只使用带语言指令的机器人轨迹。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;机器人&lt;/strong&gt;：LIBERO、RoboTwin，以及 Franka Emika Panda 和 Quanta X1 双臂平台。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; LaWAM 有两个阶段。Stage 1 从视觉转移中训练 latent action posterior 与 forward decoder，并将 decoder 命名为 LaWM；Stage 2 让 VLA 从当前 observation 和指令预测 latent action，经 LaWM 得到 latent visual subgoal，最后由 Alternate-DiT action expert 生成动作 chunk。&lt;/p&gt;
&lt;p&gt;数据流可概括为：&lt;code&gt;(o, l) → policy prior → ẑ → LaWM(u, ẑ) → ûT → action expert → a1:T&lt;/code&gt;。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;冻结视觉编码器与 latent action posterior&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：当前特征 $u$ 与物理时间间隔 $\tau$ 后的未来特征 $u_T$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：连续 latent action $z$ 的后验分布 $q_{\phi}(z\mid u,u_T)$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;模块&lt;/strong&gt;：DINOv3 ViT-B/16 提供空间结构化 dense feature；24 层 Transformer inverse-dynamics encoder 联合处理当前和 horizon observation。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;作用&lt;/strong&gt;：将“从当前状态到未来状态的变化”压缩成低维、可跨 embodiment 迁移的动作变量。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; $z$ 不是最终要执行的关节动作，而是“需要发生哪类转移”的中间坐标。它本身缺少当前场景的空间落点，所以不能直接替代视觉子目标。&lt;/p&gt;
&lt;h4&gt;LaWM forward decoder&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：当前 latent feature $u$ 和 latent action $z$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：未来特征预测 $\tilde u_T=\mathrm{LaWM}_{\omega}(u,z)$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;实现&lt;/strong&gt;：24 层 Transformer decoder，通过 adaptive layer normalization 注入 $z$；论文指出这种方式比 additive token injection 在 cross-embodiment 训练中更稳定。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;辅助信号&lt;/strong&gt;：轻量 MLP 以当前 end-effector state $s$ 与 $z$ 预测 $s_T$，鼓励 $z$ 编码真实运动而非纯外观变化；预训练后丢弃该 head。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Policy prior 与 Alternate-DiT action expert&lt;/h4&gt;
&lt;p&gt;策略先验 $p_{\theta}(\hat z\mid o,l)$ 从当前视觉和指令预测部署时的 latent action。LaWM 将其展开为 $\hat u_T$。动作专家采用 Alternate-DiT：一条流承载 VLM 的语义上下文，另一条流承载 $(u,\hat u_T)$ 的动力学上下文，两条流交替交互后对 action chunk 做 flow matching 去噪。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 论文没有给出可核验的官方代码仓库或项目页面，因此这里不推断具体文件、DataLoader 或 checkpoint 行为；本节只记录论文明确的架构。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-lawam/libero-chunk.64elcnpejx.webp&quot; alt=&quot;一个 action chunk 内的 latent subgoal 引导执行（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;LaWM 接口&lt;/h4&gt;
&lt;p&gt;$$
z\sim q_{\phi}(z\mid u,u_T),\qquad
\tilde u_T=\mathrm{LaWM}_{\omega}(u,z)
$$&lt;/p&gt;
&lt;p&gt;$q_{\phi}$ 是只在训练阶段可用的 latent inverse-dynamics posterior；$\tilde u_T$ 是 decoder 重建的 horizon feature。$u_T$ 与 $s_T$ 都对应固定物理时间 $\tau$，因此子目标表示的是一致的实际运动时长，而不是某个数据集的固定帧偏移。&lt;/p&gt;
&lt;h4&gt;LaWAM 分解&lt;/h4&gt;
&lt;p&gt;$$
p(a_{1:T},\hat u_T,\hat z\mid o,l)
=p_{\theta}(\hat z\mid o,l)
p_{\omega}(\hat u_T\mid u,\hat z)
p_{\eta}(a_{1:T}\mid o,l,u,\hat u_T)
$$&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;$p_{\theta}$：policy prior，预测 latent action；&lt;/li&gt;
&lt;li&gt;$p_{\omega}$：LaWM，单次前向得到 latent visual subgoal；&lt;/li&gt;
&lt;li&gt;$p_{\eta}$：action expert，在语义和动力学上下文下生成 action chunk。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;两阶段损失&lt;/h4&gt;
&lt;p&gt;第一阶段：&lt;/p&gt;
&lt;p&gt;$$
\mathcal L_{\mathrm{LAM}}
=\underbrace{\lVert\tilde u_T-u_T\rVert_2^2}&lt;em&gt;{\mathcal L&lt;/em&gt;{\mathrm{wm}}}
+\underbrace{\lVert g(s,z)-s_T\rVert_2^2}&lt;em&gt;{\mathcal L&lt;/em&gt;{\mathrm{aux}}}
+\beta D_{\mathrm{KL}}(q_{\phi}(z\mid u,u_T)|\mathcal N(0,I))
$$&lt;/p&gt;
&lt;p&gt;第二阶段：&lt;/p&gt;
&lt;p&gt;$$
\mathcal L_{\mathrm{LaWAM}}
=\lambda_{\mathrm{distill}}\mathbb E[\lVert\hat z-z\rVert_2^2]
+\lambda_{\mathrm{wm}}\lVert\hat u_T-u_T\rVert_2^2
+\mathcal L_{\mathrm{act}}
$$&lt;/p&gt;
&lt;p&gt;$\mathcal L_{\mathrm{act}}$ 是以 $(o,l,u,\hat u_T)$ 为条件的 action flow-matching loss；论文在所有实验中设置 $\lambda_{\mathrm{distill}}=\lambda_{\mathrm{wm}}=0.1$。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; LaWM 训练使用连续 latent action、AdamW、16 张 H100、100k steps、全局 batch size 1024、学习率 $3\times10^{-4}$、weight decay $10^{-2}$，KL 权重 $\beta=10^{-5}$。机器人 teleoperation 的物理 horizon 为 1.2 s，egocentric human 视频为 0.4 s。第二阶段在 64 张 H100 上进行 200k steps 的 policy-integration pretraining，action expert 学习率 $10^{-4}$，其他模块为 $3\times10^{-5}$。&lt;/p&gt;
&lt;p&gt;混合控制频率数据不按 token index 粗暴对齐，而是固定物理时间 $\tau$。频率为 $h_b$ 的分支使用：&lt;/p&gt;
&lt;p&gt;$$H_b=\mathrm{round}(\tau h_b),\qquad t_{b,i}=i/h_b$$&lt;/p&gt;
&lt;p&gt;并把正弦时间编码 $\phi(t_{b,i})$ 加到 action-query embedding，使 5/10/20 Hz 的同一物理时刻拥有一致坐标。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;推理时不再使用需要未来帧的 posterior encoder。LaWAM 只需一次 LaWM forward，就可以把策略的 latent action 变成视觉子目标；action expert 在 10 个 denoising steps 下输出一段 end-effector action chunk，执行后重新观测并滚动闭环。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 实验覆盖四个 LIBERO suite、RoboTwin 2.0 的 50 个双臂任务，以及真实世界的 pick-and-place、drawer opening 和 towel folding。LIBERO 报告 40 个任务、每任务 50 次试验；RoboTwin 每任务 100 次；真实任务各 30 次。延迟在 A100 上重复 1000 次 action-chunk prediction 后取平均。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-lawam/real-world.5xbdh83954.webp&quot; alt=&quot;真实机器人任务：抓取放置、打开抽屉和折叠毛巾（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; LIBERO 的 LaWAM 平均成功率为 &lt;strong&gt;98.6%&lt;/strong&gt;，Long / Goal / Object / Spatial 分别为 97.0 / 98.4 / 99.6 / 99.4；模型规模 2.3B，单 chunk 延迟 187 ms。相比像素空间 WAM，LaWAM 的 world-modeling 模块仅 230M 参数，论文称比 5B WAN backbone 少约 95%，墙钟延迟最高可降低 24×。&lt;/p&gt;
&lt;p&gt;| 方法          | 模型规模 |       延迟 | LIBERO 平均 |
| ------------- | -------: | ---------: | ----------: |
| π0.5          |     3.5B |     220 ms |       96.9% |
| Cosmos-Policy |     2.1B |    1413 ms |       98.5% |
| LingBot-VA    |     5.5B |    4482 ms |       98.5% |
| Fast-WAM      |       6B |     486 ms |       97.6% |
| &lt;strong&gt;LaWAM&lt;/strong&gt;     | &lt;strong&gt;2.3B&lt;/strong&gt; | &lt;strong&gt;187 ms&lt;/strong&gt; |   &lt;strong&gt;98.6%&lt;/strong&gt; |&lt;/p&gt;
&lt;p&gt;RoboTwin 的 clean-scene / randomized-scene 平均成功率为 92.64% / 89.80%，两者平均为 91.22%。真实世界 LaWAM 在 pick-and-place、drawer opening、towel folding 上分别达到 93.3%、86.7%、90.0%，平均 90.0%，高于对比方法的平均 83.3%（π0.5）。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-lawam/libero-latency.102wndphfb.webp&quot; alt=&quot;LIBERO 上的延迟—成功率权衡（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-lawam/ablation.2yz3dpuzpg.webp&quot; alt=&quot;LaWAM 组件消融：预训练、distillation、Knowledge Insulation 与 LaWM（论文 Figure 6）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; LIBERO 消融显示，移除 LaWM 的性能下降最大，尤其是 LIBERO-Long；移除 latent-action distillation 也会明显变差；同时移除 KI 与 distillation 进一步退化。说明最终收益来自一条完整接口：策略要能稳定驱动 LaWM，且动作专家不能反向改写其动力学。&lt;/p&gt;
&lt;p&gt;混合频率实验还表明，不加 physical-time encoding 时联合训练 5/10/20 Hz 数据会明显下降；加入时间编码后，性能大幅恢复到 20 Hz reference 附近。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-lawam/mixed-frequency.3d5j4l3aol.webp&quot; alt=&quot;混合控制频率训练与 physical-time encoding（论文 Appendix Figure）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; LaWM 的 open-loop rollout 在未见环境和未见 embodiment 上使用同一 latent-action trajectory 时，仍产生上下文相关且连贯的 latent 变化。真实测试还包含超出部分示教空间的物体、碗和抽屉初始位置；LaWAM 在这些配置下保持较高成功率。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-lawam/lawm-rollout.99u3bljtl5.webp&quot; alt=&quot;500 条 LIBERO 轨迹上的 LaWM rollout 特征相似度（论文 Appendix Figure）&quot;&gt;&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; LaWAM 同时解决了两个互补问题：latent action 提供“要发生哪种变化”的抽象，当前 DINOv3 feature 提供“变化应该落在当前场景哪里”的空间锚点。LaWM 把两者组合成 embodiment-grounded subgoal，action expert 因而不必从零猜测中间状态。&lt;/p&gt;
&lt;p&gt;此外，预测一个 feature map 比生成多帧 RGB 视频更接近控制所需的信息瓶颈；单次 forward 又避免了视频扩散的迭代延迟。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;接口创新&lt;/strong&gt;：将 LAM decoder 从训练辅助组件变成 policy-facing world model。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;表示创新&lt;/strong&gt;：未来由 action-conditioned latent visual subgoal 表示，而不是单个 latent token 或像素视频。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;训练创新&lt;/strong&gt;：latent-action distillation 让 policy prior 学会驱动 LaWM，KI 保持动力学模块稳定。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;时间创新&lt;/strong&gt;：用 physical-time encoding 对齐不同控制频率的 action chunk。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;| 路线              | 未来表示                                 | 推理方式            | 主要代价                     |
| ----------------- | ---------------------------------------- | ------------------- | ---------------------------- |
| 普通 VLA          | 无显式未来                               | 直接生成动作        | 缺少动力学预见               |
| 像素空间 WAM      | 未来图像 / 视频                          | 迭代生成            | 延迟和像素冗余高             |
| Latent Action VLA | latent action                            | 直接用 action token | 空间落点不显式               |
| &lt;strong&gt;LaWAM&lt;/strong&gt;         | action-conditioned latent visual subgoal | 单次 latent forward | 依赖视觉 latent 的动力学质量 |&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 方法隐含三个假设：DINOv3 特征保留了对控制有用的空间结构；固定物理时间 $\tau$ 足以定义稳定的 chunk-level subgoal；连续 latent action 可以被当前 observation 与 language 预测。若相机剧烈运动、特征空间对细粒度接触不敏感，或任务需要比一个 chunk 更长的多步规划，这些假设都会变弱。&lt;/p&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; LaWAM 目前更适合相机相对稳定的 manipulation。当 egocentric 视频存在剧烈抖动或大幅视角变化时，latent action space 可能无法学习一致转移，因此对 humanoid 或 mobile robot 的自运动场景仍有限制。另一个问题是训练混合数据中细粒度 deformable-object dynamics 较少，细微布料形变仍难以可靠建模。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 论文把未来压缩到单个 horizon feature，效率很高，但也牺牲了多模态未来的显式表达：同一 $(u,z)$ 只给出一个确定性子目标。对于需要分支规划、碰撞规避或长时域反事实比较的任务，单次解码可能不足。其次，DINOv3 feature 的语义和空间相似度并不等同于接触力、摩擦和可执行性；高成功率主要在当前 benchmark 与任务分布内得到验证。&lt;/p&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; LaWAM 给出的更一般结论是：world model 不一定要成为“可观看的视频生成器”，也可以成为连接 semantic policy 与 low-level control 的中间接口。值得继续追问：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;能否让 LaWM 预测一组多模态 subgoals，再由 action expert 或 value model 选择？&lt;/li&gt;
&lt;li&gt;能否把 contact state、力觉或几何约束加入 latent feature，使子目标不仅“看起来正确”，还更可执行？&lt;/li&gt;
&lt;li&gt;对移动机器人和 humanoid，是否需要把 camera ego-motion 单独因子化，而不是让 latent action 同时解释物体运动和相机运动？&lt;/li&gt;
&lt;li&gt;物理时间对齐或许可以推广到 variable-horizon policy，把动作 chunk 的长度也作为可学习接口。&lt;/li&gt;
&lt;/ol&gt;</content:encoded><h:img src="https://pic.hana0721.top/90399055_p0_master1200.4g535npbv6.webp"/><enclosure url="https://pic.hana0721.top/90399055_p0_master1200.4g535npbv6.webp"/></item><item><title>LA4VLA 论文精读：Learning to Act without Seeing</title><link>https://agusexp25.top/blog/paper-deep-dive-la4vla</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-la4vla</guid><description>精读 LA4VLA：从 DROID 轨迹构造 33K 个 vision-agnostic atomic action episode，用 Language-Action 预训练让 VLA 学会语言如何约束动作。</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 传统 Vision-Language-Action（VLA）把图像、任务指令和动作一起喂给策略。一个长轨迹可能包含数百个 image-action pair，却通常只有一个高层 instruction；同时，一张图像会被编码成远多于语言的视觉 token。作者认为，这种 data-level 和 input-level asymmetry 让模型很容易依赖“这张图像通常对应这个动作”的视觉 shortcut，而没有真正学会“这句语言应该怎样约束动作”。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-la4vla/main.3yf6qqia0y.webp&quot; alt=&quot;LA4VLA 的数据构造、预训练范式与结果总览（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; LA4VLA 只在数据构造阶段使用视觉：它把 DROID 专家轨迹拆成 &lt;code&gt;move / grasp / lift / transport / place / press / rotate&lt;/code&gt; 等短 atomic segment，并为每段生成 vision-agnostic low-level instruction；预训练时屏蔽视觉，只用 language、proprioceptive state 和 action 学习可复用的动作先验，之后再用完整 VLA 数据恢复场景 grounding。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;提出 Language-Action（LA）pretraining，把语言条件动作学习从视觉主导的 VLA 学习中解耦出来。&lt;/li&gt;
&lt;li&gt;设计从已有演示自动产生 LA 数据的流程：keyframe detection、VLM temporal segmentation、atomic-action taxonomy 和 human verification。&lt;/li&gt;
&lt;li&gt;从 9,560 条 DROID VLA episode 得到 33,116 条 LA episode（LA-33K），没有额外采集机器人数据。&lt;/li&gt;
&lt;li&gt;系统比较 LA-only、LA→VLA sequential 和 mixed LA-VLA（MixPT），并在 LA4VLA-1B、StarVLA、MetaWorld、LIBERO、xArm6 上验证。&lt;/li&gt;
&lt;li&gt;证明 LA 预训练不仅提高平均成功率，也提高视觉扰动鲁棒性和 instruction-conditioned direction following。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这篇论文的关键变量不是更大的 backbone，而是“给动作什么监督”。它把原本隐含在长轨迹里的语言—局部动作对应关系显式化，再让视觉只负责定位、选择目标和处理场景差异。&lt;/p&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; OpenVLA、$pi_0$、GR00T N1、SmolVLA、StarVLA 等模型大多采用联合的 $(V,L,A)$ 监督：视觉观察 $V$、语言指令 $L$ 和动作轨迹 $A$ 同时出现。该范式能学到视觉 grounding，却无法区分语言本身贡献了多少信息。&lt;/p&gt;
&lt;p&gt;作者的诊断实验固定语言和 robot state，只替换视觉，比较四种条件：原始配对图像、去掉图像、同场景但不匹配的图像、与指令方向冲突的图像。标准输入下 DAR 为 0.98、DCS 为 0.95；冲突视觉下 DAR 降到 0.35、DCS 降到 0.03。&lt;strong&gt;【Analysis】&lt;/strong&gt; 这不是简单的“看不清”问题：视觉换成相反方向的轨迹后，预测也被拉向相反方向，说明配对视觉可能覆盖了语言条件。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-la4vla/visual_cue_dependence_v2.26m7vtyx9l.webp&quot; alt=&quot;固定指令、干预视觉后的方向跟随轨迹（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;p&gt;LA4VLA 与已有 language-action 方法的区别是：它不把语言动作仅作为高层规划或 reasoning scaffold，也不要求把动作 token 化成文字供推理；它将短 segment 的语言描述作为一种独立的预训练监督，最终控制仍由连续 flow-matching action head 完成。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;给定一条专家演示：&lt;/p&gt;
&lt;p&gt;$$
\tau = {(V_t, s_t, a_t, L_{task})}_{t=1}^{T},
$$&lt;/p&gt;
&lt;p&gt;其中 $V_t$ 是多视角图像，$s_t$ 是 proprioceptive state，$a_t$ 是连续动作，$L_{task}$ 是整条轨迹的高层任务描述。LA4VLA 要构造若干短 episode：&lt;/p&gt;
&lt;p&gt;$$
e_k=(L_k, s_{t_k:t_k+h}, a_{t_k:t_k+h}),
$$&lt;/p&gt;
&lt;p&gt;并且在 LA pretraining 中令视觉输入为空：&lt;/p&gt;
&lt;p&gt;$$
\pi_\theta(a_{t:t+h}\mid L_t,s_t,V=\varnothing).
$$&lt;/p&gt;
&lt;p&gt;| Embodied AI 要素 | LA4VLA 设定 |
| --- | --- |
| Observation | LA 阶段是语言 + proprioceptive state；VLA 阶段重新加入多视角 RGB |
| Vision encoder | InternVL3-1B（LA4VLA-1B 官方实现） |
| Language model | InternVL3-1B 的 language model，代码中截取前 14 层 |
| Action representation | 连续 Cartesian/action chunk；官方配置默认 horizon=50、每步 24 维 padding |
| Action head | Flow matching Transformer |
| Dataset | LA-33K，源自 DROID，33,116 个 episode、1,524,990 帧 |
| Robot / benchmark | MetaWorld、LIBERO、xArm6；另测 StarVLA 架构迁移 |
| Goal | 先学与视觉无关的 language-conditioned action prior，再恢复视觉 grounding |&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-la4vla/dataset_pipeline.6t7uwixh3r.webp&quot; alt=&quot;LA-33K 的切分、标注、过滤与 action category 分布（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 数据流是 &lt;code&gt;VLA demonstration → keyframe hints + atomic vocabulary → VLM proposals → human verification → LA episode&lt;/code&gt;；训练时 LA episode 屏蔽视觉，VLA episode 保留视觉，二者可分别预训练、串联或混合。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;Atomic action segmentation&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 每条长轨迹首先由 robot state 提供时间线索：低运动幅度区间作为 static keyframe，夹爪开闭变化作为 gripper-transition keyframe。它们只是 soft hints，不是强制边界。论文定义了三类 primitive：object manipulation（grasp、lift、transport、place）、contact interaction（push、pull、press）和 free-space motion（move、rotate、reorient）。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方仓库不包含 VLM 标注脚本，但 README 对 LA-33K 的最终格式有明确说明：LeRobot v2.1，3 个相机视角，state/action 为 6D Cartesian + 1D gripper，并提供 9,532 条 unique instruction。&lt;/p&gt;
&lt;h4&gt;VLM proposal 与人工质检&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Qwen3-VL-Plus 以 2 FPS、$224\times224$ 视频帧为输入，接收原始 task instruction、multi-view frame、keyframe event、primitive definitions 和 JSON schema，输出 &lt;code&gt;subaction / instruction / start / end&lt;/code&gt;。描述必须包含动作类型、方向和可选的 object status，但不能依赖颜色、外观、背景或场景中的具体位置。人工标注员按 0–3 评分，保留分数至少为 2 的 segment。&lt;/p&gt;
&lt;h4&gt;LA-33K 的粒度变化&lt;/h4&gt;
&lt;p&gt;| 阶段 | Episode | 总帧数 | 平均帧数/episode |
| --- | ---: | ---: | ---: |
| Original VLA | 9,560 | 2,751,615 | 287.83 |
| VLM candidates | 56,899 | 2,551,102 | 44.84 |
| Human-verified LA | 33,116 | 1,524,990 | 46.05 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 最终保留率为 58.2%，每个原始 episode 平均产生 3.46 个最终 LA episode；双人标注子集的 Krippendorff’s $\alpha=0.7794$。&lt;strong&gt;【Analysis】&lt;/strong&gt; 数据规模的主要增益来自重新组织监督，而非新增机器人小时数：同一段运动从“整条任务都叫 place cup”变成“lift upward”“transport left”“place down”等局部条件。&lt;/p&gt;
&lt;h4&gt;LA4VLA-1B backbone 与 action head&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;scripts/LA4VLA_1B.py&lt;/code&gt; 将 InternVL3Embedder 与 &lt;code&gt;FlowmatchingActionHead&lt;/code&gt; 组合。embedder 把多视角图像和 prompt 融合成 hidden tokens；action head 另外编码 state，并将 action chunk 投影成 action tokens，通过 8 层 &lt;code&gt;BasicTransformerBlock&lt;/code&gt; cross-attend 到 context tokens。官方 README 将 LA 阶段分为：Stage 1 只训练 action head，Stage 2 同时训练 language model 与 action head，视觉 encoder 始终 masked。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;视觉无关的条件策略&lt;/h4&gt;
&lt;p&gt;$$
\mathcal{L}&lt;em&gt;{LA}(\theta)=
\mathbb{E}&lt;/em&gt;{(L,s,a)\sim\mathcal{D}&lt;em&gt;{LA}}
\left[-\log p&lt;/em&gt;\theta(a\mid L,s,V=\varnothing)\right].
$$&lt;/p&gt;
&lt;p&gt;这里 $L$ 是 atomic instruction，$s$ 是状态，$a$ 是连续动作 chunk。该式的要点不是把视觉永久删除，而是让模型在没有视觉 shortcut 时先拟合语言—动作关系。&lt;/p&gt;
&lt;h4&gt;Flow-matching training target&lt;/h4&gt;
&lt;p&gt;官方 action head 从随机噪声 $z\sim U(-1,1)$ 与真实动作 $a$ 构造插值：&lt;/p&gt;
&lt;p&gt;$$
x_t=(1-t)z+t a,\qquad u=a-z,\qquad t\sim\mathrm{Beta}(2,2),
$$&lt;/p&gt;
&lt;p&gt;并预测速度场 $v_\theta(x_t,t,c)$：&lt;/p&gt;
&lt;p&gt;$$
\mathcal{L}&lt;em&gt;{FM}=\left|v&lt;/em&gt;\theta(x_t,t,c)-u\right|_2^2,
$$&lt;/p&gt;
&lt;p&gt;其中 $c$ 是由 language/image tokens 与 state embedding 拼成的 context。&lt;code&gt;action_mask&lt;/code&gt; 将 padding 维度置零，避免不同 embodiment 的补齐维度进入损失。&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;flow_matching.py&lt;/code&gt; 在训练前对 action 采样噪声、按 horizon reshape，并在推理中用固定步长 Euler 积分从噪声走到动作。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; LA-only 直接用 LA-33K 做预训练；VLA 使用恢复视觉后的 LA-33K-V；LA-VLA 先 LA 再 VLA；MixPT 在一个阶段内混合两种 batch。下游 finetuning 数据和优化预算保持一致，因此比较的是监督形式而非额外训练量。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; README 给出的示例中，Stage 1 使用 &lt;code&gt;--finetune_action_head --vision_masked&lt;/code&gt;、&lt;code&gt;max_steps 10000&lt;/code&gt;；Stage 2 使用 &lt;code&gt;--finetune_language_model --finetune_action_head --vision_masked&lt;/code&gt;、&lt;code&gt;max_steps 80000&lt;/code&gt;。这是官方复现实验路径，不应与论文所有 benchmark 的训练细节混为一谈。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 下游运行时重新提供视觉，视觉负责识别目标和场景，LA prior 负责让语言改变动作方向与局部运动模式。模型不需要生成文字动作描述；连续 action head 直接输出 action chunk，执行一部分后再 receding-horizon 重规划。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;LA4VLA_1B.run_inference&lt;/code&gt; 先调用 &lt;code&gt;get_vl_embeddings&lt;/code&gt;，再调用 &lt;code&gt;action_head.get_action&lt;/code&gt;；官方配置默认 &lt;code&gt;num_inference_timesteps=50&lt;/code&gt;。因此“没有视觉”是训练阶段的输入条件，不代表实际机器人部署时永远不看图像。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;| 论文概念 | 官方代码位置 | 实际行为 |
| --- | --- | --- |
| LA/VLA dataset | &lt;code&gt;dataset/lerobot_dataset_pretrain_mp.py&lt;/code&gt; | 读取 LeRobot record，返回 images、prompt、state、action、mask |
| Vision masking | dataset 的 &lt;code&gt;vision_masked_policy&lt;/code&gt; + model 的 image mask | 被 mask 的 view 用零 tensor，attention mask 关闭对应 image token |
| VLA backbone | &lt;code&gt;model/internvl3/internvl3_embedder.py&lt;/code&gt; | InternVL3-1B，图像 resize 到 448，语言模型层截取前 14 层 |
| Action head | &lt;code&gt;model/action_head/flow_matching.py&lt;/code&gt; | 8 层 Transformer、state encoder、MLP velocity head、Euler ODE |
| Training | &lt;code&gt;scripts/train.py&lt;/code&gt; | Accelerate/DeepSpeed、AdamW、cosine decay、checkpoint 与 wandb/swanlab 日志 |
| Inference | &lt;code&gt;scripts/LA4VLA_1B.py&lt;/code&gt; / &lt;code&gt;LA4VLA_1B_server.py&lt;/code&gt; | 生成 action chunk；需要提供 action mask |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 论文的数据构造器（Qwen3-VL-Plus proposal 与人工审核）没有随这个轻量训练仓库完整开源；仓库主要覆盖 LA-33K 的读取、模型、训练和推理。因此可以核对“如何训练”，但不能仅凭仓库复现全部自动标注过程。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; LA4VLA-1B 以 InternVL3-1B 为 backbone，配 flow-matching action head；所有对照固定模型、下游数据和 finetuning protocol。评测包括 MetaWorld、LIBERO、StarVLA transfer、xArm6 三项真实任务，以及 Gaussian image noise 鲁棒性。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-la4vla/real_world_process.1764inw6eu.webp&quot; alt=&quot;xArm6 上 Press Button、Place Book、Place Drink 三类语言条件任务（论文 Figure 4）&quot;&gt;&lt;/p&gt;
&lt;p&gt;真实任务每个 policy 每项 20 次试验：按语言按下四个按钮之一，把书放入三个货架位置之一，把饮料放入九宫格之一。初始场景相同，所以目标选择不能只靠视觉。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 主要结果如下，数字为平均成功率（%）：&lt;/p&gt;
&lt;p&gt;| Model / pretrain | MetaWorld Avg. | LIBERO Avg. | Real Avg. |
| --- | ---: | ---: | ---: |
| LA4VLA-1B / No | 69.73 | 92.85 | 38.3 |
| LA4VLA-1B / VLA | 79.78 | 94.40 | 48.3 |
| LA4VLA-1B / LA | 83.00 | 95.30 | 81.7 |
| LA4VLA-1B / LA-VLA | 86.75 | &lt;strong&gt;96.28&lt;/strong&gt; | — |
| LA4VLA-1B / MixPT | &lt;strong&gt;87.53&lt;/strong&gt; | 95.75 | &lt;strong&gt;83.3&lt;/strong&gt; |&lt;/p&gt;
&lt;p&gt;LA 相比 no-pretraining 在 MetaWorld 提升 13.27 个百分点；MixPT 提升 17.80 个百分点。在真实任务中，LA 和 MixPT 分别提升 43.4 和 45.0 个百分点。&lt;strong&gt;【Analysis】&lt;/strong&gt; LIBERO 已接近饱和，因此绝对增益较小；MetaWorld 的 hard/very hard 和真实多目标任务更能暴露语言 grounding 的差异。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;论文的核心消融是预训练调度，而不是删掉某一层网络：&lt;/p&gt;
&lt;p&gt;| 方案 | MetaWorld | LIBERO | 解释 |
| --- | ---: | ---: | --- |
| LA | 83.00 | 95.30 | 先隔离 language-action |
| LA→VLA | 86.75 | &lt;strong&gt;96.28&lt;/strong&gt; | 先学 prior，再恢复视觉 |
| MixPT | &lt;strong&gt;87.53&lt;/strong&gt; | 95.75 | 同阶段混合 LA 与 VLA |&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-la4vla/b1_la_visual.96ahdqbaj6.webp&quot; alt=&quot;LA-pretrained 的方向跟随与 action-decoding 表示分离（论文 Figure 5）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 另一个关键对照是同一套 LA protocol 迁移到 StarVLA：MetaWorld 从 58.39% 提升到 69.91%，LIBERO 从 93.70% 提升到 94.85%。这说明收益不是 LA4VLA-1B 架构的偶然特性。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;跨 architecture：&lt;/strong&gt; StarVLA 的 hard 与 very hard bucket 分别提升 14.4 和 30.0 个百分点，说明 LA prior 可以被不同 VLA backbone 使用。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;跨视觉条件：&lt;/strong&gt; 在真实图像加入 Gaussian noise 后，no-pretraining、VLA、LA、MixPT 的平均成功率分别为 27.5%、42.5%、67.5%、70.0%。&lt;strong&gt;【Analysis】&lt;/strong&gt; LA 不是让模型变成 blind policy，而是让视觉降质时仍有更强的 instruction-conditioned motion prior。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;instruction following：&lt;/strong&gt; LA-pretrained policy 在 masked visual 下 DAR=0.99、DCS=0.85；把 state 换成相反方向样本后仍有 DAR=0.95、DCS=0.80，而标准 VLA 在冲突视觉输入下会被拉向相反方向。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; LA4VLA 同时改变了三个监督统计量：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;时间密度&lt;/strong&gt;：一个高层 instruction 被改成多个局部 instruction，语言与动作的对齐更密。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输入竞争&lt;/strong&gt;：去掉视觉后，模型不能用背景、物体位置等 shortcut 完成训练，只能从 language + state 预测 motion pattern。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;跨场景复用&lt;/strong&gt;：&lt;code&gt;move left&lt;/code&gt;、&lt;code&gt;lift upward&lt;/code&gt;、&lt;code&gt;grasp&lt;/code&gt; 等 primitive 在不同物体和场景中重复出现，形成比整任务名称更可迁移的 prior。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;下游再加入视觉后，视觉负责“where/which object”，LA prior 负责“how to move”。这是一种功能分工，而不是把视觉能力永久牺牲掉。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 创新点是把“去视觉预训练”与“原有 VLA 数据”放进同一套可比较的设计空间，并用 LA-only、LA-VLA、MixPT 分离回答：语言动作信号是否有效，以及何时加入视觉最合适。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 数据重组本身也是创新：33K episode 并非新采集，而是把已有 demonstration 的隐式 supervision 变成可训练的显式接口。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;| 方法 | 语言的角色 | 视觉是否在动作预训练中必需 | 动作输出 |
| --- | --- | --- | --- |
| 标准 VLA | 高层 task instruction | 是 | 连续/离散动作 |
| LAP | 低层动作的自然语言描述 | 通常仍与 VLM 联合 | language-action + flow |
| FAST | 主要是 action tokenization | 是 | 压缩 action token |
| LA4VLA | atomic instruction 的独立 pretraining signal | LA 阶段否 | flow-matching continuous chunk |&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文隐含并明确依赖以下假设：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;atomic action 可以由短时间段和低层语言稳定描述；&lt;/li&gt;
&lt;li&gt;robot state 足以支撑动作动力学先验，但不承担目标定位；&lt;/li&gt;
&lt;li&gt;VLM 生成的 segment 经人工过滤后，噪声不会压过收益；&lt;/li&gt;
&lt;li&gt;DROID 中的 primitive 分布能迁移到 MetaWorld、LIBERO 和 xArm6。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 第一个假设决定了 taxonomy 设计的重要性：如果 segment 太长，语言又退化成高层 task；如果太短，动作方向和物理效果会被噪声淹没。&lt;/p&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;论文没有给出一个单独的 limitations section，且没有声称 LA pretraining 能替代视觉 grounding。作者明确强调 object localization、scene-specific target selection 仍需要视觉；LA 数据构造也依赖 VLM proposal 和人工审核。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;标注成本仍然存在。&lt;/strong&gt; 33K episode 的最终质量依赖人工过滤，论文报告了协议和一致性，但没有提供完全自动、无人工版本。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;primitive vocabulary 有偏置。&lt;/strong&gt; &lt;code&gt;move / grasp / lift / transport / place&lt;/code&gt; 覆盖常见桌面操作，却未必覆盖柔性物体、双臂协同、工具使用或接触丰富的 manipulation。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;实验规模与任务分布有限。&lt;/strong&gt; 真实实验是 xArm6、三类任务、每项 20 trials；不能直接推导到长时域 mobile manipulation 或 humanoid whole-body control。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;代码与论文并非完全等价。&lt;/strong&gt; 官方仓库重点是 LA4VLA-1B 训练/推理，论文中的完整 segmentation、人工审核和所有 benchmark 脚本未全部公开，因此复现需要额外数据处理工作。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;state shortcut 仍可能存在。&lt;/strong&gt; 论文的 conflicting-state 测试显示 prior 对替换 state 有韧性，但 LA 阶段仍输入 proprioception；在真实动力学或 embodiment 大幅变化时，state-action mapping 可能再次成为 shortcut。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; LA4VLA 给出的研究方向不是简单地“训练时永远不看图”，而是把 VLA 预训练拆成可组合的能力：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;先用无视觉的 LA 数据学习语言如何改变运动方向、时序和 gripper phase；&lt;/li&gt;
&lt;li&gt;再用带视觉的 VLA 数据学习目标选择与场景 grounding；&lt;/li&gt;
&lt;li&gt;根据任务选择 sequential、mixed 或按 dataset key 做 per-sample masking。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;对后续工作，我认为最值得验证的是三点：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;自动化质量控制&lt;/strong&gt;：用 trajectory consistency、逆运动学和 action-language entailment 替代部分人工审核。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;更结构化的 action vocabulary&lt;/strong&gt;：把接触状态、物体状态、skill phase 和不确定性纳入 instruction，而不是只有方向和 primitive。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;自适应视觉门控&lt;/strong&gt;：让策略在目标已确定时依赖 LA prior，在需要重新定位时再请求视觉，从而同时降低 shortcut 和推理成本。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;LA4VLA 的价值在于提出一个清晰的因果问题：当语言、视觉和状态都能预测动作时，模型到底学会了哪条路径？通过把视觉拿走一段时间，论文让这条路径变得可测量、可训练，也为 VLA 的 robustness 研究提供了一个相对干净的 intervention。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/120269913_p0_master1200.3k8lu5pi8s.webp"/><enclosure url="https://pic.hana0721.top/120269913_p0_master1200.3k8lu5pi8s.webp"/></item><item><title>InternVLA-A1 论文精读：把理解、想象与动作统一起来</title><link>https://agusexp25.top/blog/paper-deep-dive-internvla-a1</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-internvla-a1</guid><description>精读 InternVLA-A1：用 Mixture-of-Transformers 统一场景理解、视觉前瞻与 Flow Matching 动作，在动态双臂操作中提升泛化。</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;论文名称&lt;/strong&gt;：《InternVLA-A1: Unifying Understanding, Generation and Action for Robotic Manipulation》&lt;br&gt;
&lt;strong&gt;作者&lt;/strong&gt;：InternVLA-A1 Team（第一作者 Junhao Cai、Zetao Cai 等）&lt;br&gt;
&lt;strong&gt;机构&lt;/strong&gt;：上海人工智能实验室等&lt;br&gt;
&lt;strong&gt;年份&lt;/strong&gt;：2026（arXiv:2601.02456）&lt;br&gt;
&lt;strong&gt;论文链接&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2601.02456&quot;&gt;arXiv&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;代码&lt;/strong&gt;：&lt;a href=&quot;https://github.com/InternRobotics/InternVLA-A1/tree/InternVLA-A1&quot;&gt;InternVLA-A1&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;项目主页&lt;/strong&gt;：&lt;a href=&quot;https://internrobotics.github.io/internvla-a1.github.io/&quot;&gt;InternVLA-A1&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-internvla-a1/figure1_teaser_internvla_a1.8z79i8gy4a.webp&quot; alt=&quot;InternVLA-A1 总览与任务结果（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 传统 VLA 擅长“看懂并执行”，却不擅长推断动作会如何改变世界；视频世界模型能预测变化，却容易缺少语义锚点。InternVLA-A1 以 Mixture-of-Transformers（MoT）把 Understanding、Generation 和 Action 三个专家接成统一模型，让语义上下文与未来视觉动态共同决定动作。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;用统一的 masked self-attention 串联三个专家：Understanding Expert 编码多视角图像和语言，Generation Expert 预测未来视觉状态，Action Expert 以 Flow Matching 生成动作 chunk。&lt;/li&gt;
&lt;li&gt;采用轻量、非自回归的 Generation Expert：三视角、两个时间点共 6 张图像先经 COSMOS VAE，再压缩为 96 个 token，一次前向预测未来帧，目标运行频率约 13 Hz。&lt;/li&gt;
&lt;li&gt;设计混合预训练配方：InternData-A1、RoboTwin 仿真数据，AgiBot-World、RoboMind 真实机器人数据，以及 EgoDex 人类第一视角视频，共约 692M 帧。&lt;/li&gt;
&lt;li&gt;在 10 个静态、2 个动态真实任务和 RoboTwin 2.0 上验证。3B 模型静态任务平均成功率 75.1%，动态任务平均 86.7%，RoboTwin Easy/Hard 为 89.4%/89.6%。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 以 $pi_0$、$pi_{0.5}$ 和 GR00T 为代表的 VLA 通常从 MLLM 的视觉—语言特征直接回归动作。文本 token 对物理规律、接触和惯性的表达并不自然，因此策略多是反应式的：看到当前画面后立刻选动作，却很少显式考虑“执行后场景会变成什么”。在传送带分拣、运动中取食材等任务中，这种缺少 foresight 的策略容易错过时机。&lt;/p&gt;
&lt;p&gt;另一条路线是 World Model：根据当前观察和动作预测未来视频，再据此规划。它能表达动态，但预测误差会逐步累积，而且视频生成模型未必理解“哪个物体与指令相关”。InternVLA-A1 的出发点是让语义和动力学共享上下文，而不是把两个独立模型串联。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 论文的关键取舍是：未来图像不需要达到可供人欣赏的像素级保真度，只要 latent 中保留足够的运动趋势和接触线索，就能为动作专家提供有用的条件，同时保持控制频率。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 将机器人操作建模为从多视角观察 $o_t$、语言指令 $l$、本体状态 $q_t$ 到动作 chunk $a_{t:t+k}$ 的策略学习问题。输入包括头部相机和左右腕部相机图像、历史帧、语言以及关节/末端执行器状态；输出是连续动作序列。模型还要预测时间间隔 $m=15$ 后的视觉状态，以学习局部动力学。&lt;/p&gt;
&lt;p&gt;| 项目 | 论文设定 |
| --- | --- |
| Robot / Embodiment | Agibot Genie-1、ARX Lift-2、ARX AC One，均为双臂平台 |
| Observation | 头部 + 左右腕部多视角图像，当前与 $t-15$ 历史帧，本体状态 |
| Action | 连续动作 chunk，使用 Flow Matching 从噪声积分到目标动作 |
| Horizon | 未来视觉间隔 $m=15$；动作 chunk 长度由配置 &lt;code&gt;chunk_size&lt;/code&gt; 决定 |
| 数据 | 396M InternData-A1、17M RoboTwin、206M AgiBot-World、5M RoboMind、68M EgoDex 帧 |
| 评测 | 10 个静态真实任务、Express Sorting、In-motion Ingredient Picking、RoboTwin 2.0 |&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-internvla-a1/figure2_method_InternVLA-A1.1764ilnzpa.webp&quot; alt=&quot;InternVLA-A1 的 MoT 三专家架构（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 信息按 Understanding → Generation → Action 的方向流动：理解专家产生语义上下文，生成专家基于上下文和历史图像预测未来视觉 latent，动作专家再结合本体状态输出动作。三个 token 流通过 blockwise masked self-attention 连接，后面的 block 可以看见前面的 block，前面的 block 不能反向读取后面的输出。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;Understanding Expert&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：多视角图像 $o_t$ 与语言指令 $l$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;处理&lt;/strong&gt;：2B 版本采用 InternVL3-1B，3B 版本采用 Qwen3-VL-2B；视觉编码器将图像变成视觉 token，文本 tokenizer 产生语言 token。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：语义上下文 $h_{und}=f_{und}(l,o_t)$，作为后两个专家的共享 KV 上下文。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;作用&lt;/strong&gt;：把“要做什么”和“场景中有什么”对齐，给动态预测和动作生成提供任务相关语义。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Generation Expert&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-internvla-a1/figure3_specifics_gen_expert.41ysoe36mh.webp&quot; alt=&quot;Generation Expert 的输入压缩与并行解码（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：头部、左腕、右腕三个视角在 $t-15$ 和 $t$ 的 6 张 $256\times256$ 图像。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tokenization&lt;/strong&gt;：COSMOS CI8×8 VAE 把每张图像编码为 $32\times32$ latent grid（1024 token）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;压缩&lt;/strong&gt;：$8\times8$ 卷积把每张图压到 $4\times4$（16 token），6 张图总计 96 token，再投影到 Transformer hidden size。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;上下文交互&lt;/strong&gt;：Generation token 可双向注意自身，并通过统一注意力读取 Understanding token；实现上使用前一专家的 KV cache。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：沿时间轴平均池化 96 token 得到 48 token，经上采样和 COSMOS VAE decoder 并行重建 $t+15$ 的三视角图像。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要&lt;/strong&gt;：用一个前向 pass 获得粗粒度未来状态，避免自回归视频生成的高延迟；论文 Figure 10 显示虽然细节被牺牲，但主要运动趋势仍被保留。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Action Expert&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：$h_{und}$、$h_{gen}$、本体状态 $q_t$，以及 Flow Matching 中的带噪动作 $a_\tau$ 和时间 $τ$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;结构&lt;/strong&gt;：由 Qwen2.5（2B 版本）或 Qwen3（3B 版本）的 Transformer block 构成，前接状态投影和动作/时间嵌入，后接线性 action head。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：动作 chunk 的速度场 $v_\theta$；推理时通过 ODE 积分得到连续动作。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;注意力&lt;/strong&gt;：Action block 的 state token 只能看自己和前面 block；action token 可看 state token、前序 block 及同一 action block 的 token。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;视觉前瞻损失&lt;/h4&gt;
&lt;p&gt;设 COSMOS VAE 编码器为 $\phi_{cosmos}$，$z_t=\phi_{cosmos}(o_t)$，生成专家为 $f_{gen}$：&lt;/p&gt;
&lt;p&gt;$$
\mathcal L_{gen}=\mathbb E_{\xi_1}\left[\left|f_{gen}(z_{t-m},z_t;h_{und})-\operatorname{sg}[z_{t+m}]\right|_2^2\right]
$$&lt;/p&gt;
&lt;p&gt;$\xi_1=(o_{t-m},o_t,o_{t+m},l)$；$\operatorname{sg}$ 表示 stop-gradient。该项让模型在 latent 空间学习“当前状态向未来如何演化”，而不是只记住静态外观。&lt;/p&gt;
&lt;h4&gt;Flow Matching 动作损失&lt;/h4&gt;
&lt;p&gt;从高斯噪声 $\epsilon\sim\mathcal N(0,I)$ 和示教动作 chunk $a_{t:t+k}$ 构造：&lt;/p&gt;
&lt;p&gt;$$
a^\tau_{t:t+k}=(1-\tau)\epsilon+\tau a_{t:t+k},\quad \tau\sim\operatorname{Beta}(1.5,1.0)
$$&lt;/p&gt;
&lt;p&gt;动作专家学习把噪声搬运到示教动作的速度场：&lt;/p&gt;
&lt;p&gt;$$
\mathcal L_{act}=\mathbb E_{\xi_2}\left[\left|v_\theta(q_t,a^\tau_{t:t+k};h_{und},h_{gen})-(a_{t:t+k}-\epsilon)\right|_2^2\right]
$$&lt;/p&gt;
&lt;p&gt;其中 $\xi_2=(a_{t:t+k},o_{t-m},o_t,q_t,l)$。总目标为：&lt;/p&gt;
&lt;p&gt;$$
\mathcal L_{total}=\lambda\mathcal L_{gen}+\mathcal L_{act},\qquad \lambda=0.01
$$&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 训练分为预训练和任务后训练两阶段，但两阶段使用相同的视觉前瞻 + 动作联合目标。预训练混合三类数据；后训练针对目标任务降低学习率。预训练 700K steps、batch size 512、AdamW、$5\times10^{-5}$ 恒定学习率；后训练 60K steps、batch size 128，学习率从 $5\times10^{-5}$ 衰减到 $5\times10^{-6}$，warmup 2000 steps，均使用 bfloat16 和 1.0 梯度裁剪。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 训练数据的采样权重为 InternData-A1 0.64、RoboTwin 0.08、AgiBot-World 0.18、RoboMind 0.02、EgoDex 0.08。作者还提出 Load-balanced Parallel Training（LPT）：按数据集规模降序，将下一个数据集分配给当前负载最小的 worker；数据集少于 worker 时允许受控复制，以减少 I/O 竞争和隐式重加权。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方 A1 分支通过 &lt;code&gt;launch/internvla_a1_3b_pretrain.sh&lt;/code&gt; 和 &lt;code&gt;launch/internvla_a1_3b_finetune.sh&lt;/code&gt; 进入 LeRobot 训练入口；策略实现位于 &lt;code&gt;src/lerobot/policies/InternVLA_A1_3B/modeling_internvla_a1.py&lt;/code&gt;。代码冻结 COSMOS tokenizer 参数，可按配置冻结视觉编码器或仅训练专家；默认以 bfloat16 运行，并支持 gradient checkpointing 与 &lt;code&gt;torch.compile&lt;/code&gt;。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 推理时先缓存 Understanding Expert 的 KV，再处理当前/历史图像的 Generation Expert 输出；随后从高斯噪声开始，以固定步数 Euler ODE 反向积分动作速度场。视觉未来帧只在需要可视化时解码，低延迟部署可跳过 COSMOS decoder。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;| 论文概念 | 官方代码位置 / 行为 |
| --- | --- |
| 三专家 MoT | &lt;code&gt;Qwen3VLWithExpertModel&lt;/code&gt; 将 Understanding、Generation、Action 三个 Transformer 的同层 Q/K/V 拼接后统一注意力计算 |
| Understanding 输入 | &lt;code&gt;embed_prefix&lt;/code&gt; 调用 Qwen3-VL vision encoder，并将 image token 替换为视觉 embedding |
| Generation token 压缩 | &lt;code&gt;get_cosmos_features&lt;/code&gt; → &lt;code&gt;cosmos_in_proj&lt;/code&gt; → &lt;code&gt;downsample_conv&lt;/code&gt;；&lt;code&gt;embed_middle&lt;/code&gt; 展平为中间 token |
| 未来图像解码 | &lt;code&gt;decode_cosmos&lt;/code&gt; 做时间平均、&lt;code&gt;upsample_conv&lt;/code&gt; 和线性投影；COSMOS tokenizer 全程冻结 |
| Flow Matching | &lt;code&gt;forward&lt;/code&gt; 用噪声与动作插值构造 &lt;code&gt;x_t&lt;/code&gt;，监督速度 &lt;code&gt;u_t=noise-actions&lt;/code&gt;；&lt;code&gt;sample_actions&lt;/code&gt; 用 Euler 步进 |
| 注意力 mask | &lt;code&gt;make_att_2d_masks&lt;/code&gt; 以累计 segment mask 实现 prefix → middle → suffix 的信息流 |
| 工程优化 | 配置支持 &lt;code&gt;gradient_checkpointing&lt;/code&gt;、&lt;code&gt;compile_model&lt;/code&gt;，并可冻结视觉编码器或只训练专家 |&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 真实评测覆盖 Genie-1、ARX Lift-2 和 ARX AC One。静态任务包括 Zip Bag、Unscrew Cap、Make Sandwich、Operate Oven、Sort Parts、Sort Rubbish、Sweep Trash、Wipe Stain、Place Markpen、Place Flower；动态任务为 Express Sorting 和 In-motion Ingredient Picking。每个任务在 30 个预定义设置上各执行一次。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-internvla-a1/figure5_dynamic_tasks.46f7ps64s.webp&quot; alt=&quot;动态任务设置（论文 Figure 5）&quot;&gt;&lt;/p&gt;
&lt;p&gt;RoboTwin 2.0 覆盖 50 个双臂任务，Easy 使用干净场景，Hard 使用域随机化；微调共 27,500 条示范，评估结果平均 100 次试验。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 静态任务平均成功率如下：&lt;/p&gt;
&lt;p&gt;| 方法 | 平均成功率 |
| --- | ---: |
| GR00T N1.5 | 33.0% |
| π₀ (3.3B) | 60.6% |
| π₀.₅ | 70.7% |
| InternVLA-A1 (2B) | 64.7% |
| &lt;strong&gt;InternVLA-A1 (3B)&lt;/strong&gt; | &lt;strong&gt;75.1%&lt;/strong&gt; |&lt;/p&gt;
&lt;p&gt;3B 模型在 Make Sandwich 达到 93.3%，Operate Oven 86.7%，Zip Bag 73.3%。它比 π₀.₅ 的静态平均值高 4.4%，说明视觉前瞻不仅改善高层任务选择，也能帮助接触丰富的低层控制。&lt;/p&gt;
&lt;p&gt;动态任务结果更能体现方法动机：&lt;/p&gt;
&lt;p&gt;| 方法 | Express Sorting | In-motion Ingredient Picking | 平均 |
| --- | ---: | ---: | ---: |
| GR00T N1.5 | 40.0% | 20.0% | 30.0% |
| π₀ | 36.7% | 20.0% | 28.4% |
| π₀.₅ | 53.3% | 66.7% | 60.0% |
| InternVLA-A1 (2B) | 70.0% | 20.0% | 45.0% |
| &lt;strong&gt;InternVLA-A1 (3B)&lt;/strong&gt; | &lt;strong&gt;80.0%&lt;/strong&gt; | &lt;strong&gt;93.3%&lt;/strong&gt; | &lt;strong&gt;86.7%&lt;/strong&gt; |&lt;/p&gt;
&lt;p&gt;RoboTwin 2.0 上，InternVLA-A1 (3B) 的 Easy/Hard 平均成功率为 89.4%/89.6%，分别比 π₀.₅ 高 2.6 个百分点。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-internvla-a1/figure8_ablation_study_on_pretraining.13mikvuxeq.webp&quot; alt=&quot;预训练数据和从零训练对比（论文 Figure 8）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 去掉预训练后，12 个真实任务平均成功率从 77.0% 降到 25.4%，下降 51.6 个百分点。仅仿真数据在 RoboTwin 上已达 88.3%/88.5%，但真实 Place Flower 只有 53.3%、Sort Parts 只有 33.3%；加入人类视频后，Sort Parts 升至 40.0%；再加入真实机器人数据，Place Flower/Sort Parts 达到 60.0%/53.3%。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-internvla-a1/figure9_ablation_study_on_gen_expert.3nscxiuw3v.webp&quot; alt=&quot;去掉 Generation Expert 的对比（论文 Figure 9）&quot;&gt;&lt;/p&gt;
&lt;p&gt;去掉 Generation Expert 后平均成功率由 77.0% 降到 57.6%，12 个任务中有 11 个变差，动态任务降幅尤其明显。这直接支持“预测未来状态是动作生成的有效条件”这一设计。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 三种数据源承担互补角色：仿真提供大规模场景和轨迹多样性，真实机器人数据提供接触动力学与 sim-to-real 锚点，人类视频提供手—物交互和第一视角运动先验。三者联合训练在仿真和真实任务上同时最好，而不是只优化某一个 benchmark。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 动态任务的提升（相对 π₀.₅ 平均 +26.7 个百分点）比静态任务更大，说明 Generation Expert 学到的不是单纯的物体识别，而是与时间相关的决策线索，例如传送带速度、目标即将出现的位置和双臂协同的时机。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 反应式 VLA 只需拟合 $p(a_t|o_t,l)$；InternVLA-A1 先构造一个近似的 $p(o_{t+m}|o_{t-m},o_t,l)$，再让动作专家读取这个动态表征。即使未来图像不够清晰，latent 中的运动方向也能把动作从“看到再追”变成“预测后拦截”。同时，三个专家共享 attention 层，避免独立 world model 与 policy 之间的表示错位。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;架构创新&lt;/strong&gt;：MoT 不是简单并排堆模型，而是用累积 attention mask 明确信息流，让理解、生成、动作在同一 Transformer 深度内交互。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;效率创新&lt;/strong&gt;：Generation Expert 采用 VAE token 压缩、时间平均池化和并行解码，避免昂贵的自回归视频生成。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;训练创新&lt;/strong&gt;：同一个联合目标同时接纳有动作标签的机器人轨迹和只有视频标签的人类数据，扩大可用数据范围。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;工程创新&lt;/strong&gt;：官方实现提供 KV cache、gradient checkpointing、torch.compile 和 action-only 后端，能把 3B 模型推到约 13 Hz。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;| 路线 | 语义理解 | 动态预测 | 动作生成 | 主要问题 |
| --- | --- | --- | --- | --- |
| 传统 VLA | 强 | 隐式 | 直接/Flow Matching | 对快速变化场景缺少 foresight |
| 视频策略 + 独立动作头 | 中等 | 强 | 独立模块 | 多阶段训练、模块接口脆弱 |
| 独立 World Model + Planner | 取决于模型 | 强 | 规划器 | 误差累积、语义和控制分离 |
| &lt;strong&gt;InternVLA-A1&lt;/strong&gt; | &lt;strong&gt;MLLM&lt;/strong&gt; | &lt;strong&gt;Generation Expert&lt;/strong&gt; | &lt;strong&gt;Action Expert&lt;/strong&gt; | 统一训练，仍需更强语义与更高保真预测 |&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;$t-15$ 与 $t$ 的短时间窗口足以提供当前任务所需的局部动力学线索。&lt;/li&gt;
&lt;li&gt;低频、低保真的未来图像 latent 对动作比像素级重建更重要。&lt;/li&gt;
&lt;li&gt;仿真、真实机器人和人类视频的视觉/运动先验可以在共享表示中互补，而不会产生不可控的负迁移。&lt;/li&gt;
&lt;li&gt;Flow Matching 能以有限 Euler 步数覆盖示教动作的多模态分布。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Understanding Expert 没有与大规模多模态 VQA 数据联合训练，因此复杂语义推理和长指令跟随能力仍有限。&lt;/li&gt;
&lt;li&gt;为满足实时推理，Generation Expert 牺牲了图像预测的高频细节，未来帧的像素级保真度不足。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;预测间隔固定为 15 帧，面对不同速度的传送带或长时延接触，单一时间尺度可能不够；多尺度 foresight 尚未验证。&lt;/li&gt;
&lt;li&gt;论文主要报告成功率，缺少控制频率、ODE 步数、视觉解码开关对能耗和端到端延迟的完整消融，因此“13 Hz”不等于所有机器人部署条件下都能达到 13 Hz。&lt;/li&gt;
&lt;li&gt;混合数据的采样权重由经验设定，数据集之间的动作空间和相机分布差异可能导致隐性偏置；LPT 解决负载问题，但不自动解决语义/动力学域偏移。&lt;/li&gt;
&lt;li&gt;未来视觉预测目前作为动作条件使用，论文没有证明生成图像本身能支持可解释的显式规划或失败恢复。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;把“想象”做成可训练的中间监督&lt;/strong&gt;：未来状态预测不必追求视频生成的观感，只需保留会改变动作选择的因素，这为低延迟 world model 提供了实际目标。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;统一架构的价值在接口而非参数共享&lt;/strong&gt;：MoT 的关键是 attention mask 定义了语义→动态→动作的因果接口；未来可以把触觉、力矩或语言计划作为新的 block 插入同一信息流。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;数据互补应与任务难度对齐&lt;/strong&gt;：仿真扩大覆盖面，真实数据校准接触，人类视频补充运动先验。对动态任务，后两者可能比继续增加静态仿真轨迹更有价值。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;下一步可研究自适应时间尺度&lt;/strong&gt;：让模型同时预测短期和长期 latent，并让动作专家按不确定性选择观察/规划频率，可能比固定 15 帧更适合跨平台部署。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;评测应加入预测质量与控制质量的因果联系&lt;/strong&gt;：除了成功率，还应报告未来 latent 的校准度、动作对预测误差的敏感性，以及关闭 foresight 后的能耗和延迟变化。&lt;/li&gt;
&lt;/ol&gt;</content:encoded><h:img src="https://pic.hana0721.top/90399055_p0_master1200.4g535npbv6.webp"/><enclosure url="https://pic.hana0721.top/90399055_p0_master1200.4g535npbv6.webp"/></item><item><title>Hume 论文精读：让 VLA 先思考，再流畅行动</title><link>https://agusexp25.top/blog/paper-deep-dive-hume</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-hume</guid><description>精读 Hume 的 value-guided System-2 thinking 与 cascaded action denoising，并对照官方代码分析双系统异步控制。</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;《Hume: Introducing System-2 Thinking in Visual-Language-Action Model》把 VLA 控制拆成两个异步系统：System 2 是较慢但能反复采样、用 state-action value 选择动作的规划器；System 1 是轻量、快速的 visuomotor policy，负责把尚未完全去噪的动作片段变成流畅控制信号。论文在 3 个仿真环境、3 种真实机器人平台和 21 个真实任务上评估这一设计。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-hume/pipeline-crop.8vnnkq28ao.webp&quot; alt=&quot;Hume 双系统总览（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; Hume 把“是否值得执行”的判断从动作生成中分离出来：System 2 用多次采样换取候选多样性，System 1 用级联去噪换取实时性与精度。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;在预训练 VLA 上增加 value-query head，估计 observation 与候选 action chunk 的 state-action value，并用 Best-of-N 选择。&lt;/li&gt;
&lt;li&gt;提出 cascaded dual-system action denoising：System 2 输出长时域、带残余噪声的 chunk，System 1 接力完成局部去噪。&lt;/li&gt;
&lt;li&gt;设计低频 System 2 / 高频 System 1 的异步部署机制，使慢思考不会直接牺牲控制频率。&lt;/li&gt;
&lt;li&gt;在 LIBERO、SimplerEnv、WidowX、Franka 与 AgiBot G-1 上验证，并报告消融收益。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 现有 VLA 往往直接预测动作或 action chunk。Diffusion/flow-matching policy 能表达多模态动作，但采样成本高；单次采样又可能把偶然的坏轨迹交给机器人。纯粹增加采样次数则会降低闭环控制频率。&lt;/p&gt;
&lt;p&gt;Hume 借用了 LLM 中 System 1/System 2 的分工：System 2 进行低频、计算密集的候选评估，System 1 进行高频、反应式执行。&lt;strong&gt;【Analysis】&lt;/strong&gt; Hume 用学习到的 Q 函数排序候选，并显式保留长时域动作选择。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在时刻 $t$，给定多视角 RGB 图像、自然语言指令和机器人状态：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Observation&lt;/strong&gt;：$\mathbf{o}_t=(\mathbf{i}_t,\ell_t,\mathbf{s}_t)$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Action&lt;/strong&gt;：长度为 $H$ 的连续 action chunk，$\mathbf A_t=[\mathbf a_t,\ldots,\mathbf a_{t+H-1}]$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;目标&lt;/strong&gt;：从同一观测生成多个候选，选出价值最高者，再以高控制频率输出平滑动作。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Embodiment&lt;/strong&gt;：仿真中的 WidowX/Google robot，以及真实 WidowX、Franka、AgiBot G-1。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;奖励&lt;/strong&gt;：离线 RL 中每条 episode 的最后 3 个 transition 奖励为 $+1$，其余为 $0$。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方仓库提供 LIBERO 评估与训练代码，同时发布 Hume-System2 权重；README 标注真实世界和 SimplerEnv 评估代码仍未发布。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; System 2 读取 observation，经 VLM、flow-matching action head 和 value-query head 得到 $N$ 个不同噪声水平的候选；最高 Q 值的长 chunk 被切成短片段，送入 System 1 的 DINOv2-small + lightweight transformer 做连续去噪。数据流见 Figure 1。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;System 2：候选动作生成&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; action denoising head 学习 $p(\mathbf A_t\mid\mathbf o_t)$。从高斯噪声 $\mathbf A_t^0$ 出发，用 flow vector field $\mathbf v_\theta$ 积分到不同终点 $1-(n-1)\xi$，得到既有完全去噪动作、也有残余噪声的候选。&lt;/p&gt;
&lt;h4&gt;Value-query head&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; VLM 输入序列末尾附加可学习 query token $\mathbf q_t$。它与候选 action chunk 一起输入两个 critic 网络和一个 actor 网络组成的 Cal-QL 结构，输出 $Q_\theta(\mathbf q_t,\mathbf A_t)$：&lt;/p&gt;
&lt;p&gt;$$
\mathbf A_t^{\tau^*}=\arg\max_{n\in{1,\ldots,N}}Q_\theta(\mathbf q_t,\mathbf A_t^{\tau_n}).
$$&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-hume/pca_map-crop.6m4n18hhsf.webp&quot; alt=&quot;候选 action 与 Q 值的 PCA value map（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这个 head 把当前 observation、语言条件和整段 action chunk 联合编码，因此能偏好更可能完成长时域任务的候选，而不是只判断单步动作。&lt;/p&gt;
&lt;h4&gt;System 1：级联动作去噪&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; System 2 的 chunk 被切成 $K=H/h$ 个子 chunk。System 1 输入当前视觉、机器人状态和带残余噪声的子 chunk，从 $\omega=0$ 积分到 $\omega=1$，输出最终动作。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; FastVisuoExpertModel 使用 DINOv2-small 和轻量 transformer；HumePolicy.select_action 先调用 s2_model.sample_actions，再由 value_query_head.select_q_actions 选中，最后调用 s1_model.sample_actions。HumePolicy.infer 维护 action_plan 队列和 history_state。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;Flow matching&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 构造 $\mathbf A_t^\tau=\tau\mathbf A_t+(1-\tau)\epsilon$，其中 $\epsilon\sim\mathcal N(0,I)$，最小化：&lt;/p&gt;
&lt;p&gt;$$
\mathcal L_{FM}=\mathbb E\left[|\mathbf v_\theta(\mathbf A_t^\tau,\mathbf o_t)-(\epsilon-\mathbf A_t)|_2^2\right].
$$&lt;/p&gt;
&lt;p&gt;$\tau$ 表示噪声插值位置；推理使用 forward Euler，论文设置 10 个去噪步。&lt;/p&gt;
&lt;h4&gt;Cal-QL value objective&lt;/h4&gt;
&lt;p&gt;$$
\min_\theta;\alpha\mathcal R(\theta)+\frac12\mathbb E\left[(Q_\theta(\mathbf q_t,\mathbf A_t)-\mathcal B^\pi\bar Q(\mathbf q_t,\mathbf A_t))^2\right].
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; $\mathcal R$ 是 calibrated conservative regularizer，用于抑制分布外动作的 Q 值过估计；$\bar Q$ 是延迟 target network。&lt;/p&gt;
&lt;h4&gt;Cascaded denoising&lt;/h4&gt;
&lt;p&gt;$$
\widetilde{\mathbf A}&lt;em&gt;{t+kh}^{\omega}=\widetilde{\mathbf A}&lt;/em&gt;{t+kh}^{\tau^*}+\int_0^\omega\mathbf v_\theta(\widetilde{\mathbf A}&lt;em&gt;{t+kh}^{\omega},\widetilde{\mathbf o}&lt;/em&gt;{t+kh})d\omega.
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; System 1 的初值是被选中的“半成品”动作，因此级联阶段更像 refinement，而不是重新规划。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 训练分两阶段：第一阶段训练 VLM backbone 与 System 2 action head；第二阶段冻结这两部分，从头训练 System 1 和 value-query head。Q head 使用离线 demonstrations、稀疏终点奖励和 Cal-QL；System 1 使用 flow-matching loss。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; train_s2.py 对应阶段一；train_vqh_s1.py 管理 trunk、actor、critic、temperature 四个 optimizer，并按 soft_target_critic_update_rate=5e-3 更新 target critics。代码默认 s1_chunk_size=8、s2_chunk_size=8、vqh_chunk_size=10，与论文正文的 $H=30,h=15$ 不完全相同。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 示例中 System 2 以 4 Hz 生成 $N=5$ 个长度 $H=30$ 的候选，System 1 以 6 Hz 处理长度 $h=15$ 的子 chunk，执行频率可达到 90 Hz。两个系统通过共享队列异步协作。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; README 示例使用 s2_candidates_num=5、replan_steps=8、s2_replan_steps=16。select_action 缓存 noise_action，用 stamp 计算滑动窗口，说明代码不必每个控制周期重新运行 System 2。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;| 论文概念         | 官方代码位置                          | 实际行为                                          |
| ---------------- | ------------------------------------- | ------------------------------------------------- |
| System 2 VLA     | src/hume/models/modeling_hume.py      | PaliGemma-with-expert 的 action flow matching     |
| Value-query head | src/hume/models/value_query.py        | VQH backbone + CalQL actor/双 critic              |
| System 1         | src/hume/models/fast_visuo_expert.py  | DINOv2-small + lightweight transformer            |
| 异步/缓存        | HumePolicy.infer、select_action       | action_plan 队列、stamp 滑窗、候选 action/Q cache |
| 训练             | training/train_s2.py、train_vqh_s1.py | 分阶段训练与 target critic 更新                   |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; README 的 TODO 仍把真实世界与 SimplerEnv 评估标为未发布，因此本文不把未公开脚本行为当作代码事实。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-hume/exp_setup-crop.4clmhqwr82.webp&quot; alt=&quot;Hume 实验平台：WidowX、AgiBot G-1 与 Franka（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 实验覆盖 SimplerEnv 和 LIBERO 仿真，以及 WidowX、Franka、AgiBot G-1 三个平台；真实测试共 21 个 manipulation tasks，包含视角/纹理/光照变化、未见物体、可变形物体、工具使用和 humanoid 控制。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; LIBERO 平均成功率为 &lt;strong&gt;98.6%&lt;/strong&gt;，四个 suite 均排名第一；LIBERO-Long 为 &lt;strong&gt;96.7%&lt;/strong&gt;，高于 $\pi_0$ 的 85.2%。SimplerEnv WidowX 平均 &lt;strong&gt;72.6%&lt;/strong&gt;，Google robot 的 variant aggregation 平均 &lt;strong&gt;74.1%&lt;/strong&gt;、visual matching 平均 &lt;strong&gt;78.7%&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-hume/exp_widowx-crop.2ksnmudedl.webp&quot; alt=&quot;WidowX 真实任务结果（论文 Figure 4）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; WidowX 真实任务平均成功率为 91%，相对 $\pi_0$ 提升 12 个百分点；Franka 平均 87%，相对 $\pi_0$ 提升 14.75 个百分点。AgiBot 的 Fold Shorts 成功率 88%，Pour Water 为 82%。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-hume/exp_franka_agibot-crop.7zr659sjo1.webp&quot; alt=&quot;Franka 与 AgiBot G-1 真实任务结果（论文 Figure 5）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-hume/ablation_bar-crop.mta7dfn1.webp&quot; alt=&quot;Hume 真实平台消融结果（论文 Figure 6）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; LIBERO 平均成功率从完整模型的 98.6% 降至：去掉 cascaded denoising 为 95.9%，去掉 repeat sampling 为 93.8%，去掉 System 1 为 89.8%，去掉 value-query head 为 84.9%。SimplerEnv WidowX 对应平均值为 72.6%、68.7%、65.6%、61.6%、56.3%。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; value head 决定“选谁”，repeat sampling 决定“有没有可选项”，System 1 决定“选中的半成品能否被精确执行”。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 泛化测试覆盖环境外观、相机位姿、语言描述、物体与布局变化，以及跨 embodiment 的真实部署。&lt;strong&gt;【Analysis】&lt;/strong&gt; 目前证据主要是任务内训练、跨外观/平台测试；论文没有证明完全未见任务语义上的 zero-shot planning。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; flow-matching policy 的单次输出包含采样噪声。Hume 先保留多样性，再用 Q head 把它转化为候选间的可选择性；System 1 避免把全部去噪步骤堆到慢速 VLA 上。System 2 解决选择问题，System 1 解决执行问题。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Value-guided repeat sampling&lt;/strong&gt;：Q 值对 action chunk 排序。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cascaded action denoising&lt;/strong&gt;：把未完成的 flow trajectory 作为快策略输入。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Asynchronous dual frequency&lt;/strong&gt;：慢模块只在重规划时运行，快模块持续消费动作队列。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 相比普通 Best-of-N，候选来自不同 flow 时间终点；相比 diffusion policy refinement，Hume 额外学习离线 RL value function；相比单体 VLA，规划频率和执行频率可以独立设置。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Q head 能从离线 demonstration 学到可靠的 state-action value。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 候选 action 的 Q 排序在分布外状态仍然有效。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; System 1 能在下一个 System 2 chunk 到来前完成去噪。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文正文没有单独的 limitations 小节，也没有报告完整的推理显存、功耗或端到端延迟分解；论文未明确说明这些部署成本。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Q head 依赖稀疏终点奖励，可能难以细致估计中间状态的可恢复性。&lt;/li&gt;
&lt;li&gt;$N$ 次 System 2 采样带来近似 $N$ 倍的 backbone/action-head 计算。&lt;/li&gt;
&lt;li&gt;critic 偏差可能反过来影响候选选择，Cal-QL 只能缓解而不能消除耦合风险。&lt;/li&gt;
&lt;li&gt;论文的 $H=30,h=15$ 与公开代码默认 chunk 配置不同，复现必须锁定 config、checkpoint 和数据处理流程。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; Hume 给出的可迁移范式是“粗粒度候选 + 细粒度执行”。后续值得追问：能否用 uncertainty-aware value 让 $N$ 自适应？能否让 System 1 预测执行风险并主动请求 System 2？能否把高层 subgoal 或 world model rollout 接入 value-query head，减少对稀疏终点奖励的依赖？&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/105886628_p0_master1200.5fl6its319.webp"/><enclosure url="https://pic.hana0721.top/105886628_p0_master1200.5fl6its319.webp"/></item><item><title>Helix 技术发布精读：快慢双系统 VLA</title><link>https://agusexp25.top/blog/paper-deep-dive-helix</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-helix</guid><description>精读 Figure Helix 技术发布：以 7–9Hz 的语义 VLM 和 200Hz 的视觉运动策略分工，在人形上半身连续控制中兼顾泛化与实时性。</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&amp;#x3C;ArxivRating
id=&apos;Figure AI Helix&apos;
url=&apos;https://www.figure.ai/news/helix&apos;
publication=&apos;Figure AI 技术发布（2025）&apos;
tldr=&apos;Helix 把慢速、通用的 VLM（System 2）与高速、反应式的视觉运动策略（System 1）端到端连接：前者以连续 latent 给出语义意图，后者以 200Hz 生成全上半身连续控制。&apos;
rank={4}
links={[{ type: &apos;website&apos;, href: &apos;https://www.figure.ai/news/helix&apos; }]}
/&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;阅读范围。&lt;/strong&gt;【Paper】本文的唯一一手资料是 Figure AI 于 2025 年 2 月 20 日发布的技术说明《Helix: A Vision-Language-Action Model for Generalist Humanoid Control》。它不是 arXiv 论文：未公开论文 PDF、作者列表、代码仓库、训练配置或可复现实验表。为与本栏目组件兼容，顶部卡片保留了 &lt;code&gt;ArxivRating&lt;/code&gt;，但其中的 “Figure AI Helix” 是来源标识，&lt;strong&gt;不是 arXiv 编号&lt;/strong&gt;。下文的【Paper】均指该官方技术发布；【Code】部分只报告“未公开”，不会用第三方复现冒充官方代码。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Helix 是面向 Figure 人形机器人上半身控制的 Vision-Language-Action（VLA）系统：System 2（S2）用一个 7B 的开放权重 VLM 以 7–9Hz 理解图像、机器人状态和自然语言，压缩出单个连续 latent；System 1（S1）以 200Hz 把该 latent 与最新视觉/状态结合，输出连续的全上半身控制。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;以不同时间尺度拆分“语义理解”和“反应式控制”：S2 慢、通用；S1 快、闭环。&lt;/li&gt;
&lt;li&gt;用一个连续 latent 连接两个系统，而非把高维人形动作离散成 Action Token。&lt;/li&gt;
&lt;li&gt;在约 500 小时、多机器人、多操作者的遥操作数据上，端到端训练同一组模型权重；训练物品会从评测中排除。&lt;/li&gt;
&lt;li&gt;把 S2 与 S1 部署在机器人上的两块低功耗嵌入式 GPU 上，分别异步运行。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 家庭环境包含形状、材质和摆放都不稳定的物体。传统手工脚本的技能数量受专家工程时间限制；单任务模仿学习虽然能随数据扩张，却需要为新任务采集示教。Helix 的目标是把互联网预训练 VLM 的物体/语言先验转换为即时的机器人行为，从而让自然语言成为新增行为的接口。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-helix/helix-scaling.helix20260826.webp&quot; alt=&quot;Figure 官方发布中的技能获取缩放曲线（Figure 1）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这里的“缩放”是 Figure 给出的产品/研究主张，而不是可用于拟合的定量 scaling law：图中没有坐标数值、置信区间或统一评测协议。它准确表达了 Helix 想改变的瓶颈，但不能单独证明相对于其他路线的样本效率。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 此前 VLA 常遇到一项工程张力：VLM 的开放世界语义能力强，却难以直接承担高频闭环控制；专用 visuomotor policy 响应快，却通常依赖任务内数据、泛化范围有限。Helix 以 S2/S1 的异步分工处理该张力，而不是让一个网络以同一频率同时解决两件事。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 给定单目机载图像 $I_t$、机器人状态 $s_t$ 与语言指令 $l$，Helix 要持续输出人形上半身的连续目标控制。官方列出的状态包含手腕位姿和手指位置；动作包含目标手腕位姿、手指屈曲/外展、躯干与头部朝向，以及一个人工加入的“任务完成百分比”动作。官方同时称系统在 200Hz 下协调 35-DoF action space；各 DoF 与上述控制量的一一对应、坐标系、限幅和底层控制器细节均未公开。&lt;/p&gt;
&lt;p&gt;可将发布中描述的策略抽象为：&lt;/p&gt;
&lt;p&gt;$$
z_t = g_{\phi}(I_t, s_t, l), \qquad
\hat a_t = f_{\theta}(I_t, s_t, z_t).
$$&lt;/p&gt;
&lt;p&gt;其中 $g_{\phi}$ 是 S2，$z_t$ 是它输出的连续语义 latent，$f_{\theta}$ 是 S1，$\hat a_t$ 是一个高频连续动作。&lt;strong&gt;【Analysis】&lt;/strong&gt; 这不是官方给出的原始公式，而是对其文字架构的记号化；它的价值在于把“任务意图”和“瞬时运动控制”之间唯一的显式通信接口标出来。&lt;/p&gt;
&lt;p&gt;| 要素 | 发布中可确认的信息 | 未公开的信息 |
| --- | --- | --- |
| 观测 | 单目机载图像、手腕位姿、手指位置、语言指令 | 图像分辨率、历史长度、标定和归一化 |
| 动作 | 上半身连续控制；官方称 35 DoF、200Hz | 每一维定义、控制增益、执行器接口 |
| 机器人 | Figure humanoid，双机器人可同时运行相同权重 | 硬件型号的完整规格与安全约束 |
| 数据 | 约 500 小时、多机器人多操作者遥操作 | 任务分布、样本数、采样率与数据划分 |&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 数据流可压缩为一句：S2 将图像、机器人状态和语言压缩成连续 latent，S1 将该 latent 投影到自己的 token 空间、与其视觉特征沿序列维拼接，再生成连续控制；两者端到端训练，但部署时异步运行。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 该结构的关键并非“两个模型”本身，而是把低带宽、慢更新的 $z_t$ 设为高层语义接口。S1 仍读取最新图像和状态，因此当伙伴机器人或被抓物体发生小尺度变化时，不必等待下一次 S2 更新才纠正动作。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;System 2：慢速语义 VLM&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; S2 是一个在互联网规模数据上预训练的 7B 开放权重 VLM，运行频率为 7–9Hz。它把单目图像和机器人状态投影到 vision-language embedding space，并与自然语言命令一起处理，输出单个连续 latent vector，承载与当前任务相关的语义信息。&lt;/p&gt;
&lt;h4&gt;System 1：高速 latent-conditional policy&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; S1 是一个 80M 参数的 cross-attention encoder-decoder Transformer。其视觉支路是 fully convolutional、multi-scale backbone，并由纯仿真预训练初始化。S1 接收与 S2 相同类型的图像/状态输入，但以更高频率运行；它把 S2 latent 投影为 token，并与视觉特征按 sequence dimension 拼接，以条件化自己的动作输出。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这让 S1 的条件变量不是离散技能 ID，也不是逐步生成的文字推理，而是可端到端反传的连续向量。代价是 $z_t$ 的语义可解释性、维数与失效模式未披露；外部读者无法验证它是否真的只编码“高层意图”。&lt;/p&gt;
&lt;h4&gt;完成度动作与多机器人场景&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 官方在动作空间中附加“percentage task completion”，并说明它可作为预测终止条件，便于串联多个已学行为。在双机器人杂货收纳演示中，两台机器人使用相同的 Helix 权重，根据诸如“把饼干袋递给右边的机器人”的指令协作；发布称未为不同机器人分配专门角色或专门权重。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 官方只说明使用“standard regression loss”从原始像素和文本映射到连续动作，未给出 L1/MSE 的具体形式、损失权重、优化器或训练步数。因此可确认的训练目标只能写成抽象形式：&lt;/p&gt;
&lt;p&gt;$$
\min_{\theta,\phi}; \sum_t D!\left(
f_{\theta}(I_t, s_t, g_{\phi}(I_{t-\Delta}, s_{t-\Delta}, l)),
a_t
\right).
$$&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;$a_t$：遥操作示教中的连续目标动作；&lt;/li&gt;
&lt;li&gt;$D$：官方所称的 regression loss，具体定义未公开；&lt;/li&gt;
&lt;li&gt;$\Delta$：S2 与 S1 输入之间的 temporal offset；&lt;/li&gt;
&lt;li&gt;$I_{t-\Delta}, s_{t-\Delta}$：S2 使用的较早观测，$I_t, s_t$ 则供高速 S1 使用。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 发布明确说会校准 $Δ$，使其匹配部署时 S1/S2 推理延迟的差距，并让来自 S1 的梯度经 latent 回传至 S2。&lt;strong&gt;【Analysis】&lt;/strong&gt; 因而 offset 不是数据增强细节，而是异步系统的训练—推理对齐机制：若训练时两支路“同步”、部署时却使用陈旧 latent，S1 学到的条件分布会改变。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 训练数据是约 500 小时的高质量遥操作行为，覆盖多个机器人和操作者。Figure 先把机载相机视频切成片段，再用 auto-labeling VLM 生成 hindsight instruction；其提示语是“为了得到视频中看到的动作，你会给机器人什么指令？”。官方称评测物品均从训练物品中排除。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 发布还说明训练只有单一阶段、所有行为共用一组权重，没有每任务 fine-tuning 或独立 action head。batch size、学习率、数据增强、仿真预训练的任务和冻结策略均未公开。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 每台机器人配备两块低功耗嵌入式 GPU：S2 在一块 GPU 上作为异步后台进程，持续读取最新观测和语言指令，并将 latent 写入共享内存；S1 在另一块 GPU 上维持 200Hz 实时循环，每一步读取最新观测和最近一次 S2 latent。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这是典型的 fast/slow control interface：S2 提供低频目标，S1 保留高频视觉反馈。它不会消除 S2 的语义误判，却能避免慢 VLM 的单次延迟直接决定 200Hz 执行环的时延。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 截至本文发布日，Figure 的 Helix 官方页面未链接代码仓库，页面 HTML 中也没有 GitHub 链接；Figure AI 的 GitHub 组织 API 地址并不存在。检索到的公开仓库均由第三方标明为 implementation/reimplementation，不能当作官方实现。因此没有可核对的 model、dataset、loss、checkpoint 或 evaluation 代码路径，本节不进行虚构的逐文件对照。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 公开材料展示了 Figure humanoid 的上半身控制：手腕、手指、躯干和头部在 200Hz 下联动；发布称 35-DoF action space，并强调头/躯干运动会同时改变可达空间与相机视野。数据来自多机器人、多操作者遥操作，约 500 小时。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 该技术发布没有公开标准 benchmark 名称、训练/测试轨迹数、机械人重复次数、成功判据或随机种子。演示视频可以说明系统曾完成过展示的行为，不能替代可复现的实验设置。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Figure 报告三类定性结果：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;单机器人以 200Hz 进行细粒度全上半身控制；&lt;/li&gt;
&lt;li&gt;两台机器人以同一权重完成零样本杂货收纳与交接；&lt;/li&gt;
&lt;li&gt;对“Pick up the [X]”等指令，在杂乱场景中抓取数千种训练中未出现的小型家居物品，并能把抽象描述（如 desert item）对应到目标物。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这些结果支持“语义条件 + 高频控制可以共同工作”的可行性，但发布没有给出成功率、失败率、对象集合、遮挡程度或和强基线的统一对比。因而“数千种”“零样本”和“匹配最快单任务 BC”的性能主张应视为厂商报告，不能换算为跨论文的排名。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 未公开 ablation table、消融视频对照或 S1/S2 频率、latent、视觉 backbone、时间偏移的单因素实验。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 最关键而尚未被公开回答的问题包括：去掉 S2 latent 后，S1 的对象/语言泛化下降多少；降低 S1 频率时，接触操作和双机交接会如何退化；去掉 temporal offset 后，异步部署的错误是否显著增加。没有这些对照，就难以分离“互联网 VLM 先验”“500 小时遥操作数据”和“快慢架构”各自的贡献。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 官方称训练中处理过的物品都从评测中剔除，且同一组权重可在两台机器人上运行，不要求机器人专属训练或显式角色分配。其展示覆盖新物体抓取、抽屉/冰箱操作及协作交接。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这证明的主要是 object-level generalization 与相同 embodiment 的多实例协作，不等同于 cross-embodiment transfer。两台 Figure 机器人共享形态、传感器和动作空间；换成另一种手、相机或动力学平台时是否仍有效，官方资料没有证据。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; S2 把稀疏的高层语言、物体类别与场景关系压入 $z_t$，让 S1 不必在每个 5ms 控制周期重跑 7B VLM；S1 则保留对最新视觉与本体状态的读取，能在接触、运动伙伴和视角变化中快速修正。端到端梯度使 $z_t$ 可以针对“让 S1 更好控制”而非只针对文字描述优化。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; Helix 的新意更准确地说是&lt;strong&gt;异步连续接口&lt;/strong&gt;：不是将慢 VLM 的离散结论直接下发给传统控制器，也不是强迫单个大模型在高频输出动作，而是以一个可学习 latent 作为慢语义与快控制之间的桥。这与它选择直接回归高维连续动作、避开 action tokenization 共同构成设计核心。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;| 路线 | 高层语义 | 低层动作 | Helix 的区别 |
| --- | --- | --- | --- |
| 单任务 BC | 通常隐含在任务内数据 | 高频连续控制 | Helix 额外从 VLM 引入语言/物体先验 |
| 单速 VLA | 同一模型处理理解和动作 | 频率受大模型推理限制 | Helix 让 S2 与 S1 各以自己的时钟运行 |
| Action Token VLA | 离散动作 token | 逐 token 解码 | Helix 直接回归 35-DoF 级连续目标（官方描述） |&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 该方案至少依赖四个假设：VLM 先验可映射到机器人相机视角；低频 latent 在两次更新之间足以保持任务意图；S1 可从 500 小时左右数据中掌握高维接触控制；共享内存与双 GPU 的延迟足够稳定，使训练时校准的 offset 在部署中仍成立。任一假设失效，都可能使“慢语义 + 快执行”的接口变成信息过期或不可靠的瓶颈。&lt;/p&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 官方发布强调优势，但没有单列 limitations 部分，也未报告失败案例、边界条件或安全约束。因此作者明确提出的局限为：&lt;strong&gt;论文未明确说明。&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;证据不完整。&lt;/strong&gt; 没有任务成功率、统计误差、基线细节和 ablation，无法独立判断所称泛化幅度。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;可复现性有限。&lt;/strong&gt; 7B VLM 的具体型号、latent 维度、数据、损失、控制器与代码均未公开；第三方无法做严格复验。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;安全与恢复未知。&lt;/strong&gt; 高维人形控制还涉及碰撞、夹持力、关节限位和失败恢复，但公开材料未描述 safety filter 或 fallback policy。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;latent 过期风险。&lt;/strong&gt; S1 虽有新观测，却仍受最近一次 S2 latent 条件化；语义目标突变或遮挡消失时，慢通道更新可能成为限制。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; Helix 的价值在于把“VLM 太慢、控制策略太窄”这个常见二选一改写为接口设计问题。后续研究最值得公开和检验的，反而不是继续增大 S2，而是：如何量化 latent 更新率与控制质量的关系；如何让 S1 在高风险接触时拒绝过期语义条件；如何在不同相机、手部和机器人形态之间定义稳定的快慢接口；以及如何用标准 benchmark 与失败分布验证零样本抓取的真实边界。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/70217040_p0_master1200.77e5dp0f1s.webp"/><enclosure url="https://pic.hana0721.top/70217040_p0_master1200.77e5dp0f1s.webp"/></item><item><title>HALO 论文精读：让 VLA 先思考、再想象、后行动</title><link>https://agusexp25.top/blog/paper-deep-dive-halo</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-halo</guid><description>精读 HALO：用 Mixture-of-Transformers 将文本推理、视觉子目标预测与动作生成统一为 Embodied Multimodal Chain-of-Thought，并分析其训练配方、实验和代码现状。</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; HALO（Embodied Multimodal Chain-of-Thought）针对长时程、分布外的机器人操作任务，提出“思考（文本计划）—想象（视觉子目标）—行动（动作 chunk）”的统一 VLA。模型由三个 MoT 专家组成：Multimodal Understanding、Visual Generation 和 Action Prediction；专家参数彼此独立，却通过共享 self-attention 协作。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-halo/architecture.5j4xqcmvsi.webp&quot; alt=&quot;HALO MoT architecture and EM-CoT data flow (paper Figure 1)&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; HALO 的关键不是让语言模型“多说几句”，而是把可解释的文本计划和可检验的未来画面变成动作策略的条件变量，从而把反应式 policy 改造成带中间状态的 deliberative policy。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;以 MoT 将语义推理、视觉生成和动作预测解耦，同时保留跨模态共享注意力。&lt;/li&gt;
&lt;li&gt;提出 EM-CoT 数据合成流水线：从原始轨迹提取动作 primitive，再用 VLM 生成任务叙事、subtask 和逐帧 reasoning，最后以 subtask 终止帧作为 visual subgoal。&lt;/li&gt;
&lt;li&gt;采用 VQA、视觉生成和动作模仿的 versatile pre-training，再进行 EM-CoT fine-tuning。&lt;/li&gt;
&lt;li&gt;在 RoboTwin 2.0 和 Cobot Mobile ALOHA 上验证了 OOD 与真实环境泛化。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 传统 VLA 往往直接学习 $\pi_\theta(\mathbf a_{t:t+m}\mid\mathbf l,\mathbf o_{t-k:t})$。当任务包含多个依赖步骤或场景发生变化时，单纯从当前图像反应容易累积误差，也难以显式预测“执行后世界会变成什么”。Textual CoT 能提供高层计划，visual subgoal 能提供空间锚点，但两者通常没有与动作在同一 policy 内联合建模。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; HALO 与 OpenVLA/FAST 的离散动作 token、$\pi_0$ 的 action expert、ManualVLA 的共享规划器相比，真正改变的是中间监督的组合方式：文本回答“下一步为什么做”，子目标图像回答“下一步应看到什么”，动作 chunk 才回答“具体怎么做”。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 给定语言指令 $\mathbf l$ 与最近 $k$ 帧观测 $\mathbf o_{t-k:t}$，HALO 学习三条条件分布：&lt;/p&gt;
&lt;p&gt;$$
\mathbf r\sim P_\theta(\cdot\mid\mathbf l,\mathbf o_{t-k:t}),\qquad
\hat{\mathbf o}&lt;em&gt;{t+h}\sim P&lt;/em&gt;\theta(\cdot\mid\mathbf l,\mathbf o_{t-k:t},\mathbf r),
$$
$$
\mathbf a_{t:t+m}\sim\pi_\theta(\cdot\mid\mathbf l,\mathbf o_{t-k:t},\mathbf r,\hat{\mathbf o}_{t+h}).
$$&lt;/p&gt;
&lt;p&gt;其中 $\mathbf r$ 是 textual chain-of-thought，$\hat{\mathbf o}&lt;em&gt;{t+h}$ 是未来子目标图像，$\mathbf a&lt;/em&gt;{t:t+m}$ 是要执行的连续动作 chunk。实验推理时使用 $c=3$ 帧观测，仿真动作 chunk $K=16$，真实实验 $K=50$。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 输入端将指令、当前图像和机器人状态分别编码；special token（如 &lt;code&gt;&amp;#x3C;think_start&gt;&lt;/code&gt;、&lt;code&gt;&amp;#x3C;vision_start&gt;&lt;/code&gt;、&lt;code&gt;&amp;#x3C;action_start&gt;&lt;/code&gt;）控制 hidden state 路由到三个专家。共享 self-attention 让专家读取彼此的上下文，最终依次产生文本 reasoning、visual subgoal 和 action chunk。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-halo/Attn_mask_04.86ue0pfxea.webp&quot; alt=&quot;Attention masking strategy for EM-CoT (paper Figure 3)&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 文本 token 使用 causal mask；同一帧的视觉 token 双向注意，跨帧和跨模态仍保持因果约束；noise token 之间可双向注意，但非 noise token 不能读取 noise，避免目标泄漏。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;Multimodal Understanding Expert&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Qwen2.5 tokenizer 处理语言；SigLIP2 初始化的 ViT 加 NaViT 处理原始长宽比图像；两层 MLP projector 将视觉特征映射到 LLM hidden space。该专家负责 VQA、指令理解和 textual CoT。&lt;/p&gt;
&lt;h4&gt;Visual Generation Expert&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; FLUX VAE 将图像压缩为 latent，按 $2\times2$ 空间 patch 展平后投影为 token。Visual Generation Expert 预测未来帧的 flow velocity，再由 VAE decoder 重建 visual subgoal；VAE 参数保持冻结。&lt;/p&gt;
&lt;h4&gt;Action Prediction Expert&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 连续动作通过线性 encoder 进入统一 hidden space，action head 再映射回原始动作维度。该专家使用 flow matching 预测动作速度，输出一段动作而不是单步反应。&lt;/p&gt;
&lt;h4&gt;EM-CoT 数据合成&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-halo/CoT.3nscxqagex.webp&quot; alt=&quot;EM-CoT data synthesis pipeline (paper Figure 2)&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 流水线分三步：规则匹配根据位姿和夹爪变化把轨迹转成 move/grasp/release primitive；Qwen3-VL 生成全局 task narrative、subtask 列表和逐帧第一人称 reasoning；每个 subtask 的终止帧被广播给该段所有帧，作为稀疏 visual subgoal 标签。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 终止帧广播是一种“低带宽”未来监督：它不要求模型重建每个中间像素，而只要求模型知道当前子任务完成后应到达的视觉状态，降低了长视频预测的学习难度。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; versatile pre-training 的联合损失为：&lt;/p&gt;
&lt;p&gt;$$
\mathcal L_{\mathrm{pt}}=0.25\mathcal L_{\mathrm{CE}}+0.5\mathcal L_{\mathrm{MSE}}+\mathcal L_{\mathrm{L1}}.
$$&lt;/p&gt;
&lt;p&gt;其中 $\mathcal L_{\mathrm{CE}}$ 是 VQA 的 token cross-entropy，$\mathcal L_{\mathrm{MSE}}$ 是视觉 flow matching 的均方误差，$\mathcal L_{\mathrm{L1}}$ 是动作 flow matching 的 L1 损失。权重体现了作者对 manipulation 目标的偏置。&lt;/p&gt;
&lt;p&gt;EM-CoT fine-tuning 使用：&lt;/p&gt;
&lt;p&gt;$$
\mathcal L_{\mathrm{ft}}=\mathcal L_{\mathbf r}+\mathcal L_{\hat{\mathbf o}}+\mathcal L_{\mathbf a},
$$&lt;/p&gt;
&lt;p&gt;分别监督文本 reasoning、子目标图像和动作预测；论文未给出三项在 fine-tuning 中的额外不等权系数（附录表给出 CE:MSE:L1 = 1:1:1）。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Stage 1 在 LLaVA-NeXT-779k（VQA）、OXE 与 Something-Something v2（视觉生成）以及 OXE 动作轨迹上预训练 90k steps；Stage 2 用 RoboTwin 2.0 的 2,500 条仿真示教和 320 条真实示教进行 EM-CoT fine-tuning，分别训练 110k 与 80k steps，并混入通用 VQA 以缓解 catastrophic forgetting。基础模型是 3 个 Qwen2.5-1.5B 专家，总参数约 4.5B；训练使用 32 张 H100、AdamW、常数学习率。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 推理时给出指令和三帧观测，模型先自回归生成计划与当前 subtask reasoning，再切换到视觉专家生成目标图像，最后把文本和图像 token 作为上下文交给 action expert，输出 $K$ 步连续动作并执行。下一次观测到来后重复该闭环。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 论文给出的代码链接是 &lt;a href=&quot;https://github.com/MikaStars39/PeRL&quot;&gt;MikaStars39/PeRL&lt;/a&gt;。截至本文撰写时，仓库 README 将 PeRL 定义为基于 TRL、verl 和 slime 的 Parameter-Efficient Reinforcement Learning 框架，示例围绕 Qwen 数学推理、LoRA/DoRA 等 PEFT 方法展开。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 仓库中未找到 HALO、EM-CoT、RoboTwin、MoT 专家、视觉 VAE 或动作 expert 的模型定义、数据集类和训练脚本。因此本文不能把 PeRL 的 RL 代码当作 HALO 实现；HALO 的实现细节只能依据论文与附录复现。论文代码链接与仓库内容之间的版本/项目对应关系，论文未明确说明。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-halo/Real_Exp_Setting_08.96ahdviotg.webp&quot; alt=&quot;Real-world Cobot Mobile ALOHA task settings (paper Figure 6)&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 仿真使用 RoboTwin 2.0 的 50 个操作任务，每个任务 Easy（clean）和 Hard（domain-randomized）各评估 100 次；对比 $\pi_0$、RDT-1B、Diffusion Policy 和 HALO-w/o EM-CoT。真实实验在 Cobot Mobile ALOHA 上评估 tool-use sweeping、双臂套杯、跨臂螺丝刀交接和把物体放入抽屉四项长时程任务，每项 50 次。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;| 方法 | Easy 平均成功率 | Hard 平均成功率 |
| --- | ---: | ---: |
| $\pi_0$ | 46.4% | 16.3% |
| RDT-1B | 34.5% | 13.7% |
| Diffusion Policy | 28.0% | 0.6% |
| HALO-w/o EM-CoT | 75.3% | 21.2% |
| HALO | &lt;strong&gt;80.5%&lt;/strong&gt; | &lt;strong&gt;26.4%&lt;/strong&gt; |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; HALO 相比 $\pi_0$ 在 Easy/Hard 上分别提升 34.1 和 10.1 个百分点；Hard 环境中的相对差距更大，说明结构化 reasoning 对未见随机化有帮助。即使去掉 EM-CoT，versatile pre-training 得到的 HALO-w/o EM-CoT 也已经比 $\pi_0$ 高 28.9 个百分点（Easy）。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-halo/visualize.9ddp9b4u6q.webp&quot; alt=&quot;Qualitative EM-CoT rollouts in clean and randomized scenes (paper Figure 5)&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 训练配方消融（Easy/Hard）：完整 V+T+A 为 75.3/21.2；去掉视觉生成 V 为 58.2/10.5；再去掉文本 V+T 为 42.9/3.9；不做预训练 V+T+A 为 32.4/0.0。EM-CoT 消融中，完整 HALO 为 80.5/26.4；去掉文本 reasoning 为 77.8/18.3；去掉 visual subgoal 为 76.1/22.5；两者都去掉退化到 75.3/21.2。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 视觉生成数据对 Hard 任务的跌幅最大，暗示“预测可达的未来视觉状态”比单纯增加语言 token 更接近 OOD 操作所需的归纳偏置；文本和视觉各自可部分替代，但联合时收益最高。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-halo/real_exp_fig1.102wndhfl3.webp&quot; alt=&quot;Real-world basic-setting success rates (paper Figure 7a)&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-halo/real_exp_fig2.5trrji24pw.webp&quot; alt=&quot;Real-world generalization-setting success rates (paper Figure 7b)&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 真实泛化设置加入 Coke 瓶、杯子等视觉干扰，改变光照与桌布背景，并用海绵替换扫帚等新物体。论文报告 HALO 在 basic 与 generalization 两种设置下都超过 $\pi_0$ 和 $\pi_{0.5}$；定性结果显示模型仍能定位目标并生成合理子目标。论文未在正文给出跨任务平均的单一汇总数字，因此这里不额外推算。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; HALO 同时缩短了决策难度和感知跨度：文本把长任务分解成可解释 subtask，视觉子目标把动作结果变成中期监督，action chunk 则把局部控制交给连续 expert。三者通过共享 attention 交换信息，减少了“语言计划与低层动作各说各话”的问题。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 创新组合包括 MoT 专家解耦、EM-CoT 的文本/视觉联合条件、自动化轨迹标注和 VQA+VG+AP 的两阶段训练。&lt;strong&gt;【Analysis】&lt;/strong&gt; 单独看每个部件都并非全新，贡献更像是把 multimodal reasoning 变成可训练、可执行的统一接口。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; Text-CoT 只改变语义上下文，visual foresight 只预测画面，传统 VLA 只回归动作；HALO 要求三种中间表示按固定 token 协议串联，并让不同专家拥有匹配各自统计结构的注意力和输出头。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 方案依赖三个假设：VLM 能从 primitive 和视频中生成可信 reasoning；subtask 终止帧足以代表该子任务目标；预训练得到的视觉、语言和动作能力可以在共享 attention 中协作。&lt;/p&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 正文没有单列局限性章节，也没有报告失败率分解、推理延迟、显存占用或 EM-CoT 标注噪声的系统分析。代码仓库也未提供可复现实验脚本。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;三个 1.5B 专家总计约 4.5B 参数，训练需要 32 张 H100，部署成本明显高于单体 VLA。&lt;/li&gt;
&lt;li&gt;VLM 生成的 narrative、subtask 和第一人称 reasoning 可能出现幻觉；错误的子目标会把动作 expert 引向错误状态。&lt;/li&gt;
&lt;li&gt;终止帧广播提供稀疏目标，无法表达碰撞、力控或中间安全约束。&lt;/li&gt;
&lt;li&gt;论文主要证明成功率提升，尚未证明生成的文本 reasoning 是真实因果依据，而不是事后解释。&lt;/li&gt;
&lt;li&gt;当前公开的 PeRL 仓库与 HALO 模型不对应，研究者无法仅凭该仓库复现实验。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; HALO 给出的可迁移设计原则是：把“可解释计划”和“可验证未来状态”都放进 policy 的训练目标，而不是只在推理时外挂一个 LLM。后续工作可以沿三个方向推进：用不确定性估计筛掉错误的 VLM 标注；让 visual subgoal 从单帧扩展为带接触事件的短视频；在较小 backbone 上蒸馏三专家协作，以降低真实机器人部署延迟。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/64131498_p0_master1200.45i9cfg3rk.webp"/><enclosure url="https://pic.hana0721.top/64131498_p0_master1200.45i9cfg3rk.webp"/></item><item><title>What Do VLAs Actually Inherit from VLMs? 论文精读</title><link>https://agusexp25.top/blog/paper-deep-dive-grinningface</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-grinningface</guid><description>精读 GrinningFace：用 emoji 桌面操作任务拆分 VLA 的执行能力与 VLM 视觉语义先验，比较 LoRA、冻结 VLM、协同训练、离散动作和 latent action。</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;论文名称&lt;/strong&gt;：《What Do VLAs Actually Inherit from VLMs?》&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;作者&lt;/strong&gt;：Chuheng Zhang、Rushuai Yang、Xiaoyu Chen、Kaixin Wang、Li Zhao、Yi Chen、Jiang Bian&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;机构&lt;/strong&gt;：Microsoft Research、香港科技大学、清华大学&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;会议 / 期刊&lt;/strong&gt;：arXiv 预印本（2025）&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;论文链接&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2511.06619&quot;&gt;arXiv&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;代码链接&lt;/strong&gt;：&lt;a href=&quot;https://github.com/zhangchuheng123/GrinningFace&quot;&gt;GrinningFace&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-grinningface/grinningface.2h91oye4e0.webp&quot; alt=&quot;GrinningFace 任务总览：机器人把方块放到语言指定的 emoji 卡片上（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 本文提出 GrinningFace，一个执行动作很简单、但视觉语义泛化很难的 emoji 桌面操作基准：机器人要从三张卡片中找出语言指令对应的 emoji，并把方块放上去。它用来诊断 VLA 是否继承了 VLM 的开放世界知识，而不是只记住机器人训练数据。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;提出一个最小、可复现的 VLA 知识迁移探针，把执行（能否完成 pick-and-place）与识别（是否选对 emoji）分离。&lt;/li&gt;
&lt;li&gt;在 ManiSkill3 仿真和 Realman RM75 真实机器人上，统一比较多种 VLA 预训练和微调策略。&lt;/li&gt;
&lt;li&gt;发现“从 VLM 初始化”并不自动等于知识迁移；全参数微调会遗忘先验，单调 action head 又会欠拟合。&lt;/li&gt;
&lt;li&gt;协同训练（co-training）、联合预测 latent action，以及更丰富的机器人预训练数据，能更好地保留或激活 VLM 先验。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; VLA 的主流做法是把预训练 VLM 接上 action expert，再用机器人轨迹训练低层控制。VLM 带来开放词汇识别和语言语义，机器人数据带来关节控制与接触动力学；问题在于，后续训练可能让 VLM 忘掉原有知识（catastrophic forgetting）。&lt;/p&gt;
&lt;p&gt;已有路线大致分为四类：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Co-training&lt;/strong&gt;：把 VQA、caption、检测等视觉语言任务和机器人数据混合训练，持续提供语义梯度。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Parameter-efficient fine-tuning&lt;/strong&gt;：用 LoRA 或只训练 action expert，限制对 VLM backbone 的改动。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;结构化 action target&lt;/strong&gt;：把连续动作离散化，或额外预测 latent action，使视觉语言模块面对更高层的监督。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;扩大预训练数据&lt;/strong&gt;：用 OXE 等多数据集混合物学习更通用的 tabletop 视觉与动作模式。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这些方法在不同论文、不同机器人和不同 benchmark 上报告，分数很难横向解释。GrinningFace 的价值在于把“会动”和“看懂指令”变成两个可测量的因子。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;h3&gt;3.1 GrinningFace 仿真任务&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 场景中放置一个蓝色方块和三张 emoji 卡片。指令模板是 &lt;code&gt;Pick the cube and place it on [desc.]&lt;/code&gt;，其中 &lt;code&gt;[desc.]&lt;/code&gt; 是由 VLM 重新标注并过滤后的 emoji 描述。emoji 被划分为 100 个训练符号和 100 个验证符号，微调数据包含 500 条规则策略轨迹。&lt;/p&gt;
&lt;p&gt;每次评估从三种协议中选一种，每种 100 条试验：&lt;/p&gt;
&lt;p&gt;| 协议 | emoji 来源 | 测量重点 |
| --- | --- | --- |
| &lt;code&gt;ID&lt;/code&gt; | 训练轨迹中出现过的组合 | 组合记忆与执行 |
| &lt;code&gt;Train&lt;/code&gt; | 训练 emoji，但组合可未出现 | 训练词汇内组合泛化 |
| &lt;code&gt;Val&lt;/code&gt; | 完全未参与微调的验证 emoji | VLM 先验迁移 |&lt;/p&gt;
&lt;h3&gt;3.2 两个成功率&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 记录总体成功率和执行成功率，再计算识别成功率：&lt;/p&gt;
&lt;p&gt;$$
\mathrm{overall\ SR}=\mathrm{execution\ SR}\times\mathrm{recognition\ SR}.
$$&lt;/p&gt;
&lt;p&gt;执行成功表示方块被抓起并放到任意卡片上；识别成功表示选择了正确卡片。因为动作本身只是简单搬运，&lt;code&gt;Val&lt;/code&gt; 上的识别率主要反映 VLM 视觉语义知识是否存活。&lt;/p&gt;
&lt;h3&gt;3.3 真实机器人&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 真实实验把任务进一步简化为 &lt;code&gt;Touch [desc.]&lt;/code&gt;：末端移动到目标 emoji 上方并闭合夹爪。使用同一训练/验证 emoji 集合，在 Realman RM75 机械臂和 Inspire gripper 上进行 30 次验证试验。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 所有变体都建立在 &lt;code&gt;π₀&lt;/code&gt;-style VLA 上：PaliGemma 负责视觉语言表征，SigLIP 负责图像编码，action expert 输出连续的机器人动作。训练时输入场景图像、本体感知和文本指令，输出末端位姿/夹爪动作；推理时只保留动作预测路径。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;VLM backbone 与视觉输入&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：224×224 RGB 主视角图像、7 维 proprioception、文本指令。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：供 action expert 使用的多模态 token。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;作用&lt;/strong&gt;：PaliGemma/SigLIP 提供 emoji 识别、语言理解与场景视觉特征。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;inference_widowx_v8.py&lt;/code&gt; 将渲染图从 &lt;code&gt;H×W×3&lt;/code&gt; 转为 &lt;code&gt;B×C×H×W&lt;/code&gt;，resize 到 224×224，并把 proprio reshape 成 &lt;code&gt;[B,T,7]&lt;/code&gt;；环境默认注册为 &lt;code&gt;PickCubeWidowX-v8&lt;/code&gt;。&lt;/p&gt;
&lt;h4&gt;Action expert&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：融合后的视觉语言 token 与 proprioception。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：连续低维动作，控制 &lt;code&gt;pd_ee_target_delta_pose&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;作用&lt;/strong&gt;：学习抓取、抬升、移动到卡片和释放四个运动阶段。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文统一使用 &lt;code&gt;π₀&lt;/code&gt;-style 代码库和 OXE magic-soup 预训练，默认预训练 80k steps、微调 30k steps，batch size 为 1024，使用 8 张 Nvidia A100。&lt;/p&gt;
&lt;h4&gt;训练策略变体&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Full fine-tuning&lt;/strong&gt;：更新全部 VLA 参数，适应最快，但最容易遗忘 VLM 先验。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;LoRA fine-tuning&lt;/strong&gt;：只在 backbone 插入低秩适配器，限制参数漂移。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Action expert only&lt;/strong&gt;：冻结视觉语言部分，只训练动作头，作为先验保留的强探针。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Freezing VLM&lt;/strong&gt;：直接从 VLM 或 LoRA 预训练 VLA 微调，最大限度保留语义能力。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Co-training&lt;/strong&gt;：在机器人任务外加入 emoji 问答；论文比较原始 emoji 问答和桌面场景内识别两种版本。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Discretized action&lt;/strong&gt;：把每个连续动作维度量化为 256 个 bin，并复用 VLM 的最后 256 个 token。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Latent action&lt;/strong&gt;：在机器人动作之外增加 latent action 预测目标，给模型一个高层运动监督。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;成功率分解&lt;/h4&gt;
&lt;p&gt;$$
S_{\mathrm{overall}}=S_{\mathrm{exe}}\cdot S_{\mathrm{rec}}.
$$&lt;/p&gt;
&lt;p&gt;其中 $S_{\mathrm{exe}}$ 是方块是否被成功搬运到某张卡片，$S_{\mathrm{rec}}$ 是三选一是否命中目标。该分解假设二者近似独立；论文用实验记录的总体率和执行率反推识别率。&lt;/p&gt;
&lt;h4&gt;连续与离散动作目标&lt;/h4&gt;
&lt;p&gt;连续策略直接回归 $a_t\in\mathbb{R}^d$；离散变体把每个维度映射到 $b_t\in{1,\ldots,256}$。量化误差会影响末端位姿精度，因此离散化并不必然带来更好的知识保留。&lt;/p&gt;
&lt;h4&gt;Latent action 多任务目标&lt;/h4&gt;
&lt;p&gt;可将训练目标写作：&lt;/p&gt;
&lt;p&gt;$$
\mathcal{L}=\mathcal{L}&lt;em&gt;{\mathrm{robot}}+\lambda\mathcal{L}&lt;/em&gt;{\mathrm{latent}},
$$&lt;/p&gt;
&lt;p&gt;其中 $\mathcal{L}&lt;em&gt;{\mathrm{robot}}$ 监督低层机器人动作，$\mathcal{L}&lt;/em&gt;{\mathrm{latent}}$ 监督由轨迹抽取的高层 latent action，$\lambda$ 控制两者权重。论文未公开所有实现超参数，但实验证明附加高层目标有助于识别泛化。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 默认在 OXE magic-soup 的 913k 条轨迹上预训练，再用 500 条 GrinningFace 轨迹微调。检查点在 5k、10k、20k、30k steps 比较，并选择 &lt;code&gt;Val&lt;/code&gt; 总体成功率最高者。基线采用连续动作；离散、co-training、latent action 是替代训练目标或数据配方。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 仿真推理器每一步读取渲染图、proprio 和任务描述，通过 &lt;code&gt;agent.inference&lt;/code&gt; 得到动作，再调用 &lt;code&gt;env.step&lt;/code&gt;。episode 结束后记录 &lt;code&gt;success&lt;/code&gt;、&lt;code&gt;is_obj_placed&lt;/code&gt;、&lt;code&gt;is_grasped&lt;/code&gt;、三张卡片描述和目标 id。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方仓库当前 README 明确说明代码发布仍是 placeholder，但已包含可运行骨架：&lt;/p&gt;
&lt;p&gt;| 论文概念 | 代码位置 | 实现观察 |
| --- | --- | --- |
| ManiSkill3 环境 | &lt;code&gt;GrinningFace/env_widowx_v8.py&lt;/code&gt; | 注册 &lt;code&gt;PickCubeWidowX-v8&lt;/code&gt;，三张卡、蓝色方块、WidowX250S |
| WidowX 控制器 | &lt;code&gt;GrinningFace/widowx_v1.py&lt;/code&gt; | 6 个 arm joints + 2 个 gripper joints，PD EE pose controller |
| 规则数据采集 | &lt;code&gt;generate_touchsim_dataset_widowx_v8.py&lt;/code&gt; | 50/5/20/50 步分阶段抓取、抬升、移动、释放，目标为 500 条轨迹 |
| 推理评估 | &lt;code&gt;inference_widowx_v8.py&lt;/code&gt; | 224×224 图像、proprio 与 instruction 输入，保存每 episode 指标 |
| 训练主干 | 未提供 | 论文中的 &lt;code&gt;π₀&lt;/code&gt;-style 训练代码尚未在此仓库完整公开 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 因此，论文中的 80k/30k steps、各策略损失和实验数字应视为论文事实，不能误写成已在该 GitHub 仓库中逐行复现的行为。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 仿真使用 ManiSkill3，视角尽量对齐 Bridge-v2；默认机器人是 WidowX250S。每种协议 100 次试验，重复种子实验显示 &lt;code&gt;Val&lt;/code&gt; execution SR 的标准差约 1.0 个百分点、recognition SR 约 1.5 个百分点。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-grinningface/datasets.wjaphgwuz.webp&quot; alt=&quot;不同 VLA 训练数据集（OXE、Bridge、OXE-Bridge）的比较（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;p&gt;真实机器人使用 RM75 + Inspire gripper，验证集上每个变体 30 次试验；除直接微调 VLM 使用 20k steps 外，其余使用 5k steps。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-grinningface/variants.362b8z1nfv.webp&quot; alt=&quot;不同预训练与微调策略在 GrinningFace 上的结果（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 主要趋势如下：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;基线 VLA 在 &lt;code&gt;Val&lt;/code&gt; 上执行率高、识别率低，说明它会搬运但不一定读懂新 emoji。&lt;/li&gt;
&lt;li&gt;LoRA 比 full fine-tuning 略能保留识别率，但提升有限；只训练 action expert 在 ID 场景也会欠拟合。&lt;/li&gt;
&lt;li&gt;冻结 VLM 或从 LoRA 预训练 VLA 出发，识别率可超过 90%，但需要约 20k steps 才学会简单搬运，适应速度慢。&lt;/li&gt;
&lt;li&gt;co-training 只有在“桌面场景中识别 emoji”的任务设计下明显有效；只问原始 emoji &lt;code&gt;what&apos;s in the image&lt;/code&gt; 并没有带来同等收益。&lt;/li&gt;
&lt;li&gt;离散动作同时损害执行率和识别率，量化误差并未换来更好的先验保留。&lt;/li&gt;
&lt;li&gt;latent action 联合目标带来更好的识别率，是最有希望的结构化监督之一。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;数据集消融表明，预训练数据既影响动作适应，也影响先验激活：Bridge-v2 与目标视角一致时优于 OXE-Bridge，而完整 OXE 的多样性又优于单一 Bridge。只训练 action expert 对不同预训练数据最敏感，因此可作为比较预训练质量的探针。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 真实机器人结果（30 次）为：&lt;/p&gt;
&lt;p&gt;| 方法 | Exe. SR | Rec. SR |
| --- | ---: | ---: |
| Baseline | 30/30 | 11/30 |
| Freezing VLM | 28/30 | 20/28 |
| Co-training | 30/30 | 26/30 |
| Discretized action | 30/30 | 10/30 |
| Latent action | 30/30 | 24/30 |&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文先验证 VLM 确实能识别 emoji：对 &lt;code&gt;Train&lt;/code&gt;、&lt;code&gt;Val&lt;/code&gt;、&lt;code&gt;Hard&lt;/code&gt; 的描述匹配准确率分别为 90%、89%、85%；OXE 任务描述中出现的 emoji 概念少于 5%。因此 &lt;code&gt;Val&lt;/code&gt; 识别率可以合理地视为 VLM 先验迁移的代理，而不是机器人数据记忆。&lt;/p&gt;
&lt;p&gt;注意力可视化显示：VLM 能关注目标 emoji 但较分散；VLA 预训练后更关注夹爪、方块和卡片等操作相关物体；微调后对正确 emoji 的注意力更集中、对干扰卡片更少。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-grinningface/attention.1zj00dcqot.webp&quot; alt=&quot;VLM、预训练 VLA 与微调 VLA 的 emoji 注意力图（论文 Figure 4）&quot;&gt;&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; GrinningFace 把视觉语义和运动控制放在同一条因果链上：VLM 提供“这张卡是什么”，VLA 预训练把视觉特征变成 tabletop 可用的表示，微调再学习“如何抓和放”。如果只做最后一步，全参数更新会覆盖前两步；如果完全冻结，又缺少把语义落到机械臂动作的适配能力。co-training 和 latent action 的共同点，是在低层动作梯度之外持续提供结构化语义/运动约束。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;诊断性而非竞赛性 benchmark&lt;/strong&gt;：用简单执行隔离复杂识别，避免总成功率掩盖先验遗忘。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;统一控制变量&lt;/strong&gt;：同一 &lt;code&gt;π₀&lt;/code&gt;-style backbone、同一微调数据和评估协议比较策略。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;把“继承多少”变成可测量量&lt;/strong&gt;：&lt;code&gt;Val&lt;/code&gt; recognition SR 直接刻画未见 emoji 的语义迁移。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;横向比较训练目标&lt;/strong&gt;：LoRA、冻结、co-training、离散 action、latent action 和数据多样性被放进同一实验框架。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 传统 LIBERO、CALVIN 等 benchmark 的分数同时受物体识别、轨迹规划、接触控制和场景记忆影响，很难知道失败来自哪里。GrinningFace 故意把动作设计成几乎所有现代 VLA 都能学会的 pick-and-place，把主要难点移到“看懂一个机器人数据里没出现过的 emoji”。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;emoji 图像在 VLM 互联网预训练中常见、在机器人轨迹中稀少。&lt;/li&gt;
&lt;li&gt;执行与识别可以用乘法近似分解。&lt;/li&gt;
&lt;li&gt;训练和验证 emoji 的描述与 VLM 的语义理解一致。&lt;/li&gt;
&lt;li&gt;100 次仿真试验足以稳定估计每种协议的成功率。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这些假设让 benchmark 很干净，但也意味着它更像“先验保留探针”，不能覆盖三维几何、长时序规划或真实接触失败的全部问题。&lt;/p&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 当前任务只要求简单 pick-and-place，不能证明某种策略能扩展到复杂 motor skills；co-training 只覆盖与 emoji 识别相关的简化视觉语言任务；latent action 的具体构造与尺度仍有进一步研究空间。官方代码仓库也仍处于 placeholder 发布阶段。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;识别率是由总体率和执行率反推的，乘法分解的独立性并未被严格检验。&lt;/li&gt;
&lt;li&gt;只使用 100 个验证 emoji，且描述经过 VLM 重标注与过滤，可能高估了模型熟悉度。&lt;/li&gt;
&lt;li&gt;真实机器人只有 30 次试验，足以看趋势但不适合精细比较小幅差异。&lt;/li&gt;
&lt;li&gt;论文没有公开完整训练实现，读者难以复现实验中所有策略和超参数。&lt;/li&gt;
&lt;li&gt;注意力图是相关性证据，不等价于因果解释；更集中不一定意味着真正的语义推理。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这篇论文最重要的启发不是“某个技巧赢了”，而是 VLA 评测应该问两个不同问题：模型是否保留了世界知识，以及模型是否能把知识转成动作。未来可以沿着三条线推进：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;更系统的语义探针&lt;/strong&gt;：从 emoji 扩展到品牌、符号、文化对象和组合概念，并控制图像出现频率。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;显式的层级监督&lt;/strong&gt;：把 latent action、语言解释、目标定位和动作 chunk 联合起来，减少低层梯度对 VLM 的覆盖。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;持续学习式 VLA&lt;/strong&gt;：在扩大机器人数据规模的同时加入 representation retention、VLM replay 或冻结/解冻策略，监控先验随训练的变化。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;如果一个 VLA 在简单的三选一 emoji 任务上都无法识别未见符号，那么在开放世界家庭环境中声称“继承了 VLM 知识”就需要更加谨慎。GrinningFace 提供了一个成本很低、解释性很强的 sanity check。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/99749488_p0_master1200.83an1pr7zr.webp"/><enclosure url="https://pic.hana0721.top/99749488_p0_master1200.83an1pr7zr.webp"/></item><item><title>GR-RL：面向长时域灵巧精密操作的强化学习专精化</title><link>https://agusexp25.top/blog/paper-deep-dive-gr-rl</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-gr-rl</guid><description>精读 ByteDance Seed 的 GR-RL：用分布式 critic 学习任务进度、过滤次优示范，再通过形态对称增强和 latent-space online RL，让 VLA 学会多眼孔鞋带穿线。</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; GR-RL 从 GR-3 这一通用 VLA 出发，不再假设人类遥操作轨迹都是最优的，而是用 sparse-reward offline RL 学到一个有界的任务进度函数，删除会让进度下降的动作片段；随后利用双臂机器人的左右形态对称扩充数据，最后在 flow-policy 的初始噪声空间做 online RL。最终 ByteMini-v2 在多眼孔鞋带穿线任务上达到 83.3% 成功率。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;提出三阶段 reinforcement-augmented recipe：filtered behavior cloning、morphological symmetry augmentation、online steering RL。&lt;/li&gt;
&lt;li&gt;证明 sparse reward 下的 distributional critic 可以作为视觉-语言条件的 task progress evaluator，并用于自动数据清洗。&lt;/li&gt;
&lt;li&gt;将探索从末端位姿/关节空间移到 action diffusion 的 latent noise 空间，减小毫米级任务中“加一点噪声就彻底失败”的问题。&lt;/li&gt;
&lt;li&gt;在真实双臂移动操作机器人上完成鞋带穿过多个 eyelet，并展示掉落重抓、错位重试、重定向鞋子等恢复行为。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-gr-rl/gr_rl_main.4joud0b2bb.webp&quot; alt=&quot;GR-RL 鞋带任务与三阶段训练流程（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 现有 VLA 在开放场景泛化方面很强，但在 deformable object 的毫米级控制和长时域错误恢复上仍不可靠。鞋带穿线同时要求双臂协调、柔性物体接触、精确插入和多步规划。经典方法依赖预定义动作 primitive，难以覆盖未见构型；直接对全部人类示范做 behavior cloning（BC）则会把犹豫、误插和失败尝试一起学进去。&lt;/p&gt;
&lt;p&gt;论文指出还有第二个隐患：训练时模仿的是固定长度的 raw action chunk，部署时却会做 temporal ensembling、receding-horizon 和 jerk/continuity trajectory optimization。于是模型优化的动作分布与机器人真正执行的动作分布不同。GR-RL 的基本观点是，专精化不仅要清洗数据，还要让策略在部署闭环中继续适应。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这使 GR-RL 更像一个“通用策略编译器”：保留基础 VLA 的语义能力，把任务相关的精度、恢复和控制稳定性交给 RL 阶段逐步塑形。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在时间步 $t$，策略接收语言指令 $l$、三路 RGB 观测 $\mathbf{o}_t$ 和 proprioception 状态 $\mathbf{s}_t$，输出长度为 $k$ 的双臂动作 chunk：&lt;/p&gt;
&lt;p&gt;$$
\mathbf{a}&lt;em&gt;t = \pi&lt;/em&gt;\theta(l,\mathbf{o}_t,\mathbf{s}_t),\qquad \mathbf{a}&lt;em&gt;t=a&lt;/em&gt;{t:t+k}.
$$&lt;/p&gt;
&lt;p&gt;训练奖励是 episode 末端的 binary sparse reward：只有鞋带穿入正确 eyelet 并完全放到桌面上时才得到 1。&lt;strong&gt;【Paper】&lt;/strong&gt; 机器人是 7-DoF 双臂、带移动底盘的 ByteMini-v2；其肘部峰值扭矩从 17 Nm 提升到 35 Nm，单臂峰值负载从 1.4 kg 提升到 3.15 kg，底盘投影面积缩小到 450 mm × 650 mm。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Embodied AI checklist&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;| 项目 | 论文设定 |
| --- | --- |
| Vision / Language | Qwen2.5-VL-3B-Instruct 作为 VLM backbone；仅使用后半层 KV cache 加速推理 |
| Policy | Flow-matching action DiT 生成动作 chunk |
| Critic | causal transformer，采用 Q-chunking 与 distributional RL |
| Action representation | 双臂动作 chunk（论文未给出完整维度表） |
| Reward | 末端 binary sparse reward |
| Embodiment | ByteMini-v2，7-DoF 双臂 + 移动底盘 |
| Deployment | 轨迹优化约束 jerk 和时间连续性 |&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;GR-RL 由 VLA policy $\pi_\theta$ 和 multi-task critic $Q_\phi$ 组成，总参数量约 5B。VLA 读取视觉、语言和机器人状态，flow-matching DiT 输出动作 chunk；critic 对同一条件下的每个动作评估一段 Q 值。训练先用 critic 计算进度并筛选数据，再 BC 和镜像增强，最后冻结大部分 VLA、只在 latent noise 上做在线探索。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-gr-rl/model_arch.70b2rxhzol.webp&quot; alt=&quot;GR-RL 的 Mixture-of-Transformer 架构：VLA、Action Diffusion Transformer 与 Critic（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;Distributional task-progress evaluator&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：$(\mathbf{o}_t,l,\mathbf{s}_t,\mathbf{a}_t)$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：每个动作的有界 categorical Q-value 分布及其均值进度 $\rho_t$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;做什么&lt;/strong&gt;：TD3+BC 在成功轨迹和失败轨迹上训练 critic。对成功轨迹中标记的 retry keyframe 截断，可构造 hindsight 失败轨迹，使 critic 同时看到“最终成功”和“在这里失败”。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要&lt;/strong&gt;：人工逐帧标注错误片段主观且昂贵；Q 值的突然下降可以自动定位误插、松手等负贡献动作。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; distributional critic 将值限制在 $[0,1]$，相比无界回归更能抵抗长时域 sparse reward 的过估计。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-gr-rl/progress_main.5q85lm01a1.webp&quot; alt=&quot;成功轨迹上的学习到的任务进度示例（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;h4&gt;Filtered behavior cloning&lt;/h4&gt;
&lt;p&gt;对每个 chunk 计算 $\rho_{t:t+k}$。若序列中的下降超过阈值 $\delta$，就把样本视为 suboptimal 并从 BC 数据集中剔除；剩余高质量 transitions 用来初始化策略。这里的关键不是重新设计 BC loss，而是改变 BC 看到的示范分布。&lt;/p&gt;
&lt;h4&gt;Morphological symmetry augmentation&lt;/h4&gt;
&lt;p&gt;对图像做水平翻转，并交换左右腕部相机；将状态和动作在 world frame 做镜像变换，再转换回各自 wrist frame；同时把语言中的空间词（如 “left hole”）改成 “right hole”。&lt;strong&gt;【Analysis】&lt;/strong&gt; 这是几乎不增加采集成本的等变性先验，尤其适合双臂鞋带这种左右结构近似对称、但动作细节高度敏感的任务。&lt;/p&gt;
&lt;h4&gt;Latent-space online steering&lt;/h4&gt;
&lt;p&gt;直接在腕部位姿上加噪声几乎无法完成毫米级插入。GR-RL 在共享 VLM backbone 后增加 51.5M 参数的 noise predictor $\pi_{\theta&apos;}$，预测 action DiT 的初始噪声 $\epsilon_t$，让探索沿着原 flow policy 的可行动作流形进行。另训练 noise-space critic $Q_{\phi&apos;}$，避免优化时反向穿过完整 flow model。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Sparse reward（【Paper】）&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;$$
r_t=\begin{cases}
\gamma^{T-t}\mathbb{I}(\tau), &amp;#x26; t&gt;T-k,\
0, &amp;#x26; t\le T-k.
\end{cases}
$$&lt;/p&gt;
&lt;p&gt;$T$ 是轨迹长度，$k$ 是动作 chunk 长度，$\mathbb{I}(\tau)$ 表示该 episode 是否成功，$\gamma$ 是折扣因子。奖励只在末端出现，因此 critic 的中间值可以被解释为“从当前状态继续执行的成功概率/进度”。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Progress（【Paper】）&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;$$
\rho_t=\operatorname{mean}\big(Q_\phi(\mathbf{o}_t,l,\mathbf{s}_t,\mathbf{a}_t)\big).
$$&lt;/p&gt;
&lt;p&gt;均值把 categorical value distribution 压成一个可排序的标量；阈值 $\delta$ 决定哪些下降足以判定动作有害。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Noise predictor objective（【Paper】）&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;$$
\mathcal{L}(\pi_{\theta&apos;})=\mathbb{E}\left[-Q_{\phi&apos;}(\mathbf{o}_t,l,\mathbf{s}_t,\epsilon_t)+c\max\left(\tfrac12|\epsilon_t|^2-\beta,0\right)\right].
$$&lt;/p&gt;
&lt;p&gt;第一项鼓励高回报噪声，第二项在噪声范数超过阈值 $\beta$ 时惩罚偏离标准正态分布；$c$ 控制约束强度。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 离线阶段使用成功轨迹和 hindsight 失败轨迹训练 distributional critic，再按进度下降过滤 transitions，并用镜像数据做 BC。在线阶段先用离线 checkpoint 采集 673 条 rollout 校准 critic，之后每收集 12 个新 episode 优化 50 步；on-policy buffer 只保留最近两个 checkpoint 生成的数据，其余转入 off-policy buffer，且不混入遥操作轨迹，以避免动力学分布错配。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;部署时 VLA 产生固定长度 action chunk，随后通过 trajectory optimization 约束 jerk 和时间连续性，再由双臂控制器执行。online RL 学到的不是一套脱离基础模型的新动作，而是对 flow policy 初始噪声的 steering，因此保留了离线策略的动作先验。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 论文提供项目主页 &lt;a href=&quot;https://seed.bytedance.com/gr_rl&quot;&gt;seed.bytedance.com/gr_rl&lt;/a&gt;，截至本文撰写时未发现可公开访问的官方 GitHub 训练代码、配置或 checkpoint。因而无法对模型类、DataLoader、优化器实现和实际超参数逐文件核验；上文“代码实现”部分仅报告论文公开的系统行为，不把推测写成代码事实。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 任务是将鞋带依次穿过多个 eyelet，再把鞋带放回桌面。观测包含三路 RGB、proprioception 和自然语言指令；奖励为只有成功时为 1 的 binary sparse signal。实验使用 ByteMini-v2 双臂移动机器人。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-gr-rl/bm_v2.b9n36l10r.webp&quot; alt=&quot;ByteMini-v2：7-DoF 双臂移动操作机器人（论文 Figure 4）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 多阶段消融的成功率为：GR-3 原始 BC 45.7%，加入 progress filtering 后 61.6%，再加入镜像增强后 72.7%，完整 GR-RL（含 online steering）83.3%。在线训练早期因 offline-to-online 分布偏移短暂下降，随后移动平均成功率超过 90%；最终采用 online step 500 的 checkpoint 做评测。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-gr-rl/main_metric.8s41mu1g3c.webp&quot; alt=&quot;GR-RL 各训练阶段成功率及在线曲线（论文 Figure 5）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 非分布式 critic 会在长时域 sparse reward 下严重过估计，早期状态的值尺度失真；distributional critic 的值被限制在预设范围内，能更稳定地反映时间顺序。直接回归成功轨迹的 $t/T$ 也会过度平滑，难以捕捉“只差几毫米”的插入失败和具有长期影响的重新抓取。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-gr-rl/progress_ablation.9kgx4ki3os.webp&quot; alt=&quot;分布式与非分布式 critic 的进度预测对比（论文 Figure 6）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-gr-rl/bar_stage_label.3nscxk1jmc.webp&quot; alt=&quot;不同训练阶段的中间步骤成功率（论文 Figure 5）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 模型能处理不同颜色和尺寸的鞋子，并在鞋带掉落、未精确穿入 eyelet、初始抓取点过远、鞋子朝向/位置不理想、两端交叉等情况下主动重抓、重试、重定向或调整场景。中间阶段统计显示，filtering 和 online RL 对 threading 阶段的失败降低最明显，镜像增强则在各阶段都有较为均匀的收益。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 三个阶段分别处理三个不同误差源：progress filtering 减少监督噪声，mirror augmentation 增加结构化覆盖，latent-space RL 修正 raw action 与部署后处理之间的 distribution shift。它们不是重复堆叠，而是从数据、先验和闭环控制三个层面缩小策略的有效搜索空间。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;真正新颖之处不是“在 VLA 后面加 RL”，而是把 critic 的值重新解释成可用于数据治理的 progress signal，并把 online exploration 的坐标系改成 flow policy 的 latent noise。这样既能拒绝坏示范，又不会用无结构的动作噪声破坏精密操作。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;与纯 BC 相比，GR-RL 允许策略超越示范并从失败中学习；与在动作空间直接加噪的 real-world RL 相比，它在噪声空间探索；与只做 advantage-conditioned denoising 的方案相比，它先训练一个更强的 filtered BC 起点，再做小范围 online steering。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;sparse terminal reward 足以让 distributional Q 值形成有意义的进度排序。&lt;/li&gt;
&lt;li&gt;双臂任务在 world frame 中存在可用的左右镜像对称性，且语言空间描述可以同步翻转。&lt;/li&gt;
&lt;li&gt;flow policy 的初始噪声空间包含足够多的高回报动作，轻量 noise predictor 能在其中找到改进方向。&lt;/li&gt;
&lt;li&gt;在线 rollout 的视觉、动力学和奖励信号足够稳定，能够支撑真实机器人上的 off-policy 更新。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在线 RL 存在 behavior drifting：sparse、noisy reward 可能导致行为不稳定，原因可能是轻量 noise predictor 容量有限，也可能是大 latent action space 中的 credit assignment 困难。作者还提出未来应把改进后的策略蒸馏回基础 VLA，以同时获得通用性和专精能力。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 论文只展示一个鞋带任务和一种机器人平台，83.3% 成功率能否迁移到更多柔性物体、不同双臂几何和更长任务仍未知。过滤阈值 $\delta$、噪声约束 $\beta$ 与 retry keyframe 标注质量可能显著影响结果；论文也未公开代码和完整训练成本，因此复现实验难度较高。最后，形态镜像并不适用于明显左右不对称的工具、场景或任务。&lt;/p&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;GR-RL 给出的研究路线很清晰：先把通用 VLA 当作“可行性先验”，再用 RL 判断哪些示范片段值得保留，最后让在线数据直接来自部署控制栈。对后续工作而言，一个值得验证的问题是：能否把 progress critic 变成跨任务的通用数据质量模型，而不是每个任务重新训练；另一个问题是如何将 latent-space 改进安全地蒸馏回大 VLA，避免专精能力与开放场景泛化之间的此消彼长。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/134041716_p0_master1200.5q80bz7b6v.webp"/><enclosure url="https://pic.hana0721.top/134041716_p0_master1200.5q80bz7b6v.webp"/></item><item><title>Genie Envisioner 论文精读：把世界模型、动作策略与模拟器合成一个闭环平台</title><link>https://agusexp25.top/blog/paper-deep-dive-genie-envisioner</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-genie-envisioner</guid><description>精读 Genie Envisioner：GE-Base 如何用多视角视频世界模型承载 GE-Act 动作解码、GE-Sim 闭环模拟与 EWMBench 评测。</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Genie Envisioner（简称 GE）不是一个单独的 VLA policy，而是一个由四部分组成的平台：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;GE-Base&lt;/strong&gt;：instruction-conditioned、多视角、autoregressive video diffusion world model；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;GE-Act&lt;/strong&gt;：从 GE-Base 的视觉 latent 直接解码 action trajectory 的轻量 action model；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;GE-Sim&lt;/strong&gt;：把 GE-Base 改造成 action-conditioned 的视频神经模拟器；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;EWMBench&lt;/strong&gt;：面向 embodied world model 的视觉、运动和语言-动作一致性评测套件。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-genie-envisioner/Banner.2h91oxadkq.webp&quot; alt=&quot;Genie Envisioner 平台总览（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; GE 的真正野心不是“用视频生成替代 VLA”，而是先学习一个能预测机器人未来视觉状态的 embodied visual space，再让动作解码和策略评测共享这个空间：GE-Act 负责从 latent 到动作，GE-Sim 负责从动作回到未来视频。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;在约 1,000,000 个 AgiBot-World-Beta 双臂 manipulation episodes（约 2,967 小时）上训练多视角、语言条件视频世界模型 GE-Base。&lt;/li&gt;
&lt;li&gt;用 160M 参数的 parallel action decoder GE-Act，把 GE-Base 的时空表示映射为 54-step action chunk，并通过 Slow-Fast Asynchronous Inference 在 RTX 4090 上约 200 ms 完成一次前向。&lt;/li&gt;
&lt;li&gt;用 GE-Sim 将视频生成模型改造成 action-conditioned neural simulator，支持闭环 policy rollout 和大规模、低成本的策略比较。&lt;/li&gt;
&lt;li&gt;提出 EWMBench，以 scene consistency、action trajectory quality、motion semantics 等指标评估 embodied video model，而不是只依赖 FVD、CLIP 或人类偏好。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方仓库已经公开训练、推理和示例入口，并提供 GE-Base slow/fast 权重说明、LeRobot 数据接口、GE-Act server 和 GE-Sim Cosmos2 推理脚本；论文中“将公开”的内容在当前仓库中已部分落地。&lt;/p&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 传统机器人系统通常把数据采集、policy training、仿真和评测拆成多个工程栈。真实机器人评测可靠但昂贵，物理模拟器高效却需要手工建模，VLA 则通常直接做 observation-to-action 的行为克隆。这种 patchwork 带来三个问题：失败模式难以定位，策略迭代速度受真实执行限制，训练和评测之间缺少共享的内部状态。&lt;/p&gt;
&lt;p&gt;主流 VLA 往往借助 VLM 把图像映射到语言中心的 semantic space，再预测动作。&lt;strong&gt;【Analysis】&lt;/strong&gt; GE 选择的是相反的归纳偏置：把未来的空间布局、机械臂姿态、接触过程和任务语义压进 vision-centric generative space；语言用于控制生成方向，而不是成为唯一的中间表示。&lt;/p&gt;
&lt;p&gt;与一般 text-to-video world model 相比，机器人 manipulation 还要求：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;相机视角和背景不能随时间漂移；&lt;/li&gt;
&lt;li&gt;robot morphology、物体位置和接触关系要保持物理上合理；&lt;/li&gt;
&lt;li&gt;高层 instruction 必须落到可执行的时间序列动作；&lt;/li&gt;
&lt;li&gt;模型还要能接受 action 作为条件，完成闭环 rollout。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 对第 $t$ 个视频 chunk，GE-Base 的目标是给定初始观察、语言指令和稀疏历史记忆，预测未来 $N$ 帧：&lt;/p&gt;
&lt;p&gt;$$
\mathbf{x}&lt;em&gt;{1:N}^{(t)} = \mathcal{W}(\hat{\mathbf{x}}&lt;/em&gt;{0:t-1},\ \mathbf{x}_0,\ q).
$$&lt;/p&gt;
&lt;p&gt;其中：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;$\mathbf{x}_0$：初始多视角观察；&lt;/li&gt;
&lt;li&gt;$\hat{\mathbf{x}}_{0:t-1}$：从历史 chunk 稀疏采样的 memory frames；&lt;/li&gt;
&lt;li&gt;$q$：自然语言 instruction；&lt;/li&gt;
&lt;li&gt;$\mathcal{W}$：GE-Base world model；&lt;/li&gt;
&lt;li&gt;$\mathbf{x}_{1:N}^{(t)}$：下一个多视角视频 chunk。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;GE-Act 则学习从视觉 latent 和 instruction 到动作 chunk 的映射。论文以双臂末端执行器的 14 维控制为例（每臂 $[x,y,z,roll,pitch,yaw,o]$），而官方 LeRobot 配置将 action expert 的输入通道设为 14、chunk 长度设为 54，并允许 &lt;code&gt;joint&lt;/code&gt; action space 与 &lt;code&gt;delta&lt;/code&gt; action type。&lt;strong&gt;【Code】&lt;/strong&gt; 因此，论文的 embodiment-level action 表述与代码当前数据适配层不是完全同一抽象，实际使用时需要按数据集配置对齐。&lt;/p&gt;
&lt;p&gt;GE-Sim 的输入是观察和动作轨迹 $\mathbf{A}\in\mathbb{R}^{K\times14}$，输出是动作执行后的下一段多视角视频；再把生成视频反馈给 policy，形成：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;instruction + observation → policy → action chunk → GE-Sim → predicted video
                                      ↑                       │
                                      └────── closed loop ────┘
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-genie-envisioner/GE-Base.8dxlvxl63q.webp&quot; alt=&quot;GE-Base 的多视角 autoregressive world model 与 cross-view causal block（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; GE-Base 接收 head、left wrist、right wrist 三路同步相机，分别编码初始图像与稀疏历史帧；不同 view 的 latent 与 noise 加上 2D rotary position embedding、view-specific embedding 和 timestep embedding 后进入 DiT。部分 block 做跨视角 self-attention，其余 block 将 view 维折叠进 batch，以平衡一致性和计算量。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这个设计把“多视角一致性”从后处理问题变成 backbone 内部的 token interaction：head view 负责全局布局，wrist views 提供接触细节，cross-view block 则约束三者描述的是同一个动作过程。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;GE-Base：带稀疏记忆的视频世界模型&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：三路同步视觉观察、四张稀疏历史帧、文本指令和随机噪声。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：下一个多视角 video chunk；反复 autoregressive 生成直到任务结束。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;视频骨干&lt;/strong&gt;：论文选用 LTX-Video 2B 与 COSMOS2 2B 两类 DiT；LTX 更偏低延迟，COSMOS2 更偏高保真模拟。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;语言条件&lt;/strong&gt;：冻结的 T5-XXL encoder 产生文本 embedding，经 DiT cross-attention 注入。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;记忆机制&lt;/strong&gt;：训练时从历史中随机抽 sparse memory；推理时按固定间隔均匀采样，避免只依赖最近帧。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; README 将两个公开视频模型区分为 &lt;code&gt;GE-Base-slow&lt;/code&gt;（中频、与 action dynamics 同步）和 &lt;code&gt;GE-Base-fast&lt;/code&gt;（低频、低延迟）。视频推理示例目录显式放置每个样本的四张多视角 history images 与 prompt，印证了论文的 sparse-memory 接口。&lt;/p&gt;
&lt;h4&gt;GE-Act：共享视觉 backbone 的 action branch&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-genie-envisioner/GE-Act.icuykz4za.webp&quot; alt=&quot;GE-Act 的 parallel action branch 与 flow-matching decoder（论文 Figure 5）&quot;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：GE-Base visual tokens、instruction embedding、噪声初始化的 action tokens。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;中间模块&lt;/strong&gt;：视觉 DiT block 与 action DiT block 并行；action branch 通过 cross-attention 读取每层视觉表示。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：一段时间结构化 action policy，不需要在部署时显式解码完整视频。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要&lt;/strong&gt;：直接从视频生成结果取动作会带来额外延迟；GE-Act 在 latent 空间做 action decoding，保留视觉语义同时绕开视频像素生成。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;实际规模&lt;/strong&gt;：论文描述为约 160M 参数的轻量 action decoder；官方配置中 &lt;code&gt;action_expert: true&lt;/code&gt;、&lt;code&gt;action_in_channels: 14&lt;/code&gt;、&lt;code&gt;action_chunk: 54&lt;/code&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;GE-Sim：把动作重新注入世界模型&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-genie-envisioner/GE-Sim.3gp5237eqv.webp&quot; alt=&quot;GE-Sim 的 Pose2Image、motion token 与 action-conditioned video generation（论文 Figure 8）&quot;&gt;&lt;/p&gt;
&lt;p&gt;GE-Sim 要解决的不是“生成一段看起来像机器人视频”，而是让低层动作与高层视觉 latent 对齐。它包含两条条件路径：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Pose2Image&lt;/strong&gt;：把末端位姿投影到相机平面，绘制位置、姿态轴和 gripper openness，再与对应历史图像分别编码后相加；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Motion Vector&lt;/strong&gt;：计算相邻位姿的 $\Delta\mathbf a_i$，经 learnable encoder 变成 motion tokens，并与 reference image style token 一起通过 cross-attention 注入 DiT。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; GE-Sim 同时支持基于 LTX-Video 的快速版本和基于 COSMOS2 的高保真版本；训练时还加入错误执行、不完整行为和次优控制轨迹，以覆盖失败模式。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;GE-Base 的多视角预测&lt;/h4&gt;
&lt;p&gt;$$
\hat{x}&lt;em&gt;t = \mathcal{W}\left({v_0^{(i)},v&lt;/em&gt;{\hat t}^{(i)},z^{(i)}}_{i\in{h,l,r}},\ \mathcal{T}(q)\right).
$$&lt;/p&gt;
&lt;p&gt;这里 $v_0^{(i)}$ 和 $v_{\hat t}^{(i)}$ 是第 $i$ 个视角的初始和历史 latent，$z^{(i)}$ 是 view-specific noise，$\mathcal{T}(q)$ 是 T5-XXL 文本表示。公式表达的重点是：每个 view 有自己的观测和噪声，但在 DiT 中被联合建模。&lt;/p&gt;
&lt;h4&gt;GE-Act 的视觉-动作交互&lt;/h4&gt;
&lt;p&gt;$$
\mathbf v_i=\mathcal B_i^{vis}(\mathbf v_{in},\mathcal T(q)),\qquad
\mathbf a_i=\mathcal B_i^{act}\left(\mathbf z_{act},\operatorname{CrossAttn}(\mathbf z_{act},\mathbf v_i)\right).
$$&lt;/p&gt;
&lt;p&gt;视觉 block $\mathcal B_i^{vis}$ 先产生语义和时空上下文，action block $\mathcal B_i^{act}$ 再以噪声动作 token 为 query 读取视觉特征。&lt;strong&gt;【Analysis】&lt;/strong&gt; 这比把最终视觉 embedding 一次性喂给 MLP 更接近“逐层共享中间状态”，有利于动作和预测的视觉动态保持一致。&lt;/p&gt;
&lt;h4&gt;Flow matching 的动作去噪&lt;/h4&gt;
&lt;p&gt;设真实动作为 $a_1$、高斯噪声为 $a_0$，线性路径为 $a_\sigma=(1-\sigma)a_1+\sigma a_0$，模型学习速度场 $v_\theta(a_\sigma,\sigma,c)$：&lt;/p&gt;
&lt;p&gt;$$
\mathcal L_{FM}=\mathbb E_{\sigma,a_0,a_1}\left[\left|v_\theta(a_\sigma,\sigma,c)-(a_1-a_0)\right|_2^2\right].
$$&lt;/p&gt;
&lt;p&gt;其中 $c$ 是视觉 latent、语言和可选 robot state 的条件。推理时从噪声动作开始，沿 flow-matching ODE 迭代得到 action chunk。&lt;strong&gt;【Code】&lt;/strong&gt; 训练器会按 scheduler 采样 action sigma、混合真实动作与噪声，并对 action loss 做 flow weighting；配置默认 &lt;code&gt;flow_weighting_scheme: none&lt;/code&gt;。&lt;/p&gt;
&lt;h4&gt;GE-Sim 的动作条件&lt;/h4&gt;
&lt;p&gt;$$
\mathbf v_i=\mathcal E(\mathbf I_i)+\mathcal E(\mathbf P_i),\qquad
\Delta\mathbf a_i=\mathbf a_i-\mathbf a_{i-1}.
$$&lt;/p&gt;
&lt;p&gt;图像 latent 与 pose-image latent 的逐元素相加保留场景语义和空间目标，动作差分则提供时间方向。两者分别解决“要在哪里动”和“应该如何继续动”。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;h4&gt;GE-Base 两阶段预训练&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Stage I — GE-Base-MR&lt;/strong&gt;：57 帧、3–30 Hz 随机采样，配 4 张 sparse memory，编码为 8 个 latent frames；32 张 A100 训练约 7 天。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Stage II — GE-Base-LF&lt;/strong&gt;：固定 5 Hz 采 9 帧，配 4 张 memory，压缩为 2 个 latent frames；冻结 video encoder/decoder，只更新生成组件；32 张 A100 约 3 天。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;第一阶段学习对采样率变化更鲁棒的运动表示，第二阶段把时间抽象对齐到下游 action policy 的低频视觉更新。&lt;/p&gt;
&lt;h4&gt;GE-Act 训练与任务适配&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-genie-envisioner/Train-Action.6t7uwgnyym.webp&quot; alt=&quot;GE-Act 的 text-video-policy 三阶段训练流程（论文 Figure 6）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; action pretraining 固定 GE-Base-LF，只训练 action decoder；输入 4 张 5 Hz memory，预测 30 Hz 的 54-step action。之后先做 video adaptation，再做 action specialization：前者适配新任务视觉分布，后者在任务数据上微调整个 action policy。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方 LeRobot 配置把这条流程拆成可执行的两个阶段：将 &lt;code&gt;return_video: true&lt;/code&gt;、&lt;code&gt;train_mode: video_only&lt;/code&gt; 用于视频适配，再切换为 &lt;code&gt;return_action: true&lt;/code&gt;、&lt;code&gt;train_mode: action_full&lt;/code&gt; 训练 action expert；训练数据可指定三路相机、&lt;code&gt;action_type&lt;/code&gt;（absolute/delta）和 &lt;code&gt;action_space&lt;/code&gt;（joint）。&lt;/p&gt;
&lt;h4&gt;GE-Sim 训练&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; GE-Sim 从高时间分辨率 GE-Base-MR 初始化，以真实 action trajectory 条件生成视频，同时混入 teleoperation 和真实部署中的 failure cases；VAE 与 CLIP encoder 冻结，其余生成参数用 flow-matching loss 优化。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;h4&gt;GE-Base / GE-Act 的 Slow-Fast Asynchronous Inference&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 视频 DiT 以 5 Hz 工作，action model 以 30 Hz 工作，频率比为 1:6。每次视觉 forward 只做一次 flow-matching denoising 并缓存 visual latent；同一缓存被 action model 复用，action 分支做 5 次 denoising 以获得 54-step 高频动作。论文报告在机器人上的 RTX 4090 上约 200 ms 完成一次推理。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; README 的 &lt;code&gt;video_model_infer_fast.yaml&lt;/code&gt; 关闭 action expert、只返回视频；policy 配置则开启 action expert、关闭视频返回。也就是说，官方实现把“单独生成视频”和“只解码动作”作为两个运行模式，而不是每次部署都输出两种结果。&lt;/p&gt;
&lt;h4&gt;GE-Sim 闭环 rollout&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; policy 先根据 instruction 和初始观察产生动作，GE-Sim 用该动作生成未来视频，再把视频反馈给 policy，如此迭代直到任务完成。相同动作还可以在不同初始视觉环境中重放，构造更多训练或评测样本。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;官方仓库的实现边界很清楚：&lt;/p&gt;
&lt;p&gt;| 论文模块 | 代码位置 / 入口 | 代码中可确认的行为 |
| --- | --- | --- |
| GE-Base / GE-Act | &lt;code&gt;models/ltx_models/&lt;/code&gt;, &lt;code&gt;runner/ge_trainer.py&lt;/code&gt;, &lt;code&gt;configs/ltx_model/&lt;/code&gt; | LTX 多视角模型、action expert 开关、flow scheduler、54-step chunk |
| 数据加载 | &lt;code&gt;data/agibotworld_dataset.py&lt;/code&gt;, &lt;code&gt;data/lerobot_like_dataset.py&lt;/code&gt; | AgiBotWorld 与 LeRobot 风格数据；三路相机字段可配置 |
| 动作推理 | &lt;code&gt;runner/ge_inferencer.py&lt;/code&gt;, &lt;code&gt;scripts/infer.sh&lt;/code&gt; | 输出 action prediction，并可绘制与 GT 对比的 open-loop 曲线 |
| 视频推理 | &lt;code&gt;video_gen_examples/infer.py&lt;/code&gt; | 从 prompt 和四张多视角历史图生成 GE-Base slow/fast 视频 |
| GE-Sim | &lt;code&gt;models/pipeline/gesim_pipeline.py&lt;/code&gt;, &lt;code&gt;gesim_video_gen_examples/infer_gesim.py&lt;/code&gt; | 读取 &lt;code&gt;.npy&lt;/code&gt; 的相机内外参与 action，运行 Cosmos2-based simulator |
| 在线部署 | &lt;code&gt;web_infer_scripts/&lt;/code&gt;, &lt;code&gt;web_infer_utils/&lt;/code&gt; | 提供基于 websocket/openpi 风格的 server-client 示例 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 当前代码更像“可复现实验骨架”而不是开箱即用的机器人系统：权重、VAE、tokenizer、相机标定和数据集路径都需要用户自行准备；README 也要求先修改 YAML 中的 checkpoint 与数据字段。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 数据主干是 AgiBot-World-Beta 的约百万条双臂真实操作轨迹。GE-Act 在 AgiBot G1 上测试 sandwich、pour tea、clean table、microwave、conveyor 上抓取洗衣液等任务；跨 embodiment 实验覆盖 Agilex Cobot Magic、Dual Franka 和 RoboTwin。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;评价指标&lt;/strong&gt;：Step-wise Success Rate（SR）统计子步骤完成比例，End-to-End Success Rate（E2E）只看整任务最终结果。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;对比方法&lt;/strong&gt;：UniVLA、GR00T N1、$\pi_0$ 等 VLA baselines。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;跨 embodiment 适配&lt;/strong&gt;：Agilex 和 Dual Franka 各用约 250 条示教，约 1 小时；新 embodiment 重新训练 action head，保留 GE-Base 视觉 backbone。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-genie-envisioner/Exp-SR-E2E-iclr.3rbyv8mn24.webp&quot; alt=&quot;AgiBot G1 上 GE-Act 与 VLA baselines 的 SR/E2E 对比（论文 Figure 7）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在 AgiBot G1 的多项真实任务上，GE-Act 的 SR 与 E2E 总体高于 UniVLA 和 GR00T N1；fast mode 在动态目标跟踪和 conveyor 抓取等低延迟任务上尤其有优势。论文将收益归因于 GE-Base 提供的时空先验和视觉-语言 grounding，而不仅是 action head 本身。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 跨 embodiment 结果也显示，GE-Act 用约 1 小时示教即可在 Agilex Cobot Magic 的 box folding、cloth folding 上完成复杂操作；在 Dual Franka 上，即使 $\pi_0$ 和 GR00T N1 有更多 Franka 数据，GE-Act 仍保持竞争力。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;论文在固定的“抓取红色圆柱并放入纸杯”任务上比较预训练来源、task video adaptation 与 robot state：&lt;/p&gt;
&lt;p&gt;| VidAW（GE-Base 初始化） | VidAda | E2E（有 state） | E2E（无 state） | SR（有 state） | SR（无 state） |
| --- | --- | ---: | ---: | ---: | ---: |
| 否 | 否 | 0.15 | 0.30 | 0.05 | 0.11 |
| 否 | 是 | 0.00 | 0.05 | 0.00 | 0.00 |
| 是 | 否 | 0.81 | 0.49 | 0.64 | 0.26 |
| 是 | 是 | &lt;strong&gt;0.89&lt;/strong&gt; | 0.37 | &lt;strong&gt;0.76&lt;/strong&gt; | 0.37 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 关键结论有两层：第一，来自 embodied video pretraining 的表示是 action learning 的主要基础；第二，加入 state 并非总是有益——没有 GE-Base 先验时，state 可能诱发 shortcut learning，反而损害性能。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-genie-envisioner/Exp-crossbody-iclr.6po8yquwt7.webp&quot; alt=&quot;不同 embodiment 上的任务成功率对比（论文 Figure 10）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; RoboTwin 中，GE-Act 用一个 all-in-one 模型联合适配四个任务，在四个任务中的三个超过 $\pi_0$ 和 GO-1；lift pot 的小幅落后被作者解释为 joint training 的 task interference。这个结果说明 GE 的泛化不只来自“为每个任务训练一套 policy”，而是共享 world representation 后再适配 action head。&lt;/p&gt;
&lt;p&gt;GE-Sim 的 action-conditioned 表格结果显示，LTX 和 COSMOS2 版本在 BLEU、CLIP、dynamic、scene 等指标上总体接近，COSMOS2 在动态一致性上更好；EWMBench 与人类偏好排序的一致性也高于通用 VBench。&lt;strong&gt;【Analysis】&lt;/strong&gt; 这验证的是“模拟器可用性”而非真实 task success：视频与动作对齐是必要条件，但还不是安全部署的充分条件。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-genie-envisioner/Exp-8metric-v2.2h91ox4nvx.webp&quot; alt=&quot;EWMBench 对多个视频世界模型的多维度比较（论文 Figure 12）&quot;&gt;&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; GE 的收益可以拆成三个互补因素：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;视觉空间保留了控制细节&lt;/strong&gt;：视频 latent 同时编码场景、机器人姿态和未来变化，比单一语义 embedding 更接近 manipulation 所需的几何信息。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;稀疏 memory 延长了有效上下文&lt;/strong&gt;：模型可以看到“物体已经被放进盒子、随后被遮挡”的历史，而不是只看最近一帧。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;动作与视频共享中间表示&lt;/strong&gt;：GE-Act 不用从零学习视觉到动作的映射，GE-Sim 又能把动作结果投回视觉空间，形成学习、执行、评测的闭环。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;平台级创新&lt;/strong&gt;：把 world model、policy、simulator、benchmark 组合为同一个接口，而不是只提出一个新 decoder。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;建模级创新&lt;/strong&gt;：多视角 cross-view attention + sparse memory + language-conditioned autoregressive video generation。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;控制级创新&lt;/strong&gt;：并行 action branch 与异步 slow-fast inference，把视频频率和动作频率解耦。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;评测级创新&lt;/strong&gt;：EWMBench 把 scene、motion、semantics 和 action-conditioned controllability 放到同一套指标中。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;| 路线 | 中间表示 | 是否能内部预测未来 | 是否能动作条件模拟 | 主要瓶颈 |
| --- | --- | --- | --- | --- |
| 传统 VLA | VLM / language-centric feature | 通常不能 | 通常不能 | 行为克隆与真实评测成本 |
| 通用视频模型 | pixel/latent video | 能生成视频 | 多数没有机器人动作接口 | 物理与控制对齐不足 |
| GE | embodied visual latent | 能 | GE-Sim 支持 | 数据来源和评测仍有限 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; GE 并没有证明“视频生成天然优于 VLA”；它证明的是：当视觉世界模型在足够多的机器人视频上预训练后，它可以成为 policy、simulation 和 evaluation 的共享 substrate。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;三路相机同步且标定稳定，视角之间的对应关系可以由模型学习。&lt;/li&gt;
&lt;li&gt;AgiBot-World-Beta 的操作分布足以提供可迁移的 embodied prior。&lt;/li&gt;
&lt;li&gt;视觉预测的高保真与动作执行质量存在可利用的相关性。&lt;/li&gt;
&lt;li&gt;action chunk 的低频规划和高频低层控制可以通过异步架构解耦。&lt;/li&gt;
&lt;li&gt;video-based simulator 即使没有显式物理引擎，也能在任务相关指标上提供有价值的策略排序。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;数据来源单一&lt;/strong&gt;：预训练主要依赖单一真实平台和 AgiBot-World-Beta，没有互联网规模或仿真数据，跨传感器和低资源 domain 的稳健性未充分验证。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;embodiment 范围有限&lt;/strong&gt;：当前集中在上半身桌面操作和平行夹爪，没有涉及灵巧手、多接触 manipulation 或全身 locomotion。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;评测仍是 proxy&lt;/strong&gt;：EWMBench 依赖视觉、轨迹和 VLM 指标，并只有部分人工验证，尚不能完全自动、可靠地判断复杂失败下的真实任务成功。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;世界模型的错误会被闭环放大&lt;/strong&gt;：GE-Sim 生成的“看起来合理”视频可能掩盖碰撞、摩擦或力学失败，policy 若在模拟器中优化，可能学到 simulator-specific shortcut。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;稀疏记忆不是免费午餐&lt;/strong&gt;：遮挡、相机漂移或历史采样错误会让 latent 记忆携带过时状态；论文没有给出 memory dropout、长度和采样策略的系统消融。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;action representation 仍依赖 embodiment&lt;/strong&gt;：论文用 14D EEF 表达说明统一接口，代码却需要在 &lt;code&gt;joint/delta/absolute&lt;/code&gt; 等数据配置间适配；真正跨机器人共享 action semantics 仍未解决。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;成本和复现门槛很高&lt;/strong&gt;：论文训练阶段使用数十张 A100，代码还要求用户自行准备大模型 VAE、tokenizer、标定和权重，普通实验室很难完整复现实验规模。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;基准与任务成功之间仍有间隙&lt;/strong&gt;：EWMBench 能比较视频动态与语义，但不等价于抓取成功、接触稳定性或安全性；后续需要 simulator-to-real 校准和真实闭环验证。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这篇工作最值得借鉴的不是“把机器人视频做得更清晰”，而是接口设计：同一个 latent space 同时服务 prediction、control 和 evaluation。由此可以得到几条研究路线：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;从视觉预测到 belief state&lt;/strong&gt;：把 GE-Base latent 显式拆成可校准的 scene state、robot state 和 uncertainty，减少“视频逼真但状态错误”。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;把 simulator 用作主动数据引擎&lt;/strong&gt;：让 policy 在 GE-Sim 中提出失败轨迹，再把高价值失败样本回流到 GE-Base 和 GE-Act 训练。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;统一 action tokenization&lt;/strong&gt;：在 EEF、joint、torque 之间学习 embodiment-conditioned action token，使新机器人只需少量 adapter，而不是重新训练 action head。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;从指标相关性到安全保证&lt;/strong&gt;：EWMBench 可以加入碰撞、接触力、可逆性和不确定性指标，并与真实任务 success 做 calibration。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;更长时域的记忆机制&lt;/strong&gt;：将 sparse memory 与事件级摘要、object-centric memory 结合，解决遮挡后依赖内部记忆的长流程任务。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 如果把 VLA 看作“当前观察到动作”的函数，那么 Genie Envisioner 更接近一个可查询的 embodied dynamics service：可以问它“接下来可能发生什么”，也可以问“如果执行这组动作，视觉上会怎样”。这正是机器人从一次性 imitation 走向可预测、可评估、可迭代 learning system 的关键一步。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/90399055_p0_master1200.4g535npbv6.webp"/><enclosure url="https://pic.hana0721.top/90399055_p0_master1200.4g535npbv6.webp"/></item><item><title>FTP-1 论文精读：把异构触觉做成可迁移的基础策略</title><link>https://agusexp25.top/blog/paper-deep-dive-ftp-1</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-ftp-1</guid><description>FTP-1 用形态感知触觉 Token 空间和共享触觉专家，将 21 种传感器、26 个数据源的触觉经验迁移到接触密集操作。</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;【Paper】FTP-1 将图像式、阵列式与状态式触觉映射到 &lt;strong&gt;Morphology-Aware Tactile Token Space（MTTS）&lt;/strong&gt;，再由一个跨传感器共享的 Tactile Transformer Expert 建模；它在约 3,000 小时、26 个来源、21 种触觉传感器的聚合数据上预训练，目标不是为某个夹爪或皮肤做一个更好的策略，而是提供触觉操作的共同初始化点。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-ftp-1/ftp1-overview.96ahdrnvw4.webp&quot; alt=&quot;FTP-1 overview from paper Figure 1&quot;&gt;&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;【Paper】提出首个面向多种传感器和具身形态的 generalist foundation tactile policy：不是将触觉当作 VLA 的一个临时 adapter 输入，而是显式设置一个可复用的触觉专家。&lt;/li&gt;
&lt;li&gt;【Paper】以 MTTS 把不同传感器的读数按手指、腕部力矩或夹爪两侧等「功能区域」对齐；每个区域对应一个 Token，并共享 functional-area embedding。&lt;/li&gt;
&lt;li&gt;【Paper】聚合 26 个数据源，覆盖 7 类图像式、5 类阵列式与 9 类状态式传感器；重采样后人手、灵巧手和夹爪数据比例约为 20% / 30% / 50%。&lt;/li&gt;
&lt;li&gt;【Paper】在已见和未见传感器设置上都报告增益。特别是未见的 Xense 与 Contactile 设置中，FTP-1 的平均成功率为 46.6%，相对 FTP-$\pi_{0.5}$ 的 15.0% 高 31.6 个百分点。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;【Paper】视觉基础策略已经可以依靠大规模异构数据迁移到新任务与新机器人，但触觉策略常被传感器的观测格式锁死：GelSight 是图像，Contactile 是阵列，腕部力/力矩又是一段低维状态；它们还在分辨率、安装位置和接触响应上不同。把它们简单拼接，模型很难判断「两个数值/像素块是否都在描述拇指接触」。&lt;/p&gt;
&lt;p&gt;现有触觉表征预训练能够提升感知，VTLA（Vision-Tactile-Language-Action）模型也会把触觉注入视觉语言模型；但【Paper】认为两者通常仍绑定于有限硬件配置。FTP-1 的问题更严格：&lt;strong&gt;一个策略能否从异构触觉经验中提取可在新传感器上复用的操作知识？&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;【Analysis】这使工作重点从「给 VLA 加触觉」转为「定义触觉的跨硬件接口」。若接口没有语义，扩大数据集只会扩大输入分布；若接口有功能语义，才可能让预训练专家在下游保留有价值的参数。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;【Paper】在时刻 $t$，策略接收语言指令 $\ell$、单/多视角 RGB 观测 $\mathcal{I}_t$、本体感觉 $\mathbf{s}_t$ 和触觉观测 $\mathcal{X}_t$，预测长度为 $H$ 的连续动作块：&lt;/p&gt;
&lt;p&gt;$$
\hat{\mathbf{A}}&lt;em&gt;{t:t+H-1}=\pi&lt;/em&gt;\theta(\ell, \mathcal{I}_t, \mathbf{s}_t, \mathcal{X}&lt;em&gt;t),
\qquad \hat{\mathbf{A}}&lt;/em&gt;{t:t+H-1}\in\mathbb{R}^{H\times D}.
$$&lt;/p&gt;
&lt;p&gt;其中 $D$ 是 Unified Action Space（UAS）的固定维度。不同机器人只填充自己支持的动作槽位；训练时对不存在或不支持的维度使用掩码，因此多种具身可以共享动作布局。【Paper】UAS 中还以 Function–Actuator–Aligned Space（FAAS）对齐不同灵巧手的功能相近关节。&lt;/p&gt;
&lt;p&gt;真正困难不在于输出维度固定，而是 $\mathcal{X}_t$ 没有统一原始形状。FTP-1 的解决方案是先把它变成固定数量、带区域含义的触觉 Token 序列。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-ftp-1/ftp1-architecture.szoru0hen.webp&quot; alt=&quot;FTP-1 architecture from paper Figure 2&quot;&gt;&lt;/p&gt;
&lt;p&gt;【Paper】数据流可概括为：异构触觉 $\rightarrow$ 传感器专属 encoder 与 MTTS Token $\rightarrow$ 共享 Tactile Expert，随后由 Action Expert 联合视觉、语言、本体状态与触觉信息生成连续动作块。&lt;/p&gt;
&lt;p&gt;结构包含三位「专家」：预训练 vision-language expert 编码图像与语言；300M 参数的共享 tactile Transformer 编码触觉 Token；flow-matching action expert 读取前两者并产生动作。【Paper】Action Expert 可以 attend 到 Tactile Expert，但反方向不发生，避免触觉分支扰动已有视觉语言知识；本体状态通过 adaptive RMSNorm 注入动作分支。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;MTTS：以功能区域而非硬件编号对齐触觉&lt;/h4&gt;
&lt;p&gt;【Paper】MTTS 固定定义 24 个 functional areas。槽位 0–14 表示手的不同功能区域，15–20 表示腕部/手指的力矩区域；平行夹爪的两侧则映射到拇指尖（0）和食指尖（1），21–23 预留。每个实际传感器先被标注到这些区域，再加上左右手可区分的、跨传感器共享的区域 embedding。&lt;/p&gt;
&lt;p&gt;这种对齐是「形态感知」的关键：同样位于抓取接触点的两种硬件输出，被分配到相同语义槽位；模型仍可通过 encoder 保留传感器差异，而不必把两者强行当成相同像素或数值。&lt;/p&gt;
&lt;h4&gt;Heterogeneous tactile encoders：保留各模态的物理结构&lt;/h4&gt;
&lt;p&gt;【Paper】FTP-1 不用一个 encoder 处理所有触觉格式：&lt;/p&gt;
&lt;p&gt;| 输入类型                | 编码路径                                                      | 输出                   |
| ----------------------- | ------------------------------------------------------------- | ---------------------- |
| 图像式（如 GelSight）   | 轻量、传感器专属 ViT，再接跨传感器共享的预训练 T3 Transformer | 最后一层 &lt;code&gt;[CLS]&lt;/code&gt; Token |
| 阵列式（如 Contactile） | CNN 提取空间结构                                              | 每个功能区域一个 Token |
| 状态式（如力/力矩）     | Fourier feature encoding，再接轻量 MLP                        | 每个功能区域一个 Token |&lt;/p&gt;
&lt;p&gt;【Paper】同一传感器中形状相同的多个功能区域共享相应 encoder，以减少传感器专属参数并促进一致的触觉动态建模。到未见传感器时，下游需要从头训练该传感器 encoder，但保留共享 tactile expert、MTTS 和区域 embedding。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;p&gt;【Paper】将第 $i$ 个功能区域的原始信号记为 $x_i$，其传感器/模态对应 encoder 为 $f_{s(i)}$，区域 embedding 为 $e_{a(i)}$。MTTS 的 Token 化可以写为：&lt;/p&gt;
&lt;p&gt;$$
z_i = f_{s(i)}(x_i) + e_{a(i)},
\qquad i\in{1,\ldots,24}.
$$&lt;/p&gt;
&lt;p&gt;$z_i$ 是输入给触觉专家的统一 Token；$a(i)$ 是它的功能区域，$s(i)$ 决定选 ViT、CNN 或 MLP 路径。这个式子是对论文模块描述的紧凑表达：论文强调固定 Token 槽和加法式的 shared functional-area embedding，但未将其单列为公式。&lt;/p&gt;
&lt;p&gt;【Paper】对 UAS 中各具身不具备的动作维度，论文使用动作掩码 $\mathbf{M}\in{0,1}^{D}$ 排除训练损失。可把这一约束抽象为：&lt;/p&gt;
&lt;p&gt;$$
\mathcal{L}_{\text{valid}}=\mathcal{L}\bigl(\mathbf{M}\odot\hat{\mathbf{A}},;\mathbf{M}\odot\mathbf{A}\bigr).
$$&lt;/p&gt;
&lt;p&gt;这里 $\mathbf{A}$ 为目标动作，$\odot$ 表示逐维相乘；$\mathcal{L}$ 的具体 flow-matching 形式在论文中未明确给出，因此上式只说明掩码的作用，不把它误作论文公布的完整训练目标。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;【Paper】预训练数据涵盖人手、灵巧手和夹爪操作，并按来源重采样来缓解规模不平衡。所有触觉标注先进入 MTTS，异构具身的动作则进入 UAS；由此共享模块可以跨域累积梯度，而专属 encoder 只处理各自的输入形状。&lt;/p&gt;
&lt;p&gt;【Code】公开的 UniVTAC 示例启动脚本位于 &lt;code&gt;scripts_exp_zarr/univtac/train_univtac_example.sh&lt;/code&gt;：使用 4 GPU、global batch size 64、20,000 steps、500 step warmup、峰值学习率 $5\times10^{-5}$，并显式开启 &lt;code&gt;model.use_tactile_input&lt;/code&gt;、&lt;code&gt;gemma_small&lt;/code&gt; tactile expert 与 EMA（0.99）。这些是示例微调配置，不应视为论文全部预训练超参数。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;【Paper】运行时策略以当前多模态观测预测一段长度 $H$ 的动作 chunk，并在执行后根据新观测重新决策。&lt;/p&gt;
&lt;p&gt;【Code】&lt;code&gt;FTP1InferenceWrapper&lt;/code&gt; 是官方推荐入口，负责 checkpoint 加载、输入归一化与动作反归一化；其 &lt;code&gt;infer(...)&lt;/code&gt; 接收 &lt;code&gt;tactiles&lt;/code&gt;、&lt;code&gt;tactile_function_areas&lt;/code&gt; 和 &lt;code&gt;tactile_sensors&lt;/code&gt;。README 说明当前包装器通常使用 $T=1$ 的当前状态，默认 FTP-1 action horizon 为 32，&lt;code&gt;num_inference_steps&lt;/code&gt; 示例为 10。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;| 论文概念                | 官方实现                                                                       | 读代码时应注意                                                                   |
| ----------------------- | ------------------------------------------------------------------------------ | -------------------------------------------------------------------------------- |
| 下游 Zarr 数据入口      | &lt;code&gt;scripts_exp_zarr/univtac/dataset_univtac.json&lt;/code&gt;、&lt;code&gt;data_processing/&lt;/code&gt;            | 公开例子需要用户提供已处理的 Zarr 路径。                                         |
| 训练与 checkpoint 载入  | &lt;code&gt;scripts/zarr_train_ftp1_pytorch.py&lt;/code&gt;                                           | DataLoader 的 action horizon 来自模型配置；恢复权重时还会载入 &lt;code&gt;hpt_tokenizer/&lt;/code&gt;。 |
| 传感器专属 tokenization | &lt;code&gt;src/openpi/models_pytorch/&lt;/code&gt; 中的 FTP-1 模型与 &lt;code&gt;hpt_tokenizer&lt;/code&gt; checkpoint 目录 | 【Code】训练时会把 dataset 提供的 tactile input config 写入 model config。       |
| 部署推理                | &lt;code&gt;src/openpi/policies/ftp1_inference_wrapper.py&lt;/code&gt;                                | 【Code】封装了归一化、反归一化与 tactile 输入的结构约束。                        |&lt;/p&gt;
&lt;p&gt;【Code】仓库还提供 &lt;code&gt;scripts_exp_zarr/pretrain_small/&lt;/code&gt; 作为轻量预训练示例。多域联合训练时，README 描述其会将格式相同的 domain sample 分配到各 GPU；domain-specific 模块独立更新，而 shared modules 的梯度在联合更新前合并。这是工程上使「异构输入 + 共享专家」可规模化的关键配套，而不仅是一张架构图。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-ftp-1/ftp1-dataset.4joud2pcsi.webp&quot; alt=&quot;FTP-1 dataset overview from paper Figure 4&quot;&gt;&lt;/p&gt;
&lt;p&gt;【Paper】作者把预训练 checkpoint 分发给 5 个硬件设置，覆盖 14 个接触密集任务。已见传感器评测包括 UniVTAC 仿真（GelSight-Mini）与两套真实机器人设置：Sharpa North 的长时程灵巧操作、Sharpa&amp;#x26;Dexmate 的按压/力控操作；未见传感器评测包括 FlexivXense（Xense 图像触觉）和 TactileUMI（Contactile 阵列触觉）。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-ftp-1/ftp1-seen-setup.7i14gkxmhe.webp&quot; alt=&quot;Seen-sensor fine-tuning setups from paper Figure 5&quot;&gt;&lt;/p&gt;
&lt;p&gt;【Paper】仿真每个任务评测 100 次 rollout，真实机器人每个任务 20 次。比较对象分别隔离了触觉输入、融合结构和预训练的贡献：无触觉的 $\pi_{0.5}$、将触觉注入 VLM 的 Tactile-VLA、未作 FTP-1 预训练的同架构 FTP-$\pi_{0.5}$，以及 FTP-1。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;【Paper】在 UniVTAC 的 6 个任务上，FTP-1 平均成功率为 66.66%，高于 $\pi_{0.5}$（49.16%）、Tactile-VLA（41.83%）和 FTP-$\pi_{0.5}$（45.16%）；去掉两个 lift 任务后平均为 59.5%。在真实的已见传感器设置上，论文报告 FTP-1 的平均成功率为 62.5%，相比最强基线提升约 17.2 个百分点。&lt;/p&gt;
&lt;p&gt;【Paper】更关键的未见设置中，FTP-1 在 Insert Hanoi / Insert USB / Wipe Board 上分别为 55 / 30 / 55%，平均 46.6%；FTP-$\pi_{0.5}$ 为 5 / 10 / 30%，平均 15.0%。这说明「新 encoder 从头学、共享触觉知识复用」至少在两种新硬件上成立。&lt;/p&gt;
&lt;p&gt;【Analysis】结果不应被解读为完全零样本传感器迁移：未见 Xense 每项仍用 100 条微调 demonstrations，Contactile 的 Wipe Board 用 50 条。贡献是更好的&lt;strong&gt;微调起点&lt;/strong&gt;，不是拿到陌生传感器即刻控制。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-ftp-1/ftp1-pretraining-ablation.2yz3dls5yy.webp&quot; alt=&quot;Pretrained tactile knowledge ablation from paper Figure 7&quot;&gt;&lt;/p&gt;
&lt;p&gt;【Paper】作者用 NTP-1 区分「数据分布更接近下游」和「触觉分支学到可迁移知识」两种解释：NTP-1 使用与 FTP-1 相同的数据和优化设置预训练，但预训练阶段删除触觉输入与触觉架构；微调时再添加同一触觉架构。&lt;/p&gt;
&lt;p&gt;在 UniVTAC，NTP-1 的平均成功率为 50.00%，优于无触觉预训练的 FTP-$\pi_{0.5}$（45.16%），表明数据分布相近可能确有帮助；但仍远低于 FTP-1 的 66.66%。【Paper】在 FlexivXense 上 FTP-1 比 NTP-1 高 37.5 个百分点，因此作者将主要增益归因于预训练得到的 tactile knowledge，而非仅仅看过相似数据。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;【Paper】未见设置中仅从头训练 sensor-specific encoder，同时复用 Tactile Expert、图像式触觉的共享 Transformer 模块和 functional-area embedding。这是本文最有信息量的泛化实验：它要求模型把「接触是否对齐、插入应否放慢、擦拭压力是否稳定」之类的动态知识，与一个没有见过的输入外观重新连接。&lt;/p&gt;
&lt;p&gt;【Analysis】两个未见传感器恰好分别属于图像式和阵列式，并非对所有传感器类别的完备覆盖；仍然，它比「同一 GelSight 换一个任务」更能检验 MTTS 的跨硬件主张。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;【Analysis】FTP-1 的有效性来自三层解耦：专属 encoder 负责把硬件特征读对；MTTS 负责把读数放到正确的功能语义位置；共享 expert 负责从大量轨迹中学习接触动态。若只共享 encoder，会因输入形状不同而失败；若只共享 expert 却没有 MTTS，Token 的位置缺乏稳定含义。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;【Analysis】创新不只是「多模态」或「更多数据」，而是把&lt;strong&gt;形态语义写入 Token interface&lt;/strong&gt;。相同的 tactile expert 因此看到的是「拇指尖接触」「夹爪一侧接触」「腕部力矩」等功能化槽位，具备跨传感器复用的条件；UAS/FAAS 则在动作端做出对应对齐。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;| 路线            | 触觉的角色                                  | 跨传感器迁移的瓶颈                                 |
| --------------- | ------------------------------------------- | -------------------------------------------------- |
| 单任务触觉策略  | 某硬件专属观测                              | encoder、数据和策略通常一起绑定                    |
| adapter 式 VTLA | 作为附加 Token 注入 VLM                     | 触觉模块难独立积累、复用知识                       |
| FTP-1           | 独立的共享 Tactile Expert，输入受 MTTS 约束 | 仍须为新硬件学习专属 encoder，但可复用其余触觉模块 |&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;【Analysis】MTTS 假设不同硬件之间存在可靠的功能区域映射；例如平行夹爪两侧可对应拇指和食指尖。这对常见抓取很自然，但对全身皮肤、柔性连续皮肤或形态功能不等价的末端执行器，映射未必成立。第二个假设是区域语义足以桥接物理差异；若不同传感器的接触响应差异过大，shared expert 仍可能需要更多适配。&lt;/p&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;【Paper】作者将 FTP-1 定位为初步探索：目前主要处理 general tactile perception，尚未直接解决 tactile-/force-based servoing 与低层控制；预训练数据的规模和多样性也仍有限。论文提出未来可扩展到未来触觉预测和基于预测的低层控制。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;【Analysis】MTTS 的人工功能区域定义是知识注入也是维护成本。新硬件接入前需要明确标注区域，映射错误会把错误的语义送入共享专家。&lt;/li&gt;
&lt;li&gt;【Analysis】未见传感器结果依赖下游微调和一定数量 demonstrations，尚未证明跨传感器的 zero-shot control。&lt;/li&gt;
&lt;li&gt;【Analysis】论文的未见实验覆盖两种传感器类型、三个任务；对更极端的分辨率变化、时延、漂移与复杂接触（如软体、多点滑移）的稳健性还需更系统的评估。&lt;/li&gt;
&lt;li&gt;【Analysis】共享 Token 空间提供对齐，但不自动保证因果接触理解；若训练数据的视觉线索已足够预测动作，触觉分支是否真正被使用仍应配合干预式评测。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;【Analysis】FTP-1 给触觉基础模型一个很实用的设计范式：先把「什么地方在接触、该怎样控制」变成跨硬件稳定的接口，再谈用多少数据和多大的 Transformer。其 MTTS 与 UAS/FAAS 共同暗示，通用机器人策略的规模化不只是堆数据，也需要在观测端和动作端同时建立可组合的语义坐标系。&lt;/p&gt;
&lt;p&gt;下一步值得验证三个问题：能否自动学习而非人工指定 MTTS 映射；能否用预测式世界模型把触觉从反应信号提升为可前瞻的控制状态；以及当新硬件只给极少数据时，究竟是 encoder、区域 embedding 还是 tactile expert 决定迁移样本效率。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/70977889_p0_master1200.9gx5x526gc.webp"/><enclosure url="https://pic.hana0721.top/70977889_p0_master1200.9gx5x526gc.webp"/></item><item><title>ForceVLA2 论文精读：让 VLA 学会感知并控制接触力</title><link>https://agusexp25.top/blog/paper-deep-dive-forcevla2</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-forcevla2</guid><description>精读 ForceVLA2：用 Force Prompt、Cross-Scale MoE 与混合力位控制，把力觉从辅助观测变成接触丰富操作中的闭环控制信号。</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 《ForceVLA2: Unleashing Hybrid Force-Position Control with Force Awareness for Contact-Rich Manipulation》发表于 arXiv，论文页面注明已被 CVPR 2026 接收。作者提出一个端到端的 force-aware VLA：高层用 force prompt 形成阶段性的任务概念，低层用 Cross-Scale Mixture-of-Experts（MoE）把视觉语言语义、末端位姿和实时力/力矩融合为混合力位动作。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-forcevla2/2-crop.webp&quot; alt=&quot;ForceVLA2 的整体框架（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这篇工作的关键不是“给 $\pi_0$ 多加一个力传感器输入”，而是把力觉拆成两个时间尺度：慢速的力感知任务分解，以及绕过高层融合、直接驱动 Action Expert 的快速反应回路。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;提出 ForceVLA2，将 Force Prompt、Cross-Scale MoE 和混合力位控制统一到 VLA 中。&lt;/li&gt;
&lt;li&gt;构建 ForceVLA2-Dataset：5 个接触丰富任务、1,000 条轨迹、约 500K 个同步时间步，同时记录多视角图像、任务提示、末端状态和 6D 力/力矩。&lt;/li&gt;
&lt;li&gt;在真实机器人上取得平均 66% 成功率；相较 $\pi_0$ 和 $\pi_{0.5}$ 的平均结果分别提升 48 和 35 个百分点，并在装配齿轮任务上比第二名高 50 个百分点。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 现有 VLA（例如 $\pi_0$、$\pi_{0.5}$、OpenVLA）擅长视觉语义对齐，却通常输出末端位姿或关节动作。对按压、擦拭、插入和装配这类任务，视觉很难判断“是否已经接触”“接触是否过大”，单纯追踪位置会导致卡死、过载或失去接触。&lt;/p&gt;
&lt;p&gt;ForceVLA 已经证明，把力作为输入可以提升接触任务表现，但论文认为这仍主要是感知层的增强：模型看到力，却不一定学会主动调节力。ForceVLA2 的问题设定因此更具体：如何让语言层理解当前接触阶段，同时让动作层在毫秒级别利用力反馈改变控制模式。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这也解释了为什么作者不把所有力 token 都塞进 VLM：高层语义推理需要稳定上下文，瞬时力信号则更像控制回路中的高频反馈，两者的延迟和职责不同。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在时间步 $t$，策略接收：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;三路 RGB 视角（两路第三人称、一路腕部相机）；&lt;/li&gt;
&lt;li&gt;全局任务提示 $T_t$；&lt;/li&gt;
&lt;li&gt;当前子任务对应的 Force Prompt $T_f$；&lt;/li&gt;
&lt;li&gt;末端执行器位姿 $mathbf p$ 与 6D 力/力矩 $mathbf f_{mathrm{raw}}$。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;策略输出混合力位控制命令，包括末端位姿变化、目标接触力和子任务进度信号。论文正文把位姿 token 写成 7 维（位置加四元数），而附录的控制分析又使用 6D 位姿；因此动作总维度在论文不同段落之间并不完全一致，&lt;strong&gt;【Analysis】&lt;/strong&gt; 这里应把它理解为“位姿控制量 + 6D 力/力矩”，而不是依赖某个固定维度。&lt;/p&gt;
&lt;p&gt;机器人平台是 7-DoF Flexiv Rizon 4s，配 DH Robotics AG-95 夹爪和末端 6D F/T 传感器。评测覆盖 press bottle、clean vase、clean board、retrieve plate、assemble gears 五项任务。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; ForceVLA2 的数据流可以压缩为一句话：多视角图像、任务提示和 Force Prompt 进入 VLM 形成长时程任务概念；末端位姿经多模态编码器与 VLM 对齐，而实时力信号保留一条旁路直接进入 Cross-Scale MoE；MoE 再条件化 flow-matching Action Expert，生成混合力位动作。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这是一种“语义规划 + 反应控制”的双时间尺度结构，而不是把 VLM 和控制器简单串联。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;Force Prompt：把力觉变成阶段语义&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 每个任务预先拆成 3–5 个子任务。Force Prompt 是描述当前子任务和物理上下文的文本提示，例如提示机器人保持当前阶段，或在满足接触条件后切换到下一阶段。它像一个离散状态机，把“当前需要按压、擦拭还是探索”显式交给 VLM。&lt;/p&gt;
&lt;p&gt;输入是多视角视觉 token、全局任务文本和阶段性力提示，输出是带有子任务进度和空间语义的 VLM contextual tokens。它的作用不是直接输出力，而是为 Action Expert 提供“这一刻力应该服务于哪个阶段”的语义先验。&lt;/p&gt;
&lt;h4&gt;Proprioceptive-force Encoding：位姿与力的不同路径&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 末端位姿 $mathbf p$ 经线性层 $phi_P$ 投影为 $mathbf E_P$，原始 6D 力/力矩 $mathbf f_{mathrm{raw}}$ 经 $phi_F$ 投影为 $mathbf E_F$。位姿和力 token 先组成状态表示，并通过 Cross-Attention 从 VLM token 中取得任务上下文。&lt;/p&gt;
&lt;p&gt;关键区别是：慢变化的位姿进入多模态编码器，而快速变化的力保留 bypass，直接送入 MoE。这样既能让力理解任务语境，又避免高层融合抹平接触瞬态。&lt;/p&gt;
&lt;h4&gt;Cross-Scale MoE：按阶段选择主导模态&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; MoE 包含视觉、状态和力三个轻量 MLP expert。门控网络为每个 token 产生 $w_V,w_S,w_F$，再按 token 动态加权。自由空间运动时，视觉和位姿可以占主导；接触、擦拭或插入时，力 expert 的权重可以上升。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-forcevla2/3_rename-crop.webp&quot; alt=&quot;ForceVLA2-Dataset 的任务与模态示意（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;h4&gt;Flow-matching Action Expert&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; MoE 表示被送入 conditional flow-matching policy。模型从高斯噪声动作开始，在条件向量引导下逐步去噪，最终得到位姿变化、目标力和进度信号。论文将其建立在 $\pi_0$ 的 VLM + flow-matching 结构之上。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;p&gt;视觉与文本融合为：&lt;/p&gt;
&lt;p&gt;$$
\mathbf E = \mathrm{VLM}([f(\mathbf E_v);g([\mathbf T_t;\mathbf T_f])])
$$&lt;/p&gt;
&lt;p&gt;其中 $f$、$g$ 分别是视觉和文本编码器，$mathbf T_t$ 是任务提示，$mathbf T_f$ 是 Force Prompt。&lt;/p&gt;
&lt;p&gt;状态条件化为：&lt;/p&gt;
&lt;p&gt;$$
\mathbf E&apos;&lt;em&gt;{state}=\mathrm{CrossAttn}(\mathbf E&lt;/em&gt;{state},\mathbf E),\qquad
\mathbf E_{cond}=[\mathbf E;\mathbf E&apos;_{state};\mathbf E_F]
$$&lt;/p&gt;
&lt;p&gt;Cross-Scale MoE 为：&lt;/p&gt;
&lt;p&gt;$$
\mathbf E_{MoE}=\sum_{m\in{V,S,F}}w_m,\mathrm{Expert}&lt;em&gt;m(\mathbf E&lt;/em&gt;{cond})
$$&lt;/p&gt;
&lt;p&gt;其中 $m$ 表示视觉、状态和力三个 expert，$w_m$ 是 token 级动态门控权重。&lt;/p&gt;
&lt;p&gt;Flow matching 的连续形式为：&lt;/p&gt;
&lt;p&gt;$$
\frac{d\mathbf a_t^{(\tau)}}{d\tau}=F_\theta(\mathbf a_t^{(\tau)},\mathbf E_{MoE},\tau),\quad \tau\in[0,1]
$$&lt;/p&gt;
&lt;p&gt;离散实现从 $mathbf a_t^{(0)}\sim\mathcal N(0,I)$ 开始迭代更新。&lt;strong&gt;【Paper】&lt;/strong&gt; 论文还用 $Theta$（姿态对齐）、$L$（到目标距离）和 $F$（力幅值）构造子任务转移概率：&lt;/p&gt;
&lt;p&gt;$$
\hat s_t=\theta^\alpha e^{-\lambda l}\frac{f-n}{m-n},\qquad \alpha=2,\ \lambda=2
$$&lt;/p&gt;
&lt;p&gt;它把“姿态接近目标、距离缩短、接触力达到条件”组合为阶段进度信号；超过阈值后切换子任务并重置。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 数据采集使用 force-feedback GELLO 遥操作。三路相机同步记录，F/T 传感器以 300 Hz 记录，视觉统一缩放到 480×640。模型在 8 张 A100 上训练 30,000 steps，batch size 为 32，优化器为 AdamW，学习率采用 cosine decay，EMA decay 为 0.99；论文报告训练约 10 小时。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 项目主页当前只提供论文、演示视频和 “code and dataset is coming soon” 占位链接，没有公开可核验的模型定义、DataLoader、训练脚本或 checkpoint。因此下面的训练流程是论文级描述，不应被误称为官方代码行为。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 推理时，机器人持续读取三路图像、当前任务提示、阶段性 Force Prompt、末端位姿和实时 F/T。VLM 负责判断当前阶段与空间语义；Cross-Scale MoE 根据 token 级门控融合高层概念和瞬时力；flow-matching Action Expert 生成下一段混合力位命令，并由底层机器人控制器执行。达到进度阈值后，Force Prompt 切换到下一个子任务。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 旁路的意义在于缩短“力变化 → 动作修正”的路径。它不需要等待历史轨迹或高层 VLM 重新组织全部上下文，因此更适合处理突然改变的接触几何。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 截至本文写作，项目主页明确标注代码和数据集“coming soon”，GitHub 链接仍是通用占位地址，GitHub API 也没有找到名为 ForceVLA2 的公开仓库。因此无法核对模型类、损失实现、采样步数、动作归一化或部署接口；本文不虚构这些实现细节。后续若官方仓库公开，最值得优先核查的是：Force Prompt 的生成器、MoE gate 的输入输出、力旁路是否共享参数，以及 flow-matching action 的实际维度。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 实验使用 7-DoF Flexiv Rizon 4s、AG-95 夹爪、两台 RealSense D455 第三人称相机和一台 D435 腕部相机；每项任务进行 20 次独立试验，指标为成功率。基线包括 ACP、$\pi_0$、$\pi_{0.5}$、ForceVLA 和带朴素力输入的 $\pi_0$。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-forcevla2/4-crop.webp&quot; alt=&quot;数据采集系统：Flexiv、GELLO、相机与末端力传感器（论文 Figure 4）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;| 方法                 | Press bottle | Clean vase | Clean board | Retrieve plate | Assemble gears |   平均 |
| -------------------- | -----------: | ---------: | ----------: | -------------: | -------------: | -----: |
| $π_0$                |           35 |         20 |          35 |              0 |              0 |     18 |
| $π_{0.5}$            |           45 |         30 |          45 |             15 |             20 |     31 |
| ACP                  |           25 |         30 |          25 |              0 |              0 |     16 |
| $π_0$ w/ naive force |           30 |         25 |          20 |             10 |              0 |     17 |
| ForceVLA             |           70 |         25 |          55 |             15 |             10 |     35 |
| &lt;strong&gt;ForceVLA2&lt;/strong&gt;        |       &lt;strong&gt;80&lt;/strong&gt; |     &lt;strong&gt;75&lt;/strong&gt; |      &lt;strong&gt;70&lt;/strong&gt; |         &lt;strong&gt;35&lt;/strong&gt; |         &lt;strong&gt;70&lt;/strong&gt; | &lt;strong&gt;66&lt;/strong&gt; |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; ForceVLA2 在五项任务上平均 66%，尤其在 Assemble gears 上达到 70%，比第二名高 50 个百分点。朴素地把力拼到 $\pi_0$ 输入中只有 17%，说明“有力信号”不等于“会使用力信号”。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-forcevla2/5-crop.webp&quot; alt=&quot;典型任务的定性结果与过载规避（论文 Figure 5）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;组件逐步消融结果为：$\pi_0$ 基线 18%，加入 Force Prompt 后 27%，再加入多模态编码器后 40%，最后加入 Cross-Scale MoE 达到 66%。&lt;strong&gt;【Paper】&lt;/strong&gt; 其中 MoE 带来的增益最大，说明动态路由比静态拼接更重要。&lt;/p&gt;
&lt;p&gt;| Cross-Scale MoE 输入 | 平均成功率 |
| -------------------- | ---------: |
| 仅状态（基线）       |         36 |
| 视觉模态             |         50 |
| 视觉 + 力模态        |     &lt;strong&gt;66&lt;/strong&gt; |&lt;/p&gt;
&lt;p&gt;视觉和力大致贡献相当，但 Press bottle 与 Clean board 加入额外力 token 后略有下降。&lt;strong&gt;【Analysis】&lt;/strong&gt; 这些任务的控制模式较简单，过多自由度可能扰动本来稳定的位姿策略。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-forcevla2/6_2-crop.webp&quot; alt=&quot;Cross-Scale MoE 与 Force Prompt 的组件消融（论文 Table 2 / Figure 6）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 作者额外测试了突然改变桌面高度、改变花瓶倾角和视觉失效后的重新抓取。ForceVLA2 能通过力反馈重新建立接触、沿花瓶表面滑动，或在沙盒中进行力引导探索；纯位姿基线往往继续追踪旧轨迹并触发过载。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这些实验更像“分布外扰动下的闭环恢复”而不是传统静态泛化，验证重点是反应速度和可恢复性。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 有三层原因：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Force Prompt 把连续的接触信息压缩为可解释的阶段概念，减少 VLM 在长任务中丢失阶段状态的风险。&lt;/li&gt;
&lt;li&gt;位姿走多模态上下文路径、瞬时力走旁路，分别满足语义一致性和低延迟反馈。&lt;/li&gt;
&lt;li&gt;MoE 允许模型在自由空间、接触和探索阶段切换主导模态，而不是假设所有时刻都应使用相同的融合比例。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 真正的创新是“力觉在层级上的多尺度分工”：高层 force-aware task concept 决定当前要完成哪一种接触阶段，低层 Cross-Scale MoE 决定当前动作更应该听视觉、位姿还是力。混合力位动作只是这个分工最终落到控制接口上的表现。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;| 路线                | 力的角色                                | 闭环粒度                   |
| ------------------- | --------------------------------------- | -------------------------- |
| $π_0$ / $π_{0.5}$   | 通常没有显式力控制                      | 主要是视觉-位姿            |
| $π_0$ + naive force | 将力作为额外输入拼接                    | 静态融合                   |
| ForceVLA            | 将力作为 VLA 感知模态                   | 力参与感知，但控制耦合较弱 |
| ForceVLA2           | Force Prompt + 力旁路 + Cross-Scale MoE | 任务阶段与瞬时接触双闭环   |&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 方法依赖若干前提：任务可以拆成 3–5 个阶段；每个阶段的 Force Prompt 可以预先定义；末端有可靠的 6D F/T 传感器；训练示教覆盖足够多的接触变化。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这些假设限制了它对未知任务的零样本能力。Force Prompt 目前更像“结构化任务先验”，而不是完全自动发现的子任务规划器。&lt;/p&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文没有在主文中给出一个单独的 limitations 小节，但附录与讨论承认：真实力控制受硬件、摩擦和接触建模影响，作者因此主要采用真实机器人评测；现有公开数据集缺少统一的力模态，数据规模也远小于通用 VLA 数据集。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;五个任务、单一 Flexiv 平台和 20 次试验仍不足以证明跨机器人、跨传感器迁移。&lt;/li&gt;
&lt;li&gt;Force Prompt 依赖人工子任务列表和离线阶段标注，标注成本及错误传播没有单独量化。&lt;/li&gt;
&lt;li&gt;论文报告成功率，但没有系统报告力跟踪误差、峰值接触力、延迟或安全约束，因而难以判断“成功”是否同时代表柔顺和高精度。&lt;/li&gt;
&lt;li&gt;论文正文对 6D/7D 位姿及动作维度的表述存在不一致，公开代码缺失也使复现和接口核验暂时受限。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; ForceVLA2 给 VLA 研究的启发不是再添加一种传感器，而是重新划分“谁负责理解、谁负责反应”：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;可以把触觉、力觉或关节电流视为高频控制信号，而不是必须经过语言模型的普通 token。&lt;/li&gt;
&lt;li&gt;未来的 VLA 数据集应同时标注接触阶段、目标力和失败恢复事件，让模型学习“何时切换控制模式”。&lt;/li&gt;
&lt;li&gt;MoE gate 的权重可以成为可解释的控制诊断信号：如果模型在接触阶段仍长期依赖视觉 expert，可能意味着传感器、标定或数据覆盖存在问题。&lt;/li&gt;
&lt;li&gt;下一步值得研究自动发现 Force Prompt、跨机器人力标定，以及把成功率之外的力跟踪误差和安全约束纳入训练目标。&lt;/li&gt;
&lt;/ol&gt;</content:encoded><h:img src="https://pic.hana0721.top/98000873_p0_master1200.491vjnsp6s.webp"/><enclosure url="https://pic.hana0721.top/98000873_p0_master1200.491vjnsp6s.webp"/></item><item><title>FineVLA 论文精读：用细粒度语言让 VLA 真正听懂“怎么做”</title><link>https://agusexp25.top/blog/paper-deep-dive-finevla</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-finevla</guid><description>精读 FineVLA：从异构轨迹清洗、DTW 采样到 RoboFine-Bench 与 FG/Raw 混合训练，理解细粒度指令如何带来可操控的机器人行为。</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;论文名称&lt;/strong&gt;：《FineVLA: Fine-Grained Instruction Alignment for Steerable Vision-Language-Action Policies》&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;作者&lt;/strong&gt;：Xintong Hu、Xuhong Huang、Jinyu Zhang、Yutong Yao、Yuchong Sun、Qiuyue Wang、Mingsheng Li、Sicheng Xie、Yitao Liu、Junhao Chen、Yixuan Chen、Yingming Zheng、Shuai Bai、Tao Yu。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;机构&lt;/strong&gt;：香港大学 XLANG Lab、阿里巴巴 Qwen Team。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;论文链接&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2605.27284&quot;&gt;arXiv&lt;/a&gt;　&lt;strong&gt;代码仓库&lt;/strong&gt;：&lt;a href=&quot;https://github.com/xlang-ai/FineVLA&quot;&gt;xlang-ai/FineVLA&lt;/a&gt;　&lt;strong&gt;项目主页&lt;/strong&gt;：&lt;a href=&quot;https://finevla.xlang.ai/&quot;&gt;finevla.xlang.ai&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 传统 VLA 数据通常只告诉机器人“拿起杯子”，却不说明用哪只手、从哪个方向接近、接触哪里或最终摆成什么姿态。FineVLA 构建一套从数据清洗、动作对齐标注、视频理解基准到策略训练的开放框架，把这些执行关键因素写进语言，并用受控的 FG（fine-grained）/Raw（goal-level）混合实验验证其价值。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;FineVLA-Tool&lt;/strong&gt;：把 10 个公开机器人数据集的 972,247 条轨迹统一到 LeRobot 2.1，经过 canonicalization、质量门控、DTW 聚类和代表性采样，得到 47,159 条人工核验轨迹。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;十维细粒度 schema&lt;/strong&gt;：覆盖 action sequence、active actor、target object、initial/final configuration、contact &amp;#x26; approach、trajectory &amp;#x26; orientation、object interaction、failure &amp;#x26; recovery、body motion。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;RoboFine-Bench&lt;/strong&gt;：500 个留出视频、11,631 个 atomic facts、1,030 道 VQA 问题，分别测试 grounding、action/motion 和 interaction/state reasoning，并提供 caption track。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;RoboFine-VLM&lt;/strong&gt;：在 Qwen3.5-397B-A17B 上微调的机器人视频标注器；在 hard caption 设置达到 82.2% Overall、VQA 达到 68.2%。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;FineVLA-Policy&lt;/strong&gt;：在 StarVLA-OFT 与 StarVLA-GR00T 两种 action decoder 上系统扫描 FG:Raw 比例。最优混合比例约为 1:2 到 1:1，RoboTwin AlohaMix-OFT 达到 86.8%/82.5%，真实双臂平均得分达到 62.7/100。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 现有机器人示教大多把一条轨迹绑定到一个简短目标句，例如“把积木放进盒子”。同一个目标可以由左臂或右臂完成，也可以从上方或侧面接近；如果语言没有区分这些行为，策略只能从视觉共现统计中猜测执行方式。因此，任务成功率并不等于 instruction following：机器人可能完成了目标，却用了错误的手、错误的物体或错误的旋转方向。&lt;/p&gt;
&lt;p&gt;相关工作主要有三类：通用 VLM 的视频描述、面向空间/手物关系的 embodied benchmark，以及以 goal-level language 为条件的 VLA。FineVLA 的差异在于，它把标注单位从“场景里有什么”推进到“动作按什么顺序发生、接触在哪里、状态如何变化”。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 论文真正改变的不是 policy backbone，而是监督信号的语义分辨率：同一组 observation、action 保持不变，只替换配对语言，就能测量语言是否把隐含的行为选择显式化。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;给定机器人轨迹 $\tau=(o_{0:T},a_{0:T-1})$ 与语言 $l$，策略学习 $\pi(a_{t:t+H}\mid o_{\le t},l)$。FineVLA 将语言分成两种视图：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Raw instruction&lt;/strong&gt;：描述目标（what），例如“把红色杯子放到托盘里”。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Fine-grained instruction&lt;/strong&gt;：按时间顺序描述目标与执行约束（what + how），例如主动臂、目标物体、接近方向、接触区域、轨迹、姿态和失败恢复。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 关键实验要求两种数据的 trajectory、visual observation 与 action label 完全相同，只有 instruction 改变；这样可以把收益归因于语言监督，而不是数据量或动作分布变化。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方仓库的 policy 数据配置把同一任务的 FG 版本标记为 &lt;code&gt;_fg&lt;/code&gt;，在 &lt;code&gt;starVLA/dataloader/gr00t_lerobot/mixtures.py&lt;/code&gt; 中用 &lt;code&gt;FGOnly&lt;/code&gt;、&lt;code&gt;FG1_1&lt;/code&gt;、&lt;code&gt;FG2_1&lt;/code&gt;、&lt;code&gt;FG4_1&lt;/code&gt; 等命名混合；训练脚本再按 mixture weight 采样。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;FineVLA 是一个闭环框架：FineVLA-Tool 将异构轨迹变成细粒度监督；RoboFine-Bench 检查 VLM 是否真的看懂动作过程；RoboFine-VLM 负责未来数据的自动标注；FineVLA-Policy 则在固定 observation/action 下比较不同语言监督。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-finevla/tool.webp&quot; alt=&quot;FineVLA 数据构建流水线（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 数据流可以浓缩为：raw episodes → canonical 80-dim state/action → action-state quality gate → DTW clustering/sampling → ten-dimensional annotation + human verification → benchmark/VLM/policy。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;FineVLA-Tool：统一、去冗余、再标注&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;输入&lt;/strong&gt;是来自 BridgeData-V2、BC-Z、RT-1、Galaxea、RoboMIND、RoboCOIN、RH20T、RDT、DROID 等数据集的原始 LeRobot 轨迹；&lt;strong&gt;输出&lt;/strong&gt;是可以跨数据集比较的代表性轨迹与细粒度语言。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Format conversion&lt;/strong&gt;：各数据集的 state/action 可能是 joint 或 end-effector，可能采用 absolute、delta 或 relative 表示。代码中的 &lt;code&gt;convert_unified.py&lt;/code&gt; 读取 &lt;code&gt;meta/modality.json&lt;/code&gt;，把它们映射到统一的 80 维向量。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Canonicalization and cleaning&lt;/strong&gt;：统一为 absolute 坐标和 normalized quaternion，并计算 action-state 的 DTW/L2 一致性；异常帧数、空任务和状态-动作偏离过大的 episode 被过滤。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Trajectory clustering&lt;/strong&gt;：&lt;code&gt;ClusteringAndSampling&lt;/code&gt; 对同一 task 的 canonical action sequence 计算 DTW 距离，再做 hierarchical 或 k-medoids clustering，从每个簇中挑选高质量代表，避免把预算花在近乎重复的示教上。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Annotation&lt;/strong&gt;：&lt;code&gt;AnnotationPipeline&lt;/code&gt; 先以视频帧调用 VLM 生成有序步骤，再由人工对照原视频核验。十个维度让“抓住杯子”变成可检查的动作事实集合。&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;RoboFine-Bench 与 RoboFine-VLM&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-finevla/benchmark.webp&quot; alt=&quot;RoboFine-Bench 组成：VQA 与 caption 两条评测轨道（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; RoboFine-Bench 的 500 个视频与训练数据严格 disjoint。VQA track 提供 1,030 个问题；caption track 把人工核验描述拆成 11,631 个 atomic facts，再由 LLM 判断生成 caption 对每个事实是 match、partial、contradiction、omission 还是 hallucination，汇总为 Consistency、Coverage 与 Anti-Hallucination。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;RoboFine-Bench&lt;/code&gt; 提供 eval-set 准备、caption 生成与 direct-align 评测脚本；&lt;code&gt;RoboFine-VLM&lt;/code&gt; 提供视频采样、prompt 模板和 API/SGLang 推理示例。VLM 只用于扩展未来标注，不参与本文 policy 训练标签的生成。&lt;/p&gt;
&lt;h4&gt;FineVLA-Policy 的两个 decoder&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 两个 policy 都共享 Qwen3.5-VL backbone：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;StarVLA-OFT&lt;/strong&gt;：从预定义 action token 的 hidden states 读取特征，用轻量 MLP 并行回归连续 action chunk，采用 L1 objective。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;StarVLA-GR00T&lt;/strong&gt;：视觉语言 backbone 作为较慢的 System 2，DiT flow-matching action head 作为 System 1 生成连续动作。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;QwenGR00T.py&lt;/code&gt; 构造 Qwen interface 与 &lt;code&gt;FlowmatchingActionHead&lt;/code&gt;，&lt;code&gt;predict_action&lt;/code&gt; 输出 &lt;code&gt;(B, chunk_len, action_dim)&lt;/code&gt;；训练脚本在 action head 上计算 action loss，并可同时进行 VLM co-training。架构保持不变，实验变量仍是 language mixture。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;监督混合&lt;/h4&gt;
&lt;p&gt;令 $D_{FG}$ 为细粒度数据、$D_{Raw}$ 为原始指令数据，采样比例为 $r:1$：&lt;/p&gt;
&lt;p&gt;$$
\mathcal{D}&lt;em&gt;r \sim \frac{r}{r+1}D&lt;/em&gt;{FG}+\frac{1}{r+1}D_{Raw}.
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; $r=0$ 对应 Raw-only，$r\to\infty$ 对应 FG-only。论文扫描 Raw-only、1:4、1:2、1:1、2:1、4:1、FG-only 七种设置。&lt;/p&gt;
&lt;h4&gt;策略目标&lt;/h4&gt;
&lt;p&gt;$$
\mathcal{L}&lt;em&gt;{\pi}=\mathbb{E}&lt;/em&gt;{(o,a,l)\sim\mathcal{D}&lt;em&gt;r}\left[\lVert f&lt;/em&gt;\theta(o,l)-a\rVert_1\right].
$$&lt;/p&gt;
&lt;p&gt;这里 $o$ 是视觉观测，$l$ 是 Raw 或 FG instruction，$a$ 是动作 chunk，$f_\theta$ 是 decoder。公式本身没有新增 loss；创新在于用不同信息密度的语言改变条件分布。&lt;/p&gt;
&lt;h4&gt;DTW 轨迹距离&lt;/h4&gt;
&lt;p&gt;对两条 canonical action sequence $x_{1:T}$、$y_{1:U}$，DTW 递推为：&lt;/p&gt;
&lt;p&gt;$$
D(i,j)=d(x_i,y_j)+\min{D(i-1,j),D(i,j-1),D(i-1,j-1)}.
$$&lt;/p&gt;
&lt;p&gt;$d(\cdot,\cdot)$ 是位置、旋转与夹爪等特征的加权距离。&lt;strong&gt;【Code】&lt;/strong&gt; 仓库的 &lt;code&gt;utils/dtw_distance.py&lt;/code&gt; 支持 path-length normalization 与 Sakoe–Chiba window；得到的距离矩阵交给 clustering 模块选 representative episodes。&lt;/p&gt;
&lt;h4&gt;Atomic-fact 对齐指标&lt;/h4&gt;
&lt;p&gt;设 GT facts 数量为 $A$，caption 命中的事实为 $M$，部分命中为 $P$，矛盾为 $C$，幻觉动作数为 $H$。&lt;strong&gt;【Paper】&lt;/strong&gt; benchmark 将这些标签分别聚合为 coverage、consistency 与 anti-hallucination，而不是只用 n-gram 相似度，因此会惩罚“说得流畅但动作不对”的 caption。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; FineVLA-Tool 先从 972,247 条轨迹中选出 47,159 条人工核验样本。policy 实验在三个组合上训练：RDT-OFT、RDT-GR00T、AlohaMix-OFT。预训练均为 100k steps、64 张 A100、global batch 512；RoboTwin fine-tuning 使用 27,500 条轨迹与 6,075,103 个 transitions，在 8 张 A100 上训练 100k steps。AlohaMix 是 86,662 episodes、598 tasks 的 ALOHA-compatible 双臂混合。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;mixtures.py&lt;/code&gt; 把 &lt;code&gt;FG1_1&lt;/code&gt; 展开为 FG 与普通条目各一份，把 &lt;code&gt;FG2_1&lt;/code&gt;/&lt;code&gt;FG4_1&lt;/code&gt; 的 FG 条目权重设为 2/4；&lt;code&gt;train_starvla.py&lt;/code&gt; 负责 dataloader、optimizer、checkpoint 与 &lt;code&gt;predict_action&lt;/code&gt; 评估。仓库 README 给出了 Aloha FG1:1 的训练脚本，但预训练 policy checkpoint 在仓库中标注为后续发布。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;推理时模型只接收当前图像、机器人状态和用户 instruction，不需要额外的 annotation schema 解析器。FG instruction 中指定的 actor、target、approach、pose 等因素通过 backbone 影响 action chunk；低层控制器执行预测动作并在下一次观测时闭环重查询。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;| 论文组件              | 官方仓库位置                                                  | 代码行为                                                                        |
| --------------------- | ------------------------------------------------------------- | ------------------------------------------------------------------------------- |
| Canonicalization      | &lt;code&gt;FineVLA-Tool/CanonicalizeAndClean/convert_unified.py&lt;/code&gt;        | 读取 LeRobot parquet 与 &lt;code&gt;modality.json&lt;/code&gt;，统一 state/action 字段并输出 parquet。 |
| DTW clustering        | &lt;code&gt;FineVLA-Tool/ClusteringAndSampling/&lt;/code&gt;                         | 计算距离矩阵，支持 hierarchical/k-medoids 与代表性采样。                        |
| VLM annotation        | &lt;code&gt;FineVLA-Tool/AnnotationPipeline/&lt;/code&gt;                            | 分析、细化、去重等阶段调用视觉 API，并解析 JSON steps。                         |
| VQA/caption benchmark | &lt;code&gt;RoboFine-Bench/&lt;/code&gt;                                             | 准备 held-out 输入、生成 caption、按 atomic facts 对齐。                        |
| Policy mixture        | &lt;code&gt;FineVLA-Policy/starVLA/dataloader/gr00t_lerobot/mixtures.py&lt;/code&gt; | 用 &lt;code&gt;_fg&lt;/code&gt; robot type 与权重组合 FGOnly/FG1_1/FG2_1/FG4_1。                       |
| Action decoder        | &lt;code&gt;FineVLA-Policy/starVLA/model/framework/QwenGR00T.py&lt;/code&gt;         | Qwen VL backbone + flow-matching action head，输出多步动作。                    |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 论文把“语言监督”作为唯一变量，但代码层面仍有一个工程前提：FG 轨迹是经过筛选的 representative subset，而 Raw 轨迹包含全部原始 episode。作者通过采样权重和固定训练步数控制这一差异；复现实验时必须同时核对数据规模、采样权重和 embodiment 过滤。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-finevla/real.webp&quot; alt=&quot;真实双臂 paired steerability 任务：只改变语言中的一个控制因素（论文 Figure 4）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 实验包含三条轴：RoboFine-Bench 视频理解、RoboTwin 双臂仿真、Cobot Magic 真实双臂 steerability suite。真实套件将视觉场景近似固定，只改变 color、pose、approach、rotation direction 或 active arm；每个 paired variant 运行 10 次，用 0–100 partial-completion rubric 评分。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;h4&gt;视频理解&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; RoboFine-VLM 在 VQA 上取得 68.2% overall accuracy，比 GPT-5.4 高 8.0 个百分点；Action and Motion Understanding 达到 75.7%。在 hard caption（不给任务指令、只看视频）中，Overall 为 82.2%，超过最强基线 78.0%。10 位人工评审与自动分数高度相关：easy Pearson 0.937、hard Pearson 0.922。&lt;/p&gt;
&lt;h4&gt;RoboTwin 仿真&lt;/h4&gt;
&lt;p&gt;| FG:Raw   | RDT-OFT Easy/Hard | RDT-GR00T Easy/Hard | AlohaMix-OFT Easy/Hard |
| -------- | ----------------: | ------------------: | ---------------------: |
| Raw-only |       61.5 / 60.0 |         55.1 / 53.4 |            71.8 / 71.4 |
| 1:4      |       68.2 / 66.5 |         58.2 / 55.7 |            75.3 / 74.3 |
| 1:2      |   &lt;strong&gt;74.1 / 72.1&lt;/strong&gt; |         61.7 / 60.9 |            82.8 / 78.6 |
| 1:1      |   73.9 / &lt;strong&gt;72.4&lt;/strong&gt; |     &lt;strong&gt;69.4 / 68.2&lt;/strong&gt; |        &lt;strong&gt;86.8 / 82.5&lt;/strong&gt; |
| 2:1      |       70.4 / 68.3 |         65.9 / 63.1 |            80.9 / 79.3 |
| 4:1      |       68.6 / 67.5 |         64.9 / 63.2 |            79.5 / 78.5 |
| FG-only  |       62.9 / 62.0 |         62.1 / 61.5 |            78.3 / 76.1 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; FG-only 相对 Raw-only 在三种设置都不降反升（+1.4 到 +8.1）；但最佳点不是 FG-only，而是 1:2 到 1:1，呈稳定的 inverted-U。AlohaMix-OFT 的 1:1 在 Easy/Hard 上分别比 Raw-only 高 15.0/11.1 个百分点。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-finevla/mixing.webp&quot; alt=&quot;RoboTwin 中 FG:Raw 混合比例的 inverted-U 曲线（论文 Figure 5）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 架构与数据规模对结论的影响如下：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;在同一 RDT 数据上，OFT 在 Raw-only 时领先 GR00T 约 6.4/6.6 点；FG 比例增加后差距缩小，FG-only 时仅约 0.8/0.5 点，说明细粒度语言缓解了 decoder 的 supervision bottleneck。&lt;/li&gt;
&lt;li&gt;AlohaMix 比 RDT 大约 13 倍；FG-only 相对 Raw-only 的收益从 RDT 的 +1.4/+2.0 扩大到 AlohaMix 的 +6.5/+4.7，说明语言密度与轨迹多样性存在协同。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;| 监督       | Clean Table | Stack Block |  Color |   Pose | Approach | Rotate |    Arm | L→R OOD |  ID 平均 |
| ---------- | ----------: | ----------: | -----: | -----: | -------: | -----: | -----: | ------: | -------: |
| Raw-only   |          72 |          35 |     22 |     24 |       60 |     76 |     60 |       0 |     49.9 |
| FG:Raw=1:2 |          79 |          39 |     36 | &lt;strong&gt;48&lt;/strong&gt; |       76 | &lt;strong&gt;87&lt;/strong&gt; |     63 |       5 |     61.1 |
| FG:Raw=1:1 |      &lt;strong&gt;84&lt;/strong&gt; |      &lt;strong&gt;40&lt;/strong&gt; | &lt;strong&gt;40&lt;/strong&gt; |     47 |   &lt;strong&gt;78&lt;/strong&gt; |     86 | &lt;strong&gt;64&lt;/strong&gt; |  &lt;strong&gt;10&lt;/strong&gt; | &lt;strong&gt;62.7&lt;/strong&gt; |
| FG-only    |          70 |          35 |     25 |     41 |       70 |     80 |     60 |       0 |     54.4 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 1:1 在真实 ID 任务达到 62.7/100，超过 Raw-only 的 49.9；Pose +23、Color +18、Approach +18 是最大收益。OOD actor-target binding 仍困难，但混合模型从 0 提升到 10，显示 factor grounding 有部分迁移，完整组合泛化尚未解决。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; Raw instruction 提供紧凑的 task semantics，FG instruction 提供执行约束。只用 Raw 时，策略必须从数据共现中猜“哪只手、从哪边、接触哪里”；只用 FG 时，语言更长、更像示教记录，可能减少对用户常见短指令的暴露。混合训练让同一个 action chunk 同时被两种语言视图解释，于是模型既保留 goal abstraction，又学会 factor grounding。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;把 action alignment 做成可复用的数据基础设施，而不是一次性人工标注。&lt;/li&gt;
&lt;li&gt;用 atomic facts 与 paired scenes 把“是否听懂怎么做”从整体成功率中分离出来。&lt;/li&gt;
&lt;li&gt;用受控 FG:Raw sweep 给出可操作的训练配方，而不是只报告一个新模型。&lt;/li&gt;
&lt;li&gt;将 annotation、benchmark、VLM annotator、policy code 放在同一开放框架中，形成数据到控制的闭环。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; FineVLA 没有提出新的视觉 backbone、action tokenization 或 decoder；它的变量是语言与动作之间的对齐粒度。与普通 dense captioning 相比，FineVLA 的 caption 必须回答接触、方向、状态转移等控制相关问题；与传统 VLA fine-tuning 相比，它把“如何执行”作为显式条件。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;视频足以支持十个维度中的大部分判断，且人工核验可以纠正 VLM 的时间与事实错误。&lt;/li&gt;
&lt;li&gt;同一 trajectory 的 action/observation 固定时，instruction 替换可以近似隔离语言监督的因果影响。&lt;/li&gt;
&lt;li&gt;代表性采样不会丢掉对策略重要的长尾动作模式。&lt;/li&gt;
&lt;li&gt;FG 语言中的执行约束在新场景中具有可组合性；OOD 结果表明这一假设目前只部分成立。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; RoboFine-VLM 仍需要人工 verification，并没有把标注成本降为零；真实评测只覆盖 Cobot Magic 桌面双臂和少量定向任务；OOD actor-target binding 仍然失败较多。物理环境中遵循细粒度指令还会引入安全风险，需要 feasibility 与 safety checks。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;十维 schema 依赖可见性：遮挡、低帧率或缺失 proprioception 时，contact region 与 orientation 可能只能靠模型猜测。&lt;/li&gt;
&lt;li&gt;FG 数据是聚类后的 representative subset，而 Raw 是全量轨迹；即便动作和视觉固定，训练频率与 episode diversity 仍需谨慎配平。&lt;/li&gt;
&lt;li&gt;caption 评分依赖 LLM judge。虽然论文用 Gemini 与人工排序验证了鲁棒性，但自动指标仍可能受 judge 偏好影响。&lt;/li&gt;
&lt;li&gt;真实任务的 paired design 很适合测 steerability，却不能代表开放世界中多物体、多步骤、长时程组合任务。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;FineVLA 给出的最实用结论是：细粒度语言不应简单替代 goal instruction，而应作为补充通道。下一步可以沿三个方向推进：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;数据侧&lt;/strong&gt;：把十维 schema 与触觉、力矩、失败日志结合，减少仅凭 RGB 推断接触和安全性的歧义。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;模型侧&lt;/strong&gt;：让 policy 显式分解目标 token 与 execution-factor token，并在推理时做约束检查，而不是把所有信息压进同一个句子。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;评测侧&lt;/strong&gt;：从 paired single-factor 走向组合因素 benchmark，例如“左臂从侧面抓蓝色物体并顺时针旋转”，同时报告 factor accuracy、任务成功率与安全违规率。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 论文把 VLA 的竞争焦点从“更大的 backbone”转移到“更高密度、可验证的动作语言”。如果未来数据集都能提供这种对齐，机器人策略就不必把执行方式当作隐变量，而可以把用户的“怎么做”直接作为可学习、可评测、可控制的接口。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/129563571_p0_master1200.1ziuqmv78w.webp"/><enclosure url="https://pic.hana0721.top/129563571_p0_master1200.1ziuqmv78w.webp"/></item><item><title>FD-VLA 论文精读</title><link>https://agusexp25.top/blog/paper-deep-dive-fd-vla</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-fd-vla</guid><description>精读 FD-VLA：用视觉与机器人状态蒸馏出力觉 token，在不依赖力传感器的情况下提升接触丰富操作。</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;论文名称&lt;/strong&gt;：《FD-VLA: Force-Distilled Vision-Language-Action Model for Contact-Rich Manipulation》&lt;br&gt;
&lt;strong&gt;作者&lt;/strong&gt;：Ruiteng Zhao、Wenshuo Wang、Yicheng Ma、Xiaocong Li、Francis E. H. Tay、Marcelo H. Ang、Haiyue Zhu&lt;br&gt;
&lt;strong&gt;会议&lt;/strong&gt;：ICRA 2026（论文标注为 accepted）&lt;br&gt;
&lt;strong&gt;论文链接&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2602.02142&quot;&gt;arXiv&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; FD-VLA（Force-Distilled VLA）把昂贵且并非所有机器人都具备的 force/torque sensing 改造成一种训练期 teacher：Force Distillation Module（FDM）用视觉和 proprioceptive state 预测一个 latent force token，并用实际力的 latent embedding 做监督；部署时不再读取力传感器。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;提出 FD-VLA，在 VLA 内加入可由视觉与状态生成的 distilled force token，用于 contact-rich manipulation。&lt;/li&gt;
&lt;li&gt;提出 FDM：一个带 learnable query token 的 single-query attention 模块，把视觉—状态上下文压缩为单个力表示，并与实际力表示对齐。&lt;/li&gt;
&lt;li&gt;提出 directional attention masking：视觉、语言 token 保持原有语义流，状态与预测力 token 只能读取它们，减少对预训练 VLM 的干扰。&lt;/li&gt;
&lt;li&gt;在 UR5e 的插插头、擦白板、按紧急按钮三个真实任务上，FD-VLA 平均成功率达到 &lt;strong&gt;61.1%&lt;/strong&gt;，高于不使用力的 SmolVLA（23.3%）、DP3（11.1%）和不使用力的 $\pi_0$（26.7%）。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 视觉足以提供物体类别、位姿和语言语义，却难以直接观察接触刚度、摩擦、插入阻力、滑移和按压是否到底。这些因素正是接触丰富操作失败的主要来源。直接把 raw force 拼到 VLA 中又有三类问题：传感器昂贵且需要校准，信号包含噪声与漂移，额外模态还可能破坏预训练 VLM 已经对齐好的 vision-language 表示。&lt;/p&gt;
&lt;p&gt;论文将已有路线概括为：Tactile-VLA 依赖专用触觉硬件并在输入侧融合；ForceVLA 通过 force-aware MoE 做较晚的融合，但参数量和推理复杂度更高；传统 vision-only VLA 则完全缺少接触信息。FD-VLA 的位置介于“完全不用力”和“部署时实时读力”之间：训练时有力、推理时无力，并把力变成可被 VLM 消费的 compact token。&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这不是简单的 sensor imputation。FDM 的监督目标是“对控制有用的 force latent”，而不是重建每一个高频原始传感器采样，因此它更像 task-relevant representation distillation。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在时间 $t$，模型接收语言指令 $\bm L$、视觉观察 $\bm V_t$、机器人状态 $\bm S_t$，训练阶段额外接收实际力/力矩 $\bm F_t$，输出长度为 $H$ 的动作 chunk：&lt;/p&gt;
&lt;p&gt;$$
\bm A_t=[a_t,a_{t+1},\ldots,a_{t+H-1}].
$$&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Observation&lt;/strong&gt;：Azure Kinect 主 RGB 相机与 RealSense D405 夹爪相机采集的视觉观察；另有机器人 proprioceptive state。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Action&lt;/strong&gt;：论文使用 action expert 预测连续动作 chunk，具体维度、控制频率和 chunk 长度在论文中未明确完整列出。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Force&lt;/strong&gt;：训练时由 UR5e 内部 force/torque sensor 采集；推理时不输入该信号。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Robot / Embodiment&lt;/strong&gt;：UR5e 机械臂。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Data&lt;/strong&gt;：每个任务 50 条 teleoperation demonstrations；SpaceMouse 用于示教。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Objective&lt;/strong&gt;：conditional flow-matching policy loss 加上 force-distillation loss。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;论文没有把“预测的力”定义成物理单位上的 $\hat{\bm F}_t$。它定义的是 VLM hidden dimension $D$ 中的 latent token，因此不能把 FDM 当作一个可直接替代力传感器的标定仪器。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 视觉、语言、状态先分别映射到预训练 VLM 的 hidden dimension，FDM 从视觉—状态上下文预测 $\bm f_t^{pF}$，再将四种 token 拼接为&lt;/p&gt;
&lt;p&gt;$$
\bm f_t^{fs}=[\bm f_t^V,\bm f^L,\bm f_t^S,\bm f_t^{pF}].
$$&lt;/p&gt;
&lt;p&gt;冻结的 VLM 用 directional mask 处理这组 token，最后由 transformer action expert 和 conditional flow-matching decoder 生成动作序列。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;视觉、语言与状态编码&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：RGB 图像、自然语言、机器人状态。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：$\bm f_t^V\in\mathbb R^{N_v\times D}$、$\bm f^L\in\mathbb R^{N_l\times D}$、$\bm f_t^S\in\mathbb R^{N_s\times D}$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;作用&lt;/strong&gt;：视觉和语言沿用 SmolVLA / SmolVLM-2 的预训练表示；状态通过轻量 MLP 投影到相同维度。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;论文称视觉 backbone 使用 SignLIP，VLM 参数冻结，并在部分计算层采用 selective skipping；具体层数未明确说明。&lt;/p&gt;
&lt;h4&gt;Force Distillation Module（FDM）&lt;/h4&gt;
&lt;p&gt;FDM 有两个训练期分支：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Actual-force branch&lt;/strong&gt;：把真实 force/torque 经轻量 MLP 得到 $\bm f_t^{aF}\in\mathbb R^{1\times D}$，只作为监督目标。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Prediction branch&lt;/strong&gt;：引入 learnable query $\bm p\in\mathbb R^{1\times D}$，让它从 $[\bm p,\bm f_t^V,\bm f_t^S]$ 中检索与当前接触状态有关的信息，输出 $\bm f_t^{pF}$。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;这样，FDM 的输入是部署时本来就有的视觉和状态，输出是一个单 token 的控制先验；实际力只在训练时出现。&lt;/p&gt;
&lt;h4&gt;Directional Attention Mask&lt;/h4&gt;
&lt;p&gt;模型把 token 分成 perceptual stream（视觉、语言）和 control stream（状态、预测力）。perceptual token 只能互相注意；control token 可以注意 perceptual token，并在控制流内部保持因果方向。于是控制信息可以读取语义，语义信息却不会被新加入的状态/力 token 反向污染。&lt;/p&gt;
&lt;h4&gt;Action Expert&lt;/h4&gt;
&lt;p&gt;Action expert 是 transformer policy head。它以 VLM 输出为条件，对动作 chunk 使用 conditional flow matching，而非逐时间步回归单个动作。论文明确给出的训练目标是向量场回归，推理时从高斯噪声沿学到的向量场积分得到动作 chunk。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;FDM 的上下文注意力&lt;/h4&gt;
&lt;p&gt;$$
\bm C_t=[\bm p,\bm f_t^V,\bm f_t^S],
\qquad
\bm\alpha_t=\operatorname{softmax}\left(
\frac{(\bm p\bm W_Q)(\bm C_t\bm W_K)^\top}{\sqrt{d_k}}
\right).
$$&lt;/p&gt;
&lt;p&gt;其中 $\bm W_Q,\bm W_K,\bm W_V$ 是 attention 投影矩阵，$d_k$ 是每个 head 的 key 维度，$\bm\alpha_t$ 表示 query 对视觉、状态和自身 token 的检索权重。多头结果拼接并经过 residual + LayerNorm + FFN：&lt;/p&gt;
&lt;p&gt;$$
\bm f_t^{pF}=\operatorname{FFN}\left(\operatorname{LN}\left([
\bm Z_1,\ldots,\bm Z_H]\bm W_O+\bm p\right)\right).
$$&lt;/p&gt;
&lt;h4&gt;力蒸馏损失&lt;/h4&gt;
&lt;p&gt;$$
\mathcal L_{\mathrm{dist}}=
\left|\bm f_t^{pF}-\bm f_t^{aF}\right|_2^2.
$$&lt;/p&gt;
&lt;p&gt;它约束的是 latent embedding 的欧氏距离，不是物理力值的绝对误差。&lt;/p&gt;
&lt;h4&gt;Conditional flow matching&lt;/h4&gt;
&lt;p&gt;$$
\mathcal L^\tau(\theta)=
\mathbb E\left[
\left|\bm v_\theta(\bm A_t^\tau,\bm X_t)-
\bm u(\bm A_t^\tau\mid\bm A_t)\right|_2^2
\right],
$$&lt;/p&gt;
&lt;p&gt;其中 $\bm A_t^\tau=\tau\bm A_t+(1-\tau)\epsilon$，$\epsilon\sim\mathcal N(0,I)$，$\bm X_t$ 是 masked VLM 特征。总目标为&lt;/p&gt;
&lt;p&gt;$$
\mathcal L=\mathcal L^\tau(\theta)+\lambda\mathcal L_{\mathrm{dist}}.
$$&lt;/p&gt;
&lt;p&gt;论文没有在正文给出 $\lambda$ 的具体数值。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 每条示教样本同时提供图像、语言、状态、连续动作和实际力。实际力经过 projection 得到 teacher token；预测分支只看视觉和状态。VLM 主干冻结，FDM、状态投影和 action expert 通过 policy loss 与 distillation loss 联合训练。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;部署时移除 actual-force branch。每个控制时刻只需图像、语言和状态：FDM 生成预测力 token，masked VLM 编码四类 token，action expert 从噪声轨迹生成一个 action chunk，再将动作执行到机器人。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; arXiv 源码包只包含 &lt;code&gt;root.tex&lt;/code&gt;、&lt;code&gt;figures/&lt;/code&gt; 和参考文献，没有随论文发布的训练、模型或推理代码仓库；论文页面的 Code/Data/Media 区域也未给出官方 GitHub 链接。因此无法对照具体的 &lt;code&gt;DataLoader&lt;/code&gt;、optimizer、checkpoint 格式、action 维度或推理采样步数。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这意味着本文关于 FDM、mask 和 flow-matching 的描述来自论文，而不是从可运行实现反推。复现时最需要补齐的工程细节包括：SmolVLM-2 的确切层跳过策略、状态 token 的排列、flow integration solver、$\lambda$、动作 horizon，以及三任务的时间同步和归一化方式。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 平台由 UR5e、Azure Kinect 主相机和夹爪侧 RealSense D405 组成。每个任务收集 50 条示教，评估 30 个独立 rollout。成功条件是任务语义是否完全完成，而不是轨迹距离或单步动作误差。&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;三个任务分别是：持续接触并擦除白板痕迹、克服弹簧阻力按下紧急按钮、完成精确对准并插入插头。它们依次覆盖连续接触、受力阈值和高精度插入。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 图中 mean success rate 为：&lt;/p&gt;
&lt;p&gt;| 方法              |      Plug | Clean whiteboard | Press button |      Mean |
| ----------------- | --------: | ---------------: | -----------: | --------: |
| SmolVLA w/o force |      6.7% |            33.3% |        30.0% |     23.3% |
| SmolVLA w/ force  |     26.7% |            50.0% |        40.0% |     38.9% |
| DP3               |      0.0% |            26.7% |         6.7% |     11.1% |
| $\pi_0$ w/o force |      6.7% |            40.0% |        33.3% |     26.7% |
| $\pi_0$ w/ force  |     33.3% |            46.7% |        60.0% |     46.7% |
| &lt;strong&gt;FD-VLA&lt;/strong&gt;        | &lt;strong&gt;40.0%&lt;/strong&gt; |        &lt;strong&gt;73.3%&lt;/strong&gt; |    &lt;strong&gt;70.0%&lt;/strong&gt; | &lt;strong&gt;61.1%&lt;/strong&gt; |&lt;/p&gt;
&lt;p&gt;FD-VLA 在三个任务上都最高，尤其在擦白板上比第二高方法高 23.3 个百分点。论文还报告：给 SmolVLA 或 $\pi_0$ 直接输入 raw force 虽然有帮助，但仍低于预测的 force token；这支持“task-relevant latent 比原始传感器值更适合作为 policy 条件”的解释。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 消融只替换 FDM 的力 token 形式，其他初始化、时间预算和 30 次 rollout 保持一致：&lt;/p&gt;
&lt;p&gt;| 变体                          |  Plug | Clean | Press |  Mean |
| ----------------------------- | ----: | ----: | ----: | ----: |
| w/o FDM                       |  8/30 | 15/30 | 12/30 | 38.9% |
| FDM + actual force token      | 12/30 | 17/30 | 17/30 | 51.1% |
| FDM + learnable token（本文） | 12/30 | 22/30 | 21/30 | 61.1% |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 结果将收益拆成两部分：先有 FDM 的 early force–vision–state fusion，再把 actual force token 换成 learnable query。第二步带来的提升说明 query 不是被动地搬运传感器 embedding，而是在上下文中检索与任务相关的力先验。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 作者测试了 novel background 和 visual perturbation（光照、对比度、颜色分布变化），给出定性结果并声称性能没有显著下降，但没有在正文报告每个设置的数值成功率。&lt;strong&gt;【Analysis】&lt;/strong&gt; 因此这里更适合作为“视觉外观变化下的鲁棒性证据”，不能等同于完整的跨物体、跨机器人或跨任务泛化。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; FDM 同时利用视觉和状态，给模型一个比单纯图像更接近接触动力学的上下文；而 query 输出只有一个 latent token，迫使模块保留与动作有关的低维信息。再加上 mask 的单向信息流，VLM 可以被控制流读取，却不需要重新学习 vision-language 语义，因此训练目标更集中在控制增益上。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;真正的创新不是“把 force 加进 VLA”，而是三点组合：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;用实际力做训练监督、用视觉状态做部署输入的 cross-modal distillation。&lt;/li&gt;
&lt;li&gt;以 learnable query 做 force latent retrieval，而不是直接回归原始力值。&lt;/li&gt;
&lt;li&gt;通过 directional mask 把新增模态限制在 control stream，兼顾 early fusion 与预训练语义的完整性。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;Tactile-VLA / raw-force VLA 的部署闭环仍依赖传感器；FD-VLA 把 force 从“运行时观察”改成“训练时先验”。ForceVLA 的 MoE 更像在 VLM 之后路由不同专家，而 FD-VLA 在 VLM 之前先做 force–vision–state 对齐，并让 action expert 读取融合后的表示。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;接触状态在视觉和 proprioceptive state 中存在足够可预测的信息。&lt;/li&gt;
&lt;li&gt;对控制有用的力表征比原始力波形更低维、更稳定。&lt;/li&gt;
&lt;li&gt;预训练 VLM 的视觉—语言表征应当保持冻结，新增控制模态只需单向读取它。&lt;/li&gt;
&lt;li&gt;三个 UR5e 任务中的相关性可以迁移到没有力传感器的部署平台。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文将未来工作指向 multi-robot coordination 和更大规模、通用的 manipulation system，但没有系统报告跨 embodiment 迁移实验。视觉泛化部分也主要是定性展示。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;可观测性上限&lt;/strong&gt;：如果两个接触状态在 RGB 与 proprioception 上几乎不可区分，FDM 无法凭空恢复真正的力差异。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;训练域依赖&lt;/strong&gt;：部署时虽然不需要传感器，训练数据仍需要 force/torque sensor；数据采集成本并没有完全消失。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;latent 不可标定&lt;/strong&gt;：$\bm f^{pF}$ 只在 hidden space 中与 teacher 对齐，不能直接用于安全阈值、力控闭环或跨机器人单位换算。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;论文复现信息不足&lt;/strong&gt;：官方未提供代码，$\lambda$、动作 horizon、flow solver、mask 的实际实现和完整训练超参均无法独立核验。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;实验规模有限&lt;/strong&gt;：三个任务、单一 UR5e、每任务 50 条示教，尚不足以证明对不同材质、工具和 embodiment 的广泛泛化。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; FD-VLA 给出的重要范式是：缺失模态不一定要在部署时被重建为“真实传感器信号”，也可以只学习一个足以帮助决策的 latent prior。对 VLA 而言，这比增加一条高维输入通道更容易保持预训练能力。&lt;/p&gt;
&lt;p&gt;值得继续验证的方向包括：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;用不确定性或 ensemble 表示“视觉状态无法确定力”的时刻，并让 policy 主动减速或请求传感器。&lt;/li&gt;
&lt;li&gt;将 force latent 与 tactile、audio、depth 等模态做 teacher ensemble，而不是限定单一物理传感器。&lt;/li&gt;
&lt;li&gt;在多机器人数据上测试 latent 的 embodiment invariance，并把 query token 设计成可迁移的 contact primitive。&lt;/li&gt;
&lt;li&gt;把 distillation loss 与 safety constraint、force-aware reward 或 model-predictive control 结合，验证 latent 是否真的能支持安全接触，而不仅是提高成功率。&lt;/li&gt;
&lt;/ul&gt;</content:encoded><h:img src="https://pic.hana0721.top/125160058_p0_master1200.6ikvtm0o6l.webp"/><enclosure url="https://pic.hana0721.top/125160058_p0_master1200.6ikvtm0o6l.webp"/></item><item><title>Fast-in-Slow 论文精读：把高速执行嵌入慢速推理的统一 VLA</title><link>https://agusexp25.top/blog/paper-deep-dive-fast-in-slow</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-fast-in-slow</guid><description>精读 Fast-in-Slow（FiS-VLA）：通过共享 VLM 末端 Transformer、异步双系统、3D 点云与双感知协同训练，同时获得高频控制和语义推理能力。</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;论文名称&lt;/strong&gt;：《Fast-in-Slow: A Dual-System Foundation Model Unifying Fast Manipulation within Slow Reasoning》&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;作者&lt;/strong&gt;：Hao Chen、Jiaming Liu、Chenyang Gu、Zhuoyang Liu、Renrui Zhang、Xiaoqi Li、Xiao He、Yandong Guo、Chi-Wing Fu、Shanghang Zhang、Pheng-Ann Heng&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;机构&lt;/strong&gt;：香港中文大学、北京大学、AI²Robotics、BAAI&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;会议 / 期刊&lt;/strong&gt;：NeurIPS 2025（论文页面标注为 arXiv 预印本）&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;论文链接&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2506.01953&quot;&gt;arXiv&lt;/a&gt; · &lt;strong&gt;代码&lt;/strong&gt;：&lt;a href=&quot;https://github.com/CHEN-H01/Fast-in-Slow&quot;&gt;CHEN-H01/Fast-in-Slow&lt;/a&gt; · &lt;strong&gt;项目主页&lt;/strong&gt;：&lt;a href=&quot;https://fast-in-slow.github.io/&quot;&gt;fast-in-slow.github.io&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-fast-in-slow/teaser_fig.szoru3fz5.webp&quot; alt=&quot;FiS-VLA 总览与速度—成功率对比（论文 teaser figure）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; FiS-VLA 不再给慢速 VLM 旁边外挂一个独立的 System 1，而是把 VLM 最后的若干 Transformer block 重新解释为快速执行模块；System 2 以低频率进行图文推理，System 1 以高频率融合当前图像、点云和机器人状态，通过 diffusion policy 输出连续动作。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;提出统一的 Fast-in-Slow 双系统 VLA：完整 VLM 保留 System 2 推理，末端 block 复用为 System 1，两个系统共享预训练知识和中间表示。&lt;/li&gt;
&lt;li&gt;设计异步频率与异构输入：System 2 使用低频 2D 图像与语言，System 1 使用高频 2D、3D point cloud 和 proprioception；实验证明 1:4 频率比最合适。&lt;/li&gt;
&lt;li&gt;提出 dual-aware co-training，把 System 1 的 diffusion denoising loss 与 System 2 的 autoregressive next-token loss 相加，避免只训练动作头造成推理能力遗忘。&lt;/li&gt;
&lt;li&gt;在 RLBench 十项仿真任务和两种双臂机器人八项真实任务上取得 SOTA，同时在 action chunk=8 时达到 117.7 Hz 控制频率。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 传统 VLA 直接让十亿级 VLM 自回归生成动作 token，具有较好的常识和语言泛化，却受限于低执行频率；一个 7B 模型在闭环控制中每次生成动作都要重新跑完整序列，难以及时响应接触和遮挡变化。&lt;/p&gt;
&lt;p&gt;双系统路线借鉴 Kahneman 的认知模型：System 2 负责慢速、逻辑、上下文推理，System 1 负责快速、直觉式执行。CogACT、$pi_0$、GR00T 等方法通常将二者实现成“VLM + 独立 policy head”，有些还采用异步调度。&lt;strong&gt;【Analysis】&lt;/strong&gt; 这类解耦的代价是：System 1 只看到 System 2 输出的压缩特征，自己没有互联网规模 VLM 的参数和知识，且两者之间需要额外的接口对齐。&lt;/p&gt;
&lt;p&gt;FiS-VLA 的关键问题是：能否让 System 1 直接继承 System 2 的预训练表示，同时只计算少量末端 block，从结构上解决知识断裂和频率瓶颈？&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 给定异构示教数据集 $\mathcal D$，策略学习未来 $H$ 步动作序列：&lt;/p&gt;
&lt;p&gt;$$
\max_\theta;\mathbb E_{(a_{t:t+H},o_{t-1},l)\sim\mathcal D}\left[\log\pi_\theta(a_{t:t+H}\mid o_{t-1},l)\right].
$$&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Observation&lt;/strong&gt;：System 2 接收语言指令和低频 RGB；System 1 接收高频 RGB、可选的单视角深度生成的 3D 点云，以及机器人状态。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Action&lt;/strong&gt;：Franka Panda 仿真为 7 DoF（$\Delta x,\Delta y,\Delta z$、Euler 旋转 3 维、夹爪 1 维）；AgileX 双臂为 14 DoF 末端位姿；AlphaBot 双臂为 16 DoF 关节位置。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Embodiment / Dataset&lt;/strong&gt;：RLBench 十项任务，每项 100 条轨迹；大规模预训练混合 37 个数据集，共约 86 万轨迹、3600 万帧；真实实验每个平台每任务 100 条 teleoperation 示教。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;控制目标&lt;/strong&gt;：在保持语义理解的同时，以较高频率输出连续、几何一致的动作 chunk。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-fast-in-slow/method_fig.67y7a9il7k.webp&quot; alt=&quot;FiS-VLA 的统一双系统架构（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 输入先经过 SigLIP 与 DINOv2 视觉编码器；轻量 3D tokenizer 将点云变成 token 后复用视觉编码器。完整 32 层 LLaMA2-7B 形成 System 2，最后若干层从其中“切出” System 1；System 2 的中间 latent 周期性地条件化 System 1，System 1 则在每个控制周期用新观测生成动作。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;双视觉编码器与 3D tokenizer&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入 / 输出&lt;/strong&gt;：224×224 RGB 分别经过 SigLIP（1024 维 token）和 DINOv2（1152 维 token），沿通道拼接；点云 $\mathcal P={\mathbf p_i\in\mathbb R^3}$ 先经三段 farthest-point sampling + kNN 局部聚合 + learnable linear layer，得到可送入共享视觉编码器的 token。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;作用&lt;/strong&gt;：SigLIP 提供语义对齐，DINOv2 保留局部空间细节；3D token 提供深度几何，帮助判断物体间距离和接触方向。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;models/vlms/pointcloud_processor/lift3d_dino.py&lt;/code&gt; 实现 Lift3D 风格处理；&lt;code&gt;prismatic.py&lt;/code&gt; 中 &lt;code&gt;pointcloud_pos&lt;/code&gt; 控制点云 token 放在 slow 或 fast 分支。代码默认实验将点云放到 fast 分支，避免低频 System 2 重复编码。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;共享 LLaMA2 backbone&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入 / 输出&lt;/strong&gt;：语言与视觉 embedding 进入 32 层 decoder-only LLaMA2；System 2 输出中间层 hidden states，System 1 只运行末端 $N$ 个 block 并预测噪声。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要共享&lt;/strong&gt;：System 1 不再是随机初始化的小头，而是直接继承 VLM 的语义和视觉—语言对齐。消融显示只共享 2 个 block 已接近最佳，继续增加到 8 个收益趋于饱和。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;llm_middle_layer&lt;/code&gt; 指定切分位置；&lt;code&gt;prismatic.py::_handle_cache_forward&lt;/code&gt; 先运行 $0\ldots L_m$ 层得到 slow cache，再运行 $L_m\ldots32$ 层完成 fast 推理。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;条件扩散动作头&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：System 2 latent、高频图像/点云/状态、扩散时间步 $\tau$、加噪动作 $x_\tau$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：与动作序列同形状的噪声预测，经过反向扩散得到连续 action chunk。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;辅助投影器&lt;/strong&gt;：vision-language projector、proprioception MLP、timestep embedder、noised-action embedder 与 final layer 都是轻量 MLP；因此高频路径只需运行末端 Transformer 和动作头。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;逆扩散训练目标&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 给真实动作序列 $\tilde a$ 加入 $\eta\sim\mathcal N(0,I)$，随机采样 $\tau\in{1,\ldots,100}$：&lt;/p&gt;
&lt;p&gt;$$
\tilde a_\tau=\sqrt{\beta_\tau}\tilde a+\sqrt{1-\beta_\tau}\eta,
$$&lt;/p&gt;
&lt;p&gt;$$
\mathcal L_{fast}=\mathbb E\left[\left|\eta-\pi_{\theta_f}(\tilde a_\tau,c,\tau)\right|_2^2\right].
$$&lt;/p&gt;
&lt;p&gt;这里 $c$ 是 System 2 的低频 latent 与 System 1 的高频多模态条件，$\beta_\tau$ 是噪声日程，$\theta_f$ 是 fast 路径参数。&lt;/p&gt;
&lt;h4&gt;双感知协同损失&lt;/h4&gt;
&lt;p&gt;$$
\mathcal L_{slow}=-\sum_{i=1}^{D_t}\log P(\hat a_i\mid context,\theta),\qquad
\mathcal L_{FiS}=\mathcal L_{fast}+\mathcal L_{slow}.
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 第一项塑造连续控制能力，第二项把完整 LLM 拉回离散动作或语言计划的 next-token 任务；两者共同更新共享参数，形成“动作执行不牺牲推理”的正则化。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 先从 Prismatic VLM 初始化，再用 37 个开放机器人数据集进行约 86 万轨迹、五 epoch 的预训练（预训练阶段仅使用单视角 RGB）；下游再在 RLBench 或自采集真实数据上微调。仿真微调使用 AdamW、8 张 A800、300 epoch；扩散步数 $T=100$。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;train.sh&lt;/code&gt; 展示了 async 模式、&lt;code&gt;llm_middle_layer=30&lt;/code&gt;、&lt;code&gt;slow_fast_ratio=1:4&lt;/code&gt;、&lt;code&gt;pointcloud_pos=fast&lt;/code&gt;、&lt;code&gt;action_chunk=1&lt;/code&gt;、&lt;code&gt;repeated_diffusion_steps=4&lt;/code&gt; 和 &lt;code&gt;lang_subgoals_exist=true&lt;/code&gt; 的配置。&lt;code&gt;models/vlas/fisvla.py::forward&lt;/code&gt; 对 batch 重复采样噪声和时间步，调用 VLM 得到 &lt;code&gt;noise_pred&lt;/code&gt;，以均方误差计算 fast loss；AR loss 通过同一 VLM 的生成路径保留。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; System 2 每 $r$ 个控制周期运行一次，缓存中间 latent；System 1 在每个周期读取最新 RGB、点云和状态，以缓存 latent 为条件做扩散采样并输出 action chunk。论文在 action chunk=8、1:4 频率比下报告 117.7 Hz；仿真表格中的 chunk=1 频率为 21.9 Hz。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;scripts/sim.py&lt;/code&gt; 用 &lt;code&gt;slow_cnt % slow_fast_ratio == 0&lt;/code&gt; 触发 &lt;code&gt;slow_system_forward&lt;/code&gt;，其余周期调用 &lt;code&gt;fast_system_forward&lt;/code&gt;。&lt;code&gt;predict_action&lt;/code&gt; 支持 DDPM 或 4/6/8 步 DDIM，随后按数据集统计量反归一化，并把夹爪维度离散化为开 / 闭。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方仓库的实现入口和论文模块基本对应：&lt;/p&gt;
&lt;p&gt;| 论文概念 | 代码位置 | 实际行为 |
| --- | --- | --- |
| FiS-VLA 封装 | &lt;code&gt;models/vlas/fisvla.py&lt;/code&gt; | 负责 checkpoint、扩散训练、动作反归一化与推理模式切换 |
| 双系统 VLM | &lt;code&gt;models/vlms/prismatic.py&lt;/code&gt; | &lt;code&gt;_prepare_multimodal_inputs&lt;/code&gt; 组织 slow/fast token，&lt;code&gt;llm_middle_layer&lt;/code&gt; 切分层数 |
| 扩散头 | &lt;code&gt;models/diffusion/*&lt;/code&gt; | &lt;code&gt;x_embedder&lt;/code&gt;、&lt;code&gt;t_embedder&lt;/code&gt;、&lt;code&gt;final_layer&lt;/code&gt; 预测噪声 |
| 异步调度 | &lt;code&gt;scripts/sim.py&lt;/code&gt; | &lt;code&gt;slow-fast-ratio&lt;/code&gt; 控制 System 2 重算周期 |
| 训练配置 | &lt;code&gt;train.sh&lt;/code&gt;, &lt;code&gt;conf/vla.py&lt;/code&gt; | async、点云位置、AR loss、action chunk 等超参数 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 论文把 System 1 描述为“最后几层”，而代码通过 &lt;code&gt;llm_middle_layer&lt;/code&gt; 精确指定切分点；因此共享 block 数并非固定架构常数，而是可在实验中调节的工程旋钮。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-fast-in-slow/realworld_fig.26m7vvehxy.webp&quot; alt=&quot;RLBench、AgileX 与 AlphaBot 的实验示例（论文 real-world figure）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 仿真在 CoppeliaSim 的 RLBench 上测试 10 项任务，每项 100 条轨迹，输入单视角 RGB 与 1024 点点云；真实实验使用 AgileX 和 AlphaBot 两种双臂平台，每项任务采集 100 条三视角 teleoperation 示教。评估均为 20 次 rollout，仿真重复三次并报告均值和方差。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;仿真结果（10 任务平均成功率 / chunk=1 频率）：&lt;/p&gt;
&lt;p&gt;| 方法 | 平均成功率 | 推理频率 |
| --- | ---: | ---: |
| ManipLLM | 38% | 2.2 Hz |
| OpenVLA | 40% | 6.3 Hz |
| $\pi_0$ | 55% | 13.8 Hz |
| CogACT | 61% | 9.8 Hz |
| &lt;strong&gt;FiS-VLA&lt;/strong&gt; | &lt;strong&gt;69% ± 3%&lt;/strong&gt; | &lt;strong&gt;21.9 Hz&lt;/strong&gt; |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; FiS-VLA 比 CogACT 高 8 个百分点，比 $\pi_0$ 高 14 个百分点，并在 10 项任务中的 8 项取得最高或并列最高成功率。真实世界中，AgileX 平均 68%（$\pi_0$ 为 59%），AlphaBot 平均 74%（$\pi_0$ 为 61%）。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-fast-in-slow/ablation_fig.6m4n14qw03.webp&quot; alt=&quot;FiS-VLA 的共享 block、输入模态和异步比例消融（论文 ablation figure）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;共享 block 数&lt;/strong&gt;：从 1 增至 8 时性能提升，但约 2 个 block 后趋于饱和，说明少量末端层即可承载有效执行能力。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;System 1 输入&lt;/strong&gt;：仅 latent 最弱；加入 proprioception、2D 图像、3D 点云后逐步提升，点云对空间关系尤其关键。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;频率比&lt;/strong&gt;：在 1:1 到 1:8 中，1:4 达到最佳折中；过快更新 System 1 会缺乏语义指导，过慢则浪费高频观测。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;训练目标&lt;/strong&gt;：去掉 $\mathcal L_{slow}$ 后成功率从 69% 降到 62%，验证 AR 保留项对协同至关重要。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-fast-in-slow/generalization_fig.5xbdh43d17.webp&quot; alt=&quot;未见物体、复杂背景与光照变化下的泛化设置（论文 generalization figure）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在“换物体、复杂背景、光照扰动”三种测试中，FiS-VLA 的下降幅度均小于 $\pi_0$。例如 AlphaBot 的未见物体任务成功率从 80% 降至 65%（下降 19%），$\pi_0$ 从 65% 降至 40%（下降 38%）；复杂背景下 FiS-VLA 下降 25%，光照变化下仍保持 55%。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这组结果把收益拆成两部分：System 2 用 VLM 的语义先验抑制背景干扰，System 1 用点云和即时 RGB 对局部几何做闭环修正；单独依赖任一系统都难以同时获得这两种鲁棒性。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; FiS-VLA 的效率不是简单“减少层数”，而是利用时间尺度分工：昂贵的语义计算被缓存，廉价的末端层在每个周期读取新观测。由于末端层与 System 2 共享权重，latent 的语义坐标系不需要重新学习；点云和状态则补上 VLM 在精确控制上的几何与本体感缺口。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;参数级嵌套&lt;/strong&gt;：System 1 是完整 VLM 的子路径，而不是外接 policy head。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;时间异步 + 模态异构&lt;/strong&gt;：慢系统负责“任务是什么”，快系统负责“此刻怎么动”。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;双感知协同训练&lt;/strong&gt;：扩散回归与自回归语言 / 动作预测共同约束同一套 backbone。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;轻量 3D 注入&lt;/strong&gt;：点云先 token 化再复用视觉编码器，控制参数与延迟增长。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;同步双系统（如 CogACT、$\pi_0$）仍需在每个动作周期运行 VLM；异步外挂 policy（如 HIRt、Helix）虽能提速，却让 System 1 与 VLM 知识隔离。FiS-VLA 把“共享知识”和“异步执行”放在同一参数图中，因而同时改变了接口、调度和训练目标。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;System 2 的中间 latent 在 $r$ 个时间步内足以描述任务意图。&lt;/li&gt;
&lt;li&gt;LLM 末端 block 具有可迁移到动作生成的局部表示，而不必重写全部网络。&lt;/li&gt;
&lt;li&gt;高频 RGB、点云和状态的采样延迟低于 System 2 重算周期。&lt;/li&gt;
&lt;li&gt;扩散动作和 AR 监督在共享参数上不会产生不可调和的梯度冲突。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 共享 block 的数量和 System 1:System 2 协作频率目前是静态设定的；作者认为未来应根据任务难度和环境复杂度动态调整这两个因素。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;论文主要报告单 GPU 上的串行异步推理；若部署在不同 GPU 或边缘硬件，KV cache、同步和通信开销可能改变最佳 1:4 比例。&lt;/li&gt;
&lt;li&gt;3D 点云由单视角深度图构造，遮挡严重或深度噪声较大时，fast 分支的几何优势可能下降。&lt;/li&gt;
&lt;li&gt;真实实验以每任务 100 条示教、20 次 rollout 为主，尚不足以覆盖长时程任务、动态障碍和安全约束；论文未报告系统性 sim-to-real 误差分析。&lt;/li&gt;
&lt;li&gt;训练中扩散与 AR loss 使用等权相加；不同数据集或 embodiment 下是否需要自适应损失权重，论文未明确说明。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; FiS-VLA 给 VLA 设计提供了一个有价值的结构视角：高频控制不一定要另起炉灶，可能只需在已有 foundation model 的表示层中寻找“可复用的局部路径”。下一步值得研究：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;用不确定性或接触事件触发动态频率，而不是固定 1:4；&lt;/li&gt;
&lt;li&gt;根据点云质量、动作阶段动态选择 fast 输入模态；&lt;/li&gt;
&lt;li&gt;用梯度投影或 loss weighting 缓解 diffusion 与 AR 目标的冲突；&lt;/li&gt;
&lt;li&gt;在多 GPU、低功耗端侧和更长时程任务上重新测量共享层数与缓存策略。&lt;/li&gt;
&lt;/ul&gt;</content:encoded><h:img src="https://pic.hana0721.top/56422576_p0_master1200.7i0z6ufn65.webp"/><enclosure url="https://pic.hana0721.top/56422576_p0_master1200.7i0z6ufn65.webp"/></item><item><title>Evo-0 论文精读：让 VLA 从 RGB 中获得隐式空间理解</title><link>https://agusexp25.top/blog/paper-deep-dive-evo-0</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-evo-0</guid><description>精读 Evo-0：用 VGGT 的几何 token 和轻量 Cross-Attention 融合模块，为现有 VLA 注入无需深度传感器的隐式 3D 先验。</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;论文名称&lt;/strong&gt;：《Evo-0: Vision-Language-Action Model with Implicit Spatial Understanding》&lt;br&gt;
&lt;strong&gt;作者&lt;/strong&gt;：Tao Lin、Gen Li、Yilei Zhong、Yanwen Zou、Yuxin Du、Jiting Liu、Encheng Gu、Bo Zhao&lt;br&gt;
&lt;strong&gt;链接&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2507.00416&quot;&gt;arXiv&lt;/a&gt; · &lt;a href=&quot;https://mint-sjtu.github.io/Evo-0.io/&quot;&gt;项目主页&lt;/a&gt; · &lt;a href=&quot;https://github.com/MINT-SJTU/Evo-0&quot;&gt;官方代码&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-evo-0/Evo0-model.1764ip8bc1.webp&quot; alt=&quot;Evo-0 系统总览（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Evo-0 把一个冻结的 Visual Geometry Foundation Model（VGGT）当作空间先验提取器，再用轻量的 Cross-Attention 将几何 token 注入现有 VLA 的 2D visual token；机器人仍只接收 RGB、多视角图像和状态，却能获得更强的深度、布局与空间关系感知。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;提出 plug-and-play 的隐式 3D 融合模块，不依赖深度相机、点云输入或显式深度估计。&lt;/li&gt;
&lt;li&gt;基于 VGGT 的 3D token 改造 π₀ 的视觉流，仅训练 fuser、LoRA 和 flow-matching action expert，尽量保持 VLM 先验。&lt;/li&gt;
&lt;li&gt;在 5 个 RLBench 任务、5 个真实任务和 5 类真实扰动上验证空间理解与泛化能力。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 论文的关键不是“把 RGB 变成一个深度图”，而是把 VGGT 已经学到的几何关系作为 token 级上下文交给 VLA；动作头仍然学习控制，因此改动集中在感知接口。&lt;/p&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; OpenVLA、π₀、GR00T 等 VLA 复用预训练 VLM 的语义知识，但 VLM 的主要预训练信号来自 2D 图像—文本对，机器人微调数据也通常只有 RGB。结果是模型能认出“哪个是杯子”，却不一定能判断杯子与夹爪的精确深度、孔洞的轴向或货架上的相对位置。&lt;/p&gt;
&lt;p&gt;已有 PointVLA、SpatialVLA、3D-VLA 等工作显式加入点云或深度图。这类方法空间信息更直接，却引入深度传感器、标定和深度估计误差。Evo-0 选择另一条折中路线：输入仍为 RGB，多视角几何由 VGGT 的 feed-forward 网络隐式编码，再与 VLM 的 2D token 融合。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在时间步 $t$，模型接收 $N$ 个 RGB 视图 ${I_t^i}_{i=1}^{N}$、语言指令 $L$ 和机器人状态 $S_t$（如关节角与夹爪状态），输出动作 chunk $A_t$：&lt;/p&gt;
&lt;p&gt;$$
p(A_t \mid {I_t^i}_{i=1}^{N}, L, S_t).
$$&lt;/p&gt;
&lt;p&gt;实验中使用三个 $224\times224$ RGB 视图，输入状态和输出均采用绝对关节角。仿真使用 Franka Panda 与 CoppeliaSim/RLBench；真实实验使用五类低空间容错操作。每个任务收集 100 条示教，评估时每个仿真任务执行 20 次 rollout。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; RGB 图像同时经过原 VLA 的 ViT 和 VGGT；fuser 以 ViT token 为 Query、VGGT 的 3D token 为 Key/Value，得到空间增强 token，随后送入 PaliGemma 与 π₀ 的 action expert 产生关节动作。训练和运行的细节分别见 4.4 与 4.5。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;VGGT spatial encoder&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：多视角 RGB 图像。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：每个视图的 camera、register 与 3D token；Evo-0 只取最后一层的 $t_{3D}$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;作用&lt;/strong&gt;：VGGT 在大规模 2D–3D 配对数据上学习了深度、点图、相机姿态和跨视图对应关系，因此 token 携带比普通 ViT 更强的几何上下文。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Lightweight fuser&lt;/h4&gt;
&lt;p&gt;2D token $t_{2D}\in\mathbb{R}^{N\times M_{2D}\times d_{2D}}$ 作为 Query，3D token $t_{3D}\in\mathbb{R}^{N\times M_{3D}\times d_{3D}}$ 作为 Key 和 Value。每个视图独立计算 Cross-Attention，再拼接所有视图。它只增加一层注意力和投影矩阵，避免重写 VLM。&lt;/p&gt;
&lt;h4&gt;PaliGemma、LoRA 与 action expert&lt;/h4&gt;
&lt;p&gt;融合后的视觉 token 与语言 token 一起进入 PaliGemma。&lt;strong&gt;【Paper】&lt;/strong&gt; VLM 主体冻结，只插入 LoRA；flow-matching action expert 负责把上下文和状态映射到连续关节动作。&lt;strong&gt;【Analysis】&lt;/strong&gt; 这让几何信息影响感知表示，而不必把 3D 坐标设计成新的动作接口。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;p&gt;VGGT 的几何提取可写为：&lt;/p&gt;
&lt;p&gt;$$
\mathcal{E}&lt;em&gt;{l}({I_i}&lt;/em&gt;{i=1}^{N}) = t_c, t_r, t_{3D}.
$$&lt;/p&gt;
&lt;p&gt;$l$ 是层索引，$t_c$、$t_r$ 和 $t_{3D}$ 分别是 camera、register 和 3D token；Evo-0 使用 $t_{3D}$。&lt;/p&gt;
&lt;p&gt;对第 $i$ 个视图，fuser 计算：&lt;/p&gt;
&lt;p&gt;$$
Q^i=t_{2D}^iW_Q,\quad K^i=t_{3D}^iW_K,\quad V^i=t_{3D}^iW_V,
$$
$$
t^i=\operatorname{softmax}\left(\frac{Q^i(K^i)^\top}{\sqrt d}\right)V^i,\qquad
t=\operatorname{Concat}_{i=1}^{N}(t^i).
$$&lt;/p&gt;
&lt;p&gt;$W_Q\in\mathbb{R}^{d_{2D}\times d}$、$W_K,W_V\in\mathbb{R}^{d_{3D}\times d}$ 是跨视图共享的可训练投影；$d$ 是注意力隐空间维度。Query 决定哪些 2D 位置需要几何信息，Key/Value 则提供对应的空间证据。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Evo-0 建立在 π₀ 上，使用 AdamW，weight decay 为 $10^{-10}$；学习率从 $2.5\times10^{-5}$ 经过 1000 步 warm-up 后衰减至 $2.5\times10^{-6}$。训练使用单张 80 GB NVIDIA A800、bfloat16 和 batch size 32。可训练部分为 fuser、LoRA 和 flow-matching action expert，核心 VLM 冻结。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 推理时不需要显式深度图或点云：每次读取三个 RGB 视图，VGGT 提取 3D token，fuser 产生空间增强视觉表示，π₀ action expert 输出绝对关节角动作并执行。&lt;strong&gt;【Paper】&lt;/strong&gt; RTX 4090 上 π₀ 控制频率为 11.3 Hz，Evo-0 为 6.94 Hz，额外开销主要来自 VGGT 图像编码。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方仓库 &lt;a href=&quot;https://github.com/MINT-SJTU/Evo-0&quot;&gt;MINT-SJTU/Evo-0&lt;/a&gt; 当前只有 README、许可证和论文/项目链接，README 明确写着 &lt;strong&gt;“Coming Soon”&lt;/strong&gt;。因此无法从官方代码核验模型定义、DataLoader、loss、配置、checkpoint 或 inference 脚本。本文涉及的实现细节仅采用论文正文；后续代码公开后，应重点检查 VGGT 是否冻结、fuser 的张量布局、动作 chunk 的 horizon，以及 flow-matching 的具体参数。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-evo-0/rlbench2_cropped.8l0trgszfy.webp&quot; alt=&quot;RLBench 五个空间精细操作任务（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 仿真任务为 PlayJenga、PutKnifeOnChoppingBoard、TakeUmbrellaOutOfUmbrellaStand、PlaceHangerOnRack 和 MoveHanger，覆盖抓取运输、精确放置以及高度/平移变化。真实任务包括圆柱居中、peg-in-hole、中间瓶抓取、罐子取放和透明物体取放。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-evo-0/task_setup_realworld.9rk502hw2y.webp&quot; alt=&quot;真实世界五类任务设置（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;仿真成功率如下（&lt;strong&gt;【Paper】&lt;/strong&gt;）：&lt;/p&gt;
&lt;p&gt;| 任务 | OpenVLA-OFT | π₀ | Evo-0 |
| --- | ---: | ---: | ---: |
| PlayJenga | 55% | 55% | &lt;strong&gt;65%&lt;/strong&gt; |
| PutKnifeOnChoppingBoard | 15% | 20% | &lt;strong&gt;35%&lt;/strong&gt; |
| TakeUmbrellaOutOfUmbrellaStand | 55% | 60% | &lt;strong&gt;85%&lt;/strong&gt; |
| PlaceHangerOnRack | 0% | 25% | &lt;strong&gt;45%&lt;/strong&gt; |
| MoveHanger | 0% | 45% | &lt;strong&gt;50%&lt;/strong&gt; |
| 平均 | 25% | 41% | &lt;strong&gt;56%&lt;/strong&gt; |&lt;/p&gt;
&lt;p&gt;相对 π₀，平均提升 15 个百分点；最明显的增益出现在雨伞取出和衣架放置，分别提升 25 和 20 个百分点。&lt;strong&gt;【Analysis】&lt;/strong&gt; 这些任务都要求接触前的精确定位或避碰，因此更像是在验证几何表示，而不只是验证语义识别。&lt;/p&gt;
&lt;p&gt;真实世界结果（&lt;strong&gt;【Paper】&lt;/strong&gt;）为 π₀ 28.53% 对 Evo-0 57.41%；五个任务均有提升，peg-in-hole 从 20% 提升到 66.67%，透明物体取放从 30% 提升到 65%。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-evo-0/chart1_cropped.5j4xq8rql0.webp&quot; alt=&quot;训练步数与执行 horizon 实验（论文 Figure 4）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-evo-0/chart2_cropped.4xva3xxab1.webp&quot; alt=&quot;执行 horizon 对成功率的影响（论文 Figure 4）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 训练 15k 步的 Evo-0 已超过训练 20k 步的 π₀。执行 horizon 取 15、17、20、22、25 时，平均成功率分别为 49%、52%、56%、52%、55%，说明在该范围内对 horizon 不敏感。论文没有提供“移除 fuser / 移除 VGGT”的严格组件消融，因此不能把所有增益归因到某个单独层。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-evo-0/distractor.et90yrq5c.webp&quot; alt=&quot;五类真实扰动设置（论文 Figure 6）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在未见干扰物、背景颜色、目标位置（后移 10/20/30 mm）、目标高度（增加 5/10/15 mm）和相机俯仰（±10°）五类 OOD 条件下，Evo-0 整体更稳健。未见干扰物时，正确选物率为 100%（π₀ 为 60%），完整取放成功率为 70%（π₀ 为 20%）；高度增加 10 mm 时为 30% 对 10%，相机向上 10° 时为 60% 对 40%。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 普通 ViT token 擅长外观和语义，但对“这个像素在场景中离另一个物体多远”没有显式约束。VGGT token 经过 2D–3D 监督，提供跨视图对应、深度和结构线索；Cross-Attention 让每个 2D token 按需检索这些线索。这样，语言条件仍由 VLM 处理，几何关系则由 VGGT 补足，形成互补而非替代。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;真正的创新是&lt;strong&gt;接口设计&lt;/strong&gt;：不改动作空间、不要求深度输入，只在 VLA 的视觉 token 流中插入一个可训练的小 fuser，并利用冻结的几何 foundation model 迁移空间先验。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;PointVLA/SpatialVLA 把显式 3D 数据作为额外模态；Evo-0 把几何编码成隐式 token。前者可解释性更直接但依赖传感器或估计器，后者部署更简单但空间精度取决于 VGGT 的推断质量和多视角配置。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;多视角 RGB 足以让 VGGT 恢复对操作有用的几何线索。&lt;/li&gt;
&lt;li&gt;VGGT 的 token 与 VLM token 可以通过单层 Cross-Attention 对齐。&lt;/li&gt;
&lt;li&gt;预训练几何先验在机器人相机、物体材质和扰动分布上仍然有效。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Evo-0 的主要代价是推理速度下降：VGGT 增加了图像编码成本，控制频率从 π₀ 的 11.3 Hz 降至 6.94 Hz。论文还只在五个仿真、五个真实任务和有限扰动上评估，尚未证明对更大规模任务和 embodiment 的普适性。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 官方代码尚未公开，复现实验和核对训练细节受限。论文没有报告 VGGT 冻结与否、fuser 参数量、显存/延迟分解，也缺少移除 3D token、替换层位或改变视图数量的组件消融。透明物体、强反光和严重遮挡仍可能让 VGGT 的几何 token 失真；此外，6.94 Hz 是否足够取决于底层控制器和任务动态，不能直接等同于所有机器人都能实时部署。&lt;/p&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; Evo-0 提供了一条很实用的 VLA 增强路线：先寻找已经具备目标能力的 foundation model，再设计低成本 token 接口，而不是重新训练一个“既懂语言又懂几何”的大模型。后续值得验证：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;用可学习门控决定何时信任 VGGT、何时回退到原始 2D token；&lt;/li&gt;
&lt;li&gt;联合蒸馏 VGGT 与 VLA，降低 6.94 Hz 的推理开销；&lt;/li&gt;
&lt;li&gt;将 3D token 的置信度与碰撞/抓取不确定性结合，形成风险敏感的 action expert；&lt;/li&gt;
&lt;li&gt;在单目、视图缺失和跨机器人 embodiment 上测试“隐式 3D”是否仍成立。&lt;/li&gt;
&lt;/ul&gt;</content:encoded><h:img src="https://pic.hana0721.top/57793944_p0_master1200.4xv4u7fok2.webp"/><enclosure url="https://pic.hana0721.top/57793944_p0_master1200.4xv4u7fok2.webp"/></item><item><title>dWorldEval 论文精读：用离散扩散世界模型规模化评估机器人策略</title><link>https://agusexp25.top/blog/paper-deep-dive-dworldeval</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-dworldeval</guid><description>精读 dWorldEval：把视觉、语言和动作放进同一离散 token 序列，以关键帧记忆和 progress token 实现可扩展的机器人策略评估。</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; dWorldEval 要解决的不是训练一个执行 policy，而是如何低成本比较大量机器人策略、checkpoint、任务和环境。真实执行慢且昂贵，传统仿真又受资产与 sim-to-real 偏差限制。论文提出一个以 Masked Discrete Diffusion（MDD）为核心的 action-conditioned world model，令候选 policy 在模型生成的世界中闭环执行，再由 imagined rollout 估计成功率。&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 核心因果链是：让 action 与图像处于同一 token 序列以提升 action faithfulness；用 sparse keyframe memory 减少多步漂移；把任务完成度作为与未来视觉共同生成的 progress token，从而将世界生成直接连到策略排名。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;将 RGB、instruction 和连续 action chunk 分别离散化后置于同一序列，使用一个 Transformer 做去噪生成。&lt;/li&gt;
&lt;li&gt;以 sparse keyframe memory 维护长时域时空一致性，并显式加入时间 ID。&lt;/li&gt;
&lt;li&gt;用 VLM 标注的离散 progress-as-text 与未来图像共同生成，终点 score 为 &lt;code&gt;1&lt;/code&gt; 时自动判成功。&lt;/li&gt;
&lt;li&gt;提出衡量状态变化的 $\Delta$LPIPS，并在 LIBERO、RoboTwin、真实双臂 AgileX 上评测 WorldEval、WorldGym、Ctrl-World 等基线。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 作者来自 Current Robotics 与 University of Toronto。论文提供 &lt;a href=&quot;https://dworldeval.github.io/&quot;&gt;项目主页&lt;/a&gt;，但截至本文写作时未公开官方模型训练/推理代码、checkpoint 或配置；因此本文不把项目网站源码误当作模型实现。&lt;/p&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 生成式 world model 可避免对每一个候选策略都进行真实执行，但作为 evaluator 必须同时满足：一，&lt;strong&gt;action controllability&lt;/strong&gt;，给定失败 action 也不能把结果“修正”为成功；二，&lt;strong&gt;spatiotemporal consistency&lt;/strong&gt;，长 rollout 中物体、机械臂和多相机视角不能逐渐矛盾；三，能区分任务完成与未完成。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 作者认为现有 video diffusion evaluator 的根本问题是架构：许多方法将机器人动作作为 cross-attention 或 AdaLN 等附加条件，预训练视频先验则强烈偏向视觉上合理、往往也是“成功”的未来。尤其在训练主要含 expert demonstration、测试输入 suboptimal/OOD actions 时，视频 prior 容易压过弱控制条件。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 增加失败数据固然有用，却无法枚举所有错误动作。dWorldEval 的选择是把问题从“视频生成器是否听从外部 action condition”改成“包含 action token 的完整序列如何共同补全”：这不保证物理完美，却使 action 不再是可被忽略的旁路。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 输入为当前观测 $o_t$、历史 $h_t$、语言指令 $l$ 与 future action chunk $\mathbf a_t$；world model $\mathcal W_\theta$ 预测 horizon $\Delta$ 后的观测和任务进度：&lt;/p&gt;
&lt;p&gt;$$
(\hat o_{t+\Delta},\hat v_{t+\Delta})
\sim\mathcal W_\theta(\cdot\mid o_t,h_t,l,\mathbf a_t),
\qquad \hat v_{t+\Delta}\in[0,1].
$$&lt;/p&gt;
&lt;p&gt;当前观测可包含同步的 third-person / wrist RGB；历史是关键帧记忆；action chunk 的长度和 $\Delta$ 对齐。模型的输出是“执行该 action 后世界会怎样”和“该状态完成到何种程度”，并不直接输出 policy action。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 对候选策略 $\pi$，让它与模型闭环，得到 imagined trajectory $\tau={\hat o_0,\hat o_\Delta,\ldots,\hat o_T}$。论文以&lt;/p&gt;
&lt;p&gt;$$
J(\pi)=\frac1N\sum_{i=1}^N\mathcal S(\tau_i)
$$&lt;/p&gt;
&lt;p&gt;作为 imagined success rate；$\mathcal S$ 可由人类查看生成结果给出，也可由终点 progress token 是否为 &lt;code&gt;1&lt;/code&gt; 自动决定。&lt;/p&gt;
&lt;p&gt;| 元素        | 角色                                                     |
| ----------- | -------------------------------------------------------- |
| Observation | 当前多视角 RGB；历史仅保留固定全局视角                   |
| Language    | instruction，经 LLaDA 转为 text token                    |
| Action      | 连续 action chunk，经 FAST 转为离散 token                |
| Output      | 未来多视角视觉 token 与离散 progress token               |
| 目标        | 与真实执行成功率相关、可正确排序的 imagined success rate |&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-dworldeval/model-crop.3k8qzt7bgs.webp&quot; alt=&quot;dWorldEval 统一离散扩散架构、稀疏关键帧记忆与 Progress-as-Text（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 低分辨率历史、当前多视角图像、instruction 和 action chunk 分别 tokenized 并串为 context；未来图像与进度构成被 mask 的 target suffix。Transformer 以 iterative parallel denoising 补全 target，之后 visual/text detokenizer 分别恢复下一步观测和数值 score。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;Unified token sequence&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; RGB 使用 MAGVIT-v2、language 使用 LLaDA、连续 action chunk 使用 FAST。各 tokenizer 的离散 code 经 index offset 后进入共同词表，展开为 history、current observation、instruction、action 与 target 的扁平序列。视觉 token 可通过同一个 self-attention backbone 直接关注 action token。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; “统一”不是让三个 modality 共用 encoder，而是让它们作为同一个 Transformer 的主序列元素共同参与推理。与 action 作为辅助 cross-attention condition 相比，future visual token 在每层 attention 都能读取 action token，这正是论文试图增强 controllability 的结构原因。&lt;/p&gt;
&lt;h4&gt;Sparse keyframe memory&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; memory 按与 action chunk 对齐的固定 stride，从最近帧中选取 $K$ 个 keyframe；每帧前加绝对 frame index 的文本 token 保存时间顺序。为节省 token，history 只编码低分辨率固定全局视角；当前 observation 保留全分辨率多视角以刻画接触细节。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这不是完整 video cache，而是以中间帧信息换取长期布局锚点。对 evaluator 而言尤为重要：单步图像再逼真，只要第十步物体位置漂移，policy ranking 就可能失真。&lt;/p&gt;
&lt;h4&gt;Progress-as-Text&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 作者基于任务里程碑，用 few-shot prompting 令 SEED-1.5VL 生成完成度，将 &lt;code&gt;0&lt;/code&gt;、&lt;code&gt;0.2&lt;/code&gt;、&lt;code&gt;0.4&lt;/code&gt;、&lt;code&gt;0.6&lt;/code&gt;、&lt;code&gt;0.8&lt;/code&gt;、&lt;code&gt;1.0&lt;/code&gt; 等数值转为 text token，并附在未来视觉 target 后。推理时 parser 将生成文本解为 $\hat v_{t+\Delta}$；终点为 &lt;code&gt;1&lt;/code&gt; 便判 imagined rollout 成功。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 进度和图像同源生成，避免了“视频模型生成结果、外置 classifier 独立评分”的不一致接口；但 VLM 伪标签的偏差也被写入了模型，离散分段是否适用于新任务仍需校准。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;Masked Discrete Diffusion&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 令可见 context 为 $\mathbf c_t$，未来视觉与 progress 的 target suffix 为 $\mathbf y_{t+\Delta}$。采样 $\lambda\sim\mathcal U(0,1)$ 后，以 mask forward process 得到 $\tilde{\mathbf y}$，mask 位置为 $\Omega_\lambda$。训练损失是：&lt;/p&gt;
&lt;p&gt;$$
\mathcal L_{\rm WM}=
\mathbb E_{\tau,\lambda,\tilde{\mathbf y}}
\left[-\frac{1}{m(\lambda)}\sum_{j\in\Omega_\lambda}w_j
\log p_\theta(y_j\mid\mathbf c_t,\tilde{\mathbf y}_{t+\Delta},\lambda)\right].
$$&lt;/p&gt;
&lt;p&gt;$m(\lambda)$ 是 mask probability；$w_j$ 是 modality rebalancing weight；论文设 visual token 为 $1$、progress token 为 $2$。损失仅作用于被遮住的位置，推理则多轮并行填回这些离散 token。&lt;/p&gt;
&lt;h4&gt;$\Delta$LPIPS&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 常规 LPIPS 比较静态外观，未必能发现“结果画面像、但 action 导致变化错了”。论文先取状态变化：&lt;/p&gt;
&lt;p&gt;$$
\Delta o_t=o_{t+\Delta}-o_t,\qquad
\Delta\hat o_t=\hat o_{t+\Delta}-o_t,
$$&lt;/p&gt;
&lt;p&gt;再使用：&lt;/p&gt;
&lt;p&gt;$$
\Delta\mathrm{LPIPS}=\mathbb E_t\left[
d_{\rm lpips}(\operatorname{norm}(\Delta\hat o_t),\operatorname{norm}(\Delta o_t))\right],
$$&lt;/p&gt;
&lt;p&gt;其中 $\operatorname{norm}$ 是每样本 RMS normalization。较低的 $\Delta$LPIPS 表示预测到的视觉&lt;strong&gt;状态变化&lt;/strong&gt;更接近真实变化，是 controllability proxy，并非直接的任务成功率。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; LIBERO 使用 Object、Spatial、Goal、100 四个 suite 的同步 third-person/wrist 视角；约 5.5k 官方 expert demonstrations 之外还加入 1k suboptimal-policy failure rollouts。RoboTwin 选择 ARX 双臂，在 10 个 contact-rich tasks 使用 5.5k trajectories。真实平台是两条 6-DoF AgileX arms 与三台同步 RealSense 457 相机，数据为 5.2k trajectories，其中含 1k 人类采集 failure。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 附录写明模型由 MMaDAVLA-8B 初始化，为 32 层、32 heads、hidden dimension 4096 的 bidirectional Transformer；使用 AdamW、8 张 H800、15 epochs、学习率 $5\times10^{-5}$、global batch size 128。论文主文写 history 为 $K=4$ 个 $128^2$ keyframe，附录写作 $256\times256$，两处不一致，不能合并为单一确定配置。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 每个 prediction step 将 memory、当前观测、instruction 和 policy 输出 action chunk 写入 context；未来 observation/progress token 被 mask，再以 16-step iterative parallel decoding 生成。下一帧的生成图像加入 sparse memory，policy 再根据生成观测提出下一 action，形成闭环 imagined rollout。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 完整 trajectory 在单张 H800 上需约 30–90 秒（约 1.5 秒/帧）。所以“scalable”是相对真实机器人反复执行，而非实时模拟器；计算预算仍限制可评估的策略数、seed 数与 rollout 长度。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 截至 2026-08-26，论文 arXiv 页面、PDF、项目主页与 GitHub 公开搜索均未提供 dWorldEval 的官方模型仓库。搜索到的 &lt;code&gt;dworldeval/dworldeval.github.io&lt;/code&gt; 是项目网站仓库，不能用于核对 model definition、DataLoader、mask schedule、checkpoint 或实际 inference loop。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 可确认的实现级信息仅来自论文：MMaDAVLA-8B 初始化、32-layer / 32-head / 4096-dim Transformer、$K=4$ memory、$[2,8]$ chunk-aligned horizon、visual/progress 权重 $1/2$、16-step decoding、AdamW 与 8×H800 训练。它们不等同于可复现实装。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-dworldeval/setup-crop.77eanc342j.webp&quot; alt=&quot;真实 AgileX 双臂平台与生成 rollout 可视化（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 评测横跨三种 domain：&lt;/p&gt;
&lt;p&gt;| Domain     | 数据与硬件                                   | 主要评测                                             |
| ---------- | -------------------------------------------- | ---------------------------------------------------- |
| LIBERO     | 四个 suite，同步第三人称与 wrist view        | $\pi_0$ checkpoints、failure-aware controllability   |
| RoboTwin   | ARX 双臂、10 个 tableware/contact-rich tasks | $\pi_0$、DexVLA、Diffusion Policy 等异构 policy 排序 |
| Real world | 双 6-DoF AgileX、3 路 RealSense 457 view     | Bussing Table、Place Cup、Handover Block 等五任务    |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 模型生成 $256^2$ 多视角画面，$\Delta$ 与 action chunk length 对齐并从 $[2,8]$ 中选取。模拟 benchmark 每任务运行 20 episodes，真实 benchmark 每任务 30 episodes。比较的 video diffusion baseline 为 WorldEval、WorldGym、Ctrl-World，训练切分保持一致。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-dworldeval/consistency-crop.5q85lkyzf3.webp&quot; alt=&quot;dWorldEval 对 suboptimal action 的可控生成，以及无 memory 时的长时域漂移（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; LIBERO 上，dWorldEval 的 LPIPS 为 &lt;strong&gt;0.215&lt;/strong&gt;；$\Delta$LPIPS 在 expert/failure 子集为 &lt;strong&gt;0.315 / 0.352&lt;/strong&gt;。WorldEval 为 &lt;strong&gt;0.262 / 0.423 / 0.701&lt;/strong&gt;，WorldGym 为 &lt;strong&gt;0.218 / 0.347 / 0.650&lt;/strong&gt;，Ctrl-World 为 &lt;strong&gt;0.220 / 0.334 / 0.416&lt;/strong&gt;。failure 集的优势是论文的关键证据：一个 evaluator 必须正确生成失败，而不是把它视觉上补成成功。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在 policy evaluation，论文报告 real-vs-imagined Pearson correlation：LIBERO multi-view &lt;strong&gt;0.910&lt;/strong&gt;、RoboTwin &lt;strong&gt;0.927&lt;/strong&gt;、真实任务 &lt;strong&gt;0.918&lt;/strong&gt;。单视角 LIBERO 的 dWorldEval rank violation 为 &lt;strong&gt;MMRV=0.013&lt;/strong&gt;，基线最高到 &lt;strong&gt;0.039&lt;/strong&gt;。这些数字只描述论文使用的 policy 集、数据与平台，不能外推为任意策略分布都具有 $r\approx0.9$。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-dworldeval/corr-crop.7w7k7cqnav.webp&quot; alt=&quot;真实成功率与 world-model 估计成功率的相关性，以及无记忆消融（论文 Figure 5）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 作者还比较多个 $\pi_0$ checkpoint，发现终点 progress token 的 Auto estimate 与人工基于生成图像的判断都接近真实执行曲线，并能追随个别 checkpoint 的非单调波动。这支持“共同生成的 score 可作 intrinsic metric”，但不是对任意任务 VLM progress 标签皆正确的证明。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-dworldeval/score_curve-crop.1lck9h1tjs.webp&quot; alt=&quot;联合生成未来观测与 progress token，并自动评估多组 policy checkpoint（论文 Figure 4）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; memory round-trip ablation 先执行 $H$ 段 forward action，再执行 inverse action，比较最终与初始图像。$H=5,10,15,20$ 时，无 memory 的 LPIPS 为 &lt;strong&gt;0.177, 0.186, 0.302, 0.411&lt;/strong&gt;，完整模型为 &lt;strong&gt;0.130, 0.145, 0.193, 0.243&lt;/strong&gt;。正文出现的 &lt;code&gt;0.21&lt;/code&gt; 与表格 $H=20$ 的 &lt;code&gt;0.243&lt;/code&gt; 不完全一致，本文采用表格数字。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; action-shuffle sanity check 随机替换 batch 内 future action chunk、保持历史和语言不变：对齐 action 的 LPIPS / $\Delta$LPIPS 为 &lt;strong&gt;0.215 / 0.324&lt;/strong&gt;，shuffle 后为 &lt;strong&gt;0.461 / 0.697&lt;/strong&gt;。逐步增加 inference-time swap probability 时，论文还观察到 $\Delta$LPIPS 上升而真实成功率相关性下降。该实验支持模型依赖 action，但“敏感”本身不等于在所有反事实条件下都因果正确。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文的跨 domain fidelity 中，$\Delta$LPIPS 分别为：LIBERO third-person/wrist &lt;strong&gt;0.324 / 0.303&lt;/strong&gt;，RoboTwin top-down/wrist &lt;strong&gt;0.317 / 0.345&lt;/strong&gt;，真实平台 top-down/wrist &lt;strong&gt;0.365 / 0.336&lt;/strong&gt;。作者据此认为统一 tokenization 在不同 camera configuration 与 robot morphology 下保持相近质量。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这里“泛化”主要是对不同 policy architecture、相机和三个训练过各自数据的 domain 的 evaluator fidelity；它不是完全未见 embodiment / task 的零样本迁移。更严格的 cross-embodiment holdout 尚未提供。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; action 进入主 token sequence，缩小了模型靠当前画面与强成功先验绕过控制输入的空间。其次，低频 keyframe 将早期场景几何重新送回每一步 context，减少 rollout 中的累积误差。最后，score 与图像在同一生成目标中出现，外置 reward/classifier 的接口错配更少。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 真正的组合创新是面向 evaluation reliability 的三件事：token-level action control、稀疏的 long-horizon grounding、以及 generative success signal。$\Delta$LPIPS 则将“动作是否造成正确变化”从静态外观比较中单独抽出；不过 image-space metric 仍看不到抓取力、接触状态和遮挡后的物理量。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;| 维度        | 常见 video-conditioned evaluator    | dWorldEval                           |
| ----------- | ----------------------------------- | ------------------------------------ |
| Action 位置 | cross-attention / modulation 等条件 | 与视觉、文本共同位于主序列           |
| 长时上下文  | 短窗口或隐式状态                    | 显式 $K=4$ keyframe memory + time ID |
| 成功判定    | 人工、外部 oracle 或独立 classifier | 与未来视觉共同生成的 progress token  |
| 控制诊断    | 静态 LPIPS 等                       | 状态差分 $\Delta$LPIPS               |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 统一 token 并不等于统一物理模型：它提升视觉 token 与 action token 交互的机会，却不能自动保证未见接触和 OOD action 的真实物理正确性。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 方法假定 action、观察和 future state 时间对齐；离散 tokenizer 未丢失关键控制信息；训练含有足够 failure/suboptimal coverage；VLM progress label 与人类成功定义一致；低分辨率单全局视角 history 足够锚定多视角接触场景；imagined rollout 不会迅速偏离真实 policy 的状态分布。&lt;/p&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 作者将 OOD action 下的 controllability 与长时域物理/时空一致性视为现有 scalable evaluation 的关键难题，并针对其提出改善；论文没有单列 limitations 段，也没有宣称已解决所有 OOD action 或真实物理问题。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 一条完整 rollout 在单张 H800 上约需 30–90 秒，说明它仍是计算密集的生成 proxy。且每个 domain 都使用对应训练轨迹，其可靠性需要与平台、相机和任务分布一起解释。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 首先，VLM 伪标签错误会被 progress token 内化；生成 score 与生成图像彼此一致，不表示两者都与真实完成度一致。其次，memory 不能在没有真实传感器时纠正第一步生成错误，闭环误差仍会复合。再次，30–90 秒/trajectory 会限制大规模 seed、候选 policy 和长 horizon 筛选。最后，尚无官方代码、config、checkpoint，且分辨率描述局部不一致，独立复现困难。&lt;/p&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这篇工作提示未来的 evaluator 不应只追求未来帧好看，而应输出能检验的 task state、constraint violation 或 uncertainty。$\Delta$LPIPS 与 action shuffle 是很好的起点，但还可用反事实 action pair、接触传感器、simulator intervention 测试真正的 action causality。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 更实用的部署方式可能是把 dWorldEval 作为主动筛选器：对模型低置信度、候选策略排名接近、或长 rollout 的 case 请求真实执行，其余交给 imagined rollout。世界模型不必逐像素完美，却必须在候选 policy 的相对排序上不系统性偏向成功先验；更广的 holdout embodiment、真实干预和公开复现，是检验这一点的下一步。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/98259515_p0_master1200.3ns7nvxpav.webp"/><enclosure url="https://pic.hana0721.top/98259515_p0_master1200.3ns7nvxpav.webp"/></item><item><title>dVLA 论文精读：用多模态 CoT 统一扩散式 VLA</title><link>https://agusexp25.top/blog/paper-deep-dive-dvla</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-dvla</guid><description>精读 dVLA：把视觉子目标、文本推理和机器人动作统一为离散扩散去噪，并用 Prefix Mask 与 KV Cache 将推理速度提升到约 2 倍。</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;论文名称&lt;/strong&gt;：《dVLA: Diffusion Vision-Language-Action Model with Multimodal Chain-of-Thought》&lt;br&gt;
&lt;strong&gt;作者&lt;/strong&gt;：Junjie Wen、Minjie Zhu、Jiaming Liu、Zhiyuan Liu、Yicun Yang、Linfeng Zhang、Shanghang Zhang、Yichen Zhu、Yi Xu&lt;br&gt;
&lt;strong&gt;机构&lt;/strong&gt;：美的集团、北京大学、上海交通大学&lt;br&gt;
&lt;strong&gt;论文链接&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2509.25681&quot;&gt;arXiv:2509.25681&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;代码 / 项目&lt;/strong&gt;：论文页面未给出官方代码仓库或项目主页。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://arxiv.org/html/2509.25681v1/dvla_model.png&quot; alt=&quot;dVLA 的统一扩散架构（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; dVLA 将当前观测、语言指令、未来视觉子目标、文本推理和动作 chunk 都离散化为 token，并让一个 discrete diffusion MLLM 在同一去噪目标下同时恢复它们；这样“想象下一步会看到什么”“用语言拆解下一步做什么”和“真正执行哪些关节动作”不再由彼此独立的模块负责。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;以 MMaDA 为基础，将视觉、文本和动作统一到一个离散 token 空间；动作使用 FAST tokenizer，通过 DCT 与 BPE 压缩连续动作序列。&lt;/li&gt;
&lt;li&gt;提出 multimodal Chain-of-Thought（MM-CoT）：模型先生成未来的 subgoal image，再生成 textual subgoal，最后生成 action chunk。&lt;/li&gt;
&lt;li&gt;用随机 mask 的统一 diffusion loss 同时训练三种输出，避免传统“语言模型 next-token loss + 连续动作 diffusion loss”之间的目标不一致。&lt;/li&gt;
&lt;li&gt;设计 Prefix Attention Mask 和 KV Caching，缓解双向离散扩散模型无法直接使用 KV cache 的推理瓶颈。&lt;/li&gt;
&lt;li&gt;在 LIBERO 上取得 96.4% 平均成功率；在 7-DoF Franka 的四类真实任务上达到 26/40 次成功，并在真实 bin-picking 上展现多步规划能力。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 第一代 VLA 通常把预训练 VLM 当作视觉与语言特征提取器，再接一个 action head。这种结构在常规短任务上有效，但遇到开放世界指令和长时程操作时，模型需要把“目标”拆成一串可执行的中间状态。后续工作加入文本 CoT、视觉未来帧或世界模型，但推理与控制往往仍由不同目标、不同头部甚至不同模型优化。&lt;/p&gt;
&lt;p&gt;论文指出两个具体矛盾：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;目标冲突&lt;/strong&gt;：图文联合训练强调知识保持与场景理解，动作训练强调控制误差；两者的梯度可能互相干扰。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;模态鸿沟&lt;/strong&gt;：自回归 VLM 的 next-token 目标与图像生成、连续动作 diffusion 目标不同，视觉想象与动作执行容易出现 plan–act misalignment。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; dVLA 的切入点不是再增加一个“会思考”的语言模块，而是把所有需要预测的中间结果改成同一种离散扩散问题。它牺牲了部分自回归模型的成熟生态，却换来一个更直接的优化接口：所有被 mask 的 token 都由同一个模型、同一个概率目标恢复。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在时刻 $t$，机器人接收多视角图像、语言指令和机器人状态，输出一个动作 chunk，同时预测未来视觉子目标和文本子任务。论文将完整序列写成：&lt;/p&gt;
&lt;p&gt;$$
x = {o, l, s, o^{goal}, r, a^{chunk}},
$$&lt;/p&gt;
&lt;p&gt;其中：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;$o$：当前观测图像，可包含多视角相机；&lt;/li&gt;
&lt;li&gt;$l$：任务级语言指令；&lt;/li&gt;
&lt;li&gt;$s$：当前机器人状态，论文中离散化为文本 token 输入；&lt;/li&gt;
&lt;li&gt;$o^{goal}$：约在动作 chunk 之后的未来 subgoal image；&lt;/li&gt;
&lt;li&gt;$r$：文本 reasoning / textual subgoal；&lt;/li&gt;
&lt;li&gt;$a^{chunk}$：需要执行的离散动作 token 序列。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 视觉使用 MAGVIT-v2 tokenizer，压缩比为 16、codebook size 为 8192；$256\times256$ 图像对应 256 个视觉 token。文本使用 LLaDA tokenizer，词表大小为 126,464；动作使用 FAST tokenizer，词表大小为 2,048。合并模态后，模型词表扩展到 136,704。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 实验覆盖 LIBERO-Spatial、LIBERO-Object、LIBERO-Goal、LIBERO-Long 四个 suite，以及一台 7-DoF Franka 机械臂。真实任务包括 Bin Picking、Open Box、Hang Cups 和 Pick&amp;#x26;Place Object。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://arxiv.org/html/2509.25681v1/dvla_model.png&quot; alt=&quot;dVLA 的 MLLM、三种 tokenizer 与 Prefix Mask（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;p&gt;整体数据流是：输入图像与语言先分别 tokenization，和机器人状态拼接成 prefix；模型在离散 diffusion 的多轮 denoising 中，联合恢复 visual subgoal、textual reasoning 与 action tokens；最后三个 de-tokenizer 分别把 token 还原成图像、文本和可执行动作。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;Unified discrete tokenization&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;输入&lt;/strong&gt;是 RGB 图像、文本和连续动作，&lt;strong&gt;输出&lt;/strong&gt;是共享词表中的离散 token。MAGVIT-v2 将图像映射为语义 token，LLaDA tokenizer 处理指令与 reasoning，FAST 先对连续动作做 DCT，再用 BPE 压缩成短 token 序列。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; FAST 的作用不只是节省序列长度。它把原本连续、几何意义明确的动作轨迹变成与文本和图像同类的预测对象，使“动作是否被正确 mask、是否被恢复”可以和其它模态共享同一个训练接口。&lt;/p&gt;
&lt;h4&gt;Discrete diffusion MLLM&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;输入&lt;/strong&gt;是部分被 mask 的完整序列 $x_t$，&lt;strong&gt;输出&lt;/strong&gt;是所有 mask 位置的原始 token 分布。模型基于 MMaDA 的 multimodal diffusion backbone，不按固定的左到右顺序生成，而是在多个 diffusion timestep 中反复 denoise。&lt;/p&gt;
&lt;h4&gt;Multimodal Chain-of-Thought&lt;/h4&gt;
&lt;p&gt;模型生成的中间推理由两部分组成：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Visual CoT&lt;/strong&gt;：预测动作后约一个 chunk 的场景图像，表达“如果按这个计划执行，未来会看到什么”。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Textual CoT&lt;/strong&gt;：把高层指令分解成当前可执行的子任务，例如“抓住绿色杯子”或“把杯子挂到架子上”。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;两者随后与 action token 一起生成，而不是作为独立 planner 的离线输出。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://arxiv.org/html/2509.25681v1/subgoal_example_real.png&quot; alt=&quot;真实机器人任务中的视觉与文本 CoT（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 对简单任务，作者可以省略 textual reasoning 以降低延迟；对 bin-picking 等长任务，使用 SEED-1.5VL 以 3 秒间隔生成视频分割标注，作为文本 reasoning 数据。&lt;/p&gt;
&lt;h4&gt;Prefix Attention Mask&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 作者把序列拆成两个 block：$[o,l,s]$ 是输入 prefix，$[o^{goal},r,a^{chunk}]$ 是待生成 block。每个 block 内采用 full bidirectional attention，但前一个 block 不能看后一个 block。这样生成 block 内不同模态可以互相 attend，同时 prefix 的 key/value 可以跨 denoising step 复用。&lt;/p&gt;
&lt;h4&gt;KV Caching&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; dLLM-Cache 的观察是：相邻 denoising step 的 key、value 和 attention output 变化通常较小。因此 dVLA 不必每一步都完全重算，而是低频刷新缓存。它是 inference-only 的 plug-and-play 优化，不改变训练目标。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;统一 masked diffusion loss&lt;/h4&gt;
&lt;p&gt;$$
\mathcal{L}&lt;em&gt;{\text{unify}}(\theta)
=-\mathbb{E}&lt;/em&gt;{t,x_0,x_t}\left[
\frac{1}{L}\sum_{i=1}^{L}
\mathbf{1}[x_t^i=\text{[MASK]}]
\log p_\theta(x_0^i\mid x_t)
\right].
$$&lt;/p&gt;
&lt;p&gt;其中：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;$x_0$ 是未破坏的多模态 ground truth 序列；&lt;/li&gt;
&lt;li&gt;$x_t$ 是在 diffusion timestep $t\in[0,1]$ 上随机 mask 后的序列；&lt;/li&gt;
&lt;li&gt;$L$ 是序列总长度；&lt;/li&gt;
&lt;li&gt;$\mathbf{1}[\cdot]$ 只让 mask 位置贡献 loss；&lt;/li&gt;
&lt;li&gt;$p_\theta$ 是 dVLA 对原始 token 的预测分布。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这个目标的关键不是“mask”本身，而是 mask 可以跨模态发生：一次样本中既可能要求恢复视觉子目标，也可能要求恢复文本或动作。模型因此被迫学习这些模态之间的条件关系，而非只学习从观测到动作的单向映射。&lt;/p&gt;
&lt;h4&gt;动作与子目标的条件关系&lt;/h4&gt;
&lt;p&gt;可以将推理过程概括为：&lt;/p&gt;
&lt;p&gt;$$
p(a^{chunk},r,o^{goal}\mid o,l,s)
\approx
p(o^{goal},r,a^{chunk}\mid o,l,s;\theta).
$$&lt;/p&gt;
&lt;p&gt;这里不是论文额外提出的独立概率分解，而是对其统一序列建模的解释：visual CoT、textual CoT 与 action chunk 在同一条件上下文下被联合恢复。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 训练时先构造包含 observation、instruction、state、未来 subgoal image、reasoning text 和 action chunk 的序列，再从不同模态随机 mask token。视觉 subgoal 的目标时间在 $[0.9C,1.1C]$ 中均匀采样，其中 LIBERO 的 chunk length $C=5$，真实任务 $C=50$；图像统一缩放到 $256\times256$，并对视觉生成使用 classifier-free guidance，scale 为 3.5。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 作者沿用 MMaDA 的 finetuning pipeline，在 LIBERO 数据与 1,100 条真实轨迹上训练。LIBERO 每个 suite 有 10 个任务、每个任务 50 条人类遥操作示范；真实数据分配为 bin picking 600 条、open box 100 条、hang cups 200 条、pick-and-place 200 条。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 推理时输入当前图像、语言指令和状态，把 visual subgoal、textual subgoal、action chunk 的位置初始化为 mask，然后进行多轮 iterative denoising。得到的视觉与文本 CoT 不是单独展示用的解释，而是 action token 生成的条件上下文；action de-tokenizer 再将 FAST token 还原为连续动作并执行。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Prefix Mask + KV Cache 将 LIBERO 的速度从 1.3 actions/s 提升到 2.9 actions/s，将真实 bin-picking / hang-cups 的速度从 1.5 Hz 提升到 3 Hz，性能仅有小幅下降。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;论文页面、正文和参考资料中没有提供官方 GitHub repository、训练脚本或可复现实验配置，因此本节不虚构代码行为。&lt;strong&gt;【Paper】&lt;/strong&gt; 可以确认的实现线索只有：模型初始化自 MMaDA，动作 tokenizer 使用 FAST，缓存策略参考 dLLM-Cache，文本 reasoning 标注使用 SEED-1.5VL。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这意味着读者目前只能按论文描述复现数据格式、token 词表扩展和 attention block 设计，无法核对诸如 optimizer、batch size、mask ratio、denoising step 数量和 checkpoint 结构等工程细节；这些细节在论文中未明确说明。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://arxiv.org/html/2509.25681v1/figures/task_suite.png&quot; alt=&quot;dVLA 的真实 Franka 设置与任务套件（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 仿真使用 LIBERO 四个 suite，每个 suite 10 个任务、每个任务 50 条示范；评价总计 500 次 trial。真实实验使用 7-DoF Franka、两台外置 ZED 相机和一台 Realsense 435i wrist camera，四类任务共 1,100 条训练轨迹，每个方法每个任务测试 10 次。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://arxiv.org/html/2509.25681v1/libero_examples2.png&quot; alt=&quot;LIBERO 中的生成 Visual CoT 与实际执行结果（论文 Figure 4）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; dVLA 在 LIBERO 四个 suite 的成功率为：Spatial 97.4%、Object 97.9%、Goal 98.2%、Long 92.2%，平均 96.4%。这比 vanilla dVLA 的 89.8% 高 6.6 个百分点，也超过 Discrete Diffusion VLA 的 96.3% 和 OpenVLA-OFT（Discrete）的 95.5%。&lt;/p&gt;
&lt;p&gt;| 方法                    |  Spatial |   Object |     Goal |     Long |     平均 |
| ----------------------- | -------: | -------: | -------: | -------: | -------: |
| Diffusion Policy        |     78.3 |     92.5 |     68.3 |     50.5 |     72.4 |
| GR00T-N1                |     94.4 |     97.6 |     93.0 |     90.6 |     93.9 |
| $\pi_0$                 |     96.8 |     98.8 |     95.8 |     85.2 |     94.2 |
| OpenVLA-OFT（Discrete） |     96.2 |     98.2 |     95.6 |     92.0 |     95.5 |
| Discrete Diffusion VLA  |     97.2 |     98.6 |     97.4 |     92.0 |     96.3 |
| &lt;strong&gt;dVLA&lt;/strong&gt;                | &lt;strong&gt;97.4&lt;/strong&gt; | &lt;strong&gt;97.9&lt;/strong&gt; | &lt;strong&gt;98.2&lt;/strong&gt; | &lt;strong&gt;92.2&lt;/strong&gt; | &lt;strong&gt;96.4&lt;/strong&gt; |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 真实 Franka 结果为 Bin Picking 7/10、Open Box 5/10、Hang Cups 7/10、Pick&amp;#x26;Place Object 7/10，总计 26/40，平均成功率 65%。GR00T 的总成绩为 19/40，Diffusion Policy 与 OpenVLA 均为 14/40。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 多模态 CoT 是最关键的消融：真实任务上 vanilla dVLA 为 21/40（52.5%），加入 visual + textual CoT 后升至 26/40（65%），绝对提升 12.5 个百分点；LIBERO 上则从 89.8% 升到 96.4%。作者观察到，bin-picking 中 vanilla dVLA 常把夹爪预测到两个物体之间，而显式的视觉子目标和文本子任务能把抓取对象与后续动作约束到一起。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 加速消融如下：&lt;/p&gt;
&lt;p&gt;| 配置                   | LIBERO Spatial | LIBERO Object | 真实 Bin Picking | Hang Cups |                  速度 |
| ---------------------- | -------------: | ------------: | ---------------: | --------: | --------------------: |
| Full Attention         |           97.4 |          97.9 |             7/10 |      8/10 | 1.3 actions/s；1.5 Hz |
| Prefix Mask + KV Cache |           96.9 |          97.3 |             7/10 |      7/10 |   2.9 actions/s；3 Hz |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 加速配置的代价主要是约 0.5 个百分点的 LIBERO 下降和一个真实 Hang Cups trial 的波动，但吞吐接近翻倍。对于闭环机器人，这一交换通常比单纯追求离线 success rate 更有价值，因为更高频的观测更新可以减少执行漂移。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; dVLA 在长时程 bin-picking 中需要反复选择并转移 3–5 个随机物体；作者报告模型生成的失败 Visual CoT 也会与真实失败结果对齐，例如物体卡在夹爪与盒沿之间，或机械臂朝错误方向移动。这说明模型不仅能预测“理想未来”，还会把某些动作后果映射到未来视觉状态。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这更接近一个弱形式的 action-conditioned world model，而不是纯粹的解释性热图。不过论文没有单独设计物理预测指标，也没有证明这种失败预测能被在线规划器利用，因此应把它视为有启发性的观察，而不是已经验证的世界模型能力。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; dVLA 的收益可以拆成三个互补因素：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;共享表示&lt;/strong&gt;：视觉、文本和动作都经过离散化，模型可以在同一 token 级表示中传递约束。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;显式未来状态&lt;/strong&gt;：subgoal image 给动作预测增加了“执行后场景应该长什么样”的约束，减少只看当前图像的局部贪心。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;计划与控制同目标&lt;/strong&gt;：textual CoT 和 action chunk 同时作为 mask 位置恢复，文本计划不再是单独模型生成后再交给控制器。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 真正的新意是把 multimodal CoT 作为统一 diffusion sequence 的一部分，而不是把视觉预测、语言推理、动作策略串成三个独立模型。Prefix Mask 和 KV Cache 则是为这一统一范式补上实时部署所需的系统优化。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;| 路线         | 推理对象               | 训练目标                       | 主要风险                 |
| ------------ | ---------------------- | ------------------------------ | ------------------------ |
| 传统 VLA     | 观测到动作             | VLM 特征 + action head         | 缺少显式中间状态         |
| 文本 CoT VLA | 文本计划 + 动作        | 文本 next-token 与动作目标分离 | 计划与执行错位           |
| 世界模型 VLA | 未来图像 / 状态 + 动作 | 常见为分离的生成与控制损失     | 生成模型与控制器接口复杂 |
| &lt;strong&gt;dVLA&lt;/strong&gt;     | 视觉、文本、动作 token | 统一 masked discrete diffusion | denoising 成本较高       |&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 方法依赖以下假设：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;未来 subgoal image 在动作 chunk 时间尺度上足够稳定，能成为有效的中间监督；&lt;/li&gt;
&lt;li&gt;FAST 离散化不会丢失关键的接触与精细控制信息；&lt;/li&gt;
&lt;li&gt;真实任务的文本 reasoning 标注（尤其是 SEED-1.5VL 自动生成的分段）与动作因果关系足够一致；&lt;/li&gt;
&lt;li&gt;多模态 token 的联合 denoising 能学到跨模态约束，而不是只利用最容易的模态完成 loss。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 作者没有单独列出 limitation 小节，但明确承认 multimodal CoT 会增加 inference cost，因此需要 Prefix Attention Mask 与 KV Caching。论文也只在有限的 LIBERO 与四类 Franka 任务上验证，尚未证明对更多机器人 embodiment 或更长任务 horizon 的可迁移性。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;数据成本与标注依赖&lt;/strong&gt;：视觉 subgoal 需要未来帧，文本 CoT 对长任务还依赖额外的 video segmentation 标注；这比普通行为克隆需要更复杂的数据管线。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;推理延迟仍高&lt;/strong&gt;：加速后约 3 Hz，适合当前实验的慢速桌面操作，但对快速接触、动态物体或高频力控仍可能不够。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;实验规模有限&lt;/strong&gt;：真实结果每个任务只有 10 次测试，65% 与 70% 这类比例的统计不确定性较大；论文没有置信区间或跨随机种子的方差。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;缺少代码复现&lt;/strong&gt;：没有官方仓库，读者无法核对 mask ratio、denoising steps、优化器、batch size 等关键实现细节。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;“预测失败”尚未闭环利用&lt;/strong&gt;：论文展示了失败 Visual CoT，但没有让规划器据此主动拒绝或修正危险动作，因此安全性结论仍是观察性证据。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; dVLA 给 VLA 研究的启发不是“所有东西都应该离散化”，而是应认真选择一个能同时容纳计划、未来状态和动作的训练接口。对后续工作，我认为有三条值得推进：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;从 CoT 到可验证计划&lt;/strong&gt;：把 visual subgoal 与可执行约束、碰撞检测或 affordance score 结合，让模型生成的未来不只是像素预测，而能被规划器检查。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;自适应模态预算&lt;/strong&gt;：简单任务跳过 textual CoT，长任务保留完整 MM-CoT；还可以根据不确定性动态决定 denoising steps 和缓存刷新频率。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;统一 token 与连续控制的混合架构&lt;/strong&gt;：离散 token 擅长跨模态语义和长时程结构，连续 diffusion / flow matching 擅长接触细节。更实际的方向可能是让 dVLA 负责 subgoal 与粗动作，再由局部连续控制器完成最后几厘米。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;如果 dVLA 的失败 Visual CoT 能被转化为可计算的风险预测，它就可能从“会解释动作的 VLA”进一步变成“执行前会检查动作后果的 VLA”。这也是统一生成目标最值得验证的下一步。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/65089776_p0_master1200.5c1kl2nzfo.webp"/><enclosure url="https://pic.hana0721.top/65089776_p0_master1200.5c1kl2nzfo.webp"/></item><item><title>DUST 论文精读：双流扩散增强 World-Model VLA</title><link>https://agusexp25.top/blog/paper-deep-dive-dust</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-dust</guid><description>精读 DUST：用双流 MMDiT、解耦噪声与异步采样，把未来视觉状态建模融入 VLA，并在仿真、真实机器人和跨 embodiment 数据上验证。</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;论文名称&lt;/strong&gt;：《Dual-Stream Diffusion for World-Model Augmented Vision-Language-Action Model》&lt;br&gt;
&lt;strong&gt;作者&lt;/strong&gt;：John Won、Kyungmin Lee、Huiwon Jang、Dongyoung Kim、Jinwoo Shin（KAIST、RLWRLD）&lt;br&gt;
&lt;strong&gt;会议 / 期刊&lt;/strong&gt;：ICML 2026  ￼&lt;br&gt;
&lt;strong&gt;论文链接&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2510.27607&quot;&gt;arXiv:2510.27607&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;项目主页&lt;/strong&gt;：&lt;a href=&quot;https://periphanes.github.io/dust&quot;&gt;periphanes.github.io/dust&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;代码&lt;/strong&gt;：项目页截至本文撰写时标注为 “Code (Coming Soon)”，因此没有可核对的官方实现。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-dust/concept-joint.szorxxiqk.webp&quot; alt=&quot;统一联合扩散、因果扩散与 DUST 双流扩散的对比（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 现有 world-model augmented VLA 要么把动作和视觉强行放进同一扩散流，要么只允许单向条件依赖。DUST（&lt;strong&gt;DU&lt;/strong&gt;al-&lt;strong&gt;ST&lt;/strong&gt;ream diffusion）保留两条独立 token 流，只在共享 attention 中交换信息，并为两种模态使用独立噪声和不同采样频率。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;用 multimodal diffusion transformer（MMDiT）构造 action stream 与 future-vision stream 的双流架构：共享跨模态注意力，其他层保持模态专属路径。&lt;/li&gt;
&lt;li&gt;提出 decoupled diffusion training：动作和未来图像 embedding 分别采样噪声时间步，以一个解耦 flow-matching loss 联合优化。&lt;/li&gt;
&lt;li&gt;提出 asynchronous joint sampling：视觉 token 可比动作 token 使用更多 Euler 步数，形成可调节的 test-time scaling。&lt;/li&gt;
&lt;li&gt;在 RoboCasa、GR-1 和 Franka Research 3 上评测，并验证 action-free video 预训练与 robot-human 混合数据联合训练的迁移能力。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 标准 VLA 通过冻结或大规模预训练的 VLM 提供视觉—语言语义，再由 diffusion policy 预测动作；它擅长指令跟随，却没有显式表示“动作将如何改变场景”。world-model augmented VLA 试图同时预测动作和未来观测，使策略学习潜在动力学。&lt;/p&gt;
&lt;p&gt;两条已有路线各有代价：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Unified joint diffusion&lt;/strong&gt;：把 action token 与视觉 token 拼接后统一去噪。动作是低维、时间平滑的轨迹，视觉 embedding 却高维且有空间结构，单一统计空间会造成 modality gap。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Causal diffusion&lt;/strong&gt;：为动作和世界模型使用独立网络，并用预测的未来状态单向条件动作。模态专长更清晰，但信息不能反向流动，难以同时利用 inverse dynamics 与 forward dynamics。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; DUST 的定位不是增加一个额外预测头，而是把“共享知识”和“模态特异性”放在同一 Transformer 的不同路径中：共享 attention 负责对齐，独立 AdaLN、DiT block 负责保留各自的噪声和输出几何。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-dust/concept-causal.3d5j4kxhav.webp&quot; alt=&quot;三种 world-model augmented VLA 结构（论文 Figure 1，因模态拆分分别裁切）&quot;&gt;&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 每条示教轨迹包含任务指令 $I$ 和序列 ${(O_t,A_t)}_{t=0}^{L}$。观测 $O_t=(o_t^v,o_t^s)$ 由视觉观测与机器人 proprioceptive state 组成，动作按 chunk 分组：&lt;/p&gt;
&lt;p&gt;$$
A_t=(a_t,\ldots,a_{t+k-1})
$$&lt;/p&gt;
&lt;p&gt;模型在当前视觉、指令和状态条件下预测动作 chunk，同时预测执行该 chunk 后的未来视觉 embedding：&lt;/p&gt;
&lt;p&gt;$$
\pi_\theta(A_t,\tilde o_{t+k}\mid o_t^v,o_t^s,I).
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; DUST 不直接重建 RGB。未来目标 $\tilde o_{t+k}$ 来自 VLM 的视觉编码器；实验中每张图先得到 256 个 SigLIP-2 token，再经 $2\times2$ average pooling 压到 64 个 token。扩散模块最终处理 1 个 state token、16 个 action token 和 64 个 future-vision token。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-dust/architecture.7p4cc4gsnd.webp&quot; alt=&quot;DUST 双流 MMDiT 架构：冻结 VLM 条件、共享 attention 与模态专属 DiT（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 冻结的 Eagle-2 VLM 从当前图像和指令提取语义特征 $\Phi_t$，扩散模型接收 $(o_t^s,A_t^{\tau_A},\tilde o_{t+k}^{\tau_o})$。每个 MMDiT block 将两条流仅在 cross-modal attention 处拼接，之后重新拆开；末端的 modality-specific DiT block 分别完成视觉语义重建和动作精修。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;p&gt;| 模块 | 输入 | 输出 | 作用 |
| --- | --- | --- | --- |
| Frozen VLM（Eagle-2） | 当前 RGB、任务指令 | $\Phi_t$ | 提供高层语义条件；论文使用第 12 层特征 |
| Action stream | 状态 token、16 个加噪动作 token | $V_\theta^A$ | 学习低维、时序平滑的控制轨迹 |
| Vision stream | 64 个加噪未来图像 embedding token | $V_\theta^o$ | 预测动作执行后的语义场景状态 |
| Shared MMDiT | 两条 token 流 | 更新后的两流表示 | 在 cross-modal attention 中交换信息 |
| AdaLN | 各自的 $(\tau_A,\tau_o)$ | 模态条件 | 让两条流感知不同噪声等级 |
| Modality-specific DiT | 各自的共享层输出 | 动作/视觉速度场 | 最后阶段恢复模态专属建模能力 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 扩散主干由 12 个 MMDiT blocks 和每个模态 4 个 DiT blocks 组成；VLM 特征以交错 self-attention / cross-attention 方式注入。&lt;br&gt;
&lt;strong&gt;【Analysis】&lt;/strong&gt; 视觉流并非为了生成可直接观看的 RGB，而是作为动作生成的“可预测后果”表示；这解释了为什么语义 embedding 比像素 latent 更适合控制。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;p&gt;独立采样 $(\tau_A,\tau_o\in[0,1])$ 和高斯噪声 $(\epsilon_A,\epsilon_o)$：&lt;/p&gt;
&lt;p&gt;$$
A_t^{\tau_A}=\tau_A A_t+(1-\tau_A)\epsilon_A,
\qquad
\tilde o_{t+k}^{\tau_o}=\tau_o\tilde o_{t+k}+(1-\tau_o)\epsilon_o.
$$&lt;/p&gt;
&lt;p&gt;其中 $\tau=0$ 对应纯噪声，$\tau=1$ 对应干净目标。网络预测速度场 $V_\theta=[V_\theta^A,V_\theta^o]$，分别用：&lt;/p&gt;
&lt;p&gt;$$
\mathcal L_A=\mathbb E\left[\left|V_\theta^A-(A_t-\epsilon_A)\right|^2\right],
$$&lt;/p&gt;
&lt;p&gt;$$
\mathcal L_{WM}=\mathbb E\left[\left|V_\theta^o-(\tilde o_{t+k}-\epsilon_o)\right|^2\right].
$$&lt;/p&gt;
&lt;p&gt;联合目标是：&lt;/p&gt;
&lt;p&gt;$$
\mathcal L_{Joint}=\mathcal L_A+\lambda_{WM}\mathcal L_{WM}.
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 主实验取 $\lambda_{WM}=1.0$，即动作和 world-modeling 等权。独立噪声使模型看到“干净未来 + 全噪声动作”（偏 inverse dynamics）以及“干净动作 + 噪声未来”（偏 forward dynamics）等组合，从而学习双向因果关系。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 训练时冻结 Eagle-2 VLM，只从数据中取当前状态、动作 chunk 和执行后的未来图像 embedding；扩散主干随机初始化。RoboCasa 使用每任务 100/300/1000 demos，GR-1 使用 300/1000 demos，Franka Research 3 的 7 个真实任务各收集 60 条 teleoperation 示教。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 推理从 $A_t^0\sim\mathcal N(0,I_A)$ 和 $\tilde o_{t+k}^0\sim\mathcal N(0,I_v)$ 开始。动作使用 $N_A$ 步，视觉使用 $N_o=qN_A$ 步；视觉每个细粒度步都更新，动作每 $q$ 步更新一次：&lt;/p&gt;
&lt;p&gt;$$
\tilde o^{\tau_o+\Delta\tau_o}=\tilde o^{\tau_o}+V_\theta^o\Delta\tau_o,
$$&lt;/p&gt;
&lt;p&gt;$$
A^{\tau_A+\Delta\tau_A}=A^{\tau_A}+V_\theta^A\Delta\tau_A
\quad\text{(每 $q$ 个视觉步执行一次)}.
$$&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-dust/diffusion-steps.7axwl98i0s.webp&quot; alt=&quot;异步 vision-action joint sampling：视觉步数可多于动作步数（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 主实验使用 $q=1,N_A=N_o=4$，因此与基线公平；$q&gt;1$ 是可选的“精度旋钮”，不是必须的在线控制步骤。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方项目页显示 Code 为 “Coming Soon”，论文也没有给出可下载的 DUST 仓库、配置或 checkpoint。因此本文不能对模型定义、DataLoader、优化器和推理脚本做逐文件核对。论文只说明实现基于 GR00T-N1.5 codebase，并重新实现了没有官方代码的 FLARE baseline；这些信息属于论文附录，而非可运行的 DUST 官方实现。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-dust/real-tasks.6f1f5sytmp.webp&quot; alt=&quot;Franka Research 3 真实任务：4 个 pick-and-place、1 个 insertion、2 个 tool-use（论文 Figure 4）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;RoboCasa&lt;/strong&gt;：24 个单臂厨房任务，覆盖 8 个 pick-and-place、6 个开关门/旋钮 contraption、10 个其他任务。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;GR-1&lt;/strong&gt;：24 个 humanoid tabletop 任务，含 18 个 pick-and-place 和 6 个 articulated 任务。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Real world&lt;/strong&gt;：Franka Research 3，7-DoF，状态和动作由关节位置与二值夹爪组成；7 个任务各 60 条 teleoperation demos。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;对比方法&lt;/strong&gt;：GR00T-N1.5、重实现的 FLARE、(pi_0)、(pi_0)-FAST，以及在部分数据规模下的 PAD/VPP。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 关键平均成功率如下（单位：%）：&lt;/p&gt;
&lt;p&gt;| Benchmark / 数据量 | GR00T-N1.5 | + FLARE | + DUST | DUST 增益 |
| --- | ---: | ---: | ---: | ---: |
| RoboCasa / 100 demos | 41.7 | 44.6 | &lt;strong&gt;50.1&lt;/strong&gt; | +8.4 vs GR00T |
| RoboCasa / 300 demos | 45.0 | 55.3 | &lt;strong&gt;58.5&lt;/strong&gt; | +13.5 vs GR00T |
| RoboCasa / 1000 demos | 50.8 | 64.6 | &lt;strong&gt;66.3&lt;/strong&gt; | +15.5 vs GR00T |
| GR-1 / 300 demos | 20.3 | 33.7 | &lt;strong&gt;36.0&lt;/strong&gt; | +15.7 vs GR00T |
| GR-1 / 1000 demos | 30.8 | 36.3 | &lt;strong&gt;42.0&lt;/strong&gt; | +11.2 vs GR00T |
| Franka Research 3 / 7 tasks | 46.5 | 49.5 | &lt;strong&gt;59.9&lt;/strong&gt; | +13.4 vs GR00T |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; RoboCasa 100 demos 下 DUST 的 50.1% 平均成功率超过 FLARE 5.5 个百分点；真实机器人平均 59.9%，比 GR00T-N1.5 高 13.4 个百分点、比 FLARE 高 10.4 个百分点。4 步去噪约 40Hz，32 步仍约 8Hz。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在 RoboCasa 100 demos/task 上：&lt;/p&gt;
&lt;p&gt;| 配置 | 平均成功率 |
| --- | ---: |
| DiT + joint noise | 38.0 |
| DiT + decoupled noise | 42.5 |
| MMDiT + joint noise | 38.2 |
| &lt;strong&gt;MMDiT + decoupled noise（DUST）&lt;/strong&gt; | &lt;strong&gt;50.1&lt;/strong&gt; |&lt;/p&gt;
&lt;p&gt;去掉双流结构下降约 8 个百分点，去掉 decoupled noise 下降约 12 个百分点，说明两者互补。MMDiT 深度在 12 层时最好（50.1%）；$\lambda_{WM}$ 在 0.5–2.0 区间较稳定，偏离到 0.2 时降至 34.3%。SigLIP-2、DINOv2、Flux.1 VAE 三种目标的平均成功率分别为 50.1%、51.6%、49.1%，像素重建能力更强的 VAE 并未带来更好的控制。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;异构联合训练&lt;/strong&gt;：在 RoboCasa 300 demos 基础上加入 GR-1 300 demos 和 46k episodes 的 EgoDex（MANO hand pose retarget 到 Fourier hands），DUST 平均成功率从 58.5% 提升到 64.4%；GR00T-N1.5 从 45.0% 到 46.9%，FLARE 从 55.3% 到 57.6%。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;action-free video 预训练&lt;/strong&gt;：先用 BridgeV2 仅优化 world-modeling loss，再用 RoboCasa 100 demos 微调，DUST 从 50.1% 提升到 58.5%。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;test-time scaling&lt;/strong&gt;：固定动作 4 步，把视觉步数 (N_o) 提到 16/32/64；RoboCasa 1000 demos 的平均成功率从 66.3% 升到 69.7%，GR-1 1000 demos 在 32 步达到 47.1%，相对 4 步高 5.1 个百分点，但并非单调增加。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; DUST 的收益可以拆成三个机制：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;未来视觉 embedding 给动作流一个“结果空间”监督，迫使策略表示动作—状态转移，而不是只拟合当前帧到关节轨迹的相关性。&lt;/li&gt;
&lt;li&gt;双流让视觉的高维空间结构和动作的低维时序结构分别处理，同时通过共享 attention 传递互相需要的信息。&lt;/li&gt;
&lt;li&gt;独立噪声把 forward dynamics 和 inverse dynamics 训练样本混在同一个目标中；异步采样又把额外算力集中到更需要迭代的视觉流。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 真正的新意是“解耦但可通信”：不是简单地把两个 head 并列，也不是把所有 token 直接拼接，而是在 attention 层共享、在噪声条件和末端去噪层分离。&lt;strong&gt;【Analysis】&lt;/strong&gt; 这使架构设计、训练分布和推理算力分配三者保持一致。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;| 方法 | 模态结构 | 信息流 | 噪声/采样 |
| --- | --- | --- | --- |
| Joint diffusion | 单流 | 双向但模态混杂 | 通常同步 |
| Causal diffusion / FLARE | 多模型 | 单向条件 | 模态专属但耦合较弱 |
| &lt;strong&gt;DUST&lt;/strong&gt; | 双流 MMDiT | attention 双向交换 | 训练独立噪声，推理异步步长 |&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; DUST 依赖几个未被完全消除的假设：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;VLM 的语义 embedding 足以表达控制相关的未来状态，且不需要像素级细节。&lt;/li&gt;
&lt;li&gt;当前 Eagle-2 特征和 SigLIP-2 目标之间存在稳定的可学习对应关系。&lt;/li&gt;
&lt;li&gt;一个固定的未来时刻 (t+k) 足以提供有用的动力学信号；更长时域的误差传播没有被单独建模。&lt;/li&gt;
&lt;li&gt;不同机器人和人手数据经过 retarget 后，可以在共享视觉世界模型中对齐。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文指出异步采样的收益存在非单调性：确定性 Euler/ODE 采样虽然减少截断误差，却可能累积梯度近似误差；因此 (N_o=64) 并不总是优于 32。额外视觉步数也会增加延迟，不能无条件用于高频闭环控制。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;官方代码和 checkpoint 尚未公开，社区无法复现实验，也无法确认论文中“基于 GR00T codebase”的具体工程改动。&lt;/li&gt;
&lt;li&gt;未来视觉 embedding 是单个 horizon 的目标，可能遗漏接触瞬间、遮挡和多步不确定性；论文没有报告更长 horizon 或多模态未来分布的系统实验。&lt;/li&gt;
&lt;li&gt;所有主实验冻结 VLM，DUST 的收益与“更强的联合视觉—语言—动作预训练”之间的关系尚未被隔离。&lt;/li&gt;
&lt;li&gt;真实实验使用同一 Franka embodiment 的示教和测试；跨硬件零样本迁移仍主要由异构训练实验间接支持。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; DUST 给后续 VLA 研究留下三条可操作的路线：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;把世界模型当作训练时的结构化正则&lt;/strong&gt;：不一定要在部署时生成可视化视频，只要预测一个与控制相关的 latent state，就可能获得更好的数据效率。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;按模态分配 test-time compute&lt;/strong&gt;：动作、深度、触觉和视觉 token 的最优采样步数不同，统一的 diffusion step budget 并不合理；异步采样可推广到多传感器策略。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;先学世界、再学动作&lt;/strong&gt;：action-free video 预训练的 8.4 个百分点增益说明，廉价视频可以先提供场景变化先验，再用少量机器人示教学习 embodiment-specific action decoder。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;一个值得继续验证的问题是：如果将未来目标从单一 SigLIP-2 embedding 扩展为“object-centric state + contact event + uncertainty”，双流策略是否能在插入、擦拭等接触丰富任务上继续提升？这会把 DUST 从 latent prediction head 推向真正的可查询 world model。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/72072963_p0_master1200.mo0d1wsi.webp"/><enclosure url="https://pic.hana0721.top/72072963_p0_master1200.mo0d1wsi.webp"/></item><item><title>DreamZero 论文精读：World Action Models are Zero-shot Policies</title><link>https://agusexp25.top/blog/paper-deep-dive-dreamzero</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-dreamzero</guid><description>精读 DreamZero：把 14B 视频扩散模型改造成同时预测未来视频与动作的 World Action Model，并分析其零样本泛化、跨本体迁移与 7Hz 实时控制。</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-dreamzero/dreamzero-header-v2.6t7uwglmsd.webp&quot; alt=&quot;DreamZero overview from paper Figure 1&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; DreamZero 将预训练的 Wan2.1-I2V-14B 视频扩散 backbone 改造成 World Action Model（WAM）：给定语言、视觉历史和本体状态，模型同时生成未来视频 latent 与对应动作 chunk。视频预测提供“世界会如何变化”的密集监督，动作则成为与视觉未来对齐的 inverse dynamics 输出。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;提出 14B DreamZero，使用单一 autoregressive DiT 端到端联合去噪视频和动作，在约 500 小时、7,193 条、非重复的 AgiBot 数据上训练。&lt;/li&gt;
&lt;li&gt;在 AgiBot G1 与 DROID-Franka 上实现对新环境、新物体和未见动作的 zero-shot generalization；AgiBot seen-task 平均 task progress 为 62.2%，unseen-task 为 39.5%。&lt;/li&gt;
&lt;li&gt;通过 CFG parallelism、DiT caching、Torch Compile、CUDA kernel 优化、NVFP4 量化和 DreamZero-Flash，将单 chunk 延迟从约 5.7 s 降至约 150 ms，支持约 7 Hz 闭环控制。&lt;/li&gt;
&lt;li&gt;仅用 10–20 分钟其他机器人或人类视频即可提升目标机器人未见任务表现超过 42%；用 30 分钟新本体 play data 即可把 AgiBot 预训练模型适配到 YAM。&lt;/li&gt;
&lt;li&gt;开源 DROID checkpoint、训练/推理代码和数据转换工具，仓库为 &lt;code&gt;dreamzero0/dreamzero&lt;/code&gt;。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 现有 VLA 通常从 VLM 继承语言和物体语义，因此擅长“把可乐罐移到某处”，但对训练集中没有出现过的物理运动（例如解鞋带、熨衣服）泛化较弱。原因在于静态 image-text 预训练没有显式表示连续时间中的几何、接触和动力学。&lt;/p&gt;
&lt;p&gt;传统 VLA 直接学习 $o_t,c\mapsto a_t$，要覆盖每一种 motion、环境和本体，必须反复采集任务示范。视频模型则从相邻帧中学习“动作导致的视觉变化”，天然拥有时间先验。WAM 的思路是把这两者放在同一个联合分布中：视频是可观测的未来世界状态，动作是使该未来成立的控制量。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这不是把一个 video predictor 和一个 policy head 简单拼接。联合去噪使两种 modality 共享 DiT 的中间表示，策略错误更容易被定位为“视频计划错误”或“动作未对齐”，而非一个不可解释的端到端回归误差。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 从轨迹中随机取索引 $l$，模型接收：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Observation&lt;/strong&gt;：当前帧与历史视觉帧 $o_{0:l}$，多视角图像在输入侧拼接；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Language&lt;/strong&gt;：任务指令 $c$；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Proprioception&lt;/strong&gt;：本体状态 $q_l$；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Output&lt;/strong&gt;：未来 $H$ 步视频 $o_{l:l+H}$ 与动作 $a_{l:l+H}$。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;联合策略写成：&lt;/p&gt;
&lt;p&gt;$$
\pi_0(o_{l:l+H},a_{l:l+H}\mid o_{0:l},c,q_l)
=\pi_0(o_{l:l+H}\mid o_{0:l},c,q_l)
\pi_0(a_{l:l+H}\mid o_{0:l+H},q_l).
$$&lt;/p&gt;
&lt;p&gt;这一定义把 action prediction 解释成 inverse dynamics：先预测“想要看到的未来”，再从未来视觉和状态中恢复控制命令。机器人包括双臂移动操作的 AgiBot G1 与单臂 Franka；跨本体实验使用 YAM 和人类 egocentric video。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-dreamzero/dreamzero_model.8vnnkik84g.webp&quot; alt=&quot;DreamZero model architecture from paper Figure 4&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; VAE 将视觉序列编码为 video latent，text encoder 编码指令，state encoder 编码本体状态；三者进入 autoregressive Causal DiT。DiT 使用 flow matching，同时输出 video velocity 与 action velocity，分别经 video decoder 和 action decoder 得到未来帧与动作。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;预训练视频 backbone 与最小参数扩展&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; backbone 是 Wan2.1-I2V-14B-480P。为保留 web-scale video prior，作者冻结 text encoder、image encoder 和 VAE，只新增或更新 state encoder、action encoder/decoder 及 DiT blocks；多视角机器人帧在输入侧拼成单帧，不改变 backbone 的空间结构。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;WANPolicyHeadConfig&lt;/code&gt; 的默认 &lt;code&gt;input_embedding_dim&lt;/code&gt; 与 &lt;code&gt;backbone_embedding_dim&lt;/code&gt; 均为 1536，动作头通过 &lt;code&gt;action_dim&lt;/code&gt;、&lt;code&gt;action_horizon&lt;/code&gt; 注入 DiT；DROID 配置使用相对 joint position，并过滤 idle action。&lt;/p&gt;
&lt;h4&gt;Autoregressive chunk 与注意力&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 视频按固定 $K$ 个 latent frame 的 chunk 自回归生成。当前 noisy chunk 可以 attend 到前面 clean chunks；动作 chunk 与对应视频 chunk 对齐。相比 bidirectional WAM，autoregressive 结构允许 KV cache、保留原生 FPS，并能接收任意长度视觉历史。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;CausalWanModel&lt;/code&gt; 的 &lt;code&gt;max_chunk_size&lt;/code&gt;、&lt;code&gt;num_frame_per_block&lt;/code&gt; 和 &lt;code&gt;num_action_per_block&lt;/code&gt; 控制 chunk 形状；推理函数维护正负 CFG 两套 KV cache。&lt;/p&gt;
&lt;h4&gt;闭环 KV cache&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 每执行完一个 action chunk，真实相机观测会替换 cache 中相应的预测帧。因此自回归视频不会像离线生成那样无限累积误差；同时，历史帧让 stateful policy 能处理需要记忆的任务。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;WANPolicyHead&lt;/code&gt; 在 &lt;code&gt;current_start_frame == 0&lt;/code&gt; 时创建 cache；之后把新观测编码后写入 cache，并以 &lt;code&gt;update_kv_cache=False&lt;/code&gt; 运行当前 chunk 的扩散步骤。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;p&gt;对第 $k$ 个 chunk，视频 latent $z_k^1$ 和归一化动作 $a_k^1$ 分别与高斯噪声 $z_k^0,a_k^0$ 线性插值得到：&lt;/p&gt;
&lt;p&gt;$$
z_k^{t_k}=t_kz_k^1+(1-t_k)z_k^0,\qquad
a_k^{t_k}=t_ka_k^1+(1-t_k)a_k^0.
$$&lt;/p&gt;
&lt;p&gt;其中 $t_k\in[0,1]$ 是 flow-matching timestep；同一 video chunk 内帧共享 timestep，不同 chunk 独立采样。模型 $u_\theta$ 预测联合速度，训练目标是：&lt;/p&gt;
&lt;p&gt;$$
\mathcal L(\theta)=\mathbb E\left[
\frac1K\sum_{k=1}^{K}w(t_k)\left|
u_\theta([z_k^{t_k},a_k^{t_k}];\mathcal C_k,c,q_k,t_k)-v_k
\right|_2^2\right],
$$&lt;/p&gt;
&lt;p&gt;$$
v_k=[z_k^1,a_k^1]-[z_k^0,a_k^0],\qquad
\mathcal C_k={(z_j^1,a_j^1)}_{j&amp;#x3C;k}.
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 代码在视频和动作上分别计算加权 MSE；动作项还乘以 &lt;code&gt;action_mask&lt;/code&gt; 与 &lt;code&gt;has_real_action&lt;/code&gt;，没有真实动作的 video-only 样本不会错误地监督 action head。默认 DROID 配置采用 4 个 inference timesteps，训练配置提供独立的 video/action noise 开关。&lt;/p&gt;
&lt;h4&gt;DreamZero-Flash 的解耦噪声&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-dreamzero/dreamzero-flash_noise_distribution-comparison.6bht7vkcmh.webp&quot; alt=&quot;DreamZero-Flash noise schedules from paper Figure 5&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 标准 DreamZero 让视频和动作共享 uniform timestep；少步推理时视频仍然很 noisy，却要求动作已经干净，出现 train-test mismatch。Flash 令视频 timestep 偏向高噪声（例如 $t_{video}=1-\eta,\eta\sim Beta(7,1)$），动作 timestep 仍 uniform：&lt;/p&gt;
&lt;p&gt;$$
\mathbb E[t_{video}]=0.125\quad\text{（按论文的噪声比例记法）}.
$$&lt;/p&gt;
&lt;p&gt;这样模型直接学习“从 noisy video context 预测 clean action”，4 步降到 1 步时延迟约从 350 ms 降到 150 ms，性能损失很小。额外的 action chunk smoothing 是 2× 上采样、Savitzky–Golay 滤波后再下采样。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; AgiBot 预训练约 500 小时，来自 22 个环境、7,193 episodes；平均每条 4.4 分钟、42.4 个 subtasks。DROID 用公开的异构单臂数据。两者均训练 100K steps、global batch size 128，更新 DiT 和动作相关模块，冻结 text/image encoder 与 VAE。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 训练入口由 Hydra 配置驱动，&lt;code&gt;scripts/train/droid_training.sh&lt;/code&gt; 使用 DeepSpeed ZeRO；仓库 README 的 sanity-check 默认 &lt;code&gt;max_steps=10&lt;/code&gt;，完整复现实验需显式提高步数。代码支持 LoRA，但论文报告 LoRA 效果不如更新全部可训练模块。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 推理采用异步闭环：motion controller 持续执行最近 action chunk，GPU 同时基于最新观察生成下一 chunk。AgiBot 使用 30 Hz 控制频率、48-step horizon，每 chunk 约 1.6 秒，目标是把模型延迟压到 200 ms 以下。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;socket_test_optimized_AR.py&lt;/code&gt; 启动 WebSocket server，README 给出的最小部署需要 2 张 GPU；&lt;code&gt;--enable-dit-cache&lt;/code&gt; 开启缓存。代码默认 &lt;code&gt;num_inference_steps=16&lt;/code&gt;，配置可改为 4；动态 cache、TensorRT 和 NVFP4 由环境变量/硬件路径启用。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;| 论文概念          | 官方实现                                                                 | 关键观察                                                    |
| ----------------- | ------------------------------------------------------------------------ | ----------------------------------------------------------- |
| Wan 视频 backbone | &lt;code&gt;groot/vla/model/dreamzero/modules/wan_video_dit*.py&lt;/code&gt;                    | Causal DiT，40 layers、5120 hidden dim 的 14B 配置          |
| 联合动作头        | &lt;code&gt;wan_flow_matching_action_tf.py&lt;/code&gt;                                         | 同一 forward 返回 &lt;code&gt;video_noise_pred&lt;/code&gt; 与 &lt;code&gt;action_noise_pred&lt;/code&gt; |
| 数据与相对动作    | &lt;code&gt;data/dataset/lerobot*.py&lt;/code&gt;、&lt;code&gt;configs/data/dreamzero/droid_relative.yaml&lt;/code&gt; | LeRobot v2 格式；relative joint position；过滤 idle frame   |
| Flow matching     | &lt;code&gt;modules/flow_match_scheduler.py&lt;/code&gt;                                        | 训练/采样 scheduler 分离，支持 timestep weighting           |
| 闭环加速          | &lt;code&gt;socket_test_optimized_AR.py&lt;/code&gt;                                            | WebSocket、双 CFG 分支、KV cache、异步请求                  |
| Flash 噪声        | &lt;code&gt;WANPolicyHeadConfig&lt;/code&gt; 的 &lt;code&gt;decouple_video_action_noise&lt;/code&gt;                   | video Beta 偏高噪声，action 独立 uniform；以配置开关控制    |&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-dreamzero/main_eval_setting.8l0trd50uh.webp&quot; alt=&quot;AgiBot evaluation setup from paper Figure 7&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 基线为 GR00T N1.6 与 $\pi_{0.5}$，分别比较 from-scratch 和官方 pretrained checkpoint。AgiBot seen tasks 共 80 rollouts，unseen tasks 另 80；DROID-Franka 在 40 个任务上共 80 rollouts。默认测试地点、物体和摆放都与训练不同，因此重点是 OOD generalization。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-dreamzero/eval_bar_chart.2oc9kcoji4.webp&quot; alt=&quot;Seen task evaluation from paper Figure 8&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; AgiBot seen-task 平均 task progress：DreamZero 62.2%，最佳 pretrained VLA 为 27.4%，超过 2×。PnP-Easy、PnP-Hard 和 contact-rich manipulation 三类均领先；from-scratch VLA 接近零，说明只用动作监督很难从非重复数据中学到稳健映射。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-dreamzero/unseen_success_rates.73uopm0xub.webp&quot; alt=&quot;Unseen task evaluation from paper Figure 9&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; AgiBot 的 10 个训练中不存在的任务上，DreamZero 平均 39.5%，pretrained VLA 为 16.3%；“Remove Hat from Mannequin” 达 85.7%，“Shake Hands” 达 59.2%。DROID-Franka 上 DreamZero 达 49% task progress、22.5% success rate，亦高于 GR00T 的 31%/12.5% 与 $\pi_{0.5}$ 的 33%/7.5%。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 失败案例显示，DreamZero 通常忠实执行生成视频中的轨迹；失败更多来自 video prediction，而不是 action decoder 偏离视频。这给出清晰的 scaling 方向：更好的视频生成质量应直接改善策略性能，但也意味着世界模型 hallucination 会成为控制风险。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文消融了 backbone 规模、autoregressive/bidirectional 结构、数据重复度与 DreamZero-Flash。14B Wan 初始化优于 5B；autoregressive 结构动作更平滑、modality alignment 更高；相同小时数下，跨环境多样数据优于多任务重复示范。Flash 在 1 denoising step 上恢复大部分 4-step task progress。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 仓库配置明确暴露 &lt;code&gt;num_inference_timesteps&lt;/code&gt;、&lt;code&gt;decouple_video_action_noise&lt;/code&gt;、&lt;code&gt;video_noise_beta_alpha&lt;/code&gt; 和 &lt;code&gt;max_chunk_size&lt;/code&gt;，因此这些实验变量可复现；不过论文中的 AgiBot 原始 500 小时数据尚未随仓库完全公开，公开复现路径主要是 DROID。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-dreamzero/embodiment_transfer.4qs28en4x5.webp&quot; alt=&quot;Cross-embodiment transfer from paper Figure 10&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 只加入 20 分钟 YAM video 或 12 分钟人类 egocentric video（没有目标机器人动作）就能提升 AgiBot 未见任务表现超过 42%。另一条路线从 AgiBot checkpoint 出发，用 30 分钟 YAM play data 做 few-shot embodiment adaptation，同时保留 zero-shot generalization。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 视频-only transfer 的前提是任务中的视觉状态变化比关节坐标更具可迁移性；30 分钟 play data 则负责学习“同一视觉未来如何映射到新本体的关节空间”。这暗示 WAM 可将跨本体问题拆成共享 world dynamics 与轻量 embodiment interface。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 第一，视频是逐帧密集监督，长 episode 中的每个状态转移都可训练，而不是只在 episode 末端监督一个动作标签。第二，Wan2.1 已从 web video 学到物体运动、遮挡和接触的先验，机器人数据主要负责对齐本体与动作。第三，autoregressive cache 让策略看到真实历史，闭环替换帧又切断了视频预测误差的长期累积。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 真正的创新组合是：预训练 video diffusion + 单模型 joint video/action flow matching + autoregressive chunking + 面向实时控制的系统优化。单独的 video policy、inverse dynamics 或 KV cache 都不是新概念，DreamZero 的贡献在于把它们组织成可部署的 WAM。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;| 维度        | 典型 VLA             | DreamZero WAM                         |
| ----------- | -------------------- | ------------------------------------- |
| 预训练先验  | 静态图像-文本语义    | 视频时空动力学                        |
| 监督信号    | observation → action | future video + action                 |
| 数据偏好    | 重复、任务特定示范   | 异构、长时、非重复轨迹                |
| 未见 motion | 依赖动作库覆盖       | 通过视频计划组合新运动                |
| 跨本体      | 通常需要动作数据     | 可先用 video-only，再用少量 play data |
| 部署瓶颈    | token/action 解码    | 扩散迭代，需 cache/异步/Flash         |&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 方法依赖四个假设：视觉未来足以描述完成任务所需的状态；动作与视频的时间同步可靠；不同本体共享可识别的视觉动力学；视频生成质量随模型规模提升且不会产生不可检测的 hallucination。论文没有证明这些假设在触觉主导、强力控或遮挡严重任务中仍成立。&lt;/p&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文指出当前实验分别在单一本体上预训练，尚未进行真正的 multi-embodiment joint pretraining；AgiBot 约 500 小时私有数据也尚未完全开放。视频扩散的计算成本仍高，7 Hz 部署依赖多 GPU 和 NVIDIA 特定优化。作者还观察到多数失败源于视频预测错误。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;预测视频正确不等于动作可执行：视频可能违反摩擦、力矩或夹爪约束，而 action decoder 仍会忠实执行。&lt;/li&gt;
&lt;li&gt;论文主要报告 task progress，长时安全、碰撞率、恢复策略和能耗指标较少；“zero-shot”并不意味着无需部署校准。&lt;/li&gt;
&lt;li&gt;训练目标对 video/action 的损失权重与 timestep 分布敏感，代码中还存在多个硬件和环境变量，复现实验的系统工程门槛较高。&lt;/li&gt;
&lt;li&gt;14B 模型和 2-GPU server 的成本限制了边缘机器人部署；Flash 的单步去噪可能牺牲细粒度接触任务的视觉精度。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;把 action learning 改写成 future-state learning。&lt;/strong&gt; 对新任务，关键不一定是收集更多动作标签，而是让模型先学会“合理的未来长什么样”。这为触觉、力觉和 3D occupancy 等非视频 world target 留出了扩展空间。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;数据多样性可能比重复次数更重要。&lt;/strong&gt; WAM 用视频先验把异构轨迹变成可学习的动力学样本；机器人数据采集可以优先覆盖环境、物体和运动组合，而非把同一任务重复几百次。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;实时性应从训练目标一起设计。&lt;/strong&gt; DreamZero-Flash 的核心不是事后蒸馏，而是让训练噪声分布匹配少步推理。未来的 diffusion policy 评估应同时报告质量、延迟和闭环反应时间。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;跨本体接口值得模块化。&lt;/strong&gt; 共享视频世界模型、单独学习 embodiment-specific action decoder，可能比把所有机器人动作 token 混在一个大模型里更节省数据。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;评测应区分“计划错”与“执行错”。&lt;/strong&gt; DreamZero 的视频-动作对齐可提供天然诊断信号：若生成视频已偏离目标，应该改进 world model；若视频合理而动作失败，才需要改 action representation、控制器或本体适配。&lt;/li&gt;
&lt;/ol&gt;</content:encoded><h:img src="https://pic.hana0721.top/71187447_p0_master1200.13mdb6lism.webp"/><enclosure url="https://pic.hana0721.top/71187447_p0_master1200.13mdb6lism.webp"/></item><item><title>DreamVLA 论文精读：让机器人先“做梦”再行动</title><link>https://agusexp25.top/blog/paper-deep-dive-dreamvla</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-dreamvla</guid><description>精读 DreamVLA：用动态区域、深度与语义构成的未来世界知识替代整帧预测，再由结构化注意力和 Diffusion Transformer 完成逆动力学控制。</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; DreamVLA 的核心问题是：VLA 需要“向前看”，但直接生成未来 RGB 帧既昂贵又包含大量与动作无关的背景。论文把视觉-语言-动作推理改写成一个逆动力学问题：模型先从当前观测形成未来的 &lt;code&gt;world embedding&lt;/code&gt;，再用该表示预测动作序列。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-dreamvla/Pipeline.51ew1k0mmz.webp&quot; alt=&quot;DreamVLA framework overview from paper Figure 2&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; DreamVLA 让策略先预测“下一步哪些区域会动、空间几何会怎样、哪些语义仍然重要”，再把这些抽象的未来知识交给动作扩散模型；它预测的是对控制有用的未来，而不是像素本身。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文贡献可以拆成四点：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;用动态区域（dynamic region）、单目深度（depth）和 DINOv2/SAM 语义特征组成 comprehensive world knowledge forecasting。&lt;/li&gt;
&lt;li&gt;将三类 &lt;code&gt;&amp;#x3C;dream&gt;&lt;/code&gt; query 分开，并使用 block-wise structured attention 阻止它们互相读取，减少跨模态信息泄漏。&lt;/li&gt;
&lt;li&gt;用 denoising Diffusion Transformer（DiT）从 &lt;code&gt;&amp;#x3C;action&gt;&lt;/code&gt; query 的 latent 中生成多步连续动作，形成 perception–prediction–action loop。&lt;/li&gt;
&lt;li&gt;在 CALVIN、LIBERO 和 Franka 真实机器人上验证，CALVIN ABC-D 平均完成长度为 4.44，真实任务成功率为 76.7%。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 直接回归动作的 VLA 通常只学习当前观测到动作的映射，缺少显式的 look-ahead reasoning。另一类方法借助视频或图像生成器预测未来画面，但整帧预测有两个问题：背景像素带来冗余监督，生成结果未必包含“哪个物体将移动”这样的控制关键量。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; DreamVLA 处在两条路线之间：它保留统一 Transformer 的多模态融合，却把未来预测目标改成结构化知识；同时，DiT 不负责“想象画面”，只负责在 latent 条件下建模动作的条件分布。这样做把表示学习和控制解码的职责分开。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在时间步 $t$，输入包括语言指令 $l$、当前 RGB 观测 $o_t$ 和本体状态 $s_t$。统一模型 $mathcal{M}$ 通过 &lt;code&gt;&amp;#x3C;dream&gt;&lt;/code&gt; queries 生成未来世界表示：&lt;/p&gt;
&lt;p&gt;$$
\mathbf{w}_{t+n}=\mathcal{M}(l,o_t,s_t\mid\texttt{}).
$$&lt;/p&gt;
&lt;p&gt;随后预测未来知识 $\hat p_{t+n}=[\hat f_{t+n},\hat d_{t+n},\hat c_{t+n}]$，其中 $f$ 是动态区域，$d$ 是深度，$c$ 是语义特征；&lt;code&gt;&amp;#x3C;action&gt;&lt;/code&gt; query 则条件化 DiT 生成 $n$ 步动作 $\hat a_{t:t+n-1}$。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方实现 &lt;code&gt;models/dreamvla_model.py&lt;/code&gt; 的默认 action 维度为 7：6 维机械臂位姿增量加 1 维夹爪信号；&lt;code&gt;action_pred_steps&lt;/code&gt; 决定动作 chunk 长度。模型还可选 RGB、depth、trajectory、DINO 和 SAM 预测头，训练参数通过 &lt;code&gt;utils/arguments_utils.py&lt;/code&gt; 暴露。&lt;/p&gt;
&lt;p&gt;| 要素 | DreamVLA 定义 |
| --- | --- |
| Observation | RGB 图像、语言、6 维 arm state 与 2 维 gripper state |
| Vision encoder | 默认 MAE ViT；可切换 DINOv2 + SigLIP 特征 |
| Multimodal fusion | CLIP text projector、Perceiver Resampler、GPT-2 风格 Transformer |
| World knowledge | 动态区域、深度、DINOv2/SAM 语义特征 |
| Action representation | 连续 7 维 action chunk |
| Action decoder | MLP 或 DiT；论文主方法使用 Diffusion Transformer |
| Robot / datasets | CALVIN、LIBERO、DROID 预训练与 Franka 真实任务 |&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 三类输入先经过 modality-specific encoder，再与三组 &lt;code&gt;&amp;#x3C;dream&gt;&lt;/code&gt; query 和 &lt;code&gt;&amp;#x3C;action&gt;&lt;/code&gt; query 拼接到 GPT-2 风格的统一 Transformer。动态、深度、语义 query 分别产出对应的 world knowledge；action query 汇总当前与未来 latent，交给 DiT。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 数据流可以压缩成一句话：&lt;code&gt;language + RGB + proprioception → world embedding → dynamic/depth/semantic prediction → action embedding → diffusion action chunk&lt;/code&gt;。完整训练和推理步骤分别放在 4.4 与 4.5，避免把同一条流水线重复描述。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;(1) 多模态编码与 query&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 语言由 CLIP text embedding 投影；视觉帧由 MAE 获得 patch 表示并经过 Perceiver Resampler 压缩；proprioception 由线性层编码。每个时间步附加可学习 query：dynamic、depth、semantic 三类 &lt;code&gt;&amp;#x3C;dream&gt;&lt;/code&gt; query，以及动作 query。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;DreamVLA.__init__&lt;/code&gt; 中 &lt;code&gt;num_resampler_query&lt;/code&gt; 默认是 9；不同知识头默认各自拥有两组 query（当前/未来 token），&lt;code&gt;share_query=True&lt;/code&gt; 时才共享表示空间。代码同时定义 &lt;code&gt;arm_state_encoder&lt;/code&gt;、&lt;code&gt;gripper_state_encoder&lt;/code&gt; 与对应的 action projector，因此 proprioception 并非论文摘要中可忽略的附加输入。&lt;/p&gt;
&lt;h4&gt;(2) Dynamic-region forecasting&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; CoTracker 从演示视频提取随末端执行器或可动物体移动的区域，目标是预测“哪里会变”，而不是回归完整 optical flow 或未来 RGB。动态区域重建损失采用 masked reconstruction / ELBO 形式。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-dreamvla/dynamic_mask.4g58f971to.webp&quot; alt=&quot;Dynamic-region target from paper Figure 3&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 二值区域比稠密 flow 更贴近控制接口：策略只需知道动作相关区域，不必拟合每个背景像素的精确速度。消融实验中移除 dynamic-region 信号造成的性能下降最大，也支持了这个取舍。&lt;/p&gt;
&lt;h4&gt;(3) Depth 与 semantic forecasting&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; depth query 预测未来单目深度；有深度传感器时使用标注，没有时以 Depth-Anything 作为 teacher。semantic query 预测未来 DINOv2 和 SAM 特征，用对比学习保持目标区域的语义辨识度。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 对应实现是可选的 &lt;code&gt;depth_decoder&lt;/code&gt;、&lt;code&gt;dino_feat_decoder&lt;/code&gt;、&lt;code&gt;sam_feat_decoder&lt;/code&gt;。这些 decoder 都是两层 ViT &lt;code&gt;Block&lt;/code&gt; 加线性预测层；推理时可只保留 latent，不必执行像素级 decoder，从而降低延迟。代码还提供 &lt;code&gt;use_dpt_head&lt;/code&gt;，用 Depth Anything V2 的 DPT head 输出深度图。&lt;/p&gt;
&lt;h4&gt;(4) Block-wise structured attention&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-dreamvla/attention.1e9ce15plo.webp&quot; alt=&quot;Structured attention from paper Figure 4&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 每个 &lt;code&gt;&amp;#x3C;dream&gt;&lt;/code&gt; 子 query 可以读共享的图像、语言和状态 token，却不能直接读取另外两类 &lt;code&gt;&amp;#x3C;dream&gt;&lt;/code&gt; query；&lt;code&gt;&amp;#x3C;action&gt;&lt;/code&gt; query 也遵循时间因果约束。这样 dynamic 的高频运动细节不会污染 depth，semantic 也不会反向泄漏到 motion 表示。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;generate_attention_mask&lt;/code&gt; 构造显式的 $-\infty$ mask。函数按时间步分块，禁止未来块被当前块读取，并将 observation/action prediction token 与上下文 token 的可见边界单独设置；这比普通 causal mask 更具体，是论文结构化注意力在实现中的直接落点。&lt;/p&gt;
&lt;h4&gt;(5) Diffusion Transformer action head&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; action query 得到的 latent 与 world embedding 处于同一空间。论文认为简单 MLP 难以把共享 latent 中的感知预测信息转成多模态动作，因此使用 DiT 迭代去噪，将高斯噪声变成物理上连贯的动作序列。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;models/action_model/action_model.py&lt;/code&gt; 提供 &lt;code&gt;DiT-S/B/L&lt;/code&gt; 三种规模；&lt;code&gt;ActionModel.loss&lt;/code&gt; 随机采样扩散时间步，对动作 chunk 加噪并以噪声 MSE 训练。推理通过 &lt;code&gt;create_ddim(ddim_step=10)&lt;/code&gt; 使用 DDIM 采样。仓库也保留 &lt;code&gt;ActionModelFM&lt;/code&gt; 的 flow-matching 变体，但论文主实验描述的是 diffusion 版本。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;世界知识预测&lt;/h4&gt;
&lt;p&gt;$$
\hat p_{t+n}=\mathcal P(\mathbf w_{t+n})=[\hat f_{t+n},\hat d_{t+n},\hat c_{t+n}].
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; $\mathcal P$ 是三类轻量预测头的集合；$\hat f$ 标记未来动态区域，$\hat d$ 编码几何，$\hat c$ 保存高层语义。这个分解把“未来”从像素空间改写成动作相关的结构化空间。&lt;/p&gt;
&lt;h4&gt;深度损失&lt;/h4&gt;
&lt;p&gt;$$
\mathcal L_{depth}=\frac1{HW}\sum_{i,j}(\hat d^{(i,j)}-\alpha d^{(i,j)})^2,
\quad
\alpha=\frac{\sum_{i,j}\hat d^{(i,j)}d^{(i,j)}}{\sum_{i,j}(d^{(i,j)})^2}.
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; $\alpha$ 消除单目深度的全局尺度不确定性，因此监督重点是相对深度关系，而非绝对米制尺度。&lt;/p&gt;
&lt;h4&gt;语义 InfoNCE&lt;/h4&gt;
&lt;p&gt;$$
\mathcal L_{sem}=-\log\frac{\exp(\hat c_{t+n}^{\top}c_{t+n}/\tau)}{\sum_k\exp(\hat c_{t+n}^{\top}c_k/\tau)}.
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 正样本是同一未来位置的特征，空间错位特征作为负样本，$\tau$ 是温度系数。&lt;/p&gt;
&lt;h4&gt;DiT 去噪目标&lt;/h4&gt;
&lt;p&gt;$$
\mathcal L_{DiT}=\mathbb E_{\tau,\epsilon}\left|\epsilon-\epsilon_\theta(\sqrt{\bar\alpha_\tau}a+\sqrt{1-\bar\alpha_\tau}\epsilon,\tau,\mathbf c)\right|_2^2.
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; $a$ 是真实动作 chunk，$\mathbf c$ 是 action latent，$\epsilon_\theta$ 预测加入的噪声；反向扩散因此可以从随机样本恢复多种可行动作。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 训练同时优化动态区域、深度、语义和动作损失。论文报告使用 AdamW、初始学习率 $10^{-3}$、weight decay $10^{-4}$、5% warm-up、batch size 64，并在 8 张 A800 上训练 20 epochs；损失权重为 $\lambda_{dyn}=0.1$、$\lambda_{depth}=0.001$、$\lambda_{sem}=0.1$、$\lambda_{DiT}=1$。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 仓库的命令行默认值并不完全等同于论文配置（例如 &lt;code&gt;learning_rate&lt;/code&gt; 默认 $10^{-4}$、&lt;code&gt;weight_decay&lt;/code&gt; 默认 0.1），实际复现实验需要使用项目提供的配置覆盖这些默认值。代码支持 CALVIN、DROID、LIBERO 预训练/微调和 real finetune 数据加载器。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 推理时模型输入当前观测和语言，先获得 world embedding，再由 action query 条件化 DiT。未来知识 decoder 可以跳过，因为 action latent 已经承载了预测结果；DiT 从高斯噪声开始反向扩散，输出动作 chunk，并执行其中的当前步动作。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;eval_utils_calvin.py&lt;/code&gt; 与 &lt;code&gt;eval_utils_libero.py&lt;/code&gt; 调用模型得到 arm/gripper action，再将夹爪值阈值化为环境需要的离散信号。LIBERO evaluator 维护 &lt;code&gt;all_time_actions&lt;/code&gt;，用指数权重融合重叠 chunk；CALVIN evaluator 也保留可选的 action ensemble 开关。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;| 论文概念 | 官方代码位置 | 对照结论 |
| --- | --- | --- |
| 统一 VLA | &lt;code&gt;models/dreamvla_model.py::DreamVLA&lt;/code&gt; | 统一 backbone 同时产出知识与动作 latent |
| 结构化 attention | &lt;code&gt;generate_attention_mask&lt;/code&gt; | 显式 block mask，时间块之间保持因果性 |
| DiT action head | &lt;code&gt;models/action_model/action_model.py&lt;/code&gt; | DiT-S/B/L，默认 action dim=7 |
| 扩散损失 | &lt;code&gt;ActionModel.loss&lt;/code&gt; | 随机 timestep + &lt;code&gt;q_sample&lt;/code&gt; + noise MSE |
| 数据与训练 | &lt;code&gt;train.py&lt;/code&gt;, &lt;code&gt;utils/data_utils.py&lt;/code&gt; | 支持 CALVIN/DROID/LIBERO/real/OXE 路径 |
| 推理与评估 | &lt;code&gt;utils/eval_utils_calvin.py&lt;/code&gt;, &lt;code&gt;utils/eval_utils_libero.py&lt;/code&gt; | chunk 执行与可选 ensemble |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 论文把“推理时跳过 decoder”描述成设计优势，而代码中是否启用某个 decoder 由 &lt;code&gt;obs_pred&lt;/code&gt;、&lt;code&gt;depth_pred&lt;/code&gt;、&lt;code&gt;dino_feat_pred&lt;/code&gt;、&lt;code&gt;sam_feat_pred&lt;/code&gt; 等 flag 决定。因此复现时不能只看论文图，还要检查运行配置。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 仿真部分使用 CALVIN ABC-D 和 LIBERO 四个 suite；真实实验使用 Franka Panda、两台 RealSense D415（第三视角和腕部视角），覆盖 pick、place 与抽屉开关。真实任务每个任务收集 100 条 demonstration，并与 Diffusion Policy、Octo-Base、OpenVLA 比较。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-dreamvla/real_world_exp.2vfhfs9uhi.webp&quot; alt=&quot;Real-world experiment from paper Figure 6&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; CALVIN ABC-D 结果如下，指标为每个连续任务长度的成功率和平均完成长度：&lt;/p&gt;
&lt;p&gt;| 方法 | 1 | 2 | 3 | 4 | 5 | Avg. Len. |
| --- | ---: | ---: | ---: | ---: | ---: | ---: |
| OpenVLA | 91.3 | 77.8 | 62.0 | 52.1 | 43.5 | 3.27 |
| UNIVLA | 95.5 | 85.8 | 75.4 | 66.9 | 56.5 | 3.80 |
| Seer | 96.3 | 91.6 | 86.1 | 80.3 | 74.0 | 4.28 |
| VPP | 95.7 | 91.2 | 86.3 | 81.0 | 75.0 | 4.29 |
| &lt;strong&gt;DreamVLA&lt;/strong&gt; | &lt;strong&gt;98.2&lt;/strong&gt; | &lt;strong&gt;94.6&lt;/strong&gt; | &lt;strong&gt;89.5&lt;/strong&gt; | &lt;strong&gt;83.4&lt;/strong&gt; | &lt;strong&gt;78.1&lt;/strong&gt; | &lt;strong&gt;4.44&lt;/strong&gt; |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; LIBERO 的平均成功率为 92.6%，在 Spatial/Object/Goal/Long 四个 suite 上分别为 97.5/94.0/89.5/89.5；真实 Franka 任务总体成功率为 76.7%。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-dreamvla/simulation_exp.8vnnkijgcu.webp&quot; alt=&quot;Simulation results from paper Figure 7&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-dreamvla/module.5mojnuvyhj.webp&quot; alt=&quot;Ablation results from paper Figure 8&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 消融回答了几个关键问题：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;只预测 dynamic region 的收益最大；单独预测 depth、DINO 或 SAM 可能因辅助损失噪声而低于 vanilla VLA。&lt;/li&gt;
&lt;li&gt;同时预测五类知识后，移除 dynamic region 的下降最明显；移除 DINO 甚至可能略有提升，因此后续配置偏向 SAM 语义。&lt;/li&gt;
&lt;li&gt;用完整未来知识预测优于只重建当前 RGB/depth/semantic 的 auxiliary task。&lt;/li&gt;
&lt;li&gt;由 CoTracker 生成 mask 比直接预测 optical flow 更稳健。&lt;/li&gt;
&lt;li&gt;structured attention 优于 vanilla causal attention；每种知识使用独立 query 优于共享 query。&lt;/li&gt;
&lt;li&gt;每种 modality 使用 9 个 query 的效果优于 4 或 16 个，后者分别受容量不足或冗余竞争影响。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; DreamVLA 的泛化证据来自三种变化：CALVIN 的长时序组合、LIBERO 的空间/物体/目标/长程 suite，以及 Franka 的真实相机与物体变化。共同点是动作必须依赖未来状态而非单帧外观；动态区域提供的控制相关归纳偏置因此更可能跨场景复用。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 方法有效的关键不是“多加三个预测头”，而是把预测目标和动作因果链对齐。dynamic mask 直接告诉策略哪些像素将参与交互，depth 约束可达空间，semantic feature 保留目标身份；DiT 再把这些互补信号转成多模态、时间连贯的 action chunk。结构化 attention 则防止辅助任务通过共享 latent 互相污染。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;预测对象的创新&lt;/strong&gt;：从整帧未来图像转向 comprehensive yet compact world knowledge。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;信息路由的创新&lt;/strong&gt;：三类 dream query 独立建模，并以 block mask 保持表示干净。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;控制头的创新&lt;/strong&gt;：用 latent-conditioned DiT 做逆动力学，而不是让语言模型回归动作。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;系统层面的统一&lt;/strong&gt;：训练与推理都经过 perception–prediction–action loop，不依赖推理时额外调用视频生成模型。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 与直接 VLA 的区别是“先形成未来状态再动作”；与视频/子目标图像方法的区别是“预测动作相关知识而非像素”；与单独 world model 的区别是“world embedding 和 action latent 在同一端到端 Transformer 中联合优化”。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;由 CoTracker 提取的动态区域能够稳定代表动作相关区域。&lt;/li&gt;
&lt;li&gt;Depth-Anything 的 teacher 误差不会把错误几何写入 policy。&lt;/li&gt;
&lt;li&gt;DINO/SAM 特征的空间对比关系足以表达任务语义。&lt;/li&gt;
&lt;li&gt;各类知识可以通过 query 分离而不损失必要的跨模态交互。&lt;/li&gt;
&lt;li&gt;DiT 的条件 latent 包含足够信息，使推理时省略显式 decoder 仍能保持控制质量。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文指出未来工作仍需降低推理成本、探索更丰富的世界知识和更大规模真实机器人数据；现有系统依赖预训练特征提取器和离线标注流程，尚未覆盖开放环境中的所有动态因素。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 首先，动态 mask 是二值摘要，可能丢失速度、方向和接触力信息；当两个物体都在运动时，mask 也不表达哪一个运动由当前指令引起。其次，深度与 DINO/SAM 的未来监督来自 teacher 或预提取特征，teacher 的时空对齐误差会进入表示。最后，structured mask 是人为先验：若某任务需要 motion 与 semantics 的细粒度互相解释，完全切断 query-to-query edge 可能反而限制表达能力。代码层面还存在较多配置开关，论文默认设置与 argparse 默认值不一致，复现门槛并不低。&lt;/p&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; DreamVLA 给出的更一般结论是：机器人 world model 不一定要生成“看起来真实”的未来，而应生成“能改变决策”的未来。对后续研究，我认为有三条路线值得继续：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;把 dynamic mask 升级为带方向和不确定性的 object-centric motion token，同时保持紧凑性。&lt;/li&gt;
&lt;li&gt;让结构化 attention 从固定 block mask 变成可学习路由，在需要时允许 semantic→motion 的受控通信。&lt;/li&gt;
&lt;li&gt;将 DiT 的多样轨迹与安全约束、碰撞预测或视觉触觉反馈联合起来，测试 world embedding 在分布外接触任务中的可靠性。&lt;/li&gt;
&lt;/ol&gt;</content:encoded><h:img src="https://pic.hana0721.top/91341540_p0_master1200.7pw5duffp.webp"/><enclosure url="https://pic.hana0721.top/91341540_p0_master1200.7pw5duffp.webp"/></item><item><title>3D Diffusion Policy（DP3）论文精读：用稀疏点云提升少样本视觉运动泛化</title><link>https://agusexp25.top/blog/paper-deep-dive-dp3</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-dp3</guid><description>精读 RSS 2024 的 3D Diffusion Policy：从单目深度构建稀疏点云，用轻量 DP3 Encoder 条件化 Diffusion Policy，在 72 个仿真任务和 4 个真实任务中实现高效、可泛化的模仿学习。</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 3D Diffusion Policy（DP3）不再把视觉输入当作二维纹理，而是从单个深度相机恢复稀疏 3D 点云，再用很小的 PointNet 风格编码器提取 64 维几何特征，条件化动作扩散模型。论文的关键判断是：在机器人控制中，正确的 3D 几何归纳偏置比更大的视觉 backbone 更重要。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;提出把稀疏点云与 Diffusion Policy 结合的 DP3，统一覆盖高维灵巧手和低维平行夹爪控制。&lt;/li&gt;
&lt;li&gt;设计仅含三层 MLP、max-pooling、projection head 和 LayerNorm 的 DP3 Encoder，输出 64 维紧凑表示。&lt;/li&gt;
&lt;li&gt;只用单视角深度、bounding-box crop 与 farthest point sampling（FPS），在 72 个仿真任务上平均成功率 74.4%，比图像 Diffusion Policy 相对提升 24.2%。&lt;/li&gt;
&lt;li&gt;在 4 个真实任务中每个任务仅用 40 条示教，平均成功率达到 85%，并在空间、视角、外观和实例变化下保持泛化。&lt;/li&gt;
&lt;li&gt;真实部署中 DP3 的安全违规率为 0%，而图像和深度 baseline 分别为 32.5% 和 25.0%；作者同时强调这一安全观察主要是定性评估。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-dp3/teaser.8s41n2v1d9.webp&quot; alt=&quot;DP3 teaser from paper&quot;&gt;&lt;/p&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 视觉模仿学习通常从 RGB 图像回归动作，但少样本机器人控制有两个冲突：RGB 保留了丰富外观，却让模型容易记住训练视角和颜色；深度包含几何，却常以二维图像或体素形式输入，空间关系仍需网络自行推断。已有 Diffusion Policy 能表达多模态、时间相关的连续动作分布，但其视觉条件仍主要来自图像编码器。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; DP3 的问题切入点并不是提出新的 diffusion sampler，而是改变 condition 的坐标系：让网络直接看到与动作执行相同的 3D 空间。这样，训练分布外的目标位置或轻微视角变化更像点云中的平移/局部几何变化，而不是完全不同的像素模式。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 给定少量专家轨迹，学习视觉运动策略 $\pi: \mathcal{O}\mapsto\mathcal{A}$。每个时间步的观测包含单视角深度生成的点云 $P_t$ 与机器人位姿/关节状态 $q_t$，策略输出未来 $H$ 步连续动作序列 $A_t=(a_t,\ldots,a_{t+H-1})$，只执行其中前 $N_{act}$ 步后重新规划。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Observation&lt;/strong&gt;：$84\times84$ 深度图经相机内外参转为点云；裁剪工作空间后 FPS 到 512 或 1024 点。默认不使用 RGB 颜色。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Action representation&lt;/strong&gt;：仿真任务沿用各环境连续控制；真实任务使用 Franka 末端相对位置控制与 Allegro 手指相对关节角控制，动作维度为 22。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Embodiment&lt;/strong&gt;：Adroit、Bi-DexHands、DexArt、DexDeform、DexMV、HORA、MetaWorld，以及 Allegro hand 和 Franka gripper。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Objective&lt;/strong&gt;：学习条件分布 $p(A_t\mid P_{t-To+1:t},q_{t-To+1:t})$，而非单峰的动作均值。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-dp3/architecture.41ysoo3d87.webp&quot; alt=&quot;DP3 architecture from paper&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 数据流是“深度图 → 相机坐标系点云 → crop/FPS → DP3 Encoder → 3D feature，与 robot state 拼接 → Conditional U-Net Diffusion Policy → 动作序列”。训练和推理的逐步过程分别见 4.4 与 4.5。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;稀疏点云预处理&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：单帧深度和相机内外参。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;中间步骤&lt;/strong&gt;：去除桌面、地面等冗余点；在固定 bounding box 内保留工作空间；用 FPS 选择 512/1024 个点。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：$P\in\mathbb{R}^{N\times3}$（可选 RGB 时为 6 通道）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要&lt;/strong&gt;：crop 降低背景干扰，FPS 比均匀采样更稳定地覆盖 3D 空间，也减少 PointNet 的计算量。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;DP3 Encoder&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 每个点经过三层 MLP，随后用 permutation-invariant max-pooling 聚合所有点，再通过 projection head 得到 64 维几何向量 $v$；LayerNorm 交错在 MLP 中以稳定训练。机器人状态通过独立的小型 MLP 编码后与 $v$ 拼接。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;model/vision/pointnet_extractor.py&lt;/code&gt; 中的 &lt;code&gt;DP3Encoder&lt;/code&gt; 默认只取 &lt;code&gt;point_cloud[..., :3]&lt;/code&gt;，&lt;code&gt;PointNetEncoderXYZ&lt;/code&gt; 输出 64 维，状态 MLP 默认输出 64 维，最终 observation feature 为两者拼接。代码支持把 imagined robot 点云拼到输入中，但默认配置未启用。&lt;/p&gt;
&lt;h4&gt;Conditional Diffusion Policy&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 决策模块从高斯噪声动作序列开始，使用 1D Conditional U-Net 进行反向去噪。视觉特征和最近 &lt;code&gt;To=2&lt;/code&gt; 步状态作为 global condition；动作序列长度默认 &lt;code&gt;H=16&lt;/code&gt;，每次执行 &lt;code&gt;N_act=8&lt;/code&gt; 步。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;policy/dp3.py&lt;/code&gt; 在训练时将归一化动作加入噪声，在随机 diffusion timestep 上预测目标；推理时从 &lt;code&gt;torch.randn&lt;/code&gt; 初始化轨迹，调用 scheduler 的 10 步 DDIM 反向过程，再反归一化并切出 &lt;code&gt;[To-1:To-1+N_act]&lt;/code&gt; 的动作窗口。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;前向加噪与训练目标&lt;/h4&gt;
&lt;p&gt;$$
\tilde A^k=\bar\alpha_k A^0+\bar\beta_k\epsilon^k,\qquad
\mathcal L=\operatorname{MSE}\bigl(A^0,\epsilon_\theta(\tilde A^k,k,v,q)\bigr)
$$&lt;/p&gt;
&lt;p&gt;这里 $A^0$ 是示教动作序列，$\epsilon^k\sim\mathcal N(0,I)$，$k$ 是随机采样的训练时间步，$\bar\alpha_k,\bar\beta_k$ 由 noise schedule 决定。论文和默认配置使用 &lt;code&gt;prediction_type: sample&lt;/code&gt;，因此网络目标是恢复干净动作样本；若切换为 epsilon prediction，目标才是噪声本身。&lt;/p&gt;
&lt;h4&gt;反向采样&lt;/h4&gt;
&lt;p&gt;$$
A^{k-1}=\alpha_k\left(A^k-\gamma_k\epsilon_\theta(A^k,k,v,q)\right)+\sigma_k z,\quad z\sim\mathcal N(0,I)
$$&lt;/p&gt;
&lt;p&gt;其中 $\alpha_k,\gamma_k,\sigma_k$ 由 DDIM scheduler 给出。DP3 的创新不在这些系数，而在 condition $v$ 的 3D 几何质量。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方 &lt;code&gt;dp3.yaml&lt;/code&gt; 使用 AdamW（learning rate $10^{-4}$，weight decay $10^{-6}$）、batch size 128、cosine schedule、500 步 warm-up、EMA；MetaWorld 训练 1000 epochs，其他仿真和真实任务 3000 epochs。训练 timestep 为 100，默认 DDIM 在推理时取 10 步。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 策略采用 receding-horizon：每次根据最新观测生成一段动作，只执行前几步，再重新感知。这样既保留动作序列的时间一致性，也能在执行过程中纠正误差。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方仓库把实现拆为 &lt;code&gt;policy/dp3.py&lt;/code&gt;、&lt;code&gt;model/vision/pointnet_extractor.py&lt;/code&gt;、&lt;code&gt;model/diffusion/conditional_unet1d.py&lt;/code&gt;、&lt;code&gt;dataset/*_dataset.py&lt;/code&gt; 和 &lt;code&gt;config/{dp3,simple_dp3}.yaml&lt;/code&gt;。数据集返回形状为 &lt;code&gt;obs: (T, …)&lt;/code&gt;、&lt;code&gt;action: (T, Da)&lt;/code&gt; 的字典；&lt;code&gt;compute_loss&lt;/code&gt; 对每个 batch 随机采样 timestep 并屏蔽条件位置。&lt;code&gt;simple_dp3.yaml&lt;/code&gt; 是简化版本，README 报告其推理速度可达 25 FPS，精度损失不大。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 论文强调 512/1024 点足够；README 还建议在自己的任务上尝试更长的 horizon/action horizon，并优先使用 global position action。它们是工程建议，不是论文主实验的固定结论。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-dp3/real-tasks.13mil5v4tt.webp&quot; alt=&quot;Real robot benchmark from paper&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 仿真覆盖 7 个 domain、72 个任务，包含灵巧手、双手、可变形物体、铰接物体和 MetaWorld 平行夹爪；每个 seed 在训练中每 200 epochs 评估 20 episodes，报告 3 个 seed 的均值和标准差。真实实验使用单个 RealSense L515，4 个任务各 40 条人类 teleoperation 示教：Allegro hand 的 Roll-Up、Dumpling、Drill，以及 gripper 的 Pour。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;| 设置                                 |      DP3 |          Diffusion Policy |   相对变化 |
| ------------------------------------ | -------: | ------------------------: | ---------: |
| 72 个仿真任务平均成功率              | &lt;strong&gt;74.4&lt;/strong&gt; |                      59.8 | &lt;strong&gt;+24.2%&lt;/strong&gt; |
| 真实任务平均成功率（10 trials/task） | &lt;strong&gt;85.0&lt;/strong&gt; | 35.0（RGB）/20.0（Depth） |   明显提升 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 仿真中 DP3 在 Adroit、Bi-DexHands、DexArt、DexMV、HORA 和各难度 MetaWorld 上均优于图像 baseline，仅 DexDeform 与图像 policy 的差距方向相反（87.8 vs 90.5）。DP3 通常约 500 epochs 即收敛，而图像 policy 更慢或停在次优解。&lt;/p&gt;
&lt;p&gt;真实任务逐项成功率为 Roll-Up 90%、Dumpling 70%、Drill 80%、Pour 100%。这说明 3D 表示同时适用于高维 Allegro hand 和低维 gripper。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-dp3/learning-efficiency.45iemdwgib.webp&quot; alt=&quot;Learning efficiency from paper&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在 6 个任务上，完整 DP3 平均成功率为 78.3。去掉点云 crop 后降到 45.3；去掉 LayerNorm 为 73.0；使用 epsilon prediction 为 67.0；加入颜色为 72.0；将 DDIM 换成 DPM-solver++ 为 48.3。去掉 projection head 几乎不影响精度（77.7），但会增加计算量。&lt;/p&gt;
&lt;p&gt;| 点云表示/编码器                                       |             平均成功率 |
| ----------------------------------------------------- | ---------------------: |
| Point cloud + DP3 Encoder                             |               &lt;strong&gt;78.3&lt;/strong&gt; |
| Oracle state                                          |                   76.8 |
| RGB image                                             |                   40.7 |
| Depth image                                           |                   32.0 |
| Voxel                                                 |                   32.3 |
| PointNet / PointNet++ / PointNeXt / Point Transformer | 15.7 / 2.2 / 2.3 / 1.0 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 结果同时支持两点：深度信息只有在合适的 3D 表示中才真正有用；轻量编码器的归纳偏置比“更大、更通用”的预训练点云模型更适合少样本控制。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-dp3/demo-scaling.et9157l28.webp&quot; alt=&quot;Demonstration scaling from paper&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 真实实验中，DP3 在 Pour 的 5 个未见空间位置成功 4 次；在 Drill 中仅用绿色方块训练，却对 5 种颜色全部成功；把方块替换为 mouse、Espeon、cup、mug、hand 等日常物体时 5/5 成功；Roll-Up 的 3 个轻微相机视角变化也全部成功。相比之下，RGB/Depth baseline 在这些设置中大多失败。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-dp3/modalities.2dpfrhd3w5.webp&quot; alt=&quot;Different 3D modalities from paper&quot;&gt;&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 点云把“目标在图像右上角”转换成“目标位于机器人坐标系中的某个 3D 区域”，动作与观测共享坐标系；FPS 又让稀疏输入覆盖物体轮廓。于是 diffusion model 主要学习几何到动作的映射，而不是记忆颜色、纹理和相机像素布局。紧凑的 64 维 feature 还降低了 condition 维度，使少量示教足以约束动作分布。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 真正的创新是“表示选择 + 简化工程”的组合：单视角点云、crop/FPS、无颜色输入、轻量 PointNet、sample prediction 和 receding-horizon。每个组件都朴素，但共同减少了 domain nuisance，使 Diffusion Policy 在真实机器人上变得可用。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;DP3 与图像 Diffusion Policy 的主要差异是 condition modality，而非 diffusion backbone；与 voxel/implicit 3D 方法相比，它不构造稠密空间网格或昂贵的预训练 3D 表征，而是直接在点集上做 permutation-invariant 聚合。与“堆大 encoder”的路线相反，DP3 证明控制任务更需要任务对齐的几何偏置。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;相机内外参和机器人工作空间可标定，点云能转换到稳定坐标系。&lt;/li&gt;
&lt;li&gt;单个视角能看到完成任务所需的关键几何；严重遮挡时论文没有给出保证。&lt;/li&gt;
&lt;li&gt;任务动作主要由局部几何和机器人状态决定，颜色不是必要信息。&lt;/li&gt;
&lt;li&gt;训练与部署的点云质量相近；README 特别提醒低质量 D435 点云可能导致失败。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 视角泛化实验只覆盖轻微变化，较大的相机位姿变化可能难以处理；安全性结论主要是定性观察，作者没有给出理论解释。论文也未声称 DP3 解决了严重遮挡、多视角融合或任意机器人形态迁移。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 固定 bounding box 需要为每个机器人/场景重新标定；裁剪过严会丢失接触前的上下文，过松又会引入背景。点云只保留 XYZ 时，对材质、可见性和语义类别缺少区分；而真实任务的 40 条示教仍依赖昂贵 teleoperation。最后，10 步 DDIM 采样虽已实用，但长 horizon 或高维双臂动作仍可能带来延迟和误差累积。&lt;/p&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;先选坐标系，再选 backbone。&lt;/strong&gt; 如果观测和动作天然在 3D 空间中，先把表示变换到该空间，往往比换更大的视觉模型更有效。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;少样本控制应优先消除 nuisance。&lt;/strong&gt; 去掉颜色不是信息损失，而是主动让策略对外观不敏感；crop/FPS 也是数据质量控制，而非单纯压缩。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;DP3 是很好的 VLA/Policy 基线。&lt;/strong&gt; 后续工作可以把语言 embedding、触觉或历史 latent 作为额外 condition，同时保留点云几何通道。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;值得研究的方向&lt;/strong&gt;：SE(3)-equivariant 点云 encoder、自适应 crop、多相机遮挡补全、flow matching 加速，以及对安全违规率的可验证约束。&lt;/li&gt;
&lt;/ol&gt;</content:encoded><h:img src="https://pic.hana0721.top/139369087_p0_master1200.9gx5x7w6ei.webp"/><enclosure url="https://pic.hana0721.top/139369087_p0_master1200.9gx5x7w6ei.webp"/></item><item><title>Ctrl-World 论文精读：让世界模型在想象中评估和改进机器人策略</title><link>https://agusexp25.top/blog/paper-deep-dive-ctrl-world</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-ctrl-world</guid><description>精读 Ctrl-World：用多视角联合预测、位姿条件记忆检索和逐帧动作条件，把 Stable Video Diffusion 改造成可控的机器人世界模型。</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-ctrl-world/overview.7zr652gyee.webp&quot; alt=&quot;Ctrl-World policy-in-the-loop overview from paper Figure 1&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Ctrl-World 从预训练的 Stable Video Diffusion（SVD）出发，加入多视角联合预测、位姿条件的稀疏历史记忆和逐帧动作条件，让世界模型能够预测机器人动作造成的未来视觉变化；因此，一个通用 VLA policy 可以和它在想象空间中反复交互，而不必每次都真的运行机器人。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;提出面向 policy-in-the-loop 的 controllable world model：输入 DROID 的三路相机观察与 action chunk，输出空间一致的多视角未来帧。&lt;/li&gt;
&lt;li&gt;用 pose-conditioned memory retrieval 把稀疏历史帧重新引入上下文，用 frame-level action conditioning 将每个动作与对应未来帧对齐，从而缓解长时漂移和动作控制不精确。&lt;/li&gt;
&lt;li&gt;在 95,599 条轨迹、564 个场景的 DROID 数据上训练；模型可在新相机布置上零样本生成超过 20 秒的轨迹，并在 10 秒交互评测中取得更低的 FVD（97.4）。&lt;/li&gt;
&lt;li&gt;在新的 DROID 设置中，world-model rollout 能正确反映不同通用策略的 instruction-following 排名；用想象中筛选出的成功轨迹微调 π₀.₅-DROID 后，下游任务成功率从 38.7% 提升到 83.4%，平均提升 44.7 个百分点。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 论文的关键不是“给视频模型加一个动作向量”这么简单，而是同时修复了现代 VLA 的三个接口问题：它们需要多视角输入、动作通常是高频 chunk、闭环 rollout 又会把小误差不断累积。Ctrl-World 将这三个约束一起放进生成模型设计中。&lt;/p&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 真实机器人评估需要在多个任务、物体和初始状态上重复 rollout；发现失败后，传统做法还要重新收集带专家标签的数据。这个循环昂贵、缓慢，而且很难针对“陌生指令”快速迭代。动作条件视频模型提供了另一条路径：先预测动作将造成的视觉结果，再在预测世界里继续运行 policy。&lt;/p&gt;
&lt;p&gt;已有 action-conditioned world model 往往只生成单个第三人称视角，因而看不到手腕相机中的接触细节；有些模型也没有逐帧控制，无法表达“只移动 3 cm”和“移动 6 cm”的差异。单次生成看起来合理，并不代表它能接受 policy 的下一段动作并保持长时一致。Ctrl-World 的目标是把 world model 变成一个可交互的 simulator，而不只是视频预测器。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这也解释了为什么论文把 wrist-view 当成一等公民：在抓取、滑动、折叠等任务中，真正决定成败的局部接触常常只在手腕视角可见。多视角不是为了增加展示图片，而是为了减少部分可观测造成的 hallucination。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在时刻 $t$，机器人观察为：&lt;/p&gt;
&lt;p&gt;$$
o_t=[I_t^1,\ldots,I_t^N,q_t],
$$&lt;/p&gt;
&lt;p&gt;其中 $I_t^i$ 是第 $i$ 个相机的图像，$q_t$ 是机器人位姿；语言指令记为 $l$。通用 policy 输出长度为 $H$ 的 action chunk：&lt;/p&gt;
&lt;p&gt;$$
a_{t+1:t+H}\sim\pi(\cdot\mid o_t,l).
$$&lt;/p&gt;
&lt;p&gt;world model $W$ 接收当前观察和该 action chunk，预测执行每一步后的多视角观察：&lt;/p&gt;
&lt;p&gt;$$
o_{t+1:t+H}\sim W(\cdot\mid o_t,a_{t+1:t+H}).
$$&lt;/p&gt;
&lt;p&gt;将最后的预测观察 $o_{t+H}$ 送回 policy，便得到下一段动作 $a_{t+H+1:t+2H}$。反复执行这一过程，就能得到完全在想象空间中的长时轨迹。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; DROID 实验使用一个 wrist-view 和两个随机布置的 third-view 相机；每个视频帧分辨率为 $192\times320$，每个交互 chunk 对应 15 个动作、约 1 秒。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-ctrl-world/architecture.1764ilqq2o.webp&quot; alt=&quot;Ctrl-World architecture from paper Figure 2&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 模型以预训练 SVD 的时空 U-Net 为 backbone：历史多视角 latent、当前帧和加噪未来帧进入 spatial-temporal transformer；动作先被投影为每帧的条件 embedding，并与历史和未来位姿一起通过 frame-wise cross-attention 注入。整体数据流是“稀疏历史帧 + 当前多视角帧 + action/pose 条件 → 联合去噪未来多视角视频”。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方实现用 &lt;code&gt;StableVideoDiffusionPipeline&lt;/code&gt; 加载 SVD，再以 &lt;code&gt;UNetSpatioTemporalConditionModel&lt;/code&gt; 替换原始 U-Net；&lt;code&gt;CrtlWorld&lt;/code&gt;（代码中的拼写）冻结 VAE 和 image encoder，只训练带动作条件的 U-Net，并另行加载 CLIP text encoder。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;多视角联合预测&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; $N$ 个相机图像在 token 维度拼接，模型在一次 forward 中同时预测所有相机的未来帧。这样同一时刻不同视角共享 transformer 的信息，wrist-view 的接触状态可以约束 third-view 的全局结果，反过来也一样。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;Dataset_mix.__getitem__&lt;/code&gt; 从三个 camera id 读取 latent，并把每个相机的 $4\times24\times40$ latent 沿高度拼成 $4\times72\times40$；推理后再按相机拆回三路视频。代码没有把三路相机当作三个独立样本训练。&lt;/p&gt;
&lt;h4&gt;Pose-conditioned memory retrieval&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 长 rollout 中只保留最近帧会造成误差累积，全部历史又会让上下文无限增长。作者以 stride $m$ 从过去采样 $k$ 帧，并把对应的机械臂位姿通过 frame-wise cross-attention 投影到这些历史帧。未来帧也有对应的 action-derived Cartesian pose，因此模型可以用“当前要到达的位姿”检索过去相似状态，重新锚定物体和手臂的空间关系。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 它不是经典的外部向量数据库，而是把历史视觉和 pose 一起放回视频 transformer。所谓 retrieval 主要发生在注意力权重中：论文 Figure 4 展示预测 $t=4$ 秒时，模型会强关注 pose 相近的 $t=0$ 帧。&lt;/p&gt;
&lt;h4&gt;Frame-level action conditioning&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 预训练视频模型通常只接受 image/text 条件，动作只能粗粒度地影响结果。Ctrl-World 将 policy 输出的 action 转换到 Cartesian-space pose，并让未来第 $j$ 帧视觉 token 只需关注对应的第 $j$ 个 pose embedding，从而建立一一对应的时间对齐。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;Action_encoder2&lt;/code&gt; 由三层 MLP（输入 → 1024 → 1024 → 1024）组成；&lt;code&gt;frame_level_cond=True&lt;/code&gt; 时保留 $(B,T,D)$ 的时间维，关闭时才将整段动作 flatten 成一个条件。代码中的动作实际是 Cartesian pose 加 gripper，共 7 维，并按数据集统计量归一化到 $[-1,1]$。&lt;/p&gt;
&lt;h4&gt;预训练初始化与扩散目标&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 模型初始化自约 1.5B 参数的 Stable Video Diffusion。除新建的 action-projection MLP 外，其余参数沿用预训练权重；训练时对未来 latent 加噪，并以 $\hat{x}_0$ 重建干净目标。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;models/ctrl_world.py&lt;/code&gt; 中 VAE、image encoder 和 text encoder 均 &lt;code&gt;requires_grad_(False)&lt;/code&gt;，U-Net 开启 gradient checkpointing；训练脚本 &lt;code&gt;scripts/train_wm.py&lt;/code&gt; 由 Accelerate 启动，README 给出 2×8 张 A100/H100、总 batch size 64、约 2–3 天的完整训练配置。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;p&gt;给定未来视频 latent $x_0=o_{t+1:t+H}$，扩散训练在随机步 $t&apos;$ 加入高斯噪声：&lt;/p&gt;
&lt;p&gt;$$
x_{t&apos;}=\sqrt{\bar\alpha_{t&apos;}}x_0+\sqrt{1-\bar\alpha_{t&apos;}}\epsilon,
\qquad \epsilon\sim\mathcal N(0,I).
$$&lt;/p&gt;
&lt;p&gt;其中 $\bar\alpha_{t&apos;}$ 是 scheduler 的累计信号系数，$t&apos;$ 是扩散时间步，$\epsilon$ 是与 latent 同形状的噪声。网络输入由稀疏历史、当前帧和 $x_{t&apos;}$ 拼接而成，条件集合为：&lt;/p&gt;
&lt;p&gt;$$
c=[q_{t-km},\ldots,q_t, a&apos;&lt;em&gt;{t+1:t+H}, o&lt;/em&gt;{t-km},\ldots,o_t].
$$&lt;/p&gt;
&lt;p&gt;训练目标是：&lt;/p&gt;
&lt;p&gt;$$
\mathcal L=\mathbb E_{x_0,\epsilon,t&apos;}
\left|\hat{x}&lt;em&gt;0(x&lt;/em&gt;{t&apos;},t&apos;,c)-x_0\right|_2^2.
$$&lt;/p&gt;
&lt;p&gt;这里 $a&apos;$ 表示转换到 Cartesian space 的动作位姿；损失只在未来视频上计算，动作通过条件分支影响视频生成，而不是额外回归一个 action head。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这与“联合预测视频和动作”的方法不同：Ctrl-World 的 action 是外部 policy 提供的控制输入，模型学习的是 action → visual consequence 的 forward dynamics。这样才可以在推理时替换 action，观察不同动作会把世界带向哪里。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; DROID 含约 76k 条成功和 19k 条失败轨迹。训练样本随机取历史帧和未来帧：默认历史 7 帧，间隔约 1–2 秒；未来 15 个动作覆盖约 1 秒。三路相机同时预测，损失为加噪未来 latent 的 reconstruction MSE。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 数据预处理先用 &lt;code&gt;dataset_example/extract_latent.py&lt;/code&gt; 把 RGB 编码到 SVD latent，再由 &lt;code&gt;dataset_meta_info/create_meta_info.py&lt;/code&gt; 生成样本索引和 state/action 统计量。&lt;code&gt;Dataset_mix&lt;/code&gt; 会随机选择历史 stride（1 或 2），偶尔将历史间隔置零；这使模型既看到短期连续信息，也看到更稀疏的检索上下文。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 推理时给定初始观察和语言，policy 先输出一个 action chunk，Ctrl-World 生成未来 15 帧；只把最后的预测观察送回 policy 生成下一段动作。这个循环可以执行 20 次以上。策略评估中，初始观察来自验证集快照或新的 DROID 场景；策略改进中则通过改写指令或随机重置初始位姿制造多样 rollout。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;rollout_interact_pi_eval.py&lt;/code&gt; 对接 Physical Intelligence 的 &lt;code&gt;openpi&lt;/code&gt; checkpoint。代码把 π₀.₅ 的 joint velocity 通过动力学模型和 forward kinematics 转为 15 步 Cartesian pose，再交给 Ctrl-World；README 还提供 keyboard、轨迹 replay 和 policy-in-the-loop 三种入口。每个 1 秒 interaction 在 A100 上约 10 秒、H100 上约 5 秒，说明论文中的想象 rollout 仍然是高算力离线工具，而非实时控制器。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;| 论文概念 | 官方实现 | 代码事实 |
| --- | --- | --- |
| SVD backbone | &lt;code&gt;models/pipeline_stable_video_diffusion.py&lt;/code&gt;、&lt;code&gt;models/ctrl_world.py&lt;/code&gt; | 从 SVD 加载 VAE、image encoder、scheduler 与 U-Net 权重 |
| 动作投影 | &lt;code&gt;Action_encoder2&lt;/code&gt; in &lt;code&gt;models/ctrl_world.py&lt;/code&gt; | 三层 1024 维 MLP；可选择逐帧条件或整段条件 |
| 多视角输入 | &lt;code&gt;dataset/dataset_droid_exp33.py&lt;/code&gt; | 三路 latent 拼成 &lt;code&gt;(T, 4, 72, 40)&lt;/code&gt;，推理后拆分 |
| 历史记忆 | &lt;code&gt;forward_wm&lt;/code&gt; 与 rollout 脚本中的 &lt;code&gt;his_cond&lt;/code&gt; buffer | 历史视频 latent 随 rollout 保存并再次作为条件 |
| 数据预处理 | &lt;code&gt;dataset_example/extract_latent.py&lt;/code&gt;、&lt;code&gt;dataset_meta_info/create_meta_info.py&lt;/code&gt; | 先编码 latent，再生成样本索引和归一化统计量 |
| 训练入口 | &lt;code&gt;scripts/train_wm.py&lt;/code&gt; | Accelerate 多卡训练，配置来自 &lt;code&gt;config.py&lt;/code&gt; |
| Policy-in-the-loop | &lt;code&gt;scripts/rollout_interact_pi_eval.py&lt;/code&gt; | 调用 openpi 的 π₀.₅，将 joint action 转成 Cartesian pose |
| Checkpoint | README 的 Hugging Face &lt;code&gt;yjguo/Ctrl-World&lt;/code&gt; | 公开 SVD、CLIP、Ctrl-World checkpoint 与 DROID 数据说明 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方仓库是可运行的 PyTorch 实现，但完整 DROID 数据约 370 GB，π₀.₅ 还要单独按 openpi 的依赖和 checkpoint 配置；因此“能复现 demo”和“从头复现论文训练”之间有明显的硬件与数据门槛。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; DROID 平台是带 Robotiq gripper 的 Panda，包含一个 wrist-view 与两个随机 third-view。作者从 95,599 条轨迹中留出 2% 验证集，随机采样 256 个 10 秒片段；每轮输入 15-step action chunk，自回归生成 10 轮。对比 WPE、IRASim 和 Ctrl-World 的 single-view 版本，指标包括 PSNR、SSIM、LPIPS、FID、FVD。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; policy 评估使用公开的 π₀、π₀-FAST 和 π₀.₅，任务覆盖 Pick-and-Place、Towel-Folding、Drawer、Wipe-Table、Close-Laptop、Pull-tissue 和 Stack。改进实验选择空间理解、形状理解、毛巾折叠方向和新物体四类下游任务。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在 10 秒长轨迹上，完整 Ctrl-World 的 third-view 指标为 PSNR 23.56、SSIM 0.828、LPIPS 0.091、FID 25.00、FVD 97.4；相较最强的 single-view/多视角基线，FVD 更低，说明视频分布和时序质量更好。完整多视角版本也优于只预测 third-view 的 Ctrl-World，证明 wrist-view 并非冗余输出。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-ctrl-world/consistency.92qvfycrjm.webp&quot; alt=&quot;Ctrl-World long-horizon consistency from paper Figure 5&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Figure 5 展示了 wrist 相机视野大幅变化时的长期一致性：模型会从其他相机推断被遮挡区域，并从历史记忆取回相似状态。定性结果中，WPE、IRASim 和 single-view Ctrl-World 会出现物体瞬移或抓取 hallucination，而联合多视角模型能更准确地保持接触关系。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 消融结果直接对应三项设计：&lt;/p&gt;
&lt;p&gt;| 设置 | Third-view FVD | Wrist-view FVD | 解释 |
| --- | ---: | ---: | --- |
| 完整 Ctrl-World | 97.4 | 127.1 | 多视角、memory、逐帧条件全部启用 |
| 去掉 memory | 105.5 | 133.1 | 长时锚定变弱，误差更易累积 |
| 去掉 frame-level condition | 122.7 | 179.1 | action 与视觉帧失去精确对齐 |
| 去掉 joint prediction | — | 158.1 | wrist 与其他视角不能联合约束 |&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-ctrl-world/controllability-ablation.13mikwd3df.webp&quot; alt=&quot;Ctrl-World controllability ablation from paper Figure 4&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Figure 4 还显示，即使 action 只相差几厘米，完整模型也能生成不同的未来；去掉 memory 后预测变模糊，去掉逐帧 pose condition 后控制精度下降。由此可见，三项模块分别负责“找回过去”“对齐动作”和“跨视角补足信息”，不是重复的正则化技巧。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-ctrl-world/policy-correlation.58i3wzuuh9.webp&quot; alt=&quot;Ctrl-World policy evaluation correlation from paper Figure 7&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 只在公开 DROID 上训练的 Ctrl-World 被直接用于新的 DROID 场景和新的相机位置。world-model 与真实世界的 instruction-following 相关性拟合线为 $y=0.87x-0.04$；成功率相关性为 $y=0.81x-0.11$。它能够正确排序 π₀、π₀-FAST、π₀.₅，但倾向于低估真实执行成功率。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 策略改进实验中，每个任务生成 400 条想象轨迹，只保留 25–50 条人工判断成功的轨迹，再对 π₀.₅ 做 2k steps supervised fine-tuning。四类任务平均成功率从 38.7% 增至 83.4%；这是 +44.7 个百分点，而非相对百分比提升。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-ctrl-world/improvement.7lkqe78n7z.webp&quot; alt=&quot;Synthetic trajectories for policy improvement from paper Figure 8&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-ctrl-world/improvement-bars.5q85lkw7gq.webp&quot; alt=&quot;Policy improvement results from paper Figure 9&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 评估和改进的收益来自不同层面：相关性实验只要求 world model 的“相对判断”稳定，不要求每个碰撞细节都物理精确；SFT 则依赖它能产生足够多的成功示范。后者因此更容易受到错误成功轨迹的影响，论文使用人工筛选而不是自动 reward model，成本仍然存在。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;视频提供密集的 forward-dynamics 监督。&lt;/strong&gt; 每个动作都对应一段可观察的视觉变化，模型不必把所有能力压缩成单个动作回归误差。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;wrist-view 降低接触事件的不确定性。&lt;/strong&gt; 把局部相机和全局相机联合建模，相当于为同一物体状态提供多个投影。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;memory retrieval 把长时生成变成反复重锚定。&lt;/strong&gt; 模型不需要从第一帧一直“记住”物体位置，而可以在历史中找到相似 pose 的视觉证据。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;逐帧条件提高 action sensitivity。&lt;/strong&gt; action chunk 的每一步都有对应 pose embedding，模型更容易区分 3 cm 与 6 cm 的结果。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 真正的创新组合是：预训练视频 diffusion backbone、可控多视角视频生成、pose-conditioned memory、frame-level action conditioning，以及 policy-in-the-loop 的评估/改进闭环。单独的多视角预测、动作条件或想象 rollout 都已有先例；Ctrl-World 的贡献在于把它们组织成适配现代 VLA 接口的 world model。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;| 维度 | 单视角 action-conditioned video model | Ctrl-World |
| --- | --- | --- |
| 输入 | 一个第三人称视角 | third-view + wrist-view 等多视角 |
| 动作条件 | 常是整段或粗粒度条件 | 每个未来 frame 对应一个 pose/action condition |
| 长时一致性 | 依赖连续 rollout，容易漂移 | 稀疏历史 + pose 检索重新锚定 |
| 使用方式 | 评估视频质量或离线生成 | 与 VLA policy 交替闭环交互 |
| 下游用途 | 生成样本 | 评估 policy 排名，并筛选成功轨迹做 SFT |&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 方法依赖以下假设：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;多视角 RGB 和机械臂 pose 足以描述任务所需的状态，触觉和力信息不是决定性变量；&lt;/li&gt;
&lt;li&gt;DROID 的动作分布覆盖了测试时需要的细粒度控制；&lt;/li&gt;
&lt;li&gt;历史中存在与当前 pose/物体状态足够相似的帧，memory 才能有效重锚定；&lt;/li&gt;
&lt;li&gt;world model 的视觉 plausibility 与策略成功之间有稳定相关性。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;论文没有证明这些假设在强接触、遮挡严重、滑动/碰撞主导或超出 DROID 分布的任务上仍然成立。&lt;/p&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 作者明确指出：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;复杂碰撞、物体滑动、旋转等低层物理仍不够精确，导致 world model 低估真实成功率；&lt;/li&gt;
&lt;li&gt;真实 policy 失败后可能会重试，而想象 rollout 不一定复现这种 retry 行为；&lt;/li&gt;
&lt;li&gt;精确交互和长时推理任务仍可能失败，性能对初始观察敏感；&lt;/li&gt;
&lt;li&gt;论文的训练数据和推理过程需要多卡 GPU，完整 DROID 数据约 370 GB，复现成本高。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;筛选环节仍是人工瓶颈。&lt;/strong&gt; 每个任务生成 400 条轨迹但只保留 25–50 条，说明想象空间的扩大并没有自动消除标注成本。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;成功轨迹的选择可能放大模型偏差。&lt;/strong&gt; 如果 world model 对某种错误接触产生“看起来成功”的视频，SFT 会把 hallucination 反向写入 policy。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;动作与位姿转换绑定 DROID embodiment。&lt;/strong&gt; 代码通过 joint velocity、动力学模型和 FK 转成 Panda 的 Cartesian pose；迁移到不同机器人并不是只换一个 checkpoint。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;生成速度限制在线使用。&lt;/strong&gt; README 报告单次 interaction 在 H100 上约 5 秒，当前系统更适合离线评估、数据合成和研究迭代，而不是替代真实控制器。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; Ctrl-World 把“世界模型是否准确”拆成了更有操作性的三个问题：它能否响应微小动作差异？能否在多视角下保持同一物体状态？能否让 policy 的相对表现排序与真实世界一致？这比只看 FVD 更接近机器人研究真正关心的可用性。&lt;/p&gt;
&lt;p&gt;一个值得继续探索的方向是把人工成功筛选替换成不确定性感知的 reward model：world model 可以同时输出视觉轨迹和置信度，只有在多视角一致、接触事件可信时才写入 policy 数据。另一个方向是把真实 rollout 的失败片段增量加入 memory 和训练集，形成“世界模型评估 → 定位失败 → 合成纠正数据 → 真实验证”的闭环。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 对 Embodied AI 而言，Ctrl-World 的更深层启发是：预训练视频模型不一定要直接充当 policy。它也可以先充当一个可查询的 consequence model，让 policy 的能力评估、失败分析和少量数据微调共享同一套想象空间；但这要求未来的世界模型对物理失败保持保守，而不只是生成视觉上漂亮的未来。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/98000873_p0_master1200.491vjnsp6s.webp"/><enclosure url="https://pic.hana0721.top/98000873_p0_master1200.491vjnsp6s.webp"/></item><item><title>Cosmos Policy 论文精读：把视频扩散模型变成策略、世界模型与规划器</title><link>https://agusexp25.top/blog/paper-deep-dive-cosmos-policy</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-cosmos-policy</guid><description>精读 Cosmos Policy：无需改动视频模型架构，通过 latent frame injection 联合生成动作、未来状态和值，并用 rollout 数据实现模型式规划。</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;论文名称&lt;/strong&gt;：《Cosmos Policy: Fine-Tuning Video Models for Visuomotor Control and Planning》&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;作者&lt;/strong&gt;：Moo Jin Kim、Yihuai Gao、Tsung-Yi Lin、Yen-Chen Lin、Yunhao Ge、Grace Lam、Percy Liang、Shuran Song、Ming-Yu Liu、Chelsea Finn、Jinwei Gu&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;机构&lt;/strong&gt;：NVIDIA、Stanford University&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;会议 / 期刊&lt;/strong&gt;：ICLR 2026&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;论文链接&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2601.16163&quot;&gt;arXiv&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;代码链接&lt;/strong&gt;：&lt;a href=&quot;https://github.com/nvlabs/cosmos-policy&quot;&gt;nvlabs/cosmos-policy&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;项目主页&lt;/strong&gt;：&lt;a href=&quot;https://research.nvidia.com/labs/cosmos-lab/cosmos-policy/&quot;&gt;Cosmos Policy&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;模型与数据&lt;/strong&gt;：&lt;a href=&quot;https://huggingface.co/collections/nvidia/cosmos-policy&quot;&gt;Hugging Face collection&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Cosmos Policy 不再为动作另造 action head，而是把 proprioception、action chunk、未来图像和 value 都编码成 latent frame，插入 Cosmos-Predict2-2B 的原生视频扩散序列；一次微调同时得到直接策略、世界模型和值函数，再用 rollout 数据校准后进行 best-of-N 规划。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;提出 &lt;strong&gt;latent frame injection&lt;/strong&gt;：不修改视频模型结构，只覆盖占位 latent frame，就能加入机器人状态、动作和值等新模态。&lt;/li&gt;
&lt;li&gt;用一个统一扩散模型联合学习 $pi(a,s&apos;,V(s&apos;)\mid s)$、$p(s&apos;,V(s&apos;)\mid s,a)$ 和 $p(V(s&apos;)\mid s,a,s&apos;)$，避免多阶段训练与独立模块。&lt;/li&gt;
&lt;li&gt;直接策略在 LIBERO 与 RoboCasa 达到 98.5% 和 67.1% 平均成功率，并在 ALOHA 双臂任务取得 93.6 平均完成度。&lt;/li&gt;
&lt;li&gt;收集失败与成功的 rollout，微调 planning model，通过世界模型预测未来状态、value function 排序候选动作；困难 ALOHA 任务平均提升 12.5 个百分点。&lt;/li&gt;
&lt;li&gt;公开训练、评测和部署代码，以及模型检查点和训练数据。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 视频生成模型从互联网视频中学习时间因果、隐式物理和运动模式，而典型 VLA 主要从静态图文对中学习语义。把视频模型迁移到机器人控制有潜力，但已有方法往往需要先微调视频、再训练 action module，或增加 inverse dynamics / action diffuser 等结构。&lt;/p&gt;
&lt;p&gt;论文将路线分成三类：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Video-based policy&lt;/strong&gt;：利用视频先验预测未来画面，再由额外模块解码动作；优点是能利用时空知识，缺点是系统复杂。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Unified video-action model&lt;/strong&gt;：动作和视频一起预测，但通常从头设计或训练，无法直接继承大规模视频模型权重。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;VLA&lt;/strong&gt;：视觉语言模型擅长开放词汇和指令跟随，却未必具备视频模型已经学到的细粒度动力学先验。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; Cosmos Policy 的关键取舍是“迁移学习算法本身，而不是只迁移特征”。它接受视频扩散模型擅长表示高维、多模态、时间相关分布这一事实，然后把机器人动作当成另一种“帧”来建模。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 机器人任务被写成有限时域 MDP $⟨S,A,T,R,H⟩$。给定时刻 $t$ 的观测状态 $s_t$ 与语言任务描述，策略输出长度为 $K$ 的动作 chunk；执行后到达未来观测 $s&apos;$，并以稀疏终端奖励计算 return。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Observation&lt;/strong&gt;：多视角 RGB 图像、机器人 proprioception 和文本任务描述。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Action&lt;/strong&gt;：连续动作序列 $a_{t:t+K-1}\in\mathbb{R}^{K\times d_{act}}$；不同 benchmark 的 $K$ 不同。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Future state&lt;/strong&gt;：未来 proprioception 与各相机图像。论文为简洁称其为 state，但严格来说是 observation 近似。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Value&lt;/strong&gt;：未来状态的期望累计回报，取 Monte Carlo return $G_t=\gamma^{H-t}R(s_H,a_H)$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Embodiment&lt;/strong&gt;：LIBERO 和 RoboCasa 中的单臂 Franka Emika Panda；真实环境使用双臂 ALOHA（两台 ViperX 300）。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方仓库支持 &lt;code&gt;libero&lt;/code&gt;、&lt;code&gt;robocasa&lt;/code&gt;、&lt;code&gt;aloha&lt;/code&gt; 三套评测。&lt;code&gt;cosmos_utils.py&lt;/code&gt; 将相机、proprio 和语言 embedding 组织成模型序列，动作通过 &lt;code&gt;ACTION_DIM&lt;/code&gt; 与配置中的 &lt;code&gt;chunk_size&lt;/code&gt; 解码并反归一化。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;Cosmos-Predict2-2B 原本接收首帧和文本、生成视频。Cosmos Policy 保留其 Wan2.1 VAE tokenizer、EDM 风格 latent diffusion transformer 与 T5 文本条件，只在 latent 序列中插入新帧：&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-cosmos-policy/latent-injection.8dxlvxk6jh.webp&quot; alt=&quot;Cosmos Policy 的 latent frame injection：把动作、未来状态和值插入视频扩散序列（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 数据流可以概括为：当前观测 $s$ 和语言条件进入一串 clean latent frames，action、未来状态 $s&apos;$ 与 value 的位置保留为待生成帧；扩散模型只对目标帧加噪并进行去噪，得到三类输出。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; ALOHA / RoboCasa 的默认 latent 顺序是 &lt;code&gt;[blank, current proprio, wrist image(s), third-person image(s), action, future proprio, future images, value]&lt;/code&gt;；LIBERO 使用 9 个 latent frame，RoboCasa 与 ALOHA 使用 11 个。首个 blank frame 是 Wan2.1 的 &lt;code&gt;(1+T)&lt;/code&gt; 时间压缩所需占位符。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;Latent frame injection&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：已由 VAE 编码的图像 latent，以及归一化到 $[-1,1]$ 的 proprio、动作和值。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：形状不变但语义被覆盖的 latent 序列。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;做法&lt;/strong&gt;：将低维向量展平并重复，填满一个 $C&apos;\times H&apos;\times W&apos;$ latent volume，覆盖对应 blank frame。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要&lt;/strong&gt;：不增加网络输入输出头，扩散 transformer 仍只处理原生 latent token。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;policy_text2world_model.py&lt;/code&gt; 的 &lt;code&gt;replace_latent_with_action_chunk&lt;/code&gt; 与 &lt;code&gt;replace_latent_with_proprio&lt;/code&gt; 完成覆盖；推理时 &lt;code&gt;get_action&lt;/code&gt; 对 action latent 求平均、恢复 chunk 形状，再做 unnormalize。value 是整个 latent volume 的均值，不需要 VAE 解码。&lt;/p&gt;
&lt;h4&gt;统一的 Policy / World Model / Value Function&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Policy 输入 / 输出&lt;/strong&gt;：$s\rightarrow(a,s&apos;,V(s&apos;))$，以 demo 样本为主。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;World model 输入 / 输出&lt;/strong&gt;：$(s,a)\rightarrow(s&apos;,V(s&apos;))$，用 rollout 样本学习环境后果。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Value function 输入 / 输出&lt;/strong&gt;：$(s,a,s&apos;)\rightarrow V(s&apos;)$；微调 planning checkpoint 时可 mask 掉 $s,a$，变成真正的 $V(s&apos;)$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么联合训练&lt;/strong&gt;：未来状态和值提供辅助监督，使动作预测不只拟合瞬时控制量，还要与可达状态和任务完成度一致。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 初始训练 batch 按 50% policy、25% world model、25% value function 划分。三种任务使用同一套 latent 序列，只改变 clean conditioning mask 和 target mask。&lt;/p&gt;
&lt;h4&gt;Diffusion sampler 与噪声分布&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 基础 Cosmos-Predict2 的 log-normal 噪声对高 $σ$ 权重不足。Cosmos Policy 以 0.7 概率采样原 log-normal、以 0.3 概率从 $[1,85]$ 均匀采样；推理时令 $σ_{max}=80$、$σ_{min}=4$，避免接近零噪声的末端步骤降低精度。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;HybridEDMSDE&lt;/code&gt; 和 &lt;code&gt;CosmosPolicySampler&lt;/code&gt; 实现混合噪声与去噪采样；动作、未来状态和值可以并行生成，也可按 action → future state → value 自回归生成。&lt;/p&gt;
&lt;h4&gt;Best-of-N planning&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; planning model 对每个候选 action 采样 3 次未来状态、每个未来状态采样 5 次 value，共 15 个 value 预测；使用 &lt;code&gt;majority_mean&lt;/code&gt;，先按阈值判断多数预测成功或失败，再在多数组内求均值，降低双峰分布中的离群值影响。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;基础视频扩散目标&lt;/h4&gt;
&lt;p&gt;Cosmos-Predict2 使用 EDM denoising score matching：&lt;/p&gt;
&lt;p&gt;$$
\mathcal{L}&lt;em&gt;{EDM}=\mathbb{E}&lt;/em&gt;{x_0,c,n,\sigma}\left[|D_\theta(x_0+n;\sigma,c)-x_0|_2^2\right]
$$&lt;/p&gt;
&lt;p&gt;其中 $x_0$ 是 clean latent sequence，$c$ 是 T5 文本条件，$n\sim\mathcal{N}(0,\sigma^2I)$，$D_\theta$ 是 diffusion transformer。Cosmos Policy 只改变 $x_0$ 中部分 latent 的语义和 conditioning mask，核心损失仍是同一个去噪目标。&lt;/p&gt;
&lt;h4&gt;联合条件分布&lt;/h4&gt;
&lt;p&gt;三种训练视图对应：&lt;/p&gt;
&lt;p&gt;$$
\pi(a,s&apos;,V(s&apos;)\mid s),\qquad p(s&apos;,V(s&apos;)\mid s,a),\qquad p(V(s&apos;)\mid s,a,s&apos;).
$$&lt;/p&gt;
&lt;p&gt;第一个学习直接动作策略，第二个学习动作造成的未来观测，第三个学习给定未来状态后的回报。输入 mask 决定哪些 latent 是条件、哪些 latent 是 target。&lt;/p&gt;
&lt;h4&gt;Value target&lt;/h4&gt;
&lt;p&gt;稀疏终端奖励下，样本 return 为：&lt;/p&gt;
&lt;p&gt;$$
G_t=\gamma^{H-t}R(s_H,a_H),\qquad V^\pi(s_t)=\mathbb{E}_{\tau\sim\pi}[G_t].
$$&lt;/p&gt;
&lt;p&gt;代码中 &lt;code&gt;compute_monte_carlo_returns&lt;/code&gt; 为每个 transition 写入该 return，并把它复制到 value latent 的所有位置。&lt;/p&gt;
&lt;h4&gt;Best-of-N 选择&lt;/h4&gt;
&lt;p&gt;给定候选动作 ${ a^{(i)}}_{i=1}^N$，规划器选择：&lt;/p&gt;
&lt;p&gt;$$
i^&lt;em&gt;=\arg\max_i;\operatorname{Agg}_{j,k}V^{(i,j,k)}(s&apos;^{(i,j)}),\qquad a^{&lt;/em&gt;}=a^{(i^*)}.
$$&lt;/p&gt;
&lt;p&gt;$j$ 索引未来状态 ensemble，$k$ 索引 value ensemble，&lt;code&gt;Agg&lt;/code&gt; 是 majority-mean 而非简单平均。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 初始 post-training 只使用目标机器人上的 demonstration。LIBERO 过滤失败示教训练 policy，但保留全部示教训练 world model/value；RoboCasa 同样处理。后续 planning model 使用 648 条 rollout（包含来自不同策略的 rollout 及额外 ALOHA ziploc-bag rollout），并把 batch 比例改为 10% policy、45% world model、45% value。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;LIBERODataset&lt;/code&gt;、&lt;code&gt;RoboCasaDataset&lt;/code&gt; 和 &lt;code&gt;ALOHADataSet&lt;/code&gt; 负责 HDF5 读取、图像增强、动作/proprio 归一化、chunk padding 与 Monte Carlo return；&lt;code&gt;trainer.py&lt;/code&gt; 通过 sample mask 选择三种 loss。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;主要超参数（【Paper】）&lt;/strong&gt;：&lt;/p&gt;
&lt;p&gt;| Benchmark | 训练步数 | GPU / global batch |        action chunk | 执行策略             |
| --------- | -------: | ------------------ | ------------------: | -------------------- |
| LIBERO    |      40K | 64×H100 / 1920     |                  16 | 执行完整 chunk       |
| RoboCasa  |      45K | 32×H100 / 800      |                  32 | 执行前 16 步后重查询 |
| ALOHA     |      50K | 8×H100 / 200       | 50（25 Hz 下 2 秒） | 执行完整 chunk       |&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 不做 planning 时使用并行解码：一次生成 action、future state、value，后两者可丢弃；LIBERO/RoboCasa 使用 5 个 denoising steps，ALOHA 使用 10 个。planning 时使用自回归解码，先产生动作，再预测未来状态和值。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;get_action&lt;/code&gt; 先把多相机图像 resize 到 224、读取 T5 embedding、注入 proprio 与图像；采样后从 action latent 恢复 chunk 并 unnormalize。planning 代码使用 N 个 GPU 并行执行候选分支，默认 real-world best-of-N 为 $N=8$。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方实现与论文的对应关系如下：&lt;/p&gt;
&lt;p&gt;| 论文概念         | 代码位置                                              | 实际行为                                         |
| ---------------- | ----------------------------------------------------- | ------------------------------------------------ |
| latent injection | &lt;code&gt;models/policy_text2world_model.py&lt;/code&gt;                   | 用重复向量覆盖 action/proprio latent volume      |
| 视频策略模型     | &lt;code&gt;models/policy_video2world_model.py&lt;/code&gt;                  | 通过 mask 切换 policy/world/value 训练目标       |
| 数据与 return    | &lt;code&gt;datasets/*_dataset.py&lt;/code&gt;、&lt;code&gt;datasets/dataset_common.py&lt;/code&gt; | 读取 HDF5、chunk padding、Monte Carlo return     |
| 推理与解码       | &lt;code&gt;experiments/robot/cosmos_utils.py&lt;/code&gt;                   | 图像预处理、采样、latent 解码和动作反归一化      |
| 评测部署         | &lt;code&gt;experiments/robot/{libero,robocasa,aloha}&lt;/code&gt;           | 三套 benchmark 的配置、环境和控制循环            |
| 模型配置         | &lt;code&gt;cosmos_policy/config&lt;/code&gt; 与各 experiment config         | &lt;code&gt;state_t&lt;/code&gt;、相机数量、chunk size、denoising steps |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 代码显示“无架构修改”并不意味着无需工程适配：每个 embodiment 都要定义 latent frame 顺序、相机数量、统计量、图像翻转/JPEG 处理和执行 horizon；真正复用的是 denoiser 和其采样机制。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; LIBERO 包含 Spatial、Object、Goal、Long 四个 suite，每 suite 500 条示教；RoboCasa 有 24 个厨房任务，每任务仅使用 50 条人工示教；ALOHA 使用 4 个双臂任务、185 条示教，并测试 in-distribution 与 OOD 初始状态。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-cosmos-policy/aloha-results.7i14ghahla.webp&quot; alt=&quot;ALOHA 真实双臂任务的 Cosmos Policy rollout（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;p&gt;ALOHA 控制频率为 25 Hz，输入 14 维关节状态、一个 top-down 相机和两个 wrist 相机；动作 chunk 为 50 步。RoboCasa 每任务 50 trials、5 个场景、3 个随机种子；LIBERO 每 suite 500 trials、3 个种子。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 结果显示，Cosmos Policy 在不同数据规模和 embodiment 上都保持竞争力：&lt;/p&gt;
&lt;p&gt;| Benchmark        | Cosmos Policy |                      代表性对手 | 训练数据对比                   |
| ---------------- | ------------: | ------------------------------: | ------------------------------ |
| LIBERO 平均 SR   |     &lt;strong&gt;98.5%&lt;/strong&gt; | CogVLA 97.4%、OpenVLA-OFT 97.1% | 4 个 suite，各 500 demos       |
| RoboCasa 平均 SR |     &lt;strong&gt;67.1%&lt;/strong&gt; | FLARE 66.4%、Video Policy 66.0% | 50 demos/task，而对手多为 300+ |
| ALOHA 平均完成度 |      &lt;strong&gt;93.6&lt;/strong&gt; |    π0.5 88.6、OpenVLA-OFT+ 62.0 | 185 demos，总计 101 trials     |&lt;/p&gt;
&lt;p&gt;LIBERO 的四个 suite 分别为 Spatial 98.1、Object 100.0、Goal 98.2、Long 97.6。&lt;strong&gt;【Analysis】&lt;/strong&gt; Long suite 的高分说明 action chunk 与视频时空先验不仅改善短程抓取，也有助于长时序任务。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-cosmos-policy/aloha-results.7i14ghahla.webp&quot; alt=&quot;Cosmos Policy 与 VLA、Diffusion Policy 在 ALOHA 上的任务完成度（论文 Figure 4）&quot;&gt;&lt;/p&gt;
&lt;p&gt;论文还观察到：π0.5 在 ziploc bag 的高精度抓取上容易丢失滑块，OpenVLA-OFT+ 在多颗糖果任务中会落在两个目标之间。&lt;strong&gt;【Analysis】&lt;/strong&gt; 这与 Cosmos Policy 直接建模连续多模态 action distribution 的设计相吻合，但仅凭这些案例不能推出对所有任务都优于 VLA。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; LIBERO 消融：去掉 auxiliary targets，平均 SR 从 98.5 降到 97.0；从随机初始化训练，降到 94.6。RoboCasa 逐步移除 value/world-model 样本和 policy 的辅助目标后，只有 action 的 barebones policy 降到 44.4%。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-cosmos-policy/balanced-batches.2vfhfsby0j.webp&quot; alt=&quot;联合训练的 50% / 25% / 25% balanced batches（论文 Figure 12）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 消融把贡献拆成两层：预训练视频先验提供初始化，future state/value 辅助任务提供表征约束。RoboCasa 中从 67.1 降到 44.4 的大幅变化，说明未来状态预测比单纯增加一个 value head 更像是策略学习的关键正则。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; ALOHA 同时评测训练分布内与 OOD 初始摆放。Cosmos Policy 在四任务平均分最高，并在“put candies in bowl”和“put candy in ziploc bag”这类多模态、毫米级精度任务上优势最明显。&lt;/p&gt;
&lt;p&gt;rollout 微调后的 planning model 能预测基础策略容易漏掉的失败，例如 ziploc bag slider 脱手。与无规划 policy 相比，模型式规划在两个困难任务上平均提升 12.5 分。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-cosmos-policy/planning-results.3gp5236f1i.webp&quot; alt=&quot;基础模型与 rollout 微调模型的规划结果对比（论文 Figure 7）&quot;&gt;&lt;/p&gt;
&lt;p&gt;模型式 $V(s&apos;)$ 规划优于直接学习 $Q(s,a)$ 的 model-free 版本；论文将原因归因于世界模型提供的动力学结构，以及有限 rollout 数据下 Q 函数更容易过拟合。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 有三条互相补强的路径：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;视频先验&lt;/strong&gt;：Cosmos-Predict2 已在大规模视频中学习物体运动与时间一致性，微调不必从随机权重开始。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;统一 latent 空间&lt;/strong&gt;：动作、proprio、图像和值共享 attention 与噪声建模，模型能把“动作是否会导致可达未来状态”纳入同一预测过程。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;多模态采样&lt;/strong&gt;：扩散采样保留多个可行 action mode，避免 L1/L2 回归把不同抓取策略平均成一个不可执行动作。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;真正的新意不是“视频模型用于机器人”这一方向本身，而是把适配接口压缩成 &lt;strong&gt;latent frame injection + mask&lt;/strong&gt;：新模态只需能归一化成向量、填入 latent volume，并定义其在序列中的位置，就可以复用同一 denoiser。这样 policy、world model 和 value function 不是三个网络，而是同一网络的三种条件化方式。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;| 维度         | 典型 VLA          | 视频策略 + 独立动作模块          | Cosmos Policy               |
| ------------ | ----------------- | -------------------------------- | --------------------------- |
| 预训练先验   | 静态图文语义      | 视频动力学，但常需多阶段         | 直接继承 Cosmos-Predict2    |
| 动作输出     | token 或回归 head | 独立 diffuser / inverse dynamics | 原生 latent diffusion frame |
| 世界模型和值 | 通常分开          | 多为额外模块                     | 同一模型、不同 mask         |
| 规划         | 常无或外接        | 依赖额外接口                     | rollout 微调后 best-of-N    |
| 主要代价     | 动作量化或均值化  | 系统复杂                         | 推理搜索延迟高              |&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;目标机器人数据足以让视频模型理解新增 latent frame 的语义；论文没有证明跨 embodiment 零样本迁移。&lt;/li&gt;
&lt;li&gt;单个 action chunk 后的未来状态足以支持一层 best-of-N 搜索；更深树搜索未被验证。&lt;/li&gt;
&lt;li&gt;rollout 的成功/失败标签和观测足够覆盖策略分布外的关键错误。&lt;/li&gt;
&lt;li&gt;对低维模态做重复填充不会损害 transformer 对其数值结构的读取；这是有效的工程编码，而非信息最优编码。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;模型式规划在 ALOHA 上生成一个 action chunk 约需 4.9 秒，难以应对快速动态任务。&lt;/li&gt;
&lt;li&gt;准确的 planning model 需要相当数量的 rollout，少数据学习仍是开放问题。&lt;/li&gt;
&lt;li&gt;当前只做一层 best-of-N，尚未扩展到更长预测 horizon 或更深搜索树。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;每种机器人都要重新定义 latent 顺序、相机预处理和数据统计，所谓“无架构修改”仍包含明显的 embodiment engineering。&lt;/li&gt;
&lt;li&gt;future image 是高维生成目标，训练 loss 低并不等价于可用于控制的视觉预测准确；论文主要用任务成功率间接验证。&lt;/li&gt;
&lt;li&gt;规划使用固定 success threshold 和 majority-mean，面对奖励连续、风险敏感或长尾失败时可能不够校准。&lt;/li&gt;
&lt;li&gt;直接执行完整 action chunk 而不是 receding horizon，降低了搜索开销，却减少了中途纠错机会。&lt;/li&gt;
&lt;li&gt;训练与评测依赖大规模 H100 资源（LIBERO 64 张、RoboCasa 32 张），社区复现实验的硬件门槛较高；官方 README 的单 GPU 说明主要针对推理。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这篇工作给 Embodied AI 的启发可以概括为“把接口设计成数据，而不是模块”：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;统一生成器的边界&lt;/strong&gt;：只要不同模态能被放进同一序列并定义清晰的 mask，策略、动力学和价值估计可以共享一个大模型；这为加入触觉、语言反馈或接触事件留下接口。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;失败数据的价值&lt;/strong&gt;：示教主要告诉模型“怎么成功”，rollout 才能告诉世界模型“哪些动作会失败”。规划性能提升来自数据分布扩展，而不只是模型变大。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;速度与质量的可调旋钮&lt;/strong&gt;：RoboCasa 一步 denoising 仍有 66.4% 成功率，说明采样步数、chunk 长度和搜索宽度可以按机器人控制频率折中。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;下一步实验&lt;/strong&gt;：值得验证跨任务/跨 embodiment 的 latent schema 是否能共享、如何进行多步 imagination、如何用蒸馏或 consistency sampling 把 4.9 秒搜索压到实时范围。&lt;/li&gt;
&lt;/ol&gt;</content:encoded><h:img src="https://pic.hana0721.top/90399055_p0_master1200.4g535npbv6.webp"/><enclosure url="https://pic.hana0721.top/90399055_p0_master1200.4g535npbv6.webp"/></item><item><title>BagelVLA 论文精读：用交错语言计划与视觉预见解决长时域操作</title><link>https://agusexp25.top/blog/paper-deep-dive-bagelvla</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-bagelvla</guid><description>精读 BagelVLA：在统一 MoT 模型中交错生成子任务文本、未来关键帧和动作，并用 Residual Flow Guidance 降低视觉预见延迟。</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 长时域机器人任务同时需要回答“下一步做什么”“场景会变成什么样”和“机械臂该怎样运动”。既只做语言规划、又只做视觉预测的 VLA，往往无法把两种 foresight 对齐到动作。BagelVLA 基于 Bagel 的统一理解/生成模型，引入 2B action expert，把三种生成交错到一个 Mixture-of-Transformers（MoT）框架中。&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 给定全局指令 $L$ 和当前观测 $v_t$，模型先生成当前子任务 $l_t$，再预测该子任务完成后的关键帧 $v_{t+k}$，最后在两者条件下生成动作 chunk $a_t$；Residual Flow Guidance（RFG）让动作只读取关键帧 flow 的初始步，从而把视觉预见成本压到单步。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;【Paper】统一交错策略。&lt;/strong&gt; 在单一 MoT 序列中联合学习 linguistic planning、visual forecasting 和 action generation。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Paper】Residual Flow Guidance。&lt;/strong&gt; 用当前图像作为噪声初始化的结构先验，单步 denoising 即可提取未来动态特征。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Paper】两阶段数据引擎。&lt;/strong&gt; 先用通用 VQA、手部视频和机器人关键帧训练语言/视觉能力，再用带动作标签的数据学习控制。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Paper】跨环境验证。&lt;/strong&gt; 在 Calvin、RoboTwin、ALOHA-AgileX 基础任务及长时域任务上显著优于 $π0$、RDT、UP-VLA 和 VPP。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; RT-2/OpenVLA 把动作离散成 token，表达简单但连续控制受限；$π0$、RDT 等用 diffusion/flow 生成连续动作，却通常把语言规划和视觉预见作为外部模块。VPP、Cosmos Policy 证明未来视觉表示可以帮助控制，但缺少强 VLM 时，复杂指令分解仍然薄弱。另一方面，Bagel、Chameleon 等 unified understanding-and-generation 模型能在文本与图像间交错推理，却没有机器人动作接口。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; BagelVLA 的关键切入点不是再堆一个 world model，而是让“语言解释”和“视觉结果”成为动作 expert 的显式条件，并保持三种 token 在共享 self-attention 中的信息流。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 一条演示轨迹写作 $\tau_i={(v_1,l_1,a_1),\ldots,(v_T,l_T,a_T)}$，其中 $v_t$ 包含多视角图像和 proprioception，$l_t$ 是阶段子任务描述，$a_t$ 是动作 chunk。传统策略学习 $p_\theta(a_t|v_t,L)$；BagelVLA 改为最大化：&lt;/p&gt;
&lt;p&gt;$$
p_\theta(l_t,v_{t+k},a_t|v_t,L)=p_\theta(l_t|v_t,L)p_\theta(v_{t+k}|v_t,L,l_t)p_\theta(a_t|v_t,L,l_t,v_{t+k}).
$$&lt;/p&gt;
&lt;p&gt;相关检查项：Vision Encoder（SigLIP2）、Language Model（Qwen2.5）、Multimodal Fusion（MoT）、Observation（图像/语言/proprioception）、Action Representation（flow-matched 连续 chunk）、Training Objective（CE + 两个 flow loss）、Dataset（通用多模态与机器人数据）、Action Horizon（论文默认 chunk 48）。论文没有公开可复现的官方代码仓库，项目页仍标注 “Code is coming soon”，因此以下代码对照仅限公开网页信息。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-bagelvla/overview-bagelvla.webp&quot; alt=&quot;BagelVLA framework overview from paper Figure 1&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 当前观测和全局指令进入 7B understanding/generation experts，生成子任务文本与关键帧 latent；2B action expert 读取这些中间状态、proprioception 和原始视觉特征，输出连续动作。三类 token 按时间阶段组成统一 interleaved sequence。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-bagelvla/model-bagelvla.webp&quot; alt=&quot;BagelVLA model architecture from paper Figure 2&quot;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;【Paper】Understanding expert&lt;/strong&gt;：Qwen2.5-LLM-7B 结构，SigLIP2 编码观测，autoregressive 生成 $l_t$，用 CE loss 训练。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Paper】Generation expert&lt;/strong&gt;：使用 FLUX VAE latent 与 flow matching 预测关键帧。它同时 attend 输入图像的 VAE/ViT 特征和文本条件。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Paper】Action expert&lt;/strong&gt;：独立的约 2B Transformer，输入 proprioception、动作噪声、语言计划、图像 latent 的中间状态，预测动作 velocity；KV cache 和异步执行使其可高频运行。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Paper】MoT 连接&lt;/strong&gt;：三个 expert 保留各自的参数和职责，却通过共享 self-attention 交换跨模态上下文。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;p&gt;令关键帧 clean latent 为 $x_0$、Gaussian noise 为 $\epsilon$、动作 clean chunk 为 $a^1$，flow timestep 为 $\tau\in[0,1]$：&lt;/p&gt;
&lt;p&gt;$$x^\tau=(1-\tau)x_0+\tau\epsilon,\qquad v^x=\epsilon-x_0.$$&lt;/p&gt;
&lt;p&gt;$$a^\tau=(1-\tau)a^0+\tau a^1,\qquad v^a=a^1-a^0.$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 模型分别用 $L_v=|\hat v^x-v^x|_2^2$ 和 $L_a=|\hat v^a-v^a|&lt;em&gt;2^2$ 学习图像与动作 flow，并以 $L_l=-\log p&lt;/em&gt;\theta(l_t|v_t,L)$ 学习文本计划；总目标为三者之和。RFG 的区别在于初始关键帧噪声：朴素方案 $x^0\sim\mathcal N(0,I)$，RFG 使用 $x^0\sim\mathcal N(v_t,I)$，因此模型主要拟合变化区域而非静态背景。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Stage 1 只训练 understanding/generation experts：2.98M 通用 QA、310k human-hand episodes、146k + 297k open robot episodes 和 75k 自采机器人 episodes。Stage 2 引入动作标签，联合微调三个 expert：Calvin ABC split、RoboTwin 2,500 episodes、ALOHA basic 3,000 episodes、ALOHA long-horizon 1,500 episodes。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-bagelvla/dual-denoise.webp&quot; alt=&quot;Dual flow-matching conditioning schemes from paper Figure 3&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文比较 Complete Denoise、Joint Denoise 和 Single-step Denoise。默认 RFG 属于最后一种：只执行关键帧 flow 的初始步，动作 expert 读取该步 KV；文本和关键帧 expert 每次更新较慢，动作 expert 可用 proprioception 高频刷新。单张 RTX 5090 上 chunk=48 时约 40Hz；启用异步执行后报告 72Hz。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 截至论文项目页（2026-08-26），代码按钮链接到空的 GitHub 首页并写着 “Code is coming soon”。因此没有可核验的 model definition、DataLoader、loss 实现、checkpoint 或 evaluation script。本文不把论文伪代码冒充官方实现；后续开源后应重点核对 MoT attention mask、RFG 噪声初始化和异步 KV 更新。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 仿真包含 Calvin ABC-D（单步任务）和 RoboTwin 2.0（50 tasks，clean/randomized、未见指令）；真实实验使用 ALOHA-AgileX 双臂平台，覆盖 9 类基础技能和两类长时域任务：按指定顺序堆方块、计算并摆放符号方块。每项真实任务运行 20 次。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-bagelvla/visualize-results.webp&quot; alt=&quot;Real-world interleaved planning visualization from paper Figure 4&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;| 基准 | 最强对比 | BagelVLA | 观察 |
| --- | ---: | ---: | --- |
| Calvin ABC-D 平均完成长度 | VPP 4.329 | &lt;strong&gt;4.405&lt;/strong&gt; | OOD 背景/颜色仍保持操作精度 |
| RoboTwin Clean 成功率 | UP-VLA 52.92% | &lt;strong&gt;75.26%&lt;/strong&gt; | 文本计划带来明显增益 |
| RoboTwin Randomized 成功率 | $\pi0$ 16.34% | &lt;strong&gt;20.87%&lt;/strong&gt; | 随机化场景更难但仍领先 |
| 真实基础任务平均成功率 | $\pi0$ 65.0% | &lt;strong&gt;75.5%&lt;/strong&gt; | 未见物体 pick-place 为 85% |&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;| 方案 | 延迟/动作 chunk | Calvin ABC-D |
| --- | ---: | ---: |
| Complete Denoise | 6.04s | 2.480 |
| Joint Denoise | 2.90s | 2.038 |
| Single-step（纯噪声） | 1.23s | 3.345 |
| &lt;strong&gt;RFG&lt;/strong&gt; | &lt;strong&gt;1.23s&lt;/strong&gt; | &lt;strong&gt;3.600&lt;/strong&gt; |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 去掉 textual planning 后 RoboTwin Clean/Randomized 为 54.00/19.20；完整模型为 75.26/20.87。去掉 keyframe forecasting 后为 56.72/15.92。长时域真实任务中，完整模型在堆方块和符号计算的成功率分别为 73.3% 与 63.3%，规划准确率为 95% 与 85%。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 真实未见物体 pick-place、RoboTwin randomized 和 Calvin ABC-D 都显示出泛化优势。&lt;strong&gt;【Analysis】&lt;/strong&gt; 语言计划负责把全局指令拆成可验证的局部目标，RFG 则把背景不变性编码进 flow 初态；二者分别缓解 semantic OOD 与 visual OOD，但细粒度接触控制仍是成功率低于规划准确率的主要原因。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 交错因子分解把长任务的信用分配切成“语义目标 → 视觉结果 → 动作”三步。子任务文本提供离散的阶段边界，关键帧提供连续的物理状态锚点，动作 expert 不必仅从全局指令和当前像素猜测未来。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 真正的新意是 interaction scheme，而非单独的 world model 或 action flow：Single-step + RFG 让视觉生成成为低延迟的 predictive feature extractor；MoT 则允许理解、生成、控制共享上下文但保持参数专门化。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; VPP/Cosmos 主要把未来视觉作为外部条件，语言规划仍在另一路；传统 hierarchical policy 则通常先离线生成 subgoal 再执行。BagelVLA 在每个 action chunk 的同一上下文中在线地产生语言和视觉中间变量，因而能根据新观测重新规划。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 一个关键帧足以概括当前子任务的主要视觉结果。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 语言子任务边界可由人工或 VLM 标注稳定恢复；边界错误会同时污染视觉和动作监督。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 从当前帧加噪的 RFG 初态不会抹掉执行所需的细微接触信息。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 长时域实验中 planning accuracy 明显高于最终 success rate，说明动作映射和 fine-motor precision 仍受模型与数据集限制。完整/联合 denoising 还会遭遇 OOD 中间视觉状态和更高延迟。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 论文只在双臂平台和有限任务族上验证；72Hz 依赖 KV 异步假设，换相机频率、机器人本体或更长动作 horizon 可能失效。项目页尚未公开代码与权重，数据标注（尤其自动生成子任务）的噪声、计算成本和复现实验难以独立评估。&lt;/p&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; BagelVLA 提示 VLA 的“思考 token”不必局限于文字：一个短子任务、一张粗略未来帧和一段动作 chunk 可以构成可观测的中间计划。后续值得研究：（1）让模型根据不确定性决定是否执行完整视觉 denoising；（2）用触觉或 3D state 替代单一 RGB 关键帧；（3）把 planning accuracy 与接触级控制误差联合训练；（4）开源后系统测量 RFG 对不同背景、相机和 embodiment 的迁移边界。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/71187447_p0_master1200.13mdb6lism.webp"/><enclosure url="https://pic.hana0721.top/71187447_p0_master1200.13mdb6lism.webp"/></item><item><title>ASPIRE 论文精读：让机器人像软件工程师一样积累技能</title><link>https://agusexp25.top/blog/paper-deep-dive-aspire</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-aspire</guid><description>精读 ASPIRE：用闭环执行追踪、可持续技能库与进化式程序搜索，让 code-as-policy 机器人跨任务、跨场景持续变强。</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; ASPIRE（Agentic Skill Programming through Iterative Robot Exploration）研究一个很具体但常被忽略的问题：机器人程序失败后，coding agent 究竟能看到什么、如何知道是哪一个 primitive 出错、修复能否被下一个任务复用。论文把“训练”重新定义成持续的程序调试与技能积累，而不是梯度下降。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-aspire/system_design.1hsybyslpl.webp&quot; alt=&quot;ASPIRE system overview from paper Figure 1&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; ASPIRE 的关键闭环是：让 agent 看见每次感知、规划、抓取和控制调用的证据，针对失败写出可执行修复，在多个配置上验证后把“失败特征—适用条件—修复策略”写进技能库，再用这些技能和进化式候选搜索解决后续任务。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;提出闭环 Robot Execution Engine，以 per-primitive multimodal traces 取代只有任务成功/失败的粗反馈。&lt;/li&gt;
&lt;li&gt;提出持续增长的 Skill Library；只有通过 debug 配置验证的修复才会被提炼成可复用、可跨 embodiment 的 in-context skill。&lt;/li&gt;
&lt;li&gt;提出在可执行机器人程序空间上的 Evolutionary Search，保留多个候选策略，避免单轨迹修复陷入局部循环。&lt;/li&gt;
&lt;li&gt;在 LIBERO-Pro、Robosuite、BEHAVIOR-1K 和 YAM 双臂真实机器人上验证，展示跨任务、长时程和 sim-to-real 的收益。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 传统 code-as-policy 方法让大模型组合 perception、planning API 和低层控制 primitive，但常见执行接口只返回一段 rollout 的结果。机器人失败可能来自目标定位、碰撞约束、抓取姿态、接触动力学或长时程恢复；只有“任务失败”无法告诉 agent 下一步该检查哪一层。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这与软件工程 agent 的差距很像：编译器错误、单元测试和 stack trace 让程序员能定位问题，而机器人 coding agent 若只拿到最终视频，就只能反复猜测。另一个缺口是经验不积累：现有方法通常在每个 episode 结束后丢弃修复，解决第 100 个任务的 agent 和第 1 个任务一样“没有记忆”。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 给定任务描述 $\tau$、允许调用的机器人 API 和初始程序 $P^0$，系统要在有限的执行预算内找到在 held-out 环境配置上成功的程序 $P^\star$，并从验证过的修复中提取技能集合 $\mathcal G$。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Observation&lt;/strong&gt;：API 调用前后的 RGB keyframe、深度、SAM3 overlay、物体位姿、grasp candidates、motion-planning 结果、参数、返回值和错误状态。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Action representation&lt;/strong&gt;：Python code-as-policy 程序；程序调用感知、几何、抓取、导航和控制 API，而不是直接输出固定维度 action vector。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Embodiment&lt;/strong&gt;：MuJoCo Playground 上的 Franka/LIBERO、Robosuite 单臂与双臂、BEHAVIOR-1K 移动操作，以及 YAM 双臂真实工作站。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;学习目标&lt;/strong&gt;：debug split 上提高成功率，并让修复模式在 validation split、未见任务或另一种 API 上复用。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Coordinator 为每个任务派生 Actor coding agent。Actor 在执行引擎中写程序、运行、查看 trace、诊断并修复；Coordinator 审核结构化发现，把可复用修复写入共享技能库。Evolutionary Search 同时维护多个候选程序，下一代以高分程序和残余失败 trace 为条件。&lt;/p&gt;
&lt;p&gt;数据流可概括为：&lt;code&gt;task + skills → actor 生成程序 → execution engine 记录 trace → agent 修复/验证 → coordinator 提炼 skill → 下一任务检索&lt;/code&gt;。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;Robot Execution Engine&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 每次 primitive 调用都会记录 API 名称、输入、输出、耗时、返回状态，以及调用前后的关键帧和相关数组。引擎不把整段视频塞给模型，而是围绕调用缓冲证据，让 agent 逐层缩小失败范围。&lt;/p&gt;
&lt;p&gt;例如 BEHAVIOR-1K 的 radio pickup 中，感知成功返回 radio 位姿，但 &lt;code&gt;navigate_to_pose&lt;/code&gt; 连续返回 &lt;code&gt;PLANNING_ERROR&lt;/code&gt;；trace 显示目标落在桌边约 20 cm 的碰撞缓冲区内。修复因此是从多个角度采样导航目标，而不是修改感知 prompt。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-aspire/coding_dojo.7sny9uhfpt.webp&quot; alt=&quot;Trace-guided debugging example from paper Figure 4&quot;&gt;&lt;/p&gt;
&lt;h4&gt;Continual Skill Library&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 技能不是完整任务脚本，而是异质的修复知识：定位消歧、导航恢复、抓取约束、motion primitive、场景推理和调试工作流。每条技能包含 failure signature、when-to-apply guard、repair strategy 和可选代码草图。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;aspire/sim/cap/skills/library.py&lt;/code&gt; 用 JSON 持久化 &lt;code&gt;Skill(name, code, docstring, occurrences, source_tasks, promoted)&lt;/code&gt;。&lt;code&gt;extract_from_code()&lt;/code&gt; 从成功 trial 的顶层函数中提取技能；&lt;code&gt;get_promoted_skills(min_occurrences=2)&lt;/code&gt; 自动把跨多次出现的函数标为 promoted，并可注入执行 namespace。&lt;code&gt;trial.py&lt;/code&gt; 只有在 &lt;code&gt;task_completed&lt;/code&gt; 且配置开启 &lt;code&gt;evolve_skill_library&lt;/code&gt; 时才提取并保存。&lt;/p&gt;
&lt;h4&gt;Evolutionary Search&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 搜索对象是可执行程序本身。每轮由 agent 根据 Top-3 历史候选、技能库和失败 trace 产生 $K$ 个候选，全部在 debug 配置执行，保留最高分者及其 trace，直到达到阈值或耗尽轮数。搜索结束后，只有在 validation 配置上通过的模式才进入技能库。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 令历史候选集合为 $\mathcal H$，第 $i$ 轮候选为 ${P_i^k}_{k=1}^K$，执行函数返回任务分数 $r$ 与 trace bundle $Z$：&lt;/p&gt;
&lt;p&gt;$$
(r_i^k, Z_i^k) = \operatorname{Execute}(P_i^k, S_{\rm dbg}),\qquad
k^\star = \arg\max_k r_i^k
$$&lt;/p&gt;
&lt;p&gt;若 $r_i^{k^\star} &gt; r^\star$，则更新当前最优程序 $P^\star$。达到 $r^\star \ge \theta$ 后，在独立验证集执行：&lt;/p&gt;
&lt;p&gt;$$
(r_{\rm val}, Z_{\rm val}) = \operatorname{Execute}(P^\star, S_{\rm val}),\qquad
\mathcal G = \operatorname{ExtractValidatedPatterns}(\mathcal H, P^\star, r_{\rm val}, Z_{\rm val})
$$&lt;/p&gt;
&lt;p&gt;其中 $S_{\rm dbg}$ 是用于产生修复的 seed，$S_{\rm val}$ 是 held-out seed，$K$ 是每轮候选数，$T$ 是最大轮数，$\theta$ 是成功阈值。&lt;strong&gt;【Analysis】&lt;/strong&gt; 这里的“参数更新”不是神经网络权重更新，而是程序文本、候选排序和外部技能库状态的更新。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; ASPIRE 没有传统意义上的 optimizer、batch 或 checkpoint。仿真 coding agent 固定为 Claude Code + Claude Opus 4.6（1M context），写 CaP-X Python 程序；真实机器人实验使用 Codex GPT-5.5 reasoning-xhigh。学习数据是任务环境的 debug seeds 和执行 trace，训练信号是程序在环境中的成功/失败与诊断证据。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 推理阶段不是固定 policy forward pass，而是“程序执行—观察—再生成”的闭环。LIBERO-Pro/Robosuite 为每个任务生成一个程序并跨 held-out seeds 执行；BEHAVIOR-1K 使用 incremental block execution，根据当前 multimodal trace 生成下一段代码。真实机器人仍使用自己的 perception、标定和控制 API，技能只作为 in-context guidance。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方仓库的关键落点如下：&lt;/p&gt;
&lt;p&gt;| 论文概念         | 代码位置                                      | 实际行为                                                                                                        |
| ---------------- | --------------------------------------------- | --------------------------------------------------------------------------------------------------------------- |
| Trace logger     | &lt;code&gt;aspire/sim/cap/integrations/trace_logger.py&lt;/code&gt; | &lt;code&gt;TracedApiMixin&lt;/code&gt; 包装 API 函数，记录参数、返回摘要、耗时、异常，并在 trial 结束时写 &lt;code&gt;trace.json&lt;/code&gt; 与 keyframes。 |
| Skill Library    | &lt;code&gt;aspire/sim/cap/skills/library.py&lt;/code&gt;            | JSON 持久化技能，按出现次数自动 promotion，并可注入 namespace。                                                 |
| Skill extraction | &lt;code&gt;aspire/sim/cap/skills/extractor.py&lt;/code&gt;          | 正则提取成功代码中的顶层函数及 docstring。                                                                      |
| Trial hook       | &lt;code&gt;aspire/sim/cap/envs/trial.py&lt;/code&gt;                | 仅在 &lt;code&gt;evolve_skill_library=true&lt;/code&gt; 且 task completed 时提取技能。                                                 |
| 实验入口         | &lt;code&gt;aspire/sim/.claude/*/fix-loop&lt;/code&gt;、&lt;code&gt;evosearch&lt;/code&gt;  | 通过 runbook 管理 debug/eval seed、重放和候选搜索，而不是一个端到端训练脚本。                                   |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 论文中的“技能验证”比最小 &lt;code&gt;SkillLibrary&lt;/code&gt; 类更严格：论文要求跨 debug 配置、遵守 API policy 并由 coordinator 审核；代码提供持久化和 promotion 机制，具体审核流程主要由 &lt;code&gt;.claude&lt;/code&gt; runbook 和 agent 协议承担。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; LIBERO-Pro 使用每任务 15 个 debug seeds、50 个 held-out eval seeds；Robosuite 使用 25 个 debug seeds、100 个 eval trials；BEHAVIOR-1K 使用 26–35 学习、1–25 评估，并报告 navigation 与 task success。对比 CaP-Agent0、OpenVLA、$\pi_0$ 和 $\pi_{0.5}$。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-aspire/fig-main-libero-pro.4xva4229e7.webp&quot; alt=&quot;LIBERO-Pro main results from paper&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;| Benchmark          |        ASPIRE 结果 | 对比观察                                                                                           |
| ------------------ | -----------------: | -------------------------------------------------------------------------------------------------- |
| LIBERO-Pro overall |                72% | CaP-Agent0 18%，ASPIRE 在 Object/Goal/Spatial 的 Pos+Task 平均增益分别达 77、41.5、42.5 个百分点。 |
| Robosuite mean     |                81% | CaP-Agent0 68%；双臂 handover 从 20% 提升到 92%。                                                  |
| BEHAVIOR-1K soda   |  Nav 92%，Task 88% | 超过 Human 的 80%/72% 与 CaP-Agent0 的 84%/72%。                                                   |
| BEHAVIOR-1K radio  | Nav 100%，Task 88% | CaP-Agent0 task success 为 56%，ASPIRE 提升 32 个百分点。                                          |&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-aspire/fig-main-b1k.2oc9kkhiyp.webp&quot; alt=&quot;BEHAVIOR-1K results from paper&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; LIBERO-Pro 消融中，不含执行引擎和进化搜索的 base system 宏平均成功率为 14%；加入 Robot Execution Engine 后升至 62%；再加入 Evolutionary Search 达到 72%。随着搜索轮数增加，前几轮收益最大，之后仍有提升但出现 diminishing returns。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-aspire/fig_evo_ablation_pos.6f1f5t6e7y.webp&quot; alt=&quot;Execution engine ablation from paper&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 用 LIBERO-90 累积的技能库零样本迁移到 LIBERO-Pro Long：$N=90$ 时 Pos 22.6%、Task 38.3%、Overall 30.5%，而 CaP-Agent0 Overall 仅 3.8%。库规模从 $N=0$、25、50 增大到 90 时，平均成功率整体上升，说明短任务修复可组合到更长任务。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-aspire/fig_transfer_library_scaling.wjapny63w.webp&quot; alt=&quot;Skill-library scaling on LIBERO-Pro Long&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 真实 YAM 双臂迁移中，仿真技能包括 soda-can pickup、bowl-on-plate placement 和 drawer push/pull。加入技能后，soda-can 成功率从 13/20 提升到 19/20，总 token 从 61.94M 降至 6.58M；drawer 从 0/20 提升到 11/20，总 token 从 334.917M 降至 81.67M；bowl placement 两组均为 20/20，但 token 从 8.65M 降至 5.11M。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 第一，trace 把“不可观测的失败”变成可定位的局部事件，减少盲目改 prompt。第二，程序空间天然可读、可编辑，修复可直接变成函数级技能。第三，候选群体保留了不同策略，能绕开单一修复路径的局部最优。最后，技能库让跨任务的边际成本下降，形成经验复利。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 真正的创新不是单独提出日志、RAG 或 evolutionary search，而是把三者组织成“执行证据 → 程序修复 → 验证晋升 → 未来检索”的持续闭环，并把学习产物从权重换成可审计的 sensorimotor code。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; CaP-Agent0 主要依赖视觉差分、预定义技能和每 episode 的 test-time retry；ASPIRE 让技能由 agent 从成功修复中发现，并在任务之间持久化。与端到端 VLA 相比，ASPIRE 不学习固定 action token policy，而是搜索可解释、可执行、可迁移的程序。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 方法依赖四个假设：API 足够表达任务；trace 能暴露根因而非只记录表象；语言模型能把证据转成合法修复；不同任务/embodiment 之间存在可抽象的失败模式。任一假设失效，技能检索可能变成噪声或错误代码复用。&lt;/p&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文将系统定位为初步的 continual learning 证据，尤其是 sim-to-real 只评估了三个技能和一个 YAM 平台；真实机器人仍需 agent 适配新的 perception、calibration 和 control API，而非直接部署仿真程序。长时程任务的搜索和 token 成本也仍然很高。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;代码技能抽取目前以顶层函数和出现次数为核心，函数名相同不代表语义相同，跨任务 promotion 可能误合并。&lt;/li&gt;
&lt;li&gt;论文结果依赖强大的闭源 coding agent、1M context 和大量执行预算；换模型后的收益尚未系统报告。&lt;/li&gt;
&lt;li&gt;进化搜索需要多次真实/仿真 rollout，安全性、并发资源和 wall-clock 成本会限制开放世界部署。&lt;/li&gt;
&lt;li&gt;失败 trace 仍由预先实现的 logger 采集；未被 API 暴露的接触力、遮挡或硬件故障无法自动诊断。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; ASPIRE 给 embodied AI 的启发是：下一代“模型规模”可能表现为可验证经验的规模，而不是参数量。值得继续追问：能否用类型系统或单元测试约束技能库，避免错误 promotion？能否把 trace 压缩成结构化世界模型，降低 token 和视频存储？能否让技能检索感知 embodiment 差异，并在执行前自动生成 API adapter？如果这些问题得到解决，robot policy 的持续学习就可能从“重新训练一个 checkpoint”转变为“维护一个会成长的机器人代码仓库”。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/139063757_p0_master1200.2yyzxgr9fg.webp"/><enclosure url="https://pic.hana0721.top/139063757_p0_master1200.2yyzxgr9fg.webp"/></item><item><title>AIM：带空间价值图的意图感知统一世界-动作模型论文精读</title><link>https://agusexp25.top/blog/paper-deep-dive-aim</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-aim</guid><description>精读 AIM：用空间价值图把视频世界建模与动作意图连接起来，并以 intent-causal attention 与 GRPO 提升 RoboTwin 操作成功率。</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;论文名称&lt;/strong&gt;：《AIM: Intent-Aware Unified world action Modeling with Spatial Value Maps》&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;作者&lt;/strong&gt;：Liaoyuan Fan、Zetian Xu、Chen Cao、Wenyao Zhang、Mingqi Yuan、Jiayu Chen&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;论文链接&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2604.11135&quot;&gt;arXiv:2604.11135&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;代码 / 项目页&lt;/strong&gt;：截至本文撰写时，arXiv 页面、LaTeX 源码和论文正文未提供可核验的官方代码或项目链接；因此下文不会虚构代码行为。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-aim/framework-crop.3uvkszqxqc.webp&quot; alt=&quot;AIM 框架：联合预测未来帧、空间价值图和动作，并在第二阶段用 PPO/GRPO 类后训练优化动作头（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; AIM（Intent-Aware Unified world action Modeling）认为，视频模型知道“场景将如何变化”，但动作还需要知道“应该在哪里、以什么意图交互”。它在未来 RGB 与动作之间加入对齐的 &lt;strong&gt;Spatial Value Map&lt;/strong&gt;，再用 &lt;strong&gt;intent-causal attention&lt;/strong&gt; 强制动作分支只能通过价值图获得未来信息，最后冻结视频和值图分支，仅用稠密空间奖励和稀疏任务奖励对动作头做 GRPO 后训练。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;提出空间价值图作为显式的控制接口，把抓取、放置和接触区域编码为与未来画面对齐的热图。&lt;/li&gt;
&lt;li&gt;基于 Wan2.2-TI2V-5B 构建 &lt;strong&gt;mixture-of-transformers（MoT）&lt;/strong&gt;，在一个模型中联合建模未来视频、价值图与连续双臂动作。&lt;/li&gt;
&lt;li&gt;设计 intent-causal attention：未来 RGB 不得直接流向动作 token，动作只能读取价值图所汇聚的意图信息。&lt;/li&gt;
&lt;li&gt;提出 self-distillation RL：固定视频和值图专家，只更新动作头，用价值图投影得到的 dense reward 引导闭环控制。&lt;/li&gt;
&lt;li&gt;构建约 30K 条 RoboTwin 2.0 仿真轨迹，AIM 在 50 个任务上达到 Easy &lt;strong&gt;94.0%&lt;/strong&gt;、Hard &lt;strong&gt;92.1%&lt;/strong&gt; 平均成功率。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 传统 VLA 通常直接学习 $p(amid o,c)$：输入观测和语言，输出动作。这类 imitation policy 能复现示教，却没有显式表示动作将导致的未来状态。Video-based world-action model 则尝试同时预测未来视频和动作，但有两种困难：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;如果动作和未来 RGB 共享同一表示，动作头要从密集的外观变化中寻找少量接触线索，逆动力学学习很难。&lt;/li&gt;
&lt;li&gt;如果视频模型和动作模型串联，系统要维护额外的接口，且视频先验难以端到端影响动作。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;论文将 AIM 与已有路线的区别概括为“增加一个面向意图的空间中间层”：它不是把 value map 当作普通辅助 perception head，而是把价值图放进未来预测与动作解码之间的因果路径。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-aim/typicalvsaim-crop.3k8qzubpqw.webp&quot; alt=&quot;典型统一世界-动作模型直接从未来视觉表示解码动作，AIM 则增加空间价值图接口（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这里的关键不是“热图通常比 RGB 更小”，而是价值图把未来状态转换成了控制问题需要的坐标：从“画面变成什么样”变成“下一步应该在哪个像素附近发生交互”。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 给定同步多视角观测和历史动作：&lt;/p&gt;
&lt;p&gt;$$
\mathcal{H}&lt;em&gt;t={o&lt;/em&gt;{t-k:t},a_{t-k:t-1}},
$$&lt;/p&gt;
&lt;p&gt;AIM 预测未来 $h$ 步的 RGB 帧 $X^+$、空间价值图 $M^+$ 和动作 chunk $A^+$。其核心分解为：&lt;/p&gt;
&lt;p&gt;$$
p(X^+,M^+,A^+\mid\mathcal{H}_t)
=p(X^+,M^+\mid\mathcal{H}_t)
p(A^+\mid\mathcal{H}_t,M^+).
$$&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Observation&lt;/strong&gt;：头部相机与左右腕部相机组成的同步 RGB 多视角视频；历史动作也进入 prefix。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Language&lt;/strong&gt;：任务指令由预训练 T5 编码，直接注入视频分支。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Action&lt;/strong&gt;：双臂连续控制向量，包含平移、旋转和夹爪等量；论文未给出统一的维度记号以外的任务级动作维度表。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Value map&lt;/strong&gt;：与未来 RGB 帧空间对齐的 $H\times W\times3$ 图。Pick 任务标注抓取接触区域，Place 任务标注放置接触区域。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Embodiment / benchmark&lt;/strong&gt;：RoboTwin 2.0 的 50 个仿真双臂操作任务，评测 Easy 与 Hard 两种设置。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 价值图并非传统标量 $V(s)$：它是带像素位置的局部可行性估计。论文在 RL 阶段把动作落点投影回图像，再读取该位置的值，因此图像坐标和机器人动作之间必须有可用的相机标定。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; AIM 由 Wan2.2-TI2V-5B 初始化的视频生成模型和一个较窄的 action head 组成。三类未来 token（RGB、value map、action）从噪声开始；视频分支共同去噪 RGB 与价值图，动作头去噪连续动作。每层只共享 masked self-attention，前馈网络保持分支专属。数据流是：多视角视频与语言进入视频先验 → 生成未来 RGB 与价值图 → 价值图通过受限注意力传给动作头 → 输出动作 chunk。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;Multi-view packing 与 VAE tokenization&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 三个相机被拼成 T-pose canvas：头部相机位于顶部，左右腕部相机放在两侧。RGB 帧与 ASVM（action-based spatial value map）共享 Wan2.2 VAE：&lt;/p&gt;
&lt;p&gt;$$
z_t^o=E_{\mathrm{vae}}(\tilde{x}&lt;em&gt;t),\qquad
z_t^m=E&lt;/em&gt;{\mathrm{vae}}(\tilde{m}_t).
$$&lt;/p&gt;
&lt;p&gt;价值图输入在初始化时是全黑图像，表示没有先验的空间意图；模型在 flow-matching 去噪过程中逐渐生成热点。动作向量通过轻量 MLP $E_a$ 变成 action token，文本通过 T5 变成语言 token。&lt;/p&gt;
&lt;h4&gt;Mixture-of-Transformers&lt;/h4&gt;
&lt;p&gt;视频、价值图和动作流分别拥有自己的 $Q,K,V$ 投影，但投影到共同的 attention 维度后共享一次 masked self-attention，再投影回各自隐藏空间。视频流额外通过 cross-attention 接收 T5 指令；动作头不直接接收语言 token，而是从共享的世界和值图表示间接获得任务语义。&lt;/p&gt;
&lt;h4&gt;Intent-causal attention&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 三类未来 token 可见范围不同：&lt;/p&gt;
&lt;p&gt;$$
\begin{aligned}
\mathcal{V}&lt;em&gt;x&amp;#x26;=[z_t^o,z&lt;/em&gt;{t-k:t-1}^o,z_{t-k:t-1}^a,z^\ell,z^x],\
\mathcal{V}&lt;em&gt;m&amp;#x26;=[z_t^o,z&lt;/em&gt;{t-k:t-1}^o,z^x,z^m],\
\mathcal{V}&lt;em&gt;a&amp;#x26;=[z_t^o,z&lt;/em&gt;{t-k:t-1}^a,z^m,z^a].
\end{aligned}
$$&lt;/p&gt;
&lt;p&gt;因此：未来视频可以看历史和语言；价值图可以看当前观测与未来视频；动作只能看当前观测、历史动作和未来价值图，&lt;strong&gt;不能直接看未来 RGB&lt;/strong&gt;。这条可见性约束把未来视觉信息压缩成显式的“意图接口”。&lt;/p&gt;
&lt;h4&gt;Spatial value-map annotation&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Pick 任务使用仿真的接触检测 API 获取夹爪与物体的接触点云，投影到图像平面后用高斯核平滑，形成抓取 affordance heat map。Place 任务在物体质心速度低于阈值、达到稳定放置时提取物体与支撑面的接触区域，并生成放置可行性热图。高斯核宽度会随相机参数和深度调整，以维持跨视角的有效支持范围。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;联合预测目标&lt;/h4&gt;
&lt;p&gt;$$
\mathcal{L}=\mathcal{L}&lt;em&gt;{\mathrm{rgb}}
+\lambda_m\mathcal{L}&lt;/em&gt;{\mathrm{map}}
+\lambda_a\mathcal{L}_{\mathrm{act}}.
$$&lt;/p&gt;
&lt;p&gt;其中 $\mathcal{L}&lt;em&gt;{\mathrm{rgb}}$ 和 $\mathcal{L}&lt;/em&gt;{\mathrm{map}}$ 是未来 RGB 与价值图的 flow-matching 速度场损失，$\mathcal{L}_{\mathrm{act}}$ 是动作头的 inverse-dynamics 损失；$\lambda_m,\lambda_a$ 控制两类辅助目标的权重。&lt;strong&gt;【Paper】&lt;/strong&gt; 论文没有在正文中给出所有实验的具体权重表。&lt;/p&gt;
&lt;h4&gt;稠密空间奖励&lt;/h4&gt;
&lt;p&gt;$$
r_t=\lambda_d r_t^{\mathrm{dense}}+\lambda_s r_t^{\mathrm{sparse}},\qquad
r_t^{\mathrm{dense}}=M_t(\Pi(p_t)).
$$&lt;/p&gt;
&lt;p&gt;$p_t$ 是动作预测的落点或末端执行器目标，$\Pi$ 是相机投影，$M_t$ 是冻结价值头在该时刻的图。动作落在高价值区域时得到更高 dense reward；任务成功信号提供 sparse reward。&lt;/p&gt;
&lt;h4&gt;GRPO / PPO-style clipped objective&lt;/h4&gt;
&lt;p&gt;$$
\mathcal{L}_{\mathrm{GRPO}}(\phi)=\mathbb{E}_t\left[\min\left(
\rho_t(\phi)\hat A_t,
\operatorname{clip}(\rho_t(\phi),1-\epsilon,1+\epsilon)\hat A_t
\right)\right],
$$&lt;/p&gt;
&lt;p&gt;$$
\rho_t(\phi)=
\frac{\pi_\phi(a_t\mid\mathcal{H}&lt;em&gt;t,m&lt;/em&gt;{t+1:t+h})}
{\pi_{\phi_{\mathrm{old}}}(a_t\mid\mathcal{H}&lt;em&gt;t,m&lt;/em&gt;{t+1:t+h})}.
$$&lt;/p&gt;
&lt;p&gt;其中 $\hat A_t$ 为联合奖励下的 advantage，$\epsilon$ 是 clipping 系数。论文称这一过程为 self-distillation：冻结的价值图头在在线环境中为动作头提供自监督信号。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Stage I 在 30K 条 RoboTwin 仿真轨迹上做监督训练，联合学习未来视频、价值图和动作。Stage II 从 Stage I checkpoint 出发，冻结视频生成模型和值图头，只更新 action head；环境交互产生 sparse task reward，价值图投影产生 dense reward，再用 GRPO 更新策略。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 部署时 AIM 以 chunk 为单位自回归 rollout。每一步根据历史观测、历史动作和语言生成未来 RGB、价值图及动作；新 chunk 被追加到 transformer prefix，旧 token 通过 KV cache 复用，不必重复计算完整历史。动作分支读取预测价值图而非未来 RGB，因此未来想象既服务于控制，又被空间接口隔离。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 论文未提供可核验的官方 GitHub 仓库、训练脚本或配置文件，本文无法进行代码级对照。以下内容仅来自论文：Wan2.2-TI2V-5B 初始化、T-pose 多视角拼接、30K RoboTwin 轨迹、MoT、intent-causal attention 和 GRPO 后训练。若后续释出代码，应重点核查 action token 的维度、flow-matching sampler、mask 实现、相机投影与 reward 权重，因为这些细节会直接影响复现结果。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 数据集包含约 30K 条 RoboTwin 2.0 仿真操作轨迹，每条轨迹同步保存多视角视频、动作序列、任务 ID 和逐步价值图标注。评测覆盖 50 个任务，分别在 Easy 与 Hard 设置下报告 success rate（SR）。对比方法包括 $\pi_{0.5}$、X-VLA、Motus、Fast-WAM、Giga-World、LingBot-VA，以及未经过 RL 的 Stage1。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-aim/visual-crop.szorrplqr.webp&quot; alt=&quot;RoboTwin 2.0 中的放置、按压、扫描、旋转和开合任务示例（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 平均成功率如下：&lt;/p&gt;
&lt;p&gt;| 方法 | Easy | Hard | 备注 |
| --- | ---: | ---: | --- |
| $\pi_0$ | 65.9% | 58.4% | 外部 baseline |
| $\pi_{0.5}$ | 82.7% | 76.8% | 外部 baseline |
| X-VLA | 72.8% | 72.8% | 外部 baseline |
| Motus | 88.7% | 87.0% | unified world-action baseline |
| Fast-WAM | 91.9% | 91.8% | 外部 baseline |
| Giga-World | 87.0% | 85.0% | 外部 baseline |
| LingBot-VA | 92.9% | 91.6% | 外部 baseline |
| Stage1 | 93.0% | 92.0% | AIM，无 RL 后训练 |
| &lt;strong&gt;AIM&lt;/strong&gt; | &lt;strong&gt;94.0%&lt;/strong&gt; | &lt;strong&gt;92.1%&lt;/strong&gt; | Stage1 + action-head GRPO |&lt;/p&gt;
&lt;p&gt;相对 Motus，AIM 在 Easy / Hard 分别提升 &lt;strong&gt;5.3 / 5.0 个百分点&lt;/strong&gt;；相对 $\pi_{0.5}$ 提升 &lt;strong&gt;11.3 / 15.3 个百分点&lt;/strong&gt;。作者特别指出，Place Mouse Pad、Scan Object、Turn Switch 等接触敏感或阶段依赖任务的收益更明显：Easy / Hard 成功率分别达到 97/95%、100/98% 和 100/98%。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; Stage1 到 AIM 只增加 1.0 和 0.1 个百分点，说明 RL 的平均收益有限，但它验证了“价值图可作为动作头的在线 dense teacher”。真正的大部分性能来自视频先验、空间中间表示与监督联合训练的组合，而不是单独依赖 RL。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文给出的消融重点是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;去掉空间价值图 / 辅助目标后，动作头失去显式的接触意图接口，性能下降。&lt;/li&gt;
&lt;li&gt;Stage1（监督训练）为 93.0% / 92.0%，加入 self-distillation RL 后为 94.0% / 92.1%。&lt;/li&gt;
&lt;li&gt;在接触敏感和长时序任务上，带 intent-causal attention 的 AIM 比直接从未来 RGB 解码动作的统一模型更稳定。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;论文正文没有提供每个 mask 变体、奖励权重和价值图分辨率的完整数值表，因此不应把上述趋势扩展成未报告的精确增益。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Easy 与 Hard 的差距只有 1.9 个百分点（94.0% → 92.1%），但论文没有给出跨机器人 embodiment、真实机器人或零样本新任务的实验。作者观察到，价值图热点会随操作阶段移动，并集中在抓取、放置和接触区域，而不是一般显著性区域。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这更像是“同一仿真任务分布内的难度泛化”，不能等同于 sim-to-real 或跨 embodiment 泛化。真实部署仍需验证深度变化、标定误差和接触动力学偏差对投影 dense reward 的影响。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;把未来状态转换成动作坐标&lt;/strong&gt;：RGB 预测关注外观，价值图关注交互位置；动作头不必从整张未来图中寻找接触线索。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;因果隔离减少 shortcut&lt;/strong&gt;：动作不能直接读取未来 RGB，必须经过价值图，因此“看到某个物体纹理就回归某个动作”的捷径受到限制。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;视频先验负责可达性&lt;/strong&gt;：Wan2.2 生成的未来帧提供时间与场景演化先验，价值图再从这些未来状态中提取控制相关区域。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;dense + sparse reward 互补&lt;/strong&gt;：价值图提供局部、连续的学习信号，任务奖励提供最终成功约束。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;真正的创新组合是 &lt;strong&gt;spatial value map + intent-causal attention + selective RL&lt;/strong&gt;：价值图不是额外可视化，而是唯一允许未来信息进入动作分支的通道；RL 也不更新整个世界模型，而是把冻结价值专家蒸馏给 action head。这使“世界建模”和“动作优化”之间形成清晰的责任边界。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;| 维度 | 直接 VLA | 典型 unified world-action | AIM |
| --- | --- | --- | --- |
| 未来建模 | 通常没有 | 预测未来 RGB 与动作 | 预测未来 RGB、价值图与动作 |
| 动作接口 | 观测 / 语言 → action | 共享未来视觉表示 | 未来价值图 → action |
| 空间意图 | 隐式 | 隐式或辅助头 | 显式对齐热图 |
| 注意力约束 | 常规 causal mask | 共享或简单 mask | intent-causal mask，禁止 RGB→action 直连 |
| 后训练 | imitation / RL 视方法而定 | 多模块优化 | 冻结视频和值图，只用 GRPO 更新 action head |&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;接触区域可以由仿真物理状态可靠投影到相机平面；现实中的遮挡和标定误差不会完全破坏监督。&lt;/li&gt;
&lt;li&gt;一个未来 horizon 内的价值图足以表达动作意图；更长任务可由 chunk-wise rollout 递归解决。&lt;/li&gt;
&lt;li&gt;价值图的局部响应与任务成功相关，能够作为 dense reward，而不是仅仅成为显著性图。&lt;/li&gt;
&lt;li&gt;共享 attention、分支专属 FFN 足以适配 RGB、价值图和动作三种统计不同的 token。&lt;/li&gt;
&lt;li&gt;30K 仿真轨迹覆盖了 RoboTwin 的主要接触模式；跨环境与真实机器人迁移仍未被证明。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;论文正文没有单独列出完整的 limitations 小节，主要可从实验范围和方法描述中确认：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;实验集中在 RoboTwin 2.0 仿真，未报告真实机器人部署结果。&lt;/li&gt;
&lt;li&gt;数据集与价值图标注依赖仿真接触事件和精确相机投影。&lt;/li&gt;
&lt;li&gt;论文只展示单步 chunk-wise 自回归控制，没有评估更深层的树搜索或多步模型式规划。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;价值图可能自洽但不真实&lt;/strong&gt;：RL dense reward 读取的是模型自己预测的图；如果价值头产生系统性错误，action head 可能学会迎合错误热点。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;空间接口增加标定依赖&lt;/strong&gt;：$M_t(\Pi(p_t))$ 需要把 3D 动作目标投影到正确相机，手眼标定误差会同时污染奖励和训练解释。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;RGB 预测质量未被直接度量&lt;/strong&gt;：成功率提升不能证明未来帧在像素或物理层面准确；视频分支可能只生成足够支持价值图的“控制相关幻觉”。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;仿真标签与真实接触有鸿沟&lt;/strong&gt;：真实世界的摩擦、柔性物体和部分遮挡难以像仿真一样获取接触点云。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;RL 增益依赖奖励权重&lt;/strong&gt;：论文未公开完整的 $\lambda_d,\lambda_s$、采样规模和 GRPO 超参数，复现和公平比较仍有不确定性。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;计算成本可能很高&lt;/strong&gt;：Wan2.2-TI2V-5B 与多路未来生成对实时控制的延迟、显存和能耗没有系统报告。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; AIM 提供了一个很有用的设计原则：统一模型不一定要让所有模态彼此直接可见，更重要的是为不同任务定义“谁可以读取谁”的语义接口。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;从 value map 推广到 affordance field&lt;/strong&gt;：抓取和放置可扩展为接触法向、风险、可操作性或不确定性图，让动作头读取的不只是成功概率。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;把价值图变成可校准的接口&lt;/strong&gt;：可以用 ensemble、温度标定或 conformal prediction 估计空间值的不确定性，避免 action head 盲信错误热点。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;多步规划与 receding horizon&lt;/strong&gt;：当前方法按 chunk 自回归，但没有树搜索；未来可让价值图评估多个候选 chunk，并在每个真实观测后重新规划。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;跨 embodiment 的 token schema&lt;/strong&gt;：T-pose packing 和相机投影依赖具体机器人。若把价值图坐标改成机器人无关的 3D / object-centric 表示，可能减少迁移成本。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;真实世界的自蒸馏闭环&lt;/strong&gt;：仿真价值图可以作为预训练 teacher，真实机器人只需用少量成功/失败信号校准 action head，从而降低真实数据采集压力。&lt;/li&gt;
&lt;/ol&gt;</content:encoded><h:img src="https://pic.hana0721.top/145491169_p0_master1200.2dpccm5v9t.webp"/><enclosure url="https://pic.hana0721.top/145491169_p0_master1200.2dpccm5v9t.webp"/></item><item><title>Adaptive Action Chunking 论文精读：让 VLA 在推理时自己决定执行多长</title><link>https://agusexp25.top/blog/paper-deep-dive-adaptive-action-chunking</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-adaptive-action-chunking</guid><description>精读 AAC：用多候选动作的 action entropy 在推理时自适应选择 chunk size，在不改训练架构的情况下平衡 VLA 的反应性与时间一致性。</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;论文名称&lt;/strong&gt;：《Adaptive Action Chunking at Inference-time for Vision-Language-Action Models》&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;作者&lt;/strong&gt;：Yuanchang Liang、Xiaobo Wang、Kai Wang、Shuo Wang、Xiaojiang Peng、Haoyu Chen、David Kim Huat Chua、Prahlad Vadakkepat&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;会议 / 期刊&lt;/strong&gt;：CVPR 2026&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;论文链接&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2604.04161&quot;&gt;arXiv:2604.04161&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;代码链接&lt;/strong&gt;：&lt;a href=&quot;https://github.com/Adaptive-Action-Chunking/gr00t-multi-sample&quot;&gt;Adaptive-Action-Chunking/gr00t-multi-sample&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;项目主页&lt;/strong&gt;：&lt;a href=&quot;https://lance-lot.github.io/adaptive-chunking.github.io/&quot;&gt;adaptive-chunking.github.io&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-adaptive-action-chunking/aac-fixed-chunk-results.webp&quot; alt=&quot;不同固定 chunk size 对 RoboCasa 任务成功率的影响（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 现有 VLA 通常在推理时固定执行长度：chunk 太长，机器人不能及时利用新观测；chunk 太短，又会带来重规划开销和 chunk 间的 mode-jumping。AAC（Adaptive Action Chunking）让模型并行采样多条 action chunk，用连续动作和离散夹爪动作的预测熵估计不确定性，再在每个观测时刻选择合适的执行长度。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;将“推理时 action chunk size 的选择”明确为 VLA 部署中的独立问题，并展示固定长度对不同任务并不总是合适。&lt;/li&gt;
&lt;li&gt;提出无需额外训练、无需修改网络结构的 AAC：从多条候选 action chunk 估计 action entropy，以熵曲线的一阶差分选择 chunk size。&lt;/li&gt;
&lt;li&gt;用最小 action magnitude 约束避免模型在近似静止状态下过度自信，保证执行的 chunk 至少包含足够运动。&lt;/li&gt;
&lt;li&gt;在 RoboCasa、LIBERO、LIBERO-Pro、$pi_{0.5}$ 和真实 Realman 机械臂上验证，平均成功率与 OOD 鲁棒性均优于固定 chunk baseline。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; AAC 的创新点不在于训练一个新的 Policy，而在于把“模型已经生成的多个可能动作”重新解释为一个可用于控制频率调度的置信度信号。这使它可以作为 GR00T、$pi_{0.5}$ 等 flow-matching action head 的推理插件。&lt;/p&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Action Chunking 指在一次 observation 后预测一段动作，并连续执行其中一部分，再重新规划。它能降低单步 Behavior Cloning 的 compounding error，已经成为 ACT、Diffusion Policy、GR00T、$pi_0$ 和 SmolVLA 等方法的常见范式。&lt;/p&gt;
&lt;p&gt;固定执行长度却有结构性矛盾：&lt;/p&gt;
&lt;p&gt;| 执行策略 | 优点                         | 风险                                                 |
| -------- | ---------------------------- | ---------------------------------------------------- |
| 长 chunk | 少调用 VLA，动作时间一致性好 | 对新观测反应慢，精细接触阶段容易错过修正机会         |
| 短 chunk | 频繁闭环，能及时纠偏         | 推理开销大，连续 chunk 之间容易不连续或 mode-jumping |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; BID、TV-BID 和 SGAC 可以改善 chunk 融合或一致性，但仍使用整个 episode 固定的 chunk size；基于强化学习的自适应方案又依赖手工 value function 或仿真 reward，难以直接迁移到真实机器人。AAC 的目标是只依赖当前 Policy 的预测本身。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 设一个带 flow-matching action head 的 VLA 在时刻 $t$ 根据观测 $o_t$ 生成长度为 $H$ 的动作序列：&lt;/p&gt;
&lt;p&gt;$$
\mathbf A_t^n = {\mathbf a_t^n, \mathbf a_{t+1}^n, \ldots, \mathbf a_{t+H-1}^n},\quad n=1,\ldots,N.
$$&lt;/p&gt;
&lt;p&gt;每个动作可包含连续的末端平移、旋转和离散夹爪状态。AAC 要从这些候选中决定执行前 $h^*\le H$ 步：&lt;/p&gt;
&lt;p&gt;$$
h^*(o_t)=\text{chunk selector}({\mathbf A_t^n}_{n=1}^{N}).
$$&lt;/p&gt;
&lt;p&gt;以论文中的 7-DoF 单臂为例，动作是 $[\Delta x,\Delta y,\Delta z,\Delta R_x,\Delta R_y,\Delta R_z,G]$。RoboCasa 使用 Franka Panda 与三路 RGB 视角；LIBERO 使用前视和腕部 RGB 视角。两套 benchmark 都以 GR00T N1.5 为基础 Policy，训练 action horizon 为 16。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方客户端将 Policy 返回的张量整理为 &lt;code&gt;(N, T, 7)&lt;/code&gt;：前 3 维是 &lt;code&gt;action.end_effector_position&lt;/code&gt;，接着 3 维是 &lt;code&gt;action.end_effector_rotation&lt;/code&gt;，第 7 维是 &lt;code&gt;action.gripper_close&lt;/code&gt;。默认 &lt;code&gt;n_samples=20&lt;/code&gt;，并在每次重新规划时选择 chunk size，再执行选定 chunk 的前缀。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-adaptive-action-chunking/aac-method.webp&quot; alt=&quot;AAC 系统总览：GR00T 生成多条候选 chunk，AAC 依据 action entropy 决定执行长度（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; VLM 根据图像、语言和状态提供条件，Diffusion / Flow-Matching action head 并行生成 $N$ 条长度为 $H$ 的候选轨迹；AAC 统计每个未来时刻的动作熵，选出 $h^&lt;em&gt;$ 后只执行前 $h^&lt;/em&gt;$ 步，再获取新观测并重复该过程。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;多候选 Action Chunk&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：当前视觉、语言指令和 proprioception，以及 $N$ 份独立初始噪声。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;中间模块&lt;/strong&gt;：GR00T 的 VLM backbone、state encoder、action encoder、DiT action head、action decoder。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：形状约为 &lt;code&gt;(N, H, action_dim)&lt;/code&gt; 的干净动作 chunk。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要&lt;/strong&gt;：扩散模型本身输出连续值而非 token 概率；多次采样可以用样本统计量近似当前观测下的动作分布。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;deployment_scripts/action_head_utils.py&lt;/code&gt; 从 &lt;code&gt;torch.randn(batch_size, action_horizon, action_dim)&lt;/code&gt; 初始化噪声，随后进行 Euler flow-matching 更新。批次维度直接承载多样本，因此多候选动作可以一次 batched forward 完成。&lt;/p&gt;
&lt;h4&gt;Action Entropy Estimator&lt;/h4&gt;
&lt;p&gt;连续平移和旋转视为高斯样本，用协方差矩阵的 log-determinant 计算 Gaussian differential entropy；二值夹爪用 Bernoulli / Shannon entropy。三者加权求和形成每个时间步的总熵。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;action_entropy_v2.py&lt;/code&gt; 的 &lt;code&gt;gaussian_entropy_from_samples&lt;/code&gt; 对样本协方差加 &lt;code&gt;1e-6 I&lt;/code&gt; 后用 Cholesky 求 log-det；样本数 $N\le1$ 时返回 0。&lt;code&gt;bernoulli_entropy_from_samples&lt;/code&gt; 以样本中夹爪关闭的比例估计 $p_1$，并对概率裁剪到 $[10^{-9},1-10^{-9}]$。&lt;/p&gt;
&lt;h4&gt;Chunk Size Selector&lt;/h4&gt;
&lt;p&gt;AAC 不直接寻找熵最小的时刻，而是先计算前缀 chunk 的平均熵，再寻找曲线的一阶差分最大处。直觉是：在前缀长度增加到某个阶段后，后续动作的不确定性出现明显跃迁，那里是“继续 open-loop 执行”与“重新观察”之间的折中点。&lt;/p&gt;
&lt;h4&gt;Minimum Action Magnitude&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 仅靠熵可能在模型预测“原地不动”时给出过短 chunk。作者定义平移、旋转和夹爪切换的总动作幅度，并要求它超过阈值。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;action_magnitude&lt;/code&gt; 默认考察 $k=2,\ldots,16$，平移使用前缀位移的范数，旋转使用四元数复合后的范数，夹爪状态变化加权 &lt;code&gt;0.2&lt;/code&gt;。&lt;code&gt;move_th=3&lt;/code&gt; 时，代码取第一个幅度超过阈值的长度，并与熵选择结果取最大值。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;p&gt;对第 $i$ 个未来时刻，连续动作样本的协方差为 $\Sigma_i$，维度为 $d$，则 Gaussian entropy 为：&lt;/p&gt;
&lt;p&gt;$$
E_{\mathrm{gauss}}^i=\frac12\log\left((2\pi e)^d\det(\Sigma_i)\right).
$$&lt;/p&gt;
&lt;p&gt;夹爪样本中关闭比例为 $p_i$，则：&lt;/p&gt;
&lt;p&gt;$$
E_{\mathrm{grip}}^i=-p_i\log p_i-(1-p_i)\log(1-p_i).
$$&lt;/p&gt;
&lt;p&gt;平移、旋转和夹爪熵相加：&lt;/p&gt;
&lt;p&gt;$$
E^i=E_{\mathrm{pos}}^i+E_{\mathrm{rot}}^i+E_{\mathrm{grip}}^i.
$$&lt;/p&gt;
&lt;p&gt;长度为 $h$ 的前缀平均熵为：&lt;/p&gt;
&lt;p&gt;$$
\overline E_h=\frac1h\sum_{i=t}^{t+h-1}E^i.
$$&lt;/p&gt;
&lt;p&gt;论文给出的 selector 是：&lt;/p&gt;
&lt;p&gt;$$
h^*=\max\left(\arg\max_h(\overline E_{h+1}-\overline E_h),\xi\right),
$$&lt;/p&gt;
&lt;p&gt;其中 $\xi$ 是最小长度约束。&lt;strong&gt;【Code】&lt;/strong&gt; 实现中先对 &lt;code&gt;chunk_mean&lt;/code&gt; 做 &lt;code&gt;np.diff&lt;/code&gt; 和 &lt;code&gt;np.argmax&lt;/code&gt;，将候选长度下限设为 2；随后计算幅度对应的 &lt;code&gt;min_id&lt;/code&gt;，返回 &lt;code&gt;max(min_id, best_k_entropy)&lt;/code&gt;。补充材料给出的 movement energy 阈值是 $\alpha=3$。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; AAC 本身不引入训练目标。实验从公开 GR00T N1.5 checkpoint 出发，只微调 diffusion head，冻结 Eagle-2 VLM backbone 和 vision projector。RoboCasa 使用 MimicGen 生成的 100 条 demo，每个任务微调 90 epochs；LIBERO 的 40 个任务联合训练 90 epochs；训练使用 8 张 NVIDIA A800 与 mixed precision。&lt;/p&gt;
&lt;p&gt;因此，训练阶段的策略仍是普通 GR00T 的 flow-matching action head；AAC 仅在测试时读取多个候选输出。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在每个 observation timestep，模型并行采样 $N$ 条候选 chunk，计算每个未来时刻的动作熵和前缀平均熵，得到 $h^&lt;em&gt;$；随后只执行第一条候选 chunk（默认 chunk id 为 0）的前 $h^&lt;/em&gt;$ 步，执行完再重新观测。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;inference_client_action_entropy.py&lt;/code&gt; 将输出切成 position / rotation / gripper 三组，调用 &lt;code&gt;select_chunk_size(..., method=&apos;gaussian_bernoulli&apos;, move_th=3)&lt;/code&gt;，裁剪到 &lt;code&gt;:chunk_size&lt;/code&gt; 后逐步执行。可选的 &lt;code&gt;backward&lt;/code&gt; chunk-id selector 会比较当前候选与上一次未执行动作的重叠部分；默认配置使用第 0 条候选。&lt;/p&gt;
&lt;p&gt;&amp;#x3C;Algorithm
number={2}
title=&apos;Adaptive Action Chunking Inference&apos;
inputLabel=&apos;输入&apos;
outputLabel=&apos;输出&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;| 论文描述           | 官方代码位置                                                   | 实际行为                                                                                                            |
| ------------------ | -------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
| 多样本 action head | &lt;code&gt;gr00t-multi-sample/deployment_scripts/action_head_utils.py&lt;/code&gt;   | 在 batch 维生成多份噪声并执行相同 Euler flow-matching 更新                                                          |
| 熵估计与 selector  | &lt;code&gt;libero/action_optimization/action_entropy_v2.py&lt;/code&gt;              | 支持 &lt;code&gt;gaussian_bernoulli&lt;/code&gt;、&lt;code&gt;gaussian_only&lt;/code&gt;、&lt;code&gt;variance&lt;/code&gt;、&lt;code&gt;separate&lt;/code&gt;、&lt;code&gt;binning&lt;/code&gt; 五种实验模式，默认 benchmark 使用前者 |
| 最小动作幅度       | 同上 &lt;code&gt;action_magnitude&lt;/code&gt; / &lt;code&gt;find_first_idx&lt;/code&gt;                     | $k=2\ldots16$，阈值由 &lt;code&gt;move_th&lt;/code&gt; 传入，默认实验命令为 3                                                              |
| 推理循环           | &lt;code&gt;libero/benchmark_scripts/inference_client_action_entropy.py&lt;/code&gt;  | 每次请求后裁剪动作 chunk，执行完 chunk 才发起下一次请求                                                             |
| 默认样本数         | &lt;code&gt;scripts/policy_server_robocasa.py&lt;/code&gt;、&lt;code&gt;policy_server_libero.py&lt;/code&gt; | &lt;code&gt;n_samples=20&lt;/code&gt;                                                                                                      |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 论文把 AAC 描述为通用的 inference-time 算法，但官方仓库目前主要围绕 GR00T server 与 LIBERO/RoboCasa client 组织；$pi_{0.5}$ 的结果来自对应 benchmark 客户端的适配，而不是一个完全独立的统一推理 API。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-adaptive-action-chunking/aac-simstep.webp&quot; alt=&quot;AAC 在 LIBERO-Spatial 任务中的 chunk size 决策分布（论文 Figure 4）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; RoboCasa 包含 24 个厨房操作任务，分为 Relocation、Container、Rotation、Button 四组；LIBERO 包含 Spatial、Long、Object、Goal 四个 suite，每组 10 个任务。仿真评估分别使用 RoboCasa 每任务 100 次 rollout、LIBERO 每任务 50 次 rollout。&lt;/p&gt;
&lt;p&gt;真实实验使用 Realman 单臂机器人与 Mycobot gripper，两路 RGB（腕部和侧视），每个任务采集 50 条 SpaceMouse 示教，训练 300 epochs，每任务评估 20 次、每次最多 600 action steps。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;| 方法               | RoboCasa Avg. | LIBERO Avg. | LIBERO-Long |
| ------------------ | ------------: | ----------: | ----------: |
| GR00T，固定 $h=16$ |          59.7 |        94.1 |        88.8 |
| GR00T，固定 $h=8$  |          61.2 |        94.7 |        93.4 |
| GR00T + AAC        |      &lt;strong&gt;62.0&lt;/strong&gt; |    &lt;strong&gt;95.0&lt;/strong&gt; |        92.8 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在 RoboCasa 上 AAC 的平均成功率为 62.0%，比默认 GR00T 的 59.7% 提升 2.3 个百分点；Rotation 组由 57.6% 提升到 61.4%。LIBERO 平均由 94.1% 提升到 95.0%，其中最难的 LIBERO-Long 相对默认配置提升 4 个百分点（88.8%→92.8%）。&lt;/p&gt;
&lt;p&gt;固定长度并没有一个普适最优值：LIBERO-Spatial 在 $h=4$ 时达到 94.0%，而 LIBERO-Goal 在 $h=16$ 时达到 96.8%。AAC 的优势是可以在同一 episode 的不同语义阶段切换长度。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-adaptive-action-chunking/aac-chunk-rollout.webp&quot; alt=&quot;AAC rollout 中不同语义阶段的 chunk size：接近物体和抓取阶段更短（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 样本数实验显示，LIBERO 成功率从 1 个样本的 94.1% 增加到 20 个样本的 95.0%，40 个样本达到 95.5%；相应单张 A800 的推理时间为 83.0、106.0 和 157.0 ms。作者因此在主要 benchmark 中采用 20 个样本，约增加 20 ms 延迟。&lt;/p&gt;
&lt;p&gt;补充材料的消融还报告：去掉 minimum action magnitude 后，RoboCasa 平均成功率从 62.0% 降至 60.6%；加入 backward coherence 进行候选 chunk 选择后，平均成功率为 62.5%，比默认选择第一条候选高 0.5 个百分点。&lt;strong&gt;【Analysis】&lt;/strong&gt; 这说明熵 selector 是主要收益来源，而幅度约束负责防止极短、近似 idle 的异常决策；候选 chunk id 的系统性选择仍未解决。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 将 AAC 接到 $pi_{0.5}$ 后，LIBERO 平均成功率从 97.0% 提升到 97.9%，Spatial / Long / Object 分别为 99.1% / 95.2% / 99.2%。在 LIBERO-Pro 的位置扰动 OOD 设置中，GR00T 的平均成功率由 3.9% 提升到 6.3%，$pi_{0.5}$ 由 30.9% 提升到 34.8%。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-adaptive-action-chunking/aac-real-world.webp&quot; alt=&quot;真实机器人上的香蕉、紧急按钮和长时抽屉任务（论文 Figure 5）&quot;&gt;&lt;/p&gt;
&lt;p&gt;真实任务结果如下：&lt;/p&gt;
&lt;p&gt;| 任务                        | GR00T | GR00T + AAC |
| --------------------------- | ----: | ----------: |
| Banana pick-and-place       | 70.0% |   &lt;strong&gt;90.0%&lt;/strong&gt; |
| Emergency button            | 65.0% |   &lt;strong&gt;75.0%&lt;/strong&gt; |
| Toy → drawer → close drawer | 65.0% |   &lt;strong&gt;80.0%&lt;/strong&gt; |
| 平均                        | 67.0% |   &lt;strong&gt;82.0%&lt;/strong&gt; |&lt;/p&gt;
&lt;p&gt;作者还展示了香蕉抓取的安全性对比：固定 chunk 的 GR00T 在低质量早期动作下会撞到桌面，而 AAC 会在高熵阶段缩短执行并及时重规划。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; AAC 利用的是一个简单但有用的闭环信号：多次采样若在某个未来时刻分歧变大，说明当前 observation 对 action head 来说并不确定。此时缩短 chunk 会更快取得新观测；反之，候选动作集中时，长 chunk 可以减少调用次数并保持轨迹平滑。&lt;/p&gt;
&lt;p&gt;关键是 selector 不只看当前一步熵，而是看前缀平均熵的变化。这把“未来几步是否仍值得 open-loop 执行”转成一个可比较的曲线，而不是依赖绝对熵阈值，从而减轻不同任务和动作尺度之间的校准问题。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Inference-time only&lt;/strong&gt;：不引入额外 reward、value model 或训练参数。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Mixed action spaces&lt;/strong&gt;：Gaussian differential entropy 与 Bernoulli entropy 可以在同一个 selector 中合并。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;动态控制频率&lt;/strong&gt;：chunk size 随 episode 的语义阶段变化，而非整个任务固定一个超参数。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;可插拔&lt;/strong&gt;：官方实现只改变多候选采样和执行前缀，保留原 VLA backbone 与 action head。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;| 方法                       | chunk size 如何确定         | 是否需要训练 / 任务 reward | AAC 的区别                   |
| -------------------------- | --------------------------- | -------------------------- | ---------------------------- |
| 固定 chunk                 | 手工网格搜索                | 否                         | AAC 每次观测都重算           |
| ACT / EMA                  | 固定执行长度，融合重叠动作  | 否                         | 主要解决平滑，不决定动态长度 |
| BID / TV-BID               | 候选 chunk 搜索与一致性分数 | 否                         | AAC 用预测分布熵作为长度信号 |
| RL-based adaptive chunking | 学习 value / selector       | 通常需要                   | AAC 不依赖任务 reward        |&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 方法隐含以下假设：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;多候选采样的离散程度能够反映动作不确定性；&lt;/li&gt;
&lt;li&gt;较低 action entropy 通常意味着更可靠的动作；&lt;/li&gt;
&lt;li&gt;当前预测分布足以决定接下来执行多少步，无需额外环境模型；&lt;/li&gt;
&lt;li&gt;批量生成 $N$ 条候选 chunk 的额外成本可以由并行硬件摊平。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这些假设在多模态任务或存在系统性偏差时可能失效：候选样本可能一致地犯同一个错误，因而低熵并不等于正确。&lt;/p&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 补充材料指出，当前对候选 chunk id 的选择仍较简单；backward coherence 只带来有限增益，如何联合一致性与前瞻性选择最佳候选值得进一步研究。作者也承认每个任务的最优 chunk size 尚未被完全达到。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;多样本成本与时延&lt;/strong&gt;：20 个样本在 A800 上约增加 20 ms；边缘设备或更大 action horizon 可能无法承受。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;熵的尺度敏感性&lt;/strong&gt;：代码默认位置、旋转和夹爪权重均为 1，只有 gripper movement magnitude 使用 0.2；换机器人、归一化方式或 action dimension 后需要重新校准。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;高熵不一定代表错误&lt;/strong&gt;：真正的多模态决策、视觉遮挡和接触动力学都可能导致合理但分散的候选动作。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;候选相关性&lt;/strong&gt;：并行样本仅由初始噪声区分，若 flow-matching head 的随机性不足，熵估计的有效样本数会低于 $N$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;动作幅度阈值仍是超参数&lt;/strong&gt;：&lt;code&gt;move_th=3&lt;/code&gt; 和 $\alpha=3$ 并非完全免调参；论文只在给定的机器人与归一化设置中验证。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; AAC 给 VLA 部署带来的启发是：推理时不一定只能在“每一步重算”和“固定长度 open-loop”之间二选一。模型输出中的分布信息本身可以成为控制器的调度信号。&lt;/p&gt;
&lt;p&gt;几个值得继续探索的方向：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;把 entropy 与视觉 novelty、接触事件或 proprioception prediction error 融合，避免“低熵但系统性错误”；&lt;/li&gt;
&lt;li&gt;学习跨 embodiment 的熵校准与 action-component 权重，而不是手工设定；&lt;/li&gt;
&lt;li&gt;联合优化 chunk size 与 chunk id，直接从候选轨迹中选择既可靠又与历史连续的动作；&lt;/li&gt;
&lt;li&gt;研究在长时任务中用不确定性预测触发主动观察、触觉查询或安全减速；&lt;/li&gt;
&lt;li&gt;将 AAC 推广到非 flow-matching 的 diffusion policy、离散 action token policy 和双臂 action space。&lt;/li&gt;
&lt;/ul&gt;</content:encoded><h:img src="https://pic.hana0721.top/74378589_p0_master1200.5j4sgia4w5.webp"/><enclosure url="https://pic.hana0721.top/74378589_p0_master1200.5j4sgia4w5.webp"/></item><item><title>A2A 论文精读：用历史动作替代高斯噪声的 Flow Matching 策略</title><link>https://agusexp25.top/blog/paper-deep-dive-a2a</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-a2a</guid><description>精读 A2A：把历史本体动作编码为 Flow Matching 的起点，以轻量 MLP 生成未来动作，在单步推理下兼顾低延迟与视觉鲁棒性。</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;论文名称&lt;/strong&gt;：《Action-to-Action Flow Matching》&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;作者与机构&lt;/strong&gt;：Jindou Jia、Gen Li 等，Nanyang Technological University MARS Lab。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;论文链接&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2602.07322&quot;&gt;arXiv&lt;/a&gt; · &lt;strong&gt;代码&lt;/strong&gt;：&lt;a href=&quot;https://github.com/JIAjindou/A2A_Flow_Matching&quot;&gt;JIAjindou/A2A_Flow_Matching&lt;/a&gt; · &lt;strong&gt;项目主页&lt;/strong&gt;：&lt;a href=&quot;https://lorenzo-0-0.github.io/A2A_Flow_Matching/&quot;&gt;A2A&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-a2a/a2a-framework-crop.4joud72m0p.webp&quot; alt=&quot;回归、noise-to-action 与 A2A action-to-action 策略的比较（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; A2A（Action-to-Action Flow Matching）把机器人最近执行的本体感知动作序列当作生成起点，而非从 $\mathcal N(0,I)$ 采样；在共享的动作 latent 空间中学习从历史 chunk 到未来 chunk 的条件流，因此可用轻量 MLP 在最少一次 Euler step 中产生动作。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;提出 action-to-action 的条件 Flow Matching：从历史动作分布运输到未来动作分布，利用相邻控制片段的物理连续性缩短生成路径。&lt;/li&gt;
&lt;li&gt;以 CNN action autoencoder 建立 512 维统一 latent space，并以视觉条件驱动 AdaLN-MLP Flow Net；训练时联合 flow matching、动作重建和 inference consistency。&lt;/li&gt;
&lt;li&gt;在五个仿真任务、Franka 的 Pick Cube 与 Open Drawer 真机任务上与八种方法比较，并报告单步平均推理延迟 0.56 ms。&lt;/li&gt;
&lt;li&gt;研究视觉扰动、初始状态不确定性与历史动作加噪；此外把同一“历史到未来”的思路扩展为 F2F 视频预测。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Diffusion Policy 与 flow-based policy 能够建模示教动作的多模态性，但通常以随机高斯噪声为初始状态，须经过多轮反向去噪或 ODE 积分。对图像生成这很自然；对连续控制，机器人却持续拥有当前姿态、低层跟踪后的执行结果和最近运动趋势。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 既有方法往往将当前 proprioception 与图像特征简单拼接，使它只是静态 condition；A2A 的问题更强：能否让一个时间窗口内的历史动作成为生成分布的 source，并显式学习它到未来动作分布的 transport？&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这里的改变不等于“多输入一个 state”。它更改了生成问题的边界条件：标准 Flow Matching 学习 noise $\rightarrow$ action；A2A 学习 history-action $\rightarrow$ future-action。若相邻 chunk 的动力学确实平滑，后者的起点天然更靠近终点，少步积分才有成立的空间。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 记历史动作为 $\mathbf a_{\le t}={\mathbf a_{t-n+1},\ldots,\mathbf a_t}$，历史图像为 $\mathbf I_{\le t}={\mathbf I_{t-m+1},\ldots,\mathbf I_t}$，预测目标为 $\mathbf a_{&gt;t}={\mathbf a_{t+1},\ldots,\mathbf a_{t+n}}$。$n$ 是 action horizon，$m$ 是 observation horizon；论文实验取 $n=m=8$。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 动作定义随任务而变：仿真使用 joint angles，真机使用 end-effector states。论文特别说明 source 应来自本体反馈所反映的&lt;strong&gt;已执行&lt;/strong&gt;动作，而不是仅使用上一个 policy command，以吸收低层跟踪误差。&lt;/p&gt;
&lt;p&gt;| 要素                                  | A2A 中的角色                                               |
| ------------------------------------- | ---------------------------------------------------------- |
| RGB observation                       | 经过 ResNet-18 和线性投影，形成全局条件 $\mathbf c$        |
| 历史 action / proprioceptive feedback | 经 CNN 压缩为流的起点 $\mathbf z_0$                        |
| 未来 action chunk                     | 经另一个 CNN 编码为目标 $\mathbf z_1$，最后由 decoder 还原 |
| Policy output                         | 长度为 $n$ 的连续 future action sequence                   |&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-a2a/a2a-pipeline-crop.1apqgjf4ph.webp&quot; alt=&quot;A2A 的视觉条件路径、历史动作 source path 与 latent Flow Net（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 图像序列经 ResNet-18 得到条件 $\mathbf c$；历史动作经三层 1D CNN 得到起点 $\mathbf z_0$；Flow Net 在 $\mathbf c$ 条件下把它运输为 $\mathbf z_1$，残差 MLP decoder 输出未来 action chunk。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;历史—未来动作的共享 latent&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; A2A 用 action encoder $E_a$ 将历史序列压缩为 $\mathbf z_0=E_a(\mathbf a_{\le t})$，并将未来目标编码到同一空间；decoder $D_a$ 将生成后的 $\mathbf z_1$ 还原为 $\hat{\mathbf a}_{&gt;t}$。论文的动机是：动作原空间中的近邻关系未必利于 transport，而高维 latent 可让起点和终点的分布对齐得更好。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;roboverse_learn/il/policies/a2a/action_ae.py&lt;/code&gt; 的 &lt;code&gt;CNNActionEncoder&lt;/code&gt; 使用 3 个 kernel size 5、stride 2 的 &lt;code&gt;Conv1d + ReLU&lt;/code&gt; 层，默认配置的 encoder / decoder hidden dimension 和 latent dimension 都为 512。decoder 是输入投影、4 个 MLP block 与输出投影组成的残差式 MLP。&lt;/p&gt;
&lt;h4&gt;视觉条件与 Flow Net&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 视觉条件路径先提取最近 $m$ 帧视觉特征，再经 MLP 投影为全局 $\mathbf c$。Flow Net 使用 4 个 AdaLN-MLP block 预测时间相关的向量场 $\mathbf v_\tau$，不需要 U-Net 或 Transformer 的序列注意力。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;a2a_policy.py&lt;/code&gt; 将每帧特征拼接后用 &lt;code&gt;obs_projector&lt;/code&gt; 投到 512 维；&lt;code&gt;utils/models/flow_net.py::SimpleFlowNet&lt;/code&gt; 为 timestep 添加 sinusoidal embedding，再将 &lt;code&gt;global_cond&lt;/code&gt; 加到时间 embedding 上，经过 4 个 &lt;code&gt;FlowNetLayer&lt;/code&gt; 预测速度。论文图中的 AdaLN-MLP 与该实现一致。&lt;/p&gt;
&lt;h4&gt;可控随机性：A2A-Noise&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 纯历史 source 带来很强的确定性，但在动作本身有多个可行模式时可能塌缩到单一轨迹。论文在 encode 前向历史动作注入小幅 Gaussian noise，以保留一定多模态性。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;a2a_noise_policy.py&lt;/code&gt; 提供 &lt;code&gt;A2ANoiseImagePolicy&lt;/code&gt;，在训练和 &lt;code&gt;predict_action&lt;/code&gt; 中都调用 &lt;code&gt;_add_history_noise&lt;/code&gt;；这不是对 Flow Net 输入的重新采样，而是先扰动 history state，再编码为 $\mathbf z_0$。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 对一般 Flow Matching，概率路径满足：&lt;/p&gt;
&lt;p&gt;$$
\frac{d\mathbf x_\tau}{d\tau}=\mathbf v_\tau(\mathbf x_\tau),\qquad
\mathbf x_\tau=(1-\tau)\mathbf x_0+\tau\mathbf x_1,
$$&lt;/p&gt;
&lt;p&gt;其中 $\tau\in[0,1]$，$\mathbf x_0$ 为 source，$\mathbf x_1$ 为 data target。A2A 以 $\mathbf z_0$ 和 $\mathbf z_1$ 代替 noise 与 raw action，拟合条件 vector field $f_\theta$：&lt;/p&gt;
&lt;p&gt;$$
\mathcal L_{FM}=\mathbb E_{\tau,\mathbf z_0,\mathbf z_1}
\left|f_\theta(\mathbf z_\tau,\tau,\mathbf c)-\mathbf v_\tau(\mathbf z_\tau,\tau,\mathbf c)\right|_2^2.
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 为保证 latent 可解码且少步 ODE 的落点可执行，论文再加入：&lt;/p&gt;
&lt;p&gt;$$
\mathcal L_{AE}=\mathbb E\left|\mathbf a_{&gt;t}-D_a(E_a(\mathbf a_{&gt;t}))\right|_1,
$$&lt;/p&gt;
&lt;p&gt;$$
\mathcal L_{IC}=
\left|\hat{\mathbf z}&lt;em&gt;1-E_a(\mathbf a&lt;/em&gt;{&gt;t})\right|&lt;em&gt;1+
\lambda_0\left|D_a(\hat{\mathbf z}&lt;em&gt;1)-\mathbf a&lt;/em&gt;{&gt;t}\right|&lt;em&gt;1,
\qquad
\mathcal L&lt;/em&gt;{total}=\lambda_1\mathcal L&lt;/em&gt;{FM}+\lambda_2\mathcal L_{AE}+\lambda_3\mathcal L_{IC}.
$$&lt;/p&gt;
&lt;p&gt;这里 $\hat{\mathbf z}_1$ 是从 $\mathbf z_0$ 经离散 ODE 得到的 prediction，$\lambda_0$ 平衡 latent 与动作空间的一致性；实验中取 $\lambda_0=0.5,\lambda_1=1,\lambda_2=0.5,\lambda_3=1$。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 每个 batch 抽取历史动作、图像序列和未来 action chunk，在 $\tau\sim\mathcal U[0,1]$ 处构造线性路径，训练 vector field；同时让 autoencoder 重建未来 chunk，并将有限步 ODE 的输出拉回 target latent / action。所有实验采用 batch size 32，仿真表格的主比较使用 100 demonstrations、30 epochs。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;A2AImagePolicy.compute_loss&lt;/code&gt; 先对 observation 与 action normalization；视觉走 &lt;code&gt;obs_encoder&lt;/code&gt;，历史部分取 &lt;code&gt;nobs[&apos;agent_pos&apos;][:, :n_obs_steps]&lt;/code&gt;，未来部分取从 &lt;code&gt;n_obs_steps - 1&lt;/code&gt; 开始的 &lt;code&gt;n_action_steps&lt;/code&gt; 个 action。配置 &lt;code&gt;a2a.yaml&lt;/code&gt; 默认 6 个 sampling steps、&lt;code&gt;consistency_weight=1&lt;/code&gt;、encoder reconstruction weight 0.5、flow reconstruction weight 0.5；代码还可选 InfoNCE contrastive loss，但默认配置将其设为 0。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 推理从当前已执行动作历史得到 $\mathbf z_0$，而非采样 Gaussian noise。以 $K$ 个 Euler step 迭代 $\mathbf z\leftarrow\mathbf z+f_\theta(\mathbf z,\tau,\mathbf c)/K$，最后 decode 成未来动作。论文报告多步通常更稳，但 A2A 在单步也可得到高质量动作。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;TorchFlowMatcher.sample&lt;/code&gt; 的实现从传入的 &lt;code&gt;start&lt;/code&gt; 开始，以 &lt;code&gt;dt=1/K&lt;/code&gt; 循环调用 Flow Net；&lt;code&gt;predict_action&lt;/code&gt; 随后 &lt;code&gt;action_decoder&lt;/code&gt;、反归一化，并返回整个预测 chunk。仓库的真实部署说明再次强调应把机器人反馈的 executed actions 放入 history buffer。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方实现与论文的主要映射如下；其中 &lt;code&gt;agent_pos&lt;/code&gt; 命名为 state，与论文中“executed action / proprioceptive feedback”的概念应在具体机器人接口中对齐。&lt;/p&gt;
&lt;p&gt;| 论文模块               | 代码位置                                        | 实际实现                                                        |
| ---------------------- | ----------------------------------------------- | --------------------------------------------------------------- |
| A2A policy             | &lt;code&gt;roboverse_learn/il/policies/a2a/a2a_policy.py&lt;/code&gt; | &lt;code&gt;compute_loss&lt;/code&gt;、&lt;code&gt;predict_action&lt;/code&gt; 与 latent 可视化入口           |
| 动作 encoder / decoder | &lt;code&gt;.../a2a/action_ae.py&lt;/code&gt;                          | CNN 压缩 8 帧时间序列，4-layer MLP 解码 action chunk            |
| 条件 Flow Matching     | &lt;code&gt;il/utils/flow/flow_matchers.py&lt;/code&gt;                | &lt;code&gt;ConditionalFlowMatcher&lt;/code&gt; 训练速度场、Euler 采样                 |
| AdaLN-MLP Flow Net     | &lt;code&gt;il/utils/models/flow_net.py&lt;/code&gt;                   | &lt;code&gt;SimpleFlowNet&lt;/code&gt; 将时间与 visual condition 调制进 4 个 MLP block |
| A2A-Noise              | &lt;code&gt;.../a2a/a2a_noise_policy.py&lt;/code&gt;                   | 对 history states 先加 Gaussian noise，再编码和采样             |
| 默认超参数             | &lt;code&gt;il/configs/policy_config/a2a.yaml&lt;/code&gt;             | latent 512、6 步采样、ResNet-18、512 hidden dim                 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 代码让“论文的单步能力”与“默认可复现实验设置”分开：默认是 6 步，而非 1 步。这是合理的性能—稳健性选择，也意味着 0.56 ms 不是所有配置的默认端到端延迟承诺。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-a2a/a2a-experiments-crop.99u3blu8xj.webp&quot; alt=&quot;Roboverse 中的五个仿真操控任务（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 仿真评估覆盖 Roboverse 中五个任务：ManiSkill 的 Stack Cube、Pick Cube，RLBench 的 Close Box，以及 LIBERO 的 Open Drawer、Pick-Place Bowl；另在 Franka 上做 Pick Cube 和 Open Drawer 真机实验。对比对象包括 DDPM-UNet / DiT、DDIM-UNet、FM-UNet / DiT、Score-UNet、ACT 和 VITA。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 主表控制模型规模、chunk size 与 batch size 尽可能一致。五任务成功率的比较采用 100 demonstrations、30 epochs；真机 Pick Cube 用 30 条轨迹训练 100 epochs，Open Drawer 用 30 条轨迹训练 300 epochs，均以 10 次 trial 评估。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在五个仿真任务的主表中，A2A（6 steps）的成功率为 Close Box 92%、Pick Cube 92%、Stack Cube 86%、Open Drawer 92%、Pick-Place Bowl 90%；它在前四项最高，后者略低于 VITA 的 92%。作为比较，ACT（1 step）为 82%、86%、32%、80%、60%。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-a2a/a2a-inference-cost-crop.54yhzhx3aq.webp&quot; alt=&quot;Close Box 上的步数—成功率、单步训练收敛与各方法推理耗时（论文 Figure 7）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Close Box 的推理成本图显示，固定 30 epochs 时，4 steps 已达到约 80% 成功率、6 steps 为约 88%，继续增加步数的边际收益趋小；单步设置在约 32 epochs 后超过 90%。在同一 RTX 5090 32GB 上测得，A2A 单步平均 0.56 ms，6 步仍低于 1 ms；论文将这个优势归因于较短 transport 与纯 MLP 运算。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 真机实验中，A2A 在 30 条训练轨迹下的 in-distribution Pick Cube 与 Open Drawer 均报告 100% 成功率；替换为未见发光方块时，A2A 为 80%，两种 UNet 基线为 0%。这些数值来自每种设置 10 次 trial，应理解为小样本实验的估计值。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-a2a/a2a-structure-ablation-crop.8hh7tvdo6z.webp&quot; alt=&quot;Flow / regression 与 latent / raw action space 的结构消融（论文 Figure 10）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 结构消融固定 Close Box、100 demonstrations、30 epochs，flow 方法使用 6 steps。Flow-latent（A2A）与 Reg-latent 在训练分布上都能达到较高成功率，但在环境扰动下前者更稳；直接在 raw action space 做 Flow Matching，无论采用 UNet 还是 MLP，都弱于 latent-space flow。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 该消融支持的不是“生成必然优于回归”，而是一个更具体的结论：在本实验的轻量结构、少数据和视觉扰动下，history-informed latent flow 的组合比匹配的 latent regression 更能保留泛化。论文也观察到 ACT 在某些标准任务上很有竞争力。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Close Box 的分级随机化中，Level 0 只有初始物体位姿变化；Level 1 再加背景，Level 2 再加光照，Level 3 再加相机视角。六步 A2A 在 Level 0–3 分别为 100%、38%、42%、38%，均高于表中的基线；单步 A2A 为 100%、20%、16%、22%。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 方法同时暴露出对 action history 偏差的敏感性：初始关节位姿被扰动时性能下降。论文发现向历史动作加入小噪声能改善这种不确定性下的表现，并报告在 Level 1 上，STD 0.02 的历史噪声可将结果从 20% 提升到 52%。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; A2A 的关键先验是局部连续性：在一次短 action horizon 内，未来控制序列通常不是与刚执行序列无关的样本。因此 encoder 可以学习使 $p(\mathbf z_0)$ 和 $p(\mathbf z_1)$ 接近的表征，Flow Net 要解决的是“沿当前运动趋势转弯多少”，而不是“从全空间任意高斯点找到可执行轨迹”。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 与直接回归相比，flow 仍保留了可积分的连续生成过程；与噪声初始化的生成相比，source 又带有机器人刚刚发生的真实动态。inference consistency 将训练时的 vector-field 拟合和推理时的有限步 Euler 落点绑定，正好针对少步部署的误差来源。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;source distribution 的替换&lt;/strong&gt;：用历史 executed actions，而非 Gaussian noise，定义生成起点。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;latent-space action transport&lt;/strong&gt;：历史与未来各自编码，却在同一 512 维空间中对齐。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;面向采样的监督&lt;/strong&gt;：除 flow loss 外，直接约束有限步 ODE 后的 latent 与 decoded action。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;噪声作为策略旋钮&lt;/strong&gt;：不是放弃 history prior，而是在它上面注入小扰动，换回多模态性和初始状态鲁棒性。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;| 方法范式           | 起点                         | 本体信息的作用   | A2A 的差异                                   |
| ------------------ | ---------------------------- | ---------------- | -------------------------------------------- |
| Regression / ACT   | observation 到动作的确定映射 | 常与视觉特征拼接 | A2A 保留显式连续 transport，而非一次直接预测 |
| Diffusion Policy   | 高斯噪声                     | 多作为条件       | A2A 将历史序列提升为 source distribution     |
| 常规 Flow Matching | 多为噪声或简单 source        | 常作为条件       | A2A 用 action-to-action 的相邻动力学缩短路径 |
| VITA               | 视觉到动作 flow              | 主要依赖视觉     | A2A 用可反馈的历史动作提供物理连续先验       |&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; A2A 隐含以下条件：控制信号在局部时间内平滑；反馈 history 与当前视觉时间对齐；过去 chunk 对未来 chunk 有预测性；低层控制能及时报告已执行结果。若任务需要突发切换、离散决策或接触后快速反向，source 与 target 不再邻近，单步优势就会变弱。&lt;/p&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; A2A 依赖动作的物理连续性，因此对以平滑连续控制为主的任务最适合；binary gripper open / close 等离散、开关式动作维度从该 prior 获益有限。总损失还包含多个人工设置的权重；论文将自适应 loss weighting 和连续—离散混合动作视为未来方向。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;论文的少步结论建立在短 horizon、特定模型规模和任务集上；当 action chunk 变长、存在遮挡或需要重规划时，历史 source 与未来 target 的距离可能明显增加。&lt;/li&gt;
&lt;li&gt;使用历史 executed actions 要求实时反馈可靠、时间戳一致；真实硬件的滤波、延迟或丢包会把 source 推离论文设定的分布。&lt;/li&gt;
&lt;li&gt;真机每种条件 10 次 trial，虽然展示了趋势，但对 100% / 80% 这类比例的统计不确定性仍较大；还缺少更长时程、多接触与安全约束任务的报告。&lt;/li&gt;
&lt;li&gt;小噪声可恢复多模态性，却引入 noise scale 这一新的部署超参数；不同动作尺度、机器人和扰动水平下很难预先保证同一 STD 合适。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; A2A 值得带走的不是“永远不用高斯噪声”，而是一个 source design 原则：生成式机器人策略应优先寻找任务中已有、可测量且与目标分布相邻的状态，而不是机械复用视觉生成的初始化方式。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;可学习 source mixer：由网络在 history latent、Gaussian noise 和 task-plan latent 间自适应插值，以应对连续与突变动作并存的任务。&lt;/li&gt;
&lt;li&gt;时序可信度建模：按反馈延迟、接触事件和视觉变化估计 history 的可信度，必要时增加积分步数或回退到更保守策略。&lt;/li&gt;
&lt;li&gt;长时程分层：高层生成 subgoal / constraint，低层使用 A2A 完成短的 physically continuous transport。&lt;/li&gt;
&lt;li&gt;将 F2F 的未来观测预测接入 policy，检验“状态—动作—观测”是否能共享同一种邻近 source 到 future target 的表征。&lt;/li&gt;
&lt;/ul&gt;</content:encoded><h:img src="https://pic.hana0721.top/74502138_p0_master1200.7i0z6ufn7r.webp"/><enclosure url="https://pic.hana0721.top/74502138_p0_master1200.7i0z6ufn7r.webp"/></item><item><title>WARP-RM 论文精读：用时间扭曲学习相对进度奖励</title><link>https://agusexp25.top/blog/paper-deep-dive-warp-rm</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-warp-rm</guid><description>精读 WARP-RM：通过 AR(1) 时间扭曲生成自监督进度标签，再用密集 signed progress 过滤和重加权行为克隆数据。</description><pubDate>Tue, 25 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 《WARP-RM: A Warp-Augmented Relative Progress Reward Model for Data Curation》针对一个很实际的问题：人类遥操作数据越收集越多，却不可避免地混入停顿、犹豫、失败后恢复和局部重复修正。把这些片段全部等权交给 Behavior Cloning（BC），策略就会把“慢”和“卡住”也学进去；但按 episode 粗暴丢弃又会丢掉其中有价值的恢复动作。&lt;/p&gt;
&lt;p&gt;WARP（Warp-Augmented Relative Progress）不要求人工标注子任务边界，而是把成功示教视频以连续变化的速度、随机方向和局部反转重新采样。模型学习的不是“当前帧位于任务的绝对百分之几”，而是一个局部的 signed progress velocity：正值表示向目标推进，接近零表示停滞，负值表示回退。随后 WARP-BC 把这个信号下沉到 action chunk 级别，用于过滤和重加权 BC 损失。&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; WARP-RM 的关键不是再训练一个更大的视觉模型，而是把“示教播放速度”变成自监督标签，从而获得比 episode 长度更细粒度的质量信号；WARP-BC 再把高进度片段变成更高的训练权重。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;提出 WARP 自监督算法：在成功示教上采样非均匀、带反转的时间轨迹，生成 signed relative progress 标签。&lt;/li&gt;
&lt;li&gt;提出 WARP-RM：冻结 DINOv3 ViT-B/16，用双向 Transformer 预测每个窗口中每帧的累计相对进度。&lt;/li&gt;
&lt;li&gt;提出 WARP-BC：把重叠窗口聚合成 dense frame-level velocity，并用 action chunk 末帧速度做门控与连续重加权。&lt;/li&gt;
&lt;li&gt;在双臂 T-shirt folding、真实 bottle-in-bin 和 MuJoCo bottle-in-bin 上验证，显示在混合质量数据扩大时，WARP-BC 比 vanilla BC 更稳健。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;论文报告的代表性结果是：T-shirt folding 的 D2 数据集上 WARP-BC 达到 &lt;strong&gt;19/20&lt;/strong&gt; 成功，而 vanilla BC 只有 &lt;strong&gt;2/20&lt;/strong&gt;；吞吐量从 &lt;strong&gt;1.5/h 提升到 27.4/h&lt;/strong&gt;。这些数字来自论文 Table 1，不能外推成所有机器人或所有任务都能获得同样增益。&lt;/p&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 长时序模仿学习通常同时面对两个矛盾：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;高质量片段稀缺，完全丢弃低质量 episode 会缩小数据覆盖并删除恢复行为；&lt;/li&gt;
&lt;li&gt;低质量片段若不处理，BC 会模仿停顿和失败后的局部挣扎，导致 rollout 在训练分布的坏区域中循环。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;已有数据筛选方法大致分三层：&lt;/p&gt;
&lt;p&gt;| 粒度 | 典型做法 | 主要问题 |
| --- | --- | --- |
| Dataset / episode | 用影响函数、互信息或 episode 长度保留整条轨迹 | 轨迹内好坏片段无法区分 |
| Frame / chunk | 学习 progress reward，再重加权 action chunk | 需要可靠的局部进度标签 |
| VLM / preference | 让视觉语言模型比较轨迹或判断语义里程碑 | 查询昂贵，时间分辨率通常较低 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; ReWiND、VIP、LIV 等工作大多把进度放在绝对时间轴上：归一化帧号或跨示教时间对齐可以作为简单监督，但长时序遥操作中，同一个归一化时间可能对应完全不同的状态。SARM、ARM 使用更细粒度的 reward model，却依赖人工标注的阶段边界或偏好数据。SCIZOR 也使用自监督的时间距离信号，但 WARP 进一步用 signed、局部、连续的相对速度给 action chunk 加权。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; WARP 的设计选择可以理解为把“任务进度”拆成两个更容易学习的因素：一是局部视觉变化是否沿着成功示教的方向发生，二是变化相对参考节奏有多快。它因此不需要先解决跨示教的全局时间对齐。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 一条成功示教由固定频率 RGB 观测序列组成：&lt;/p&gt;
&lt;p&gt;$$
\mathcal{D}&lt;em&gt;{\mathrm{ref}} = {o_0, o_1, \ldots, o&lt;/em&gt;{T-1}}.
$$&lt;/p&gt;
&lt;p&gt;给定一个长度为 $N$ 的窗口，WARP 选择源帧索引 $i_0,\ldots,i_{N-1}$。索引可以递增、递减或在中间改变方向。模型输入是视觉特征 $\phi(o_{i_j})$，目标是窗口起点到每个位置的归一化累计位移：&lt;/p&gt;
&lt;p&gt;$$
y_j = \frac{i_j-i_0}{C_{\mathrm{norm}}}, \qquad j=0,\ldots,N-1.
$$&lt;/p&gt;
&lt;p&gt;任务不是直接输出机器人动作，而是为下游动作数据提供质量信号：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Input / Observation&lt;/strong&gt;：遥操作 RGB 视频；论文主实验使用单路视觉输入。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Output&lt;/strong&gt;：每帧 signed progress velocity $\hat v_t$，以及由其积分得到的相对进度曲线。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Action representation&lt;/strong&gt;：下游策略使用约 1 秒 action chunks；WARP-RM 不改变动作维度。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Robot / Embodiment&lt;/strong&gt;：实体双臂 I2RT YAM；任务包括从随机皱缩状态折叠 T-shirt，以及将塑料瓶放入箱子。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dataset&lt;/strong&gt;：成功示教用于训练 WARP-RM；政策数据按 episode 时长构造 D1/D2/D3 等质量 tier。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Policy objective&lt;/strong&gt;：带 WARP 权重的 flow-matching BC 损失。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这里的“reward”不是环境交互中由传感器得到的稀疏奖励，也不是带 value baseline 的严格 RL advantage。论文明确把 $\hat v_{\mathrm{end}}$ 称为 advantage 的经验代理。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-warp-rm/model-architecture.4qs274cugp.webp&quot; alt=&quot;WARP-RM architecture and dense signed progress from paper Figure 3&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 数据流可以压缩为一句话：32 帧 RGB 窗口 → 冻结 DINOv3 特征 → temporal-diff 拼接与线性投影 → 双向 Transformer → 每帧 30-bin relative-progress 分布 → 期望值、离散差分与重叠窗口平均得到 $\hat v_t$。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;Time-Warp Sampler&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-warp-rm/time-warp-sampler.362b7nfnkf.webp&quot; alt=&quot;WARP time-warp sampler from paper Figure 2&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 采样器首先在 log-space 生成平滑的速度序列。对每一步：&lt;/p&gt;
&lt;p&gt;$$
z_0\sim\mathcal{N}(0,\sigma_\infty^2),\qquad
z_k=\alpha z_{k-1}+\sqrt{1-\alpha^2},\sigma_\infty\epsilon_k,
$$&lt;/p&gt;
&lt;p&gt;其中 $\alpha$ 控制相邻速度相关性，$\epsilon_k\sim\mathcal{N}(0,1)$。令 $\tilde v_k=\exp(z_k)$，再把它们缩放到从 $\frac13L$ 到 $\frac53L$ 的随机路径长度，得到非负的 forward displacement。&lt;/p&gt;
&lt;p&gt;为产生回退信号，采样 $R\sim\mathrm{Poisson}(\lambda_{rev})$ 个 reversal point，并在这些位置翻转后续速度符号；最后以 0.5 概率整体反转窗口。累积位移 $c_j=\sum_{k&amp;#x3C;j}u_k$ 后，索引为 $i_j=\mathrm{round}(i_0+c_j)$。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;为什么这样做？&lt;/strong&gt; 独立地随机跳帧会产生不自然的速度抖动，模型可能学到采样伪影；AR(1) 让速度变化更像真实操作中的连续节奏。反向播放不是物理上严格的失败轨迹，却能提供负进度监督。&lt;/p&gt;
&lt;h4&gt;Frozen DINOv3 Vision Encoder&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 每帧由冻结的 DINOv3 ViT-B/16 编码为 768 维特征 $\phi(o_{i_j})$。冻结 backbone 将训练重点放在时序进度建模上，也避免在规模有限的机器人视频上更新大视觉模型。&lt;/p&gt;
&lt;h4&gt;Temporal-Diff Tokenizer&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 第 $j$ 个 token 为：&lt;/p&gt;
&lt;p&gt;$$
x_j = [\phi(o_{i_j}),;\phi(o_{i_j})-\phi(o_{i_{j-1}})]\in\mathbb{R}^{1536},
$$&lt;/p&gt;
&lt;p&gt;首帧差分置零。第一项描述当前外观，第二项显式提供局部变化方向；之后经线性层映射到 Transformer hidden dimension，并加入固定 sinusoidal positional embedding。&lt;/p&gt;
&lt;h4&gt;Bidirectional Transformer 与 Categorical Head&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Transformer 使用 12 层、8 heads 的双向 self-attention。每个位置输出 30 个相对进度 bin 的 logits，softmax 后用 bin center 的期望得到 $\hat y_j$。论文没有直接回归连续值，而采用 two-hot target：连续标签落在两个相邻 bin 之间时，按线性插值分配概率质量。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 当前仓库的 &lt;code&gt;TransformerAggregator&lt;/code&gt; 保留上述 relative C51 head，同时还定义了可选的 absolute-progress head、三分类 sign head 和 completion head；这些辅助头是否参与训练由 ablation 配置决定。默认生产 recipe 是 &lt;code&gt;no_abs&lt;/code&gt;，因此不能把代码中“定义了 absolute head”误读成“论文实验训练了 absolute head”。&lt;/p&gt;
&lt;h4&gt;Overlapping-Window Aggregation&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 推理时用 canonical stride 的窗口滑过整段 episode。窗口内离散速度为：&lt;/p&gt;
&lt;p&gt;$$
v_j=(N-1)(\hat y_j-\hat y_{j-1}).
$$&lt;/p&gt;
&lt;p&gt;一个源帧通常被多个窗口覆盖，所有覆盖该帧的预测取平均，得到 $\hat v_t$。正值对应 forward progress，零附近对应停滞，负值对应 regression。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;Two-hot categorical loss&lt;/h4&gt;
&lt;p&gt;设进度标签 $y_j$ 落在相邻 bin center $b_l,b_{l+1}$ 之间，target 概率为：&lt;/p&gt;
&lt;p&gt;$$
p_l=\frac{b_{l+1}-y_j}{b_{l+1}-b_l},\qquad
p_{l+1}=\frac{y_j-b_l}{b_{l+1}-b_l}.
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这相当于保留连续值信息，同时把优化变成分类问题。论文引用的动机是直接回归容易出现优化不稳定和容量利用不足；分类头还可以通过 bin 分布表达一定的不确定性。&lt;/p&gt;
&lt;h4&gt;WARP-BC weighting&lt;/h4&gt;
&lt;p&gt;一个动作 chunk 的终点速度 $\hat v_{\mathrm{end}}$ 被转成：&lt;/p&gt;
&lt;p&gt;$$
w(s,a)=\hat v_{\mathrm{end}};\mathbf{1}[\hat v_{\mathrm{end}}&gt;\tau].
$$&lt;/p&gt;
&lt;p&gt;最终 BC 损失是：&lt;/p&gt;
&lt;p&gt;$$
\mathcal{L}&lt;em&gt;{\mathrm{BC}}
=\mathbb{E}&lt;/em&gt;{(s,a)\sim\mathcal{D}}
\left[w(s,a),\mathcal{L}&lt;em&gt;{\mathrm{flow}}(\pi&lt;/em&gt;\theta;s,a)\right].
$$&lt;/p&gt;
&lt;p&gt;其中 $\tau=1$ 表示只保留高于参考专家节奏的 chunk；连续权重让速度更高的片段拥有更大梯度。$w=0$ 的 chunk 会在训练前被过滤，避免保留大量无效样本而只是把 batch 权重变成零。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; WARP-RM 只在固定的高质量参考子集 $\mathcal{D}_{RM}$ 上训练。T-shirt 实验中参考集是 1,950 条最短示教（≤59.8 s），用于定义 $\hat v\approx1$ 的 canonical pace。训练数据从成功 episode 中在线采样时间扭曲窗口；视觉 encoder 冻结，Transformer 和 progress head 更新。&lt;/p&gt;
&lt;p&gt;论文主实验参数为 $N=32$、源视频 30 Hz、窗口间 canonical stride $S=1.5$ s、$\alpha=0.5$、$\sigma_\infty=\ln2$、$\lambda_{rev}=1$、过滤阈值 $\tau=1$。这些参数是论文实验设置，不应与代码后续 recipe 的所有默认值混用。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 对一段未见过的 demonstration，模型在每个 source-frame offset 上建立重叠窗口；窗口内预测累计进度，作离散 temporal derivative，再把多窗口预测平均到每个 frame。动作 chunk 的末帧速度直接作为 WARP-BC 的 gate 与 weight。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 当前仓库的 &lt;code&gt;dense_inference_relative&lt;/code&gt; 会扫描每个 feature step，聚合窗口速度后 cumsum，并把累计曲线 min-max 归一化到 &lt;code&gt;[0,1]&lt;/code&gt;。短 episode 若放不下完整 canonical window，会自动缩短 stride 并按比例 rescale velocity；这是工程上的稳健性处理，不是论文新增结论。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方仓库 &lt;code&gt;uynitsuj/WARP-RM&lt;/code&gt; 提供训练、特征预计算、打分、可视化和 LeRobot parquet 注入脚本。核心对应关系如下：&lt;/p&gt;
&lt;p&gt;| 论文概念 | 官方代码 | 实际行为 |
| --- | --- | --- |
| 时间扭曲采样 | &lt;code&gt;warp_rm/data/samplers.py&lt;/code&gt; | &lt;code&gt;ARSampler&lt;/code&gt; 实现 AR(1) log-speed、path budget 和 reversals；仓库还提供 IID、&lt;code&gt;ContinuousWarpSampler&lt;/code&gt; 等可插拔变体 |
| 相对累计标签 | &lt;code&gt;warp_rm/data/labelers.py&lt;/code&gt; | &lt;code&gt;RelativeCumulativeLabeler&lt;/code&gt; 输出窗口起点对齐的累计 displacement；另有 delta-velocity labeler |
| 视觉编码器 | &lt;code&gt;warp_rm/models/backbones/dinov3.py&lt;/code&gt; | 通过 HuggingFace 加载冻结 &lt;code&gt;facebook/dinov3-vitb16-pretrain-lvd1689m&lt;/code&gt;，输出 768 维 pooled feature |
| 时序模型 | &lt;code&gt;warp_rm/models/aggregators/transformer.py&lt;/code&gt; | temporal diff → Linear → sinusoidal PE → bidirectional Transformer → C51 expectation |
| 训练损失 | &lt;code&gt;warp_rm/core/loss.py&lt;/code&gt; | relative head 使用 soft-bin C51 CE；可选 absolute、sign、completion、smoothness auxiliary loss |
| 密集推理 | &lt;code&gt;warp_rm/visualization/inference.py&lt;/code&gt; | 重叠窗口速度平均、积分、归一化；支持 relative 与 delta 两种标签模式 |
| 数据注入 | &lt;code&gt;scripts/data/write_warp_rm_annotations.py&lt;/code&gt; | 写入 &lt;code&gt;warp_rm_progress&lt;/code&gt; 与 &lt;code&gt;warp_rm_signed_magnitude&lt;/code&gt; 到 LeRobot 数据副本 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 论文把 WARP 描述成一个相对稳定的 AR(1) 采样器和 30-bin head，而当前公开代码已经演化成研究框架：sampler、labeler、融合方式、辅助头和数据布局都可替换。因此复现实验时必须锁定 commit、ablation、&lt;code&gt;source_standard_stride&lt;/code&gt;、feature stride 和 retention threshold；直接运行仓库默认 recipe 不等于复现论文 Table 1。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文包含三个设置：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;真实 T-shirt folding&lt;/strong&gt;：双臂 I2RT YAM，从随机皱缩的衣物开始，在 240 s 超时内完成抓取、铺平、折袖、对折两次并移到左上角；每个策略 20 次试验。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;真实 bottle-in-bin&lt;/strong&gt;：每次试验把 4 个塑料瓶放入箱子，20 次试验，共 80 个瓶子，单 trial 超时 90 s。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;模拟 bottle-in-bin&lt;/strong&gt;：MuJoCo-Warp 中每场景 6 个瓶子，128 个配对场景、60 s 超时，共 768 个瓶子；同一场景种子用于比较 vanilla BC 与 WARP-BC。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;T-shirt 数据按 episode 时长分 tier：D1 ≤60 s（2,427 episodes，36.1 h）、D2 ≤90 s（4,124，71.3 h）、D3 ≤120 s（6,473，139.7 h）。更长 episode 被当作包含更多 hesitation、fumble 和 recovery 的混合质量数据。这里的长度只是实验用 proxy，不是 WARP-RM 的训练标签。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; T-shirt folding 的跨 tier 结果：&lt;/p&gt;
&lt;p&gt;| 方法 | 指标 | D1 | D2 | D3 |
| --- | --- | ---: | ---: | ---: |
| Vanilla BC | 成功 | 20/20 | 2/20 | 0/20 |
| Vanilla BC | 平均 TTC (s) | 113.8 | 199.0 | N/A |
| Vanilla BC | 吞吐 (/h) | 31.6 | 1.5 | 0.0 |
| WARP-BC | 成功 | 20/20 | 19/20 | 14/20 |
| WARP-BC | 平均 TTC (s) | 63.9 | 118.8 | 117.4 |
| WARP-BC | 吞吐 (/h) | 56.3 | 27.4 | 16.3 |
| WARP-BC | 保留 action chunks | 35.7% | 34.4% | 22.5% |&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-warp-rm/ttc-distribution.58i3vpe9rl.webp&quot; alt=&quot;T-shirt folding time-to-completion distribution from paper Figure 4&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在加入人工标注数据的 matched comparison 中，D4 = D1 ∪ DA、D5 = D2 ∪ DA。D5 上 WARP-BC 仍为 19/20，而 SARM 和 SCIZOR 都降到 2/20；DemInf 达到 18/20，但吞吐只有 25.3/h，低于 WARP-BC 的 27.4/h。SARM 依赖人工阶段边界，不能被视为完全自监督基线。&lt;/p&gt;
&lt;p&gt;真实 bottle-in-bin 结果为：&lt;/p&gt;
&lt;p&gt;| 方法 | 放入瓶数 | 平均每瓶时间 (s) | 吞吐 (/h) | 保留 chunks |
| --- | ---: | ---: | ---: | ---: |
| Vanilla BC | 59/80 | 15.9 | 147.8 | 100% |
| WARP-BC | 74/80 | 11.3 | 237.8 | 30.6% |&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-warp-rm/bottle-distribution.2yz3c7thhw.webp&quot; alt=&quot;Real-world bottle-in-bin placement-time distribution from paper Figure 5&quot;&gt;&lt;/p&gt;
&lt;p&gt;模拟 128 配对场景中，WARP-BC 放入 598/768 个瓶子，vanilla BC 为 509/768；每场景平均 4.67 对 3.98，平均每瓶时间 8.8 s 对 10.7 s，吞吐 301.3/h 对 243.0/h。论文报告配对检验均显著：瓶数 $p&amp;#x3C;10^{-5}$、时间 $p&amp;#x3C;10^{-6}$、吞吐 $p&amp;#x3C;10^{-7}$。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-warp-rm/sim-bottle-distribution.86udz7mi21.webp&quot; alt=&quot;Simulated bottle-in-bin placement-time distribution from paper Figure 6&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; D2 上的关键消融：&lt;/p&gt;
&lt;p&gt;| 组件 | 变体 | 成功 | 吞吐 (/h) | 保留 |
| --- | --- | ---: | ---: | ---: |
| Weighting | $\tau=0$ | 3/20 | 2.3 | 97.0% |
| Weighting | $\tau=1$ binary | 16/20 | 18.0 | 34.4% |
| Weighting | $\tau=1$ continuous | 19/20 | 27.4 | 34.4% |
| Aggregation | chunk mean | 15/20 | 17.4 | 34.0% |
| Aggregation | future-offset mean | 14/20 | 15.9 | 34.3% |
| Aggregation | terminal $\hat v_{end}$ | 19/20 | 27.4 | 34.4% |
| Sampler | IID log-normal | 18/20 | 22.8 | 28.7% |
| Sampler | AR(1) | 19/20 | 27.4 | 34.4% |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 两个结果最能说明方法的实际创新：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;binary gate 与 continuous weight 保留相同数量 chunk，但连续权重明显更好，说明“保留哪些”之外，“保留片段之间如何分配梯度”同样重要。&lt;/li&gt;
&lt;li&gt;terminal velocity 优于 chunk mean。均值会让前半段短暂的高速进展掩盖后半段的回退；末帧 gate 更像在检查动作 chunk 的落点是否仍处于有效前沿。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 从 T-shirt folding 到 bottle placement，WARP-BC 在真实和模拟环境都提升成功数量、执行速度与吞吐。模拟实验的配对设计和公开评估 artifact 让统计结论比 20 次实体试验更稳定。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方仓库进一步公开了 MuJoCo-Warp 的复现路径、n=128 scorer self-test 和 n=512 traces。README 中的 n=512 表格（4.533 vs 3.885 bottles/scene）与论文正文的 n=128 表格（4.67 vs 3.98）属于不同评估规模，不能混写成同一个实验结果。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; WARP-BC 的收益可能来自三个互相配合的机制：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;局部而非绝对监督&lt;/strong&gt;：不要求不同示教在同一归一化时间走到同一子任务阶段，降低跨示教对齐噪声。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;符号信息&lt;/strong&gt;：正、零、负三种状态分别对应推进、停滞和回退，能识别“动作发生了但任务没有前进”的片段。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;梯度预算重分配&lt;/strong&gt;：把有限的 policy 更新集中到高进度 chunk，而不是平均拟合整个长尾数据集。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 真正的新意是把 time warp 从视频表征学习中的 pretext task 变成 progress reward 的直接监督来源；再通过重叠窗口把窗口级预测变成 dense frame-level signal。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; WARP-BC 的另一处细节创新是终点速度门控。它不是寻找“整段 chunk 的平均质量”，而是优先保留能把策略状态推向更好区域的动作落点。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;| 方法 | 监督形态 | 质量粒度 | 是否需要人工标注 |
| --- | --- | --- | --- |
| ReWiND | 绝对时间 / 语言引导 reward | frame | 否，但依赖绝对轴 |
| SARM / ARM | 阶段或 advantage reward | frame / chunk | 是或需要额外标注 |
| DemInf | episode 互信息 | episode | 否 |
| SCIZOR | 自监督时间距离 | frame / chunk | 否 |
| &lt;strong&gt;WARP&lt;/strong&gt; | signed relative progress velocity | frame → chunk | &lt;strong&gt;否&lt;/strong&gt; |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; WARP 不试图学习跨任务的语义 reward，也不直接估计 RL value。它牺牲了任务语义泛化，换取高频、低成本、对单一任务数据清晰的局部质量排序。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 方法依赖以下假设：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;成功示教中存在足够稳定的视觉进度线索；&lt;/li&gt;
&lt;li&gt;变速重放与真实执行速度变化之间有可用的分布重叠；&lt;/li&gt;
&lt;li&gt;最短示教可以作为 canonical pace 的近似参考；&lt;/li&gt;
&lt;li&gt;选出的高进度 action chunk 仍覆盖策略需要的状态分布。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 最后一个假设尤其重要。若任务需要大量恢复动作才能覆盖危险状态，过强的 gate 可能把真正有价值的 recovery data 一起删掉。&lt;/p&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 作者明确指出：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;WARP-BC 仍被限制在离线示教出现过的行为范围内，不能自动产生超出数据分布的新策略；未来可结合 DAgger、offline/online RL 和迭代式 self-improvement。&lt;/li&gt;
&lt;li&gt;实验只覆盖两个真实操作任务、一个模拟任务和单一双臂 embodiment，跨机器人、跨任务泛化尚未验证。&lt;/li&gt;
&lt;li&gt;负进度完全由反向播放近似得到。真实 regression 是沿正常因果时间向前发生的，而反向视频可能物理上不合理，存在 spatiotemporal distribution gap。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;参考集选择会决定尺度&lt;/strong&gt;：最短 episode 不一定是最有信息的 episode；如果最短数据存在过快操作或遗漏步骤，$\hat v=1$ 的校准会偏移。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;单目视觉可辨识性有限&lt;/strong&gt;：遮挡、深度变化或接触力不足以由 RGB 判断时，模型可能把“画面变化”当作进度。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;窗口与动作 chunk 的时间尺度耦合&lt;/strong&gt;：论文用 1.5 s 窗口 stride 和约 1 s action chunk；换成不同控制频率或 action horizon，$\tau=1$ 不一定仍然合理。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;过滤可能损害 recovery coverage&lt;/strong&gt;：高进度片段更容易是专家的顺利路径，低进度片段中却可能包含策略部署时最需要的纠错动作。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;实体试验样本量有限&lt;/strong&gt;：20 次 trial 下 19/20 与 20/20 的差异可能仍处于二项抽样噪声，吞吐和 TTC 比单看 success 更有解释力。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;工程实现持续演化&lt;/strong&gt;：当前仓库加入了 delta label、连续 Beta-CDF sampler、多相机 fusion 和辅助 head；如果不锁定版本，复现实验数字会混入代码变化。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; WARP-RM 给数据中心机器人学习带来的启发，不是“所有数据都应该按 reward 加权”，而是：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;先问标签是否真的可扩展&lt;/strong&gt;：如果每增加一批示教就要人工标阶段，数据规模会被标注预算卡住；time warp 提供了一种把已有成功轨迹转换成 dense supervision 的路径。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;局部信号可以比全局分数更实用&lt;/strong&gt;：episode 总分适合排序数据集，action chunk 的末帧速度才直接对应策略训练的梯度入口。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;质量模型要和下游目标一起评估&lt;/strong&gt;：离线 reward correlation 更高，不保证 policy rollout 一定更好。官方复现实验也提醒，固定 retention budget、chunk 定义和 threshold 校准常常比孤立的 RM 指标更关键。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;负样本的物理真实性值得继续研究&lt;/strong&gt;：未来可以用真实失败 rollout、轻量级扰动或人类纠错片段替代纯 reverse playback，减少 synthetic negative 与真实 regression 的分布差异。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;WARP 可以成为更大系统的一个数据层&lt;/strong&gt;：它不要求替换 π₀、Diffusion Policy 或 Flow Matching policy，只需在 LeRobot 数据中注入 &lt;code&gt;warp_rm_signed_magnitude&lt;/code&gt;，就能把质量感知接到现有 BC pipeline。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;如果把论文压缩成一个研究问题，就是：&lt;strong&gt;在不增加人工标注的前提下，能否把“示教中哪里真正推进了任务”变成可计算、可验证、可下游使用的训练信号？&lt;/strong&gt; WARP-RM 给出的答案是肯定的，但它仍需要在更多 embodiment、更多失败模式和更长的在线闭环任务上接受检验。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/71875434_p0_master1200.7pvvr603z.webp"/><enclosure url="https://pic.hana0721.top/71875434_p0_master1200.7pvvr603z.webp"/></item><item><title>VLA-OPD 论文精读：用 On-Policy Distillation 连接 VLA 的 SFT 与 RL</title><link>https://agusexp25.top/blog/paper-deep-dive-vla-opd</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-vla-opd</guid><description>精读 VLA-OPD：让学生 VLA 在自己走出的状态上接受教师的 token-level dense supervision，并用 Reverse-KL 同时获得 SFT 的效率与 RL 的闭环鲁棒性。</description><pubDate>Tue, 25 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;论文名称&lt;/strong&gt;：《VLA-OPD: Bridging Offline SFT and Online RL for Vision-Language-Action Models via On-Policy Distillation》&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;作者&lt;/strong&gt;：Zhide Zhong、Haodong Yan、Junfeng Li、Junjie He、Tianran Zhang、Haoang Li&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;机构&lt;/strong&gt;：The Hong Kong University of Science and Technology (Guangzhou)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;会议 / 期刊&lt;/strong&gt;：arXiv 预印本（2026）&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;论文链接&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2603.26666&quot;&gt;arXiv&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;代码 / 项目仓库&lt;/strong&gt;：&lt;a href=&quot;https://github.com/IRPN-LAB/VLA-OPD&quot;&gt;IRPN-LAB/VLA-OPD&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;项目主页&lt;/strong&gt;：&lt;a href=&quot;https://irpn-lab.github.io/VLA-OPD/&quot;&gt;VLA-OPD&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/IRPN-LAB/VLA-OPD/main/figures/opd/figure1-1.png&quot; alt=&quot;VLA-OPD 的三阶段总览：学生采样、教师标注与 Reverse-KL 优化（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; VLA-OPD 把学生 VLA 的 on-policy rollout 当作“主动暴露错误状态”的机制，再用冻结教师在每个访问状态输出动作 logits，以 token-level Reverse-KL reward 进行更新；它因此绕开 sparse-reward RL 的低样本效率，同时修复 offline SFT 的 exposure bias 与 catastrophic forgetting。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;提出统一的 On-Policy VLA Distillation（VLA-OPD）：学生自己与环境交互，教师只在学生访问到的状态上提供监督。&lt;/li&gt;
&lt;li&gt;把教师分布蒸馏写成 Reverse-KL，而不是 Forward-KL 或 Hard-CE，目标是 mode-seeking，同时保留必要的 action diversity。&lt;/li&gt;
&lt;li&gt;通过在学生行为流形上做温和更新，缓解 offline SFT 因固定数据分布造成的 catastrophic forgetting。&lt;/li&gt;
&lt;li&gt;在 LIBERO 与 RoboTwin2.0 上验证：1-traj 初始化的 LIBERO 平均成功率从 48.9% 提升到 87.4%（Distill），再结合 GRPO 达到 93.4%。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 预训练 VLA 已具备跨任务泛化能力，但下游部署仍需要 post-training。传统 offline SFT（通常是 Behavior Cloning）在专家状态上学习，监督密集、收敛快，却没有覆盖学生自己造成的偏离状态；一旦执行误差累积，策略就进入未见过的区域。Online RL 能在学生诱导的状态分布上学习，但机器人任务常只有最终成功 / 失败的稀疏奖励，导致 credit assignment 困难、方差大、交互成本高。&lt;/p&gt;
&lt;p&gt;论文将三种范式的取舍概括为：&lt;/p&gt;
&lt;p&gt;| 范式 | 采样分布 | 训练信号 | 主要优点 | 主要问题 |
| --- | --- | --- | --- | --- |
| Offline SFT | Off-policy 专家轨迹 | 每个 token dense label | 稳定、快 | distribution shift、遗忘 |
| Online RL / GRPO | On-policy 学生轨迹 | 稀疏 outcome reward | 闭环纠错、少示教 | 样本效率低、方差大 |
| VLA-OPD | On-policy 学生轨迹 | 教师 token logits | dense + closed-loop | 需要可用教师 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; VLA-OPD 的关键不是把 SFT 与 RL 简单串联，而是把“状态分布由学生决定”和“动作监督由教师提供”解耦：前者负责找到失败状态，后者负责给出比 0/1 成功信号更细的纠错方向。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 将机器人操控写成 MDP $(\mathcal S, \mathcal A, \mathcal T, r, \gamma)$。状态 $s_t$ 包含视觉观测与语言指令，策略 $\pi_\theta(a_t\mid s_t)$ 输出动作，目标是最大化任务成功率。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Input / Observation&lt;/strong&gt;：当前视觉观测与语言 instruction；论文没有把具体相机数量或统一的 proprioception 格式作为方法前提。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Output / Action&lt;/strong&gt;：VLA 生成的离散或连续动作 token；方法在 token level 计算 teacher / student log-probability。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Student&lt;/strong&gt;：通常由 OpenVLA-OFT 等基础模型经 1-traj（LIBERO）或 1,000-traj（RoboTwin2.0）SFT 初始化。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Teacher&lt;/strong&gt;：冻结的高性能策略，实验中使用 SimpleVLA-RL 作为 performance oracle。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Environment / Dataset&lt;/strong&gt;：LIBERO 的 Spatial、Object、Goal、Long 四个 suite，以及 RoboTwin2.0 的双臂任务。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;如 Figure 1 所示，训练循环只有一条主线：学生在环境中产生 $O\rightarrow A\rightarrow O$ 轨迹，教师读取这些学生访问到的状态并给出 action logits，学生再用 Reverse-KL 目标更新。教师不执行动作，环境 rollout 只由学生完成。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;On-Policy Trajectory Sampling&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：当前学生策略 $\pi_{\theta_k}$、prompt batch 与环境。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：学生诱导的轨迹集合 $\mathcal D_k={\tau_i}$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;作用&lt;/strong&gt;：把 compounding error 造成的 failure states 显式加入训练数据，直接解决 SFT 只看专家状态的问题。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 每一步按 $a_t\sim\pi_{\theta_k}(\cdot\mid s_t)$ 执行，下一状态按环境转移 $s_{t+1}\sim\mathcal P(\cdot\mid s_t,a_t)$ 产生。因此训练分布是 $d^{\pi_{\theta_k}}$，而不是固定的 expert distribution。&lt;/p&gt;
&lt;h4&gt;Dense Teacher Supervision&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：学生访问的状态 $s_t$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：教师动作分布 $q_t(a)=\pi_{tea}(a\mid s_t)$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;作用&lt;/strong&gt;：在每个 token 上提供即时纠错信号，并把教师的 recovery prior 传给学生；不需要等 episode 结束才知道成功与否。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Reverse-KL Reward&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文使用 token-level intrinsic reward：&lt;/p&gt;
&lt;p&gt;$$
r_t^{\mathrm{OPD}}(s_t,a_t)=-\left(\log\pi_\theta(a_t\mid s_t)-\log\pi_{tea}(a_t\mid s_t)\right)
$$&lt;/p&gt;
&lt;p&gt;学生选择的动作越接近教师高概率区域，惩罚越小。实现 policy-gradient 时，对 reward 内的 student log-probability 使用 &lt;code&gt;stop_gradient&lt;/code&gt;，避免把 reward 计算本身的梯度重复传回策略。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;学生 on-policy 轨迹&lt;/h4&gt;
&lt;p&gt;$$
\mathcal D_k={\tau=(s_0,a_0,s_1,\ldots,s_T)\mid a_t\sim\pi_{\theta_k}(\cdot\mid s_t),;s_{t+1}\sim\mathcal P(\cdot\mid s_t,a_t)}
$$&lt;/p&gt;
&lt;p&gt;$\mathcal D_k$ 是第 $k$ 次迭代采集的数据；$\pi_{\theta_k}$ 是当时的学生；$\mathcal P$ 是环境转移。它的意义是让训练覆盖学生真实会走到的状态，包括错误状态。&lt;/p&gt;
&lt;h4&gt;Reverse-KL 目标&lt;/h4&gt;
&lt;p&gt;$$
\max_\theta;\mathcal J(\theta)=\mathbb E_{s\sim\pi_\theta}\left[-D_{KL}\left(\pi_\theta(\cdot\mid s),|,\pi_{tea}(\cdot\mid s)\right)\right]
$$&lt;/p&gt;
&lt;p&gt;这里的 KL 方向是 student $|$ teacher。与 Forward-KL 的 mode-covering 不同，Reverse-KL 倾向于选取教师的主要 mode；教师在 OOD 状态上的低置信度尾部不会被强迫完整复制。&lt;/p&gt;
&lt;h4&gt;Group-based gradient&lt;/h4&gt;
&lt;p&gt;$$
\nabla_\theta\mathcal J(\theta)\approx\frac1G\sum_{i=1}^{G}\sum_{t=0}^{T}\nabla_\theta\log\pi_\theta(a_{t,i}\mid s_{t,i}),r_t^{\mathrm{OPD}}(s_{t,i},a_{t,i})
$$&lt;/p&gt;
&lt;p&gt;$G$ 是同一 instruction 下采样的轨迹数。增大 $G$ 能降低环境随机性带来的 Monte Carlo 方差，但也线性增加 rollout 与 teacher inference 成本。&lt;/p&gt;
&lt;h4&gt;三种目标的差异&lt;/h4&gt;
&lt;p&gt;| 目标 | 分布行为 | 论文观察 |
| --- | --- | --- |
| Forward-KL $D_{KL}(\pi_{tea}|\pi_\theta)$ | Mode-covering | 模仿教师不确定性，出现 entropy explosion |
| Hard-CE | 只跟随 argmax | 过早 entropy collapse，损失探索多样性 |
| Reverse-KL $D_{KL}(\pi_\theta|\pi_{tea})$ | Bounded mode-seeking | 聚焦有效 mode，同时保留适度随机性 |&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 学生先从 SFT checkpoint 初始化。每轮从 prompt 数据集采样 batch，并对每个 prompt 采样 $G$ 条学生轨迹；随后逐状态查询冻结教师，计算 token-level Reverse-KL reward，再用 group-averaged policy gradient 更新学生。主实验 batch size 为 64、$G=8$；消融实验固定 batch size 为 32。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 推理时只运行学生策略。它接收当前视觉观测与指令，逐步生成动作并交给机器人执行；教师不参与部署环路，因而 teacher 的作用是 post-training 时的 privileged supervision，而不是 runtime dependency。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 截至本文撰写时，论文配套 GitHub 仓库 &lt;code&gt;IRPN-LAB/VLA-OPD&lt;/code&gt; 公开内容主要是项目主页与论文图表（例如 &lt;code&gt;figures/opd/figure1-1.png&lt;/code&gt;、训练曲线和遗忘曲线），没有可供复现实验的训练、数据加载、模型或推理脚本；项目主页上的 Code 按钮也标注为 “Coming Soon”。因此以下内容只能对照公开仓库的资产，不能把论文中的伪代码误写成已验证的代码行为。&lt;/p&gt;
&lt;p&gt;| 论文对象 | 公开仓库现状 | 结论 |
| --- | --- | --- |
| Student / Teacher model | 未公开模型定义 | 论文描述，尚无代码核验 |
| Rollout 与 DataLoader | 未公开 | 论文描述，尚无代码核验 |
| Reverse-KL loss 与 &lt;code&gt;stop_gradient&lt;/code&gt; | 未公开 | 论文描述，尚无代码核验 |
| LIBERO / RoboTwin 配置 | 未公开 | 论文表格可读，实验脚本不可复现 |
| Figure 1、训练曲线、消融图 | 已公开 PNG | 可用于核对论文图形与数值叙述 |&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; LIBERO 使用 Spatial、Object、Goal、Long 四个 suite；学生由每任务 1 条示教的 SFT 初始化。RoboTwin2.0 选取四个双臂协调任务，学生由每任务 1,000 条轨迹初始化。教师为 SimpleVLA-RL；比较对象包括 Student Init、稀疏奖励 GRPO 与 full-dataset offline SFT。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/IRPN-LAB/VLA-OPD/main/figures/opd/training_efficiency_object_testing_1.png&quot; alt=&quot;LIBERO-Object 上的训练效率：Distill 早期快速上升，Distill + GRPO 继续突破上限（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/IRPN-LAB/VLA-OPD/main/figures/opd/training_efficiency_libero10_testing_1.png&quot; alt=&quot;LIBERO-Long 上的训练效率：约 50 步达到接近 80%，GRPO 基线需要约 150 步（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; LIBERO 平均成功率如下：&lt;/p&gt;
&lt;p&gt;| 方法 | Spatial | Object | Goal | Long | Avg. |
| --- | ---: | ---: | ---: | ---: | ---: |
| SimpleVLA-RL Teacher | 94.2 | 96.1 | 94.6 | 90.7 | 93.9 |
| OpenVLA-OFT Student Init.（1-traj） | 63.6 | 54.9 | 59.6 | 17.3 | 48.9 |
| VLA-OPD Distill | 84.3 | 93.8 | 92.5 | 78.9 | 87.4 |
| VLA-OPD Distill + GRPO | 93.4 | 95.3 | 94.5 | 90.2 | 93.4 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这里最有信息量的对照是 48.9% → 87.4%：Distill 并没有增加静态示教数据，而是把学生的失败状态转成了训练输入。再接 GRPO 的 93.4% 接近教师 93.9%，说明 OPD 更像一个高效 warm start，而不是声称完全取代 RL。&lt;/p&gt;
&lt;p&gt;在 RoboTwin2.0 的四个双臂任务上，Student Init 平均 45.2%，VLA-OPD Distill 平均 71.1%，教师为 74.0%。这说明方法的收益不只来自单臂 LIBERO，也覆盖更长 horizon 与双臂协调。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/IRPN-LAB/VLA-OPD/main/figures/opd/kl_direction_ablation_train_reward_verifier_vs_step.png&quot; alt=&quot;Reverse-KL、Forward-KL 与 Hard-CE 的成功率消融（论文 Figure 4a）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/IRPN-LAB/VLA-OPD/main/figures/opd/kl_direction_ablation_entropy_vs_step.png&quot; alt=&quot;同一消融中的 actor entropy：Forward-KL 爆炸，Hard-CE 过早坍缩，Reverse-KL 保持有界（论文 Figure 4b）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在 RoboTwin2.0 的 Beat Block Hammer 任务上，Reverse-KL 的成功率稳步升高；Forward-KL 早期出现超过 50 个百分点的 performance valley，Hard-CE 最终停在最低平台。对应的 entropy 曲线支持论文的机制解释：Forward-KL 复制教师尾部不确定性，Hard-CE 丢掉 soft probabilities，而 Reverse-KL 在有效 mode 内保留适度随机性。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; group size 消融使用 $G\in{2,4,8}$。$G=8$ 最平滑、最终约 89%；$G=2$ 仍超过 80%，说明减小 rollout group 可以用更低计算成本换取可接受的梯度方差。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/IRPN-LAB/VLA-OPD/main/figures/opd/final_object_unseen_task_1.png&quot; alt=&quot;Object unseen task 上 seen–unseen trade-off：offline SFT 的 unseen 能力快速坍缩，on-policy 方法保持较高保留率（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 遗忘实验在 target seen tasks 上微调，同时在四个 held-out Object / Spatial tasks 上评估。offline SFT 随 seen 成功率提升而把 unseen 成功率压到接近 0；RL 与 VLA-OPD 的 on-policy 更新显著缓解此崩塌。&lt;strong&gt;【Analysis】&lt;/strong&gt; 这支持“更新锚定学生当前行为流形”的解释，但尚不足以证明对所有 backbone 或任务都能免于遗忘。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; VLA-OPD 同时修复了两个互补的错位：状态分布由学生 rollout 决定，因此训练数据包含真正会失败的状态；动作标签由教师 logits 决定，因此每个 token 都有 dense signal。Reverse-KL 则控制教师在 OOD 状态上的不确定性不被整段复制，避免“既不果断又不稳定”的策略。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;State on-policy，label teacher-forced&lt;/strong&gt;：学生负责提出问题，教师负责给出恢复方向。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reverse-KL mode-seeking&lt;/strong&gt;：不追逐教师分布的所有低概率尾部。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Post-training 组合方式&lt;/strong&gt;：Distill 负责快速获得鲁棒起点，GRPO 可在其上继续优化最终上限。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;offline SFT 在固定专家轨迹上做 Forward-KL / CE；DAgger 类方法通常让专家给 on-policy 状态打 hard label；GRPO 依赖 episode-level outcome reward。VLA-OPD 的独特点是“on-policy states + token-level teacher distribution + Reverse-KL”，三者缺一都会改变它的优化性质。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;存在一个比学生更鲁棒、可以查询 logits 的冻结教师。&lt;/li&gt;
&lt;li&gt;教师在学生访问的 OOD 状态上仍能给出有用的相对偏好。&lt;/li&gt;
&lt;li&gt;训练环境允许足够多的学生 rollout；虽然比 sparse-reward RL 高效，但并非零交互成本。&lt;/li&gt;
&lt;li&gt;action token 的概率分布可以稳定比较，且 teacher / student 的动作空间与 tokenizer 对齐。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 结论部分明确指出，后续工作将减少对特定 teacher model 的依赖。也就是说，当前方法的可扩展性仍受 teacher availability 与 teacher quality 约束。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;教师需要在每个学生状态上运行并返回 token logits；当 VLA 很大时，teacher inference 可能成为主要成本。&lt;/li&gt;
&lt;li&gt;Reverse-KL 只会在教师概率质量足够可靠时发挥作用；如果教师在关键 OOD 状态上完全错误，dense supervision 也可能把学生带向错误 mode。&lt;/li&gt;
&lt;li&gt;论文公开表格很完整，但截至本文撰写时 GitHub 没有训练代码、配置、checkpoint 或数据处理脚本，独立复现实验仍受限。&lt;/li&gt;
&lt;li&gt;论文主要报告 LIBERO 与 RoboTwin2.0；对真实机器人硬件差异、长时间部署稳定性和 teacher mismatch 的系统评估仍不充分。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; VLA post-training 可以被拆成三个可替换接口：谁产生状态、谁提供动作偏好、用什么 divergence 更新。这样一来，未来不一定要把“更强 teacher”直接蒸馏给学生，也可以研究不确定性门控、多个 teacher 的 ensemble、只在高价值 failure state 上查询 teacher，或把 Reverse-KL reward 与 replay / offline regularization 混合。&lt;/p&gt;
&lt;p&gt;对实践者而言，VLA-OPD 给出一个清晰的工程顺序：先用极少示教得到可运行但脆弱的学生，再用 on-policy distillation 快速修复闭环错误，最后视需要接 GRPO 提升上限。对研究者而言，真正值得继续追问的是：teacher 不可靠时如何估计 epistemic uncertainty，以及能否在没有 teacher logits 的开放模型上近似同样的 bounded mode-seeking 更新。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/70434530_p0_master1200.b9htgy5uw.webp"/><enclosure url="https://pic.hana0721.top/70434530_p0_master1200.b9htgy5uw.webp"/></item><item><title>VLA-0 论文精读：不改 VLM，直接把动作写成文本</title><link>https://agusexp25.top/blog/paper-deep-dive-vla-0</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-vla-0</guid><description>精读 VLA-0：以 Qwen2.5-VL 为底座，不新增动作 token 或动作头，仅用数字文本、动作集成和 masked action augmentation 构建高性能 VLA。</description><pubDate>Tue, 25 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; VLA-0 重新审视了一个被主流路线忽略的方案：不新增 action token、不接专用 action head，也不改 tokenizer，而是提示一个普通 Vision-Language Model（VLM）把未来动作直接生成成数字字符串。论文以 Qwen2.5-VL-3B 为底座，配合 action decoding、ensemble prediction 和 Masked Action Augmentation，在 LIBERO 和 SO-100 上取得了出人意料的高性能。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;提出 &lt;strong&gt;VLA-0&lt;/strong&gt;：保持底层 VLM 的 vocabulary、tokenization 和网络结构不变，用文本形式表示机器人动作。&lt;/li&gt;
&lt;li&gt;给出一套决定性能的训练/推理 recipe：把连续动作归一化到整数区间、限制推理时的合法 token、对重叠动作预测做 ensemble，并随机遮挡动作字符串中的字符。&lt;/li&gt;
&lt;li&gt;在没有大规模机器人动作预训练的情况下，LIBERO 四个 suite 平均成功率达到 &lt;strong&gt;94.7%&lt;/strong&gt;，超过同类未预训练 VLA 以及若干做过大规模动作预训练的方法。&lt;/li&gt;
&lt;li&gt;在 SO-100 四个真实任务上超过使用大规模 SO-100 预训练的 SmolVLA，平均高出 &lt;strong&gt;12.5 个百分点&lt;/strong&gt;。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-vla-0/Figure1-static.6il11ylkik.webp&quot; alt=&quot;VLA-0 converts a VLM into a VLA by generating actions as text, paper Figure 1&quot;&gt;&lt;/p&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 现有 VLA 大致可分为三类：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Discrete Token VLA&lt;/strong&gt;：把动作离散到若干 bin，再占用 VLM 词表中的 token；代表方法包括 RT-2 和 OpenVLA。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Generative Action Head VLA&lt;/strong&gt;：在 VLM 外增加连续动作生成模块，例如 diffusion/flow action head。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Custom Architecture VLA&lt;/strong&gt;：引入专用 action tokenizer 或改造 decoder，例如 DCT 风格的 action tokenization 或 ACT head。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-vla-0/comp_fig_horizontal.8adzwv4xsi.webp&quot; alt=&quot;Families of VLA methods from paper Figure 2&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 第一类方法的困难是动作分辨率受 token 数量约束，而且复用文本 token 可能损害原本的语言语义；后两类虽然表达力更强，却引入额外参数、训练阶段和工程复杂度。VLA-0 的问题意识很直接：如果 VLM 本来就会生成数字，为什么不能让它直接生成动作数字？&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这不是声称架构修改没有价值，而是把研究变量换成了训练 recipe。论文真正想验证的是：当输入格式、数字约束、动作集成和遮挡增强都设计得足够仔细时，所谓“最简单”的文本动作接口是否已经足够强。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; VLA-0 接收一个 system prompt、一个或多个 RGB 图像和自然语言任务指令，输出未来 $H$ 个时间步、每步 $D$ 维的动作。system prompt 要求模型输出单行、空格分隔的 $H\times D$ 个整数，每个整数位于 $[0,B]$。&lt;/p&gt;
&lt;p&gt;$$
o_t={I_t^{(1)},\ldots,I_t^{(C)},\ell_t},
\qquad
A_t=[a_t, a_{t+1},\ldots,a_{t+H-1}].
$$&lt;/p&gt;
&lt;p&gt;其中 $I_t^{(c)}$ 是第 $c$ 个相机图像，$\ell_t$ 是任务指令，$a_t\in\mathbb R^D$ 是原始连续动作。策略学习的是文本条件分布 $p_\theta(s(A_t)\mid o_t)$，$s(\cdot)$ 表示把动作序列编码为数字字符串。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; LIBERO 实验使用第三人称和 wrist camera；真实 SO-100 实验使用左右相机。每个 LIBERO suite（Spatial、Object、Goal、Long）包含 10 个任务，每个任务评估 50 个 episode。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方默认配置使用 Qwen2.5-VL-3B-Instruct、7 维 original action、8 步 horizon、1 帧 history、2 个 camera、1000 个 action bins 和 224×224 图像。仓库中的 &lt;code&gt;img_libero_aug.yaml&lt;/code&gt; 同样设置 &lt;code&gt;history=1&lt;/code&gt;、&lt;code&gt;horizon=8&lt;/code&gt;，并使用 &lt;code&gt;physical-intelligence/libero&lt;/code&gt; LeRobot 数据集。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-vla-0/arch_fig.6il11ylks2.webp&quot; alt=&quot;VLA-0 architecture from paper Figure 3&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 数据流可以概括为：多视角图像与语言指令进入原生 VLM；VLM 按聊天模板生成空格分隔的整数；整数经过反归一化后还原为连续机器人动作。VLA-0 没有额外的视觉融合层、action head 或 action tokenizer。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;输入与 VLM 底座&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：system prompt、相机 RGB 图像、任务 instruction。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;视觉编码&lt;/strong&gt;：由 Qwen2.5-VL 自带视觉模块完成，VLA-0 不替换它。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;语言模型&lt;/strong&gt;：论文使用约 3B 参数的 Qwen2.5-VL-3B；代码通过 &lt;code&gt;Qwen2_5_VLForConditionalGeneration&lt;/code&gt; 加载完整模型。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;多图组织&lt;/strong&gt;：可以把多帧/多相机图像作为独立 image 输入，也可以横向 tile 成一张 composite image。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;QwenActor.get_imgs&lt;/code&gt; 从输入 batch 生成 PIL 图像列表；若 &lt;code&gt;tiled_rgb_imgs=True&lt;/code&gt;，&lt;code&gt;tile_images&lt;/code&gt; 会把图像沿宽度拼接。&lt;code&gt;add_vision_id=True&lt;/code&gt; 是多图或多 history 的必要条件，用于让 Qwen 区分视觉输入。&lt;/p&gt;
&lt;h4&gt;Action Decoding&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 给定原始动作范围 $[m_i,M_i]$，每个动作维度被映射到 $[0,B]$ 的整数：&lt;/p&gt;
&lt;p&gt;$$
z_i=\operatorname{round}\left(
\frac{a_i-m_i}{M_i-m_i}B
\right).
$$&lt;/p&gt;
&lt;p&gt;模型只需输出 &lt;code&gt;z_1 z_2 ... z_{H\times D}&lt;/code&gt;，不需要知道动作 token 的特殊语义。分辨率 $B$ 可以按任务调节，不受 VLM 词表大小限制。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;get_text_action&lt;/code&gt; 使用数据集统计量的 min/max 归一化并四舍五入为整数；&lt;code&gt;get_action_from_text_action&lt;/code&gt; 将文本解析为 &lt;code&gt;(batch, horizon, act_dim)&lt;/code&gt;，缺少数字时用最后一个动作补齐，超出 horizon 时截断，再按 min/max 还原连续值。&lt;/p&gt;
&lt;h4&gt;NumberSpaceOnlyProcessor&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 推理时 &lt;code&gt;NumberSpaceOnlyProcessor&lt;/code&gt; 把 logits 限制到数字 &lt;code&gt;0–9&lt;/code&gt;、空格和 EOS。这样模型虽仍通过原生 text generation 生成动作，但不会输出解释性自然语言或非法字符。&lt;strong&gt;【Analysis】&lt;/strong&gt; 这个约束是“文本动作”能稳定落地的重要工程边界：动作语义不需要新 token，但语法仍需要硬约束。&lt;/p&gt;
&lt;h4&gt;Ensemble Prediction&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 每次推理生成一段未来动作，连续时刻的预测会重叠。时刻 $t$ 的最终动作取最近 $n$ 次预测在对应时间位置上的平均：&lt;/p&gt;
&lt;p&gt;$$
\hat a_t=\frac{1}{n}\sum_{j=0}^{n-1}\hat a_{t-j}^{(j)}.
$$&lt;/p&gt;
&lt;p&gt;这对应 ACT 的 Temporal Ensembling 思路，使数字文本解码造成的局部抖动不直接传到机器人。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; LIBERO 命令示例使用 &lt;code&gt;--action_horizon 1 --ensemble_prediction 8&lt;/code&gt;，即每个环境步执行一项动作并融合 8 个预测；实时 SO-100 评测为保持部署简单，论文明确没有启用 ensemble。&lt;/p&gt;
&lt;h4&gt;Masked Action Augmentation&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 训练时随机把目标动作字符串中的一部分字符替换为 mask 字符。被遮挡位置不参与 loss，同时输入中的对应 token 被替换为 &lt;code&gt;?&lt;/code&gt;，迫使模型根据图像和指令推理动作，而不是只做数字序列的 auto-completion。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;QwenActor.forward&lt;/code&gt; 中约 10% 样本不做增强，其余样本从 &lt;code&gt;[0, action_mask_aug_per]&lt;/code&gt; 均匀采样遮挡比例；默认配置是 &lt;code&gt;action_mask_aug_per=0.4&lt;/code&gt;，被遮挡 label 设为 &lt;code&gt;-100&lt;/code&gt;，输入 token 设为 id &lt;code&gt;30&lt;/code&gt;。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;文本动作的交叉熵&lt;/h4&gt;
&lt;p&gt;设动作字符串 token 序列为 $y_{1:L}$，VLM 在视觉和语言条件 $o_t$ 下输出 logits $p_\theta(y_k\mid y_{&amp;#x3C;k},o_t)$，训练目标是标准 causal language modeling loss：&lt;/p&gt;
&lt;p&gt;$$
\mathcal L_{\mathrm{CE}}(\theta)=
-\sum_{k=1}^{L}\mathbf 1[k\in\mathcal A]
\log p_\theta(y_k\mid y_{&amp;#x3C;k},o_t),
$$&lt;/p&gt;
&lt;p&gt;其中 $\mathcal A$ 是未被遮挡的动作字符位置。system prompt、用户消息、图像 token 和 padding 都不计入 loss。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方实现复制 Qwen 的 shifted-token loss：&lt;code&gt;shift_logits&lt;/code&gt; 预测下一个 token，&lt;code&gt;shift_labels&lt;/code&gt; 右移一位；&lt;code&gt;CrossEntropyLoss(ignore_index=-100)&lt;/code&gt; 完成屏蔽。&lt;/p&gt;
&lt;h4&gt;反归一化&lt;/h4&gt;
&lt;p&gt;模型生成整数 $z_i$ 后，连续动作为&lt;/p&gt;
&lt;p&gt;$$
\hat a_i=\frac{z_i}{B}(M_i-m_i)+m_i.
$$&lt;/p&gt;
&lt;p&gt;该公式的作用不是学习新的 action decoder，而是把文本模型输出的离散数值还原到机器人的原始 action space。$m_i,M_i$ 必须来自与训练数据一致的数据集统计量。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文实验采用 full fine-tuning，batch size 192、学习率 $5\times10^{-6}$、64 epochs，在 8 张 A100 上约训练 32 小时。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 当前官方仓库默认 &lt;code&gt;configs/vla0.yaml&lt;/code&gt; 使用 AdamW、学习率 $5\times10^{-6}$、weight decay $10^{-10}$、24 epochs、batch size 8、AMP 开启；&lt;code&gt;use_lora=False&lt;/code&gt;、&lt;code&gt;use_qlora=False&lt;/code&gt;，也就是配置默认是全参数微调。论文配置和公开仓库默认值并不完全一致，应以具体 checkpoint 的 &lt;code&gt;config.yaml&lt;/code&gt; 为准。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;get_one_step_action=True&lt;/code&gt; 时，模型会把上一次的 action text 接回输入，只生成当前一步需要的数字，并通过 &lt;code&gt;service.py&lt;/code&gt; 以 streaming API 逐步返回。公开 README 报告标准 PyTorch 在 RTX 5090 上约 4 Hz；8 路 ensemble 需要同时运行 8 个模型实例，因此真实部署默认关闭 ensemble。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;| 论文概念 | 官方代码位置 | 实际实现 |
| --- | --- | --- |
| VLM backbone | &lt;code&gt;rv_train/models/qwen/model.py&lt;/code&gt; | 加载 &lt;code&gt;Qwen2_5_VLForConditionalGeneration&lt;/code&gt; |
| 文本动作格式 | &lt;code&gt;format_data&lt;/code&gt; 与 &lt;code&gt;system_message&lt;/code&gt; | 输出 $H\times D$ 个空格分隔整数 |
| 动作量化 | &lt;code&gt;get_text_action&lt;/code&gt; | 按 dataset min/max 映射到 &lt;code&gt;num_bins_actions&lt;/code&gt; |
| 动作解析 | &lt;code&gt;get_action_from_text_action&lt;/code&gt; | 解析、补齐/截断、反归一化 |
| 合法 token 约束 | &lt;code&gt;NumberSpaceOnlyProcessor&lt;/code&gt; | 数字、空格、EOS 以外 logits 置为 $-\infty$ |
| 遮挡增强 | &lt;code&gt;QwenActor.forward&lt;/code&gt; | 随机屏蔽 action 字符并忽略对应 loss |
| 训练入口 | &lt;code&gt;rv_train/train.py&lt;/code&gt; | DataLoader、optimizer、checkpoint、dataset stats |
| 评测与部署 | &lt;code&gt;eval/eval_libero.py&lt;/code&gt;, &lt;code&gt;rv_train/deploy/&lt;/code&gt; | LIBERO ensemble、SO-100 API/streaming |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;transform_from_so100&lt;/code&gt; 的函数签名包含 robot state，但它构造给 QwenActor 的样本只保留 RGB 和 instruction；当前 VLA-0 模型实际是视觉-语言条件策略，不把 proprioception 作为额外 token 输入。&lt;strong&gt;【Analysis】&lt;/strong&gt; 这也是“zero modification”的一部分：动作接口是文本，观测接口仍沿用 VLM 的图像+文本范式。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;LIBERO&lt;/strong&gt;：Spatial、Object、Goal、Long 四个 suite，每个 suite 10 个任务，每个任务 50 episodes。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;真实机器人&lt;/strong&gt;：SO-100 与 LeRobot，四个任务是 reorienting a block、pushing an apple、pick-and-place a banana、pick-and-place a cupcake；每个任务 100 条训练示教，在不同初始物体位置上测试。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;基座与对比&lt;/strong&gt;：Diffusion Policy、OpenVLA、SmolVLA、$\pi_0$、GR00T-N1、$\pi$-FAST、OpenVLA-OFT、$\pi_{0.5}$-KI 等，论文同时区分是否有 large-scale action pretraining。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; VLA-0 在没有大规模机器人动作预训练的模型中取得四个 suite 全部最高：Spatial 97.0、Object 97.8、Goal 96.2、Long 87.6，平均成功率 &lt;strong&gt;94.7%&lt;/strong&gt;、平均排名 1.0，比未预训练组第二名高 1.4 个百分点。&lt;/p&gt;
&lt;p&gt;即使和有大规模动作预训练的模型相比，VLA-0 仍超过 $\pi_0$（94.2）、GR00T-N1（93.9）、MolmoAct（86.8）、$\pi$-FAST（86.0）等；只有 OpenVLA-OFT（97.1）和少数模型在部分 suite 上更高。&lt;strong&gt;【Analysis】&lt;/strong&gt; 这不是“零样本”或“零训练”，而是“不做大规模机器人动作预训练”；VLA-0 仍在 LIBERO 数据上进行任务微调。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-vla-0/model_comparison_final.51ew07hga3.webp&quot; alt=&quot;Real-world SO-100 comparison from paper Figure 4&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 真实实验中，VLA-0 平均成功率比 SmolVLA 高 12.5 个百分点。SmolVLA 使用了大规模 SO-100 预训练，而 VLA-0 从 Qwen2.5-VL 开始训练，说明文本动作接口的效果不只停留在 LIBERO 仿真。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; LIBERO 四套件平均成功率的消融如下：&lt;/p&gt;
&lt;p&gt;| 配置 | 平均成功率 | 相对完整模型 |
| --- | ---: | ---: |
| 完整 VLA-0（ensemble + mask + tile，resolution 1000） | 94.7 | 0.0 |
| 去掉 action ensemble | 92.0 | -2.0 |
| 去掉 Masked Action Augmentation | 93.5 | -1.2 |
| resolution 4000 | 94.2 | -0.5 |
| resolution 250 | 93.2 | -1.5 |
| 不 tile 多图 | 94.5 | -0.2 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; action ensembling 是影响最大的组件；resolution 1000 已足够，增加到 4000 没有收益，降到 250 则损失 1.5 个百分点；图片是否 tile 影响很小。&lt;strong&gt;【Analysis】&lt;/strong&gt; 这组结果把“简单架构”与“简单 recipe”区分开：文本动作本身只是必要条件，稳定输出依赖时间融合和抗 teacher-forcing 偏差的增强。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; LIBERO 的四个 suite 分别考察空间位置、物体变化、目标变化和更长时序；VLA-0 在四类上都超过未预训练竞争方法。真实实验还在不同初始物体位置下评估，而不是只复现示教轨迹。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;eval/eval_libero.py&lt;/code&gt; 支持通过 &lt;code&gt;task_suite_name&lt;/code&gt;、&lt;code&gt;task_name&lt;/code&gt;、&lt;code&gt;action_horizon&lt;/code&gt;、&lt;code&gt;ensemble_prediction&lt;/code&gt; 和并行 episode 参数复现实验；README 提供的推荐设置是每步执行一个 action、融合 8 个预测。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;保留 VLM 先验&lt;/strong&gt;：不把原词表 token 改成动作 token，语言模型原本的指令理解能力不会被动作语义覆盖。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;分辨率与词表解耦&lt;/strong&gt;：动作数字由多个字符组成，$B$ 可以调整到 250、1000 或 4000，而不需要为每个 bin 新增 token。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;文本生成天然支持变长序列&lt;/strong&gt;：未来多个时间步只需串接数字，不需要为固定 horizon 设计额外输出头。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;遮挡增强迫使视觉 grounding&lt;/strong&gt;：随机破坏已生成的数字前缀，降低模型通过局部数字模式投机完成任务的机会。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Temporal Ensembling 把 token 噪声变成低通滤波&lt;/strong&gt;：多个重叠 action chunk 的平均能减轻离散解码和单步预测抖动。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 核心创新不是新的 Transformer block，而是证明“保留底层 VLM 完整性”本身可以成为设计原则：动作可以是文本，动作约束可以由 logits processor 提供，连续控制精度可以由数值编码提供。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; Discrete Token VLA 把动作离散值绑定到模型词表中的单 token；VLA-0 把动作绑定到“数字字符串”。Generative Action Head VLA 在语言模型旁边学习另一个连续生成器；VLA-0 让同一个 causal LM 负责语言和动作。Custom VLA 修改架构来改善动作建模；VLA-0 把主要复杂度放在 prompt、mask、解析和 ensemble 上。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 方法成立依赖以下假设：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Qwen 等 VLM 能在有限微调数据中学习数字序列与视觉状态的对应关系。&lt;/li&gt;
&lt;li&gt;动作空间可以用每维独立的 min/max 区间表达；跨维耦合由模型而不是 tokenizer 处理。&lt;/li&gt;
&lt;li&gt;单个 action token 的生成延迟仍足以满足机器人控制频率，或可以用短 horizon/streaming 缓解。&lt;/li&gt;
&lt;li&gt;训练时被遮挡的字符能模拟推理时的前缀不确定性，而不会破坏动作字符串的整体监督信号。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 真实部署标准 PyTorch 速度约 4 Hz；作者指出 TensorRT-LLM、蒸馏和量化可能提升速度。实时实验没有启用 ensemble，因为 8 路同时运行会增加部署成本。论文也没有把 action-free 视频用于预训练，而是聚焦有动作标注的任务示教。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;文本动作是自回归生成，输出 $H\times D$ 个数字的延迟会随 horizon、动作维度和数字位数增长；长时序或高 DoF 任务可能不适合一次生成完整 chunk。&lt;/li&gt;
&lt;li&gt;每个动作维度使用独立 min/max，异常值和跨任务统计差异会直接影响量化分辨率；代码解析失败时会退回 min/max 中点，属于安全兜底而非可靠控制。&lt;/li&gt;
&lt;li&gt;NumberSpaceOnlyProcessor 只约束字符集合，不保证数字数量、范围或动作语义正确；后处理还需要补齐、截断和裁剪。&lt;/li&gt;
&lt;li&gt;ensemble 在仿真中收益明显，但真实部署关闭 ensemble，说明论文最强结果与低延迟部署之间仍有取舍。&lt;/li&gt;
&lt;li&gt;主要结果集中在 LIBERO 和 SO-100，尚不能据此推断文本动作接口对双臂、高频触觉和复杂接触动力学同样有效。&lt;/li&gt;
&lt;li&gt;公开仓库默认配置与论文训练细节不同，复现实验必须使用 checkpoint 附带的 config、dataset statistics 和对应 LeRobot 版本。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; VLA-0 最值得借鉴的是“先问接口是否真的需要专用模块”。几个可继续研究的方向是：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;结构化文本动作&lt;/strong&gt;：在保持原生 tokenizer 的前提下，用分隔符、字段名或短 JSON 约束表达双臂、力控和终止标志，再研究它们对生成稳定性的影响。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;自适应数值编码&lt;/strong&gt;：让分辨率 $B$ 根据动作维度、任务阶段或不确定性动态变化，避免所有维度固定使用 1000 bins。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;更高效的解码&lt;/strong&gt;： speculative decoding、KV cache、量化和蒸馏可以降低“数字 token 自回归”相对 action head 的延迟。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;学习何时 ensemble&lt;/strong&gt;：把预测置信度、动作阶段和接触状态纳入融合权重，在真实部署中用少于 8 路模型获得接近 ensemble 的平滑效果。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;对实践者而言，VLA-0 提供了一条低改造成本基线：先用现成 VLM、原生 chat template 和标准 cross-entropy 建立可运行系统，再通过合法 token 约束、动作统计量和 rollout 平滑逐步改善。它提醒我们，VLA 的瓶颈不总是缺少专门的 action head，也可能是输入协议、监督 mask 和推理后处理没有被认真设计。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/66497987_p0_master1200.58hynbbxn8.webp"/><enclosure url="https://pic.hana0721.top/66497987_p0_master1200.58hynbbxn8.webp"/></item><item><title>VISTA：Scaling World Model 论文精读</title><link>https://agusexp25.top/blog/paper-deep-dive-vista</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-vista</guid><description>精读 VISTA：用可生成的视觉子目标把 Embodied World Model 变成高层规划器，再由 GoalVLA 执行低层动作，提升少样本机器人操作的 OOD 泛化。</description><pubDate>Tue, 25 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; VISTA（Visual Subgoal Task decomposition）针对 VLA 在 out-of-distribution（OOD）物体和场景上的脆弱性，把长时程操作拆成两层：一个大规模预训练的 Embodied World Model 负责规划，GoalVLA 负责执行。规划器不只输出语言，而是交错生成每个子任务的文本说明和对应 goal image；执行器同时看实时观测、子任务文本和目标图像，生成连续动作块。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-vista/teaser.362b7gynzn.webp&quot; alt=&quot;VISTA hierarchical system overview from paper Figure 1&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; VISTA 的关键不是让低层 VLA“更聪明地猜”未见物体，而是让高层世界模型先把“要做什么”翻译成可检查的视觉里程碑，让低层控制只需跟随具体的空间和姿态约束。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;将超过 1M 条跨机器人轨迹自动转成“子任务文本—目标图像”交错序列，形成 15.2B token 的 Embodied World Model 训练数据。&lt;/li&gt;
&lt;li&gt;在 EMU3.5 checkpoint 上继续训练一个 34.1B 参数的多模态自回归世界模型，生成多视角、物理一致的视觉子目标。&lt;/li&gt;
&lt;li&gt;提出 VISTA 层级框架和 GoalVLA：World Model 是高层 planner，goal-image-conditioned VLA 是低层 executor。&lt;/li&gt;
&lt;li&gt;用 2 小时、5 个物体的真实机器人数据，在 21 个未见目标和新场景上将同结构 π0 的成功率从 14% 提升到 69%。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 传统 language-conditioned VLA 把全局 instruction 直接映射为长序列动作。这个映射同时承担语义理解、空间定位、接触姿态和阶段切换，随着 horizon 变长，状态转移组合数快速增长。论文将困难归因于预训练 VLM 与 VLA 的数据结构错配：VLM 学 image-text，VLA 学长轨迹中的 image-action 对，并且通常回归连续动作。&lt;/p&gt;
&lt;p&gt;已有层级方法（例如 Helix、G0）把规划和控制拆开，但多使用文字子目标。&lt;strong&gt;【Analysis】&lt;/strong&gt; 语言很适合表达“拿起苹果”，却很难精确表达夹爪应落在苹果哪一侧、物体相对相机应处于什么姿态。另一条路线是直接预测未来视频，它提供更密集的信息，却容易产生时间漂移和物理不一致。VISTA 选择更稀疏的 key-frame goal image：只保留阶段终点的视觉约束，避免长视频 rollout 的误差累积。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 给定全局语言指令 $L$、初始多视角观测 $I_0$，以及已完成阶段的历史&lt;/p&gt;
&lt;p&gt;$$
h=(l_0,g_0,\ldots,l_{i-1},g_{i-1}),
$$&lt;/p&gt;
&lt;p&gt;系统在第 $i$ 个阶段生成文本子任务 $l_i$ 和视觉目标 $g_i$，再由策略根据当前观测 $I_t$ 预测长度为 $k$ 的动作块 $a_{t:t+k}$：&lt;/p&gt;
&lt;p&gt;$$
(l_i,g_i)=W(L,h),\qquad a_{t:t+k}=\pi_\theta(I_t,l_i,g_i).
$$&lt;/p&gt;
&lt;p&gt;机器人执行当前动作块，直到观测与 $g_i$ 对齐，再把 $(l_i,g_i)$ 加入历史并请求下一阶段。这里的 goal image 既是“如何做”的空间条件，也承担“何时完成”的视觉终止信号。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-vista/method.4joubi9rb6.webp&quot; alt=&quot;VISTA method architecture from paper Figure 2&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 整体数据流是：初始图像与全局 instruction 进入 Embodied World Model，模型自回归地产生 &lt;code&gt;Step 1: text → goal image → Step 2: text → goal image&lt;/code&gt;；GoalVLA 将实时观测、当前文本和目标图像融合为动作块，subtask switcher 在当前里程碑满足后切换阶段。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;Embodied World Model&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：初始多视角图像、机器人 embodiment type、全局 instruction，以及此前生成的阶段历史。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：交错的文本子任务与目标图像序列，最多覆盖提示词要求的阶段数。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;表示&lt;/strong&gt;：图像由 IBQ-Tokenizer 离散化，512×512 图像得到 1024 个视觉 token；文本使用 Qwen3 tokenizer。两者共享一个 282,926 大小的词表。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;功能&lt;/strong&gt;：用一个自回归 Transformer 建模 &lt;code&gt;P(text, image | history)&lt;/code&gt;，而不是单独训练一个符号 planner 和一个图像生成器。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;必要性&lt;/strong&gt;：视觉目标补上语言没有明确编码的相对位置、末端执行器姿态和交互区域，同时比逐帧视频预测更容易保持阶段不变性。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文中的 World Model 共 34.1B 参数，其中 Transformer 31.2B、embedding 2.9B，最大序列长度 16,384。训练时从随机 goal image 附近 1 秒内采样时间戳，允许从任意阶段开始生成，形成 sliding-window 的闭环数据增强。&lt;/p&gt;
&lt;h4&gt;GoalVLA&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：3 张当前观测图像、3 张对应 goal image、当前子任务文本和末端执行器 6D pose。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：长度 30 的连续动作 chunk；实际部署只执行其中 10 步，再重新闭环预测。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;骨干&lt;/strong&gt;：类似 π0 的 MoE-like 结构，以 PaliGemma-3B 为 VLM backbone，配备 0.3B action expert；图像由 SigLIP 编码。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;动作生成&lt;/strong&gt;：采用 flow matching。对噪声 $z$ 和真实动作块 $a$ 做线性插值，action expert 预测速度场，10 步解码得到动作。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;阶段切换&lt;/strong&gt;：subtask-aware action padding 将跨阶段动作块的后半段置零，显式教会策略在目标满足后停止；random goal image offset 则模拟目标帧提前或延后的误差。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;世界模型的自回归目标&lt;/h4&gt;
&lt;p&gt;把图像和文字统一成 token 序列 $S=(u_1,\ldots,u_K)$ 后，训练目标是：&lt;/p&gt;
&lt;p&gt;$$
\mathcal{L}&lt;em&gt;{\mathrm{AR}}=-\sum&lt;/em&gt;{k=1}^{K}\log P(u_k\mid u_{&amp;#x3C;k};\theta_W).
$$&lt;/p&gt;
&lt;p&gt;$u_k$ 是第 $k$ 个文本或视觉 token，$u_{&amp;#x3C;k}$ 是因果注意力下的历史，$\theta_W$ 是世界模型参数。该目标让模型同时学习 instruction following、阶段顺序和未来视觉状态。&lt;/p&gt;
&lt;h4&gt;Beam search 的序列选择&lt;/h4&gt;
&lt;p&gt;推理时维护 beam 宽度为 $B$ 的候选序列，候选 $S$ 的概率为：&lt;/p&gt;
&lt;p&gt;$$
P(S)=\prod_jP(u_j\mid u_{&amp;#x3C;j}).
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文描述的是逐 token 扩展、直到所有候选生成终止 token，再选择联合概率最高的序列并用逆 tokenizer 恢复像素级目标图像。&lt;strong&gt;【Code】&lt;/strong&gt; 官方 &lt;code&gt;inference/infer.py&lt;/code&gt; 将这一步交给 &lt;code&gt;vllm_generation_utils.generate&lt;/code&gt;，配置文件默认 &lt;code&gt;num_beams=1&lt;/code&gt; 且启用采样；因此公开 demo 默认是单 beam 采样，而非论文文字所述的多 beam 设置。&lt;/p&gt;
&lt;h4&gt;GoalVLA 的 flow matching&lt;/h4&gt;
&lt;p&gt;$$
x_\tau=(1-\tau)z+\tau a,\qquad
\mathcal{L}&lt;em&gt;{\mathrm{FM}}=\mathbb{E}&lt;/em&gt;{\tau,z}\left[\left|\pi_\theta(x_\tau,l_i,I_t,g_i,\tau)-(a-z)\right|_2^2\right].
$$&lt;/p&gt;
&lt;p&gt;$z\sim\mathcal N(0,I)$ 是噪声，$a$ 是真实动作块，$\tau\in[0,1]$ 是 flow time；网络学习从噪声流向动作的速度场。这个目标保留了 π0 的连续动作生成形式，但增加了视觉目标条件。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; World Model 的训练数据来自 Open-X-Embodiment、AgiBot World Beta 和 Mobile Aloha。作者先用 Qwen3 聚类得到 50 个 atomic skills，再用 RDP 从运动轨迹和 gripper 状态变化中找候选边界，最后用 Qwen2.5-VL 72B 合并相邻片段并生成自然语言子任务。处理后约有 1.2M 条轨迹、14 种 embodiment、多视角支持和 15.2B token；同时与 15.0B token 的 Any-to-Image 数据联合训练。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; World Model 在 128 张 H100 上对 EMU3.5 做 2,000 步 continued training，global batch size 为 512，学习率为 $10^{-5}$，使用 cosine scheduler 和 linear warmup。GoalVLA 先用 AgiBot-Beta 的 200,000 条轨迹训练 100,000 steps（batch 512，学习率 $5\times10^{-5}$），再用 737 条自采轨迹训练 10 epochs（batch 128，学习率 $2\times10^{-5}$）。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 高层规划器从 $(I_0,L)$ 开始自回归生成阶段序列；低层控制器在当前阶段内反复读取观测并预测动作块。目标图像完成后，历史更新，World Model 再生成下一个阶段。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方仓库公开的是 World Model 的 Gradio 推理 demo。&lt;code&gt;encode()&lt;/code&gt; 将输入图像 resize 到 512×512、归一化到 $[-1,1]$，用 IBQ tokenizer 变成视觉 token；&lt;code&gt;run_single_sample()&lt;/code&gt; 调用 vLLM 生成交错结果，再解码文本与图像并保存到 &lt;code&gt;gradio_output/&lt;/code&gt;。README 规定多视角顺序为 head、left-wrist、right-wrist，并支持手工输入 &lt;code&gt;Step 1: ... Step 2: ...&lt;/code&gt; 覆盖自动规划。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;| 论文组件          | 官方代码位置                         | 可核对行为                                                                                                                              |
| ----------------- | ------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------- |
| World Model 推理  | &lt;code&gt;inference/infer.py&lt;/code&gt;                 | &lt;code&gt;encode()&lt;/code&gt; 处理图像、构造 prompt，&lt;code&gt;run_single_sample()&lt;/code&gt; 调用 vLLM 并解码交错文本/图像。                                                 |
| 视觉离散化        | &lt;code&gt;inference/infer.py&lt;/code&gt;、&lt;code&gt;IBQTokenizer&lt;/code&gt; | 图像按 512×512 处理，IBQ 输出视觉 token，再由逆 tokenizer 恢复 goal image。                                                             |
| 采样配置          | &lt;code&gt;inference/config.py&lt;/code&gt;                | &lt;code&gt;max_new_tokens=16384&lt;/code&gt;、&lt;code&gt;text_top_k=200&lt;/code&gt;、&lt;code&gt;image_top_k=5120&lt;/code&gt;，默认 &lt;code&gt;num_beam_groups=1&lt;/code&gt;。                                                |
| Prompt 与多视角   | &lt;code&gt;README.md&lt;/code&gt;、&lt;code&gt;inference/app.py&lt;/code&gt;      | 支持 6 类 robot arm type；多视角固定为 head、left wrist、right wrist；可手工指定子任务。                                                |
| GoalVLA 训练/部署 | 论文 Appendix A，公开仓库未提供      | &lt;strong&gt;【Code】&lt;/strong&gt; Vista-WM 当前仓库只包含世界模型 inference，未包含论文中 GoalVLA 的训练脚本、动作 expert、subtask switcher 或机器人执行器。 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 因此“论文完整系统”和“官方公开代码”不是同一范围：读者可以直接复现子任务与目标图像生成 demo，但不能仅靠这个仓库复现真实机器人动作闭环。论文中的 GoalVLA 细节应以正文和 Appendix A 为准，不应把 &lt;code&gt;inference/&lt;/code&gt; 误读成完整控制栈。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-vista/real_illustrate_single_col.2vfhebjhr2.webp&quot; alt=&quot;VISTA real-world setup and evaluation scenarios from paper Figure 4&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 真实训练只收集 pick-and-place 的 2 小时数据，目标物体为 egg、cola can、apple、milk bin 和 croissant。评测包含 15 个 in-domain 场景和 63 个 OOD 场景：OOD 使用 21 个未见目标，每个目标配 3 种桌布/布局设置；每个场景运行 3 次，共 234 次 rollout。指标分为 approach success（接近成功）和 execution success（完成操作成功）。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-vista/vista-ood-results.5trrhtu9oc.webp&quot; alt=&quot;VISTA quantitative comparison on novel object categories from paper Figure 10&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在训练分布内，π0、π0-subtask 和 VISTA 的平均 execution success 分别为 0.96、0.91 和 0.93，说明视觉目标并不会牺牲已见场景性能。在 unseen distractor 设置下，三者分别为 0.73、0.78 和 0.82；在 unseen target 设置下，分别为 0.04、0.31 和 0.67。VISTA 在未见目标上的 approach success 为 1.00，而 π0 和 π0-subtask 分别只有 0.40 和 0.73。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文摘要进一步报告：在 novel scenarios 中，加入 World Model 生成的视觉指导后，同结构 VLA 的成功率从 14% 提升到 69%。定性结果显示，面对 soda water bottle、red milk carton 等训练集中没有的物体，语言-only baseline 往往抓取形状相似但语义错误的物体，GoalVLA 则利用 goal image 中的交互区域和末端姿态完成抓取。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-vista/case_compare.2h91ngb8ex.webp&quot; alt=&quot;VISTA failure and baseline comparison from project Figure 9&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 论文的主要对照可以看作一个表示层 ablation：&lt;/p&gt;
&lt;p&gt;| 条件            | 高层输入                | 低层条件   | 观察到的现象                                      |
| --------------- | ----------------------- | ---------- | ------------------------------------------------- |
| $\pi_0$         | 全局 instruction        | 语言       | 未见目标时接近和抓取都明显退化。                  |
| $\pi_0$-subtask | 子任务文本              | 语言       | 更容易定位目标，但仍缺少精确抓取姿态。            |
| VISTA           | 子任务文本 + goal image | 文字与视觉 | 在 unseen target 和复杂背景下同时改善定位与执行。 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文还通过 subtask-aware padding 和 random goal image offset 说明阶段边界需要显式建模：动作块可能跨越两个阶段，目标图像也可能相对真实终点提前或延后。作者没有给出单独拆除这两个训练技巧的完整数值表，因此不能把它们的独立增益量化。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; World Model 在合成的新布局、背景、视角和物体上生成保持多视角与物理一致的序列，还展示了 compositional、spatial、semantic 三类理解：例如同时放置多个物体、把左侧香蕉放到盘子、根据图片中的人物语义选择目标。模型还可以根据 prompt 中的 robot arm type，将 Aloha 观测迁移到 AgiBot G1、WidowX 等 embodiment。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这说明泛化被拆成了两个相对独立的因素：World Model 负责把互联网/跨 embodiment 先验变成视觉计划，GoalVLA 负责把计划映射成动作。前者可以扩展语义和空间覆盖，但后者仍受真实动作数据中的交互模式限制。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; VISTA 同时减少了两个困难。第一，World Model 把长 horizon 的组合推理压缩为少量阶段边界，低层策略不必从一句 instruction 直接猜完整轨迹。第二，goal image 是可视化的终止条件，提供了语言难以表达的相对位置、夹爪朝向和接触区域。由于每次只执行动作块的一小部分，系统还能用新的观测纠正模型误差。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;视觉里程碑作为中间表示&lt;/strong&gt;：比纯文本更有空间约束，比 dense video 更不容易漂移。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;可扩展的数据再标注&lt;/strong&gt;：用 skill 聚类、轨迹几何和 VLM，把只有 instruction + action 的旧数据转成可训练的阶段序列。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;World Model 与 VLA 的接口清晰&lt;/strong&gt;：高层输出 $(l_i,g_i)$，低层输出 action chunk，便于分别扩展模型和数据。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;训练时模拟接口噪声&lt;/strong&gt;：padding 和 goal offset 让低层策略适应阶段边界不精确。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 与语言层级 planner 相比，VISTA 的接口是“what + how/where”；与未来视频预测相比，它只生成稀疏、可验证的关键帧；与直接扩大 VLA 相比，它将 OOD 语义理解交给更大规模的 world model，而不是要求低层 action head 从少量机器人数据中同时学会视觉概念和控制。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;任务可以切成有限个 atomic skill 和可观察的阶段终点。&lt;/li&gt;
&lt;li&gt;目标图像中的姿态和交互区域足以指导低层动作，而不需要完整未来视频。&lt;/li&gt;
&lt;li&gt;World Model 生成的图像与真实 embodiment 的相机几何大致兼容。&lt;/li&gt;
&lt;li&gt;真实 fine-tuning 数据包含目标操作所需的基本交互模式；视觉迁移不能凭空创造训练中不存在的技能。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 真实世界实验目前主要是 pick-and-place，尚未系统验证更丰富、更长时程的操作。生成的 goal image 偶尔会有时间或空间偏差，较大的偏差会导致 GoalVLA 失败。视觉目标可以迁移交互先验，但成功执行仍依赖真实训练数据中存在相应的交互模式，因此需要更多技能和任务多样性。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;规划误差是级联的&lt;/strong&gt;：如果 World Model 在第一阶段生成了错误物体或错误终点，后续 GoalVLA 再强也可能只是在执行错误计划。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;像素目标不等于可达目标&lt;/strong&gt;：生成图像看起来物理合理，并不保证在当前机器人关节限制、碰撞约束和桌面几何下可达。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;公开代码不完整&lt;/strong&gt;：官方仓库只覆盖世界模型 inference，训练数据构造脚本、GoalVLA 和 subtask switcher 未公开，复现实验需要额外实现。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;评测任务仍偏窄&lt;/strong&gt;：234 次 rollout 很有说服力，但主要围绕单步 pick-and-place；液体、柔性物体和接触丰富的任务可能暴露新的 failure mode。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; VISTA 给出的研究方向不是“所有机器人都应先生成图像”，而是提醒我们重新设计 VLA 的中间接口。一个好的接口需要同时满足三点：能表达空间约束、能被低层策略直接消费、还能用观测验证是否完成。视觉 goal image 恰好处于语言和动作之间。&lt;/p&gt;
&lt;p&gt;对后续工作，我认为有三个值得继续追问的问题：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;能否让 World Model 输出带不确定性的多个 goal image，并由低层控制器选择可达候选，而不是只取最高概率序列？&lt;/li&gt;
&lt;li&gt;能否把真实执行反馈回写到规划器，学习“哪类视觉目标对当前 embodiment 不可达”？&lt;/li&gt;
&lt;li&gt;能否把稀疏 goal image 与几何约束、触觉或 3D scene graph 结合，降低像素生成偏差对控制的影响？&lt;/li&gt;
&lt;/ol&gt;</content:encoded><h:img src="https://pic.hana0721.top/120188807_p0_master1200.1lcf3tjzx5.webp"/><enclosure url="https://pic.hana0721.top/120188807_p0_master1200.1lcf3tjzx5.webp"/></item><item><title>villa-X 论文精读：用物理接地的 Latent Action 连接 VLA 规划与控制</title><link>https://agusexp25.top/blog/paper-deep-dive-villa-x</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-villa-x</guid><description>精读 villa-X：用 proprioceptive FDM 让 latent action 对齐机器人动力学，再以 joint diffusion 联合规划 latent action 与低层动作，实现跨 embodiment 的 VLA 迁移。</description><pubDate>Tue, 25 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;论文名称&lt;/strong&gt;：《villa-X: Enhancing Latent Action Modeling in Vision-Language-Action Models》&lt;br&gt;
&lt;strong&gt;作者&lt;/strong&gt;：Xiaoyu Chen、Hangxing Wei、Pushi Zhang、Chuheng Zhang、Kaixin Wang、Yanjiang Guo、Rushuai Yang、Yucen Wang、Xinquan Xiao、Li Zhao、Jianyu Chen、Jiang Bian&lt;br&gt;
&lt;strong&gt;机构&lt;/strong&gt;：Microsoft Research、清华大学、武汉大学、香港科技大学、南京大学&lt;br&gt;
&lt;strong&gt;论文版本&lt;/strong&gt;：arXiv v3（2025）&lt;br&gt;
&lt;strong&gt;论文链接&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2507.23682&quot;&gt;arXiv&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;代码链接&lt;/strong&gt;：&lt;a href=&quot;https://github.com/microsoft/villa-x&quot;&gt;microsoft/villa-x&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;项目主页&lt;/strong&gt;：&lt;a href=&quot;https://aka.ms/villa-x&quot;&gt;villa-X&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://arxiv.org/html/2507.23682v3/figs/lam_overview2.png&quot; alt=&quot;villa-X 总览与 LAM 结构（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; villa-X（Vision-Language-Latent-Action）针对 latent action 在 VLA 中“看起来像运动、却未必对应真实控制”的问题，引入 proprioceptive Forward Dynamics Model（proprio-FDM）进行物理接地；随后以 joint diffusion 同时学习 latent-action expert 和 robot-action expert，让中层 latent plan 真正参与低层动作生成。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文的贡献可以拆成两次改造：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;改进 latent action 的学习目标&lt;/strong&gt;：传统 LAM 主要重建未来图像，villa-X 额外预测未来 robot state 与 action，并用 embodiment context 区分不同机器人和控制频率。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;改进 latent action 的使用方式&lt;/strong&gt;：ACT（ACTor Module）把 latent action 与 robot action 放进同一个 conditional flow matching / joint diffusion 框架，robot-action expert 显式条件于 latent-action expert 的输出。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;验证跨 embodiment 与开放词汇泛化&lt;/strong&gt;：在 SIMPLER、Realman 夹爪平台和 XArm-XHand 灵巧手上测试；latent expert 还能在未见过的 Realman embodiment 上零样本生成 latent plan。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这不是单纯“再加一个辅助 loss”，而是把 latent action 的角色从预训练初始化信号提升为推理时的中间计划变量：LAM 负责学习可迁移的运动语义，ACT-latent 负责预测计划，ACT-robot 再把计划翻译为当前 embodiment 的控制动作。&lt;/p&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; VLA 模型通常用视觉、语言和机器人状态预测动作，但机器人数据昂贵且 embodiment 差异大。人类视频数量远多于带动作标签的机器人轨迹，因此 LAPA、IGOR、Moto-GPT、GR00T 等工作尝试从相邻视频帧中抽取 latent action，把它作为无动作视频的伪标签。&lt;/p&gt;
&lt;p&gt;问题在于，纯视觉变化并不等价于控制变化：末端旋转、夹爪开合等动作可能只造成很小的像素差，却决定任务是否成功。另一个问题是 latent action 如何进入策略：如果只把它用于初始化 VLM 权重，训练后的策略可能完全忽略 latent；如果采用独立 autoregressive planner，又会引入 teacher-forcing 与执行时分布不一致。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; villa-X 的定位是补上这条链路的两个缺口：用 proprioception 约束 latent 的物理含义，用显式条件分解约束 latent 到 robot action 的信息流。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 给定当前观测 $o_t$、未来观测 $o_{t+K}$、机器人状态 $q_t$、语言指令 $l$ 与 embodiment context $c_e$，模型需要学习两类变量：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Latent action&lt;/strong&gt; $z_t$：表示 $K$ 帧之间的抽象运动，应该跨人类视频和不同机器人保持可迁移。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Robot action&lt;/strong&gt; $a_t$：当前 embodiment 可执行的低层动作序列。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;LAM 的输入是视频帧序列（实现中使用 8 帧、$224\times224$ 图像），输出相邻帧之间的 latent token。ACT 的输入为视觉、语言、本体状态和 embodiment context，输出 $N=6$ 个 latent actions 与 $M=4$ 个 robot actions。&lt;/p&gt;
&lt;p&gt;策略分解为：&lt;/p&gt;
&lt;p&gt;$$
\pi(a_{t:t+M-1}, z_{t:t+(N-1)K}\mid o_t,l,q_t,c_e)
=\pi_{\text{robot}}(a_{t:t+M-1}\mid z_{t:t+(N-1)K},o_t,l,q_t,c_e)
\pi_{\text{latent}}(z_{t:t+(N-1)K}\mid o_t,l).
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 实验覆盖 SIMPLER 的 Google robot 与 WidowX，Realman RM75 + Inspire gripper，以及 7-DoF XArm + 12-DoF XHand。预训练同时使用 OpenX / AgiBot 机器人数据和 Ego4D、EPIC-KITCHENS、HOI4D、Something-Something V2 等 action-free human videos。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://arxiv.org/html/2507.23682v3/figs/lam_overview2.png&quot; alt=&quot;villa-X 的 LAM 与 ACT 总览（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 整体数据流是：视频帧先由 LAM 的 IDM 推断 latent action，图像 FDM 与 proprio-FDM 分别检查视觉未来和机器人动力学未来；ACT 再以 VLM 编码当前图像与语言，ACT-latent 预测未来 latent plan，ACT-robot 在该 plan、状态和 embodiment context 条件下生成低层动作。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;Latent Action Model（LAM）&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;IDM（Inverse Dynamics Model）&lt;/strong&gt;：输入当前/未来帧或连续 clip，输出连续 latent 表示，再经 VQ codebook 得到 latent token。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Image FDM&lt;/strong&gt;：输入当前图像与 latent，重建 $\hat o_{t+K}$，保证 latent 至少解释可见的视觉变化。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Proprio-FDM&lt;/strong&gt;：输入 $q_t,z_t,c_e$，同时预测未来状态 $\hat q_{t+1:t+K}$ 与动作 $\hat a_{t:t+K-1}$，将 latent 拉向物理上有意义的运动。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Vector Quantization&lt;/strong&gt;：论文使用大小为 32 的 codebook；最终使用 codebook center 的连续向量作为 latent action。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方仓库实现的 &lt;code&gt;IgorModel&lt;/code&gt; 由 &lt;code&gt;IgorEncoder&lt;/code&gt;、&lt;code&gt;VectorQuantizer&lt;/code&gt; 和 &lt;code&gt;IgorDecoder&lt;/code&gt; 组成。编码器用 Spatial-Temporal Transformer 处理 clip，解码器用 ViT 风格模块根据 latent 重建未来图像；公开代码没有 proprio-FDM、ACT policy 或训练脚本，因此代码可直接核对的是论文 LAM 的视觉/VQ 子集。&lt;/p&gt;
&lt;h4&gt;Embodiment Context&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; $c_e=f(\text{dataset ID},\text{control frequency})$：dataset ID 使用可学习 embedding，控制频率经 sinusoidal feature 与 MLP 编码。它让 proprio-FDM 吸收“某个机器人如何运动”的差异，而不迫使 latent token 记住 embodiment 身份。&lt;/p&gt;
&lt;h4&gt;ACTor Module&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://arxiv.org/html/2507.23682v3/figs/act.png&quot; alt=&quot;ACT 的层级策略结构（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;VLM&lt;/strong&gt;：论文使用 3B PaliGemma 编码图像与语言。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ACT-latent&lt;/strong&gt;：18 层 Transformer，预测长度为 6 的 latent action plan。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ACT-robot&lt;/strong&gt;：另一个 18 层 Transformer，结合 VLM 特征、latent plan、本体状态与 embodiment context，预测长度为 4 的 robot action chunk。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Wrist camera 分支&lt;/strong&gt;：可用时由预训练 ResNet-18 提取，并通过 cross-attention 映射为 16 个 token；训练时随机丢弃 wrist view 的概率为 50%。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Stochastic masking&lt;/strong&gt;：50% 情况下完全屏蔽 robot-to-latent attention；其余情况下随机屏蔽 50% latent token，防止 ACT-robot 走“只抄 latent”的捷径。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;p&gt;LAM 的视觉与物理预测为：&lt;/p&gt;
&lt;p&gt;$$
z_t=\mathrm{IDM}(o_t,o_{t+K}),\qquad
\hat o_{t+K}=\mathrm{FDM}(o_t,z_t),
$$&lt;/p&gt;
&lt;p&gt;$$
(\hat q_{t+1},\ldots,\hat q_{t+K},\hat a_t,\ldots,\hat a_{t+K-1})
=\mathrm{proprio\text{-}FDM}(q_t,z_t,c_e).
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 第一式约束 latent 能解释视觉变化；第二式要求同一个 latent 还能预测状态和控制序列。对有人类视频但没有 proprio 标签的样本，proprio 项被省略。&lt;/p&gt;
&lt;p&gt;ACT 将 latent action 与 robot action 拼成联合变量 $x_t$，用 conditional flow matching 学习向量场：&lt;/p&gt;
&lt;p&gt;$$
\mathcal L_\tau(\theta)=
\mathbb E\left[\left|v_\theta^\tau(x_t^\tau,O_t)-u(x_t^\tau\mid x_t)\right|_2^2\right],
$$&lt;/p&gt;
&lt;p&gt;其中 $O_t=(o_t,l,q_t,c_e)$，$x_t^\tau=\tau x_t+(1-\tau)\epsilon$，$\epsilon\sim\mathcal N(0,I)$，目标向量场 $u=\epsilon-x_t$，$\tau\in[0,1]$ 是 flow matching 时间。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; block-wise causal attention 是实现 Eq. 4 分解的关键：latent block 可以读取 VLM 条件，robot block 可以读取 VLM 与 latent block，但 mask 随机化后仍必须具备从视觉和语言独立恢复动作的能力。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 训练分三阶段：LAM 预训练、ACT 联合预训练、目标 embodiment 微调。LAM 使用 223.5M 条机器人轨迹中的 1.6M 帧和 3.6M human video clips；ACT 预训练混合机器人动作标签与无动作视频。LAM 学习率为 $1.5\times10^{-4}$、batch size 512、线性 warmup 2000 steps；ACT 学习率为 $5\times10^{-5}$、warmup 200 steps，并将梯度裁剪到 1.0。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 推理时不需要 IDM 从真实未来帧反推 latent。ACT-latent 根据当前视觉和语言直接提出未来 latent plan；ACT-robot 读取该 plan 和当前 embodiment 状态生成 action chunk，执行后再滚动更新观测。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方仓库当前明确发布的是 LAM：&lt;/p&gt;
&lt;p&gt;| 论文组件 | 官方代码对应 | 说明 |
| --- | --- | --- |
| IDM | &lt;code&gt;lam/model.py::IgorEncoder.idm&lt;/code&gt; | 以滑动窗口读取 clip，输出相邻帧 latent；默认时间窗口为 8 帧。 |
| VQ | &lt;code&gt;lam/vq.py::VectorQuantizer2&lt;/code&gt; | codebook size 32，使用 commitment loss；&lt;code&gt;LatentActionMixin.idm&lt;/code&gt; 返回 token 或 codebook index。 |
| Image FDM | &lt;code&gt;lam/model.py::IgorDecoder&lt;/code&gt; | &lt;code&gt;apply_latent_action&lt;/code&gt; 根据当前图像与 latent 重建未来图像。 |
| Proprio-FDM | 未发布 | README 的 release plan 只勾选 Latent Action Model，Actor Model 仍为未完成。 |
| ACT / training / evaluation | 未发布 | 仓库没有对应 policy 训练脚本，不能把论文中的 ACT 细节误写成已公开代码行为。 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; README 给出的实际调用是 &lt;code&gt;IgorModel.from_pretrained(...)&lt;/code&gt;、&lt;code&gt;lam.idm(video)&lt;/code&gt; 和 &lt;code&gt;lam.apply_latent_action(image, latent_action)&lt;/code&gt;；公开权重为约 955M 参数的 &lt;code&gt;microsoft/villa-x/lam&lt;/code&gt;。这部分代码更像可复现的 LAM 推理基线，而不是完整 villa-X policy release。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://arxiv.org/html/2507.23682v3/figs/real_robot.png&quot; alt=&quot;villa-X 真机实验平台：Realman 夹爪与 XArm-XHand 灵巧手（论文 Figure 5）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; SIMPLER 包含 Google robot 的 Pick、Move、Drawer 与 WidowX 的 Carrot、Eggplant、Spoon、Cube 共 7 类任务。LAM probing 在未参与 LAM 训练的 LIBERO 上进行：冻结 latent model，再训练三层 MLP 从 latent 预测 8 维 robot action。&lt;/p&gt;
&lt;p&gt;真机实验包括：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Realman RM75 + Inspire gripper&lt;/strong&gt;：5 个任务，每个任务 75 条轨迹，共 375 条；另测改变方块颜色和桌布的泛化。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;XArm + 12-DoF XHand&lt;/strong&gt;：使用约 4000 条、13 类任务的 XHand Dataset，测试 pick-and-place、stack、cup、pour、flick 的 seen/unseen 条件。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在 SIMPLER 上，完整 villa-X 的 Google robot 平均成功率为 &lt;strong&gt;77.7%&lt;/strong&gt;，WidowX 为 &lt;strong&gt;62.5%&lt;/strong&gt;；移除 latent expert 后分别降至 &lt;strong&gt;36.5%&lt;/strong&gt; 与 &lt;strong&gt;49.0%&lt;/strong&gt;。论文报告的完整模型在 Google robot 上高于 GR00T-N1.5（57.9%），在 WidowX 上略高于 GR00T-N1.5（62.0%）。&lt;/p&gt;
&lt;p&gt;| 方法 | Google Robot Avg. | WidowX Avg. |
| --- | ---: | ---: |
| villa-X | &lt;strong&gt;77.7&lt;/strong&gt; | &lt;strong&gt;62.5&lt;/strong&gt; |
| villa-X w/o latent | 36.5 | 49.0 |
| GR00T-N1.5 | 57.9 | 62.0 |
| LAPA | N/A | 57.3 |&lt;/p&gt;
&lt;p&gt;在 XHand 真机上，villa-X 相比移除 latent expert 的版本，在 seen / unseen 条件下多数任务更好：例如 Pick &amp;#x26; Place 为 84/68 对 72/60，Pour Water 为 60/30 对 40/10。Realman 上，villa-X 的 Pick-out、Unstack、改变桌布成功率分别达到 100%、100%、60%。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://arxiv.org/html/2507.23682v3/figs/probing.png&quot; alt=&quot;Probing 实验：加入 proprio-FDM 后 latent 更能预测低层动作（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文做了两组关键消融：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;去掉 proprio-FDM（wo/pp）&lt;/strong&gt;：SIMPLER 平均分从 Google 机器人的 58.5 降至 57.4，从 WidowX 的 40.8 降至 32.3；probing 也显示 w/pp 在低 L1 误差区间有更多样本，说明 latent 包含更可读出的动作信息。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;去掉 LAM（wo/LAM）&lt;/strong&gt;：Google 平均仅 35.0，WidowX 33.1，表明无动作视频提供的 latent prior 对预训练十分重要。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;替换 latent 接入方式&lt;/strong&gt;：LAPA-style 与 Go-1-style 的 Google 平均分别为 43.8 与 32.8，明显低于 joint ACT 的 58.5；这支持“显式条件的联合扩散”优于只做初始化或独立 planner。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 消融结果把收益拆开了：proprio-FDM 改善“latent 表示什么”，joint ACT 改善“policy 如何使用它”。两者缺一不可，单独扩大视频数据不能替代这两个结构性约束。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; latent expert 在训练未见过的 Realman 机械臂上零样本生成计划，并能理解开放词汇 symbolic icons。论文用 world model 将 latent plan 渲染成视频，观察到“touch the corn”等指令对应的运动轨迹。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这里测到的是计划层的泛化，不等同于“零样本直接控制任意机器人”：真正的低层动作仍需 embodiment-specific finetuning，且公开代码尚未包含 ACT policy。应把它理解为 latent space 的跨 embodiment 语义迁移证据。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; latent action 要成为跨 embodiment 的桥，必须同时满足两个条件：视觉上能解释“发生了什么”，控制上能解释“机器人如何做到”。image FDM 提供前者，proprio-FDM 提供后者；dataset ID 和 control frequency 则把 embodiment 差异放在 context 中，避免污染 latent 本身。&lt;/p&gt;
&lt;p&gt;joint diffusion 的好处是把“计划”和“执行”放在一次条件生成中训练。ACT-latent 先形成较长时间尺度的中层意图，ACT-robot 再按当前状态翻译为短 action chunk；attention mask 把这条依赖写进网络结构，而不是只期待模型自己学出来。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;物理接地的 latent action&lt;/strong&gt;：辅助预测 proprioception 和 action，而非只重建像素。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;层级但联合的 policy&lt;/strong&gt;：latent expert 与 robot expert 通过 joint flow matching 共同训练。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;面向鲁棒性的随机 mask&lt;/strong&gt;：主动打断 robot expert 对 latent 的过拟合依赖。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;从 plan 泛化到 embodiment 迁移&lt;/strong&gt;：latent expert 可先在抽象空间规划，再由具体机器人完成动作翻译。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;| 路线 | latent action 的角色 | villa-X 的差异 |
| --- | --- | --- |
| LAPA-style | 先预测 latent，再替换成 robot-action head | latent 主要是初始化，推理时依赖弱 |
| Go-1-style | 独立 autoregressive latent planner | 存在 teacher-forcing / runtime mismatch |
| GR00T-style | 把 latent 视作另一种 embodiment | 不显式做 joint latent→robot 条件分解 |
| villa-X | ACT-latent 与 ACT-robot 联合 flow matching | latent 是推理时可见的中层计划变量 |&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 方法假设相邻帧间存在可压缩、可迁移的运动语义，并假设 proprioception 能提供足够的物理约束。&lt;strong&gt;【Analysis】&lt;/strong&gt; 这也意味着：如果任务主要依赖接触力、柔性形变或不可观测状态，单纯的像素 + proprio 预测可能仍不足；此外，context 设计若不完整，latent 仍可能偷偷编码数据集偏差。&lt;/p&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 作者指出 latent expert 的未来规划能力还没有被充分利用。一个直接的后续方向是引入带 foundation VLM 先验的 critic，对多个 latent plan 采样并筛除不符合语言指令的轨迹。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;完整 policy 不开源&lt;/strong&gt;：当前仓库只提供 LAM，ACT、proprio-FDM 训练和评测代码缺失，外部研究者难以复现完整结果。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;计划评测依赖 world model&lt;/strong&gt;：渲染成功只能说明 latent plan 与视觉预测一致，不等于真实机器人一定能执行。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;低层迁移仍需微调&lt;/strong&gt;：零样本泛化主要发生在 latent plan；不同 embodiment 的 action projection、状态维度和控制接口仍需重新适配。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;联合 diffusion 的成本&lt;/strong&gt;：两个约 300M 参数 expert 从头训练，论文报告 ACT 预训练需要 64 张 A100、约 4 天，规模化门槛不低。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;proprio 标签覆盖有限&lt;/strong&gt;：人类视频没有机器人状态，物理接地监督只作用于机器人数据；人类视频的 latent 仍可能保留 domain-specific 偏差。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; villa-X 给出的最值得借鉴的设计原则是：中间表示不能只在训练时“有用”，还要在推理时成为可检查、可采样、可拒绝的对象。latent action 一旦能被 world model 可视化、被 proprio-FDM 解码、被 critic 评分，就从黑盒特征变成了可调试的计划接口。&lt;/p&gt;
&lt;p&gt;对后续研究，我更关注三点：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;将 latent plan 与语言 verifier / value model 结合，做 sample-and-select，而不是一次采样后直接执行。&lt;/li&gt;
&lt;li&gt;用接触、末端关键点或 human hand pose 等结构 cue 扩展 proprio-FDM，覆盖“视觉变化小但控制重要”的动作。&lt;/li&gt;
&lt;li&gt;让 ACT 输出不确定性和失败预警，使 robot-action expert 能在 latent plan 不可靠时主动回退到视觉闭环控制。&lt;/li&gt;
&lt;/ul&gt;</content:encoded><h:img src="https://pic.hana0721.top/70434530_p0_master1200.b9htgy5uw.webp"/><enclosure url="https://pic.hana0721.top/70434530_p0_master1200.b9htgy5uw.webp"/></item><item><title>UniDex 论文精读：从第一视角人类视频到通用灵巧手控制</title><link>https://agusexp25.top/blog/paper-deep-dive-unidex</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-unidex</guid><description>精读 UniDex：用人类视频构建跨形态灵巧手数据集，以 FAAS 统一动作空间，并用 3D VLA 实现零样本跨手迁移。</description><pubDate>Tue, 25 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; UniDex 不是单一模型，而是一套面向通用灵巧手控制的 foundation suite：用人类视频构建 UniDex-Dataset，用 Function–Actuator–Aligned Space（FAAS）统一动作表示，用 UniDex-VLA 预测 82 维动作块，再用 UniDex-Cap 低成本采集可转换的人类示教。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;UniDex-Dataset&lt;/strong&gt;：来自 H2O、HOI4D、HOT3D 和 TACO 的第一视角 RGB-D 视频，经过重定向后得到约 9M 个 image–pointcloud–action 帧、5.2 万条轨迹，覆盖 8 种灵巧手和 6–24 个 active DoF。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;人到机器人转换&lt;/strong&gt;：用基于指尖的 IK 和 6-DoF dummy-base 交互校准解决运动学差距；遮掉人手并渲染机器人手解决视觉差距。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;FAAS + UniDex-VLA&lt;/strong&gt;：把功能相似的 actuator 放到相同坐标，结合 Uni3D 点云编码器、PaliGemma 风格骨干和 conditional flow matching，形成跨手策略。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;UniDex-Cap&lt;/strong&gt;：用 Apple Vision Pro、RealSense L515 和 3D 打印支架同步采集人类手势与 RGB-D，并研究人类数据和机器人数据 co-training 的交换率。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-unidex/new-dataset-5.232lwnsbw6.webp&quot; alt=&quot;UniDex-Dataset visualization from paper Figure 3&quot;&gt;&lt;/p&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 灵巧手比平行夹爪更难做 foundation model，原因集中在三点：真实机器人遥操作昂贵；不同手的形态、关节数和耦合关系差异很大；高 DoF 控制需要同时处理接触几何与长时序协调。已有 VLA 大多从 gripper-centric 数据预训练，灵巧手方法则常针对抓取或单一硬件。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; UniDex 的切入点是把“数据稀缺”和“动作空间不统一”拆开解决：先把廉价、丰富的人类视频变成 robot-centric 数据，再让策略学习功能坐标而非某一套 URDF 的关节编号。这样，跨手迁移不再完全依赖推理时的额外 IK。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在时间 $t$，策略接收&lt;/p&gt;
&lt;p&gt;$$
o_t = [P_t,,\ell_t,,q_t],
$$&lt;/p&gt;
&lt;p&gt;其中 $P_t$ 是由单帧 RGB-D 裁剪、下采样得到的彩色点云，$\ell_t$ 是自然语言指令，$q_t$ 是 FAAS 表示的本体状态。策略建模 $p(A_t\mid o_t)$，输出长度为 $H$ 的动作块&lt;/p&gt;
&lt;p&gt;$$
A_t=[a_t, a_{t+1},\ldots,a_{t+H-1}].
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; FAAS 动作维度为 82：左右手各 9 维腕部 pose（6D rotation + 3D translation）共 18 维，左右手各 32 个手指 actuator slot 共 64 维。论文实验使用单臂或双臂设置，缺失的一侧由统一槽位保留。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方 &lt;code&gt;config/model/unidex.yaml&lt;/code&gt; 将 &lt;code&gt;horizon_steps&lt;/code&gt; 设为 30，&lt;code&gt;action_dim&lt;/code&gt; 和 &lt;code&gt;proprio_dim&lt;/code&gt; 均为 82，点云大小在各数据集配置中为 10,000 点；预训练数据采样到约 15 fps，真实微调配置再降到约 5 fps。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-unidex/model.6f1f47bnjd.webp&quot; alt=&quot;UniDex-VLA architecture from paper Figure 4&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 数据流是：RGB-D → 彩色点云 $P_t$ → Uni3D 点云 token；语言和点云 token 与 proprioception 一起进入 PaliGemma 风格的 joint backbone；action expert 在 flow time 条件下输出 FAAS 动作块。训练阶段从噪声动作学习向真实动作的向量场，推理阶段用 10 次 forward Euler 积分得到动作块。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;UniDex-Dataset 与人到机器人转换&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-unidex/retarget_new.8dxlujh5i5.webp&quot; alt=&quot;Human-to-robot retargeting pipeline from paper Figure 2&quot;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：第一视角 RGB-D、MANO/数据集提供的人手 pose、语言片段和目标 robot hand URDF。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;运动学模块&lt;/strong&gt;：提取人手指尖目标 $X^\star$，在真实机器人 base 前插入 6-DoF dummy base；PyBullet 多末端 IK 同时优化手指关节和 base offset。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;交互校准&lt;/strong&gt;：GUI 暴露 dummy base 的三维平移、三维旋转及 IK 参数。人工只需要在接触丰富的片段上调 slider，再把校准应用到同一数据集和手型的大部分轨迹。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;视觉模块&lt;/strong&gt;：先从 RGB-D 建点云，用 WiLoR + SAM2 去除人手点，再把重定向的机器人手 mesh 放回场景并重新投影，减少遮挡顺序和外观差异。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：每一帧的 RGB、点云、FAAS state/action 以及语言指令，写入 HDF5/Zarr 等训练格式。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;HandAdapter/hand_processor.py&lt;/code&gt; 使用 PyBullet 读取 URDF、关节上下限和 mimic joint 关系；&lt;code&gt;src/dataset/base_retarget.py&lt;/code&gt; 将 RGB-D 转为点云，深度大于 1.15 m 的点会被截断，并按 hand-specific joint map 重排关节值。&lt;/p&gt;
&lt;h4&gt;FAAS&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-unidex/faas.1vze1866j7.webp&quot; alt=&quot;FAAS mapping from paper Figure 5&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; FAAS 不把“第 7 个 URDF 关节”当作语义，而是把 actuator 映射到拇指、食指、中指、无名指、小指的功能位置。每只手 32 个手指槽中，前 21 个是跨手共享的 base actuator，剩余位置留给 Shadow 等手型的额外 DoF 和未来手型。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这是一种 function-centric interface：不同手的连杆长度和耦合可以不同，但“拇指-食指捏合”“手指弯曲包住手柄”这些控制意图相近。共享坐标降低了预训练策略看到的 embodiment entropy，同时保留未使用槽位以避免强行压缩所有手型。&lt;/p&gt;
&lt;h4&gt;UniDex-VLA 的 3D 感知与 action expert&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;点云编码器&lt;/strong&gt;：Uni3D 使用 ViT 风格的分组点云编码，官方配置默认 &lt;code&gt;uni3d_l&lt;/code&gt;，输出再经 projector 对齐到 2048 维语言模型 token 空间。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;语言/视觉骨干&lt;/strong&gt;：代码复用 PaliGemma 的 token embedding 和 18 层 joint model；点云 token、文本 token 和 proprio token 采用分段 causal mask。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;本体与动作&lt;/strong&gt;：proprio 先过线性层；动作先经 &lt;code&gt;ActionEncoder&lt;/code&gt;，再由 action decoder 投影回 82 维。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出形式&lt;/strong&gt;：腕部 state 是绝对 pose，动作块中的腕部 action 是相对第一个动作帧的 pose；手指 state/action 都在 FAAS 中表达。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;指尖重定向&lt;/h4&gt;
&lt;p&gt;对第 $i$ 个指尖，论文定义&lt;/p&gt;
&lt;p&gt;$$
x_i(q;T_{\mathrm{offset}})=\operatorname{Trans}\left(T_{\mathrm{hand}}T_{\mathrm{offset}}T_i(q)\right),
$$&lt;/p&gt;
&lt;p&gt;并堆叠成误差&lt;/p&gt;
&lt;p&gt;$$
e(q,T_{\mathrm{offset}})=
\begin{bmatrix}x_1-x_1^\star\\vdots\x_m-x_m^\star\end{bmatrix}.
$$&lt;/p&gt;
&lt;p&gt;其中 $q$ 是机器人关节，$T_i(q)$ 是从机器人 base 到指尖的正运动学，$T_{\mathrm{offset}}$ 是 dummy base 到真实 base 的刚体变换。&lt;strong&gt;【Analysis】&lt;/strong&gt; dummy base 让 IK 不必用手指关节“硬吃掉”人机腕部坐标系偏差，因此接触位置和关节可行性可以同时改善。&lt;/p&gt;
&lt;p&gt;对于 mimic joint，论文与代码都采用&lt;/p&gt;
&lt;p&gt;$$q_{j_s}=kq_{j_m}+c,$$&lt;/p&gt;
&lt;p&gt;其中 $j_m$ 是 master，$j_s$ 是从属关节，$k,c$ 来自 URDF 约束；代码会迭代修正并重新检查指尖误差。&lt;/p&gt;
&lt;h4&gt;Conditional flow matching&lt;/h4&gt;
&lt;p&gt;论文给出的训练目标是&lt;/p&gt;
&lt;p&gt;$$
\mathcal L(\theta)=\mathbb E\left[\left|v_\theta(A_t^\tau,o_t)-u(A_t^\tau\mid A_t)\right|\right].
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 实现中采样 $x_0\sim\mathcal N(0,I)$，令 $x_1=A_t$，并用&lt;/p&gt;
&lt;p&gt;$$
\psi_t=(1-(1-\sigma_{\min})t)x_0+tx_1,
\qquad
d_\psi=x_1-(1-\sigma_{\min})x_0,
$$&lt;/p&gt;
&lt;p&gt;训练网络输出 $v_\theta(\psi_t,o_t)$，实际损失是逐元素 MSE；配置中的 &lt;code&gt;flow_sig_min=0.001&lt;/code&gt;。因此，阅读代码时应把论文的向量场范数写法理解为“实现采用 MSE 的 flow matching 版本”。&lt;/p&gt;
&lt;p&gt;推理使用&lt;/p&gt;
&lt;p&gt;$$
A^{\tau+\Delta\tau}=A^\tau+\Delta\tau,v_\theta(A^\tau,o_t),
$$&lt;/p&gt;
&lt;p&gt;初值是高斯噪声，&lt;code&gt;num_inference_steps=10&lt;/code&gt;，所以 $\Delta\tau=0.1$。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 论文附录报告预训练使用 8 张 H800、总 batch size 128、AdamW 初始学习率 $10^{-4}$、权重衰减 $10^{-10}$ 和最大梯度范数 1.0；附录描述的模型约训练 3 epochs/30k steps。仓库默认配置给出等价的 8 卡、单卡 batch 4、梯度累积 4 和 32 epochs 示例，实际步数取决于数据缓存规模。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 真实任务 post-training 使用 2 张 H800、总 batch size 8、学习率 $2.5\times10^{-5}$；普通示教训练 50 epochs，DemoGen 增广数据训练 2 epochs。仓库中的 &lt;code&gt;finetune.yaml&lt;/code&gt; 将 checkpoint、数据路径和 hand side 留给用户配置。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;PointCloudUniDexInference&lt;/code&gt; 使用 KV cache 固定视觉、语言和 proprio 条件，只在 10 个 Euler 步中更新 action expert；&lt;code&gt;horizon_steps=30&lt;/code&gt;。&lt;strong&gt;【Analysis】&lt;/strong&gt; 这使一次推理输出一小段连续动作，而不是每个控制周期重新独立采样单步关节命令，有助于保持接触动作的时间一致性。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;| 论文概念 | 官方代码位置 | 实际行为 |
| --- | --- | --- |
| 人到机器人重定向 | &lt;code&gt;HandAdapter/hand_processor.py&lt;/code&gt; | PyBullet URDF、末端 IK、mimic joint 修正与 RGB-D 投影 |
| 数据集窗口 | &lt;code&gt;src/dataset/{H2o,HOI4D,Hot3D,Taco}.py&lt;/code&gt; | 从四类第一视角数据构造语言对齐窗口，统一成点云/状态/动作 |
| 点云处理 | &lt;code&gt;src/dataset/base_retarget.py&lt;/code&gt; | RGB-D 转 Open3D 点云、深度截断、mask 和 hand mesh 合成 |
| FAAS 维度 | &lt;code&gt;config/model/unidex.yaml&lt;/code&gt; | &lt;code&gt;action_dim=82&lt;/code&gt;、&lt;code&gt;proprio_dim=82&lt;/code&gt;、&lt;code&gt;horizon_steps=30&lt;/code&gt; |
| flow matching | &lt;code&gt;src/unidex/unidex.py&lt;/code&gt; | &lt;code&gt;psi_t&lt;/code&gt; 插值、MSE 向量场损失、10 步 Euler 推理 |
| 训练入口 | &lt;code&gt;train.py&lt;/code&gt; / &lt;code&gt;finetune.py&lt;/code&gt; | Hydra 配置预训练和真实机器人微调 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 代码仓库覆盖数据准备、重定向、预训练和微调，但发布的默认配置仍需要用户自行下载数据、MANO/SAM2/WiLoR、Uni3D 与 PaliGemma 权重；不能把“提供代码”理解为开箱即用的完整数据包。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 实验使用 7-DoF Franka 机械臂，末端可换 Inspire（6 active DoF）、Wuji（20 active DoF）和 Oymotion（6 active DoF）灵巧手，统一由 RealSense L515 提供第一视角 RGB-D。五个任务分别是 Make Coffee、Sweep Objects、Water Flowers、Cut Bags 和 Use Mouse，每个任务只收集 50 条 teleoperation 示教。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-unidex/average_task_progress_morandi_wide.8l0tpz3bd1.webp&quot; alt=&quot;Main results from paper Figure 9&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 20 次试验的五任务平均结果如下：&lt;/p&gt;
&lt;p&gt;| 方法 | Average Task Progress | Final Success Rate |
| --- | ---: | ---: |
| DP | $29.0\pm19.9%$ | $22.0\pm22.5%$ |
| DP3 | $35.0\pm17.1%$ | $30.0\pm18.7%$ |
| $\pi_0$ | $38.0\pm7.4%$ | $35.0\pm10.0%$ |
| UniDex-VLA（无预训练） | $32.5\pm18.5%$ | $23.0\pm12.0%$ |
| &lt;strong&gt;UniDex-VLA&lt;/strong&gt; | &lt;strong&gt;$81.0\pm12.1%$&lt;/strong&gt; | &lt;strong&gt;$76.0\pm17.8%$&lt;/strong&gt; |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在最难的 Cut Bags 上，相对最强竞争方法的平均 task progress 提升为 84.6%。&lt;strong&gt;【Analysis】&lt;/strong&gt; 这里的优势更像“预训练运动先验 + 统一动作接口”的叠加，而不是单纯更大的语言模型：无预训练版本仍使用 FAAS，但性能接近普通 baseline。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 主要消融是 UniDex-VLA（No Pretrain）：同一 FAAS 和微调流程下去掉 UniDex-Dataset 预训练，平均 task progress 从 32.5% 提升到 81.0%，说明大规模跨手数据提供了可迁移的指尖协调和工具使用先验。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-unidex/transfer.232lwnww9i.webp&quot; alt=&quot;Zero-shot cross-hand transfer from paper Figure 8&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在跨手零样本实验中，策略在 Inspire 上训练 Make Coffee 后直接部署到未微调的 Oymotion 和 Wuji，平均 task progress 分别为 60% 和 40%；$\pi_0$ 与无预训练版本接近 0–10%。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-unidex/spatial_generalization_new3.73uoo7z6qc.webp&quot; alt=&quot;Spatial generalization from paper Figure 6&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;空间泛化&lt;/strong&gt;：在 Make Coffee 中移动 kettle 和 dripper 的桌面位置，并用点云编辑与 DemoGen 生成 OOD 摆放，UniDex-VLA 覆盖更大的工作空间。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;物体泛化&lt;/strong&gt;：把黑色 kettle 换成更小的紫色 kettle，改变颜色、尺寸、把手和壶嘴形状，模型仍保持较好表现。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;人机 co-training&lt;/strong&gt;：UniDex-Cap 使用 Vision Pro + RealSense L515；在 Make Coffee 上，增加转换后的人类示教会持续提高 task progress，但没有机器人数据时成功率仍接近 0。高性能区域显示约 2 条人类示教可替代 1 条机器人示教，采集速度约快 5.2 倍。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-unidex/unidexcap.7q141fwt5.webp&quot; alt=&quot;UniDex-Cap setup from paper Figure 12&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-unidex/unidex-human-vs-robot.9ddp7pjxj0.webp&quot; alt=&quot;Human–robot co-training from paper Figure 13&quot;&gt;&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;人类视频提供了工具接触和手指协同的多样先验，重定向后又保留了 robot-centric 的动作监督，减少了从零学习的负担。&lt;/li&gt;
&lt;li&gt;点云直接表达深度和物体几何，比单目 RGB 更适合 kettle 把手、剪刀刃口等接触关系；同时点云可以做平移、替换物体等几何增广。&lt;/li&gt;
&lt;li&gt;FAAS 把跨手迁移的共享部分显式化，避免让模型把手型差异误当成任务语义。&lt;/li&gt;
&lt;li&gt;Flow matching 生成动作块，将高维动作预测变成条件向量场积分，并通过 action chunk 保持短时轨迹连贯。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 真正的创新不是“把 VLA 换成点云”，而是把数据、动作接口、策略和采集硬件连成闭环：同一套人到机器人转换既服务大规模预训练，也服务 UniDex-Cap 的后训练。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 相比 gripper-centric VLA，UniDex 同时改变了感知粒度（显式 3D pointcloud）、动作语义（FAAS）和数据来源（人类视频转机器人轨迹）。相比只在人类参数空间中预测再做 IK 的方案，FAAS 直接输出目标手的统一 actuator 坐标，省去推理时额外的高 DoF IK 误差。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 方法依赖几个强假设：不同灵巧手存在足够稳定的功能同构；人手指尖轨迹经过一次或少量交互校准后能代表机器人接触；RGB-D 和手部 pose 的时间、外参能够可靠同步；来自人类视频的动作语义可被语言指令和 FAAS 共同解释。&lt;/p&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 当前流程没有利用大规模 action-free 或弱标注的第一视角活动数据。作者将其列为进一步扩展灵巧手预训练规模的重要方向。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;重定向仍需按“数据集 × 手型”做交互校准，并对接触丰富片段抽查；当手型或相机分布变化更大时，人工成本可能重新成为瓶颈。&lt;/li&gt;
&lt;li&gt;论文主结果集中在两个手型、五个长时工具任务，尚未证明 FAAS 对更多双臂协作、触觉反馈或软体手同样稳定。&lt;/li&gt;
&lt;li&gt;9M 帧来自已有带手部标注的 RGB-D 数据，遮挡、深度噪声和语言自动标注质量会影响转换轨迹；完全无动作标注的视频不能直接进入当前监督式 flow matching。&lt;/li&gt;
&lt;li&gt;82 维固定槽位虽然方便扩展，但对新手型的功能映射仍需人工设计；空槽位并不会自动产生新的 actuator 语义。&lt;/li&gt;
&lt;li&gt;UniDex-Cap 的 co-training 结果说明机器人数据仍不可完全替代，2:1 交换率只在 Make Coffee 的实验范围内成立，不能外推成普适的数据成本定律。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; UniDex 给出的路线很适合继续拆成三个研究问题：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;从有动作到无动作预训练&lt;/strong&gt;：利用视频中的物体运动、手部接触和语言弱标签，学习不依赖精确 action 的 3D affordance 表示。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;从人工 FAAS 到可学习接口&lt;/strong&gt;：把 actuator mapping 建模成带功能约束的匹配问题，让新手型通过少量 URDF、示教和接触数据自动加入共享空间。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;从“2 条人类 ≈ 1 条机器人”到任务条件交换率&lt;/strong&gt;：将示教质量、接触阶段、视角和手型纳入数据价值估计，而不是只用 demo 数量衡量 co-training。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;对实践者而言，最值得复用的不是某个固定模型 checkpoint，而是这条工程原则：先把观测、动作和 embodiment 差异变成可检查的中间表示，再扩大数据和模型规模。UniDex 把这个中间表示具体化为 robot-centric pointcloud、FAAS 和可视化 retargeting GUI，这也是它能把跨手泛化实验落到真实机器人上的关键。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/120269913_p0_master1200.3k8lu5pi8s.webp"/><enclosure url="https://pic.hana0721.top/120269913_p0_master1200.3k8lu5pi8s.webp"/></item><item><title>π*₀.₆ 与 RECAP 论文精读：让 VLA 从真实经验中变强</title><link>https://agusexp25.top/blog/paper-deep-dive-recap</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-recap</guid><description>精读 Physical Intelligence 的 RECAP：用分布式 value function 估计 advantage，再以 advantage conditioning 从示教、自治轨迹和人工干预中迭代改进 VLA。</description><pubDate>Tue, 25 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;论文名称&lt;/strong&gt;：《π*₀.₆: a VLA That Learns From Experience》&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;作者&lt;/strong&gt;：Physical Intelligence、Ali Amin、Raichelle Aniceto、Ashwin Balakrishna、Kevin Black、Danny Driess、Chelsea Finn、Karol Hausman、Brian Ichter、Sergey Levine、Karl Pertsch、Allen Z. Ren、Lucy Xiaoyang Shi、Laura Smith、Jost Tobias Springenberg、Marcel Torne、Quan Vuong、Lili Yu、Ury Zhilinsky、Zhiyuan Zhou 等&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;论文链接&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2511.14759&quot;&gt;arXiv:2511.14759&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;代码链接&lt;/strong&gt;：&lt;a href=&quot;https://github.com/Physical-Intelligence/openpi&quot;&gt;Physical-Intelligence/openpi&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-recap/teaser.54yhxzhf3t.webp&quot; alt=&quot;RECAP 通过奖励反馈与人工干预训练 VLA（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; RECAP（RL with Experience and Corrections via Advantage-conditioned Policies）解决的问题是：一个已经会做很多事的 VLA，如何在真实部署中通过反复尝试变得更快、更稳，而不是只能模仿示教数据。方法先用离线 RL 预训练带 advantage 条件的 π*₀.₆，再对目标任务收集自治轨迹和在线人工纠错，用 value function 判断每一步是否比参考行为更好，最后把这个判断作为语言条件重新训练 VLA。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 论文真正的贡献不是把 PPO 直接套到大模型上，而是把“数据收集、价值评估、策略提取”拆成可以反复运行的离线批处理循环。这样 flow-matching VLA 不需要每几个 gradient step 就在机器人上采样，也能利用旧策略、示教和纠错的混合数据。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;提出 RECAP：把 demonstrations、on-policy rollouts 和 teleoperator interventions 聚合到同一套 advantage-conditioned policy extraction 中。&lt;/li&gt;
&lt;li&gt;训练一个多任务 distributional value function，将每条轨迹的剩余步数 / 成功结果映射到 201 个 value bins，再由其得到 advantage。&lt;/li&gt;
&lt;li&gt;将 advantage 二值化为 &lt;code&gt;Advantage: positive/negative&lt;/code&gt; 文本条件，使整个 flow-matching VLA 可以用普通监督式 likelihood / flow loss 训练。&lt;/li&gt;
&lt;li&gt;基于该方法预训练 π*₀.₆，并在真实洗衣折叠、咖啡制作和纸箱装配任务上验证：困难任务的 throughput 可超过 2 倍，失败率约降低一半。&lt;/li&gt;
&lt;li&gt;展示多小时连续部署：咖啡机 13 小时、陌生家庭洗衣 2 小时以上，以及工厂包装箱装配。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 纯 imitation learning 的上限受示教质量限制，且部署时出现的 compounding error 往往不会出现在示教集中。DAgger 风格的人类干预能纠正灾难性错误，但单靠干预很难让动作变快，也无法覆盖每一次自治失败。另一方面，经典 PPO / REINFORCE 需要可靠的 policy likelihood 和 on-policy 数据；对带 flow-matching action expert 的大 VLA 而言，连续动作的精确 likelihood 并不容易计算，真实机器人也承担不起高频采样。&lt;/p&gt;
&lt;p&gt;已有工作大致分成三条路线：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;用人工干预修正策略分布；&lt;/li&gt;
&lt;li&gt;用 residual、action head 或 preference learning 在 VLA 之上做 RL；&lt;/li&gt;
&lt;li&gt;直接对离散动作或简单高斯动作执行 PPO / REINFORCE。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; RECAP 与它们的区别是：策略本身仍是完整的高容量 VLA，动作由 flow matching 表示；训练时不丢弃低 advantage 数据，而是让策略显式知道样本的 optimality indicator；自治经验和人工纠错都能进入同一个离线数据集。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这让 RECAP 更像“可扩展的 policy extraction”而不是传统 online RL：value function 负责排序数据，条件化 VLA 负责把排序结果蒸馏回一个可执行策略。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 给定观测 $mathbf{o}_t$、语言任务 $ell$ 和动作 $mathbf{a}_t$，策略为：&lt;/p&gt;
&lt;p&gt;$$
\pi(\mathbf{a}_t\mid \mathbf{o}_t,\ell)
$$&lt;/p&gt;
&lt;p&gt;一条轨迹记为 $\tau=(\mathbf{o}_0,\mathbf{a}_0,\ldots,\mathbf{o}_T)$。论文使用无 discount 的 return：&lt;/p&gt;
&lt;p&gt;$$
R(\tau)=\sum_{t=0}^{T}r_t
$$&lt;/p&gt;
&lt;p&gt;并用 $V^\pi(\mathbf{o}_t)$ 表示从当前观测到任务结束的期望回报。对一个 $N$-step 片段，advantage 估计为：&lt;/p&gt;
&lt;p&gt;$$
A^\pi(\mathbf{o}&lt;em&gt;t,\mathbf{a}&lt;em&gt;t)=\sum&lt;/em&gt;{t&apos;=t}^{t+N-1}r&lt;/em&gt;{t&apos;}+V^\pi(\mathbf{o}_{t+N})-V^\pi(\mathbf{o}_t)
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; RECAP 不把动作空间离散化成单个 token。π*₀.₆ 接收多相机图像、关节 / 夹爪状态和语言 prompt，输出文本 sub-task、FAST 离散动作表示以及由 860M action expert 生成的连续 action chunk。实验平台是双臂静态系统：两只 6-DoF 手臂、平行夹爪、50 Hz joint-position 控制和三路相机。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-recap/architecture.2ksnlchfy4.webp&quot; alt=&quot;π*₀.₆ VLA 与 value function 的交互（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; RECAP 的数据流可以浓缩成一句话：VLA 在任务上试验并收集轨迹，value function 把每个状态映射到成功进度，再将 advantage 的正负作为策略输入，重新训练出更偏向成功行为的 VLA。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;π*₀.₆ VLA&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：三路 RGB 图像、机器人 configuration、语言任务和元数据。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：文本化的下一步 sub-task、FAST action tokens，以及由 flow-matching action expert 产生的连续 action chunk。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;作用&lt;/strong&gt;：Gemma 3 4B VLM 负责共享语义表示；860M action expert 负责细粒度动作。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; π*₀.₆ 是 π₀.₆ 的 RL 版本，加入了对二值 advantage indicator 的条件化能力。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 当前公开 &lt;code&gt;openpi&lt;/code&gt; 的 &lt;code&gt;src/openpi/models/pi0.py&lt;/code&gt; 将图像编码为 SigLIP tokens，使用 Gemma 2B 与 Gemma 300M action expert；&lt;code&gt;Pi0Config(pi05=True)&lt;/code&gt; 设置 50 步 action horizon、32 维 action，并用 adaRMSNorm 注入 flow timestep。论文内部 π*₀.₆ 的 4B / 860M 规模和 RECAP 训练脚本并未在该仓库中完整公开。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Distributional Value Function&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：观测 $mathbf{o}_t$ 与语言任务 $ell$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：201 个离散 value bins 的概率分布 $p_\phi(V\mid\mathbf{o}_t,\ell)$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;作用&lt;/strong&gt;：判断当前动作离任务成功还有多少步；成功轨迹的值逐渐接近 0，失败轨迹被压到较大的负值。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要分布式形式&lt;/strong&gt;：多任务的 episode 长度不同，直接回归一个标量容易丢失不确定性；分布式 value 可以再通过 bin 的期望恢复连续值。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; value function 与 VLA 采用相似架构，但使用较小的 670M VLM backbone，并与少量 web 多模态数据 co-train 以降低过拟合。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Experience Aggregator&lt;/h4&gt;
&lt;p&gt;每个目标任务的数据集 $\mathcal{D}_\ell$ 包含：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;初始 demonstration；&lt;/li&gt;
&lt;li&gt;策略完全自治执行的 rollout；&lt;/li&gt;
&lt;li&gt;执行中由专家接管产生的 correction 片段。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; correction 强制标记为 positive advantage，但整条轨迹（包括未被接管的部分）仍可加入数据集。这样人工干预负责修复大错误，自治数据负责学习速度、动作细节和部署分布。&lt;/p&gt;
&lt;h4&gt;Advantage-Conditioned Policy&lt;/h4&gt;
&lt;p&gt;训练序列在 sub-task 之后插入 &lt;code&gt;Advantage: positive&lt;/code&gt; 或 &lt;code&gt;Advantage: negative&lt;/code&gt;。同一条动作样本不被过滤，而是以条件变量区分“值得复现”与“需要避免”的行为。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;Value Function 目标&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 将轨迹的 empirical return 离散为 $B=201$ 个 bins，优化：&lt;/p&gt;
&lt;p&gt;$$
\min_\phi;\mathbb{E}&lt;em&gt;{\tau\in\mathcal{D}}
\left[\sum&lt;/em&gt;{\mathbf{o}&lt;em&gt;t\in\tau}
H\left(R_t^B(\tau),p&lt;/em&gt;\phi(V\mid\mathbf{o}_t,\ell)\right)\right]
$$&lt;/p&gt;
&lt;p&gt;其中 $H$ 是 cross-entropy，$R_t^B$ 是离散后的 return。连续 value 从分布的期望得到：&lt;/p&gt;
&lt;p&gt;$$
V^{\pi_{\mathrm{ref}}}(\mathbf{o}&lt;em&gt;t,\ell)
=\sum&lt;/em&gt;{b=1}^{B}p_\phi(V=b\mid\mathbf{o}_t,\ell)v(b)
$$&lt;/p&gt;
&lt;h4&gt;二值 improvement indicator&lt;/h4&gt;
&lt;p&gt;$$
I_t=\mathbb{1}\left(A^{\pi_{\mathrm{ref}}}(\mathbf{o}_t,\mathbf{a}&lt;em&gt;t,\ell)&gt;\epsilon&lt;/em&gt;\ell\right)
$$&lt;/p&gt;
&lt;p&gt;其中 $\epsilon_\ell$ 是任务相关阈值。预训练时约 30% 的样本被判为 positive；下游微调通常约 40%，T-shirt / shorts 任务为了偏向高质量高速动作则约 10%。&lt;/p&gt;
&lt;h4&gt;条件策略目标&lt;/h4&gt;
&lt;p&gt;$$
\min_\theta;\mathbb{E}&lt;em&gt;{\mathcal{D}&lt;/em&gt;{\pi_{\mathrm{ref}}}}
\left[-\log\pi_\theta(\mathbf{a}_t\mid\mathbf{o}&lt;em&gt;t,\ell)
-\alpha\log\pi&lt;/em&gt;\theta(\mathbf{a}_t\mid I_t,\mathbf{o}_t,\ell)\right]
$$&lt;/p&gt;
&lt;p&gt;第一项保留 unconditional policy，第二项让模型学会在 positive 条件下提高动作概率。连续动作部分用 flow-matching loss 近似 likelihood；离散文本和 FAST action 部分仍使用 autoregressive cross-entropy。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 该目标的关键是“使用所有数据，但改变条件”：AWR 会把负 advantage 样本权重压到接近 0，RECAP 则让负样本继续训练 unconditional policy，并把 positive / negative 的差异交给一个低成本文本条件表达。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 预训练阶段在数万小时、多任务、多机器人示教上训练 value function 和 advantage-conditioned VLA。下游阶段先以 demonstration 做 SFT（将 $I_t$ 固定为 True），得到 $\pi^0_\ell$；随后反复执行“收集数据 → 更新 value → 更新 policy”。每一轮都从预训练 checkpoint 微调，而不是从上一轮策略继续微调，以减少迭代漂移。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 推理时不需要运行 value function。模型接收图像、状态、语言任务和 advantage 条件；通常直接使用 positive 条件采样。训练时随机丢弃 30% 的 indicator，因此还可以在测试时使用 classifier-free guidance（CFG）以 $\beta&gt;1$ 锐化动作分布。论文实际主要使用 $\beta=1$，因为过高 CFG 会把动作推向支持集边界，导致过于激进的运动。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;| 论文概念                   | &lt;code&gt;openpi&lt;/code&gt; 位置                                      | 代码事实与边界                                                                            |
| -------------------------- | -------------------------------------------------- | ----------------------------------------------------------------------------------------- |
| π 系列 VLA                 | &lt;code&gt;src/openpi/models/pi0.py&lt;/code&gt;                         | &lt;code&gt;Pi0&lt;/code&gt; 同时处理图像 prefix、语言 token、state 和 flow-matching action suffix。             |
| π₀.₅ 配置                  | &lt;code&gt;src/openpi/models/pi0_config.py&lt;/code&gt;                  | &lt;code&gt;pi05=True&lt;/code&gt; 时使用 50 步 horizon、32 维 action、离散 state input 和 adaRMSNorm timestep。 |
| 图像编码器                 | &lt;code&gt;pi0.py&lt;/code&gt;                                           | 调用 SigLIP &lt;code&gt;So400m/14&lt;/code&gt;，再送入 Gemma backbone。                                          |
| Flow loss                  | &lt;code&gt;Pi0.compute_loss&lt;/code&gt;                                 | 从 Beta(1.5, 1) 采样 timestep，构造 noisy action 并最小化 vector-field MSE。              |
| Flow inference             | &lt;code&gt;Pi0.sample_actions&lt;/code&gt;                               | 先缓存 prefix，再循环计算 action suffix；公开配置默认 10 个采样步。                       |
| 数据 / checkpoint          | &lt;code&gt;training/config.py&lt;/code&gt;, &lt;code&gt;training/weight_loaders.py&lt;/code&gt; | 提供 DROID、LIBERO、ALOHA 等微调配置和 &lt;code&gt;gs://openpi-assets&lt;/code&gt; checkpoint。                  |
| RECAP value / rollout loop | 未发现对应公开实现                                 | 论文中的 201-bin value function、advantage 标注和真实机器人迭代收集并未在当前仓库中公开。 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 因此不能把 &lt;code&gt;openpi&lt;/code&gt; 说成 RECAP 的完整复现代码。它提供了 π 系列 VLA 的模型、推理和下游微调骨架；RECAP 的核心 RL 数据闭环仍属于论文描述的内部训练系统。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-recap/tasks.4920ij7ql4.webp&quot; alt=&quot;论文实验任务：洗衣、纸箱装配与咖啡制作（论文 Figure 4）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-recap/robot.1sfs3m0um5.webp&quot; alt=&quot;实验中的双臂机器人与三路相机（论文 Figure 5）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 评估包含五类设置：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;T-shirt / shorts laundry&lt;/strong&gt;：在 200 秒内取出、铺平、折叠并堆放衣物。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Diverse laundry&lt;/strong&gt;：11 类衣物，主 quantitative 指标选择最难的 button-up shirt，时限 500 秒。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Targeted failure removal&lt;/strong&gt;：固定橙色 T-shirt 和严格领口朝向标准，用于测试是否能消除单一失败模式。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cafe&lt;/strong&gt;：在专业 espresso machine 上完成研磨、压粉、锁 portafilter、萃取和上杯，时限 200 秒。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Box assembly&lt;/strong&gt;：在真实工厂环境折叠纸板、贴标签并放入 crate，时限 600 秒。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;吞吐量定义为每小时成功完成的任务数，同时反映速度与成功率；success rate 由人工对 episode 质量进行标注。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-recap/diverse-throughput.5q85kabv87.webp&quot; alt=&quot;Diverse laundry 的吞吐量结果（论文 Figure 6 中的子图）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 最终 RECAP policy 相比 offline RL + SFT 基线，在 diverse laundry 和 espresso 上的 throughput 超过 2 倍，失败率约下降 2 倍。简单 T-shirt / shorts 任务在 SFT 后成功率已经接近上限，RECAP 的主要收益转化为更快执行。Box assembly 的四个子阶段（取板、成盒、贴标、入 crate）均获得更一致的成功率，最终在 600 秒限制内折叠和贴标都达到约 90% 成功率。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 这些提升不是只在短离线 benchmark 上出现：模型连续制作咖啡 13 小时，在新家庭折叠陌生衣物超过 2 小时，并能在工厂包装场景中持续装箱。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文比较了三种 policy extraction：RECAP 的 advantage conditioning、AWR 和 PPO。使用同一批机器人数据时，AWR 可以获得合理 success rate，但策略明显更慢；PPO 需要很小的 trust-region constraint（$\eta=0.01$）才能稳定，在 throughput 上仍难以超过 offline RL + SFT。RECAP 同时保持成功率和速度。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-recap/failure-success.362b7nbwmj.webp&quot; alt=&quot;严格领口朝向任务的失败模式移除结果（论文 Figure 12）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在 targeted failure removal 中，每轮收集 600 条轨迹，迭代两轮后成功率达到 97%，即使不使用额外 demonstration 或 intervention，也能消除基线常把领口朝下的错误。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; RECAP 的泛化重点不是零样本理解新任务，而是让已有 VLA primitive 在新部署条件中更稳、更快。Diverse laundry 测试衣物形态变化，espresso 测试液体与多阶段接触，box assembly 测试纸板形变和工厂节拍；三者都要求 policy 学会纠正自身真实失败。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 结果也显示“成功率”和“吞吐量”并不等价：高质量 demonstration 可以让机器人慢而稳，自治经验则能把动作节奏推进到接近或超过示教者。因此只看 success rate 会低估 RECAP 的实际部署收益。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Value function 提供统一的进度尺度&lt;/strong&gt;：不同任务的成功标签被转成“离成功还有多少步”，自治失败因此能参与训练，而不是只能被丢弃。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;条件化替代了复杂 importance weighting&lt;/strong&gt;：positive / negative indicator 让 flow-matching VLA 继续使用普通监督学习，不需要为每个连续动作求精确 log-likelihood。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;自治与纠错分工互补&lt;/strong&gt;：intervention 负责把策略从灾难性状态拉回来；自治 rollout 负责优化速度、流畅度和部署分布。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;从预训练 checkpoint 重启降低漂移&lt;/strong&gt;：每轮都回到稳定的通用 π*₀.₆，再用聚合数据专门化，避免错误在迭代中放大。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 单独看 value regression、advantage conditioning 或 DAgger 都不是新组件；创新在于将它们组合成面向大规模 flow-matching VLA 的真实机器人 recipe：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;offline RL 预训练让通用模型一开始就能读取 advantage 条件；&lt;/li&gt;
&lt;li&gt;201-bin distributional value function 跨任务复用；&lt;/li&gt;
&lt;li&gt;混合数据集同时利用 old policy、current policy 和 human corrections；&lt;/li&gt;
&lt;li&gt;低成本离线批更新取代难以扩展的高频 on-policy PPO。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;| 方法   | 如何使用低质量 / 负样本                          | 是否适配 flow VLA           | 数据来源           | 主要问题                     |
| ------ | ------------------------------------------------ | --------------------------- | ------------------ | ---------------------------- |
| AWR    | 对 advantage 做权重，低 advantage 样本几乎被过滤 | 可用但会丢数据              | 离线轨迹           | 策略容易变慢                 |
| PPO    | 需要 likelihood 与 trust region                  | 连续 action likelihood 难算 | 近似 on-policy     | 真实机器人采样昂贵、稳定性差 |
| DAgger | 依赖专家纠正分布偏移                             | 与 action head 无关         | 人工 intervention  | 不会自动优化速度             |
| RECAP  | 保留所有样本，用 indicator 区分 optimality       | 通过 flow loss 训练         | 示教 + 自治 + 纠错 | 仍需人工奖励与批量更新       |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; RECAP 把“数据筛选”改成“条件建模”：负样本不是监督信号，而是 unconditional policy 的覆盖；positive 条件则近似一个改进后的行为分布。这个接口正好绕开了 flow policy 的显式 density 计算。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; / &lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;episode-level success label 足以构造有用的稀疏 reward；&lt;/li&gt;
&lt;li&gt;观测近似满足 Markov 假设，value function 能从图像与语言判断进度；&lt;/li&gt;
&lt;li&gt;human correction 通常是更好的动作，因此可以强制标为 positive；&lt;/li&gt;
&lt;li&gt;初始 imitation policy 已经足够安全，随机性和纠错可以提供有限探索；&lt;/li&gt;
&lt;li&gt;任务可以通过批量收集轨迹、离线训练、再次部署的节奏迭代。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;系统不是 fully autonomous：奖励标注、intervention 和 episode reset 仍依赖人。&lt;/li&gt;
&lt;li&gt;探索基本是 greedy 的，主要依靠策略随机性与人工干预，没有系统性的 exploration strategy。&lt;/li&gt;
&lt;li&gt;训练是“收集一批数据再重训”的 iterated offline update，不是数据采集与参数更新并行的 online RL。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;201-bin value distribution 的质量依赖 episode 长度归一化和人工成功定义；一旦 reward rubric 偏移，advantage 也会随之偏移。&lt;/li&gt;
&lt;li&gt;positive / negative 是粗粒度二值条件，无法表达“快但略不稳”和“慢但安全”等多目标 trade-off。&lt;/li&gt;
&lt;li&gt;从预训练 checkpoint 重启虽然抑制 drift，却也可能抹掉上一轮策略学到的细粒度长期状态表示。&lt;/li&gt;
&lt;li&gt;公开 &lt;code&gt;openpi&lt;/code&gt; 没有 RECAP value、rollout 和 intervention 代码，社区难以仅凭仓库复现实验中的 13 小时部署或吞吐量曲线。&lt;/li&gt;
&lt;li&gt;论文主要展示 Physical Intelligence 的双臂平台与任务，其他 embodiment 的 value transfer 和 reward 标注成本仍未被充分验证。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;VLA 的后训练接口可以非常简单。&lt;/strong&gt; 让模型读取 &lt;code&gt;Advantage: positive&lt;/code&gt; 看似粗糙，但它把复杂的 RL 优化转化成了现有 VLA 擅长的 conditional supervised learning。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;吞吐量应该成为真实机器人 RL 的一等指标。&lt;/strong&gt; 成功率已经很高时，真正决定部署成本的是动作节奏、恢复时间和每小时完成数。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;人工干预不必承担全部监督。&lt;/strong&gt; 人只修最危险的错误，速度和细节交给自治经验学习，可能比要求 teleoperator 全程提供完美轨迹更可扩展。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;下一步是自动化 reward 与 reset。&lt;/strong&gt; 如果视觉语言 critic、任务级 reset policy 和安全探索器能够替代人工环节，RECAP 才能从“可重复的实验室 recipe”走向持续运行的机器人数据飞轮。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;代码开放程度决定研究价值的可迁移性。&lt;/strong&gt; &lt;code&gt;openpi&lt;/code&gt; 已经让 π 系列模型可被微调和部署，但 RECAP 的关键闭环仍未公开；未来若能开放 value head、advantage labeling 和 rollout schema，社区才可以检验该方法是否适用于更广泛的 embodiment。&lt;/li&gt;
&lt;/ol&gt;</content:encoded><h:img src="https://pic.hana0721.top/129563571_p0_master1200.1ziuqmv78w.webp"/><enclosure url="https://pic.hana0721.top/129563571_p0_master1200.1ziuqmv78w.webp"/></item><item><title>RDT2 论文精读：探索 UMI 数据规模化的跨本体零样本泛化极限</title><link>https://agusexp25.top/blog/paper-deep-dive-rdt2</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-rdt2</guid><description>精读 RDT2：用 10,000+ 小时 UMI 示教数据与 RVQ、Flow Matching、蒸馏三阶段训练，让 7B VLA 零样本迁移到未见机器人本体。</description><pubDate>Tue, 25 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; RDT2（Robotics Diffusion Transformer 2）研究一个比“在同一台机器人上多做几个任务”更难的问题：训练数据来自一类设备，部署时能否直接换到另一种机械臂，并同时面对未见过的物体、场景和指令。作者将其称为 &lt;strong&gt;4U&lt;/strong&gt;：Unseen embodiment、scene、object、instruction。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-rdt2/rdt2-umi.5c1ptcx7hy.webp&quot; alt=&quot;重新设计的 UMI、部署与跨本体迁移（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; RDT2 的核心不是单个网络模块，而是把“数据接口统一”和“动作生成接口统一”同时做好：UMI 把不同机械臂映射到共享的末端执行器空间，三阶段训练则把 Qwen2.5-VL 的离散语义能力逐步接到连续、低延迟的控制器上。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;重新设计 UMI 硬件：用 nylon 66 + glass fiber 的 CNC 结构、红外光学追踪和 linkage gripper，提高长期采集的一致性与高速运动稳定性。&lt;/li&gt;
&lt;li&gt;收集超过 10,000 小时、覆盖 100+ 户家庭和 1,000+ 独特物体的真实人类操作数据，并补充 50 工位的设施化采集。&lt;/li&gt;
&lt;li&gt;提出三阶段训练：RVQ 离散动作预训练、冻结 VLM 后的 Flow Matching action expert，以及将多步 expert 蒸馏成单步生成器。&lt;/li&gt;
&lt;li&gt;在 4U 零样本设置、模型/数据 scaling law，以及折衣服、桌面收纳、解拉链、快速按键和打乒乓球等任务上进行验证。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 现有 VLA 的瓶颈集中在三处。第一，真实机器人示教昂贵，且同一数据通常绑定某个机器人平台；第二，离散 action token 与连续 diffusion 各有优缺点：前者与预训练 VLM 的 next-token objective 对齐，却带来量化误差和自回归延迟，后者表达多模态动作更自然，却训练慢并可能扰动 VLM 的离散知识；第三，大模型越大，实时控制要求越难满足。&lt;/p&gt;
&lt;p&gt;UMI（Universal Manipulation Interface）提供了一个折中：人手拿着设备记录 6-DoF 末端位姿和夹爪宽度，部署时只需保持相机和 gripper 型号一致，就能把动作转换到不同机械臂。&lt;strong&gt;【Analysis】&lt;/strong&gt; 因此，RDT2 的“跨本体”首先是传感器、末端执行器和动作坐标的接口问题，其次才是模型的泛化问题。&lt;/p&gt;
&lt;p&gt;与 OpenVLA、RDT-1B、π0 / π0.5 相比，RDT2 的区别在于同时扩大数据覆盖面、保留 VLM 的离散概率结构，并为 diffusion 路径增加显式的实时蒸馏阶段。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 给定自然语言指令 $\ell$、当前 RGB 观测 $o_t$，模型需要输出动作块&lt;/p&gt;
&lt;p&gt;$$
A_t=(a_t,\ldots,a_{t+T_a}),\qquad a_t\in\mathbb{R}^{d},
$$&lt;/p&gt;
&lt;p&gt;并学习 $p(A_t\mid\ell,o_t)$。论文假设当前观测已经包含决策所需信息，不显式建模历史观测。训练集为&lt;/p&gt;
&lt;p&gt;$$
\mathcal D={(\ell^{(i)},o_t^{(i)},A_t^{(i)})}_{i,t}.
$$&lt;/p&gt;
&lt;p&gt;评测任务由物体、场景、语言指令和机器人本体四个因素组合而成；有限训练集只能覆盖其中的稀疏子集，因此目标是对新组合而非只对新类别泛化。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-rdt2/rdt2-pipeline.6bht6izy6f.webp&quot; alt=&quot;RDT2 三阶段训练流程（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 数据流是：图像与语言先进入冻结或可训练的 7B Qwen2.5-VL；动作块经过 RVQ 变成离散 action tokens 供 Stage 1 学习；Stage 2 从 VLM 多层 latent 条件化连续 action expert；Stage 3 再把多步 flow 过程压缩为单步生成器。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;增强 UMI 与数据接口&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：人类手持 UMI 的追踪位姿、夹爪宽度、相机视频。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：与机器人本体弱相关的末端动作轨迹。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;关键设计&lt;/strong&gt;：CNC nylon 66 + glass fiber 提高刚度；红外光追踪替代易受纹理、透明背景影响的 SLAM；linkage gripper 改善狭窄空间可达性。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;作用&lt;/strong&gt;：减少不同机器人之间的视觉、夹爪和结构 gap，使策略可以直接映射到 UR5e、Franka Research 3 等平台。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;RVQ Action Tokenizer&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 1D temporal CNN 将 $A_t\in\mathbb R^{T_a\times d}$ 编成 $n$ 个 $C$ 维 latent，再通过 $m$ 层 codebook 逐级量化。官方代码中，预训练 tokenizer 以 &lt;code&gt;MultiVQVAE&lt;/code&gt; 发布，训练脚本把有效 token 映射到 tokenizer 词表末端的保留区间。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;train.py&lt;/code&gt; 加载 &lt;code&gt;robotics-diffusion-transformer/RVQActionTokenizer&lt;/code&gt;，计算 &lt;code&gt;valid_action_id_length&lt;/code&gt;，再把 action token 转为 &lt;code&gt;vocab_size - (token + 1)&lt;/code&gt; 的输入 id；无效的 gripper token 用 padding 屏蔽。&lt;/p&gt;
&lt;h4&gt;7B VLM Backbone&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：多视角 RGB、自然语言和离散动作 token。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：语言-视觉-动作统一 latent，以及 Stage 1 的 action token logits。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;配置&lt;/strong&gt;：Qwen2.5-VL-7B；论文称保留词表中最少使用的 1,024 个条目表示动作。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;作用&lt;/strong&gt;：保留预训练 VLM 的离散语义与视觉推理能力，而不是从连续 diffusion loss 重新学习全部知识。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;400M Action Expert&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Stage 2 冻结 VLM，训练约 400M 参数的 RDT action expert；以 GQA 替换 MHA，并通过 cross-attention 读取 VLM 各层特征，输出连续动作速度场。&lt;strong&gt;【Analysis】&lt;/strong&gt; 它把“大模型负责理解”和“小模型负责控制”拆开，因此可以在不重复计算视觉语言主干的情况下提高控制频率。&lt;/p&gt;
&lt;h4&gt;One-Step Generator&lt;/h4&gt;
&lt;p&gt;Stage 2 推理需要 5 次 integration。Stage 3 保持教师 expert 与 VLM 冻结，训练一个从 $t=0$ 出发的 student，直接回归教师多步轨迹；这就是 RDT2-UltraFast。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;RVQ 量化&lt;/h4&gt;
&lt;p&gt;对第 $i$ 个 latent，令 $r^i_0=z_i$，第 $j$ 层选择最近的 codebook 向量：&lt;/p&gt;
&lt;p&gt;$$
k^i_j=\arg\min_k|r^i_{j-1}-e_j(k)|&lt;em&gt;2^2,\qquad
r^i_j=r^i&lt;/em&gt;{j-1}-e_j(k^i_j).
$$&lt;/p&gt;
&lt;p&gt;最终重建为 $\hat A_t=\phi_{dec}({\sum_j e_j(k^i_j)}_i)$。量化器损失同时约束动作重建、encoder commitment 和 codebook 更新：&lt;/p&gt;
&lt;p&gt;$$
\mathcal L_{vq}=|A_t-\hat A_t|_2^2+|\operatorname{sg}(z_i)-\hat z_i|_2^2+\beta|z_i-\operatorname{sg}(\hat z_i)|_2^2.
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 作者还用 cosine similarity、低维 codebook、EMA 更新和周期性重启失活条目缓解 codebook collapse。&lt;/p&gt;
&lt;h4&gt;Flow Matching&lt;/h4&gt;
&lt;p&gt;训练时采样 $\epsilon\sim\mathcal N(0,I)$、$\tau\sim U(0,1)$，构造&lt;/p&gt;
&lt;p&gt;$$
A_t^\tau=(1-\tau)\epsilon+\tau A_t,\qquad u(A_t^\tau\mid A_t)=A_t-\epsilon,
$$&lt;/p&gt;
&lt;p&gt;并最小化&lt;/p&gt;
&lt;p&gt;$$
\mathcal L_{expert}=\mathbb E|v_\theta(\tau,A_t^\tau,\mathrm{VLA}(\ell,o_t))-u(A_t^\tau\mid A_t)|_2^2.
$$&lt;/p&gt;
&lt;p&gt;$v_\theta$ 是 action expert 预测的速度场，VLA 表示冻结的视觉语言条件。&lt;/p&gt;
&lt;h4&gt;蒸馏&lt;/h4&gt;
&lt;p&gt;设教师多步生成结果为 $F$，student 的一步结果为&lt;/p&gt;
&lt;p&gt;$$
G(A_t^0,\ell,o_t;\theta&apos;)=A_t^0+v_{\theta&apos;}(0,A_t^0,\mathrm{VLA}(\ell,o_t)),
$$&lt;/p&gt;
&lt;p&gt;则&lt;/p&gt;
&lt;p&gt;$$
\mathcal L_{distill}=\mathbb E|F(A_t^0,\ell,o_t;\theta)-G(A_t^0,\ell,o_t;\theta&apos;)|_2^2.
$$&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Stage 1 在 UMI 数据与少量 vision-language 数据的混合集上训练 128K iterations，使用 next-token cross-entropy；Stage 2 冻结 VLM，训练 action expert 66K iterations；Stage 3 在线计算教师多步结果并做 MSE 蒸馏。论文附录给出的两阶段共同超参包括每 GPU batch size 96、learning rate $10^{-4}$、AdamW、bf16、gradient clipping 1，Stage 1 使用 cosine decay，Stage 2 使用 constant schedule。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方仓库把数据转为 WebDataset tar shards，通过 &lt;code&gt;Resample&lt;/code&gt; 无限流式采样，并用 &lt;code&gt;wds.RandomMix&lt;/code&gt; 动态混合数据源；训练脚本支持 full fine-tuning、LoRA 和 QLoRA。图像增强包括 color jitter、噪声、motion blur 与 JPEG corruption；Stage 2 时间步使用 logistic-normal 采样，集中训练 flow 中段较难区域。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; RDT2-VQ 的部署入口加载 Qwen2.5-VL、RVQ tokenizer 与 UMI normalizer；输入两路相机图像和语言指令后，生成 action token，再解码为归一化的连续动作块。RDT2-FM 则缓存 VLM 的 language-vision latent，连续 expert 进行 5 步 flow integration；UltraFast 只执行一次 student forward。动作随后发送到 UR5e 或 Franka FR3 的低层控制器。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;| 论文概念 | 官方仓库对应 | 代码行为 |
| --- | --- | --- |
| VLA Stage 1 | &lt;code&gt;train.py&lt;/code&gt;, &lt;code&gt;vla_trainer.py&lt;/code&gt; | Qwen2.5-VL + action token 的监督微调，支持 LoRA/QLoRA |
| UMI dataset | &lt;code&gt;data/umi_video_dataset.py&lt;/code&gt;, &lt;code&gt;data/utils.py&lt;/code&gt; | 从 zarr / 视频与标注读取图像、动作和 instruction |
| Action token | &lt;code&gt;vqvae/models/multivqvae.py&lt;/code&gt;、&lt;code&gt;train.py&lt;/code&gt; | MultiVQVAE 编解码，动作 id 写入 Qwen 词表保留区 |
| FM deployment | &lt;code&gt;models/rdt_inferencer.py&lt;/code&gt;, &lt;code&gt;deploy/inference_real_fm.py&lt;/code&gt; | 读取多层 VLM cache，连续 action expert 产生动作块 |
| VQ deployment | &lt;code&gt;deploy/inference_real_vq.py&lt;/code&gt; | 从 token 解码动作并做 normalizer 反变换 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 论文把三阶段写成统一方法，仓库则以 &lt;code&gt;RDT2-VQ&lt;/code&gt; 和 &lt;code&gt;RDT2-FM&lt;/code&gt; 两个公开模型为主要使用入口；论文中的 UltraFast 蒸馏路径在论文实验中明确，但当前仓库的通用 &lt;code&gt;RDTInferencer&lt;/code&gt; 对 distill runner 仍保留注释接口，部署代码更完整地覆盖 VQ 与 FM 两条路径。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 零样本实验严格使用 4U 设置：测试场景、物体、指令和机械臂都不出现在训练组合中；每个任务进行 256 次试验，Pick 任务额外重复 1,000 次观察成功率收敛。下游 fine-tuning 比较 RDT2 与 π0.5、π0-FAST，涵盖变形物体、长时程、动态响应和灵巧操作。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-rdt2/rdt2-zeroshot_results.8s41lg6uo8.webp&quot; alt=&quot;4U 零样本任务的成功率（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 零样本结果中，RDT2-FM / RDT2-VQ 在 Pick、Pick-and-Place、Wipe、Press、Shake 上分别达到约 41/45%、26/29%、52/47%、27/25% 和 25/27% 的成功率（图中误差条为标准误）。成功率并不意味着“已解决通用机器人”，但证明了仅用人类 UMI 数据即可跨四个未见因素组合泛化。&lt;/p&gt;
&lt;p&gt;Scaling law 实验在完整数据集单 epoch 上改变模型大小和已消费 token 数，拟合得到：&lt;/p&gt;
&lt;p&gt;$$
\hat L(N,D)=E+\frac{A}{N^\alpha}+\frac{B}{D^\beta},
$$&lt;/p&gt;
&lt;p&gt;其中 $E\approx2.1108,A\approx4.3754\times10^3,\alpha\approx0.4402,B\approx1.7906\times10^2,\beta\approx0.2251$。&lt;strong&gt;【Analysis】&lt;/strong&gt; 这说明增加模型参数和数据量都仍有可预测收益，数据采集接口的可扩展性本身成为模型能力上限的一部分。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-rdt2/rdt2-scaling_law_plot.7w7k5zx5rr.webp&quot; alt=&quot;RDT2 的模型与数据 scaling law（论文 Figure 5）&quot;&gt;&lt;/p&gt;
&lt;p&gt;fine-tuning 表 2 中，RDT2 在折衣服总体成功率 77%（π0.5 36%、π0-FAST 29%），桌面收纳 progress score 0.58（0.39、0.30），解拉链成功率 45%（13%、8%）；按钮按压相对人类反应时间差为 +97 ms（+323、+981 ms）。乒乓球在 1×/1.2×/1.5×/1.7×/2× 人类速度下的命中率为 88/85/76/68/—%，π0-FAST 因频率不足无法完成该项。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-rdt2/rdt2-hybrid_training.5mojmicf2w.webp&quot; alt=&quot;AR 预训练与 diffusion-only 的收敛对比（论文 Figure 6）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 主要消融结论有三点：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;先做 AR（Stage 1）再做 diffusion，比从头只用 diffusion 更快收敛且最终 loss 更低。&lt;/li&gt;
&lt;li&gt;RVQ 在相同量化误差下需要更少 token；论文 Figure 8 显示相较 FAST 可节省约三分之二 token。&lt;/li&gt;
&lt;li&gt;Stage 3 蒸馏把 RDT2-FM 的 5 步积分变为单步生成，使 RDT2-UltraFast 达到 23.0 Hz；RDT2-FM 为 17.0 Hz，RDT2-VQ 为 16.0 Hz，π0.5 为 2.7 Hz，π0-FAST 为 1.6 Hz。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-rdt2/rdt2-speed_ablation.4ubo4rvtqk.webp&quot; alt=&quot;不同 VLA 的推理频率（论文 Figure 7）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-rdt2/rdt2-tokenizer_results.39lx5aymdq.webp&quot; alt=&quot;RVQ 与 FAST 的动作离散化误差（论文 Figure 8）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文把泛化拆成四个因素，而不是只报告随机划分测试集。特别是跨本体迁移依赖“相同 camera 与 gripper 型号 + UMI 末端动作接口”，并非任意硬件即插即用。&lt;strong&gt;【Analysis】&lt;/strong&gt; 这使 RDT2 更像一个“可扩展的 embodiment contract”：合同内的新机械臂可以零样本，合同外的传感器和末端执行器仍需要适配或 fine-tuning。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; RDT2 同时消除了三个相互牵制的误差源：UMI 降低数据跨本体的坐标差异；RVQ 让动作监督回到 VLM 熟悉的离散 next-token 空间；FM 与蒸馏再把离散决策还原为连续动作并满足实时性。三者缺一不可：没有大规模 UMI，泛化缺乏覆盖；没有 Stage 1，diffusion 学习慢且破坏语义先验；没有 Stage 3，7B 模型难以进入动态控制环。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;数据接口与模型接口共同规模化&lt;/strong&gt;：硬件、标注、语言增强和 WebDataset 流水线被设计成可并行扩展的系统。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;离散-连续混合训练&lt;/strong&gt;：不是在 token 与 diffusion 之间二选一，而是将二者放到不同阶段承担不同目标。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;把实时性作为训练目标&lt;/strong&gt;：蒸馏不是部署后的工程补丁，而是第三阶段的显式优化目标。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;用 4U 组合泛化验证基础模型属性&lt;/strong&gt;：将“换物体”推进到同时换本体、场景和指令。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; π0 / π0.5 主要将 flow policy 与预训练 backbone 组合，RDT2 则先用 action token 让 VLM 学会“说出动作”，再让小型 expert 学会“连续地执行动作”。OpenVLA 等模型通常绑定特定机器人数据；RDT2 通过 UMI 把 embodiment 差异前移到采集和部署接口。相比 RDT-1B，RDT2 的关键增量是 10,000+ 小时数据、7B VLM 以及 RVQ + distillation 训练链。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;相机型号、安装方式和 gripper 形态在采集与部署间足够一致。&lt;/li&gt;
&lt;li&gt;单帧观测已包含决策需要的信息，历史观测不是必须输入。&lt;/li&gt;
&lt;li&gt;训练家庭与部署环境虽然不同，但共享可由视觉和语言描述的操作规律。&lt;/li&gt;
&lt;li&gt;大规模人类示教中的低层控制分布可以迁移到不同机械臂的动力学。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 4U 零样本成功率仍不高，实验主要覆盖简单 open-vocabulary 操作；数据来自 100+ 私人家庭，需要隐私保护和匿名化；在未见物理情境中零样本部署存在安全风险，必须配备 safety guardrails 与 verification protocols。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;“跨本体”依赖相同 camera / gripper，真正跨传感器、跨末端执行器的迁移尚未被证明。&lt;/li&gt;
&lt;li&gt;单帧假设会限制遮挡、接触状态和长时程任务；论文虽评测长任务，但模型本身未显式维护记忆或世界模型。&lt;/li&gt;
&lt;li&gt;10,000 小时数据的清洗、家庭隐私和语言增强成本很高，扩展速度不只取决于 GPU。&lt;/li&gt;
&lt;li&gt;单步蒸馏追随教师分布，可能牺牲多峰动作中的尾部模式；论文的速度优势需要在更多高风险接触任务上验证。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; RDT2 给出的最重要信号是：机器人基础模型的 scaling law 不仅是“再训练更大的 Transformer”，还包括如何把人类行为变成跨设备可复用的数据。UMI 让 embodiment 变成数据协议，RVQ 让动作进入语言模型的概率空间，蒸馏让大模型回到控制频率；这是一条从采集、表示到执行的完整闭环。&lt;/p&gt;
&lt;p&gt;后续研究可以沿三条线推进：一是把 UMI contract 扩展到不同相机、夹爪和力传感器；二是将历史观测、触觉和安全约束纳入 action expert；三是研究面向风险的蒸馏，让单步策略不仅快，还能保留多模态动作的安全边界。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/62423081_p0_master1200.3ns7nvxp9b.webp"/><enclosure url="https://pic.hana0721.top/62423081_p0_master1200.3ns7nvxp9b.webp"/></item><item><title>RDT-1B 论文精读：用 Diffusion Transformer 学习双臂操作</title><link>https://agusexp25.top/blog/paper-deep-dive-rdt-1b</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-rdt-1b</guid><description>精读 RDT-1B：如何用 Diffusion Transformer、物理可解释的统一动作空间和跨机器人预训练，解决双臂操作中的多模态与数据稀缺。</description><pubDate>Tue, 25 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;论文名称&lt;/strong&gt;：《RDT-1B: a Diffusion Foundation Model for Bimanual Manipulation》&lt;br&gt;
&lt;strong&gt;作者&lt;/strong&gt;：Songming Liu、Lingxuan Wu、Bangguo Li、Hengkai Tan、Huayu Chen、Zhengyi Wang、Ke Xu、Hang Su、Jun Zhu&lt;br&gt;
&lt;strong&gt;会议 / 期刊&lt;/strong&gt;：ICLR 2025&lt;br&gt;
&lt;strong&gt;论文链接&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2410.07864&quot;&gt;arXiv&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;代码链接&lt;/strong&gt;：&lt;a href=&quot;https://github.com/thu-ml/RoboticsDiffusionTransformer&quot;&gt;thu-ml/RoboticsDiffusionTransformer&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;项目主页&lt;/strong&gt;：&lt;a href=&quot;https://rdt-robotics.github.io/rdt-robotics/&quot;&gt;RDT Robotics&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; RDT-1B 将连续、多模态的动作 chunk 建模为条件扩散分布，用 DiT 处理视觉、语言、本体感知和扩散状态，再用物理含义明确的 128 维统一动作空间把 46 个机器人数据集接到同一个预训练任务中，最终在 Mobile ALOHA 双臂数据上微调。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Robotics Diffusion Transformer（RDT）&lt;/strong&gt;：以 Diffusion Transformer 为主体，使用 QKNorm、RMSNorm、MLP decoder 和 Alternating Condition Injection（ACI），面向机器人数据的数值不稳定、非线性和高频变化做结构修改。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Physically Interpretable Unified Action Space&lt;/strong&gt;：把关节位置、关节速度、末端位姿、夹爪状态和底盘速度映射到 128 维向量，保留每一维的物理意义，避免简单截断跨机器人信息。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;大规模两阶段训练&lt;/strong&gt;：在 46 个数据集、1M+ 轨迹、约 21TB 数据上预训练，再在 300+ 任务、6K+ 双臂轨迹的自建数据上微调；RDT-1B 规模为 1.2B 参数。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;真实机器人泛化&lt;/strong&gt;：论文报告了未见物体、未见场景、指令跟随、1–5 shot 新技能和灵巧操作上的提升，并在 7 个任务上比较 ACT、OpenVLA、RDT scratch 与预训练 RDT。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 双臂操作比单臂操作多了一倍左右的控制自由度，示教者还可能选择不同的抓取姿态、左右手分工和接触顺序。因此同一语言指令和视觉状态可能对应多个可行动作模式。用 MSE 直接回归这些动作，会把多个模式平均成一个物理上不可行的动作。&lt;/p&gt;
&lt;p&gt;另一个瓶颈是数据。双臂硬件和遥操作成本较高，特定双臂机器人的公开示教通常远少于单臂数据。若只在目标机器人上从零训练，模型很难同时获得视觉、语言和物理先验。&lt;/p&gt;
&lt;p&gt;已有 VLA（如 RT-2、OpenVLA）把动作离散化成 token，便于复用语言模型，但量化误差和离散动作的联合建模会限制精度；Octo 使用条件扩散，却把较少参数留给真正的去噪过程。&lt;strong&gt;【Analysis】&lt;/strong&gt; RDT 的定位是把扩散模型的分布表达能力与 DiT 的可扩展性结合起来，并先跨机器人学习，再针对目标双臂 embodiment 适配。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在时间步 $t$，给定自然语言指令 $\ell$、最近 $T_{\text{img}}$ 帧 RGB 图像、机器人本体感知 $\vz_t$ 和控制频率 $c$，策略输出未来 $T_a$ 步动作 chunk：&lt;/p&gt;
&lt;p&gt;$$
\pi_\theta(\va_{t:t+T_a}\mid \ell,\vo_t),\qquad
\vo_t=(\mX_{t-T_{\text{img}}+1:t},\vz_t,c)
$$&lt;/p&gt;
&lt;p&gt;动作通常是下一时刻期望本体状态的子集。目标不是做一个跨机器人直接部署的通用控制器，而是利用多机器人数据学习可迁移的物理先验，再在目标双臂机器人上微调。&lt;/p&gt;
&lt;p&gt;| 项目               | 论文设定                                                          |
| ------------------ | ----------------------------------------------------------------- |
| Robot / Embodiment | Mobile ALOHA 双臂平台；实验中不使用其自主移动能力                 |
| Observation        | 3 路 RGB（外部、左右腕部）与本体状态，图像历史 $T_{\text{img}}=2$ |
| Action             | 统一到 128 维；目标机器人主要填入双臂关节位置与夹爪状态           |
| Action horizon     | $T_a=64$                                                          |
| Training objective | DDPM 前向加噪后，预测 clean action sample，使用 MSE               |
| Control context    | 显式输入控制频率，减少不同数据集采样频率带来的歧义                |&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-rdt-1b/framework-crop.99u39zxsqs.webp&quot; alt=&quot;RDT framework：多机器人动作映射到统一空间，并由图像、语言和低维状态条件化（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 数据流可以压缩成一句话：状态与带噪动作先组成主序列，图像和语言分别编码为条件 token，RDT block 交替做 language/image cross-attention，最后只保留动作 token 并解码为去噪后的动作 chunk。训练与推理的逐步过程分别放在 4.4 和 4.5。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;Physically Interpretable Unified Action Space&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：不同机器人原始 action / proprioception，以及对应的物理量格式。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：128 维统一向量与同维度 validity mask。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;映射&lt;/strong&gt;：右臂关节位置 &lt;code&gt;[0,10)&lt;/code&gt;、右夹爪 &lt;code&gt;[10,15)&lt;/code&gt;、右臂速度 &lt;code&gt;[15,25)&lt;/code&gt;、右末端位置 &lt;code&gt;[30,33)&lt;/code&gt;、右末端 6D pose &lt;code&gt;[33,39)&lt;/code&gt;；左臂从 &lt;code&gt;[50,95)&lt;/code&gt; 对称放置；底盘速度使用 &lt;code&gt;[100,103)&lt;/code&gt;，其余位置保留。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要&lt;/strong&gt;：不同数据集可能使用 joint position、joint velocity、EEF pose 或 base velocity。按物理意义填入，而不是按数组下标拼接，才能让相同维度在跨机器人数据中表达相同概念。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;configs/state_vec.py&lt;/code&gt; 明确维护 &lt;code&gt;STATE_VEC_IDX_MAPPING&lt;/code&gt; 和 &lt;code&gt;STATE_VEC_LEN = 128&lt;/code&gt;；&lt;code&gt;data/preprocess.py&lt;/code&gt; 的 &lt;code&gt;assemble_state_vec&lt;/code&gt; 同时返回 state vector 与 mask。无效维度不会被当作真实动作，训练和采样阶段都通过 &lt;code&gt;action_mask&lt;/code&gt; 屏蔽。&lt;/p&gt;
&lt;h4&gt;多模态编码&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Language&lt;/strong&gt;：冻结的 T5-XXL 产生 4096 维语言 token，再经 &lt;code&gt;mlp2x_gelu&lt;/code&gt; adaptor 投影到 RDT hidden size。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Image&lt;/strong&gt;：冻结的 SigLIP 编码 RGB 图像，再经 &lt;code&gt;mlp2x_gelu&lt;/code&gt; 投影；论文使用三路相机与两帧历史，并用多维位置编码区分时间、相机和 patch。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Low-dimensional state&lt;/strong&gt;：状态、带噪动作及 validity mask 拼接后，经 &lt;code&gt;mlp3x_gelu&lt;/code&gt; 投影。控制频率和扩散时间步分别用 Fourier / timestep MLP 编码。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;随机独立 mask&lt;/strong&gt;：论文在不同模态上独立遮蔽输入，降低模型只依赖外部相机或文本的 shortcut。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;RDT DiT backbone&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; RDT 不是把 diffusion head 挂在一个很小的 condition encoder 后面，而是让大部分 Transformer 都参与去噪。每个 block 包含 self-attention、cross-attention 与 MLP：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;QKNorm + RMSNorm&lt;/strong&gt;：机器人物理量的范围可能不稳定；代码中的 &lt;code&gt;RDTBlock&lt;/code&gt; 使用 &lt;code&gt;RmsNorm&lt;/code&gt;，attention 的 query/key 也启用 &lt;code&gt;qk_norm=True&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MLP decoder&lt;/strong&gt;：最终动作不是线性投影，而是带 GELU 的 MLP，以近似碰撞、摩擦等导致的非线性动作映射。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Alternating Condition Injection&lt;/strong&gt;：第 $i$ 个 block 只注入 language 或 image 条件，代码中以 &lt;code&gt;conds[i % 2]&lt;/code&gt; 实现，避免图像 token 数量远多于文字 token 时吞没指令信息。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;DDPM 前向过程与去噪目标&lt;/h4&gt;
&lt;p&gt;给定 clean action chunk $\va^0$，从 $k\in{1,\ldots,K}$ 随机采样扩散步数，并构造：&lt;/p&gt;
&lt;p&gt;$$
\tilde{\va}^{k}=\sqrt{\bar\alpha_k},\va^0+\sqrt{1-\bar\alpha_k},\vepsilon,
\qquad \vepsilon\sim\mathcal N(0,\mI)
$$&lt;/p&gt;
&lt;p&gt;训练网络 $f_\theta$ 预测 clean sample：&lt;/p&gt;
&lt;p&gt;$$
\mathcal L(\theta)=
\mathbb E\left[\left|\va^0-f_\theta(\tilde{\va}^{k},\vo_t,\ell,c,k)\right|_2^2\right]
$$&lt;/p&gt;
&lt;p&gt;其中 $\bar\alpha_k$ 是噪声 schedule 的累积乘积，$k$ 告诉模型当前噪声等级，$c$ 告诉模型控制频率。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;models/rdt_runner.py&lt;/code&gt; 使用 &lt;code&gt;DDPMScheduler&lt;/code&gt;，配置为 1000 个训练 diffusion timesteps、&lt;code&gt;squaredcos_cap_v2&lt;/code&gt; schedule 和 &lt;code&gt;prediction_type: sample&lt;/code&gt;，因此实际 target 是 &lt;code&gt;action_gt&lt;/code&gt; 而不是噪声 $\vepsilon$；loss 是 &lt;code&gt;F.mse_loss(pred, target)&lt;/code&gt;。&lt;/p&gt;
&lt;h4&gt;反向采样&lt;/h4&gt;
&lt;p&gt;推理从 $\va^K\sim\mathcal N(0,\mI)$ 开始，重复执行：&lt;/p&gt;
&lt;p&gt;$$
\va^{k-1}=\operatorname{SchedulerStep}\big(f_\theta(\va^k,\vo_t,\ell,c,k),k,\va^k\big)
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方 runner 使用 &lt;code&gt;DPMSolverMultistepScheduler&lt;/code&gt;，推理步数为 5；得到 64 步 action chunk 后乘以 &lt;code&gt;action_mask&lt;/code&gt;，只执行目标机器人实际存在的维度。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 训练分为两阶段：预训练使用 46 个机器人数据集，目标规模为 1M+ trajectories / 21TB；微调使用 Mobile ALOHA 上 300+ 任务、6K+ trajectories、3M+ frames。数据清洗包括删除失败或重复 episode、空图像和错误速度，过长轨迹下采样，末端旋转使用 6D 表示。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 预训练使用 TFRecord producer-consumer pipeline，微调提供 HDF5 dataset；&lt;code&gt;configs/base.yaml&lt;/code&gt; 中 &lt;code&gt;action_chunk_size=64&lt;/code&gt;、&lt;code&gt;img_history_size=2&lt;/code&gt;、&lt;code&gt;state_dim=128&lt;/code&gt;。代码还会过滤短 episode、填充不足 64 步的动作，并把目标机器人数据映射到统一状态向量。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;推理时不需要 teacher action，也不需要额外的 encoder。机器人读取当前两帧视觉、状态、语言和控制频率，采样一段动作，然后执行其中适合当前控制周期的部分并继续闭环观测。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;| 论文描述                        | 官方代码对应                                           | 对照结论                                                                              |
| ------------------------------- | ------------------------------------------------------ | ------------------------------------------------------------------------------------- |
| 1.2B 参数 RDT-1B                | &lt;code&gt;configs/base.yaml&lt;/code&gt;：hidden size 2048、28 层、32 heads | 配置与论文的 1B 级模型一致；仓库还提供 166M 小模型实验配置思路                        |
| 语言与图像条件                  | &lt;code&gt;train/train.py&lt;/code&gt; 的 &lt;code&gt;T5Embedder&lt;/code&gt;、&lt;code&gt;SiglipVisionTower&lt;/code&gt;  | 预训练 encoder 在训练主循环外提供条件 token，RDT 内部只接收投影后的 token             |
| 统一动作空间                    | &lt;code&gt;configs/state_vec.py&lt;/code&gt;、&lt;code&gt;data/preprocess.py&lt;/code&gt;           | 128 维映射与 mask 是数据管线的核心，而不是仅写在论文里的概念                          |
| Diffusion training              | &lt;code&gt;RDTRunner.compute_loss&lt;/code&gt;                               | 随机 timestep、DDPM 加噪、&lt;code&gt;prediction_type=sample&lt;/code&gt;、MSE                               |
| Diffusion inference             | &lt;code&gt;RDTRunner.conditional_sample&lt;/code&gt;                         | 高斯初始化、5 步 DPM-Solver++、逐步更新并 mask 无效维度                               |
| Alternating Condition Injection | &lt;code&gt;models/rdt/model.py&lt;/code&gt;                                  | &lt;code&gt;conds[i % 2]&lt;/code&gt; 交替选择 language/image；最终 &lt;code&gt;FinalLayer&lt;/code&gt; 的 MLP 只保留 action tokens |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 论文把“预训练 + 微调”作为方法的一部分，但仓库的默认 &lt;code&gt;base.yaml&lt;/code&gt; 主要展示单个 embodiment 的 HDF5 读取示例；完整 46 数据集的 TFRecord 配置和预处理脚本分散在 &lt;code&gt;data/&lt;/code&gt;、&lt;code&gt;configs/&lt;/code&gt; 与 &lt;code&gt;docs/&lt;/code&gt; 中，复现实验需要准备大规模数据和多 GPU 环境。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-rdt-1b/ft_dataset-crop.1zizyy67ux.webp&quot; alt=&quot;RDT 微调数据集：多视角图像、双臂状态和多任务示教（论文 Appendix Figure）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 微调数据来自 Mobile ALOHA，覆盖 300+ challenging tasks、100+ objects、15+ rooms 和 6K+ trajectories。论文将测试维度拆为未见物体、未见场景、指令跟随、few-shot learning 与 dexterity，并与 ACT、OpenVLA、Octo 以及 RDT scratch 比较。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 训练配置使用 AdamW、constant learning rate；论文实验记录为 48 张 H100，预训练 1M steps、微调 130K steps。训练使用 DDPM 的 1000 steps，推理使用 DPM-Solver++ 的 5 steps。代码中的数据增强包括图像 corruption / color jitter、本体感知噪声和语言 instruction 扩展。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文在 7 个真实任务上报告 success rate。代表性结果如下：&lt;/p&gt;
&lt;p&gt;| 测试维度                      | RDT（预训练） | RDT scratch | 论文观察                             |
| ----------------------------- | ------------: | ----------: | ------------------------------------ |
| Wash Cup：未见物体总成功率    |         62.5% |         25% | 能把洗杯流程迁移到未见杯子           |
| Pour Water：未见场景总成功率  |         62.5% |         25% | 对未见房间仍能完成多阶段流程         |
| Pour Water-L-1/3：指令跟随    |         62.5% |       37.5% | 能区分左手与约三分之一水量           |
| Fold Shorts：1-shot 新技能    |           40% |         16% | 仅 1 条示教也能获得可用策略          |
| Handover：5-shot 新技能       |           40% |         16% | 能学习双手交接这一预训练中未见的技能 |
| Robot Dog：dexterity 总成功率 |           76% |         64% | 能更精确地推动黑色遥控器摇杆         |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; RDT（ours）在作者定义的综合指标上比基线更稳定；论文摘要将跨任务成功率提升概括为约 56%。这里的综合分数是多个任务维度和附加子条件的平均值，不等同于单个任务的 success rate。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-rdt-1b/ablation-crop.2h91nj7l6v.webp&quot; alt=&quot;RDT 消融：去掉 diffusion、模型规模或预训练后的成功率变化（论文消融图）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 消融包含四个版本：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;RDT (regress)&lt;/code&gt;：去掉 diffusion，直接做确定性回归；未见物体、未见场景、指令跟随分别为 12.5%、50%、12.5%。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;RDT (small)&lt;/code&gt;：166M 参数；对应结果为 37.5%、62.5%、25%。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;RDT (scratch)&lt;/code&gt;：不做多机器人预训练；结果为 0%、25%、62.5%。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;RDT (ours)&lt;/code&gt;：完整模型；对应结果为 50%、62.5%、100%。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 消融说明三件事缺一不可：diffusion 负责表达多峰连续动作，大模型容量负责吸收复杂跨模态关系，多机器人预训练负责提供未见物体与场景的先验。&lt;code&gt;RDT (small)&lt;/code&gt; 在某个未见场景指标上并非最差，说明单个任务的方差仍然存在，不能把所有收益简单归因于参数量。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 泛化并不是只换一个物体：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;未见物体 / 场景&lt;/strong&gt;：Wash Cup 与 Pour Water 的测试对象或房间在训练中未出现。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;未见语言组合&lt;/strong&gt;：Pour Water-L-1/3 与 R-2/3 要求理解手别和水位比例，即使训练指令只出现 little、half、full 等词。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;few-shot 新技能&lt;/strong&gt;：Handover 只有 5 条示教，Fold Shorts 只有 1 条示教。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;灵巧控制&lt;/strong&gt;：Robot Dog 要求识别黑色摇杆并以小角度持续推动，动作精度和视觉语义都很关键。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; RDT 的收益来自三个层级的匹配：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;分布层&lt;/strong&gt;：diffusion 直接学习 $p(a\mid o,\ell)$，不会把多个示教模式压成一个均值动作。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;表示层&lt;/strong&gt;：统一动作空间把“左臂关节速度”“右末端位置”等概念固定在一致的坐标槽位，允许跨机器人共享物理规律。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;规模层&lt;/strong&gt;：DiT 把图像、语言、状态和动作去噪放在同一个可扩展 Transformer 中，1M+ 轨迹和 1.2B 参数才有机会转化为下游先验。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;真正的创新不是单独提出一个新 diffusion schedule，而是把 &lt;strong&gt;Diffusion Policy + DiT scaling + 物理动作对齐 + 双臂微调&lt;/strong&gt; 组合成一个可开源训练栈。尤其是 128 维空间把“跨 embodiment 数据能否一起训练”从数据工程问题变成了显式的表示设计问题。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;| 方法    | 动作建模            | 多机器人处理                  | 对双臂多模态的态度                 |
| ------- | ------------------- | ----------------------------- | ---------------------------------- |
| ACT     | CVAE / action chunk | 通常针对单一 ALOHA embodiment | 用 latent 表示示教风格，但规模较小 |
| OpenVLA | 离散 action token   | 复用 VLM 的 action tokenizer  | 量化方便，但连续精度受限           |
| Octo    | 条件 diffusion head | 使用部分 OpenX 数据           | diffusion head 与主干规模有限      |
| RDT     | DiT 全网络去噪      | 128 维物理统一空间            | 直接建模连续、多峰 action chunk    |&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;不同机器人动作可以按物理意义嵌入同一个高维空间；填充维度不会引入不可控的负迁移。&lt;/li&gt;
&lt;li&gt;视觉、语言与低维状态足以解释静态双臂任务；论文没有覆盖高速投掷等强速度依赖任务。&lt;/li&gt;
&lt;li&gt;目标机器人通过少量或中等规模微调即可桥接 embodiment gap。&lt;/li&gt;
&lt;li&gt;训练数据的语言标注、相机布局和动作单位经过清洗后足够一致。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 研究主要面向静态双臂抓取与操作，Mobile ALOHA 的移动能力没有用于训练或推理；论文也指出模型的训练、微调和实时部署需要大量 GPU 资源。官方论文没有把方法扩展到动态导航、强接触力控制或普适的跨 embodiment 直接部署。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;128 维空间虽然覆盖常见物理量，但 reserved 槽位和 mask 设计仍然依赖人工约定；新型执行器或力矩控制需要重新定义映射。&lt;/li&gt;
&lt;li&gt;DPM-Solver++ 只用 5 个采样步，实时性好但可能牺牲部分动作分布精度；论文没有系统报告采样步数与成功率的曲线。&lt;/li&gt;
&lt;li&gt;论文表格主要是少量真实任务的 success rate，缺少大规模统计置信区间、能耗、延迟和安全违规率。&lt;/li&gt;
&lt;li&gt;预训练数据的采样权重会按质量、规模和中间 loss 手工调整，复现时需要大量数据清洗经验。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;models/rdt_runner.py&lt;/code&gt; 默认仍把条件 encoder、动作 mask 和目标 embodiment 的具体适配留给上层脚本，仓库并非下载后即可在任意机器人上零配置运行。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;统一空间应优先保留物理语义。&lt;/strong&gt; 跨机器人学习不一定要寻找“完全不变”的 latent；把可解释的物理量放在固定槽位，可能比强行压缩成共享 embedding 更容易诊断和迁移。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Diffusion 的价值在双臂场景尤其明显。&lt;/strong&gt; 当左右手分工、接触顺序和抓取姿态都存在多峰时，连续分布建模比离散 token 或单点回归更自然。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;大模型规模必须和数据对齐。&lt;/strong&gt; 1.2B 参数本身不是贡献，真正关键的是 1M+ 跨机器人数据、目标双臂数据和统一动作格式共同支撑了 scaling。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;下一步应研究 action-space 自动发现。&lt;/strong&gt; 目前 128 维表是人工设计的；未来可以让数据统计、机器人 URDF 和控制接口共同生成带语义的 mask 与映射。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;部署指标需要从成功率扩展到安全。&lt;/strong&gt; 对真实双臂机器人，采样延迟、动作平滑度、碰撞率、恢复行为和人机协作安全同样重要。&lt;/li&gt;
&lt;/ol&gt;</content:encoded><h:img src="https://pic.hana0721.top/49383596_p0_master1200.6t7pmts45l.webp"/><enclosure url="https://pic.hana0721.top/49383596_p0_master1200.6t7pmts45l.webp"/></item><item><title>Qwen-VLA 论文精读：统一跨任务、环境与机器人形态的 VLA</title><link>https://agusexp25.top/blog/paper-deep-dive-qwen-vla</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-qwen-vla</guid><description>精读 Qwen-VLA：以 Qwen3.5-4B 和 1.15B DiT flow-matching action decoder 统一操作、导航与轨迹预测，并分析其分阶段训练与跨 embodiment 泛化。</description><pubDate>Tue, 25 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;《Qwen-VLA: Unifying Vision-Language-Action Modeling across Tasks, Environments, and Robot Embodiments》提出一个统一的 embodied foundation model。它建立在 Qwen3.5-4B vision-language backbone 上，外挂约 1.15B 参数的 DiT-based flow-matching action decoder，把 manipulation、vision-and-language navigation（VLN）、人类 egocentric motion 和 trajectory prediction 都视为“给定视觉、语言与 embodiment 条件，预测一段连续轨迹”。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方仓库目前主要提供 README、模型总览图和演示入口；没有公开训练脚本、DataLoader、模型实现或 checkpoint。因此下文的代码对照只引用 README 明确写出的架构、参数规模和评测数字，不把论文中的内部训练实现误写成开源代码行为。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文报告的统一模型 Qwen-VLA-Instruct 同时取得：LIBERO 97.9%、Simpler-WidowX 73.7%、RoboTwin Easy/Hard 86.1%/87.2%、R2R OS 69.0%、RxR SR 59.6%；在真实 ALOHA 上平均 OOD 成功率 76.9%，在没有动态操作微调的 DOMINO 上 zero-shot SR 为 26.6%。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-qwen-vla/overview.7sny8cfjpm.webp&quot; alt=&quot;Qwen-VLA 从多种 embodied 数据生成动作与语言输出的总览（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; Qwen-VLA 的关键不是给每个机器人再加一个 head，而是把“不同 embodiment 的控制语义”变成 prompt，把“不同动作格式”变成带 mask 的统一张量接口，再用渐进式训练先学会语言到动作的 decompression，最后用视觉和闭环 reward 补齐 grounding 与执行能力。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;用 Qwen3.5-4B 与单一 DiT flow-matching action expert，统一 manipulation、VLN、egocentric action 和 trajectory-centric supervision。&lt;/li&gt;
&lt;li&gt;用 embodiment-aware prompt 描述平台、单双臂、控制频率和 prediction horizon，使同一套权重跨机器人工作。&lt;/li&gt;
&lt;li&gt;构建包含机器人轨迹、人类第一视角、合成仿真、导航和辅助 VL 数据的联合预训练配方。&lt;/li&gt;
&lt;li&gt;提出 T2A → CPT → SFT → RL 的四阶段 recipe，缓解预训练 VLM 与随机初始化 action decoder 的优化不对称。&lt;/li&gt;
&lt;li&gt;在仿真、真实 ALOHA、静态 OOD、动态 DOMINO 和 VLN 上验证单一 generalist 与 specialist 的比较关系。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 现有 embodied 模型通常按任务或平台拆分：操作策略输出末端位姿、关节或夹爪动作，导航策略输出 waypoint，人体数据则是手部/身体轨迹。它们在 action dimension、control frequency、horizon 和观测形式上都不同，导致每换一个平台就要重做输出头与训练管线。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 论文抓住了一个更底层的共同结构：智能体都要把语言 grounding 到视觉场景，再输出一段与物理约束相容的连续轨迹。Qwen-VLA 的统一性因此发生在“条件序列预测接口”层，而不是声称不同平台拥有相同的物理 action semantics。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在时刻 $t$，模型接收视觉上下文 $o_t$、任务指令 $x$、embodiment 描述 $e$ 和可选 task id $z$，预测 horizon $H$ 内的目标序列：&lt;/p&gt;
&lt;p&gt;$$
p_\theta(y_{t:t+H-1}\mid o_t,x,e,z).
$$&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Input&lt;/strong&gt;：单帧/多帧图像、视频窗口或历史观测，外加语言指令与 embodiment prompt。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Output&lt;/strong&gt;：操作动作、VLN waypoint、人类 wrist/hand motion，或其他连续 trajectory。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Action interface&lt;/strong&gt;：目标张量 $\mathbf{Y}\in\mathbb{R}^{H\times K}$。某种控制模式只占前 $c$ 个 channel，其余 $K-c$ 维 zero-padding，并由 mask $\mathbf M$ 排除梯度。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Robot / embodiment&lt;/strong&gt;：论文覆盖单臂、双臂、带腰部/移动底盘的平台，以及 ALOHA、WidowX、GR1 等评测平台。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;导航表示&lt;/strong&gt;：每个 waypoint 使用 $(\Delta x,\Delta y,\Delta\theta)$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;人类 egocentric 表示&lt;/strong&gt;：每只手 6 维相对 wrist SE(3)（平移 + axis-angle）和 10 维 eigengrasp，共 32 维/时刻。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这一定义允许不同数据集保留原生控制约定；统一的是 tensor、mask 和条件方式，而不是把关节角、waypoint 与手部 PCA 系数强行解释成同一种物理量。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-qwen-vla/architecture-crop.wjao5wbfq.webp&quot; alt=&quot;Qwen-VLA 的 Qwen3.5 VLM、DiT action expert 与四阶段训练配方（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Qwen3.5 的视觉 token 与文本 token 在 backbone 内早期融合；DiT action expert 将 VLM hidden states 与 noisy action chunk 拼接，在 joint self-attention 中用 AdaLN 注入 timestep，再通过 flow matching 生成连续动作。数据流可概括为：&lt;code&gt;images + embodiment prompt + instruction → Qwen3.5 hidden states → DiT denoising / Euler integration → action or trajectory chunk&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; README 明确给出 Qwen3.5-4B backbone、1.15B DiT decoder；仓库没有对应的 Python 模块可供逐文件核验。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;Vision-language backbone&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Qwen3.5 是 natively multimodal VLM：ViT 产生的视觉 token 与文本流交错输入 Transformer。它负责 referential grounding、空间关系和多步指令理解；hybrid attention 让长上下文处理成本可控。&lt;/p&gt;
&lt;h4&gt;DiT flow-matching action expert&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; action expert 约 1.15B 参数，主体为 16 个 DiT block。输入是 VLM hidden states、带噪动作 chunk 与 timestep embedding；AdaLN 调制每个 block，multi-section RoPE 对齐 backbone 的序列分段。推理从噪声出发，用少量 Euler steps 积分到干净动作，因此输出的是一整段连续轨迹而非离散 token。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; DiT 的职责是“高频、连续、可能多模态的 motor generation”，VLM 的职责是“语义与视觉压缩”。解耦使 VLM 不必直接回归高维动作，也让 action decoder 可以在不改 backbone 的情况下适应不同控制 convention。&lt;/p&gt;
&lt;h4&gt;Embodiment-aware prompt conditioning&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 每条样本前置类似下面的文字：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;The robot is {robot_tag} with {single arm / dual arms}[, waist][, and mobile base].
The control frequency is {FPS} Hz.
Please predict the next {chunk_size} control actions to execute the following task: {instruction}.
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;prompt 同时说明平台、臂配置、FPS 和 chunk size；VLN 样本则说明 waypoint convention。它是平台特定信息的唯一接口，不需要 per-platform output head。&lt;/p&gt;
&lt;h4&gt;Unified action tensor and masking&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 所有控制目标都整理成 $H\times K$ 张量。若某 embodiment 只有 $c$ 个有效 channel，则目标放在前 $c$ 维，其余位置补零；$M_{h,k}=1$ 只表示有效时间步和 channel。这样共享 DiT 的参数量不随平台数量线性增加，padding 也不会污染 loss。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;Flow matching&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 给定干净目标 $\mathbf Y_0$ 和噪声 $\mathbf Y_1\sim\mathcal N(0,I)$，采样 $\tau\in[0,1]$ 并构造：&lt;/p&gt;
&lt;p&gt;$$
\mathbf Y_\tau=(1-\tau)\mathbf Y_0+\tau\mathbf Y_1.
$$&lt;/p&gt;
&lt;p&gt;模型 $v_\theta$ 预测速度场 $\mathbf Y_1-\mathbf Y_0$。对每个有效 channel 先在时间维做 MSE，再对 active channels 平均：&lt;/p&gt;
&lt;p&gt;$$
\ell_k=\frac{\sum_h M_{h,k}\lVert v_\theta(\mathbf Y_\tau,\tau\mid o,x,e,z)&lt;em&gt;{h,k}-(\mathbf Y_1-\mathbf Y_0)&lt;/em&gt;{h,k}\rVert_2^2}{\sum_h M_{h,k}},
\qquad
\mathcal L_{act}=\mathbb E\left[\frac1c\sum_{k=0}^{c-1}\ell_k\right].
$$&lt;/p&gt;
&lt;p&gt;这里 $M$ 防止 padding 主导梯度，$c$ 保证 7-DoF 和 29-DoF 平台的 channel 获得相近权重。推理时从 $\tau=1$ 的噪声向 $\tau=0$ 做少量 Euler integration。&lt;/p&gt;
&lt;h4&gt;联合 VL + action objective&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 辅助 VL 数据使用 next-token loss：&lt;/p&gt;
&lt;p&gt;$$
\mathcal L_{vl}=-\sum_i\log p_\theta(w_i\mid w_{&amp;#x3C;i},o_{1:t}),\qquad
\mathcal L=\lambda_{act}\mathcal L_{act}+\lambda_{vl}\mathcal L_{vl}.
$$&lt;/p&gt;
&lt;p&gt;VL loss 的作用不是生成动作，而是在重型 embodied co-training 中保持视觉理解、空间 grounding 和语言能力，降低 catastrophic forgetting。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 训练数据按比例混合：机器人操作 74.2%、人类 egocentric 6.0%、导航 7.5%、合成仿真 3.7%、通用 VL 3.4%、2D spatial grounding 2.5%、自动驾驶 VQA 2.4%、fine-grained action caption 0.2%。&lt;/p&gt;
&lt;p&gt;四个阶段各自关闭一个优化缺口：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;T2A&lt;/strong&gt;：冻结 VLM，只训练 DiT；不给图像，先学习由语言和 embodiment prompt 决定的 action prior。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CPT&lt;/strong&gt;：解冻 VLM 与 DiT，用异构视觉-动作数据把语言先验 grounding 到真实图像。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SFT&lt;/strong&gt;：从 CPT 分出 multi-task 与 real-robot 两条分支，联合优化 VL token 和 action flow matching。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;RL&lt;/strong&gt;：从 multi-task SFT 出发，在 SimplerEnv 用 sparse binary success reward 做 PPO，得到 Qwen-VLA-Instruct。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; SFT 中 VL next-token loss 权重为 0.1，manipulation 与 navigation action loss 权重为 1.0。RL 使用 GAE（$\gamma=0.99,\lambda=0.95$）、PPO clip $\epsilon=0.2$，value coefficient 为 1；每个 action chunk（默认 $H=16$）获得一个 advantage。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 推理时给定当前图像、指令与 embodiment prompt，从高斯噪声动作 chunk 开始，执行若干 Euler steps 的 flow integration，输出 horizon 内的连续动作。操作任务使用动作 chunk，VLN 使用 sliding-window waypoint；评测时 RL 模型将采样 temperature 从 1.0 降到 0.6。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 与 autoregressive action token 不同，flow matching 没有直接的 softmax log-probability；论文为 PPO 将每个 Euler denoising transition 转成显式 Gaussian SDE，从而能计算 chunk-level log probability。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;QwenLM/Qwen-VLA&lt;/code&gt; 的公开内容包括 README、&lt;code&gt;assets/qwenvla_overview.png&lt;/code&gt; 和 demo 链接。README 明确确认：模型由 Qwen3.5-4B 与 1.15B DiT 组成，支持 manipulation、navigation 与 trajectory prediction，并给出 LIBERO、ALOHA、DOMINO 等结果。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 仓库没有公开 &lt;code&gt;model.py&lt;/code&gt;、训练配置、数据加载、loss 或 inference 脚本，因此无法从代码确认论文中的 channel mask、PPO log-probability 或 checkpoint 目录结构。博客中这些细节均标为 &lt;strong&gt;【Paper】&lt;/strong&gt;，而不是“官方代码实现”。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 实验覆盖四类问题：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Manipulation&lt;/strong&gt;：LIBERO、Simpler-WidowX、RoboCasa-GR1、RoboTwin 2.0，含单臂、双臂与 humanoid 平台。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Real-world&lt;/strong&gt;：ALOHA 双臂、三路 RGB 相机；六类 in-domain 任务包括 pick-and-place、table cleaning、bowl stacking、bowl pick &amp;#x26; place、towel folding、fine-grained manipulation。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Navigation&lt;/strong&gt;：VLN-CE 的 R2R 与 RxR Val-Unseen。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;OOD&lt;/strong&gt;：SimplerEnv-OOD、DOMINO 动态操作，以及 ALOHA 的 color、instance、position、background、instruction shift。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-qwen-vla/task-overview.wjao5wbnd.webp&quot; alt=&quot;ALOHA 真实评测的六类任务与五种 OOD 变化（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;| Benchmark                 | Qwen-VLA-Base | Qwen-VLA-Instruct |
| ------------------------- | ------------: | ----------------: |
| LIBERO                    |          90.8 |          &lt;strong&gt;97.9&lt;/strong&gt; |
| Simpler-WidowX            |          64.3 |          &lt;strong&gt;73.7&lt;/strong&gt; |
| RoboTwin Easy / Hard      |   64.3 / 66.4 |   &lt;strong&gt;86.1 / 87.2&lt;/strong&gt; |
| R2R OS / SR               |   61.7 / 53.8 |   &lt;strong&gt;69.0 / 57.5&lt;/strong&gt; |
| RxR SR / SPL              |   55.1 / 45.8 |   &lt;strong&gt;59.6 / 47.8&lt;/strong&gt; |
| SimplerEnv-OOD average SR |          25.3 |          &lt;strong&gt;32.0&lt;/strong&gt; |
| DOMINO zero-shot SR / MS  |   21.1 / 37.4 |   &lt;strong&gt;26.6 / 39.5&lt;/strong&gt; |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在真实 ALOHA，使用 Qwen-VLA-Base 预训练后再适配的模型平均 in-domain SR 为 83.6%，从头训练同架构模型只有 48.5%。五种 OOD 的平均 SR 为 76.9%，高于无预训练的 36.2% 和 $\pi_{0.5}$ 的 41.5%；其中 background 与 instruction generalization 分别为 80.8% 和 84.6%。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这组对照把“架构收益”和“预训练收益”分开了：两种 ALOHA 模型架构相同，主要差异来自 Qwen-VLA-Base 的跨任务初始化，而非简单增加参数。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-qwen-vla/t2a-ablation.70b2qlz0gu.webp&quot; alt=&quot;T2A 数据比例、timestep 分布和训练时长消融（论文补充实验图）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; T2A 的最佳设置是 20% synthetic + 80% real（且 real 不看图像），SFT success 达到 71.1%；完全 real 只有 51.0%，完全 synthetic 为 64.0% 左右。T2A 使用 Sig-Norm timestep 分布时比 Beta 分布更好，且训练过久（约 40× data passes）会从稳定区间跌落。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-qwen-vla/vl-ablation.2ksnlcmm67.webp&quot; alt=&quot;VL co-training 与预训练 DiT 收敛速度消融（论文 Figure 5）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 混入 VL 数据在 LIBERO、Simpler 上几乎不损害动作性能，但在需要细粒度识别与组合指令的 RoboCasa-GR1 上提升 4.9 个百分点（51.1 → 56.0），RoboTwin 2.0 提升 4.6 个百分点（81.8 → 86.4）。预训练 DiT 相比随机初始化收敛更快且峰值更高。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; projection ablation 中 Multi-MLP、Concatenation 与 Zero-Padding 的性能差异小于 1.2 个百分点；Zero-Padding 参数更省，因此作为默认方案。RL 的累积消融显示，CPT → SFT → RL 在 Simpler 上为 64.3 → 70.8 → 73.7，在 DOMINO SR 上为 21.1 → 25.7 → 26.6；RL 没有破坏未参与 rollout 的 benchmark。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; DOMINO 包含 35 个动态操作 suite。Qwen-VLA-Instruct 在 zero-shot 条件下 SR 26.6%、MS 39.5，超过需要动态数据微调的 PUMA（SR 17.2%）以及 LingBot-VA（SR 24.1%）。模型只看 current-frame observation，没有使用 DOMINO 专门的动态操作训练。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这不是“模型理解了完整世界动力学”的证据；更谨慎的解释是，跨数据源的 spatial grounding、连续 action prior 与 action chunking 共同提供了可迁移的 spatial-to-kinematic prior。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 有三层原因：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;语义压缩 → 动作解压缩&lt;/strong&gt;：T2A 先让 DiT 学会“语言/平台描述对应什么动作分布”，CPT 才需要学习视觉 grounding。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;连续生成与离散理解分工&lt;/strong&gt;：VLM 负责“看懂和说清楚”，flow-matching DiT 负责高维连续控制，避免把动作粗暴离散化。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;数据互补&lt;/strong&gt;：机器人轨迹提供可执行信号，人类视频提供开放世界 manipulation prior，VL/VLN 数据补充空间语言与长时程导航。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 真正的新意是把 embodiment prompt、masked unified action tensor 和 progressive recipe 组合成一个跨任务接口。单独看 DiT、flow matching 或 prompt conditioning 都不是首次出现；论文的贡献在于证明它们能在一个 generalist 中协同工作。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;| 维度     | Specialist VLA                   | Qwen-VLA                               |
| -------- | -------------------------------- | -------------------------------------- |
| 输出头   | 每个平台/benchmark 常有独立 head | 一个 DiT，通过 prompt + mask 适配      |
| 训练     | 单任务 imitation 或窄域微调      | T2A、CPT、SFT、RL 四阶段               |
| 数据     | 机器人轨迹为主                   | 机器人、人类、仿真、VLN、VL 混合       |
| 泛化目标 | 同一平台内变化                   | 任务、环境和 robot embodiment 同时变化 |&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 方法依赖以下假设：控制信号可以整理为固定 $H\times K$ 张量；平台差异足以由自然语言 prompt 表达；不同数据集的动作可通过归一化与 mask 共享 DiT latent space；少量 Euler steps 足以在实时约束下恢复动作 chunk。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这些假设在论文评测的平台范围内成立，但并不自动覆盖接触力、柔顺控制、异步传感器或强闭环状态估计。prompt 是接口，不是动力学模型；如果两个平台的同一文字描述仍对应完全不同的安全约束，单靠 prompt 可能不够。&lt;/p&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文将统一 formulation 的后续方向指向 episodic memory / persistent state，以及动作与未来视觉状态的 co-prediction；这说明当前版本并未完整解决长时程记忆、failure recovery 或 world modeling。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; RL rollout 主要来自 SimplerEnv，真实机器人分支是单独的 ALOHA 适配；因此论文并没有证明“一次训练后无需任何真实数据即可部署到所有真实 embodiment”。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 官方仓库没有公开训练代码、数据配方实现或 checkpoint，社区难以复现实验、审计采样比例，也无法验证论文中 PPO 的 flow-matching log-probability 工程细节。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; DOMINO zero-shot SR 虽高于基线，但绝对成功率仍为 26.6%；“能跨域”与“能稳定完成动态任务”之间还有明显距离。另一个风险是 $K$ 取决于最大 action dimension，padding 与 per-channel averaging 在加入更多形态后可能增加无效计算。&lt;/p&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; Qwen-VLA 给出的重要研究路线不是继续堆更大的 action head，而是把 embodied learning 拆成可验证的接口：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;用文本明确写出 embodiment、频率和 horizon，让跨平台迁移首先成为条件建模问题。&lt;/li&gt;
&lt;li&gt;用 T2A 等预训练把 action decoder 的“生成先验”与视觉 grounding 解耦，减少随机 decoder 破坏 VLM 的风险。&lt;/li&gt;
&lt;li&gt;在保留 VL loss 的同时加入动作监督，避免为了控制能力牺牲空间语言能力。&lt;/li&gt;
&lt;li&gt;将 RL 的粒度对齐到 action chunk，而不是把连续 denoising 误当作 token policy。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 后续值得验证的问题包括：prompt 是否能表达安全约束与力控语义；统一 DiT 是否能处理跨频率、异步多相机和触觉；memory/world-state 是否能把当前的 reactive policy 变成可恢复的长时程 agent；以及公开代码后，T2A 的数据构成和 RL transfer 是否能被独立复现。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/86800103_p0_master1200.4qrwyrtj6a.webp"/><enclosure url="https://pic.hana0721.top/86800103_p0_master1200.4qrwyrtj6a.webp"/></item><item><title>π₀.₇ 论文精读：用多模态提示把机器人基础模型变成可操控的通才</title><link>https://agusexp25.top/blog/paper-deep-dive-pi07</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-pi07</guid><description>精读 Physical Intelligence 的 π₀.₇：多模态 context、混合质量数据、子目标图像与异步 flow policy 如何带来灵巧、跨形态和组合泛化。</description><pubDate>Tue, 25 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;论文名称&lt;/strong&gt;：《π₀.₇: a Steerable Generalist Robotic Foundation Model with Emergent Capabilities》&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;作者&lt;/strong&gt;：Physical Intelligence、Bo Ai、Ali Amin、Kevin Black、Danny Driess、Chelsea Finn、Karol Hausman、Sergey Levine、Karl Pertsch、Allen Z. Ren、Lucy Xiaoyang Shi、Marcel Torne、Quan Vuong、XuDong Wang、Charles Xu 等 88 位作者&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;机构&lt;/strong&gt;：Physical Intelligence&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;论文链接&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2604.15483&quot;&gt;arXiv 2604.15483&lt;/a&gt;；&lt;a href=&quot;https://www.pi.website/blog/pi07&quot;&gt;项目主页&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; π₀.₇ 是一个约 5B 参数的 Vision-Language-Action（VLA）模型。它在 Gemma 3 4B VLM 与 860M flow-matching action expert 之上，把“做什么”和“怎么做”都写入 prompt：除了任务语言，还加入下一子任务、未来子目标图像、速度/质量/错误等 episode metadata，以及 joint/EE control mode。这样模型可以从多机器人示范、失败数据、自主 rollout、开源数据和人类视频中学习，并在未见环境、未见 embodiment 和组合任务上被直接提示或语言 coaching。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-pi07/fig1.8l0tq2xq2f.webp&quot; alt=&quot;π₀.₇ 的总体思想：用丰富 context 让同一策略组合不同技能（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;把 prompt 从一句任务描述扩展成多模态 context。&lt;/strong&gt; 子任务文字表达语义阶段，subgoal images 表达“接下来世界应该长什么样”，metadata 表达轨迹质量、速度和错误模式。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;提出一套能吸收混合质量数据的训练 recipe。&lt;/strong&gt; 通过 metadata 把高质量轨迹、失败轨迹和自主数据中的不同模式区分开，而不是简单平均它们的动作。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;在一个通才模型中获得 specialist-level dexterity。&lt;/strong&gt; 论文报告 π₀.₇ 在 espresso、box building、laundry folding、切菜、削皮和换垃圾袋等任务上，可直接达到或接近任务专用 RL/SFT specialist 的性能。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;展示多种 emergent capability。&lt;/strong&gt; 包括 zero-shot cross-embodiment laundry transfer、复杂语言跟随、短时程组合泛化，以及只用语言 coaching 学会全新的长时程任务。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;把 coaching 数据提升为高层策略。&lt;/strong&gt; 低层动作无需重新 teleoperate；只需把人类逐步指令记录下来，训练 high-level policy 自动产生下一条 subtask instruction。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 机器人基础模型的困难不只是数据量不足，而是轨迹之间存在大量“模式差异”：不同机器人、相机和控制空间会改变动作；同一个任务也可能有快慢不同、质量不同、甚至失败的执行方式。若把这些轨迹只配一条粗粒度语言标签，行为克隆会倾向于把多种模式平均成一个不够好的动作。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; π₀、π₀.５、π₀.６ 等前代模型已经证明预训练 VLM + flow/diffusion action expert 能够兼顾语义与连续动作。π₀.７ 延续这条架构路线，并吸收 π₀.６-MEM 的视频历史编码器、π₀.５ 的高层语义子任务，以及 goal-image conditioning 的研究。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这篇工作和“再加一个更大的 VLM”不同。它的中心问题是：当数据的质量、策略和 embodiment 都不一致时，模型能否通过额外 context 选择正确的行为模式。换句话说，模型学习的不是单一平均 policy，而是一个可被 prompt steer 的 policy family。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在时间步 $t$，观测由多视角图像和本体状态组成：&lt;/p&gt;
&lt;p&gt;$$
\mathbf{o}_t = [\mathbf{I}_t^1, \ldots, \mathbf{I}_t^n, \mathbf{q}_t],
$$&lt;/p&gt;
&lt;p&gt;其中 $\mathbf{I}_t^i$ 是相机图像，$\mathbf{q}_t$ 是关节或本体状态。策略接收最近 $T$ 个观测，并输出未来 $H$ 步动作 chunk：&lt;/p&gt;
&lt;p&gt;$$
\mathbf{a}&lt;em&gt;{t:t+H} \sim \pi&lt;/em&gt;\theta(\mathbf{a}&lt;em&gt;{t:t+H}\mid \mathbf{o}&lt;/em&gt;{t-T:t}, \mathcal{C}_t).
$$&lt;/p&gt;
&lt;p&gt;这里的关键变量是 context：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Task instruction $\ell_t$&lt;/strong&gt;：完整任务，例如 &lt;code&gt;fold the shirt&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Subtask instruction $\hat{\ell}_t$&lt;/strong&gt;：当前阶段，例如 &lt;code&gt;grasp the left corner&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Subgoal images $\mathbf{g}_t$&lt;/strong&gt;：每个相机对应的近未来目标图像。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Episode metadata $m$&lt;/strong&gt;：速度 bin、质量评分、当前 segment 是否有 mistake。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Control mode $c$&lt;/strong&gt;：&lt;code&gt;joint&lt;/code&gt; 或 &lt;code&gt;ee&lt;/code&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 与普通 VLA 的差别可写成：普通模型近似 $\pi(a\mid o,\ell)$，而 π₀.₇ 学习的是 $\pi(a\mid o,\ell,\hat{\ell},g,m,c)$，并在训练时随机丢弃其中部分条件，使同一个 checkpoint 能在不同信息预算下运行。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-pi07/model_architecture.5j4xouwego.webp&quot; alt=&quot;π₀.₇ 的 5B 架构：Gemma3 VLM、MEM history encoder、action expert 与 world model（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; π₀.₇ 由约 4B 参数 VLM backbone、MEM-style history vision encoder 和 860M 参数 flow-matching action expert 组成，总规模约 5B。运行时，high-level policy 生成子任务文字，BAGEL 初始化的 lightweight world model 生成 subgoal images，低层 VLA 再根据最新观测和 context 输出 50-step action chunk。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 信息流的核心是“语义、视觉目标、本体状态先进入 VLM；连续动作由 action expert 读取 VLM activation 后生成”。因此新增的 context 不需要改变 action space，而是改变 action expert 所看到的条件分布。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;多视角历史视觉编码器&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 模型最多接收 front、左右 wrist 和可选 rear 四路相机，每路最多六帧历史。历史帧以 1 秒 stride 采样，经 temporal/spatial compression 后被压缩成与单帧相近数量的 token；历史整体以 0.3 概率 dropout，rear view 也以 0.3 概率 dropout。图像和 subgoal 统一 resize 到 $448\times448$，proprioception 则用线性投影映射到 backbone 维度，每个历史状态是一个 token。&lt;/p&gt;
&lt;h4&gt;Subtask instruction&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 高层文字把长任务拆成当前语义阶段。它可以来自 high-level language policy，也可以来自 human coach，还可以被省略。由于模型训练时见过不断变化的子任务文字，它能够在未见任务中按步骤接受“先拿起甜薯，再打开空气炸锅”式指令。&lt;/p&gt;
&lt;h4&gt;Subgoal image 与 world model&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; subgoal image 描绘当前动作成功后不久的场景状态。多视角目标同时约束环境/物体和机械臂/夹爪，弥补“open the fridge door”没有说明抓取位置的问题。目标由一个以 BAGEL 14B 初始化的 world model 生成；该模型使用机器人片段、egocentric human video、web image/video 数据训练，目标是把非机器人数据中的语义和物理先验转移给 π₀.₇。&lt;/p&gt;
&lt;h4&gt;Episode metadata&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; metadata 包含三类主要信号：将 episode 长度按 500 steps 分箱的 overall speed；1–5 的 overall quality；以及当前 action segment 是否发生 mistake。训练中这些字段由速度计算或人工粗标。推理时通常把 quality 设为 5、mistake 设为 false、speed 设为该任务 episode length 的第 15 百分位，从而请求“快、质量高、无错误”的模式。&lt;/p&gt;
&lt;h4&gt;Flow-matching action expert&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; action expert 是 860M 参数 transformer，使用 adaptive RMSNorm 注入 flow timestep，固定处理 50 个 action tokens，对应 50 步 action chunk。50 个 action token 彼此双向注意，并读取 VLM backbone activations；训练目标是 continuous action 的 flow matching，而不是把动作离散成文本 token。&lt;/p&gt;
&lt;h4&gt;Prompt dropout 与控制模式&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-pi07/prompts_v4.54yhxzo3tc.webp&quot; alt=&quot;π₀.₇ prompt 的组成：子任务、子目标图像、速度/质量/错误 metadata 可以灵活组合（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 每个 prompt 组成在训练时独立 dropout：subgoal image 只出现在 25% batch 样本中；有 subgoal 时，subtask text 以 30% 概率丢弃；metadata 整体以 15% 概率丢弃，speed、quality、mistake 还各自以 5% 概率丢弃；control mode 不丢弃。这让测试时可以只用语言，也可以组合语言、目标图像和 metadata。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;VLA 目标&lt;/h4&gt;
&lt;p&gt;$$
\max_\theta;\mathbb{E}&lt;em&gt;{\mathcal{D}}
\left[\log \pi&lt;/em&gt;\theta(\mathbf{a}&lt;em&gt;{t:t+H}
\mid \mathbf{o}&lt;/em&gt;{t-T:t},\mathcal{C}_t)\right].
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; $\mathcal{D}$ 是混合来源轨迹，$\mathcal{C}_t$ 是完整 context。严格地说，flow-matching action expert 优化的是 log-likelihood 的近似下界；公式表达的重点是动作必须依赖观测和可操控的 context，而不是只依赖粗任务名。&lt;/p&gt;
&lt;h4&gt;World model 目标&lt;/h4&gt;
&lt;p&gt;$$
\max_\psi;\mathbb{E}_{\mathcal{D}&lt;em&gt;g}
\left[\mathcal{L}&lt;/em&gt;{\mathrm{CFM}}\big(\mathbf{g}^{\star}&lt;em&gt;t,
g&lt;/em&gt;\psi(\mathbf{o}_t,\hat{\ell}_t,m)\big)\right].
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; $\mathbf{g}^{\star}&lt;em&gt;t$ 是 segment 末端的真实未来图像，$g&lt;/em&gt;\psi$ 根据当前观测、子任务和 metadata 生成目标，$\mathcal{L}_{\mathrm{CFM}}$ 是 flow matching loss。world model 的作用不是直接输出动作，而是生成更容易被低层 policy 使用的视觉中间目标。&lt;/p&gt;
&lt;h4&gt;Classifier-free guidance&lt;/h4&gt;
&lt;p&gt;$$
\nabla_a\log\pi_\theta(a\mid o,C_t)
+\beta\left(\nabla_a\log\pi_\theta(a\mid o,C_t)
-\nabla_a\log\pi_\theta(a\mid o,C_t^{\mathrm{uncond}})\right).
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; $C_t^{\mathrm{uncond}}$ 是去掉指定条件的 prompt，$\beta\in{1.3,1.7,2.2}$ 是 guidance weight。论文主要用 metadata CFG 来偏向高质量、高灵巧行为；这相当于在同一个 policy family 中选择更合适的 mode。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 训练数据包括多机器人 demonstration、policy evaluation 的 autonomous rollouts、人类 intervention、开源 robot dataset、egocentric human video，以及 web 上的定位、属性预测、VQA、文本和 video captioning 数据。作者明确排除 generalization evaluation 任务产生的 autonomous data，避免把测试任务泄漏回训练集。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 一个重要 recipe 是保留 failure 和 suboptimal trajectories。metadata 让模型知道这些轨迹“快不快、质量高不高、这段是否出错”，因此它可以在训练时吸收状态覆盖和策略多样性，在推理时请求高质量模式。训练同时模拟 0–12 timesteps 的延迟，对应 50 Hz 机器人最多约 240 ms inference latency，并采用 training-time Real-Time Chunking（RTC）。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 推理时每个任务至少提供 control mode 和 metadata。subtask instruction 来自 high-level policy 或人工 coach；若启用 goal conditioning，world model 在子任务变化或每 4 秒刷新一次多视角 subgoal。world model 和 VLA 在独立线程异步运行，低层策略始终使用当前可用的最新目标。&lt;/p&gt;
&lt;p&gt;每次 VLA inference 生成 50-step action chunk，实际执行其中 $\hat H\in{15,25}$ 步；使用 5 个 denoising steps。最小 π₀.₇ 变体在单张 H100 上约 38 ms，启用 MEM 历史和 subgoal 后最坏约 127 ms；world model 用 4 张 H100、25 denoising steps 约 1.25 s，并异步生成。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 截至本文写作，论文和 Physical Intelligence 项目页没有公开 π₀.₇ 的官方 GitHub 代码、训练配置或 checkpoint；公开的是项目介绍和实验视频。因此无法对 model definition、DataLoader、optimizer、checkpoint 或真实 inference implementation 做逐文件核对。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 可以核对的实现级细节仅来自论文：Gemma3 4B backbone、860M action expert、50 action tokens、5 denoising steps、0–12 timestep RTC delay、subgoal 每 4 秒刷新，以及 H100 上的延迟测量。不要把前代 &lt;code&gt;openpi&lt;/code&gt; 代码当作 π₀.₇ 的实现；两者的 prompt、MEM、world model 和数据配方并不等价。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-pi07/pi07robots_v5.8dxlunblru.webp&quot; alt=&quot;π₀.₇ 评测中的机器人形态：移动双臂、静态双臂、双臂 UR5e 与单臂机器人（论文 Figure 4）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 评测覆盖双臂移动机器人、轻量静态双臂 BiPi、双臂 UR5e 和单臂 6 DoF 机器人。大多数机器人以 50 Hz 运行，UR5e 以 20 Hz 运行；每台机器人有 front camera 和左右 wrist cameras，移动平台额外有 rear camera。输出通过简单 PD controller 执行，EE action 需要数值 inverse kinematics 转成 joint target。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 实验分为四类：out-of-the-box dexterity、novel-environment instruction following、zero-shot cross-embodiment transfer，以及 compositional task generalization；最后用 mixed-quality 和 task-diversity ablation 分析数据与 context 的交互。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在 espresso、box building、T-shirt/shorts folding、peanut-butter sandwich、shirt inside-out、切 zucchini、削果蔬和换垃圾袋等任务上，同一个 π₀.₇ checkpoint 直接运行即可接近或超过任务专用 RL/SFT specialist。对于 diverse laundry 和 box building，论文还报告 π₀.₇ 的 throughput 高于 RL specialist。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在 14 个 instruction-following 场景中，测试环境包括 4 个未见 kitchen 和 2 个未见 bedroom，每个场景需要完成 3–6 步开放式指令。π₀.₇ 相比 π₀.５ 与 π₀.６ 在复杂 referential instruction 和违反数据集偏置的 Reverse Bussing、Reverse Fridge-to-Microwave 上有明显提升；生成 subgoal images 对后者尤其关键。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-pi07/generalization_and_conditioning.7zr63s3csf.webp&quot; alt=&quot;多样 context 与数据规模的消融：metadata 使混合质量数据可扩展，task diversity 提升组合泛化（论文 Figure 18）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 对照 &lt;code&gt;π₀.₇ (no metadata)&lt;/code&gt; 和 &lt;code&gt;π₀.₇ (no eval data)&lt;/code&gt; 的结果显示：metadata 和 autonomous evaluation data 都重要，尤其影响 throughput。没有 metadata 时，模型难以区分 specialist rollout、失败片段和一般示范，加入更多混合质量数据反而可能退化。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在 laundry 数据上，作者按质量/速度保留 top 30%、50%、80% 或全部数据，并分别训练带/不带 metadata 的模型。带 metadata 的模型随着数据增多持续提升，即使平均质量下降；不带 metadata 的模型则可能下降。在 task-diversity ablation 中，移除最具任务多样性的 20% 数据比随机移除 20% 更差，说明多样性本身被转化成了未见任务的泛化能力。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-pi07/cross_embodiment.lwgv0ioib.webp&quot; alt=&quot;π₀.₇ 在 UR5e 上折叠衣物的零样本跨形态迁移（论文 Figure 12/13）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 训练数据没有包含双臂 UR5e 的 laundry folding，但 π₀.₇ 能在 UR5e 上折叠 T-shirt 和 towel。10 位有平均 375 小时 teleoperation 经验的专家首次操作该 embodiment 时，human 的 task progress 为 90.9%、success rate 为 80.6%；π₀.₇ 为 85.6% 和 80%，接近专家水平。策略没有机械复制源机器人动作，而是学会针对 UR5e 的形态和工作空间改变抓取策略。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 对组合泛化，π₀.₇ 能直接完成按压 french press、把米舀入 rice cooker、用布擦耳机/尺子、旋转风扇和齿轮等短时程新任务。对于最多约 5 分钟的 air fryer、unloading air fryer 和 toasting bagel，它先由人类语言逐步 coaching，再用 coaching episode 训练 high-level policy；五个任务的 autonomous policy 表现大致匹配 live coaching，而不需要新增低层 teleoperation action data。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 第一，metadata 把“同一任务的多种行为模式”变成可条件化的监督信号。模型不必把快而稳的动作和慢而错的动作平均，而是可以在推理时请求 quality=5、mistake=false 的模式。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 第二，subgoal image 把语言难以表达的几何约束变成视觉条件。对“打开门”“折叠衣服”这类动作，目标图像同时约束物体状态和夹爪状态，使 action expert 更接近 inverse dynamics。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 第三，多样数据的价值被 context 解锁。人类视频带来物理先验，自主失败带来状态覆盖，RL specialist rollout 带来高性能片段；prompt 负责告诉模型这些片段应如何解释。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文最重要的创新是 diverse context conditioning，而非新的 transformer block。它把 prompt expansion 的思想从图像生成迁移到机器人控制，并把文本、图像和质量 metadata 统一放进 policy context。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 更准确地说，π₀.₇ 的贡献是训练接口和数据配方的创新：它让一个 VLA 学习“可组合的行为条件”，再通过 CFG、coaching 和 high-level policy 将这些条件暴露给用户。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;| 维度          | 传统 VLA                   | π₀.₇                                                |
| ------------- | -------------------------- | --------------------------------------------------- |
| Prompt        | 通常只有任务语言           | 任务、子任务、subgoal image、metadata、control mode |
| 数据          | 偏好过滤后的高质量示范     | 示范、失败、自主 rollout、人类视频和 web 数据       |
| 多模态目标    | 主要是当前观测             | 当前观测 + 未来近状态图像                           |
| 新任务        | 常需动作数据或 fine-tuning | 短任务直接 prompt，长任务可 language coaching       |
| 跨 embodiment | 依赖对齐或专门数据         | 通过多形态训练和目标图像产生 zero-shot transfer     |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 因而它不是“更大的单一 policy”，而是一个可以通过 context 选择子策略的 policy family。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 方法隐含了几个关键假设：episode quality、speed 和 mistake 可以被可靠标注；未来图像足以表达当前动作的局部目标；不同 embodiment 的数据共享可迁移的视觉和操作概念；大规模数据中的技能能够被模型重新组合。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这些假设对数据工程要求很高。metadata 若粗糙或不一致，模型可能学到错误的 shortcut；world model 若产生不真实的目标，视觉条件反而会误导 action expert；控制 mode 也不能解决所有动力学和夹爪差异。&lt;/p&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; π₀.₇ 在 zero-shot unseen task 或 unseen task-robot combination 上的成功率通常为 60–80%，低于 in-distribution 任务超过 90% 的成功率。作者建议未来利用它的 steerability，通过更详细 language coaching 或 autonomous RL 高效适应测试任务。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 由于训练集极其多样，严格判断一个评测任务是否 truly unseen 很困难。相关技能可能以不同标签、不同场景或另一个任务的子步骤出现在训练数据中，因此论文把结果称为 compositional generalization 的强迹象，而不是绝对的数据隔离证明。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 第一，world model 推理成本很高：4×H100、约 1.25 秒一次目标生成，意味着部署需要异步缓存和昂贵硬件。第二，5B VLA 加 14B world model 的系统复杂度远高于单模型 policy，复现门槛也被公开代码缺失进一步提高。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 第三，quality=5、mistake=false 这类测试 prompt 是人工选择的目标模式，不等于模型真的理解了任务质量；不同任务的“最快可行速度”也未必由第 15 百分位 episode length 充分描述。第四，论文没有公开完整数据规模、采样权重和训练超参，因此很难判断性能增益来自 context 机制、数据量，还是两者的共同作用。&lt;/p&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; π₀.₇ 给 VLA 研究的启发，是把“数据清洗”重新表述为“数据可条件化”。如果每条轨迹都携带策略、质量、阶段和目标状态的上下文，失败数据不再只是噪声，而可能成为覆盖状态空间和学习错误恢复的资源。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 对实际系统而言，最值得借鉴的是三层接口：低层 action expert 负责连续控制，中层 subgoal image/world model 负责把语义变成可执行目标，高层 policy 或人类负责产生子任务。这样的分层允许用语言 coaching 替代昂贵的逐步 teleoperation。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 下一步值得研究的问题包括：如何自动且一致地标注 episode quality；如何校准 world model 的不确定性；能否用小型 latent goal model 取代 14B 图像生成器；以及如何用可验证的 task split 证明是真正的组合泛化，而不是训练数据中的隐式重混。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/70937229_p0_master1200.6bhnz4ob71.webp"/><enclosure url="https://pic.hana0721.top/70937229_p0_master1200.6bhnz4ob71.webp"/></item><item><title>OneTwoVLA 论文精读：让 VLA 在必要时思考、其余时间行动</title><link>https://agusexp25.top/blog/paper-deep-dive-onetwovla</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-onetwovla</guid><description>精读 OneTwoVLA：用统一 VLA、自适应 Reason/Act 决策和 reasoning-centric 数据，提升机器人长程规划、纠错、交互与视觉指代。</description><pubDate>Tue, 25 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;论文名称&lt;/strong&gt;：《OneTwoVLA: A Unified Vision-Language-Action Model with Adaptive Reasoning》&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;作者&lt;/strong&gt;：Fanqi Lin、Ruiqian Nai、Yingdong Hu、Jiacheng You、Junming Zhao、Yang Gao&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;会议&lt;/strong&gt;：ICLR 2026&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;论文 / 代码 / 项目&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2505.11917&quot;&gt;arXiv&lt;/a&gt; · &lt;a href=&quot;https://github.com/Fanqi-Lin/OneTwoVLA&quot;&gt;GitHub&lt;/a&gt; · &lt;a href=&quot;https://one-two-vla.github.io/&quot;&gt;Project Page&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-onetwovla/overview.5q85k4e9qu.webp&quot; alt=&quot;OneTwoVLA 同一模型在关键节点 Reason、其余节点 Act 的总览（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; OneTwoVLA 是一个统一的 Vision-Language-Action（VLA）模型：它不把大模型规划器和低层控制器拆成两个系统，而是在同一模型内自适应选择输出文字推理或 action chunk；同时以 reasoning 标注的机器人数据和 16,000 条合成视觉语言数据共同训练。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;提出统一的 Reasoning–Acting VLA，在每个决策点预测 &lt;code&gt;[BOR]&lt;/code&gt; 或 &lt;code&gt;[BOA]&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;将轨迹划为 reasoning / acting interval，并以场景、计划、历史、下一步构造 embodied reasoning 标注。&lt;/li&gt;
&lt;li&gt;构建“文本布局 → FLUX 图像 → Gemini 指令与推理”的数据流水线，合成 16,000 条样本。&lt;/li&gt;
&lt;li&gt;在真实长程操作、失败恢复、人机交互与视觉 grounding 上验证；长程任务平均成功率为 87%，VL co-training 后开放世界 grounding 为 73%。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Dual-system 方案通常让 VLM/LLM 做慢速高层计划、让 VLA 做低层执行。但规划器未必理解动作 policy 的能力边界，且外部大模型的时延可能使建议过期。Flat VLA 则直接图像/语言到动作，实时却缺少任务进度、失败原因和下一步的显式表征。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 本文不主张每个控制周期都 Chain-of-Thought，而是学习何时更新认知状态：在完成子任务、发现失败或发生人机交互等关键时刻 Reason，其他时间复用最新 reasoning 来 Act。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 关键不在于展示一段可读文字，而在于让文字 $R$ 成为后续动作条件的一部分。它提供闭环重规划接口，又避免把昂贵的自回归文本生成塞进每一帧控制。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 时间 $t$ 的输入为多相机观测 $I_t^{1:n}$、上次 reasoning 时保存的参考图像 $I_{ref}^{1:n}$、语言指令 $\ell$、最近 reasoning content $R$；行动时还输入本体状态 $s_t$：&lt;/p&gt;
&lt;p&gt;$$
\hat R \sim \pi_\theta(\cdot \mid I_t^{1:n}, I_{ref}^{1:n}, \ell, R), \qquad
A_t \sim \pi_\theta(\cdot \mid I_t^{1:n}, I_{ref}^{1:n}, \ell, R, s_t).
$$&lt;/p&gt;
&lt;p&gt;$\hat R$ 是更新后的自然语言状态，$A_t$ 是连续 action chunk。$I_{ref}$ 让模型能比较“计划建立时”与“当前”的视觉状态，避免仅靠当前图像或文字摘要而产生歧义。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 主实验使用带平行夹爪与鱼眼 GoPro 的单臂 7-DoF Franka；泛化规划另用双 6-DoF ARX 平台和三路相机。动作 expert 基于 $\pi_0$，输出连续动作。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-onetwovla/inference.45ieknh380.webp&quot; alt=&quot;Reasoning Mode 与 Acting Mode 的统一推理流程（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; OneTwoVLA 以 $\pi_0$ 为基座：视觉语言模型自回归地产生 decision / reasoning token，Action Expert 用 flow matching 建模连续动作。两条路径共享视觉、指令、reference 与 reasoning 上下文。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;自适应决策 token&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; &lt;code&gt;[BOR]&lt;/code&gt;（Beginning of Reasoning）触发文本生成，直到 &lt;code&gt;[EOS]&lt;/code&gt;；&lt;code&gt;[BOA]&lt;/code&gt;（Beginning of Action）触发 action chunk。论文的假设是大部分执行时间应为 Act，因此只在少数关键点产生语言推理。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;src/openpi/models/pi0_fuse.py&lt;/code&gt; 的 &lt;code&gt;prefill()&lt;/code&gt; 将 next-token logit 限制在 &lt;code&gt;BEGIN_OF_ACTION&lt;/code&gt;、&lt;code&gt;BEGIN_OF_REASONING&lt;/code&gt; 两个候选，再以 argmax 或采样决定模式。这证实触发器由模型学习，而不是测试时的外部固定规则。&lt;/p&gt;
&lt;h4&gt;四段式 embodied reasoning&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 每次 reasoning 含四个字段：任务相关物体位置的 &lt;strong&gt;Scene description&lt;/strong&gt;、子任务序列的 &lt;strong&gt;High-level plan&lt;/strong&gt;、已完成步骤的 &lt;strong&gt;Historical summary&lt;/strong&gt;、以及眼下动作的 &lt;strong&gt;Next step&lt;/strong&gt;。人类问题/回答会追加到 $\ell$；失败时 reasoning 输出诸如“后撤、对齐、再次抓取”的恢复意图。&lt;/p&gt;
&lt;h4&gt;Reference image 与 Action Expert&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Reason 后将 $I_{ref}\leftarrow I_t$，使“最新文本状态 + 建立状态时的视觉锚点”共同表示 history。动作端继承 $\pi_0$ action expert，以 flow matching 处理复杂连续动作分布；文字端使用 cross-entropy。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;p&gt;决策可写成：&lt;/p&gt;
&lt;p&gt;$$
d_t = \arg\max_{d \in {[BOR],[BOA]}} p_\theta(d \mid I_t^{1:n}, I_{ref}^{1:n}, \ell, R).
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 动作端继承 $\pi_0$ 的 flow matching。其常见目标为：&lt;/p&gt;
&lt;p&gt;$$
\mathcal L_{\mathrm{FM}} = \mathbb E_{t,x_0,x_1}\left[|v_\theta(x_t, c, t) - (x_1-x_0)|_2^2\right],
$$&lt;/p&gt;
&lt;p&gt;其中 $x_0$ 为噪声、$x_1$ 为真实 action chunk、$x_t$ 为插值状态，$c$ 汇集观测、语言、reasoning 与状态。论文主体没有给出具体噪声调度及 chunk 长度，应以基座 $\pi_0$ 实现为准。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 对每条专家示教，作者先定义 $K$ 个有序子任务，再均匀抽取 $N=32$ 帧，调用 Gemini 2.5 找出各子任务完成后的 $K+1$ 个 reasoning interval。每个 interval 的中点图像生成 scene description，结合计划 $P$、已完成子序列 $H_j=(p_1,\ldots,p_j)$ 与下一步 $X_j=p_{j+1}$，构成监督目标。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 当已有 reasoning 已过期时监督 &lt;code&gt;[BOR]&lt;/code&gt;；更新后监督 &lt;code&gt;[BOA]&lt;/code&gt;；acting interval 始终监督 &lt;code&gt;[BOA]&lt;/code&gt;。由此，“应该思考”来自数据而非固定频率。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 训练入口为 &lt;code&gt;scripts/train.py&lt;/code&gt;；&lt;code&gt;train_scripts/train_onetwovla_cocktail.sh&lt;/code&gt; 通过 &lt;code&gt;--reasoning_json_path&lt;/code&gt; 传入标注。脚本按 GPU 数设定总 batch（单卡训练 batch 为 20），并提示先单卡运行 &lt;code&gt;scripts/compute_norm_stats.py&lt;/code&gt; 计算归一化统计。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;src/openpi/policies/umi_dataset.py&lt;/code&gt; 默认 &lt;code&gt;pred_reasoning_prob = 0.7&lt;/code&gt;，会从 reasoning、过期 reasoning、人类回答/干预等分支构造不同 &lt;code&gt;thought&lt;/code&gt; 输入输出；配置也默认启用 &lt;code&gt;use_reference_image&lt;/code&gt;、&lt;code&gt;use_outdated_reasoning&lt;/code&gt;。代码的训练状态覆盖比论文两模式摘要更细。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Figure 2 的 Tomato-Egg 计时显示 OneTwoVLA 总耗时接近 flat VLA，而固定间隔“持续 reasoning”的 dual-system 显著更慢。不过，单次 Reason 仍会造成约 2–3 秒暂停。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;| 论文概念           | 官方实现位置                             | 可核对的行为                                                     |
| ------------------ | ---------------------------------------- | ---------------------------------------------------------------- |
| Reason / Act 选择  | &lt;code&gt;src/openpi/models/pi0_fuse.py::prefill&lt;/code&gt; | 仅在 &lt;code&gt;BEGIN_OF_ACTION&lt;/code&gt;、&lt;code&gt;BEGIN_OF_REASONING&lt;/code&gt; 两个 token 间选择。 |
| 文本推理解码       | &lt;code&gt;pi0_fuse.py::reason&lt;/code&gt;                    | 复用 prefix KV cache，最多解码 256 token，遇 EOS 停止。          |
| 推理增强的数据采样 | &lt;code&gt;src/openpi/policies/umi_dataset.py&lt;/code&gt;     | 读取 reasoning JSON，构造旧/新 thought、干预和回答样本。         |
| 训练配方           | &lt;code&gt;train_scripts/train_onetwovla_*.sh&lt;/code&gt;     | 提供 Cocktail 与 visual grounding 的 OneTwoVLA / π0 对照脚本。   |
| 合成图像域增强     | &lt;code&gt;scripts/augment_vl_data/augment.py&lt;/code&gt;     | README 明确提供鱼眼畸变、机械爪合成与自适应亮度。                |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 仓库公开了核心模型、Cocktail 和 open-world grounding 的数据/脚本，但 README 没有列出 Hotpot、Tomato-Egg 全量复现实验资源。复现时需区分“方法实现开源”和“全部数字可直接复跑”。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-onetwovla/tasks.5mojmel8f3.webp&quot; alt=&quot;长程规划、纠错、人机交互和泛化规划的任务示例（论文 Figure 5）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 长程任务包括 Tomato-Egg、Hotpot、Cocktail：它们涉及倒油、抓取滤网、翻炒/盛盘或从近十种外观相似材料中倒入 3–4 种。物体初始位置在 $10\times10,\mathrm{cm}^2$ 内随机化。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; baseline 是同数据微调的 $\pi_0$，以及由 Gemini 2.5 Pro 定期产生原子命令、$\pi_0$ 执行命令的 dual-system；每项长程与泛化规划任务均有 20 次 trial。Open-World grounding 包含 16 个场景、933 条有效 UMI 示教、180 种家庭物体，并在 8 个未见环境测试。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-onetwovla/results.pg2sk7ha4.webp&quot; alt=&quot;长程规划与泛化规划的主结果（论文 Figure 6）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 长程任务中，$\pi_0$ / Dual-System / OneTwoVLA 的平均成功率为 &lt;strong&gt;50% / 63% / 87%&lt;/strong&gt;。OneTwoVLA 在 Tomato-Egg、Hotpot、Cocktail 分别为 85%、80%、95%，比 $\pi_0$ 高 30 个百分点、比 dual-system 高 24 个百分点。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 泛化规划中，加入合成 VL co-training 的 OneTwoVLA-VL 平均为 &lt;strong&gt;70%&lt;/strong&gt;；纯 OneTwoVLA 为 10%，$\pi_0$ 为 6%。任务包括“给我冰可乐”（开冰箱寻找不可见物体）、“空盘子”（先移开水果）和根据“让我清醒”准备咖啡。这表明统一 Reason/Act 不会自动带来开放任务知识，数据覆盖仍是关键变量。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 失败恢复中 OneTwoVLA 成功 8/10（80.0%），$\pi_0$ 为 8/14（57.1%），Dual-System 为 7/12（58.3%）。人机交互的子任务级评测中，OneTwoVLA 为 20/20（100%），Dual-System 为 13/20（65%）；20 个未见交互情境中 OneTwoVLA-VL 为 72.5%。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文未提供逐模块移除的完整 ablation table，因此不能把这些对照误写成严格的因果消融。它给出的关键比较是：&lt;/p&gt;
&lt;p&gt;| 对照                      | 隔离出的因素                                                | 观察                                                |
| ------------------------- | ----------------------------------------------------------- | --------------------------------------------------- |
| $\pi_0$ vs OneTwoVLA      | 显式 reasoning、reference/history、adaptive decision 的组合 | 长程 50% → 87%；Single-Env grounding 5% → 78%。     |
| OneTwoVLA vs OneTwoVLA-VL | 16,000 synthetic VL co-training                             | 泛化规划 10% → 70%；Open-World grounding 8% → 73%。 |
| OneTwoVLA vs Dual-System  | 统一自适应模型 vs 固定间隔外部规划                          | 长程 87% vs 63%，后者更受能力错配与时延影响。       |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这些实验支持设计组合有效，但未量化 reference image、四段 reasoning、&lt;code&gt;[BOR]/[BOA]&lt;/code&gt; 及各合成增强的独立边际贡献；这是最值得补齐的后续实验。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-onetwovla/grounding.1lck80h5ub.webp&quot; alt=&quot;Single-Env 与 Open-World 视觉 grounding 示例（论文 Figure 7）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Single-Env grounding 中，$\pi_0$ / OneTwoVLA / OneTwoVLA-VL 分别为 &lt;strong&gt;5% / 78% / 88%&lt;/strong&gt;；Open-World 中为 &lt;strong&gt;3% / 8% / 73%&lt;/strong&gt;。指令可通过空间关系、属性或语义特征引用物体，而非只报物名。候选物体涵盖 robot data 见过、只在 VL data 见过、两个训练集均未见三类。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 合成数据流水线为：Gemini 2.5 Pro 生成桌面布局文字，FLUX.1-dev 生成图像，随机加入鱼眼畸变或机械爪与亮度合成，最后由 Gemini 生成指令和 reasoning。它试图将预训练 VLM 中的语义知识经数据 co-training 接入动作 policy。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; OneTwoVLA 把时序责任拆开：连续控制层跟随相对稳定的“下一步”，reasoning 层在事件边界修订全局状态。动作 policy 不再同时承担进度记忆、异常解释、新对话解析和高精度轨迹的所有压力。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; reference image 是小而关键的设计。文本说“糖浆已倒入”但不一定说明当前物体位置；当前帧也未必显示之前发生了什么。图像锚点加文本摘要提供一种轻量的视觉历史比较。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 本文真正的创新是一个闭环接口组合：可学习的 mode switch、可被动作消费的 reasoning state、视觉 reference、连续 action expert，以及针对这些接口的训练标注。它们同处一个模型，减少外部 API 串联时的语义断裂。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;| 路线        | Reason 与 Act 的关系                | 主要代价                            |
| ----------- | ----------------------------------- | ----------------------------------- |
| Flat VLA    | 图像/语言直接到动作，无显式推理状态 | 长程进度、异常解释与开放语义较弱。  |
| Dual-system | 外部 VLM 规划、独立 VLA 执行        | latency，且规划不一定可执行。       |
| 每步 CoT    | 每个控制周期先文字再行动            | 推理频繁，实时性差。                |
| OneTwoVLA   | 同模型稀疏选择 Reason 或 Act        | Reason 仍需暂停，触发质量依赖标注。 |&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 方法假设关键 reasoning 时刻能通过子任务边界可靠标注、文字足以概括低层执行需要的隐状态、预训练 VLM 知识可经合成 VL 数据安全迁移。若视觉误判但模型自信地产生错误计划，统一模型会把该错误状态一致传给动作端。&lt;/p&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;推理时刻依赖人工选择的 heuristic；作者认为 RL 可能学习到更优策略。&lt;/li&gt;
&lt;li&gt;Reason 时机器人暂停约 2–3 秒，未来可用 asynchronous architecture 并行推理和行动。&lt;/li&gt;
&lt;li&gt;没有专门优化 action inference；模型变大后动作时延可能成为瓶颈。&lt;/li&gt;
&lt;li&gt;只研究高质量合成 VL 数据，未系统比较数据来源。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 成功率来自有限试验和作者构建的数据分布，不能直接等同于开放家庭环境的长期可靠性。公开实现也未覆盖论文全部 benchmark 的完整复现资源，外部研究者难以评估每组数字的方差和采集成本。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 可读 reasoning 不必然是 action 的忠实因果解释。需要文本替换、reference image 遮蔽、强制决策 token 等干预测试，才能验证它是可控的内部状态还是相关性文本。&lt;/p&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 对具身模型，test-time reasoning 的价值或许不在更长 CoT，而在&lt;strong&gt;事件驱动、可持久、可被执行模块消费的状态更新&lt;/strong&gt;。可将 &lt;code&gt;[BOR]&lt;/code&gt; 视为有计算成本的 option-selection：只有预期纠错/重规划收益超过等待成本才思考。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 下一步可探索 asynchronous 双速率系统：低层 action chunk 连续滚动，后台生成 candidate reasoning，在风险或价值模型判定必要时切换；也可把四段文字收敛为可验证的对象、关系、进度和不确定性状态，保留自然语言用于人机沟通。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/116834498_p0_master1200.1e974fnzok.webp"/><enclosure url="https://pic.hana0721.top/116834498_p0_master1200.1e974fnzok.webp"/></item><item><title>MolmoAct 论文精读：空间推理 Action Reasoning Model</title><link>https://agusexp25.top/blog/paper-deep-dive-molmoact</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-molmoact</guid><description>精读 MolmoAct：用深度感知 token、视觉轨迹 trace 与离散动作 token，把 VLA 的感知、规划和控制组织成可解释、可 steer 的三阶段推理。</description><pubDate>Tue, 25 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;论文名称&lt;/strong&gt;：《MolmoAct: Action Reasoning Models that can Reason in Space》&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;作者&lt;/strong&gt;：Jason Lee 等（Allen Institute for AI、University of Washington）&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;论文链接&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2508.07917&quot;&gt;arXiv&lt;/a&gt; · &lt;strong&gt;代码&lt;/strong&gt;：&lt;a href=&quot;https://github.com/allenai/MolmoAct&quot;&gt;allenai/MolmoAct&lt;/a&gt; · &lt;strong&gt;项目介绍&lt;/strong&gt;：&lt;a href=&quot;https://allenai.org/blog/molmoact&quot;&gt;Ai2 Blog&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-molmoact/fig1_overview.3rbytvxjmt.webp&quot; alt=&quot;MolmoAct 的三阶段空间推理总览（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; MolmoAct 把 VLA 的隐式“看图就出动作”改成显式的三段式推理：从 RGB 估计离散深度、画出末端执行器的 Visual Reasoning Trace，再生成低层 Action Tokens；因此策略不仅能控制机器人，也能被人检查和用轨迹草图 steer。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;提出 Action Reasoning Model（ARM）范式，把 perception、spatial planning 和 control 串成可监督的 token 序列。&lt;/li&gt;
&lt;li&gt;用 Depth Perception Tokens 蒸馏 Depth Anything V2 的深度估计，用 2D trace 保存比语言更精确的空间计划。&lt;/li&gt;
&lt;li&gt;设计保持序关系的 256-bin action token 初始化，降低动作词表学习成本；预训练约 9,216 GPU hours。&lt;/li&gt;
&lt;li&gt;发布超过 10,000 条高质量轨迹的 MolmoAct Dataset，以及模型权重、训练代码和数据配方。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 传统 VLA 通常直接学习 $p(a\mid I,T)$。这种端到端映射缺少显式深度和中间计划：同一条动作失败时，很难判断是目标理解错、空间定位错，还是控制错；语言 CoT 又会丢失尺度、坐标和时间信息。MolmoAct 的出发点是让中间变量本身就位于机器人真正需要的空间表示中。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这不是把语言 CoT 换成另一种“解释文本”，而是把解释绑定到可渲染的深度 token 和可编辑轨迹上。这样中间结果同时承担监督信号、控制条件和人机交互接口三种角色。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 给定多视角 RGB 观测 $I$ 和语言指令 $T$，模型要生成深度字符串 $\mathbf d$、二维末端轨迹 $\boldsymbol\tau$ 以及 $D$ 维离散动作 $\mathbf a$：&lt;/p&gt;
&lt;p&gt;$$
(I,T)\longrightarrow(\mathbf d,\boldsymbol\tau,\mathbf a).
$$&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Observation&lt;/strong&gt;：side/front/wrist 等多视角 RGB；部分任务还会把用户画的轨迹叠加到图像。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Action&lt;/strong&gt;：每个自由度先按数据集分位数归一化，再量化为 256 个 bin；post-training 时通常以 $K=8$ 的 action chunk 执行。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Embodiment&lt;/strong&gt;：Google Robot、WidowX、Franka 单臂与双臂，以及 LIBERO 仿真中的 Franka Panda。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;数据&lt;/strong&gt;：OXE 子集（RT-1、BridgeData V2、BC-Z）、多模态 web data、辅助 depth/trace data 与 MolmoAct Dataset。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-molmoact/fig2_model_and_training.8okfnqbbtx.webp&quot; alt=&quot;MolmoAct 训练、推理与数据流架构（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; backbone 沿用 Molmo 的 ViT + 两层 MLP connector + decoder-only LLM；在语言模型输出空间中依次生成 depth tokens、visual trace tokens 和 action tokens。训练阶段还混合 dense caption、pointing、trajectory drawing 等任务，推理阶段只需一次自回归生成即可得到三种结果。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;Depth Perception Tokens&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 深度图先由 Depth Anything V2 specialist 估计，再由 VQVAE 压缩成 $M=100$ 个 code，每个 code 映射到 128 个 &lt;code&gt;&amp;#x3C;DEPTH_k&gt;&lt;/code&gt; token。VLA 只看原始 RGB，却被监督去重建 specialist 的深度字符串，属于 specialist-to-generalist distillation。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;preprocess/processors.py&lt;/code&gt; 中先调用 &lt;code&gt;DepthAnythingV2.infer_image&lt;/code&gt;，把深度归一化为 8-bit 灰度，再通过 &lt;code&gt;DepthTokens.inference_depth_tokens&lt;/code&gt; 输出 &lt;code&gt;&amp;#x3C;DEPTH_START&gt;...&amp;#x3C;DEPTH_END&gt;&lt;/code&gt;。&lt;/p&gt;
&lt;h4&gt;Visual Reasoning Trace&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 轨迹是最多 5 个点的折线 $\boldsymbol\tau=(p_1,\ldots,p_L)$，坐标归一化到 $[0,255]$。$p_1$ 是当前夹爪位置，其余点从未来 episode 均匀采样。它提供比自然语言更精确的末端定位和时间方向。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;preprocess/line_utils.py&lt;/code&gt; 与 &lt;code&gt;processors.py&lt;/code&gt; 将未来末端点均匀 subsample 成 line；推理 parser 在 &lt;code&gt;olmo/hf_model/molmoact/modeling_molmoact.py&lt;/code&gt; 中解析 &lt;code&gt;&amp;#x3C;TRAJ_START&gt;&lt;/code&gt; 之间的坐标。&lt;/p&gt;
&lt;h4&gt;Action Tokenizer 与 Policy&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 每个动作维度按 1% 到 99% 分位数裁剪后量化为 256 bins，并映射到 Qwen tokenizer 末端的 byte-level BPE symbols。相邻 bin 使用相邻 symbol，给 action embedding 一个保留序关系的初始化，论文报告这使预训练成本比 GR00T 的 50,000 GPU hours 少五倍以上。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;preprocess/processors.py&lt;/code&gt; 的 &lt;code&gt;ActionProcessor&lt;/code&gt; 完成 quantile normalization、tokenization 与 chunking；&lt;code&gt;launch_scripts/train_multitask_model.py&lt;/code&gt; 的 &lt;code&gt;--action-chunk-size&lt;/code&gt; 默认值为 8。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;p&gt;三阶段联合概率分解为：&lt;/p&gt;
&lt;p&gt;$$
p(\mathbf d,\boldsymbol\tau,\mathbf a\mid I,T)=
\prod_i p(d_i\mid I,T,\mathbf d_{&amp;#x3C;i})
\prod_j p(\tau_j\mid I,T,\mathbf d,\boldsymbol\tau_{&amp;#x3C;j})
\prod_k p(a_k\mid I,T,\mathbf d,\boldsymbol\tau,\mathbf a_{&amp;#x3C;k}).
$$&lt;/p&gt;
&lt;p&gt;其中 $d_i$ 是深度 code，$\tau_j$ 是轨迹坐标 token，$a_k$ 是动作维度或 chunk 中的动作 token。&lt;strong&gt;【Analysis】&lt;/strong&gt; 这个因子化把误差传播方向固定为“感知 → 计划 → 控制”：深度和轨迹不是生成后的解释，而是后续动作的条件。&lt;/p&gt;
&lt;p&gt;深度字符串写作：&lt;/p&gt;
&lt;p&gt;$$
\mathbf d=(\langle\mathrm{DEPTH_START}\rangle,\langle\mathrm{DEPTH}&lt;em&gt;{z_1}\rangle,\ldots,\langle\mathrm{DEPTH}&lt;/em&gt;{z_{100}}\rangle,\langle\mathrm{DEPTH_END}\rangle),
$$&lt;/p&gt;
&lt;p&gt;其中 $z_i\in{1,\ldots,128}$。轨迹点 $p_i=(u_i,v_i)$，且 $u_i,v_i\in[0,255]$。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 预训练混合 26.3M 样本：action reasoning 和 trajectory-conditioned 数据各占约 38.7%，multimodal web 约 21.5%，其余为 depth/line 辅助数据。随后用约 1M action reasoning + 1M trajectory-conditioned 的 MolmoAct Dataset 做 mid-training（50k steps、batch size 128、128 张 H100），最后对新任务用 30–50 条示教做 LoRA post-training。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-molmoact/fig3_datamix.pg2snw7xp.webp&quot; alt=&quot;预训练数据混合比例（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;scripts/train.py&lt;/code&gt; 实现训练入口和 LoRA；&lt;code&gt;olmo/data/robot_datasets.py&lt;/code&gt; 注册 MolmoAct 数据集；README 给出的 post-training 配置通常是 LoRA rank 32、alpha 16，LIBERO batch size 128、真实机器人 batch size 64。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 推理时给定当前图像和指令，模型先生成深度，再生成轨迹，最后生成动作；执行 $K=8$ 个动作后重新进行 action reasoning。用户也可以把轨迹直接画在图像上，形成 $I^+=I\oplus\boldsymbol\tau$，绕过语言歧义实现交互式 steer。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;experiments/libero/run_libero_eval.py&lt;/code&gt; 和 vLLM 版本都先调用 &lt;code&gt;parse_depth&lt;/code&gt;、&lt;code&gt;parse_trace&lt;/code&gt;，再 &lt;code&gt;parse_action&lt;/code&gt;；&lt;code&gt;olmo/hf_model/molmoact/modeling_molmoact.py&lt;/code&gt; 与 &lt;code&gt;experiments/libero/molmoact.py&lt;/code&gt; 提供同一套 parser。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;| 论文概念 | 官方代码位置 | 实际行为 |
| --- | --- | --- |
| ARM / VLA | &lt;code&gt;olmo/hf_model/molmoact/modeling_molmoact.py&lt;/code&gt; | Hugging Face &lt;code&gt;MolmoActForActionReasoning&lt;/code&gt; 负责生成与解析三类 token |
| 深度蒸馏 | &lt;code&gt;preprocess/processors.py&lt;/code&gt;、&lt;code&gt;scripts/vqvae.py&lt;/code&gt; | Depth Anything V2 → 灰度图 → VQVAE code → depth string |
| Trace 标注 | &lt;code&gt;preprocess/line_utils.py&lt;/code&gt; | 从未来末端轨迹均匀采样最多 5 个点 |
| Action chunk | &lt;code&gt;preprocess/processors.py&lt;/code&gt;、&lt;code&gt;experiments/libero&lt;/code&gt; | 256-bin action tokenizer，默认 chunk size 8 |
| LoRA post-training | &lt;code&gt;scripts/train.py&lt;/code&gt;、&lt;code&gt;launch_scripts/train_multitask_model.py&lt;/code&gt; | 对下游任务启用 adapters，README 提供合并与推理脚本 |&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-molmoact/fig4_molmoact_dataset.mt8n8p27.webp&quot; alt=&quot;MolmoAct Dataset 的任务示例与动词分布（论文 Figure 4）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 评测覆盖 SimplerEnv zero-shot、LIBERO 四个 suite、Franka 单臂/双臂真实任务、OOD 变化、开放指令跟随和 trace steering。真实评测每项任务通常 25 次试验；MolmoAct Dataset 包含 tabletop、home 等多场景和超过 100 个任务。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-molmoact/fig5_real_eval_indist.8vnnj5xhnr.webp&quot; alt=&quot;真实世界单臂与双臂任务结果（论文 Figure 5）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 关键数字如下：&lt;/p&gt;
&lt;p&gt;| 设置 | MolmoAct 结果 | 论文报告的比较 |
| --- | ---: | --- |
| SimplerEnv Visual Matching zero-shot | 70.5% | 超过 Pi-0、GR00T N1.5 等闭源/大规模基线 |
| LIBERO 平均成功率 | 86.6% | Long suite 比 ThinkAct 高 6.3 个百分点 |
| 真实单臂 task progression | — | 平均比 Pi-0-FAST 高 10% |
| 真实双臂 task progression | — | 平均比 Pi-0-FAST 高 22.7% |
| OOD 真实泛化 | — | 平均比 Pi-0-FAST 高 23.3% |&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-molmoact/fig6_1_real_eval_outdist.83as1fgw6p.webp&quot; alt=&quot;OOD 泛化与 MolmoAct Dataset 中训练的消融（论文 Figure 6）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-molmoact/fig6_2_real_eval_molmoact_dataset.9rk4ym76lx.webp&quot; alt=&quot;MolmoAct Dataset 对真实任务的增益（论文 Figure 6）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 去掉 MolmoAct Dataset 的 mid-training 后，三项真实任务平均下降 5.5%；这说明数据质量和域对齐不是可有可无的附加项。视觉 trace 也不是装饰：在歧义的 “pick up the bowl” 任务中，trace steering 成功率达到 0.75，比开放式语言 steering 高 33 个百分点。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 真实 OOD 测试分别改变语言、目标空间位置、干扰物和未见物体；模拟 variant aggregation 则改变光照、纹理和相机视角。MolmoAct 在这些变化上保持更稳定的 task progression。开放指令人评中，它相对 SpatialVLA 的 Elo 高 109 分，相对 OpenVLA 的 pairwise 胜率为 81%。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-molmoact/fig8_lang_generalize.1764h8xmpo.webp&quot; alt=&quot;语言与视觉轨迹泛化的人评结果（论文 Figure 8）&quot;&gt;&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 第一，深度 token 给 RGB-only backbone 注入了可压缩的 3D 先验；第二，trace 把长时域规划变成少量几何约束，减少语言描述到控制的语义损失；第三，三段 token 都能用现成的 next-token infrastructure 训练，不需要为每个 embodiment 设计新的 diffusion head。数据消融还表明，结构化中间监督和高质量 household trajectories 具有叠加收益。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 真正的创新不是“增加一个深度估计器”，而是把深度、轨迹和动作放进一个可自回归组合的 token interface：同一接口既连接 perception 与 policy，也连接 robot 与 human operator。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; CoT-VLA 等方法主要在语言空间中分解任务；TraceVLA 主要使用轨迹作为辅助输出；MolmoAct 则把 depth、trace、action 组织成有固定顺序的因子化链，并在预训练阶段同时学习三者。&lt;strong&gt;【Analysis】&lt;/strong&gt; 因此它更像“可观测的 latent program”，而不是在动作旁边附加一段解释。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 由 RGB 蒸馏出的离散深度足以支持常见桌面操作，且 100 个 VQVAE code 能保留有用的空间结构。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 2D trace 与低层动作之间存在稳定映射；当遮挡严重、相机外参变化很大或需要接触力反馈时，这个假设可能失效。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; action token 的序关系初始化能跨 embodiment 迁移，但不同机器人动作维度和范围仍需 post-training 校准。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 作者指出，生成更多 reasoning tokens 会带来推理速度与数据采集控制频率不匹配的问题；服务器到机器人通信延迟也会放大这一差距，未来需要更快的 VLM 优化或更小的 edge model。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 深度 specialist、VQVAE 和 trace 标注把训练管线变复杂；深度 token 是固定长度的压缩，可能丢失细小接触几何；trace 仍是相机平面表示，不能单独表达遮挡后的 3D 路径或力控策略。另一个现实问题是，论文展示的成功率主要来自已校准相机和少量示教，换传感器、控制频率或动作空间时仍需重新验证。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-molmoact/fig9_steerability.7w7k5zuriy.webp&quot; alt=&quot;视觉轨迹 steering 的交互示例（论文 Figure 9）&quot;&gt;&lt;/p&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; MolmoAct 给 VLA 研究的启发是：中间表示不必是自然语言，关键是它是否同时满足“可监督、可解释、可控制”。后续可以沿三个方向推进：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;用不确定性或多候选 trace 表示动作多模态，而不是只生成一条折线。&lt;/li&gt;
&lt;li&gt;将 2D trace 与相机标定、点云或触觉 token 融合，弥补纯 RGB 的遮挡和接触盲区。&lt;/li&gt;
&lt;li&gt;把 depth/trace 的早停、缓存和 speculative decoding 纳入控制器设计，降低 reasoning token 对闭环频率的影响。&lt;/li&gt;
&lt;/ol&gt;</content:encoded><h:img src="https://pic.hana0721.top/125160058_p0_master1200.6ikvtm0o6l.webp"/><enclosure url="https://pic.hana0721.top/125160058_p0_master1200.6ikvtm0o6l.webp"/></item><item><title>LAPA 论文精读：从无动作标签视频学习 Vision-Language-Action 模型</title><link>https://agusexp25.top/blog/paper-deep-dive-lapa</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-lapa</guid><description>精读 LAPA：用 VQ-VAE 从相邻视频帧学习离散 latent action，再让 VLM 预测它，最后用少量机器人动作标签完成真实控制映射。</description><pubDate>Tue, 25 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;《Latent Action Pretraining from Videos》提出 LAPA（Latent Action Pretraining for general Action models）。它针对一个很现实的瓶颈：机器人视频往往只有昂贵的 teleoperation 才能得到 action label，而互联网上的大量人类操作视频只有图像和语言，没有机器人末端位姿、关节或力矩标签。&lt;/p&gt;
&lt;p&gt;论文把“动作”拆成一个可从视频自监督学习的中间语言：先用两帧图像学习离散 latent action，再让 Vision-Language Model（VLM）根据当前图像和任务描述预测这个 latent action，最后只用少量带真实动作的机器人轨迹重新训练 action head，把 latent policy 迁移到可执行的机器人动作空间。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-lapa/Figure1.73uooala4k.webp&quot; alt=&quot;LAPA 从视频到机器人动作的三阶段问题设定（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; LAPA 用 &lt;code&gt;image delta → discrete latent action → robot action&lt;/code&gt; 的三级接口替代了“所有预训练视频都必须带机器人动作标签”，从而可以把机器人视频和人类操作视频放进同一个预训练框架。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;提出不依赖 ground-truth robot action 的 Latent Action Pretraining，并将训练拆成 Latent Action Quantization、Latent Pretraining 和 Action Finetuning 三个阶段。&lt;/li&gt;
&lt;li&gt;用 VQ-VAE/NSVQ 从相邻帧的视觉变化中学习离散 codebook；latent action 不预先规定是 end-effector、joint 还是 torque，而是由视频中的观测变化决定粒度。&lt;/li&gt;
&lt;li&gt;在 Language Table、SIMPLER 和 Franka 真实机器人上验证跨任务、跨环境、跨 embodiment 泛化；LAPA（Open-X）真实任务平均成功率达到 50.1%，高于 OpenVLA（Open-X）的 43.9%。&lt;/li&gt;
&lt;li&gt;证明只用 Something-Something V2 人类操作视频也能带来正迁移：在真实机器人上平均成功率 34.0%，超过 OpenVLA（Bridge）的 30.8%。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; LAPA（Open-X）预训练使用 8 张 H100、34 小时，作者估计相对 OpenVLA 约 30–40 倍更高效；这是训练效率的报告，不等同于总研究成本。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; RT-1、RT-2、OpenVLA 等 VLA 通常把连续机器人动作离散成 token，然后用 next-token prediction 训练。这个范式在动作标签丰富时有效，但有两个规模限制：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;teleoperation 产生动作标签的速度远低于互联网视频的增长速度；&lt;/li&gt;
&lt;li&gt;不同机器人、相机坐标系和控制频率有不同 action representation，直接混合标签会把 embodiment 差异带进策略输出空间。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;已有的无标签视频路线大致分成三类：只预训练视觉表示、先生成未来视频再用 inverse dynamics model（IDM）恢复动作、或从人手姿态/轨迹中做 human-to-robot retargeting。&lt;strong&gt;【Paper】&lt;/strong&gt; LAPA 的区别是：它不把无标签视频只当作视觉预训练数据，也不要求先估计人手关键点，而是直接学习“当前观测到未来观测之间发生了什么”，再让 VLM 对这种变化做行为克隆。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; LAPA 的关键取舍是把动作监督从“物理坐标”后移到 fine-tuning 阶段。这样预训练阶段获得了更统一的接口，但 latent action 也可能混入相机运动、物体运动甚至视频剪辑造成的变化；因此它更像一个 environment-centric transition token，而不是天然等价于机器人控制量。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 给定视频中的当前帧 $x_t$、未来帧 $x_{t+H}$ 和语言任务描述 $l$，LAPA 学习三种映射：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Latent Action Quantization（LAQ）&lt;/strong&gt;：$q_\phi(x_t, x_{t+H}) \rightarrow z_t$，把帧间变化编码成离散 latent action。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Latent Policy&lt;/strong&gt;：$\pi_\theta(x_t,l) \rightarrow z_t$，VLM 根据当前观察和任务描述预测 latent action。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Action Finetuning&lt;/strong&gt;：$\pi_\psi(x_t,l) \rightarrow a_t$，用少量真实机器人动作标签训练新的 action head。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;论文主实验的 latent code 默认是 $s=4$ 个 token、每个 token 来自大小为 $|C|=8$ 的 codebook，因此单个时间步的输出空间是 $8^4$；官方 README 也明确提醒，这个输出不是可以直接发送给机械臂的真实 action space。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 主要 embodiment 与数据如下：&lt;/p&gt;
&lt;p&gt;| 项目           | 设置                                                                                          |
| -------------- | --------------------------------------------------------------------------------------------- |
| 语言与视觉输入 | 当前 RGB 帧 + 视频/任务语言描述                                                               |
| 真实动作       | fine-tuning 时为离散化的 delta end-effector action                                            |
| 仿真           | Language Table、SIMPLER                                                                       |
| 真实机器人     | 7-DoF Franka Emika Panda                                                                      |
| 预训练来源     | Bridgev2、Open-X Embodiment、Something-Something V2                                           |
| 评测能力       | in-domain、cross-task、cross-environment、cross-embodiment、unseen object、unseen instruction |&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-lapa/latent_action_pretraining.7lkqcvmnud.webp&quot; alt=&quot;LAPA 三阶段总览：Latent Action Quantization、Latent Pretraining 和 Action Finetuning（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 整体数据流是：相邻视频帧先经过 LAQ encoder 得到离散 $z_t$；VLM 再以当前帧和语言描述为条件预测 $z_t$；fine-tuning 时替换 latent head，用带标签轨迹学习真实 action head。LAQ 的 decoder 还可以把 latent action 解码回下一帧，用于可视化和 neural closed-loop rollout。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;Latent Action Quantization Model&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：当前帧 $x_t$ 与固定窗口 $H$ 后的帧 $x_{t+H}$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;中间模块&lt;/strong&gt;：两帧共享 patch embedding；encoder 先做 spatial Transformer，再做 temporal Transformer；差分表示进入 NSVQ codebook；decoder 用当前帧 token 通过 cross-attention 读取 latent action。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：离散 latent token 序列 $z_t \in C^s$，以及重建帧 $\hat x_{t+H}$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要&lt;/strong&gt;：直接把连续像素变化交给 VLM 难以生成；离散 codebook 把“动作词表”变成标准分类/next-token prediction 问题。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-lapa/latent_action_model.b9n1tv3ay.webp&quot; alt=&quot;LAQ encoder-decoder 与 NSVQ codebook 的结构（论文 Figure 5）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文对 GENIE 的改动包括：只使用当前帧和未来帧（不拼接更多历史帧），decoder 用 cross-attention 而不是简单相加 latent embedding，并采用只对两帧做输入的 C-ViViT 风格结构。&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;laq/laq_model/latent_action_quantization.py&lt;/code&gt; 中确实实现了 &lt;code&gt;enc_spatial_transformer&lt;/code&gt;、&lt;code&gt;enc_temporal_transformer&lt;/code&gt;、带 context 的 &lt;code&gt;dec_spatial_transformer&lt;/code&gt; 和 &lt;code&gt;NSVQ&lt;/code&gt;；&lt;code&gt;laq/laq_model/data.py&lt;/code&gt; 当前数据加载器按“每个轨迹目录包含多张帧图像”的 Something-Something V2 结构取随机起始帧和 offset 帧。&lt;/p&gt;
&lt;h4&gt;Latent Pretraining VLM&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：当前图像、语言指令，以及 LAQ encoder 为视频帧生成的 latent token 标签。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：$s$ 个 codebook token。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;中间模块&lt;/strong&gt;：以预训练 LWM-Chat-1M-Jax 7B 为 backbone，保留视觉 encoder，训练 language model，并接一个 vocab size 为 $|C|$ 的 latent action head。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要&lt;/strong&gt;：VLM 负责学习“任务语义 + 当前视觉状态 → 下一步视觉变化”，而不被某一种机器人坐标系绑定。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 默认冻结 vision encoder、解冻 language model。&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;latent_pretraining/train.py&lt;/code&gt; 用 &lt;code&gt;--modality=&apos;vision,text,delta&apos;&lt;/code&gt; 进入 latent 预训练分支，&lt;code&gt;scripts/latent_pretrain_openx.sh&lt;/code&gt; 设置 &lt;code&gt;delta_vocab_size=8&lt;/code&gt;、&lt;code&gt;n_tokens_per_delta=4&lt;/code&gt;、batch size 256、总步数 70,000。&lt;/p&gt;
&lt;h4&gt;Action Finetuning Head&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：相同的图像与任务 prompt。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：真实机器人 action token。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;做法&lt;/strong&gt;：丢弃 latent action head，换成 action head；对连续 action 的每个维度做等频分箱（equal-frequency discretization），再用带动作标签的轨迹训练。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;关键取舍&lt;/strong&gt;：作者尝试过保留 latent head、额外增加 latent-to-action decoder，但重新初始化 action head 的结果更好。&lt;strong&gt;【Analysis】&lt;/strong&gt; 这说明 latent pretraining 主要把控制相关的视觉—语言表征写入 backbone，而不是要求 latent token 与最终物理动作一一对应。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;VQ-VAE / NSVQ 量化&lt;/h4&gt;
&lt;p&gt;设 encoder 产生连续差分表示 $d_t$，codebook 为 $C={c_1,\ldots,c_{|C|}}$，量化结果为：&lt;/p&gt;
&lt;p&gt;$$
z_t = \arg\min_{c_k\in C}|d_t-c_k|_2^2
$$&lt;/p&gt;
&lt;p&gt;其中 $z_t$ 是被 VLM 预测的离散 token，$s$ 是 token 序列长度，$|C|$ 是每个位置可选的词表大小。&lt;strong&gt;【Paper】&lt;/strong&gt; NSVQ 用带归一化噪声的量化误差替换原始 VQ 误差，并在训练早期替换未使用 codebook，以降低 codebook collapse；decoder 的输入帧 patch embedding 使用 stop-gradient，避免表示塌缩。&lt;/p&gt;
&lt;h4&gt;重建目标&lt;/h4&gt;
&lt;p&gt;$$
\mathcal L_{LAQ}=\mathcal L_{recon}(x_{t+H},\hat x_{t+H})+\mathcal L_{VQ/NSVQ}
$$&lt;/p&gt;
&lt;p&gt;其中第一项要求 latent action 保留足以重建未来帧的视觉变化，第二项约束连续 embedding 与 codebook 的量化关系。论文没有把所有 NSVQ 实现项展开成一个统一闭式公式，具体权重以官方实现为准。&lt;/p&gt;
&lt;h4&gt;Latent Pretraining 交叉熵&lt;/h4&gt;
&lt;p&gt;$$
\mathcal L_{latent}=-\sum_{i=1}^{s}\log p_\theta(z_{t,i}\mid x_t,l,z_{t,&amp;#x3C;i})
$$&lt;/p&gt;
&lt;p&gt;$z_{t,i}$ 是第 $i$ 个 codebook token；$p_\theta$ 来自 VLM 的 latent action head。这个目标本质上是 behavior cloning，只是监督信号从人工 action 换成 LAQ encoder 生成的 pseudo label。&lt;/p&gt;
&lt;h4&gt;Action Finetuning&lt;/h4&gt;
&lt;p&gt;$$
\mathcal L_{action}=-\sum_{j=1}^{D}\log p_\psi(a_{t,j}^{bin}\mid x_t,l)
$$&lt;/p&gt;
&lt;p&gt;其中 $D$ 是机器人 action 维度，$a_{t,j}^{bin}$ 是第 $j$ 维连续动作经过等频分箱后的类别。&lt;strong&gt;【Paper】&lt;/strong&gt; 论文将动作离散化以匹配 OpenVLA/RT-1 风格的 action token 训练；真实值在部署时通过数据集统计量反量化。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 训练是顺序进行的，而不是把真实 action 和 latent action 同时端到端学习：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;在无动作标签视频上训练 LAQ，使其能从 $x_t,x_{t+H}$ 产生稳定的离散 latent action。&lt;/li&gt;
&lt;li&gt;用冻结的 LAQ encoder 给所有预训练帧打 latent label，训练 7B VLM 预测这些 token。&lt;/li&gt;
&lt;li&gt;在小规模 action-labeled robot trajectories 上替换 latent head，训练真实 action head。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方命令把三个阶段分开：&lt;code&gt;laq/train_sthv2.py&lt;/code&gt; 训练 LAQ；&lt;code&gt;laq/inference_sthv2.py&lt;/code&gt; 生成 latent labels；&lt;code&gt;scripts/latent_pretrain_openx.sh&lt;/code&gt; 以 LWM checkpoint 继续训练；&lt;code&gt;scripts/finetune_real.sh&lt;/code&gt; 以 &lt;code&gt;vision,action,delta&lt;/code&gt; modality 做机器人动作 fine-tuning。README 报告 Open-X latent pretraining 使用 8 张 H100、34 小时，batch size 256；真实 fine-tuning 脚本默认 4 张 GPU、2000 steps、batch size 128。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方 &lt;code&gt;latent_pretraining/inference.py&lt;/code&gt; 的基础推理输入是一张 &lt;code&gt;uint8&lt;/code&gt; RGB 图像和自然语言指令，返回 latent action；README 明确指出该输出空间默认为 $8^4$，不能直接驱动机器人。完成 action fine-tuning 后，部署脚本再加载 action checkpoint 和数据集 action scale 文件，把 action token 反量化为真实 delta end-effector 动作。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文还展示了一个不需要真实 action head 的 neural closed-loop：LAPA 预测 latent action，LAQ decoder 根据当前帧和该 latent action 生成下一帧，再把预测帧反馈给下一轮。这是世界模型式的定性验证，不是论文的真实机器人控制评测协议。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;| 论文概念                 | 官方代码位置                                  | 实际行为                                                                           |
| ------------------------ | --------------------------------------------- | ---------------------------------------------------------------------------------- |
| LAQ encoder-decoder      | &lt;code&gt;laq/laq_model/latent_action_quantization.py&lt;/code&gt; | spatial + temporal Transformer 编码，NSVQ 量化，cross-attention decoder 重建未来帧 |
| LAQ 数据                 | &lt;code&gt;laq/laq_model/data.py&lt;/code&gt;                       | 从轨迹目录中随机选帧，并按 &lt;code&gt;offset&lt;/code&gt; 取未来帧；默认数据结构针对 Sthv2               |
| Latent label 生成        | &lt;code&gt;laq/inference_sthv2.py&lt;/code&gt;                      | 用训练好的量化模型为 jsonl 样本写入离散视觉/latent token                           |
| Latent VLM 训练          | &lt;code&gt;latent_pretraining/train.py&lt;/code&gt;                 | &lt;code&gt;vision,text,delta&lt;/code&gt; modality，delta vocab 默认 8                                   |
| Robot action fine-tuning | &lt;code&gt;scripts/finetune_real.sh&lt;/code&gt;                    | &lt;code&gt;vision,action,delta&lt;/code&gt; modality，action vocab 默认 256，读取预处理后的 jsonl        |
| 推理                     | &lt;code&gt;latent_pretraining/inference.py&lt;/code&gt;             | 返回 latent action，不自动完成真实动作映射                                         |
| 部署                     | &lt;code&gt;latent_pretraining/deploy.py&lt;/code&gt;                | 加载 fine-tuned checkpoint 与 action scale 文件，输出可执行动作                    |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 代码和论文之间最容易误读的地方是“LAPA 是否已经是机器人 policy”：严格来说，latent-pretrained checkpoint 还是一个 latent policy；只有 action fine-tuning 后，输出才进入机器人的离散 action vocabulary。这个两阶段接口正是它能跨 embodiment 预训练的原因，也是部署时必须额外准备少量动作标签的原因。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-lapa/real_robot.54yhxyfski.webp&quot; alt=&quot;LAPA 真实机器人实验的平均成功率对比（论文 Figure 4）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 实验覆盖三类问题：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Language Table&lt;/strong&gt;：2-DoF 推块仿真，测试 in-domain、cross-task 和 real-to-sim cross-environment。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SIMPLER&lt;/strong&gt;：7-DoF WidowX 仿真，4 个任务；使用 100 条 fine-tuning trajectories，重点考察复杂动作空间下的迁移。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Real-world tabletop&lt;/strong&gt;：7-DoF Franka，&lt;code&gt;Pick &amp;#x3C;object&gt; into Sink&lt;/code&gt;、&lt;code&gt;Cover &amp;#x3C;object&gt; with Towel&lt;/code&gt;、&lt;code&gt;Knock &amp;#x3C;object&gt; Over&lt;/code&gt; 三类任务，每类 15 个物体、150 条轨迹；每个模型共 54 次 rollout，分别测试已见物体的新组合、未见物体、已见物体但未见指令。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;比较方法包括只在下游训练的 Scratch、视频扩散 + IDM 的 UniPi、用 IDM 伪标签的 VPT、使用真实动作标签预训练的 ActionVLA，以及 OpenVLA。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Language Table 的平均成功率如下（%）：&lt;/p&gt;
&lt;p&gt;| 设置                | Scratch | UniPi |      VPT |     LAPA | ActionVLA |
| ------------------- | ------: | ----: | -------: | -------: | --------: |
| In-domain / seen    |    15.6 |  22.0 |     44.0 | &lt;strong&gt;62.0&lt;/strong&gt; |      77.0 |
| In-domain / unseen  |    15.2 |  13.2 |     32.8 | &lt;strong&gt;49.6&lt;/strong&gt; |      58.8 |
| Cross-task / seen   |    27.2 |  20.8 |     72.0 | &lt;strong&gt;73.2&lt;/strong&gt; |      77.0 |
| Cross-task / unseen |    22.4 |  16.0 | &lt;strong&gt;60.8&lt;/strong&gt; |     54.8 |      58.8 |
| Cross-env / seen    |    15.6 |  13.6 |     18.0 | &lt;strong&gt;33.6&lt;/strong&gt; |      64.8 |
| Cross-env / unseen  |    15.2 |  12.0 |     18.4 | &lt;strong&gt;29.6&lt;/strong&gt; |      54.0 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; LAPA 并非所有列都达到上限：在 cross-task unseen 上 VPT 更高，说明更准确的 IDM 伪标签仍然有价值。但 LAPA 在跨环境列的优势更明显，符合“latent action 不绑定某个具体 action coordinate system”的设计目标。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; SIMPLER 的 Bridgev2 预训练平均成功率为：Scratch 34.4、UniPi 1.3、VPT 51.0、LAPA 57.3、ActionVLA 63.5、OpenVLA 36.4。LAPA 在没有使用 Bridgev2 action label 的前提下接近 ActionVLA，并显著超过其他无标签视频基线。&lt;/p&gt;
&lt;p&gt;真实机器人结果的关键汇总：&lt;/p&gt;
&lt;p&gt;| 预训练              | Seen object / unseen combo | Unseen object | Unseen instruction |     平均 |
| ------------------- | -------------------------: | ------------: | -----------------: | -------: |
| OpenVLA (Bridge)    |                       35.6 |          34.6 |               22.1 |     30.8 |
| LAPA (Bridge)       |                       43.4 |          31.4 |               35.6 |     36.8 |
| OpenVLA (Open-X)    |                       46.2 |          42.1 |               43.4 |     43.9 |
| &lt;strong&gt;LAPA (Open-X)&lt;/strong&gt;   |                   &lt;strong&gt;57.8&lt;/strong&gt; |      &lt;strong&gt;43.9&lt;/strong&gt; |           &lt;strong&gt;48.5&lt;/strong&gt; | &lt;strong&gt;50.1&lt;/strong&gt; |
| LAPA (Human Videos) |                       36.5 |          37.4 |               28.1 |     34.0 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; LAPA（Open-X）在三种泛化设置都超过 OpenVLA（Open-X）；但在 pick-and-place 的早期 grasping 上仍可能失败，OpenVLA 在该子任务更强。论文报告 LAPA 的 reaching performance 为 83.33%，高于 OpenVLA 的 66.67%。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-lapa/ablation_model_scale.4ubo4t0kjz.webp&quot; alt=&quot;LAPA 的模型规模、数据规模与 latent space scaling 消融（论文 Figure 7）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 消融显示三类 scaling 都有收益：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;增大 LAQ model 参数量，SIMPLER 成功率上升；&lt;/li&gt;
&lt;li&gt;增加预训练数据比例，性能持续提升；&lt;/li&gt;
&lt;li&gt;扩大 latent action 的 sequence length 或 vocabulary，通常能提高下游成绩。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;但 latent space 的最佳形状取决于数据中的动作复杂度：Language Table 这类视觉简单、动作维度低的环境，扩大 vocabulary 比扩大 sequence length 更有效；对于更复杂的行为，增加 sequence length 才有更多表达空间。窗口 $H$ 过大时性能下降，因为 300M 规模的 LAQ 难以建模很大的视觉 delta。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-lapa/latent_analysis.58i3vo8vhu.webp&quot; alt=&quot;不同离散 latent action 在视频重建中的语义对应关系（论文 Figure 8）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在 Language Table 中，不同 latent token 对应左/右、前/后等稳定移动方向；在 Something-Something V2 中，latent action 还会编码相机移动；在 Open-X 多 embodiment 数据上，相同 latent action 在不同机器人和环境中能诱导相似的视觉变化。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 人类视频预训练并非只在仿真有效：LAPA（Sthv2）在 SIMPLER 平均成功率 52.1%，高于 UniPi 0.7%，也高于 VPT 45.8%；真实机器人平均 34.0%，说明“人类手部操作视频 → 机器人 manipulation prior”确实存在正迁移。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; LAPA 的有效性可以拆成三个层面：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;表示层&lt;/strong&gt;：VQ codebook 把连续视觉变化压缩成可预测 token，让 VLM 能用成熟的 token prediction 学动作先验。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;迁移层&lt;/strong&gt;：latent action 主要描述“观测如何变化”，而不是 WidowX 或 Franka 的绝对关节坐标，因此跨 embodiment 时少了一层 action-space overfitting。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;数据层&lt;/strong&gt;：LAQ 只需要两帧，预训练数据从“有 action label 的机器人轨迹”扩展到任意带时间顺序的视频；视频规模和物体多样性直接转化为 policy 的先验。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 真正的创新不是单独使用 VQ-VAE，也不是单独使用 VLM，而是把“从未来帧反推 latent action”和“根据任务预测 latent action”串成一个可 fine-tune 的接口。这个接口同时扮演 pseudo action label、跨 embodiment 中间表示和 world model control token 三个角色。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;| 方法      | 无标签视频如何变成监督                     | 是否绑定 embodiment                      | 预训练输出          |
| --------- | ------------------------------------------ | ---------------------------------------- | ------------------- |
| UniPi     | 生成未来视频，再用 IDM 解码动作            | IDM/动作解码器仍受数据集影响             | 视频计划            |
| VPT       | 用动作标签训练 IDM，再给无标签视频打伪动作 | 依赖 IDM 的 action space                 | 伪 action           |
| ActionVLA | 直接使用真实 robot action label            | 强绑定预训练 embodiment                  | 真实 action token   |
| &lt;strong&gt;LAPA&lt;/strong&gt;  | LAQ 从帧间变化直接学习 codebook            | latent space 更接近共享 transition space | latent action token |&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; LAPA 至少依赖以下假设：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;相邻帧之间的视觉变化包含足够的任务相关动作信息；&lt;/li&gt;
&lt;li&gt;同一个 codebook 可以在不同 embodiment 中表示可迁移的 transition；&lt;/li&gt;
&lt;li&gt;少量 fine-tuning 数据足以把 latent policy 对齐到目标机器人的物理动作；&lt;/li&gt;
&lt;li&gt;视频中的语言描述与视觉变化大体对应，而不是完全由剪辑、相机运动或旁观者行为主导。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 作者明确指出：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;LAPA 在 fine-grained grasping 等精细运动上弱于直接 action pretraining，可能需要扩大 latent action generation space。&lt;/li&gt;
&lt;li&gt;与其他 VLA 一样，真实机器人实时推理仍有 latency；作者建议未来采用更高频的小型 hierarchical action head。&lt;/li&gt;
&lt;li&gt;虽然观察到 latent action 能表示相机运动，但论文尚未系统探索导航、自动驾驶或非 manipulation 场景。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;LAQ 的监督是未来图像重建，因此一个 token 可能同时解释机械臂运动、物体运动、相机运动和遮挡变化，语义不一定是可执行 action。&lt;/li&gt;
&lt;li&gt;当前公开的 &lt;code&gt;ImageVideoDataset&lt;/code&gt; 针对 Sthv2 目录结构，且随机采样轨迹目录而不是精确的 frame-level episode index；换数据集需要自行改 loader。&lt;/li&gt;
&lt;li&gt;latent pretraining 与 action fine-tuning 是顺序训练，fine-tuning 会替换 latent head；如果目标机器人与预训练视频差异很大，少量标签可能不足以恢复接触动力学、抓取姿态和夹爪时序。&lt;/li&gt;
&lt;li&gt;论文的 real-world 结果使用 partial success criteria，平均分能够反映泛化趋势，但不能完全等价于端到端任务完成率。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; LAPA 给后续工作留下了三个清晰方向：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;从 transition token 到 hierarchical action language&lt;/strong&gt;：当前 $8^4$ latent space 对粗粒度移动有效，但抓取仍不够细。可以让高层 latent token 表示技能阶段，让低层 action decoder 负责接触和力控制。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;把 camera-centric latent 与 robot-centric latent 分离&lt;/strong&gt;：人类视频中的相机移动是有用信号，也可能是噪声。显式分解 object motion、camera motion 和 agent motion，可能让跨场景迁移更稳定。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;利用 decoder 做 test-time planning&lt;/strong&gt;：论文已经展示 latent policy + LAQ decoder 的 neural rollout。下一步可以采样多个 latent plan，用视觉目标判别器或语言评分器筛选，再执行最有希望的候选轨迹。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;扩大到互联网视频前先解决数据质量&lt;/strong&gt;：真正的 YouTube-scale 训练需要过滤剪辑、镜头切换、第三视角与手持相机运动，并构建语言描述与帧窗口的可靠对齐。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;LAPA 最值得借鉴的并不是“把 action 离散成 8 个 codebook”，而是它重新定义了预训练的最小监督单位：只要视频能说明“状态发生了变化”，就可以先学习一个中间动作语言；物理可执行性则留到目标 embodiment 的小规模 fine-tuning 再解决。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/69606244_p0_master1200.64eg2rlm3q.webp"/><enclosure url="https://pic.hana0721.top/69606244_p0_master1200.64eg2rlm3q.webp"/></item><item><title>LAP：Language-Action Pre-Training 论文精读</title><link>https://agusexp25.top/blog/paper-deep-dive-lap</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-lap</guid><description>精读 LAP-3B：把连续末端动作写成自然语言，再用 flow-matching action expert 实现零样本跨 embodiment 迁移。</description><pubDate>Tue, 25 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 这篇论文的核心问题是：一个已经在多种机器人数据上预训练的 Vision-Language-Action（VLA）模型，为什么仍然无法直接控制一台从未见过的机器人？作者的答案不是继续扩大 embodiment 覆盖，而是重新设计动作监督信号：把“向前移动 5 cm、逆时针旋转 20°”这类低层动作写成自然语言（language-action）。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-lap/overview-crop.1764h932r4.webp&quot; alt=&quot;LAP 的总体目标与 LAP-3B 概览（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; LAP 将连续末端位姿增量按固定坐标系和模板转换为语言序列，用 Cross-Entropy 训练 VLM 保留可迁移的语义表示；同时用轻量 flow-matching action expert 预测连续动作，使 LAP-3B 能以 25 Hz 执行控制，并在未见过的机器人上取得超过 50% 的平均零样本成功率。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;提出不需要 learned tokenizer、人工动作标注或 embodiment-specific 结构的 Language-Action Pre-training（LAP）。&lt;/li&gt;
&lt;li&gt;实现 LAP-3B：PaliGemma-3B VLM + 约 300M 参数的 action expert，保留语言监督的表示优势，同时避免自回归语言动作采样过慢。&lt;/li&gt;
&lt;li&gt;在四种机器人、十个真实操作任务和 LIBERO 上评估；三个未见 embodiment 的平均零样本成功率超过 50%，约为最强基线的 2 倍。&lt;/li&gt;
&lt;li&gt;展示更快的 fine-tuning、更平滑的 unseen-embodiment 训练误差、随模型规模增长的收益，以及与 motion-prediction VQA 共训练的额外增益。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; LAP 的真正变量不是“是否统一到末端动作空间”，而是“用什么分布来监督 VLM”。这使它成为一个 action representation 论文，而不只是另一个更大的 VLA。&lt;/p&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 传统 VLA 通常让 VLM 直接输出连续关节/末端动作、离散化动作 token 或 FAST token。它们在训练 embodiment 内可以工作，但动作 token 往往是任意的、缺乏语义结构，容易把 VLM 的语言视觉表示拉向 embodiment-specific 的控制规律。即使把动作统一成末端位姿，已有模型仍很难在新夹爪、新相机位置或不同自由度的机器人上零样本运行。&lt;/p&gt;
&lt;p&gt;已有的 language-action 工作证明了语言监督有助于语义 grounding，但有些方法只输出粗粒度子任务，依赖额外的低层控制器；LAP 的区别是直接从连续末端轨迹解析出细粒度动作描述，并在大规模机器人数据上训练。它也不同于 FAST：FAST 需要一个 learned tokenizer，而 LAP 的字符串由确定性规则生成。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 给定多视角 RGB 图像、本体状态和任务指令：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Observation&lt;/strong&gt;：$o_t = {I_t^1,\ldots,I_t^n,s_t}$，其中状态是笛卡尔末端位置、连续 6D 旋转表示和二值夹爪状态。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Task input&lt;/strong&gt;：自然语言任务指令 $l$，以及说明使用 base frame 或 end-effector frame 的 prompt。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Raw action&lt;/strong&gt;：长度为 $H=16$ 的末端位姿增量序列 $a_{t:t+H}$，每步 7 维（平移、旋转、夹爪）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Language-action target&lt;/strong&gt;：把整个 action chunk 的净位移和净旋转汇总成一段字符串，例如 &lt;code&gt;move forward 5 cm; tilt left 10 degrees; open gripper&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Embodiment&lt;/strong&gt;：训练混合了 OXE 与 MolmoAct 数据；测试包含 seen DROID，以及未见的 Custom Franka、YAM 和 Kinova。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 训练时 VLM 自回归预测语言动作，action expert 同时预测连续 chunk；推理时只滚动 action expert，语言动作分支主要提供可迁移的 VLM 表示。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-lap/method-crop.szoqdur73.webp&quot; alt=&quot;LAP-3B 的语言动作监督、Mixture-of-Transformers 与 flow action expert（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 图像、状态和指令进入 PaliGemma VLM；VLM 以语言 token 形式预测动作描述，轻量 action expert 通过 cross-attention 读取 VLM 表示并以 flow matching 生成连续动作。两条分支共享输入，但 action expert 的梯度被阻断，不让低层控制损坏 VLM 的语言视觉知识。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;Language-action curation&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 作者采用固定坐标约定：$+x$ 向前、$+y$ 向左、$+z$ 向上，旋转遵循右手系 Euler 角。动作 chunk 内的连续增量先累积，再量化为整数厘米和整数角度；零值分量被省略。训练时 50% 使用 robot base frame，50% 使用 end-effector frame，并把 frame 名称写入 prompt。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;src/lap/policies/transforms/action_text.py&lt;/code&gt; 的 &lt;code&gt;summarize_numeric_actions&lt;/code&gt; 将米转换为厘米、弧度转换为角度，并附加 &lt;code&gt;open gripper&lt;/code&gt; / &lt;code&gt;close gripper&lt;/code&gt;。&lt;code&gt;ActionProcessor&lt;/code&gt; 会根据 &lt;code&gt;random_base_prob&lt;/code&gt; 决定是否先转换到 end-effector frame；&lt;code&gt;lang_action_formats.py&lt;/code&gt; 负责把推理出的字符串解析回 7 维数值动作。&lt;/p&gt;
&lt;h4&gt;VLM backbone&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; LAP-3B 初始化自 PaliGemma-3B。图像被 resize 到 $224\times224$；状态经过全数据集 1%/99% quantile 归一化，并以 255 个离散 bin 作为 prompt token。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;src/lap/models/lap_config.py&lt;/code&gt; 默认使用 &lt;code&gt;gemma_2b&lt;/code&gt; VLM、&lt;code&gt;gemma_300m&lt;/code&gt; action expert、&lt;code&gt;action_horizon=16&lt;/code&gt;，并支持 Gemma 3 的 4B/12B/27B scaling 配置。&lt;code&gt;CoTObservation&lt;/code&gt; 额外保存语言动作 mask、prediction/VQA mask 和数据集 id。&lt;/p&gt;
&lt;h4&gt;Action expert 与 knowledge insulation&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; action expert 是轻量的 flow-matching Transformer。它接收 VLM 的 prefix 表示和带噪 action chunk，输出速度场；VLM 与 action expert 只通过 cross-attention 通信，raw action 与 language-action 之间使用 causal mask 隔离。&lt;code&gt;stop_action_to_vlm_grad&lt;/code&gt; 进一步阻断 action expert 到 VLM 的反向梯度。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;src/lap/models/lap.py&lt;/code&gt; 的 &lt;code&gt;prepare_suffix&lt;/code&gt; 从高斯噪声和真实动作构造插值状态，&lt;code&gt;sample_actions&lt;/code&gt; 用固定步长 ODE 反向积分；&lt;code&gt;serve_policy.py&lt;/code&gt; 提供 &lt;code&gt;lap&lt;/code&gt;（flow）和 &lt;code&gt;lap_ar&lt;/code&gt;（自回归语言动作）两种服务模式，默认使用 flow 模式。&lt;/p&gt;
&lt;h4&gt;VQA / motion prediction co-training&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 给模型两张图，并询问“机器人从第一张图到第二张图做了什么运动”，答案仍是同一种 language-action 字符串。因此普通 VQA 和动作监督可以共享输出空间，不需要新增动作头。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;语言动作的 Cross-Entropy&lt;/h4&gt;
&lt;p&gt;$$
\mathcal L_{\mathrm{CE}}
=-\mathbb E_{(\hat a^{\mathrm{lang}}&lt;em&gt;{t:t+H},o_t,l)\sim\mathcal D}
\sum_i\log p&lt;/em&gt;\theta!\left(\hat a^{\mathrm{lang}}&lt;em&gt;{t,i}\mid o_t,l,\hat a^{\mathrm{lang}}&lt;/em&gt;{t,&amp;#x3C;i}\right).
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; $\hat a^{\mathrm{lang}}_{t,i}$ 是第 $i$ 个语言 token；$o_t$ 是图像和状态；$l$ 是任务指令。该式与普通 seq2seq language modeling 相同，关键在于监督目标已经被转换到 VLM 熟悉的自然语言分布。&lt;/p&gt;
&lt;h4&gt;Flow matching&lt;/h4&gt;
&lt;p&gt;给定真实 chunk $a$ 和噪声 $z\sim\mathcal N(0,I)$：&lt;/p&gt;
&lt;p&gt;$$
x_\tau=(1-\tau)z+\tau a,\qquad u=a-z,\qquad \tau\sim\mathcal U(0,1),
$$&lt;/p&gt;
&lt;p&gt;$$
\mathcal L_{\mathrm{FM}}=\mathbb E\left[\left|v_\phi(x_\tau,\tau;o_t,l)-u\right|_2^2\right].
$$&lt;/p&gt;
&lt;p&gt;这里 $v_\phi$ 是 action expert 的速度场；训练目标是让它学会把噪声分布运输到条件动作分布。总体目标为：&lt;/p&gt;
&lt;p&gt;$$
\mathcal L=\mathcal L_{\mathrm{FM}}+\lambda\mathcal L_{\mathrm{CE}}.
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 预训练使用 $\lambda=0.8$，fine-tuning 使用 $\lambda=0.4$；语言损失收敛较快，降低其权重可以避免它压过 flow 分支。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 训练数据来自 DROID（85.26%）、Fractal（5.86%）、Bridge（3.39%）、MolmoAct（1.73%）以及其他 OXE 数据集。数据先过滤无任务指令和连续静止片段，再按 16M shuffle buffer 混合。全局 batch size 为 2048，在 64 个 TPU v6e 上训练 15k steps；论文报告最终 hero run 约 50 小时，早期 checkpoint 在约 10 小时已经能工作。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 数据转换在 &lt;code&gt;lap/datasets&lt;/code&gt; 和 &lt;code&gt;lap/policies/transforms&lt;/code&gt; 中完成；&lt;code&gt;scripts/train.py&lt;/code&gt; 负责训练、EMA 和 checkpoint。图像训练增强包括 95% random crop、$[-5^\circ,5^\circ]$ 旋转及 brightness/contrast/saturation 0.2 的 color jitter；VQA 样本跳过增强。代码同时支持仅语言动作训练、flow action 训练，以及 prediction/VQA 的 sample-specific loss mask。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 推理时 VLM 处理当前图像、状态和任务 prompt，action expert 从噪声开始积分到 $\tau=0$，得到长度 16 的连续末端动作 chunk。服务端只返回 flow 分支的动作，不需要等待语言 token 完整采样；论文在 RTX 4090 上报告 25 Hz 控制频率。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;scripts/serve_policy.py&lt;/code&gt; 加载 checkpoint 并通过 WebSocket 提供策略；真实机器人脚本通常执行 action chunk 的前 8 步后再次查询（约 0.5 秒 open-loop），DROID 客户端的环境控制频率为 15 Hz。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;| 论文概念             | 官方代码位置                                      | 实际行为                                                             |
| -------------------- | ------------------------------------------------- | -------------------------------------------------------------------- |
| Language-action 生成 | &lt;code&gt;lap/policies/transforms/action_text.py&lt;/code&gt;          | 将 7D 末端增量汇总成 cm/degree 文本，并可解析回数值动作              |
| 双参考系             | &lt;code&gt;action_processor.py&lt;/code&gt;、&lt;code&gt;frame_transforms.py&lt;/code&gt;      | 训练中按概率转换到 EEF frame，推理时从 prompt 读取 frame             |
| VLM + action expert  | &lt;code&gt;lap/models/lap.py&lt;/code&gt;、&lt;code&gt;lap_config.py&lt;/code&gt;              | prefix 使用 VLM，suffix 使用 flow expert；默认 horizon=16            |
| Knowledge insulation | &lt;code&gt;stop_action_to_vlm_grad&lt;/code&gt;                         | 训练配置可阻断 action expert 对 VLM 的梯度                           |
| VQA / prediction     | &lt;code&gt;CoTObservation&lt;/code&gt;、&lt;code&gt;compute_loss&lt;/code&gt;                  | 通过 mask 和 loss weight 把普通语言、motion prediction、VQA 合并训练 |
| 实时部署             | &lt;code&gt;scripts/serve_policy.py&lt;/code&gt;、&lt;code&gt;scripts/real_robot/*&lt;/code&gt; | flow checkpoint 通过 WebSocket 服务，客户端执行 action chunk         |&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-lap/zeroshot-crop.8dxlul1lgm.webp&quot; alt=&quot;LAP-3B 的零样本跨 embodiment 评测设置（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 评测覆盖 DROID（seen）、Custom Franka、YAM、Kinova（三个 unseen），任务包括 pick-and-place、sort、tissue、put towel 和 pour。每个 embodiment 的两个任务各运行 20 次，成功必须完成整个任务；置信区间采用有限样本有效的 95% binomial interval。论文总计进行了 1300 多次真实机器人试验。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在 seen DROID 上，LAP-3B 与专门用 DROID 微调的 $\pi_{0.5}$-DROID 性能相当，却没有使用 embodiment-specific fine-tuning。更关键的是，在三个未见 embodiment 上，LAP-3B 的平均成功率超过 50%，约为最强 baseline 的 2 倍；包括 $\pi_{0.5}$-DROID 在内的公开 VLA 基线几乎全部降为 0%。&lt;/p&gt;
&lt;p&gt;| 设置                         | LAP-3B 现象                                                             | 论文解读                                     |
| ---------------------------- | ----------------------------------------------------------------------- | -------------------------------------------- |
| Seen DROID                   | 与 $\pi_{0.5}$-DROID 相当                                               | 语言动作可从混合数据中恢复有效控制           |
| Unseen Franka / YAM / Kinova | 平均成功率 &gt;50%                                                         | 语义意图与低层 embodiment 解耦               |
| 复制基线                     | $\pi_{0.5}$-replicated、$\pi_0$-replicated 明显落后；VLA-0 常输出小动作 | 任意 token 或纯 action expert 监督更易过拟合 |&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-lap/finetune-crop.67y78t9vg1.webp&quot; alt=&quot;LAP-3B 在 LIBERO 与真实任务上的 fine-tuning 效率（论文 Figure 4）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在 LIBERO 上，LAP-3B 一个 epoch 已达 78% 成功率，六个 epoch 达 96.8%；真实 Hang Tape on Rack 任务达到约 50% progress 时只需 20 条示教，约比 baseline 少 2.5 倍数据。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-lap/analysis-crop.7q14308xf.webp&quot; alt=&quot;LAP-3B 的表示、unseen action error 与 VQA co-training 分析（论文 Figure 5/8）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;去掉语言动作监督（$\pi_0$-replicated）后，unseen action prediction error 为 0.189；LAP-3B 为 0.151。&lt;/li&gt;
&lt;li&gt;t-SNE 中 LAP-3B 的 seen 与 unseen embodiment 表示重叠更多，$\pi_{0.5}$-replicated 则形成分离簇。&lt;/li&gt;
&lt;li&gt;motion-prediction VQA co-training 提升 Custom Franka/YAM 成功率，并在 LIBERO 将平均成绩从 96.8% 提升到 97.2%。&lt;/li&gt;
&lt;li&gt;在 Gemma3 4B、12B、27B scaling 实验中，LAP 的 token 与 action validation loss 随模型规模单调改善，而 $\pi_{0.5}$-replicated 更早饱和甚至退化。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-lap/cotrain-crop.6wrgstxefa.webp&quot; alt=&quot;Motion-prediction VQA co-training 的成功率对比（论文 Figure 8）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文真正测试的是 cross-embodiment generalization，而不是新任务语言泛化：任务语义保持相近，机器人结构、自由度、夹爪或相机配置变化。&lt;strong&gt;【Analysis】&lt;/strong&gt; 因此“零样本泛化”应理解为控制接口和 embodiment 的迁移，不应扩展解读为对任意新任务或任意传感器布局都有效。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; LAP 同时解决了两个尺度的问题：VLM 负责用自然语言学习“应该向哪里、以多大幅度移动”的语义规律，action expert 负责把这个规律落到高频连续控制。语言描述把动作的净效果显式化，减少了不同机器人关节坐标和控制频率带来的表面差异；flow expert 则避免了直接自回归生成每个控制 token 的延迟。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 创新点可以压缩为“representation + insulation + execution”：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;用确定性 language-action 替代任意离散 action token。&lt;/li&gt;
&lt;li&gt;用 knowledge insulation 保住预训练 VLM 表示。&lt;/li&gt;
&lt;li&gt;用独立 action expert 把语言监督转成实时 flow 控制。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; FAST、VLA-0 等方法仍把离散 token 当作数值容器；LAP 的 token 本身带有方向、单位和动作类别语义。另一方面，LAP 并没有声称 language-action 可以直接替代连续控制器：实际控制仍由 action expert 完成，语言分支更像一个跨 embodiment 的中间表示学习器。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 方法依赖固定坐标约定、可获得末端位姿增量和可信任务指令。&lt;strong&gt;【Analysis】&lt;/strong&gt; 还隐含假设不同机器人之间存在足够相似的末端操作语义：如果任务依赖接触力、柔性形变或高速反应，单个 chunk 的净位移可能丢失关键中间过程。&lt;/p&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文目前只研究单臂机械臂的跨 embodiment 迁移，没有系统评估双臂或更异构的机器人。作者认为双臂可以扩展为 &lt;code&gt;Left arm: ...; Right arm: ...&lt;/code&gt;，但这仍需实验验证。论文也没有覆盖极高控制频率、极端精密或复杂可变形物体操作。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;语言动作采用整数厘米/角度，量化能抑制噪声，却可能限制小于厘米级的接触操作。&lt;/li&gt;
&lt;li&gt;训练与测试共享末端动作语义；没有末端位姿或 frame 变换质量差的机器人，收益可能下降。&lt;/li&gt;
&lt;li&gt;50 小时级别的 TPU 训练与 1300 次以上真实试验成本很高，公开结果未必容易由普通实验室复现。&lt;/li&gt;
&lt;li&gt;论文把 action expert 的连续输出与 VLM 的语言输出绑定在同一条数据上；当动作标签严重缺失或语言指令不可靠时，联合目标的优势尚未验证。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; LAP 给 VLA 研究的启发不是“所有动作都应该变成句子”，而是应让监督信号尽量贴近 backbone 已经学会的分布，同时保留一个适合实时控制的专用解码器。后续值得验证三个方向：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;多尺度语言动作&lt;/strong&gt;：高层用“抓住毛巾”，低层用厘米/角度描述，分别覆盖长时程任务和精密接触。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;不确定性与安全约束&lt;/strong&gt;：让 action expert 同时估计 language-action 的置信度，在未见 embodiment 上主动降低速度或请求示教。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;更弱标签的数据&lt;/strong&gt;：把人类视频、UMI 或 pose tracking 转换为粗粒度 language-action，检验 LAP 是否能利用低精度但规模更大的数据。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;如果把 VLA 看作“视觉语义模型 + 机器人执行器”，LAP 的贡献就在于给两者之间提供了一个人和模型都能读懂的接口：它不是抽象的 action id，也不是裸的数值向量，而是带单位、方向和效果的动作语言。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/64131498_p0_master1200.45i9cfg3rk.webp"/><enclosure url="https://pic.hana0721.top/64131498_p0_master1200.45i9cfg3rk.webp"/></item><item><title>Knowledge Insulating Vision-Language-Action Models 论文精读</title><link>https://agusexp25.top/blog/paper-deep-dive-knowledge-insulating-vla</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-knowledge-insulating-vla</guid><description>精读 Knowledge Insulation：用离散动作学习保护 VLM 表征，再用无梯度回传的 Flow Matching action expert 实现快速、连续且更会听指令的 VLA。</description><pubDate>Tue, 25 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 这篇论文研究的不是“连续动作头要不要用”，而是“随机初始化的连续动作头应该怎样接入预训练 VLM”。作者发现，直接让 Flow Matching / Diffusion action expert 的梯度更新 VLM，会同时拖慢收敛并破坏 web 预训练带来的语言知识；因此提出 Knowledge Insulation：训练时让 backbone 继续预测 FAST 离散动作，action expert 独立学习连续动作，但禁止 expert 梯度穿过注意力层回到 backbone。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-knowledge-insulating-vla/model_v2.pg2sow9sf.webp&quot; alt=&quot;Knowledge Insulation 的 backbone、离散动作与连续 action expert 总览（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;系统分析连续 action expert 加入 VLA 后的三个问题：训练速度变慢、语言指令跟随退化、VLM / web 知识向机器人策略的迁移变差。&lt;/li&gt;
&lt;li&gt;提出联合训练目标：用 FAST token 的 next-token prediction 学习机器人表征，用 Flow Matching 学习连续 action chunk；两种动作表示在训练时同时存在，推理时只运行较小的连续 expert。&lt;/li&gt;
&lt;li&gt;提出 attention-level stop-gradient。信息可以从 VLM backbone 流向 action expert，但 action expert 的梯度不能反向改变 backbone 的预训练表征。&lt;/li&gt;
&lt;li&gt;在静态单臂、静态双臂、移动双臂、DROID 和 LIBERO 上验证：方法取得更高任务成功率、更好的 language following，并且收敛速度接近 FAST、明显快于只用 Flow Matching 的 π₀。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 论文的实际创新是一个训练接口：离散动作承担稳定的 representation learning，连续 expert 承担高频控制。它把“最容易优化的目标”和“最适合执行的表示”解耦，而不是再设计一个更大的 VLA backbone。&lt;/p&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; VLM 的预训练目标是离散 token 的 next-token prediction，而机器人控制需要高频、连续、精确的关节或末端位姿命令。把动作简单离散化可以复用语言模型训练，但会带来量化误差和自回归推理延迟；Flow Matching / Diffusion action head 可以一次生成连续 action chunk，却通常需要从零初始化一组新参数。&lt;/p&gt;
&lt;p&gt;已有路线各有取舍：&lt;/p&gt;
&lt;p&gt;| 路线                    | 训练信号               | 推理特点          | 主要问题                                    |
| ----------------------- | ---------------------- | ----------------- | ------------------------------------------- |
| π₀                      | Flow Matching 连续动作 | 快、连续          | expert 梯度可能干扰 VLM，训练慢、语言跟随差 |
| π₀-FAST                 | FAST 离散动作          | 自回归，约 1.3 Hz | 动作分辨率和推理速度受限                    |
| OpenVLA-OFT             | 并行离散解码           | 快                | 连续精细控制能力有限                        |
| HybridVLA / Transfusion | 离散与连续联合         | 依实现而定        | 注意力或梯度耦合仍可能造成干扰              |
| Knowledge Insulation    | 离散表征 + 连续 expert | 连续 action chunk | 训练成本增加约 20%，需要两套动作目标        |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; “冻结 backbone”看似能保留知识，但论文实验显示预训练 VLM 没有足够的机器人状态和动作表征；真正可行的方案是继续更新 backbone，只是换掉有害的梯度来源。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 给定多视角图像 $I_{1:V}$、本体状态 $q\in\mathbb{R}^{s}$、语言指令 $\ell$，策略需要输出长度为 $H$ 的连续动作块 $a_{1:H}$：&lt;/p&gt;
&lt;p&gt;$$
a_{1:H}\sim\pi_\theta(\cdot\mid I_{1:V},q,\ell),\qquad a_i\in\mathbb{R}^{d}
$$&lt;/p&gt;
&lt;p&gt;动作可以是关节角、末端位姿、夹爪或底盘相关控制量。论文同时为同一动作块构造 FAST 离散 token $y^{\mathrm{act}}$，并允许模型在一般 VLM 数据上输出语言 token $y^\ell$。&lt;/p&gt;
&lt;p&gt;| 对象           | 训练输入                                   | 训练输出                 | 推理用途                    |
| -------------- | ------------------------------------------ | ------------------------ | --------------------------- |
| VLM backbone   | 图像、语言、state、历史 token              | 文本 / FAST action token | 学习可迁移表示              |
| Action expert  | backbone prefix、noisy action、时间 $\tau$ | vector field             | 生成连续 action chunk       |
| Attention mask | token 类型与可见性                         | 信息流约束               | 防止离散 / 连续动作互相泄漏 |&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 模型以 PaliGemma 为 VLM backbone，并增加一个约 300M 参数的 Gemma action expert。图像和语言进入 backbone；FAST action token 作为自回归输出训练 backbone；连续 noisy action 进入 expert。backbone 可以影响 expert，但 VLM token 不读取 expert token，形成单向的信息流。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 一句话数据流是：&lt;code&gt;图像 + 语言 + state → VLM prefix → (FAST 离散动作 loss, Flow Matching action expert) → 连续 action chunk&lt;/code&gt;。架构图只负责说明连接关系，训练与推理步骤分别见 4.4 和 4.5。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;VLM Backbone&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：多路图像 patch、语言 token、机器人 state。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：共享 transformer hidden states 与语言 / FAST token logits。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;作用&lt;/strong&gt;：把 web 规模的视觉语言知识适配到机器人观测。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; backbone 使用预训练 PaliGemma 2B；视觉输入由 vision transformer 编码，文本由 embedding matrix 编码，连续输入则可经 affine projection 转成模型维度。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;FAST Action Tokens&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：连续动作块 $a_{1:H}$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;中间步骤&lt;/strong&gt;：对每个动作维度做离散余弦变换（DCT），量化后使用 byte-pair encoding 压缩。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：长度远小于逐维逐时刻离散化的 token 序列。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要&lt;/strong&gt;：它只在训练时提供稳定的 next-token learning signal，不承担最终的实时动作解码；因此可用更快的自回归目标塑造 backbone，而不把推理延迟带到部署端。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Flow Matching Action Expert&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：$a^{\tau,\omega}&lt;em&gt;{1:H}=\tau a&lt;/em&gt;{1:H}+(1-\tau)\omega$、时间步 $\tau$ 和 backbone prefix。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;结构&lt;/strong&gt;：动作先经线性投影；时间步经 sinusoidal positional encoding 与 MLP，再注入 expert 的每层 RMSNorm；expert 宽度 1024、深度 18、MLP 维度 4096。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：每个动作位置的 vector field，经线性层还原到动作维度。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要&lt;/strong&gt;：Flow Matching 能在少量积分步中生成连续、高分辨率的 action chunk，避免逐 token 自回归。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Knowledge Insulation&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 单头注意力的概率块可写为：&lt;/p&gt;
&lt;p&gt;$$
P=\begin{pmatrix}P_{bb}&amp;#x26;0\P_{ab}&amp;#x26;P_{aa}\end{pmatrix}
$$&lt;/p&gt;
&lt;p&gt;其中 $b$ 表示 backbone token，$a$ 表示 action-expert token。计算 $P_{ab}$ 和 value 汇聚时，对 backbone 的 $K_b,V_b$ 使用 stop-gradient：&lt;/p&gt;
&lt;p&gt;$$
P=\operatorname{softmax}!\left(
\begin{pmatrix}
Q_b(X_b)K_b(X_b)^\top &amp;#x26; 0\
Q_a(X_a)\operatorname{sg}(K_b(X_b))^\top &amp;#x26; Q_a(X_a)K_a(X_a)^\top
\end{pmatrix}+A\right)
$$&lt;/p&gt;
&lt;p&gt;于是 action expert 仍能读取 backbone 的特征，但 Flow Matching loss 不会经由 $P_{ab}$ 回传到 backbone；backbone 则从语言与 FAST action loss 获得自己的训练信号。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;自回归离散动作目标&lt;/h4&gt;
&lt;p&gt;$$
\mathcal{L}&lt;em&gt;{\mathrm{AR}}(\theta)=
\mathbb{E}&lt;/em&gt;{(x,y)\sim\mathcal{D}}
\left[-\sum_{j=1}^{n-1}M_j\log p_\theta(y_{j+1}\mid x_{1:j})\right]
$$&lt;/p&gt;
&lt;p&gt;$x$ 是多模态输入 token，$y$ 包含语言与 FAST action token，$M_j$ 是 loss mask。这个目标更新 backbone，使其学会从观测和指令直接表达机器人动作。&lt;/p&gt;
&lt;h4&gt;Flow Matching 目标&lt;/h4&gt;
&lt;p&gt;$$
\mathcal{L}&lt;em&gt;{\mathrm{FLOW}}(\theta)=
\mathbb{E}&lt;/em&gt;{\mathcal{D},\tau,\omega}
\left[\left|\omega-a_{1:H}-f^a_\theta(a^{\tau,\omega}_{1:H})\right|_2^2\right]
$$&lt;/p&gt;
&lt;p&gt;$\omega\sim\mathcal{N}(0,I)$ 是噪声，$\tau\in[0,1]$ 是 flow 时间，$f^a_\theta$ 是 action expert 的 vector field。论文使用偏向低时间步的 Beta 分布，而不是简单均匀采样。&lt;/p&gt;
&lt;h4&gt;联合目标&lt;/h4&gt;
&lt;p&gt;$$
\mathcal{L}&lt;em&gt;{\mathrm{CO\text{-}VLA}}
=\mathcal{L}&lt;/em&gt;{\mathrm{AR}}+\alpha M^{\mathrm{act}}\mathcal{L}_{\mathrm{FLOW}}
$$&lt;/p&gt;
&lt;p&gt;$M^{\mathrm{act}}$ 只在样本包含动作监督时打开；$\alpha$ 控制连续动作项。使用知识隔离后，论文指出可以取 $\alpha=1$，因为 Flow loss 不再与 backbone 的梯度竞争。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-knowledge-insulating-vla/vla_problems.3gp50rie8b.webp&quot; alt=&quot;论文中的训练问题与标准 VLA 的失败模式（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 作者在单机器人 specialist 与跨 embodiment generalist 两种设置下训练。generalist 数据包含 12 类机器人配置（静态单臂、静态双臂、移动双臂）以及 OXE；同时混合图像描述、VQA、目标定位等 VLM 数据。机器人任务包括 table bussing、items in drawer、shirt folding、make bed、dish in sink、mobile items in drawer 和 laundry in basket。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 关键训练设置包括：action horizon $H=50$；PaliGemma backbone 宽度 2048、深度 18、MLP 维度 16384；action expert 宽度 1024、深度 18、MLP 维度 4096；时间步采样为偏向低 $\tau$ 的 Beta 分布。联合训练比单一目标多约 20% 计算，但由于收敛更快，墙钟时间仍优于只使用 Flow Matching 的 π₀。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 运行时不需要生成 FAST token。给定图像、state 和语言指令，先计算 backbone prefix；随后从高斯噪声初始化 50 步 action chunk，使用 action expert 做约 10 次 flow integration，输出连续动作。执行一部分 chunk 后再次观测并滚动预测。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方 &lt;code&gt;openpi&lt;/code&gt; 的 &lt;code&gt;Pi0.sample_actions&lt;/code&gt; 会先对 prefix 做一次 forward 并缓存 KV，再在循环中只计算 action suffix；默认 &lt;code&gt;num_steps=10&lt;/code&gt;，从 $t=1$ 的噪声端以 $dt=-1/N$ 积分到 $t=0$。README 的公开调用是 &lt;code&gt;policy.infer(example)[&apos;actions&apos;]&lt;/code&gt;。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方仓库为 &lt;a href=&quot;https://github.com/Physical-Intelligence/openpi&quot;&gt;Physical-Intelligence/openpi&lt;/a&gt;。与论文的对应关系如下：&lt;/p&gt;
&lt;p&gt;| 论文概念                    | 官方代码位置                                      | 对照结果                                    |
| --------------------------- | ------------------------------------------------- | ------------------------------------------- |
| PaliGemma backbone + SigLIP | &lt;code&gt;src/openpi/models/pi0.py&lt;/code&gt;                        | &lt;code&gt;gemma_2b&lt;/code&gt; 与 &lt;code&gt;So400m/14&lt;/code&gt; 图像编码器        |
| 300M action expert          | &lt;code&gt;src/openpi/models/pi0.py&lt;/code&gt;、&lt;code&gt;gemma.py&lt;/code&gt;            | 默认 &lt;code&gt;gemma_300m&lt;/code&gt;                           |
| action horizon              | &lt;code&gt;src/openpi/models/pi0_config.py&lt;/code&gt;                 | π₀.₅ 默认 50                                |
| π₀.₅ state 表示             | &lt;code&gt;src/openpi/models/pi0_config.py&lt;/code&gt;、&lt;code&gt;tokenizer.py&lt;/code&gt; | &lt;code&gt;discrete_state_input=True&lt;/code&gt;                 |
| timestep 注入               | &lt;code&gt;src/openpi/models/pi0.py&lt;/code&gt;                        | π₀.₅ 用 adaRMSNorm；π₀ 使用拼接 MLP         |
| Flow loss / sampling        | &lt;code&gt;Pi0.compute_loss&lt;/code&gt;、&lt;code&gt;Pi0.sample_actions&lt;/code&gt;          | Beta 时间采样、10-step Euler 积分           |
| 训练配置                    | &lt;code&gt;src/openpi/training/config.py&lt;/code&gt;                   | 提供 &lt;code&gt;pi05_droid&lt;/code&gt;、&lt;code&gt;pi05_libero&lt;/code&gt; 等微调配置 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 当前公开仓库 README 明确写着：π₀.₅ 目前只支持 Flow Matching head 的训练与推理；论文中“FAST 离散目标 + Flow expert + knowledge insulation”的完整联合预训练配方没有以一个可直接复现实验的公开配置出现。因此，代码可以核实模型形状、state 与 flow 推理，但不能声称公开仓库完整复现论文全部训练数据和 stop-gradient 实验。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-knowledge-insulating-vla/tasks.8okfnrbdyp.webp&quot; alt=&quot;论文中的实验任务：items in drawer、make bed、dish in sink、shirt folding、table bussing、DROID 与 LIBERO（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文在真实机器人和公开 benchmark 上评估：静态单臂的 items in drawer / table bussing，静态双臂的 shirt folding，移动双臂的 make bed、dish in sink、mobile items in drawer、laundry in basket，以及 DROID 和 LIBERO。移动任务的测试场景完全未出现在训练中；每个真实任务每个策略评估 10 个 episode。&lt;/p&gt;
&lt;p&gt;比较对象包括 π₀、π₀-FAST、OpenVLA-OFT、Transfusion、HybridVLA、joint-training（无 stop-gradient）、去掉 VLM data 的 joint-training，以及 naive tokenization。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-knowledge-insulating-vla/ur5_all.99u3a25ul9.webp&quot; alt=&quot;静态单臂 table bussing 上的性能、速度与语言跟随比较（论文 Figure 5）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 主要结果可以归纳为：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;items in drawer：Knowledge Insulation 在未见环境中同时取得最高任务性能和最高 language following；π₀ 与无隔离的 joint-training 容易忽略语言，π₀-FAST 较慢，HybridVLA 与冻结 backbone 都不可行。&lt;/li&gt;
&lt;li&gt;table bussing：本文方法性能最高且推理时间低；π₀-FAST 能听懂语言但完成任务约需两倍墙钟时间；π₀ 语言跟随明显变差。&lt;/li&gt;
&lt;li&gt;generalist 收敛：本文方法的训练步数曲线接近 π₀-FAST；π₀ 需要约 7.5 倍训练步数才能达到相近性能。&lt;/li&gt;
&lt;li&gt;DROID：本文方法得分 $0.55\pm0.09$，π₀ 为 $0.49\pm0.09$，π₀-FAST 为 $0.45\pm0.09$。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; LIBERO 成功率（%）如下：&lt;/p&gt;
&lt;p&gt;| 方法                    |  Spatial | Object | Goal | 10 / Long |       90 |
| ----------------------- | -------: | -----: | ---: | --------: | -------: |
| OpenVLA-OFT             |     97.6 |   98.4 | 97.9 |      94.5 |        — |
| π₀                      |     96.8 |   98.8 | 95.8 |      85.2 |        — |
| π₀-FAST                 |     96.4 |   96.8 | 88.6 |      60.2 |        — |
| Ours（from scratch）    |     96.6 |   97.2 | 94.6 |      84.8 |     92.7 |
| Ours（from generalist） | &lt;strong&gt;98.0&lt;/strong&gt; |   97.8 | 95.6 |      85.8 | &lt;strong&gt;96.0&lt;/strong&gt; |&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-knowledge-insulating-vla/training_curve.4xva2imj9f.webp&quot; alt=&quot;generalist table bussing 的训练策略与训练曲线（论文 Figure 6）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 消融揭示了三个互补因素：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;去掉 stop-gradient 后，joint-training 的任务完成和语言跟随下降，说明连续 expert 的随机初始化确实会把噪声梯度带进 backbone。&lt;/li&gt;
&lt;li&gt;去掉 VLM data 后，generalist 的语言跟随和跨物体泛化变差，尤其在 mobile manipulation 上明显。&lt;/li&gt;
&lt;li&gt;用 naive tokenization 替代 FAST 仍优于只训练连续动作，但效果不如 FAST；对 naive token 做 stride=5 的子采样反而更好，说明 representation learning 需要紧凑的时间抽象。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; state 表示消融显示 text state 与 continuous state 都能工作，special-token state 较差；因此方法优势不能简单归因于某一种 state 编码。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-knowledge-insulating-vla/mm_end2end.4clmg7s324.webp&quot; alt=&quot;四个未见环境 mobile manipulation 任务的平均性能（论文 Figure 9）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在新物体、新场景和移动操作任务上，VLM data co-training 对语义泛化尤其重要。作者把它解释为：caption、VQA、定位等数据让 backbone 保持对物体和语言的开放词汇知识，再由离散 action loss 把这些表示接到机器人动作上。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这不是“VLM 数据越多越好”的直接证明；实验只比较了论文给定的数据混合物与去除 VLM data 的版本，数据质量、比例和任务难度仍可能共同影响结论。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 可以从优化和表示两个层面理解：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;FAST cross-entropy 的梯度密集、稳定，能快速把 backbone 调整到“观察 → 动作”的机器人表示空间。&lt;/li&gt;
&lt;li&gt;Flow Matching expert 直接学习连续向量场，负责控制精度，但它的新参数在训练初期并不可靠。&lt;/li&gt;
&lt;li&gt;stop-gradient 把二者的职责隔开：backbone 不被随机 expert 的早期误差牵着走，expert 又能读取已经适配机器人的 prefix。&lt;/li&gt;
&lt;li&gt;VLM data co-training 提供与机器人动作无关的语言 / 视觉锚点，缓解 catastrophic interference。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 创新点不是单独的 FAST、Flow Matching 或 mixture-of-experts，而是将三者放进同一阶段的训练图，并在 attention 内部定义明确的梯度方向。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; “知识隔离”比简单冻结更细：冻结会阻止机器人数据塑造 backbone，知识隔离只阻断最危险的 expert → backbone 路径，保留离散动作和 VLM loss 对 backbone 的适配能力。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;| 方案      | Backbone 是否从动作 expert 收梯度 | 连续动作 | 离散动作训练信号 | 推理速度 |
| --------- | --------------------------------- | -------- | ---------------- | -------- |
| π₀        | 是                                | 是       | 否               | 快       |
| π₀-FAST   | 不涉及 expert                     | 否       | 是               | 慢       |
| HybridVLA | 有耦合                            | 是       | 是               | 依实现   |
| 本文      | 否（stop-gradient）               | 是       | 是               | 快       |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 本文的本质区别是“训练时双表示、推理时单表示”：离散动作是训练辅助目标，连续 expert 才是部署接口。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 方法依赖以下假设：VLM backbone 的隐藏状态可以同时支持 token prediction 和连续动作条件建模；FAST token 足以提供有用的机器人表征；action expert 只需读取 backbone 表示，而不必反过来塑造它。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 如果任务需要连续 expert 发现 backbone 中没有的低层视觉特征，完全 stop-gradient 可能限制上限；论文在多种真实任务上验证了当前设置，但没有证明它对所有 embodiment、传感器或控制频率都最优。&lt;/p&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;同时训练离散与连续输出使训练计算量增加约 20%，只是被更快的收敛部分抵消。&lt;/li&gt;
&lt;li&gt;语言跟随仍不完美；训练数据中的视觉与动作相关性可能让模型继续忽略明确的语言指令。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;论文的 stop-gradient 发生在 attention 的 key/value 路径，实际实现需要修改 transformer 内核；公开 openpi 当前版本主要展示 π₀.₅ 的 Flow Matching 路径，并不能直接复现实验中的完整联合训练和隔离消融。&lt;/li&gt;
&lt;li&gt;两套动作表示会增加数据管线、loss mask、checkpoint 和调参复杂度；&lt;code&gt;α&lt;/code&gt;、FAST 压缩率和动作 horizon 之间的耦合没有系统搜索。&lt;/li&gt;
&lt;li&gt;论文报告了任务成功率和 language following，但没有给出完整的 wall-clock、显存和吞吐分解，因此“训练更快”主要是相对训练步数和收敛曲线的结论。&lt;/li&gt;
&lt;li&gt;连续 expert 的 10-step 积分仍然是固定计算预算；当动作分布更复杂或控制频率更高时，所需步数可能增加。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这篇论文给 VLA 训练带来的启发可以概括为四点：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;把预训练目标当作稳定器。&lt;/strong&gt; 离散 token 并不只是部署时的动作表示，也可以作为连续控制模型的 representation-learning scaffold。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;不要把“共享表示”误解成“共享梯度”。&lt;/strong&gt; 多模态 expert 可以共享前向信息，但反向传播的方向应按模块初始化质量和任务职责设计。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;知识迁移需要正则化接口。&lt;/strong&gt; VLM data co-training 与 stop-gradient 都是在保护语义知识；仅仅把 VLM 权重拷贝到 VLA 并不等于真正迁移。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;评估 VLA 要同时看三条曲线：&lt;/strong&gt; 任务成功率、语言跟随率和达到目标性能所需的墙钟时间。只报最终成功率，无法看出 π₀、π₀-FAST 与本文方法的核心差异。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;后续值得验证的问题是：能否让 stop-gradient 的强度随训练阶段变化；能否用蒸馏或低秩适配器允许少量 expert → backbone 梯度；以及能否把 FAST 的离散监督换成更紧凑的 action codec，同时保留连续控制的精度。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/126839080_p0_master1200.232gprncye.webp"/><enclosure url="https://pic.hana0721.top/126839080_p0_master1200.232gprncye.webp"/></item><item><title>InternVLA-M1 论文精读：用空间先验连接 VLM 推理与机器人动作</title><link>https://agusexp25.top/blog/paper-deep-dive-internvla-m1</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-internvla-m1</guid><description>精读 InternVLA-M1：通过 230 万条空间 grounding 数据、空间提示和双监督训练，让 Qwen2.5-VL 的空间推理迁移到 DiT 动作专家。</description><pubDate>Tue, 25 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; InternVLA-M1 的问题意识很直接：机器人要执行“把红色玩具放进盒子”时，VLM 需要知道的不只是“是什么”，还包括“在哪里”和“怎样移动”。论文把空间 grounding 设为 instruction 与 embodiment-specific action 之间的桥梁，提出一个双系统（dual-system）VLA：慢而可靠的 &lt;code&gt;VLM Planner&lt;/code&gt; 负责空间推理，快而专门化的 &lt;code&gt;DiT Actor&lt;/code&gt; 负责连续控制。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-internvla-m1/teaser-crop.73uooafwu9.webp&quot; alt=&quot;InternVLA-M1 teaser from paper Figure 1&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这篇论文真正训练的不是“更大的动作头”，而是一种可迁移的空间中间表示：先让模型学会把语言落到 box、point 和 trajectory，再让动作专家读取这些空间先验，生成某个机器人能执行的 action chunk。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;提出空间引导的两阶段 recipe：&lt;code&gt;spatial grounding pre-training&lt;/code&gt; 训练 VLM Planner，&lt;code&gt;spatially guided action post-training&lt;/code&gt; 训练 VLA。&lt;/li&gt;
&lt;li&gt;构建超过 3M 的多模态数据，其中超过 2.3M 条是 box、point、trajectory 等空间 reasoning 数据；另用 InternData-M1 生成 244K 个可验证的 pick-and-place episode。&lt;/li&gt;
&lt;li&gt;用 &lt;code&gt;spatial prompting&lt;/code&gt; 显式激活 VLM 的空间能力，并用 co-training 同时优化语言理解与机器人动作。&lt;/li&gt;
&lt;li&gt;在 SimplerEnv、LIBERO、大规模 200-task 仿真和真实 Franka/ARX LIFT2 任务上验证未见物体、未见布局、未见指令和长时程重规划能力。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方仓库同时发布 Qwen2.5-VL-3B、DiT Action Header、DINOv2、多视角推理、SimplerEnv/LIBERO/真实机器人接口，以及 Hugging Face checkpoint。&lt;/p&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 直接把 VLM 当作 Policy 通常有两个瓶颈。第一，文本 token 并不是连续控制的自然表示，离散化动作会损失精度；第二，机器人数据规模远小于互联网图文数据，模型容易学到局部 motor pattern，却没有学会绝对位置、相对关系、affordance 和轨迹等可迁移先验。&lt;/p&gt;
&lt;p&gt;已有层级系统会用检测器、分割器或手工 planner 显式处理空间信息，但 rule-based 分解难以覆盖开放世界指令。另一类 VLA（如 OpenVLA、$\pi_0$、GR00T）直接从视觉和语言预测动作，端到端更简洁，却没有把空间推理作为独立训练目标。InternVLA-M1 的折中是：保持端到端联合优化，但在模型内部保留一个明确的 spatial prior 训练通道。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 因此它与普通“VLM + action head”的差别不在于多了一个 projector，而在于改变了监督信号的组织方式：grounding 数据不再只是预训练背景，而是和 action loss 一起约束共享的 Planner。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 给定多视角 RGB 观测 $o_t$ 与自然语言指令 $l$，模型输出长度为 $H=16$ 的连续动作块：&lt;/p&gt;
&lt;p&gt;$$
\pi(o_t,l) = (a_t,a_{t+1},\ldots,a_{t+H-1}),\qquad a_i\in\mathbb{R}^{7}.
$$&lt;/p&gt;
&lt;p&gt;在主要设置中，7 维动作是末端执行器的平移增量、旋转增量和夹爪状态；具体控制空间会随 benchmark 使用 delta end-effector 或 delta joint space。论文使用单目/双目 RGB 输入，代码的公开 action demo 默认接收两个视角。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 空间 grounding 任务则把图像和指令映射到 box、point、trajectory 或 QA 文本。点坐标归一化为绝对坐标，box 常以 &lt;code&gt;[x1,y1,x2,y2]&lt;/code&gt; 的 JSON/XML 形式输出。&lt;/p&gt;
&lt;p&gt;| 项目 | InternVLA-M1 设置 |
| --- | --- |
| Planner | Qwen2.5-VL-3B-Instruct |
| Action Expert | 86M Diffusion Policy/DiT（公开配置为 DiT-B） |
| 额外视觉编码器 | DINOv2 ViT-S/14，约 21M 参数 |
| 总参数量 | 约 4.1B |
| Action chunk | 16 步（当前动作 + 15 个 future actions） |
| 主要数据 | 3M+ 多模态数据、244K InternData-M1 仿真 episode |
| 部署 | 单张 RTX 4090，约 12GB；论文报告 VLM 约 10 FPS |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;internvla_cotrain_oxe.yaml&lt;/code&gt; 将 &lt;code&gt;action_dim&lt;/code&gt; 设为 7、&lt;code&gt;future_action_window_size&lt;/code&gt; 设为 15、&lt;code&gt;action_model_type&lt;/code&gt; 设为 &lt;code&gt;DiT-B&lt;/code&gt;，并把 VLA 输入图像调整为 224×224。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-internvla-m1/main_framework-crop.2h91nlhdh8.webp&quot; alt=&quot;InternVLA-M1 overall framework from paper Figure 2&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Stage 1 只训练 VLM Planner，使其获得 embodiment-agnostic spatial prior；Stage 2 以 spatial prompt 激活这些先验，并把 Planner 的 latent planning tokens 交给 DiT Actor，联合学习“where to act”和“how to act”。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;VLM Planner：空间先验的载体&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：RGB 图像、任务指令，以及训练时附加的空间提示。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：语言 head 的 grounding/QA 输出，以及供动作专家使用的 latent condition。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;作用&lt;/strong&gt;：通过 Qwen2.5-VL 的视觉-语言融合，把“目标物、容器、相对位置、轨迹约束”编码成可迁移特征。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文把 Planner 解释为 System 2：它不直接输出关节动作，而是先形成可靠的空间计划。空间提示的例子是“Identify all relevant toys and their spatial relationships to the container.”，模型不必把这段辅助思考显式回答出来，但它会改变条件特征。&lt;/p&gt;
&lt;h4&gt;DINOv2 视觉分支&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：每个视角的 224×224 RGB 图像。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：密集视觉 token，经线性层投影到 Qwen hidden size。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要&lt;/strong&gt;：Qwen2.5-VL 提供开放语义，DINOv2 补充对物体局部形状和空间细节更稳定的视觉表征。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;InternVLA/model/framework/M1.py&lt;/code&gt; 调用 &lt;code&gt;prepare_dino_input&lt;/code&gt; 后把多视角 token reshape 成 &lt;code&gt;[B, views×tokens, D]&lt;/code&gt;，再经过 &lt;code&gt;dino_pro&lt;/code&gt; 投影。这个显式 DINO 分支是代码实现中的关键细节，不能简化成“只用 Qwen 图像 token”。&lt;/p&gt;
&lt;h4&gt;Layerwise Q-Former：把 Planner 变成固定长度条件&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：Qwen 最后若干层 hidden states 与 DINO token。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;中间模块&lt;/strong&gt;：每一层用 cross-attention 更新 64 个 learnable query tokens。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：固定长度的 action condition，维度与 DiT hidden size 对齐。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要&lt;/strong&gt;：VLM token 长度会随图像和文本变化，动作专家则更适合接收固定大小的条件序列。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;LayerwiseQFormer&lt;/code&gt; 先把 hidden states 投影到 768 维，再逐层 cross-attend；公开 OXE 配置只选 Qwen 的第 36 层（&lt;code&gt;start_layer=36, end_layer=37&lt;/code&gt;），所以配置中的“layerwise”当前实际上是单层聚合。代码还定义了 &lt;code&gt;scale_hook&lt;/code&gt;，但 &lt;code&gt;forward&lt;/code&gt; 没有调用它，意味着配置里的 &lt;code&gt;grad_scale: 0.5&lt;/code&gt; 在当前公开路径中不一定真正生效；这是论文叙述与仓库实现需要区分的地方。&lt;/p&gt;
&lt;h4&gt;DiT Action Expert：连续动作生成器&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：带噪的 16×7 action sequence、diffusion timestep、Q-Former condition。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：噪声预测 $\hat\epsilon$，经反向扩散得到 normalized action chunk。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;作用&lt;/strong&gt;：用 temporal self-attention 建模动作相关性，用 diffusion 表达同一场景下多个可行轨迹。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;公开代码提供三种规模：&lt;/p&gt;
&lt;p&gt;| 变体 | 深度 | hidden/token size | heads | 论文参数量 |
| --- | ---: | ---: | ---: | ---: |
| DiT-S | 6 | 384 | 4 | 13M |
| DiT-B | 12 | 768 | 12 | 89M |
| DiT-L | 24 | 1024 | 16 | 308M |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这里的“动作专家”不是把空间坐标直接硬编码到控制器，而是让 DiT 学会把空间条件转换为某个 embodiment 的连续运动分布；因此同一个 Planner 可以在下游换用不同 action dataset 和控制空间。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;扩散动作目标&lt;/h4&gt;
&lt;p&gt;前向过程把真实动作 $a_0$ 加噪为：&lt;/p&gt;
&lt;p&gt;$$
a_t = \sqrt{\bar\alpha_t}a_0 + \sqrt{1-\bar\alpha_t}\epsilon,
\qquad \epsilon\sim\mathcal{N}(0,I).
$$&lt;/p&gt;
&lt;p&gt;DiT 接收 $(a_t,t,z)$，其中 $z$ 是 Q-Former 输出的空间条件，并预测噪声：&lt;/p&gt;
&lt;p&gt;$$
\mathcal{L}&lt;em&gt;{\text{act}} = \mathbb{E}&lt;/em&gt;{a_0,t,\epsilon}
\left[|\epsilon-\epsilon_\theta(a_t,t,z)|_2^2\right].
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;ActionModel.forward&lt;/code&gt; 随机采样 timestep 和 Gaussian noise，调用 &lt;code&gt;q_sample&lt;/code&gt; 生成 $a_t$，再由 &lt;code&gt;DiT&lt;/code&gt; 预测噪声；&lt;code&gt;loss()&lt;/code&gt; 就是逐元素 MSE，没有额外的 VLB 项。&lt;/p&gt;
&lt;h4&gt;双监督目标&lt;/h4&gt;
&lt;p&gt;$$
\mathcal{L}=\mathcal{L}&lt;em&gt;{\text{act}}+\lambda&lt;/em&gt;{\text{vlm}}\mathcal{L}_{\text{vlm}},
$$&lt;/p&gt;
&lt;p&gt;其中 $\mathcal{L}&lt;em&gt;{\text{vlm}}$ 是 grounding/QA 的 next-token prediction，$\lambda&lt;/em&gt;{\text{vlm}}$ 控制空间监督的相对权重。论文强调两个梯度在同一更新中聚合，以避免 Planner 和 Action Expert 完全割裂。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;train_internvla_cotrain.py&lt;/code&gt; 先对 VLA batch 调用 &lt;code&gt;model.forward&lt;/code&gt;，再对 VLM batch 调用 &lt;code&gt;qwen_vl_interface&lt;/code&gt;，分别 backward；OXE 配置中 &lt;code&gt;vlm&lt;/code&gt; loss scale 为 0.1，并统一执行 gradient clipping 和 AdamW 更新。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 训练分成两阶段：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Spatial grounding pre-training&lt;/strong&gt;：使用 General QA（约 637K）、Box QA（约 879K）、Trajectory QA（约 684K）和 Point QA（约 832K），合计超过 3M 样本，其中空间数据超过 2.3M。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Spatially guided action post-training&lt;/strong&gt;：在机器人 demonstration 上训练 DiT，并交替/联合采样 spatial grounding batch；空间提示把 instruction 改写为带有“定位关键物体/关系”的输入。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; InternData-M1 的仿真引擎使用 14K 标注物体、211 张桌面、1.6K 纹理和 87 个 dome lights。规划、物理验证和渲染解耦：只有通过闭环执行和 scene-graph validator 的 episode 才会进入数据集。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;predict_action&lt;/code&gt; 将 instruction 转为小写，按训练分辨率处理每个视角，然后重复训练时的 Qwen+DINO+Q-Former 特征提取。动作从 Gaussian noise 开始，默认支持 DDIM；开启 &lt;code&gt;cfg_scale &gt; 1&lt;/code&gt; 时，代码把有条件与 null condition 拼接做 classifier-free guidance。README 的示例使用 &lt;code&gt;cfg_scale=1.5&lt;/code&gt;、DDIM 10 steps。&lt;/p&gt;
&lt;p&gt;真实机器人接口随后读取第一个 action，做 unnormalization，并可用 &lt;code&gt;AdaptiveEnsembler&lt;/code&gt; 融合历史预测。代码中的 ensemble 是 cosine-similarity 加权，而不是简单的时间平均；LIBERO 接口则按 action chunk 逐步消费预测序列。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;| 论文描述 | 官方代码对应 | 需要注意的差异 |
| --- | --- | --- |
| Qwen2.5-VL Planner | &lt;code&gt;InternVLA/model/modules/vlm/QWen2_5.py&lt;/code&gt; | 使用 &lt;code&gt;Qwen2.5-VL-3B-Instruct&lt;/code&gt; 配置 |
| 空间 latent adaptor | &lt;code&gt;model/modules/projector/QFormer.py&lt;/code&gt; | 公开配置只聚合第 36 层，并拼接 DINO token |
| DiT Actor | &lt;code&gt;model/modules/action_model/DiTActionHeader.py&lt;/code&gt; | 默认 &lt;code&gt;DiT-B&lt;/code&gt;，7D、16-step action chunk |
| 双监督 | &lt;code&gt;training/train_internvla_cotrain.py&lt;/code&gt; | action 与 VLM batch 分开 forward/backward 后同一 optimizer step |
| 空间提示 | &lt;code&gt;config/training/*.yaml&lt;/code&gt; 的 &lt;code&gt;CoT_prompt&lt;/code&gt; | 默认 prompt 要求输出目标物 bounding box |
| 梯度衰减 | 配置有 &lt;code&gt;grad_scale: 0.5&lt;/code&gt; | &lt;code&gt;scale_hook&lt;/code&gt; 当前未在 Q-Former &lt;code&gt;forward&lt;/code&gt; 中调用，不能直接视为已生效 |
| 推理部署 | &lt;code&gt;examples/real_robot/controller_dual.py&lt;/code&gt; | 支持 action unnormalization、chunking、ensemble 和 Franka 控制 |&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 实验覆盖四类场景：SimplerEnv 的 Google Robot/WidowX、LIBERO Franka、包含 200 个任务和 3K+ 物体的 Isaac Sim，以及真实 Franka Research 3 和 ARX LIFT2。SimplerEnv 主要测试视觉匹配、颜色/纹理变化和跨机器人泛化；LIBERO 测试 Spatial、Object、Goal 和 Long 四种语言条件任务。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-internvla-m1/sim-instruction-following-pick-and-place-result-crop.8z79gwscwm.webp&quot; alt=&quot;InternVLA-M1 simulated instruction-following setup from paper&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 相对同一 Qwen2.5-VL-3B + DiT 的 Vanilla VLA，空间引导训练在 SimplerEnv 上带来明显提升：&lt;/p&gt;
&lt;p&gt;| Benchmark | Vanilla VLA | InternVLA-M1 | 提升 |
| --- | ---: | ---: | ---: |
| Google Robot Visual Matching | 66.1 | 80.7 | +14.6 |
| Google Robot Variant Aggregation | 63.5 | 76.0 | +12.5 |
| WidowX Visual Matching | 54.7 | 71.7 | +17.0 |
| LIBERO 平均 | 91.6 | 95.9 | +4.3 |&lt;/p&gt;
&lt;p&gt;论文还报告 InternVLA-M1 超过 GR00T N1.5 和 $\pi_0$ 的公开结果；在 LIBERO-Spatial、Object、Goal、Long 上分别为 98.0%、99.0%、93.8% 和 92.6%。这些数字支持的不是“所有任务都更强”，而是空间变化和长时程任务的优势更明显。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-internvla-m1/combined_three_plots_abl-crop.8z79gwscsi.webp&quot; alt=&quot;InternVLA-M1 ablation on spatial grounding, manipulation and gradient similarity&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 去掉 spatial data 和 spatial prompt 后，RefCOCO-g grounding 很快退化，SimplerEnv-WidowX 收敛也更慢；加入 spatially guided action post-training 后，两条曲线同时改善。论文用 Projection-space Similarity 衡量两个任务的梯度子空间：普通 co-training 约为 0.25，空间引导方案约为 0.42。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这项 ablation 说明空间提示不是推理时的装饰词，而是一个优化接口：它让 action loss 更容易沿着与 grounding loss 相容的表示方向更新。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-internvla-m1/instruction-following-pick-and-place-result-crop.7lkqcvhax7.webp&quot; alt=&quot;InternVLA-M1 simulated and real-world generalization results&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在 200-task 仿真中，加入 244K InternData-M1 mid-training 后平均提升 6.2%，并在 unseen objects、new backgrounds 和 paraphrased instructions 上稳定优于 $\pi_0$ 与 GR00T N1.5。真实 clustered pick-and-place 中，sim-to-real co-training 对未见物体与新位置尤其有效，论文摘要报告未见物体/新配置最高提升 20.6%。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-internvla-m1/long_horizon_result-crop.6t7uv50pbl.webp&quot; alt=&quot;InternVLA-M1 real-world long-horizon results&quot;&gt;&lt;/p&gt;
&lt;p&gt;长时程任务包括桌面分类、抽屉整理、三明治制作、数学按钮选择和按价格购物。&lt;strong&gt;【Paper】&lt;/strong&gt; Ours-3B 的 planner scheduling 成功率为 90/91/91/93/92，超过 GPT-5、Gemini-2.5 Pro、GPT-4o 和 Qwen2.5-VL-72B；在物理干扰和中途新增指令时，性能下降也更小。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 有三个互补原因：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Grounding 数据把“目标是什么、在哪里、与什么有关系”变成了显式监督，弥补机器人 demonstration 的稀疏性。&lt;/li&gt;
&lt;li&gt;Spatial prompt 把同一空间能力重新激活到 action context，避免 VLM 预训练知识在 post-training 中被动作梯度冲掉。&lt;/li&gt;
&lt;li&gt;DiT 在连续 action sequence 上建模分布，而不是让 VLM 逐 token 生成精细控制；这更适合多模态轨迹和时间相关性。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 最有价值的创新是训练 recipe，而不是单个网络层：&lt;code&gt;spatial prior → spatial prompt → action expert&lt;/code&gt; 形成了一条从 embodiment-agnostic 语义到 embodiment-aware 控制的路径。仿真引擎则把这条路径扩展到更丰富的物体、纹理和布局。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 普通 VLA 把视觉语言和动作看作同一个 prediction head 的不同输出；InternVLA-M1 把它们看作“共享空间表征 + 专门动作解码”的两个时间尺度。System 2 规划 latent condition，System 1 以 action chunk 高频执行；这比外挂一个完全独立的 task planner 更容易端到端训练，也比单一 policy 更容易保留通用视觉语言能力。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 空间 grounding 能跨 robot embodiment 迁移，动作专家只需学习平台相关的控制细节。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; Q-Former condition 足以压缩 Planner 的空间状态；如果任务依赖长历史、接触力或精确 proprioception，这个瓶颈可能不成立。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 仿真器的物体资产、相机标定和物理验证足够接近真实分布，否则 244K synthetic episodes 可能只是扩大了错误的先验。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文主要展示桌面抓取、放置、抽屉、三明治和按钮等任务；对移动机器人、双臂协同、力控和长时间持续任务没有系统评估。论文也没有给出完整的 failure taxonomy 或不同空间数据源的独立贡献分解。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;论文声称的 gradient decay 与仓库实现存在不确定性：配置有 &lt;code&gt;grad_scale&lt;/code&gt;，但公开 Q-Former forward 没有调用 &lt;code&gt;scale_hook&lt;/code&gt;，复现实验者需要自行确认 checkpoint 的实际训练路径。&lt;/li&gt;
&lt;li&gt;训练与评测大量依赖 224×224 图像和 16-step chunk；更高分辨率、小物体、遮挡和快速接触动作可能暴露感知或控制瓶颈。&lt;/li&gt;
&lt;li&gt;公开代码把 action normalization statistics 保存在 checkpoint 中，跨数据集切换控制空间时必须正确加载对应 key；否则模型看似能输出动作，实际尺度会错误。&lt;/li&gt;
&lt;li&gt;长时程实验展示了很强的结果，但每个任务的 teleoperation 数据和 subtask 标注成本仍然不低，距离完全自动化的数据闭环还有差距。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; InternVLA-M1 给出的启发是，VLA 的规模化不一定首先来自更大的 backbone，也可以来自更好的“中间监督”。值得继续验证的方向包括：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;用统一的 3D point/trajectory token 替代部分 2D box QA，让空间先验直接对齐深度和可达性。&lt;/li&gt;
&lt;li&gt;让 Q-Former 动态选择不同 VLM 层，而不是当前 OXE 配置固定只取第 36 层。&lt;/li&gt;
&lt;li&gt;将 gradient routing 从实验配置变成显式、可测试的模块，并报告不同衰减系数的 Pareto 曲线。&lt;/li&gt;
&lt;li&gt;用在线场景图和不确定性估计触发 re-planning，使 System 2 不只在长时程任务开始时工作。&lt;/li&gt;
&lt;li&gt;研究一个 Planner 迁移到多种 action expert、控制频率和 embodiment 的真正 zero-shot 边界。&lt;/li&gt;
&lt;/ul&gt;</content:encoded><h:img src="https://pic.hana0721.top/126903857_p0_master1200.2dpaix2l3u.webp"/><enclosure url="https://pic.hana0721.top/126903857_p0_master1200.2dpaix2l3u.webp"/></item><item><title>InSpire：用内在空间推理提升 VLA 泛化能力</title><link>https://agusexp25.top/blog/paper-deep-dive-inspire</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-inspire</guid><description>精读 InSpire：在动作生成前插入目标物体相对机器人方向的 VQA 桥接，用粗粒度空间推理抑制 VLA 的 shortcut learning 与 spurious correlation。</description><pubDate>Tue, 25 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;《InSpire: Vision-Language-Action Models with Intrinsic Spatial Reasoning》关注一个很具体、但经常被 VLA 忽略的问题：模型可能记住背景、物体颜色或场景布局与动作之间的偶然共现，而没有真正理解“语言指令中的哪个物体在机器人的哪个方向”。一旦测试分布改变，这种 shortcut learning 就会失效。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-inspire/mtv-icra.13mijdy38b.webp&quot; alt=&quot;InSpire 论文 Figure 1：直接观测到动作映射与空间推理桥接的对比&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; InSpire 把同一个 VLA 先当作 &lt;code&gt;extraction policy&lt;/code&gt;，回答“[object] 相对机器人是 right / left / up / down / front / back / grasped 中的哪一种”，再把这个文本问答对作为桥接信息，让 VLA 生成低层动作；它不需要额外的大模型或额外交互数据，因而可以作为现有自回归 VLA 的 plugin。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;用空间关系 VQA 显式抽取任务相关因素，缓解观测到动作直接映射带来的 spurious correlation。&lt;/li&gt;
&lt;li&gt;用第三人称视角下的机器人末端与目标物体位置，自动产生粗粒度方向标签，不需要人工逐帧标注。&lt;/li&gt;
&lt;li&gt;将空间答案 token 与动作 token 放在同一自回归训练目标中，使 VLA 同时学习 spatial reasoning 与 action prediction。&lt;/li&gt;
&lt;li&gt;在 LIBERO、CALVIN 以及真实 AGILEX PiPER 6DOF 机械臂上验证，并将方法应用到 miniVLA-VQ 与 π₀-FAST 两个基线。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这不是把 VLA 变成一个通用的长链式思考器，而是只引入一个与当前动作高度相关、答案空间很小的中间变量。论文真正的设计取舍是：牺牲少量 token 和推理时间，换取对“目标在哪里、机器人是否已经抓住它”的显式约束。&lt;/p&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; RT-1、RT-2、OpenVLA 等 VLA 通常把图像和语言直接映射到离散化的 action token。这样的端到端接口简洁，但也给模型留下了走捷径的空间：训练集中的目标物体、背景和动作往往共同出现，模型可以依赖与动作没有因果关系的视觉特征。&lt;/p&gt;
&lt;p&gt;论文将相关方向分成三类：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;VLA&lt;/strong&gt;：把 pretrained VLM 扩展成机器人策略，但大多直接做 observation-to-action mapping。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CoT / intermediate reasoning&lt;/strong&gt;：在动作前增加目标预测、子任务规划或迭代推理，通常依赖额外模型、额外数据或较长推理链。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Spatial reasoning&lt;/strong&gt;：SpatialVLM、SpatialVLA 等方法使用 2D/3D 空间信息；InSpire 选择把空间信息编码成自然语言答案，而不是把坐标或深度直接塞进输入。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; InSpire 的“空间”不是完整的 3D 场景重建。它只保留对当前动作足够有用的方向类别，因此更像一个 action-relevant bottleneck，而不是一个通用 world model。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 给定视觉观测 $o$、语言指令 $l$ 和专家动作 $a$，普通自回归 VLA 学习&lt;/p&gt;
&lt;p&gt;$$
\pi_\theta(a\mid o,l) \approx p(a\mid o,l).
$$&lt;/p&gt;
&lt;p&gt;论文把观测中的潜在因素拆成任务相关因素 $u$ 与任务无关因素 $v$。真实因果过程满足 $p(a\mid o,l)=p(a\mid u)$，但训练分布中可能出现 $p_{train}(u,v)\neq p_{train}(u)p_{train}(v)$，于是模型错误地学到 $a$ 与 $v$ 的统计相关性。&lt;/p&gt;
&lt;p&gt;InSpire 引入一个由空间问答得到的中间表示 $u&apos;$：&lt;/p&gt;
&lt;p&gt;$$
u&apos;=\pi_{u&apos;}(o,l), \qquad a=\pi_\theta(o,l,u&apos;).
$$&lt;/p&gt;
&lt;p&gt;这里的 $u&apos;$ 是文本问答对 $[q,g]$，其中 $q$ 是方向问题，$g$ 是方向答案。它不是额外网络，而是同一个 VLA 在不同 prompt 下生成的结果。&lt;/p&gt;
&lt;h3&gt;Embodied AI Checklist&lt;/h3&gt;
&lt;p&gt;| 项目                  | InSpire 的实现                                                                                             |
| --------------------- | ---------------------------------------------------------------------------------------------------------- |
| Vision Encoder        | 继承基线 VLA 的视觉编码器；论文实验使用 miniVLA-VQ 与 π₀-FAST                                              |
| Language Model        | 自回归 VLA 的语言 backbone                                                                                 |
| Multimodal Fusion     | 图像 token、空间问题 token、语言指令 token 在同一 prompt 中融合                                            |
| Observation           | 当前视觉观测；官方实现支持 primary image，亦保留 wrist/history 接口                                        |
| Action Representation | 基线原有的 action token；CALVIN 中为 delta XYZ、delta Euler angles 与 binary gripper                       |
| Action Tokenization   | 不新增连续坐标编码；空间答案是受限文本 token，动作仍使用基线 action tokenizer                              |
| Policy                | 先生成空间答案，再生成动作                                                                                 |
| Dataset               | LIBERO-90、LIBERO-Spatial、LIBERO-Object、LIBERO-Goal、LIBERO-Long 与 CALVIN；真实实验使用 10 个 seen task |
| Action Horizon        | 由基线 action tokenizer 决定，InSpire 不改变动作块接口                                                     |
| Real-world Deployment | π₀-FAST + InSpire，AGILEX PiPER 6DOF                                                                       |&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-inspire/method.5c1pt7oby4.webp&quot; alt=&quot;InSpire 论文 Figure 2：在 VLA 中插入空间 VQA 的整体架构&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 图像与语言指令进入 VLA 后，模型先回答目标物体相对机器人的方向，再将问题和答案作为文本上下文，输出最终 action token；同一次观测可以对指令中识别出的多个目标物体重复这个过程。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;1. 目标物体抽取与空间问题&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文用 NLTK 从语言指令中识别对象名称，再构造固定模板：&lt;code&gt;In which direction is the [object] relative to the robot?&lt;/code&gt;。答案集合是 &lt;code&gt;right / left / up / down / front / back / grasped&lt;/code&gt;，可选地包含 &lt;code&gt;close&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方 &lt;code&gt;datasets_with_vqa.py&lt;/code&gt; 并没有运行一个开放词汇检测器，而是维护 &lt;code&gt;_OBJECT_NAME_MAP&lt;/code&gt;，把诸如 &lt;code&gt;the black bowl&lt;/code&gt;、&lt;code&gt;the plate&lt;/code&gt;、&lt;code&gt;the basket&lt;/code&gt; 映射到 LIBERO 对象别名。&lt;code&gt;find_target_objects()&lt;/code&gt; 按字符串匹配提取目标；&lt;code&gt;post_process_object()&lt;/code&gt; 再修正 stove、shelf 等 prompt 的表述。因此，代码实现依赖任务词表，论文中的“从指令识别对象”在实际复现时需要同步扩充映射表。&lt;/p&gt;
&lt;h4&gt;2. 规则空间标签&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-inspire/labels2.70b2qeem3x.webp&quot; alt=&quot;InSpire 论文 Figure 3：由末端与目标位置生成方向标签&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 对每个 waypoint，记录机器人 gripper 与目标物体的 3D 位置。若末端位置为 $[x_i,y_i,z_i]$、物体位置为 $[x_0,y_0,z_0]$，则&lt;/p&gt;
&lt;p&gt;$$
\mathbf d=[x_i-x_0,\ y_i-y_0,\ z_i-z_0].
$$&lt;/p&gt;
&lt;p&gt;取 $|d_x|,|d_y|,|d_z|$ 最大的轴，并根据符号映射到一个粗粒度方向；若夹爪闭合且物体被抓住，则标签为 &lt;code&gt;grasped&lt;/code&gt;。这相当于把精确几何压缩成与动作更直接相关的离散语义。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;get_relation_to_robot()&lt;/code&gt; 默认使用 &lt;code&gt;coarse_direction&lt;/code&gt;：先用 &lt;code&gt;np.argmax(np.abs(gripper_to_obj))&lt;/code&gt; 选择主轴，再按阈值判断 &lt;code&gt;front/back&lt;/code&gt;、&lt;code&gt;left/right&lt;/code&gt; 或 &lt;code&gt;up/down&lt;/code&gt;；&lt;code&gt;check_catch&lt;/code&gt; 会优先输出 &lt;code&gt;catch&lt;/code&gt;，&lt;code&gt;check_close&lt;/code&gt; 控制近距离是否输出 &lt;code&gt;close&lt;/code&gt;。代码还提供 &lt;code&gt;coarse_direction_3d&lt;/code&gt;、&lt;code&gt;fine_direction_3d&lt;/code&gt;、&lt;code&gt;coarse_distance&lt;/code&gt; 和 &lt;code&gt;fine_distance&lt;/code&gt; 等替代模式。&lt;/p&gt;
&lt;h4&gt;3. 空间 VQA 与动作生成&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 同一个 VLA 共享视觉和语言 backbone，但承担两个角色：$π_{u&apos;}$ 生成空间答案，$π_\theta$ 根据 &lt;code&gt;[question, answer] + instruction&lt;/code&gt; 生成动作。这样中间文本会把注意力引向目标物体与机器人之间的关系。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;RLDSBatchTransformWithVQA&lt;/code&gt; 将每个目标扩展成一对 human/gpt 对话，再追加 &lt;code&gt;What action should the robot take to ...?&lt;/code&gt; 与 tokenized action。&lt;code&gt;mask_labels()&lt;/code&gt; 屏蔽 system 和 human prompt，仅保留 assistant 的空间答案及动作 token 参与交叉熵；因此代码实现的是一次前向中的联合自回归监督，而不是两个独立模型。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;空间中间表示&lt;/h4&gt;
&lt;p&gt;$$
u&apos;=[q,g], \qquad g\in{\text{right,left,up,down,front,back,grasped}}.
$$&lt;/p&gt;
&lt;p&gt;$q$ 指定要查询的对象，$g$ 是 VLA 根据当前图像生成的方向答案。答案集合越小，监督越稳定，也越容易迫使模型关注目标位置。&lt;/p&gt;
&lt;h4&gt;位置到方向的离散化&lt;/h4&gt;
&lt;p&gt;$$
k=\arg\max_{j\in{x,y,z}}|d_j|,
$$&lt;/p&gt;
&lt;p&gt;再依据 $d_k$ 的正负选择方向。&lt;strong&gt;【Analysis】&lt;/strong&gt; 这个规则不是为了恢复精确位姿，而是构造一个低成本、低熵的 action-relevant label；它也解释了为什么论文的 1D Direction 在消融中比精确距离更有效。&lt;/p&gt;
&lt;h4&gt;联合自回归目标&lt;/h4&gt;
&lt;p&gt;令 $y$ 包含空间答案 token 与 action token，则训练可写作&lt;/p&gt;
&lt;p&gt;$$
\mathcal L_{\mathrm{AR}}=-\sum_{t\in\mathcal T_{\mathrm{answer}}\cup\mathcal T_{\mathrm{action}}}
\log p_\theta(y_t\mid y_{&amp;#x3C;t},o,l,q).
$$&lt;/p&gt;
&lt;p&gt;其中 $Τ_answer$ 与 $Τ_action$ 是未被 mask 的 assistant token 位置。论文强调空间答案和动作同时监督；&lt;strong&gt;【Code】&lt;/strong&gt; 官方 collator 通过 &lt;code&gt;mask_labels()&lt;/code&gt; 实现这一点，未见额外的 VQA loss 权重。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 训练样本从 $(o_i,l_i,a_i)$ 扩展为 $(o_i,l_i,a_i,u&apos;_i)$。仿真中目标位置直接来自环境；真实环境中使用夹爪打开或闭合时记录的末端位置作为目标位置代理。VLA 使用 teacher-forcing 学习方向答案和动作 token。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;train_vqa.py&lt;/code&gt; 将 &lt;code&gt;vqa_mode=&apos;coarse_direction&apos;&lt;/code&gt;、&lt;code&gt;check_catch=True&lt;/code&gt;、&lt;code&gt;check_close=False&lt;/code&gt; 作为默认配置，训练步数默认 50,000；其余学习率、batch size、冻结策略和 action tokenizer 从 VLA 配置继承。官方脚本通过 RLDS 数据集、&lt;code&gt;RLDSBatchTransformWithVQA&lt;/code&gt; 与原有 VLA training strategy 训练，不需要额外的 VQA 数据集。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 推理时对当前观测执行同样的空间问答，再把答案拼接到动作 prompt 中。由于空间推理在每个观测上重新执行，模型可以根据执行状态修正后续动作。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;OpenVLAWithVQA.predict_action()&lt;/code&gt; 先调用 &lt;code&gt;find_target_objects(instruction)&lt;/code&gt;，逐个执行 &lt;code&gt;_predict_vqa()&lt;/code&gt;；VQA 生成使用受限 token mask，只允许预定义方向 token，并可将 &lt;code&gt;catch&lt;/code&gt; 归一化。随后 &lt;code&gt;_predict_action()&lt;/code&gt; 重新建立 action prompt，生成由基线 action tokenizer 解码的动作并反归一化。这里的 &lt;code&gt;catch&lt;/code&gt; 是代码接口名称，论文正文使用 &lt;code&gt;grasped&lt;/code&gt;，复现时需要注意这一命名差异。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;| 论文描述             | 官方代码位置                           | 实际行为                                                           |
| -------------------- | -------------------------------------- | ------------------------------------------------------------------ |
| 自动识别指令中的对象 | &lt;code&gt;vla_scripts/datasets_with_vqa.py&lt;/code&gt;     | &lt;code&gt;_OBJECT_NAME_MAP&lt;/code&gt; 字符串匹配，覆盖 LIBERO 对象和少量别名          |
| 规则生成方向标签     | &lt;code&gt;get_relation_to_robot()&lt;/code&gt;              | 主轴最大绝对位移；支持 grasp/catch、close 和多种 VQA mode          |
| 联合监督             | &lt;code&gt;RLDSBatchTransformWithVQA.__call__()&lt;/code&gt; | VQA 对话和动作对话串联，mask 后共同计算 AR loss                    |
| 受限 VQA 解码        | &lt;code&gt;vla_scripts/openvla_with_vqa.py&lt;/code&gt;      | 对 logits 乘方向 token mask，再 argmax 生成答案                    |
| 动作推理             | &lt;code&gt;_predict_action()&lt;/code&gt;                    | 复用基线 action tokenizer，输出连续动作并反归一化                  |
| 训练入口             | &lt;code&gt;vla_scripts/train_vqa.py&lt;/code&gt;             | 与原 VLA training strategy、RLDS dataloader 和 checkpoint 流程兼容 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 论文把 InSpire 描述为可插拔模块，代码层面的可插拔性主要体现在“给现有 prompt 和 collator 增加若干对话轮次”。它对依赖开放词汇、非自回归或 diffusion action head 的 VLA 并不是无条件兼容；论文也明确把 diffusion-policy VLA 的适配留作未来工作。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-inspire/realresults.1zizyu7rqv.webp&quot; alt=&quot;InSpire 论文 Figure 4：真实任务、成功率与额外推理时间&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 仿真部分使用 LIBERO 与 CALVIN。LIBERO 在 LIBERO-90 上训练，并在 Spatial、Object、Goal、Long 等 seen/unseen 任务上评估；CALVIN 采用 ABC→D 协议，在环境 D 上测试五个连续子任务。真实实验使用 AGILEX PiPER 6DOF：10 个 seen task，每个任务 10 条训练轨迹，另设计 5 个 unseen task，每个任务测试 10 次。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方仓库提供 &lt;code&gt;train_baseline_libero90.sh&lt;/code&gt;、&lt;code&gt;train_inspire_libero90.sh&lt;/code&gt; 以及对应 eval 脚本；README 同时公开 miniVLA-LIBERO90、InspireVLA-LIBERO90 和 union4 checkpoint 下载地址。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;h4&gt;LIBERO&lt;/h4&gt;
&lt;p&gt;| 模型                 | LIBERO-90 seen |    unseen 平均 |
| -------------------- | -------------: | -------------: |
| miniVLA-VQ           |     83.3 ± 1.2 |      3.6 ± 0.4 |
| miniVLA-VQ + InSpire | &lt;strong&gt;89.5 ± 1.5&lt;/strong&gt; | &lt;strong&gt;13.6 ± 3.9&lt;/strong&gt; |
| π₀-FAST              |     83.1 ± 1.0 |      5.7 ± 0.8 |
| π₀-FAST + InSpire    | &lt;strong&gt;84.1 ± 1.0&lt;/strong&gt; |  &lt;strong&gt;8.5 ± 1.3&lt;/strong&gt; |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; InSpire 让 miniVLA-VQ 在 seen 任务提升 6.2 个百分点，在 unseen 平均提升 10.0 个百分点；对 π₀-FAST 的提升分别为 1.0 和 2.8 个百分点。收益在 LIBERO-Spatial 与 LIBERO-Object 上尤其明显，而 LIBERO-Long 的提升有限，说明空间桥接不等于高层任务规划。&lt;/p&gt;
&lt;p&gt;论文还在四个 LIBERO 数据集的联合 fine-tuning 设置下比较了 reasoning-based VLA：&lt;/p&gt;
&lt;p&gt;| 模型              |  Spatial |   Object |     Goal |     Long |  Average |
| ----------------- | -------: | -------: | -------: | -------: | -------: |
| SpatialVLA-4B     |     88.2 |     89.9 |     78.6 |     55.5 |     78.1 |
| CoT-VLA-7B        |     87.5 |     91.6 |     87.6 |     69.0 |     83.9 |
| &lt;strong&gt;InspireVLA-1B&lt;/strong&gt; | &lt;strong&gt;90.7&lt;/strong&gt; | &lt;strong&gt;94.3&lt;/strong&gt; | &lt;strong&gt;88.3&lt;/strong&gt; | &lt;strong&gt;73.3&lt;/strong&gt; | &lt;strong&gt;86.7&lt;/strong&gt; |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; InspireVLA-1B 以约 1B 参数超过表中两个更大的 reasoning-based 模型；相对 SpatialVLA-4B 和 CoT-VLA-7B，论文报告平均成功率分别提高 8.6 和 2.8 个百分点。这里的结果来自作者在四个 LIBERO 数据集上做 LoRA fine-tuning 的独立设置，不应与前面的 LIBERO-90 单数据集结果混为一谈。&lt;/p&gt;
&lt;h4&gt;CALVIN&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-inspire/calvin.1hsya96dxp.webp&quot; alt=&quot;InSpire 论文 Figure 5：CALVIN ABC→D 长时域连续任务结果&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在 500 条、每条包含 5 个子任务的序列上，加入 InSpire 后，miniVLA 与 miniVLA-VQ 在连续完成 1、2、3、4、5 个任务的统计上都优于对应基线，平均连续完成长度也更高。这个结果支持“每一步重新回答空间关系有助于纠错”的解释。&lt;/p&gt;
&lt;h4&gt;真实机器人&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 10 个 seen task 的平均成功率绝对提升约 25 个百分点，5 个 unseen task 提升约 26 个百分点；4/5 个 unseen task 的相对成功率翻倍。图中平均每步时间由 0.84 秒增至 1.01 秒，即约增加 0.17 秒；正文将这一开销概括为约 0.18 秒，差异来自四舍五入。额外开销主要来自新增 VQA token，但相对于成功率收益仍是可接受的 trade-off。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-inspire/vqaposi.5mojmd5s2o.webp&quot; alt=&quot;InSpire 论文 Figure 6：空间 VQA token 插入位置的消融&quot;&gt;&lt;/p&gt;
&lt;p&gt;论文还比较了不同空间 VQA 的形式（miniVLA-VQ，seen / unseen）：&lt;/p&gt;
&lt;p&gt;| VQA 形式     |           Seen |         Unseen |
| ------------ | -------------: | -------------: |
| Baseline     |     83.3 ± 1.2 |      3.6 ± 0.4 |
| 1D Direction | &lt;strong&gt;89.5 ± 1.5&lt;/strong&gt; |     13.6 ± 3.9 |
| 3D Direction |     87.9 ± 2.1 | &lt;strong&gt;15.0 ± 1.9&lt;/strong&gt; |
| Proximity    |     88.7 ± 1.1 |     10.3 ± 1.0 |
| 3D Location  |     88.1 ± 0.8 |     10.1 ± 2.6 |
| Distance     |     85.1 ± 2.2 |      6.6 ± 0.6 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 方向类答案总体优于距离与精确坐标；1D Direction 在 seen 上最好，3D Direction 在 unseen 上略高。插入位置实验显示，无论 VQA token 放在 instruction 前还是后，加入空间问答都能提升基线，但 seen 与 unseen 的最优位置并不完全一致。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-inspire/vis.8dxlufpoea.webp&quot; alt=&quot;InSpire 论文 Figure 7：基线与 InSpire 的动作序列和注意力图&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 定性结果展示三类变化：基线因看到训练中常见的 drawer 而直接走向错误目标；在有多个 distractor 的场景中找错对象；发生错误后继续沿错误轨迹执行。加入 InSpire 后，注意力更集中于目标物体和机器人，且每一帧重新做空间问答可以帮助策略修正执行状态。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这里的泛化并非“对所有新任务都泛化”。LIBERO-Long 的结果提醒我们，InSpire 对空间定位和对象交互有效，但不能替代长时域分解、子目标规划或记忆机制。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 可以从三个角度理解：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;降低学习难度&lt;/strong&gt;：与直接从整幅图像预测连续动作相比，先预测一个 7 类左右的空间答案更容易学到。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;提供 action-relevant bottleneck&lt;/strong&gt;：方向问题明确点名目标物体，把语言中的对象与图像中的区域绑定起来。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;引入可纠错的中间状态&lt;/strong&gt;：每个观测都重新生成方向答案，空间答案变化会反映抓取、移动和放置是否已经发生。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 创新不在更大的 backbone，而在把一个极小的空间 VQA 任务放进现有自回归 VLA 的 token 流中，并用已有轨迹位置自动生成监督。它同时满足三个条件：无需额外模型、无需额外交互数据、可复用现有 action head。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;| 方法           | 中间信息               | 额外依赖            | 主要代价                      |
| -------------- | ---------------------- | ------------------- | ----------------------------- |
| 直接 VLA       | 无                     | 无                  | 容易学到 shortcut             |
| SpatialVLA     | 3D 信息 / 离散空间动作 | 空间编码与专门设计  | 需要改输入或动作空间          |
| CoT-VLA / ECoT | 较长推理或目标序列     | 额外推理过程 / 模型 | token 与时延更高              |
| InSpire        | 粗粒度方向文本         | 同一个 VLA          | 少量 VQA token 与一次额外生成 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; InSpire 的关键差异是把空间信息放在“视觉与动作之间的语言接口”，而不是把它当作新的传感器模态或新的动作表示。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 方法隐含或明确依赖以下假设：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;指令中能识别出与动作相关的目标对象。&lt;/li&gt;
&lt;li&gt;目标与机器人之间的粗粒度方向足以帮助当前动作。&lt;/li&gt;
&lt;li&gt;训练时可以获得目标位置，或用 gripper 位置作为合理代理。&lt;/li&gt;
&lt;li&gt;基线是支持自回归文本生成的 VLA。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 当任务依赖精确几何、遮挡关系、接触力或多个同类物体的细粒度区分时，单个主轴方向可能丢失关键变量；此时需要更丰富的空间表示，不能简单把方向类别继续堆叠。&lt;/p&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 作者指出：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;对 diffusion-policy VLA（例如 Octo、π₀ 的非自回归动作头）的适配仍未充分研究。&lt;/li&gt;
&lt;li&gt;不同预训练范式和数据集会产生不同的 spurious correlation，但这些差异尚未被系统分析。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;词表依赖&lt;/strong&gt;：官方代码的 &lt;code&gt;_OBJECT_NAME_MAP&lt;/code&gt; 是任务和对象相关的硬编码，换到新 embodiment 时需要重新维护别名与对象 JSON。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;坐标系依赖&lt;/strong&gt;：方向标签的正负号依赖环境坐标约定；真实机器人若相机、基座和 gripper 坐标没有对齐，标签会系统性偏移。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;VQA 误差会传播&lt;/strong&gt;：错误的方向答案会进入动作 prompt，可能比没有中间答案更强地误导策略。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;额外时延&lt;/strong&gt;：每个目标对象都要做一次受限 VQA 生成；多目标指令会增加 token 长度和推理时间。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;中间变量过粗&lt;/strong&gt;：&lt;code&gt;up/down/front/back&lt;/code&gt; 无法表达距离、姿态、接触状态的连续变化；论文的 ablation 也显示更精确的表示不一定更好，但这不意味着粗粒度表示在所有任务上都充分。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; InSpire 给 VLA 研究的启发不是“所有模型都应该输出 CoT”，而是中间监督应当尽量贴近动作的因果因素。一个只有几个类别的方向答案，可能比冗长的自然语言 reasoning 更适合实时控制。&lt;/p&gt;
&lt;p&gt;值得继续追问的方向包括：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;能否让模型学习对象级空间 token，而不是依赖人工维护的 &lt;code&gt;_OBJECT_NAME_MAP&lt;/code&gt;？&lt;/li&gt;
&lt;li&gt;能否根据 VQA 置信度动态决定是否执行第二次动作生成，避免错误答案传播？&lt;/li&gt;
&lt;li&gt;能否把方向、接触、距离和 gripper state 组织成结构化 scene-action graph，再由 diffusion policy 使用？&lt;/li&gt;
&lt;li&gt;对 π₀、Octo 等非自回归 action head，是否可以把空间答案作为 conditioning feature，而不是文本 prompt？&lt;/li&gt;
&lt;li&gt;能否用跨任务的 intervention 评估来直接检验模型是否真正摆脱了背景与目标颜色的 shortcut？&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;InSpire 的实质是一种很轻量的 causal hint：它没有解决 VLA 的全部泛化问题，却展示了一个值得复用的原则——在 observation 与 action 之间加入一个足够小、足够相关、可自动标注的中间任务，往往比盲目扩大模型更有效。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/102841826_p0_master1200.4clh7xw95k.webp"/><enclosure url="https://pic.hana0721.top/102841826_p0_master1200.4clh7xw95k.webp"/></item><item><title>HEX：跨形态人形全身操作论文精读</title><link>https://agusexp25.top/blog/paper-deep-dive-hex</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-hex</guid><description>精读 HEX：用 body-part 对齐状态、UPP-MoE、视觉历史缓存与 flow matching，让全尺寸人形机器人跨形态完成协调的全身操作。</description><pubDate>Tue, 25 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 《HEX: Humanoid-Aligned Experts for Cross-Embodiment Whole-Body Manipulation》关注一个经常被 VLA 论文略过的问题：机器人不仅要“看懂并完成任务”，还要在走路、转身、下蹲、抓取和放置之间维持同一个全身动力学状态。作者在 Tienkung 2.0/3.0 上展示了一个高层 VLA 与低层 RL whole-body controller 的分层系统，并用七种人形形态、超过 12M 帧的轨迹做跨形态预训练。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-hex/teaser-crop.1apqexan65.webp&quot; alt=&quot;HEX 系统总览：跨形态数据、VLA 与全身控制器（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; HEX 的真正主线不是“再加一个 VLA head”，而是把 humanoid 的状态空间先变成可迁移的身体部件语言，再让策略同时回看视觉历史、预测未来本体状态，最后用 flow matching 生成与全身平衡相容的动作。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;提出面向全尺寸双足人形机器人的 whole-body VLA，并用低层 RL 控制器负责高频、保持平衡的腿部执行。&lt;/li&gt;
&lt;li&gt;用固定的 canonical body-part slots（左右臂、左右手、左右腿、头、腰和 others）对齐异构 proprioceptive state；缺失部件使用 learned missing-part token。&lt;/li&gt;
&lt;li&gt;提出 Unified Proprioceptive Predictor（UPP）：共享 Transformer 建模时空依赖，输入/输出边界用 morphology-aware Mixture-of-Experts 做形态和部件特化。&lt;/li&gt;
&lt;li&gt;提出 review-and-forecast：用短 history query cache 保留视觉语境，用 UPP 预测未来状态；两路特征通过 residual gate 与 flow-matching action head 融合。&lt;/li&gt;
&lt;li&gt;在 seen、fast-reaction、distribution shift 和 long-horizon box convey 任务上验证，HEX 的 seen-task 平均成功率为 79.8%，泛化变体平均成功率为 61.8%。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 传统 humanoid whole-body control 多从 RL/模仿学习出发，先学 standing、walking 或 contact skill，再用手工设计的层级接口把 locomotion 与 manipulation 拼起来。层级化有利于稳定，但高层命令与低层动力学之间存在接口误差；当任务要求边走边操作、快速响应或多阶段切换时，错误会沿模块和时间累积。&lt;/p&gt;
&lt;p&gt;VLA 带来了更强的视觉语义理解，但多数模型把 action 直接写成高维关节动作或 latent command，没有显式表示“腿正在支撑、腰正在转、手正在接触”这类耦合关系。HEX 的区别在于：它把 proprioception 从一个 embodiment-specific 向量变成结构化的 body-part token 序列，并把状态预测放到动作生成之前。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 因而 HEX 不是要替代低层控制器，而是把高层 VLA 的输出从“任务意图”推进到“带有未来身体动力学提示的任务意图”。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 给定语言指令 $L$、当前多视角图像 $V_t$、本体状态 $s_t^{(e)}$ 和 embodiment tag $e$，高层策略输出未来动作 chunk：&lt;/p&gt;
&lt;p&gt;$$
\hat A_{t:t+\tau_a}=\pi_\theta\left(L,V_t,s_t^{(e)},e\right).
$$&lt;/p&gt;
&lt;p&gt;这里 $e$ 可以对应不同人形平台或不同状态/动作定义。由于各平台的关节数量、传感器和可控部件不同，原始状态维度并不相同；HEX 首先把它们投影到 $P$ 个 canonical body-part slots，每个 slot 使用 $d$ 维 latent，得到 $P_t^{(e)}\in\mathbb R^{P\times d}$。没有某一部件时，插入 learned missing-part token，而不是强行补零。&lt;/p&gt;
&lt;p&gt;高层动作主要直接控制 arm、hand、waist，并向低层 RL whole-body controller 提供中间命令；低层控制器以更高频率生成腿部动作和保持平衡的全身运动。&lt;strong&gt;【Code】&lt;/strong&gt; 官方 README 明确说明，Tienkung 系列的低层控制器因商业限制未开源，公开仓库主要覆盖 VLA 的预训练、微调和推理。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-hex/model-crop.7p4caisj91.webp&quot; alt=&quot;HEX 高层 VLA 架构：VLM、UPP 和 Action Expert（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 数据流可以压缩成一句话：Qwen-VL 编码当前图像/语言并保留 query history，UPP 在 body-part token 上预测未来状态，Action Expert 以带噪动作 token 为 query，同时读取视觉语言与预测状态，输出连续动作 chunk。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;VLM 与 history query cache&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 当前帧的语言 token、视觉 token 和 query token 一起输入 VLM：&lt;/p&gt;
&lt;p&gt;$$
[L&apos;_t,V&apos;_t,Q&apos;&lt;em&gt;t]=f&lt;/em&gt;{\mathrm{vlm}}([L,V_t,Q_t]).
$$&lt;/p&gt;
&lt;p&gt;模型只把 $Q&apos;&lt;em&gt;t$ 放入固定长度缓存 $\mathcal M_t^{vl}={Q&apos;&lt;/em&gt;{t-\tau_v},\ldots,Q&apos;_t}$，而不重复编码过去的图片。论文实验中视觉历史窗口为 2。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;hex/model/framework/HEX.py&lt;/code&gt; 中，训练和 batch inference 会按 &lt;code&gt;vision_history_length&lt;/code&gt; 逐个时间步调用 Qwen-VL，并取最后 8 个 hidden states 作为 query tokens；在线 &lt;code&gt;predict_action&lt;/code&gt; 使用 queue 保存历史 query。仓库默认配置的 &lt;code&gt;vision_history_length&lt;/code&gt; 可以按数据集覆盖，不能把“论文窗口为 2”误读成代码所有配置都固定为 2。&lt;/p&gt;
&lt;h4&gt;UPP：body-part 对齐与 morphology-aware MoE&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-hex/model_details-crop.mt8lsnge.webp&quot; alt=&quot;UPP、MoE 与 Action Expert 的细节（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; UPP 把当前部件 token 与未来 query tokens $N_{t+1:t+\tau_p}$ 拼成 part-time 网格，并加入时间位置和部件位置编码。共享 Transformer 在这个网格上交替建模 body-part 内部关系与视觉语言条件下的时间动态。输入和输出边界的 MoE 用 learned top-$k$ gate 路由 token：routed experts 负责形态/部件特化，shared experts 保留跨形态的公共变换。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方配置 &lt;code&gt;hex_cotrain_eai_pretrain.yaml&lt;/code&gt; 设置 state horizon 为 50、UPP Transformer 为 4 层、hidden size 为 768、16 个 routed experts、2 个 shared experts、top-1 softmax routing，并使用 0.01 的 load-balancing auxiliary loss。实际代码通过 &lt;code&gt;CrossEmnodiedStateMoEL2Head&lt;/code&gt; 处理 padded state 和 embodiment tags；最多 128 维 state 被 padding 到统一张量，再由各 embodiment registry 选择对应头。&lt;/p&gt;
&lt;h4&gt;Action Expert：双路 cross-attention 与 residual gate&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Action Expert 不直接把视觉和状态拼接，而是让当前 noisy action representation 分别对两路 memory 做 cross-attention：&lt;/p&gt;
&lt;p&gt;$$
H_t^{vl}=\operatorname{Attn}&lt;em&gt;{vl}(\operatorname{Norm}(X_t),H^{vl}),\quad
H_t^{p}=\operatorname{Attn}&lt;/em&gt;{p}(\operatorname{Norm}(X_t),H^{p}).
$$&lt;/p&gt;
&lt;p&gt;门控值由两路结果和当前 action state 共同决定：&lt;/p&gt;
&lt;p&gt;$$
g_t=\sigma\left(W_g[H_t^{vl};H_t^p;\operatorname{Norm}(X_t)]\right),\quad
F_t=H_t^{vl}+g_t\odot H_t^p,
$$&lt;/p&gt;
&lt;p&gt;随后用 residual update $X&apos;_t=X_t+F_t$，再经过 self-attention 与 feed-forward refinement。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这个 gate 的意义是让状态分支“按动作生成阶段介入”：快速反应时视觉语义可能更关键，转身、行走或放置阶段则需要提高 future-state cue 的权重。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;Flow-matching action objective&lt;/h4&gt;
&lt;p&gt;给定干净动作 chunk $A$ 和同形状高斯噪声 $N$，采样 $\lambda\sim U(0,1)$：&lt;/p&gt;
&lt;p&gt;$$
\widetilde A=(1-\lambda)N+\lambda A,\qquad V=A-N.
$$&lt;/p&gt;
&lt;p&gt;Action Expert 预测速度场 $\hat V=D_a(Z^a)$，动作损失为：&lt;/p&gt;
&lt;p&gt;$$
\mathcal L_a=|\hat V-V|_2^2.
$$&lt;/p&gt;
&lt;p&gt;其中 $Z^a$ 是 Action Expert 的最终 hidden representation，$D_a$ 是按 embodiment 选择的 action decoder。&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;HEX_ActionHeader.py&lt;/code&gt; 按 tag 分组不同 action dimension，使用对应 encoder/decoder；推理从 padded action space 的高斯噪声出发，用 Euler integration 迭代更新有效维度。&lt;/p&gt;
&lt;h4&gt;Future-state prediction objective&lt;/h4&gt;
&lt;p&gt;UPP 输出未来 latent $P&apos;_{t+1:t+\tau_p}$，状态 decoder $D_s$ 将其还原到真实 proprioceptive state：&lt;/p&gt;
&lt;p&gt;$$
\mathcal L_s=|D_s(P&apos;&lt;em&gt;{t+1:t+\tau_p})-s&lt;/em&gt;{t+1:t+\tau_p}|_2^2,
\qquad \mathcal L=\mathcal L_a+\alpha\mathcal L_s.
$$&lt;/p&gt;
&lt;p&gt;$\alpha$ 控制预测状态对总训练目标的影响。它让 UPP 学到“下一步身体会怎么动”，而不只是把 state 当作当前时刻的额外 feature。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 预训练数据超过 12M 帧，来自七种 embodiment、四个来源：HEX 内部数据约 4M 帧、Humanoid Everyday 约 3.4M 帧、AgiBot World Colosseo 的 G1-retargeted 数据约 3.8M 帧，以及 RoboCOIN Leju 子集约 2.3M 帧。训练可先用 $\mathcal L_s$ warm up UPP，再以 $\mathcal L_a+\alpha\mathcal L_s$ 联合优化。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 入口是 &lt;code&gt;hex/training/pretrain_hex.py&lt;/code&gt; 和 &lt;code&gt;scripts/pretrain_hex.sh&lt;/code&gt;。配置中主训练 200k steps，per-device batch size 为 16；Qwen-VL、state model、action model 学习率分别为 $1e!-5$、$2e!-5$、$2e!-5$，优化器为 AdamW，cosine schedule 的最小学习率为 $1e!-6$。官方 README 说明预训练约需 1K A100 GPU hours，公开 checkpoint 约 2.4B 参数。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 每个控制周期，系统只对当前图像做一次 VLM 编码，同时把 compact query history 与当前语言/视觉特征交给 UPP。Action Expert 从高斯噪声开始进行少量 flow-matching Euler steps，得到 100-step action chunk；预测的 arm/hand action 在部署时额外做线性插值以提高平滑度。高层输出再交给低层 RL whole-body controller 执行腿部与平衡控制。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;predict_action&lt;/code&gt; 和 &lt;code&gt;predict_action_batch&lt;/code&gt; 位于 &lt;code&gt;hex/model/framework/HEX.py&lt;/code&gt;。前者维护在线 query queue，后者把多历史帧显式展开；两者都会 pad state/action 到最大维度，再由 &lt;code&gt;tags&lt;/code&gt; 选择 embodiment-specific decoder。&lt;code&gt;FlowmatchingActionHead.predict_action&lt;/code&gt; 从随机 action 初始化，经 &lt;code&gt;num_inference_timesteps&lt;/code&gt; 次 Euler 更新返回 &lt;code&gt;normalized_actions&lt;/code&gt;。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;| 论文概念             | 官方代码位置                                                                                          | 实现观察                                                               |
| -------------------- | ----------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------- |
| VLM                  | &lt;code&gt;hex/model/modules/vlm/QWen3.py&lt;/code&gt;、&lt;code&gt;hex/model/framework/HEX.py&lt;/code&gt;                                        | Qwen-VL 输出最后一层 hidden states；query 默认取最后 8 个 token        |
| UPP / state MoE      | &lt;code&gt;hex/model/modules/state_model/HEX_L2_StateDecoder.py&lt;/code&gt;                                                | state 先 padding，再由 embodiment registry 处理不同维度                |
| Action Expert        | &lt;code&gt;hex/model/modules/action_model/HEX_ActionHeader.py&lt;/code&gt;、&lt;code&gt;flow_matching_head/cross_attention_dit_hex.py&lt;/code&gt; | 按 tag 分组 action encoder/decoder，支持 state-conditioned DiT         |
| Training             | &lt;code&gt;hex/training/pretrain_hex.py&lt;/code&gt;、&lt;code&gt;fine_tune_hex.py&lt;/code&gt;                                                    | 公开了预训练和下游微调脚本                                             |
| Inference            | &lt;code&gt;HEX.predict_action&lt;/code&gt;、&lt;code&gt;predict_action_batch&lt;/code&gt;                                                          | 返回 normalized action chunk；在线版本维护 query queue                 |
| Low-level controller | 未公开                                                                                                | README 说明 Tienkung 控制器受商业限制；仓库只提供 deployment interface |&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-hex/hardware-crop.54yhxvskjj.webp&quot; alt=&quot;真实机器人遥操作数据采集设置（论文 Figure 4）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 实验使用 Tienkung 2.0 与 Tienkung 3.0。高层模型统一使用同一个 RL-based low-level controller，以隔离 VLA policy 的贡献。对比方法包括 ACT、SwitchVLA、GR00T N1.5 和 $\pi_{0.5}$；HEX 使用 Qwen3-VL-2B-Instruct、4-layer UPP、50-step state horizon、16-layer DiT-B action head 和 100-step action chunk。&lt;/p&gt;
&lt;p&gt;任务覆盖 pose mimic、按人类指令倒液体、协助搬箱、避障行走、跪姿取放、整理桌面、取箱并打包，以及四阶段 long-horizon box convey。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; seen scenarios 的总体平均成功率为：ACT 57.1%、SwitchVLA 40.5%、GR00T N1.5 70.2%、$\pi_{0.5}$ 71.8%、HEX 79.8%。在 long-horizon box convey 的四个阶段（Grasp、Turn、Walk、Place）中，HEX 分别为 100%、100%、73.3%、53.3%；最后的 Place Box 比最强 baseline 高约 13.3 个百分点，说明优势主要体现在错误累积最严重的末段。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-hex/latency-crop.6f1f47ajwf.webp&quot; alt=&quot;延迟与成功率的权衡（论文 Figure 11）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在 RTX 4090 上，HEX 以 73.34 ms 延迟取得 79.8% 成功率；它不是最低延迟模型，但在实际推理预算下提供最高成功率。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-hex/ablation_all-crop.1apqexal8f.webp&quot; alt=&quot;预训练与组件消融（论文 Figure 9）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 消融显示 UPP 的贡献最大。在 Pouring 上，逐步加入 UPP、history cache 和 MoE 后成功率由 4/12 提升到完整 HEX 的 11/12；Box Conveying 则由 3/15 提升到 8/15。预训练主要改善早期优化和 sample efficiency：20k steps 时预训练模型成功率 10/12，未预训练为 7/12，但最终分别达到 11/12 与 10/12。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-hex/generalization_tasks-crop.4joubky3pa.webp&quot; alt=&quot;分布外泛化任务（论文 Figure 7）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-hex/generalization-crop.3gp50p29p5.webp&quot; alt=&quot;分布外泛化结果（论文 Figure 8）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 八个泛化变体的平均成功率为 HEX 61.8%、$\pi_{0.5}$ 44.3%、GR00T N1.5 41.0%、SwitchVLA 22.4%。变化包括更快的人体姿态切换、背景干扰、视觉 distractor、瓶子位置变化、动态物体、未见物体、周围物体和光照。尤其在 Pouring distractors 上，baseline 为 0%，HEX 为 53.3%；在未见球体的 Kneel Pick Objects 上，HEX 达到 100%。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; HEX 同时解决了三个不同时间尺度的问题：history cache 解决“当前帧看不全”的短期视觉记忆，UPP 解决“身体下一刻会怎样”的短期动力学预测，低层 RL controller 解决毫秒级的平衡与接触执行。三者分工清楚，避免让一个大 VLM 直接承担所有控制频率。&lt;/p&gt;
&lt;p&gt;UPP 的 body-part slots 还把跨形态迁移从“对齐每个关节”改成“对齐身体语义”。MoE 不破坏共享 backbone，而是在边界处为腿、手、腰等 token 提供轻量特化，这解释了它在长时程阶段切换中比单一 state encoder 更稳健。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;State-centric VLA&lt;/strong&gt;：把 proprioceptive dynamics 提升为一等条件，而非附加输入。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Morphology-aware UPP-MoE&lt;/strong&gt;：共享可迁移动态模型与 token-level embodiment specialization 的组合。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Review-and-forecast&lt;/strong&gt;：过去由视觉 query cache 负责 review，未来由 UPP 负责 forecast。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Residual-gated flow matching&lt;/strong&gt;：让状态分支的影响随 denoising/action phase 自适应变化。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; ACT/扩散策略通常把重点放在 action chunk 的时间平滑；GR00T、$\pi_{0.5}$ 等 generalist VLA 更强调大规模视觉语言和异构轨迹。HEX 的本质差异是显式构造“全身状态的预测空间”，并让 action token 主动查询这一路 future state。它不是单纯扩大 VLM，也不是只把输出拆成多个 head，而是改变了高层 policy 的中间变量。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 不同 embodiment 的状态可以被合理映射到有限的 canonical body-part slots。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; body-part 粒度足以表达任务相关的动力学；如果任务依赖细粒度接触、柔性结构或强非刚体差异，slot abstraction 可能丢失必要信息。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 低层 controller 能把高层 arm/hand/waist command 稳定地翻译成全身运动；该接口的质量直接限制 VLA 的上限。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文没有给出单独、系统的 limitations 小节；它明确说明 Tienkung 系列低层 RL whole-body controller 受商业限制未开源。因此完整复现实验需要相同机器人、控制器和数据采集链路。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;真实跨形态验证仍有限&lt;/strong&gt;：预训练覆盖多种平台，但主要真实部署和对比集中在 Tienkung 2.0/3.0；新平台需要重新提供 embodiment registry、state/action mapping 与低层接口。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;计算与数据成本高&lt;/strong&gt;：12M+ 帧、约 1K A100 GPU hours 和 2.4B 参数 checkpoint 对普通实验室并不轻量。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;state padding 与 tags 依赖工程先验&lt;/strong&gt;：官方代码的最大 state/action 维度和 registry 是显式配置，遇到新传感器或新 action space 并非零配置迁移。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;history cache 不是完整视觉记忆&lt;/strong&gt;：它只保存 query feature，无法保证遮挡、接触或快速物体运动信息不在压缩中丢失。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;长时程成功率仍有提升空间&lt;/strong&gt;：Place Box 阶段成功率为 53.3%，说明预测状态和低层控制器还不能完全消除多阶段误差传播。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; HEX 给出的重要启发是：人形机器人 VLA 的 scaling 可能不只沿着“更多图像、更大语言模型、更多动作数据”展开，还需要一个可解释、可迁移的 state vocabulary。body-part slots 是一种工程上可行的 vocabulary，但未来可以继续问三个问题：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;能否让 slot 从固定的 left/right arm、leg、waist，扩展为由接触关系和任务自动发现的动态部件图？&lt;/li&gt;
&lt;li&gt;UPP 的 future-state horizon 是否可以由不确定性自适应决定，而不是固定 50 steps？&lt;/li&gt;
&lt;li&gt;能否把低层 RL controller 的 value、contact 和 balance margin 作为 differentiable 或至少可监督的反馈，闭环训练 gate 与高层 action head？&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;如果这些问题得到解决，VLA 的“语言理解—动作生成”链条就会进一步变成“语言理解—身体预测—全身执行”，这可能是全尺寸 humanoid 从演示复现走向长期自主操作的关键接口。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/124956717_p0_master1200.83amt2xvmx.webp"/><enclosure url="https://pic.hana0721.top/124956717_p0_master1200.83amt2xvmx.webp"/></item><item><title>GR00T N1 论文精读：面向通用人形机器人的开放基础模型</title><link>https://agusexp25.top/blog/paper-deep-dive-gr00t-n1</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-gr00t-n1</guid><description>精读 NVIDIA GR00T N1：双系统 VLA、Eagle-2、Flow Matching DiT 与数据金字塔如何共同支撑跨形态人形机器人策略。</description><pubDate>Tue, 25 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 《GR00T N1: An Open Foundation Model for Generalist Humanoid Robots》提出一个面向通用人形机器人的开放式 Vision-Language-Action（VLA）基础模型。论文的关键判断是：人形机器人要进入开放的日常环境，硬件只是身体，还需要一个能理解语言、视觉和机器人状态，并且能在不同 robot embodiment 间迁移的策略模型。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-gr00t-n1/groot_inference_yuke_v2.wjao4p57s.webp&quot; alt=&quot;GR00T N1 双系统 VLA 总览（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; GR00T N1 的真正贡献不是把一个 VLM 接到一个 Diffusion Policy 后面，而是把“语义理解”和“连续控制”放进同一个端到端训练框架，再用 embodiment-specific projector 与 action head 把不同机器人的动作空间接到共享表示上。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;提出双系统架构：System 2 是 Eagle-2 视觉语言模块，负责从图像和语言中形成任务语义；System 1 是基于 Diffusion Transformer（DiT）的 Flow Matching policy，负责生成平滑、高频的 motor action。&lt;/li&gt;
&lt;li&gt;提出跨 embodiment 的统一策略接口。单臂、双臂和 GR-1 人形机器人的 state/action 维度不同，但都通过每个 embodiment 的 MLP projector 映射到共享 DiT 表示空间。&lt;/li&gt;
&lt;li&gt;设计数据金字塔：底层是大量 web data 与 human video，中层是 simulation 和 neural-generated trajectories，顶层是少量但最接近部署的 real-robot demonstrations。&lt;/li&gt;
&lt;li&gt;在无动作标签的视频上学习 latent action，并使用 inverse dynamics model（IDM）产生 pseudo-action，使人类视频和神经生成视频能够参与 action policy 训练。&lt;/li&gt;
&lt;li&gt;在 RoboCasa、DexMimicGen、GR-1 simulation 和 Fourier GR-1 实机上进行验证；论文报告的 GR00T N1-2B 在 100 demonstrations/task 的三项仿真平均成功率为 45.0%，实机全量数据平均成功率为 76.8%。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 传统机器人学习数据通常被硬件切成一个个“data island”：不同机器人有不同的关节数、摄像头、控制频率、动作定义和 embodiment。把它们简单拼接并不会自动得到一个可泛化的 Internet-scale robotics dataset。&lt;/p&gt;
&lt;p&gt;此前常见的方案有两类：一类让 LLM/VLM 只做高层规划，再调用已有低层 skill；另一类直接微调 VLA，让视觉、语言和动作端到端优化。前者依赖稳定的 skill library 和接口，后者更适合直接面向部署目标，但会遇到动作标签稀缺和 embodiment gap。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; GR00T N1 的位置很明确：它不是把 VLM 当作黑盒 planner，而是让 VLM 的中间 hidden states 通过 cross-attention 直接调制动作生成；同时又不强迫所有机器人共享同一套原始关节坐标，而是只共享更高层的 embedding 和训练目标。&lt;/p&gt;
&lt;p&gt;论文还把 human video、仿真和生成视频视为三种互补信号：人类视频提供丰富的 affordance 与行为先验，仿真提供可扩展的动作标签，真实机器人数据负责把先验落到目标硬件上。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-gr00t-n1/data_pyramid.5q85k99tu7.webp&quot; alt=&quot;GR00T N1 的数据金字塔：从 web/human video 到 synthetic，再到 real-world data（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在时间步 $t$，模型接收视觉观测、语言指令和机器人本体状态，输出未来 $H$ 步动作 chunk：&lt;/p&gt;
&lt;p&gt;$$
(I_t, l_t, q_t) \longrightarrow A_t = [a_t, a_{t+1}, \ldots, a_{t+H-1}].
$$&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Observation&lt;/strong&gt;：一帧或多帧 RGB image、自然语言 task instruction，以及 joint position、end-effector pose、base position 等 proprioceptive state。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Language&lt;/strong&gt;：例如“pick up the industrial object and place in yellow bin”。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Action&lt;/strong&gt;：由 embodiment 决定，可以是末端执行器的相对位姿、关节/手部状态或其它连续控制量；论文中的 GR00T N1 实现将 chunk horizon 设为 $H=16$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Embodiment&lt;/strong&gt;：RoboCasa 的 Franka Panda、双臂 Panda、带 dexterous hands 的 GR-1，以及 Fourier GR-1 人形机器人。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Policy&lt;/strong&gt;：学习条件向量场 $V_\theta$，通过少量 Euler denoising steps 从高斯噪声得到连续动作 chunk。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;数据&lt;/strong&gt;：真实 robot trajectories、人类 egocentric videos、neural trajectories、DexMimicGen/MimicGen simulation trajectories。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;论文并没有把所有 embodiment 的原始动作强行定义为同一物理坐标；共享的是模型内部的 latent action representation，具体 state/action 编码与解码仍由 embodiment-specific 模块负责。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;GR00T N1 的数据流可以压缩为一句话：&lt;strong&gt;image + language 经过 Eagle-2 得到 vision-language tokens，robot state 与带噪 action 经过 embodiment-specific encoders 后进入 DiT，DiT 通过 cross-attention 读取 VLM tokens，最后由 action decoder 输出 $H$ 步 motor actions。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-gr00t-n1/groot_model_v6.9kgx37rsjt.webp&quot; alt=&quot;GR00T N1 模型架构：Eagle-2 VLM 与跨 embodiment DiT action head（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;p&gt;论文给出的公开模型约 2.2B 参数，其中 VLM 约 1.34B；在 L40、bf16 上生成 16-step action chunk 的报告延迟为 63.9ms。VLM 以约 10Hz 运行，动作模块以更高频率闭环生成控制信号。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;Vision-Language Module（System 2）&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Eagle-2 由 SigLIP-2 image encoder 与 SmolLM2 系列语言模型组成。图像先被编码到 $224\times224$，再经过 pixel shuffle 形成每帧 64 个 image token；这些 token 与文本一起送入语言模型。论文发现，中间层表示比最后一层表示更快且下游成功率更高，GR00T N1-2B 使用第 12 层表示。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方 &lt;code&gt;n1d6&lt;/code&gt; 分支的 &lt;code&gt;gr00t/model/modules/eagle_backbone.py&lt;/code&gt; 将 Eagle-2 封装成 &lt;code&gt;EagleBackbone&lt;/code&gt;，默认加载 &lt;code&gt;nvidia/Eagle-Block2A-2B-v2&lt;/code&gt;，使用 bf16 与 Flash Attention。配置文件 &lt;code&gt;gr00t/configs/model/gr00t_n1d6.py&lt;/code&gt; 默认 &lt;code&gt;select_layer=16&lt;/code&gt;，并允许只微调顶部语言层或冻结视觉塔。&lt;/p&gt;
&lt;h4&gt;State Encoder&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：某个 embodiment 的 proprioceptive state $q_t$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：共享 hidden size 的 state token。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;作用&lt;/strong&gt;：把不同机器人不同维度的状态投影到 DiT 能处理的公共空间。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;实现&lt;/strong&gt;：每个 embodiment 使用 category-specific MLP；因此 GR-1 的关节/腰部状态和 Panda 的末端状态不需要共享第一层参数。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Action Encoder 与 Action Decoder&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：带噪动作 chunk $A_t^\tau$、flow-matching timestep $\tau$、embodiment id。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;中间模块&lt;/strong&gt;：MLP 投影动作，并把 timestep 编码拼接进去；可选 positional embedding 保留 chunk 内的时间顺序。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：DiT hidden tokens，随后由 embodiment-specific action decoder 还原到原始动作维度。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要&lt;/strong&gt;：共享 DiT 只负责学习跨 embodiment 的条件动作生成规律，最后一步仍然必须知道“这个机器人如何表达动作”。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Diffusion Transformer（System 1）&lt;/h4&gt;
&lt;p&gt;DiT 的 self-attention 处理 state token 与 action tokens，cross-attention 读取 Eagle-2 的 image/text features，并用 timestep-conditioned adaptive normalization 区分不同 denoising 阶段。论文采用交替的 cross-attention 与 self-attention block；官方 n1d6 配置默认 32 个 diffusion layers、32 个 attention heads、每个 chunk 16 个 action steps。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;Flow Matching 训练目标&lt;/h4&gt;
&lt;p&gt;给定真实动作 chunk $A_t$、高斯噪声 $\epsilon\sim\mathcal N(0,I)$ 和 $\tau\in[0,1]$，论文定义插值状态：&lt;/p&gt;
&lt;p&gt;$$
A_t^\tau = \tau A_t + (1-\tau)\epsilon.
$$&lt;/p&gt;
&lt;p&gt;模型 $V_\theta(\phi_t,A_t^\tau,q_t)$ 预测从噪声流向动作的向量场，训练目标是：&lt;/p&gt;
&lt;p&gt;$$
\mathcal L_{fm}(\theta)=
\mathbb E_\tau\left[\left|V_\theta(\phi_t,A_t^\tau,q_t)-(\epsilon-A_t)\right|^2\right].
$$&lt;/p&gt;
&lt;p&gt;其中：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;$\phi_t$ 是 Eagle-2 输出的 vision-language tokens；&lt;/li&gt;
&lt;li&gt;$q_t$ 是 state embedding；&lt;/li&gt;
&lt;li&gt;$A_t^\tau$ 是当前 denoising 位置；&lt;/li&gt;
&lt;li&gt;$V_\theta$ 是 DiT 预测的速度场；&lt;/li&gt;
&lt;li&gt;$\tau$ 的采样使用 $\text{Beta}(1.5,1)$ 变换，代码中对应 &lt;code&gt;noise_beta_alpha=1.5&lt;/code&gt;、&lt;code&gt;noise_beta_beta=1.0&lt;/code&gt;、&lt;code&gt;noise_s=0.999&lt;/code&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; n1d6 的 &lt;code&gt;Gr00tN1d6ActionHead.forward&lt;/code&gt; 使用 &lt;code&gt;noisy_trajectory = (1-t) * noise + t * actions&lt;/code&gt;，监督信号写成 &lt;code&gt;velocity = actions - noise&lt;/code&gt;；推理中执行 &lt;code&gt;actions = actions + dt * pred_velocity&lt;/code&gt;。也就是说，代码以“从噪声指向动作”的速度方向实现同一条 flow，符号约定与论文公式的文字表达相反，阅读源码时应以这一实现为准。&lt;/p&gt;
&lt;h4&gt;Euler 推理&lt;/h4&gt;
&lt;p&gt;初始动作 $A_t^0\sim\mathcal N(0,I)$，执行 $K$ 次 Euler 更新：&lt;/p&gt;
&lt;p&gt;$$
A_t^{\tau+1/K}=A_t^\tau+\frac{1}{K}V_\theta(\phi_t,A_t^\tau,q_t).
$$&lt;/p&gt;
&lt;p&gt;论文和代码都使用 $K=4$ 作为默认 inference steps。这里的 action chunking 让一次观测对应未来一段动作，而不是只预测一个动作；它是降低控制抖动和提高吞吐的关键。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 预训练阶段跨所有数据源 co-train：机器人数据使用真实 action，human/neural video 使用 latent action 或 IDM pseudo-action。post-training 阶段再针对目标 embodiment 和任务混入少量高质量 demonstrations。论文报告 neural trajectory 生成约 827 小时视频，把 88 小时 teleoperation 数据扩展约 10 倍；DexMimicGen 生成 780,000 条 simulation trajectories，相当于约 6,500 小时数据。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; n1d6 的训练实现将 batch 处理为 VLM 输入、state、action chunk、action mask 和 &lt;code&gt;embodiment_id&lt;/code&gt;。&lt;code&gt;Gr00tN1d6ActionHead&lt;/code&gt; 默认同时训练 projector、DiT 和 VLLN；Eagle 的视觉塔默认冻结，语言模型可通过配置选择冻结或只微调顶部层。action chunk 会 padding 到最大 horizon，mask 用来忽略无效尾部。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 推理时只保留 System 2 的 VLM backbone 与 System 1 的 action module。给定当前 image、language 和 state，先得到固定的 VLM features，再从高斯噪声初始化 16-step action chunk，执行 4 次 DiT denoising，最后由 embodiment-specific decoder 输出实际动作。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; n1d6 &lt;code&gt;get_action_with_features&lt;/code&gt; 明确维护形状为 &lt;code&gt;[batch, action_horizon, action_dim]&lt;/code&gt; 的高斯初值；每个 denoising step 重新编码 action 与 timestep，经过 DiT 和 decoder 后用 Euler 更新。官方 open-loop evaluator 默认每次执行一个完整 16-step chunk；实际部署可以在 policy wrapper 中选择更短的 execution horizon。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;官方代码仓库是 &lt;a href=&quot;https://github.com/NVIDIA/Isaac-GR00T&quot;&gt;NVIDIA/Isaac-GR00T&lt;/a&gt;。论文发表时的实现对应仓库的 &lt;code&gt;n1d6&lt;/code&gt; 代码路径；当前 &lt;code&gt;main&lt;/code&gt; 已演进到 N1.7，使用不同的 Cosmos/Qwen VLM，因此下面只把 &lt;code&gt;n1d6&lt;/code&gt; 作为论文代码对照。&lt;/p&gt;
&lt;p&gt;| 论文概念               | n1d6 代码位置                                                           | 代码行为                                                          |
| ---------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------- |
| VLM / System 2         | &lt;code&gt;gr00t/model/modules/eagle_backbone.py&lt;/code&gt;                                 | 加载 Eagle-2，输出 hidden states、attention mask 和 image mask    |
| State / Action Encoder | &lt;code&gt;gr00t/model/gr00t_n1d6/gr00t_n1d6.py&lt;/code&gt;、&lt;code&gt;embodiment_conditioned_mlp.py&lt;/code&gt; | 以 embodiment id 选择对应 MLP，并把不同维度投影到公共空间         |
| DiT / System 1         | &lt;code&gt;gr00t/model/modules/dit.py&lt;/code&gt;                                            | 处理 state/action tokens，并对 VLM tokens 做 cross-attention      |
| Flow Matching          | &lt;code&gt;Gr00tN1d6ActionHead.forward&lt;/code&gt;                                           | beta 采样 timestep，构造 noisy trajectory，回归 &lt;code&gt;actions - noise&lt;/code&gt; |
| Euler Sampling         | &lt;code&gt;get_action_with_features&lt;/code&gt;                                              | 4 次 denoising，&lt;code&gt;actions += dt * pred_velocity&lt;/code&gt;                   |
| Action chunk           | &lt;code&gt;configs/model/gr00t_n1d6.py&lt;/code&gt;                                           | &lt;code&gt;action_horizon=16&lt;/code&gt;，最大 state/action dim 默认 29                |
| 数据与 mask            | &lt;code&gt;processing_gr00t_n1d6.py&lt;/code&gt;、&lt;code&gt;sharded_single_step_dataset.py&lt;/code&gt;            | padding 到统一 horizon，并用 mask 屏蔽无效动作                    |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 代码中最值得注意的工程选择是“共享 DiT、局部 projector”：它避免为每种机器人复制完整策略，同时又把 embodiment mismatch 限制在输入输出边界，给后续新增机器人留下了清晰的适配点。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;论文使用三个 simulation benchmark：RoboCasa Kitchen 24 tasks、DexMimicGen Cross-Embodiment 9 tasks、GR-1 Tabletop 24 tasks。它们分别覆盖单臂、双臂 dexterous manipulation 和人形机器人控制。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-gr00t-n1/fig_task_v6.7i14f5t73h.webp&quot; alt=&quot;仿真任务示例：RoboCasa、DexMimicGen 与 GR-1 tabletop（论文 Figure 4）&quot;&gt;&lt;/p&gt;
&lt;p&gt;实机部分使用 Fourier GR-1，任务包含 pick-and-place、articulated object、industrial manipulation 和 multi-agent coordination。仿真报告 100 trials 的平均成功率；实机多数任务报告 10 trials，Pack Machinery 因时间限制使用 5 trials 的部分评分。&lt;/p&gt;
&lt;p&gt;基线是 RoboMimic 的 BC-Transformer 和 Diffusion Policy。前者输入 10 帧并预测 10 个动作，后者从单帧观测生成 16-step action chunk。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-gr00t-n1/real_gr1_task_figure.45iekscnij.webp&quot; alt=&quot;GR-1 预训练与 post-training 任务（论文 Figure 5）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 使用 100 demonstrations/task 时，仿真结果如下：&lt;/p&gt;
&lt;p&gt;| 方法             |  RoboCasa |     DexMG |      GR-1 |      平均 |
| ---------------- | --------: | --------: | --------: | --------: |
| BC-Transformer   |     26.3% |     53.9% |     16.1% |     26.4% |
| Diffusion Policy |     25.6% |     56.1% |     32.7% |     33.4% |
| GR00T N1-2B      | &lt;strong&gt;32.1%&lt;/strong&gt; | &lt;strong&gt;66.5%&lt;/strong&gt; | &lt;strong&gt;50.0%&lt;/strong&gt; | &lt;strong&gt;45.0%&lt;/strong&gt; |&lt;/p&gt;
&lt;p&gt;GR-1 上的提升最大：相对 Diffusion Policy 提升 17.3 个百分点，说明预训练的跨 embodiment 先验对高维 dexterous humanoid 控制尤其重要。&lt;/p&gt;
&lt;p&gt;实机全量 demonstrations 的平均成功率为：Diffusion Policy 46.4%，GR00T N1-2B 76.8%。更有代表性的是，GR00T N1 使用 10% 数据时仍达到 42.6%，只比使用全量数据的 Diffusion Policy 低 3.8 个百分点；这说明预训练主要改善的是 data-limited regime，而非只在大规模目标域数据下获益。&lt;/p&gt;
&lt;p&gt;预训练 checkpoint 的 zero/post-training-free 评测也展示了迁移能力：left-to-right handover 任务为 76.6%（11.5/15），novel object 到 unseen container 为 73.3%（11/15）。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;论文专门比较了 neural trajectories、LAPA latent actions 与 IDM pseudo-actions。RoboCasa 中，在 30/100/300 demonstrations/task 三个数据规模下，加入神经轨迹的平均增益分别为 +4.2、+8.8、+6.8 个百分点；GR-1 实机低数据设置下，8 个任务平均提升 5.8 个百分点。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-gr00t-n1/dream_figure.4xva2it8dn.webp&quot; alt=&quot;Neural trajectory、LAPA 与 IDM 的消融结果（论文 Figure 6）&quot;&gt;&lt;/p&gt;
&lt;p&gt;在 RoboCasa 的低数据规模，LAPA 略优于 IDM；数据增加后 IDM 逐渐超过 LAPA。&lt;strong&gt;【Analysis】&lt;/strong&gt; 一个合理解释是 IDM 的伪动作标签需要足够多样本才能学准，但一旦 IDM 与目标机器人动作空间对齐，其监督信号比纯 latent motion 更接近部署动作。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 泛化主要体现在三种变化：新物体、新容器/位置组合和新 embodiment。预训练 GR00T N1 能在“苹果位于左手够不到的位置”时先用左手抓取、再 handover 给右手；而只用右手 post-training 数据微调的 checkpoint 反而丢失了这一行为。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这组对比说明 post-training 不只是增加能力，也可能造成能力坍缩：如果目标域数据覆盖面比预训练窄，策略会把通用先验“压扁”为一个局部 skill。评估 generalist policy 时，不能只看新任务成功率，还要检查原有跨手、跨物体和跨容器行为是否被保留。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;语义与控制共享条件&lt;/strong&gt;：语言指令不是在动作生成前被离散成 skill id，而是通过 VLM tokens 持续影响 DiT 的 cross-attention，因此“turn sink spout”和“pick object”可以在同一策略内区分。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;chunk 级生成减少局部贪心&lt;/strong&gt;：一次生成 16 步动作使模型直接学习短时间内的轨迹形状，通常比每步独立回归更平滑。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;flow matching 降低采样成本&lt;/strong&gt;：只用 4 次 Euler steps 就能得到 action chunk，兼顾连续生成模型的表达力与实时性。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;数据金字塔分工明确&lt;/strong&gt;：human/web data 扩大语义和 affordance 覆盖，simulation 扩大动作数量，real data 负责 embodiment grounding。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;projector 隔离 embodiment 差异&lt;/strong&gt;：共享主体学“如何根据视觉语言做动作”，局部 MLP 学“某个机器人如何表达这个动作”。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 论文的创新组合可以概括为三个接口设计：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;表示接口&lt;/strong&gt;：Eagle-2 中间层作为 VLM-to-policy 的接口；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;动作接口&lt;/strong&gt;：latent action / IDM pseudo-action 把无动作视频接入统一 flow-matching objective；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;形态接口&lt;/strong&gt;：embodiment-specific state/action projector 把不同机器人接到共享 DiT。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;单独看每个部件都不是首次出现，但三者组合解决了“数据不够、动作不统一、实时控制困难”这三个互相耦合的问题。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;与 BC-Transformer 相比，GR00T N1 的 action distribution 是连续 flow 生成，而不是 GMM 回归；与 Diffusion Policy 相比，GR00T N1 有预训练 VLM 和跨 embodiment 数据；与“VLM 规划 + 低层 skill”相比，它的 System 2 与 System 1 共享训练目标，VLM 可以直接为连续动作提供上下文。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;不同 embodiment 的动作可以在一个足够平滑的 latent space 中对齐；&lt;/li&gt;
&lt;li&gt;从人类视频或生成视频抽取的 latent/IDM action 与机器人动作之间存在可迁移结构；&lt;/li&gt;
&lt;li&gt;Eagle-2 的视觉语言中间表示包含足够的物体、空间和任务语义；&lt;/li&gt;
&lt;li&gt;4-step flow matching 的近似误差不会显著损害高频控制；&lt;/li&gt;
&lt;li&gt;simulation 与 neural trajectories 的物理偏差可以由少量 real-robot data 修正。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 当前系统主要聚焦短时域 tabletop manipulation，还没有解决长时域 loco-manipulation。作者指出，视频生成模型和自动轨迹合成仍难以同时满足多样性、反事实变化和物理规律；这会限制 synthetic data 的质量和覆盖范围。作者还希望使用更强的 VLM、改进架构与 pre-training strategy。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;数据标签的语义偏差&lt;/strong&gt;：human video 的 latent action 更像视觉变化，不一定对应机器人可执行的动力学动作；IDM pseudo-action 又受 IDM 训练域影响。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;VLM 冻结带来的上限&lt;/strong&gt;：n1d6 默认冻结 Eagle 视觉塔，只有少数语言层可调，这有利于稳定和效率，但也限制了对机器人视角、鱼眼畸变和细粒度接触线索的适应。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;短 horizon 仍然明显&lt;/strong&gt;：16-step chunk 和 tabletop benchmark 不能证明模型能进行跨房间导航、全身平衡或长链工具使用。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;跨 embodiment 并非无条件泛化&lt;/strong&gt;：projector 只解决表示维度和坐标接口，新的传感器、控制频率、延迟和动力学仍需要数据与校准。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;post-training 可能遗忘&lt;/strong&gt;：论文中的“预训练能 handover，而窄域微调后失败”说明通用能力保持需要额外的 replay、正则或 mixture-of-data 设计。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;GR00T N1 给 embodied foundation model 的启发不是“收集越多数据越好”，而是要先设计数据之间的接口。没有 latent action、IDM 或 embodiment projector，人类视频、仿真和真实轨迹只是互不兼容的数据岛；有了这些接口，才可能用一个 objective 共同训练。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 后续研究可以沿三条线推进：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;把短 horizon action chunk 扩展为带 memory 的长时域 policy，并显式处理失败恢复；&lt;/li&gt;
&lt;li&gt;用更可靠的 video-world-model 或物理过滤器筛掉违反接触和守恒规律的 neural trajectories；&lt;/li&gt;
&lt;li&gt;把“通用能力保持”作为 post-training 的一等指标，联合训练目标任务与通用 replay，而不是只优化新任务 success rate。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;最后，GR00T N1 的工程价值也很突出：论文、模型、数据集和 simulation benchmark 一起开放，使研究者可以从“复现一个策略”转向“研究一个可扩展的 robot foundation model stack”。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/69461006_p0_master1200.1e974ctzq9.webp"/><enclosure url="https://pic.hana0721.top/69461006_p0_master1200.1e974ctzq9.webp"/></item><item><title>G0.5 论文精读：One Autoregressive Stream for Robot Action</title><link>https://agusexp25.top/blog/paper-deep-dive-g05</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-g05</guid><description>精读 Galaxea G0.5：用跨形态 ActionCodec、原生 CoT 与视觉记忆，把 VLM 重新变成同时推理和行动的 autoregressive VLA。</description><pubDate>Tue, 25 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;论文名称&lt;/strong&gt;：《G0.5: One Autoregressive Stream for Robot Reasoning and Action》&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;作者&lt;/strong&gt;：Yicheng Liu、Zibin Dong、Baijun Ye 等 Galaxea Team 成员&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;机构&lt;/strong&gt;：Galaxea AI&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;发表信息&lt;/strong&gt;：arXiv 预印本（2026）&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;论文链接&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2608.11739&quot;&gt;arXiv:2608.11739&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;项目主页&lt;/strong&gt;：&lt;a href=&quot;https://opengalaxea.github.io/G05/&quot;&gt;Galaxea G0.5&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-g05/teaser.7sny8a8q34.webp&quot; alt=&quot;G0.5 系统、ActionCodec、CoT 和实验结论总览（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; G0.5 把 VLA 从“VLM 编码上下文、另一个 flow-matching expert 负责动作”的主流范式拉回到单一 autoregressive stream：同一个 transformer decoder 在同一个 next-token objective 下交错生成任务推理、目标 grounding 和动作 token，再由跨形态 ActionCodec 解码成连续控制。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;跨 embodiment 的结构化 ActionCodec&lt;/strong&gt;：把不同机器人按左/右控制、夹爪和下半身等语义部件分组，使用 residual vector quantization（RVQ）和 temporal contrastive loss，将异构连续动作压缩到共享的 27 维 token 配置；没有运动的部件不产生 token。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;原生 Chain-of-Thought（CoT）&lt;/strong&gt;：&lt;code&gt;Subtask&lt;/code&gt;、&lt;code&gt;BBox&lt;/code&gt;、&lt;code&gt;Trace&lt;/code&gt;、&lt;code&gt;ActionHint&lt;/code&gt; 四类中间结果与动作在同一序列、同一 decoder、同一交叉熵损失中训练，推理时可以通过 prompt 选择 CoT 组合。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;短时视觉记忆&lt;/strong&gt;：在 vision transformer 中每四层插入 factorized spatial-temporal attention，并随机丢弃历史帧，给模型多秒级闭环上下文而不把计算量变成简单堆帧的二次增长。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;统一的实验证据&lt;/strong&gt;：在 DROID 环境/物体零样本、BEHAVIOR 长时程移动操作、R1-Lite/R1-Pro 真实微调、Pick-and-Place 语言跟随、LIBERO、RoboTwin 2.0 和 SimplerEnv-Bridge 七个 regime 中达到具有竞争力的结果。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 论文的真正赌注不是“AR token 一定比 diffusion 平滑”，而是：如果 VLM 仍然直接生成动作，那么预训练得到的语言推理、in-context learning 和 prompt steering 才不会被压缩成一个只供 action expert 读取的条件向量。&lt;/p&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 早期 RT-2、OpenVLA 把连续动作离散成 token，让 VLM 本身成为 actor；但控制频率、动作维度和 horizon 增大后，逐时间步预测 token 的解码成本迅速上升。于是主流 VLA 转向 VLM-as-encoder：VLM 只提供 hidden states 或 KV cache，独立的 flow-matching / diffusion expert 预测连续 action chunk。&lt;/p&gt;
&lt;p&gt;这种分工解决了动作 token 太长的问题，却也改变了 VLM 的角色。&lt;strong&gt;【Paper】&lt;/strong&gt; 在 VLM-as-encoder 架构中，CoT、in-context learning 和 prompt 对动作的影响必须穿过一个条件瓶颈；当 action expert 的梯度回传到 VLM 时，还可能出现 pretrained capability 遗忘，促使后续工作重新加入 AR action objective。G0.5 因而选择保留 AR actor，同时用更紧凑的动作表示解决效率问题。&lt;/p&gt;
&lt;p&gt;动作 tokenization 方面，RT-2/OpenVLA 的逐维 binning 忽略时间相关性，FAST/FAST+ 用 DCT 和 BPE 压缩轨迹，但通常按 embodiment 独立处理。&lt;strong&gt;【Paper】&lt;/strong&gt; G0.5 把“跨形态对齐”前移到 tokenizer：left/right/lower-body 的语义结构在 token 序列中显式可见。&lt;/p&gt;
&lt;p&gt;CoT 方面，bolt-on 方法把高层计划交给另一个 controller；ECoT 等 in-stream 方法已经证明中间推理有价值。G0.5 的区别在于四种 reasoning primitive 共享动作 token 的 vocabulary，并且由 prompt 决定是否、以何种组合生成。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在时间 $t$，模型输入为：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Observation&lt;/strong&gt;：来自 $K$ 个摄像头的多视角 RGB 短历史窗口 ${o_{t-h}^{(k)}}$；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Instruction&lt;/strong&gt;：自然语言任务 $\ell$，预处理时最多截断到 200 tokens；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Proprioception&lt;/strong&gt;：机器人状态 $s_t$，包括关节位置和夹爪状态；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Embodiment ID&lt;/strong&gt;：例如 &lt;code&gt;r1pro&lt;/code&gt; 或 &lt;code&gt;r1lite&lt;/code&gt;，用于选择 active-DoF schema；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Prompt&lt;/strong&gt;：声明希望模型输出哪些 CoT 字段，例如“predict bbox, subtask and action”。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;输出是可选的 CoT span 加上结构化动作 span。统一 action layout 为：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;&amp;#x3C;left_control&gt;(9) | &amp;#x3C;left_gripper&gt;(1) | &amp;#x3C;right_control&gt;(9)
| &amp;#x3C;right_gripper&gt;(1) | &amp;#x3C;lower_body&gt;(7)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 不同 embodiment 不具备的 slot 在 merge 时填充 noop，但生成时只发射当前 active 的部件。动作被分成 $R$ 个 residual round；每个 active group 由一个部件 marker 加 8 个 action code 组成。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这一定义同时解决了两个尺度问题：token 数量不再随全部 DoF 线性膨胀，且同一 decoder 可以看到“左臂动作”和“底盘动作”之间的结构关系。论文没有把 lower-body 单独作为主要实验证明，因此不能把统一空间等同于已经验证的全身移动控制能力。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-g05/teaser.7sny8a8q34.webp&quot; alt=&quot;G0.5 的单流架构与跨形态动作编码（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;p&gt;整体数据流是：多视角图像、instruction、proprioception 和 embodiment id 进入 Qwen3.5 2B 初始化的 VLM；decoder 先生成可选 CoT，再生成按 active 部件组织的离散 action codes；ActionCodec 将 codes 还原为统一 action space 中的连续 motor command。&lt;strong&gt;【Paper】&lt;/strong&gt; 主实验默认使用 AR policy，flow-matching head 只是可选的部署/对照分支，不是训练主干。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;4.2.1 Structured ActionCodec&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：按语义部件分组并 padding 到共享最大维度的连续动作 chunk。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;中间模块&lt;/strong&gt;：每个部件经过 action encoder；RVQ 逐层编码 residual；temporal contrastive loss 拉近相邻时刻的 latent，推远负样本。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：每个 residual round 的部件 marker 和 8 个离散 code。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要&lt;/strong&gt;：平坦向量会把形态差异和动作语义混在一起；部件化后，静止的右臂或底盘无需产生 token。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-g05/tokenizer_v2.1764h94oiv.webp&quot; alt=&quot;Structured ActionCodec：部件分组、RVQ 与 active token 序列（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 该设计把“跨机器人迁移”从 action head 的后处理变成 vocabulary 级别的归纳偏置。它的代价是需要为新部件定义稳定的语义分组，并维护 codec 的 reconstruction quality；论文没有给出新增 embodiment 的独立 scaling 曲线。&lt;/p&gt;
&lt;h4&gt;4.2.2 Native Chain-of-Thought&lt;/h4&gt;
&lt;p&gt;CoT span 可由四种字段的任意子集组成：&lt;/p&gt;
&lt;p&gt;| 字段 | 语义 | 对动作的作用 |
| --- | --- | --- |
| &lt;code&gt;Subtask:&lt;/code&gt; | 原子子任务 | 把长指令拆成当前可执行目标 |
| &lt;code&gt;BBox:&lt;/code&gt; | 目标物体框 | 将语言实体绑定到视觉位置 |
| &lt;code&gt;Trace:&lt;/code&gt; | 2D 夹爪落点轨迹 | 提供粗粒度运动草图 |
| &lt;code&gt;ActionHint:&lt;/code&gt; | 帧级动作提示 | 指示抓取、推动等接触意图 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 训练时从 8 种模板（包括 no-CoT）加权采样，每个样本只选择一种格式；推理时则用 prompt 显式打开需要的字段。这样 CoT 不是额外的辅助 head，而是 action 前的 token context，动作 token 可以直接 attend 到刚刚生成的 reasoning。&lt;/p&gt;
&lt;h4&gt;4.2.3 Visual Memory&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; vision transformer 每四层插入 factorized spatial-temporal attention，先在时间上混合同一 camera 的历史，再在空间 patch 上融合；最终一层丢弃历史 token，以限制延迟。训练时以 30% 概率丢弃全部历史帧，避免模型只依赖记忆分支。Proprioception 使用 continuous state embedding，与对应视觉帧同步。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这是一种“短时视频编码器”，不是可检索的长时程 memory。它能帮助遮挡恢复、失败重试和移动导航，但不能替代跨分钟任务的显式语言记忆。&lt;/p&gt;
&lt;h4&gt;4.2.4 Single-stream token template&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-g05/token_template.9o0j0wl5w7.webp&quot; alt=&quot;G0.5 的完整 token sequence template（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;p&gt;条件段使用 user-side chat tokens，包含 images、embodiment、task、state 和 CoT prompt，并以 &lt;code&gt;&amp;#x3C;EOC&gt;&lt;/code&gt; 结束；生成段使用 assistant-side chat tokens，CoT 之后由 &lt;code&gt;&amp;#x3C;EOV&gt;&lt;/code&gt; 切换到 action codes。只有生成段计算 loss，因此输入图像和指令本身不被错误地当成 target。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;统一 next-token objective&lt;/h4&gt;
&lt;p&gt;$$
\mathcal{L}(\theta)=-\sum_{i\in\mathcal{G}}
\log p_\theta(x_i\mid x_{&amp;#x3C;i})
$$&lt;/p&gt;
&lt;p&gt;其中 $x_i$ 是整个生成段中的第 $i$ 个 token，$\mathcal{G}$ 是生成段位置集合。它同时覆盖 CoT 文本、bbox/trace 的 location tokens 和 action codes。&lt;strong&gt;【Paper】&lt;/strong&gt; 预训练没有额外的 action regression、蒸馏或 auxiliary loss。&lt;/p&gt;
&lt;h4&gt;RVQ 动作重建&lt;/h4&gt;
&lt;p&gt;对某一部件的连续 latent $z$，$R$ 个 residual codebook 给出：&lt;/p&gt;
&lt;p&gt;$$
\hat z=\sum_{r=0}^{R-1}e_r(c_r),\qquad
\hat a=\mathrm{ActionDecoder}(\hat z)
$$&lt;/p&gt;
&lt;p&gt;$e_r$ 是第 $r$ 层 codebook，$c_r$ 是离散 code，$\hat a$ 是还原的连续动作。&lt;strong&gt;【Paper】&lt;/strong&gt; 论文强调 temporal contrastive objective 改善相邻动作的 token consistency，但没有在主文中展开 codec 的完整损失权重。&lt;/p&gt;
&lt;h4&gt;视觉记忆的计算约束&lt;/h4&gt;
&lt;p&gt;朴素地堆叠 $H$ 帧、每帧 $P$ 个 patch 会让 self-attention 规模近似随 $(HP)^2$ 增长。factorized attention 先沿时间、再沿空间混合，避免一次性对所有历史 patch 做全连接注意力。&lt;strong&gt;【Analysis】&lt;/strong&gt; 这解释了为什么模型可以在高频控制场景中使用多秒历史，但不能直接推出任意长度历史都可行。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; G0.5 从 Qwen3.5 2B 初始化，单阶段预训练混合 14 种 embodiment 的 robot demonstration 与 web/VQA 数据。所有机器人动作映射到 27 维统一 layout；DROID 不在 foundation mixture 中，而是在后续 post-training 使用。训练数据通过自动标注管线补充 episode instruction、atomic task、action hint、bbox/segmentation 和 2D end-effector trace。&lt;/p&gt;
&lt;p&gt;训练目标只在 assistant generative segment 上计算 next-token cross-entropy。VQA、CoT 和 action sample 共享 decoder 与 vocabulary；vision tower 全程 unfrozen。优化器为 AdamW，采用 warmup、constant 和最后 cosine decay，历史帧随机丢弃，直到收敛。论文未公开完整 batch size、训练步数和 checkpoint 配置。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 推理时输入当前多视角短历史、embodiment id、instruction、proprioception 和 prompt。decoder 自回归生成可选 CoT；&lt;code&gt;&amp;#x3C;EOV&gt;&lt;/code&gt; 后生成若干 residual round 的 active action groups；ActionCodec 解码成连续控制，执行后重新观测并闭环重规划。AR action head 是默认路径，FM head 可读取 CoT 后 hidden state 作为速度对照。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 与 diffusion policy 一次采样整段连续轨迹不同，G0.5 的“chunk”压缩发生在 tokenization 层，而闭环频率仍由实际控制系统决定。论文报告 AR 与 FM + FlashRT 的推理延迟约为 190 ms，但 AR 不带 CoT 可到 130 ms；因此 CoT 的收益需要和额外 token 开销一起评估。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 论文关联的官方项目页是 &lt;a href=&quot;https://opengalaxea.github.io/G05/&quot;&gt;opengalaxea.github.io/G05&lt;/a&gt;，提供交互式论文解读、图表和真实机器人视频；截至本文撰写时，项目页没有链接可供审阅的训练/推理 GitHub 代码仓库，论文首页也只给出项目主页。因此不存在可逐文件核对的官方 &lt;code&gt;Model&lt;/code&gt;、&lt;code&gt;DataLoader&lt;/code&gt;、&lt;code&gt;Config&lt;/code&gt; 或 &lt;code&gt;Inference&lt;/code&gt; 实现。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 项目页中的文字与论文一致地确认了：统一 AR stream、ActionCodec、native CoT、visual memory、AR/FM 对照、PP Bench 和 GRPO 实验；视频资源则展示了 air fryer、炒菜、整理衣物等 out-of-box 场景。具体网络层数、数据加载和 checkpoint 命令论文未明确说明，不能把网页的演示视频当作可复现代码证据。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 评测覆盖七类 regime：&lt;/p&gt;
&lt;p&gt;| Regime | 机器人/环境 | 主要问题 | G0.5 结果 |
| --- | --- | --- | ---: |
| DROID zero-shot | Franka FR3 + 新环境/新物体 | post-training 后的环境与物体迁移 | 82.5% |
| SimplerEnv-Bridge | WidowX 仿真 | Bridge 语言条件操作 | 87.3% |
| RoboTwin 2.0 | 双臂仿真 | clean/randomized 协调操作 | 93.3% |
| LIBERO | Franka 仿真 | Spatial/Object/Goal/Long | 98.9% |
| BEHAVIOR Challenge | R1-Pro mobile manipulation | 50 个长时程家庭任务 | 31.36% score |
| Real-world FT | R1-Lite/R1-Pro | 六个真实任务-形态设置 | 76.7% |
| PP Bench | R1-Lite | 语言跟随与 pick-and-place | 75.0% success（50H） |&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-g05/droid_results.39lx5b38zi.webp&quot; alt=&quot;DROID 环境与物体级 zero-shot 任务及每任务结果（论文 Figure 5/6）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;DROID&lt;/strong&gt;：G0.5 平均 82.5%，超过 $\pi_{0.5}$-DROID 的 57.5% 和 MolmoAct2-DROID 的 52.0%；十个任务全部超过 $\pi_{0.5}$。但半透明抽屉插入在无橙色高对比标记时只有 60%，加标记后升至 100%，显示其对低对比目标敏感。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SimplerEnv-Bridge&lt;/strong&gt;：87.3% 平均成功率，四个任务分别为 97.5/75.0/83.3/93.3%。模型在 state-free protocol 下 post-train 80K steps，未做额外仿真域训练。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;RoboTwin 2.0&lt;/strong&gt;：clean 93.7%、randomized 92.8%，平均 93.3%，高于 LingBot-VA 92.2% 和 Fast-WAM 91.8%。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;LIBERO&lt;/strong&gt;：Spatial 98.4%、Object 100.0%、Goal 98.6%、Long 98.6%，平均 98.9%，其中 Long suite 是论文强调的强项。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;真实 R1-Lite/R1-Pro&lt;/strong&gt;：六个设置平均 success 76.7%，高于 $\pi_{0.5}$ 的 53.3% 和 GR00T-N1.7 的 24.4%；平均 process score 为 129.2。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 结果横跨仿真、真实、短时与长时任务，支持“统一 AR backbone 具备较强迁移性”的主张；但不同 regime 的 post-training 数据、训练步数和指标并不相同，不能简单把所有百分比视为同一排行榜。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;h4&gt;CoT × action head&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-g05/cot_head_long_horizon.5mojmih23k.webp&quot; alt=&quot;Air Fryer 与 Cook Bacon 上的 AR/FM × CoT zero-shot probe（论文 Figure 11）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在同一个 pretrained checkpoint 上只切换 inference configuration：&lt;/p&gt;
&lt;p&gt;| 任务 | FM 无 CoT | FM + CoT | AR 无 CoT | AR + CoT |
| --- | ---: | ---: | ---: | ---: |
| Air Fryer progress（0–5） | 2.1 | 2.7 | 2.4 | &lt;strong&gt;3.8&lt;/strong&gt; |
| Cook Bacon progress（0–5） | 1.2 | 2.0 | 1.5 | &lt;strong&gt;3.4&lt;/strong&gt; |&lt;/p&gt;
&lt;p&gt;AR + CoT 在语言跟随率和五阶段完成数上都最好。PP Bench 这种单阶段任务中 CoT 几乎不改变跟随率（AR 65.6→67.2），说明 CoT 更适合需要多次 grounding/replanning 的长时程 rollout。作者手工评估的 CoT 正确率约为 PP Bench 90%、Air Fryer 85%、Bacon 80%，AR/FM 没有系统差异。&lt;/p&gt;
&lt;h4&gt;Referring context&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; PP Bench 中 name-only 的 language following/task success 为 84.4%/75.0%；增加 box coordinate 后为 85.9%/76.6%；附加目标物体与容器的 crop visual 后升至 98.4%/84.4%。&lt;strong&gt;【Analysis】&lt;/strong&gt; 这说明额外视觉上下文比把坐标写进指令更符合预训练分布，也说明“语言理解强”不等于长尾物体在低对比场景中一定可被正确 grounding。&lt;/p&gt;
&lt;h4&gt;RL compatibility&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-g05/rl_grpo.7i14f4thve.webp&quot; alt=&quot;GRPO 微调中 AR 与 FM 的收敛曲线（论文 Figure 12）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 从每任务一条 demonstration 的 LIBERO policy 出发，AR 直接用 token-level log-probability 做 GRPO；FM 则需要给 denoising trajectory 加 SDE、离散化并近似 log-probability。AR 收敛更快、最终成功率更高且方差更小。论文把它解释为 likelihood parameterization 的结构优势，而不是声称所有 RL 算法都天然偏好 AR。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; DROID 实验刻意排除评测环境和物体实例；BEHAVIOR 用单一 checkpoint 覆盖 50 个任务；PP Bench 还包含 16 个 post-training 未出现的物体类别。&lt;strong&gt;【Analysis】&lt;/strong&gt; 三者分别测量 environment/object、task distribution 和 category-level 泛化，证据比只在同分布 benchmark 上微调更有说服力。&lt;/p&gt;
&lt;p&gt;BEHAVIOR 的 Task Success Score 为 G0.5 1 epoch 0.2904、4 epochs 0.3136；$\pi_{0.5}$ 4 epochs 为 0.2626，第一名 RLC 多 checkpoint 为 0.2605。作者观察到 G0.5 在 50 个任务中的 29 个领先，$\pi_{0.5}$ 在 15 个领先；容器/电器交互因预训练占比低仍是弱项。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 可以把收益拆成三条因果链：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Codec 降低 AR 的长度&lt;/strong&gt;：RVQ 把动作 chunk 压成少量 code，active-part 进一步删除 noop 部件，使 decoder 的每次决策仍然是 token generation，但不再承担逐 DoF、逐时间步的全部成本。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CoT 缩短 grounding 到 action 的路径&lt;/strong&gt;：BBox/Subtask 等 token 不是旁路标签，而是下一个 action token 的直接上下文；在多阶段任务中，重新生成中间推理就等于显式 replanning。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;共享 objective 保留 VLM prior&lt;/strong&gt;：VQA、CoT 和 action 都由同一个 decoder 学习，语言 instruction 可以直接影响 action distribution；这解释了 prompt wording 和 RL likelihood 的可控性。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 不是单独提出一个更大的 action expert，而是把 action representation、reasoning scaffold 和 visual memory 设计成适配单一 AR stream 的三个配套部件。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 跨 embodiment 对齐发生在 tokenizer 的部件语义与共享 vocabulary，而非只在输出向量上 padding。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; CoT 的可切换模板让“是否思考”成为 inference knob，因而可以在速度和 grounding 之间按任务选择，而无需再训练一个 reasoning policy。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;| 维度 | VLM-as-encoder + FM | 普通 AR VLA | G0.5 |
| --- | --- | --- | --- |
| VLM 的角色 | 条件编码器 | 动作生成器 | 推理与动作的同一生成器 |
| 动作表示 | 连续 action chunk | 常见逐步离散 token | 部件化 RVQ + active token |
| CoT | 常是外部模块或 hidden-state 条件 | 可有但未必与 action 共享模板 | 四类 CoT 与 action 同流、可 prompt 切换 |
| 跨形态 | padding/adapter/retargeting | 常按 embodiment 训练 | 固定 5-part layout + shared codec |
| RL likelihood | 需要对 denoising 过程重构 | 原生 token log-probability | 原生 AR likelihood，另保留 FM 对照 |&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 方法依赖以下假设：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;不同机器人可以用稳定的 left/right/lower-body 语义部件表达，且这些部件的动作统计足够共享；&lt;/li&gt;
&lt;li&gt;压缩后的 action codes 保留精细接触操作所需的信息，codec reconstruction error 不会吞掉 AR 的优势；&lt;/li&gt;
&lt;li&gt;生成的 CoT token 与真实 grounding/轨迹存在足够相关性，模型不会只学会“看起来合理”的解释；&lt;/li&gt;
&lt;li&gt;多秒 visual memory 足以处理当前任务的遮挡和短期重试；&lt;/li&gt;
&lt;li&gt;Web/VQA 与机器人数据的混合不会让动作 token 学习被语言 token 淹没。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 结论部分明确指出：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;抽屉插入、半透明柜体等低对比目标仍然较弱，AR 并没有解决 sensing limit；&lt;/li&gt;
&lt;li&gt;visual memory 只有数秒，长时程显式记忆仍待研究；&lt;/li&gt;
&lt;li&gt;lower-body 虽被纳入统一 action space，但本文没有单独评测；&lt;/li&gt;
&lt;li&gt;prompt-level controllability 目前是小规模 qualitative probe，系统实验留给未来工作；&lt;/li&gt;
&lt;li&gt;CoT 正确性与 AR 相对 FM 的机制解释仍是作者的 hypothesis，而非直接因果验证。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;复现门槛高&lt;/strong&gt;：论文未公开训练代码、完整数据 mixture、ActionCodec checkpoint、tokenizer vocabulary 和每个 embodiment 的 normalization 配置，项目页主要是交互式展示，无法仅靠公开材料重建 foundation pre-training。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;比较存在 protocol 差异&lt;/strong&gt;：LIBERO、RoboTwin 和 SimplerEnv 使用不同 post-training 规模；BEHAVIOR 的 RLC 结果是多 checkpoint，而 G0.5/ $\pi_{0.5}$ 是单 checkpoint。论文已尽量报告公平对照，但横向数字仍要谨慎解读。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;AR 速度依赖压缩率&lt;/strong&gt;：active token 和 RVQ round 的收益取决于动作稀疏性；高频全身运动、更多 residual round 或更长 CoT 可能重新把 latency 推高。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CoT 可能放大错误&lt;/strong&gt;：错误的 BBox 或 Subtask 会成为后续 action 的上下文，闭环重规划虽能修正一部分，但也可能导致错误被自回归序列持续放大。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;长时程记忆仍然短&lt;/strong&gt;：论文在 BEHAVIOR 中观察到 temporal pre-training 的迁移收益，但 post-training 使用 single-frame protocol，这无法证明模型能在真实部署中可靠保存数分钟的任务状态。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;把“VLM 是不是 actor”作为架构问题重新审视。&lt;/strong&gt; 如果 AR tokenization 足够紧凑，速度与 reasoning 并不一定是二选一；可以让 AR 负责决策，把 FM 只当作可选的 action accelerator。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Action tokenizer 应该携带 embodiment ontology。&lt;/strong&gt; 统一动作空间不是简单 padding 维度，而是给模型稳定的部件名字、marker 和稀疏性先验。未来可尝试把接触类型、工具语义或末端位姿 frame 也纳入 codec vocabulary。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CoT 的价值在“阶段之间”，不是“每一步都写解释”。&lt;/strong&gt; PP Bench 的单阶段结果几乎不变，而 Air Fryer/Bacon 的五阶段 progress 明显提升，提示动态地选择 reasoning budget 比固定开启 CoT 更合理。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;视觉上下文比坐标文本更稳健。&lt;/strong&gt; PP Bench 的 context ablation 表明，外部 VLM 生成坐标并不自动带来收益；将目标 crop 送回同一个 vision encoder，反而更接近模型的预训练输入分布。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;AR policy 天然适合 token-level RL。&lt;/strong&gt; 直接可得的 log-probability、temperature exploration 和 GRPO 兼容性，是动作离散化之外的第二个结构收益；值得研究如何把 credit assignment 对齐到 CoT、部件 marker 和 residual round。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;下一步应补齐可复现性。&lt;/strong&gt; 若公开 ActionCodec、数据 schema、CoT 自动标注器和最小 inference checkpoint，社区才能判断收益来自 AR 本身、数据规模、视觉记忆还是三者组合。&lt;/li&gt;
&lt;/ol&gt;</content:encoded><h:img src="https://pic.hana0721.top/139063757_p0_master1200.2yyzxgr9fg.webp"/><enclosure url="https://pic.hana0721.top/139063757_p0_master1200.2yyzxgr9fg.webp"/></item><item><title>FASTer 论文精读：用神经动作 Tokenization 加速自回归 VLA</title><link>https://agusexp25.top/blog/paper-deep-dive-faster</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-faster</guid><description>精读 FASTer：从 FASTerVQ 的二维动作压缩、RVQ 与 DCT 重建，到 FASTerVLA 的 Block-wise Autoregression 和 Action Expert。</description><pubDate>Tue, 25 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;论文名称&lt;/strong&gt;：《FASTer: Toward Efficient Autoregressive Vision Language Action Modeling via Neural Action Tokenization》&lt;br&gt;
&lt;strong&gt;作者&lt;/strong&gt;：Yicheng Liu 等 15 位作者&lt;br&gt;
&lt;strong&gt;论文链接&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2512.04952&quot;&gt;arXiv 2512.04952&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; FASTer 把问题拆成两个相互配合的部分：FASTerVQ 负责将一段连续机器人动作编码成短、固定结构的离散 codes；FASTerVLA 再利用这些 codes 进行带语言条件的自回归生成。前者解决“token 太长且质量不稳”，后者解决“逐 token 解码太慢”。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-faster/teaser2-crop.8adzww41qq.webp&quot; alt=&quot;FASTer 总览：动作 tokenizer 与自回归 VLA 的组合（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;提出 FASTerVQ：先按时间和物理语义对动作做二维 patchification，再用 Transformer Action AutoEncoder（TAAE）与 Residual Vector Quantization（RVQ）编码。&lt;/li&gt;
&lt;li&gt;在重建目标中同时约束时域动作与 DCT 频域趋势，兼顾局部控制误差和整体运动形状。&lt;/li&gt;
&lt;li&gt;提出 FASTerVLA：使用 lightweight Action Expert，并以 Block-wise Autoregression（BAR）一次预测一个 token block。&lt;/li&gt;
&lt;li&gt;在 Libero、Simpler-Bridge、VLABench、Bridge、Droid 以及多种真实机器人上验证压缩、速度、跨 embodiment 泛化和任务成功率。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; VLA 通常把图像、语言和本体状态映射为动作 chunk。Diffusion Policy / &lt;code&gt;π₀&lt;/code&gt; 的连续生成精度较高，但自回归 VLA 与 VLM 的接口更自然，通常在语言跟随、场景泛化和常识迁移上更有潜力。&lt;/p&gt;
&lt;p&gt;瓶颈在 action tokenization：FAST 一类 tokenizer 可能需要 150–200 个 token 表示 2 秒动作；每个 token 都触发一次大模型前向，延迟甚至超过动作执行时间。直接缩短序列又会损失控制细节，而且不同自由度的统计分布并不均匀：夹爪近似离散，位姿和关节则连续且相关性不同。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; FASTer 的关键判断是：动作序列不是普通的一维文本。时间维度有平滑冗余，动作维度有 embodiment-specific 的物理语义；tokenizer 必须显式利用这两个结构，才能同时提高 compression ratio 和 reconstruction fidelity。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;给定当前 RGB 图像 $I_t$、本体状态 $s_t$ 和语言指令 $l$，策略预测长度为 $H$ 的连续动作块：&lt;/p&gt;
&lt;p&gt;$$
A_{t:t+H}=(a_t,\ldots,a_{t+H-1}),\qquad a_t\in\mathbb R^D
$$&lt;/p&gt;
&lt;p&gt;FASTer 不直接预测 $A$，而是先由 tokenizer 得到离散 code tensor $C\in{1,\ldots,K}^{N_c\times C_h\times C_a}$，再学习：&lt;/p&gt;
&lt;p&gt;$$
p_\theta(C\mid I_t,s_t,l)
$$&lt;/p&gt;
&lt;p&gt;其中 $N_c$ 是 residual codebook 层数，$C_h$ 是 latent horizon，$C_a$ 是 action 维度方向的 code 数。VQ decoder 最后把 $C$ 还原成连续动作。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-faster/vq-crop.77eam09i8u.webp&quot; alt=&quot;FASTerVQ 的动作 patchifier、TAAE 与 RVQ 结构（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-faster/vla-crop.5mojmjcalw.webp&quot; alt=&quot;FASTerVLA 的 Action Expert、BAR 与 block-wise mask（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 数据流是：&lt;code&gt;RGB + proprioception + language → VLM backbone → Action Expert → discrete action blocks → FASTerVQ decoder → continuous action chunk&lt;/code&gt;。训练时 tokenizer 先独立学习动作表示，VLA 再把 codes 当作新的动作词表进行 teacher forcing；推理时按 codebook 和 horizon 的层级顺序解码。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;FASTerVQ：二维动作 patchifier&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：$H\times D$ 的动作块。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;处理&lt;/strong&gt;：时间维度切成长度 $h$ 的组；动作维度按末端位置、旋转、夹爪等物理语义分组，并 padding 到组内最大维度 $d$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：$(m\cdot n)$ 个 patch，每个 patch 长度为 $h\cdot d$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;作用&lt;/strong&gt;：把时间上的平滑冗余和动作维度的不均匀分布编码进 token 布局。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;TAAE 与 RVQ&lt;/h4&gt;
&lt;p&gt;TAAE 是带卷积下采样的 Transformer encoder–decoder。encoder 得到 latent $z\in\mathbb R^{C_h\times C_a}$，RVQ 逐层量化残差：&lt;/p&gt;
&lt;p&gt;$$
r_1=z,\quad k_i=\arg\min_j|r_i-e_j|^2,\quad r_{i+1}=r_i-e_{k_i}
$$&lt;/p&gt;
&lt;p&gt;早期 codebook 捕获低频、粗粒度运动，后续 codebook 补充高频残差。论文默认 $K=4096$、$N_c=3$；codebook 用 EMA 更新并重置 dead codes。&lt;/p&gt;
&lt;h4&gt;DCT-aware reconstruction&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; tokenizer 同时最小化时域和频域误差：&lt;/p&gt;
&lt;p&gt;$$
\mathcal L_{VQ}=|A-\hat A|_1+|\operatorname{DCT}(A)-\operatorname{DCT}(\hat A)|_1+\lambda|z-\operatorname{sg}(z_q)|_2^2
$$&lt;/p&gt;
&lt;p&gt;第一项保护每个控制步，第二项约束整段轨迹的趋势，第三项是 commitment loss。&lt;strong&gt;【Analysis】&lt;/strong&gt; 这解释了为什么 FASTer 不把“像素级最小误差”当作唯一目标：机器人真正关心的是轨迹是否仍处于可执行的误差范围。&lt;/p&gt;
&lt;h4&gt;FASTerVLA 与 Action Expert&lt;/h4&gt;
&lt;p&gt;VLM 的 vision tower、projection 和 language backbone 保持标准接口；proprioception 被离散化后走文本 token 路径。Action Expert 是更小的、专门生成 action code 的分支，复用多模态上下文但减少对预训练语言权重的干扰。论文实验显示 Action Expert 从预训练 checkpoint 初始化时更稳定。&lt;/p&gt;
&lt;h4&gt;Block-wise Autoregression（BAR）&lt;/h4&gt;
&lt;p&gt;标准 AR 每次预测一个 code。BAR 把序列切成大小为 $B$ 的 block，block 内 token 可以互相 attend，只对前面的 block 保持 causal mask。于是前向次数从 $N$ 降到约 $N/B$。解码顺序先遍历一个 codebook 的 horizon，再进入下一层 residual codebook，符合 RVQ 的 coarse-to-fine 结构。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;自回归目标&lt;/h4&gt;
&lt;p&gt;$$
\mathcal L_{AR}=-\sum_{i=1}^{N}\log p_\theta(c_i\mid c_{&amp;#x3C;i},I_t,s_t,l)
$$&lt;/p&gt;
&lt;p&gt;BAR 将其改写为：&lt;/p&gt;
&lt;p&gt;$$
\mathcal L_{BAR}=-\sum_{j=1}^{J}\sum_{i=1}^{B}\log p_\theta(c_{j,i}\mid C_{&amp;#x3C;j},I_t,s_t,l)
$$&lt;/p&gt;
&lt;p&gt;$J=N/B$，所以 block size 越大，理论 forward 次数越少，但 block 内并行假设也越强。&lt;/p&gt;
&lt;h4&gt;Valid Reconstruction Rate（VRR）&lt;/h4&gt;
&lt;p&gt;$$
\operatorname{VRR}=\frac1{N_{total}}\sum_i\mathbf 1\big(|a_i^{recon}-a_i^{gt}|_1&amp;#x3C;\sigma\big)
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; VRR 用物理误差阈值衡量“是否足够可执行”，比单纯平均 L1 更接近机器人任务质量。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; FASTerVQ 在大规模混合机器人数据上独立训练，AdamW 学习率为 $10^{-4}$、weight decay 为 $0.1$，使用 cosine decay、1000 步 warmup、bfloat16 和梯度裁剪。单臂 tokenizer 约 8M 参数，全身控制版本约 13M；训练最多 300k steps。&lt;/p&gt;
&lt;p&gt;FASTerVLA 使用学习率 $2.5\times10^{-5}$ 的 AdamW，BAR block size 在单臂任务为 7、whole-body / 双臂任务为 8；推理使用 top-k=50、temperature=0.8。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 推理时不需要 encoder，只需用当前观测得到 VLM memory，按 codebook→horizon 顺序生成 block，随后由 VQ decoder 还原连续动作并执行动作 chunk。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;论文 arXiv 源文件只包含 LaTeX、图表与算法，没有给出 GitHub、Hugging Face 或可安装代码链接。&lt;strong&gt;【Code】&lt;/strong&gt; 因此本节没有可核对的 model definition、DataLoader、checkpoint 或 inference script；上文的“代码行为”不应被理解为已经公开的官方实现。&lt;strong&gt;【Analysis】&lt;/strong&gt; 若要复现，至少需要实现 patchifier 的 embodiment 分组、TAAE/RVQ 的 EMA codebook、block-wise causal mask 和 Action Expert 的两阶段训练。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-faster/realexperiment-crop.3rbytwzuxj.webp&quot; alt=&quot;FASTer 的真实机器人与仿真评测结果（论文 Figure 4）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 评测覆盖 Libero、Simpler-Bridge、VLABench、GalaxeaManipSim、XArm、R1Lite、Bridge 和 Droid，涉及 Franka、WidowX、XArm、R1/R1Lite 等 embodiment，包含单臂、双臂和 whole-body control。主要 baseline 是 &lt;code&gt;π₀&lt;/code&gt;、&lt;code&gt;π₀-FAST&lt;/code&gt;、OpenVLA-OFT、UniVLA、Diffusion Policy 等。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;| Benchmark              |     FASTer | 最强对比 / 说明                          |
| ---------------------- | ---------: | ---------------------------------------- |
| Libero average         |  &lt;strong&gt;97.9%&lt;/strong&gt; | 高于 &lt;code&gt;π₀&lt;/code&gt; 的 94.2% 与 &lt;code&gt;π₀-FAST&lt;/code&gt; 的 94.2% |
| Simpler-Bridge average |  &lt;strong&gt;87.9%&lt;/strong&gt; | 高于 &lt;code&gt;π₀-FAST&lt;/code&gt; 的 76.5%                  |
| Libero inference       | &lt;strong&gt;112 ms&lt;/strong&gt; | &lt;code&gt;π₀&lt;/code&gt; 176 ms，FAST 197–556 ms             |
| R1Lite-WBC inference   | &lt;strong&gt;237 ms&lt;/strong&gt; | &lt;code&gt;π₀&lt;/code&gt; 225 ms，FAST 1100–3000 ms           |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Libero 的 Spatial/Object/Goal/Long 成功率分别为 98.0/99.4/98.6/95.4%；Simpler 的 Spoon/Carrot/Block/Eggplant 为 91.7/93.3/67.5/99.2%。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-faster/fastervq_vrr-crop.86udz6c93j.webp&quot; alt=&quot;FASTerVQ 在不同误差阈值下的 VRR（论文 Figure 5）&quot;&gt;&lt;/p&gt;
&lt;p&gt;FASTerVQ 在 VRR 和 compression–reconstruction 曲线上都优于 FAST 等 tokenizer，且随着训练数据从 S 扩展到 L/XL，跨任务与跨 embodiment 的重建继续改善。论文报告 FASTerVQ-XL 在 $\sigma=10^{-3}$ 时接近无损重建。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-faster/blockablate-crop.1764h9zw6c.webp&quot; alt=&quot;FASTer 的 BAR block size 消融（论文 Appendix Figure）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; tokenizer 消融中，TAAE 的 Libero success rate 为 97.9%、L1 loss 为 0.0021，优于 CNN 的 96.2%/0.0027 和纯 Transformer 的 95.3%/0.0036。codebook size 从 512 增至 4096 时成功率升至 97.9%，增至 8192 后降至 96.3%，提示 codebook collapse 风险；3 层 residual 的成功率为 97.9%，8 层反而降至 96.6%。&lt;/p&gt;
&lt;p&gt;BAR 在不使用 Action Expert 时把 latency 从 323 ms 降至 140 ms，success rate 从 95.5% 升至 96.7%；二者结合后达到 97.7% 和 140 ms。Simpler-Widow 上，未预训练的 Action Expert 只有 23.6%，预训练后升至 87.9%，说明 action branch 的初始化非常关键。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-faster/zeroshot-crop.83as1gj71w.webp&quot; alt=&quot;FASTer 在 Bridge 与 Droid 上的 zero-shot 对比（论文 Figure 8）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; FASTerVQ 只用单臂 delta-EEF 数据训练，也能迁移到 Widow、XArm、joint velocity、absolute joint position 等未见 embodiment 或 action representation。VLABench 上 FASTerVLA 的 OOD 相对下降约 29%；Simpler-Bridge 达到 87.9%，比第二名高 12.9 个百分点。Bridge 数据上，FASTerVQ 使用 4096 code 且接近 100% 激活，token 分布熵更高，作者将其与 zero-shot 性能联系起来。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; FASTer 的收益来自三个层次的对齐：patchifier 对齐动作的物理结构，DCT loss 对齐轨迹的长程趋势，BAR 对齐 RVQ code 的层级结构。这样自回归模型面对的是短、定长、分布更均衡的序列，而不是长且变化剧烈的 FAST token 串。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;用“二维、语义分组”的 action patch 替代朴素 flatten。&lt;/li&gt;
&lt;li&gt;用 DCT + L1 把可执行的轨迹形状纳入 tokenizer 目标。&lt;/li&gt;
&lt;li&gt;用 codebook-wise、block-wise 的层级解码减少 forward 次数。&lt;/li&gt;
&lt;li&gt;用轻量 Action Expert 隔离语言建模和动作建模的梯度冲突。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; &lt;code&gt;π₀-FAST&lt;/code&gt; 主要依靠一个通用 tokenizer 把动作离散化；FASTer 进一步把 tokenizer 的布局设计、频域监督和 decoder 调度一起视为 VLA 的系统设计。它不是单纯“换一个 VQ”，而是让 token 的结构直接决定自回归 mask 和解码顺序。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;同一归一化动作空间中的不同 embodiment 共享可迁移的局部运动结构。&lt;/li&gt;
&lt;li&gt;同一 block 内的 code 在动作维度上具有足够的部分独立性。&lt;/li&gt;
&lt;li&gt;更均衡的 codebook activation 能让语言模型更容易学习动作词表。&lt;/li&gt;
&lt;li&gt;预训练 VLM 的语义表示可以通过 Action Expert 稳定地连接到连续控制。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;论文没有单独列出完整的 limitation 小节。&lt;strong&gt;【Paper】&lt;/strong&gt; 文中仍暴露出几个工程边界：tokenizer 和 VLA 使用多套大规模机器人数据、8 张 H100/H20 甚至 64 张 H20/H200 训练；不同 benchmark 需要重新选择 action chunk、$C_h$ 与 block size；whole-body 场景的总延迟仍约 237 ms。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;BAR 的 block 内并行是假设，不适用于强耦合的接触动作；block size 过大可能把错误成批传播。&lt;/li&gt;
&lt;li&gt;语义分组和 padding 依赖 embodiment 先验，换机器人时并非完全 out-of-the-box。&lt;/li&gt;
&lt;li&gt;VRR 的阈值 $\sigma$ 与具体控制器、坐标归一化有关，跨数据集比较需谨慎。&lt;/li&gt;
&lt;li&gt;当前公开材料没有官方代码，复现 EMA dead-code reset、mask 细节和 Action Expert 训练 schedule 仍有较高门槛。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; FASTer 把一个常被当成“预处理”的 tokenizer 提升为 VLA 的核心建模对象。后续工作可以沿三个方向推进：一是让 patchifier 从数据中学习，而不是手写 action grouping；二是根据接触事件动态选择 block size；三是把 VRR 或任务成功率直接作为 tokenizer 的 differentiable 或 offline selection 目标。&lt;/p&gt;
&lt;p&gt;对实践者而言，最值得复用的原则不是固定的 &lt;code&gt;K=4096&lt;/code&gt; 或 &lt;code&gt;B=7&lt;/code&gt;，而是先问清楚三件事：动作的时间冗余在哪里，动作维度的物理耦合在哪里，以及推理延迟主要消耗在 observation encoder 还是 token decoder。只有这三者共同决定 token 结构，AR VLA 才可能同时做到可学、可泛化和可部署。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/70977889_p0_master1200.9gx5x526gc.webp"/><enclosure url="https://pic.hana0721.top/70977889_p0_master1200.9gx5x526gc.webp"/></item><item><title>FAST 论文精读：高效的 Vision-Language-Action 动作 Tokenization</title><link>https://agusexp25.top/blog/paper-deep-dive-fast</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-fast</guid><description>精读 FAST：用 DCT 与 BPE 压缩高频机器人动作，把自回归 VLA 从“预测数百个冗余 token”变成高信息密度的动作序列。</description><pubDate>Tue, 25 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;论文名称&lt;/strong&gt;：《FAST: Efficient Action Tokenization for Vision-Language-Action Models》&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;作者&lt;/strong&gt;：Karl Pertsch、Kyle Stachowicz、Brian Ichter、Danny Driess、Suraj Nair、Quan Vuong、Oier Mees、Chelsea Finn、Sergey Levine&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;会议 / 期刊&lt;/strong&gt;：arXiv 预印本（2025）&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;论文链接&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2501.09747&quot;&gt;arXiv&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;代码链接&lt;/strong&gt;：&lt;a href=&quot;https://github.com/Physical-Intelligence/openpi&quot;&gt;Physical-Intelligence/openpi&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;项目主页&lt;/strong&gt;：&lt;a href=&quot;https://www.physicalintelligence.company/research/fast&quot;&gt;FAST&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; FAST（Frequency-space Action Sequence Tokenization）指出：高频控制数据的问题不是动作本身太复杂，而是逐维、逐时间步 binning 产生了大量高度相关的 token，使 next-token prediction 的边际学习信号趋近于零。它先用离散余弦变换（DCT）把动作块转换到频域，量化后再用 Byte Pair Encoding（BPE）压缩，最后让自回归 VLA 只预测少量高信息密度 token。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;提出一种不需要训练神经网络的压缩式动作 tokenizer：DCT 负责把平滑动作集中到低频系数，BPE 负责无损地合并稀疏系数序列。&lt;/li&gt;
&lt;li&gt;在 20 Hz 的 Table Bussing、50 Hz 的 T-Shirt Folding 等高频任务上，FAST 让原本无法学习的自回归 VLA 取得有效策略；T-Shirt Folding 的平均 token 数从 700 降到 53。&lt;/li&gt;
&lt;li&gt;发布在约 100 万条真实机器人动作块上训练的 FAST+ universal tokenizer，覆盖 single-arm、bi-manual、mobile 等 embodiment 与 joint / end-effector action space。&lt;/li&gt;
&lt;li&gt;将 FAST 接入 $\pi_0$ 后，$\pi_0$-FAST 在 10k 小时级跨机器人数据上达到接近 diffusion $\pi_0$ 的表现，训练速度最高提升 5 倍，并首次展示 DROID 的完全 zero-shot 新场景语言指令控制。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这篇工作真正改变的是 action representation，而不是 VLA backbone：它把“自回归模型是否能学会高频动作”转化为“每个 token 是否携带足够的新信息”。&lt;/p&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 自回归 VLA 把图像、语言和动作放到同一条 token 序列中，用 Transformer 做 next-token prediction。语言 token 天然经过 BPE 等压缩，连续机器人动作却常被直接按每个时间步、每个维度量化成 256 个 bin。对于长度为 $H$、动作维度为 $D$ 的 chunk，这会产生 $H D$ 个 action token。&lt;/p&gt;
&lt;p&gt;这种做法在低频数据上尚可，但在高频数据上会产生两个连锁问题：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;序列过长&lt;/strong&gt;：1 秒、14 维、50 Hz 的动作块需要 700 个 token，训练显存和推理时延都随之增加。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;边际信息过低&lt;/strong&gt;：平滑轨迹在相邻时间步变化很小，给定前一个 token 后，下一个 token 几乎可以被复制出来。模型可能得到较低的 token loss，却没有学会真正的动作形状。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;论文用一个 cubic-spline toy example 说明这一点：保持底层函数不变，只提高采样率，naive tokenization 的预测误差会急剧上升，模型最终退化为复制第一个动作；DCT tokenization 在不同采样率下仍保持稳定。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这解释了为什么“更高频的数据”不一定带来更多可学习信息：如果 tokenization 把一个连续信号切成许多近似重复的符号，模型容量会被消耗在记忆局部相关性，而不是建模轨迹的低维结构。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 给定观测 $o$，策略输出长度为 $H$ 的动作 chunk：&lt;/p&gt;
&lt;p&gt;$$
\pi(a_{1:H}\mid o), \qquad a_t\in\mathbb{R}^{D}
$$&lt;/p&gt;
&lt;p&gt;动作 tokenizer 定义一个映射：&lt;/p&gt;
&lt;p&gt;$$
\mathcal{T}&lt;em&gt;a: a&lt;/em&gt;{1:H}\longrightarrow [T_1,\ldots,T_n], \qquad T_i\in\mathcal{V}
$$&lt;/p&gt;
&lt;p&gt;其中 $n$ 可以小于 $H D$，词表大小为 $|\mathcal V|$。训练目标是只在动作 token 上最大化：&lt;/p&gt;
&lt;p&gt;$$
\mathcal{L}&lt;em&gt;{\mathrm{AR}}(\theta)=-\sum&lt;/em&gt;{i=1}^{n}\log p_\theta(T_i\mid o,T_{&amp;#x3C;i})
$$&lt;/p&gt;
&lt;p&gt;论文覆盖的 Embodied AI 要素如下：&lt;/p&gt;
&lt;p&gt;| 要素 | FAST 中的设定 |
| --- | --- |
| Observation | RGB 图像、语言指令和 proprioceptive state；具体相机数量随任务而变 |
| Vision / Language | $\pi_0$ 使用 PaliGemma-3B，OpenVLA 使用 Prismatic-7B |
| Action representation | 1 秒 action chunk，先归一化，再做 DCT、量化、BPE |
| Policy | 自回归 VLA，以 prefix-LM attention 预测动作 token |
| Embodiment | single-arm、bi-manual、mobile；实验还包含静态机器人上的 Libero、DROID 等 |
| Control frequency | 5–50 Hz 的公开与内部数据；DROID 评测为 15 Hz |
| Decoder | BPE 逆变换、DCT inverse 与反归一化恢复连续动作 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 当前 &lt;code&gt;openpi&lt;/code&gt; 的 &lt;code&gt;FASTTokenizer&lt;/code&gt; 默认把 prompt 和离散 state 放在 prefix，把 FAST action tokens 放在 postfix；训练只对 postfix 的 &lt;code&gt;token_loss_mask&lt;/code&gt; 计算 loss，推理时通过 &lt;code&gt;extract_actions&lt;/code&gt; 解析 &lt;code&gt;Action: ... |&lt;/code&gt; 区间并恢复动作。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-fast/dct_method.4ubo4rsq9g.webp&quot; alt=&quot;FAST 动作 tokenization 流程：归一化动作块经过 DCT、量化、低频优先 flatten 与 BPE，得到压缩 token（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 整体数据流是：&lt;code&gt;action chunk → quantile normalization → DCT → scale-and-round → low-frequency-first flatten → BPE → action tokens&lt;/code&gt;；解码按相反方向执行，再将 token 拼回 VLA 的语言模型词表。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;Quantile Normalization&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：每个动作维度的连续轨迹 $a^i_{1:H}$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：大致落在 $[-1,1]$ 的归一化轨迹。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;做什么&lt;/strong&gt;：用训练集第 1 和第 99 分位数映射到 $[-1,1]$，对偶发 outlier 更稳健。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要&lt;/strong&gt;：不同机器人、不同 action space 的物理尺度差异很大；统一范围后，同一个 DCT scale 才能跨 embodiment 工作。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;DCT Frequency Transform&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：归一化后的每个动作维度时间序列。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：$D\times H$ 的频域系数矩阵 $C$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;做什么&lt;/strong&gt;：把轨迹表示为不同频率的 cosine basis；低频系数描述整体形状，高频系数描述急剧变化。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要&lt;/strong&gt;：平滑机器人轨迹的大部分能量集中在低频，频域表示天然比逐时间步表示更稀疏。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Scale-and-Round Quantization&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：DCT 系数 $C^i_j$ 与尺度 $\gamma$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：整数系数 $\bar C^i_j$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;做什么&lt;/strong&gt;：$\bar C^i_j=\operatorname{round}(\gamma C^i_j)$，用 $\gamma$ 在重建误差和压缩率之间做 trade-off。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要&lt;/strong&gt;：BPE 需要离散整数序列；舍弃很小的系数会把大量近似零的频率分量变成可压缩模式。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Low-Frequency-First Flatten&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：稀疏的 $D\times H$ 整数矩阵。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：一维整数序列。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;做什么&lt;/strong&gt;：按频率列优先排列，即先放所有动作维度的低频系数，再放更高频系数。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要&lt;/strong&gt;：自回归模型先预测低频系数，就先确定了整段动作的总体形状，rollout 更稳定；论文明确指出 flatten 顺序会影响训练。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;BPE Compression&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：flatten 后的一维整数序列。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：词表大小固定的 dense action token 序列。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;做什么&lt;/strong&gt;：学习高频共现的系数组合，把连续的零和重复模式合并。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要&lt;/strong&gt;：仅有 DCT 会留下大量重复的 &lt;code&gt;0&lt;/code&gt; token；BPE 进一步缩短序列，并让 action token 能复用 VLA 词表的离散接口。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; FAST 只有两个主要超参数：rounding scale 和 BPE vocabulary size。单数据集实验默认使用 $\gamma=10$、BPE vocabulary size $1024$，作者称它们比 learned VQ/FSQ tokenizer 更容易调节。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;DCT 表示&lt;/h4&gt;
&lt;p&gt;对动作维度 $i$ 的长度 $H$ 序列，DCT-II 可写成：&lt;/p&gt;
&lt;p&gt;$$
C^i_j=\alpha_j\sum_{t=0}^{H-1}a^i_t\cos\left[\frac{\pi}{H}\left(t+\frac12\right)j\right],\quad j=0,\ldots,H-1
$$&lt;/p&gt;
&lt;p&gt;其中 $a^i_t$ 是第 $i$ 个动作维度在时间 $t$ 的归一化值，$C^i_j$ 是第 $j$ 个频率系数，$\alpha_j$ 是 DCT 的归一化因子。$j$ 越小，频率越低。&lt;/p&gt;
&lt;h4&gt;量化与压缩&lt;/h4&gt;
&lt;p&gt;$$
\bar C^i_j=\operatorname{round}(\gamma C^i_j),\qquad
\mathbf{s}=\operatorname{flatten}_{\text{low-first}}(\bar C)
$$&lt;/p&gt;
&lt;p&gt;随后训练或加载 BPE 字典 $\Phi$：&lt;/p&gt;
&lt;p&gt;$$
[T_1,\ldots,T_n]=\operatorname{BPE}(\mathbf{s};\Phi)
$$&lt;/p&gt;
&lt;p&gt;其中 $\gamma$ 越大，保留的重建细节越多、token 越长；$\Phi$ 只负责 lossless 地合并整数序列，不负责把动作映射到新的连续 latent space。&lt;/p&gt;
&lt;h4&gt;自回归 prefix-LM&lt;/h4&gt;
&lt;p&gt;令 $x$ 表示图像、语言和 state 的 prefix，$T_{1:n}$ 表示 FAST tokens：&lt;/p&gt;
&lt;p&gt;$$
p(T_{1:n}\mid x)=\prod_{i=1}^{n}p(T_i\mid x,T_{&amp;#x3C;i})
$$&lt;/p&gt;
&lt;p&gt;prefix 内部使用双向 attention，action postfix 使用 causal attention；因此模型可以同时看完整 observation，又必须按顺序生成动作 token。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 训练阶段先对每个数据集的 1 秒动作块做 FAST tokenization，再把 action tokens 放入 VLA 的语言序列中。$\pi_0$ 与 OpenVLA 均不冻结 backbone；图像通常为 $224\times224$，state 以 256-bin 离散值作为输入。主要优化设置是 AdamW（$\beta_1=0.9,\beta_2=0.95$）、learning rate $5\times10^{-5}$、1k steps warm-up、gradient clipping 1，以及 decay 为 0.999 的 EMA。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 推理时给定图像、语言和 state，模型以 greedy autoregressive decoding 生成 FAST tokens；双臂任务中作者发现温度 $\beta=0.7$ 有助于离开 home position。BPE 解码后做 inverse DCT 和反归一化，得到可执行的连续动作 chunk。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;openpi/src/openpi/models/tokenizer.py&lt;/code&gt; 的 &lt;code&gt;extract_actions&lt;/code&gt; 先把 PaliGemma token 解码成字符串，截取 &lt;code&gt;Action: &lt;/code&gt; 与 &lt;code&gt;|&lt;/code&gt; 之间的 token，再通过 &lt;code&gt;_fast_tokenizer.decode(..., time_horizon, action_dim)&lt;/code&gt; 恢复动作。&lt;code&gt;Pi0FAST.sample_actions&lt;/code&gt; 则实现 prefix KV-cache、逐步采样和最大 decoding steps 截断。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方 &lt;code&gt;Physical-Intelligence/openpi&lt;/code&gt; 是论文之后公开的可运行实现，代码行为与论文的核心 tokenizer 一致，但将 tokenizer 与 PaliGemma / $\pi_0$ 的训练接口具体化：&lt;/p&gt;
&lt;p&gt;| 论文概念 | 代码位置 | 实际行为 |
| --- | --- | --- |
| FAST action tokenizer | &lt;code&gt;src/openpi/models/tokenizer.py:FASTTokenizer&lt;/code&gt; | 从 Hugging Face 加载 &lt;code&gt;physical-intelligence/fast&lt;/code&gt; 的 &lt;code&gt;AutoProcessor&lt;/code&gt;，将 action tokens 映射到 PaliGemma 词表末端并跳过 128 个 special tokens |
| Prompt / action 拼接 | &lt;code&gt;src/openpi/models/tokenizer.py:tokenize&lt;/code&gt; | prompt、256-bin state 是 prefix；&lt;code&gt;Action:&lt;/code&gt;、FAST tokens、&lt;code&gt;|&lt;/code&gt; 是 postfix |
| Loss mask | &lt;code&gt;src/openpi/transforms.py:TokenizeFASTInputs&lt;/code&gt; | &lt;code&gt;token_ar_mask&lt;/code&gt; 区分 prefix-LM 与 causal 区域，&lt;code&gt;token_loss_mask&lt;/code&gt; 只监督 postfix |
| 自回归模型 | &lt;code&gt;src/openpi/models/pi0_fast.py:Pi0FAST&lt;/code&gt; | 图像和 prefix 一次性 prefill，随后 KV-cache 逐 token 解码 |
| DROID 配置 | &lt;code&gt;src/openpi/training/config.py:pi0_fast_droid&lt;/code&gt; | action_dim=8、action_horizon=10，使用 DROID 数据 transform |
| FAST+ / specialist tokenizer | &lt;code&gt;src/openpi/training/misc/roboarena_config.py&lt;/code&gt; | 默认可用 universal FAST+，也支持加载 &lt;code&gt;KarlP/fast_droid_specialist&lt;/code&gt; |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 这意味着“FAST”在论文中是通用的 action representation，而 &lt;code&gt;pi0_fast&lt;/code&gt; 是把该 representation 接进 PaliGemma 语言模型的具体架构；不要把 DCT/BPE tokenizer 本身和完整 VLA backbone 混为一谈。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 作者使用 $\pi_0$ 与 OpenVLA 两种 VLA backbone，对比四类动作表示：naive per-dimension binning、FSQ、数据集专用 FAST、通用 FAST+。评测包含 Libero 仿真、Table Bussing（20 Hz）、T-Shirt Folding（50 Hz）、Grocery Bagging、Toast out of Toaster、Laundry Folding，以及 DROID（15 Hz）零样本新场景。&lt;/p&gt;
&lt;p&gt;| 数据集 | 动作维度 / 频率 | Naive 平均 token | FAST 平均 token | 压缩倍数 |
| --- | ---: | ---: | ---: | ---: |
| BridgeV2 | 7 / 5 Hz | 35 | 20 | 1.75× |
| DROID | 7 / 15 Hz | 105 | 29 | 3.6× |
| Table Bussing | 7 / 20 Hz | 140 | 28 | 5.0× |
| T-Shirt Folding | 14 / 50 Hz | 700 | 53 | 13.2× |&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-fast/main_result.1apqeyq0mc.webp&quot; alt=&quot;不同 action tokenizer 在 Libero、DROID、Table Bussing 与 T-Shirt Folding 上的策略结果（论文 Figure 5）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 主要结果有三层：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;naive tokenization 在高频 Table Bussing 与 T-Shirt Folding 上几乎无法学会有效策略；FAST 与 FSQ 都显著改善训练，FAST 在灵巧真实任务上通常更好。&lt;/li&gt;
&lt;li&gt;FAST+ 的策略表现接近数据集专用 FAST，说明 universal tokenizer 不需要为每个机器人重新训练 BPE 字典。&lt;/li&gt;
&lt;li&gt;DROID policy 可以在完全未见的桌面、背景、物体、视角和桌高上，仅通过自然语言 prompt 完成拾取、擦桌、开关抽屉等任务；论文称这是该数据集首次展示这种 zero-shot evaluation。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 两个消融揭示了组件的作用：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Backbone independence&lt;/strong&gt;：在 OpenVLA 的 T-Shirt Folding 上，把原本的 naive tokenizer 换成 FAST+ 后，策略重新获得可学习性，说明收益并不依赖 $\pi_0$ 的特定骨干。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;去掉 BPE&lt;/strong&gt;：仅保留 DCT 仍优于 naive，但大量重复 &lt;code&gt;0&lt;/code&gt; token 会稀释学习信号、延长自回归解码，rollout 明显变差。因此 DCT 负责“集中信息”，BPE 负责“把集中后的稀疏序列真正压短”。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这个消融把“频域变换”和“序列压缩”拆开了：DCT 是 representation 的主要来源，BPE 则是让 representation 适合语言模型训练和推理的关键工程步骤。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-fast/pi0_multi_task.77ealz6joo.webp&quot; alt=&quot;$\pi_0$-FAST 与 diffusion $\pi_0$ 在跨机器人数据混合上的 generalist policy 表现（论文 Figure 8）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在单任务比较中，$\pi_0$-FAST 在 Table Bussing 上约用 3 倍更少训练 steps 达到较高表现；在 Libero 与 T-Shirt Folding 等小数据集上两者相近。对 10k 小时级跨 embodiment 数据混合训练的 $\pi_0$-FAST generalist policy，其平均表现与 diffusion $\pi_0$ 接近，但训练计算量更低。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-fast/pi0_single_task.icux89eyc.webp&quot; alt=&quot;单任务中自回归 $\pi_0$-FAST 与 diffusion $\pi_0$ 的收敛与任务进度对比（论文 Figure 7）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 代价也很明确：在 NVIDIA 4090 上，diffusion $\pi_0$ 约 100 ms 生成 1 秒动作块，而 $\pi_0$-FAST 约 750 ms；后者通常要解码 30–60 个 action tokens，并使用完整的约 2B 参数语言模型，而 diffusion 只需约 10 个采样 steps 和更小的 action expert。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; FAST 有效的核心不是“DCT 比 binning 更精确”，而是它改变了监督信号的统计结构：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;高频采样下，相邻时间步的差异趋近于零；DCT 把这些重复变化投影到少数低频系数。&lt;/li&gt;
&lt;li&gt;自回归模型先预测低频系数，相当于先确定动作 chunk 的全局形状，再补充高频细节。&lt;/li&gt;
&lt;li&gt;BPE 把零和常见系数组合合并，减少需要依次预测的位置，使每个位置携带更多条件信息。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;因此，FAST 同时降低了序列长度和 token 间相关性，训练速度与策略质量都会改善。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 创新可以概括为“compression-first action tokenization”：把语言模型领域的压缩思想迁移到连续机器人信号，并选择无需 learned encoder 的 DCT 作为前端，再用成熟 BPE 接入现有 VLA 词表。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; FAST+ 的重要性不亚于 FAST 本身：它把“每换一个数据集就重新 fit tokenizer”的额外步骤，变成一个可以直接加载的黑盒组件，降低跨 embodiment 训练的工程摩擦。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;| 方法 | 表示方式 | 学习组件 | 高频动作的主要问题 |
| --- | --- | --- | --- |
| Naive binning | 每时间步、每维一个 bin | 无 | token 数随 $H D$ 线性膨胀，强相关 |
| FSQ / VQ 类 | 学习 latent code | 需要训练 tokenizer | 调参和重建质量更复杂 |
| FAST | DCT 系数 + BPE | 只学习 BPE 词表 | 需要处理 inference latency |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; FAST 并没有消除动作的连续性，而是把连续性放到更适合建模的频域坐标中；它与 diffusion policy 的差别也不只是“离散 vs 连续”，而是 autoregressive decoding 是否能通过良好 tokenization 获得高效监督。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 方法隐含或明确依赖以下假设：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;机器人动作在所用 chunk 内具有足够的平滑性，使低频系数集中主要信息。&lt;/li&gt;
&lt;li&gt;一个 1 秒 chunk 能同时表达有用的局部轨迹和可压缩的时间结构。&lt;/li&gt;
&lt;li&gt;低频优先的顺序对 rollout 稳定性有帮助。&lt;/li&gt;
&lt;li&gt;在训练混合中看到的动作统计足以让 FAST+ 泛化到未见 robot morphology、action space 和 control frequency。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 对极端接触、碰撞、快速反射等高频不连续动作，DCT 的能量集中可能变差；此时增大 $\gamma$ 会保留细节，却又牺牲压缩率，说明 tokenizer 仍需与控制频率和任务动态共同设计。&lt;/p&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;实际 policy 实验主要集中在静态 manipulation robots；FAST+ 在 mobile、dexterous hand、humanoid 上的实验主要是离线压缩测试，尚未证明真实控制效果。&lt;/li&gt;
&lt;li&gt;自回归 $\pi_0$-FAST 推理明显慢于 diffusion $\pi_0$，动态任务可能因此受限。&lt;/li&gt;
&lt;li&gt;其他压缩算法、与 diffusion / non-autoregressive decoder 的组合，以及更系统的 autoregressive 与 diffusion VLA 对比留给未来工作。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;BPE 词表是离线学习的；当部署机器人动作分布远离训练混合时，压缩率和 token 频率可能同时下降，论文没有给出在线检测或重新 fit 策略。&lt;/li&gt;
&lt;li&gt;DCT 是全 chunk 变换，解码前需要预测足够多的 token；如果任务需要低延迟闭环或动作块长度动态变化，固定 1 秒 chunk 未必合适。&lt;/li&gt;
&lt;li&gt;论文报告了平均成功率和压缩率，但没有充分拆解 tokenization 误差、控制器误差与视觉 / 语言误差各自对最终失败的贡献。&lt;/li&gt;
&lt;li&gt;官方代码中的 &lt;code&gt;max_token_len&lt;/code&gt; 是 padding 后的硬上限；当双臂或高细节动作超出上限时会截断 postfix，必须由使用者根据 action horizon 与 robot morphology 调整。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; FAST 给 VLA 研究的启发是：动作 tokenization 应像文本 tokenizer 一样被当作一等公民，而不是训练脚本里的预处理细节。后续工作可以沿几条线推进：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;根据任务动态自适应选择 DCT scale、chunk 长度和频率保留范围，而不是固定 $\gamma=10$ 与 1 秒窗口。&lt;/li&gt;
&lt;li&gt;让 BPE 词表与 embodiment 条件联合建模，或使用可扩展的在线 / 分层 tokenizer，解决新机器人分布漂移。&lt;/li&gt;
&lt;li&gt;用 speculative decoding、quantization、small action head 或并行 token decoding 缩短 FAST 的推理时延。&lt;/li&gt;
&lt;li&gt;把频域动作表示与 diffusion、flow matching 或 masked parallel decoding 结合，探索“压缩 representation + 非自回归执行”的折中。&lt;/li&gt;
&lt;li&gt;在动态 locomotion、whole-body humanoid control 和高频接触操作上验证“低频先、 高频后”的生成顺序是否仍成立。&lt;/li&gt;
&lt;/ul&gt;</content:encoded><h:img src="https://pic.hana0721.top/68232005_p0_master1200.60uu51sjdo.webp"/><enclosure url="https://pic.hana0721.top/68232005_p0_master1200.60uu51sjdo.webp"/></item><item><title>CoT-VLA 论文精读：让机器人先想象目标，再执行动作</title><link>https://agusexp25.top/blog/paper-deep-dive-cot-vla</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-cot-vla</guid><description>精读 CoT-VLA：用未来子目标图像作为视觉 Chain-of-Thought，再通过混合注意力和 Action Chunking 生成闭环动作。</description><pubDate>Tue, 25 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;论文名称&lt;/strong&gt;：《CoT-VLA: Visual Chain-of-Thought Reasoning for Vision-Language-Action Models》&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;作者&lt;/strong&gt;：Qingqing Zhao、Yao Lu、Moo Jin Kim、Zipeng Fu、Zhuoyang Zhang、Yecheng Wu、Qianli Ma、Song Han、Chelsea Finn、Ankur Handa、Ming-Yu Liu、Donglai Xiang、Gordon Wetzstein、Tsung-Yi Lin&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;会议&lt;/strong&gt;：CVPR 2025&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;论文 / 项目 / 基座代码&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2503.22020&quot;&gt;arXiv&lt;/a&gt; · &lt;a href=&quot;https://cot-vla.github.io/&quot;&gt;Project Page&lt;/a&gt; · &lt;a href=&quot;https://github.com/NVlabs/VILA&quot;&gt;VILA&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-cot-vla/teaser.6t7uuztgyt.webp&quot; alt=&quot;CoT-VLA 与 vanilla VLA 的对比：先生成 goal image，再生成 action chunk（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; CoT-VLA 把语言模型里的 Chain-of-Thought（CoT）改成了机器人可以执行的视觉中间状态：给定当前观测和指令，模型先生成一个未来的 &lt;strong&gt;subgoal image&lt;/strong&gt;，再根据当前图像、指令和这个视觉目标生成一小段动作。执行 action chunk 后重新观察，循环往复直到任务完成。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;用未来子目标图像作为视觉 Chain-of-Thought，避免把复杂任务压缩成当前观测到动作的单步映射。&lt;/li&gt;
&lt;li&gt;在同一个 VILA-U 7B 模型中结合图像生成与动作预测：视觉 / 文本使用 causal attention，动作 token 使用 full attention 并行交互。&lt;/li&gt;
&lt;li&gt;使用 action-less video 训练子目标图像生成，因此视觉推理分支不要求每条视频都有机器人 action label。&lt;/li&gt;
&lt;li&gt;结合 Action Chunking 和 closed-loop execution，在 LIBERO、Bridge-V2 和 Franka-Tabletop 上验证视觉中间目标的作用。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 本文的关键不是“让机器人生成一张更好看的图”，而是把未来图像当作动作 Policy 的显式条件。只要生成的图像能回答“下一步应该把场景变成什么样”，它就同时承担了计划、视觉 grounding 和动作目标三种角色。&lt;/p&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 传统 VLA 通常学习 $mathbf{s}_t,l
ightarrowmathbf{a}_t$ 的直接映射：输入当前视觉观测 $mathbf{s}_t$ 和语言指令 $l$，直接输出 action。预训练 VLM 带来了物体、场景和语言知识，但模型内部缺少显式的中间步骤，难以检查它对“未来状态”的理解是否正确。&lt;/p&gt;
&lt;p&gt;语言模型中的 Chain-of-Thought 通过生成中间文字步骤帮助解决多步问题。机器人领域也尝试过文字计划、keypoint、bounding box、轨迹点或目标 embedding，但这些表示要么抽象、要么需要额外标注和预处理。CoT-VLA 选择更接近实际轨迹的像素空间目标：示教视频本来就包含“动作之前”和“动作之后”的图像，不必额外请人写计划。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 与 SUSIE 这类“图像编辑器 + goal-conditioned policy”的两阶段系统相比，CoT-VLA 将图像生成和动作生成统一到一个可训练的 multimodal model 中；与 vanilla VLA 相比，它增加了视觉推理阶段；与每一步都生成 CoT 的方案相比，它在一个子目标上预测一段 action chunk，再重新观察。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这使得 CoT-VLA 的设计重点从“增加一个高层规划器”转向“选择一个既可解释又可消费的中间变量”。图像目标比文字更接近控制空间，但也把视觉生成质量直接变成了控制上限。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;机器人示教数据可以写为：&lt;/p&gt;
&lt;p&gt;$$
D_r = {(l, \mathbf{a}&lt;em&gt;{1:T}, \mathbf{s}&lt;/em&gt;{1:T})},
$$&lt;/p&gt;
&lt;p&gt;其中 $l$ 是语言指令，$mathbf{s}&lt;em&gt;{1:T}$ 是视觉观测序列，$mathbf{a}&lt;/em&gt;{1:T}$ 是 action 序列。action-less video 只有语言描述和图像：&lt;/p&gt;
&lt;p&gt;$$
D_v = {(l, \mathbf{s}_{1:T})}.
$$&lt;/p&gt;
&lt;p&gt;普通 VLA 直接学习：&lt;/p&gt;
&lt;p&gt;$$
\hat{\mathbf{a}}&lt;em&gt;t \sim P&lt;/em&gt;\theta(\mathbf{a}_t \mid \mathbf{s}_t,l).
$$&lt;/p&gt;
&lt;p&gt;CoT-VLA 将这一步拆成两个条件生成问题：&lt;/p&gt;
&lt;p&gt;$$
\hat{\mathbf{s}}&lt;em&gt;{t+n} \sim P&lt;/em&gt;\theta(\mathbf{s}_{t+n}\mid \mathbf{s}_t,l),
$$&lt;/p&gt;
&lt;p&gt;$$
{\hat{\mathbf{a}}&lt;em&gt;t,\ldots,\hat{\mathbf{a}}&lt;/em&gt;{t+m}}
\sim P_\theta(\mathbf{a}_{t:t+m}\mid \mathbf{s}&lt;em&gt;t,l,\mathbf{s}&lt;/em&gt;{t+n}).
$$&lt;/p&gt;
&lt;p&gt;这里的 $n$ 是视觉子目标相对当前帧的未来 horizon，$m+1$ 是一次预测和执行的 action chunk 长度。$hat{\mathbf{s}}_{t+n}$ 不是最终任务完成图像，而是模型认为下一段短动作应该达到的中间状态。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 视觉推理阶段同时使用 $D_r$ 和 $D_v$；动作阶段只能使用带 action annotation 的 $D_r$。因此，视频数据可以增强“看懂未来状态”的能力，却不能单独训练机器人动作解码器。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-cot-vla/method.5q85k3xnaw.webp&quot; alt=&quot;CoT-VLA 总体架构：VILA-U 先生成视觉子目标，再并行生成动作并闭环执行（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; CoT-VLA 建立在 VILA-U 7B 上。模型接收当前 observation image 和 text instruction，先以 causal attention 自回归生成 subgoal image 的 visual tokens；随后把当前观测、指令和生成的 subgoal image 一起作为动作条件，以 full attention 预测一段 action tokens。机器人执行这段动作后重新捕获观测，形成 closed-loop control。&lt;/p&gt;
&lt;p&gt;数据流可以概括为：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;当前观测 + 指令
        │
        ▼
未来 subgoal image（Visual CoT）
        │
当前观测 + 指令 + subgoal image
        │
        ▼
action chunk ──执行──&gt; 新观测 ──循环──┘
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;VILA-U multimodal backbone&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; VILA-U 是可以理解和生成图像、视频、文本 token 的统一多模态模型。其 vision tower 将图像编码为离散 visual tokens，使用 residual quantization 和 depth transformer 表示每个视觉位置的多层 residual token，再通过 projector 送入 LLM backbone。本文使用 $256\times256$ 输入，每张图像编码为 $16\times16\times4$ 个视觉 token，residual depth 为 4。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这个基座选择决定了 CoT-VLA 可以把“未来图像”放进与文字相同的自回归序列中；如果 backbone 只能理解图像而不能生成图像，就无法直接采用本文的 visual CoT 训练目标。&lt;/p&gt;
&lt;h4&gt;Subgoal image generation&lt;/h4&gt;
&lt;p&gt;输入是当前图像 $mathbf{s}&lt;em&gt;t$ 与语言 $l$，输出是未来时刻的图像 $hat{\mathbf{s}}&lt;/em&gt;{t+n}$。训练时，未来 horizon $n$ 从每个数据集指定的区间内采样，目标图像来自真实视频或机器人示教中的未来帧。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 这一步不是用 diffusion 进行图像编辑，而是沿用 VILA-U 的 autoregressive visual token prediction。模型逐个生成视觉位置，再由 depth transformer 生成 residual tokens。&lt;/p&gt;
&lt;h4&gt;Action tokenization&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 每个机器人 action 有 7 个维度，每个维度独立离散化为 256 个 bins，bin 边界由训练数据 action 分布的第 1 和第 99 百分位确定。作者复用文本 tokenizer 中不常用的 256 个 token 作为 action bins，因此动作可以沿用语言模型的 token 预测接口。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这是一种工程上的统一，而不是连续控制表示的终点：离散化让动作头容易接入 VLM，却会牺牲细粒度精度。本文通过 action chunking 和 full attention 弥补时序建模能力，但没有消除 binning 本身的量化误差。&lt;/p&gt;
&lt;h4&gt;Hybrid attention&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-cot-vla/attention.1e9cckec0n.webp&quot; alt=&quot;CoT-VLA 的 hybrid attention：图像与文本用 causal attention，动作 token 用 full attention（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 图像和文本生成仍保持 causal attention，因为它们需要自回归地预测下一个 token；动作序列则使用 full attention，让一个 action chunk 内的所有 action dimensions 和时间位置相互可见。图中 $[x]$、$[\theta]$、$[g]$ 分别表示平移、旋转和夹爪相关的 action token。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 如果把 action chunk 也当作普通文本 token 自回归生成，后面的动作只能看到前面已经生成的 token，既慢又不利于一次性协调多维控制。full attention 将动作预测改成并行条件预测，而不是继续强行复用语言生成的顺序。&lt;/p&gt;
&lt;h4&gt;Action Chunking&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 本文预训练使用长度为 10 的 action chunk。单次预测未来一小段动作，再重新观察，能够减少每一步都重新运行完整视觉推理的次数；同时比一次性预测整条长轨迹保留更多闭环反馈。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;p&gt;视觉子目标的生成损失是 visual token 的交叉熵：&lt;/p&gt;
&lt;p&gt;$$
\mathcal{L}&lt;em&gt;{\mathrm{visual}}
=-\sum_j\sum&lt;/em&gt;{d=1}^{D}
\log P_\delta(k_{jd}\mid k_{j,&amp;#x3C;d}).
$$&lt;/p&gt;
&lt;p&gt;$j$ 表示视觉 token 的空间位置，$d$ 表示该位置的 residual depth，$k_{jd}$ 是第 $j$ 个位置的第 $d$ 层 residual token，$P_\delta$ 是 depth transformer 的预测分布。它监督模型恢复未来图像，而不是直接监督动作。&lt;/p&gt;
&lt;p&gt;动作损失为 action token 的交叉熵：&lt;/p&gt;
&lt;p&gt;$$
\mathcal{L}&lt;em&gt;{\mathrm{action}}
=-\sum&lt;/em&gt;{i=1}^{m}
\log P_\theta(\mathbf{a}_{t:t+m}\mid l,\mathbf{s}&lt;em&gt;t,\mathbf{s}&lt;/em&gt;{t+n}).
$$&lt;/p&gt;
&lt;p&gt;最终目标为：&lt;/p&gt;
&lt;p&gt;$$
\mathcal{L}=\mathcal{L}&lt;em&gt;{\mathrm{action}}+\mathcal{L}&lt;/em&gt;{\mathrm{visual}}.
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文将两项损失直接相加，没有报告额外的 loss weight。需要注意，视觉损失是在机器人和 action-less video 上学习，动作损失只在机器人示教上学习。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 训练分为两阶段。第一阶段预训练 VILA-U：机器人数据取 Open X-Embodiment 的子集，要求 third-person camera 和 single-arm end-effector control；无动作视频使用 Something-Something V2 和 EPIC-KITCHENS-100。第二阶段在目标机器人上使用任务示教做 post-training，以适应新场景、动作分布和语言任务。&lt;/p&gt;
&lt;p&gt;训练时冻结 vision tower，更新 LLM backbone、projector 和 depth transformer。图像分辨率为 $256\times256$，action chunk size 为 10；补充材料给出的预训练 global batch size 为 2048、learning rate 为 $10^{-4}$、cosine decay、10 epochs。下游 fine-tuning 使用 constant learning rate $10^{-5}$、150 epochs。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 补充材料报告预训练使用 12 个 A100 节点、共约 11K A100 GPU hours；LIBERO 和 Franka-Tabletop 的 fine-tuning 使用单个 A100 节点，耗时约 10–24 小时，取决于数据规模。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 这种闭环形式使每个 subgoal 只负责接下来的一段短动作。它并不保证图像预测一定正确：如果目标图像把物体位置、接触关系或夹爪状态想错，动作分支会忠实地追逐一个错误目标，直到下一次重新规划。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 截至本文撰写时，CoT-VLA 的论文和项目主页提供论文、视频与实验素材，但没有提供独立的 CoT-VLA 训练 / 推理代码仓库。因此，不能把 &lt;code&gt;NVlabs/VILA&lt;/code&gt; 中的通用 VILA 代码写成 CoT-VLA 的完整实现；它只能作为论文明确使用的 VILA-U 基座代码入口。&lt;/p&gt;
&lt;p&gt;| 论文概念                       | 可核对的代码 / 资料                           | 结论                                                                                    |
| ------------------------------ | --------------------------------------------- | --------------------------------------------------------------------------------------- |
| VILA-U 基座                    | &lt;a href=&quot;https://github.com/NVlabs/VILA&quot;&gt;NVlabs/VILA&lt;/a&gt; | 官方 VILA 基座仓库公开；论文将 CoT-VLA 建立在其 7B 版本之上。                           |
| 视觉 token 生成                | 论文 &lt;code&gt;main.tex&lt;/code&gt; 的 VILA-U 描述与视觉损失      | 论文明确使用 residual visual tokens 和 depth transformer，但未公开 CoT-VLA 的改动文件。 |
| Action token 与 full attention | 论文 Figure 3、Section 4                      | 论文给出了 tokenization、mask 语义和损失，没有可复现的 CoT-VLA 源码路径。               |
| 数据混合与训练脚本             | 论文补充材料 Table 1、Table 2                 | 可复核数据权重和超参数；无法从公开仓库直接运行完整训练。                                |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这意味着当前最可靠的复现材料是论文 LaTeX 源文件、项目页视频和 VILA 基座，而不是一个开箱即用的 CoT-VLA repo。若要复现，仍需自行实现：VILA-U 的视觉目标序列构造、动作 token mask、full-attention action head、robot data loader 和闭环控制器。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 评测覆盖三类设置：&lt;/p&gt;
&lt;p&gt;| 设置            | 平台 / 数据                                        | 评测重点                                     |
| --------------- | -------------------------------------------------- | -------------------------------------------- |
| LIBERO          | 4 个 suite，每个 suite 10 个任务，每任务 50 条示教 | 仿真中的空间、物体、目标和长程泛化           |
| Bridge-V2       | 6-DoF WidowX，约 45K 条语言标注轨迹                | visual、motion、semantic、language 四类泛化  |
| Franka-Tabletop | 固定桌面 Franka Emika Panda，单任务 10–150 条示教  | 新机器人设置下的小样本适应与多指令 grounding |&lt;/p&gt;
&lt;p&gt;基线包括从零训练的 Diffusion Policy、OpenX 预训练的 OpenVLA、Octo，以及 Bridge-V2 上的 SUSIE。LIBERO 每个 suite 使用 3 个随机种子、500 个 episodes 报告均值和标准误；Bridge-V2 每类任务测试 10 次。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-cot-vla/rollout.9ddp7mtgmr.webp&quot; alt=&quot;CoT-VLA 在 LIBERO、Bridge-V2 和 Franka-Tabletop 上的执行示例（论文 Figure 5）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; LIBERO 的平均成功率如下：&lt;/p&gt;
&lt;p&gt;| 方法               |    Average |   Spatial |    Object |      Goal |      Long |
| ------------------ | ---------: | --------: | --------: | --------: | --------: |
| Diffusion Policy   |      72.4% |     78.3% | &lt;strong&gt;92.5%&lt;/strong&gt; |     68.3% |     50.5% |
| Octo fine-tuned    |      75.1% |     78.9% |     85.7% |     84.6% |     51.1% |
| OpenVLA fine-tuned |      76.5% |     84.7% |     88.4% |     79.2% |     53.7% |
| CoT-VLA-7B         | &lt;strong&gt;81.13%&lt;/strong&gt; | &lt;strong&gt;87.5%&lt;/strong&gt; |     91.6% | &lt;strong&gt;87.6%&lt;/strong&gt; | &lt;strong&gt;69.0%&lt;/strong&gt; |&lt;/p&gt;
&lt;p&gt;CoT-VLA 的平均成功率相对 OpenVLA 高 4.63 个百分点，提升最大的是 LIBERO-Long：69.0% 对 53.7%，高出 15.3 个百分点。论文同时报告，CoT-VLA 在 Object suite 不是最高，Diffusion Policy 达到 92.5%；因此本文的优势并非所有任务都由 visual CoT 单独决定，而是更集中体现在语言条件、长时序和目标理解上。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-cot-vla/franka.lwgutxs48.webp&quot; alt=&quot;Franka-Tabletop 六个操作任务的对比结果（论文 Figure 4）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在 Franka-Tabletop 上，作者报告 CoT-VLA 的六任务平均表现最高。Diffusion Policy 在单指令窄域任务上有竞争力，但在包含多种物体和复杂语言的 multi-instruction 任务上下降明显；预训练过 OpenX 的 Octo、OpenVLA 和 CoT-VLA 更能利用语言 grounding。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Bridge-V2 的四类部分得分为：&lt;/p&gt;
&lt;p&gt;| 泛化类别 | SUSIE | Octo | OpenVLA | CoT-VLA |
| -------- | ----: | ---: | ------: | ------: |
| Visual   |   30% |  35% | &lt;strong&gt;75%&lt;/strong&gt; |     65% |
| Motion   |   10% |  10% |     45% | &lt;strong&gt;60%&lt;/strong&gt; |
| Semantic |   20% |   0% |     40% | &lt;strong&gt;50%&lt;/strong&gt; |
| Language |   40% |  40% | &lt;strong&gt;75%&lt;/strong&gt; |     70% |&lt;/p&gt;
&lt;p&gt;CoT-VLA 在 motion 和 semantic 泛化上最好，但在 visual 与 language 两项低于 OpenVLA。作者将主要原因归因于 action chunking 带来的 grasping failure，而不是视觉推理本身失败。这是一个重要的边界：更好的中间目标不一定能修复低层动作执行的接触误差。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-cot-vla/ablation.8s41lbz1mj.webp&quot; alt=&quot;Action Chunking、Hybrid Attention、Visual CoT 与预训练的消融结果（论文 Figure 6）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 作者在 LIBERO-Spatial 和 LIBERO-Goal 逐步加入三个组件：action chunking、hybrid attention、visual CoT。结果如下：&lt;/p&gt;
&lt;p&gt;| 变体               | LIBERO-Spatial | LIBERO-Goal |
| ------------------ | -------------: | ----------: |
| VLA                |          67.5% |       54.9% |
| + action chunking  |          73.3% |       74.9% |
| + hybrid attention |          81.8% |       79.7% |
| + CoT              |      &lt;strong&gt;87.5%&lt;/strong&gt; |   &lt;strong&gt;87.6%&lt;/strong&gt; |&lt;/p&gt;
&lt;p&gt;这组结果把贡献拆成了三个层次：先用 chunk 预测缩短有效控制 horizon，再用 full attention 改善 chunk 内部的协调，最后用 visual CoT 增加未来目标信息。&lt;strong&gt;【Analysis】&lt;/strong&gt; 不能把完整模型相对 VLA 的提升全部归因于视觉 CoT；从增量上看，action chunking 和 hybrid attention 已经贡献了很大一部分收益。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 预训练消融中，直接在 Franka-Tabletop 示教上 fine-tune VILA-U 得到 53.7%，加入 OpenX 与 action-less video 预训练后达到 78.8%，相对提升 46.7%。这支持了“视觉推理可从无动作视频获得额外知识”的方向，但实验没有单独拆开 OpenX 和两类 video 的边际贡献。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 作者进一步构造两个由未见子任务组成的长程 Franka 任务，并比较模型生成的 goal image 与真实示教中的 ground-truth goal image：&lt;/p&gt;
&lt;p&gt;| 条件                     | Sub-task 1 | Sub-task 2 |
| ------------------------ | ---------: | ---------: |
| Generated goal images    |        20% |         0% |
| Ground-truth goal images |    &lt;strong&gt;60%&lt;/strong&gt; |    &lt;strong&gt;40%&lt;/strong&gt; |&lt;/p&gt;
&lt;p&gt;使用真实目标图像后，两个任务都获得 40 个百分点的绝对提升。这个对照并不是一个可部署的 baseline，因为真实系统不会提前知道 ground-truth goal image；它更像一个 oracle 实验，用来估计“如果 visual reasoning 更准确，动作性能还有多少上升空间”。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 结果清楚地把泛化瓶颈定位到了 subgoal generation：action policy 可能已经能追逐正确目标，但模型在完全未见任务上想象不出合适的未来视觉状态。反过来，这也说明图像中间变量虽然可解释，却把生成模型的幻觉直接暴露给控制系统。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; CoT-VLA 可能有效的第一原因是它把长程任务拆成了“预测一个可视觉验证的短期目标”和“执行一小段动作”。直接 VLA 要在一次隐式 forward 中同时完成任务分解、视觉 grounding、未来状态预测和低层控制；CoT-VLA 至少把前两项结果显式化为一张图。&lt;/p&gt;
&lt;p&gt;第二个原因是 action chunking 降低了有效决策频率，但仍保留 chunk 之间的闭环反馈。模型不必为每一个低层控制周期重新生成完整的 visual CoT，也不用像 open-loop trajectory generator 那样一次性相信很远的未来。&lt;/p&gt;
&lt;p&gt;第三个原因是 full attention 改善了动作 chunk 的内部协调。平移、旋转、夹爪和不同时间步不再被语言式的单向 token 顺序隔离，模型可以在预测每个动作 token 时同时参考同一 chunk 的其他位置。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 本文的实际创新可以拆成三个接口设计：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Reasoning representation&lt;/strong&gt;：用未来像素状态替代额外的文字计划或几何标注。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Model interface&lt;/strong&gt;：让同一个 multimodal backbone 既能生成 visual tokens，也能预测 action tokens。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Execution interface&lt;/strong&gt;：把 visual CoT 接到短 action chunk，再通过新观测重新启动推理。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;单独看 subgoal image、hybrid attention 或 action chunking 都不是全新概念；CoT-VLA 的贡献在于把它们组织成一个可以从 robot data 和 action-less video 共同训练的 VLA 流程。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;| 路线                     | 中间状态                   | 动作生成                  | 主要优点             | 主要代价                       |
| ------------------------ | -------------------------- | ------------------------- | -------------------- | ------------------------------ |
| Vanilla VLA              | 无显式中间状态             | 当前观测直接到动作        | 推理简单、延迟低     | 长程计划和错误诊断隐式化       |
| Dual-system VLM + policy | 文字或结构化计划           | 独立 policy 执行          | 高层计划可读         | 系统接口、延迟和能力错配       |
| SUSIE 类两阶段方法       | 编辑后的目标图像           | goal-conditioned policy   | 图像目标质量较高     | 组件分离、训练和部署链路更复杂 |
| CoT-VLA                  | 自回归生成的 subgoal image | 同一模型生成 action chunk | 中间目标可视化且闭环 | 图像生成慢，错误会传给动作端   |&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 方法依赖以下假设：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;一张未来图像足以表达下一段动作需要的状态，触觉、力和不可见状态不会成为决定性信息。&lt;/li&gt;
&lt;li&gt;从示教或 action-less video 采样的未来帧与真实控制目标足够一致。&lt;/li&gt;
&lt;li&gt;VILA-U 的离散视觉 token 能同时承载图像理解、图像生成和机器人控制所需的表征。&lt;/li&gt;
&lt;li&gt;action chunk 长度 10 在多数任务中不会错过关键接触反馈。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这些假设在桌面操作上有一定合理性，但在遮挡严重、接触力敏感、需要精细手指协调或状态不可从 RGB 恢复的任务中可能失效。&lt;/p&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;生成 256 个 image tokens 后才开始动作生成，平均推理速度约比直接动作生成慢 &lt;strong&gt;7 倍&lt;/strong&gt;（action chunk size 为 10）。&lt;/li&gt;
&lt;li&gt;自回归图像生成质量低于专门的 diffusion image model，可能出现模糊或视觉幻觉。&lt;/li&gt;
&lt;li&gt;Action chunk 会在 chunk 边界产生不连续动作，并降低执行期间的高频反馈。&lt;/li&gt;
&lt;li&gt;尽管加入 action-less video，计算资源仍限制了模型在完全新任务上的 visual reasoning generalization。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 第一，paper 的 oracle goal experiment 证明目标图像质量是瓶颈，却没有提供一个能在部署时可靠检测目标图像错误的 uncertainty mechanism。模型可能生成一张看起来合理、但物体几何关系错误的图，动作端仍会照做。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 第二，action token 的 256-bin 离散表示和 7-DoF 单臂设定限制了控制接口。换到灵巧手、双臂或需要连续力控制的机器人时，动作维度、夹爪语义和 tokenizer 设计都需要重新处理。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 第三，论文没有公开 CoT-VLA 独立代码和完整数据处理脚本，复现门槛高于 OpenVLA 这类开源 VLA。公开的 VILA 基座只能帮助理解 backbone，不能直接运行本文的 hybrid action mask 和闭环机器人控制。&lt;/p&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; CoT-VLA 给 VLA 的一个重要启发是：中间 reasoning 不一定要是文字。对于机器人，最有用的“思考”可能是一个可检查、可被动作模块消费的未来 observation。未来可以沿着三个方向继续推进：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;从图像目标到 latent goal&lt;/strong&gt;：使用压缩的视觉 latent、深度、点云或触觉状态，减少 256 个 image tokens 的生成成本，同时保留动作相关信息。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;异步 Reason–Act&lt;/strong&gt;：在机器人执行当前 action chunk 时并行生成下一次 subgoal，避免每次图像生成都让机械臂停顿。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;目标不确定性与安全执行&lt;/strong&gt;：同时预测 goal image 的置信度、可达性或 affordance，在目标明显不合理时触发重新观察、缩短 chunk 或交给安全控制器。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;更强的 video pretraining&lt;/strong&gt;：把无动作视频学习到的视觉动力学与真实机器人动作对齐，而不是只把视频当作静态未来帧数据。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 我认为 CoT-VLA 最值得保留的不是“生成一张图”这一具体实现，而是它提出的闭环契约：&lt;strong&gt;每次高层推理都必须产出一个低层 Policy 能验证并执行的中间目标&lt;/strong&gt;。这比让 VLA 输出一段无法检查的隐式 hidden state 更容易诊断，也比让外部 LLM 写一份未必可执行的自然语言计划更接近机器人控制。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/42175762_p0_master1200.6m4jay5vlg.webp"/><enclosure url="https://pic.hana0721.top/42175762_p0_master1200.6m4jay5vlg.webp"/></item><item><title>CLAP 论文精读：从人类视频学习可执行的 Vision-Language-Action 模型</title><link>https://agusexp25.top/blog/paper-deep-dive-clap</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-clap</guid><description>精读 CLAP：用 Act-VAE 建立物理动作词表，再以 VD-VAE 对齐人类视频，训练 CLAP-NTP，并用 CLAP-RF 与 Knowledge Matching 实现快速控制。</description><pubDate>Tue, 25 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;论文名称&lt;/strong&gt;：《CLAP: Contrastive Latent Action Pretraining for Learning Vision-Language-Action Models from Human Videos》&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;作者&lt;/strong&gt;：Chubin Zhang、Jianan Wang、Zifeng Gao、Yue Su、Tianru Dai、Cai Zhou、Jiwen Lu、Yansong Tang&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;论文 / 代码 / 项目&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2601.04061&quot;&gt;arXiv:2601.04061&lt;/a&gt; · &lt;a href=&quot;https://github.com/LinShan-Bin/OpenCLAP&quot;&gt;OpenCLAP&lt;/a&gt; · &lt;a href=&quot;https://lin-shan.com/CLAP/&quot;&gt;项目主页&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-clap/teaser-crop.b9n1vsd5y.webp&quot; alt=&quot;CLAP 从机器人和人类视频学习对齐 latent action 的概览（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; CLAP（Contrastive Latent Action Pretraining）把“人类视频有语义但没有机器人动作标签”和“机器人数据可执行但规模有限”拆成三个学习阶段：先用 Act-VAE 学出机器人动作词表，再用 VD-VAE 和 SigLIP 对比学习把视频状态变化映射到该词表，最后训练 CLAP-NTP；部署时再接 CLAP-RF 和 Knowledge Matching（KM），将 token policy 转成低延迟的连续动作 chunk。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Act-VAE 将双臂机器人 14-DoF 的连续轨迹压缩成紧凑、可解码的 action token vocabulary。&lt;/li&gt;
&lt;li&gt;VD-VAE 把视觉动态分成 action-relevant 和 action-irrelevant 两个 latent stream，并用冻结的 Act-VAE codebook 约束前者，减轻背景和外观变化带来的 visual entanglement。&lt;/li&gt;
&lt;li&gt;CLAP-NTP 用 next-token prediction 同时学习机器人真值 token 与人类视频 pseudo-token，使 VLM 的语言推理可以直接服务于动作规划。&lt;/li&gt;
&lt;li&gt;CLAP-RF 在 NTP 的 KV cache 上接 Rectified Flow action head；KM 用 reference NTP 的 reverse KL 约束适配，降低 catastrophic forgetting。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 论文真正改变的是 latent action 的“锚点”：latent 不再只解释画面如何变化，而要能由机器人 action decoder 还原成物理轨迹。这样人类视频提供的主要是语义和任务结构，精确的 embodiment-specific 控制仍由机器人数据负责。&lt;/p&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; VLA 的瓶颈并不只有模型规模，也包括训练数据的 embodiment gap。机器人 teleoperation 数据昂贵、动作精确却覆盖有限；互联网人类视频便宜、数量巨大，却没有末端位姿、关节状态或 gripper command。&lt;/p&gt;
&lt;p&gt;已有 Latent Action Model（LAM）通常从相邻视频帧的 inverse dynamics 学 latent action，再用重建约束让 latent 解释视觉变化。论文认为，这会把背景变化、物体形变、相机运动等 nuisance factor 一起编码进 latent，导致得到的是“视觉变化 token”，而不是可执行动作。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; CLAP 与已有方法的分工不同：Act-VAE 解决动作表示和跨 embodiment 的压缩，VD-VAE 解决人类视频到机器人动作词表的对齐，NTP / RF policy 则负责语言条件下的规划与连续控制。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 因此 CLAP 不是简单增加 human-video pretraining data，而是先规定一个物理可解释的坐标系，再把无标签视频投影进去。这一先建立 codebook、后做跨模态对齐的顺序，是方法能否直接迁移的关键假设。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 机器人数据写作&lt;/p&gt;
&lt;p&gt;$$
\mathcal{D}&lt;em&gt;{\text{rob}}={(\tau_i,\mathcal{I}&lt;em&gt;i)}&lt;/em&gt;{i=1}^{N&lt;/em&gt;{\text{rob}}},
$$&lt;/p&gt;
&lt;p&gt;其中轨迹包含观测 $\mathbf{o}_t$ 和动作 $\mathbf{a}_t$；人类视频数据写作&lt;/p&gt;
&lt;p&gt;$$
\mathcal{D}_{\text{hum}}={(\mathcal{V}&lt;em&gt;j,\mathcal{I}&lt;em&gt;j)}&lt;/em&gt;{j=1}^{N&lt;/em&gt;{\text{hum}}},
$$&lt;/p&gt;
&lt;p&gt;只包含视觉序列和任务文本。目标是学习 $\pi(\mathbf{a}_t\mid\mathbf{o}_t,\mathcal{I})$，使视觉状态转移和机器人控制共享一个 latent manifold。&lt;/p&gt;
&lt;p&gt;论文的双臂动作空间为：&lt;/p&gt;
&lt;p&gt;$$
\mathbf{a}_t=[\mathbf{p}_t^L,\boldsymbol{\theta}_t^L,g_t^L,
\mathbf{p}_t^R,\boldsymbol{\theta}_t^R,g_t^R]^\top\in\mathbb{R}^{14},
$$&lt;/p&gt;
&lt;p&gt;每只手臂包含 3-D position、3-D Euler orientation 和 1-D gripper aperture。动作 chunk 长度记为 $H$；OpenCLAP 的 Astribot 配置使用 $H=32$，每只手臂产生 8 个 code，因此双臂输出为 16 个 &lt;code&gt;&amp;#x3C;ACT_*&gt;&lt;/code&gt; token。&lt;/p&gt;
&lt;p&gt;| 数据源             | 有什么                        | 缺什么                  | CLAP 的用途                          |
| ------------------ | ----------------------------- | ----------------------- | ------------------------------------ |
| Robot trajectories | 视觉、语言、14-D action chunk | 规模和物体多样性        | 学 Act-VAE codebook 与真值 token     |
| Human videos       | 视觉状态变化、任务语义        | action / proprioception | 通过 VD-VAE 产生 pseudo action token |&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-clap/pipeline-crop.9ddp7u3b25.webp&quot; alt=&quot;CLAP 的四阶段 pipeline：Act-VAE、VD-VAE、CLAP-NTP 和 CLAP-RF（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 整体数据流是：机器人 action chunk → Act-VAE codebook；机器人与人类的视觉 transition → VD-VAE；两种 action token 与图像、语言 → CLAP-NTP；目标域机器人数据 → CLAP-RF + KM。训练时先固定前一阶段的 tokenizer，避免对齐过程重新漂移物理坐标系。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;Act-VAE：建立 physical action language&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;输入&lt;/strong&gt;是 $H\times14$ 的连续双臂轨迹，&lt;strong&gt;输出&lt;/strong&gt;是 $N_q$ 个 codebook index 以及由 decoder 重建的动作 chunk。Transformer encoder 将动作嵌入与 $N_q$ 个 learnable register tokens 拼接，得到连续 latent $\mathbf{z}_e$；nearest-neighbor quantization 将其映射到 $K$ 个 action code。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文的 rate-distortion 实验选择 $N_q=16,K=256$：PSNR 为 40.00 dB、rate 为 0.086，在精度和 token 序列长度之间取 elbow point。&lt;strong&gt;【Code】&lt;/strong&gt; OpenCLAP 的 Stage 1 配置为 &lt;code&gt;chunk_size: 32&lt;/code&gt;、&lt;code&gt;clap_num_t_codes: 8&lt;/code&gt;、&lt;code&gt;clap_num_latents: 512&lt;/code&gt;；实际代码按每只手臂编码并在 VLA 侧拼成双臂 token 序列，配置中的 codebook 容量与论文表格的消融设置是不同实验版本，不能混为同一组数字。&lt;/p&gt;
&lt;h4&gt;VD-VAE：把视觉动态对齐到物理 codebook&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;输入&lt;/strong&gt;是两帧的 DINOv3 patch features $\mathbf{f}&lt;em&gt;t,\mathbf{f}&lt;/em&gt;{t+H}$，&lt;strong&gt;输出&lt;/strong&gt;是 action-relevant latent $\mathbf{z}&lt;em&gt;{v,a}$、action-irrelevant latent $\mathbf{z}&lt;/em&gt;{v,i}$ 以及离散 pseudo action token。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;action branch 用冻结的 Act-VAE codebook $\mathcal{C}_{\text{act}}$，迫使视觉变化落在机器人可执行空间。&lt;/li&gt;
&lt;li&gt;environment branch 使用独立的 $\mathcal{C}_{\text{env}}$，吸收背景、光照等 nuisance factor。&lt;/li&gt;
&lt;li&gt;forward decoder 从当前 feature 和两类 quantized latent 重建未来 feature。&lt;/li&gt;
&lt;li&gt;robot 样本用 &lt;code&gt;sg(E_act(a_gt))&lt;/code&gt; 作 positive；human 样本没有 action label，使用 clean transition 上的 EMA teacher 产生 stop-gradient pseudo-positive，online branch 则使用增强后的图像。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;clap/modules/clap.py&lt;/code&gt; 的 &lt;code&gt;ContrastiveDINOLatentActionModel&lt;/code&gt; 实现两套线性投影、双 codebook、EMA teacher 和 SigLIP loss；&lt;code&gt;clap/configs/clap-s2-l32.yaml&lt;/code&gt; 明确混合 &lt;code&gt;astribot_pretrain&lt;/code&gt;、&lt;code&gt;agibot_data_extracted_selected&lt;/code&gt;、&lt;code&gt;ego4d_lerobot&lt;/code&gt; 与 &lt;code&gt;droid_lerobot&lt;/code&gt;。这比论文中的“human video”更具体：官方 release 的预训练配方包含 Ego4D，同时保留机器人 transition 作为物理锚点。&lt;/p&gt;
&lt;h4&gt;CLAP-NTP：在 token space 中保留 VLM 推理&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;输入&lt;/strong&gt;为当前图像、任务指令和数据源对应的 action token；&lt;strong&gt;输出&lt;/strong&gt;为 &lt;code&gt;[subtask, action tokens]&lt;/code&gt; 的 autoregressive 序列。机器人样本使用 Act-VAE 真值 token，人类样本使用 VD-VAE pseudo-token。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 这种 next-token formulation 让 subtask decomposition、instruction following 和 action generation 共用一个语言序列，不需要为 human video 伪造连续机器人动作。&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;starvla_astribot_qwenar.yaml&lt;/code&gt; 的 backbone 是 Qwen3-VL-4B，&lt;code&gt;max_new_tokens: 512&lt;/code&gt;，并加载冻结的 Stage-2 CLAP checkpoint。&lt;/p&gt;
&lt;h4&gt;CLAP-RF 与 Knowledge Matching&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;输入&lt;/strong&gt;为 NTP backbone 的 hidden states / KV cache 和目标域机器人 action chunk，&lt;strong&gt;输出&lt;/strong&gt;为连续 $H\times D_a$ action。CLAP-RF 是 DiT 风格的 Rectified Flow head，通过 cross-attention 读取 NTP 的上下文；KM 维护一个冻结的 reference NTP，在 token positions 上对 trainable policy 加 reverse KL。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-clap/km-crop.39lx5e0mpb.webp&quot; alt=&quot;Knowledge Matching：用 token-level KL 约束 RF action head 的适配（论文 Figure 4）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;starVLA/model/framework/VLM4A/QwenPIKM.py&lt;/code&gt; 会加载冻结 CLAP action VQ-VAE，把 GT continuous action 重新编码成 &lt;code&gt;&amp;#x3C;ACT_*&gt;&lt;/code&gt; 字符串，只在这些 token positions 计算 KL；Astribot 配置的 &lt;code&gt;kl_loss_weight&lt;/code&gt; 为 &lt;code&gt;0.005&lt;/code&gt;，&lt;code&gt;kl_type&lt;/code&gt; 为 &lt;code&gt;reverse_kl&lt;/code&gt;。因此 KM 不是对 RF 输出直接做 feature matching，而是约束“产生动作条件的 token policy”不要偏离可信的 NTP reference。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;Act-VAE 量化目标&lt;/h4&gt;
&lt;p&gt;$$
\mathcal{L}&lt;em&gt;{\text{Act}}=
|\mathbf{a}-D&lt;/em&gt;\psi(\mathbf{z}_q)|&lt;em&gt;2^2+
|\operatorname{sg}(E&lt;/em&gt;\phi(\mathbf{a}))-\mathbf{z}_q|&lt;em&gt;2^2+
\beta|E&lt;/em&gt;\phi(\mathbf{a})-\operatorname{sg}(\mathbf{z}_q)|_2^2.
$$&lt;/p&gt;
&lt;p&gt;这里第一项保证动作可重建，第二项更新 codebook，第三项是 commitment loss；$\operatorname{sg}$ 表示 stop-gradient。$K$ 越大或 $N_q$ 越长，重建精度通常越高，但 VLM 需要建模的 token 容量也会上升。&lt;/p&gt;
&lt;h4&gt;VD-VAE 对比与解耦目标&lt;/h4&gt;
&lt;p&gt;对正样本相似度 $s_p$ 和负样本相似度 $s_{n,j}$，SigLIP 风格损失为：&lt;/p&gt;
&lt;p&gt;$$
\mathcal{L}&lt;em&gt;{\text{con}}=-\log\sigma\left(\frac{s_p-b}{\tau_c}\right)
-\sum_j\log\left[1-\sigma\left(\frac{s&lt;/em&gt;{n,j}-b}{\tau_c}\right)\right].
$$&lt;/p&gt;
&lt;p&gt;总损失为：&lt;/p&gt;
&lt;p&gt;$$
\mathcal{L}&lt;em&gt;{\text{VD}}=\mathcal{L}&lt;/em&gt;{\text{rec}}+\lambda_{\text{vq}}\mathcal{L}&lt;em&gt;{\text{VQ}}
+\lambda&lt;/em&gt;{\text{con}}\mathcal{L}&lt;em&gt;{\text{con}}+\lambda&lt;/em&gt;{\text{reg}}|\mathbf{z}_{v,i}|_1.
$$&lt;/p&gt;
&lt;p&gt;其中 $\mathcal{L}&lt;em&gt;{\text{rec}}$ 重建未来视觉 feature，$\mathcal{L}&lt;/em&gt;{\text{VQ}}$ 约束两套 codebook，L1 项让 action-irrelevant stream 尽量稀疏，避免它“偷走”动作信息。&lt;/p&gt;
&lt;h4&gt;NTP、Rectified Flow 与 KM&lt;/h4&gt;
&lt;p&gt;$$
\mathcal{L}&lt;em&gt;{\text{NTP}}=-\sum&lt;/em&gt;{\ell=1}^{L_y}\log P_\theta(y_\ell\mid y_{&amp;#x3C;\ell},\mathbf{o}_t,\mathcal{I}).
$$&lt;/p&gt;
&lt;p&gt;对噪声动作 $\mathbf{a}^\rho=\rho\mathbf{a}+(1-\rho)\boldsymbol\epsilon$，RF head 学习向量场：&lt;/p&gt;
&lt;p&gt;$$
\mathcal{L}_{\text{RF}}=\mathbb{E}\left[| (\mathbf{a}-\boldsymbol\epsilon)-f^a(\mathbf{a}^\rho,\rho,\mathbf{h}_t)|_2^2\right].
$$&lt;/p&gt;
&lt;p&gt;KM 的 token-level 约束为：&lt;/p&gt;
&lt;p&gt;$$
\mathcal{L}&lt;em&gt;{\text{post}}=\mathcal{L}&lt;/em&gt;{\text{RF}}+\alpha\sum_{\ell}D_{\text{KL}}\left(
p_{\phi_{\text{policy}}}(y_\ell\mid c_\ell),|,
p_{\phi_{\text{ref}}}(y_\ell\mid c_\ell)\right).
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这组目标把三个时间尺度分开：Act-VAE 学空间、VD-VAE 学跨模态对应、RF 学连续控制速度；KM 则是适配时的“语义保险丝”。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方配置给出的 Stage 1 / Stage 2 都是 50k steps；Stage 3 Astribot 配置为 800k steps，LIBERO 的 KM 训练为 30k steps、batch size 128。这里的 step 数属于 release recipe，不应泛化成论文对所有数据集的统一超参数。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 单张 $224\times224$ 输入、单张 H100 测得 CLAP-NTP 延迟 382.0 ms，CLAP-RF 降到 70.1 ms。&lt;strong&gt;【Analysis】&lt;/strong&gt; RF 的速度优势来自一次连续 chunk 预测，而非简单减少模型参数；它仍通过 NTP 的中间表征继承 human-video 预训练获得的语义。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;| 论文概念           | OpenCLAP 实现                                                    | 代码事实                                                                                                    |
| ------------------ | ---------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- |
| Act-VAE / VD-VAE   | &lt;code&gt;clap/model_clap.py&lt;/code&gt;、&lt;code&gt;clap/modules/clap.py&lt;/code&gt;                     | PyTorch Lightning 两阶段训练；Stage 2 从 Stage 1 checkpoint 加载并冻结动作侧表示                            |
| Visual backbone    | &lt;code&gt;clap/modules/clap.py&lt;/code&gt;                                           | DINOv3 ViT-B/16 patch features；配置默认本地 DINOv3 权重                                                    |
| Human pseudo label | &lt;code&gt;clap/modules/clap.py&lt;/code&gt;                                           | clean branch 的 EMA teacher 生成 stop-gradient positive，augmented online branch 计算 SigLIP                |
| CLAP-NTP           | &lt;code&gt;starVLA/model/framework/VLM4A/QwenAR.py&lt;/code&gt;、Astribot YAML         | Qwen3-VL-4B，输出 subtask + &lt;code&gt;&amp;#x3C;ACT_*&gt;&lt;/code&gt; token，加载 Stage-2 &lt;code&gt;clap.ckpt&lt;/code&gt;                                       |
| CLAP-RF            | &lt;code&gt;starVLA/model/modules/action_model/LayerwiseFM_ActionHeader.py&lt;/code&gt; | Layerwise flow-matching DiT action head，读取 VLM 多层 hidden states                                        |
| Knowledge Matching | &lt;code&gt;starVLA/model/framework/VLM4A/QwenPIKM.py&lt;/code&gt;                      | 冻结 reference VLM；将 GT action 通过 CLAP VQ encoder 转成 token，在 action-token positions 计算 reverse KL |
| Deployment         | &lt;code&gt;deployment/model_server/&lt;/code&gt;、&lt;code&gt;examples/Astribot/eval_files/&lt;/code&gt;      | 提供 LIBERO policy server 与 Astribot S1 synchronous policy server                                          |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 代码还暴露一个重要实现边界：CLAP 的 VQ encoder 按 per-arm 7-D action 训练，双臂输入需要先按 arm layout 拆分，再拼接左右臂的 token。LIBERO 的 RF action horizon 可以是 8，但 KM 的 CLAP tokenizer 仍保持 32-step chunk，这是 tokenizer 窗口与控制头窗口刻意解耦的结果。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-clap/data_setup-crop.3k8qyjfuuv.webp&quot; alt=&quot;Astribot S1 双臂机器人、相机与 VR teleoperation 数据采集设置（论文 Figure 5）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-clap/real_task-crop.lwgv17lfw.webp&quot; alt=&quot;CLAP 在真实世界任务中的部署流程（论文 Figure 6）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 真实实验使用 Astribot S1 双 7-DoF 手臂，评估 Pick and Place、PnP (OOD)、Pack the Doll、Fold T-shirt 和 Make Bouquets；另在 LIBERO Spatial / Object / Goal / Long 四个 suite 上以单一 generalist policy 评估。LIBERO 每个 suite 含 10 个任务、每任务 50 条示教，CLAP-RF 训练 30k steps 并用 KM 适配。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;h4&gt;真实机器人&lt;/h4&gt;
&lt;p&gt;| 方法        | Task mean | PnP OOD Pick / Place | Make Bouquets C-1 / C-2 |
| ----------- | --------: | -------------------: | ----------------------: |
| $\pi_{0.5}$ |      60.0 |              80 / 75 |                 30 / 40 |
| UniVLA      |      35.0 |              65 / 50 |                 30 / 20 |
| CLAP-NTP    |      58.7 |          &lt;strong&gt;85 / 85&lt;/strong&gt; |                 30 / 40 |
| CLAP-RF     |  &lt;strong&gt;62.7&lt;/strong&gt; |          &lt;strong&gt;85 / 70&lt;/strong&gt; |             &lt;strong&gt;40 / 50&lt;/strong&gt; |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; CLAP-RF 在原始设置的五个任务上平均成功率为 62.7%，高于 $\pi_{0.5}$ 的 60.0%；在环境扰动（背景、光照、新物体）下平均 70.0%，而 $\pi_{0.5}$ 为 56.7%、UniVLA 为 16.7%。PnP OOD 从不加入人类视频的 70% 提升到 85%，Make Bouquets OOD 从 10% 提升到 45%。&lt;/p&gt;
&lt;h4&gt;LIBERO 与推理延迟&lt;/h4&gt;
&lt;p&gt;| 方法                      |  Spatial |   Object |     Goal | Long |  Average |
| ------------------------- | -------: | -------: | -------: | ---: | -------: |
| SmolVLA（generalist）     |     93.0 |     94.0 |     91.0 | 77.0 |     88.8 |
| $\pi_{0.5}$（generalist） |     98.8 |     98.2 |     98.0 | 92.4 |     96.9 |
| X-VLA（generalist）       |     98.2 |     98.6 |     97.8 | 97.6 | &lt;strong&gt;98.1&lt;/strong&gt; |
| CLAP-RF（generalist）     | &lt;strong&gt;98.6&lt;/strong&gt; | &lt;strong&gt;99.2&lt;/strong&gt; | &lt;strong&gt;98.0&lt;/strong&gt; | 93.0 | &lt;strong&gt;97.2&lt;/strong&gt; |&lt;/p&gt;
&lt;p&gt;| 方法     | 参数量 |     Latency | GPU memory |
| -------- | -----: | ----------: | ---------: |
| $\pi_0$  |   3.5B |     45.8 ms |       7.6G |
| OpenVLA  |   7.5B |    219.8 ms |      14.8G |
| CLAP-NTP |   4.5B |    382.0 ms |       9.2G |
| CLAP-RF  |   6.0B | &lt;strong&gt;70.1 ms&lt;/strong&gt; |      12.1G |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; CLAP-RF 没有成为最快的模型（$\pi_0$ 仍为 45.8 ms），但相对于 CLAP-NTP 的 382 ms，它把“能利用人类视频语义”和“可实时执行”放进了同一套模型中。LIBERO 的 97.2% 也说明 KM 没有简单牺牲通用能力来换取目标域拟合。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-clap/tsne_vis-crop.4n8g9fbork.webp&quot; alt=&quot;VD-VAE action features 的 t-SNE：加入 contrastive loss 后同语义动作聚类更紧（论文 Figure 9）&quot;&gt;&lt;/p&gt;
&lt;p&gt;上图使用裁剪后的 GitHub Raw 图像，避免 PDF 页面白边。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 消融结果把收益拆成三层：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;去掉 pseudo-positive label，平均成功率从 60.0% 降至 58.8%；&lt;/li&gt;
&lt;li&gt;去掉 contrastive objective，降至 53.8%，Make Bouquets OOD 从 35% 降至 20%；&lt;/li&gt;
&lt;li&gt;去掉 human video，降至 47.5%，Make Bouquets OOD 仅 5%。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Act-VAE 的 rate-distortion 选择 $N_q=16,K=256$：比 $N_q=8$ 的 29.89 dB PSNR 更精确，同时比 $N_q=36$ 的 rate 0.175 紧凑得多。KM 消融中，直接 fine-tune VLM 的 LIBERO 平均为 96.2%、PnP OOD 为 60%，加入 low+mid-level features + KM 后分别为 97.2% 和 70%。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这组结果说明 human data 的主要作用首先是 semantic grounding，而不是直接提供可靠的 dexterous trajectory。论文还用 WiLoR 估计人手 pose 做对照：噪声手部几何会增加 grasp / place 失败，反而支持“从视觉动态学习 latent，而不是从单目手部 pose 直接 retarget”的选择。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文报告的人类视频增益主要出现在已知任务的新物体组合：PnP OOD 和 Make Bouquets OOD 的 attempt failure 显著下降。对 20 次 OOD trial 的失败分类中，加入 human data 后 PnP 的错误目标尝试从 4 次降到 1 次，Make Bouquets 从 8 次降到 0 次；pick / place failure 的改善则较小。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这揭示了 CLAP 的泛化边界：视频提供了“该选择哪个对象、任务分成哪些 subtask”的语义先验，但不能凭空补齐人手与 parallel-jaw gripper 之间的低层动力学差异。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; CLAP 有效的原因可以归纳为一个“先锚定、再对齐、最后解码”的因果链：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Act-VAE 的 decoder 让每个 action code 必须能重建真实机器人轨迹，先排除了纯视觉变化。&lt;/li&gt;
&lt;li&gt;VD-VAE 把无法解释动作的因素放入稀疏 environment branch，并以对比损失把同一物理 primitive 的视觉变化拉近。&lt;/li&gt;
&lt;li&gt;NTP 在 token space 吸收 human video 的语义，RF head 只在有机器人连续标签的目标域学习精确控制。&lt;/li&gt;
&lt;li&gt;KM 将语义 policy 的更新限制在 reference 的可信区域，避免 RF fine-tuning 把预训练的 object grounding 一起覆盖掉。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 最核心的创新不是“使用 contrastive learning”本身，而是 contrast 的 positive target 来自一个已具备执行语义的 action codebook。与 reconstruction-only LAM 相比，CLAP 的 latent 具有明确的物理接口；与直接 human-to-robot imitation 相比，它不要求每段人类视频有相机标定或手部动作标签。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;| 范式                     | latent 的来源                             | 人类视频能否直接产生动作 token | 对视觉 nuisance 的处理                  |
| ------------------------ | ----------------------------------------- | ------------------------------ | --------------------------------------- |
| Reconstruction-based LAM | 视频帧重建 / inverse dynamics             | 可以，但物理含义不稳定         | 通常隐式处理                            |
| Direct pose retargeting  | 人手或人体 pose                           | 需要 pose estimator 和映射器   | 对估计噪声敏感                          |
| CLAP                     | 机器人 Act-VAE codebook + 视频 transition | 可以，VD-VAE 生成 pseudo-token | 独立 environment codebook + L1 稀疏约束 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; CLAP 的关键区别是把“跨 embodiment 的共享空间”放在 primitive token 层，而不是直接把不同机器人的原始关节向量拼成一个大 action vector。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 方法隐含或明确依赖以下假设：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;人类视频中的视觉状态变化能够被某些机器人 action primitive 近似解释；&lt;/li&gt;
&lt;li&gt;Act-VAE codebook 的容量足以覆盖任务需要，又不会让 VLM token 序列过长；&lt;/li&gt;
&lt;li&gt;action-relevant 与 environment latent 可以通过 forward reconstruction、contrastive alignment 和 L1 regularization 解耦；&lt;/li&gt;
&lt;li&gt;在目标域保留一小部分机器人连续动作标签，才能训练 RF head 并校准 embodiment-specific dynamics。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 第一，完全依靠人类视频泛化到全新 task 仍然困难，当前对齐主要帮助已知任务中的新物体和组合。第二，人手与机器人夹爪的 morphology gap 会让复杂 dexterous motion 没有唯一的 parallel-jaw 对应。第三，Act-VAE、VD-VAE、NTP 和 RF 的多阶段训练带来工程复杂度，尚未统一为 end-to-end 目标。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;视觉 transition 到 action token 的对应本身可能是多峰的：同一个画面变化可以由不同轨迹实现，单一 nearest code 可能丢失不确定性。&lt;/li&gt;
&lt;li&gt;environment codebook 仍依赖 forward feature reconstruction；若背景变化与动作相关（例如遮挡、接触阴影），简单的 action-irrelevant 稀疏约束未必能正确分离。&lt;/li&gt;
&lt;li&gt;论文中的 human-video 结果包含特定任务和有意模仿夹爪的手势，不能直接推断普通互联网视频对任意机器人都同样有效。&lt;/li&gt;
&lt;li&gt;CLAP-RF 的低延迟以更大的 action head 和目标域机器人数据为代价；在没有目标域连续 action 的纯 zero-shot 场景中，RF 控制器仍缺少校准信号。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这篇论文给后续 VLA 研究留下了三个值得延伸的方向：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;从固定 codebook 到可组合 primitive。&lt;/strong&gt; 目前 256-entry codebook 仍是静态词表，可以研究带层级结构的 token，让“抓取—移动—放置”既能组合，也能在新 embodiment 上重用。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;把不确定性显式带入 pseudo label。&lt;/strong&gt; human video 的 transition 往往对应多个可行动作，未来可以让 VD-VAE 输出 token distribution 或 top-k candidates，而不是单一 pseudo-token。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;端到端而非串联训练。&lt;/strong&gt; Act-VAE、VD-VAE、NTP 和 RF 的接口目前由 checkpoint 固定；若能用成功率、可执行性或 offline preference 反向调整 codebook，可能减少阶段间的 representation mismatch。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 更宽泛地说，CLAP 证明了“用人类视频扩大语义覆盖”不必等价于“把人类手部动作直接 retarget 到机器人”。先学习一个可执行的 latent action vocabulary，再把视觉变化对齐到它，可能是连接互联网视频与机器人控制的更稳健中间层。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/133376054_p0_master1200.1ziuqmv790.webp"/><enclosure url="https://pic.hana0721.top/133376054_p0_master1200.1ziuqmv790.webp"/></item><item><title>CAIP 论文精读：让视觉表征对动作有感觉</title><link>https://agusexp25.top/blog/paper-deep-dive-caip</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-caip</guid><description>精读 CAIP：用第一视角人类视频中的手部姿态作为动作代理，通过动作-图像对比预训练获得更适合灵巧操作的视觉表征。</description><pubDate>Tue, 25 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;论文名称&lt;/strong&gt;：《Contrastive Action-Image Pre-training for Visuomotor Control》&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;论文链接&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2606.17256&quot;&gt;arXiv:2606.17256&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;代码与项目状态&lt;/strong&gt;：&lt;strong&gt;【Paper】&lt;/strong&gt; 论文 arXiv 页面、论文源码和参考文献均未给出官方代码或项目主页；截至本文发布日，未找到对应公开官方仓库。因此下文只标记【Paper】与【Analysis】，不将推测性的工程实现写成【Code】。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-caip/caip-overview.26m7ufddk6.webp&quot; alt=&quot;CAIP 的问题、预训练方式与真机结果概览（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; CAIP（Contrastive Action-Image Pre-training）从大规模第一视角人类视频中提取双手 3D 姿态，把未来手部运动表示为动作 chunk，并与同一时刻的图像-语言表征做 SigLIP 风格对比学习；预训练完成后丢弃 action encoder，仅保留视觉语言编码器供下游机器人策略冻结使用。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;将人手的 42 个关键点姿态表示为与末端执行器控制相近的未来相对位姿序列，使人类视频提供显式 action supervision。&lt;/li&gt;
&lt;li&gt;提出图像、文本、动作三塔架构：文本 token 查询视觉 patch，再与动作 Transformer 的 embedding 对齐。&lt;/li&gt;
&lt;li&gt;汇集 32,129 小时、约 34.6 亿帧的第一视角操作数据；其中机器人数据仅 88 小时。&lt;/li&gt;
&lt;li&gt;在 Dexmate Vega + Sharpa Wave 灵巧双臂真机上，CAIP 的平均成功率为 76.04%，高于最强基线 SigLIP 2 的 43.40%；在 ManiSkill2 Franka 仿真中也取得 77.78% 平均成功率。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 机器人视觉编码器常借助两类预训练：互联网图文数据带来语义能力，DINO 类自监督模型提供局部几何和分割结构。但二者都没有看到观察之后应执行什么动作的配对信号。即使训练数据换成第一视角视频，R3M 的时序对比和 MVP、VC-1 的 masked reconstruction 仍是 action-agnostic objective。&lt;/p&gt;
&lt;p&gt;CAIP 的问题不是人类视频是否与机器人有关，而是能否把其中的手部运动转成与控制相关的监督。论文以未来手部相对 $SE(3)$ 姿态作为 proxy action：它不要求人类手与机器手关节一一对应，却保留了手朝哪里移动、如何转动、手指如何变化这些操作层面的时间结构。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这条路线将数据规模与动作标签稀缺拆开处理：获取高质量 robot trajectory 很贵，但第一视角视频规模大；只要能建立足够稳定的动作表示，人类视频就不再只是 domain adaptation 的视觉数据，而成为动作表征预训练数据。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 一个预训练样本由当前 RGB 图像 $I_t$、自然语言任务描述 $s$ 和未来动作 chunk $A_t$ 构成：&lt;/p&gt;
&lt;p&gt;$$
A_t = [a_{t+1}, \ldots, a_{t+T}] \in \mathbb{R}^{T \times 378}, \qquad T = 64.
$$&lt;/p&gt;
&lt;p&gt;其中，每个时间步的 $378 = 42 \times 9$ 维动作来自左右手各 21 个关键点。每个关键点以 3D translation 加连续 6D rotation 表示，且相对当前帧手部姿态计算 delta；因此完整 chunk 为 $64 \times 378$，覆盖约 2 秒的未来手部运动。&lt;/p&gt;
&lt;p&gt;预训练目标是让条件视觉表征 $z_{\mathrm{img}}(I_t, s)$ 与配对的动作表征 $z_{\mathrm{act}}(A_t)$ 相近，并远离 batch 中其他样本的动作。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 下游策略接收 head camera 与两路 wrist camera 图像，以及语言指令；冻结 CAIP 产生视觉、文本 token，策略再输出未来机器人动作 chunk。真机使用双臂 7-DoF 的相对末端位姿控制和两只 22-DoF 手的绝对关节位置控制；论文明确说明下游策略不使用 proprioception 或 tactile input。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-caip/caip-architecture.5q85k8fym6.webp&quot; alt=&quot;CAIP 三塔预训练架构：图像和文本形成条件视觉 embedding，动作 Transformer 编码未来动作 chunk（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 当前图像经 ViT 生成 patch token，语言经文本 Transformer 生成 token；文本 token 对视觉 patch 做 cross-attention，再用 learnable query 汇聚为单一 image embedding。未来手部动作 chunk 经 action Transformer 的 CLS token 汇聚为 action embedding。两者以 SigLIP-style sigmoid contrastive loss 对齐。&lt;/p&gt;
&lt;p&gt;训练结束后，action encoder 只完成把动作监督注入视觉表征空间的任务，会被移除；下游控制保留的是图像和文本编码侧，而不是从视觉直接复用预训练 action encoder。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;视觉与语言塔&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 参考模型采用 SigLIP 2 初始化的 ViT-L/16 image tower 和 24 层 text tower。输入图像被拆为 patch，视觉塔保留完整的 $B \times N \times C$ patch token，刻意不先 global pool；文本塔输出 $B \times L \times C$ token 表征。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 实现细节中，输入统一到 $256 \times 256$，ViT-L/16 会得到 256 个 patch token；文本最大长度为 64。视觉和文本塔来自公开 SigLIP 2 checkpoint，新加入的 pooling 与 action 模块随机初始化。&lt;/p&gt;
&lt;h4&gt;Text-conditioned cross-attention pooling&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 文本 token 作为 Query，视觉 patch 作为 Key/Value：&lt;/p&gt;
&lt;p&gt;$$
H = \operatorname{CrossAttn}(Q=T_L,\ K=X,\ V=X),
$$&lt;/p&gt;
&lt;p&gt;其中 $X \in \mathbb{R}^{B \times N \times C}$ 为视觉 patch token，$T_L \in \mathbb{R}^{B \times L \times C}$ 为文本 token，得到 $H \in \mathbb{R}^{B \times L \times C}$。随后，一个可学习 query 对 $H$ 再做 attention pooling，产生 $z_{\mathrm{img}} \in \mathbb{R}^{C}$。&lt;/p&gt;
&lt;p&gt;这一步的作用不是仅靠图像预测下一步，而是令相同场景在不同 instruction 下可选择不同的、与任务文字相关的视觉区域和动作语义。&lt;/p&gt;
&lt;h4&gt;Action Transformer&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 动作 chunk 的每个 378 维向量先投影到 shared embedding space，加 learned positional embedding 和一个 CLS token，进入 4 层、8 attention head 的 Transformer encoder；最终 CLS 经过投影成为 $z_{\mathrm{act}}$。padding 的时间步在 attention 中被 mask。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 关键在于它编码的不是单帧手势，而是未来 64 步 relative pose trajectory。于是视觉空间被迫区分看起来相似但接下来手会以不同方式运动的状态，这比从静态图像预测手部关键点更接近控制需求。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 对 batch 中 image-action 对 $(i,j)$，先计算带温度与 bias 的相似度：&lt;/p&gt;
&lt;p&gt;$$
\ell_{ij} = \tau \cdot \langle \mathbf{z}^{\mathrm{img}}_i,
\mathbf{z}^{\mathrm{act}}_j \rangle + b.
$$&lt;/p&gt;
&lt;p&gt;$\tau$ 是可学习温度，$b$ 是可学习 logit bias。匹配 pair $i=j$ 的标签为 $y_{ij}=+1$，其余 batch 内组合为负 pair，标签为 $-1$。训练损失为：&lt;/p&gt;
&lt;p&gt;$$
\mathcal{L}&lt;em&gt;{\mathrm{CAIP}} =
-\frac{1}{B}\sum&lt;/em&gt;{i=1}^{B}\sum_{j=1}^{B}
\log \sigma(y_{ij}\ell_{ij}).
$$&lt;/p&gt;
&lt;p&gt;这里 $\sigma$ 是 sigmoid。正样本是同一轨迹中时刻 $t_0$ 的图像与 $t_0+1$ 到 $t_0+T$ 的未来动作；batch 中其他 image-action 组合均为负样本。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 预训练数据由四类来源统一到同一手部动作空间：EgoDex 826 小时、in-lab human 287 小时、in-lab robot 88 小时、in-the-wild egocentric video 30,928 小时，总计 32,129 小时。尽管野外数据占原始帧数 96.6%，训练采样经上采样后为 EgoDex 10%、in-lab human 3%、in-lab robot 2%、野外视频 85%，以避免大源完全主导训练。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; ViT-L/16 预训练使用 AdamW，peak learning rate 为 $10^{-4}$，weight decay $10^{-4}$，$\beta_1=0.9$、$\beta_2=0.98$、$\epsilon=10^{-6}$；先 warmup 2,000 step，再 cosine decay 到 0。训练一个完整数据 pass，不做 gradient clipping。128 张 H100 上以 bf16 运行，每卡 micro-batch 128、累积 2 次，global batch 为 32,768。温度初始化为 $1/0.07$，最大值为 100；bias 初始化为 -10。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; CAIP 自身在下游阶段扮演 frozen visual-language encoder，而不是直接下发机器人命令。每个任务另行训练一个 Qwen3.5-0.8B decoder-only Transformer policy：每路相机的 patch token 与语言 token 先线性投影到 policy hidden dimension，再与 flow-matching timestep embedding、noisy action token 拼接；MLP action head 预测 flow-matching velocity。&lt;/p&gt;
&lt;p&gt;下游 policy 的训练采用 AdamW（learning rate $10^{-4}$、无 weight decay）、无 warmup cosine schedule、bf16 和 1.0 gradient clipping；每任务训练 200 epoch。除 Pour Almonds 使用 150 条示教，其余每个任务 200 条；每个任务约在 32 张 H100 上训练 12–15 小时。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-caip/caip-hardware.1ow65ubwkj.webp&quot; alt=&quot;CAIP 的真机硬件：Dexmate Vega 双臂与两只 Sharpa Wave 灵巧手（论文 Appendix Figure）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 真机平台是固定底座的 Dexmate Vega：两条 7-DoF 手臂搭配两只 22-DoF Sharpa Wave 手。视觉来自 1 个头部 ZED X Mini 立体相机和 2 个 wrist ZED X One S 单目相机，三路皆为 $640 \times 360$ RGB；论文不使用深度、触觉和本体状态作为 policy 输入。&lt;/p&gt;
&lt;p&gt;真实任务为 Fold Shorts、Pour Almonds、Pick Fruits、Dispense Soap、Turn On Lamp、Pull Tissue。每个策略在各任务上独立训练，通常使用 200 条示教，Pour 为 150 条，并在 12 次 rollout 上评估。多阶段任务允许部分得分，完整完成才记满分。基线包括 R3M、Qwen3.5 ViT、VideoMAE、VC-1、MVP、DINOv2、SigLIP 与 SigLIP 2；全部采用冻结 encoder + 相同下游 policy 的公平比较。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; CAIP 在 6 个真机任务上平均 76.04%，在 5 个任务取得最高分；最强基线 SigLIP 2 为 43.40%。逐任务结果如下：&lt;/p&gt;
&lt;p&gt;| 编码器      | Fold Shorts |      Pour | Pick Fruits | Dispense Soap | Turn On Lamp | Pull Tissue |      平均 |
| ----------- | ----------: | --------: | ----------: | ------------: | -----------: | ----------: | --------: |
| R3M         |       14.58 |     12.50 |        2.08 |         29.17 |         8.33 |       37.50 |     17.36 |
| Qwen3.5 ViT |       27.08 |     22.92 |   &lt;strong&gt;60.42&lt;/strong&gt; |         72.92 |         8.33 |       12.50 |     34.03 |
| MVP         |       54.17 |     62.50 |        2.08 |         93.75 |         8.33 |       31.25 |     42.01 |
| DINOv2      |       22.92 |     81.25 |       52.08 |         50.00 |        25.00 |       20.83 |     42.01 |
| SigLIP 2    |        4.17 |     35.42 |       52.08 |         93.75 |        50.00 |       25.00 |     43.40 |
| CAIP        |   &lt;strong&gt;68.75&lt;/strong&gt; | &lt;strong&gt;83.33&lt;/strong&gt; |       56.25 |    &lt;strong&gt;100.00&lt;/strong&gt; |    &lt;strong&gt;75.00&lt;/strong&gt; |   &lt;strong&gt;72.92&lt;/strong&gt; | &lt;strong&gt;76.04&lt;/strong&gt; |&lt;/p&gt;
&lt;p&gt;论文还在更换 embodiment 和视觉 domain 的 ManiSkill2 单臂 Franka 中评估：CAIP 在 Lift Peg、Stack Cubes、Push Cube 分别为 75.00%、58.33%、100.00%，平均 77.78%；SigLIP 2 和 DINOv2 的平均为 72.22% 与 69.44%。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 模型容量消融显示，ViT-B/16、ViT-L/16、ViT-SO400M/16 在 Turn On Lamp、Fold Shorts、Dispense Soap 三任务上的平均成功率依次为 47.92%、81.25%、87.50%。作者选择 ViT-L 作为主模型，因为从 B 到 L 的 33.33 个百分点提升远大于继续增大到 SO400M 的 6.25 个百分点提升。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 数据规模消融固定 ViT-L/16，在 ManiSkill2 中用 20%、50%、100% 预训练数据时平均成功率为 50.00%、61.11%、77.78%。Stack Cubes 从 25.00% 升至 58.33%，且论文称未观察到饱和迹象。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 作者也尝试从 pooled embedding 用 MLP 直接回归 action chunk，或从 patch sequence 用 Transformer decoder 回归；使用相同数据与训练设置时均未得到有效表征。这说明有动作监督本身不足够，如何让视觉空间保留与动作有关的可分结构同样关键。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-caip/caip-linear-probe.wjao3vdu7.webp&quot; alt=&quot;在未见第一视角数据上的 action-classification：线性 probe 与 CAIP 的零样本动作检索（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 对完全未参与预训练的第一视角数据，作者将原始 action chunk 以 K-means 聚为 50 类。冻结 encoder 后，CAIP 的 linear probe 在每类 1 到 256 个样本的范围内均优于 SigLIP、DINOv2、MVP、R3M；而 CAIP 的 zero-shot retrieval 直接将图像 embedding 与各动作簇的 action embedding prototype 比余弦相似度，在每类最多 16 个训练样本时超过所有基线的 linear probe。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在灯光与干扰物扰动中，模型均只在干净训练环境示教。对 Lamp、Soap、Fold Shorts 三项平均，CAIP 在原始 / 强光 / 弱光下为 81.25 / 51.39 / 43.06，在两个干扰物加入后为 52.78；对应 Qwen3.5 ViT 为 36.11 / 22.22 / 24.31 / 28.47，MVP 为 52.08 / 5.56 / 17.36 / 9.72。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; CAIP 的有效性可拆成三个相互约束的设计。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;动作代理与下游接口相邻。&lt;/strong&gt; 42 个手部关键点不等于机器人关节，但它们的相对 $SE(3)$ 变化比视频帧距离、masked pixel 更接近末端控制和抓取过程。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;监督目标是未来 chunk。&lt;/strong&gt; 单帧特征必须携带未来约 2 秒运动的可预测信息，迫使模型关注手、接触物与操作阶段，而不只是对象类别。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;语言把 pooling 从全局显著性变为任务条件。&lt;/strong&gt; 文本 token 查询 image patch 的结构允许同一画面依照倒、拿、打开等指令构建不同特征；不过论文的注意力可视化也发现各内容 token 的空间图非常相似，不能把它解读为逐词精确 grounding。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 与现有图文或视频预训练的差别在于，CAIP 显式对齐 image-text embedding 和 action embedding。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 真正的贡献是选择了可扩展的中间动作语言：手部相对 pose 不需要把每段人类视频 retarget 成特定机器人的关节轨迹，也不像离散 affordance 标签那么远离控制。它既能吞下海量视频，也留下了与机器人 action space 的几何联系。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;| 方法路线      | 预训练数据                    | 监督信号                      | 与控制的距离                 |
| ------------- | ----------------------------- | ----------------------------- | ---------------------------- |
| CLIP / SigLIP | 网页图文                      | image-text 对齐               | 学语义，但无物理动作         |
| DINOv2        | 图像                          | 自蒸馏 / 视觉一致性           | 保留结构，但不知任务动作     |
| R3M           | 第一视角视频                  | 时间对比、视频语言            | 知时间相邻，非显式动作       |
| MVP / VC-1    | 操作相关图像或视频            | masked reconstruction         | 重建像素，未选择控制相关部分 |
| CAIP          | 第一视角视频 + 少量机器人数据 | image-text 与未来手部动作对比 | 将视觉直接组织到动作表征空间 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这也解释了 direct regression 不理想的现象：回归会鼓励输出一个平均动作，而 contrastive matching 只要求表示空间把正确未来动作与错误动作区分开。对存在多种合理操作轨迹的视觉状态，后者可能是更温和、更适合作为 encoder pretraining 的约束。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;人手关键点的动作几何能跨越人机 embodiment gap，成为 robot manipulation 的有用代理。&lt;/li&gt;
&lt;li&gt;视频中的手部姿态估计在大规模野外数据上足够可靠；错误不会压过正监督信号。&lt;/li&gt;
&lt;li&gt;同一 batch 的其他 image-action 对可以安全视为负样本。若两个样本做的是相近动作，这会形成 false negative。&lt;/li&gt;
&lt;li&gt;冻结表征器上的单任务策略评测可以代表预训练表征本身的增益，而不会被下游 policy 容量主导。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文没有独立的 limitations 小节，但报告了两个具体失败模式：Pour 中，策略有时已抓住杯子却在两杯未对齐时过早倾倒，作者推测两只同为红色的杯子在视觉上让接近对齐和已对齐难以区分；Fold Shorts 中，完成第一次折叠后有时不继续第二折，原因可能是中间状态与完成状态相似。论文也指出这些失败在其他 encoder 上同样出现。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 更大 ViT-SO400M 有额外收益但更慢，故主结果采用 ViT-L；这表明性能与部署成本仍存在取舍。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;动作代理的上限。&lt;/strong&gt; 手部 pose 不包含力、触觉、物体动力学与接触状态；对插拔、柔性物体、摩擦临界等任务，视觉-姿态对齐未必足够。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;数据来源可复现性。&lt;/strong&gt; 32,129 小时中约 30,928 小时来自论文未命名的 in-the-wild source，且没有官方代码或数据处理管线，第三方难以重建完整预训练配方。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;真机评测统计有限。&lt;/strong&gt; 每个任务仅 12 次 rollout，且多阶段任务给部分分；76.04% 是有价值的信号，但不应等价为大量随机初始化下的稳定成功率估计。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;下游成本不低。&lt;/strong&gt; 表征预训练需 128 H100，下游每任务也使用 32 H100、12–15 小时；减少 robot data 不等于低算力可复现。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;泛化结论的边界。&lt;/strong&gt; Franka 仿真展示跨 embodiment 迁移，但它仍需为每个任务用 200 条示教从头训练 policy，不是零样本跨机器人执行。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;可把 action proxy 设计为可组合的多视角监督。&lt;/strong&gt; 手 pose 是一个起点；未来可与接触、物体轨迹、抓取可达性或视觉状态变化共同对齐，减少单一姿态监督遗漏的物理信息。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;应测量 false negatives 的影响。&lt;/strong&gt; 未来动作相似的样本在大 batch 中被强制推开，可能限制表示的动作连续性；可探索软标签、近邻排除或 action-distance-aware contrastive loss。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;应将预训练与端到端微调分开评测。&lt;/strong&gt; 本文固定 encoder 能清晰归因，但尚不知道微调后基线能否缩小差距，或 CAIP 是否会进一步获益。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;人类视频加小量机器人数据值得做规模律。&lt;/strong&gt; 论文数据量消融未饱和，下一步不仅是加更多视频，也要量化何时增加机器人数据、提高动作标签质量或扩大 encoder 最划算。&lt;/li&gt;
&lt;/ol&gt;</content:encoded><h:img src="https://pic.hana0721.top/134041716_p0_master1200.5q80bz7b6v.webp"/><enclosure url="https://pic.hana0721.top/134041716_p0_master1200.5q80bz7b6v.webp"/></item><item><title>ActionCodec 论文精读：什么样的 Action Tokenizer 才适合 VLA？</title><link>https://agusexp25.top/blog/paper-deep-dive-actioncodec</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-actioncodec</guid><description>精读 ActionCodec：从 VLA 优化视角重新定义动作 token，分析 overlap、词表容量、多模态互信息与 token 独立性。</description><pubDate>Tue, 25 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;论文名称&lt;/strong&gt;：《ActionCodec: What Makes for Good Action Tokenizers》&lt;br&gt;
&lt;strong&gt;作者&lt;/strong&gt;：Zibin Dong、Yicheng Liu、Shiduo Zhang 等 11 位作者&lt;br&gt;
&lt;strong&gt;论文链接&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2602.15397&quot;&gt;arXiv&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;代码链接&lt;/strong&gt;：&lt;a href=&quot;https://github.com/ZibinDong/actioncodec&quot;&gt;ZibinDong/actioncodec&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;模型&lt;/strong&gt;：&lt;a href=&quot;https://huggingface.co/ZibinDong/ActionCodec-Base&quot;&gt;ActionCodec-Base&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-actioncodec/figure1.8dxlulzblh.webp&quot; alt=&quot;ActionCodec 总览与 LIBERO 训练曲线（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; ActionCodec 的核心观点是：动作 tokenizer 的好坏不能只看 reconstruction error，它实际上决定了 VLA 的监督信号是否稳定、是否依赖视觉语言上下文，以及模型会不会过拟合。作者据此提出四条设计原则：最大化相邻 chunk 的 token overlap、避免过大的词表与 token budget、提高 token 与视觉语言输入的互信息、让 token 尽量相互独立。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;用 $H(C|V,L)$ 分析动作离散化给 VLA 带来的 supervisory ambiguity，并把 tokenizer 评价从重建质量推进到下游优化质量。&lt;/li&gt;
&lt;li&gt;通过 controlled ablation 证明 overlap rate、token budget、vocabulary size、perceptual alignment 与 residual grammar 会直接影响收敛速度和抗过拟合能力。&lt;/li&gt;
&lt;li&gt;提出 ActionCodec：Perceiver-like encoder/decoder、2048-entry codebook、16 个主 token、TCL/CLIP 对齐、embodiment-specific soft prompt，以及冻结主 codebook 后的 RVQ post-training。&lt;/li&gt;
&lt;li&gt;在无 robotics pre-training 的 SmolVLM2 上，LIBERO 平均成功率达到 95.5%；结合 Block-wise Autoregression（BAR）达到 97.4%。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这篇工作的真正对象不是某个更大的 VLA backbone，而是“监督标签本身”。同一个 VLM，换一种 action tokenization，就可能从 5K steps 仍未收敛变成快速学会控制。&lt;/p&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 离散 action token 让 VLA 可以复用 VLM 的 autoregressive objective，并保留 instruction following 能力。常见方案包括逐维 binning、把动作写成字符串、频域 BPE（FAST）和 VQ。前两类有明显的 token 冗余，FAST 依赖固定的频域先验，而 VQ 方法通常只用 reconstruction error 选 tokenizer，因此可能得到“重建很好、VLA 很难学”的 token。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; VQ 的信息瓶颈不是越大越好。过大的 codebook 或 token budget 会把传感器噪声、控制抖动和数据集特有的相关性也编码进去；过小则损失完成任务所需的物理细节。ActionCodec 研究的是这个 trade-off 对优化 landscape 的影响。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 给定视觉观测 $V$、语言指令 $L$ 和动作序列 $A\in\mathbb{R}^{T\times D}$，策略希望预测离散序列 $C=[c_1,\ldots,c_n]$：&lt;/p&gt;
&lt;p&gt;$$
F:A\mapsto Z\mapsto C,\qquad G(C)\mapsto \hat A,
$$&lt;/p&gt;
&lt;p&gt;其中 $F$ 是 encoder，$Z$ 是连续 latent，$C$ 由 codebook 最近邻量化得到，$G$ 是 decoder。论文主要在 LIBERO 上用 1 秒动作窗口、$n=16$、词表 $S=2048$ 的设置验证，再扩展到 BridgeData、DROID、SO100 和 xArm。&lt;/p&gt;
&lt;p&gt;| 要素                  | ActionCodec 设定                                                   |
| --------------------- | ------------------------------------------------------------------ |
| Observation           | RGB 视觉、语言指令，以及机器人本体动作上下文                       |
| Action representation | 离散 VQ/RVQ code，默认 16 个主 token；BAR 使用 3 个 codebook level |
| Policy                | SmolVLM2 自回归 VLA，也测试 PD、KI、BAR                            |
| Embodiment            | LIBERO-Franka、Bridge-WidowX、DROID-Franka、SO100、xArm            |
| Training objective    | VLA token NLL；tokenizer 另有重建、commitment、TCL/CLIP 对齐损失   |
| Deployment            | LIBERO 仿真与 SO100、xArm 真实机器人                               |&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-actioncodec/arch.45ieks92x9.webp&quot; alt=&quot;ActionCodec 的 Perceiver-like VQ tokenizer 架构（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 数据流是 &lt;code&gt;action chunk → Perceiver encoder → vector quantization → discrete action tokens → Perceiver decoder → reconstructed action&lt;/code&gt;；VLA 只把量化 token 当作监督目标，训练与推理流程分别见 4.4 和 4.5。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;Perceiver encoder / decoder&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：定长或 padding 后的动作序列、时间戳和 embodiment id。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：16 个 $z\in\mathbb{R}^{512}$ latent，以及 decoder 重建的连续动作。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;作用&lt;/strong&gt;：learnable query 通过 cross-attention 读取可变长度动作；只使用 cross-attention 时，各输出 token 没有显式 inter-token 依赖。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;actioncodec/modular_actioncodec.py&lt;/code&gt; 提供 cross-attention、可选 self-attention 和 causal mask；&lt;code&gt;configuration_actioncodec.py&lt;/code&gt; 的默认 encoder/decoder hidden size 为 256、6 层、8 heads。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;VQ 与 RVQ&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;VQ&lt;/strong&gt;：每个 latent 选择 codebook 中欧氏距离最近的向量，默认 codebook size 为 2048。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;RVQ post-training&lt;/strong&gt;：先训练稳定的单层 VQ，再冻结 encoder 和主 codebook，仅增加 residual codebook 降低重建误差；因此第一层 token 完全不变。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;ActionCodec&lt;/code&gt; 通过 &lt;code&gt;vq_type=&apos;vq&apos;/&apos;rvq&apos;&lt;/code&gt; 切换；RVQ 要求至少两个 quantizer，且 &lt;code&gt;n_tokens&lt;/code&gt; 必须能被 quantizer 数整除。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;TCL、CLIP 与 soft prompt&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Time Contrastive Learning（TCL）拉近相邻动作 chunk 的 latent，CLIP loss 让 token 与语言描述对齐；每个 embodiment 还有独立 learnable soft prompt，配合 Fourier timestamp encoding 表达控制频率和机械约束。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-actioncodec/vl_align.5mojmjd7ov.webp&quot; alt=&quot;视觉语言对齐与 latent 结构（论文 Figure 5）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;VQ 目标&lt;/h4&gt;
&lt;p&gt;$$
\mathcal{L}_{VQ}=|A-\hat A|_2^2+|\operatorname{sg}[Z]-e_C|_2^2+|Z-\operatorname{sg}[e_C]|_2^2.
$$&lt;/p&gt;
&lt;p&gt;$e_C$ 是选中的 codebook 向量，$\operatorname{sg}$ 是 stop-gradient。第一项保证可重建，后两项分别让 codebook 跟随 encoder、让 encoder 承诺到 codebook。&lt;/p&gt;
&lt;h4&gt;VLA 条件熵分解&lt;/h4&gt;
&lt;p&gt;$$
\mathbb{E}[\mathcal{L}&lt;em&gt;{NLL}]=D&lt;/em&gt;{KL}(P_{data}|P_\theta)+H(C|V,L),
$$&lt;/p&gt;
&lt;p&gt;$$
H(C|V,L)=H(C|A)+I(C;A)-I(C;V,L).
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 三项分别对应 tokenizer artifact entropy、动作信息容量和视觉语言 perceptual alignment。减少第一项、控制第二项、增大第三项，才是在减少 VLA 的有效监督噪声，而不只是让动作重建更精确。&lt;/p&gt;
&lt;h4&gt;token 信息路径&lt;/h4&gt;
&lt;p&gt;$$
I(c_k;V,L,c_{&amp;#x3C;k})=I(c_k;V,L)+I(c_k;c_{&amp;#x3C;k}|V,L).
$$&lt;/p&gt;
&lt;p&gt;作者把第二项称为 residual grammar。实验显示它过强时，模型会依赖历史 token，反而忽略当前视觉反馈。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; tokenizer 先在 LIBERO、BridgeData、DROID 等数据上预训练，再将 token 接入 SmolVLM2 做全参数 autoregressive fine-tuning。论文报告 tokenizer batch size 8192、learning rate $2\times10^{-4}$、100k steps；LIBERO VLA 训练监控 500、1k、5k、10k、20k steps。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方 &lt;code&gt;scripts/train_vla.py&lt;/code&gt; 用 Lightning 统一实现 AR、PD、KI、BAR；&lt;code&gt;config/train/ar.yaml&lt;/code&gt; 默认 50k steps、batch size 16、4 卡 bf16 DDP、AdamW learning rate $2\times10^{-4}$。AR 会扩展 VLM vocabulary 并 resize token embeddings，BAR 则加载 &lt;code&gt;ActionCodec-Base-RVQft&lt;/code&gt;，用 48 tokens / 3 blocks。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 推理时 VLA 根据视觉和语言上下文产生 action token，再由 codebook 解码回连续动作。AR 逐 token 生成；PD 一次生成整段；BAR 按 RVQ level 分块生成，块内双向、块间因果。KI 则把同一个 codec 作为连续 action expert 的表示接口。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;| 论文概念               | 官方代码位置                                                | 实际行为                                                                                     |
| ---------------------- | ----------------------------------------------------------- | -------------------------------------------------------------------------------------------- |
| ActionCodec 主模型     | &lt;code&gt;actioncodec/modeling_actioncodec.py&lt;/code&gt;                       | &lt;code&gt;_encode → _quantize → _decode&lt;/code&gt;，支持 numpy / torch 输入与 padding mask                      |
| Embodiment soft prompt | &lt;code&gt;actioncodec/modular_actioncodec.py&lt;/code&gt;                        | 每个 embodiment 有 learnable id embedding，并用 Fourier 时间编码注入频率                     |
| VQ / RVQ               | &lt;code&gt;actioncodec/modeling_actioncodec.py&lt;/code&gt;, &lt;code&gt;actioncodec/rvq.py&lt;/code&gt; | VQ 使用 EMA codebook；RVQ 返回多层 code 与 commitment/codebook loss                          |
| VLA processor          | &lt;code&gt;utils/vla_tokenizer.py&lt;/code&gt;                                    | &lt;code&gt;discrete&lt;/code&gt; 扩展 &lt;code&gt;&amp;#x26;lt;&amp;#x26;vert;action_i&amp;#x26;vert;&amp;#x26;gt;&lt;/code&gt;，&lt;code&gt;discrete_bar&lt;/code&gt; 额外加入 block boundary token |
| 训练入口               | &lt;code&gt;scripts/train_vla.py&lt;/code&gt;                                      | Lightning wrapper 按 &lt;code&gt;strategy&lt;/code&gt; 分派 AR、PD、KI、BAR 的 loss 与 validation                   |
| 预训练模型             | Hugging Face &lt;code&gt;ZibinDong/*&lt;/code&gt;                                  | 提供 Base、Base-RVQft 及 SmolVLM2 的 AR/PD/BAR checkpoint                                    |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 代码里的 &lt;code&gt;expand_embodiment&lt;/code&gt; 允许动态加入新机器人配置，但这只扩展输入输出维度与 embedding；它不等于无需数据就能获得可靠 zero-shot retargeting，后者仍依赖预训练表示和 soft prompt。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-actioncodec/benchmarks.7p4calbt0n.webp&quot; alt=&quot;ActionCodec 的仿真与真实机器人评测任务（论文 Figure 7）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 评测覆盖 LIBERO 四个 suite、SimplerWidowX、SO100-ShapeSorter 和 xArm-PickVeg。LIBERO 使用 50 个预定义初始状态，每个任务 50 次 trial；SO100 使用两台 480×640 RGB 相机、30 Hz、每个数字 50 条示教；xArm 每种蔬菜 30 条示教。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;| 模型                        | robotics pre-training | LIBERO Avg. |
| --------------------------- | --------------------: | ----------: |
| FAST                        |                    否 |        90.6 |
| SmolVLM2-2.2B + ActionCodec |                    否 |    &lt;strong&gt;95.5&lt;/strong&gt; |
| ActionCodec-BAR             |                    否 |    &lt;strong&gt;97.4&lt;/strong&gt; |
| π0.5                        |                    是 |        96.8 |&lt;/p&gt;
&lt;p&gt;在训练效率上，ActionCodec 在 5K steps 达到 89.5% success，而 FAST 同期为 38.6%。在 SimplerWidowX 上，ActionCodec-BAR 平均 65.2%；xArm-PickVeg 使用异构数据预训练时达到 82.5%。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-actioncodec/grammar.8okfnrek4k.webp&quot; alt=&quot;独立 token、Self-Attention 与 Causal 架构的误差传播实验（论文 Figure 6）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 70% overlap rate 在 500 steps 达到 33.4% success，而 vanilla VQ-VAE 只有 8.2%、FAST 只有 2%。固定 overlap 后，$n=16$、$S=2048$ 是容量和过拟合之间的实用折中。独立 tokenization 比 SA 和 causal-SA 更抗 token 扰动；soft prompt、RVQ post-training 和 co-training 分别贡献跨 embodiment 迁移、重建精度和恢复行为。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-actioncodec/RVQft.5c1ptdxzvu.webp&quot; alt=&quot;RVQ post-training：冻结主 codebook 后增加 residual codebook（论文 Appendix Figure）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; ActionCodec 可接入 PD、KI、BAR 三种架构；LIBERO 上 PD 为 95.6%、KI 为 94.3%、BAR 为 97.4%。SO100 的 co-training 使模型能在插入失败后执行重新对齐等 long-tail recovery；跨 Bridge-WidowX、LIBERO-Franka、DROID-Franka 与 xArm 的动作迁移展示了统一 latent space 的趋势。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; ActionCodec 同时改善了三件事：相邻 chunk 产生更一致的标签，减少梯度冲突；有限 token capacity 把学习重点放在任务相关结构上；独立 token 迫使 VLA 重新读取视觉语言上下文，而不是从前几个 token 猜后续动作。RVQ 被放到 post-training，因而不会破坏已经稳定的 supervision manifold。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 创新不在于“又一个 VQ-VAE”，而在于把 tokenizer 设计变量与 VLA optimization 变量建立了可测的对应关系：overlap rate 对 artifact entropy，token budget / vocabulary 对 capacity，TCL/CLIP 对 perceptual alignment，self-attention 对 residual grammar。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;FAST 依靠 DCT/BPE 的固定结构先验，ActionCodec 学习 embodiment-aware latent；传统 VQ 只追求重建，ActionCodec 先保证 token 的训练拓扑稳定，再用 RVQ 补精度；SA/causal tokenizer 追求 token 间 grammar，ActionCodec 则认为在闭环控制中应优先保持 multimodal grounding。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;相邻 action chunk 通常对应相近的上下文，因此 token overlap 是 supervision stability 的可靠 proxy。&lt;/li&gt;
&lt;li&gt;在低重建误差阈值内，VLA 更关心标签拓扑和条件熵，而不是每个动作维度的极限精度。&lt;/li&gt;
&lt;li&gt;不同 embodiment 可以共享一部分动作先验，并用 soft prompt 表达机械差异与控制频率。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 当前预训练只覆盖有限的大规模机器人数据，尚未验证更广泛的 in-the-wild embodiment transfer；作者还指出 neural architecture 和 vision-language alignment 仍有优化空间。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; overlap rate、词表大小和 TCL/CLIP 权重仍需要按数据分布调节；高 overlap 可能在强非平稳接触任务中抹掉必要的快速变化。其次，论文主要用 success rate 验证 token 设计，尚未系统报告 token 级 calibration、功耗或不同 decoding latency 下的闭环稳定性。最后，官方代码虽然支持动态 embodiment 配置，但公开训练配置和 checkpoint 仍集中在少数机器人，迁移到新 action space 时仍需重新验证。&lt;/p&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; ActionCodec 给 VLA 研究的启发是：先问“模型被要求预测的 token 是否是一个好监督”，再问 backbone 是否足够大。未来可以把 tokenizer 设计成可学习的 optimization-aware objective，直接用 early-step convergence、扰动恢复和闭环 success 反向选择离散表示；也可以研究 task-conditional codebook，让精细接触阶段临时增加 residual capacity，而在自由空间运动阶段保持更短 token 序列。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/69461006_p0_master1200.1e974ctzq9.webp"/><enclosure url="https://pic.hana0721.top/69461006_p0_master1200.1e974ctzq9.webp"/></item><item><title>ACE-Ego-0 论文精读：把第一视角人类视频变成 VLA 的可用动作监督</title><link>https://agusexp25.top/blog/paper-deep-dive-ace-ego-0</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-ace-ego-0</guid><description>精读 ACE-Ego-0：用 camera-space action、形态条件、时间对齐和可靠性加权，把 1.48K 小时人类第一视角视频与机器人数据统一用于 VLA 预训练。</description><pubDate>Tue, 25 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;论文名称&lt;/strong&gt;：《ACE-Ego-0: Unifying Egocentric Human and Robotic Data for VLA Pretraining》&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;作者&lt;/strong&gt;：Hao Li、Ganlong Zhao、Yufei Liu、Haotian Hou、Guoquan Ye、Tongyan Fang、Chunxiao Liu、Siyuan Huang、Jianbo Liu、Xiaogang Wang、Hongsheng Li&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;论文 / 项目 / 代码&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2606.17200&quot;&gt;arXiv&lt;/a&gt; · &lt;a href=&quot;https://acerobotics-vla.github.io/ACE-Ego/&quot;&gt;Project Page&lt;/a&gt; · &lt;a href=&quot;https://github.com/ACERobotics-VLA/ACE-Ego&quot;&gt;ACE-Ego&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-ace-ego-0/teaser.lwguwp2rt.webp&quot; alt=&quot;ACE-Ego-0 将机器人、仿真和第一视角人类视频统一到同一个 VLA 预训练框架（论文 teaser）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; ACE-Ego-0 解决的不是“如何再收集一个机器人数据集”，而是如何把便宜、规模大但动作标签噪声高的第一视角人类视频，安全地接入机器人 VLA 的训练目标。它沿空间、结构、时间三条轴统一 action representation，再用 reliability-aware human auxiliary loss 隔离 pseudo-action 的噪声。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;统一动作接口&lt;/strong&gt;：机器人末端和人手轨迹都转换到 head-camera 坐标系，使用 22 维双臂 action；再加入 robot URDF 或 human source surrogate 的 morphology token。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;时间对齐&lt;/strong&gt;：按物理时长而不是固定帧数构造 action chunk，使 10–30 Hz 的数据覆盖相同未来时间窗口。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;可靠性加权监督&lt;/strong&gt;：机器人数据使用完整的 primary flow-matching loss；人类 pseudo-actions 只通过带通道和时间步权重的 Huber auxiliary loss 参与。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;可扩展数据管线&lt;/strong&gt;：从 Ego4D、EgoExo4D、EPIC-KITCHENS-100、HOI4D、EgoDex、Xperience-10M 中产出 1,478.9 小时 pseudo-action 视频，与 4,534.8+ 小时机器人 / 仿真数据组成 6,013.7+ 小时混合池。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;实验结果&lt;/strong&gt;：RoboCasa GR1 TableTop 平均成功率 72.8%，RoboTwin 2.0 Easy / Hard 为 91.12% / 90.62%，真实 ARX 双臂平台六项任务平均成功率为 78.3%。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; ACE-Ego-0 的真正创新是把“表示对齐”和“标签可信度”拆成两个正交问题：同一个坐标系并不意味着标签同样可靠，二者必须分别处理。&lt;/p&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; VLA 的性能通常随 embodied data 的规模和多样性增长，但机器人示教需要遥操作、标定和传感器记录，扩展成本很高。第一视角人类视频覆盖厨房、家庭和工作台中的长尾操作，采集便宜得多，因此成为有吸引力的补充监督。&lt;/p&gt;
&lt;p&gt;困难在于，两类数据同时存在四种错位：&lt;/p&gt;
&lt;p&gt;| 错位     | 机器人示教                       | 人类视频 pseudo-action                 |
| -------- | -------------------------------- | -------------------------------------- |
| 空间     | base / world / camera 等不同坐标 | 手部重建常在 local frame，且有深度歧义 |
| 结构     | 不同机械臂、关节链、夹爪行程     | 没有 URDF，只有人手形态                |
| 时间     | 10–30 Hz、不同 chunk 步数        | 视频帧率和动作持续时间不一致           |
| 监督质量 | 传感器记录的高保真 action        | 遮挡、抖动、追踪失败导致噪声           |&lt;/p&gt;
&lt;p&gt;已有 cross-embodiment VLA 往往解决共享 action space 或 embodiment tokenizer，但没有同时处理 camera frame、kinematic structure 和 control frequency。另一方面，EgoMimic、HumanPlus、EgoVLA 等方法从人类视频恢复手部或接触轨迹，却容易把 noisy pseudo-actions 当作机器人真值直接训练。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 直接混合数据的隐患不是“人类视频没有用”，而是高质量机器人标签会被低质量标签的统计偏差拖动。ACE-Ego-0 让人类视频主要提供行为覆盖和视觉先验，把精确控制锚定在机器人数据上。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;给定多视角图像 $o_t$、语言指令 $l$、embodiment 信息 $m$，策略需要输出未来一段 camera-space action chunk：&lt;/p&gt;
&lt;p&gt;$$
\pi_\theta(o_t,l,m) \rightarrow \hat{\mathbf a}_{t:t+H_d-1},
$$&lt;/p&gt;
&lt;p&gt;其中 $H_d$ 随数据源控制频率 $f_d$ 改变，但对应相同的物理时长 $T^\star$。每个双臂 action 为 22 维：&lt;/p&gt;
&lt;p&gt;$$
\mathbf a_t = [\mathbf a_{t,L};\mathbf a_{t,R}],\qquad
\mathbf a_{t,h}=[p_x,p_y,p_z,r_1,\ldots,r_6,g,\alpha].
$$&lt;/p&gt;
&lt;p&gt;| 项目        | 定义                                                                 |
| ----------- | -------------------------------------------------------------------- |
| Observation | head / wrist RGB 图像和语言指令                                      |
| Action      | camera-space 末端 / 手腕位置、6D 旋转、gripper、activity flag        |
| Robot       | AgiBot、Galaxea、Galbot、GR1 等多种 embodiment                       |
| Human       | 六个第一视角视频来源，经 3D hand reconstruction 得到 pseudo-action   |
| 训练目标    | 机器人 primary flow matching + 人类 reliability-aware auxiliary loss |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文把人类动作视为可用但不等价于机器人传感器标签的 supervision。因而目标不是让人手轨迹完全“伪装成”机器人轨迹，而是在共享接口中保留它们的质量差异。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-ace-ego-0/method.5c1ptbgpa8.webp&quot; alt=&quot;ACE-Ego-0 总体架构：Qwen3-VL 提供视觉语言表示，带 morphology token 的 action expert 通过 flow matching 输出 camera-space action（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Qwen3-VL-4B-Instruct 编码 head / wrist 图像与语言；约 600M 参数的 flow-matching DiT action expert 额外接收 morphology token，输出按物理时间对齐的连续 action chunk。机器人样本进入 primary loss，人类样本进入 reliability-aware auxiliary loss。&lt;/p&gt;
&lt;p&gt;数据流只有一条共享接口：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;图像 + 指令 ──&gt; Qwen3-VL ──&gt; action expert ──&gt; camera-space action chunk
                                   ↑
                   robot URDF / human surrogate morphology token
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;(1) Camera-space action&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：机器人在 source frame $s$ 中的末端 pose，或人手重建得到的 wrist / palm 几何。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;中间模块&lt;/strong&gt;：外参变换、连续 6D rotation、hand-centric frame、gripper normalization。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：统一的双臂 22-D action。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;作用&lt;/strong&gt;：观测和动作位于同一个 head-camera frame，换 embodiment 时只需更换 camera extrinsic。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 机器人 pose 使用&lt;/p&gt;
&lt;p&gt;$$
p_{\mathrm{cam}}=R_{\mathrm{cam}\leftarrow s}p_s+t_{\mathrm{cam}\leftarrow s},
\qquad
R_{\mathrm{cam},ee}=R_{\mathrm{cam}\leftarrow s}R_{s,ee}.
$$&lt;/p&gt;
&lt;p&gt;人类则把 wrist 作为 end-effector origin，用 wrist、palm、thumb 和 middle finger 构造稳定 hand-centric frame；拇指到 palm 的距离经过线性归一化后充当 gripper openness。&lt;/p&gt;
&lt;h4&gt;(2) Cross-embodiment morphology conditioning&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 机器人 morphology 由 URDF graph encoder 生成。图节点是 URDF joints，每个节点包含 joint type、axis、origin、limits、actuation 和到左右末端链的距离；消息传递后分别池化全身和操作链，形成 body / chain summary。人类视频没有 URDF，因此每个视频源学习一个 surrogate embedding $e_d$，吸收相机视场、视觉域和标注质量等稳定因素。&lt;/p&gt;
&lt;p&gt;$$
h_{\mathrm{morph}}=
\begin{cases}
P_{\mathrm{morph}}(E_{\mathrm{urdf}}(\mathcal G_r)),&amp;#x26;\text{robot},\
P_{\mathrm{surr}}(e_d),&amp;#x26;\text{human video}.
\end{cases}
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; token 只注入 action expert，不进入共享 VLM trunk。这样 VLM 学的是跨 embodiment 的视觉语言语义，动作头再根据具体机构解释同一 camera-space trajectory。&lt;/p&gt;
&lt;h4&gt;(3) Time-aligned action chunking&lt;/h4&gt;
&lt;p&gt;不同数据源的控制频率为 $f_d$ 时，目标物理窗口为 $T^\star$，因此：&lt;/p&gt;
&lt;p&gt;$$
H_d=\operatorname{round}(f_dT^\star).
$$&lt;/p&gt;
&lt;p&gt;论文默认 $T^\star=2$ 秒；20 Hz 的 RoboCasa SFT 数据对应 40 steps。为减少 variable-length padding，采样器还按 task cluster、episode phase bucket 和 horizon bucket 构造 composite key。&lt;/p&gt;
&lt;h4&gt;(4) Egocentric video-to-action pipeline&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-ace-ego-0/data_pipeline.7axwjnm7n1.webp&quot; alt=&quot;将原始第一视角视频转为 camera-space pseudo-actions 的五阶段管线（论文 Figure 4）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 五个阶段分别是：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Dataset curation&lt;/strong&gt;：统一 clip id、帧号、相机内参、narration 和许可证；保留 4–30 秒片段。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Video selection&lt;/strong&gt;：ego-interaction filter 去除观察者视角，再用 image-captioning filter 要求同时出现 manipulation verb 和 object noun。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;3D hand reconstruction&lt;/strong&gt;：SAM3 做 2D tracking，HaMeR 估计 MANO pose，VIPE 提供相机运动；先拟合 root，再用 reprojection + temporal smoothness 做全局轨迹优化。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Action parameterization&lt;/strong&gt;：转为与机器人相同的 wrist / orientation / gripper / activity layout；磁盘保存 16-D Euler 版本，训练时转为 22-D continuous-6D 版本。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Quality control&lt;/strong&gt;：completeness、static、spike 和 bimanual filters 删除 NaN、静止片段、异常速度和不可信双手耦合。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;产出的 1,478.9 小时视频并不被当作“机器人真值”，而是带有 dataset-level 和 step-level quality 的辅助监督。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;Robot primary flow-matching loss&lt;/h4&gt;
&lt;p&gt;给定干净机器人 action chunk $\mathbf a$ 和噪声 $\boldsymbol\epsilon\sim\mathcal N(0,I)$，采样 $s\sim\mathcal U(0,1)$：&lt;/p&gt;
&lt;p&gt;$$
\mathbf a_s=s\mathbf a+(1-s)\boldsymbol\epsilon.
$$&lt;/p&gt;
&lt;p&gt;模型预测 velocity field $\hat v_\theta(\mathbf a_s,s)$，目标为 $\mathbf a-\boldsymbol\epsilon$：&lt;/p&gt;
&lt;p&gt;$$
\mathcal L_{\mathrm{action}}=
\mathbb E_{s,\boldsymbol\epsilon}
\sum_{t,j}M_{t,j}
\left|\hat v_\theta(\mathbf a_s,s)&lt;em&gt;{t,j}-(\mathbf a-\boldsymbol\epsilon)&lt;/em&gt;{t,j}\right|^2.
$$&lt;/p&gt;
&lt;p&gt;$M_{t,j}$ 是 padding、无效 arm 或越界投影的 action mask。&lt;/p&gt;
&lt;h4&gt;Human reliability-aware auxiliary loss&lt;/h4&gt;
&lt;p&gt;人类目标先经过长度为 3 的 temporal smoothing，得到 $\tilde{\mathbf a}$。每个时间步和通道的权重为：&lt;/p&gt;
&lt;p&gt;$$
W_{t,j}=\rho_j,w_{\mathrm{data}}(d,h(j)),w_{\mathrm{step}}(t,h(j)).
$$&lt;/p&gt;
&lt;p&gt;位置通道的静态 prior 为 1，旋转和 gripper 通道的 prior 为 0.001；$w_{\mathrm{data}}\in[0.25,1]$ 反映数据集整体质量，$w_{\mathrm{step}}$ 根据局部速度和 jerk 超过数据集 95th percentile 的程度衰减。&lt;/p&gt;
&lt;p&gt;$$
\mathcal L_{\mathrm{haux}}=
\mathbb E_{s,\boldsymbol\epsilon}\frac1Z
\sum_{t,j}M_{t,j}W_{t,j}
\operatorname{Huber}&lt;em&gt;\beta\left(
\hat v&lt;/em&gt;\theta(\mathbf a_s,s)&lt;em&gt;{t,j}-(\tilde{\mathbf a}-\boldsymbol\epsilon)&lt;/em&gt;{t,j}
\right),
$$&lt;/p&gt;
&lt;p&gt;其中 $Z=\sum_{t,j}M_{t,j}W_{t,j}$，最终目标是：&lt;/p&gt;
&lt;p&gt;$$
\mathcal L=\mathcal L_{\mathrm{action}}+\lambda_{\mathrm{haux}}\mathcal L_{\mathrm{haux}},
\qquad \lambda_{\mathrm{haux}}=0.1.
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这组公式体现了一个清晰的风险预算：机器人标签决定主要 vector field，人类标签只在可靠维度、可靠时间片段上施加小幅度的鲁棒约束。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 预训练使用 Qwen3-VL-4B-Instruct 和约 600M 参数的 flow-matching DiT action expert，在 128 张 A800 80GB 上训练 200K steps；AdamW 配合 cosine schedule，VLM learning rate 为 $2\times10^{-5}$，action expert 为 $10^{-4}$，warmup 5K steps。输入图像为 $256\times256$，推理时用 4 个 flow-matching steps 解码。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 推理时，VLM 编码当前 head / wrist 图像和语言，action expert 在 morphology token 条件下用 4 步 flow matching 生成 camera-space action chunk。部署到新机器人时，把输出的 camera-frame pose 用相机外参逆变换回执行 frame：&lt;/p&gt;
&lt;p&gt;$$
\hat p_s=R_{\mathrm{cam}\leftarrow s}^{\top}(\hat p_{\mathrm{cam}}-t_{\mathrm{cam}\leftarrow s}),
\qquad
\hat R_{s,ee}=R_{\mathrm{cam}\leftarrow s}^{\top}\hat R_{\mathrm{cam},ee}.
$$&lt;/p&gt;
&lt;p&gt;6D rotation 先通过 Gram–Schmidt 恢复为完整旋转矩阵，再交给机器人低层控制器。新 embodiment 需要注册 URDF 以取得 morphology token，并提供自己的 camera extrinsic 和 controller。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 论文给出的官方代码地址是 &lt;code&gt;https://github.com/ACERobotics-VLA/ACE-Ego&lt;/code&gt;。在本次写作时，该地址返回 HTTP 404，项目主页也返回 GitHub Pages 404，因此无法访问 model definition、DataLoader、loss 或 checkpoint 文件。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 因为仓库内容不可访问，本文没有把论文附录中的超参数误写成“代码默认值”。可以核对的实现边界只有论文明确给出的配置：Qwen3-VL-4B-Instruct、约 600M DiT、$T^\star=2$ 秒、4 步推理和 $\lambda_{\mathrm{haux}}=0.1$。若代码公开，优先检查 action mask、human source embedding、URDF graph cache 和 reliability weight 是否与论文一致。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-ace-ego-0/data_pipeline.7axwjnm7n1.webp&quot; alt=&quot;ACE-Ego-0 预训练数据处理概览：从视频筛选、手部重建到质量控制（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 评测覆盖两个仿真 benchmark 和一个真实双臂平台：&lt;/p&gt;
&lt;p&gt;| Benchmark             | 设置                                                                           | 评测协议           |
| --------------------- | ------------------------------------------------------------------------------ | ------------------ |
| RoboCasa GR1 TableTop | GR1 humanoid，24 个桌面任务                                                    | 每任务 50 rollouts |
| RoboTwin 2.0          | 双臂，50 个任务，Easy / Hard domain randomization                              | 每任务 100 trials  |
| ARX bimanual          | Pick Tea、Scoop Coffee、Category Sorting、Sweep Cubes、Stack Bowls、Pack Shoes | 每任务 30 trials   |&lt;/p&gt;
&lt;p&gt;预训练池包含约 4.53K 小时机器人 / 仿真 action 和 1.48K 小时人类 pseudo-action。机器人来源包括 AgiBot Alpha/Beta、Galaxea R1Lite、AgiBot DigitalWorld、RoboCasa 和 Galbot；人类来源为 Ego4D、EgoExo4D、EPIC-KITCHENS-100、HOI4D、EgoDex、Xperience-10M。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; ACE-Ego-0 在 RoboCasa 的 24 任务平均成功率为 &lt;strong&gt;72.8%&lt;/strong&gt;，高于 DIAL 70.2%、JoyAI-RA 63.2% 和 ABot-M0 58.3%。在 RoboTwin 2.0 上，Easy 为 &lt;strong&gt;91.12%&lt;/strong&gt;，Hard 为 &lt;strong&gt;90.62%&lt;/strong&gt;，均高于表中对比方法。&lt;/p&gt;
&lt;p&gt;| 方法          | RoboCasa 平均 | RoboTwin Easy | RoboTwin Hard |
| ------------- | ------------: | ------------: | ------------: |
| GR00T-N1.6    |          47.6 |             - |             - |
| FLARE         |          55.0 |             - |             - |
| JoyAI-RA      |          63.2 |         90.48 |         89.28 |
| DIAL          |          70.2 |             - |             - |
| Hy-VLA        |             - |         90.90 |         90.10 |
| &lt;strong&gt;ACE-Ego-0&lt;/strong&gt; |      &lt;strong&gt;72.8&lt;/strong&gt; |     &lt;strong&gt;91.12&lt;/strong&gt; |     &lt;strong&gt;90.62&lt;/strong&gt; |&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-ace-ego-0/real_robot_bar_repro.77ealxt4z8.webp&quot; alt=&quot;ARX 真实双臂任务结果：ACE-Ego-0 与 π0.5、GR00T-N1.7 的比较（论文 Figure 7a）&quot;&gt;&lt;/p&gt;
&lt;p&gt;真实 ARX 平台上，ACE-Ego-0 六任务平均成功率为 &lt;strong&gt;78.3%&lt;/strong&gt;，高于同数据 fine-tune 的 $\pi_{0.5}$（71.7%）和 GR00T-N1.7（35.6%）。Scoop Coffee 上达到 86.7%，而 GR00T-N1.7 为 36.7%；Sweep Cubes 上 GR00T-N1.7 只有 6.7%，说明长轨迹和双臂同步仍是主要差异来源。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-ace-ego-0/ablation_waterfall_repro.83as1e2tgk.webp&quot; alt=&quot;RoboCasa 组件消融：移除 morphology、时间对齐或 reliability-aware loss 的性能下降（论文 Figure 7b）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在 RoboCasa 上逐个移除组件：&lt;/p&gt;
&lt;p&gt;| 配置                              |    成功率 | 相对完整模型 |
| --------------------------------- | --------: | -----------: |
| 完整 ACE-Ego-0                    | &lt;strong&gt;72.8%&lt;/strong&gt; |            - |
| 去掉 morphology token             |     70.9% |         -1.9 |
| 去掉 time-aligned chunking        |     71.7% |         -1.1 |
| 去掉 human auxiliary loss         |     69.2% |         -3.6 |
| Robot only（无人类视频）          |     68.3% |         -4.5 |
| From Qwen（无 embodied pretrain） |     65.4% |         -7.4 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 最大跌幅来自 reliability-aware human auxiliary loss，而不是 representation 模块。这说明将人类视频“纳入训练”本身不是关键，关键是让它以不破坏机器人主目标的方式纳入。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在 data-scarce 的 Sweep Cubes fine-tuning 中，只有 34 条机器人示教时成功率为 10%（1/10）；加入 419 个任务匹配的人类视频 episode 后升至 40%（4/10）。人类轨迹覆盖的凸包面积为 0.296 $\mathrm m^2$，机器人示教只有 0.062 $\mathrm m^2$，扩大约 4.8 倍。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-ace-ego-0/coverage_A_trajectories.szoqcb8hx.webp&quot; alt=&quot;Sweep Cubes 微调数据的动作覆盖：机器人示教、人类视频和叠加分布（论文 Figure 8）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这个实验支持一种更具体的泛化解释：人类视频未必提供精确的 gripper 或 rotation 标签，但可以填补 end-effector position 的行为覆盖空洞，尤其适合下游机器人数据稀缺的场景。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; ACE-Ego-0 的增益可以拆成三个互补来源：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;相机坐标降低学习难度&lt;/strong&gt;：视觉输入和动作输出共享 reference frame，模型不必为每个机器人重新学习 world-to-camera 变换。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;morphology token 提供结构条件&lt;/strong&gt;：相同的末端轨迹，在不同关节链和尺寸下对应不同控制可行性；URDF summary 让 action expert 看到这种差异。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;人类数据扩大行为支持集&lt;/strong&gt;：即使 pseudo-action 有噪声，position trajectory 的覆盖仍比少量机器人示教广；reliability weighting 将它限制在安全的监督维度。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;将 spatial、structural、temporal alignment 放在进入共享 VLA objective 之前完成。&lt;/li&gt;
&lt;li&gt;将 clean robot labels 和 noisy human labels 放进不同 loss path，而不是仅设置一个 dataset id。&lt;/li&gt;
&lt;li&gt;用同一 morphology-token interface 处理 URDF graph 与 human surrogate embedding。&lt;/li&gt;
&lt;li&gt;将大规模 human video 的价值从“模仿人类手指动作”转为“提供可筛选的 embodied behavior coverage”。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 与只做 cross-embodiment action tokenizer 的方法相比，ACE-Ego-0 还显式解决 camera frame 和 physical time；与直接把人类 pseudo-actions 做 behavior cloning 的方法相比，它把监督质量建模进 loss；与只用 latent intent 的 human-video 方法相比，它保留了可投影到机器人控制器的显式位置轨迹。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 方法依赖以下假设：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;head-camera frame 足以作为不同 embodiment 的共同几何接口；&lt;/li&gt;
&lt;li&gt;wrist / hand-centric trajectory 对机器人 end-effector 是有用 proxy；&lt;/li&gt;
&lt;li&gt;position 比 rotation 和 gripper 更容易从第一视角视频可靠恢复；&lt;/li&gt;
&lt;li&gt;embodiment 的结构差异可以由 URDF summary 或 source-level surrogate token 概括；&lt;/li&gt;
&lt;li&gt;2 秒左右的 physical horizon 能在不同数据集间提供可比较的短期控制窗口。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这些假设在桌面操作上合理，但不自动推广到移动操作、全身控制、力觉或高度灵巧手任务。&lt;/p&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 作者指出，当前评测主要集中在 tabletop manipulation；预训练池没有 dexterous hand data，也没有 force / torque sensing。人类 pseudo-action 在 rotation 和 fine-grained finger motion 上的 fidelity 仍有限，因此 reliability-aware objective 目前主要把监督集中到 position。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;代码可复现性受限&lt;/strong&gt;：论文给出的代码仓库和项目页在本次核对时均为 404，训练采样权重、URDF registry、质量阈值 manifest 和真实部署脚本无法独立验证。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;camera-space 不是完全 embodiment-agnostic&lt;/strong&gt;：它仍依赖准确 extrinsic、相机视野和深度尺度；换成移动相机或严重遮挡视角时，统一坐标可能失效。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;human surrogate 过于 source-level&lt;/strong&gt;：一个 embedding 只能表达数据集的平均偏差，无法反映同一数据源内部不同人的体型、相机高度和动作风格。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;质量权重可能放大选择偏差&lt;/strong&gt;：用速度、jerk 和存活率估计可靠性，可能把真实的快速接触动作误判为 reconstruction failure。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;结果仍有长程退化&lt;/strong&gt;：Pack Shoes 等长 horizon 任务上所有模型都明显下降，说明预训练规模并没有消除闭环漂移和阶段切换问题。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 我认为 ACE-Ego-0 给 VLA 数据规模化提供了三个可迁移的设计原则：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;先统一接口，再混合数据&lt;/strong&gt;：坐标、时间、动作维度和 mask 应在 shared backbone 之前标准化，而不是让模型自己猜 dataset convention。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;把标签质量当作一等公民&lt;/strong&gt;：数据集 id 只能告诉模型“来自哪里”，reliability map 才能告诉它“这一维、这一帧到底该信多少”。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;人类视频更适合做 coverage prior&lt;/strong&gt;：在机器人示教很少时，人类视频最有价值的部分可能是 position-level 行为分布和视觉语义，而不是完整的机器人 action imitation。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;后续值得验证的方向包括：用不确定性模型替代手工的 $\rho_j$ 和 jerk 阈值；把 force / tactile reliability 纳入同一 objective；让 human morphology 从单一 source token 变成由视觉估计的连续条件；以及测试 camera-space interface 在 mobile manipulation 和 whole-body humanoid control 中是否仍然成立。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/62258773_p0_master1200.7zr0vfh0rf.webp"/><enclosure url="https://pic.hana0721.top/62258773_p0_master1200.7zr0vfh0rf.webp"/></item><item><title>X-VLA 论文精读：用 Soft Prompt 统一跨本体 Vision-Language-Action 学习</title><link>https://agusexp25.top/blog/paper-deep-dive-x-vla</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-x-vla</guid><description>精读 X-VLA：通过 embodiment-specific Soft Prompt、统一 EE6D 动作空间与 Flow Matching，在异构机器人数据上稳定预训练并高效适配新本体。</description><pubDate>Mon, 24 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; X-VLA（Cross-Embodiment VLA）针对一个很现实的瓶颈：机器人数据越多，硬件、相机、控制接口和采集流程越不一致，直接把数据混在一起训练反而会造成梯度冲突与训练不稳定。论文把每个数据源的硬件配置视为一个隐含任务，为其分配可学习的 &lt;code&gt;Soft Prompt&lt;/code&gt;，并将这些 prompt 在多模态 token 早期注入共享 Transformer。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-x-vla/intro_small.54yhv9zq5y.webp&quot; alt=&quot;X-VLA 总览：Soft Prompt、可扩展预训练与跨本体适配（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; X-VLA 的关键不是再增加一个复杂 decoder，而是让模型在“看到相同图像和指令”之前，先知道这条数据来自哪种 embodiment；这样共享 backbone 学通用策略，少量 domain-specific 参数负责解释硬件差异。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;提出面向异构机器人数据的 &lt;code&gt;Soft Prompt&lt;/code&gt;：每个数据源有一组 learnable embeddings，在动作生成早期提供 embodiment-aware 条件。&lt;/li&gt;
&lt;li&gt;设计只由标准 self-attention Transformer 组成的 Flow-Matching VLA，配合分离的高维视觉语言流与低维本体感知—动作流。&lt;/li&gt;
&lt;li&gt;给出完整的数据与训练 recipe：EE6D 动作对齐、意图抽象、平衡采样、两阶段 domain adaptation 和较小学习率保护预训练视觉语言表示。&lt;/li&gt;
&lt;li&gt;X-VLA-0.9B 在 6 个仿真 benchmark、3 个真实机器人上评估；论文报告其在多数 benchmark 达到 SOTA，并可用约 1% 参数进行 PEFT 适配。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方仓库同时提供 Hugging Face checkpoint、FastAPI inference server、数据域注册表和 LoRA 训练脚本；项目页还给出 LeRobot 集成入口。&lt;/p&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; VLA 通常从大规模 VLM 初始化，再用机器人示教做行为克隆。问题在于，异构数据的差异不只存在于 action head：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;机械臂的自由度、控制频率和运动学不同，导致相同数值的 action 可能有不同物理含义；&lt;/li&gt;
&lt;li&gt;主视角、腕部相机数量和画面域不同，视觉 token 的语义分布发生偏移；&lt;/li&gt;
&lt;li&gt;任务分布与采集策略不同，数据量较大的域容易主导训练。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;已有做法主要在输出端放 domain-specific action projection，或在输入端使用 HPT-style projection、手写语言描述。&lt;strong&gt;【Paper】&lt;/strong&gt; 论文认为输出端条件太晚，HPT projection 可能破坏预训练 VLM 特征，而语言 prompt 依赖可扩展性较差的人工描述。Soft Prompt 将域信息变成少量连续参数，不要求人为定义硬件文本，也不需要复制整套 backbone。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这使 X-VLA 与普通 multi-task VLA 的区别落在“条件注入位置”：它不是只在最后把动作维度映射回各自空间，而是在多模态融合前后都保留 domain signal，让视觉、proprioception 和 noisy action 的交互都能被本体条件调制。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 给定来自 $H$ 个硬件配置的数据集混合：&lt;/p&gt;
&lt;p&gt;$$
\mathcal D^H={\mathcal D_i}_{i=1}^{H},\qquad h_i\in\mathcal H,
$$&lt;/p&gt;
&lt;p&gt;每个样本包含多视角图像 $\mathrm{Img}$、语言指令 $L$、本体状态 $R$ 和专家动作块 $A$。模型需要学习一个共享策略 $\pi_\theta(A\mid \mathrm{Img},L,R,h_i)$，并在新的 $h_{\mathrm{new}}$ 上快速适配。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; X-VLA-0.9B 的预训练混合包含 Droid、RoboMind 和 AGIBOT 的约 290K episodes，覆盖 7 个数据源、5 类机械臂，既有单臂也有双臂设置。动作统一为端执行器 EE6D：位置 xyz、Rotate6D 姿态以及夹爪状态；双臂向量的最大维度为 20。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 当前仓库的默认配置为 &lt;code&gt;num_actions=30&lt;/code&gt;、&lt;code&gt;action_mode=&apos;ee6d&apos;&lt;/code&gt;、&lt;code&gt;max_action_dim=20&lt;/code&gt;，即每次输出未来 30 个 action tokens。&lt;code&gt;XVLAProcessor&lt;/code&gt; 期望最多 3 个图像视角，缺失视角用零填充并由 &lt;code&gt;image_mask&lt;/code&gt; 标记。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-x-vla/archi.8okfl32fwx.webp&quot; alt=&quot;X-VLA 详细架构：Florence 编码器、动作流和 Soft Prompt 共同进入 Transformer（论文 Figure 1 中的 architecture）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 数据流可以概括为：主视角图像与语言经预训练 Florence-Large 编码，辅助腕部视角经共享视觉编码器编码；noisy action、proprioception 和 flow-matching 时间 $t$ 经过动作投影后，与对应 domain 的 Soft Prompt 一起送入标准 Transformer，最后只读取动作 token 并解码为 EE6D action chunk。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;Soft Prompt Library&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：离散 &lt;code&gt;domain_id&lt;/code&gt;，代表数据源或目标 embodiment。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：$K$ 个 hidden-size 的 learnable tokens $P_{h_i}\in\mathbb R^{K\times d}$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;作用&lt;/strong&gt;：把硬件、相机与数据采集差异压缩成可优化的连续条件，和所有模态 token 一起参与 self-attention。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要&lt;/strong&gt;：如果只在 output head 区分域，主干在早期仍需用同一套表示解释不同物理语义；prompt 让域信息在推理前就可见。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;SoftPromptedTransformer&lt;/code&gt; 使用 &lt;code&gt;nn.Embedding(num_domains, len_soft_prompts * hidden_size)&lt;/code&gt; 存储 prompt；前向时按照 &lt;code&gt;domain_id&lt;/code&gt; reshape 成 &lt;code&gt;[B, K, H]&lt;/code&gt;，拼接到视觉、动作序列末尾。默认配置为 32 个 prompt tokens、1024 hidden size、24 个 Transformer blocks。&lt;/p&gt;
&lt;h4&gt;高维 observation stream&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 主视角和指令进入 Florence-Large 的 encoder；额外视角只复用 vision encoder，不经过完整语言模型。这样固定视角承担任务级语义，腕部相机保留精细接触线索，同时避免当前 VLM 对多视角输入处理能力不足。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;forward_vlm&lt;/code&gt; 将有效图像展平后调用 &lt;code&gt;_encode_image&lt;/code&gt;，第一个视角与 &lt;code&gt;input_ids&lt;/code&gt; 合并进入 Florence encoder，其余视角展平为 &lt;code&gt;aux_visual_inputs&lt;/code&gt;。&lt;code&gt;XVLAProcessor&lt;/code&gt; 用 &lt;code&gt;image_mask&lt;/code&gt; 支持不同样本拥有不同数量的相机。&lt;/p&gt;
&lt;h4&gt;低维 proprioception—action stream&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 对每个时间步，将 noisy action $A_t$、重复后的本体状态 $R_t$ 和时间 embedding $T(t)$ 拼接，再经轻量线性层投影到 Transformer hidden space。动作和 proprioception 的物理语义接近，因此在 flow-matching 分支中进行早期融合。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;action_encoder&lt;/code&gt; 是按 domain 条件化的 &lt;code&gt;DomainAwareLinear&lt;/code&gt;，输入维度为 &lt;code&gt;dim_action + dim_time + dim_propio&lt;/code&gt;；&lt;code&gt;timestep_embedding&lt;/code&gt; 产生正弦时间特征。Transformer 输出后只截取最前面的动作 token，再由按域的 &lt;code&gt;action_decoder&lt;/code&gt; 投影回 20 维 EE6D。&lt;/p&gt;
&lt;h4&gt;EE6D Action Space&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 位置和 Rotate6D 使用 MSE，夹爪使用 BCE；位置、姿态与夹爪的损失权重分别强调不同物理量，避免直接混合不同尺度的原始控制接口。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;EE6DActionSpace&lt;/code&gt; 将夹爪索引设为 9 和 19，位置索引为 0–2、10–12，Rotate6D 索引为 3–8、13–18。训练时会把夹爪通道从 proprio/action 中置零，推理后对夹爪 logits 使用 sigmoid；仓库还保留 &lt;code&gt;joint&lt;/code&gt;、&lt;code&gt;agibot_ee6d&lt;/code&gt; 和 &lt;code&gt;auto&lt;/code&gt; 等 action-space 实现。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;Soft Prompt 参数化&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 对每个数据源学习：&lt;/p&gt;
&lt;p&gt;$$
P_H={p_i}_{i=1}^{H},\qquad p_i\approx\Phi(h_i),
$$&lt;/p&gt;
&lt;p&gt;其中 $h_i$ 是硬件配置，$\Phi$ 是没有预先定义的潜在映射，$p_i$ 是训练得到的 prompt。这里的“约等于”表示 prompt 不需要重建完整硬件参数，只需成为能帮助策略解释该域的表示。&lt;/p&gt;
&lt;h4&gt;Flow Matching 目标&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 从高斯噪声 $A_0\sim\mathcal N(0,I)$ 到专家动作块 $A$ 构造线性路径：&lt;/p&gt;
&lt;p&gt;$$
A_t=(1-t)A_0+tA,\qquad t\sim\mathcal U(0,1).
$$&lt;/p&gt;
&lt;p&gt;策略预测速度场 $v_\theta(A_t,o,t)$，训练目标为：&lt;/p&gt;
&lt;p&gt;$$
\mathcal L_{\mathrm{FM}}=\mathbb E\left[\left|v_\theta(A_t,o,t)-(A-A_0)\right|_2^2\right].
$$&lt;/p&gt;
&lt;p&gt;$A_t$ 是当前噪声动作，$o$ 包含视觉、语言和 proprioception，$A-A_0$ 是最优传输路径的目标速度。&lt;strong&gt;【Analysis】&lt;/strong&gt; 因此模型并非一次回归最终轨迹，而是在推理时沿时间方向逐步把噪声搬运到可执行 action chunk。&lt;/p&gt;
&lt;h4&gt;端执行器损失&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 在默认 &lt;code&gt;ee6d&lt;/code&gt; 实现中，位置损失为两臂 xyz 的 MSE 之和乘以 500，Rotate6D 损失乘以 10，两个夹爪的 BCE 平均后再求和。论文只概括了 MSE/BCE 的组成，具体权重来自官方代码，因此单独标为 &lt;code&gt;【Code】&lt;/code&gt;。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 预训练阶段联合优化共享 backbone $\pi_\theta$ 与所有数据源的 Soft Prompt，recipe 包含三点：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;将示教动作对齐为 EE6D，减少不同控制接口的物理语义错位；&lt;/li&gt;
&lt;li&gt;将未来 4 秒轨迹暂时下采样为 30 个 anchor points，先学习高层意图而不是人类示教中的高频抖动；&lt;/li&gt;
&lt;li&gt;同时跨域、跨轨迹打乱并按权重采样，避免 AGIBOT 等大数据源支配梯度。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文报告 X-VLA-0.9B 使用 64 张 A100、global batch size 1024、约 4 天训练，AdamW 的 $\beta=(0.9,0.95)$、学习率 $10^{-4}$、weight decay 0.01、200K iterations，混合精度为 bfloat16。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;train.py&lt;/code&gt; 将 VLM 与 Transformer core 的初始学习率设为 0，只先更新 Soft Prompt 和 action heads；达到 &lt;code&gt;freeze_steps=1000&lt;/code&gt; 后再打开其余参数，可选 cosine decay。该实现与论文所述“降低视觉语言模块与 prompt 学习率、保护预训练表示”的目的相符，但仓库默认参数仍需按具体 checkpoint/数据配置调整。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 对新 embodiment，论文提出两阶段适配：先冻结预训练 backbone，只 warm-up 新的 prompt；再解冻并联合微调 policy。这样新 prompt 先对齐到已有 embodiment-agnostic 表示，再让整个策略做小幅域内专化。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;generate_actions&lt;/code&gt; 默认执行 10 次迭代去噪；&lt;code&gt;deploy.py&lt;/code&gt; 将模型封装为 FastAPI &lt;code&gt;/act&lt;/code&gt; 服务，请求字段包括 &lt;code&gt;proprio&lt;/code&gt;、&lt;code&gt;language_instruction&lt;/code&gt;、最多三个图像、&lt;code&gt;domain_id&lt;/code&gt; 和 &lt;code&gt;steps&lt;/code&gt;。服务端返回 30 个动作。README 明确提示：HF 格式转换后不同数据集可能出现约 1% 的性能下降，说明发布格式也是复现实验时的变量。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;| 论文概念 | 官方代码位置 | 对照结论 |
| --- | --- | --- |
| VLM encoder | &lt;code&gt;models/modeling_xvla.py&lt;/code&gt;、&lt;code&gt;models/modeling_florence2.py&lt;/code&gt; | 使用 Florence2 encoder-only 路径，删除语言 decoder 与 lm head。 |
| Soft Prompt | &lt;code&gt;models/transformer.py&lt;/code&gt; 的 &lt;code&gt;soft_prompt_hub&lt;/code&gt; | 每个 domain 一行 embedding，前向 reshape 为 prompt token 序列。 |
| Domain-specific projection | &lt;code&gt;DomainAwareLinear&lt;/code&gt;、&lt;code&gt;action_encoder/decoder&lt;/code&gt; | action/proprio 输入和输出投影按 domain 取独立权重。 |
| 多视角输入 | &lt;code&gt;models/processing_xvla.py&lt;/code&gt; | 最多 3 视角；不足时零填充并记录 mask。 |
| Flow Matching | &lt;code&gt;XVLA.forward&lt;/code&gt; 与 &lt;code&gt;generate_actions&lt;/code&gt; | 训练采样随机 $t$ 并构造 noisy action，推理线性迭代去噪。 |
| PEFT | &lt;code&gt;peft_train.py&lt;/code&gt; | LoRA target 为 &lt;code&gt;all-linear&lt;/code&gt;，并保存 prompt、action encoder/decoder。 |
| 部署 | &lt;code&gt;deploy.py&lt;/code&gt;、&lt;code&gt;XVLA.run&lt;/code&gt; | FastAPI 服务支持本地、SLURM 与远程 client。 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 论文把 Soft Prompt 描述为主要新增参数，但代码还为 action encoder/decoder 保留按域的 &lt;code&gt;DomainAwareLinear&lt;/code&gt;；因此实际模型的 domain-specific capacity 不只来自 prompt。论文附录称这些未共享参数约占总参数 0.04%，阅读代码时应把两者合并理解。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-x-vla/all_setup.67y765vjv8.webp&quot; alt=&quot;X-VLA 评测设置：跨本体、跨环境、跨任务与真实机器人（论文 Figure 6）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 仿真评测覆盖 Simpler-WidowX、Simpler-Franka、NAVSIM、LIBERO、RoboTwin-2.0、Calvin 和 VLABench 等设置；真实评测覆盖 WidowX 简单操作、Agilex 双臂布料折叠以及 AIRBOT 的 PEFT 适配。预训练 validation 使用 AGIBOT-beta 中未参与训练的 189 个任务、每任务 3 条轨迹，主要指标是动作预测的平均 $\ell_1$ error。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-x-vla/all_bench.6m4mx13unv.webp&quot; alt=&quot;仿真 benchmark 汇总结果（论文 Figure 6 / Table 2）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 表 2 报告 X-VLA-0.9B（0.9B）在 Simpler VM/VA 上为 80.4/75.7，在 Simpler-WidowX 为 95.8，在 LIBERO 四类任务的平均为 97.6，在 RoboTwin-2.0 为 98.1，在 Calvin 为 4.43，在 VLABench 为 51.1，NAVSIM PDMS 为 87.3。论文据此声称在 6 个仿真 benchmark 中多数取得新的 SOTA。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 真实实验中，X-VLA 在五个任务上超过对比方法；Soft-Fold 布料折叠使用 1,200 条示教，报告接近 100% 成功率与每小时 33 次折叠（约每件两分钟以内）。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-x-vla/real_exp.4xv9zudkty.webp&quot; alt=&quot;真实机器人结果：WidowX、Agilex 与 AIRBOT（论文 Figure 7）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-x-vla/softfold.1zizwc5bgt.webp&quot; alt=&quot;Soft-Fold 双臂布料折叠任务与数据采集流程（论文 Appendix Figure）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方 README 发布的 checkpoint 数字与论文略有更新，例如 X-VLA-Libero 标为 98.1%，Simpler-WidowX 为 95.8%，不同于论文表格中的 98.1/95.8 组合。复现时应以具体 checkpoint、评测脚本和版本为准。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 表 1 给出了从 baseline 到完整 X-VLA 的累积路径：仅自定义学习率时 Simpler-WidowX 适配率为 39.6%；直接异构预训练反而降到 25.0%；加入 action alignment、intention abstraction 和 balanced sampling 后达到 50.0%；替换为标准 Transformer encoding pipeline 后为 64.6；加入 Soft Prompt 为 73.8；扩大模型后为 89.6；两阶段 adaptation 最终为 95.8。验证误差从 0.11 逐步降至 0.032。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这条 ablation path 很重要：Soft Prompt 的收益建立在动作对齐和数据 recipe 已经稳定的基础上；如果把“异构数据直接混训”当成唯一改动，结果会变差，不能把最终提升全部归因于 prompt。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-x-vla/tsne.4qs24erflk.webp&quot; alt=&quot;Soft Prompt 的 t-SNE：相似硬件配置形成结构化簇（论文 Figure 8）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; t-SNE 显示不同数据源的 prompt 形成与硬件配置对应的簇；两个只改变主视角的 Franka 设置部分混合，说明 prompt 不只是机械地记住 dataset id。对未在预训练出现的 WidowX，使用预训练的相近单臂 prompt 能在早期带来迁移收益，但最终仍需要适配。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-x-vla/scaling.4ubo24ki69.webp&quot; alt=&quot;模型规模、数据多样性和数据量的 scaling trend（论文 Figure 5）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在模型容量、数据多样性和数据量三个轴上，validation prediction error 都持续下降，最大测试配置（0.9B、290K episodes、7 sources）仍未观察到明显饱和。论文报告 prediction error 与下游适配率强相关，因此将其作为预训练阶段的 proxy。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; PEFT 只调约 9M 参数（约完整模型的 1%）时，LIBERO 达到 93%，Simpler-WidowX 达到 54%，与全量微调的强基线相近。&lt;strong&gt;【Analysis】&lt;/strong&gt; 这说明预训练 backbone 可能已学到可迁移的 embodiment-agnostic 表示，但并不等价于对任意新机器人零样本工作。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; Soft Prompt 同时解决了“共享知识”和“域差异”两个相反目标：共享 Transformer 负责跨数据源复用视觉语言和动作规律，prompt 则提供低容量的条件通道，让注意力在早期区分不同 proprioception 语义与相机域。相比复制完整 expert，prompt 的参数成本近似随域数线性增长、与 backbone 深度无关。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; Flow Matching 还把动作学习改成连续 transport 问题。模型在训练时看到不同噪声水平，推理时逐步修正整段 action chunk；这比单步回归更适合多模态、长时域的操作轨迹，也让同一套 Transformer 能处理不同 action horizon。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 将 NLP 中的 Soft Prompt 迁移到 cross-embodiment robot learning，并把 prompt 放到多模态 action generation 的早期阶段。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 用“主视角 VLM + 辅助视角视觉 encoder + 低维 action/proprio stream”的简化 pipeline 替代复杂的专用 DiT/MLP-Mixer 组合。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 把动作空间对齐、意图抽象、平衡采样、两阶段适配组合成可扩展 recipe，而不是只报告一个孤立模块。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;| 路线 | 域信息注入位置 | 需要人工描述 | 对视觉/本体差异的覆盖 |
| --- | --- | --- | --- |
| Domain-specific action head | 输出端 | 否 | 主要覆盖 action space |
| HPT-style projection | observation 中间层 | 否 | 可能改变 VLM 特征分布 |
| Language prompt | 输入文本 | 是 | 依赖硬件描述质量 |
| X-VLA Soft Prompt | 多模态 token 融合早期 | 否 | 同时影响视觉、proprioception 与动作生成 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; X-VLA 的本质差异是把 embodiment 当作“可学习任务条件”，而不是把它当成最后一层的输出格式转换器。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 方法隐含或明确依赖以下假设：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;同一数据源的硬件与采集配置在训练中相对稳定，可以由一个 prompt 表示；&lt;/li&gt;
&lt;li&gt;EE6D 能够提供跨机械臂足够一致的动作语义；&lt;/li&gt;
&lt;li&gt;预训练 VLM 的视觉语言知识值得保留，动作学习应通过较小学习率进行接地；&lt;/li&gt;
&lt;li&gt;预训练覆盖的 embodiment 足够多，新的 embodiment 能从已有 prompt 或 backbone 中获得相似性迁移。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 如果新机器人与所有已见平台在相机、动力学和动作控制接口上都很远，单个 prompt 可能不足以补偿系统差异，仍需要较多示教或更强的 action representation。&lt;/p&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 附录 N 明确指出，X-VLA-0.9B 的规模仍小于语言和视觉语言领域的大型 foundation model，主要受计算资源与高质量机器人数据稀缺限制。当前机器人语料的规模、多样性仍远低于 web-scale 语料；扩大 backbone、换用更强 VLM、收集更广泛数据，以及研究 VLA scaling law 是后续方向。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; Prompt 是按 &lt;code&gt;domain_id&lt;/code&gt; 查表的离散 embedding。代码中新域必须先分配 id，无法自然处理连续变化的相机位姿或逐渐变化的机械磨损。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 官方代码默认最多 3 个视角，且第一个视角必须进入 VLM；更多相机需要改 processor、序列长度和显存预算。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; Flow-Matching 推理默认 10 次迭代，每一步都运行 Transformer；在真实机器人控制频率较高时，延迟和 action chunk 执行策略仍是部署瓶颈。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Code】&lt;/strong&gt; README 提到 HF 格式转换后可能有约 1% 性能下降，说明权重转换、预处理与评测脚本的一致性会影响复现。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 论文的主结果集中在作者选定的 benchmark 与特定 action normalization 上，尚不足以证明 Soft Prompt 对完全未知的自由形态机器人、低资源视觉域或长时间在线纠错同样有效。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; X-VLA 给出的一个可迁移设计原则是：当多域数据的共享规律已经足够强时，优先增加“条件化表示”而不是复制模型。对后续 VLA，可以继续探索：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;用硬件参数、相机标定或 proprioception 统计量生成 prompt，替代离散 domain lookup；&lt;/li&gt;
&lt;li&gt;让 prompt 检索变成连续的 mixture-of-prompts，以覆盖未见 embodiment；&lt;/li&gt;
&lt;li&gt;将 Soft Prompt 与 action tokenizer、latent action 或 diffusion/flow policy 结合，比较不同动作表示对跨本体迁移的影响；&lt;/li&gt;
&lt;li&gt;在训练阶段显式加入 prompt dropout、域插值和在线校准，测试模型是否能在没有新域标签的情况下自适应；&lt;/li&gt;
&lt;li&gt;把论文的 validation error—adaptation success 相关性扩展成真正可预测的 scaling law。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 最值得复用的并不是“给每个域加 32 个 token”这一具体超参数，而是把 embodiment 差异提升到策略表示层：让模型知道动作的物理上下文，再让共享 backbone 学习可复用的控制规律。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/104786218_p0_master1200.8vnievbkwk.webp"/><enclosure url="https://pic.hana0721.top/104786218_p0_master1200.8vnievbkwk.webp"/></item><item><title>SmolVLA 论文精读：面向低成本机器人的高效 Vision-Language-Action 模型</title><link>https://agusexp25.top/blog/paper-deep-dive-smolvla</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-smolvla</guid><description>精读 SmolVLA：用 450M 参数的 SmolVLM、轻量 Flow Matching Action Expert 与异步推理解耦，让 VLA 可在单 GPU 训练并部署到消费级硬件。</description><pubDate>Mon, 24 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; SmolVLA 不是把一个大 VLA 再压缩一点，而是重新划分计算职责：小型 VLM 负责“看懂图像、语言和机器人状态”，独立的 Action Expert 负责“生成连续动作块”，再用异步执行栈把低功耗机器人上的控制循环从昂贵的策略推理中解耦出来。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-smolvla/smolvla-architecture.webp&quot; alt=&quot;SmolVLA architecture from paper Figure 1&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文报告的主模型约 450M 参数，预训练使用 481 个 community datasets、约 22.9K episodes 和 10.6M frames；模型可在单 GPU 训练，推理目标是消费级 GPU 甚至 CPU。仿真和真实机器人结果显示，它可以与参数量约 7–10 倍的 VLA 竞争。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;轻量 VLA 架构&lt;/strong&gt;：以 SmolVLM-2 为感知骨干，只保留前 16 个语言层，去掉高成本的 image tiling，并将每帧视觉 token 压到 64 个。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Flow Matching Action Expert&lt;/strong&gt;：把动作块作为连续随机变量建模，交替使用 Cross-Attention（读取 VLM 特征）与 causal Self-Attention（建模动作块内部依赖）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Community-driven pretraining&lt;/strong&gt;：从 Hugging Face 社区数据中筛选 481 个数据集，并用 Qwen2.5-VL-3B-Instruct 修复模糊任务描述、统一相机视角命名。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Asynchronous inference&lt;/strong&gt;：RobotClient 持续执行已有 action queue，PolicyServer 在后台预测新 action chunk，避免同步推理时的空转等待。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方实现已经并入 LeRobot：&lt;code&gt;SmolVLAPolicy&lt;/code&gt; 负责队列、预处理和训练接口，&lt;code&gt;VLAFlowMatching&lt;/code&gt; 实现 flow matching 训练与 Euler 采样，&lt;code&gt;SmolVLMWithExpertModel&lt;/code&gt; 组装 VLM 与 Action Expert；&lt;code&gt;lerobot.async_inference&lt;/code&gt; 提供 client/server 通信栈。&lt;/p&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 现有 VLA 的主要瓶颈不是“是否能理解语言”，而是模型太大、训练成本太高、推理延迟太高。π₀、OpenVLA 等模型通常依赖数十亿参数和规模较大的机器人数据集，普通研究者很难在自己的低成本机械臂上复现或微调。&lt;/p&gt;
&lt;p&gt;SmolVLA 试图同时解决三个互相关联的问题：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;模型规模&lt;/strong&gt;：完整 VLM 的最后几层未必对控制最有用，但它们会增加每次推理的延迟。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;动作建模&lt;/strong&gt;：单步回归容易产生抖动，也难以表达一段动作中的多峰分布；动作块和 Flow Matching 更适合生成连续轨迹。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;运行时瓶颈&lt;/strong&gt;：即使模型本身较小，只要执行线程等待下一段 action chunk，机器人仍会出现 idle gap。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这使 SmolVLA 的重点从“扩张 backbone”转移到“压缩每次决策的有效计算”：视觉 token 更少、语言层更浅、Action Expert 更窄、动作一次生成一段，并让预测线程与执行线程并行。&lt;/p&gt;
&lt;p&gt;与 ACT、Diffusion Policy 的区别在于，SmolVLA 保留了预训练 VLM 的语言与视觉知识；与 π₀ 的区别在于，它使用更小的 SmolVLM-2，并将 Action Expert 从 VLM 中拆出来；与只用 Cross-Attention 的方案相比，它在 Expert 内显式加入 causal Self-Attention 来平滑动作块。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 给定机器人在时刻 $t$ 的多视角 RGB 观测、sensorimotor state 和语言指令，策略需要输出长度为 $n$ 的连续动作块：&lt;/p&gt;
&lt;p&gt;$$
\pi_\theta(o_t, l_t, s_t) = A_t = (a_t, a_{t+1}, \ldots, a_{t+n-1}).
$$&lt;/p&gt;
&lt;p&gt;其中：&lt;/p&gt;
&lt;p&gt;| 变量 | 含义 |
| --- | --- |
| $o_t$ | 一个或多个 RGB camera 的当前观测 |
| $l_t$ | 任务语言，如 “pick up the cube and place it in the box” |
| $s_t$ | 关节、夹爪等 sensorimotor state |
| $A_t$ | 连续动作 chunk，而非离散 action token |
| $n$ | chunk size；论文主设置为 50 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 预训练数据涵盖低成本 SO100/SO101 等社区机器人数据，评测包含 LIBERO、Meta-World 以及 SO100/SO101 真实任务。动作维度随 embodiment 改变，因此模型必须通过 state/action projector 处理不同输入输出维度。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;SmolVLAConfig&lt;/code&gt; 默认 &lt;code&gt;chunk_size=50&lt;/code&gt;、&lt;code&gt;n_action_steps=50&lt;/code&gt;、&lt;code&gt;max_state_dim=32&lt;/code&gt;、&lt;code&gt;max_action_dim=32&lt;/code&gt;；较短的状态和动作会 padding，策略输出后再裁剪回目标机器人的原始维度。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; SmolVLA 的数据流是：RGB images + language + state → SmolVLM-2 prefix features → Flow Matching Action Expert → $n$ 个连续低层动作。VLM 只提供条件特征，动作生成由独立的 Expert 完成。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;VLAFlowMatching.embed_prefix()&lt;/code&gt; 依次编码图像、语言和 state token；&lt;code&gt;embed_suffix()&lt;/code&gt; 将带噪 action chunk 与时间步编码；两者拼接后进入 &lt;code&gt;SmolVLMWithExpertModel.forward()&lt;/code&gt;。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;SmolVLM-2 感知骨干&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：全局 RGB 图像、语言 token、经过线性投影的 state token。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：用于条件化 Action Expert 的 VLM hidden features。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;视觉压缩&lt;/strong&gt;：论文不使用 SmolVLM-2 的 image tiling，只保留 global image，并通过 pixel shuffle 将每帧视觉 token 控制为 64 个。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;层截断&lt;/strong&gt;：完整语言模型有 $L$ 层，SmolVLA 只使用前 $N=L/2$ 层；论文主实验与代码默认是 &lt;code&gt;num_vlm_layers=16&lt;/code&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 层截断不是简单地把模型换成更小的 VLM：它保留了原始 VLM 的宽度和预训练表征，只跳过被认为对动作条件化贡献较小的后半段计算。&lt;/p&gt;
&lt;h4&gt;State、Action 与 Feature Projector&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;state_proj&lt;/code&gt; 将最多 32 维 state 映射到 VLM 的 hidden size；&lt;code&gt;action_in_proj&lt;/code&gt; 将 noisy actions 映射到 Expert hidden size；&lt;code&gt;action_out_proj&lt;/code&gt; 再把 Expert 输出映射回最多 32 维的连续动作。&lt;code&gt;prepare_images()&lt;/code&gt; 负责 resize-with-padding，并把 ([0,1]) 归一化到 SigLIP 使用的 ([-1,1])。&lt;/p&gt;
&lt;h4&gt;Flow Matching Action Expert&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：VLM prefix features、带噪动作 $A_t^\tau$ 和时间步 $\tau$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：动作空间中的 vector field $v_\theta(A_t^\tau, o_t)$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;结构&lt;/strong&gt;：Transformer blocks 交替执行 Cross-Attention 和 causal Self-Attention；Cross-Attention 读取冻结 VLM 的 key/value，Self-Attention 只让动作 token 看见过去 token。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;容量&lt;/strong&gt;：Expert hidden size 是 VLM hidden size 的 0.75 倍；代码默认 &lt;code&gt;expert_width_multiplier=0.75&lt;/code&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 作者观察到，Self-Attention 让动作 chunk 更平滑，而 Cross-Attention 负责把动作锚定在视觉与语言条件上。两者交替比只使用一种注意力机制有更高的 LIBERO 成功率。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;Flow Matching 训练目标&lt;/h4&gt;
&lt;p&gt;论文使用线性 probability path：&lt;/p&gt;
&lt;p&gt;$$
A_t^\tau = \tau A_t + (1-\tau)\epsilon, \qquad \epsilon \sim \mathcal{N}(0, I).
$$&lt;/p&gt;
&lt;p&gt;目标 vector field 为：&lt;/p&gt;
&lt;p&gt;$$
u(A_t^\tau \mid A_t)=\epsilon-A_t.
$$&lt;/p&gt;
&lt;p&gt;因此 Action Expert 的损失是：&lt;/p&gt;
&lt;p&gt;$$
\mathcal{L}^{\tau}(\theta)=
\mathbb{E}\left[
\left|v_\theta(A_t^\tau, o_t)-u(A_t^\tau\mid A_t)\right|_2^2
\right].
$$&lt;/p&gt;
&lt;p&gt;其中 $A_t$ 是示教动作块，$\epsilon$ 是高斯噪声，$\tau$ 是从 Beta 分布采样的时间变量。模型学习的是从噪声流向真实动作块的速度场，而不是直接回归单一均值。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;VLAFlowMatching.forward()&lt;/code&gt; 生成 &lt;code&gt;noise&lt;/code&gt;、&lt;code&gt;time&lt;/code&gt;、&lt;code&gt;x_t&lt;/code&gt; 和 &lt;code&gt;u_t&lt;/code&gt;，再通过 &lt;code&gt;F.mse_loss(u_t, v_t, reduction=&apos;none&apos;)&lt;/code&gt; 计算逐时间步、逐动作维度的损失；默认采样使用 &lt;code&gt;num_steps=10&lt;/code&gt; 的 Euler integration。&lt;/p&gt;
&lt;h4&gt;异步队列阈值&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 设 action chunk 长度为 $n$，控制周期为 $\Delta t$，服务器推理延迟为 $\ell_S$，当队列剩余比例低于阈值 $g$ 时触发下一次预测。为了避免队列耗尽，论文给出近似条件：&lt;/p&gt;
&lt;p&gt;$$
g \geq \frac{\mathbb{E}[\ell_S]/\Delta t}{n}.
$$&lt;/p&gt;
&lt;p&gt;这个公式揭示了一个直接权衡：增大 $g$ 会更早触发预测、减少 idle，但也会提高服务器计算负担；减小 $g$ 节省计算，却更容易在新 chunk 返回前耗尽旧队列。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 训练分为两类：预训练在社区数据上学习通用动作先验，随后在目标机器人数据上进行 imitation-learning fine-tuning。预训练使用 200,000 steps、global batch size 256、AdamW、初始 learning rate $10^{-4}$，100-step warmup 后使用 cosine decay，最低学习率为 $2.5\times10^{-6}$。图片 resize 到 $512\times512$，动作块长度为 50。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 预训练集合包含 481 个社区数据集、22.9K episodes 和 10.6M frames。作者用 Qwen2.5-VL-3B-Instruct 从代表性帧和原始描述生成简洁的动作型任务句子，并人工把 camera 映射为 &lt;code&gt;OBS_IMAGE_1/2/3&lt;/code&gt;，减少不同数据集的视角顺序漂移。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 默认 &lt;code&gt;train_expert_only=True&lt;/code&gt;、&lt;code&gt;freeze_vision_encoder=True&lt;/code&gt;，因此主要更新 Action Expert、state projector 与 action projector；&lt;code&gt;SmolVLAConfig.get_optimizer_preset()&lt;/code&gt; 使用 AdamW，&lt;code&gt;optimizer_betas=(0.9,0.95)&lt;/code&gt;，并支持 &lt;code&gt;torch.compile()&lt;/code&gt; 与 bfloat16。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 推理时从高斯噪声动作块开始，固定执行 10 个 Euler steps，逐渐把噪声积分到条件动作分布。实时机器人可以同步执行整个 chunk，也可以使用论文提出的异步模式：RobotClient 消费旧队列，PolicyServer 在后台处理新观测，返回后把新旧 chunk 的重叠部分聚合起来。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; LeRobot 的 &lt;code&gt;SmolVLAPolicy.select_action()&lt;/code&gt; 在本地维护 &lt;code&gt;ACTION&lt;/code&gt; deque；&lt;code&gt;predict_action_chunk()&lt;/code&gt; 则直接返回完整 chunk。官方 &lt;code&gt;async_inference&lt;/code&gt; 模块把策略封装为 PolicyServer 和 RobotClient，并通过配置项控制 &lt;code&gt;actions_per_chunk&lt;/code&gt;、队列阈值、观测相似度和通信地址。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;| 论文描述 | 官方代码 | 对照结论 |
| --- | --- | --- |
| SmolVLM-2 感知骨干 | &lt;code&gt;policies/smolvla/smolvlm_with_expert.py&lt;/code&gt; | 从 &lt;code&gt;HuggingFaceTB/SmolVLM2-500M-Video-Instruct&lt;/code&gt; 加载 VLM，并可截断到前 16 层 |
| 交替 CA/SA Expert | &lt;code&gt;SmolVLMWithExpertModel&lt;/code&gt; | &lt;code&gt;self_attn_every_n_layers=2&lt;/code&gt; 时每隔两层插入 Self-Attention，其余层使用 Cross-Attention |
| Flow Matching | &lt;code&gt;modeling_smolvla.py::VLAFlowMatching&lt;/code&gt; | &lt;code&gt;x_t&lt;/code&gt;、&lt;code&gt;u_t&lt;/code&gt;、MSE loss 与 Euler sampling 均有直接实现 |
| 50 步 action chunk | &lt;code&gt;SmolVLAConfig&lt;/code&gt; | &lt;code&gt;chunk_size=50&lt;/code&gt;、&lt;code&gt;n_action_steps=50&lt;/code&gt; |
| 10 步采样 | &lt;code&gt;SmolVLAConfig.num_steps&lt;/code&gt; | 默认值为 10 |
| 异步推理 | &lt;code&gt;async_inference/robot_client.py&lt;/code&gt;、&lt;code&gt;policy_server.py&lt;/code&gt; | client 执行队列，server 后台推理；论文中的接口在官方仓库可运行 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 论文将异步栈描述为“策略创新”，而代码把它抽象成通用 LeRobot runtime：因此不仅 SmolVLA 可以使用这套 client/server，其他支持的策略也能复用相同的异步基础设施。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-smolvla/real-world-tasks.webp&quot; alt=&quot;SmolVLA real-world tasks from paper Figure 2&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 仿真评测使用 LIBERO（Spatial、Object、Goal、Long 四类）和 Meta-World（Easy、Medium、Hard、Very Hard）。真实评测覆盖 SO100 的 pick-place、stacking、sorting，以及未参与预训练的 SO101 Pick-Place-Lego OOD 任务。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 主模型 450M 参数，其中约 100M 属于 Action Expert；只保留 VLM 的前 16 层，chunk size 为 50，flow matching inference steps 为 10。仿真中每执行一个 action 就可更新观测，真实实验则主要采用同步 chunk 执行，并额外比较 async 模式。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; LIBERO 平均成功率如下：&lt;/p&gt;
&lt;p&gt;| Policy | 参数量 | Spatial | Object | Goal | Long | Average |
| --- | ---: | ---: | ---: | ---: | ---: | ---: |
| OpenVLA | 7B | 84.7 | 88.4 | 79.2 | 53.7 | 76.5 |
| π₀（3.3B，预训练） | 3.3B | 90 | 86 | 95 | 73 | 86.0 |
| SmolVLA（0.45B） | 0.45B | 90 | 96 | 92 | 71 | 87.3 |
| SmolVLA（2.25B） | 2.25B | 93 | 94 | 91 | 77 | &lt;strong&gt;88.75&lt;/strong&gt; |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 450M SmolVLA 在 LIBERO 平均 87.3%，超过 OpenVLA 的 76.5%，并接近预训练机器人数据的 π₀。2.25B 版本进一步达到 88.75%，说明该结构在增大容量后仍可扩展。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Meta-World 平均成功率中，450M 版本为 57.3%，2.25B 版本为 68.24%；后者超过表中 3.5B π₀ 的 47.9%。论文同时指出，SmolVLA 相比 π₀ 训练速度约快 40%，显存占用约减少 6 倍。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; SO100 真实任务中，ACT 平均 48.3%，π₀ 平均 61.7%，SmolVLA 平均 &lt;strong&gt;78.3%&lt;/strong&gt;；Pick-Place、Stacking、Sorting 分别为 75%、90%、70%。在 SO101 Pick-Place-Lego 上，SmolVLA 的 in-distribution / OOD 成功率为 90% / 50%，高于 ACT 的 70% / 40%。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-smolvla/action-queues.webp&quot; alt=&quot;Action queue evolution in paper Figure 4&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 关键结构消融（LIBERO 平均成功率）：&lt;/p&gt;
&lt;p&gt;| 变量 | 设置 | 平均成功率 |
| --- | --- | ---: |
| 注意力 | CA | 79.0 |
| 注意力 | SA | 74.5 |
| 注意力 | 交替 CA+SA | &lt;strong&gt;85.5&lt;/strong&gt; |
| action mask | Bidirectional | 67.5 |
| action mask | Causal | &lt;strong&gt;74.5&lt;/strong&gt; |
| 训练目标 | L1 Regression | 75.25 |
| 训练目标 | Flow Matching | &lt;strong&gt;80.25&lt;/strong&gt; |
| VLM 层数 | 前 16 层 | 78.5 |
| VLM 层数 | 前 32 层 | 80.3 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 交替 CA+SA 比单独 CA 高 6.5 个百分点；causal mask 明显优于 bidirectional，说明动作块内部不能泄漏未来动作；Flow Matching 比 L1 regression 高 5 个百分点，支持其对多模态连续动作分布的建模优势。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; action chunk size 的最佳区域在 10–50：chunk=1 的平均成功率只有 50.0%，chunk=10 为 84.0%，chunk=100 降到 74.5%。执行层面每 1 或 10 步更新观测明显优于每 50 步更新，说明“预测块大”不代表“必须长时间开环执行”。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 预训练与多任务共同训练是关键：SO100 上单任务无预训练平均 40%，多任务无预训练 51.7%，多任务加社区预训练升到 78.3%。这说明 community data 的作用不只是扩大样本量，还提供了跨任务的动作先验。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-smolvla/async-inference.webp&quot; alt=&quot;Asynchronous inference stack from paper Figure 3&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; async 与 sync 的真实成功率接近（平均分别为 73.3% 和 78.3%），但 async 平均完成时间从 13.75 秒降到 9.70 秒，约快 30%；固定时间测试中，async 完成 19 个 pick-place 循环，sync 只有 9 个。它的价值主要体现为减少 idle 和提高单位时间内可完成的交互次数，而不是单纯提高单次成功率。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; SmolVLA 的收益来自三个互补的偏置：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;早层表征足够做控制&lt;/strong&gt;：控制不一定需要 VLM 最后一层的完整语言推理，前半层特征已经包含物体、空间和指令条件，截断后可直接减少一半语言计算。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;动作专家处理连续性&lt;/strong&gt;：VLM 输出的是条件信息，Action Expert 专门处理连续轨迹和动作块，避免让语言模型直接承担高维连续回归。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Flow Matching 保留多峰性&lt;/strong&gt;：同一视觉状态可能对应多条可行轨迹，随机流场比单一 L1 均值更适合表达这种分布。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 最重要的创新并非单个模块，而是将“轻量 backbone、窄 action expert、chunked control、异步 runtime”作为完整系统共同优化。特别是 async inference 把机器人控制问题中的网络与推理延迟显式纳入设计目标。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;| 方法 | 感知骨干 | 动作生成 | 主要代价 |
| --- | --- | --- | --- |
| ACT | CNN/Transformer | CVAE 回归 action chunk | 需要每个任务单独训练 |
| Diffusion Policy | 视觉 encoder | Diffusion action sequence | 采样成本高，语言知识弱 |
| OpenVLA | 大型 VLM | 离散 action token | 参数量与推理延迟高 |
| π₀ | 大型 VLM + Expert | Flow Matching | 需要更大模型与更多资源 |
| SmolVLA | SmolVLM-2 | 轻量 Flow Matching Expert | 依赖规范化 community data 与目标任务微调 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; SmolVLA 的“通用”更多来自可迁移的 VLM 条件特征和数据配方，而不是让单一模型直接覆盖所有机器人 action space；最后的 action projector 与 fine-tuning 仍承担 embodiment 对齐。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 方法依赖以下假设：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;community datasets 可以通过任务描述重写和 camera ordering 规范化而被联合训练；&lt;/li&gt;
&lt;li&gt;前半段 VLM layers 的表征足以支持动作条件化；&lt;/li&gt;
&lt;li&gt;50 步左右的 action chunk 能在响应速度与计算利用率之间取得平衡；&lt;/li&gt;
&lt;li&gt;机器人可以容忍在 chunk 执行期间短暂使用旧观测，且 action queue 的重叠聚合不会破坏稳定性。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这些假设在低成本桌面操作中较合理，但在快速接触、强碰撞或需要毫秒级反射的任务中可能失效。&lt;/p&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文强调机器人数据仍远少于互联网级视觉语言数据；community data 虽然便宜，却存在 noisy demonstrations、任务文本缺失、相机命名不一致和 embodiment 差异。当前版本主要在低成本单臂操作与有限仿真任务上验证，尚不能据此推断对双臂、灵巧手或高速移动机器人的表现。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;异步模式引入 stale observation&lt;/strong&gt;：旧队列被执行时环境可能已经改变；相似度过滤只能避免重复请求，不能保证动作 chunk 仍然安全。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Flow Matching 仍需多步采样&lt;/strong&gt;：代码默认 10 个 Euler steps；在 CPU 或低端设备上，VLM 与 Expert 的联合开销仍可能超过控制周期。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;固定 chunk size 不适应所有任务&lt;/strong&gt;：chunk=10–50 在 LIBERO 上较好，但抓取接触、插入、避障等任务可能需要动态 horizon。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;数据筛选仍有人力成本&lt;/strong&gt;：论文中的 camera mapping 是人工完成的，任务描述自动重写也可能把细粒度控制需求概括得过度。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;只训练 Expert 的迁移边界&lt;/strong&gt;：默认冻结 VLM 有利于低成本训练，但面对全新传感器、视角或语言分布时，固定视觉表征可能成为瓶颈。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; SmolVLA 给出的启发不是“所有 VLA 都应该变小”，而是应把系统的三个时间尺度分开：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;语义时间尺度&lt;/strong&gt;：VLM 低频地理解语言、物体和场景；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;动作时间尺度&lt;/strong&gt;：Action Expert 在一个 chunk 内生成平滑的连续轨迹；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;控制时间尺度&lt;/strong&gt;：RobotClient 高频执行动作，并根据队列阈值决定何时重新请求策略。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这套分解可以自然延伸到后续研究：让 chunk size 随接触状态自适应；把 joint-space similarity filter 换成视觉-状态联合不确定性；在服务器端缓存 VLM prefix，只为新状态增量计算；或者让多个 action chunk 候选由安全 critic 进行筛选。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 对个人实验室而言，SmolVLA 的真正价值是把 VLA 研究的最小可行闭环降到了可操作范围：一张消费级 GPU、LeRobot 数据格式、一个低成本机械臂和少量目标任务示教，就可以复现从预训练、fine-tuning 到异步部署的完整链路。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/103975128_p0_master1200.8vniavqp93.webp"/><enclosure url="https://pic.hana0721.top/103975128_p0_master1200.8vniavqp93.webp"/></item><item><title>Qwen-RobotManip 论文精读：对齐如何释放机器人规模化</title><link>https://agusexp25.top/blog/paper-deep-dive-qwen-robotmanip</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-qwen-robotmanip</guid><description>精读 Qwen-RobotManip：通过跨 embodiment 对齐、相机坐标系动作、人到机器人合成与双流训练，把约 38,100 小时开放数据转化为可迁移的 VLA 能力。</description><pubDate>Mon, 24 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;论文名称&lt;/strong&gt;：《Qwen-RobotManip Technical Report: Alignment Unlocks Scale for Robotic Manipulation Foundation Models》&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;作者&lt;/strong&gt;：Haoqi Yuan、Zhixuan Liang、Anzhe Chen 等 Qwen Team 成员&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;论文链接&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2606.17846&quot;&gt;arXiv:2606.17846&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;代码与资料&lt;/strong&gt;：&lt;a href=&quot;https://github.com/QwenLM/Qwen-RobotManip&quot;&gt;QwenLM/Qwen-RobotManip&lt;/a&gt; · &lt;a href=&quot;https://qwen.ai/blog?id=qwen-robotmanip&quot;&gt;官方博客&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://qianwen-res.oss-accelerate.aliyuncs.com/qwenrobot/robotmanip/images/teaser_v3.png&quot; alt=&quot;Qwen-RobotManip 总览（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Qwen-RobotManip 的核心不是“把更多轨迹喂给更大的模型”，而是先把不同机器人、相机和动作空间变成可共同学习的坐标系，再用约 38,100 小时的开放数据训练一个由 Qwen3.5-4B VLM 与 flow-matching DiT action expert 组成的 VLA。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;三层对齐框架&lt;/strong&gt;：用 80 维 canonical state-action、camera-frame delta pose 与 in-context policy adaptation，分别处理表示、运动几何和行为差异。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;可扩展数据基础设施&lt;/strong&gt;：将 9 类开放机器人数据、约 1,933 小时 egocentric human video，以及人到机器人合成数据整理为约 38,100 小时语料，其中合成轨迹约 24,808 小时、覆盖 15 种平台。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;双流联合训练&lt;/strong&gt;：VLA 流学习连续动作，VLM 流以 9:1 的机器人数据/VL 数据比例保持视觉与语言能力，降低 VLA-to-VA degradation。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;把 OOD 作为主指标&lt;/strong&gt;：在 LIBERO-Plus、RoboTwin-Clean2Rand、EBench、RoboCasa365、RoboTwin-IF 与 RoboTwin-XE 上测试场景、语言和 embodiment 迁移，并在 RoboChallenge Table30 v1 generalist track 排名第一。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 机器人数据和互联网文本有一个根本差异：不同机器人拥有不同的关节数、坐标系、相机视角、控制频率和末端执行器。若直接混合训练，数据规模变大可能首先带来 gradient interference，而不是能力叠加。论文因此把“alignment first, then scale”作为设计原则。&lt;/p&gt;
&lt;p&gt;传统 IID benchmark 也会掩盖这个问题。模型只要记住固定桌面、背景和任务模板，就可能得到很高的 success rate；论文报告中，训练 from scratch 的模型在 LIBERO 与 RoboTwin IID 上也能接近预训练模型。&lt;strong&gt;【Analysis】&lt;/strong&gt; 对基础模型来说，更有信息量的问题应是：在新相机、新物体、新语言、新机器人上，预训练先验能否减少适配成本并保持闭环控制。&lt;/p&gt;
&lt;p&gt;Qwen-RobotManip 与 OpenVLA、$\pi_{0.5}$、GR00T-N1.7 等 VLA 的关键区别，不是单一 backbone，而是把异构数据的互补性显式写进 action representation、camera geometry、history conditioning 和数据筛选流程。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 给定多视角图像 $\mathbf{o}_t$、机器人 proprioceptive state $\mathbf{s}_t$、自然语言 instruction，以及可选的历史执行 chunks，模型预测未来 $K$ 步连续动作：&lt;/p&gt;
&lt;p&gt;$$
\pi_\theta(\mathbf{a}_{t:t+K-1}\mid \mathbf{o}_t,\mathbf{s}&lt;em&gt;t,\text{instruction},\mathbf{C}&lt;/em&gt;{t})
$$&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Observation&lt;/strong&gt;：一张或多张相机图像、语言任务、结构化 embodiment prompt，推理时还可附加历史 observation-state-action chunks。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;State / Action&lt;/strong&gt;：映射到 80 维 canonical vector；每个 embodiment 只激活自己的维度，其余维度由 binary mask 排除出损失。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Action representation&lt;/strong&gt;：关节动作保留绝对值；末端位姿用相对 delta，位置进一步表达在 reference camera frame 中，旋转用 3D rotation vector。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Robot / Embodiment&lt;/strong&gt;：单臂、双臂、灵巧手、移动与 humanoid 平台；真实验证覆盖 AgileX ALOHA、Franka、UR 和 ARX。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Training corpus&lt;/strong&gt;：开放机器人数据、egocentric human videos、Human-to-Robot 合成轨迹与视觉语言监督数据。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://qianwen-res.oss-accelerate.aliyuncs.com/qwenrobot/robotmanip/images/method_v2.png&quot; alt=&quot;Qwen-RobotManip 方法总览（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Qwen3.5-4B VLM 联合编码图像、指令、embodiment prompt 和历史上下文；flow-matching Diffusion Transformer 通过交替的 visual/language cross-attention 接收 VLM hidden states，并生成连续 action chunk。训练同时优化 VLA 与 VLM 两条数据流，推理时用少量 Euler steps 生成动作。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;VLM backbone 与 action expert&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：多视角视觉 token、语言 token、结构化 prompt、当前 state，以及带噪 action chunk。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;VLM 输出&lt;/strong&gt;：Qwen3.5-4B 的多模态 hidden states，维度 $D_{\mathrm{vlm}}=2560$，保留语义与细粒度视觉信息。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;DiT 输出&lt;/strong&gt;：未来 $K$ 步的连续 action；10 个 transformer blocks，action hidden size 768、12 个 attention heads。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;交互方式&lt;/strong&gt;：DiT 偶数 block cross-attend visual tokens，奇数 block cross-attend language tokens；state 经过两层 MLP 后与 noisy action tokens 拼接。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要解耦&lt;/strong&gt;：VLM 擅长语义和视觉泛化，DiT 擅长高频连续控制；分工可以避免用动作损失破坏通用感知。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;80D Unified State-Action Space&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 两个 29 维 per-arm block 加 22 个预留维度构成 80D 模板。每个 arm block 包含 7 个 joint positions、9 个 end-effector pose、1 个 gripper state 与 12 个 dexterous hand joints。不同 embodiment 用 slot mask 只监督实际存在的维度，因此单臂数据不会把另一只手的零填充误当成动作。&lt;/p&gt;
&lt;h4&gt;Camera-frame Delta Pose 与 CaPE&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 仅统一向量布局还不够：同一个“向前推”动作，在不同机器人 base frame 中可能数值差异很大。论文把 end-effector delta 投影到 reference camera frame，使图像中相似的运动在 action space 中也接近。Camera Positional Encoding（CaPE）把相机外参注入 DiT cross-attention，内参则通过 image-patch 坐标的线性投影加入视觉 token。&lt;/p&gt;
&lt;h4&gt;Embodiment Prompt 与 In-Context Policy Adaptation&lt;/h4&gt;
&lt;p&gt;结构化 prompt 包含 &lt;code&gt;embodiment&lt;/code&gt;、&lt;code&gt;instruction&lt;/code&gt;、&lt;code&gt;speed&lt;/code&gt;、&lt;code&gt;fps&lt;/code&gt; 和 &lt;code&gt;camera view direction&lt;/code&gt;。训练时随机丢弃 embodiment、speed、fps 字段的概率为 15%，让模型适应不完整的部署信息。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 历史 context chunk 是 $(\mathbf{o}_h,\mathbf{s}_h,\mathbf{a}_h)$。state 和 action 经过轻量 MLP，附加 temporal/slot embeddings 后序列化；统一模式将其并入 VLM 的 causal self-attention，形成对“这个 episode 中机器人如何行动”的隐式描述。训练随机采样历史位置，避免模型只复制最近动作；部署时再使用最近 $H$ 个 chunks。&lt;/p&gt;
&lt;h4&gt;Human-to-Robot Synthesis&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://qianwen-res.oss-accelerate.aliyuncs.com/qwenrobot/robotmanip/images/h2r_pipeline.png&quot; alt=&quot;Human-to-Robot 合成流水线（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 流程从 egocentric hand keypoints 出发，进行手到末端的 action retargeting、手臂移除与 inpainting，再在 MuJoCo digital twin 中渲染 15 个机器人 embodiment，最后做深度引导合成。约 1,933 小时的人类视频因此扩展为约 24,808 小时的机器人兼容轨迹。&lt;strong&gt;【Analysis】&lt;/strong&gt; 这种“同一人类行为、多种机器人外观/运动学”的数据天然适合训练 cross-embodiment prior，但合成轨迹的几何误差仍需依靠 mask、curation 和真实数据校正。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;Flow Matching&lt;/h4&gt;
&lt;p&gt;给定真实动作 chunk $\mathbf{a}$，采样 $\boldsymbol{\epsilon}\sim\mathcal{N}(0,I)$ 与 $t\sim\mathrm{Beta}(1,1.5)$：&lt;/p&gt;
&lt;p&gt;$$
\mathbf{x}_t=(1-t)\boldsymbol{\epsilon}+t\mathbf{a},\qquad
\mathbf{v}=\mathbf{a}-\boldsymbol{\epsilon}
$$&lt;/p&gt;
&lt;p&gt;动作专家 $f_\theta$ 预测速度场，目标为：&lt;/p&gt;
&lt;p&gt;$$
\mathcal{L}&lt;em&gt;{\mathrm{FM}}=\mathbb{E}\left[\left|f&lt;/em&gt;\theta(\mathbf{x}_t,t,\mathbf{s},\mathbf{o})-\mathbf{v}\right|_2^2\right]
$$&lt;/p&gt;
&lt;p&gt;不同 embodiment 使用 mask $m_{i,t,j}$ 后，按样本平均有效维度：&lt;/p&gt;
&lt;p&gt;$$
\mathcal{L}&lt;em&gt;{\mathrm{FM}}=\frac1B\sum_i
\frac{\sum&lt;/em&gt;{t,j}m_{i,t,j}(\hat v_{i,t,j}-v_{i,t,j})^2}
{\sum_{t,j}m_{i,t,j}}
$$&lt;/p&gt;
&lt;p&gt;其中 $B$ 为 batch size，$t$ 是 action horizon 内的时间步，$j$ 是 canonical action 维度。分母让“激活维度较少”的样本也能与灵巧手样本贡献相近的梯度。&lt;/p&gt;
&lt;h4&gt;双流目标&lt;/h4&gt;
&lt;p&gt;VLM batch 使用 next-token prediction：&lt;/p&gt;
&lt;p&gt;$$
\mathcal{L}&lt;em&gt;{\mathrm{VLM}}=-\mathbb{E}\sum_i\log p&lt;/em&gt;\phi(y_i\mid y_{&amp;#x3C;i},\mathbf{c}),
\qquad
\mathcal{L}=\mathcal{L}&lt;em&gt;{\mathrm{FM}}+\lambda\mathcal{L}&lt;/em&gt;{\mathrm{VLM}},;\lambda=0.1
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 预训练中机器人数据与 VL 数据按 9:1 混合；同一 action chunk 可重复采样 8 个 noise/timestep 组合以摊薄 VLM forward 成本。推理用 4 个 Euler integration steps 生成连续动作。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 预训练先做多源数据清洗与统一表示，再进行 VLA/VLM dual-stream co-training；post-training 针对目标域做 generalist SFT，只优化 flow-matching loss。可选的 mixed post-training 把目标域示教与分布相近的预训练子集混合，以减轻 VLA-to-VA degradation。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 运行时输入当前多视角 observation、state、指令和最近的历史 chunks。DiT 从噪声 action chunk 开始，用 4 步 Euler integration 得到连续动作；远程部署时结合 Real-Time Chunking（RTC）异步生成下一段动作，隐藏网络往返延迟。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方仓库 &lt;a href=&quot;https://github.com/QwenLM/Qwen-RobotManip&quot;&gt;QwenLM/Qwen-RobotManip&lt;/a&gt; 当前是公开资料仓库：README 给出模型组成、80D action space、Human-to-Robot pipeline、评测结果和 demo 链接，但明确说明暂不发布模型权重；仓库中也没有可直接运行的训练脚本、DataLoader 或推理实现。因此本文能对照的“代码事实”主要是 README 中公开的架构/数据说明，不能把论文中的内部训练细节误写成已公开 API。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/QwenLM/Qwen-RobotManip/main/assets/images/eval_setting_overall.png&quot; alt=&quot;Qwen-RobotManip 的评测设置（论文 Figure 4）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 评测覆盖三条 OOD 轴：场景/任务扰动、语言 instruction following、zero-shot cross-embodiment。LIBERO-Plus 扰动 camera、robot state、language、lighting、background、sensor noise 与 layout；RoboTwin-Clean2Rand 从 Clean 训练分布迁移到背景、光照、clutter、桌高和 Hard 组合扰动；RoboCasa365 测试厨房原子技能与长时序组合任务；RoboTwin-IF 用 held-out instruction templates 检验语言是否是真正的控制信号；RoboTwin-XE 只在 AgileX 上微调，再迁移到 ARX-X5、UR5-WSG 与 Franka Panda。&lt;/p&gt;
&lt;p&gt;IID 结果方面，Qwen-RobotManip 在 LIBERO 达到 99.1%，RoboTwin Easy/Hard 达到 93.4%/92.5%；带 history context 的版本分别为 99.2%、93.7% 和 94.0%。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://qianwen-res.oss-accelerate.aliyuncs.com/qwenrobot/robotmanip/images/ood_summary.png&quot; alt=&quot;OOD 泛化结果汇总（论文 Figure 5）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 主要 OOD 结果如下：&lt;/p&gt;
&lt;p&gt;| Benchmark                | Qwen-RobotManip | Qwen-RobotManip-Context | 对比观察                                      |
| ------------------------ | --------------: | ----------------------: | --------------------------------------------- |
| LIBERO-Plus Overall      |           89.0% |               &lt;strong&gt;91.4%&lt;/strong&gt; | context 提升 camera/robot perturbation 鲁棒性 |
| RoboTwin-Clean2Rand Hard |           62.6% |               &lt;strong&gt;69.4%&lt;/strong&gt; | 从 Easy 到 Hard 的退化小于 $\pi_{0.5}$        |
| EBench Overall           |       &lt;strong&gt;45.6%&lt;/strong&gt; |                   43.6% | 无 history 版本在该设置更优                   |
| RoboCasa365 Total        |       &lt;strong&gt;35.9%&lt;/strong&gt; |                   33.8% | 长时序厨房任务仍然困难                        |
| RoboTwin-IF Average      |       &lt;strong&gt;72.2%&lt;/strong&gt; |                   72.0% | 保持多维 instruction grounding                |
| RoboTwin-XE zero-shot    |       &lt;strong&gt;23.9%&lt;/strong&gt; |                       — | $\pi_{0.5}$ 为 7.5%，约 3.2 倍                |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 相对 $\pi_{0.5}$，Qwen-RobotManip 在 LIBERO-Plus 高 7.0 个百分点，在 RoboTwin-Clean2Rand Hard 高 21.5 个百分点，在 EBench 高 18.5 个百分点，在 RoboCasa365 高 19.0 个百分点；RoboTwin-IF 为 72.2% 对 49.6%。&lt;/p&gt;
&lt;p&gt;真实机器人上，RoboChallenge Table30 v1 generalist track 覆盖 30 个任务和 4 个平台，Qwen-RobotManip 取得 45% success rate、59.83 process score，排名第一；8 个 ALOHA 双臂任务平均成功率为 40%，12 个 pick-and-place 任务为 63.3%。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;论文的消融指向一个清晰结论：对齐组件不是可互换的装饰，而是规模化训练的前提。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;UnifiedSpace / UnifiedEEF&lt;/strong&gt;：移除统一 action space 或统一 EEF 表示后，RoboChallenge 跨 embodiment 迁移成功率显著下降；完整模型达到 55.0%，两个变体分别只有 7.5% 和 12.5%。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Context&lt;/strong&gt;：LIBERO-Plus 从 89.0% 提升到 91.4%，RoboTwin-Clean2Rand Hard 从 62.6% 提升到 69.4%，说明 history 能提供隐式运动学先验，但并非所有 benchmark 都受益。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Stochastic context sampling&lt;/strong&gt;：论文报告若总是采样最近 chunks，模型容易复制最近动作，训练 loss 低但 task success 差；随机位置采样迫使模型学习 episode-level behavior profile。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Human/VL co-training&lt;/strong&gt;：去除人类合成数据或 VL stream 会削弱跨 embodiment 与 instruction following，支持“data scale 必须建立在 alignment 之后”的主张。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; RoboTwin-IF 将 instruction 分成 seen 与 held-out unseen templates，并改变 verb、target object、spatial relation 等因素。模型在相同或相似视觉场景下仍能按语言选择不同动作，说明它没有完全退化为 vision-action pattern matcher。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; RoboTwin-XE 的 23.9% zero-shot success 不是“所有机器人都能直接运行”的证明，而是对 camera-frame action、80D mask 和真实视觉变化共同作用的压力测试；它说明跨 embodiment 共享的是可迁移的运动结构，而不是某一台机械臂的关节记忆。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; Qwen-RobotManip 同时降低了三种分布差异：canonical vector 降低结构差异，camera-frame delta 降低几何差异，history context 降低行为差异。这样，新增数据更可能提供相同技能的不同观测，而不是给模型增加互相冲突的标签。&lt;/p&gt;
&lt;p&gt;双流训练则守住了 VLM 的语言与视觉 prior；Human-to-Robot synthesis 把“人类行为多样性”转换成“机器人 embodiment 多样性”。两者结合，才使 OOD benchmark 中的 instruction、camera、clutter 和 robot perturbation 同时受益。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;把 alignment 从数据预处理提升为模型、动作几何和推理上下文的共同设计目标。&lt;/li&gt;
&lt;li&gt;用 camera-frame action 让视觉上的相似运动对应数值上的相似目标。&lt;/li&gt;
&lt;li&gt;把 in-context adaptation 实现为 observation-state-action history，而不是额外参数更新。&lt;/li&gt;
&lt;li&gt;用 OOD evaluation 重新定义“foundation model 质量”，并加入 RoboTwin-IF/XE 诊断语言和 embodiment 泛化。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 仅扩大 backbone 或简单拼接 embodiment token，无法保证两个数据集中的同一物理动作在数值空间中接近；仅依赖 benchmark SFT 又容易把 VLA 训成 VA。Qwen-RobotManip 的差异在于：它让 action space、camera geometry、history 和训练目标共同约束模型，使跨域迁移成为训练时的显式归纳偏置。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;经过标定的 camera intrinsics/extrinsics 在训练和推理时可获得；&lt;/li&gt;
&lt;li&gt;不同 embodiment 的动作可以合理投影进 80D canonical schema；&lt;/li&gt;
&lt;li&gt;人到机器人 retargeting 的几何误差不会淹没真实 manipulation signal；&lt;/li&gt;
&lt;li&gt;rollout history 足以作为隐式 embodiment/behavior identifier；&lt;/li&gt;
&lt;li&gt;预训练数据的多样性能够覆盖目标部署中的关键变化。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 官方仓库明确说明目前不计划发布 Qwen-RobotManip 或 Qwen-RobotNav 的模型权重。因此读者无法直接复现实验中的预训练 checkpoint、完整数据配方和训练基础设施。论文也显示，RoboCasa365 长时序任务、精密插入与部分 real-robot OOD 任务仍有明显失败案例。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;camera-frame action 依赖准确标定；真实部署中的外参漂移、遮挡和相机安装变化可能破坏几何对齐。&lt;/li&gt;
&lt;li&gt;80D schema 通过 mask 处理“没有的自由度”，但不能自动解决不同机器人动力学、接触模型和控制器延迟差异。&lt;/li&gt;
&lt;li&gt;Human-to-Robot 合成扩大了数据量，却可能带来 retargeting、遮挡修复和仿真渲染偏差；论文尚未给出完整的误差分解。&lt;/li&gt;
&lt;li&gt;Context window 增加了视觉 token 与 action token 的推理成本，history 并不稳定地提升所有 benchmark。&lt;/li&gt;
&lt;li&gt;论文强调 OOD，但不同 benchmark 的 fine-tuning 协议和 embodiment 覆盖并不完全一致，跨论文比较仍需谨慎。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这篇报告最值得复用的不是一个固定模型尺寸，而是一条工程与研究路线：先定义哪些差异应该被消除、哪些差异应该被保留，再决定如何扩展数据。对后续 VLA 工作，可以继续追问：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;能否学习 camera-free 或 calibration-robust 的动作对齐，同时保留 camera-frame 的视觉一致性？&lt;/li&gt;
&lt;li&gt;能否把动力学、接触力和控制频率纳入 canonical action，而不只是位置/姿态 slot？&lt;/li&gt;
&lt;li&gt;合成轨迹的质量应如何被自动评分、加权或拒绝，而不是只依赖 episode-level curation？&lt;/li&gt;
&lt;li&gt;OOD benchmark 能否加入真实长时序 recovery、跨相机重定位和未见过的 instruction composition？&lt;/li&gt;
&lt;li&gt;在无法发布权重和大规模数据的情况下，怎样提供可验证的缩小版 recipe，让社区复现“alignment unlocks scale”的因果链？&lt;/li&gt;
&lt;/ul&gt;</content:encoded><h:img src="https://pic.hana0721.top/112236596_p0_master1200.232gogbiox.webp"/><enclosure url="https://pic.hana0721.top/112236596_p0_master1200.232gogbiox.webp"/></item><item><title>ChatVLA-2 论文精读：让 VLA 保留 VLM 的开放世界推理</title><link>https://agusexp25.top/blog/paper-deep-dive-chatvla-2</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-chatvla-2</guid><description>精读 ChatVLA-2：通过 Dynamic MoE、reasoning-following action expert 与两阶段训练，让 VLA 在数学、OCR 和空间关系任务中利用预训练 VLM 的开放世界知识。</description><pubDate>Mon, 24 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;论文名称&lt;/strong&gt;：《ChatVLA-2: Vision-Language-Action Model with Open-World Embodied Reasoning from Pretrained Knowledge》
&lt;strong&gt;作者&lt;/strong&gt;：Zhongyi Zhou、Yichen Zhu、Junjie Wen、Chaomin Shen、Yi Xu
&lt;strong&gt;机构&lt;/strong&gt;：美的集团、华东师范大学
&lt;strong&gt;会议&lt;/strong&gt;：NeurIPS 2025（项目主页标注为 accepted）
&lt;strong&gt;论文链接&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2505.21906&quot;&gt;arXiv&lt;/a&gt;
&lt;strong&gt;项目主页&lt;/strong&gt;：&lt;a href=&quot;https://chatvla-2.github.io/&quot;&gt;ChatVLA-2&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-chatvla-2/chatvla2_overview-crop.7w7k3cvtcb.webp&quot; alt=&quot;ChatVLA-2 从训练数据、Dynamic MoE 到开放世界机器人任务的总览（论文 Figure 1）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; ChatVLA-2 关注的不是“在训练集任务上把成功率再提高一点”，而是让 VLA 微调后仍能调用预训练 VLM 的识别、OCR、数学和空间推理能力，并把这些 reasoning 可靠地转成动作。它用 Dynamic Mixture-of-Experts（Dynamic MoE）分离冲突特征，用 reasoning-following enhancement module 让 action expert 读取推理 token，再用两阶段训练分别完成知识保留和动作跟随。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;把 VLA 的泛化目标明确拆成 &lt;strong&gt;open-world embodied reasoning&lt;/strong&gt; 与 &lt;strong&gt;reasoning following&lt;/strong&gt;：前者要求保留 VLM 的世界知识，后者要求动作真的遵循模型推理。&lt;/li&gt;
&lt;li&gt;在 Qwen2-VL/DexVLA 风格骨干中加入 Dynamic MoE，论文采用 8 个 experts、推理时 top-2 routing，以减少多模态理解和机器人控制在参数空间中的相互干扰。&lt;/li&gt;
&lt;li&gt;提出只在 action expert 后半层注入 reasoning token 的调制模块，用 scale/shift 条件化替代原 observation embedding 的一部分。&lt;/li&gt;
&lt;li&gt;提出两阶段训练：Stage 1 混合图文与机器人数据，Stage 2 冻结 VLM、只训练 action expert，让动作学习“跟随”上层推理。&lt;/li&gt;
&lt;li&gt;在数学匹配和玩具摆放两个真机任务上测试开放世界泛化；ChatVLA-2 在数学任务达到 3.58/4 OCR、1.73/2 数学推理和 43/52 成功，在空间任务达到 0.94 物体识别、0.88 spatial affordance 与 127/156 成功。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 传统 VLA 通常把预训练 VLM 微调成“看图、读指令、输出动作”的端到端策略。问题在于，机器人数据的分布远小于互联网图文数据：微调参数被动作监督牵引后，模型可能忘记原本会识别的物体、文字和数学关系。论文用一个直观例子说明这种遗忘：一个 VLM 可能知道 &lt;code&gt;10 + 11 = 21&lt;/code&gt;，但在从未见过该式子的机器人任务中，控制 expert 未必能拿起答案卡。&lt;/p&gt;
&lt;p&gt;相关工作大致有两条路线：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;通用 VLA&lt;/strong&gt;（OpenVLA、DexVLA、π₀ 等）扩大机器人数据或改进动作头，擅长训练分布内的操控，但开放世界 reasoning 不是主要优化目标。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Embodied reasoning VLA&lt;/strong&gt;（Embodied-CoT、CoT-VLA、DiffusionVLA、π₀.₅ 等）把链式推理或子步骤写入训练标注，能让动作更可解释，却容易把能力限制在训练时出现过的 reasoning 模板。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; ChatVLA-2 的切入点是“少教具体技能，多保护预训练先验”：它不专门加入数学或 OCR 训练集，而是希望通用图文知识在机器人微调后仍然可用，再用 action expert 学会执行这种新推理。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 给定视觉观察 $o_t$、语言指令 $l$ 和机器人本体状态，模型同时产生语言 reasoning tokens 与动作序列。任务是学习：&lt;/p&gt;
&lt;p&gt;$$
\pi_\theta(a_{t:t+H}\mid o_t,l),
$$&lt;/p&gt;
&lt;p&gt;其中 $a_{t:t+H}$ 是 action expert 生成的动作 chunk，$H$ 为动作预测 horizon。与纯行为克隆不同，ChatVLA-2 还要求 reasoning $r_t$ 与动作一致：&lt;/p&gt;
&lt;p&gt;$$
\text{Action}&lt;em&gt;t \sim \pi&lt;/em&gt;\theta(\cdot\mid o_t,l,r_t).
$$&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Observation&lt;/strong&gt;：相机 RGB 图像、语言指令，以及由 DexVLA 风格骨干处理的机器人状态；论文没有把统一的输入维度全部列出。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Action representation&lt;/strong&gt;：论文采用预训练 ScaleDP 1B 作为 action expert，输出连续机器人动作；具体动作维度和控制频率随两种真机设置而变化。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Embodiment&lt;/strong&gt;：数学匹配使用 ARX R5 双臂、顶部 RealSense L515，14 维联合状态/动作、50 Hz 遥操作；玩具摆放使用 7-DoF Franka、Robotiq gripper 与侧置 ZED 2、15 Hz 遥操作。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Data&lt;/strong&gt;：Stage 1 使用 COCO、TextVQA、GQA、RoboPoint、真实机器人图文对和机器人轨迹；另外采集数学匹配 600 条、玩具摆放 300 条轨迹。TextVQA 特意过滤含数字 OCR token 或数学运算符的样本。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-chatvla-2/Structure-crop.2ksnin9qhv.webp&quot; alt=&quot;ChatVLA-2 的 Dynamic MoE、reasoning-following action expert 与机器人动作路径（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 图像 patch 与语言 token 进入带 Dynamic MoE 的 VLM；上层输出 reasoning tokens 和 action tokens，后者经 projection 进入 ScaleDP action expert，最终输出连续机器人动作。推理时 router 为每个输入选择少数 experts，action expert 的后半层再接收 reasoning 条件。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;Dynamic Mixture-of-Experts&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：VLM 的视觉与语言 token。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;中间模块&lt;/strong&gt;：router、8 个 MLP experts，以及 top-2 expert aggregation。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：融合后的 token 表示，继续送入 LLM head 与 action expert。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;作用&lt;/strong&gt;：把多模态理解、机器人控制和共享的空间推理特征分配到不同参数子空间；router 根据输入动态选 expert，而不是把所有 token 都压进同一组 dense MLP。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要&lt;/strong&gt;：论文引用先前 ChatVLA 观察到的“多模态能力在机器人微调后退化”。静态/shared expert 会改变 Qwen2-VL 原有 dense LLM 结构，可能更快破坏预训练知识；Dynamic MoE 则保留主干结构，只在需要时激活新增 experts。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 专家 MLP 用预训练 MLP 权重初始化；实验中 8 experts/top-2 比 6/3 或 4/2 有更高 OCR 和数学分数。&lt;/p&gt;
&lt;h4&gt;Reasoning-following enhancement module&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：VLM 生成的 reasoning tokens、当前 diffusion timestep embedding。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;中间模块&lt;/strong&gt;：MLP 投影 reasoning，生成后半 action-expert layers 的 scale 与 shift 参数。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：被 reasoning 条件化的 action features。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;关键设计&lt;/strong&gt;：用 reasoning representation 替换原 observation embedding 的对应输入，并只注入 action expert 的后半层，而不是全层注入。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要&lt;/strong&gt;：前半层更负责稳定的动作/观测表征，后半层对高层条件更敏感；把开放世界 reasoning 直接注入后半层，可增强指令跟随而少干扰低层控制。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;VLM 与 Action Expert&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; ChatVLA-2 以 DexVLA 为基础，使用 Qwen2-VL 作为 VLM，图像编码后与语言 token 拼接；VLM 同时生成 reasoning tokens 和 action tokens，action tokens 经过两层 Linear 与 LayerNorm projection，再进入预训练 1B ScaleDP action expert。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 因而它不是“VLM 先完整规划、另一个策略再执行”的串联系统：reasoning 和 action 在一个端到端模型中共同生成，但通过 MoE 与后半层条件注入显式建立了较清晰的功能边界。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;Dynamic MoE&lt;/h4&gt;
&lt;p&gt;对第 $l$ 层输入 token $x$，router 产生 experts 的打分 $g(x)\in\mathbb R^N$，选择 top-$k$ 专家集合 $\mathcal T(x)$：&lt;/p&gt;
&lt;p&gt;$$
y = \sum_{i\in\mathcal T(x)} \operatorname{softmax}(g(x))_i E_i(x).
$$&lt;/p&gt;
&lt;p&gt;$E_i$ 是第 $i$ 个 MLP expert，$N=8$，论文默认 $k=2$。&lt;strong&gt;【Analysis】&lt;/strong&gt; 这个公式的要点不是减少参数总量，而是让每个 token 只激活一小部分参数，同时让理解与控制学习到不同的子空间。&lt;/p&gt;
&lt;h4&gt;Reasoning-conditioned modulation&lt;/h4&gt;
&lt;p&gt;设 reasoning token 经 MLP 投影为 $h_r$，action expert 第 $j$ 层的中间表示为 $u_j$，则调制可写为：&lt;/p&gt;
&lt;p&gt;$$
\tilde u_j = \gamma_j(h_r,t)\odot u_j + \beta_j(h_r,t),
$$&lt;/p&gt;
&lt;p&gt;其中 $t$ 是 diffusion timestep，$\gamma_j$、$\beta_j$ 分别是由 reasoning 与 timestep 条件生成的 scale/shift。论文只在后半层使用该机制；前半层继续保留更直接的动作表征。&lt;/p&gt;
&lt;h4&gt;两阶段目标&lt;/h4&gt;
&lt;p&gt;Stage 1 同时优化图文理解和机器人动作目标：&lt;/p&gt;
&lt;p&gt;$$
\mathcal L_1 = \mathcal L_{\text{image-text}} + \lambda_a\mathcal L_{\text{action}}.
$$&lt;/p&gt;
&lt;p&gt;Stage 2 冻结 VLM 参数 $\phi$，只优化 action expert 参数 $\theta_a$：&lt;/p&gt;
&lt;p&gt;$$
\min_{\theta_a};\mathbb E\left[\mathcal L_{\text{action}}\big(\pi_{\theta_a}(o_t,l,r_t)\big)\right],\qquad \phi;\text{fixed}.
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文未给出完整的 action diffusion loss 展开式；上式只表达训练边界和参数冻结关系，不把未公开的实现细节补写成确定事实。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-chatvla-2/Stages-crop.3k8qvtchi9.webp&quot; alt=&quot;ChatVLA-2 的两阶段训练：Stage 1 保留开放世界理解，Stage 2 冻结 VLM 并训练 reasoning-following action expert（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Stage 1 在图文数据和机器人数据上 co-training。图文部分约包含 COCO 32k、TextVQA 20k、GQA 54k、RoboPoint 约 2k，以及约 5k 个真实环境样本；机器人部分包含数学匹配 600 条与玩具摆放 300 条轨迹，图文:机器人采样比例为 1:3。训练 15k steps，初始 learning rate 为 $2\times10^{-5}$。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Stage 2 冻结整个 VLM，只训练 action expert，使它把上层输出的 reasoning 当作可执行条件。论文实现细节给出 50k steps、AdamW、FP16、3k steps warm-up、cosine scheduler，学习率从 $2\times10^{-5}$ 衰减到 $2\times10^{-6}$，总训练成本约 340 GPU hours。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 运行时输入当前图像、语言指令与机器人状态，VLM 先生成 reasoning 和 action tokens；router 动态激活 top-2 experts，action expert 在每个 diffusion step 中用 reasoning 条件化，输出动作 chunk，再交给机器人控制器执行。数学匹配中，reasoning 需要先读白板、计算结果、定位候选卡片，再产生“从 left/middle/right 取哪一张”的动作；玩具摆放中则需要识别目标物、参考物和 left/right/front/behind/top/bottom 关系。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 论文没有公开完整的 runtime scheduler、chunk horizon 或控制器 API，因此下面算法只保留论文明确的高层行为。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 截至本文撰写时，论文项目主页只提供论文、演示与视频资源，未提供 ChatVLA-2 官方 GitHub 代码、训练配置或 checkpoint。项目页中曾保留一个注释掉的 &lt;code&gt;ChatVLA_public&lt;/code&gt; 链接，但它不是 ChatVLA-2 的可用实现。因此无法对模型定义、DataLoader、loss、checkpoint 和 inference API 做逐文件核对。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这会影响复现：读者可以根据论文重建 Qwen2-VL + Dynamic MoE + ScaleDP 的原型，但无法确认 router loss、expert 初始化的精确代码、diffusion scheduler、动作归一化、停止条件和真实机器人控制接口。本文后续所有“实现层面”的表述都以论文正文/附录为准，并明确标注为 &lt;code&gt;【Paper】&lt;/code&gt;，没有把推测写成 &lt;code&gt;【Code】&lt;/code&gt;。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-chatvla-2/task-crop.1hsy7rdxuk.webp&quot; alt=&quot;数学匹配与玩具摆放的真机平台、开放世界指令和执行过程（论文 Figure 4）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文使用两个专门设计的真机评测：&lt;/p&gt;
&lt;p&gt;| 任务               | 机器人与传感器                                   | 训练/开放世界划分                | 主要指标                                 |
| ------------------ | ------------------------------------------------ | -------------------------------- | ---------------------------------------- |
| Math Matching Game | ARX R5 双臂、顶部 RealSense L515、50 Hz          | 数字/符号与组合是否见过训练集    | OCR 4 分、数学推理 2 分、操控成功率      |
| Toy Placement      | Franka 7-DoF、Robotiq gripper、侧置 ZED 2、15 Hz | 目标物、参考物和方向指令是否未见 | 物体识别、spatial affordance、操控成功率 |&lt;/p&gt;
&lt;p&gt;数学任务的开放世界测试使用训练集中没有出现过的方程与手写风格；空间任务要求模型识别新物体、找到指令中的参考物，并理解相对位置。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 数学匹配结果如下，分数分母是论文定义的总分或试次数：&lt;/p&gt;
&lt;p&gt;| 方法          | In-domain 推理 | In-domain 成功 | Open-world OCR | Open-world 数学 |    Open-world 成功 |
| ------------- | -------------: | -------------: | -------------: | --------------: | -----------------: |
| DexVLA        |          5.2/6 |          12/13 |         0.21/4 |          0.06/2 |              10/52 |
| ChatVLA       |          5.8/6 |          10/13 |         1.08/4 |          0.42/2 |               4/52 |
| π₀            |              — |          12/13 |              — |               — |               8/52 |
| &lt;strong&gt;ChatVLA-2&lt;/strong&gt; |      &lt;strong&gt;6.0/6&lt;/strong&gt; |          11/13 |     &lt;strong&gt;3.58/4&lt;/strong&gt; |      &lt;strong&gt;1.73/2&lt;/strong&gt; | &lt;strong&gt;43/52（82.7%）&lt;/strong&gt; |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在 toy placement 的 open-world 设置中，ChatVLA-2 达到 0.94 物体识别、0.88 spatial affordance 与 127/156（81.4%）任务成功率；DexVLA 为 0.23、0.12 和 36/156，ChatVLA 为 0.71、0.35 和 22/156。论文称 ChatVLA-2 的操控成功率约为 DexVLA 的 3.52 倍。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 结果差异主要出现在 open-world，而不是 in-domain：在已见任务上，多个 VLA 已接近饱和；真正拉开差距的是模型能否把“未见过的方程/物体/方向关系”变成可执行动作。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Dynamic MoE 消融（数学匹配 open-world）：&lt;/p&gt;
&lt;p&gt;| 变体                            |        OCR |       Math |      成功 |
| ------------------------------- | ---------: | ---------: | --------: |
| Dynamic MoE（8 experts, top-2） | &lt;strong&gt;3.58/4&lt;/strong&gt; | &lt;strong&gt;1.73/2&lt;/strong&gt; | &lt;strong&gt;43/52&lt;/strong&gt; |
| Static MoE + Dynamic MoE        |     2.38/4 |     0.92/2 |     11/52 |
| Shared MoE + Dynamic MoE        |     3.07/4 |     1.12/2 |     25/52 |
| 3B Dense                        |     0.04/4 |     0.00/2 |      2/52 |
| 7B Dense                        |     0.08/4 |     0.00/2 |      8/52 |&lt;/p&gt;
&lt;p&gt;两阶段训练消融显示：只做 Stage 1 时成功率为 12/52，只做 Stage 2 时为 3/52，完整两阶段为 43/52。Stage 1 缺失会让 OCR/数学推理几乎消失；Stage 2 缺失则说明“会推理”尚未转化成“会按推理行动”。&lt;/p&gt;
&lt;p&gt;附录还比较了专家数量和 reasoning 注入层位：8/2 优于 6/3 与 4/2；后半层注入成功率为 43/52，全层为 36/52，前半层为 22/52。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 泛化并非来自专门训练数学、OCR 或方向词。Stage 1 的 TextVQA 样本还过滤了数字 OCR 与数学运算符，作者希望测试模型是否能调用预训练知识，而不是背诵目标技能。开放世界成功因此同时依赖三层能力：VLM 认出新内容，语言头组织成 reasoning，action expert 按 reasoning 选择正确的接触动作。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 我认为有三条互补机制：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;参数隔离降低遗忘&lt;/strong&gt;：Dynamic MoE 让“识别/推理”和“控制”不必争用同一组 dense MLP 权重。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;推理成为动作条件&lt;/strong&gt;：reasoning-following module 不是把 reasoning 只作为展示文本，而是把它变成 action expert 的逐层调制信号。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;训练顺序解决目标冲突&lt;/strong&gt;：Stage 1 先保住通用知识与机器人动作之间的连接，Stage 2 再冻结上层，迫使 action expert 学会读取已有 reasoning，而不是让整个 VLM 继续为了局部动作损失漂移。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 真正的创新点不是单独提出一个 MoE 或一个 FiLM 变体，而是把“知识保留”和“动作跟随”作为两个可分解的优化问题：Dynamic MoE 处理表示冲突，后半层 reasoning modulation 处理条件注入，两阶段训练处理时间顺序。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;| 对比                   | 主要依赖                  | ChatVLA-2 的不同                                                 |
| ---------------------- | ------------------------- | ---------------------------------------------------------------- |
| OpenVLA / DexVLA       | 机器人数据上的 VLA 微调   | 把预训练 VLM 知识保留与调用作为一等目标                          |
| CoT-VLA / Embodied-CoT | 训练集显式 reasoning 标注 | 主要依赖预训练 VLM 的开放世界能力，机器人 reasoning 只做动作跟随 |
| ChatVLA                | 静态理解/控制 experts     | 用 Dynamic MoE 动态选择并保留共享特征                            |
| 分层 planner + policy  | 外部 VLM 规划后调用策略   | 在端到端 VLA 内部把 reasoning 与 action expert 连接起来          |&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 方法隐含的关键假设包括：预训练 VLM 的 reasoning 能迁移到机器人观察；图文与机器人数据之间存在足够的共享特征；reasoning token 能提供比原始语言指令更有用的动作条件。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 还存在一个工程假设：后半 action-expert layers 的修改足够表达复杂 reasoning，同时不会损害低层动作稳定性。附录的 layer ablation 支持这一折中，但尚不能证明它对不同 embodiment 或更长 horizon 普遍成立。&lt;/p&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 作者承认当前方法仍不能完全保留 VLM 的全部能力，机器人数据微调后仍有不少 capacity 消失；实验主要集中在 tabletop task，未来希望扩展到 mobile manipulator、更长时程和更复杂的真实世界任务。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;只有两个开放世界任务，且都以桌面抓取/放置为主；不能直接推出导航、双臂长时程协作或接触丰富任务中的泛化。&lt;/li&gt;
&lt;li&gt;论文没有公开代码与 checkpoint，外部研究者难以复核 router、diffusion scheduler、动作归一化和控制频率等关键实现。&lt;/li&gt;
&lt;li&gt;8 experts/top-2 的选择依赖当前数据与算力；专家数、路由负载和新增参数带来的推理成本缺少完整报告。&lt;/li&gt;
&lt;li&gt;82.7% 与 81.4% 是任务级成功率，不等于每一步 reasoning 都正确；如果模型生成了偶然有效的动作，文本 reasoning 与真实因果过程是否一致仍待更细粒度验证。&lt;/li&gt;
&lt;li&gt;Stage 1 图文:机器人比例、GPT-4o 扩增的子推理标注和真机数据收集成本会影响可复现性。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;VLA 的“泛化”应该拆成知识泛化与控制泛化。&lt;/strong&gt; 只报告已见任务成功率，很难知道模型是否还拥有 VLM 的世界知识；数学匹配和玩具摆放提供了更接近 open-world prior 的压力测试。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;知识保留可能比继续扩大机器人数据更先要解决。&lt;/strong&gt; 如果微调先把 VLM 的 OCR/空间能力抹掉，后续再加数据只是学习更多局部动作，无法得到真正的开放世界策略。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reasoning supervision 的价值在于连接动作，而不只是增加可读文本。&lt;/strong&gt; ChatVLA-2 的 Stage 2 ablation 提醒我们：模型“说对”与机器人“做对”是两个目标，必须通过 action expert 的条件化显式耦合。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;后续工作应建立能力保持曲线。&lt;/strong&gt; 除成功率外，可以在微调前后统一测 VQA、OCR、空间关系、数学和物体识别，并报告不同 robot-data budget 下的遗忘速度。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;开放代码将决定这条路线能否成为可复现范式。&lt;/strong&gt; 对研究者而言，最有价值的开源内容不仅是 checkpoint，还包括 expert routing 统计、冻结策略、reasoning/action 对齐评测和真实控制安全边界。&lt;/li&gt;
&lt;/ol&gt;</content:encoded><h:img src="https://pic.hana0721.top/56422576_p0_master1200.7i0z6ufn65.webp"/><enclosure url="https://pic.hana0721.top/56422576_p0_master1200.7i0z6ufn65.webp"/></item><item><title>TinyVLA 论文精读：轻量 VLM 与扩散策略打造快速 VLA</title><link>https://agusexp25.top/blog/paper-deep-dive-tinyvla</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-tinyvla</guid><description>精读 TinyVLA：用 1.3B 以下的 Llava-Pythia 骨干和 Diffusion Policy decoder 替代大模型自回归动作 token，在少量机器人数据下获得更快推理、更强数据效率与跨任务泛化。</description><pubDate>Sun, 23 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;论文名称&lt;/strong&gt;：《TinyVLA: Towards Fast, Data-Efficient Vision-Language-Action Models for Robotic Manipulation》&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;作者&lt;/strong&gt;：Junjie Wen、Yichen Zhu、Jinming Li、Minjie Zhu、Zhibin Tang、Kun Wu、Zhiyuan Xu、Ning Liu、Ran Cheng、Chaomin Shen、Yaxin Peng、Feifei Feng、Jian Tang&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;机构&lt;/strong&gt;：华东师范大学、美的集团 AI Lab、雪城大学、北京人形机器人创新中心、上海大学&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;会议 / 期刊&lt;/strong&gt;：IEEE Robotics and Automation Letters (RA-L) 2025&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;论文链接&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2409.12514&quot;&gt;arXiv&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;代码链接&lt;/strong&gt;：&lt;a href=&quot;https://github.com/liyaxuanliyaxuan/TinyVLA&quot;&gt;liyaxuanliyaxuan/TinyVLA&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;项目主页&lt;/strong&gt;：&lt;a href=&quot;https://tiny-vla.github.io/&quot;&gt;TinyVLA&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; TinyVLA 提出一条更轻量的 VLA 构建路线：用按 LLaVA 流程预训练的紧凑视觉语言模型（VLM）初始化策略骨干，再用 Diffusion Policy 作为连续动作解码器；机器人微调阶段只更新少量 LoRA 参数和完整的 diffusion head，从而在无需 OpenX 级大规模机器人预训练的情况下，实现更快的推理、更高的数据效率，以及在多任务操作中与 OpenVLA 相当或更优的成功率。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;提出 TinyVLA，一个由轻量 VLM 骨干和 diffusion policy decoder 组成的新 VLA 架构。论文称其模型参数从 70M 到 1.4B，能够显著降低推理成本。&lt;/li&gt;
&lt;li&gt;证明可以在不依赖 OpenX 等大规模机器人数据集预训练的情况下训练 VLA，只使用每个真实任务约 100 条遥操作轨迹。&lt;/li&gt;
&lt;li&gt;在 MetaWorld 仿真、Franka 单臂真机、UR5 双臂真机上系统验证；TinyVLA-H 在单臂 5 任务平均成功率上比 OpenVLA 高 25.7%，参数量少约 5.5 倍，推理速度快约 20 倍。&lt;/li&gt;
&lt;li&gt;展示语言指令、新视角、背景、光照、干扰物、物体外观和空间位置等多类泛化能力，很多场景达到或超过 OpenVLA。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 现有 VLA 主要沿两条路线发展：RT-2、OpenVLA 等把动作表示成离散 token，交给大 VLM 做自回归生成；这类方法能继承互联网图文知识，但推理慢、训练成本高。论文指出 OpenVLA 使用约 970K 条 OpenX 机器人轨迹做预训练，并且动作 token 需要逐 token 生成，导致真机部署对算力和延迟都很敏感。&lt;/p&gt;
&lt;p&gt;相关工作的另一个来源是视觉语言模型。LLaVA 等 VLM 已经证明视觉 patch 可以进入 LLM embedding 空间并完成图文对齐，但大多数模型规模在 7B 以上。小规模 VLM（如 MobileVLM、Phi 系模型）研究则更多关注效率和速度，机器人学习社区对“小 VLM 能否直接作为策略骨干”仍缺少系统性验证。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在动作输出侧，Diffusion Policy 已经证明连续动作可以用条件去噪过程建模，能表达多模态动作分布并避免离散化信息损失。TinyVLA 的核心选择是把这两条线组合起来：保留小 VLM 的世界知识和语言理解能力，用 diffusion head 直接输出连续动作，而不是把动作塞进文本词表。&lt;/p&gt;
&lt;p&gt;与 RT-2 相比，TinyVLA 不做大规模机器人数据 co-training；与 OpenVLA 相比，它不依赖 7B 骨干和自回归动作 token；与普通 Diffusion Policy 相比，它把语言条件改由预训练 VLM 统一编码，而不是额外训练一套语言 embedding 或 FiLM 模块。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Task&lt;/strong&gt;：多任务真实/仿真机器人操作，包括单臂任务与双臂协作任务，要求策略理解语言指令并输出低层控制动作。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Observation&lt;/strong&gt;：多视角 RGB 图像与机器人本体状态。单臂 Franka 场景使用两侧 ZED 2 相机；双臂 UR5 场景使用两个 wrist 相机加一个顶部 RealSense D435i。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Action&lt;/strong&gt;：论文描述为 7 维动作，包括位置 $(x,y,z)$、旋转 $(\text{roll}, \text{pitch}, \text{yaw})$ 和归一化夹爪开度 $\text{gripper_width}$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Action Space&lt;/strong&gt;：连续动作。论文没有使用动作 tokenization，而是用 Diffusion Policy 直接生成连续动作序列。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Robot / Embodiment&lt;/strong&gt;：Franka Panda 7-DoF 单臂，以及两台 UR5 组成的双臂平台。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dataset&lt;/strong&gt;：单臂 5 个任务各 100 条遥操作轨迹；双臂 3 个任务采用遥操作数据。除 OpenBox 任务外，数据收集时不额外放置干扰物。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Training Objective&lt;/strong&gt;：学习给定视觉、语言和机器人状态条件下的动作条件分布。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;形式上，TinyVLA 学习的策略可以写作：&lt;/p&gt;
&lt;p&gt;$$
\pi_\theta(a_{t:t+K} \mid o_t, l, q_t)
$$&lt;/p&gt;
&lt;p&gt;其中 $o_t$ 是多视角视觉观测，$l$ 是语言指令，$q_t$ 是机器人本体状态，$a_{t:t+K}$ 是长度为 $K$ 的连续动作 chunk。TinyVLA 不直接回归单步动作，而是用条件扩散过程表达这一分布。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方代码 &lt;code&gt;train_tinyvla.py&lt;/code&gt; 的默认动作定义与论文正文不完全一致：&lt;code&gt;action_dim=10&lt;/code&gt;、&lt;code&gt;state_dim=7&lt;/code&gt;、&lt;code&gt;chunk_size=16&lt;/code&gt;。推理脚本 &lt;code&gt;eval_real_franka.py&lt;/code&gt; 把前 3 维当位置，第 4-9 维当 6D rotation，最后一维当 gripper，再把 6D rotation 转成 euler 输出。因此论文说的“7 维动作”是最终控制接口，而模型内部实际处理 10 维动作。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; TinyVLA 的架构分成两阶段：先按 LLaVA 流程预训练一个紧凑 VLM，再把 VLM 的 multimodal embedding 投影成 diffusion policy 的条件。机器人微调时，VLM 用 LoRA 参数高效更新，diffusion head 全参数训练。&lt;/p&gt;
&lt;p&gt;整体数据流是：多视角图像和语言指令进入 VLM，VLM 输出变长 multimodal embedding；该 embedding 经 adaptive pooling 和 layer normalization 变成定长表示，再与机器人本体状态拼接，经过 3 层 MLP 后作为 diffusion policy 的条件；diffusion head 从噪声中逐步恢复一整段连续动作。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;紧凑 VLM 骨干&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：多视角 RGB 图像和语言指令。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：融合了视觉与语言信息的 hidden representation。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;功能&lt;/strong&gt;：把预训练图文知识迁移到机器人策略中。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要&lt;/strong&gt;：论文认为 VLM 预训练带来的语言理解、物体识别和场景语义是 TinyVLA 泛化能力的主要来源，因此即使不用机器人数据预训练，也能理解新指令和新物体。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文使用 Pythia 作为 LLM 后端，按 LLaVA 训练流程构建 VLM，保留 visual backbone 与 vision-language alignment module。论文给出 S/B/H 三种规模，基于 70M 到 1.4B 的紧凑 VLM。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方 README 提供 &lt;code&gt;Llava-Pythia-400M&lt;/code&gt;、&lt;code&gt;Llava-Pythia-700M&lt;/code&gt;、&lt;code&gt;Llava-Pythia-1.3B&lt;/code&gt; 三个权重，分别用于 TinyVLA-S/B/H。代码中的 &lt;code&gt;LlavaPythiaForCausalLM&lt;/code&gt; 继承 &lt;code&gt;GPTNeoX&lt;/code&gt; 并组合 &lt;code&gt;LlavaMetaForCausalLM&lt;/code&gt;，视觉特征通过 &lt;code&gt;mm_projector&lt;/code&gt; 映射到 LLM hidden space。&lt;/p&gt;
&lt;h4&gt;LoRA 参数高效微调&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：预训练 VLM 的线性层权重。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：带低秩增量 $\Delta W = BA$ 的新权重。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;功能&lt;/strong&gt;：只更新低秩矩阵，保留预训练知识。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要&lt;/strong&gt;：论文希望模型在机器人数据上调整时，不破坏 VLM 已有的语言与视觉语义。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文说明 LoRA 被加到 attention 机制的 $Q,K,V$ 权重上，其余 Transformer 权重冻结；可训练参数约占整个 Transformer 的 5.0%。训练结束后把 LoRA 做 re-parameterization 融合回标准模型，以提升推理速度。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方 &lt;code&gt;scripts/train.sh&lt;/code&gt; 设置 &lt;code&gt;--lora_module &apos;vit llm&apos;&lt;/code&gt;、&lt;code&gt;--lora_r 64&lt;/code&gt;、&lt;code&gt;--lora_alpha 256&lt;/code&gt;、&lt;code&gt;--freeze_vision_tower True&lt;/code&gt;、&lt;code&gt;--freeze_backbone True&lt;/code&gt;、&lt;code&gt;--tune_mm_mlp_adapter True&lt;/code&gt;。实际 &lt;code&gt;find_all_linear_names&lt;/code&gt; 会对视觉塔和 LLM 中几乎所有 &lt;code&gt;nn.Linear&lt;/code&gt; 加 LoRA，不只限于 attention 的 Q/K/V；&lt;code&gt;mm_projector&lt;/code&gt; 则默认被排除在 LoRA 之外。&lt;/p&gt;
&lt;h4&gt;Diffusion Policy Decoder&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：VLM hidden representation、机器人状态、diffusion timestep、noisy action chunk。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：预测噪声，或经迭代去噪后的连续动作 chunk。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;功能&lt;/strong&gt;：把连续动作生成建模为条件扩散过程。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要&lt;/strong&gt;：论文认为离散动作 tokenization 对连续、高维动作数据训练困难，容易收敛到单一状态；直接生成连续动作可以避免昂贵的自回归 token 生成。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文使用标准 DDPM 训练方式训练 diffusion head，并称该 head 为 policy decoder。VLM 输出的 embedding 先变成固定、紧凑的特征，再作为 denoising network 的条件。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;LlavaPythiaForCausalLM&lt;/code&gt; 中 &lt;code&gt;droid_diffusion&lt;/code&gt; 分支使用 &lt;code&gt;DDIMScheduler(num_train_timesteps=100, beta_schedule=&apos;squaredcos_cap_v2&apos;, prediction_type=&apos;epsilon&apos;)&lt;/code&gt;，&lt;code&gt;ConditionalUnet1D&lt;/code&gt; 默认 &lt;code&gt;down_dims=[256,512,1024]&lt;/code&gt;、&lt;code&gt;kernel_size=5&lt;/code&gt;、&lt;code&gt;n_groups=8&lt;/code&gt;；训练噪声样本数 &lt;code&gt;noise_samples=1&lt;/code&gt;，推理去噪步数 &lt;code&gt;num_inference_timesteps=10&lt;/code&gt;，&lt;code&gt;num_queries=chunk_size=16&lt;/code&gt;。&lt;/p&gt;
&lt;h4&gt;多视角视觉融合&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 单臂任务有两路视觉输入，双臂任务有三路视觉输入。论文没有把多视角建模为额外特殊结构，而是让 VLM 同时消费所有视角的图像。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 数据处理器把每个视角分别预处理，&lt;code&gt;forward_process&lt;/code&gt; 生成 &lt;code&gt;image&lt;/code&gt;、&lt;code&gt;image_r&lt;/code&gt;，三视角时还会生成 &lt;code&gt;image_top&lt;/code&gt;；模型在 &lt;code&gt;get_image_fusion_embedding&lt;/code&gt; 中分别编码后沿 token 维拼接，再送入 LLM。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;LoRA 权重更新&lt;/h4&gt;
&lt;p&gt;$$
W&apos; = W_0 + \frac{\alpha}{r} BA
$$&lt;/p&gt;
&lt;p&gt;其中 $W_0 \in \mathbb{R}^{d \times k}$ 是冻结的原始权重，$B \in \mathbb{R}^{d \times r}$、$A \in \mathbb{R}^{r \times k}$ 是可训练低秩矩阵，$r \ll \min(d,k)$，$\alpha$ 是 LoRA 缩放系数。论文正文只写 $W_0 + BA$，代码中额外使用 LoRA 的 $\alpha/r$ 缩放。&lt;/p&gt;
&lt;h4&gt;条件扩散训练目标&lt;/h4&gt;
&lt;p&gt;训练时，对干净动作 $a$ 采样噪声 $\epsilon \sim \mathcal N(0, I)$ 和 diffusion timestep $t$，得到 noisy action：&lt;/p&gt;
&lt;p&gt;$$
\tilde a_t = \sqrt{\bar\alpha_t}, a + \sqrt{1-\bar\alpha_t}, \epsilon
$$&lt;/p&gt;
&lt;p&gt;目标是让条件 UNet 预测该噪声：&lt;/p&gt;
&lt;p&gt;$$
\mathcal L = \mathbb E_{t,\epsilon}\left[\left| \epsilon - \epsilon_\theta(\tilde a_t, t, c, q) \right|^2\right]
$$&lt;/p&gt;
&lt;p&gt;其中 $c$ 是 VLM 输出的条件表示，$q$ 是机器人状态，$\bar\alpha_t$ 是 DDIM/DDPM 前向噪声调度中的累积系数。代码中会对 &lt;code&gt;is_pad&lt;/code&gt; 为真的位置做 mask，不计算 loss。&lt;/p&gt;
&lt;h4&gt;条件表示&lt;/h4&gt;
&lt;p&gt;$$
c = \text{MLP}\left(\left[ \text{LN}(\text{Pool}(h));\ q \right]\right)
$$&lt;/p&gt;
&lt;p&gt;$h$ 是 VLM 的 multimodal hidden states，$\text{Pool}$ 是 adaptive pooling，$\text{LN}$ 是 layer normalization，$q$ 是本体状态，$\text{MLP}$ 是论文描述的 3 层投影。代码中对应部分位于 &lt;code&gt;ConditionalUnet1D&lt;/code&gt; 的 &lt;code&gt;global_1d_pool&lt;/code&gt;、&lt;code&gt;norm_after_pool&lt;/code&gt; 和 &lt;code&gt;combine&lt;/code&gt;，但实际 &lt;code&gt;combine&lt;/code&gt; 只使用一个 &lt;code&gt;nn.Linear(global_cond_dim + state_dim, global_cond_dim)&lt;/code&gt;。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;VLM 预训练&lt;/strong&gt;：按 LLaVA pipeline，在 vision-language 数据上训练紧凑 VLM，不进行机器人数据预训练。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;机器人微调&lt;/strong&gt;：保留 VLM 全部模块，对 VLM 使用 LoRA，对 diffusion head 全参数训练。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;数据量&lt;/strong&gt;：单臂 5 个真实任务各 100 条遥操作轨迹；任务间长度差异较大，例如 StackCubes 轨迹长度从 100 到 300 不等。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;训练损失&lt;/strong&gt;：diffusion 的 noise prediction MSE loss，并对 padding 位置 mask。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;入口：&lt;code&gt;train_tinyvla.py&lt;/code&gt;，训练脚本 &lt;code&gt;scripts/train.sh&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;数据格式：与 ACT 一致，HDF5 中保存 &lt;code&gt;action&lt;/code&gt;、&lt;code&gt;language_raw&lt;/code&gt;、&lt;code&gt;observations/images&lt;/code&gt;、&lt;code&gt;observations/joint_positions&lt;/code&gt;、&lt;code&gt;qpos&lt;/code&gt;、&lt;code&gt;qvel&lt;/code&gt;；&lt;code&gt;TASK_CONFIGS&lt;/code&gt; 指定 camera names。&lt;/li&gt;
&lt;li&gt;数据归一化：&lt;code&gt;get_norm_stats&lt;/code&gt; 对 action 和 qpos 计算 mean/std，std 下限裁剪到 &lt;code&gt;1e-2&lt;/code&gt;；数据集按 &lt;code&gt;train_ratio&lt;/code&gt; 默认 0.95 划分 train/val。&lt;/li&gt;
&lt;li&gt;超参数：&lt;code&gt;lora_r=64&lt;/code&gt;、&lt;code&gt;lora_alpha=256&lt;/code&gt;、LoRA 学习率 &lt;code&gt;2e-4&lt;/code&gt;、非 LoRA（diffusion head）学习率 &lt;code&gt;2e-5&lt;/code&gt;、&lt;code&gt;weight_decay=0&lt;/code&gt;、&lt;code&gt;warmup_ratio=0.005&lt;/code&gt;、cosine scheduler、&lt;code&gt;bf16=True&lt;/code&gt;、&lt;code&gt;max_steps=10000&lt;/code&gt;、&lt;code&gt;per_device_train_batch_size=32&lt;/code&gt;、8 卡 DeepSpeed ZeRO-2、&lt;code&gt;pretrain_image_size=320&lt;/code&gt;、&lt;code&gt;image_aspect_ratio=pad&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;动作配置：&lt;code&gt;action_dim=10&lt;/code&gt;、&lt;code&gt;state_dim=7&lt;/code&gt;、&lt;code&gt;chunk_size=16&lt;/code&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;VLM 只前向一次，把图像、指令和状态编码成 diffusion condition。&lt;/li&gt;
&lt;li&gt;Diffusion head 从高斯噪声出发，经过少量去噪步直接得到连续动作，不逐 token 自回归。&lt;/li&gt;
&lt;li&gt;论文强调速度来自两个部分：更小的 VLM，以及避免动作 token 自回归生成。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;eval_real_franka.py&lt;/code&gt; 以 &lt;code&gt;temporal_agg=True&lt;/code&gt; 运行，&lt;code&gt;query_frequency=1&lt;/code&gt;，每次获得一个 &lt;code&gt;chunk_size=16&lt;/code&gt; 的动作 chunk 后写入 &lt;code&gt;all_time_actions&lt;/code&gt; 缓冲，再对同一目标时间步的多个历史预测用指数权重（&lt;code&gt;k=0.01&lt;/code&gt;）做 temporal ensembling。&lt;code&gt;convert_actions&lt;/code&gt; 会把模型输出的 10 维动作转换为 xyz + euler + gripper。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;| 论文描述                            | 官方代码位置                                                            | 实际行为                                                                                   |
| ----------------------------------- | ----------------------------------------------------------------------- | ------------------------------------------------------------------------------------------ |
| 紧凑 VLM，参数 70M 到 1.4B          | &lt;code&gt;README.md&lt;/code&gt;、&lt;code&gt;llava-pythia/model/language_model/pythia/llava_pythia.py&lt;/code&gt; | 发布权重为 400M / 700M / 1.3B 三档                                                         |
| LoRA 加在 attention 的 Q/K/V 上     | &lt;code&gt;llava-pythia/llava_pythia_utils.py&lt;/code&gt;                                    | &lt;code&gt;lora_module=&apos;vit llm&apos;&lt;/code&gt; 时对视觉塔和 LLM 中几乎所有 Linear 层加 LoRA，范围比 Q/K/V 更广    |
| 3 层 MLP 生成 diffusion condition   | &lt;code&gt;policy_heads/models/droid_unet_diffusion.py&lt;/code&gt;                           | 实际是 adaptive pooling + LayerNorm + 单个 &lt;code&gt;Linear&lt;/code&gt; 组合状态；另有 diffusion step encoder  |
| 标准 Diffusion Policy 训练与推理    | &lt;code&gt;llava-pythia/.../llava_pythia.py&lt;/code&gt;                                      | 使用 DDIM scheduler，训练 timestep 100，推理去噪 10 步，chunk size 16                      |
| 7 维动作                            | &lt;code&gt;train_tinyvla.py&lt;/code&gt;、&lt;code&gt;eval_real_franka.py&lt;/code&gt;                               | 默认 &lt;code&gt;action_dim=10&lt;/code&gt;，内部使用 6D rotation，推理时转 euler                                 |
| VLM 冻结、diffusion head 全参数训练 | &lt;code&gt;scripts/train.sh&lt;/code&gt;、&lt;code&gt;llava_pythia_utils.py&lt;/code&gt;                             | &lt;code&gt;freeze_vision_tower=True&lt;/code&gt;、&lt;code&gt;freeze_backbone=True&lt;/code&gt;，&lt;code&gt;embed_out&lt;/code&gt; 和 &lt;code&gt;proj_to_action&lt;/code&gt; 可训练 |&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;仿真&lt;/strong&gt;：MetaWorld 50 个任务，按 easy、medium、hard、very hard 分组；每个方法用 50 条 demonstration 做多任务训练，3 个 seed，每个 seed 的成功率在 5 个 iteration 上平均。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;单臂真机&lt;/strong&gt;：Franka Panda，5 个任务：CloseDrawer、StackCubes、OpenBox、PlaceTennis、FlipMug；每任务 100 条遥操作轨迹，每个模型每任务评测 20 trials，报告 3 个 checkpoint 的 mean/std。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;双臂真机&lt;/strong&gt;：两台 UR5，3 个任务：PlaceBread、StackCubes、PlaceTennisBag；每任务评测 10 trials。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Baseline&lt;/strong&gt;：Diffusion Policy、Multimodal Diffusion、OpenVLA。OpenVLA 被改成多视角输入；DP 被加上 FiLM 语言条件，保证对比公平。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;硬件&lt;/strong&gt;：单臂使用两侧 ZED 2 相机；双臂使用两个 wrist 相机加一个顶部 RealSense D435i。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 仿真实验中，TinyVLA-H 平均成功率 31.6%，Diffusion Policy 为 10.5%；在 Hard 任务上，TinyVLA-H 是 DP 的约 6 倍。&lt;/p&gt;
&lt;p&gt;| MetaWorld 50 tasks | Easy (28) | Medium (11) | Hard (6) | Very Hard (5) |  Avg |
| ------------------ | --------: | ----------: | -------: | ------------: | ---: |
| Diffusion Policy   |      23.1 |        10.7 |      1.9 |           6.1 | 10.5 |
| TinyVLA-H          |      77.6 |        21.5 |     11.4 |          15.8 | 31.6 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 单臂真机主表如下。TinyVLA-H 平均成功率 94.0%，比 OpenVLA 的 68.3% 高 25.7%，同时总参数为 1.3B，远小于 OpenVLA 的 7.2B；TinyVLA-H 可训练参数 143M，OpenVLA 为 195M。&lt;/p&gt;
&lt;p&gt;| 真实单臂任务         | Pre-trained Traj | Total Params | Trainable Params | PlaceTennis | FlipMug | StackCubes | CloseDrawer | OpenBox |  Avg |
| -------------------- | ---------------- | -----------: | ---------------: | ----------: | ------: | ---------: | ----------: | ------: | ---: |
| Diffusion Policy     | N/A              |         111M |             111M |        16.7 |    30.0 |        3.3 |        73.3 |    53.3 | 35.3 |
| Multimodal Diffusion | N/A              |         230M |             230M |        23.3 |    13.3 |        6.7 |        36.7 |    10.0 | 18.0 |
| OpenVLA              | 970K             |         7.2B |             195M |        83.3 |    51.7 |       40.0 |        85.0 |    81.7 | 68.3 |
| TinyVLA-S            | N/A              |         422M |             101M |         8.3 |     6.7 |        6.7 |        60.0 |    35.0 | 23.3 |
| TinyVLA-B            | N/A              |         740M |             138M |        76.7 |    76.7 |       71.7 |        81.7 |    80.0 | 77.4 |
| TinyVLA-H            | N/A              |         1.3B |             143M |        90.0 |    98.3 |       98.3 |        96.7 |    86.7 | 94.0 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 双臂 UR5 实验中，OpenVLA 在 3 个任务上全部失败，作者推测原因是 OpenX 数据全是单臂轨迹；TinyVLA-H 在 PlaceBread、StackCubes、PlaceTennisBag 上分别为 76.7、36.7、30.0。&lt;/p&gt;
&lt;p&gt;| 真实双臂任务     | PlaceBread | StackCubes | PlaceTennisBag |
| ---------------- | ---------: | ---------: | -------------: |
| Diffusion Policy |       40.3 |       31.3 |           43.0 |
| OpenVLA          |          0 |          0 |              0 |
| TinyVLA-H        |       76.7 |       36.7 |           30.0 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 需要提醒的是，正文称双臂平均成功率为 44.5%，但表格三项的平均是 47.8%。表格中的逐任务数值更具体，正文的平均值可能是早期版本数字；精读时应以表格逐任务结果为准。&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在单张 A6000 GPU 上，OpenVLA-7B 的单次动作预测约 292ms，替换成 OpenVLA-1B 后约 140ms，而 TinyVLA-1B 约 14ms。作者把 OpenVLA 的 Prismatic-7B 骨干替换为 TinyVLA 同架构骨干后仍有 10 倍差距，说明速度优势不只来自小 VLM，还来自 diffusion head 避免了动作 token 的自回归生成。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;VLM 规模&lt;/strong&gt;：作者比较 TinyVLA-0.4B、TinyVLA-1.3B 和基于 PaliGemma 的 TinyVLA-3B。规模越大，成功率越高；TinyVLA-0.4B 有 3 次因误解指令而失败，增大到 1.3B 后消失；更大模型还能减少定位不准和到达错误目标位置。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Policy head 选择&lt;/strong&gt;：用 TinyVLA-H 作基座，替换 diffusion head 为 MLP 或 ACT。MLP 在 5 个真实任务上全部失败；ACT 有一定成功率；diffusion head 显著最高。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;速度来源&lt;/strong&gt;：即使使用相似参数量的骨干，OpenVLA 仍因自回归动作 token 而显著更慢，证明扩散动作解码对推理速度贡献明显。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 所有泛化实验大多采用单次 trial 或少量 trial 的 checkmark/cross 记录方式。TinyVLA 在未训练的新指令、新物体、新位置、物体颜色变化、背景变化和光照变化上表现出与 OpenVLA 相当或更优的鲁棒性。&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;语言指令泛化&lt;/strong&gt;：TinyVLA-H 能区分训练中未见过的绿色 mug、按指令“pick the cube”抓住训练见过但组合未见的物体，并能对新物体 toy car 执行“pick and place into box”的组合指令。作者认为这说明预训练 VLM 已经提供了物体属性理解和功能组合能力。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;视角泛化&lt;/strong&gt;：Diffusion Policy 对视角变化非常敏感，TinyVLA 在 StackCube 和 FlipMug 等任务上能容忍约左右 30 度的视角偏移，强于 DP 和 OpenVLA。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;背景与光照&lt;/strong&gt;：在 6 种不同背景上，TinyVLA 能完成 PlaceTennis 等位置敏感任务；在关灯等低光照场景下，TinyVLA 仍能完成任务，而 OpenVLA 会失败。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;干扰物&lt;/strong&gt;：在 StackCube 任务中加入书本、杯子等无关物体，或加入不同颜色的同类 cube，TinyVLA 仍能成功；作者指出该结果是在没有训练数据增强的情况下取得的。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;物体外观与空间&lt;/strong&gt;：TinyVLA 能泛化到训练中未见过的物体形状/颜色；空间泛化上 OpenVLA 表现略好，作者认为这可能来自 OpenX 大规模机器人预训练见过更多动作分布，TinyVLA 仍明显强于同数据训练的 DP。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;VLM 提供语义先验&lt;/strong&gt;：TinyVLA 不依赖机器人预训练，而是依靠图文预训练带来的物体识别、颜色属性、语言指令理解和新物体概念。这让模型能完成“pick the car and place into box”这类训练外组合。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Diffusion head 保留连续动作精度&lt;/strong&gt;：动作不经过离散 token，避免量化误差和自回归误差累积；10 步 DDIM 又把推理成本控制在很低水平。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;LoRA 保护预训练知识&lt;/strong&gt;：机器人数据只改变低秩增量，VLM 的通用能力不容易被 100 条任务数据覆盖或遗忘。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;模型变小直接降低单次前向成本&lt;/strong&gt;：TinyVLA-H 总参数 1.3B，远小于 OpenVLA 的 7.2B，同时训练和部署门槛都大幅下降。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 本文的核心创新不是设计一个新的扩散模型，而是提出一个明确的 VLA 组合范式：紧凑预训练 VLM + 连续动作 diffusion decoder，并把“大规模机器人数据预训练”从必要步骤中移除。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 对社区更有价值的是“数据效率 + 推理效率”的实验证明：只用 100 条每任务轨迹，TinyVLA-H 就超过了依赖 970K 轨迹预训练的 OpenVLA。这说明对有限任务，机器人数据预训练可能不是小 VLA 的硬前提。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 与 RT-2/OpenVLA 的动作 tokenization 不同，TinyVLA 使用连续动作扩散；与 Diffusion Policy 相比，TinyVLA 用预训练 VLM 统一处理视觉和语言；与 RoboFlamingo 等小模型路线相比，TinyVLA 额外引入了 diffusion head，并系统验证了真机单臂和双臂。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 本质区别可以概括为“动作生成方式”和“预训练来源”两个维度的组合：TinyVLA 用 VLM 提供语义、用 diffusion 提供连续动作表达，机器人数据只做少量适配。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;预训练 VLM 的图文知识能直接迁移到机器人操作语义，不需要机器人动作数据预训练。&lt;/li&gt;
&lt;li&gt;100 条遥操作轨迹足以在紧凑 VLM 上适配一个新任务。&lt;/li&gt;
&lt;li&gt;VLM hidden representation 与 diffusion condition 之间可以用简单 pooling/projection 对齐。&lt;/li&gt;
&lt;li&gt;当前评测任务的成功率足以代表操作质量，且少量 trial 的泛化结果具有稳定信号。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文没有独立 limitations 小节，但实验部分提到几处边界：空间泛化上 OpenVLA 略优于 TinyVLA；双臂任务中 Diffusion Policy 在 PlaceTennisBag 上达到 43%，比 TinyVLA-H 的 30% 更高；小模型 TinyVLA-S 会出现指令误解、定位不准等问题。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;任务规模有限&lt;/strong&gt;：单臂 5 任务、双臂 3 任务，每个任务 100 条轨迹，不能证明模型在跨 embodiment、跨任务库或开放词汇指令上具备通用 VLA 能力。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;泛化统计弱&lt;/strong&gt;：视角、背景等泛化实验很多只有 1-6 次 trial，checkmark/cross 形式能展示定性趋势，但不足以给出高置信度的成功率。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;论文与代码存在差异&lt;/strong&gt;：动作维度、LoRA 范围、projection 结构不完全一致；官方 eval 脚本更像适配特定机器人环境的参考实现，而不是开箱即用的完整部署代码。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;双臂实验规模小&lt;/strong&gt;：每个任务 10 trials，且 Table 与正文平均成功率不一致，复现时需要以逐任务原始记录为准。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;没有充分讨论失败场景&lt;/strong&gt;：失败率图展示的是错误类型，但缺少对真实接触、夹持滑动、轨迹平滑等操作细节的定量分析。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;动作表示决定 VLA 的实时性&lt;/strong&gt;：TinyVLA 用 10 步 DDIM 替代 7 个动作 token 的自回归生成，把单次动作预测降到 14ms。未来 VLA 设计可以更多考虑“连续动作解码器”而不是只在离散 token 上优化采样策略。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;预训练权重来源比机器人预训练更容易迁移&lt;/strong&gt;：只用视觉语言数据训练的紧凑 VLM 就能理解新指令和新物体，说明 robot data pretraining 和 web-scale VLM pretraining 在功能上并不完全等价。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;LoRA 与全参数 head 的分工值得复用&lt;/strong&gt;：冻结大部分 VLM、只训练低秩增量和动作头，既保留语义知识，又能让动作解码器充分拟合任务。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;需要更严格的多 trial 泛化基准&lt;/strong&gt;：当前泛化实验采用少量 checkmark/cross，未来研究应把视角、背景、光照、干扰物和空间位置都纳入统一的统计评测，减少结论波动。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;小模型 VLA 的边界仍是 open question&lt;/strong&gt;：TinyVLA-S 的失败说明模型太小会损失指令理解；TinyVLA-H 表现最好，但能否通过更大 VLM、更好投影或更多数据继续扩展，论文只提供了有限证据。&lt;/li&gt;
&lt;/ol&gt;</content:encoded><h:img src="https://pic.hana0721.top/142350190_p0_master1200.2yyy3wl757.webp"/><enclosure url="https://pic.hana0721.top/142350190_p0_master1200.2yyy3wl757.webp"/></item><item><title>RT-2 论文精读：Vision-Language-Action Models</title><link>https://agusexp25.top/blog/paper-deep-dive-rt2</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-rt2</guid><description>精读 RT-2：把低层机器人动作编码成 VLM 文本 token，与互联网图文数据 co-fine-tune，让 VLA 直接输出控制动作，并系统分析其泛化、符号理解、推理与代码边界。</description><pubDate>Sun, 23 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;论文名称&lt;/strong&gt;：《RT-2: Vision-Language-Action Models Transfer Web Knowledge to Robotic Control》&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;作者&lt;/strong&gt;：Anthony Brohan、Noah Brown、Justice Carbajal 等 54 位作者，按字母序排列&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;机构&lt;/strong&gt;：Google DeepMind&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;会议 / 期刊&lt;/strong&gt;：CoRL 2023&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;论文链接&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2307.15818&quot;&gt;arXiv&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;项目主页&lt;/strong&gt;：&lt;a href=&quot;https://robotics-transformer2.github.io/&quot;&gt;RT-2: Vision-Language-Action Models&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;代码链接&lt;/strong&gt;：&lt;a href=&quot;https://github.com/google-research/robotics_transformer&quot;&gt;google-research/robotics_transformer&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; RT-2 提出 vision-language-action model（VLA）这一模型类别：不新增专门的动作网络，也不把 VLM 只当作高层 planner，而是把机器人低层动作离散化为文本 token，直接在 PaLI-X 和 PaLM-E 两个 VLM 上与互联网图文数据 co-fine-tune，使同一个模型既能回答 VQA，也能输出闭环机器人动作。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;定义 VLA，把预训练 VLM 的 &lt;code&gt;{vision, text} -&gt; text&lt;/code&gt; 输出空间扩展到机器人动作 token，且不新增任何 action-only 参数。&lt;/li&gt;
&lt;li&gt;将 RT-1 的 8 维动作离散化方案搬到 VLM tokenizer：连续维度均匀分成 256 个 bin，PaLI-X 使用数字 token，PaLM-E 覆盖最不常用的 256 个 token。&lt;/li&gt;
&lt;li&gt;使用 co-fine-tuning，而不是只用 robot data 微调，防止 VLM 在学会低层动作时遗忘互联网视觉和语言知识。&lt;/li&gt;
&lt;li&gt;通过 multi-TPU cloud service 部署 55B VLA，达到 1-3 Hz 闭环控制，并验证约 6000 条真实机器人 evaluation trajectory。&lt;/li&gt;
&lt;li&gt;量化并验证 symbol understanding、reasoning、person recognition 和 chain-of-thought 等 emergent capability。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 大规模 LLM 和 VLM 具备开放词汇视觉识别、物体关系推理和问题求解能力，但机器人需要的是可执行的低层动作。若只在机器人数据上训练一个专用 policy，机器人数据规模很难追上互联网图文数据；若只把 LLM/VLM 当高层 planner，低层控制器又无法直接继承互联网预训练的语义知识。RT-2 的目标是把这两条路线压缩成一个端到端模型。&lt;/p&gt;
&lt;p&gt;相关工作可以分成三类：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Vision-Language Models&lt;/strong&gt;：PaLI、PaLI-X、PaLM-E、Flamingo 等模型通常接收一张或多张图像与文本 prompt，输出自然语言 token。RT-2 不重新设计这些 VLM，而是沿用其预训练权重和 tokenizer。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Generalization in robot learning&lt;/strong&gt;：过去的 robot learning 通常只在 novel objects、novel tasks、new goals 或 unseen environments 的单一轴上做泛化。RT-2 试图用一个模型同时覆盖这些轴。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Pre-training for robotic manipulation&lt;/strong&gt;：多数工作只预训练视觉 encoder，或把语言模型当作 instruction encoder，或把 VLM 用于 CLIPort、MOO 这类带较强结构假设的 policy。RT-2 的差异是直接共享 VLM 的完整输出空间，不引入只处理动作的新组件。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这篇文章最重要的背景判断是：机器人低层动作和自然语言响应在“自回归 token sequence”层面可以被统一。这个判断让 VLM 不需要新的 action head，也决定了后续 VLA 研究通常都围绕 tokenization、co-training 和 inference speed 展开。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Task&lt;/strong&gt;：给定当前 RGB observation 和自然语言 instruction，输出一个可执行的机器人动作；同一模型还要继续完成 VQA、captioning 等互联网视觉-语言任务。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Observation&lt;/strong&gt;：机器人相机图像和文本任务描述。文本使用 VQA 格式，例如 &lt;code&gt;Q: what action should the robot take to [task instruction]? A:&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Action&lt;/strong&gt;：末端执行器的 6-DoF 相对位移、夹爪开合程度，以及一个离散的 &lt;code&gt;terminate&lt;/code&gt; 命令。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Action Space&lt;/strong&gt;：6 个连续动作维度 + 1 个连续 gripper dimension + 1 个离散 terminate dimension，共 8 维。连续维度均匀离散化为 256 个 bin。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Robot / Embodiment&lt;/strong&gt;：7DoF mobile manipulator；Language-Table 实验使用不同的 2D setpoint 机器人。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dataset&lt;/strong&gt;：PaLI-X/PaLM-E 的互联网 VLM 数据 + RT-1 的 instruction-annotated robot demonstration。RT-1 robot data 由 13 台机器人在办公室厨房环境收集 17 个月得到。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Training Objective&lt;/strong&gt;：把机器人数据构造成 multimodal sentence，对 action token 做 next-token prediction。论文明确指出该目标在 robot learning 中对应 behavior cloning loss。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;形式上，输入是图像 $x_{\text{img}}$、文本 instruction $x_{\text{text}}$，输出是 action token 序列 $y_{1:N}$。训练目标是：&lt;/p&gt;
&lt;h1&gt;$$
\mathcal L(\theta)&lt;/h1&gt;
&lt;p&gt;-\sum_{t \in \mathcal A}
\log p_\theta(y_t \mid x_{\text{img}}, x_{\text{text}}, y_{&amp;#x3C;t})
$$&lt;/p&gt;
&lt;p&gt;其中 $\mathcal A$ 是 action token 的位置集合。非动作 token 的位置可参与模型推理，但不计入 action loss。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;RT-2 没有设计新的视觉-语言-动作专用网络，而是直接改造两个已有 VLM：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;RT-2-PaLI-X&lt;/strong&gt;：基于 PaLI-X 5B / 55B。视觉编码器为 ViT，encoder-decoder backbone 为 32B、50 层 UL2 类似结构。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;RT-2-PaLM-E&lt;/strong&gt;：基于 PaLM-E 12B。视觉编码器为 ViT-4B，语言骨干为 decoder-only PaLM。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;整体数据流是：图像和文本 prompt 进入预训练 VLM，模型自回归生成 token；当任务是 robot action 时，只从合法 action token 中采样，再 de-tokenize 成机器人动作。训练和推理的逐步过程分别见 4.4 和 4.5。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;Action Tokenizer&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：训练时是 8 维连续/离散动作；推理时是模型生成的 action token。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：训练时是 8 个离散 token；推理时是恢复后的动作。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;功能&lt;/strong&gt;：把连续动作映射到 VLM 已有词汇表，使动作预测和语言预测共用同一套网络。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要&lt;/strong&gt;：VLM 的输出层已经是 token 分类器，只有把动作变成 token，才能完全复用 VLM 骨干，不增加 action-only 网络。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;动作顺序为：&lt;/p&gt;
&lt;p&gt;$$
\text{terminate},\ \Delta \text{pos}_x,\ \Delta \text{pos}_y,\ \Delta \text{pos}_z,\ \Delta \text{rot}_x,\ \Delta \text{rot}_y,\ \Delta \text{rot}_z,\ \text{gripper_extension}
$$&lt;/p&gt;
&lt;p&gt;连续维度被均匀分成 256 个 bin，bin index 作为 token 表示。PaLI-X 本身有 &lt;code&gt;0..999&lt;/code&gt; 的数字 token，所以直接使用对应整数；PaLM-E 没有这种数字 token，论文选择覆盖其词汇表中 256 个 least frequently used token。&lt;/p&gt;
&lt;h4&gt;Co-Fine-Tuning&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：robot trajectory batch 与 web vision-language batch 的混合。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：同时保留 VQA/captioning 能力和低层 action 预测能力的单一 VLA。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;功能&lt;/strong&gt;：防止只在 robot data 上 fine-tune 导致灾难性遗忘，同时让模型在训练中持续看到抽象视觉概念与低层动作。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要&lt;/strong&gt;：消融实验显示 co-fine-tuning 优于 robot-data-only fine-tuning，更远优于 from scratch。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;论文没有把 co-fine-tuning 写成一个加权 loss，而是通过调整每个 batch 中 robot data 的采样比例实现。RT-2-PaLI-X 的 robot data 约占 50%，RT-2-PaLM-E 约占 66%。&lt;/p&gt;
&lt;h4&gt;Output Constraint&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：模型生成的 logits。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：robot-action task 下只允许采样 256 个合法 action token，web task 下仍允许完整自然语言词汇表。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;功能&lt;/strong&gt;：保证真实机器人执行的动作 token 一定可被 de-tokenize。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要&lt;/strong&gt;：VLM 可能生成非法数字、标点或自然语言，若不约束，这些输出无法映射为机器人动作。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;动作离散化&lt;/h4&gt;
&lt;p&gt;对连续动作维度 $a_i$，设其取值范围为 $[a_i^{\min}, a_i^{\max}]$，离散 bin 数为 $V=256$：&lt;/p&gt;
&lt;h1&gt;$$
b_i&lt;/h1&gt;
&lt;p&gt;\left\lfloor
\frac{a_i - a_i^{\min}}{a_i^{\max} - a_i^{\min}}
(V-1)
\right\rfloor
$$&lt;/p&gt;
&lt;p&gt;de-tokenize 时用相同映射把 bin center 或 token value 还原回连续区间。RT-2 论文没有给出这一公式的显式编号，但动作空间、256 bin 和均匀离散化均在论文中明确描述。&lt;/p&gt;
&lt;h4&gt;Next-Token Prediction&lt;/h4&gt;
&lt;p&gt;对 action token 位置集合 $\mathcal A$，目标为：&lt;/p&gt;
&lt;h1&gt;$$
\mathcal L&lt;/h1&gt;
&lt;p&gt;-\frac{1}{|\mathcal A|}
\sum_{t \in \mathcal A}
\log p_\theta(y_t \mid x_{\text{img}}, x_{\text{text}}, y_{&amp;#x3C;t})
$$&lt;/p&gt;
&lt;p&gt;这一目标与语言模型 next-token prediction 相同。由于机器人数据的 supervision 是专家动作 token，因此它同时就是 robot learning 中的 behavior cloning loss。&lt;/p&gt;
&lt;h4&gt;Chain-of-Thought 数据格式&lt;/h4&gt;
&lt;p&gt;CoT 变体把 prompt 扩展为：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;Instruction: I&apos;m hungry. Plan: pick rxbar chocolate. Action: 1 128 124 136 121 158 111 255.
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;其中 &lt;code&gt;Plan&lt;/code&gt; 是自然语言中间推理，&lt;code&gt;Action&lt;/code&gt; 是最终动作 token。训练时先让模型生成 Plan，再生成 Action。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Base Model&lt;/strong&gt;：PaLI-X 5B、PaLI-X 55B、PaLM-E 12B；Language-Table 实验使用较小的 PaLI 3B。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;训练数据&lt;/strong&gt;：PaLI-X/PaLM-E 原始 web VLM 数据 + RT-1 robot demonstration data。web 数据包括 VQA、captioning、interwoven image-text examples。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Prompt 格式&lt;/strong&gt;：&lt;code&gt;Q: what action should the robot take to [task instruction]? A:&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Loss&lt;/strong&gt;：next-token prediction / behavior cloning loss。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Co-Fine-Tuning 比例&lt;/strong&gt;：RT-2-PaLI-X robot data 约 50%，RT-2-PaLM-E 约 66%。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Learning Rate / Batch / Steps&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;RT-2-PaLI-X-55B：lr &lt;code&gt;1e-3&lt;/code&gt;，batch size &lt;code&gt;2048&lt;/code&gt;，&lt;code&gt;80K&lt;/code&gt; gradient steps。&lt;/li&gt;
&lt;li&gt;RT-2-PaLI-X-5B：lr &lt;code&gt;1e-3&lt;/code&gt;，batch size &lt;code&gt;2048&lt;/code&gt;，&lt;code&gt;270K&lt;/code&gt; gradient steps。&lt;/li&gt;
&lt;li&gt;RT-2-PaLM-E-12B：lr &lt;code&gt;4e-4&lt;/code&gt;，batch size &lt;code&gt;512&lt;/code&gt;，&lt;code&gt;1M&lt;/code&gt; gradient steps。&lt;/li&gt;
&lt;li&gt;Language-Table PaLI-3B：lr &lt;code&gt;1e-3&lt;/code&gt;，batch size &lt;code&gt;128&lt;/code&gt;，&lt;code&gt;300K&lt;/code&gt; gradient steps。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Optimization Details&lt;/strong&gt;：沿用 PaLI-X/PaLM-E 原始学习率 schedule 和正则化。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 推理时模型接收当前图像和 task instruction，自回归生成 action token。若是 robot-action task，输出被约束为合法 action token；生成完成后 de-tokenize 为末端执行器动作，并进入下一轮闭环控制。RT-2-PaLI-X-55B 部署在 multi-TPU cloud service，通过 network query，达到 1-3 Hz；RT-2-PaLI-X-5B 约 5 Hz。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文项目页没有提供 RT-2 的训练或推理代码。最接近的官方仓库是 &lt;code&gt;google-research/robotics_transformer&lt;/code&gt;，但其 README 明确说明该仓库只包含 RT-1，未包含 RT-2 的 VLM co-fine-tuning。因此，本节不能逐行核对 RT-2 训练实现，只能使用该仓库核对论文中共享的动作离散化和 RT-1 基线行为，并明确代码与论文的边界。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;| 论文概念 | 官方仓库文件 | 代码实际行为 |
| --- | --- | --- |
| 动作 256 bin 离散化 | &lt;code&gt;tokenizers/action_tokenizer.py&lt;/code&gt; | &lt;code&gt;RT1ActionTokenizer&lt;/code&gt; 接收 &lt;code&gt;vocab_size&lt;/code&gt; 与 &lt;code&gt;action_order&lt;/code&gt;，连续维度用 &lt;code&gt;(a - min) / (max - min) * (vocab_size - 1)&lt;/code&gt; 做 bucket，int32 terminate 用 one-hot argmax 提取 token |
| 8 维动作序列 | &lt;code&gt;tokenizers/action_tokenizer.py&lt;/code&gt; | 按 action order 拼接 terminate、world_vector、rotation_delta、gripper_closedness，得到 8 个 token |
| RT-1 Transformer 网络 | &lt;code&gt;transformer_network.py&lt;/code&gt; | &lt;code&gt;TransformerNetwork&lt;/code&gt; 创建 image tokenizer、action tokenizer 和 decoder-only Transformer；默认 &lt;code&gt;vocab_size=256&lt;/code&gt;、&lt;code&gt;token_embedding_size=512&lt;/code&gt; |
| 训练 loss | &lt;code&gt;transformer_network.py&lt;/code&gt; | 用 &lt;code&gt;SparseCategoricalCrossentropy&lt;/code&gt; 对 action token 位置计算 loss |
| 闭环推理 | &lt;code&gt;transformer_network.py&lt;/code&gt; | &lt;code&gt;outer_rank == 1&lt;/code&gt; 时逐个预测 &lt;code&gt;tokens_per_action&lt;/code&gt; 个 token，再把 token detokenize 为动作 |
| RT-1 baseline 配置 | &lt;code&gt;configs/transformer_mixin.gin&lt;/code&gt; | &lt;code&gt;num_layers=8&lt;/code&gt;、&lt;code&gt;layer_size=128&lt;/code&gt;、&lt;code&gt;num_heads=8&lt;/code&gt;、&lt;code&gt;feed_forward_size=512&lt;/code&gt;、&lt;code&gt;time_sequence_length=6&lt;/code&gt;、&lt;code&gt;use_token_learner=True&lt;/code&gt; |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 从代码可以确认两点：其一，RT-2 的 action discretization 确实继承了 RT-1 的 256-bin 表示；其二，&lt;code&gt;google-research/robotics_transformer&lt;/code&gt; 的视觉模块仍是 FiLM EfficientNet + TokenLearner，与 RT-2 使用 PaLI-X/PaLM-E ViT 的路径不同。因此不能把该仓库当作 RT-2 的实现，但它足以说明 RT-1 baseline 和 action tokenization 的底层行为。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文使用约 6000 条 evaluation trajectory。主实验沿用 RT-1 的 seen tasks，包括 pick、knock、place upright、move、open/close drawer、pick from/place into drawer 等 200 多个任务。泛化实验分为 unseen objects、unseen backgrounds、unseen environments，每类再分 easy 和 hard。&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Baselines 都使用与 RT-2 相同的 robot data：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;RT-1&lt;/strong&gt;：35M 参数的 transformer policy。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;VC-1&lt;/strong&gt;：ViT-L 视觉表示，加 Universal Sentence Encoder 语言 embedding，再接 RT-1 backbone。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;R3M&lt;/strong&gt;：ResNet50 视觉表示，按与 VC-1 相同方式构造 policy。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MOO&lt;/strong&gt;：VLM 先输出 object-centric semantic map，再交给 RT-1 backbone。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; RT-2 在 seen tasks 上与 RT-1 接近，在 unseen categories 上明显领先。两个 RT-2 实例的 unseen average 都约为 62%，相对 RT-1 和 MOO 的下一个最好结果约提升 2 倍，相对更弱 baseline 约提升 6 倍。&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;| Model | Seen Tasks | Unseen Objects Easy | Unseen Objects Hard | Unseen Backgrounds Easy | Unseen Backgrounds Hard | Unseen Environments Easy | Unseen Environments Hard | Unseen Average |
| --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: |
| R3M | 45 | 32 | 14 | 13 | 9 | 0 | 2 | 12 |
| VC-1 | 63 | 34 | 10 | 13 | 3 | 0 | 0 | 10 |
| RT-1 | &lt;strong&gt;92&lt;/strong&gt; | 31 | 43 | 71 | 9 | 26 | 14 | 32 |
| MOO | 75 | 58 | 48 | 38 | 41 | 19 | 3 | 35 |
| RT-2-PaLI-X-55B | &lt;strong&gt;91&lt;/strong&gt; | &lt;strong&gt;70&lt;/strong&gt; | &lt;strong&gt;62&lt;/strong&gt; | &lt;strong&gt;96&lt;/strong&gt; | &lt;strong&gt;48&lt;/strong&gt; | &lt;strong&gt;63&lt;/strong&gt; | &lt;strong&gt;35&lt;/strong&gt; | &lt;strong&gt;62&lt;/strong&gt; |
| RT-2-PaLM-E-12B | &lt;strong&gt;93&lt;/strong&gt; | &lt;strong&gt;84&lt;/strong&gt; | &lt;strong&gt;76&lt;/strong&gt; | &lt;strong&gt;75&lt;/strong&gt; | &lt;strong&gt;71&lt;/strong&gt; | &lt;strong&gt;36&lt;/strong&gt; | &lt;strong&gt;33&lt;/strong&gt; | &lt;strong&gt;62&lt;/strong&gt; |&lt;/p&gt;
&lt;p&gt;Emergent capability 定量实验中，RT-2-PaLI-X-55B 的 average success rate 为 60%，RT-1 为 17%，VC-1 为 11%。RT-2-PaLI-X 相对最好 baseline 在平均成功率上超过 3 倍。&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Language-Table 仿真 benchmark 上，RT-2-PaLI-3B 得到 &lt;code&gt;90 ± 10&lt;/code&gt;，高于 BC-Zero &lt;code&gt;72 ± 3&lt;/code&gt;、RT-1 &lt;code&gt;74 ± 13&lt;/code&gt; 和 LAVA &lt;code&gt;77 ± 4&lt;/code&gt;。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 消融比较 RT-2-PaLI-X 5B/55B，以及 from scratch、fine-tuning、co-fine-tuning 三种训练方式。主要结论：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;from scratch 即使 5B 也表现很差，说明 VLM 预训练权重是泛化的关键。&lt;/li&gt;
&lt;li&gt;co-fine-tuning 优于 robot-data-only fine-tuning，说明保留 web data 可减轻遗忘。&lt;/li&gt;
&lt;li&gt;55B 优于 5B，说明模型规模仍能带来额外泛化收益。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;| Model | Training | Unseen Objects Easy | Unseen Objects Hard | Unseen Backgrounds Easy | Unseen Backgrounds Hard | Unseen Environments Easy | Unseen Environments Hard | Average |
| --- | --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: |
| RT-2-PaLI-X 5B | from scratch | 0 | 10 | 46 | 0 | 0 | 0 | 9 |
| RT-2-PaLI-X 5B | fine-tuning | 24 | 38 | 79 | 50 | 36 | 23 | 42 |
| RT-2-PaLI-X 5B | co-fine-tuning | 60 | 38 | 67 | 29 | 44 | 24 | 44 |
| RT-2-PaLI-X 55B | fine-tuning | 60 | 62 | 75 | 38 | 57 | 19 | 52 |
| RT-2-PaLI-X 55B | co-fine-tuning | 70 | 62 | 96 | 48 | 63 | 35 | 63 |&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Emergent evaluation 分为三组：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Symbol Understanding&lt;/strong&gt;：如 &lt;code&gt;move apple to 3&lt;/code&gt;、&lt;code&gt;push coke can on top of heart&lt;/code&gt;。RT-2-PaLI-X-55B 的 symbol average 为 82%，RT-1 为 16%。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reasoning&lt;/strong&gt;：包括 math、logos、nutrition、color/multilingual。RT-2-PaLI-X-55B average 为 46%，RT-2-PaLM-E-12B 为 43%。PaLM-E 在 math 上更好，论文归因于 PaLM-E 的预训练 mixture 有更强数学能力。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Person Recognition&lt;/strong&gt;：如 &lt;code&gt;move coke can to taylor swift&lt;/code&gt;、&lt;code&gt;move coke can to person with glasses&lt;/code&gt;。RT-2-PaLI-X-55B average 为 53%，RT-1 为 20%。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Chain-of-thought 变体仅在 PaLM-E 上额外 fine-tune few hundred gradient steps，使用 &lt;code&gt;Instruction / Plan / Action&lt;/code&gt; 数据格式。论文展示的 CoT rollout 说明模型能先做自然语言规划，再执行动作。&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 有效性的直接来源是 VLM 预训练权重已经编码了开放词汇视觉概念、物体关系和语言推理。RT-2 把动作预测放进与 VQA 相同的 token 空间后，模型可以在不新增 action-only 参数的情况下，把这些语义能力复用到低层动作选择。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 另一个更隐蔽但重要的原因是 action token 位于模型原有的输出层。相比另加 MLP action head，共享整个输出空间会让梯度、tokenizer、inference 采样逻辑和语言能力都保持在同一表示中，减少新模块对预训练分布的破坏。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;将 “action as text tokens” 作为通用 recipe，使任意可 fine-tune 的生成式 VLM 都有机会变成 VLA。&lt;/li&gt;
&lt;li&gt;明确 co-fine-tuning 对保留 web knowledge 的必要性，并通过 from scratch / fine-tuning / co-fine-tuning 消融给出证据。&lt;/li&gt;
&lt;li&gt;用 output constraint 和 cloud TPU serving 解决了大 VLM 在真实机器人上的 legal action 与实时控制问题。&lt;/li&gt;
&lt;li&gt;把 emergent capability 从 demo 变成可量化的 symbol、reasoning、person recognition 三组 benchmark。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; RT-2 与把 VLM 当高层 planner 的方法不同：它直接预测低层 action，而不是输出 primitives 后交给另一个 low-level controller。与 CLIPort、MOO 等把 VLM 嵌入 policy 的方法也不同：RT-2 不限制 2D action space，不依赖 calibrated camera，也没有 action-only 网络层。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;VLM 的离散 token 输出空间足以表示 RT-1 风格的低层动作。&lt;/li&gt;
&lt;li&gt;robot data 中的物理技能分布不需要被 VLM 扩展，VLM 只需要提供语义和视觉概念。&lt;/li&gt;
&lt;li&gt;cloud service 的 network latency 对当前 manipulation 频率是可接受的。&lt;/li&gt;
&lt;li&gt;PaLI-X 和 PaLM-E 的 tokenizer 分别可用数字 token 或 least-frequent-token override 表示 action。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;VLM 预训练不能增加新的 physical motions。模型仍只会 robot data 中出现过的动作，只能把这些动作部署到新的语义场景中。&lt;/li&gt;
&lt;li&gt;55B VLA 计算成本高，实时 inference 可能成为高频控制任务的瓶颈。论文建议未来研究 quantization 和 distillation。&lt;/li&gt;
&lt;li&gt;可用来构造 VLA 的开源 VLM 仍然较少，微调 API 也未普遍开放。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;论文没有发布 RT-2 权重和训练代码，因此社区无法直接复现 co-fine-tuning、output constraint 和 cloud serving 的细节。&lt;/li&gt;
&lt;li&gt;动作离散化只有 256 bin，连续精细操作可能受量化误差影响；论文没有系统消融 bin number。&lt;/li&gt;
&lt;li&gt;CoT 实验主要是定性展示，缺少与没有 CoT 的对照定量结果，无法严格证明 CoT 带来的成功率和可解释性提升。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;move apple near 3&lt;/code&gt; 这类 symbol understanding 任务仍依赖底层 pick/place skill，不能说明模型获得了新的 manipulation primitive。&lt;/li&gt;
&lt;li&gt;实验以 pick/place 为主，contact-rich、dexterous 和 tool use 任务覆盖不足。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; RT-2 的最大研究价值不是它提出了复杂的网络结构，而是给出了一个非常容易迁移的框架：如果 VLM 已经有足够好的视觉-语言能力，机器人任务只需要解决“动作怎么变成 token”和“如何不遗忘 web knowledge”。后续 OpenVLA、RT-2-X 等 VLA 基本都沿用了这一路线。&lt;/p&gt;
&lt;p&gt;值得继续研究的问题包括：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Tokenization 设计&lt;/strong&gt;：uniform 256 bin 是否最优？动作维度之间是否应该用独立 bin、per-dimension quantile 或 vector quantization。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Co-training 数据比例&lt;/strong&gt;：robot/web ratio 对遗忘和泛化的影响需要更细的 scaling law。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Action granularity&lt;/strong&gt;：如何把动作从末端执行器 setpoint 扩展到关节空间、双臂、全身控制和高频闭环。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CoT 的可验证性&lt;/strong&gt;：Plan 与 Action 是否一致，能否把 Plan 约束为可执行、可检查的中间表示。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Deployment 成本&lt;/strong&gt;：如何在 on-robot GPU 上通过 distillation、speculative decoding 或 hybrid model 达到更高控制频率。&lt;/li&gt;
&lt;/ol&gt;</content:encoded><h:img src="https://pic.hana0721.top/57793944_p0_master1200.4xv4u7fok2.webp"/><enclosure url="https://pic.hana0721.top/57793944_p0_master1200.4xv4u7fok2.webp"/></item><item><title>RoboDual 论文精读：让通才 VLA 与扩散专家协同控制</title><link>https://agusexp25.top/blog/paper-deep-dive-robodual</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-robodual</guid><description>精读 RoboDual：以 OpenVLA 负责语义规划、DiT 专家负责快速多模态动作去噪，解析双系统的条件桥接、异步推理、实验结果与官方代码差异。</description><pubDate>Sun, 23 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;论文名称&lt;/strong&gt;：《Towards Synergistic, Generalized, and Efficient Dual-System for Robotic Manipulation》&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;作者&lt;/strong&gt;：Qingwen Bu、Hongyang Li、Li Chen、Jisong Cai、Jia Zeng、Heming Cui、Maoqing Yao、Yu Qiao&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;论文链接&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2410.08001&quot;&gt;arXiv&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;代码链接&lt;/strong&gt;：&lt;a href=&quot;https://github.com/OpenDriveLab/RoboDual&quot;&gt;OpenDriveLab/RoboDual&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;项目主页&lt;/strong&gt;：&lt;a href=&quot;https://opendrivelab.com/RoboDual/&quot;&gt;RoboDual&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; RoboDual 把一个经过适配的 OpenVLA 作为低频、具备语言语义的 &lt;strong&gt;generalist&lt;/strong&gt;，把一个仅约 20M 可训练参数的 Diffusion Transformer（DiT）作为高频 &lt;strong&gt;specialist&lt;/strong&gt;；后者不只读取 generalist 的 hidden states，还把其离散 action chunk 当作显式轨迹条件，在多模态观测下去噪生成更精细的连续动作。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;提出双系统操控框架：slow generalist 负责跨任务语义理解，fast specialist 负责实时、任务内的精细控制。&lt;/li&gt;
&lt;li&gt;设计以 DiT 为骨干的 specialist，同时接收 proprioception、RGB / depth / tactile 等传感输入、generalist latent 和离散动作；不同条件以 AdaLN、拼接和 cross-attention 分工注入。&lt;/li&gt;
&lt;li&gt;通过 shifted-window conditioning 处理两个系统的异步节拍，并把延迟视为训练时的数据增强。&lt;/li&gt;
&lt;li&gt;在 CALVIN ABC→D 和 ALOHA 真机上报告对通才-only、专家-only 基线的性能、数据效率和控制频率改进。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 通才策略（如 RT-2、Octo、OpenVLA）从大规模跨 embodiment 数据中得到语言理解和迁移能力，但进入新的相机位姿、动作归一化统计或机器人构型时仍需适配；其 autoregressive token decoding 也会使控制频率成为瓶颈。专家策略（如 ACT、Diffusion Policy）可以用少量任务内示教学习稳定的连续控制，却通常难以处理未见物体、自由措辞指令或视觉干扰。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 因此，RoboDual 的问题不是「怎样再训练一个更大的 VLA」，而是：能否把 VLA 已有的高层知识压缩为一个局部策略可消费的接口，让局部策略保留闭环、高频和多传感器优势？这使它不同于只用 LLM 做离散任务分解的分层系统，也不同于只从 VLM latent 直接回归动作的 action head。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 论文选择的桥梁很有针对性：hidden states 提供难以解释但信息密度高的语义，离散 action chunk 提供可在物理空间校正的显式先验。二者缺一不可：只给 latent 容易让 specialist 自己重新学「计划」，只给粗动作又会丢失语言中的对象与任务区分。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在时间步 $t$，generalist 接收第三视角 RGB 图像 $I_t$ 与语言指令 $l$，生成长度为 $k_g$ 的离散动作 token，并导出对应的 task / action hidden tokens。specialist 接收自身观测 $o_t$（可包括多视角 RGB、depth、tactile 与 7 维 proprioception）、generalist 条件 $c_t$，输出长度为 $k_s$ 的 7-DoF 连续动作序列：&lt;/p&gt;
&lt;p&gt;$$
\pi_\theta(\hat a^s_{t:t+k_s-1} \mid o_t, c_t), \quad
c_t = {z^{\text{task}}_t, z^{\text{action}}&lt;em&gt;t, \hat a^g&lt;/em&gt;{t:t+k_g-1}}.
$$&lt;/p&gt;
&lt;p&gt;其中 $\hat a^g$ 是 generalist token 反量化后的粗动作，$z^{\text{task}}$ 与 $z^{\text{action}}$ 是 generalist 的最后层 token 表示。两段长度在论文主要实验中都设为 8。&lt;/p&gt;
&lt;p&gt;| 要素                | CALVIN 设置                                             | 真机设置                                           |
| ------------------- | ------------------------------------------------------- | -------------------------------------------------- |
| 机器人 / 动作       | Franka Panda；长程语言操控                              | ALOHA；7-DoF 动作空间                              |
| 训练与评测          | A、B、C 环境训练，未见 D 环境评测；1,000 条五任务指令链 | 取放、推动、开抽屉与多指令任务；每项 20–120 条示教 |
| generalist 输入     | 第三视角 RGB + language                                 | 单第三视角 RGB + language                          |
| specialist 可用输入 | static / gripper RGB、depth，且可扩展 tactile           | 论文真机主要使用单视角 RGB                         |&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 数据流只有一条：generalist 将图像和语言转成 latent 与粗 action chunk；specialist 将这些条件与当前多模态观测融合，在 DiT 中把随机噪声动作变为可执行的连续 chunk。训练和部署的时序分别在 4.4 与 4.5 展开。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;Generalist：OpenVLA 的语义与粗轨迹&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; generalist 以 OpenVLA 为基础，即 Prismatic-7B 风格的融合 DINOv2 + SigLIP 视觉编码器、投影层与 LLaMA-2。作者用 LoRA 在目标环境的多任务数据上适配它，而不是指望预训练模型零样本适用于新的相机和 embodiment。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 与原始 OpenVLA 一样，RoboDual 将 LLaMA tokenizer 中最少使用的 256 个词映射到 $[-1, 1]$ 的均匀动作 bin。它逐 token 自回归产生每个 DoF；不同时间步以 &lt;code&gt;[space]&lt;/code&gt; token 分隔，并扩展为长度 $k_g$ 的 action chunk。这里的输出一分为二：反量化结果给 specialist 一个明确的运动方向，hidden tokens 则携带任务、物体和动作上下文。&lt;/p&gt;
&lt;h4&gt;Specialist：条件 DiT 动作策略&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; specialist 把一帧 7-DoF 动作当作 7 通道「像素」，将 $k_s$ 帧动作组成的序列当作 DiT 的 token 序列。每个 DiT block 含 causal self-attention、cross-attention 与前馈网络：前者保证 chunk 内的时间因果性，后者从观测和 VLA token 中读取条件。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 四类条件采用不同注入方式。&lt;/p&gt;
&lt;p&gt;| 条件来源                            | 注入位置                                                              | 作用                                     |
| ----------------------------------- | --------------------------------------------------------------------- | ---------------------------------------- |
| proprioception + diffusion timestep | 两层 MLP 后生成 AdaLN 的 scale / shift / residual scale               | 让去噪动态与机器人本体状态、噪声等级对齐 |
| generalist 离散动作                 | 与同一时刻的 noised action 拼接，再线性投影                           | 给出可直接修正的粗轨迹                   |
| generalist task / action latents    | 线性投影后作为 cross-attention 的 key / value                         | 保留长上下文语义和 VLA 的位置关系        |
| 视觉 / depth / tactile              | 各自编码后经 Perceiver resampler 压缩，再并入 cross-attention context | 为局部接触、遮挡和新传感器提供闭环证据   |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; RGB 使用冻结的 DINO 预训练编码器；非 RGB 传感器用 6 层、hidden size 256 的轻量 ViT。每种观测通过 8 个 learnable queries 被压缩为少量 token，因此多步去噪不会反复在长图像 token 序列上做 attention。&lt;/p&gt;
&lt;h4&gt;Shifted-window conditioning：为异步留出时间对齐空间&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; generalist 比 specialist 慢，因此 specialist 已执行 $\tau_s$ 步后，下一次条件不是继续使用整段旧计划，而是保留 generalist chunk 最后的 $k_g - \tau_s$ 个动作。训练时还随机让 specialist 的观测相对 generalist 输出前移 $\tau \in [0, k_g]$ 步，模拟部署延迟。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这相当于不把两者间的 latency 当实现噪声，而是把它定义为条件分布的一部分。若不这样训练，specialist 只见过「完全同步的计划 + 当前图像」，实机中就会把过期目标当成当前目标，快模型反而会更快地放大偏差。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;Generalist 的离散 token 目标&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 令 $\mathbf p$ 为图像和指令组成的 prompt，$a_i$ 为第 $i$ 个 ground-truth action token，generalist $g_\phi$ 使用标准 next-token negative log-likelihood：&lt;/p&gt;
&lt;p&gt;$$
\mathcal L_{\text{gen}}
= \mathbb E_{\mathbf p, a_{&amp;#x3C;i}}
\left[-\sum_{i=1}^{N_a}\log g_\phi(a_i \mid \mathbf p, a_{&amp;#x3C;i})\right].
$$&lt;/p&gt;
&lt;p&gt;$N_a$ 是整个 chunk 中的 action token 数。训练时条件使用真值前缀 $a_{&amp;#x3C;i}$，推理时改为已生成 token $\hat a_{&amp;#x3C;i}$；这正是 VLA 推理慢的原因之一。&lt;/p&gt;
&lt;h4&gt;Specialist 的扩散去噪目标&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 对干净专家轨迹 $a_0 \sim \mathcal D^a$，采样 $\epsilon \sim \mathcal N(0, I)$ 和 $t \sim \mathcal U(1,T)$，前向加噪为：&lt;/p&gt;
&lt;p&gt;$$
a_t = \sqrt{\bar\alpha_t}a_0 + \sqrt{1-\bar\alpha_t}\epsilon.
$$&lt;/p&gt;
&lt;p&gt;$\bar\alpha_t$ 是噪声调度在第 $t$ 步的累计系数，$T=100$。specialist $\pi_\theta$ 以条件集合 $c$ 预测噪声：&lt;/p&gt;
&lt;p&gt;$$
\mathcal L_{\text{spec}}
= \mathbb E_{t,c,a_0,\epsilon}
\left[\lVert\epsilon-
\pi_\theta(a_t,c,t)\rVert^2\right].
$$&lt;/p&gt;
&lt;p&gt;这不是让 DiT 直接复制 generalist 动作，而是让它在每个噪声等级都学会依据 $c$ 恢复「此时应出现的局部连续轨迹」。&lt;/p&gt;
&lt;h4&gt;Temporal aggregation&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 推理的相邻 chunk 会对同一执行时刻给出多个候选动作，论文用指数权重融合：&lt;/p&gt;
&lt;p&gt;$$
\hat a_t =
\frac{\sum_i \exp(-m i),\hat a_t^{(i)}}
{\sum_i \exp(-m i)}.
$$&lt;/p&gt;
&lt;p&gt;其中 $i$ 是候选 chunk 的相对时间位置，$m$ 控制衰减速度；真机实验默认 $m=0.1$。它避免每次新 chunk 到来时控制目标突变。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 训练是两阶段的。首先对 generalist 做 LoRA 适配；随后在其输出固定为条件的前提下训练 lightweight specialist。CALVIN 中，论文描述 generalist 训练 50 epochs，specialist 以 batch size 64 训练 100k iterations（约 8 epochs），两者 chunk 长度均为 8；specialist 使用 AdamW，学习率 $10^{-4}$、weight decay $10^{-3}$、1,000 warm-up steps 和 cosine schedule。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 为得到 classifier-free guidance，训练时会以 0.1 概率丢弃 generalist latent 与 proprioception 条件。论文将这一点解释为：specialist 不应完全依赖 privileged VLA 信息，仍要有仅凭局部观测完成基础模仿的能力。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 部署时 generalist 不需要每一控制步运行。在论文的真机延迟分析中，generalist 生成一个动作后，系统取其中第 8 个动作；随后 specialist 连续运行 8 步，每步以残余的 generalist chunk、当前观测和历史动作生成新的连续 action chunk。specialist 采用 DDIM，训练时间步 100、推理仅 5 步，并用 temporal aggregation 输出最终单步动作。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这条控制链的计算分工是「偶尔昂贵的 token planning + 每步便宜的连续 refinement」，而非把 VLA 简单降频。只要 specialist 能从最新观测纠正粗计划，generalist 的慢速度就被摊销到多个控制步；如果任务需要频繁重规划，$k_g$ 变大又会增大过期计划风险，这是其核心 trade-off。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方仓库在 2025 年 4 月发布实现和 checkpoint；README 指向 generalist、specialist 的 Hugging Face 权重，并把 CALVIN 训练 / 评测入口集中在 &lt;code&gt;vla-scripts/&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;| 论文概念     | 公开实现                                                 | 核查结果                                                                                                                                           |
| ------------ | -------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
| 专家训练包装 | &lt;code&gt;vla-scripts/train_spacialist_calvin.py&lt;/code&gt; 的 &lt;code&gt;DualSystem&lt;/code&gt; | &lt;code&gt;slow_forward()&lt;/code&gt; 提取 VLA logits 与最后层 hidden states；&lt;code&gt;fast_forward()&lt;/code&gt; 把 token 解码为 &lt;code&gt;ref_actions&lt;/code&gt; 后训练专家。文件名确为 &lt;code&gt;spacialist&lt;/code&gt; 拼写。 |
| 轻量 DiT     | &lt;code&gt;prismatic/models/policy/diffusion_transformer.py&lt;/code&gt;       | &lt;code&gt;DiT_Tiny_STA&lt;/code&gt; 是 6 层、8 heads、hidden size 256；包含 causal mask、context adapter、Perceiver resampler 和 cross-attention。                      |
| 扩散策略     | &lt;code&gt;prismatic/models/policy/diffusion_policy.py&lt;/code&gt;            | 冻结 DINO ViT-S/16 视觉编码器；&lt;code&gt;conditional_sample()&lt;/code&gt; 每个 scheduler timestep 都做条件预测与可选 CFG。                                             |
| 异步执行     | &lt;code&gt;vla-scripts/dual_sys_evaluation.py&lt;/code&gt;                     | 每 8 步运行一次 slow system；fast system 每步预测 8 个动作，并以指数 temporal weights 聚合。                                                       |
| 数据         | &lt;code&gt;prismatic/vla/datasets/calvin_dataset.py&lt;/code&gt;               | specialist 训练脚本使用 &lt;code&gt;window_size=8&lt;/code&gt; 与 &lt;code&gt;action_chunking_size=8&lt;/code&gt;。                                                                              |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 公开默认配置与论文正文有三处值得复现者注意的差异。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;train_generalist_calvin.py&lt;/code&gt; 将数据集的 &lt;code&gt;action_chunking_size&lt;/code&gt; 固定为 &lt;code&gt;0&lt;/code&gt;，而论文叙述 generalist 预测 $k_g=8$ 的 chunk，评测代码又把 slow system 输出 reshape 为 8 帧。仅按公开 generalist 脚本训练，无法从参数层面复现论文所述的 generalist chunking，需要依赖提供 checkpoint 或自行补齐数据管线。&lt;/li&gt;
&lt;li&gt;训练脚本默认 &lt;code&gt;freeze_slow = True&lt;/code&gt;，且 &lt;code&gt;DualSystem.forward()&lt;/code&gt; 无条件以 &lt;code&gt;torch.no_grad()&lt;/code&gt; 包裹 slow system。代码虽然在 &lt;code&gt;freeze_slow=False&lt;/code&gt; 时将 VLA loss 加进总 loss，但该前向路径没有梯度；因此 README 所称可切换的 co-training 在此版本中实际上不能更新 slow system。&lt;/li&gt;
&lt;li&gt;论文附录称直接预测 sample 更稳健，但公开 specialist 配置实例化 &lt;code&gt;DDIMScheduler(..., prediction_type=&apos;epsilon&apos;)&lt;/code&gt;。&lt;code&gt;compute_loss()&lt;/code&gt; 支持 &lt;code&gt;&apos;sample&apos;&lt;/code&gt; 分支，不过默认运行的是噪声预测，和论文最终表述不完全一致。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这些不是否定论文结果的证据，而是清晰划定了「论文方法」和「当前公开可复现实验」的边界。尤其是第一项会影响比较：若 slow model 的 action chunk 训练方式不同，specialist 接收到的粗轨迹质量也会不同。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; CALVIN 的 34 个语言操控任务使用 ABC→D protocol：在 A、B、C 示教上训练，在纹理和物体布局不同的 D 环境做 zero-shot evaluation。评测的每条序列含 5 个连续指令，报告完成 1 到 5 个任务的成功率和平均完成长度（Avg. Len.）。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 真机采用 ALOHA，覆盖单指令的取放、倾倒、推动，以及「把指定物体放入篮子」「推倒指定物体」等多指令任务。所有方法在每个任务上独立执行 15 次；ACT、Diffusion Policy 是单任务专家，Octo 与 OpenVLA 是先多任务训练再场景适配的通才基线。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在 CALVIN ABC→D 上，RoboDual 的平均完成长度为 &lt;strong&gt;3.66&lt;/strong&gt;，高于此前表中最强的 3D Diffuser Actor（3.27）；连续完成 5 个任务的成功率为 &lt;strong&gt;54.4%&lt;/strong&gt;，对比 41.2%。论文还用 GPT-4 扩写的自由措辞指令测试：RoboDual 达到 3.47 Avg. Len.，LCB 为 1.78。&lt;/p&gt;
&lt;p&gt;| 方法              | 连续完成 1 / 3 / 5 项任务 | Avg. Len. |
| ----------------- | ------------------------: | --------: |
| RoboFlamingo      |        82.4 / 46.6 / 23.5 |      2.48 |
| GR-1              |        85.4 / 59.6 / 40.1 |      3.06 |
| 3D Diffuser Actor |        92.2 / 63.9 / 41.2 |      3.27 |
| &lt;strong&gt;RoboDual&lt;/strong&gt;      |    &lt;strong&gt;94.4 / 72.1 / 54.4&lt;/strong&gt; |  &lt;strong&gt;3.66&lt;/strong&gt; |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 真机图中，RoboDual 在五项任务上均保持至少 60% 成功率；摘要报告它相对 OpenVLA 在真机提高 &lt;strong&gt;26.7%&lt;/strong&gt;，在 CALVIN 提高 &lt;strong&gt;12%&lt;/strong&gt;。速度上，论文在 NVIDIA A5000 Ada 的实机系统测得 RoboDual &lt;strong&gt;15 Hz&lt;/strong&gt;，OpenVLA 为 &lt;strong&gt;3.9 Hz&lt;/strong&gt;；specialist 单次快速推理延迟为 0.035 秒。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 消融直接支持「双桥梁」设计。去掉 generalist 的离散 trajectory condition 会使 Avg. Len. 从 3.66 降到 3.58；再去掉 action latent 降至 3.54；去掉 task latent 则降至 3.52。也就是说，显式动作给出的收益最大（0.08），但 latent 对多任务语义同样不可替代。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 传感输入从 static RGB 依次加入 tactile、depth、gripper view，Avg. Len. 由 3.54 提升到 3.66。条件融合方面，cross-attention 略优于 in-context conditioning（3.63）和 FiLM（3.58），论文同时认为它在计算上更合适。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 作者在真实环境从四个方向测试泛化：红块在 $20\text{ cm}\times10\text{ cm}$ 区域随机放置、抽屉颜色与玩具等视觉干扰、棋盘布替换为白色背景、以及把 banana 换成未见过的 eggplant。结果中，RoboDual 单任务版的平均成功率为 &lt;strong&gt;70.0%&lt;/strong&gt;，multi-task 版为 &lt;strong&gt;68.3%&lt;/strong&gt;；Diffusion Policy、OpenVLA 的平均值分别为 40.0% 和 41.7%。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 单任务版在位置变化和视觉干扰上更高，而 multi-task 版在 novel object 上为 60.0%（单任务版 46.7%）。这与两种信息来源的分工一致：任务内专家会使几何控制更尖锐，多任务 generalist 适配则更有机会保留对象语义的覆盖度。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; RoboDual 的有效性来自控制带宽的重新分配，而不是参数量相加。VLA 不再承担每一个 servo step 的连续决策，只负责以 8 步为尺度给出语义一致的方向；DiT 则把有限的建模容量集中在「在当前视觉和本体状态下，怎样把这条粗路径落到可执行动作上」。两者的误差类型互补：VLA 的 token 量化与延迟由专家校正，专家的任务歧义由 VLA 的 token 和 latent 消除。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 最核心的创新是把 generalist 输出拆成 &lt;strong&gt;可解释的离散轨迹&lt;/strong&gt; 和 &lt;strong&gt;不可解释但高容量的 latent&lt;/strong&gt;，再按数据性质选择条件接口。离散轨迹在 action token 维度拼接，适合逐时间步的几何 refinement；latent 和图像 token 在 cross-attention 相遇，适合让专家按需读取语义。这个设计比「把一个 embedding 接到 policy 上」更明确地处理了 planning 与 control 的带宽差。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; Diffusion Policy 直接从局部观测采样动作，RoboDual 让它在采样时始终看到 VLA 的先验；OpenVLA 直接 autoregressive 输出动作，RoboDual 则不让这些 token 单独闭环执行。与 LLM 高层规划器相比，RoboDual 的上层输出是时间对齐的 action token 与视觉语言 hidden states，不需要人为定义 skill API，但也因此更依赖两套模型的时序和动作坐标系兼容。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 方法假设两套系统的推理时间在部署时近似恒定，因此一个 generalist window 对应固定数量的 specialist steps。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 还隐含三个假设：粗 action 反量化后的坐标系与专家训练数据一致；慢模型的语言语义足以覆盖局部专家未见的情况；以及 specialist 能够从当前观测识别并纠正过期计划。任何一个不成立时，cross-attention 可能把错误的高层条件放大，而不是修复它。&lt;/p&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 作者明确指出固定推理时延假设：若 generalist 或 specialist 的实际耗时波动，一个 generalist 推理对应固定 specialist 步数的安排会失配。作者也认为当前 generalist 只输出离散动作，未来可将任务分解、affordance grounding 和 image goal generation 等能力作为更丰富的桥梁。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 首先，20M 指的是 specialist 的训练规模，不是完整部署系统的成本：每隔一个 window 仍要运行 7B generalist，显存、首次响应延迟与硬件依赖没有消失。其次，文章同时报告了多传感输入的收益和单视角真机设置，但跨传感器、跨 embodiment 的训练数据分布如何影响 bridge 的可靠性并未被系统拆开。最后，公开训练代码的 chunking 和冻结逻辑与论文存在差异，使得读者很难从零复现「generalist + specialist 的确切协同点」，而不仅是复现一个扩散专家。&lt;/p&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; RoboDual 给出的研究方向不是「所有机器人都应有两个模型」，而是：应当按照信息更新频率分配模型职责。高层语义、对象关系和任务意图可以低频更新；接触、末端微调和遮挡恢复必须高频闭环。下一步更值得探索的是让 bridge 自带不确定性：当 generalist 计划过期、token 置信度低或传感器与计划冲突时，specialist 应学会降低对 VLA 条件的依赖，并主动触发重规划，而不是只靠固定的 8-step 日程。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/131135880_p0_master1200.9rjzqc0dp5.webp"/><enclosure url="https://pic.hana0721.top/131135880_p0_master1200.9rjzqc0dp5.webp"/></item><item><title>π₀.₅ 论文精读：面向开放世界泛化的 Vision-Language-Action 模型</title><link>https://agusexp25.top/blog/paper-deep-dive-pi05</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-pi05</guid><description>精读 π₀.₅：通过异构数据 co-training、层级 subtask 推理与 FAST/Flow 混合动作表示，让移动操作机器人在未见过的家庭环境中执行长时程整理任务。</description><pubDate>Sun, 23 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;论文名称&lt;/strong&gt;：《π₀.₅: a Vision-Language-Action Model with Open-World Generalization》&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;作者&lt;/strong&gt;：Physical Intelligence、Kevin Black、Noah Brown、James Darpinian、Karan Dhabalia、Danny Driess、Adnan Esmail、Michael Equi、Chelsea Finn、Niccolo Fusai、Manuel Y. Galliker、Dibya Ghosh、Lachy Groom、Karol Hausman、Brian Ichter、Szymon Jakubczak、Tim Jones、Liyiming Ke、Devin LeBlanc、Sergey Levine、Adrian Li-Bell、Mohith Mothukuri、Suraj Nair、Karl Pertsch、Allen Z. Ren、Lucy Xiaoyang Shi、Laura Smith、Jost Tobias Springenberg、Kyle Stachowicz、James Tanner、Quan Vuong、Homer Walke、Anna Walling、Haohuan Wang、Lili Yu、Ury Zhilinsky&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;机构&lt;/strong&gt;：Physical Intelligence&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;会议 / 期刊&lt;/strong&gt;：arXiv 预印本（2025）&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;论文链接&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2504.16054&quot;&gt;arXiv&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;代码链接&lt;/strong&gt;：&lt;a href=&quot;https://github.com/Physical-Intelligence/openpi&quot;&gt;Physical-Intelligence/openpi&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;项目主页&lt;/strong&gt;：&lt;a href=&quot;https://physicalintelligence.company/blog/pi05&quot;&gt;π₀.₅: A VLA with Open-World Generalization&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-pi05/pi05-overview.8hh7pn7olp.webp&quot; alt=&quot;π₀.₅ 的两阶段训练、层级推理与连续动作生成总览（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; π₀.₅ 的核心不是再收集一个更大的单一机器人数据集，而是把“不同 embodiment 的动作经验”“高层语义 subtask”“人工语言示教”和“web 视觉语言知识”映射到同一个 VLA 序列建模框架，再在后训练阶段加入 Flow Matching action expert。运行时，同一个模型先输出“下一步该做什么”，再输出“机械臂和底盘如何做”，从而把开放世界泛化拆成语义层与物理执行层两个互补问题。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;提出一个面向 open-world generalization 的 π₀.₅ VLA。模型在约 400 小时移动操作数据之外，还使用非移动机器人、多 embodiment 实验室数据、高层 subtask 标注、语言示教和 web 多模态数据。&lt;/li&gt;
&lt;li&gt;设计离散与连续动作的混合训练：预训练阶段用 FAST action token 做高效的 next-token prediction，后训练阶段加入 Flow Matching action expert，以便实时生成细粒度连续动作。&lt;/li&gt;
&lt;li&gt;用统一模型实现层级推理：先估计语义 subtask（如 &lt;code&gt;pick up the pillow&lt;/code&gt;），再以该 subtask 为条件预测 50 步 action chunk。&lt;/li&gt;
&lt;li&gt;在未出现在训练集的新厨房和新卧室中展示多分钟到 10–15 分钟的长时程清理行为，并通过环境数量、数据源和高层策略消融验证知识迁移的来源。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这篇工作的真正研究对象是 training recipe。模型结构建立在 π₀ 上，性能跃迁主要来自“什么数据以什么表示、在什么阶段训练、推理时如何分工”的联合设计。&lt;/p&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 传统 VLA 往往在与训练分布相近的实验室环境中评估。对固定台面上的“拿起杯子”而言，扩大场景与物体覆盖已经能带来泛化；但“清理一个从未见过的厨房”还要求机器人同时处理视觉新颖性、物体语义、动作顺序、长时程错误恢复和不同 embodiment 的动力学差异。单纯把目标移动机器人数据按比例扩大，成本和覆盖率都很难接受。&lt;/p&gt;
&lt;p&gt;此前的路线大致分为三类：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Generalist robot policy&lt;/strong&gt;：把多任务、多场景、跨机器人数据混合训练，获得更宽的动作先验。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;VLA / VLM co-training&lt;/strong&gt;：把图像描述、VQA、定位等非机器人任务与动作模仿放入同一个序列模型，借用 web 语义知识。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Language planning / hierarchical policy&lt;/strong&gt;：用 VLM 或 LLM 生成高层步骤，再交给低层策略执行长时程任务。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; π₀.₅ 与常见的“两模型 planner + controller”不同：高层 subtask 与低层动作由同一个 VLA 完成；与只做 VLM 初始化的方案不同，它让 web 数据、高层标注和跨 embodiment 动作在训练期间直接共享表示。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这种统一性带来一个重要取舍：高层输出可以受 robot-domain 数据校准，避免直接 zero-shot 调用 GPT-4 产生不适合当前 embodiment 的步骤；但模型也会继承训练标签体系的边界，无法自动获得训练中没有表达过的复杂偏好。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在时间 $t$，观测记为：&lt;/p&gt;
&lt;p&gt;$$
\mathbf{o}_t = [\mathbf{I}^1_t, \ldots, \mathbf{I}^n_t, \mathbf{q}_t]
$$&lt;/p&gt;
&lt;p&gt;其中 $\mathbf{I}^i_t$ 是多路 RGB 相机，$\mathbf{q}_t$ 是关节角、夹爪、torso lift 和底盘速度等本体状态；$\ell$ 是用户给出的高层语言任务，例如 &lt;code&gt;clean the bedroom&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;模型需要同时表示文本输出 $\hat\ell$ 与 action chunk $\mathbf{a}_{t:t+H}$：&lt;/p&gt;
&lt;p&gt;$$
\pi_\theta(\mathbf{a}&lt;em&gt;{t:t+H}, \hat\ell \mid \mathbf{o}&lt;em&gt;t, \ell)
= \pi&lt;/em&gt;\theta(\mathbf{a}&lt;/em&gt;{t:t+H} \mid \mathbf{o}&lt;em&gt;t, \hat\ell)\pi&lt;/em&gt;\theta(\hat\ell \mid \mathbf{o}_t, \ell)
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 这个分解把问题变成两个条件分布：&lt;/p&gt;
&lt;p&gt;| 层级              | 输入                                  | 输出                               | 作用                              |
| ----------------- | ------------------------------------- | ---------------------------------- | --------------------------------- |
| High-level policy | 多相机观测、机器人状态、高层 prompt   | 文本 subtask 与可选 bounding boxes | 判断下一步要完成的语义动作        |
| Low-level policy  | 观测、subtask 文本、噪声 action chunk | 50 步连续 action chunk             | 执行关节、夹爪、底盘和 torso 控制 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 实验使用两类移动操作平台：双 6-DoF 手臂、平行夹爪、全向底盘、torso lift 和四路相机；不同平台的状态 / 动作空间为 18 或 19 维。控制器以 50 Hz 接收手臂目标位姿、夹爪、torso lift 和底盘速度，目标由简单 PD 控制器跟踪，没有额外的轨迹规划或碰撞检测。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 因此这里的“开放世界”不是任意家庭机器人任务，而是一个边界明确的测试：训练任务类别大体相近，但测试地点、物体实例、摆放关系和视觉背景全新；模型需要在这些变化上组合已有技能。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; π₀.₅ 以 PaliGemma VLM 为语义 backbone，并在其旁边放置约 300M 参数的 action expert。预训练阶段，图像、语言、proprioception 和 FAST 动作都以离散 token 形式进入同一个自回归 transformer；后训练阶段保留文本 next-token loss，同时把 action token 替换为 Flow Matching 的连续 noisy action。&lt;/p&gt;
&lt;p&gt;整体数据流只有一句话：多相机图像和 prompt 形成 prefix，模型先自回归生成高层 subtask，再将 subtask 作为条件输入 action expert，经过 10 次 flow integration 输出 50 步连续动作。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;PaliGemma / Vision-Language Backbone&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：多路 RGB 图像、语言 prompt，以及在 π₀.₅ 中离散化后的 proprioceptive state。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：共享 transformer embedding 和文本 logits。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;作用&lt;/strong&gt;：承担图像语义、语言理解、subtask 预测、web caption / VQA / 定位等任务。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Code】&lt;/strong&gt;：官方 &lt;code&gt;openpi&lt;/code&gt; 在 &lt;code&gt;src/openpi/models/pi0.py&lt;/code&gt; 中调用 SigLIP &lt;code&gt;So400m/14&lt;/code&gt; 图像编码器和 Gemma 2B；&lt;code&gt;src/openpi/models/pi0_config.py&lt;/code&gt; 将默认 &lt;code&gt;max_token_len&lt;/code&gt; 设为 200，并将 π₀.₅ 的 state 设为离散输入。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;High-level Subtask Head&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：完整相机观测、当前状态和高层指令。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：如 &lt;code&gt;pull out the drawer&lt;/code&gt;、&lt;code&gt;pick up the bowl&lt;/code&gt; 的文本 subtask；在训练中还可先输出目标 bounding boxes。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;作用&lt;/strong&gt;：把 10 分钟级任务变成当前可执行的小步骤。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要&lt;/strong&gt;：直接让低层 policy 从 &lt;code&gt;clean the kitchen&lt;/code&gt; 预测动作，会把物体识别、任务排序和接触控制都压进一次动作回归；显式 subtask 提供了中间监督和更短的决策 horizon。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;FAST Discrete Action Representation&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：连续 action chunk。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：压缩后的离散 action tokens。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;作用&lt;/strong&gt;：把机器人动作转换为标准 next-token prediction，使预训练可以高效使用大规模异构数据。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;：预训练同时预测文本、目标框和 FAST action token；动作统一归一化到 $[-1,1]$，不同 robot 的低维动作通过 zero-padding 对齐到最大维度。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Flow Matching Action Expert&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：50 步 noisy action chunk、flow timestep $\tau$、prefix 表示和 subtask。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：动作维度上的 vector field。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;作用&lt;/strong&gt;：用非自回归的迭代积分生成连续、细粒度的动作，满足实时控制。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;：action expert 宽度为 1024、深度为 18、MLP 维度为 4096，约 300M 参数；动作 horizon 为 $H=49$，即 50 个动作 token。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;【Code】&lt;/strong&gt;：在 &lt;code&gt;pi0.py&lt;/code&gt; 中，π₀.₅ 用独立 MLP 编码 timestep，再通过 adaptive RMSNorm 注入 action expert；这与 π₀ 直接把 timestep 和 action 拼接的实现不同。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Attention Mask 与知识隔离&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 图像、语言和 state 使用 full prefix attention；FAST token 可看 prefix 和此前的 FAST token；action expert token 可看 prefix 与 action expert 内部 token，但不能看 FAST token。信息只从 VLM 流向 action expert，避免两种 action 表示互相泄漏。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这使离散 token 更像“便宜的语义 / 预训练通道”，连续 expert 更像“专门的执行通道”。两者共享输入和上游表征，却不强迫同一个 token 同时承担语言生成与精确控制。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;混合训练目标&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 对文本与 FAST token 的交叉熵，以及连续 action expert 的 flow matching loss，论文使用如下联合目标：&lt;/p&gt;
&lt;p&gt;$$
\mathcal{L}(\theta)=\mathbb{E}&lt;em&gt;{\mathcal{D},\tau,\omega}\left[
H\left(x&lt;/em&gt;{1:M}, f^\ell_\theta(\mathbf{o}_t,\ell)\right)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;\alpha \left|\omega-\mathbf{a}_{t:t+H}&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;f^a_\theta(\mathbf{a}^{\tau,\omega}_{t:t+H},\mathbf{o}_t,\ell)\right|_2^2
\right]
$$&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;其中：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;$H(\cdot,\cdot)$ 是文本与 FAST action token 的 cross-entropy；&lt;/li&gt;
&lt;li&gt;$\omega \sim \mathcal{N}(0,\mathbf{I})$ 是噪声；&lt;/li&gt;
&lt;li&gt;$\mathbf{a}^{\tau,\omega}=\tau\mathbf{a}+(1-\tau)\omega$ 是 flow 路径上的 noisy action；&lt;/li&gt;
&lt;li&gt;$f^a_\theta$ 是 action expert 输出的 vector field；&lt;/li&gt;
&lt;li&gt;$\alpha$ 控制连续动作损失的权重。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Flow Matching 采样&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 推理时从噪声 $\mathbf{a}^{1}\sim\mathcal{N}(0,I)$ 出发，沿模型预测的向量场积分到数据端 $\mathbf{a}^{0}$。论文采用偏向低 timestep 的 Beta 采样，并在运行时使用 10 次 denoising / integration steps。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 当前 &lt;code&gt;openpi&lt;/code&gt; 的 &lt;code&gt;sample_actions&lt;/code&gt; 以 $t=1$ 为噪声端，令 $dt=-1/N$，在 &lt;code&gt;jax.lax.while_loop&lt;/code&gt; 中反复执行 action expert，直到得到 $x_0$。代码中的时间方向约定与论文符号相反，但实现的是同一条从噪声到动作的积分过程。&lt;/p&gt;
&lt;h4&gt;层级策略分解&lt;/h4&gt;
&lt;p&gt;$$
\pi_\theta(\mathbf{a}\mid\mathbf{o},\ell)
= \sum_{\hat\ell}\pi_\theta(\mathbf{a}\mid\mathbf{o},\hat\ell)\pi_\theta(\hat\ell\mid\mathbf{o},\ell)
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这个表达式强调：高层文本不是额外的外部 planner，而是同一模型内部的 latent decision interface。显式生成 subtask 相当于增加一次 test-time computation；“implicit HL” 消融说明，即使不在运行时输出文本，高层标注本身也会改善低层策略。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-pi05/pi05-training-data.5j4xm4zfb7.webp&quot; alt=&quot;π₀.₅ 预训练与后训练所使用的异构任务（论文 Figure 4）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 训练分两个阶段：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Pre-training&lt;/strong&gt;：280k steps。混合 mobile manipulator（约 400 小时、约 100 个家庭环境）、多环境非移动机器人、实验室 cross-embodiment、high-level subtask 和 web 多模态数据。第一阶段 97.6% 的样本不是目标移动机器人家庭任务。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Post-training&lt;/strong&gt;：80k steps，$\alpha=10.0$。保留文本 loss，随机初始化 action expert，并用成功的移动 / 非移动机器人片段、web 数据、high-level 数据和 verbal instruction 数据训练 Flow Matching head。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; verbal instruction 数据由专家实时选择合适的 subtask 来“用语言遥操作”机器人，例如先说 &lt;code&gt;put cup in sink&lt;/code&gt;，再在低层 policy 执行期间继续给出下一步语言。它不是给每个动作打低层标签，而是为高层策略提供可执行的语义轨迹。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方仓库公开的是面向微调和推理的实现。&lt;code&gt;training/config.py&lt;/code&gt; 提供 &lt;code&gt;pi05_droid&lt;/code&gt;、&lt;code&gt;pi05_libero&lt;/code&gt;、&lt;code&gt;pi05_aloha&lt;/code&gt; 等配置；&lt;code&gt;Pi0Config(pi05=True)&lt;/code&gt; 默认 &lt;code&gt;action_horizon=50&lt;/code&gt;、&lt;code&gt;action_dim=32&lt;/code&gt;、&lt;code&gt;gemma_2b + gemma_300m&lt;/code&gt;。README 明确说明当前仓库主要支持 π₀.₅ 的 Flow Matching head，论文中的 FAST + Flow 联合预训练配方并未完整公开成一个可直接复现实验的配置。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 给定高层 prompt 和当前观测，模型先自回归生成一个 subtask；如果训练样本包含目标框，它会在 subtask 前预测相关 bounding boxes。然后把该文本 subtask 作为低层命令，action expert 从高斯噪声开始做 10 次 flow integration，得到 50 步动作 chunk。执行若干动作后再次观察并重复这一过程，因此高层决策频率低于 50 Hz 的低层控制频率。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;src/openpi/models/pi0.py&lt;/code&gt; 的 &lt;code&gt;sample_actions&lt;/code&gt; 先对 prefix 做一次 forward 并缓存 KV，再在每个 integration step 只计算 suffix；&lt;code&gt;policy_config.create_trained_policy&lt;/code&gt; 将输出的 action chunk 交给平台特定 policy。当前公开实现的常规调用是 &lt;code&gt;policy.infer(example)[&apos;actions&apos;]&lt;/code&gt;。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;| 论文概念               | &lt;code&gt;openpi&lt;/code&gt; 代码位置                                | 对照结论                                                                                           |
| ---------------------- | ------------------------------------------------ | -------------------------------------------------------------------------------------------------- |
| π₀.₅ 配置              | &lt;code&gt;src/openpi/models/pi0_config.py&lt;/code&gt;                | &lt;code&gt;pi05=True&lt;/code&gt; 切换离散 state 与 adaRMS timestep 注入；默认 horizon 为 50。                           |
| VLM / action expert    | &lt;code&gt;src/openpi/models/pi0.py&lt;/code&gt;                       | 使用 Gemma 2B 与 Gemma 300M 两个 transformer 配置；action expert 单独投影 noisy actions。          |
| 图像编码               | &lt;code&gt;src/openpi/models/siglip.py&lt;/code&gt;、&lt;code&gt;pi0.py&lt;/code&gt;          | SigLIP &lt;code&gt;So400m/14&lt;/code&gt;，输入通过 transform resize 到 &lt;code&gt;224x224&lt;/code&gt;。                                       |
| Flow loss              | &lt;code&gt;Pi0.compute_loss&lt;/code&gt;                               | Beta(1.5, 1) 采样 timestep，再用 $|v_t-u_t|^2$ 训练。                                            |
| Flow inference         | &lt;code&gt;Pi0.sample_actions&lt;/code&gt;                             | prefix KV cache + 迭代 suffix，默认 10 steps。                                                     |
| 数据与动作维度         | &lt;code&gt;src/openpi/transforms.py&lt;/code&gt;、&lt;code&gt;training/config.py&lt;/code&gt; | state / action pad 到模型维度，DROID、LIBERO、ALOHA 有独立 policy transform。                      |
| 论文两阶段 FAST 预训练 | 当前仓库 README / configs                        | 仓库公开版本说明“目前只支持 π₀.₅ Flow Matching head”，不能据代码宣称完整复现论文内部 co-training。 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 代码与论文最值得注意的差异是“研究系统”与“开放源码产品”的边界：论文描述的是包含 FAST 预训练、web / HL / VI 数据的内部训练配方；公开仓库则重点提供 base checkpoint 的推理与下游微调接口。复现实验时应把二者分开引用。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-pi05/pi05-real-home.96ah9nv8ih.webp&quot; alt=&quot;π₀.₅ 在新家庭中的高层 subtask 预测与动作执行（论文 real-home evaluation figure）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-pi05/pi05-robot-system.2ksnimr69k.webp&quot; alt=&quot;π₀.₅ 使用的双臂移动操作平台与四路相机（论文 robot system figure）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 作者主要回答四个问题：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;模型能否在从未见过的真实家庭中完成整理？&lt;/li&gt;
&lt;li&gt;泛化是否随着训练环境数量增加？&lt;/li&gt;
&lt;li&gt;哪些 co-training 数据源真正有贡献？&lt;/li&gt;
&lt;li&gt;显式 high-level inference 是否优于直接低层控制？&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;标准 quantitative evaluation 包含四个任务：&lt;code&gt;Items in Drawer&lt;/code&gt;、&lt;code&gt;Dishes in Sink&lt;/code&gt;、&lt;code&gt;Laundry Basket&lt;/code&gt;、&lt;code&gt;Make Bed&lt;/code&gt;。每个任务在多个新地点进行，每个 policy / task 通常执行 10 次，并以完成 rubric 的百分比计分。另有 language following 测试：给定五个物体和一句指令，要求识别正确物体并放入 sink 或 drawer；OOD 版本使用训练中没有出现过的物体类别。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 训练环境数量实验使用 3、12、22、53、82、104 个地点；所有模型在相同测试 mock homes 上评估，以分离“数据量”与“场景多样性”的影响。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在三个未见过的真实家庭中，π₀.₅ 能根据简单高层命令完成厨房和卧室清理：多个物品被分步放入 drawer / sink，衣物被放入 laundry basket，模型还展示了整理床铺、挂毛巾等更长的行为。单个多阶段 episode 通常持续 2–5 分钟，完整清理厨房或卧室的演示可达到 10–15 分钟。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 当训练地点从 3 增加到 104，四项 mock-home 任务的平均得分总体上升；104-location 模型在未见测试地点上的表现接近“直接把测试地点加入训练”的控制组。论文将此视为 co-training recipe 缩小 generalization gap 的证据，而不是简单记忆某个房间。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 与 π₀ 以及只使用动作数据的 π₀-FAST+Flow 相比，π₀.₅ 在 mock-home 综合得分上显著更高。论文还报告 π₀.₅ 的语言跟随率略高于 π₀-FAST+Flow，明显高于原始 π₀，说明离散 token 预训练有助于语言与物体语义。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-pi05/pi05-data-ablation.2rvve2dc1v.webp&quot; alt=&quot;不同 co-training 数据源的任务与语言泛化消融（论文 Figure 7）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 去掉任一 cross-embodiment 数据源（多环境非移动数据 ME，或实验室 cross-embodiment 数据 CE）都会显著降分，同时去掉两者下降更大。它们对 &lt;code&gt;Dishes in Sink&lt;/code&gt;、&lt;code&gt;Laundry Basket&lt;/code&gt; 等需要通用操控策略的任务尤其重要。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; web data 在四项 mock-home 总分上的差异不总是显著，但对 OOD object language following 影响明显；这与 web 数据提供广泛物体知识的解释一致。对 &lt;code&gt;Items in Drawer&lt;/code&gt; 这类需要识别陌生物体和抽屉语义的任务，web data 的作用更突出。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 高层策略消融包括完整 π₀.₅、no web、no verbal instruction、implicit HL、no HL、GPT-4 HL 和 human HL。完整模型最好；implicit HL（训练有高层标注、运行时不显式输出 subtask）次之；no HL、no VI、no WD 均明显下降；zero-shot GPT-4 HL 最差，甚至不如训练过 robot data 的统一模型。完整模型还超过 human HL oracle。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-pi05/pi05-high-level-ablation.pg2q0er5z.webp&quot; alt=&quot;高层推理策略消融（论文 Figure 10）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 语言跟随和任务成功率都会随着训练地点数量稳步增加；ID 物体类别通常比 OOD 类别提升更快，但增加新地点也会不断引入新的家庭物体，使 OOD 泛化同步改善。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文的真实家庭结果不是“从未见过任何相关技能”的 zero-shot，而是“任务大类在训练中存在、具体地点和配置未见”。模型依赖跨 embodiment 数据迁移低层抓取与放置规律，依赖 web / HL 数据迁移物体语义和任务顺序。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这是一种更接近部署的泛化定义：机器人不需要凭空发明“整理房间”技能，但必须把已有 primitive 重新组合到陌生空间。这也解释了为什么地点数量、物体多样性和高层监督三者都重要。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; π₀.₅ 的效果可以拆成四个互补机制：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;共享语义底座&lt;/strong&gt;：PaliGemma 让 web caption、VQA、定位和机器人观测使用相同视觉语言空间，陌生物体不必完全依赖机器人示教覆盖。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;跨 embodiment 物理迁移&lt;/strong&gt;：固定机械臂不能直接教会移动底盘导航，但可以提供抓取、放置、抽屉操作等局部动力学和接触规律。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;层级缩短决策 horizon&lt;/strong&gt;：高层每次只决定一个语义 subtask，低层 action expert 只负责几十步连续控制，降低把整段任务压成一步回归的难度。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;离散训练、连续执行&lt;/strong&gt;：FAST token 让异构数据更容易 co-train，Flow Matching 则避免自回归动作 token 在实时控制中的速度和精度瓶颈。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文的创新点不是提出全新的 transformer，而是证明特定数据组合可以让同一个 VLA 获得开放世界能力：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;用 high-level subtask prediction 把语言推理直接接到 robot policy；&lt;/li&gt;
&lt;li&gt;用 verbal instruction 作为低成本高层行为监督；&lt;/li&gt;
&lt;li&gt;用 web 数据补足物体与场景语义；&lt;/li&gt;
&lt;li&gt;用 ME + CE 跨 embodiment 数据补足低层行为覆盖；&lt;/li&gt;
&lt;li&gt;用 FAST → Flow 的训练 / 推理分工兼顾 compute efficiency 与动作质量。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;| 路线                 | 高层决策                    | 低层动作                    | 知识来源                 | 主要瓶颈                               |
| -------------------- | --------------------------- | --------------------------- | ------------------------ | -------------------------------------- |
| 标准 VLA             | 通常隐式                    | 直接 action token 或 chunk  | 机器人 + VLM 初始化      | 长时程任务的步骤选择不稳定             |
| VLM planner + policy | 外部 VLM                    | 独立 policy                 | 两个模型分别训练         | 接口误差、域外 planner 不懂 embodiment |
| π₀                   | 可选外部高层                | Flow Matching action expert | 跨 embodiment 机器人数据 | 高层语义监督较少                       |
| π₀.₅                 | 同一模型显式 / 隐式 subtask | FAST 预训练 + Flow expert   | 机器人、HL、VI、web      | 训练配方复杂、上下文仍有限             |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; π₀.₅ 的本质区别是把“规划”降格为模型内部的一种输出模态，而不是另一个系统。它没有从根本上解决 planning 与 control 的接口问题，而是用共享参数和联合数据让接口变成可学习的 token 序列。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; / &lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;训练数据中的 subtask 标签足够稳定，能够表达下一步行为的语义。&lt;/li&gt;
&lt;li&gt;不同机器人之间存在可迁移的局部 manipulation regularities，即使 embodiment、相机和控制频率不同。&lt;/li&gt;
&lt;li&gt;web 图像语言数据提供的物体知识能通过共享 VLM 表示迁移到 robot observation。&lt;/li&gt;
&lt;li&gt;50 步 action chunk 与 10 次 flow integration 足以覆盖当前控制频率和动作精度需求。&lt;/li&gt;
&lt;li&gt;目标家庭任务可以由训练中已有 primitive 组合，而不需要新的工具使用或复杂导航规划。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 模型仍会在陌生抽屉把手、物理上难以打开的柜门、被手臂遮挡的 spill 等场景失败；高层 subtask 有时会被干扰，出现反复开关抽屉等行为。模型目前只能稳定处理相对简单的 prompt，复杂偏好和更长的指令需要更多、更细的标注。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 上下文长度相对有限，跨房间导航、记忆物品存放位置和部分可观测任务仍可能失败。作者也指出，当前只探索了有限的数据源组合，verbal instruction 等监督方式还有很大扩展空间。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 第一，论文只公开了整体配方和结果曲线，没有公开足以复现内部 280k + 80k co-training 的完整数据、采样权重、标注规范和 checkpoint，因此“数据源贡献”难以被外部研究者完全独立复核。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 第二，层级文本输出依赖预先定义的 subtask vocabulary。模型可以在词汇内重组技能，但对“先把易碎杯子放到最安全的位置，再按颜色整理”的新目标，未必能生成训练标签之外的可执行计划。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 第三，底盘、torso 和双臂动作被统一放进一个 action vector，虽然便于跨 embodiment pad，但也可能掩盖不同自由度、控制延迟和安全约束；论文中的简单 PD 跟踪器不等于工业部署所需的碰撞检测与故障恢复。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 第四，真实家庭评估仍集中在厨房与卧室 cleanup。它证明了场景泛化，却没有覆盖楼梯、狭窄通道、多房间记忆、人与机器人同时活动等更高风险的 open-world 条件。&lt;/p&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; π₀.₅ 给 embodied AI 的启发不是“多加一点 web data”这么简单，而是要把每种数据放在它最擅长的层级：跨 embodiment 动作教低层物理规律，web 和视觉语言任务教物体语义，subtask / verbal instruction 教任务结构，移动机器人数据负责把这些知识绑定到真实 embodiment。&lt;/p&gt;
&lt;p&gt;对后续研究，我认为有三个方向值得继续追踪：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;更可验证的中间表示&lt;/strong&gt;：subtask 文本目前既是监督标签也是接口，可以进一步加入可执行性评分、目标状态和失败原因，让高层输出不只是“下一句命令”。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;记忆与不确定性&lt;/strong&gt;：当任务跨房间、被遮挡或需要等待环境变化时，单次短上下文的 VLA 不够，需要显式 memory、belief state 或可回溯的 action chunk。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;数据配方自动化&lt;/strong&gt;：不同任务对 ME、CE、WD、VI 的依赖不同。未来可以让数据 mixture、loss weight 和高层调用频率随任务不确定性自适应，而不是固定的人工配方。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 如果把 π₀.₅ 看成一个“统一模型如何吸收异构经验”的实验，那么它最重要的结论是：开放世界泛化更像一个 transfer routing 问题，而不仅是参数规模问题。机器人需要知道哪些经验能迁移、迁移到哪个层级，以及何时把语义知识转译成物理动作。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/42175762_p0_master1200.6m4jay5vlg.webp"/><enclosure url="https://pic.hana0721.top/42175762_p0_master1200.6m4jay5vlg.webp"/></item><item><title>π₀ 论文精读：通用机器人控制的视觉-语言-动作流模型</title><link>https://agusexp25.top/blog/paper-deep-dive-pi0</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-pi0</guid><description>精读 π₀：基于预训练 PaliGemma VLM 与 flow matching action expert，在 10000+ 小时跨形态机器人数据上预训练，并验证直接提示、语言指令和微调。</description><pubDate>Sun, 23 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;论文名称&lt;/strong&gt;：《π₀: A Vision-Language-Action Flow Model for General Robot Control》&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;作者&lt;/strong&gt;：Kevin Black、Noah Brown、Danny Driess、Adnan Esmail、Michael Equi、Chelsea Finn、Niccolo Fusai、Lachy Groom、Karol Hausman、Brian Ichter、Szymon Jakubczak、Tim Jones、Liyiming Ke、Sergey Levine、Adrian Li-Bell、Mohith Mothukuri、Suraj Nair、Karl Pertsch、Lucy Xiaoyang Shi、James Tanner、Quan Vuong、Anna Walling、Haohuan Wang、Ury Zhilinsky&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;机构&lt;/strong&gt;：Physical Intelligence&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;会议 / 期刊&lt;/strong&gt;：RSS 2025（arXiv 预印本 2410.24164）&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;论文链接&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2410.24164&quot;&gt;arXiv&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;代码链接&lt;/strong&gt;：&lt;a href=&quot;https://github.com/Physical-Intelligence/openpi&quot;&gt;Physical-Intelligence/openpi&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;项目主页&lt;/strong&gt;：&lt;a href=&quot;https://physicalintelligence.company/blog/pi0&quot;&gt;Physical Intelligence π₀&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 本文提出 π₀，把预训练的 PaliGemma VLM 作为语义底座，通过一个 300M 参数的 action expert 输出连续动作，并使用 flow matching 建模动作分布；模型在 10000+ 小时、7 种机器人配置、68 个任务的跨形态数据上预训练后，可以直接提示使用、接收高层语言指令，也可以微调到洗衣折叠、装箱、叠碗等灵巧任务。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;提出一种基于预训练 VLM 的 flow matching VLA 架构，VLM 部分约 3B 参数，action expert 约 300M 参数，总计约 3.3B 参数，支持最高 50 Hz 的连续动作输出。&lt;/li&gt;
&lt;li&gt;设计跨形态预训练配方：使用自有灵巧操作数据与 OXE 等开源数据混合，state/action 统一补齐到 18 维，缺失相机位用 mask 处理。&lt;/li&gt;
&lt;li&gt;验证 pre-training / post-training 的两阶段训练：预训练提供广泛能力，高质量微调数据提供流畅、稳健的任务执行。&lt;/li&gt;
&lt;li&gt;在 out-of-box 直接评估、语言指令跟随、新灵巧任务微调、复杂多阶段任务四类实验中展示超越 OpenVLA、Octo、ACT、Diffusion Policy 等方法的实际效果。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 传统 VLA 路线通常把视觉语言模型微调成动作生成模型，例如 RT-2、OpenVLA、TinyVLA。它们常用自回归离散化把动作当作文本 token 生成。这种方式能复用 VLM 的语言语义，但在高频、高精度、多模态动作分布上受限，尤其是需要动作 chunking 的灵巧操作。&lt;/p&gt;
&lt;p&gt;另一条路线是 Diffusion Policy、Scaling Diffusion Policy 等基于扩散或 flow 的动作生成模型。它们适合连续动作和复杂分布，但通常没有预训练 VLM 底座，语言与视觉语义能力有限。π₀ 的核心组合是把两者接起来：用预训练 VLM 保留 Internet-scale 语义知识，用 flow matching 处理高频连续动作。&lt;/p&gt;
&lt;p&gt;在架构层面，π₀ 受 Transfusion 启发：同一个 transformer 里，离散 token 用交叉熵、连续 token 用 diffusion/flow loss。但 Transfusion 使用同一组权重；π₀ 把机器人 state/action token 路由到独立的 action expert，类似混合专家中一个专用于机器人输入的权重组。这个设计既减少与 VLM 预训练输入的分布偏移，也让动作推理可以复用缓存、只更新 action 部分。&lt;/p&gt;
&lt;p&gt;本文还强调机器人基础模型的训练 recipe 本身是贡献之一。作者认为，只训练高质量微调数据会缺少错误恢复能力；只训练大规模、低质量预训练数据又不够流畅。因此 π₀ 采用类似 LLM 的 pre-training / post-training 流程。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; π₀ 建模的是条件分布：&lt;/p&gt;
&lt;p&gt;$$
p(\mathbf A_t \mid \mathbf o_t)
$$&lt;/p&gt;
&lt;p&gt;其中：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;$\mathbf A_t = [\mathbf a_t, \mathbf a_{t+1}, \dots, \mathbf a_{t+H-1}]$ 是未来 $H$ 步的 action chunk，论文主实验使用 $H = 50$。&lt;/li&gt;
&lt;li&gt;$\mathbf o_t = [\mathbf I^1_t, \dots, \mathbf I^n_t, \ell_t, \mathbf q_t]$ 是当前观测，包括多张 RGB 图、语言指令和机器人关节状态。&lt;/li&gt;
&lt;li&gt;每个机器人的相机数量通常是 2 或 3 张；预训练时统一保留最多 3 个图像槽，缺失槽用 mask 屏蔽。&lt;/li&gt;
&lt;li&gt;不同机器人的 state/action 维度不同，统一补零到最大维度 18，以容纳两个 6-DoF 手臂、两个夹爪、移动底盘和垂直躯干。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;预训练覆盖的机器人&lt;/h3&gt;
&lt;p&gt;| 平台                  | 相机数 | 配置 / 动作维度 | 形态                  |
| --------------------- | -----: | --------------: | --------------------- |
| UR5e                  |      2 |           7 / 7 | 单臂 + 夹爪           |
| Bimanual UR5e         |      3 |         14 / 14 | 双臂                  |
| Franka                |      2 |           8 / 8 | 单臂 + 夹爪           |
| Bimanual Trossen      |      3 |         14 / 14 | 双臂，ALOHA 风格      |
| Bimanual ARX / AgileX |      3 |         14 / 14 | 双臂                  |
| Mobile Trossen / ARX  |      3 |         14 / 16 | 双臂 + 非完整移动底盘 |
| Mobile Fibocom        |      3 |         14 / 17 | 双臂 + 完整移动底盘   |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 这里“任务”不是简单的“名词 + 动词”组合。例如 bussing 任务包含大量不同餐具、杯子和垃圾的识别与放置，实际行为空间远比 68 个任务计数更广。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;π₀ 的主体是 PaliGemma 风格的 decoder-only transformer。图像和语言输入走预训练 VLM 权重，机器人 state 和 noisy action token 走独立的 action expert。整体 token 序列可以看成三块：图像 + 语言 prompt、单一 state token、$H$ 个 action token。&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 数据流可以压缩成一句：图像和语言先由 PaliGemma 编码为 prefix，state 与当前 noisy action 经过 action expert 编码后，transformer 输出 action token 的 vector field 预测；训练和推理的完整循环分别在 4.4 与 4.5。&lt;/p&gt;
&lt;p&gt;关键架构参数：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;PaliGemma / Gemma 2B backbone：width 2048、depth 18、mlp dim 16384、18 个 head、1 个 KV head、head dim 256。&lt;/li&gt;
&lt;li&gt;Action expert：width 1024、mlp dim 4096，约 300M 参数，从零初始化。&lt;/li&gt;
&lt;li&gt;Attention mask：三块 blockwise mask，图像 + 语言、state、action。块内双向，action 块可以 attend 到之前所有输入；图像语言块不能 attend 到新增机器人 token，以减小对 VLM 预训练表示的偏移。&lt;/li&gt;
&lt;li&gt;state token 独立成块，因为它不会在 flow 采样的多个 forward pass 中变化，便于缓存 keys/values。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;Vision Encoder&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：每台机器人的 2 到 3 张 RGB 图。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：与语言 token 同空间的图像 patch embedding。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;功能&lt;/strong&gt;：把视觉观测转成 transformer 输入。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要&lt;/strong&gt;：机器人需要理解场景中的物体、空间关系和当前状态。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; openpi 中 PaliGemma 图像编码器由 &lt;code&gt;src/openpi/models/siglip.py&lt;/code&gt; 中的 SigLIP &lt;code&gt;So400m/14&lt;/code&gt; 实现，输入统一 resize 到 &lt;code&gt;224x224&lt;/code&gt;。论文正文把这一部分描述为 PaliGemma 的视觉编码器，未展开具体 variant。&lt;/p&gt;
&lt;h4&gt;Language Backbone&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：语言指令 token、图像 embedding。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：VLM prefix 的隐状态与 KV cache。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;功能&lt;/strong&gt;：提供物体识别、语义推理、指令跟随能力。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要&lt;/strong&gt;：这是 π₀ 区别于从零训练策略模型的核心，VLM 预训练贡献了互联网级语义先验。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;State Projection&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：机器人关节角度 / 配置向量 $\mathbf q_t$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：action expert 宽度的单个 token。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;功能&lt;/strong&gt;：把本体感受状态编码进 transformer。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要&lt;/strong&gt;：模型需要知道自己当前的位置，才能把动作定义为相对或绝对变化。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Action Embedding and Time MLP&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：noisy action chunk $\mathbf A_t^\tau$ 和 flow timestep $\tau$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：$H$ 个 action expert token。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;功能&lt;/strong&gt;：把动作值和噪声程度同时映射到模型空间。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;实现方式&lt;/strong&gt;：先线性投影 action，再用正弦位置编码编码 $\tau$，两者拼接后经过带 Swish 的两层 MLP。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要&lt;/strong&gt;：flow matching 的每一步都必须让模型知道当前去噪进度，否则无法估计正确 vector field。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Action Expert&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：state token 与 $H$ 个 action token。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：经过 transformer 融合后的 action 隐状态。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;功能&lt;/strong&gt;：专门处理机器人 state/action 相关 token。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要&lt;/strong&gt;：机器人输入没有出现在 VLM 预训练分布里；独立权重让模型在保留 VLM 表示的同时学习跨形态动作规律。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Action Output Projection&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：action expert 输出的 $H$ 个 token。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：与 action 同维的 vector field $\mathbf v_\theta$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;功能&lt;/strong&gt;：把隐状态映射回动作维度，用于 flow matching 训练和采样。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;Flow Matching Loss&lt;/h4&gt;
&lt;p&gt;【Paper】目标分布是 $p(\mathbf A_t \mid \mathbf o_t)$，使用简单线性高斯概率路径：&lt;/p&gt;
&lt;p&gt;$$
q(\mathbf A_t^\tau \mid \mathbf A_t) = \mathcal{N}(\tau \mathbf A_t, (1 - \tau) \mathbf I)
$$&lt;/p&gt;
&lt;p&gt;训练时采样噪声 $\epsilon \sim \mathcal{N}(\mathbf 0, \mathbf I)$，构造：&lt;/p&gt;
&lt;p&gt;$$
\mathbf A_t^\tau = \tau \mathbf A_t + (1 - \tau) \epsilon
$$&lt;/p&gt;
&lt;p&gt;网络学习目标 vector field：&lt;/p&gt;
&lt;p&gt;$$
\mathbf u(\mathbf A_t^\tau \mid \mathbf A_t) = \mathbf A_t - \epsilon
$$&lt;/p&gt;
&lt;p&gt;总损失为：&lt;/p&gt;
&lt;p&gt;$$
\mathcal L^\tau(\theta) = \mathbb E_{p(\mathbf A_t \mid \mathbf o_t), q(\mathbf A_t^\tau \mid \mathbf A_t)}
\left\lVert \mathbf v_\theta(\mathbf A_t^\tau, \mathbf o_t) - \mathbf u(\mathbf A_t^\tau \mid \mathbf A_t) \right\rVert^2
$$&lt;/p&gt;
&lt;p&gt;其中 $\tau \in [0, 1]$ 是 flow timestep，$\mathbf v_\theta$ 是模型输出的 vector field，$\mathbf u$ 是从 action 到噪声方向的目标速度。&lt;/p&gt;
&lt;h4&gt;Timestep Sampling&lt;/h4&gt;
&lt;p&gt;【Paper】作者没有用均匀分布，而是采用 shifted beta 分布：&lt;/p&gt;
&lt;p&gt;$$
p(\tau) = \text{Beta}\left(\frac{s - \tau}{s}; 1.5, 1\right), \quad s = 0.999
$$&lt;/p&gt;
&lt;p&gt;这个分布更强调低 timestep，即更接近噪声的样本。作者认为机器人观测已经高度约束动作分布，预测均值动作并不像图像生成里“根据文本预测均值”那么容易；因此让模型更多训练在噪声较大的区域更有价值。&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h4&gt;Euler Integration&lt;/h4&gt;
&lt;p&gt;推理时从噪声开始积分：&lt;/p&gt;
&lt;p&gt;$$
\mathbf A_t^{\tau + \delta} = \mathbf A_t^\tau + \delta \mathbf v_\theta(\mathbf A_t^\tau, \mathbf o_t)
$$&lt;/p&gt;
&lt;p&gt;论文主实验使用 10 个 Euler step，即 $\delta = 0.1$。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; π₀ 使用两阶段训练：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Pre-training&lt;/strong&gt;：在自有灵巧操作数据与开源数据混合的大规模语料上训练 base model。自有数据约 903M timesteps，其中单臂 106M、双臂 797M；开源部分包括 OXE、Bridge v2、DROID，占整体 mixture 的 9.1%。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Post-training&lt;/strong&gt;：使用任务特定、质量更高、策略更一致的数据微调，让模型从“会做但不够流畅”变成“熟练执行”。最简单任务只需要约 5 小时数据，最复杂任务使用 100 小时以上。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;数据加权&lt;/strong&gt;：对每个 task-robot 组合按 $n^{0.43}$ 加权，压低过采样组合的权重。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;语言标注&lt;/strong&gt;：预训练时同时使用 task name 与约 2 秒一段的 segment annotations。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Loss&lt;/strong&gt;：flow matching MSE。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Timestep&lt;/strong&gt;：从 shifted beta 分布采样。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;论文正文没有完整给出预训练阶段的 optimizer、学习率、batch size 等超参数；这些信息在当前 openpi 代码中以示例配置形式提供，见 4.6。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 推理时：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;先编码一次图像、语言、state 等 prefix，并缓存其 keys/values。&lt;/li&gt;
&lt;li&gt;初始化 action chunk 为高斯噪声。&lt;/li&gt;
&lt;li&gt;重复 10 次 Euler step，每次只对 action token 做 forward pass，prefix KV 复用。&lt;/li&gt;
&lt;li&gt;得到完整 action chunk 后，以 open-loop 方式执行。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;作者明确说曾经尝试 temporal ensembling，但发现会伤害策略性能，因此没有对多个 action chunk 做指数加权平均，而是直接执行整段 chunk。&lt;/p&gt;
&lt;p&gt;不同机器人的推理频率：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;20 Hz 的 UR5e / Franka：每 0.8 秒推理一次，执行 16 个动作。&lt;/li&gt;
&lt;li&gt;50 Hz 的其他机器人：每 0.5 秒推理一次，执行 25 个动作。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;RTX 4090 上三相机配置的耗时如下：&lt;/p&gt;
&lt;p&gt;| 阶段                      |  耗时 |
| ------------------------- | ----: |
| Image encoders            | 14 ms |
| Observation forward pass  | 32 ms |
| 10 次 action forward pass | 27 ms |
| 板载总推理                | 73 ms |
| 离板 + 网络延迟           | 86 ms |&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方代码仓库为 &lt;code&gt;Physical-Intelligence/openpi&lt;/code&gt;。当前仓库同时包含 π₀、π₀-FAST 与 π₀.₅，本精读只对照论文对应的 π₀ 实现。&lt;/p&gt;
&lt;p&gt;核心文件：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;模型：&lt;code&gt;src/openpi/models/pi0.py&lt;/code&gt;（JAX / Flax NNX）&lt;/li&gt;
&lt;li&gt;配置：&lt;code&gt;src/openpi/models/pi0_config.py&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;PyTorch 模型：&lt;code&gt;src/openpi/models_pytorch/pi0_pytorch.py&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;数据变换：&lt;code&gt;src/openpi/transforms.py&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;训练入口：&lt;code&gt;scripts/train.py&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;训练配置：&lt;code&gt;src/openpi/training/config.py&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;模型配置：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Pi0Config&lt;/code&gt; 默认 &lt;code&gt;paligemma_variant=&apos;gemma_2b&apos;&lt;/code&gt;、&lt;code&gt;action_expert_variant=&apos;gemma_300m&apos;&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;默认 &lt;code&gt;action_dim=32&lt;/code&gt;、&lt;code&gt;action_horizon=50&lt;/code&gt;、&lt;code&gt;max_token_len=48&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;模型固定预留 &lt;code&gt;base_0_rgb&lt;/code&gt;、&lt;code&gt;left_wrist_0_rgb&lt;/code&gt;、&lt;code&gt;right_wrist_0_rgb&lt;/code&gt; 三个图像槽，输入统一为 &lt;code&gt;224x224&lt;/code&gt;；缺少相机时填充黑图并设置 &lt;code&gt;image_mask=False&lt;/code&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Flow matching：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Pi0.compute_loss&lt;/code&gt; 中采样 &lt;code&gt;time = beta(1.5, 1) * 0.999 + 0.001&lt;/code&gt;，构造 &lt;code&gt;x_t = time * noise + (1 - time) * actions&lt;/code&gt;，目标 &lt;code&gt;u_t = noise - actions&lt;/code&gt;，loss 是 MSE。&lt;/li&gt;
&lt;li&gt;代码注释明确说明其 timestep 约定与论文相反：代码里 &lt;code&gt;t=1&lt;/code&gt; 是噪声、&lt;code&gt;t=0&lt;/code&gt; 是目标动作；论文里 $\tau=0$ 是噪声、$\tau=1$ 是动作。采样分布本身仍是强调高噪声区域的 shifted beta。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sample_actions&lt;/code&gt; 默认 &lt;code&gt;num_steps=10&lt;/code&gt;，使用 &lt;code&gt;dt = -1 / num_steps&lt;/code&gt; 从噪声积分回动作；第一次对 prefix 建立 KV cache，之后只 forward action suffix。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;数据管线：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ResizeImages(224, 224)&lt;/code&gt;、&lt;code&gt;TokenizePrompt&lt;/code&gt;、&lt;code&gt;PadStatesAndActions(model_config.action_dim)&lt;/code&gt; 是通用模型变换。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Normalize&lt;/code&gt; 使用数据集的 mean/std 归一化；π₀.₅ 等后续模型改用 quantile normalization。&lt;/li&gt;
&lt;li&gt;ALOHA 配置默认把关节绝对动作转换为相对第一个 state 的 delta action，夹爪维度保持绝对值；推理输出时再用 &lt;code&gt;AbsoluteActions&lt;/code&gt; 恢复。&lt;/li&gt;
&lt;li&gt;当前 openpi 的 &lt;code&gt;pi0_aloha&lt;/code&gt; 使用 &lt;code&gt;action_horizon=50&lt;/code&gt;，而 &lt;code&gt;pi0_droid&lt;/code&gt; 使用 &lt;code&gt;action_horizon=10&lt;/code&gt;，说明开源实现会根据平台调整 chunk 长度。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;训练与推理入口：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;scripts/train.py&lt;/code&gt; 使用 &lt;code&gt;TrainConfig&lt;/code&gt;，默认 &lt;code&gt;batch_size=32&lt;/code&gt;、&lt;code&gt;num_train_steps=30000&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;默认 optimizer 是 AdamW：&lt;code&gt;b1=0.9&lt;/code&gt;、&lt;code&gt;b2=0.95&lt;/code&gt;、&lt;code&gt;weight_decay=1e-10&lt;/code&gt;、gradient norm clip &lt;code&gt;1.0&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;默认 LR 是 cosine schedule：1000 步 warmup、peak &lt;code&gt;2.5e-5&lt;/code&gt;、decay 到 &lt;code&gt;2.5e-6&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;默认 EMA decay &lt;code&gt;0.99&lt;/code&gt;；LoRA 微调配置会关闭 EMA。&lt;/li&gt;
&lt;li&gt;官方 base checkpoint 路径为 &lt;code&gt;gs://openpi-assets/checkpoints/pi0_base/params&lt;/code&gt;，README 描述为 10000+ 小时机器人数据上预训练。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 需要区分论文原始训练配方与 openpi 当前示例配置。上面这些 LR、batch size、EMA 数值来自当前开源示例，并不代表论文正文原样公布的预训练超参数；论文本身没有给出完整优化细节。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 实验全部在真实机器人上完成，每个任务平均 10 次 trial，按 rubric 给分：完整成功为 1.0，部分完成给分数。&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Out-of-box 对比：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;OpenVLA&lt;/strong&gt;：7B VLA，在相同 mixture 上训练；原架构不支持 action chunking 与高频控制。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Octo&lt;/strong&gt;：93M 扩散策略，支持动作生成但不具备大 VLM 语义底座。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;π₀-small&lt;/strong&gt;：470M 参数、无 VLM 初始化的消融模型。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Compute parity π₀&lt;/strong&gt;：只训练 160k steps，和基线步数对齐；完整 π₀ 训练 700k steps。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Out-of-box 评估直接在预训练 base model 上完成，不经过任何下游微调。五个任务是 shirt folding、bussing easy、bussing hard、grocery bagging、toast out of toaster。&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;结果特征：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;完整 π₀ 在所有任务上远超基线，shirt folding 与 bussing easy 接近满分。&lt;/li&gt;
&lt;li&gt;只训练 160k steps 的 parity π₀ 仍优于所有基线。&lt;/li&gt;
&lt;li&gt;π₀-small 也超过 OpenVLA 和 Octo，说明 flow matching + action expert 架构本身有优势。&lt;/li&gt;
&lt;li&gt;OpenVLA 的主要短板是自回归离散动作不支持高频 action chunk；Octo 的短板是容量和语义能力不足。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;语言指令实验使用 bussing、table setting、grocery bagging 三个任务，比较 flat、human 中间指令和 VLM 高层指令。&lt;strong&gt;【Paper】&lt;/strong&gt; π₀ 的语言跟随能力显著强于 π₀-small；当高层 VLM 或人类提供中间指令时，π₀ 能把这些指令转化为更好的任务表现，而 π₀-small 受限于语言能力，提升有限。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;【Paper】新灵巧任务微调实验包括 stack bowls、towel folding、Tupperware in microwave、paper towel replacement、Franka items in drawer。对比对象包括 OpenVLA、Octo、ACT、Diffusion Policy，以及 π₀ from scratch / π₀ from pretrained。&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;【Paper】关键结论：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;π₀ 在多数新任务上优于其他方法；较强基线反而是完全在目标任务上训练的 ACT 与 Diffusion Policy。&lt;/li&gt;
&lt;li&gt;在 Tupperware 任务上，5 小时数据的 π₀ 与基线接近，但 1 小时数据的 π₀ 显著更好，说明预训练在小数据条件下更有价值。&lt;/li&gt;
&lt;li&gt;对与预训练任务相似的任务，预训练带来的提升更大；预训练模型有时比 from scratch 模型好约 2 倍。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这不是严格的单变量架构消融。π₀ 与 π₀-small 同时改变参数量、VLM 初始化、图像编码器和 action expert 结构；作者自己也承认很难做到完全公平。因此“VLM 初始化有效”的结论是实验证据支持的趋势，而不是唯一变量下的因果证明。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;【Paper】最后一组实验覆盖长时间、多阶段任务，包括 laundry folding、mobile laundry、dryer unloading、table bussing、box building、to-go box、packing eggs。部分任务在预训练数据中存在，部分完全未出现。&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;【Paper】完整 “pre-training + fine-tuning” 配方在全部任务上整体最好，并且在最难任务上的优势最明显。表 bussing 需要识别未见过的杂乱物体，box building 需要利用桌面和双臂协同完成折叠与按压，packing eggs 需要处理光滑、形状不对称的鸡蛋并双臂关盒。这些任务说明预训练不只是帮助简单场景，而是对复杂、多阶段、需要恢复策略的任务有实质价值。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 可以从四个层面理解 π₀ 为什么有效：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;语义底座&lt;/strong&gt;：PaliGemma 的互联网预训练提供了物体识别、指令跟随和场景常识，这是从零训练策略模型很难获得的能力。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;专用 action expert&lt;/strong&gt;：机器人 state/action 不是 VLM 原生分布；独立专家让新输入不污染 VLM 表示，同时保留 transformer attention 的跨模态融合。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Flow matching&lt;/strong&gt;：连续动作不需要离散化，能表示多模态、精细和高频动作；10 步 Euler 也足够快。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;大规模跨形态预训练&lt;/strong&gt;：不同机器人、不同任务的数据让模型见过更广的物体、状态和恢复轨迹，微调时不容易在错误状态上崩溃。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 严格说，VLM、flow matching、action chunking、pre-training 都不是论文首次提出。π₀ 的创新在于把它们组合成一个可实际运行的系统：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;首次在 VLA 中以独立 action expert + flow matching 输出高频连续动作。&lt;/li&gt;
&lt;li&gt;把 Transfusion 的“离散/连续混合训练”迁移到机器人领域，并加入机器人专用的第二组权重。&lt;/li&gt;
&lt;li&gt;设计 blockwise causal attention，使 prefix 可缓存、action 可高效迭代采样。&lt;/li&gt;
&lt;li&gt;把 pre-training / post-training 类比从 LLM 搬到机器人，验证了大规模预训练 + 高质量微调的 recipe。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;| 方法             | 动作表示         | 语义底座   | 主要区别                                         |
| ---------------- | ---------------- | ---------- | ------------------------------------------------ |
| OpenVLA          | 自回归离散 token | 预训练 VLM | 动作需要离散化，难支持高频大 chunk               |
| Octo             | diffusion        | 无大 VLM   | 容量较小，语义能力有限                           |
| Diffusion Policy | diffusion        | 无 VLM     | 适合灵巧操作，但通用语义弱                       |
| ACT              | CVAE + chunk     | 无 VLM     | 依赖小数据集，跨任务泛化有限                     |
| π₀               | flow matching    | PaliGemma  | 大 VLM + 独立 action expert + 大规模跨形态预训练 |&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; π₀ 的设计隐含几个假设：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;预训练 VLM 的语义知识可以迁移到真实机器人控制。&lt;/li&gt;
&lt;li&gt;统一的 18 维 state/action padding 不会显著破坏不同形态的表示。&lt;/li&gt;
&lt;li&gt;Open-loop action chunk 已足够，不需要在线 temporal ensembling 或高频闭环重规划。&lt;/li&gt;
&lt;li&gt;高层语言指令可以由人类或另一个 VLM 提供，并且低层策略能可靠跟随。&lt;/li&gt;
&lt;li&gt;大规模机器人数据带来的多样性收益大于任务间负迁移。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;对预训练数据应如何组合与加权仍缺乏系统理解；论文是把当时可用的数据全部混合。&lt;/li&gt;
&lt;li&gt;并非所有任务都稳定可靠，如何预测某个任务需要多少、什么类型的数据仍是开放问题。&lt;/li&gt;
&lt;li&gt;跨形态正迁移能否延伸到自动驾驶、导航、腿足运动等差异更大的领域尚不清楚。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;实验主要在内部真实机器人上完成，每任务 10 次 trial 且缺少统一公开基准，复现和横向比较成本较高。&lt;/li&gt;
&lt;li&gt;论文没有完整公开预训练数据、数据过滤规则和全部训练超参数；openpi 提供的是可运行的实现和部分 checkpoint，但不等于完整复现论文。&lt;/li&gt;
&lt;li&gt;Open-loop action chunk 在长时间任务中依赖预训练带来的恢复能力；对于需要紧密反馈或动态避障的场景，是否足够仍是问题。&lt;/li&gt;
&lt;li&gt;π₀ 与 π₀-small 的对比混杂了参数量、初始化、架构差异，不能只归因于 VLM 预训练。&lt;/li&gt;
&lt;li&gt;当前 openpi 还包含 π₀-FAST、π₀.₅ 等后续工作，用户使用仓库时容易混淆哪个配置对应论文里的原始 π₀。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; π₀ 带来的最大启示不是“把 VLM 接到机器人”这个方向，而是机器人基础模型可能需要同时解决三个问题：数据规模、架构的模态隔离、以及 pre/post training recipe。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Action expert 是一种可复用的模态接入方式&lt;/strong&gt;。新增传感器、状态维度或动作空间时，不一定要修改 VLM 权重；用独立的、小规模专家接入可以更快迭代。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Flow matching 很适合高频连续控制&lt;/strong&gt;。它在动作分布表达力和推理速度之间取得平衡；未来可以继续研究更少 step、更强先验的采样器。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;预训练数据应该包含“不太好的数据”&lt;/strong&gt;。高质量数据教熟练动作，多样但低质量的数据教错误恢复；两者缺一会让策略变脆或变慢。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;语言可以是规划接口&lt;/strong&gt;。π₀ 不是自己完成复杂规划，而是接收高层 VLM 拆出的中间指令；这种低层灵巧 + 高层语义的组合可能是近期更务实的系统结构。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Open-loop chunk 不等于不需要闭环&lt;/strong&gt;。π₀ 的经验说明，足够好的预训练可以让一个长 chunk 也能工作；但研究仍应关注观测反馈何时必须进入控制回路。&lt;/li&gt;
&lt;/ol&gt;</content:encoded><h:img src="https://pic.hana0721.top/143484250_p0_master1200.9ddjzdu0z1.webp"/><enclosure url="https://pic.hana0721.top/143484250_p0_master1200.9ddjzdu0z1.webp"/></item><item><title>OpenVLA-OFT 论文精读：Fine-Tuning Vision-Language-Action Models</title><link>https://agusexp25.top/blog/paper-deep-dive-openvla-oft</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-openvla-oft</guid><description>精读 OpenVLA-OFT：通过并行解码、Action Chunking、连续动作与 L1 回归，把 7B VLA 适配到 LIBERO 与双臂 ALOHA。</description><pubDate>Sun, 23 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;论文名称&lt;/strong&gt;：《Fine-Tuning Vision-Language-Action Models: Optimizing Speed and Success》&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;作者&lt;/strong&gt;：Moo Jin Kim、Chelsea Finn、Percy Liang（Stanford University）&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;会议 / 期刊&lt;/strong&gt;：Robotics: Science and Systems（RSS）2025&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;论文链接&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2502.19645&quot;&gt;arXiv:2502.19645&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;代码链接&lt;/strong&gt;：&lt;a href=&quot;https://github.com/moojink/openvla-oft&quot;&gt;moojink/openvla-oft&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;项目主页&lt;/strong&gt;：&lt;a href=&quot;https://openvla-oft.github.io/&quot;&gt;openvla-oft.github.io&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 这篇论文研究的不是“再训练一个更大的 VLA”，而是一个更实际的部署问题：给定已经预训练好的 OpenVLA，怎样选择 fine-tuning 时的动作生成方式、动作表示和学习目标，才能同时得到高成功率、低延迟和对新机器人输入输出规格的适应能力。作者最终提出 OFT（Optimized Fine-Tuning）配方：&lt;strong&gt;parallel decoding + action chunking + continuous actions + L1 regression&lt;/strong&gt;；在需要更强语言 grounding 的 ALOHA 场景中再加入 FiLM，形成 OpenVLA-OFT+。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;用受控实验拆开比较三类设计选择：自回归（autoregressive）还是并行解码（parallel decoding）、离散还是连续动作、next-token prediction / L1 regression / diffusion 三种学习目标。&lt;/li&gt;
&lt;li&gt;发现并行解码配合 Action Chunking 不只提升速度，也会提高下游任务成功率；连续动作比 256-bin 离散化更精细；高容量 OpenVLA 使用简单的 L1 回归即可达到与 diffusion 接近的效果。&lt;/li&gt;
&lt;li&gt;在 LIBERO 四个 task suites 上，OpenVLA-OFT 平均成功率达到 &lt;strong&gt;97.1%&lt;/strong&gt;，相比 fine-tuned OpenVLA 的 76.5% 提升 20.6 个百分点，动作生成吞吐提升 &lt;strong&gt;26×&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;在真实双臂 ALOHA 上，OpenVLA-OFT+ 处理多相机、14 维关节状态和 25-step action chunk，在四类新任务上平均得分 87.8%，高于 ACT、Diffusion Policy、RDT-1B 和 $\pi_0$ 的对比结果。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 论文最重要的结论是：当 base VLA 已经有很强的视觉—语言表征时，fine-tuning 的“接口设计”可能比继续堆更复杂的 action generator 更关键。它把预训练模型从“只能按原格式吐出动作 token”改造成一个可以接受多视角、proprioception 并一次输出一段连续动作的 Policy。&lt;/p&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Vision-Language-Action Model（VLA）通常把预训练 Vision-Language Model（VLM）接到机器人数据上，直接输出低层控制动作。OpenVLA 是一个约 7B 参数的代表性自回归 VLA：它在 Open X-Embodiment 的约 1M episodes 上预训练，原始动作头每个时间步输出 7 个离散 action tokens（位置 3 维、姿态 3 维、夹爪 1 维）。&lt;/p&gt;
&lt;p&gt;问题在于，原始训练格式并不等于好的下游适配格式：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;自回归延迟&lt;/strong&gt;：7 个动作维度需要逐 token 生成，OpenVLA 在论文设置下只有约 3–5 Hz，不适合 25–50 Hz 的高频控制。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Action Chunking 难以落地&lt;/strong&gt;：如果要预测 $K$ 个未来时间步，自回归解码需要 $K D$ 次顺序 forward；延迟随 chunk 长度线性增加。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;离散化损失精度&lt;/strong&gt;：把归一化动作映射到 256 个 bins 便于复用语言模型词表，但会丢掉连续控制的细节。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;新机器人输入不同&lt;/strong&gt;：预训练 OpenVLA 主要看单个 third-person camera、相对末端位姿和低频动作，而真实 ALOHA 需要三路相机、14 维关节状态和绝对关节角。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 相关方向包括 FAST 等更高效的 action tokenization、Diffusion Policy / RDT-1B / $\pi_0$ 等生成式 VLA，以及通过 LoRA 进行参数高效适配。本文的区别在于不把所有变化混在一起，而是在同一个 OpenVLA base model 上逐项比较，并且把 inference efficiency、task success 和 input-output flexibility 放在同一评价框架中。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这使论文回答了一个工程上常被忽略的问题：如果目标是把一个现成 VLA 迁移到新 embodiment，应该优先改“动作接口”和训练目标，还是优先换 backbone / generative policy？OFT 的实验结果给出的答案偏向前者。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 给定观测 $o_t$，学习一个能输出未来动作序列的策略：&lt;/p&gt;
&lt;p&gt;$$
\pi_\theta\left(A_{t:t+K-1}\mid o_t, l_t\right),
\qquad A_{t:t+K-1}\in\mathbb{R}^{K\times D}.
$$&lt;/p&gt;
&lt;p&gt;这里 $o_t$ 可包含图像和 proprioceptive state，$l_t$ 是任务语言指令，$K$ 是 Action Chunk 长度，$D$ 是动作维度。LIBERO 使用 $D=7$、$K=8$；ALOHA 使用 $D=14$、$K=25$。&lt;/p&gt;
&lt;p&gt;| 项目               | LIBERO                                                            | ALOHA                                                                 |
| ------------------ | ----------------------------------------------------------------- | --------------------------------------------------------------------- |
| Robot / Embodiment | 仿真 Franka Emika Panda                                           | 真实双臂 ALOHA（两套 ViperX 300 S）                                   |
| Observation        | third-person image + instruction；增强版加入 wrist image 与 state | third-person + left/right wrist images、14-D joint state、instruction |
| Action             | 7-D delta end-effector pose                                       | 14-D absolute joint-angle target                                      |
| Control frequency  | benchmark 设置                                                    | 25 Hz                                                                 |
| Chunk size         | $K=8$                                                             | $K=25$                                                                |
| Training data      | 每个 suite 500 条 expert demonstrations                           | fold shorts 20、fold shirt 30、scoop 45、put X into pot 300 条        |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; LIBERO 的四个 suites 分别强调 spatial layout、object、goal 和 long-horizon generalization。ALOHA 的四个任务覆盖 deformable object、长时接触操作、工具使用和语言驱动目标选择。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-openvla-oft/design-decisions.7zr60z2uwk.webp&quot; alt=&quot;OpenVLA-OFT 的并行解码、动作表示和 FiLM 设计（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 输入图像先经过 OpenVLA 的 SigLIP + DINOv2 fused vision encoder，视觉 patch、语言 token 和可选的 proprio token 被投影到 LLM embedding space；解码器在 action 位置接收空 embedding，并用 bidirectional attention 一次性产生 $K D$ 个动作隐藏状态，最后交给离散 logits 或连续 action head。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; “空 action embedding + bidirectional mask”是 OFT 的关键结构变化。它不是把自回归 decoder 再加速，而是取消 action token 之间的因果依赖，把每个输出位置变成并行的 query。这样 $K$ 增大时主要增加序列长度，而不会增加 $K D$ 次串行生成。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;Parallel Decoding 与 Action Chunking&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：视觉 patch、语言 prompt、可选 proprio token，以及 $K D$ 个空 action slots。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：一次 forward 得到的 $K D$ 个 action hidden states。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;中间模块&lt;/strong&gt;：将 causal attention mask 换成允许 action slots 相互 attend 的 bidirectional mask；视觉和语言部分仍作为条件上下文。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要&lt;/strong&gt;：自回归 OpenVLA 生成一个 7-D action 要多次调用 decoder，Action Chunking 会把这一成本再乘以 $K$。并行解码把动作 token 的串行依赖改为单次预测。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在 LIBERO 上，单独加入 parallel decoding 后吞吐从 4.2 Hz 提升到 15.9 Hz；再加入 $K=8$ 的 Action Chunking 后达到 108.8 Hz。相对 OpenVLA，chunk 的吞吐提升约 26×。&lt;/p&gt;
&lt;h4&gt;Continuous Action Head&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 原始 OpenVLA 将每个归一化动作维度映射到 $[-1,1]$ 的 256 个 bins，再用词表 token 表示。OFT 改用一个 MLP action head，把 action hidden states 直接映射为连续动作。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;prismatic/models/action_heads.py&lt;/code&gt; 的 &lt;code&gt;L1RegressionActionHead&lt;/code&gt; 先把每个时间步的 $D$ 个 hidden states reshape 成一个向量，再送入两层 &lt;code&gt;MLPResNet&lt;/code&gt; block，输出形状为 &lt;code&gt;(batch, chunk_len, action_dim)&lt;/code&gt;。这意味着连续动作头不需要修改 LLM 的词表，也不再使用 action token 的 softmax。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 连续 head 的收益并不只是“数值更精确”。它把语言模型的离散 token 预测与机器人动作回归解耦，使 $D$ 可以从 LIBERO 的 7 改成 ALOHA 的 14，而无需为每个新动作维度重新设计 token vocabulary。&lt;/p&gt;
&lt;h4&gt;Additional Inputs：多图像与 Proprioception&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 每张相机图像经过 dual vision encoder 后得到 256 个 patch embeddings；多个视角沿序列维拼接。proprioceptive state 经过独立 projector 映射为一个额外 embedding，再与视觉 patch 一起插入语言序列。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;prismatic/extern/hf/modeling_prismatic.py&lt;/code&gt; 的 &lt;code&gt;_process_vision_features()&lt;/code&gt; 和 &lt;code&gt;_process_proprio_features()&lt;/code&gt; 分别处理视觉与状态；&lt;code&gt;prismatic/models/projectors.py&lt;/code&gt; 中的 &lt;code&gt;ProprioProjector&lt;/code&gt; 是 &lt;code&gt;Linear → GELU → Linear&lt;/code&gt;。&lt;code&gt;prismatic/vla/constants.py&lt;/code&gt; 为 LIBERO 设置 &lt;code&gt;PROPRIO_DIM=8&lt;/code&gt;，为 ALOHA 设置 &lt;code&gt;PROPRIO_DIM=14&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; LIBERO 加入 wrist image 和 proprio 后，吞吐仍有 71.4 Hz，平均成功率为 94.5%；说明并行解码提供的延迟余量可以换取更丰富的输入。&lt;/p&gt;
&lt;h4&gt;FiLM：让语言进入视觉 backbone&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-openvla-oft/film-page-crop.3k8qvqg18l.webp&quot; alt=&quot;OpenVLA-OFT+ 在视觉 Transformer 中插入 FiLM 的完整示意图与论文图注（论文 Figure 8）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在 ALOHA 的多视角场景里，模型容易把相机中的偶然视觉线索当成动作条件，而忽略“scoop raisins”与“scoop pretzels”这类真正决定行为的语言。OFT+ 对每个 ViT block 都用任务描述的平均语言 embedding 生成 scale 和 shift，并在 self-attention 后、feed-forward 前调制视觉特征。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;prismatic/models/film_vit_wrapper.py&lt;/code&gt; 的 &lt;code&gt;FiLMedVisionTransformerBlock&lt;/code&gt; 实现：&lt;/p&gt;
&lt;p&gt;$$
\widehat{F}=(1+\gamma)\odot F+\beta.
$$&lt;/p&gt;
&lt;p&gt;其中 $\gamma,\beta\in\mathbb{R}^{D_{ViT}}$，会广播到所有 patch；代码为 SigLIP 和 DINOv2 的每个 block 创建独立的线性投影。使用 $(1+\gamma)$ 而不是 $\gamma$，可以让接近零初始化的 FiLM 近似 identity transformation，减少对预训练视觉表示的初始扰动。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;并行连续动作预测&lt;/h4&gt;
&lt;p&gt;设视觉编码器为 $E_v$，语言 embedding 为 $L$，proprio projector 为 $P_s$，动作位置数量为 $K D$。输入序列可以抽象成：&lt;/p&gt;
&lt;p&gt;$$
X=\left[\text{BOS};\ P_v(E_v(I_{1:M}));\ P_s(s);\ L;\ e_{\emptyset}^{1:KD}\right].
$$&lt;/p&gt;
&lt;p&gt;其中 $I_{1:M}$ 是 $M$ 个视角，$e_{\emptyset}$ 是空 action embedding，$P_v$ 是视觉到 LLM 空间的 projector。使用并行 attention 后得到 action hidden states $H_a$，连续 action head 输出：&lt;/p&gt;
&lt;p&gt;$$
\widehat A=f_\theta(H_a),\qquad \widehat A\in\mathbb{R}^{K\times D}.
$$&lt;/p&gt;
&lt;h4&gt;L1 Regression&lt;/h4&gt;
&lt;p&gt;$$
\mathcal{L}&lt;em&gt;{L1}=\frac{1}{K D}\sum&lt;/em&gt;{k=0}^{K-1}\sum_{d=1}^{D}
\left|\widehat A_{k,d}-A_{k,d}\right|.
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; $A$ 和 $\widehat A$ 都在训练时归一化到机器人相关的动作范围。L1 让模型趋向条件分布的中位数，带来简单、稳定的单次前向预测，但对同一观测对应多个互斥行为的分布可能不够表达。&lt;/p&gt;
&lt;h4&gt;Diffusion 对照目标&lt;/h4&gt;
&lt;p&gt;论文也实现了连续动作 diffusion baseline。给真实动作 $A_0$ 加噪得到 $A_t$，动作 head 预测噪声 $\epsilon_\theta$：&lt;/p&gt;
&lt;p&gt;$$
\mathcal{L}&lt;em&gt;{diff}=\mathbb{E}&lt;/em&gt;{t,\epsilon}\left[|\epsilon_\theta(A_t, t, o_t)-\epsilon|_2^2\right].
$$&lt;/p&gt;
&lt;p&gt;这里 $t$ 是扩散时间步，$\epsilon$ 是高斯噪声；推理时需要 DDIM 反向去噪。论文训练和默认测试均使用 50 步，因此每次 action chunk 需要多次 VLA forward。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 作者保留 OpenVLA 的大部分预训练权重，通过 LoRA 在小规模示教数据上适配。LIBERO 每个 suite 有 500 条 expert demonstrations；非 diffusion 版本训练 50K–150K gradient steps，diffusion 版本通常需要 100K–250K steps。ALOHA 使用每个任务独立的 20–300 条示教，训练 50K–150K steps。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;vla-scripts/finetune.py&lt;/code&gt; 默认使用 LoRA rank 32、AdamW、学习率 &lt;code&gt;5e-4&lt;/code&gt;、bf16 mixed precision，并在 &lt;code&gt;num_steps_before_decay&lt;/code&gt; 后将学习率衰减 10 倍。训练脚本会把 &lt;code&gt;use_l1_regression&lt;/code&gt; 与 &lt;code&gt;use_diffusion&lt;/code&gt; 设为互斥；动作 head、proprio projector 和 FiLM 模块的参数会加入 optimizer。代码默认 &lt;code&gt;batch_size=8&lt;/code&gt;（每 GPU），实际命令按 GPU 数量决定总 batch。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;RLDSBatchTransform&lt;/code&gt; 将当前动作和后续 $K-1$ 个动作拼成一个 action chunk，只对动作响应部分计算 loss；&lt;code&gt;RLDSDataset&lt;/code&gt; 使用 &lt;code&gt;window_size=1&lt;/code&gt;、&lt;code&gt;future_action_window_size=K-1&lt;/code&gt;，并在 episode 尾部通过 pad mask 处理不足一个 chunk 的片段。训练中还保存 dataset statistics，供推理时把归一化动作还原到真实机器人范围。&lt;/p&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 推理时不再生成文本 token，而是把 action slots 清零后进行一次并行 forward。L1 版本直接输出 $K$ 个连续动作，反归一化后执行整个 chunk，再重新观测和查询模型。LIBERO 执行 $K=8$，ALOHA 执行 $K=25$；这相当于在控制周期内减少 replanning 次数，也能降低单步误差累积。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;prismatic/extern/hf/modeling_prismatic.py&lt;/code&gt; 的 &lt;code&gt;_regression_or_discrete_prediction()&lt;/code&gt; 将 action token embedding 置零，取语言模型最后一层对应 action positions 的 hidden states，然后调用 &lt;code&gt;action_head.predict_action()&lt;/code&gt;。&lt;code&gt;vla-scripts/deploy.py&lt;/code&gt; 加载 action head、proprio projector 和可选 FiLM；&lt;code&gt;experiments/robot/aloha/run_aloha_eval.py&lt;/code&gt; 通过 server-client 接口持续请求 action chunks。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; diffusion 版本的 &lt;code&gt;_run_diffusion_prediction()&lt;/code&gt; 从高斯噪声开始，按 scheduler 的 timesteps 循环，每一步都把当前 noisy action 投影回 LLM embedding space，并重新运行 VLA 预测噪声；这正是它在成功率接近 L1 时仍然更慢的原因。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;| 论文概念                     | 官方代码位置                                                       | 实际实现                                                                                          |
| ---------------------------- | ------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------- |
| Parallel decoding            | &lt;code&gt;prismatic/extern/hf/modeling_prismatic.py&lt;/code&gt;                        | action slots 清零，使用 multimodal embeddings 和双向 attention，一次取出全部 action hidden states |
| Continuous + L1              | &lt;code&gt;prismatic/models/action_heads.py&lt;/code&gt;                                 | &lt;code&gt;L1RegressionActionHead&lt;/code&gt; + &lt;code&gt;MLPResNet&lt;/code&gt;，直接回归 &lt;code&gt;(K, D)&lt;/code&gt; 连续动作                                |
| Diffusion baseline           | &lt;code&gt;prismatic/models/action_heads.py&lt;/code&gt;、&lt;code&gt;vla-scripts/finetune.py&lt;/code&gt;      | DDIM scheduler、50 个训练步，训练预测噪声，推理循环去噪                                           |
| Action chunking              | &lt;code&gt;prismatic/vla/datasets/datasets.py&lt;/code&gt;、&lt;code&gt;prismatic/vla/constants.py&lt;/code&gt; | RLDS 取当前动作加未来 $K-1$ 步；LIBERO $K=8$，ALOHA $K=25$                                        |
| Additional inputs            | &lt;code&gt;prismatic/models/projectors.py&lt;/code&gt;、&lt;code&gt;modeling_prismatic.py&lt;/code&gt;          | 视觉 patch 沿序列拼接，proprio 通过 MLP projector 追加一个 token                                  |
| FiLM                         | &lt;code&gt;prismatic/models/film_vit_wrapper.py&lt;/code&gt;                             | 语言均值生成每个 ViT block 的 scale / shift，attention 后调制每个 patch 的 hidden dimension       |
| Checkpoint / unnormalization | &lt;code&gt;vla-scripts/finetune.py&lt;/code&gt;、&lt;code&gt;experiments/robot/openvla_utils.py&lt;/code&gt;    | 保存 action head、projectors 和 dataset statistics，推理时按 &lt;code&gt;unnorm_key&lt;/code&gt; 还原动作                |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方仓库当前只支持 LoRA fine-tuning；&lt;code&gt;finetune.py&lt;/code&gt; 要求 &lt;code&gt;use_lora=True&lt;/code&gt;。这比“论文提出了一个完全新的 VLA”更准确的描述是：它复用了 OpenVLA 的 backbone，通过 LoRA 加上新的 action head、输入 projector 和 FiLM 适配新任务。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-openvla-oft/libero-tasks.et8wrw226.webp&quot; alt=&quot;LIBERO 四个任务套件与任务变化因素（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; LIBERO 每个 suite 包含 10 个任务，每个任务 50 次评测，共 500 trials。主要 baseline 是按原 recipe fine-tune 的 OpenVLA；同时比较 Diffusion Policy、Octo、DiT Policy、Seer、MDT、$\pi_0$ 等方法。ALOHA 评测四个真实任务，使用预定义的 staged scoring rubric，报告平均完成分数而非只看二值成功。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方 &lt;code&gt;LIBERO.md&lt;/code&gt; 给出可复现实验：8 GPU、每 GPU batch size 8、&lt;code&gt;learning_rate=5e-4&lt;/code&gt;、150K steps、&lt;code&gt;num_images_in_input=2&lt;/code&gt;、&lt;code&gt;use_proprio=True&lt;/code&gt;；&lt;code&gt;ALOHA.md&lt;/code&gt; 则使用三路图像、14-D state、25-step chunk、FiLM 和 50K 后学习率衰减。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;h4&gt;LIBERO 成功率&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 下表只列出论文中最能说明设计取舍的 OpenVLA 变体与最终 OFT。数字是四个 suite 的 success rate（%）。&lt;/p&gt;
&lt;p&gt;| 方法                                  |  Spatial |   Object |     Goal |     Long |  Average |
| ------------------------------------- | -------: | -------: | -------: | -------: | -------: |
| OpenVLA fine-tuned                    |     84.7 |     88.4 |     79.2 |     53.7 |     76.5 |
| + Parallel Decoding + Action Chunking |     91.3 |     92.7 |     90.5 |     86.5 |     90.2 |
| + PD&amp;#x26;AC + Continuous-Diffusion        |     96.9 |     98.1 |     95.5 |     91.1 |     95.4 |
| &lt;strong&gt;OpenVLA-OFT（PD&amp;#x26;AC + Cont-L1）&lt;/strong&gt;    | &lt;strong&gt;97.6&lt;/strong&gt; | &lt;strong&gt;98.4&lt;/strong&gt; | &lt;strong&gt;97.9&lt;/strong&gt; | &lt;strong&gt;94.5&lt;/strong&gt; | &lt;strong&gt;97.1&lt;/strong&gt; |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 从 76.5% 到 90.2% 的提升来自 PD + AC；再换成连续动作后，L1 和 diffusion 的平均成功率几乎相同（97.1% vs. 95.4%，不同输入设置）。Long suite 的提升尤其明显，支持“chunk 能降低 compounding error 并捕获更长时间依赖”的解释。&lt;/p&gt;
&lt;h4&gt;LIBERO 推理效率&lt;/h4&gt;
&lt;p&gt;| 方法                              | Throughput |  Latency | LIBERO-Long SR |
| --------------------------------- | ---------: | -------: | -------------: |
| OpenVLA                           |     4.2 Hz | 0.2396 s |          53.7% |
| + PD                              |    15.9 Hz | 0.0629 s |              — |
| + PD&amp;#x26;AC ($K=8$)                   |   108.8 Hz | 0.0735 s |          86.5% |
| + PD&amp;#x26;AC + Cont-L1                 |   109.7 Hz | 0.0729 s |          90.7% |
| + PD&amp;#x26;AC + Cont-L1 + wrist/proprio |    71.4 Hz | 0.1120 s |          94.5% |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; PD 把 7 次顺序 decoder pass 变成 1 次；AC 只带来约 17% 的 latency 增加，却让每次查询产生 8 个动作，因此吞吐达到 26×。连续 L1 head 的额外 MLP 成本很小；相反，50-step diffusion 的吞吐只有 4.2 Hz，减少测试去噪步数虽能提速，却会显著损失成功率。&lt;/p&gt;
&lt;h4&gt;ALOHA 真实机器人&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-openvla-oft/aloha-results.5xbdcx49r8.webp&quot; alt=&quot;OpenVLA-OFT+ 与 ACT、Diffusion Policy、RDT-1B、$\pi_0$ 在 ALOHA 四个任务上的完成分数（论文 Figure 4）&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; OpenVLA-OFT+ 在四个任务的平均得分为 &lt;strong&gt;87.8&lt;/strong&gt;，各任务为 fold shorts 100.0、fold shirt 100.0、scoop X into bowl 100.0、put X into pot 51.3。它在四个任务上都高于或不低于对比方法，尤其在需要语言选择目标的任务上优势明显。&lt;/p&gt;
&lt;p&gt;ALOHA 推理效率表明，OpenVLA-OFT+ 的吞吐为 &lt;strong&gt;77.9 Hz&lt;/strong&gt;、单次 latency 为 0.321 s（3 路 224×224 图像、14-D state、$K=25$）。它低于参数更小的 ACT（432.8 Hz）和使用 JAX 的 $\pi_0$（291.6 Hz），但相较原始 OpenVLA 的 1.8 Hz 已足以支撑 25 Hz 控制器，并且仍保留 7B 视觉语言表征的泛化能力。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文的核心消融可以归纳为：&lt;/p&gt;
&lt;p&gt;| 消融                    | 观察                                              |
| ----------------------- | ------------------------------------------------- |
| 去掉 PD，保留原始自回归 | 速度低，Action Chunking 几乎不可用                |
| PD + AC 替换原始解码    | 平均成功率 +14 个百分点，Long suite 改善最大      |
| 离散动作 → 连续 L1      | 平均成功率再提升约 5 个百分点，且推理成本几乎不变 |
| L1 → diffusion          | 成功率接近，但训练收敛更慢、推理需多次去噪        |
| 去掉 OpenVLA 预训练     | LIBERO 平均成功率下降 5.2 个百分点                |
| ALOHA 去掉 FiLM         | 语言 grounding 降到 33%，接近随机选目标           |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这些消融说明 OFT 不是单个 trick：PD 提供速度和 chunk headroom，AC 改变时间尺度，continuous head 改善动作精度，L1 把复杂的生成式动作建模换成一次回归。FiLM 则不是所有任务都必需；论文在 LIBERO 中不使用 FiLM，因为那里原始语言 grounding 已经足够好。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 最有说服力的泛化实验是从单臂预训练迁移到双臂 ALOHA：OpenVLA 预训练没有见过双臂数据、多视角输入或绝对 joint-angle action，但 OFT+ 仍能在折衣服、勺子取物和目标物入锅任务上工作。作者还在 BridgeData V2 的超过 50K demonstrations 上测试了 OFT，观察到 OpenVLA-OFT 超过原始 OpenVLA 的平均任务表现。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这并不意味着 OFT 消除了 embodiment gap。它更准确地说明：当新任务数据足以约束动作接口时，一个保留预训练视觉语言表征的 7B VLA 可以通过低秩适配快速跨越相当大的输入输出分布偏移。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 第一层原因是时间尺度改变。单步行为克隆每次只看当前状态，任何小误差都会影响下一次观测；Action Chunk 直接学习短轨迹，等价于把有效 horizon 压缩成更少的 replanning 点。它不能保证每个 chunk 内部都正确，但减少了策略在每个微小时间步重新犯错的机会。&lt;/p&gt;
&lt;p&gt;第二层原因是把离散语言建模目标与连续控制目标分开。OpenVLA 的 7 个 action tokens 只是为了让 VLM 复用 next-token prediction；下游控制真正关心的是动作几何误差。L1 head 让 hidden state 直接承担这个回归任务，避免 256-bin quantization。&lt;/p&gt;
&lt;p&gt;第三层原因是计算预算重新分配。PD 把原本花在串行解码上的时间释放出来，模型才有余量处理 wrist views、proprioception 和更长 action chunk。换句话说，OFT 的速度提升又反过来改善了输入表达能力。&lt;/p&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文的创新点不是提出新的 backbone，而是给出一组经过实证验证的 fine-tuning design decisions：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;用并行解码取代 action token 的因果生成。&lt;/li&gt;
&lt;li&gt;用 Action Chunking 同时提高吞吐与长时任务稳定性。&lt;/li&gt;
&lt;li&gt;用连续动作和 L1 objective 保留控制精度，并保持单次 forward 推理。&lt;/li&gt;
&lt;li&gt;用统一的序列接口接入多相机与 proprioception。&lt;/li&gt;
&lt;li&gt;用 FiLM 把语言条件注入 ViT，解决多视角场景中的 language grounding。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 与 FAST 一类方法相比，OFT 不再努力压缩自回归 token，而是改变 decoder 的生成范式；因此它可以一次预测完整 chunk。与 diffusion / flow-matching VLA 相比，OFT 选择表达能力更弱但推理更简单的 L1 regression；论文结果表明在高容量 OpenVLA 上，这个 trade-off 在 fine-tuning 场景是有利的。与从零训练 ACT、Diffusion Policy 相比，OFT 依赖预训练 VLM，因此模型大得多、吞吐不一定最高，但能用更少的示教和更强的语义泛化换取任务性能。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; OFT 依赖以下假设：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;同一观测下的 expert action 大体是单峰的，或至少取条件中位数不会破坏任务；&lt;/li&gt;
&lt;li&gt;在一个 action chunk 内不需要每一步都重新读取语言和视觉反馈；&lt;/li&gt;
&lt;li&gt;预训练 VLM 的视觉与语言表征在新 embodiment 上仍然可迁移；&lt;/li&gt;
&lt;li&gt;新任务 demonstrations 足以教会模型新的 action dimension、相机视角和状态编码；&lt;/li&gt;
&lt;li&gt;语言可以通过平均 sentence embedding 注入 ViT，而不需要完整的 token-level cross-attention。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;L1 regression 可能无法表达真正多模态的 demonstrations；它倾向于学条件中位数，而 diffusion 更有机会表示多个动作模式，但也可能过拟合数据中的次优模式。&lt;/li&gt;
&lt;li&gt;实验集中在 downstream fine-tuning，OFT 是否适合大规模 VLA pretraining 尚未验证。&lt;/li&gt;
&lt;li&gt;ALOHA 中没有 FiLM 时语言 grounding 很差，而 LIBERO 没有同样问题；这种差异究竟来自双臂数据缺失、多视角输入还是其他因素，论文没有给出最终解释。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Action Chunking 执行完整 chunk 的策略在突发碰撞、遮挡或接触失败时反应不够快；chunk 越长，开放环执行时间越长。论文的 ALOHA 选择 25 步，是速度与闭环性的折中，而不是普适最优值。&lt;/li&gt;
&lt;li&gt;并行解码牺牲了 action slots 之间的显式自回归依赖。虽然 LIBERO 和 ALOHA 没有出现性能下降，但对需要复杂条件分支或细粒度接触反馈的任务，是否始终成立仍需验证。&lt;/li&gt;
&lt;li&gt;7B 模型的 77.9 Hz 是 GPU 上的 action generation throughput，不等于端到端机器人闭环频率；相机采集、网络、控制器、碰撞检查和安全停机都会占用额外时间。&lt;/li&gt;
&lt;li&gt;论文大多数结果来自每个任务独立 fine-tuning。若真实应用需要一个模型覆盖大量 embodiment、语言和 action spaces，LoRA adapter、normalization statistics 和 action head 的管理成本会显著增加。&lt;/li&gt;
&lt;li&gt;FiLM 使用语言 embedding 的平均值，能够强化任务级条件，但可能丢失指令中对象之间的组合关系；复杂空间关系是否需要 token-level grounding，论文未明确说明。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 对 VLA 研究和工程实践，我认为有四点启发：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;先测接口，再换模型。&lt;/strong&gt; 迁移一个现有 VLA 时，应该先建立 autoregressive / parallel、discrete / continuous、L1 / diffusion 的小规模 ablation，而不是直接假设更复杂的 action generator 一定更好。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;把速度视作建模能力。&lt;/strong&gt; 更低的 action latency 不只是部署指标，它允许增加相机、proprio 和更大的 action chunk，最终改变策略能看到什么、能规划多远。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;用 chunk 长度匹配任务闭环。&lt;/strong&gt; 1 秒左右的 chunk 是代码仓库给出的经验默认值，但快碰撞、高接触任务可能需要动态缩短 chunk，或者只执行 chunk 的前几步后重新查询。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;把 language grounding 当作可诊断模块。&lt;/strong&gt; ALOHA 的 FiLM 消融提醒我们：任务成功率高不一定代表模型真正遵守语言。应单独设计 target-selection、distractor 和 counterfactual instruction 测试，检查策略是否在看语言。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 一个自然的后续方向是“自适应 OFT”：保留 L1 head 的单次前向效率，在检测到高不确定性、多模态示教或接触事件时，局部切换到 diffusion / 多候选 chunk；另一个方向是让 chunk horizon、FiLM 强度和 language grounding 诊断共同参与在线闭环控制。论文真正留下的问题不是 L1 是否永远优于 diffusion，而是能否根据任务的 action distribution 和实时性约束动态选择二者。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/65089776_p0_master1200.5c1kl2nzfo.webp"/><enclosure url="https://pic.hana0721.top/65089776_p0_master1200.5c1kl2nzfo.webp"/></item><item><title>OpenVLA 论文精读</title><link>https://agusexp25.top/blog/paper-deep-dive-openvla</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-openvla</guid><description>精读 OpenVLA：一个 7B 开源视觉-语言-动作模型，如何融合 DINOv2、SigLIP 与 Llama 2，用动作 tokenization 在 Open X-Embodiment 上实现多机器人控制与低成本微调。</description><pubDate>Sun, 23 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;论文名称&lt;/strong&gt;：《OpenVLA: An Open-Source Vision-Language-Action Model》&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;作者&lt;/strong&gt;：Moo Jin Kim、Karl Pertsch、Siddharth Karamcheti、Ted Xiao、Ashwin Balakrishna、Suraj Nair、Rafael Rafailov、Ethan Foster、Grace Lam、Pannag Sanketi、Quan Vuong、Thomas Kollar、Benjamin Burchfiel、Russ Tedrake、Dorsa Sadigh、Sergey Levine、Percy Liang、Chelsea Finn&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;机构&lt;/strong&gt;：Stanford University、UC Berkeley、Toyota Research Institute、Google DeepMind、Physical Intelligence、MIT&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;会议 / 期刊&lt;/strong&gt;：CoRL 2024&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;论文链接&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2406.09246&quot;&gt;arXiv&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;代码链接&lt;/strong&gt;：&lt;a href=&quot;https://github.com/openvla/openvla&quot;&gt;openvla/openvla&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;项目主页&lt;/strong&gt;：&lt;a href=&quot;https://openvla.github.io/&quot;&gt;OpenVLA&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; OpenVLA 在 Prismatic-7B VLM 的 DINOv2 + SigLIP + Llama 2 骨干上，把机器人动作离散化成 256 个 token，以 next-token prediction 在 Open X-Embodiment 的 970k 条真实机器人轨迹上微调，得到一个 7B 开源 vision-language-action model（VLA）；它既能在 WidowX 和 Google robot 上开箱使用，也能用 LoRA 与量化快速适配新任务。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;提出 OpenVLA，一个 7B 参数开源 VLA，在 29 个任务、两种机器人 embodiment 上比闭源 RT-2-X（55B）平均绝对成功率高 16.5%，参数量却少约 7 倍。&lt;/li&gt;
&lt;li&gt;系统研究 VLA 的高效适配：在 7 个 Franka 任务上证明 OpenVLA 微调优于 Octo 微调与从零训练的 Diffusion Policy；在语言 grounding、多物体、多指令场景中优势尤其明显。&lt;/li&gt;
&lt;li&gt;证明 LoRA 和 4-bit 量化可把微调与推理成本降到消费级 GPU，且 4-bit 推理基本不损失下游成功率。&lt;/li&gt;
&lt;li&gt;完整开源模型权重、微调 notebook、部署与训练代码，并支持在 Open X-Embodiment 上大规模训练 VLA。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 机器人策略最大的问题是难以泛化到训练分布之外。传统 imitation learning 或单任务 policy 通常只能处理初始位置、光照等有限变化，面对未见物体、干扰物和新指令时会失败。另一方面，视觉和语言基础模型（CLIP、SigLIP、Llama 2）从互联网规模数据中获得了强泛化能力。OpenVLA 的核心思路是：把这类互联网预训练基础模型直接作为机器人策略的骨干，而不是重新从零训练一个专用 policy。&lt;/p&gt;
&lt;p&gt;相关工作大致分三条线：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Visually-Conditioned Language Model（VLM）&lt;/strong&gt;：LLaVA、PaLI、Prismatic 等采用“patch-as-token”结构，把视觉 patch 投影到 LLM 输入空间，在互联网图文数据上训练。OpenVLA 直接继承这一成熟结构和训练基础设施。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Generalist Robot Policy&lt;/strong&gt;：RT-1、Octo 等在大型、跨 embodiment 机器人数据上训练多任务策略。它们往往把预训练视觉/语言组件与从零初始化的新组件拼接起来，性能受限于“缝合”能力。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Vision-Language-Action Model（VLA）&lt;/strong&gt;：RT-2、RT-2-X 等把动作作为文本 token 接入 VLM。它们通常闭源，难以复现、审计或适配。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 与这些工作相比，OpenVLA 的定位不是提出全新的网络结构，而是解决“可复现”和“可适配”两个工程与研究问题：使用开放 Prismatic VLM 骨干、更大的 OpenX 数据混合，并系统探索微调、LoRA 和量化。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Task&lt;/strong&gt;：给定一张第三视角 RGB 观测图和一条自然语言指令，输出机器人末端执行器的 7 维控制动作。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Observation&lt;/strong&gt;：单张 RGB 图像，最终分辨率 &lt;code&gt;224x224&lt;/code&gt;；论文与代码版本均未使用 proprioception 或历史观测。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Action&lt;/strong&gt;：相对位置控制，即末端执行器增量 &lt;code&gt;(Δx, Δy, Δz, Δroll, Δpitch, Δyaw, Δgrip)&lt;/code&gt;，共 7 维。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Action Space&lt;/strong&gt;：连续动作被归一化并离散化为 token；推理时再反离散化回连续动作。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Robot / Embodiment&lt;/strong&gt;：开箱评测使用 BridgeData V2 WidowX 和 Google mobile manipulator；适配实验使用 Franka Emika Panda。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dataset&lt;/strong&gt;：Open X-Embodiment 中筛选出的 970k 条真实机器人轨迹，覆盖多种 embodiment、场景和任务。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Training Objective&lt;/strong&gt;：把动作预测表达为 vision-language 任务，只在动作 token 上计算 next-token cross-entropy loss。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;形式上，输入图像 $x_{\text{img}}$、指令 $x_{\text{text}}$，输出动作 token 序列 $y_{1:N}$，目标是最大化：&lt;/p&gt;
&lt;p&gt;$$
\mathcal L(\theta) = -\sum_{t \in \mathcal A} \log p_\theta(y_t \mid x_{\text{img}}, x_{\text{text}}, y_{&amp;#x3C;t})
$$&lt;/p&gt;
&lt;p&gt;其中 $\mathcal A$ 是动作 token 的位置集合，非动作位置被 mask 掉，不参与 loss。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;OpenVLA 的结构就是标准 VLM 三步：视觉编码器、视觉-语言 projector、LLM 骨干。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-openvla/openvla-model.pg2ou9pei.webp&quot; alt=&quot;OpenVLA 模型结构：DINOv2+SigLIP 融合视觉编码、MLP Projector、Llama 2 7B、Action De-Tokenizer（论文 Figure 2）&quot;&gt;&lt;/p&gt;
&lt;p&gt;整体数据流是：图像经双视觉编码器提取 patch，再由 projector 转成语言模型 token，Llama 2 自回归生成动作 token，最后 de-tokenize 为连续动作。训练和推理的逐步过程分别见 4.4 和 4.5。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 输入是一张图像和一条语言指令，输出是 7 维机器人动作。视觉编码器把图像变成 patch embedding，projector 把视觉特征映射到语言模型的 embedding 空间，Llama 2 骨干以自回归方式生成动作 token。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;DINOv2 + SigLIP 融合视觉编码器&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：&lt;code&gt;224x224x3&lt;/code&gt; 的 RGB 图像。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：DINOv2 和 SigLIP 各自 patch token 沿 channel 拼接后的融合特征。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;功能&lt;/strong&gt;：同时获得 DINOv2 的低层空间特征和 SigLIP 的高层语义特征。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要&lt;/strong&gt;：论文引用 Prismatic 的结论，认为加入 DINOv2 能改善空间推理，这对机器人控制尤其重要。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 代码中的 &lt;code&gt;DinoSigLIPViTBackbone&lt;/code&gt; 分别用 TIMM 加载 &lt;code&gt;vit_large_patch14_reg4_dinov2.lvd142m&lt;/code&gt; 和 &lt;code&gt;vit_so400m_patch14_siglip_224&lt;/code&gt;，并 monkey-patch 成返回倒数第二层 patch；最终 &lt;code&gt;torch.cat([dino_patches, siglip_patches], dim=2)&lt;/code&gt;。&lt;/p&gt;
&lt;h4&gt;Fused MLP Projector&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：融合后的视觉 patch 特征。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：映射到 Llama 2 hidden size 的 patch token。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;功能&lt;/strong&gt;：完成视觉模态与语言模态的对齐。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要&lt;/strong&gt;：让 Llama 2 能直接消费视觉 token。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 代码中 &lt;code&gt;FusedMLPProjector&lt;/code&gt; 的结构是 &lt;code&gt;Linear(vision_dim -&gt; 4*vision_dim) -&gt; GELU -&gt; Linear(-&gt; llm_dim) -&gt; GELU -&gt; Linear(llm_dim -&gt; llm_dim)&lt;/code&gt;。这与论文“small 2-layer MLP projector”的表述略有差异：融合视觉编码器实际使用三层线性层加两个 GELU，不是简单的两层 MLP。&lt;/p&gt;
&lt;h4&gt;Llama 2 语言模型骨干&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：projected visual patch token 与 tokenized instruction。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：自回归生成的 7 个动作 token。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;功能&lt;/strong&gt;：用互联网预训练的语言推理能力进行动作生成。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要&lt;/strong&gt;：7B LLM 是策略的表达能力和跨任务泛化的主要来源。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 训练与推理时 patch token 被插到 &lt;code&gt;&amp;#x3C;BOS&gt;&lt;/code&gt; 之后，即在 &lt;code&gt;input_embeddings[:, :1]&lt;/code&gt; 与 &lt;code&gt;input_embeddings[:, 1:]&lt;/code&gt; 之间拼接，图像 patch 对应 label 全部设为 &lt;code&gt;IGNORE_INDEX&lt;/code&gt;。&lt;/p&gt;
&lt;h4&gt;Action Tokenizer / De-Tokenizer&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：训练时是归一化后的连续 7 维动作；推理时是模型生成的离散 token。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：训练时是 7 个离散 token；推理时是反归一化后的连续动作。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;功能&lt;/strong&gt;：把连续动作编码进 LLM 词汇表，再从 token 恢复连续动作。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要&lt;/strong&gt;：Llama 2 是离散语言模型，只有把动作变成 token 才能用标准 next-token prediction 训练。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 代码中的 &lt;code&gt;ActionTokenizer&lt;/code&gt; 默认 &lt;code&gt;bins=256, min_action=-1, max_action=1&lt;/code&gt;，使用 &lt;code&gt;np.linspace(-1, 1, 256)&lt;/code&gt; 做均匀 bin，再 &lt;code&gt;np.digitize&lt;/code&gt;，并映射到 Llama tokenizer 词汇表最后 256 个 token。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;动作归一化&lt;/h4&gt;
&lt;p&gt;论文说每个动作维度在训练数据第 1 和第 99 分位数之间均匀划分成 256 个 bin。代码先做 q01/q99 归一化，把动作映射到 &lt;code&gt;[-1,1]&lt;/code&gt;：&lt;/p&gt;
&lt;p&gt;$$
a&apos;&lt;em&gt;d = 2 \cdot \frac{a_d - q&lt;/em&gt;{01,d}}{q_{99,d} - q_{01,d}} - 1
$$&lt;/p&gt;
&lt;p&gt;然后离散化：&lt;/p&gt;
&lt;p&gt;$$
b_d = \text{digitize}(a&apos;_d; \text{256 equal-width bins over } [-1, 1])
$$&lt;/p&gt;
&lt;p&gt;再把 bin 索引映射到 Llama 词汇表末尾的 token id：&lt;/p&gt;
&lt;p&gt;$$
\text{token_id}_d = V - b_d
$$&lt;/p&gt;
&lt;p&gt;其中 $V$ 是 Llama tokenizer 的 vocab size。推理时反向执行：先把 token id 转回 bin center，再做反归一化：&lt;/p&gt;
&lt;p&gt;$$
\hat a_d = 0.5 \cdot (\hat a&apos;&lt;em&gt;d + 1) \cdot (q&lt;/em&gt;{99,d} - q_{01,d}) + q_{01,d}
$$&lt;/p&gt;
&lt;h4&gt;Next-Token Prediction&lt;/h4&gt;
&lt;p&gt;训练使用标准 causal language model 交叉熵，但只对动作 token 计 loss：&lt;/p&gt;
&lt;p&gt;$$
\mathcal L = -\frac{1}{|\mathcal A|} \sum_{t \in \mathcal A} \log p_\theta(y_t \mid x_{\text{img}}, x_{\text{text}}, y_{&amp;#x3C;t})
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文选择覆盖 Llama tokenizer 中最不常用的最后 256 个 token，而不是新增 256 个 special token；原因是 Llama tokenizer 只预留 100 个新增 special token，不足 256 个。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Base Model&lt;/strong&gt;：Prismatic-7B VLM，采用 &lt;code&gt;prism-dinosiglip-224px&lt;/code&gt; 配置，SigLIP + DINOv2 视觉编码器加 Llama 2 7B。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;训练数据&lt;/strong&gt;：Open X-Embodiment 中筛选出至少有一个第三视角相机、单臂末端执行器控制的 manipulation 数据集；基本沿用 Octo 的 mixture weight，再加入 DROID 等新数据集，最终约 970k 条轨迹。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;DROID 处理&lt;/strong&gt;：先以 10% weight 加入 DROID，但发现其 action token accuracy 始终较低，为保护最终模型，最后三分之一训练将其移除并重新分配 weight。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Image Resolution&lt;/strong&gt;：&lt;code&gt;224x224&lt;/code&gt;；与 &lt;code&gt;384x384&lt;/code&gt; 相比性能无差异，但后者训练慢 3 倍。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Vision Encoder&lt;/strong&gt;：与 VLM 训练时冻结视觉编码器不同，VLA 训练必须微调视觉编码器，否则空间细节不足。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Epochs&lt;/strong&gt;：完整训练跑 27 个 epoch，直到训练 action token accuracy 超过 95%。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Learning Rate&lt;/strong&gt;：固定 &lt;code&gt;2e-5&lt;/code&gt;，不使用 warmup。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Optimization / Infrastructure&lt;/strong&gt;：64 块 A100，batch size 2048，训练 14 天，约 21,500 A100-hours；使用 AMP、FlashAttention、FSDP。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;训练入口 &lt;code&gt;vla-scripts/train.py&lt;/code&gt; 默认加载 &lt;code&gt;DINOSIGLIP_224PX_MX_OXE_MAGIC_SOUP_PLUS&lt;/code&gt; 配置。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;prismatic/conf/vla.py&lt;/code&gt; 中该配置的 &lt;code&gt;global_batch_size=2048&lt;/code&gt;、&lt;code&gt;per_device_batch_size=32&lt;/code&gt;、&lt;code&gt;expected_world_size=64&lt;/code&gt;、&lt;code&gt;learning_rate=2e-5&lt;/code&gt;、&lt;code&gt;lr_scheduler_type=constant&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;数据读取与动作归一化使用 &lt;code&gt;NormalizationType.BOUNDS_Q99&lt;/code&gt;，把 q01/q99 映射到 &lt;code&gt;[-1,1]&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;prompt 训练格式来自 &lt;code&gt;RLDSBatchTransform&lt;/code&gt;：human 指令为 &lt;code&gt;What action should the robot take to {lang}?&lt;/code&gt;，response 是 action token 串；非动作 label 全部置为 &lt;code&gt;-100&lt;/code&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;输入单张 RGB 图与指令，模型生成 7 个动作 token，再 de-tokenize 成连续动作。&lt;/li&gt;
&lt;li&gt;默认使用 &lt;code&gt;bfloat16&lt;/code&gt; 加载，约 15GB GPU 显存；单块 RTX 4090 上约 6Hz，未使用 compilation、speculative decoding 等加速手段。&lt;/li&gt;
&lt;li&gt;提供远程 VLA inference server，把动作预测流式发送给机器人，降低本地算力门槛。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;OpenVLA.predict_action&lt;/code&gt; 构造 &lt;code&gt;PurePromptBuilder&lt;/code&gt; 风格的 prompt，生成 &lt;code&gt;get_action_dim(unnorm_key)&lt;/code&gt; 个 token，取最后 &lt;code&gt;action_dim&lt;/code&gt; 个，用 &lt;code&gt;action_tokenizer.decode_token_ids_to_actions&lt;/code&gt; 恢复归一化动作，再用 &lt;code&gt;q01/q99&lt;/code&gt; 反归一化。HF 版对应逻辑在 &lt;code&gt;OpenVLAForActionPrediction.predict_action&lt;/code&gt;。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;| 论文描述                     | 代码位置                                               | 实际行为                                          |
| ---------------------------- | ------------------------------------------------------ | ------------------------------------------------- |
| DINOv2 + SigLIP 融合视觉编码 | &lt;code&gt;prismatic/models/backbones/vision/dinosiglip_vit.py&lt;/code&gt;  | 两个 TIMM ViT 分别提特征，&lt;code&gt;dim=2&lt;/code&gt; 拼接            |
| 视觉-语言 projector          | &lt;code&gt;prismatic/util/nn_utils.py&lt;/code&gt; / HF &lt;code&gt;PrismaticProjector&lt;/code&gt; | Fused MLP 使用三层 Linear 与两个 GELU             |
| Llama 2 骨干与 patch 插入    | &lt;code&gt;prismatic/extern/hf/modeling_prismatic.py&lt;/code&gt;            | patch 插在 &lt;code&gt;&amp;#x3C;BOS&gt;&lt;/code&gt; 后，图像 patch label 为 &lt;code&gt;-100&lt;/code&gt; |
| 动作离散化                   | &lt;code&gt;prismatic/vla/action_tokenizer.py&lt;/code&gt;                    | 256 bins，&lt;code&gt;np.digitize&lt;/code&gt;，映射到最后 256 token     |
| 数据归一化                   | &lt;code&gt;prismatic/vla/datasets/rlds/utils/data_utils.py&lt;/code&gt;      | q01/q99 归一化到 &lt;code&gt;[-1,1]&lt;/code&gt;                         |
| 训练损失                     | HF &lt;code&gt;language_model(...)&lt;/code&gt; + &lt;code&gt;labels&lt;/code&gt;                    | causal CE，只对动作 token 计 loss                 |
| LoRA 微调                    | &lt;code&gt;vla-scripts/finetune.py&lt;/code&gt;                              | PEFT &lt;code&gt;LoraConfig&lt;/code&gt;，&lt;code&gt;target_modules=&apos;all-linear&apos;&lt;/code&gt;  |
| 4-bit 训练                   | &lt;code&gt;vla-scripts/finetune.py&lt;/code&gt;                              | &lt;code&gt;BitsAndBytesConfig&lt;/code&gt; &lt;code&gt;load_in_4bit=True, nf4&lt;/code&gt;     |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 论文正文说“把每个动作维度在第 1 与第 99 分位数之间均匀分成 256 个 bin”，而代码实际是先把动作按 q01/q99 归一化到 &lt;code&gt;[-1,1]&lt;/code&gt;，再在 &lt;code&gt;[-1,1]&lt;/code&gt; 上做 256-bin 均匀离散化。二者语义一致，但实现细节上是“归一化 + 固定区间离散化”的组合。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;开箱评测&lt;/strong&gt;：BridgeData V2 WidowX 环境 17 个任务、170 次 rollout；Google robot 环境 12 个任务、60 次 rollout。所有比较都是相同初始机器人/物体状态下的 A/B 评测。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;适配评测&lt;/strong&gt;：Franka-Tabletop 5Hz 与 Franka-DROID 15Hz 两类真实 Franka 环境，共 7 个任务、10-150 条示教；另有 LIBERO 四个仿真 task suite。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Baselines&lt;/strong&gt;：RT-1-X、Octo、RT-2-X、Diffusion Policy、Diffusion Policy（matched）、OpenVLA（scratch）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Metrics&lt;/strong&gt;：平均成功率与 StdErr；部分任务允许 0.5 partial credit。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Generalization 轴&lt;/strong&gt;：visual、motion、physical、semantic 以及 language grounding。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-openvla/droid-wipe-task.1e9c8uxab0.webp&quot; alt=&quot;Franka-DROID 的 Wipe Table 微调任务：左为 in-distribution，右为加入干扰物的 OOD 场景（论文 Figure 11）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; BridgeData V2 WidowX 评测中，四种策略平均成功率为：&lt;/p&gt;
&lt;p&gt;| 方法    |      平均成功率 |
| ------- | --------------: |
| RT-1-X  |     18.5 ± 2.7% |
| Octo    |     20.0 ± 2.6% |
| RT-2-X  |     50.6 ± 3.5% |
| OpenVLA | &lt;strong&gt;70.6 ± 3.2%&lt;/strong&gt; |&lt;/p&gt;
&lt;p&gt;除 semantic generalization 外，OpenVLA 在其余类别都超过 RT-2-X；RT-1-X 与 Octo 在干扰物、language grounding 等任务上经常无法操作正确物体。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-openvla/bridge-results.5trre49mtt.webp&quot; alt=&quot;BridgeData V2 WidowX 评测任务与结果（论文 Figure 3）&quot;&gt;&lt;/p&gt;
&lt;p&gt;Google robot 环境中的平均成功率为：&lt;/p&gt;
&lt;p&gt;| 方法    |      平均成功率 |
| ------- | --------------: |
| RT-1-X  |     33.3 ± 6.1% |
| Octo    |     26.7 ± 5.8% |
| RT-2-X  | &lt;strong&gt;78.3 ± 5.4%&lt;/strong&gt; |
| OpenVLA | &lt;strong&gt;85.0 ± 4.6%&lt;/strong&gt; |&lt;/p&gt;
&lt;p&gt;在该环境中 OpenVLA 与 RT-2-X 表现接近，但都显著高于 RT-1-X 和 Octo。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在新机器人适配实验中，OpenVLA 全量微调取得最高平均性能。Franka-Tabletop 平均成功率 67.2 ± 4.0%，Franka-DROID 平均 58.3 ± 7.2%。Diffusion Policy 在窄的单指令任务上更稳，例如 &lt;code&gt;Put Carrot in Bowl&lt;/code&gt;、&lt;code&gt;Pour Corn into Pot&lt;/code&gt;；但在多物体、多指令、language grounding 任务中，OpenVLA 和 Octo 等预训练策略明显更强。论文指出，OpenVLA 是唯一在所有评测任务上成功率都至少达到 50% 的方法。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-openvla/finetune-results.5trre49nlw.webp&quot; alt=&quot;新机器人适配实验：Diffusion Policy 与微调后的 Octo、OpenVLA 在 Franka 任务上的对比（论文 Figure 5）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;h4&gt;参数高效微调&lt;/h4&gt;
&lt;p&gt;| 策略            |      成功率 | 可训练参数 (M) | VRAM (batch 16) |
| --------------- | ----------: | -------------: | --------------: |
| Full FT         | 69.7 ± 7.2% |         7188.1 |      163.3 GB* |
| Last layer only | 30.3 ± 6.1% |          465.1 |         51.4 GB |
| Frozen vision   | 47.0 ± 6.9% |         6760.4 |      156.2 GB* |
| Sandwich        | 62.1 ± 7.9% |          914.2 |         64.0 GB |
| LoRA r=32       | 68.2 ± 7.5% |           97.6 |         59.7 GB |
| LoRA r=64       | 68.2 ± 7.8% |          195.2 |         60.5 GB |&lt;/p&gt;
&lt;p&gt;LoRA 只训练约 1.4% 参数，就能匹配 full fine-tuning 的性能；论文推荐默认 rank 32。&lt;/p&gt;
&lt;h4&gt;量化推理&lt;/h4&gt;
&lt;p&gt;| 精度     | Bridge 成功率 |    VRAM |
| -------- | ------------: | ------: |
| bfloat16 |   71.3 ± 4.8% | 16.8 GB |
| int8     |   58.1 ± 5.1% | 10.2 GB |
| int4     |   71.9 ± 4.7% |  7.0 GB |&lt;/p&gt;
&lt;p&gt;4-bit 量化在显存减半以上的同时性能基本不下降；8-bit 因为量化操作开销反而更慢，导致系统动态与训练时 5Hz 控制器不匹配。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-openvla/inference-speed.64el79owhz.webp&quot; alt=&quot;OpenVLA 在不同 GPU 与 bf16/int4 精度下的推理速度（论文 Figure 7）&quot;&gt;&lt;/p&gt;
&lt;h4&gt;其他消融&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 附录还验证了三点：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;OpenX 预训练&lt;/strong&gt;：只用 BridgeData V2 训练的 &lt;code&gt;OpenVLA-Bridge&lt;/code&gt; 在 8 个 Bridge 任务上平均 45.6%，显著低于完整 OpenVLA 的 76.3%，说明跨 embodiment 数据多样性很关键。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;双视觉编码器&lt;/strong&gt;：去掉 DINOv2、只用 SigLIP 的 &lt;code&gt;OpenVLA-Bridge-SigLIP&lt;/code&gt; 平均 40.6%，进一步下降。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;视觉编码器是否微调&lt;/strong&gt;：微调视觉编码器平均 80.0%，冻结只有 46.7%；说明 VLA 需要继续适配视觉特征。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;BridgeData V2&lt;/strong&gt;：显式覆盖 visual、motion、physical、semantic 和 language grounding 五类分布外评测。OpenVLA 在多数类别最强，但 semantic generalization 不如 RT-2-X。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Google robot&lt;/strong&gt;：在 in-distribution 与 unseen objects/tasks/backgrounds/concepts 的 OOD 任务上与 RT-2-X 接近。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Franka 适配&lt;/strong&gt;：在 unseen object、tablecloth、distractor 等 OOD 场景中仍保持竞争力。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;LIBERO 仿真&lt;/strong&gt;：OpenVLA LoRA 微调平均成功率 76.5%、平均 rank 1.5，高于 Octo 和 Diffusion Policy，但优势比真实任务小。论文把这一现象归因于 OpenVLA 只用真实机器人数据预训练，与仿真存在 domain gap。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这些结果支持“互联网预训练带来一定语义与物体泛化能力”的结论，但评测仍是每个 benchmark 内有限的 OOD 变化，不等价于开放世界任意任务。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; OpenVLA 的有效性来自几个层面的叠加：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;预训练先验&lt;/strong&gt;：SigLIP 与 Llama 2 提供了强语义、语言 grounding 和一定常识推理能力，让 7B 模型不需要从零学习“物体是什么”。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;融合视觉特征&lt;/strong&gt;：DINOv2 提供空间细节，SigLIP 提供语义；这种互补对抓取、定位、语言 grounding 都更友好。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;动作 tokenization&lt;/strong&gt;：把动作当作文本 token，使模型能沿用成熟的 LLM 训练、FSDP、FlashAttention 和 serving 基础设施。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;数据规模与多样性&lt;/strong&gt;：970k 跨 embodiment 数据比单数据集更能学到可泛化控制先验。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;数据清洗&lt;/strong&gt;：过滤 Bridge 数据中的全零动作，避免 VLA 学到“冻结”行为；这是相比 RT-2-X 在 Bridge 评测中显著占优的工程因素之一。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 如果只保留一句话：OpenVLA 的核心创新不是新架构，而是把“开放 VLM 骨干 + 大规模机器人数据 + 动作 token 化 + 高效适配/部署”完整打通，并证明一个 7B 开源 VLA 可以超过更大的闭源 RT-2-X。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;与 &lt;strong&gt;Octo&lt;/strong&gt; 相比：Octo 把预训练组件与新组件“缝合”在一起；OpenVLA 直接 fine-tune 完整 VLM 生成动作 token，语言与视觉协同更强。&lt;/li&gt;
&lt;li&gt;与 &lt;strong&gt;RT-2-X&lt;/strong&gt; 相比：RT-2-X 更大、闭源，并同时用机器人动作和互联网数据 co-fine-tune；OpenVLA 只用机器人数据微调，但数据混合更大、清洗更细、视觉编码器不同，并且开源。&lt;/li&gt;
&lt;li&gt;与 &lt;strong&gt;Diffusion Policy&lt;/strong&gt; 相比：Diffusion Policy 是从零训练的表达力更强的动作生成模型，在窄任务上轨迹更平滑；OpenVLA 是预训练 generalist，在多任务、语言 grounding 上更强。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 方法依赖以下前提：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;单张第三视角图像足以确定当前动作，不需要多视角、深度、proprioception 或历史；&lt;/li&gt;
&lt;li&gt;动作可以无损地近似为 256 个离散 bin；&lt;/li&gt;
&lt;li&gt;互联网预训练视觉/语言先验能迁移到机器人控制；&lt;/li&gt;
&lt;li&gt;数据可以用统一的单臂末端执行器动作空间表示；&lt;/li&gt;
&lt;li&gt;控制频率足够慢，允许 7B 模型的推理延迟。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;当前只支持单张图像观测，不支持多视角、proprioception 或观测历史。&lt;/li&gt;
&lt;li&gt;推理吞吐仍不足以支撑 50Hz 的 ALOHA 等高频、灵巧双臂任务。&lt;/li&gt;
&lt;li&gt;虽超过已有 generalist policy，但成功率通常低于 90%，可靠性仍不够高。&lt;/li&gt;
&lt;li&gt;由于算力限制，VLM 规模、动作与互联网数据 co-training、最优视觉特征等设计问题尚未充分探索。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;动作离散化信息损失&lt;/strong&gt;：256 bin 量化会引入动作粒度误差，对精细、接触丰富任务可能不够。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;观测模态单一&lt;/strong&gt;：没有深度和 proprioception，透明/低对比度物体和遮挡场景容易失败。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;训练与评测成本&lt;/strong&gt;：预训练需 21,500 A100-hours，普通实验室只能微调；真实评测 seed 与 rollout 数量有限。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;与 RT-2-X 比较并非完全同条件&lt;/strong&gt;：RT-2-X 无法重新训练，Bridge 数据清洗差异对结果影响较大，论文也承认其数据预处理贡献了部分优势。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;仿真迁移有限&lt;/strong&gt;：LIBERO 中相对 Diffusion Policy 的优势变小，说明纯真实数据预训练对仿真 domain gap 的补偿有限。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;h3&gt;8.1 最值得借鉴的地方&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 最值得借鉴的是“最小改动复用 LLM/VLM 生态”：OpenVLA 没有定制策略网络，而是把动作编码进 token 空间，直接享受 FSDP、FlashAttention、PEFT、量化 serving 等基础设施红利。这让一个 7B 模型从训练到部署都能快速闭环。&lt;/p&gt;
&lt;h3&gt;8.2 可改进点&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;引入多视角、深度、proprioception 和 observation history，提高精细操作鲁棒性。&lt;/li&gt;
&lt;li&gt;用 action chunking、连续动作 decoder 或 speculative decoding 提高控制频率与动作平滑度。&lt;/li&gt;
&lt;li&gt;探索动作数据与互联网视觉-语言数据 co-fine-tune，缓解 semantic generalization 的下降。&lt;/li&gt;
&lt;li&gt;研究比 uniform 256-bin 更优的 action tokenization，例如 FAST 等后续工作。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;8.3 潜在 Research Gap&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;如何设计既不丢连续动作精度、又能保持 LLM 训练简单性的 action representation。&lt;/li&gt;
&lt;li&gt;真实机器人评测缺少统一的 OOD 协议和更多 seed，跨论文比较仍困难。&lt;/li&gt;
&lt;li&gt;高频、双臂、接触丰富任务上 VLA 的闭环推理与安全约束仍未解决。&lt;/li&gt;
&lt;li&gt;仿真到真实、真实到仿真的双向迁移规律仍不清晰。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;8.4 如果基于 OpenVLA 做下一篇工作&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;连续动作 head 替换离散 token&lt;/strong&gt;：在 Llama 骨干后接 diffusion/flow 动作 head。为什么：保留 VLM 语言能力，同时避免 256-bin 量化误差；可能解决精细操作。实现难度：中。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;多模态观测 VLA&lt;/strong&gt;：把多相机、proprioception、历史统一进 token 序列。为什么：作者明确指出这是重要方向；可能改善遮挡和接触任务。实现难度：中高。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;更高效的 action tokenizer&lt;/strong&gt;：研究 action chunk 压缩与更少 token 的离散表示。为什么：推理速度是关键瓶颈，token 越少延迟越低。实现难度：中。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;面向真实部署的安全重规划&lt;/strong&gt;：在 VLA 输出后增加低层安全过滤与高频闭环修正。为什么：低于 90% 的成功率和 6Hz 吞吐是落地障碍。实现难度：高。&lt;/li&gt;
&lt;/ol&gt;</content:encoded><h:img src="https://pic.hana0721.top/133535742_p0_master1200.icpovr2id.webp"/><enclosure url="https://pic.hana0721.top/133535742_p0_master1200.icpovr2id.webp"/></item><item><title>Diffusion Policy 论文精读：用动作扩散学习视觉运动策略</title><link>https://agusexp25.top/blog/paper-deep-dive-diffusion-policy</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-diffusion-policy</guid><description>精读 Diffusion Policy：用条件去噪扩散在动作空间生成动作序列，结合 receding-horizon、视觉 conditioning 和 Time-series Diffusion Transformer，并对照官方代码拆解训练与推理。</description><pubDate>Sun, 23 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;论文名称&lt;/strong&gt;：《Diffusion Policy: Visuomotor Policy Learning via Action Diffusion》&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;作者&lt;/strong&gt;：Cheng Chi、Zhenjia Xu、Siyuan Feng、Eric Cousineau、Yilun Du、Benjamin Burchfiel、Russ Tedrake、Shuran Song&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;机构&lt;/strong&gt;：Columbia University、Toyota Research Institute、MIT、Stanford University&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;会议 / 期刊&lt;/strong&gt;：RSS 2023，扩展版发表于 IJRR&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;论文链接&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2303.04137&quot;&gt;arXiv&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;代码链接&lt;/strong&gt;：&lt;a href=&quot;https://github.com/real-stanford/diffusion_policy&quot;&gt;real-stanford/diffusion_policy&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;项目主页&lt;/strong&gt;：&lt;a href=&quot;https://diffusion-policy.cs.columbia.edu/&quot;&gt;Diffusion Policy&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 本文把 robot visuomotor policy 表示成 conditional denoising diffusion process，让网络不直接回归单步动作，而是学习动作分布 score function 的梯度场；推理时从高斯噪声出发，经过多步 denoise 生成一整段动作序列，并在闭环中只执行前 &lt;code&gt;Ta&lt;/code&gt; 步。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;提出 Diffusion Policy，将 DDPM 从图像生成迁移到机器人动作生成，利用扩散模型表达多模态、高维和时间相关的动作分布。&lt;/li&gt;
&lt;li&gt;用 receding-horizon 结合动作序列预测：输入最近 &lt;code&gt;To&lt;/code&gt; 步观测，预测 &lt;code&gt;Tp&lt;/code&gt; 步动作，只执行 &lt;code&gt;Ta&lt;/code&gt; 步后重新规划。&lt;/li&gt;
&lt;li&gt;提出 vision-conditioned diffusion policy：观测只作为 condition，不在 denoise 循环中生成，因此视觉编码器每次推理只跑一次，显著降低实时推理成本。&lt;/li&gt;
&lt;li&gt;提出 Time-series Diffusion Transformer，缓解 1D temporal CNN 对高频动作变化过平滑的问题。&lt;/li&gt;
&lt;li&gt;在 4 个 benchmark、15 个任务上系统验证，平均成功率相对 baselines 提升 46.9%，并在多个真实机器人任务上验证。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 最简单的 policy learning from demonstration 可以看成从 observation 到 action 的监督回归。但机器人动作预测有三个特殊性：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;多模态&lt;/strong&gt;：同一观测下可能存在多条合理动作，例如绕障时从左走或从右走。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;序列相关&lt;/strong&gt;：连续动作不能独立预测，否则会来回横跳。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;高精度&lt;/strong&gt;：接触密集的 manipulation 对动作精度很敏感。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;传统 explicit policy 直接输出 action 或其分布。L2 regression 隐含单峰 Gaussian 假设，GMM、离散化或 clustering 又容易遇到 mode 数量难选、高维 bin 指数增长和 mode collapse。Implicit policy 用 energy-based model 表达分布，理论上有任意分布的表达能力，但训练时需要对不可求的归一化常数做 negative sampling，实践上不稳定。&lt;/p&gt;
&lt;p&gt;Diffusion models 已经从图像生成中证明了高维输出扩展能力和稳定训练能力。Diffusion Policy 的核心不是继续设计更好的单步动作表示，而是把 policy 本身替换成一个带观测条件的去噪过程。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Task&lt;/strong&gt;：Imitation learning / Behavior Cloning。给定专家示教，学习从观测到动作的条件分布。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Observation&lt;/strong&gt;：最近 &lt;code&gt;To&lt;/code&gt; 步观测 $O_t$。真实任务中主要是多视角 RGB 图像，仿真中还包括 state 或 keypoints。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Action&lt;/strong&gt;：未来 &lt;code&gt;Tp&lt;/code&gt; 步动作序列 $A_t$，其中前 &lt;code&gt;Ta&lt;/code&gt; 步交给机器人执行。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Action Space&lt;/strong&gt;：连续动作。论文推荐 Diffusion Policy 使用 absolute position control，而不是 velocity control；旋转使用 6D rotation representation。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Robot / Embodiment&lt;/strong&gt;：UR5 和 Franka Panda，单臂任务以及扩展版中的双臂任务。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dataset&lt;/strong&gt;：Robomimic、Push-T、Multimodal Block Push、Franka Kitchen，以及多个真实任务的数据集。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Training Objective&lt;/strong&gt;：学习条件分布 $p(A_t \mid O_t)$。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;形式上，policy 要建模：&lt;/p&gt;
&lt;p&gt;$$
p(A_t \mid O_t), \quad A_t = a_{t:t+T_p-1}
$$&lt;/p&gt;
&lt;p&gt;其中 $a_t$ 是单个时间步动作，$T_p$ 是 action prediction horizon。论文用 DDPM 学习该条件分布，而不是直接输出其均值或单一 mode。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;整体数据流是：观测先编码成 condition，再以 action sequence 为去噪对象，逐步从噪声恢复动作轨迹。训练和推理的逐步过程分别见 4.4 和 4.5。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Diffusion Policy 有两个主干选择：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;CNN-based Diffusion Policy&lt;/strong&gt;：采用 1D temporal CNN，把 observation feature 和 diffusion step 用 FiLM 条件注入每一层卷积。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Time-series Diffusion Transformer&lt;/strong&gt;：把 noisy action token 输入 transformer decoder，observation embedding 通过 cross-attention 作为 condition，action token 之间使用 causal attention。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;Action-sequence prediction 与 receding-horizon&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：最近 &lt;code&gt;To&lt;/code&gt; 步观测。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：未来 &lt;code&gt;Tp&lt;/code&gt; 步动作。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;执行&lt;/strong&gt;：只把前 &lt;code&gt;Ta&lt;/code&gt; 步交给 low-level controller，之后用新观测重新规划。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要&lt;/strong&gt;：输出整个 action sequence 可以鼓励时间一致性，同时避免预测完整 episode 带来的响应延迟。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方代码中 &lt;code&gt;horizon&lt;/code&gt; 对应 &lt;code&gt;Tp&lt;/code&gt;，&lt;code&gt;n_obs_steps&lt;/code&gt; 对应 &lt;code&gt;To&lt;/code&gt;，&lt;code&gt;n_action_steps&lt;/code&gt; 对应 &lt;code&gt;Ta&lt;/code&gt;。仿真 CNN 默认常见配置是 &lt;code&gt;horizon=16, n_obs_steps=2, n_action_steps=8&lt;/code&gt;。&lt;code&gt;MultiStepWrapper&lt;/code&gt; 每次执行 &lt;code&gt;n_action_steps&lt;/code&gt; 个动作后再查询 policy。&lt;/p&gt;
&lt;h4&gt;Visual encoder&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：一个或多个相机的 RGB 图。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：视觉 embedding $O_t$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;功能&lt;/strong&gt;：把高维图像变成 diffusion network 可消费的 condition。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要&lt;/strong&gt;：不同视角需要独立编码器，时间步之间先独立编码再 concat，保持空间信息。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 默认使用未预训练 ResNet-18，做两个修改：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;把 global average pooling 替换为 spatial softmax pooling，保留空间信息。&lt;/li&gt;
&lt;li&gt;把 BatchNorm 替换为 GroupNorm，因为 DDPM 常与 EMA 一起使用，BatchNorm 会破坏 EMA 训练稳定性。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;diffusion_unet_image_policy.py&lt;/code&gt; 的 &lt;code&gt;MultiImageObsEncoder&lt;/code&gt; 直接使用 &lt;code&gt;resnet18&lt;/code&gt;，&lt;code&gt;weights=null&lt;/code&gt;，&lt;code&gt;use_group_norm=True&lt;/code&gt;，并支持 random crop。Robomimic hybrid policy 则通过 &lt;code&gt;get_robomimic_config&lt;/code&gt; 构造 Robomimic 的 observation encoder，再用 &lt;code&gt;replace_submodules&lt;/code&gt; 把 BatchNorm 替换为 GroupNorm。&lt;/p&gt;
&lt;h4&gt;CNN noise prediction network&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：noisy action sequence、diffusion step、observation embedding。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：预测噪声 $\epsilon_\theta(O_t, A_t^k, k)$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;功能&lt;/strong&gt;：在 1D temporal CNN 上逐步去噪。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要&lt;/strong&gt;：对多数任务开箱即用，训练稳定。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 对应 &lt;code&gt;ConditionalUnet1D&lt;/code&gt;。&lt;code&gt;down_dims=[512,1024,2048]&lt;/code&gt;、&lt;code&gt;kernel_size=5&lt;/code&gt;、&lt;code&gt;n_groups=8&lt;/code&gt; 是仿真 CNN image policy 的常见配置；condition 进入 FiLM 模块，输出逐通道 scale 和 bias。&lt;/p&gt;
&lt;h4&gt;Time-series diffusion transformer&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：noisy action token、diffusion step embedding、observation embedding。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：对应每个 action token 的预测噪声。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;功能&lt;/strong&gt;：缓解 CNN 对高频动作变化的过平滑。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要&lt;/strong&gt;：velocity command、快速切换动作等任务更适合 transformer。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 对应 &lt;code&gt;TransformerForDiffusion&lt;/code&gt;。代码里 observation 条件先通过 &lt;code&gt;cond_obs_emb&lt;/code&gt; 线性投影，再通过一个 shared MLP（默认 &lt;code&gt;n_cond_layers=0&lt;/code&gt; 时为 &lt;code&gt;Linear-Mish-Linear&lt;/code&gt;），作为 transformer decoder 的 memory；action token 使用 causal attention。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;DDPM 去噪更新&lt;/h4&gt;
&lt;h1&gt;$$
\mathbf x^{k-1}&lt;/h1&gt;
&lt;p&gt;\alpha\left(
\mathbf x^k - \gamma \epsilon_\theta(\mathbf x^k, k)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;\mathcal N(0, \sigma^2 I)
\right)
$$&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;$\mathbf x^k$：第 $k$ 步的 noisy sample。&lt;/li&gt;
&lt;li&gt;$\epsilon_\theta$：noise prediction network。&lt;/li&gt;
&lt;li&gt;$k$：diffusion step。&lt;/li&gt;
&lt;li&gt;$\alpha, \gamma, \sigma$：noise schedule 决定每一步的缩放、步长和随机噪声。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这个公式也可以理解为一次 noisy gradient descent：&lt;/p&gt;
&lt;p&gt;$$
\mathbf x&apos; = \mathbf x - \gamma \nabla E(\mathbf x)
$$&lt;/p&gt;
&lt;p&gt;其中 $\epsilon_\theta$ 近似了 energy landscape 的梯度方向。&lt;/p&gt;
&lt;h4&gt;条件 Diffusion Policy&lt;/h4&gt;
&lt;p&gt;Diffusion Policy 建模条件分布而不是 joint distribution：&lt;/p&gt;
&lt;h1&gt;$$
\mathbf A_t^{k-1}&lt;/h1&gt;
&lt;h2&gt;\alpha\left(
\mathbf A_t^k&lt;/h2&gt;
&lt;p&gt;\gamma \epsilon_\theta(O_t, \mathbf A_t^k, k)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;\mathcal N(0, \sigma^2 I)
\right)
$$&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;训练 loss：&lt;/p&gt;
&lt;h1&gt;$$
\mathcal L&lt;/h1&gt;
&lt;p&gt;\mathrm{MSE}\left(
\epsilon^k,
\epsilon_\theta(O_t, A_t^0 + \epsilon^k, k)
\right)
$$&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;$O_t$：最近 &lt;code&gt;To&lt;/code&gt; 步 observation。&lt;/li&gt;
&lt;li&gt;$A_t^0$：真实未来动作序列。&lt;/li&gt;
&lt;li&gt;$\epsilon^k$：扩散步 $k$ 采样的 Gaussian noise。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;与 implicit policy 的关系&lt;/h4&gt;
&lt;p&gt;Implicit policy 的 EBM 形式是：&lt;/p&gt;
&lt;h1&gt;$$
p_\theta(\mathbf a \mid \mathbf o)&lt;/h1&gt;
&lt;p&gt;\frac{
e^{-E_\theta(\mathbf o, \mathbf a)}
}{
Z(\mathbf o, \theta)
}
$$&lt;/p&gt;
&lt;p&gt;其中 $Z$ 是难以估计的归一化常数。Diffusion Policy 直接建模 score function：&lt;/p&gt;
&lt;p&gt;$$
\nabla_{\mathbf a} \log p(\mathbf a \mid \mathbf o)
\approx
-\epsilon_\theta(\mathbf a, \mathbf o)
$$&lt;/p&gt;
&lt;p&gt;$Z$ 对 $\mathbf a$ 的梯度为零，因此训练和推理都不需要估计 $Z$。这是 Diffusion Policy 相比 IBC 训练更稳定的核心原因。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Noise schedule&lt;/strong&gt;：Square Cosine Schedule，来自 iDDPM；仿真训练和推理均使用 100 diffusion steps。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Action normalization&lt;/strong&gt;：每个 action dimension 独立 min-max 缩放到 &lt;code&gt;[-1,1]&lt;/code&gt;；旋转表示保持不变或使用 6D rotation。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Vision encoder&lt;/strong&gt;：默认从零训练，ResNet-18，spatial softmax + GroupNorm。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Image augmentation&lt;/strong&gt;：训练 random crop，推理 static center crop。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Optimization&lt;/strong&gt;：AdamW；CNN learning rate &lt;code&gt;1e-4&lt;/code&gt;，warmup 500 steps；Transformer learning rate &lt;code&gt;1e-4&lt;/code&gt;，warmup 1000 steps；cosine schedule。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Batch size&lt;/strong&gt;：state-based experiments 256，image-based experiments 64。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;EMA&lt;/strong&gt;：与 DDPM 一起使用，因此用 GroupNorm 替代 BatchNorm。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;compute_loss&lt;/code&gt; 对 action sequence 加噪，用 &lt;code&gt;DDPMScheduler.add_noise&lt;/code&gt;；loss 是 &lt;code&gt;F.mse_loss(pred, noise)&lt;/code&gt;，并且只计算非 condition 部分。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;LinearNormalizer&lt;/code&gt; 默认 &lt;code&gt;mode=&apos;limits&apos;&lt;/code&gt;，把每个 action dim 的 min/max 映射到 &lt;code&gt;[-1,1]&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;数据集通过 &lt;code&gt;SequenceSampler&lt;/code&gt; 从 episode 中采样长度为 &lt;code&gt;horizon&lt;/code&gt; 的片段；首尾 pad 由 &lt;code&gt;pad_before&lt;/code&gt; 和 &lt;code&gt;pad_after&lt;/code&gt; 控制。&lt;/li&gt;
&lt;li&gt;训练 workspace 每 &lt;code&gt;rollout_every=50&lt;/code&gt; 个 epoch 做一次 rollout，每 &lt;code&gt;checkpoint_every=50&lt;/code&gt; 保存 checkpoint，并使用 top-k checkpoint manager。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;从 Gaussian noise 初始化未来动作序列，经过 diffusion process 生成完整 prediction horizon。&lt;/li&gt;
&lt;li&gt;只执行前 &lt;code&gt;Ta&lt;/code&gt; 步，再根据最新 observation 重新规划。&lt;/li&gt;
&lt;li&gt;使用 DDIM 减少推理 diffusion steps。论文正文提到 100 个 training steps、10 个 inference steps 时，在 Nvidia 3080 上达到约 0.1s inference latency；补充材料中的真实任务表使用 16 个 inference steps。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;conditional_sample&lt;/code&gt; 每次从 &lt;code&gt;torch.randn&lt;/code&gt; 初始化 noisy trajectory，随后调用 &lt;code&gt;scheduler.set_timesteps(num_inference_steps)&lt;/code&gt; 并循环 &lt;code&gt;scheduler.step&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;视觉 embedding 在循环外计算，CNN image policy 的 &lt;code&gt;obs_as_global_cond=True&lt;/code&gt;，因此 denoise 循环只跑 action diffusion network。&lt;/li&gt;
&lt;li&gt;真实机器人脚本 &lt;code&gt;eval_real_robot.py&lt;/code&gt; 显式把 &lt;code&gt;policy.num_inference_steps = 16&lt;/code&gt;，并把 &lt;code&gt;policy.n_action_steps&lt;/code&gt; 改为 &lt;code&gt;horizon - n_obs_steps + 1&lt;/code&gt;；实际执行循环使用 &lt;code&gt;steps_per_inference&lt;/code&gt; 控制重新规划频率。&lt;/li&gt;
&lt;li&gt;论文正文的 &lt;code&gt;10&lt;/code&gt; 和代码/补充材料中的 &lt;code&gt;16&lt;/code&gt; 是推理 step 数的一个实现差异。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;| 论文描述                                          | 官方代码实现                                       | 实际行为                                                                      |
| ------------------------------------------------- | -------------------------------------------------- | ----------------------------------------------------------------------------- |
| CNN 用 FiLM 注入 observation 与 diffusion step    | &lt;code&gt;ConditionalUnet1D&lt;/code&gt; + &lt;code&gt;ConditionalResidualBlock1D&lt;/code&gt; | 每个 residual block 预测 scale/bias，对卷积特征做逐通道调制                   |
| Transformer 用 cross-attention 条件化 observation | &lt;code&gt;TransformerForDiffusion&lt;/code&gt;                          | observation embedding 作为 decoder memory，action token causal self-attention |
| 视觉编码器 ResNet-18，spatial softmax + GroupNorm | &lt;code&gt;MultiImageObsEncoder&lt;/code&gt; / Robomimic obs encoder     | 从零训练 ResNet-18，&lt;code&gt;use_group_norm=True&lt;/code&gt;，多相机不共享 encoder               |
| action min-max 到 &lt;code&gt;[-1,1]&lt;/code&gt;                        | &lt;code&gt;LinearNormalizer&lt;/code&gt; 的 &lt;code&gt;limits&lt;/code&gt; mode                | 低方差维度不会按接近零的 range 缩放                                           |
| receding-horizon 只执行 &lt;code&gt;Ta&lt;/code&gt; 步                   | &lt;code&gt;MultiStepWrapper&lt;/code&gt;                                 | 环境接收 &lt;code&gt;n_action_steps&lt;/code&gt; 个动作后返回新观测                                  |
| DDIM 加速真实推理                                 | &lt;code&gt;DDIMScheduler&lt;/code&gt; / &lt;code&gt;eval_real_robot.py&lt;/code&gt;             | 代码真实 eval 设置 16 inference steps                                         |
| 论文提到可用前次预测 warm-start                   | 未实现                                             | &lt;code&gt;conditional_sample&lt;/code&gt; 每次重新从 Gaussian 采样                                 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 论文对 receding-horizon 描述中的 warm-start 是一个潜在优化方向，但官方仓库当前没有把上一段 noisy action 作为下一次采样起点；因此代码层面的 receding-horizon 更接近“每 &lt;code&gt;Ta&lt;/code&gt; 步重新采样”，而不是严格 warm-started model predictive control。&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Benchmarks&lt;/strong&gt;：Robomimic、Push-T、Multimodal Block Push、Franka Kitchen，加上真实机器人任务。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Task 数量&lt;/strong&gt;：仿真和真实共 15 个任务；扩展版再加入 Egg Beater、Mat Unrolling、Shirt Folding 三个双臂任务。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Observation&lt;/strong&gt;：state 和 image 两类；image 分辨率根据任务为 &lt;code&gt;84x84&lt;/code&gt;、&lt;code&gt;96x96&lt;/code&gt;、&lt;code&gt;240x240&lt;/code&gt; 或真实任务的 &lt;code&gt;320x240&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Baselines&lt;/strong&gt;：LSTM-GMM / BC-RNN、IBC、BET。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Metrics&lt;/strong&gt;：多数任务为 success rate；Push-T 使用 target area coverage，真实 sauce tasks 使用 IoU 或 coverage。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Evaluation&lt;/strong&gt;：仿真报告 best checkpoint 与最后 10 个 checkpoint 平均，跨 3 seeds 和多个 initial conditions。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在仿真 benchmark 上，Diffusion Policy 在所有 state/image 任务和 variant 上都超过 baselines，按论文给出的相对改进计算方法，平均提升 46.9%。&lt;/p&gt;
&lt;p&gt;部分 Robomimic 视觉 policy 的 best/avg checkpoint 成功率如下：&lt;/p&gt;
&lt;p&gt;| Task         |    LSTM-GMM |         IBC | DiffusionPolicy-C | DiffusionPolicy-T |
| ------------ | ----------: | ----------: | ----------------: | ----------------: |
| Lift PH      | 1.00 / 0.96 | 0.94 / 0.73 |       1.00 / 1.00 |       1.00 / 1.00 |
| Can PH       | 1.00 / 0.88 | 0.08 / 0.01 |       1.00 / 0.97 |       1.00 / 0.98 |
| Square PH    | 0.82 / 0.59 | 0.03 / 0.00 |       0.98 / 0.92 |       1.00 / 0.90 |
| Transport PH | 0.88 / 0.62 | 0.00 / 0.00 |       1.00 / 0.93 |       0.98 / 0.81 |
| ToolHang PH  | 0.68 / 0.49 | 0.00 / 0.00 |       0.95 / 0.73 |       0.76 / 0.47 |
| Push-T       | 0.69 / 0.54 | 0.75 / 0.64 |       0.91 / 0.84 |       0.78 / 0.66 |&lt;/p&gt;
&lt;p&gt;多阶段 state 任务中，Diffusion Policy 尤其能处理 long-horizon multimodality。论文报告 Block Push &lt;code&gt;p2&lt;/code&gt; 相对改进 32%，Kitchen &lt;code&gt;p4&lt;/code&gt; 相对改进 213%。&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;真实 Push-T 的关键结果是：&lt;/p&gt;
&lt;p&gt;| Method             |      IoU |  Success |  Duration |
| ------------------ | -------: | -------: | --------: |
| Human              |     0.84 |     1.00 |     20.3s |
| IBC pos            |     0.14 |     0.00 |     56.3s |
| IBC vel            |     0.19 |     0.00 |     41.6s |
| LSTM-GMM pos       |     0.24 |     0.20 |     47.3s |
| LSTM-GMM vel       |     0.25 |     0.10 |     51.7s |
| DP Transformer E2E |     0.53 |     0.65 |     57.5s |
| DP ImageNet        |     0.24 |     0.15 |     55.8s |
| DP R3M             |     0.66 |     0.80 |     31.7s |
| DP CNN E2E         | &lt;strong&gt;0.80&lt;/strong&gt; | &lt;strong&gt;0.95&lt;/strong&gt; | &lt;strong&gt;22.9s&lt;/strong&gt; |&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;其他真实任务总结：&lt;/p&gt;
&lt;p&gt;| Task                  | Human | LSTM-GMM | Diffusion Policy |
| --------------------- | ----: | -------: | ---------------: |
| Mug Flipping success  |   1.0 |      0.0 |              0.9 |
| Sauce Pour IoU        |  0.79 |     0.06 |             0.74 |
| Sauce Pour success    |  1.00 |     0.00 |             0.79 |
| Sauce Spread coverage |  0.79 |     0.27 |             0.77 |
| Sauce Spread success  |  1.00 |     0.00 |             1.00 |&lt;/p&gt;
&lt;p&gt;扩展版中的三个双臂任务：Egg Beater 55%、Mat Unrolling 75%、Shirt Folding 75% success rate，分别使用 210、162、284 条示教。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Action horizon&lt;/strong&gt;：&lt;code&gt;Ta=8&lt;/code&gt; 在多数任务上最好。太小失去时间一致性，太大降低响应速度。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Position vs velocity control&lt;/strong&gt;：Diffusion Policy 从 velocity 换到 position 后性能提升，而 BC-RNN、BET 等 baseline 换到 position 后通常下降。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Latency robustness&lt;/strong&gt;：receding-horizon position control 在模拟 latency 最多 4 步时仍能维持 peak performance；velocity control 受 latency 影响更大。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Observation horizon&lt;/strong&gt;：state-based policy 对 observation horizon 不敏感；vision-based CNN policy 偏好较小的 &lt;code&gt;To&lt;/code&gt;，2 步在多数任务中是较好折中。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Data efficiency&lt;/strong&gt;：在每个训练数据规模上，Diffusion Policy 都优于 LSTM-GMM。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Vision encoder&lt;/strong&gt;：从零训练 ResNet、frozen pretrained、finetune pretrained 三种设置中，finetune 最好，尤其 CLIP ViT-B/16 达到 0.98；但从零训练 ResNet 已经接近，真实系统仍以 end-to-end training 为最佳。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这张消融图说明了 Diffusion Policy 与一般“predict full trajectory”方法的关键区别：它并不是预测一整条开环轨迹，而是预测一段足够长的局部轨迹，再通过高频重新规划保持闭环反应能力。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文没有做大规模跨 embodiment、跨任务或 language-conditioned generalization 评测。其泛化证据主要来自：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;初始位置随机化下的同任务鲁棒性。&lt;/li&gt;
&lt;li&gt;真实 Push-T 中视觉遮挡、物体被推动后的重新规划。&lt;/li&gt;
&lt;li&gt;在未示教的“离开 T block 后又被挪动”场景中，policy 会返回目标区重新修正。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;【Paper】还展示了一种“合成新行为”：训练数据中没有“已经前往 end-zone 又回来继续推 T block”的轨迹，但 Diffusion Policy 在物理扰动下能做到。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; Diffusion Policy 的有效性来自三个层面的协同：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;扩散模型允许 policy 输出任意可归一化分布，因此同一观测下多个合理 action mode 可以被保留，并在单次采样中 commit 到其中一个。&lt;/li&gt;
&lt;li&gt;高维 action sequence 一次生成，使连续动作共享同一去噪过程，避免 BC-RNN、BET 等把每个时间步独立 sample 时出现的 jittery mode switch。&lt;/li&gt;
&lt;li&gt;observation 被移到 diffusion loop 外，使视觉编码只需执行一次；这降低了实时推理成本，同时让 end-to-end visual encoder 训练可行。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 如果只保留一句，Diffusion Policy 的核心创新是：不把 policy 设计成显式回归或 EBM 优化器，而是用条件 DDPM 学习动作分布的 score function，并把这个生成式 policy 直接用于 visuomotor control。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;与 BC-RNN/LSTM-GMM 相比：不预设 Gaussian 或 GMM mode 数，表达能力不受指数族限制。&lt;/li&gt;
&lt;li&gt;与 IBC 相比：不估计 EBM 的归一化常数，训练目标只是 noise prediction，避免 negative sampling 导致的不稳定。&lt;/li&gt;
&lt;li&gt;与 Diffuser 相比：建模 $p(A_t \mid O_t)$ 而不是 joint $p(A_t, O_t)$，不需要在 denoise 过程中同时生成 future observation，因此能实时运行。&lt;/li&gt;
&lt;li&gt;与 ACT 相比：ACT 用 CVAE 生成 chunk，Diffusion Policy 用迭代去噪生成 chunk；两者都强调 action chunk，但概率建模和采样机制不同。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;当前 observation 足够决定未来 &lt;code&gt;Tp&lt;/code&gt; 步动作。&lt;/li&gt;
&lt;li&gt;专家示教质量足够高，且 action 可被 min-max normalization 合理表示。&lt;/li&gt;
&lt;li&gt;任务的控制频率适合 diffusion inference latency；论文真实任务通常运行在 10Hz 左右。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Ta&lt;/code&gt; 需要在时间一致性与响应性之间选择，缺少自适应 horizon 机制。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Diffusion Policy 继承 Behavior Cloning 的局限，在示教不足或示教质量较差时性能会下降；论文建议未来与 offline RL、negative data 等方法结合。&lt;/li&gt;
&lt;li&gt;相比 LSTM-GMM 等简单 policy，计算成本和 inference latency 更高。action sequence prediction 部分缓解了这个问题，但对需要高控制频率的任务可能仍不够。&lt;/li&gt;
&lt;li&gt;论文建议未来探索更快的 noise schedule、inference solver 和 consistency model，以进一步减少 inference steps。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;推理本质上是随机采样，即使 observation 相同，输出也会不同；在需要严格可重复或安全认证的场景中，需要固定 seed 或增加后处理。&lt;/li&gt;
&lt;li&gt;官方代码的 receding-horizon 并未实现论文提到的 warm-start，因此相邻两次规划之间的动作连续性主要依赖 action sequence 本身，而不是显式沿用上一段 noisy trajectory。&lt;/li&gt;
&lt;li&gt;论文的真实系统以 10Hz 控制为主，diffusion 推理开销决定它不能直接迁移到数百 Hz 的力控或高动态任务。&lt;/li&gt;
&lt;li&gt;实验未覆盖开放性、长序列语言指令或跨机器人大规模泛化，不能把 Push-T 上的扰动恢复直接解释为 open-world generalization。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Diffusion Policy 之后的大量工作继续围绕几个方向展开：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;用 Consistency Model、DDIM distillation 等减少 diffusion steps，把 Diffusion Policy 从约 10Hz 推近实时。&lt;/li&gt;
&lt;li&gt;把 action diffusion 接到 VLA、多模态 foundation model 上，作为连续动作 head，而不是从零训练 vision encoder。&lt;/li&gt;
&lt;li&gt;将 action chunk 与 VLA 的 action tokenization 结合，在离散 token 与连续 diffusion 之间寻找更紧凑的 action representation。&lt;/li&gt;
&lt;li&gt;从 Behavior Cloning 扩展到 offline RL，让 diffusion policy 能利用 suboptimal 和 failure data。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;对这个仓库的工程实现，最值得借鉴的不是“diffusion 很新”，而是它把 observation、action normalization、receding-horizon、EMA、scheduler 和 evaluation runner 都作为独立模块组合起来，使同一个 policy core 可以快速换到 CNN、Transformer、state 或 image observation。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/105886628_p0_master1200.5fl6its319.webp"/><enclosure url="https://pic.hana0721.top/105886628_p0_master1200.5fl6its319.webp"/></item><item><title>CogACT 论文精读：让 VLM 负责认知，让 Diffusion Transformer 负责动作</title><link>https://agusexp25.top/blog/paper-deep-dive-cogact</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-cogact</guid><description>精读 CogACT：在 7B VLM 后接最大 308M 参数的 Diffusion Transformer 动作模块，用 cognition token 连接认知与动作，在 SIMPLER 与多台真实机器人上超过 OpenVLA 和 RT-2-X。</description><pubDate>Sun, 23 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;论文名称&lt;/strong&gt;：《CogACT: A Foundational Vision-Language-Action Model for Synergizing Cognition and Action in Robotic Manipulation》&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;作者&lt;/strong&gt;：Qixiu Li、Yaobo Liang、Zeyu Wang、Lin Luo、Xi Chen、Mozheng Liao、Fangyun Wei、Yu Deng、Sicheng Xu、Yizhong Zhang、Xiaofan Wang、Bei Liu、Jianlong Fu、Jianmin Bao、Dong Chen、Yuanchun Shi、Jiaolong Yang、Baining Guo&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;机构&lt;/strong&gt;：Tsinghua University、Microsoft Research Asia、USTC、Institute of Microelectronics CAS&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;会议 / 期刊&lt;/strong&gt;：arXiv 预印本（2024）&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;论文链接&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2411.19650&quot;&gt;arXiv&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;代码链接&lt;/strong&gt;：&lt;a href=&quot;https://github.com/microsoft/CogACT&quot;&gt;microsoft/CogACT&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;项目主页&lt;/strong&gt;：&lt;a href=&quot;https://cogact.github.io/&quot;&gt;CogACT&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;模型&lt;/strong&gt;：&lt;a href=&quot;https://huggingface.co/CogACT&quot;&gt;CogACT-Small / CogACT-Base / CogACT-Large&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; CogACT 不再让 7B VLM 直接输出离散动作 token，而是保留 VLM 的视觉与语言推理能力，只取一个 &lt;code&gt;cognition token&lt;/code&gt; 的 hidden feature 作为条件，交给一个独立的 Diffusion Transformer（DiT）动作模块，用扩散过程生成连续、多模态、时间相关的动作序列；在 SIMPLER 仿真与 Realman、Franka 真实机器人上，任务成功率显著超过 OpenVLA 和 RT-2-X。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;提出 componentized VLA 架构：&lt;code&gt;Vision Module + Language Module + Diffusion Action Module&lt;/code&gt;，把 VLM 的“认知”能力和专门的动作建模能力解耦。&lt;/li&gt;
&lt;li&gt;系统研究动作模块设计，发现大型 DiT 动作模块比单步动作预测、MLP 动作头和小型 diffusion head 更适合机器人动作建模。&lt;/li&gt;
&lt;li&gt;验证动作模块的 favorable scaling behavior：DiT 参数从 13M 增加到 308M 时成功率持续提升，而且相对于 7B VLM 参数增加很少。&lt;/li&gt;
&lt;li&gt;提出 Adaptive Action Ensemble（AAE），用当前预测与历史预测的余弦相似度做自适应加权，避免把不同动作模式简单平均。&lt;/li&gt;
&lt;li&gt;在 Google Robot、WidowX、Realman、Franka 等 embodiment 上评测，并公开代码、模型和部署脚本。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 大型 VLA 的泛化能力主要来自互联网规模预训练的 VLM。RT-2、OpenVLA 等方法直接把 VLM 当作策略：把连续动作离散成 token，让 VLM 用 next-token prediction 输出动作。论文认为这种“简单复用”忽略了动作信号本身的三个性质：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Continuous&lt;/strong&gt;：机器人控制动作本质上是连续信号，均匀离散化会损失精度。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Multimodal&lt;/strong&gt;：同一个任务状态可以有多种可行轨迹，确定性回归或分类可能只能学到平均行为。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Temporally correlated&lt;/strong&gt;：动作不是独立样本，单步预测容易产生不连贯、不平稳的运动。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;RoboFlamingo 这类工作加入 LSTM 等 action head 做回归，但论文指出 regression-based 训练没有显式建模动作分布的多模态性。另一个方向是用视频生成预训练增强机器人学习，但通常没有直接继承大 VLM 的互联网视觉-语言知识。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 与 Concurrent Large Action Models（如 DiT Policy、RDT）相比，CogACT 没有使用冻结的独立 vision/language encoder，而是直接基于 Prismatic VLM 做端到端训练，因此可以保留大 VLM 的开放词汇识别和指令跟随能力。与 Octo 相比，Octo 只在 transformer backbone 后接约 3M 参数的 compact diffusion head，CogACT 则把 action module 本身做大，并研究其 scaling。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这篇论文最重要的判断是：VLM 的 token 输出空间并不适合直接承载高精度机器人动作。与其强行让语言模型生成动作，不如让 VLM 产生一个“该做什么”的认知特征，再由专门模型把它解码成连续动作。这个判断直接导致后续所有设计都围绕 action module 展开。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Task&lt;/strong&gt;：给定语言指令 $l$ 和当前视觉观测 $\bm{o}_t$，输出从 $t$ 开始的连续动作序列。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Observation&lt;/strong&gt;：单张 RGB 图像，经 DINOv2 和 SigLIP 编码为视觉 token；论文正文不依赖 proprioception 或历史观测。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Action&lt;/strong&gt;：7 维末端执行器动作，定义为相对平移、旋转增量和夹爪开合：&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;$$
\bm{a}_t = [\Delta x, \Delta y, \Delta z, \Delta \phi, \Delta \theta, \Delta \psi, g]
$$&lt;/p&gt;
&lt;p&gt;其中 $\Delta x, \Delta y, \Delta z$ 是末端执行器相对平移，$\Delta \phi, \Delta \theta, \Delta \psi$ 是旋转变化，$g \in {0,1}$ 表示夹爪开/闭。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Policy&lt;/strong&gt;：模型 $\bm{\pi}$ 一次预测当前动作和未来 $N$ 步动作：&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;$$
\bm{\pi}: (\bm{l},\bm{o}&lt;em&gt;t) \rightarrow (\bm{a}&lt;em&gt;t,\bm{a}&lt;/em&gt;{t+1},...,\bm{a}&lt;/em&gt;{t+N})
$$&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Robot / Embodiment&lt;/strong&gt;：仿真评测 Google Robot 与 WidowX；真实评测 Realman 与 Franka。论文摘要称覆盖 5 种 robot embodiment，正文明确出现的评测平台主要是这 4 类。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dataset&lt;/strong&gt;：主预训练数据为 Open X-Embodiment（OXE）中筛选出的 25 个数据集，共约 0.4M 条轨迹、22.5M 帧。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Training Objective&lt;/strong&gt;：对动作模块做 diffusion noise prediction，以 MSE 最小化预测噪声与真实噪声的误差；VLM 与动作模块端到端联合训练。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Embodied AI Checklist&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Vision Encoder&lt;/strong&gt;：DINOv2 + SigLIP，双视觉 transformer 输出特征图后按 channel 拼接。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Language Model&lt;/strong&gt;：LLaMA-2 7B，作为 causal language backbone。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Multimodal Fusion&lt;/strong&gt;：视觉 token、语言 token、learnable cognition token 组成同一序列，通过 causal attention 融合。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Action Tokenization&lt;/strong&gt;：不量化，动作保持连续；动作模块直接用 diffusion 建模。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Action Decoder&lt;/strong&gt;：DiT-S / DiT-B / DiT-L。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Policy&lt;/strong&gt;：VLM 输出 cognition feature 后由 DiT 生成动作序列。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Training Objective&lt;/strong&gt;：预测噪声的 MSE loss，配合 VLM 端到端训练。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dataset&lt;/strong&gt;：OXE 25 个单臂数据集，排除 Language Table 与 DROID。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Action Horizon / Chunking&lt;/strong&gt;：默认预测当前 + 15 个未来动作，动作模块上下文长度 17。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Inference Pipeline&lt;/strong&gt;：VLM 生成 1 个 cognition token，DDIM 10 步去噪，CFG scale 1.5，Adaptive Action Ensemble 融合历史预测。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Real-world Deployment&lt;/strong&gt;：官方 &lt;code&gt;deploy.py&lt;/code&gt; 提供 HTTP 推理服务，BF16 下约 5.5 Hz。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;CogACT 把模型拆成三个部分：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Vision Module&lt;/strong&gt;：DINOv2 和 SigLIP 分别提取图像特征，拼接并线性投影为 256 个视觉 token。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Language Module&lt;/strong&gt;：LLaMA-2 对视觉 token、语言指令 token 和一个 learnable cognition token 做 causal attention，输出对应 cognition token 的 hidden feature。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Diffusion Action Module&lt;/strong&gt;：以 cognition feature 为条件，对一整段连续动作序列做扩散去噪。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;整体数据流只有一句话：图像和语言指令进入 VLM，VLM 输出 1 个 cognition feature，DiT 以它和噪声动作 token 为输入，经过多次去噪输出 16 步连续动作；训练和推理的完整流程分别在 4.4 和 4.5。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;DINOv2 + SigLIP Vision Module&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：当前 RGB 图像。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：256 个视觉 perceptual token。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;功能&lt;/strong&gt;：用两个预训练视觉 transformer 获得空间细节和开放语义。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要&lt;/strong&gt;：DINOv2 擅长空间/局部特征，SigLIP 擅长语言对齐的语义特征；两者互补。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;实现细节&lt;/strong&gt;：两路特征图先 downsampled，再沿 channel 维度拼接，经 linear projection 序列化为 token。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 对应 &lt;code&gt;PrismaticVLM&lt;/code&gt; 的 vision backbone。官方代码通过 Prismatic 的 &lt;code&gt;prism-dinosiglip-224px+7b&lt;/code&gt; 配置加载，最终视觉 token 进入 LLM。&lt;/p&gt;
&lt;h4&gt;LLaMA-2 Language Module&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：视觉 token $\mathcal{V}$、语言 token $\mathcal{T}$、learnable cognition token $\bm{c}$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：cognition token 对应的 hidden feature $\bm{f}_t^{\bm c}$，维度 4096。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;功能&lt;/strong&gt;：把“看到什么 + 指令要求什么”融合成当前动作的高层认知条件。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要&lt;/strong&gt;：这是 CogACT 与“VLM 直接输出动作”的本质区别：VLM 不再负责生成动作 token，只负责压缩出动作条件。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;vla/cogactvla.py&lt;/code&gt; 的 &lt;code&gt;CogACT.forward&lt;/code&gt; 会先调用 VLM forward，取最后 hidden state，去掉视觉 patch 部分，再按 attention mask 取最后一个 token 的 hidden feature 作为 cognition feature。推理时 &lt;code&gt;predict_action&lt;/code&gt; 用 &lt;code&gt;max_new_tokens=1&lt;/code&gt; 生成这个 token，并额外拼接 token &lt;code&gt;29871&lt;/code&gt; 和 &lt;code&gt;2&lt;/code&gt;，以匹配训练时的 prompt 格式。&lt;/p&gt;
&lt;h4&gt;Diffusion Action Module（DiT）&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：cognition feature、当前 diffusion timestep、带噪动作序列。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：预测噪声，等价于逐步去噪后的连续动作序列。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;功能&lt;/strong&gt;：建模连续、多模态、时间相关的动作分布。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要&lt;/strong&gt;：扩散模型天然适合连续多模态输出；DiT 的 self-attention 能建模动作序列内部的时间相关性。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;实现细节&lt;/strong&gt;：DiT 用 action embedder 把每个 7 维动作映射到 hidden size，timestep embedder 提供 diffusion step，label embedder 把 cognition feature 投影成 condition token；condition 与动作 token 一起经过多个 DiT block，最后输出噪声。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;action_model/models.py&lt;/code&gt; 定义了 &lt;code&gt;DiT&lt;/code&gt;。&lt;code&gt;DiTBlock&lt;/code&gt; 是 pre-norm self-attention + MLP，condition token 与动作 token 一起参与 self-attention。&lt;code&gt;DiT_S/B/L&lt;/code&gt; 分别对应：&lt;/p&gt;
&lt;p&gt;| Action Model  | Layers | Emb Dim | Heads | Params |
| ------------- | -----: | ------: | ----: | -----: |
| MLP (3-Layer) |      3 |     256 |   N/A |     3M |
| MLP (7-Layer) |      7 |    1024 |   N/A |    89M |
| DiT-Small     |      6 |     384 |     4 |    13M |
| DiT-Base      |     12 |     768 |    12 |    89M |
| DiT-Large     |     24 |    1024 |    16 |   308M |&lt;/p&gt;
&lt;h4&gt;Adaptive Action Ensemble&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：当前预测的 16 步动作序列，以及历史上对当前时间步的预测。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：当前时间步实际执行的动作。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;功能&lt;/strong&gt;：把历史预测和当前预测按相似度加权，而不是固定权重平均。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要&lt;/strong&gt;：动作分布是多模态的。如果两个预测属于不同模式，直接平均会得到一个不属于任何模式的动作。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;sim_cogact/adaptive_ensemble.py&lt;/code&gt; 中的 &lt;code&gt;AdaptiveEnsembler&lt;/code&gt; 维护一个 &lt;code&gt;deque(maxlen=pred_action_horizon)&lt;/code&gt;，计算当前动作与历史预测的 cosine similarity，用 &lt;code&gt;weights = exp(alpha * cos_similarity)&lt;/code&gt; 归一化后加权。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;问题形式&lt;/h4&gt;
&lt;p&gt;策略输入语言指令和当前观测，输出连续动作序列：&lt;/p&gt;
&lt;p&gt;$$
\bm{\pi}: (\bm{l},\bm{o}&lt;em&gt;t) \rightarrow (\bm{a}&lt;em&gt;t,\bm{a}&lt;/em&gt;{t+1},...,\bm{a}&lt;/em&gt;{t+N})
$$&lt;/p&gt;
&lt;h4&gt;Diffusion Noise Prediction Loss&lt;/h4&gt;
&lt;p&gt;论文训练目标为：&lt;/p&gt;
&lt;p&gt;$$
\mathcal{L}&lt;em&gt;{\text{MSE}} = \mathbb{E}&lt;/em&gt;{\bm{\epsilon}\sim\mathcal{N}(0,1),i} |\hat{\bm{\epsilon}}^i - \bm{\epsilon}|_2
$$&lt;/p&gt;
&lt;p&gt;其中：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;$\bm{\epsilon}$ 是加入干净动作序列的 Gaussian noise；&lt;/li&gt;
&lt;li&gt;$\hat{\bm{\epsilon}}^i$ 是 DiT 在 denoising step $i$ 预测的 noise；&lt;/li&gt;
&lt;li&gt;$i$ 表示当前 diffusion step；&lt;/li&gt;
&lt;li&gt;期望遍历训练样本、噪声和随机 timestep。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;action_model/action_model.py&lt;/code&gt; 的 &lt;code&gt;loss&lt;/code&gt; 先用 &lt;code&gt;torch.randn_like&lt;/code&gt; 采样噪声，再随机采样 timestep，用 &lt;code&gt;diffusion.q_sample&lt;/code&gt; 构造 noisy action，最后计算 &lt;code&gt;((noise_pred - noise) ** 2).mean()&lt;/code&gt;。代码使用 squaredcos cap v2 noise schedule，默认 100 diffusion steps。&lt;/p&gt;
&lt;h4&gt;Adaptive Action Ensemble&lt;/h4&gt;
&lt;p&gt;最终执行动作由当前预测和最近 $K$ 次历史预测加权：&lt;/p&gt;
&lt;p&gt;$$
\hat{\bm{a}}&lt;em&gt;t = \sum&lt;/em&gt;{k=0}^{K} w^{\text{ada}}_k \cdot \bm{a}&lt;em&gt;t|\bm{o}&lt;/em&gt;{t-k}
$$&lt;/p&gt;
&lt;p&gt;自适应权重由当前预测与历史预测的 cosine similarity 决定：&lt;/p&gt;
&lt;p&gt;$$
w_k^{\text{ada}} = \exp\left(\alpha \cdot \langle \bm{a}_t|\bm{o}_t,\ \bm{a}&lt;em&gt;t|\bm{o}&lt;/em&gt;{t-k}\rangle\right)
$$&lt;/p&gt;
&lt;p&gt;其中 $\langle\cdot,\cdot\rangle$ 是 cosine similarity，$\alpha=0.1$。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这个公式与 ACT 的 temporal ensemble 很相似，但关键区别是权重不是预设的指数衰减，而是由动作方向的一致性决定。一致的历史预测得到更高权重，不一致的模式则被压低，从而避免不同轨迹模式被平均掉。&lt;/p&gt;
&lt;h4&gt;Action Normalization&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文附录说明动作归一化到 $[-1,1]$；也试过归一化为 Gaussian，但未带来性能提升。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 推理时 &lt;code&gt;predict_action&lt;/code&gt; 使用 &lt;code&gt;dataset_statistics.json&lt;/code&gt; 中的 &lt;code&gt;q01/q99&lt;/code&gt; 反归一化：&lt;/p&gt;
&lt;p&gt;$$
\hat{\bm{a}} = 0.5 \cdot (\hat{\bm{a}}&lt;em&gt;{\text{norm}} + 1) \cdot (q&lt;/em&gt;{99} - q_{01}) + q_{01}
$$&lt;/p&gt;
&lt;p&gt;并把归一化动作 clip 到 $[-1,1]$；夹爪维度按 &lt;code&gt;&amp;#x3C;0.5&lt;/code&gt; 二值化为 0、否则为 1。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Base Model&lt;/strong&gt;：Prismatic VLM，视觉模块 DINOv2 + SigLIP，语言模块 LLaMA-2 7B；视觉和语言模块用 OpenVLA 的预训练权重初始化。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Training Data&lt;/strong&gt;：OXE 中 25 个单臂、有第三视角相机的数据集，约 0.4M 条轨迹、22.5M 帧。数据 mixture 主要沿用 Octo/OpenVLA，但不使用 Language Table 和 DROID。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Action Horizon&lt;/strong&gt;：默认当前动作 + 15 个未来动作，动作模块 context length 为 17。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Optimization&lt;/strong&gt;：global batch size 256，constant learning rate &lt;code&gt;2e-5&lt;/code&gt;，训练超过 135K iterations。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Hardware&lt;/strong&gt;：16 张 NVIDIA A100，使用 PyTorch FSDP，约 5 天。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Diffusion Training&lt;/strong&gt;：每个 sample 使用 8 个 diffusion step/noise 实例参与 loss。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Data Augmentation&lt;/strong&gt;：随机 crop、brightness、contrast、saturation、hue。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Padding&lt;/strong&gt;：示教末端不足未来动作窗口时，用 stationary action padding。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;conf/vla.py&lt;/code&gt; 注册 &lt;code&gt;prism-dinosiglip-224px+oxe+diffusion&lt;/code&gt;，data mix 为 &lt;code&gt;oxe_magic_soup_plus_minus&lt;/code&gt;，&lt;code&gt;global_batch_size=256&lt;/code&gt;、&lt;code&gt;learning_rate=2e-5&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;scripts/train.py&lt;/code&gt; 默认 &lt;code&gt;future_action_window_size=15&lt;/code&gt;、&lt;code&gt;action_model_type=&apos;DiT-B&apos;&lt;/code&gt;、&lt;code&gt;repeated_diffusion_steps=8&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;training/strategies/base_strategy_cogact.py&lt;/code&gt; 在训练循环中把 &lt;code&gt;repeated_diffusion_steps&lt;/code&gt; 传给 &lt;code&gt;CogACT.forward&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;官方 README 明确建议 fine-tune 用 full finetuning 而不是 LoRA，理由是“full finetuning 更短时间得到更好性能”；这属于代码仓库的工程建议，论文正文没有详细比较。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;推理时 VLM 只生成 1 个 cognition token，不生成动作 token。&lt;/li&gt;
&lt;li&gt;动作模块从标准 Gaussian noise 开始，用 DDIM 10 步去噪。&lt;/li&gt;
&lt;li&gt;默认使用 CFG scale 1.5；CFG 通过同时计算 conditioned 和 unconditioned 预测提升动作质量。&lt;/li&gt;
&lt;li&gt;Adaptive Action Ensemble 把当前预测和最近 $K$ 次历史预测按 cosine similarity 加权；$K$ 与机器人单帧移动距离成反比，用训练集 action std 估计，Google Robot 为 2、WidowX 为 7。&lt;/li&gt;
&lt;li&gt;最终只执行当前时间步动作，而不是把 16 步动作全部开环执行。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;vla/cogactvla.py&lt;/code&gt; 的 &lt;code&gt;predict_action&lt;/code&gt; 构造 prompt &lt;code&gt;What action should the robot take to {instruction.lower()}?&lt;/code&gt;，调用 VLM &lt;code&gt;generate(max_new_tokens=1)&lt;/code&gt; 提取 cognition feature。&lt;/li&gt;
&lt;li&gt;DDIM 由 &lt;code&gt;action_model.create_ddim(ddim_step=10)&lt;/code&gt; 创建；&lt;code&gt;deploy.py&lt;/code&gt; 默认 &lt;code&gt;num_ddim_steps=10&lt;/code&gt;、&lt;code&gt;cfg_scale=1.5&lt;/code&gt;、&lt;code&gt;action_ensemble_horizon=2&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sim_cogact/cogact_policy.py&lt;/code&gt; 为 Google Robot 默认 &lt;code&gt;action_ensemble_horizon=2&lt;/code&gt;，WidowX 默认 7；Google Robot 还对夹爪命令做 sticky gripper repeat。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;| 论文描述                 | 代码位置                          | 实际行为                                                                       |
| ------------------------ | --------------------------------- | ------------------------------------------------------------------------------ |
| VLM 与动作模块组合       | &lt;code&gt;vla/cogactvla.py&lt;/code&gt;                | &lt;code&gt;CogACT&lt;/code&gt; 包装 &lt;code&gt;PrismaticVLM&lt;/code&gt; 和 &lt;code&gt;ActionModel&lt;/code&gt;；训练时输出 VLM loss 与动作 loss |
| Cognition token 提取     | &lt;code&gt;vla/cogactvla.py&lt;/code&gt;                | 去掉视觉 patch 后，取 attention mask 最后一个 token 的 hidden feature          |
| DiT action module        | &lt;code&gt;action_model/models.py&lt;/code&gt;          | &lt;code&gt;DiT_S/B/L&lt;/code&gt;，condition token 与动作 token 一起 self-attention                  |
| Diffusion process        | &lt;code&gt;action_model/action_model.py&lt;/code&gt;    | squaredcos cap v2，100 steps；loss 为 noise prediction MSE                     |
| DDIM inference           | &lt;code&gt;action_model/action_model.py&lt;/code&gt;    | &lt;code&gt;create_ddim(ddim_step=10)&lt;/code&gt;                                                    |
| Adaptive Action Ensemble | &lt;code&gt;sim_cogact/adaptive_ensemble.py&lt;/code&gt; | cosine similarity + &lt;code&gt;exp(alpha * cos)&lt;/code&gt; 加权                                    |
| Training config          | &lt;code&gt;conf/vla.py&lt;/code&gt;、&lt;code&gt;scripts/train.py&lt;/code&gt; | &lt;code&gt;prism-dinosiglip-224px+oxe+diffusion&lt;/code&gt;、&lt;code&gt;DiT-B&lt;/code&gt;、8 diffusion steps             |
| Deployment               | &lt;code&gt;scripts/deploy.py&lt;/code&gt;               | Flask HTTP 服务，默认 CFG 1.5、DDIM 10、BF16                                   |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 两处值得注意：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;官方 README 里把 adaptive ensemble 文件写成 &lt;code&gt;evaluation/adaptive_ensemble.py&lt;/code&gt;，实际仓库中路径是 &lt;code&gt;sim_cogact/adaptive_ensemble.py&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;README 报告 CogACT-Base 在单张 A6000、BF16 下平均推理约 181ms，约 5.5 Hz；同设备 OpenVLA 约 307ms。CogACT 一次生成 16 个动作，OpenVLA 一次只生成 1 个动作。该数据来自官方代码仓库 README，论文正文没有给出这一组速度数字。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Simulation&lt;/strong&gt;：SIMPLER 环境。Google Robot 有 Visual Matching（VM）和 Variant Aggregation（VA）两种设置，任务为 Pick Coke Can、Move Near、Open/Close Drawer、Open Top Drawer and Place Apple。WidowX 只有 VM，任务为 Put Spoon on Towel、Put Carrot on Plate、Stack Green Block on Yellow Block、Put Eggplant in Yellow Basket。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Evaluation metric&lt;/strong&gt;：success rate。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Simulation implementation&lt;/strong&gt;：单张 A6000 或 A100 GPU；DDIM 10 步；CFG scale 1.5；统一使用 Adaptive Action Ensemble。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Real-world Realman&lt;/strong&gt;：7-DoF Realman 机械臂 + 1-DoF gripper，RGB 图像由 Intel RealSense 采集，手眼标定后把动作统一到相机/机器人坐标系。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Realman tasks&lt;/strong&gt;：Pick（Banana / Lemon / Avocado 放到指定颜色 plate）、Stack（cup / bowl 按颜色堆叠）、Place（把 block 放到另一种颜色 block 上）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Realman data&lt;/strong&gt;：Pick 48 条、Stack 67 条、Place 79 条、其他任务 197 条，共 391 条 demo；与评测完全相同的任务 demo 很少，例如“香蕉放到黄色 plate”只有 2 条。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Real-world Franka&lt;/strong&gt;：7-DoF Franka 机械臂 + 1-DoF gripper，Kinect DK 采集 RGB；任务为 Close the oven door、Open the oven door、Pick up the green brush、Pick up a bowl containing food。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Franka data&lt;/strong&gt;：每个任务 100 条，共 400 条 demo。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Fine-tuning implementation&lt;/strong&gt;：全部模型在 OXE 预训练后 full fine-tune；CogACT 只测 10K steps checkpoint（约 7.5 小时），Octo/OpenVLA 测多个 checkpoint 并选真实任务表现最好的。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Trials&lt;/strong&gt;：Realman Pick 每 object 8 trials，Stack 每 object 24 trials，Place 24 trials；Franka 每任务 11 trials；WidowX 原 24 trials 用 5 个随机 seed 重复以增强统计性。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Google Robot 仿真结果：&lt;/p&gt;
&lt;p&gt;| Google Robot |   VM Avg |   VA Avg |
| ------------ | -------: | -------: |
| RT-1         |     52.4 |     43.7 |
| RT-1-X       |     42.4 |     30.2 |
| RT-2-X       |     46.3 |     54.4 |
| Octo-Base    |     11.0 |      1.2 |
| OpenVLA      |     34.3 |     39.3 |
| CogACT       | &lt;strong&gt;74.8&lt;/strong&gt; | &lt;strong&gt;61.3&lt;/strong&gt; |&lt;/p&gt;
&lt;p&gt;在 VM 设置中，CogACT 在四个子任务上的成功率分别为 91.3、85.0、71.8、50.9；在 VA 设置中为 89.6、80.8、28.3、46.6。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; WidowX 仿真结果：&lt;/p&gt;
&lt;p&gt;| WidowX     |   VM Avg |
| ---------- | -------: |
| RT-1-X     |      1.1 |
| Octo-Base  |     17.5 |
| Octo-Small |     26.7 |
| OpenVLA    |      4.2 |
| CogACT     | &lt;strong&gt;51.3&lt;/strong&gt; |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Realman 真实任务结果：&lt;/p&gt;
&lt;p&gt;| Method    | Pick Avg | Stack Avg | Place Avg | Task All Avg |
| --------- | -------: | --------: | --------: | -----------: |
| Octo-Base |      8.3 |       0.0 |       6.3 |          4.9 |
| OpenVLA   |      8.3 |      15.6 |      12.5 |         12.1 |
| CogACT    | &lt;strong&gt;70.8&lt;/strong&gt; |  &lt;strong&gt;82.3&lt;/strong&gt; |  &lt;strong&gt;60.4&lt;/strong&gt; |     &lt;strong&gt;71.2&lt;/strong&gt; |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; Franka 真实任务结果：&lt;/p&gt;
&lt;p&gt;| Method    | Close Oven | Open Oven | Pick Bowl | Pick Brush |      Avg |
| --------- | ---------: | --------: | --------: | ---------: | -------: |
| Octo-Base |        0.0 |       0.0 |      27.3 |        0.0 |      5.8 |
| OpenVLA   |       18.2 |       0.0 |       9.1 |        0.0 |      6.8 |
| CogACT    |   &lt;strong&gt;63.6&lt;/strong&gt; |  &lt;strong&gt;72.7&lt;/strong&gt; |  &lt;strong&gt;72.7&lt;/strong&gt; |   &lt;strong&gt;36.4&lt;/strong&gt; | &lt;strong&gt;61.4&lt;/strong&gt; |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文摘要给出总体对比：CogACT 在仿真平均成功率上比相同量级（7B）的 OpenVLA 高约 35 个百分点以上，在真实机器人实验中高约 55 个百分点以上；在仿真中比 55B 的 RT-2-X 高约 18 个百分点。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】Action Model Architectures&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;| Action Model       | GR VM | GR VA | WR VM | Average |
| ------------------ | ----: | ----: | ----: | ------: |
| MLP (3-Layer, 3M)  |  52.2 |  52.4 |  47.1 |    50.6 |
| MLP (7-Layer, 89M) |  61.4 |  48.0 |  48.1 |    52.5 |
| DiT-Small (13M)    |  73.3 |  51.3 |  51.0 |    58.5 |
| DiT-Base (89M)     |  74.8 |  61.3 |  51.3 |    62.5 |
| DiT-Large (308M)   |  76.7 |  59.3 |  58.3 |    64.8 |&lt;/p&gt;
&lt;p&gt;论文认为：相同参数量下 transformer 优于 MLP，DiT 比 MLP 更擅长动作序列建模；DiT-Large 平均成功率最高，且动作模块平均成功率大致随参数量的对数线性增长。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】Multi-Step Action Prediction&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;| Future Steps | GR VM | GR VA | WR VM | Average |
| ------------ | ----: | ----: | ----: | ------: |
| 0            |  73.4 |  49.0 |   6.3 |    42.8 |
| 3            |  70.4 |  58.9 |  37.1 |    55.5 |
| 15           |  74.8 |  61.3 |  51.3 |    62.5 |
| 31           |  54.3 |  47.6 |  51.7 |    51.2 |&lt;/p&gt;
&lt;p&gt;15 future steps 效果最好；预测 31 步时 GR 反而明显下降，说明动作窗口过长会损害任务性能。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】Adaptive Action Ensemble&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;| Strategy          | GR VM | GR VA | WR VM | Average |
| ----------------- | ----: | ----: | ----: | ------: |
| Action Chunking   |  67.4 |  52.5 |  32.1 |    50.7 |
| Temporal Ensemble |  75.0 |  59.9 |  41.9 |    58.9 |
| Adaptive Ensemble |  74.8 |  61.3 |  51.3 |    62.5 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】Classifier-Free Guidance&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;| CFG Scale | GR VM | GR VA | WR VM | Average |
| --------- | ----: | ----: | ----: | ------: |
| 1.0       |  66.9 |  54.0 |  46.3 |    55.7 |
| 1.5       |  74.8 |  61.3 |  51.3 |    62.5 |
| 3.0       |  76.6 |  63.1 |  48.3 |    62.7 |&lt;/p&gt;
&lt;p&gt;论文默认 CFG scale 为 1.5，因为它在三个设置上整体提升明显，且与 3.0 差距很小。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文把泛化拆成三类：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Unseen tables + unseen distractors&lt;/strong&gt;：把桌子颜色改成接近背景/地面，加入三个未见过的干扰物。Realman 上 CogACT 平均 58.4%，OpenVLA 为 9.7%。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Unseen colors&lt;/strong&gt;：Pick 任务中使用绿色、粉色 plate 等未见颜色。CogACT 87.5%，OpenVLA 0%。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Unseen shapes / categories&lt;/strong&gt;：三角形、拱形 block、小罐子、圆柱 block、茄子、锤子等未见物体。CogACT 81.3% / 25.0%，OpenVLA 6.3% / 12.5%；三组平均 CogACT 64.6%，OpenVLA 6.3%。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 在 Franka 上的结果也属于 embodiment generalization：CogACT 不需要重新设计架构，只 fine-tune 400 条 demo，就在开/关烤箱门、拾取 brush 和食物 bowl 上显著超过 OpenVLA 与 Octo。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 这些泛化结果主要集中在物体外观、桌面背景、干扰物和机器人本体，任务本身仍是训练中见过的 Pick/Stack/Place 类操作。论文没有声称模型能完成完全未见过的长时序任务，也没有做语言指令组合的独立泛化评测。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; CogACT 的有效性可能来自四个叠加因素：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;VLM 只做认知压缩&lt;/strong&gt;：7B VLM 不需要在粗糙的离散 token 空间里表达毫米级动作，只需要输出一个 4096 维 hidden feature，这降低了 VLM 输出层的负担。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;DiT 专门建模动作&lt;/strong&gt;：扩散模型天然匹配连续、多模态动作分布，self-attention 又能建模 16 步动作序列的时间相关性。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;动作模块规模足够大&lt;/strong&gt;：13M 的小 DiT 已经比 3M diffusion head 好很多，89M/308M 继续提升；这说明 VLA 的瓶颈不只是 VLM，动作解码器也需要足够容量。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Adaptive Ensemble 保留模式信息&lt;/strong&gt;：动作是多模态的，按相似度加权比固定 temporal ensemble 更少产生“不存在的平均动作”。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 核心创新可以压缩成一句：CogACT 把 VLA 从“让 VLM 说动作”改成“让 VLM 想动作、让大型 DiT 做动作”，并系统验证了这种 componentized 架构与 action module scaling。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 比起具体的某个网络层，论文更重要的贡献是“动作模块应该被当作第一等研究对象”这个范式。它用实验说明，给 VLA 增加几百 M 参数的专用动作模型，比继续盲目增大 VLM 更划算。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;vs RT-2 / OpenVLA&lt;/strong&gt;：CogACT 不用 action tokenization，不把动作放进 VLM 词汇表；动作由独立连续扩散模型生成。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;vs RoboFlamingo 等 action head&lt;/strong&gt;：CogACT 不用简单 LSTM/MLP 回归，而是用概率扩散模型建模多模态动作序列。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;vs Octo&lt;/strong&gt;：Octo 的 diffusion head 只有约 3M 参数，CogACT 研究 13M 到 308M 的大型 DiT action module。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;vs 独立 Large Action Model（DiT Policy/RDT）&lt;/strong&gt;：这些方法使用冻结视觉/语言 encoder，CogACT 直接基于可端到端训练的 7B VLM，保留更强的互联网视觉-语言知识。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 方法隐含以下假设：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;VLM 的最后一个 hidden token 能压缩出足够指导动作生成的高层认知信息；&lt;/li&gt;
&lt;li&gt;单张 RGB 图像足以决定接下来 16 步的相对动作；&lt;/li&gt;
&lt;li&gt;动作分布可以用 diffusion process 有效建模；&lt;/li&gt;
&lt;li&gt;不同机器人的 7 维末端执行器相对动作表示足够统一，因此 OXE 预训练可以迁移到新机器人。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 其中“单张图像决定 16 步动作”是短期 open-loop 假设。Adaptive Ensemble 每步重新推理并融合历史预测，正是为了在保持轨迹平滑的同时重新引入视觉反馈，因此它部分缓解了纯 action chunking 的误差累积。&lt;/p&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文没有独立的 Limitations 章节，也没有系统列出失败模式。正文和结论主要强调优势；附录对评测细节的说明较多，但对“哪些任务失败、为什么失败”没有给出专门分析。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Long-horizon / 高精度接触任务&lt;/strong&gt;：论文实验以桌面 pick/place、stack、简单 drawer 和 oven door 为主，没有验证线缆、布料、可变形物体或高精度装配等更长 horizon 任务。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;真实机器人评测样本量有限&lt;/strong&gt;：Realman 每 object 8 次、Franka 每任务 11 次，虽然超过很多 VLA 论文，但统计置信区间仍较宽。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Baseline 选择差异&lt;/strong&gt;：真实实验对所有模型用同样数据 fine-tune，但 CogACT 只测 10K steps，OpenVLA/Octo 测多个 checkpoint 并选最好；这种选择对 CogACT 更“保守”，却不能完全排除 checkpoint 选择的公平性问题。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;没有 proprioception 与历史观测&lt;/strong&gt;：模型只依赖单帧图像，对机械臂自遮挡、深度歧义或需要连续力感知的任务可能不足。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;固定 7 维动作空间&lt;/strong&gt;：动作定义为末端相对位姿 + 夹爪，不直接支持灵巧手、全身移动或非笛卡尔控制。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;动作模块 scaling 的边界未完全刻画&lt;/strong&gt;：论文测到 308M，没有给出更大 action module 的收益是否持续，以及何时开始过拟合或计算不可控。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CFG scale、K 等超参数仍依赖仿真/数据集统计&lt;/strong&gt;：K 用 &lt;code&gt;C=K*std&lt;/code&gt; 估计，但如何为新机器人稳定选择 K 仍需要工程经验。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;h3&gt;8.1 最值得借鉴的地方&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 最值得借鉴的是“认知与动作解耦”的建模思路：保留强大 VLM 的感知和语义能力，但不强迫它的 tokenizer 表达连续动作。用 hidden feature 作为条件，再接一个专门的连续生成模型，既能获得 VLM 的泛化能力，又能为动作精度保留独立容量。&lt;/p&gt;
&lt;h3&gt;8.2 可改进点&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;在 DiT 中加入动作历史或 proprioception，增强闭环和接触相关任务。&lt;/li&gt;
&lt;li&gt;用 flow matching、consistency model 或更少采样步数降低推理成本，同时保持成功率。&lt;/li&gt;
&lt;li&gt;对 Adaptive Action Ensemble 做不确定性估计，避免相似但都不正确的历史预测获得过高权重。&lt;/li&gt;
&lt;li&gt;评测更细粒度失败模式，例如物体位姿、光照、指令长度、干扰物类型对成功率的影响。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;8.3 潜在 Research Gap&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;VLA 目前仍主要用 RGB 做策略输入，力、触觉、深度和多帧时间信息很少进入统一模型。&lt;/li&gt;
&lt;li&gt;“动作模块多大才够”仍缺少跨任务、跨 embodiment 的系统研究。&lt;/li&gt;
&lt;li&gt;真实机器人泛化评测缺少统一协议，不同论文的 fine-tune 数据量、checkpoint 选择、任务定义差异很大。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;8.4 如果基于 CogACT 做下一篇工作&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;CogACT + Long-Horizon Action Chunking&lt;/strong&gt;：保留 cognition token，把 DiT 输出扩展到更长、带 subgoal 或 skill 边界的动作序列。为什么：当前 16 步窗口适合短程桌面操作，但长任务仍依赖每步重规划。实现难度：中。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CogACT + History/Proprioception&lt;/strong&gt;：在 DiT 输入中加入上一段动作或关节状态。为什么：很多操作问题来自状态估计和接触反馈，而单帧 RGB 无法完全表达。实现难度：中。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;更快的动作采样&lt;/strong&gt;：研究 consistency models 或 flow matching，让 DiT 在少步数下保持成功率。为什么：当前 10 步 DDIM 已经较高效，但 5.5 Hz 对高动态操作仍有压力。实现难度：中。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;跨 embodiment 的 action module 共享&lt;/strong&gt;：把 DiT 的 7 维动作输入换成 canonical action space 或 skill-level token。为什么：CogACT 已经在多 embodiment 上表现不错，但动作模块仍绑定末端位姿 + 夹爪。实现难度：高。&lt;/li&gt;
&lt;/ol&gt;</content:encoded><h:img src="https://pic.hana0721.top/139369087_p0_master1200.9gx5x7w6ei.webp"/><enclosure url="https://pic.hana0721.top/139369087_p0_master1200.9gx5x7w6ei.webp"/></item><item><title>BAGEL 论文精读：交错多模态预训练中的涌现能力</title><link>https://agusexp25.top/blog/paper-deep-dive-bagel</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-bagel</guid><description>精读 BAGEL：7B active / 14B total 的统一理解与生成模型，用 MoT、Rectified Flow 和视频/网页交错数据训练，并分析 IntelligentBench 与世界建模涌现。</description><pubDate>Sun, 23 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;论文名称&lt;/strong&gt;：《Emerging Properties in Unified Multimodal Pretraining》&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;作者&lt;/strong&gt;：Chaorui Deng、Deyao Zhu、Kunchang Li、Chenhui Gou、Feng Li、Zeyu Wang、Shu Zhong、Weihao Yu、Xiaonan Nie、Ziang Song、Guang Shi、Haoqi Fan&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;机构&lt;/strong&gt;：ByteDance Seed、Shenzhen Institutes of Advanced Technology、Monash University&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;会议 / 期刊&lt;/strong&gt;：arXiv 预印本（2025）&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;论文链接&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2505.14683&quot;&gt;arXiv&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;代码链接&lt;/strong&gt;：&lt;a href=&quot;https://github.com/bytedance-seed/BAGEL&quot;&gt;ByteDance-Seed/BAGEL&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;项目主页&lt;/strong&gt;：&lt;a href=&quot;https://bagel-ai.org/&quot;&gt;BAGEL&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;模型 / 权重&lt;/strong&gt;：&lt;a href=&quot;https://huggingface.co/ByteDance-Seed/BAGEL-7B-MoT&quot;&gt;ByteDance-Seed/BAGEL-7B-MoT&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; BAGEL 是一个 decoder-only 的统一多模态基础模型，采用两个 Transformer expert 共享 self-attention 的 Mixture-of-Transformers（MoT）架构，文本走 Next-Token-Prediction，视觉 latent 走 Rectified Flow；模型在数万亿 token 的文本、图像、视频和网页交错数据上预训练后，不仅刷新公开理解/生成基准，还涌现出自由形式图像编辑、未来帧预测、3D 操作和世界导航等组合能力。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;提出开源的统一多模态模型 BAGEL，7B active parameters、14B total parameters，在公开多模态理解与生成基准上明显超过已有开源 unified model。&lt;/li&gt;
&lt;li&gt;建立可扩展的多模态交错数据协议，覆盖视频、网页、推理增强和自由形式图像编辑数据，并把理解与生成任务统一成同一 token 序列。&lt;/li&gt;
&lt;li&gt;验证 MoT 架构的有效性：两个专家在每层共享 self-attention，避免 External Diffuser 路线常见的 latent bottleneck，同时保持和 dense baseline 相同 FLOPs。&lt;/li&gt;
&lt;li&gt;系统报告能力涌现规律：基础理解/生成先出现，经典编辑随后，IntelligentBench 上的复杂智能编辑和世界建模最晚出现。&lt;/li&gt;
&lt;li&gt;提出 IntelligentBench，一个面向自由形式图像操作和复杂多模态推理的评估集，并公开代码、权重、训练与评估脚本。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 统一多模态理解与生成已经有 Janus、Chameleon、Show-o、Emu3、LlamaFusion 等工作，但多数统一模型仍主要训练在 image-text pair 数据上，和 GPT-4o、Gemini 2.0 等闭源系统的差距仍然很大。论文认为关键不是继续微调单一图文任务，而是把数据规模与交错结构同时放大。&lt;/p&gt;
&lt;p&gt;论文把已有设计归纳为三条路线：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Quantized AR&lt;/strong&gt;：用离散 visual tokenizer 把图像 token 化，再统一做 next-token prediction。优点是直接复用 LLM 基础设施，缺点是视觉生成质量通常低于 diffusion 路线，且自回归推理延迟更高。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;External Diffuser&lt;/strong&gt;：LLM/VLM 生成少量 latent token 作为语义条件，再由外部 diffusion 模块生成图像。优点是收敛快、训练成本低，缺点是把 LLM 的长上下文压缩成少量 token，形成显式 bottleneck，可能损失长程多模态信息。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Integrated Transformer&lt;/strong&gt;：在一个 transformer 中同时承载 autoregressive text 与 diffusion-style visual token，例如 Transfusion、CausalFusion、LlamaFusion。训练成本更高，但上下文可以无瓶颈地在理解与生成之间共享。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; BAGEL 的核心判断是：统一模型要作为 foundation model 继续扩展，就不应该为理解/生成接口引入固定压缩瓶颈。因此它选择 Integrated Transformer，并进一步用 MoT 给理解 token 和生成 token 分配独立参数，而不是让单一权重同时优化两个目标。&lt;/p&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Task&lt;/strong&gt;：让同一个模型原生支持多模态理解、文本生成、图像生成、图像编辑、视频/网页交错序列理解与生成，以及世界建模类任务。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Observation&lt;/strong&gt;：文本 token、SigLIP2 ViT 视觉 token、FLUX VAE latent token，以及从视频和网页构造出的交错多模态序列。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Output&lt;/strong&gt;：自然语言 token 或去噪后的图像 VAE latent token。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Architecture Formulation&lt;/strong&gt;：所有模态被组织成同一个 decoder-only token 序列，文本 token 用交叉熵学习，图像 latent token 用 Rectified Flow 的 velocity prediction 学习。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dataset&lt;/strong&gt;：约 400M 条文本数据、500M 条 VLM image-text pair、1600M 条 T2I pair、100M 条交错理解数据、45M 条视频交错生成数据和 20M 条网页交错生成数据。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Training Objective&lt;/strong&gt;：联合优化语言 CE loss 与视觉 MSE loss，PT/CT/SFT 阶段按 &lt;code&gt;0.25 : 1&lt;/code&gt; 加权。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;本文不是机器人 VLA 论文，所以 Embodied AI Checklist 中 Robot、Action Space、Action Chunking、闭环控制等项不适用。真正相关的检查项是：&lt;/p&gt;
&lt;p&gt;| 检查项             | BAGEL 的对应内容                                                  |
| ------------------ | ----------------------------------------------------------------- |
| Vision Encoder     | SigLIP2-so400m/14，最大 980x980，NaViT 原生宽高比                 |
| Language Model     | Qwen2.5 decoder-only backbone                                     |
| Multimodal Fusion  | MoT 两个 expert，共享每层 self-attention                          |
| Observation        | 文本、ViT token、clean/noised VAE token                           |
| Training Objective | CE（文本） + Rectified-Flow MSE（图像 latent）                    |
| Dataset            | 文本、image-text pair、VLM 交错、视频交错、网页交错、推理增强数据 |
| Inference Pipeline | 文本自回归 + 50 步 flow integration + CFG + KV cache              |&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;BAGEL 采用 MoT 架构：一个“理解 expert”处理文本与 ViT token，一个“生成 expert”处理 VAE token；两类 token 在每一层都通过同一组 shared self-attention 交换信息，但 attention、FFN、LayerNorm 参数分别属于各自 expert。&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 数据流可以压缩成一句：图像理解由 SigLIP2 编码成 ViT token，图像生成由 FLUX VAE 编码成 latent patch，文本、ViT、VAE token 按输入结构交错成一个序列，经过 MoT transformer 后，文本位置输出 logits、VAE 位置输出 flow velocity；完整训练与推理循环分别在 4.4 与 4.5。&lt;/p&gt;
&lt;p&gt;关键架构参数：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;骨干从 Qwen2.5 初始化，保留 RMSNorm、SwiGLU、RoPE、GQA，并额外加入 QK-Norm。&lt;/li&gt;
&lt;li&gt;理解视觉编码器用 SigLIP2-so400m/14，初始固定 384 分辨率，位置 embedding 插值到最大 980x980，再用 NaViT 支持原生宽高比。&lt;/li&gt;
&lt;li&gt;生成视觉编码器用 FLUX VAE，latent downsampling factor 为 8，latent channel 为 16，再用 &lt;code&gt;2x2&lt;/code&gt; patch embedding 映射到 LLM hidden size；VAE 在训练中冻结。&lt;/li&gt;
&lt;li&gt;扩散 timestep embedding 直接加到 VAE token 的初始 hidden state，而不是像传统 DiT 那样使用 AdaLN。&lt;/li&gt;
&lt;li&gt;MoT 和 MoE 都使总参数量接近翻倍，但 active FLOPs 与 dense baseline 相同。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;MoT Understanding Expert&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：文本 token 和 ViT token。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：供 LM Head 计算 CE loss 的文本隐状态，以及供共享 attention 使用的理解侧 representation。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;功能&lt;/strong&gt;：承担语言推理、开放词汇视觉理解和指令跟随。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要&lt;/strong&gt;：Qwen2.5 的预训练知识是统一模型理解和推理能力的底座。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;MoT Generation Expert&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：patchified VAE latent token。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：经过 &lt;code&gt;llm2vae&lt;/code&gt; 线性头后预测的 flow velocity。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;功能&lt;/strong&gt;：专门负责像素级视觉生成。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要&lt;/strong&gt;：论文在 1.5B 消融中发现，理解与生成目标会驱动参数走向不同区域；让生成 token 使用独立 expert，可以缓解两类目标互相干扰。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方 &lt;code&gt;Qwen2MoTDecoderLayer&lt;/code&gt; 使用硬路由：&lt;code&gt;packed_und_token_indexes&lt;/code&gt; 走原 Qwen 参数，&lt;code&gt;packed_gen_token_indexes&lt;/code&gt; 走 &lt;code&gt;_moe_gen&lt;/code&gt; 复制参数。复制参数由 &lt;code&gt;init_moe()&lt;/code&gt; 从原始权重复制初始化。&lt;/p&gt;
&lt;h4&gt;SigLIP2 / NaViT Visual Understanding Encoder&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：任意宽高比的 RGB 图像。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：与 LLM hidden size 对齐的 ViT patch token。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;功能&lt;/strong&gt;：提供语义级别的视觉特征，帮助后续图像生成保持物体身份、布局和开放词汇语义。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要&lt;/strong&gt;：论文发现去掉 ViT 对 GEdit-Bench 影响很小，但 IntelligentBench 下降约 16%，说明复杂视觉推理高度依赖语义视觉特征。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;FLUX VAE + Patch Embedding&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：RGB 图像或待生成图像的 latent。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：16 通道 latent，再 patchify 成 LLM token。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;功能&lt;/strong&gt;：把像素空间压缩到可生成的低维 latent，生成完成后由 VAE decoder 还原图像。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要&lt;/strong&gt;：Rectified Flow 在 latent space 训练，避免直接在高分辨率像素空间建模。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Generalized Causal Attention&lt;/h4&gt;
&lt;p&gt;对于同一个交错样本，token 被划分为多个连续 split。不同 split 之间保持前向可见；split 内部，文本 token 使用 causal attention，视觉 token 使用 bidirectional attention。对每个图像，BAGEL 会同时准备：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Noised VAE tokens&lt;/strong&gt;：加噪后用于 Rectified Flow 训练，只计算 MSE，不作为后续生成的 conditioning。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Clean VAE tokens&lt;/strong&gt;：无噪 latent，作为后续图像或文本生成的 conditioning。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ViT tokens&lt;/strong&gt;：SigLIP2 语义特征，作为跨理解/生成统一输入格式。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;对于多图或视频交错生成，论文采用 Diffusion Forcing：每张图使用独立噪声水平，并让后续图 attend 前面图的 noisy representation；同时随机把连续图像分组，组内使用 full attention、相同噪声水平，增强生成一致性。&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 训练时用 PyTorch FlexAttention 实现 generalized causal attention，相比 naive scaled-dot-product attention 约快 2 倍。推理时只缓存 clean VAE token 和 ViT token 的 KV；一张图生成完成后，把上下文中的 noised VAE token 替换成 clean 版本，从而加速后续多图解码。&lt;/p&gt;
&lt;h4&gt;Classifier-Free Guidance&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 训练时按 &lt;code&gt;0.1 / 0.5 / 0.1&lt;/code&gt; 的概率随机 drop text、ViT、clean VAE token。推理时保留一条完整条件路径和一条被 drop 的 unconditional 路径，通过 CFG 控制文本遵循度与图像保持度。&lt;/p&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;Rectified Flow Linear Path&lt;/h4&gt;
&lt;p&gt;论文正文说明 BAGEL 的视觉 token prediction 采用 Rectified Flow，但没有展开公式；官方代码给出了具体实现：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 设 clean latent token 为 $x_0$，Gaussian noise 为 $\epsilon$，训练 timestep 为 $t \in [0, 1]$，构造线性插值：&lt;/p&gt;
&lt;p&gt;$$
x_t = (1 - t) x_0 + t \epsilon
$$&lt;/p&gt;
&lt;p&gt;模型预测从 data 指向 noise 的 velocity：&lt;/p&gt;
&lt;p&gt;$$
v_t = \frac{dx_t}{dt} = \epsilon - x_0
$$&lt;/p&gt;
&lt;h4&gt;MSE Loss&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方 &lt;code&gt;Bagel.forward&lt;/code&gt; 中目标直接写成 &lt;code&gt;target = noise - packed_latent_clean&lt;/code&gt;，并只对 &lt;code&gt;t &gt; 0&lt;/code&gt; 的 noised VAE token 计算：&lt;/p&gt;
&lt;p&gt;$$
\mathcal{L}&lt;em&gt;{\text{MSE}} =
\mathbb{E}&lt;/em&gt;{x_0, \epsilon, t}
\left|
v_\theta(x_t, c, t) - (\epsilon - x_0)
\right|^2
$$&lt;/p&gt;
&lt;p&gt;其中 $c$ 是文本、ViT、clean VAE 等条件 token，$v_\theta$ 是 &lt;code&gt;llm2vae&lt;/code&gt; 输出的预测 velocity。&lt;/p&gt;
&lt;h4&gt;联合训练目标&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 总损失为：&lt;/p&gt;
&lt;p&gt;$$
\mathcal{L} = \lambda_{\text{CE}} \mathcal{L}&lt;em&gt;{\text{CE}} + \lambda&lt;/em&gt;{\text{MSE}} \mathcal{L}_{\text{MSE}}
$$&lt;/p&gt;
&lt;p&gt;论文在 PT、CT、SFT 阶段统一使用 $\lambda_{\text{CE}} : \lambda_{\text{MSE}} = 0.25 : 1$。&lt;/p&gt;
&lt;h4&gt;Timestep Shift&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方代码先把原始 logits 过 sigmoid 得到 $u$，再按 shift 参数重映射：&lt;/p&gt;
&lt;p&gt;$$
t = \frac{\text{shift} \cdot u}{1 + (\text{shift} - 1) \cdot u}
$$&lt;/p&gt;
&lt;p&gt;PT 阶段 &lt;code&gt;timestep_shift=1.0&lt;/code&gt;，CT 与 SFT 阶段提高为 &lt;code&gt;4.0&lt;/code&gt;，用于让更多去噪步骤落在噪声较大、决定布局的阶段。&lt;/p&gt;
&lt;h4&gt;CFG 更新&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 代码支持文本 CFG 和图像 CFG：&lt;/p&gt;
&lt;p&gt;$$
v_{\text{cfg}} =
v_{\text{uncond}} +
s_{\text{text}} \cdot (v_{\text{cond}} - v_{\text{uncond}})
$$&lt;/p&gt;
&lt;p&gt;图像 CFG 类似，用 $s_{\text{img}}$ 控制输入图像细节保持程度；代码还支持 &lt;code&gt;global&lt;/code&gt;、&lt;code&gt;channel&lt;/code&gt;、&lt;code&gt;text_channel&lt;/code&gt; 三种 velocity renormalization。&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; BAGEL 使用四阶段训练：&lt;/p&gt;
&lt;p&gt;| Stage              | Alignment |       PT |       CT |      SFT |
| ------------------ | --------: | -------: | -------: | -------: |
| Learning rate      |    &lt;code&gt;1e-3&lt;/code&gt; |   &lt;code&gt;1e-4&lt;/code&gt; |   &lt;code&gt;1e-4&lt;/code&gt; | &lt;code&gt;2.5e-5&lt;/code&gt; |
| LR scheduler       |    Cosine | Constant | Constant | Constant |
| Warm-up steps      |       250 |     2500 |     2500 |      500 |
| Training steps     |        5K |     200K |     100K |      15K |
| Seen tokens        |      4.9B |     2.5T |     2.6T |    72.7B |
| Max context window |       16K |      16K |      40K |      40K |
| Gen resolution     |         - |  256-512 | 512-1024 | 512-1024 |
| Und resolution     |       378 |  224-980 |  378-980 |  378-980 |
| Timestep shift     |         - |      1.0 |      4.0 |      4.0 |
| EMA ratio          |         - |   0.9999 |   0.9999 |    0.995 |
| CE : MSE weight    |         - | 0.25 : 1 | 0.25 : 1 | 0.25 : 1 |&lt;/p&gt;
&lt;p&gt;各阶段职责：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Alignment&lt;/strong&gt;：只训练 MLP connector，把 SigLIP2 与 Qwen2.5 对齐；只使用 &lt;code&gt;378x378&lt;/code&gt; 图像-文本 captioning 数据。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;PT&lt;/strong&gt;：加入 QK-Norm，除 VAE 外全部可训练，在 2.5T token 上做原生分辨率预训练。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CT&lt;/strong&gt;：提高理解/生成分辨率，并显著提高交错数据采样比例，重点学习跨模态推理，消耗约 2.6T token。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SFT&lt;/strong&gt;：使用高质量图文、交错生成、LLaVA-OV 和 Mammoth-VL 指令数据，共 72.7B token。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;所有阶段使用 AdamW（$\beta_1=0.9$，$\beta_2=0.95$，$\epsilon=1e-15$）、weight decay 0、gradient clip 1.0。序列按 rank 打包到 32K-36K 或 40K-45K token，保证负载均衡。&lt;/p&gt;
&lt;h4&gt;数据规模&lt;/h4&gt;
&lt;p&gt;| Data Source                   | # Data (M) | # Tokens (T) |
| ----------------------------- | ---------: | -----------: |
| Text                          |        400 |          0.4 |
| Image-Text Pair Understanding |        500 |          0.5 |
| Image-Text Pair Generation    |       1600 |          2.6 |
| Interleaved Understanding     |        100 |          0.5 |
| Interleaved Generation: Video |         45 |          0.7 |
| Interleaved Generation: Web   |         20 |          0.4 |&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 视频数据来自公开在线视频、Koala36M 和 MVImgNet2.0，用蒸馏后的 Qwen2.5-VL-7B 小模型为相邻帧生成 30 token 以内的 inter-frame caption，平均每段采样约 4 帧，得到 45M 条视频交错序列。网页数据基于 OmniCorpus/Common Crawl，先做 fastText 初筛和 Qwen2.5-14B LLM 细筛，再做 UI 去除、分辨率、清晰度、OCR 文本密度、CLIP 相关性、文档裁剪和图片数量等过滤，最终得到 20M 条结构化网页交错序列。&lt;/p&gt;
&lt;h4&gt;推理增强数据&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文构造约 500K 条 reasoning-augmented 多模态样例，覆盖文本到图像、自由形式图像操作、概念编辑等四类结构关系：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;T2I 用 Qwen2.5-72B 生成 query-guidance pair 和详细 prompt，再由 FLUX.1-dev 生成目标图。&lt;/li&gt;
&lt;li&gt;自由形式编辑从 OmniEdit 和交错视频中采样 source-target 图对，用 DeepSeek-R1 风格的 reasoning trace 标注。&lt;/li&gt;
&lt;li&gt;概念编辑从网页交错序列采样图像对，用三步 VLM pipeline 生成并过滤 QA，再补充 grounded reasoning。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Training Algorithm&lt;/h4&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 推理时模型既可以纯文本回答，也可以按交错输入生成一张或多张图像，还可以在生成图像前先输出 &lt;code&gt;&amp;#x26;lt;think&amp;#x26;gt;...&amp;#x26;lt;/think&amp;#x26;gt;&lt;/code&gt; reasoning。官方默认图像生成使用 50 个 flow timestep。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;InterleaveInferencer&lt;/code&gt; 把文本、图像依次写入 KV cache：文本走 &lt;code&gt;update_context_text&lt;/code&gt;，图像用 &lt;code&gt;update_context_image&lt;/code&gt; 同时缓存 clean VAE 和 ViT；生成时从 Gaussian noise 初始化 latent，逐 timestep 调用 &lt;code&gt;generate_image&lt;/code&gt;，最后用 FLUX VAE decoder 解码。&lt;/p&gt;
&lt;h4&gt;Inference Algorithm&lt;/h4&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方仓库与论文描述总体一致，但有几个实现层面的细节值得单独说明：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;modeling/bagel/bagel.py&lt;/code&gt; 的 &lt;code&gt;Bagel.forward&lt;/code&gt; 先准备 clean latent，再随机加噪，&lt;code&gt;target = noise - packed_latent_clean&lt;/code&gt;，只对 &lt;code&gt;has_mse = packed_timesteps &gt; 0&lt;/code&gt; 的位置计算 MSE。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;modeling/bagel/qwen2_navit.py&lt;/code&gt; 的 &lt;code&gt;Qwen2MoTDecoderLayer&lt;/code&gt; 明确实现 hard routing：text/ViT 用理解参数，VAE 用 &lt;code&gt;_moe_gen&lt;/code&gt; 参数，两者在 &lt;code&gt;PackedAttentionMoT&lt;/code&gt; 中共享 attention 计算。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;train/pretrain_unified_navit.py&lt;/code&gt; 的默认 &lt;code&gt;ce_weight=1.0&lt;/code&gt;、&lt;code&gt;mse_weight=1.0&lt;/code&gt;，与论文 &lt;code&gt;0.25 : 1&lt;/code&gt; 不一致；复现论文 recipe 时需要显式传入论文中的 loss weight。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;inferencer.py&lt;/code&gt; 暴露 &lt;code&gt;cfg_text_scale&lt;/code&gt;、&lt;code&gt;cfg_image_scale&lt;/code&gt;、&lt;code&gt;cfg_interval&lt;/code&gt;、&lt;code&gt;timestep_shift&lt;/code&gt;、&lt;code&gt;num_timesteps&lt;/code&gt; 和 &lt;code&gt;cfg_renorm_type&lt;/code&gt;，对应 README 中推荐的推理超参数。&lt;/li&gt;
&lt;li&gt;HuggingFace &lt;code&gt;BAGEL-7B-MoT/config.json&lt;/code&gt; 显示 LLM 为 28 层、hidden size 3584、28 个 attention head、4 个 KV head，并使用 Qwen2.5-7B-Instruct 作为 base model。&lt;/li&gt;
&lt;li&gt;官方 README 的 IntelligentBench 一栏写的是 &lt;code&gt;44.0&lt;/code&gt;，而论文 Table 8 是 &lt;code&gt;44.9&lt;/code&gt;；这是一个未在文档中解释的小差异。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 评估分成四组：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;多模态理解&lt;/strong&gt;：MME、MMBench、MM-Vet、MMMU、MathVista、MMVP。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Text-to-Image&lt;/strong&gt;：GenEval、WISE，另加与 Janus-Pro、SD3、GPT-4o 的定性比较。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;经典图像编辑&lt;/strong&gt;：GEdit-Bench EN/CN，GPT-4.1 自动评分。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;复杂智能编辑&lt;/strong&gt;：本文提出的 IntelligentBench，350 个样例，由 GPT-4o 对 question image、question text、reference answer、model answer 四元组评分。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;IntelligentBench 每例 0-2 分，最终归一化到 100 分。论文同时用 RISEBench 和 KRIS-Bench 补充推理型图像编辑评估。&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;h4&gt;多模态理解&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; BAGEL-7B-MoT 在 MME-S 2388、MMBench 85.0、MM-Vet 67.2、MathVista 73.1、MMVP 69.3 上超过 Qwen2.5-VL-7B 和 InternVL2.5-7B 等专用理解模型；MMMU 55.3 略低于 Qwen2.5-VL-7B 的 58.6，但在统一模型中是领先水平。&lt;/p&gt;
&lt;h4&gt;图像生成&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; GenEval 上 BAGEL 为 0.82，使用 LLM rewriter 后到 0.88，超过 FLUX.1-dev（0.82）、Janus-Pro-7B（0.80）和 MetaQuery-XL（0.80）。WISE 上 BAGEL 为 0.52，使用 Self-CoT 后到 0.70，超过此前开源 SOTA MetaQuery-XL 的 0.55，仅次于 GPT-4o 的 0.80。&lt;/p&gt;
&lt;h4&gt;图像编辑与推理编辑&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; GEdit-Bench-EN 上 BAGEL 的 G_SC/G_PQ/G_O 为 7.36 / 6.83 / 6.52，和 Step1X-Edit 接近；IntelligentBench 上 BAGEL 为 44.9，比 Step1X-Edit 的 14.9 高出约 30 分。加入 Self-CoT 后 IntelligentBench 提升到 55.3。&lt;/p&gt;
&lt;p&gt;| Model       | IntelligentBench | RISEBench | KRIS-Bench |
| ----------- | ---------------: | --------: | ---------: |
| Step1X-Edit |             14.9 |       1.9 |      43.29 |
| Gemini 2.0  |             57.6 |      13.3 |      62.41 |
| GPT-4o      |             78.9 |      28.9 |      80.09 |
| BAGEL       |             44.9 |       6.1 |      56.21 |
| BAGEL + CoT |             55.3 |      11.9 |      60.18 |&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;h4&gt;架构消融&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文在 1.5B Qwen2.5 上对比 Dense、MoE（只复制 FFN）和 MoT（复制全部可训练参数）。MoT 的 MSE loss 收敛最快、最终最低，CE loss 也整体最优；这支持“理解与生成目标需要独立容量”的结论。&lt;/p&gt;
&lt;h4&gt;数据采样比例与学习率&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 1.5B 消融中，把生成/理解数据比例从 1:1 提高到 4:1 能让 MSE loss 下降约 0.4% absolute，而 CE loss 变化不稳定且对下游影响很小。学习率实验发现大 LR 有利于 MSE、小 LR 有利于 CE，因此论文用独立 loss weight 平衡两个目标。&lt;/p&gt;
&lt;h4&gt;ViT 语义条件&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 去掉 ViT token 对经典 GEdit-Bench 影响很小，但 IntelligentBench 下降约 16%，说明复杂自由形式编辑依赖语义视觉推理，而不只是低层 latent 保真。&lt;/p&gt;
&lt;h4&gt;能力涌现曲线&lt;/h4&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 以“达到峰值性能 85%”作为指标，理解任务约 0.18T token、GenEval 约 0.68T token、GEdit 约 2.64T token、IntelligentBench 约 3.61T token。Intelligent Editing 在 3T token 后从约 15 提升到约 45，论文认为这是类似 emergent behavior 的阶段性变化。&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; BAGEL 支持任意宽高比、中英双语 prompt、多图交错生成和思考式生成。世界建模部分用 ParticleSfM 标注相机轨迹，从视频交错数据构造导航数据，再提高视频与导航数据比例做 fine-tune。&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 模型可以跟随指令生成动态数量的图像来完成导航、旋转和未来视角预测；虽然导航数据主要是真实街道视频，模型仍能泛化到水墨画、卡通和游戏场景。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 有效性至少来自三个叠加因素：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;MoT 用独立 expert 容纳生成目标，但用 shared self-attention 保留长上下文信息交换，避免 External Diffuser 的 latent bottleneck。&lt;/li&gt;
&lt;li&gt;视频和网页交错数据提供天然的多帧、时序、物体一致性和世界知识，不只是 image-text pair 的静态对齐。&lt;/li&gt;
&lt;li&gt;推理增强数据把“先想清楚再生成”变成训练目标，使理解和生成两个目标能在同一上下文里协同。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 从论文和代码看，核心创新是“数据协议 + 无瓶颈架构”的组合，而不是单点网络结构：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;用视频/网页构造大规模交错生成数据，并把语言 reasoning 插到生成目标之前。&lt;/li&gt;
&lt;li&gt;用 MoT 复制生成 expert，但保持 shared self-attention 和相同 FLOPs。&lt;/li&gt;
&lt;li&gt;用 generalized causal attention + Diffusion Forcing 支持多图、视频级交错生成。&lt;/li&gt;
&lt;li&gt;用 IntelligentBench 这类复杂编辑任务暴露传统基准测不到的能力涌现。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 与 Quantized AR 不同，BAGEL 不在离散视觉 token 上做 next-token prediction，而是用 Rectified Flow 保持连续 latent 生成质量。与 External Diffuser 不同，BAGEL 不把 LLM 上下文压缩成少量条件 token。与 Dense Integrated Transformer 不同，BAGEL 用两个 expert 分离理解/生成参数，但仍共享 attention。&lt;/p&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;理解与生成目标虽然部分冲突，但可以通过 shared self-attention 在一个模型内共同优化。&lt;/li&gt;
&lt;li&gt;大规模交错数据是复杂组合能力涌现的前提，只有 image-text pair 不够。&lt;/li&gt;
&lt;li&gt;语言 reasoning 可以在图像生成前显式表达视觉目标，并改善最终输出。&lt;/li&gt;
&lt;li&gt;MoT 的 scaling 收益在 1.5B 到 7B 都成立，且可以继续扩展到更大模型。&lt;/li&gt;
&lt;li&gt;冻结 FLUX VAE 不会成为生成质量的长期瓶颈。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 论文没有单独列 Limitations 章节，但在 Failure cases 中明确承认以下场景仍有挑战：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;特定 IP、复杂文本渲染、精细人体姿态、多实例同时生成。&lt;/li&gt;
&lt;li&gt;交换物体位置、一次性修改大量实例等编辑任务。&lt;/li&gt;
&lt;li&gt;部分复杂指令下，BAGEL 与 Gemini 2.0 都难以严格贴合用户要求，GPT-4o 相对更稳定。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;作者建议通过补充含文本图像数据、增大模型容量或加入 RLHF 后训练来缓解。&lt;/p&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;完整训练语料没有直接发布，官方仓库只提供样例数据与 protocol；要完整复现 trillions token 训练仍需自行收集和过滤数据。&lt;/li&gt;
&lt;li&gt;IntelligentBench 只有 350 个样例，且使用 GPT-4o 评分，复杂任务的分数稳定性和跨模型公平性仍有风险。&lt;/li&gt;
&lt;li&gt;世界建模、导航、3D 操作主要通过定性展示，缺少可复用的自动指标和标准 benchmark。&lt;/li&gt;
&lt;li&gt;“涌现”依赖历史 checkpoint 上某个固定 85% 阈值，不同任务峰值、训练阶段和评测设置可能改变结论。&lt;/li&gt;
&lt;li&gt;7B active / 14B total 在统一多模态模型中仍属于中等规模，更大参数量、更长视频序列和 RLHF 的价值尚待验证。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;统一多模态模型应把“数据交错性”当作和架构并列的设计变量；视频是低成本、高信息密度的世界模型数据源。&lt;/li&gt;
&lt;li&gt;MoT 这种“共享 attention、独立专家”的设计比 External Diffuser 更适合长上下文多模态 reasoning，但训练成本更高，后续值得继续研究 expert 数量、路由和容量分配。&lt;/li&gt;
&lt;li&gt;CFG 从文本 prompt 扩展到图像条件，形成 text guidance + image guidance 两个自由度，对编辑类任务尤其重要。&lt;/li&gt;
&lt;li&gt;IntelligentBench 这类复杂组合任务可能是比标准 VLM/T2I benchmark 更敏感的统一模型能力探针。&lt;/li&gt;
&lt;li&gt;如果 BAGEL 继续扩大视频、导航和交互数据，并加入 RLHF，它更像一个通用 world model 而非传统图像生成器；这为 future frame prediction、3D manipulation、embodied navigation 提供了一个可扩展底座。&lt;/li&gt;
&lt;/ol&gt;</content:encoded><h:img src="https://pic.hana0721.top/104724685_p0_master1200.7p472bcti3.webp"/><enclosure url="https://pic.hana0721.top/104724685_p0_master1200.7p472bcti3.webp"/></item><item><title>ACT 论文精读：Action Chunking with Transformers</title><link>https://agusexp25.top/blog/paper-deep-dive-act</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-deep-dive-act</guid><description>精读 ACT：用 Action Chunking、Temporal Ensembling 与 CVAE 让低成本双臂机器人学习精细操作，并对照官方代码逐层分析。</description><pubDate>Sun, 23 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. 论文概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;论文名称&lt;/strong&gt;：《Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware》&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;作者&lt;/strong&gt;：Tony Z. Zhao、Vikash Kumar、Sergey Levine、Chelsea Finn&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;机构&lt;/strong&gt;：Stanford University、UC Berkeley、Meta&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;会议 / 期刊&lt;/strong&gt;：arXiv 预印本（2023）&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;论文链接&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2304.13705&quot;&gt;arXiv&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;代码链接&lt;/strong&gt;：&lt;a href=&quot;https://github.com/tonyzhaozh/act&quot;&gt;tonyzhaozh/act&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;项目主页&lt;/strong&gt;：&lt;a href=&quot;https://tonyzhaozh.github.io/aloha/&quot;&gt;ALOHA Project&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h3&gt;一句话总结&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 本文同时提出低成本双臂遥操作系统 ALOHA 和模仿学习算法 ACT，用“一次性预测一整段动作”的方式降低误差累积，并以 CVAE 建模人类示教中的随机行为，使低成本硬件也能学会开盖、插电池等精细操作。&lt;/p&gt;
&lt;h3&gt;核心贡献&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;提出低成本的 ALOHA 双臂遥操作平台，预算约 2 万美元，由两套 ViperX/WidowX 机械臂、4 个网络摄像头和 3D 打印组件组成。&lt;/li&gt;
&lt;li&gt;提出 ACT，把策略建模为 &lt;code&gt;p(a_{t:t+k} | o_t)&lt;/code&gt;，通过 Action Chunking 降低任务有效 horizon，缓解 Behavior Cloning 的 compounding error。&lt;/li&gt;
&lt;li&gt;使用 CVAE 对动作序列建模，保留人类示教中的多模态行为；配合 Temporal Ensembling 提高轨迹平滑度。&lt;/li&gt;
&lt;li&gt;在 2 个仿真任务和 6 个真实任务上验证，真实任务只用约 10-20 分钟示教即可达到较高成功率。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. 背景与相关工作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 精细操作通常要求毫米级精度、接触力协调和闭环视觉反馈。传统方案依赖高精度机器人、高成本传感器或复杂标定，难以被普通实验室复现。本文想验证一个更直接的问题：能不能用低成本、不精确的硬件，通过端到端模仿学习完成这些任务。&lt;/p&gt;
&lt;p&gt;过去的主流路线是 Behavior Cloning（BC）：从观测直接监督学习单步动作。它简单，但有两个明显问题：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Compounding error&lt;/strong&gt;：单步预测误差会在时间轴上累积，机器人逐渐偏离训练分布，最终进入难以恢复的状态。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;人类示教非平稳&lt;/strong&gt;：同一状态下人类可能有不同走法，也会出现暂停等与状态相关的时间依赖行为，单步 Markovian 策略难以建模。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 已有方法尝试用 DAgger 在线交互、噪声注入、合成 correction data 等方式缓解 compounding error，但这些方法要么需要额外人工标注，要么在精细操作中会降低示教质量，要么只适用于低维状态或特定任务。本文选择不动数据收集过程，而是从策略输出形式入手：让模型直接预测未来 &lt;code&gt;k&lt;/code&gt; 步动作。&lt;/p&gt;
&lt;p&gt;与最相关工作相比，ACT 的主要区别不是单纯换网络结构，而是同时改变三个点：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;输出从单步动作变成动作序列，降低任务有效 horizon；&lt;/li&gt;
&lt;li&gt;用 CVAE 而不是确定性回归建模动作序列，以处理人类示教的多模态；&lt;/li&gt;
&lt;li&gt;用 Temporal Ensembling 融合多个重叠 chunk，而不是每隔 &lt;code&gt;k&lt;/code&gt; 步硬切换。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;3. 问题定义&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Task&lt;/strong&gt;：双机械臂精细操作，例如打开拉链袋、插入电池、打开透明杯盖、穿魔术贴、准备胶带、穿鞋。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Input / Observation&lt;/strong&gt;：当前 4 个摄像头采集的 RGB 图像，以及左右臂的关节位置。图像为 &lt;code&gt;480x640x3&lt;/code&gt;，关节维度为 &lt;code&gt;14 = (6 + 1) * 2&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Output / Action&lt;/strong&gt;：未来 &lt;code&gt;k&lt;/code&gt; 步的目标关节位置，维度为 &lt;code&gt;k x 14&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Action Space&lt;/strong&gt;：绝对目标关节位置，而不是关节增量。低层 PID 控制器负责跟踪。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Environment&lt;/strong&gt;：真实桌面环境；仿真使用 MuJoCo 中的 Cube Transfer 和 Bimanual Insertion。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Robot / Embodiment&lt;/strong&gt;：ALOHA，两套 6-DoF 平行夹爪机械臂。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dataset&lt;/strong&gt;：每个真实任务约 50 条人类示教，Thread Velcro 为 100 条；每个仿真任务 50 条 scripted 或 human 示教。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;用数学形式表达，策略学习的是：&lt;/p&gt;
&lt;p&gt;$$
\pi_\theta(\hat a_{t:t+k} \mid o_t)
$$&lt;/p&gt;
&lt;p&gt;其中 $o_t$ 是当前视觉与关节观测，$a_{t:t+k}$ 是从 $t$ 开始的长度为 $k$ 的动作序列。&lt;/p&gt;
&lt;h2&gt;4. 方法&lt;/h2&gt;
&lt;h3&gt;4.1 Overall Architecture&lt;/h3&gt;
&lt;p&gt;ACT 的本质是一个 Conditional VAE。训练时有一个额外的 CVAE encoder，推理时丢弃，只保留 CVAE decoder 作为策略。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-act/act-architecture-crop.64el78s53p.webp&quot; alt=&quot;ACT 的 CVAE 架构：左侧 encoder 只在训练时使用，右侧 decoder 作为策略（论文 Figure 4）&quot;&gt;&lt;/p&gt;
&lt;p&gt;整体数据流是多视角图像与关节位置共同编码为 token，再由 decoder 生成未来 $k$ 步关节目标。训练和推理的具体步骤分别在 4.4 和 4.5。&lt;/p&gt;
&lt;h3&gt;4.2 核心模块&lt;/h3&gt;
&lt;h4&gt;CVAE Encoder&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：当前关节位置、目标动作序列、一个可学习的 &lt;code&gt;[CLS]&lt;/code&gt; token。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：32 维 latent 变量 $z$ 的均值和方差。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;功能&lt;/strong&gt;：把“这段示教动作的风格/分支”压缩到 $z$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;实现方式&lt;/strong&gt;：BERT 风格 transformer encoder；动作和关节位置分别经过线性投影后拼成 &lt;code&gt;k+2&lt;/code&gt; 的 token 序列，只取 &lt;code&gt;[CLS]&lt;/code&gt; 对应的输出预测 &lt;code&gt;mu/logvar&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要&lt;/strong&gt;：人类示教存在多模态行为，例如同一状态下可能选择不同轨迹。CVAE 让 decoder 在给定 $z$ 后更精确地重建当前动作序列，而不是被迫对所有行为取平均。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 对应 &lt;code&gt;DETRVAE&lt;/code&gt; 中 &lt;code&gt;is_training=True&lt;/code&gt; 的分支，位于 &lt;code&gt;detr/models/detr_vae.py&lt;/code&gt;。latent dim 固定为 32。&lt;/p&gt;
&lt;h4&gt;ResNet18 Image Encoder&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：4 张 &lt;code&gt;480x640x3&lt;/code&gt; RGB 图像。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：每张图像 300 个 &lt;code&gt;512&lt;/code&gt; 维 token。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;功能&lt;/strong&gt;：把多视角视觉信息转成序列特征。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;实现方式&lt;/strong&gt;：ResNet18 backbone 输出 &lt;code&gt;15x20x512&lt;/code&gt; 特征图，展平为 &lt;code&gt;300x512&lt;/code&gt;，加上 2D sinusoidal position embedding，再经过 &lt;code&gt;1x1&lt;/code&gt; 卷积投影到 transformer 的 hidden dim。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要&lt;/strong&gt;：静态 top/front 相机提供全局场景，左右 wrist 相机提供接近接触区域的细节，多视角融合对精细操作很重要。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; backbone 在 &lt;code&gt;detr/models/backbone.py&lt;/code&gt;，使用 torchvision 的 &lt;code&gt;resnet18&lt;/code&gt;，BatchNorm 替换为 &lt;code&gt;FrozenBatchNorm2d&lt;/code&gt;。&lt;/p&gt;
&lt;h4&gt;Transformer Encoder&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：来自 4 个相机的 &lt;code&gt;1200x512&lt;/code&gt; 图像 token，加上投影后的关节位置和 $z$，共 &lt;code&gt;1202x512&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：融合后的 memory。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;功能&lt;/strong&gt;：让视觉、本体感和动作风格信息互相 attend，融合多模态上下文。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;实现方式&lt;/strong&gt;：4 层 self-attention transformer encoder。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要&lt;/strong&gt;：模型需要知道“当前看到什么”“机械臂现在在哪”“这次动作希望采用哪种风格”，才能生成下一段动作。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Transformer Decoder&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：固定 position embedding 作为 &lt;code&gt;k&lt;/code&gt; 个 query，以及 encoder 输出的 memory。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：&lt;code&gt;k x 512&lt;/code&gt; 的动作特征。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;功能&lt;/strong&gt;：按时间顺序生成一整段连贯动作。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;实现方式&lt;/strong&gt;：7 层 transformer decoder，query 是固定的 sinusoidal embedding，通过 cross-attention 读取 memory，最后经过线性 action head 输出 &lt;code&gt;k x 14&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;为什么需要&lt;/strong&gt;：动作序列内部有强时间相关性，直接用 transformer decoder 可以让后续动作参考前序动作，生成比独立预测每个时间步更协调的轨迹。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;4.3 关键公式&lt;/h3&gt;
&lt;h4&gt;CVAE 训练目标&lt;/h4&gt;
&lt;p&gt;论文 Algorithm 1 写作：&lt;/p&gt;
&lt;p&gt;$$
\mathcal L = \mathcal L_{reconst} + \beta \mathcal L_{reg}
$$&lt;/p&gt;
&lt;p&gt;其中：&lt;/p&gt;
&lt;p&gt;$$
\mathcal L_{reconst} = \text{MSE}(\hat a_{t:t+k}, a_{t:t+k})
$$&lt;/p&gt;
&lt;p&gt;$$
\mathcal L_{reg} = D_{KL}\left(q_\phi(z \mid a_{t:t+k}, \bar o_t) \parallel \mathcal N(0, I)\right)
$$&lt;/p&gt;
&lt;p&gt;$q_\phi$ 是 CVAE encoder，$\bar o_t$ 是不含图像、只含关节位置的观测，$\beta$ 控制 KL 正则强度。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 需要注意一处内部不一致：Algorithm 1 写的是 MSE，但正文 4.C 明确说实际使用 L1 loss，因为 L1 对动作序列的精细建模更准确。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 官方 &lt;code&gt;policy.py&lt;/code&gt; 中 ACT 的 reconstruction loss 确实使用 &lt;code&gt;F.l1_loss&lt;/code&gt;，总损失为 &lt;code&gt;l1 + kl_weight * KL&lt;/code&gt;，所以正文描述和代码一致，Algorithm 1 的 MSE 应视为旧写法。&lt;/p&gt;
&lt;h4&gt;Temporal Ensembling&lt;/h4&gt;
&lt;p&gt;每次得到一个新的 action chunk 后，同一个目标时间步可能被多个重叠 chunk 预测。Temporal Ensembling 用指数权重加权平均：&lt;/p&gt;
&lt;p&gt;$$
A_t = \frac{\sum_i w_i A_t[i]}{\sum_i w_i}, \quad w_i = \exp(-m \cdot i)
$$&lt;/p&gt;
&lt;p&gt;其中 $i$ 表示当前 chunk 距离该时间步有多远，$w_0$ 对应最早预测的动作。$m$ 控制新观测进入决策的速度。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; &lt;code&gt;imitate_episodes.py&lt;/code&gt; 中实现 &lt;code&gt;all_time_actions&lt;/code&gt; 缓冲，&lt;code&gt;k = 0.01&lt;/code&gt;，权重归一化后对同一时间步的预测取加权平均。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-act/act-chunk-temporal-crop.et8vnxrmj.webp&quot; alt=&quot;Action Chunking 与 Temporal Ensembling 的执行方式（论文 Figure 5）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;4.4 Training&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Training Data&lt;/strong&gt;：真实任务每任务 50 条示教（Thread Velcro 100 条），仿真任务 50 条；真实示教每个 episode 约 8-14 秒，对应 400-700 个时间步。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Training Pipeline&lt;/strong&gt;：从 episode 中随机采样起始时间步，取出当前观测和从该时刻开始的 &lt;code&gt;k&lt;/code&gt; 步动作；不足 &lt;code&gt;k&lt;/code&gt; 步时 padding，并用 mask 忽略 padding。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Loss Function&lt;/strong&gt;：L1 reconstruction loss + &lt;code&gt;beta * KL divergence&lt;/code&gt;，论文默认 &lt;code&gt;beta = 10&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Optimization&lt;/strong&gt;：AdamW，learning rate &lt;code&gt;1e-5&lt;/code&gt;，backbone learning rate &lt;code&gt;1e-5&lt;/code&gt;，weight decay &lt;code&gt;1e-4&lt;/code&gt;，batch size 8。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Pretraining / Fine-tuning&lt;/strong&gt;：每个任务从零训练，不做跨任务预训练。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Frozen / Trainable Components&lt;/strong&gt;：ResNet18 使用 ImageNet 预训练权重，但模型整体联合训练；BatchNorm 使用 Frozen BatchNorm。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Model Size&lt;/strong&gt;：约 80M 参数。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Training Cost&lt;/strong&gt;：单张 11G RTX 2080 Ti 约 5 小时。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;数据读取与归一化在 &lt;code&gt;utils.py&lt;/code&gt;：action 和 qpos 分别按数据集的 mean/std 归一化，std 下限裁剪到 &lt;code&gt;1e-2&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;训练脚本 &lt;code&gt;imitate_episodes.py&lt;/code&gt;：80/20 随机划分 train/val，保存验证 loss 最低的 checkpoint。&lt;/li&gt;
&lt;li&gt;超参数配置在 &lt;code&gt;imitate_episodes.py&lt;/code&gt;：&lt;code&gt;enc_layers=4&lt;/code&gt;、&lt;code&gt;dec_layers=7&lt;/code&gt;、&lt;code&gt;nheads=8&lt;/code&gt;、&lt;code&gt;hidden_dim=512&lt;/code&gt;、&lt;code&gt;dim_feedforward=3200&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;官方 README 建议真实数据至少训练 5000 epochs，或者 loss 平台后继续训练 3-4 倍时间。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;4.5 Inference&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 推理时丢弃 CVAE encoder，$z$ 固定为零向量。给定当前 4 路 RGB 图像和关节位置，decoder 输出未来 &lt;code&gt;k&lt;/code&gt; 步目标关节位置，并由 Dynamixel 的低层 PID 控制器跟踪；默认 &lt;code&gt;k = 100&lt;/code&gt;。启用 temporal ensemble 时每个时间步重新查询并加权平均，否则每隔 &lt;code&gt;k&lt;/code&gt; 步查询。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt; 推理时若开启 &lt;code&gt;--temporal_agg&lt;/code&gt;，&lt;code&gt;query_frequency=1&lt;/code&gt;，并维护一个 &lt;code&gt;[T, T+num_queries, state_dim]&lt;/code&gt; 的缓冲，对同一时间步的所有预测做指数加权平均；否则直接取 &lt;code&gt;all_actions[:, t % query_frequency]&lt;/code&gt;。&lt;/p&gt;
&lt;h3&gt;4.6 代码实现对照&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Code】&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;| 论文描述                  | 代码实现                                                  | 实际行为                                             |
| ------------------------- | --------------------------------------------------------- | ---------------------------------------------------- |
| CVAE encoder 压缩动作风格 | &lt;code&gt;DETRVAE.forward&lt;/code&gt; 中 &lt;code&gt;latent_proj&lt;/code&gt; 输出 32 维 &lt;code&gt;mu/logvar&lt;/code&gt; | 训练时用 reparameterization 采样 $z$，推理时用零向量 |
| ResNet 图像编码器         | &lt;code&gt;detr/models/backbone.py&lt;/code&gt; 的 &lt;code&gt;resnet18&lt;/code&gt;                   | 每个相机共享同一 backbone，输出 &lt;code&gt;300x512&lt;/code&gt; token      |
| 多模态融合                | &lt;code&gt;Transformer&lt;/code&gt; 的 encoder                                  | 图像 token、qpos、$z$ 拼接为 &lt;code&gt;1202x512&lt;/code&gt;              |
| 动作序列生成              | transformer decoder + &lt;code&gt;action_head&lt;/code&gt;                       | 输出 &lt;code&gt;k x 14&lt;/code&gt;                                        |
| L1 reconstruction loss    | &lt;code&gt;policy.py&lt;/code&gt; 中 &lt;code&gt;F.l1_loss&lt;/code&gt;                                | 与论文正文一致，与 Algorithm 1 的 MSE 不一致         |
| Temporal Ensembling       | &lt;code&gt;imitate_episodes.py&lt;/code&gt; 中 &lt;code&gt;all_time_actions&lt;/code&gt;               | 权重 &lt;code&gt;exp(-0.01 * i)&lt;/code&gt;，归一化后加权平均              |&lt;/p&gt;
&lt;h2&gt;5. 实验&lt;/h2&gt;
&lt;h3&gt;5.1 Experimental Setup&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Dataset&lt;/strong&gt;：2 个仿真任务使用 scripted 或 human 示教；6 个真实任务使用 ALOHA 遥操作示教。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Robot&lt;/strong&gt;：ALOHA，两套 ViperX 6-DoF follower、两套 WidowX leader、平行夹爪、4 个网络摄像头。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tasks&lt;/strong&gt;：仿真为 Cube Transfer 和 Bimanual Insertion；真实为 Slide Ziploc、Slot Battery、Open Cup、Thread Velcro、Prep Tape、Put On Shoe。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Environment&lt;/strong&gt;：真实桌面与 MuJoCo 仿真；物体初始位置随机化。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Baselines&lt;/strong&gt;：BC-ConvMLP、BeT、RT-1、VINN。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Metrics&lt;/strong&gt;：按子任务定义的分阶段成功率与最终成功率。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Evaluation&lt;/strong&gt;：仿真任务 3 个随机种子、每种子 50 次 rollout；真实任务 1 个种子、25 次 rollout。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-act/act-real-tasks-crop.1hsy6jtlmw.webp&quot; alt=&quot;六个真实任务的定义与子阶段（论文 Figure 6）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.2 Main Results&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 最终成功率对比如下：&lt;/p&gt;
&lt;p&gt;| 方法       | Cube Transfer (scripted / human) | Bimanual Insertion (scripted / human) | Slide Ziploc | Slot Battery |
| ---------- | -------------------------------: | ------------------------------------: | -----------: | -----------: |
| BC-ConvMLP |                            1 / 0 |                                 1 / 0 |            0 |            0 |
| BeT        |                           27 / 1 |                                 3 / 0 |            0 |            0 |
| RT-1       |                            2 / 0 |                                 1 / 0 |            0 |            0 |
| VINN       |                            3 / 0 |                                 1 / 0 |            0 |            0 |
| ACT        |                          86 / 50 |                               32 / 20 |           88 |           96 |&lt;/p&gt;
&lt;p&gt;在其余真实任务中，ACT 的最终成功率：&lt;/p&gt;
&lt;p&gt;| 方法 | Open Cup | Thread Velcro | Prep Tape | Put On Shoe |
| ---- | -------: | ------------: | --------: | ----------: |
| BeT  |        0 |             0 |         0 |           0 |
| ACT  |       84 |            20 |        64 |          92 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 对四个仿真设置，ACT 比最好的 baseline 分别高约 59%、49%、29%、20%。在真实任务中，baseline 往往连第一个子任务都无法稳定完成，而 ACT 能学到完整的多阶段操作。&lt;/p&gt;
&lt;h3&gt;5.3 Ablation Study&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Chunk Size&lt;/strong&gt;：在不使用 temporal ensemble 的四个仿真设置上，&lt;code&gt;k=1&lt;/code&gt; 的平均成功率约 1%，&lt;code&gt;k=100&lt;/code&gt; 约 44%；继续增大到接近 open-loop 时有所下降。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Action Chunking 的通用性&lt;/strong&gt;：给 BC-ConvMLP 和 VINN 加上 action chunking 也能显著提升性能，说明该技巧不限于 ACT。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Temporal Ensembling&lt;/strong&gt;：ACT 提升约 3.3%，BC-ConvMLP 提升约 4%，但 VINN 反而下降。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CVAE&lt;/strong&gt;：scripted 数据下去掉 CVAE 几乎无影响；human 数据下从 35.3% 降到 2%，说明 CVAE 对多模态人类示教至关重要。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;高频率遥操作&lt;/strong&gt;：50Hz 相比 5Hz 让参与者完成 zip tie 的时间从平均 33 秒降到 20 秒，unstack cups 从 16 秒降到 10 秒，整体慢约 62%，统计检验 p &amp;#x3C; 0.001。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blog/paper-deep-dive-act/act-ablations-crop.4jou7ruxpt.webp&quot; alt=&quot;Action Chunking、Temporal Ensembling、CVAE 和高频率遥操作的消融与用户研究结果（论文 Figure 8）&quot;&gt;&lt;/p&gt;
&lt;h3&gt;5.4 Generalization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 本文没有设计独立的 object/task/language/embodiment generalization 评测。它展示的泛化主要是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;真实任务物体初始位置随机化；&lt;/li&gt;
&lt;li&gt;透明或低对比度物体上的视觉泛化尝试；&lt;/li&gt;
&lt;li&gt;ALOHA 平台对多种真实物品的遥操作能力。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 不能据此声称 ACT 具有跨物体、跨任务或跨 embodiment 的泛化能力。实验中的泛化更接近“同任务不同初始状态”的鲁棒性，而不是开放世界泛化。&lt;/p&gt;
&lt;h2&gt;6. 方法分析&lt;/h2&gt;
&lt;h3&gt;6.1 为什么有效？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; ACT 的有效性可能来自三个层面：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Action Chunking 直接减少策略需要做的“决策次数”。给定当前观测一次性生成 &lt;code&gt;k&lt;/code&gt; 步动作，错误不会在每个时间步重新放大，短期轨迹更接近示教分布。&lt;/li&gt;
&lt;li&gt;CVAE 让模型能区分“同一观测下的不同合理轨迹”。如果直接做确定性回归，遇到多模态示教只会学到平均动作，容易在精细接触任务中失效。&lt;/li&gt;
&lt;li&gt;Temporal Ensembling 同时保留了高频视觉反馈和轨迹平滑性。每步都观察环境，但最终动作是多个重叠预测的加权平均，避免了每 &lt;code&gt;k&lt;/code&gt; 步硬切换造成的抖动。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;6.2 核心创新&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 如果只保留一句话：ACT 的真正创新是把“预测一段动作”和“用生成模型建模动作序列”结合起来，并在低成本双臂系统上证明了这套简单组合对精细操作非常有效。&lt;/p&gt;
&lt;h3&gt;6.3 与已有方法的本质区别&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 与 RT-1、BeT 等 transformer-based BC 方法相比，ACT 的改变不是“用了 Transformer”，而是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;输出从单步分类/回归变成连续动作 chunk；&lt;/li&gt;
&lt;li&gt;不依赖历史观测序列，而是用 CVAE latent 表示行为模式；&lt;/li&gt;
&lt;li&gt;在推理时用 temporal ensemble 融合重叠预测，而不是逐时间步独立决策。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;6.4 关键假设&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt; 方法依赖以下前提：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;人类示教质量足够高，且能通过 leader-follower 遥操作采集；&lt;/li&gt;
&lt;li&gt;任务行为可以在一段长度为 &lt;code&gt;k&lt;/code&gt; 的 chunk 内近似表达；&lt;/li&gt;
&lt;li&gt;当前观测足以决定未来 &lt;code&gt;k&lt;/code&gt; 步动作；&lt;/li&gt;
&lt;li&gt;低层 PID 控制器可以稳定跟踪目标关节位置。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;7. 局限性&lt;/h2&gt;
&lt;h3&gt;7.1 作者明确提出的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Paper】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ALOHA 无法完成需要多手指、高扭矩或“指甲”类动作的任务，例如儿童安全药瓶、密封水瓶、打包胶带、易拉罐、扣衬衫纽扣。&lt;/li&gt;
&lt;li&gt;ACT 无法学会拆糖果纸：50 条示教后可以捡起糖果 10/10、拉扯两端 8/10，但拆开包装 0/10。&lt;/li&gt;
&lt;li&gt;ACT 难以完成平放小拉链袋的空中多步操作，模型能稳定捡起袋子，但后续空中的抓取与拉开不稳定。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;7.2 自己分析得到的局限&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;每个任务独立训练，50-100 条示教仍属于小规模数据，没有预训练、多任务或跨任务迁移。&lt;/li&gt;
&lt;li&gt;真实实验只有 1 个 seed、25 次 rollout，统计置信度有限，且全部使用同一套 ALOHA 硬件。&lt;/li&gt;
&lt;li&gt;没有评估 unseen objects、unseen tasks、language instruction 或不同机器人。&lt;/li&gt;
&lt;li&gt;透明、低对比度、小目标的感知仍是最明显瓶颈；模型没有显式深度、重建或视觉 grounding。&lt;/li&gt;
&lt;li&gt;Temporal Ensembling 在代码里使用固定 &lt;code&gt;m=0.01&lt;/code&gt;，论文没有系统讨论该超参数对延迟、鲁棒性和长 horizon 的影响。&lt;/li&gt;
&lt;li&gt;依赖 50Hz 高频率遥操作采集高质量数据，这降低了数据采集门槛，但对后续跨平台复现仍有工程成本。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;8. 启发与研究思考&lt;/h2&gt;
&lt;h3&gt;8.1 最值得借鉴的地方&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt; 最值得借鉴的是“输出形式”和“建模目标”的改动。ACT 没有引入复杂网络结构，而是通过预测动作序列降低 compounding error，并用 CVAE 处理示教多模态，这是低成本、易复现、易扩展到其他 policy backbone 的核心思想。&lt;/p&gt;
&lt;h3&gt;8.2 可改进点&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;把 CVAE 换成更通用的生成模型，例如 Diffusion Policy，可能改善多模态动作建模。&lt;/li&gt;
&lt;li&gt;引入视觉 grounding、语言条件或目标条件，提高任务级泛化。&lt;/li&gt;
&lt;li&gt;用更大规模预训练、跨任务数据或 representation learning 缓解小数据问题。&lt;/li&gt;
&lt;li&gt;对 temporal ensembling 做不确定性感知或自适应权重。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;8.3 潜在 Research Gap&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ACT 仍是 per-task 训练，缺少“动作 chunk 级别”的可迁移、可组合技能库。&lt;/li&gt;
&lt;li&gt;真实世界精细操作评测通常只有少量 seed，缺少标准化的鲁棒性和分布外评测协议。&lt;/li&gt;
&lt;li&gt;透明、低对比度物体的闭环视觉推理仍没有被很好解决。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;8.4 如果基于 ACT 做下一篇工作&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【Analysis】&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;ACT + 语言/视觉目标条件&lt;/strong&gt;：给 action chunk 加上 language or goal image 条件，改多任务训练。为什么：ACT 证明了 chunk 输出有效，但缺乏任务级泛化；可能解决“每任务重新训练”的问题。实现难度：中。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ACT + Diffusion/Flow Action Model&lt;/strong&gt;：保留 chunk 和 temporal ensemble，替换 CVAE 为扩散或 flow matching。为什么：CVAE 的 32 维 latent 表达力有限；可能解决复杂多模态动作建模。实现难度：中。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Chunk 级 Planning 与 Closed-loop Re-planning&lt;/strong&gt;：让模型在 chunk 内部也具备根据观测进行纠错的能力。为什么：当前固定 chunk 在长任务中仍可能偏离；可能提高长 horizon 成功率。实现难度：高。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;跨 Embodiment Action Chunk 表征&lt;/strong&gt;：研究不同机器人共享的动作表示，例如末端位姿、相对动作或 canonical action space。为什么：ACT 的关节空间输出绑定到具体机器人；可能推动低成本和异构机器人上的迁移。实现难度：高。&lt;/li&gt;
&lt;/ol&gt;</content:encoded><h:img src="https://pic.hana0721.top/67997247_p0_master1200.6po3p2g2e0.webp"/><enclosure url="https://pic.hana0721.top/67997247_p0_master1200.6po3p2g2e0.webp"/></item><item><title>Robotic Grasp Detection (12): 执行感知评估与开放问题</title><link>https://agusexp25.top/blog/robotic-grasp-detection-12</link><guid isPermaLink="true">https://agusexp25.top/blog/robotic-grasp-detection-12</guid><description>建立从离线姿态、碰撞、仿真、抬升、稳定和可达到任务成功的评价阶梯，并讨论不确定性、迁移、困难物体与失败恢复。</description><pubDate>Fri, 14 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;&lt;/p&gt;
&lt;h2&gt;检测分数与执行成功之间的距离（From Detection Score to Execution）&lt;/h2&gt;
&lt;p&gt;抓取检测器输出的姿态要经过碰撞检查（Collision Checking）、逆运动学（Inverse Kinematics, IK）、轨迹规划（Trajectory Planning）、夹爪闭合、抬升和任务执行。每个阶段对应一个可记录的状态和失败标签。&lt;/p&gt;
&lt;p&gt;设候选抓取为 $g=(R,\vec t,w)$，其中 $R\in SO(3)$、$\vec t\in\mathbb R^3$、$w\in\mathbb R_{\geq0}$。从检测到任务的评测链路为：&lt;/p&gt;
&lt;p&gt;离线平均精度（Offline Average Precision, AP）覆盖候选与标注的匹配；执行协议再测量几何、规划、接触、稳定和任务结果。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;评价阶梯（Evaluation Ladder）&lt;/h2&gt;
&lt;h3&gt;1. 离线姿态评价（Offline Pose Evaluation）&lt;/h3&gt;
&lt;p&gt;常见指标包括矩形交并比（Intersection over Union, IoU）、姿态距离、AP、前 $k$ 项召回率（Recall@$k$）和候选覆盖率（Candidate Coverage）。每项结果同时注明标注集合、匹配阈值和候选预算。&lt;/p&gt;
&lt;p&gt;空间姿态匹配通常分别计算平移与旋转误差：&lt;/p&gt;
&lt;p&gt;$$
d_t=\lVert\hat{\vec t}-\vec t^*\rVert_2,
\qquad
d_R=\min_{S\in\mathcal S}
\cos^{-1}!\left(
\frac{\operatorname{tr}((R^*S)^{\mathsf T}\hat R)-1}{2}
\right),
$$&lt;/p&gt;
&lt;p&gt;其中 $\hat{\vec t},\vec t^&lt;em&gt;\in\mathbb R^3$，$\hat R,R^&lt;/em&gt;\in SO(3)$，$\mathcal S$ 是夹爪对称集合，$\tau_t$ 和 $\tau_R$ 是平移、旋转阈值。预测在 $d_t&amp;#x3C;\tau_t$ 且 $d_R&amp;#x3C;\tau_R$ 时与真值匹配，并采用一对一匹配。&lt;/p&gt;
&lt;h3&gt;2. 几何与解析有效性（Geometric and Analytic Validity）&lt;/h3&gt;
&lt;p&gt;力闭合（Force Closure）、对向条件（Antipodal Condition）和碰撞检测（Collision Checking）验证候选在给定摩擦、几何和夹爪模型下的解析有效性。&lt;/p&gt;
&lt;p&gt;几何有效性拆成四个布尔量：闭合区是否有物体、夹指/手掌终点是否碰撞、预抓取到终点的扫掠体积是否碰撞、候选宽度是否在硬件范围。日志分别保存这四个结果，并记录摩擦系数、法线来源、质心和力矩归一化方式。&lt;/p&gt;
&lt;h3&gt;3. 仿真执行（Simulated Execution）&lt;/h3&gt;
&lt;p&gt;物理仿真加入重力、动力学、碰撞和扰动，结果由网格、接触求解器、控制器和随机化范围共同决定。&lt;/p&gt;
&lt;p&gt;仿真试验使用固定状态机：移动到预抓取位姿、沿接近轴进入、闭合到力/位置阈值、抬升指定高度、保持指定时间，并在每一步记录碰撞、接触和物体高度。初始位姿、摩擦、质量和控制噪声按固定分布随机化，接近路径与闭合控制纳入同一执行协议。&lt;/p&gt;
&lt;h3&gt;4. 物理抬升与清空（Physical Lift and Clearing）&lt;/h3&gt;
&lt;p&gt;抬升成功率（Lift Success Rate）记录物体是否离开支撑面，清空率（Clearing Rate）记录杂乱场景中的连续抓取。AnyGrasp 在其动态场景协议中报告超过 300 个未见物体上的 93.3% 箱体清空成功率 [1]；报告时同时给出机器人、传感器和场景设置。&lt;/p&gt;
&lt;h3&gt;5. 稳定、滑移与可达（Stability, Slip, and Reachability）&lt;/h3&gt;
&lt;p&gt;稳定性关注物体在扰动或运动后是否仍被持有；滑移评价接触相对运动；可达性评价机器人是否存在合法关节配置和轨迹。它们比首次抬升更接近部署。&lt;/p&gt;
&lt;h3&gt;6. 任务成功与恢复（Task Success and Recovery）&lt;/h3&gt;
&lt;p&gt;最终任务可能包括放置、递交、倾倒、清理指定目标或避开脆弱部件。任务成功率同时包含语义、抓取、规划和控制。恢复策略还允许机器人在失败后获取新信息并再次尝试。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;保留失败归因（Preserving Failure Attribution）&lt;/h2&gt;
&lt;p&gt;执行日志按阶段保留失败归因。记录内容包括：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;所有候选及原始分数；&lt;/li&gt;
&lt;li&gt;碰撞和可达性过滤结果；&lt;/li&gt;
&lt;li&gt;最终选择与运动规划结果；&lt;/li&gt;
&lt;li&gt;接触、夹紧力、滑移和抬升轨迹；&lt;/li&gt;
&lt;li&gt;目标或部件是否正确；&lt;/li&gt;
&lt;li&gt;失败类别与恢复动作。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;检测正确而规划失败标记为规划/可达失败；规划成功而接触不稳定标记为接触/稳定失败。&lt;/p&gt;
&lt;p&gt;日志最好为每个尝试分配唯一 &lt;code&gt;attempt_id&lt;/code&gt;，并保存候选表而不是只保存最后姿态。候选表的每一行包含原始分数、NMS 前后索引、碰撞原因、IK 解、规划代价与是否被选中；执行表再保存时间戳、夹爪宽度/电流、腕部力矩、物体高度和失败标签。这样可以离线重放“如果使用另一排序器会选哪个候选”，而无需重新执行所有机器人试验。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;执行感知数据集（Execution-Aware Benchmarks）&lt;/h2&gt;
&lt;p&gt;Supermarket-6DoF 在 20 个物体、1,500 次真实尝试上分别标注抬升成功和抓取后稳定性 [2]，将“拿起来”和“稳定拿住”分为两个指标。&lt;/p&gt;
&lt;p&gt;GraspIT 提供滑移测试与可达性质量，报告约 316k 组红绿蓝—深度帧（Red–Green–Blue and Depth Frame, RGB-D Frame）、1,035 个仿真和 100 个真实场景，以及约 230 万个候选 [3]。数据同时包含仿真验证和真实场景记录，可用于分析候选生成、可达性和滑移阶段。&lt;/p&gt;
&lt;p&gt;GCA-Bench 将语义理解、姿态检测、规划和任务结果分阶段评价，包含 102 个复杂任务场景 [4]。它把检测输出与任务执行日志放在同一评测链路中。&lt;/p&gt;
&lt;p&gt;TARGO 将目标身份和遮挡程度加入真实与合成协议，用于研究目标驱动抓取随遮挡变化的性能 [5]，对应目标选择、遮挡可见性和 6-DoF 抓取三个接口。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;开放问题一：校准不确定性（Calibrated Uncertainty）&lt;/h2&gt;
&lt;p&gt;模型需要区分：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;传感器噪声引起的偶然不确定性（Aleatoric Sensor Uncertainty）；&lt;/li&gt;
&lt;li&gt;未见物体与分布偏移（Distribution Shift）；&lt;/li&gt;
&lt;li&gt;隐藏形状的不确定性（Shape Uncertainty）；&lt;/li&gt;
&lt;li&gt;姿态和接触不确定性（Pose and Contact Uncertainty）；&lt;/li&gt;
&lt;li&gt;规划与执行不确定性（Planning and Execution Uncertainty）。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;vMF-Contact 使用概率接触方向与证据学习处理噪声杂乱场景 [6]；Shape Completion Uncertainty 将补全不确定性用于抓取质量 [7]；ActiveGrasp 用校准能量模型和信息选择主动观测 [8]。&lt;/p&gt;
&lt;p&gt;校准评价使用可靠性图（Reliability Diagram）、期望校准误差（Expected Calibration Error, ECE）和风险—覆盖曲线（Risk–Coverage Curve），并把置信度连接到真实执行结果。&lt;/p&gt;
&lt;p&gt;把预测成功概率分成 $M$ 个置信区间 $B_m$，ECE 定义为：&lt;/p&gt;
&lt;p&gt;$$
\operatorname{ECE}=\sum_{m=1}^{M}
\frac{|B_m|}{n}
\left|
\operatorname{acc}(B_m)-\operatorname{conf}(B_m)
\right|.
$$&lt;/p&gt;
&lt;p&gt;其中 $\operatorname{acc}$ 是该桶真实执行成功率，$\operatorname{conf}$ 是平均预测概率。实验同时报告分桶设置、可靠性图、负对数似然或 Brier 分数（Brier Score），并在碰撞/可达性过滤前后分别计算校准结果。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;开放问题二：跨传感器与跨具身迁移（Cross-Sensor and Cross-Embodiment Transfer）&lt;/h2&gt;
&lt;p&gt;Seen/Novel 物体划分通常固定相机、夹爪和机器人。部署变化还包括：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;深度相机类型与噪声；&lt;/li&gt;
&lt;li&gt;视角、安装高度和手眼标定；&lt;/li&gt;
&lt;li&gt;夹爪开口、指尖厚度和摩擦；&lt;/li&gt;
&lt;li&gt;机械臂工作空间和关节限制；&lt;/li&gt;
&lt;li&gt;场景尺度与运动速度。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;迁移协议独立改变这些因素，并区分零样本（Zero-Shot）、少样本校准（Few-Shot Calibration）和完整微调（Full Fine-Tuning）。物体类别、传感器、夹爪和机器人分别作为测试变量。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;开放问题三：语义与物理兼容（Semantic–Physical Compatibility）&lt;/h2&gt;
&lt;p&gt;语言模型定位“把手”后，抓取候选继续经过：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;夹爪开口与指尖几何检查；&lt;/li&gt;
&lt;li&gt;遮挡物和接近扫掠体积碰撞检查；&lt;/li&gt;
&lt;li&gt;机械臂 IK 与轨迹可达性检查；&lt;/li&gt;
&lt;li&gt;重力下的接触稳定性检查；&lt;/li&gt;
&lt;li&gt;后续放置姿态和轨迹检查。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ThinkGrasp 使用视觉语言推理选择部件或清理动作，再调用几何抓取模块 [9]。PhyGrasp 将材料、质量、脆弱性和语言偏好加入部件级选择 [10]。语义条件进入目标区域、禁区、力限制和任务轨迹后，分别统计每一级的通过率。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;开放问题四：透明、柔性与关节物体（Transparent, Deformable, and Articulated Objects）&lt;/h2&gt;
&lt;p&gt;三类对象对应三种观测和状态变量：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;透明物体改变传感器观测；&lt;/li&gt;
&lt;li&gt;柔性物体使接触改变几何；&lt;/li&gt;
&lt;li&gt;关节物体让状态、部件和动作语义耦合。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;共享协议分别控制材质、状态和遮挡，并记录改进来自专用相机、类别先验、几何补全或接触反馈。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;开放问题五：统一检测到执行基准（Linked Detection-to-Execution Benchmark）&lt;/h2&gt;
&lt;p&gt;统一基准在同一场景和候选集合上保存：&lt;/p&gt;
&lt;p&gt;$$
\text{observation}
\rightarrow \text{candidates}
\rightarrow \text{filters}
\rightarrow \text{planner}
\rightarrow \text{contact trace}
\rightarrow \text{outcome}.
$$&lt;/p&gt;
&lt;p&gt;利用这些记录，可以计算条件概率：&lt;/p&gt;
&lt;p&gt;$$
P(\text{task success})
=P(D)P(F\mid D)P(P\mid F,D)P(E\mid P,F,D),
$$&lt;/p&gt;
&lt;p&gt;其中 $D$ 是检测正确，$F$ 是物理可行，$P$ 是规划成功，$E$ 是执行成功。该分解保留每个阶段在前置条件成立时的失败统计。&lt;/p&gt;
&lt;p&gt;实际报告可以直接给出条件计数：&lt;/p&gt;
&lt;p&gt;$$
\hat P(F\mid D)=\frac{n_{D\cap F}}{n_D},\qquad
\hat P(P\mid D,F)=\frac{n_{D\cap F\cap P}}{n_{D\cap F}},
$$&lt;/p&gt;
&lt;p&gt;以及 $\hat P(E\mid D,F,P)$，并同时报告每个条件概率的分母。离线候选有效率和最高分候选的执行成功率分别记录。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;开放问题六：闭环恢复与安全适应（Closed-Loop Recovery and Safe Adaptation）&lt;/h2&gt;
&lt;p&gt;闭环恢复利用未接触、碰撞、滑移或场景变化等新证据。恢复策略报告：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;尝试次数与时间预算；&lt;/li&gt;
&lt;li&gt;每次失败获得的信息；&lt;/li&gt;
&lt;li&gt;累计成功率；&lt;/li&gt;
&lt;li&gt;是否改变候选分布；&lt;/li&gt;
&lt;li&gt;是否存在安全回退（Safe Fallback）；&lt;/li&gt;
&lt;li&gt;对脆弱物体和环境的风险。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;恢复策略根据新证据更新下一次候选或动作。&lt;/p&gt;
&lt;p&gt;给定最多 $K$ 次尝试，可以报告经验累计成功率：&lt;/p&gt;
&lt;p&gt;$$
\widehat S_k=
\frac{1}{N}\sum_{i=1}^{N}
\mathbf 1[\text{第 }i\text{ 个场景在前 }k\text{ 次内成功}],
\qquad k=1,\ldots,K.
$$&lt;/p&gt;
&lt;p&gt;同时报告条件恢复率 $P(\text{success at }k\mid\text{failed before }k)$，区分首次成功能力和失败后的恢复能力。累计成功率直接由闭环试验统计，不从单次成功率推导。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;可复现执行报告（Reproducible Execution Reporting）&lt;/h2&gt;
&lt;p&gt;真实抓取报告记录：&lt;/p&gt;
&lt;p&gt;| 类别     | 必要信息                                                           |
| :------- | :----------------------------------------------------------------- |
| 夹爪     | 型号、开口、指尖、指垫、力限制                                     |
| 相机     | 型号、视角、标定、深度过滤                                         |
| 候选     | 数量、阈值、非极大值抑制（Non-Maximum Suppression, NMS）、碰撞模型 |
| 机器人   | IK、规划器、速度、加速度、工作空间                                 |
| 成功定义 | 抬升高度、保持时间、稳定/滑移阈值                                  |
| 试验     | 物体、重置方式、重复次数、置信区间（Confidence Interval）          |
| 失败     | 感知、碰撞、不可达、未接触、滑移、任务错误                         |
| 计算     | 推理、过滤、规划和总循环时间                                       |&lt;/p&gt;
&lt;p&gt;抓取检测结果同时由离线候选、几何有效性、规划、接触稳定和任务完成率构成；不确定性和约束在对应阶段记录。&lt;/p&gt;
&lt;h3&gt;成功率也需要不确定区间&lt;/h3&gt;
&lt;p&gt;若 $n$ 次独立试验中成功 $x$ 次，点估计 $\hat p=x/n$ 在小样本下很不稳定。95% Wilson 置信区间（Wilson Confidence Interval）为：&lt;/p&gt;
&lt;p&gt;$$
\frac{
\hat p+\frac{z^2}{2n}
\pm z\sqrt{\frac{\hat p(1-\hat p)}{n}+\frac{z^2}{4n^2}}
}{1+\frac{z^2}{n}},
\qquad z=1.96.
$$&lt;/p&gt;
&lt;p&gt;例如“10 次成功 9 次”和“100 次成功 90 次”点估计同为 90%，区间宽度不同。比较两个检测器时，在相同物体—场景重置上做配对试验（Paired Trial），随机化执行顺序，并用配对差异或自助法（Bootstrap）置信区间报告改进。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;参考文献（References）&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;H.-S. Fang et al., “AnyGrasp: Robust and Efficient Grasp Perception in Spatial and Temporal Domains,” &lt;em&gt;IEEE Transactions on Robotics&lt;/em&gt;, 2023. &lt;a href=&quot;https://doi.org/10.1109/TRO.2023.3281153&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;J. Toskov and A. Cosgun, “Supermarket-6DoF: A Real-World Grasping Dataset and Grasp Pose Representation Analysis,” &lt;em&gt;arXiv preprint arXiv:2502.16311&lt;/em&gt;, 2025. &lt;a href=&quot;https://arxiv.org/abs/2502.16311&quot;&gt;arXiv&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;P. Koch, A. Karakurt, and A. Sers, “GraspIT: A Dataset Bridging the Sim-to-Real Gap and Back for Validated Grasping SE(3) Pose Generation,” &lt;em&gt;arXiv preprint arXiv:2607.05869&lt;/em&gt;, 2026. &lt;a href=&quot;https://arxiv.org/abs/2607.05869&quot;&gt;arXiv&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;H. Zhang et al., “Beyond Visual Grasping: Benchmarking Complex Grasping from Detection to Execution,” &lt;em&gt;arXiv preprint arXiv:2607.14341&lt;/em&gt;, 2026. &lt;a href=&quot;https://arxiv.org/abs/2607.14341&quot;&gt;arXiv&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Y. Xia et al., “TARGO and TARGO-Net: Benchmarking Target-Driven Object Grasping under Occlusions,” &lt;em&gt;International Journal of Computer Vision&lt;/em&gt;, 2026. &lt;a href=&quot;https://doi.org/10.1007/s11263-025-02716-9&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Y. Shi, E. Welte, M. Gilles, and R. Rayyes, “vMF-Contact: Uncertainty-Aware Evidential Learning for Probabilistic Contact-Grasp in Noisy Clutter,” &lt;em&gt;2025 IEEE International Conference on Robotics and Automation&lt;/em&gt;, 2025. &lt;a href=&quot;https://doi.org/10.1109/ICRA55743.2025.11127888&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;N. F. Duarte et al., “Measuring Uncertainty in Shape Completion to Improve Grasp Quality,” &lt;em&gt;2025 IEEE/RSJ International Conference on Intelligent Robots and Systems&lt;/em&gt;, 2025. &lt;a href=&quot;https://doi.org/10.1109/IROS60139.2025.11245992&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;B. Lei, W. Jiang, and K. Daniilidis, “ActiveGrasp: Information-Guided Active Grasping with Calibrated Energy-Based Model,” &lt;em&gt;arXiv preprint arXiv:2511.12795&lt;/em&gt;, 2025. &lt;a href=&quot;https://arxiv.org/abs/2511.12795&quot;&gt;arXiv&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Y. Qian et al., “ThinkGrasp: A Vision-Language System for Strategic Part Grasping in Clutter,” &lt;em&gt;Proceedings of the 8th Conference on Robot Learning&lt;/em&gt;, 2024. &lt;a href=&quot;https://proceedings.mlr.press/v270/qian25c.html&quot;&gt;PMLR&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;D. Guo et al., “PhyGrasp: Generalizing Robotic Grasping with Physics-Informed Large Multimodal Models,” &lt;em&gt;2025 IEEE/RSJ International Conference on Intelligent Robots and Systems&lt;/em&gt;, 2025. &lt;a href=&quot;https://doi.org/10.1109/IROS60139.2025.11246481&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;</content:encoded><h:img src="https://pic.hana0721.top/78391247_p0_master1200.5j4sgia4wg.webp"/><enclosure url="https://pic.hana0721.top/78391247_p0_master1200.5j4sgia4wg.webp"/></item><item><title>Robotic Grasp Detection (11): 夹爪感知与跨具身抓取检测</title><link>https://agusexp25.top/blog/robotic-grasp-detection-11</link><guid isPermaLink="true">https://agusexp25.top/blog/robotic-grasp-detection-11</guid><description>分析夹爪宽度、指尖几何、扫掠体积、旋转对称、机械臂可达性与工作空间如何进入抓取模型，并区分跨夹爪和跨机器人泛化。</description><pubDate>Fri, 14 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;&lt;/p&gt;
&lt;h2&gt;抓取姿态只对特定硬件有效（A Grasp Is Embodiment-Relative）&lt;/h2&gt;
&lt;p&gt;大多数抓取数据集固定一个平行夹爪（Parallel-Jaw Gripper），因此模型学到的候选隐含了该夹爪的开口、指尖厚度、手掌长度和碰撞体。把同一三维特殊欧氏群（Special Euclidean Group, $SE(3)$）位姿发送给另一副夹爪，可能出现：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;开口不足，无法容纳物体；&lt;/li&gt;
&lt;li&gt;指尖更厚，接近时发生碰撞；&lt;/li&gt;
&lt;li&gt;手掌更长，扫到桌面或邻物体；&lt;/li&gt;
&lt;li&gt;指垫摩擦不同，原接触不再稳定；&lt;/li&gt;
&lt;li&gt;手腕安装和机械臂不同，姿态不可达。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;设场景观测为 $P={\vec p_i}&lt;em&gt;{i=1}^{N}$，$\vec p_i\in\mathbb R^3$；抓取为 $g=(R,\vec t,w)$，其中 $R\in SO(3)$、$\vec t\in\mathbb R^3$、$w\in\mathbb R&lt;/em&gt;{\geq0}$。抓取可以写成具身条件分布（Embodiment-Conditioned Distribution）：&lt;/p&gt;
&lt;p&gt;$$
p(g\mid P,h,r),
$$&lt;/p&gt;
&lt;p&gt;其中 $h$ 描述夹爪几何与物理属性，$r$ 描述机器人、安装方式和工作空间，$P$ 是场景点云。&lt;/p&gt;
&lt;h2&gt;具身条件进入网络的位置（Where Embodiment Enters the Network）&lt;/h2&gt;
&lt;p&gt;| 条件接口                              | 输入                     | 网络处理               | 输出变化               |
| :------------------------------------ | :----------------------- | :--------------------- | :--------------------- |
| 标量条件（Scalar Conditioning）       | 开口、指长、指厚、夹紧力 | 特征调制或条件归一化   | 候选宽度、姿态和质量   |
| 几何条件（Geometric Conditioning）    | 夹爪点云、体素或 SDF     | 三维编码器提取形状特征 | 接近通道与碰撞感知候选 |
| 扫掠条件（Swept-Volume Conditioning） | 接近到闭合的夹爪占据     | 与场景几何融合         | 终态和路径同时过滤     |
| 机器人条件（Robot Conditioning）      | 基座、关节限制和工作空间 | 可达性评分或规划后处理 | 可执行姿态集合         |&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;夹爪描述包含什么（What Describes a Gripper?）&lt;/h2&gt;
&lt;p&gt;用于抓取检测的夹爪描述包含：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;最小/最大开口（Jaw-Width Range）；&lt;/li&gt;
&lt;li&gt;指尖长度、厚度和形状（Finger Geometry）；&lt;/li&gt;
&lt;li&gt;指垫材料与摩擦（Pad Friction）；&lt;/li&gt;
&lt;li&gt;手掌与腕部碰撞网格（Palm and Wrist Collision Mesh）；&lt;/li&gt;
&lt;li&gt;闭合方向和速度（Closing Direction and Speed）；&lt;/li&gt;
&lt;li&gt;夹紧力范围（Force Limit）；&lt;/li&gt;
&lt;li&gt;从预抓取到闭合的扫掠体积（Swept Volume）。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;最大开口只描述夹爪的一项尺度。指尖厚度、掌深和扫掠体积共同决定狭窄空间中的可行性，因此跨具身（Cross-Embodiment）实验需要明确实际输入的属性。&lt;/p&gt;
&lt;p&gt;对参数化模型，可以把夹爪描述拆成连续向量与几何场：&lt;/p&gt;
&lt;p&gt;$$
h_{\text{scalar}}=
[w_{\min},w_{\max},l_f,t_f,d_p,F_{\max},v_{\text{close}}]^{\mathsf T}
\in\mathbb R^7,
$$&lt;/p&gt;
&lt;p&gt;其中 $w_{\min},w_{\max},l_f,t_f,d_p,F_{\max},v_{\text{close}}\in\mathbb R$ 分别表示开口范围、夹指长度、厚度、掌深、最大夹紧力和闭合速度。复杂形状则用点云、体素占据或符号距离场（Signed Distance Field, SDF）编码。标量向量用于调制网络特征，几何场用于碰撞查询。&lt;/p&gt;
&lt;p&gt;若训练时把夹爪归一化到同一规范尺度，网络输出后要执行反变换：位置偏移、宽度、指长和碰撞盒一起恢复到目标夹爪尺度。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;平行夹爪的旋转对称性（Rotational Symmetry）&lt;/h2&gt;
&lt;p&gt;平行夹爪绕接近轴旋转 $180^\circ$ 后，两个夹指交换位置，物理抓取通常等价。这使同一动作在标签中出现两个旋转表示。&lt;/p&gt;
&lt;p&gt;Planar-Symmetric SO(3) Representation 显式处理三维特殊正交群（Special Orthogonal Group, $SO(3)$）中的平面对称，使旋转损失不再惩罚等价姿态 [1]。若 $R$ 与 $RS$ 等价，其中 $S$ 是 $180^\circ$ 对称旋转，则损失可以写成：&lt;/p&gt;
&lt;p&gt;$$
d_{\text{sym}}(R,\hat R)
=\min{d(R,\hat R),d(RS,\hat R)}.
$$&lt;/p&gt;
&lt;p&gt;OrbitGrasp 使用 $SE(3)$ 等变学习（SE(3)-Equivariant Learning）表示不同旋转下的一致抓取结构 [2]。对称性属于输出空间的几何性质，等变网络则把刚体变换关系写入特征计算。&lt;/p&gt;
&lt;p&gt;等变性要求输入场景经过刚体变换 $A\in SE(3)$ 后，预测候选同步变换：&lt;/p&gt;
&lt;p&gt;$$
F(AP)=A,F(P).
$$&lt;/p&gt;
&lt;p&gt;不变分类器满足 $q(AP,Ag)=q(P,g)$。数据增强可以提供额外姿态样本；对于平行夹爪，输出位于商空间 $SO(3)/\mathcal S$，其中 $\mathcal S$ 是夹爪对称群，损失、NMS 和评价使用同一等价关系。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;参数化夹爪检测（Parameterized Gripper Detection）&lt;/h2&gt;
&lt;p&gt;REGNet V2 面向不同尺寸夹爪，将夹爪尺度作为区域式点云检测的一部分 [3]。这种方法比固定夹爪多一个条件轴：同一场景点可能对窄夹爪可抓，对宽厚夹爪发生碰撞。&lt;/p&gt;
&lt;p&gt;一种常见条件化方式是用夹爪嵌入 $e_h=\phi(h)$ 调制场景特征 $f_i$：&lt;/p&gt;
&lt;p&gt;$$
f_i&apos;=\gamma(e_h)\odot f_i+\beta(e_h),
$$&lt;/p&gt;
&lt;p&gt;再从 $f_i&apos;$ 预测区域、姿态和质量。这种特征线性调制（Feature-Wise Linear Modulation, FiLM）让同一场景在不同夹爪条件下产生不同热图。训练批次将同一对象与多个夹爪配对，使网络学习夹爪几何与场景几何的交互。&lt;/p&gt;
&lt;p&gt;XGrasp 进一步研究夹爪感知检测与多夹爪数据生成 [4]。参数化模型把夹爪标识（Identifier, ID）替换为连续几何描述后，可以测试训练夹爪之间的插值（Interpolation）和未见夹爪的外推（Extrapolation）。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;数据规模与夹爪多样性（Data Scale and Gripper Diversity）&lt;/h2&gt;
&lt;p&gt;GraspFactory 报告超过 109M 个对象中心平行夹爪抓取，其中覆盖 Robotiq 2F-85 和 Franka Panda 两种几何 [5]。大规模多夹爪仿真扩大对象与姿态覆盖，数据中仍需要分别记录：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;物体模型和仿真产生的抓取标签；&lt;/li&gt;
&lt;li&gt;场景杂乱、传感器噪声和机器人轨迹设置；&lt;/li&gt;
&lt;li&gt;训练夹爪与测试夹爪的几何范围。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;MultiGraspNet 的共享三维特征也包含平行夹爪分支 [6]；本文范围只统计该分支的候选、碰撞和执行结果。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;扩散模型中的具身条件（Embodiment Conditioning in Diffusion）&lt;/h2&gt;
&lt;p&gt;GraspGen-X 使用夹爪扫掠体积表示和程序化夹爪数据（Procedurally Generated Gripper Data），让扩散生成器根据目标夹爪产生姿态 [7]。扫掠体积比单一宽度更接近执行过程：它描述夹爪从接近到闭合会占据的空间。&lt;/p&gt;
&lt;p&gt;设闭合参数 $s\in[0,1]$，夹爪占据几何为 $H(s)\subset\mathbb R^3$，从预抓取到最终位姿的刚体变换为 $T(s)\in SE(3)$，扫掠体积是：&lt;/p&gt;
&lt;p&gt;$$
V_{\text{sweep}}=\bigcup_{0\le s\le 1}T(s)H(s).
$$&lt;/p&gt;
&lt;p&gt;实现中把 $s$ 离散成 $L$ 个闭合状态，将每步夹爪网格体素化后取并集，或查询夹爪 SDF 与场景点的最小距离。$L$ 和体素分辨率共同决定扫掠体积的近似精度。将该体积编码成条件输入后，生成器同时感知目标夹爪的接近通道和终态几何。&lt;/p&gt;
&lt;p&gt;GraspGen-X 当前为 arXiv 预印本；真实执行时还要记录碰撞网格、指垫压缩、闭合控制和安装标定。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;从夹爪可行到机器人可达（From Gripper Feasibility to Robot Reachability）&lt;/h2&gt;
&lt;p&gt;给定抓取 $g$，机器人还要找到关节配置 $q\in\mathbb R^{n_q}$ 和无碰撞轨迹 $\tau$：&lt;/p&gt;
&lt;p&gt;$$
\operatorname{FK}(q)=g,
\qquad q\in\mathcal{Q}&lt;em&gt;{\text{limit}},
\qquad \tau\cap\mathcal{C}&lt;/em&gt;{\text{obs}}=\varnothing.
$$&lt;/p&gt;
&lt;p&gt;其中 $\operatorname{FK}$ 是正运动学（Forward Kinematics），$\mathcal{Q}&lt;em&gt;{\text{limit}}\subset\mathbb R^{n_q}$ 是关节限制集合，$\mathcal{C}&lt;/em&gt;{\text{obs}}$ 是障碍碰撞空间。&lt;/p&gt;
&lt;p&gt;逆运动学并非只有“有解/无解”。同一末端位姿可能对应多个关节解 $q_j$，选择时还要考虑关节限位余量、奇异性与路径长度。局部可操作性（Manipulability）可由雅可比矩阵（Jacobian Matrix）$J(q)$ 衡量：&lt;/p&gt;
&lt;p&gt;$$
m(q)=\sqrt{\det(J(q)J(q)^{\mathsf T})}.
$$&lt;/p&gt;
&lt;p&gt;$m(q)$ 接近零表示邻近奇异位形。候选过滤为每个 $g$ 求多组 IK 解，删除自碰撞和环境碰撞解，再按关节余量、$m(q)$ 与轨迹代价排序。&lt;/p&gt;
&lt;p&gt;MVB-Grasp 使用最小体积包围盒（Minimum-Volume Box）与正面工作空间约束过滤扩散候选 [8]。它展示了通用生成器可能产生几何稳定但不适合特定机器人接近方向的姿态；当前为预印本。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;移动操作与大物体（Mobile Manipulation and Large Objects）&lt;/h2&gt;
&lt;p&gt;大物体可能超出固定机械臂的局部工作空间。SuperQ-GRASP 使用超二次曲面（Superquadric）表示大物体，并为移动操作机器人选择接近且可达的部位 [9]。&lt;/p&gt;
&lt;p&gt;此时抓取检测与基座位置、相机视角和机械臂可达域共同决定候选。对象坐标系中的抓取需要经过基座变换、IK 和环境轨迹检查后才能进入执行集合。&lt;/p&gt;
&lt;p&gt;QuickGrasp 使用轻量对向点云规划减少生成开销 [10]。部署比较同时记录候选数、碰撞检查时间、规划时间和真实执行周期。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;抓取与放置的具身耦合（Grasp–Placement Coupling）&lt;/h2&gt;
&lt;p&gt;ROG-Grasp 使用根部朝向几何（Root-Oriented Geometry）同时约束抓取和放置方向 [11]。它面向农产品等具有明确根部/朝向结构的对象。&lt;/p&gt;
&lt;p&gt;这种方法把后续放置方向加入抓取条件。抓取姿态需要与物体放置状态和机器人运动空间共同优化。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;跨具身评价（Cross-Embodiment Evaluation）&lt;/h2&gt;
&lt;p&gt;跨具身实验按以下因素组合：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;已见夹爪 + 未见物体；&lt;/li&gt;
&lt;li&gt;未见夹爪 + 已见物体；&lt;/li&gt;
&lt;li&gt;未见夹爪 + 未见物体；&lt;/li&gt;
&lt;li&gt;同夹爪跨机器人；&lt;/li&gt;
&lt;li&gt;同机器人跨相机与工作空间；&lt;/li&gt;
&lt;li&gt;零样本（Zero-Shot）、少样本校准（Few-Shot Calibration）与完整微调（Full Fine-Tuning）。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;需要报告的结果包括：&lt;/p&gt;
&lt;p&gt;| 层级   | 指标                                                               |
| :----- | :----------------------------------------------------------------- |
| 几何   | 宽度满足率、夹爪/手掌碰撞率                                        |
| 姿态   | 对称感知旋转误差、候选覆盖率                                       |
| 机器人 | 逆运动学（Inverse Kinematics, IK）成功率、轨迹规划成功率、路径代价 |
| 物理   | 抬升、稳定、滑移和硬件碰撞                                         |
| 任务   | 放置朝向、循环时间和最终完成率                                     |&lt;/p&gt;
&lt;p&gt;训练多个仿真夹爪并在固定真实机器人上测试，测量的是夹爪条件对迁移的贡献；改变夹爪、机器人、相机和工作空间后再测试，测量完整跨具身泛化。&lt;/p&gt;
&lt;p&gt;跨具身实验还应冻结信息边界。若测试新夹爪时重新采集大量成功/失败并微调整个网络，这属于完整适配，不是零样本。更清晰的三级协议是：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;零样本（Zero-Shot）&lt;/strong&gt;：只提供新夹爪几何、标定和硬件限制，不提供抓取结果；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;少样本校准（Few-Shot Calibration）&lt;/strong&gt;：冻结生成器，只用少量物理试验校准宽度、碰撞余量或分数；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;完整微调（Full Fine-Tuning）&lt;/strong&gt;：允许更新表示与生成器，并单独报告所用样本数。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;每一级同时报告候选覆盖、几何碰撞、IK 可达和物理成功。零样本中候选覆盖正常而碰撞率上升，说明夹爪几何条件需要改进；几何有效而 IK 失败率上升，说明机器人工作空间条件需要改进。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;参考文献（References）&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;T. Ko, T. Ikeda, H. Sato, and K. Nishiwaki, “A Planar-Symmetric SO(3) Representation for Learning Grasp Detection,” &lt;em&gt;Proceedings of the 8th Conference on Robot Learning&lt;/em&gt;, 2024. &lt;a href=&quot;https://proceedings.mlr.press/v270/ko25a.html&quot;&gt;PMLR&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;B. Hu et al., “OrbitGrasp: SE(3)-Equivariant Grasp Learning,” &lt;em&gt;Proceedings of the 8th Conference on Robot Learning&lt;/em&gt;, 2024. &lt;a href=&quot;https://proceedings.mlr.press/v270/hu25b.html&quot;&gt;PMLR&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;B. Zhao et al., “REGNet V2: End-to-End Region-Based Grasp Detection Network for Grippers of Different Sizes in Point Clouds,” &lt;em&gt;arXiv preprint arXiv:2410.09431&lt;/em&gt;, 2024. &lt;a href=&quot;https://arxiv.org/abs/2410.09431&quot;&gt;arXiv&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Y. Lee et al., “XGrasp: Gripper-Aware Grasp Detection with Multi-Gripper Data Generation,” &lt;em&gt;arXiv preprint arXiv:2510.11036&lt;/em&gt;, 2025. &lt;a href=&quot;https://arxiv.org/abs/2510.11036&quot;&gt;arXiv&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;S. K. Srinivas, Y. Shukla, A. Arnold, and S. Chitta, “GraspFactory: A Large Object-Centric Grasping Dataset,” &lt;em&gt;arXiv preprint arXiv:2509.20550&lt;/em&gt;, 2025. &lt;a href=&quot;https://arxiv.org/abs/2509.20550&quot;&gt;arXiv&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;S. Ortuno-Chanelo et al., “MultiGraspNet: A Multitask 3D Vision Model for Multi-Gripper Robotic Grasping,” &lt;em&gt;arXiv preprint arXiv:2602.06504&lt;/em&gt;, 2026. &lt;a href=&quot;https://arxiv.org/abs/2602.06504&quot;&gt;arXiv&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;B. Han et al., “GraspGen-X: Cross-Embodiment 6-DOF Diffusion-Based Grasping,” &lt;em&gt;arXiv preprint arXiv:2606.00998&lt;/em&gt;, 2026. &lt;a href=&quot;https://arxiv.org/abs/2606.00998&quot;&gt;arXiv&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;B. Poudel, A. Basit, and M. Shafique, “MVB-Grasp: Minimum-Volume-Box Filtering of Diffusion-Based Grasps for Frontal Manipulation,” &lt;em&gt;arXiv preprint arXiv:2605.09672&lt;/em&gt;, 2026. &lt;a href=&quot;https://arxiv.org/abs/2605.09672&quot;&gt;arXiv&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;X. Tu and K. Desingh, “SuperQ-GRASP: Superquadrics-Based Grasp Pose Estimation on Larger Objects for Mobile-Manipulation,” &lt;em&gt;2025 IEEE International Conference on Robotics and Automation&lt;/em&gt;, 2025. &lt;a href=&quot;https://doi.org/10.1109/ICRA55743.2025.11127681&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;N. S. Ravie, K. Vasan M, A. Thondiyath, and B. Sebastian, “QuickGrasp: Lightweight Antipodal Grasp Planning with Point Clouds,” &lt;em&gt;2025 IEEE International Conference on Robotics and Automation&lt;/em&gt;, 2025. &lt;a href=&quot;https://doi.org/10.1109/ICRA55743.2025.11128143&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Z. An et al., “ROG-Grasp: Root-Oriented Geometry for Robotic Grasping and Placement,” &lt;em&gt;arXiv preprint arXiv:2606.00449&lt;/em&gt;, 2026. &lt;a href=&quot;https://arxiv.org/abs/2606.00449&quot;&gt;arXiv&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;</content:encoded><h:img src="https://pic.hana0721.top/78075718_p0_master1200.51eqrx8rbi.webp"/><enclosure url="https://pic.hana0721.top/78075718_p0_master1200.51eqrx8rbi.webp"/></item><item><title>Robotic Grasp Detection (10): 多模态感知与闭环抓取优化</title><link>https://agusexp25.top/blog/robotic-grasp-detection-10</link><guid isPermaLink="true">https://agusexp25.top/blog/robotic-grasp-detection-10</guid><description>解释视觉、时间信息、触觉、力矩、滑移与刚度如何在接近、接触和抬升阶段更新抓取，并讨论闭环系统的状态估计与评价方法。</description><pubDate>Fri, 14 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;&lt;/p&gt;
&lt;h2&gt;为什么单次视觉预测不够（Why One-Shot Vision Is Insufficient）&lt;/h2&gt;
&lt;p&gt;开环抓取（Open-Loop Grasping）在运动前预测一次姿态，随后假设物体、相机和机器人状态不再变化。真实执行中，深度噪声、手眼标定误差、物体移动、接触偏差和滑移会在预测后继续累积。&lt;/p&gt;
&lt;p&gt;闭环抓取（Closed-Loop Grasping）根据连续观测更新状态、抓取和控制动作。设平行夹爪抓取为 $g_t=(R_t,\vec t_t,w_t)$，其中 $R_t\in SO(3)$、$\vec t_t\in\mathbb R^3$、$w_t\in\mathbb R_{\geq0}$，闭环策略可以写成：&lt;/p&gt;
&lt;p&gt;$$
(g_{t+1},a_t)=\pi(o_{0:t},a_{0:t-1},f_{0:t}),
$$&lt;/p&gt;
&lt;p&gt;其中 $o_{0:t}$ 是视觉与触觉观测历史，$a_{0:t-1}$ 是已执行动作，$f_{0:t}$ 是力与接触反馈，$a_t$ 是下一段短时控制动作。不同模态在不同时间点有效：视觉用于接触前定位，触觉和力觉在接触后观测接触状态，滑移信号在抬升和搬运阶段更新稳定性。&lt;/p&gt;
&lt;p&gt;闭环系统可以维护隐藏状态 $x_t\in\mathbb R^{d_x}$，例如物体位姿、接触位置、滑移状态和夹紧力。贝叶斯滤波（Bayesian Filtering）写成：&lt;/p&gt;
&lt;p&gt;$$
\underbrace{p(x_t\mid o_{0:t},a_{0:t-1})}&lt;em&gt;{b_t(x_t)}
\propto
p(o_t\mid x_t)
\int p(x_t\mid x&lt;/em&gt;{t-1},a_{t-1})b_{t-1}(x_{t-1}),dx_{t-1}.
$$&lt;/p&gt;
&lt;p&gt;其中 $b_t(x_t)$ 是时刻 $t$ 的状态信念，$p(x_t\mid x_{t-1},a_{t-1})$ 是动作后的状态转移，$p(o_t\mid x_t)$ 是多模态观测模型。控制器根据 $b_t$ 选择短时动作，并在下一观测到来后更新；工程实现可使用卡尔曼滤波（Kalman Filter）、粒子滤波（Particle Filter）或神经状态编码器（Neural State Encoder）。&lt;/p&gt;
&lt;h2&gt;多模态闭环的状态接口（State Interfaces in the Closed Loop）&lt;/h2&gt;
&lt;p&gt;| 执行阶段                   | 主要传感器                      | 状态估计               | 控制输出                 |
| :------------------------- | :------------------------------ | :--------------------- | :----------------------- |
| 接触前（Pre-Contact）      | RGB-D、点云、关节编码器         | 物体与夹爪相对位姿     | 候选更新、接近速度       |
| 接近中（Approach）         | 连续视觉、机器人位姿            | 目标运动与标定残差     | 末端位姿修正、停止       |
| 闭合时（Closure）          | 指尖触觉、夹爪电流、力          | 左右接触位置与接触强度 | 继续闭合、平移或旋转调整 |
| 抬升中（Lift）             | 触觉时间序列、腕部力/力矩、视觉 | 滑移、质心偏移与稳定性 | 增力、减速、放回或重抓   |
| 任务执行（Task Execution） | 多模态状态与任务反馈            | 物体姿态和任务进度     | 搬运、放置与恢复         |&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;视觉闭环与时间一致性（Visual Closed Loop and Temporal Consistency）&lt;/h2&gt;
&lt;p&gt;闭环不一定需要触觉。低延迟视觉检测器可以在机械臂接近时反复修正目标。Grasping in the Wild 从低成本示范学习六自由度（Six Degrees of Freedom, 6-DoF）闭环抓取 [1]；Real-Time Generative Grasping 使用时空稀疏卷积（Spatio-Temporal Sparse Convolution）融合连续深度帧 [2]；AnyGrasp 则关注空间和时间域中的鲁棒抓取感知 [3]。&lt;/p&gt;
&lt;p&gt;时间融合（Temporal Fusion）可以：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;平滑单帧姿态抖动；&lt;/li&gt;
&lt;li&gt;累积不同视角看到的表面；&lt;/li&gt;
&lt;li&gt;跟踪移动物体和候选；&lt;/li&gt;
&lt;li&gt;删除与当前场景不一致的旧抓取。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;融合前先把不同帧注册到同一坐标系。若第 $t$ 帧中的点 $\vec p_C^{,t}\in\mathbb R^3$ 位于相机坐标系，机器人状态提供相机到机器人基座的齐次变换 ${}^{B}T_{C_t}\in SE(3)$，则：&lt;/p&gt;
&lt;p&gt;$$
\begin{bmatrix}\vec p_B^{,t}\1\end{bmatrix}
={}^{B}T_{C_t}
\begin{bmatrix}\vec p_C^{,t}\1\end{bmatrix}.
$$&lt;/p&gt;
&lt;p&gt;随后使用体素哈希（Voxel Hashing）、迭代最近点（Iterative Closest Point, ICP）或对象跟踪关联新旧表面。候选也随被跟踪物体更新：若物体位姿从 ${}^{B}T_O^{t-1}$ 变化到 ${}^{B}T_O^t$，则旧抓取齐次变换 ${}^{B}T_G^{t-1}$ 更新为：&lt;/p&gt;
&lt;p&gt;$$
{}^{B}T_G^t
={}^{B}T_O^t
\left({}^{B}T_O^{t-1}\right)^{-1}
{}^{B}T_G^{t-1}.
$$&lt;/p&gt;
&lt;p&gt;平移可在 $\mathbb R^3$ 中加权，旋转则用四元数平均或李代数增量进行时间平滑。&lt;/p&gt;
&lt;p&gt;时间窗口长度决定平滑程度与时延（Latency）。实现中可按时间戳衰减旧帧权重，并在估计残差超过阈值时丢弃过期状态（Stale State）。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;接触前的不确定性处理（Pre-Contact Uncertainty）&lt;/h2&gt;
&lt;p&gt;夹爪位姿误差会让解析高分抓取在执行时错过接触面。Johns 等人学习稠密抓取函数，再与夹爪位姿不确定性卷积 [4]：&lt;/p&gt;
&lt;p&gt;$$
\tilde Q(g)=\int Q(g+\delta),p(\delta),d\delta.
$$&lt;/p&gt;
&lt;p&gt;其中位姿扰动 $\delta\in\mathbb R^6$ 表示局部平移和旋转误差，$p(\delta)$ 是标定与控制误差模型。卷积后的 $\tilde Q(g)$ 偏向邻域内都保持较高质量的候选，用于接触前排序。&lt;/p&gt;
&lt;p&gt;vMF-Contact 使用 von Mises–Fisher 分布（von Mises–Fisher Distribution, vMF）和证据学习（Evidential Learning）表示噪声杂乱场景中的接触方向不确定性 [9]。概率表示的价值在于让候选分数随观测质量变化，而不是对所有姿态输出同样尖锐的置信度。&lt;/p&gt;
&lt;p&gt;对单位方向 $n\in\mathbb S^2$，vMF 密度为：&lt;/p&gt;
&lt;p&gt;$$
p(n\mid\mu,\kappa)=C_3(\kappa)
\exp(\kappa\mu^{\mathsf T}n),
$$&lt;/p&gt;
&lt;p&gt;其中 $n,\mu\in\mathbb R^3$ 是单位向量，$\kappa\in\mathbb R_{\geq0}$ 是集中参数，$C_3(\kappa)$ 是三维归一化常数；$\kappa\to0$ 时接近球面均匀分布，$\kappa$ 增大时方向集中在 $\mu$ 附近。解码时可以从分布采样多个接触方向，或用 $\kappa$ 调整候选排序。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;视觉—触觉重新抓取（Visuo-Tactile Regrasping）&lt;/h2&gt;
&lt;p&gt;触觉感知（Tactile Sensing）提供指尖压力分布、接触位置和局部纹理。More Than a Feeling 将视觉与触觉共同用于初始抓取和重新抓取（Regrasp）[5]。&lt;/p&gt;
&lt;p&gt;视觉负责生成接触前候选和检查远距离碰撞，触觉负责在闭合后测量局部接触。二者通过当前夹爪姿态和指尖侧别关联到同一抓取状态。&lt;/p&gt;
&lt;p&gt;视觉—触觉重新抓取通常包含两个输出头：稳定性分类器估计当前接触是否足以抬升，调整策略预测平移、旋转或重新张开夹爪的动作。原始触觉图先做空载基线校正，再计算压力或形变差分；左右指尖图像保留夹爪侧别。一个简化决策为：&lt;/p&gt;
&lt;p&gt;$$
a_t=
\begin{cases}
\text{lift}, &amp;#x26; p_{\text{stable}}&gt;\eta,\
\Delta g_t, &amp;#x26; p_{\text{stable}}\leq\eta
\text{ 且调整在安全范围内},\
\text{release and replan}, &amp;#x26; \text{otherwise}.
\end{cases}
$$&lt;/p&gt;
&lt;p&gt;稳定性头使用带成功/失败标签的静态触觉样本；调整头使用“调整前触觉、所执行调整、调整后结果”三元组学习动作对接触状态的影响。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;力、力矩与质心（Force, Torque, and Center of Mass）&lt;/h2&gt;
&lt;p&gt;腕部力/力矩传感器（Wrist Force/Torque Sensor）和触觉可以估计物体受力及质心偏移。Center-of-Mass-Based Robust Grasp Planning 使用触觉—视觉传感器调整未知物体抓取 [6]。&lt;/p&gt;
&lt;p&gt;设质心和抓取参考点分别为 $\vec p_{\text{CoM}},\vec p_{\text{grasp}}\in\mathbb R^3$，物体质量 $m\in\mathbb R_{&gt;0}$，重力加速度 $\vec g\in\mathbb R^3$。夹持点远离质心（Center of Mass, CoM）时会产生力矩：&lt;/p&gt;
&lt;p&gt;$$
\vec\tau
=(\vec p_{\text{CoM}}-\vec p_{\text{grasp}})
\times m\vec g,
\qquad \vec\tau\in\mathbb R^3.
$$&lt;/p&gt;
&lt;p&gt;系统以抬升后的力矩作为重新抓取反馈，使夹持点逐步接近质心；执行协议记录每次调整后的状态变化。&lt;/p&gt;
&lt;p&gt;在准静态悬持、已知重力方向的条件下，腕部测得的力 $\vec F$ 与力矩 $\vec\tau$ 满足：&lt;/p&gt;
&lt;p&gt;$$
\vec F\approx m\vec g,\qquad
\vec\tau\approx \vec r_{\text{CoM}}\times\vec F+\vec\tau_0,
$$&lt;/p&gt;
&lt;p&gt;其中 $\vec F,\vec\tau\in\mathbb R^3$ 是腕部测得的力和力矩，$\vec r_{\text{CoM}}\in\mathbb R^3$ 是质心相对传感器原点的位置，$\vec\tau_0\in\mathbb R^3$ 包含传感器偏置、夹爪自重和安装误差。先用空夹爪标定 $\vec\tau_0$，再在一个或多个手腕方向上测量，可以解出质心在垂直于 $\vec F$ 平面内的分量；运动阶段则加入加速度补偿。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;滑移检测与稳定控制（Slip Detection and Stable Control）&lt;/h2&gt;
&lt;p&gt;滑移（Slip）是接触面相对运动，可能由夹紧力不足、质心偏移、材料摩擦变化或机器人加速度引起。滑移检测可以基于：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;触觉图像变化；&lt;/li&gt;
&lt;li&gt;高频振动与剪切力；&lt;/li&gt;
&lt;li&gt;腕部力/力矩；&lt;/li&gt;
&lt;li&gt;视觉中的物体相对运动。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;检测到滑移后，控制器可以增加夹紧力、改变手腕运动、放慢加速度或重新抓取。稳定性评价（Stability Evaluation）分别记录首次抬升和搬运过程中的持续持有。&lt;/p&gt;
&lt;p&gt;滑移检测一般使用时间窗而不是单帧阈值。设触觉或剪切特征为 $z_t$，可以比较短窗变化：&lt;/p&gt;
&lt;p&gt;$$
s_t=\frac{1}{L}\sum_{k=0}^{L-1}
\lVert z_{t-k}-z_{t-k-1}\rVert,
$$&lt;/p&gt;
&lt;p&gt;其中 $z_t\in\mathbb R^{d_z}$ 是触觉或剪切特征，$L$ 是时间窗长度，$s_t\in\mathbb R_{\geq0}$ 是滑移分数。也可以用一维卷积或循环网络区分接触建立、正常形变和持续滑移。夹紧力控制采用带上限的增量律：&lt;/p&gt;
&lt;p&gt;$$
F_{t+1}
=\operatorname{clip}(F_t+K_s s_t,F_{\min},F_{\max}),
$$&lt;/p&gt;
&lt;p&gt;其中 $F_t$ 是夹紧力，$K_s\geq0$ 是控制增益，$F_{\min}$ 和 $F_{\max}$ 由夹爪与物体材料共同确定。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;刚度与形变感知（Stiffness and Deformation Awareness）&lt;/h2&gt;
&lt;p&gt;柔性物体的几何会随夹持力改变。Deformation-Aware Grasp Synthesis 将刚度和形变加入抓取选择 [7]。对软物体，质量函数可能同时包含稳定性和形变惩罚：&lt;/p&gt;
&lt;p&gt;$$
Q(g)=Q_{\text{hold}}(g)-\lambda D_{\text{deform}}(g).
$$&lt;/p&gt;
&lt;p&gt;$Q_{\text{hold}}$ 评价持有稳定性，$D_{\text{deform}}$ 评价预测形变或损伤，$\lambda\geq0$ 控制二者权衡。视觉形状和材料先验用于初始候选，触觉与力反馈在闭合后更新形变估计。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;少样本物理学习与示范（Sample-Efficient Physical Learning and Demonstration）&lt;/h2&gt;
&lt;p&gt;真实抓取试验昂贵。Sample Efficient Grasp Learning 使用等变模型（Equivariant Model）复用旋转和平移对称性，提高有限物理数据的利用率 [8]。自监督增强现实遥操作（Self-Supervised Augmented-Reality Teleoperation）则使用人类示范生成六自由度抓取训练信号 [10]。&lt;/p&gt;
&lt;p&gt;示范数据同时记录操作者选择、机器人平台和相机设置；自监督执行数据还记录成功检测、规划过滤和硬件保护触发状态，便于分析训练样本是如何产生的。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;多模态融合发生在哪里（Where Multimodal Fusion Happens）&lt;/h2&gt;
&lt;p&gt;| 阶段                      | 可用信息                                                               | 典型决策                 |
| :------------------------ | :--------------------------------------------------------------------- | :----------------------- |
| 接触前（Pre-Contact）     | 红绿蓝—深度（Red–Green–Blue and Depth, RGB-D）、点云、语言、机器人状态 | 目标、姿态、接近轨迹     |
| 接近中（During Approach） | 连续视觉、位姿反馈                                                     | 修正姿态、停止或重新规划 |
| 闭合时（At Closure）      | 触觉、夹爪电流、力                                                     | 判断是否接触、调整夹紧力 |
| 抬升中（During Lift）     | 滑移、力矩、视觉跟踪                                                   | 增力、减速、放回或重抓   |
| 任务中（During Task）     | 物体状态、语言、放置约束                                               | 保持、重新定向、恢复失败 |&lt;/p&gt;
&lt;p&gt;早期融合（Early Fusion）把多模态输入送入同一网络，便于学习联合特征，但要求同步和大量配对数据；后期融合（Late Fusion）让各模态独立估计，再在质量或控制层合并，模块更清晰但可能丢失细粒度相关性。&lt;/p&gt;
&lt;p&gt;早期融合可以写成 $h=F([e_v,e_t,e_f])$，其中视觉、触觉和力特征在编码后拼接；后期融合则先产生各自证据 $q_m$，再按可靠度组合：&lt;/p&gt;
&lt;p&gt;$$
q=\frac{\sum_m w_m q_m}{\sum_m w_m},
\qquad
w_m\propto\frac{1}{\sigma_m^2+\epsilon}.
$$&lt;/p&gt;
&lt;p&gt;其中 $q_m\in\mathbb R$ 是第 $m$ 个模态给出的质量证据，$\sigma_m^2\in\mathbb R_{&gt;0}$ 是对应不确定性，$\epsilon&gt;0$ 防止除零。深度大面积缺失时降低视觉权重；触觉尚未接触时用可用性掩码关闭触觉分支。异步传感器为每个特征保留采样时间，并将机器人状态插值到同一时刻。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;闭环系统应如何评价（Evaluating Closed-Loop Systems）&lt;/h2&gt;
&lt;p&gt;闭环评测同时记录首次尝试、反馈调整和最终结果：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;首次成功率（First-Attempt Success）；&lt;/li&gt;
&lt;li&gt;给定尝试预算下的累计成功率（Cumulative Success）；&lt;/li&gt;
&lt;li&gt;平均重新抓取次数（Average Regrasp Count）；&lt;/li&gt;
&lt;li&gt;达成稳定所需时间（Time to Stable Grasp）；&lt;/li&gt;
&lt;li&gt;滑移率和恢复率（Slip and Recovery Rate）；&lt;/li&gt;
&lt;li&gt;接触力、物体损伤和安全终止；&lt;/li&gt;
&lt;li&gt;传感器与控制循环频率。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这些指标把检测精度、反馈收益、循环速度和安全代价连接到同一个执行协议中。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;参考文献（References）&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;S. Song, A. Zeng, J. Lee, and T. Funkhouser, “Grasping in the Wild: Learning 6DoF Closed-Loop Grasping from Low-Cost Demonstrations,” &lt;em&gt;IEEE Robotics and Automation Letters&lt;/em&gt;, 2020. &lt;a href=&quot;https://doi.org/10.1109/LRA.2020.3004787&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;T. R. Player, D. Chang, F. Li, and G. A. Hollinger, “Real-Time Generative Grasping with Spatio-Temporal Sparse Convolution,” &lt;em&gt;2023 IEEE International Conference on Robotics and Automation&lt;/em&gt;, 2023. &lt;a href=&quot;https://doi.org/10.1109/ICRA48891.2023.10161529&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;H.-S. Fang et al., “AnyGrasp: Robust and Efficient Grasp Perception in Spatial and Temporal Domains,” &lt;em&gt;IEEE Transactions on Robotics&lt;/em&gt;, 2023. &lt;a href=&quot;https://doi.org/10.1109/TRO.2023.3281153&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;E. Johns, S. Leutenegger, and A. J. Davison, “Deep Learning a Grasp Function for Grasping under Gripper Pose Uncertainty,” &lt;em&gt;2016 IEEE/RSJ International Conference on Intelligent Robots and Systems&lt;/em&gt;, 2016. &lt;a href=&quot;https://doi.org/10.1109/IROS.2016.7759657&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;R. Calandra et al., “More Than a Feeling: Learning to Grasp and Regrasp Using Vision and Touch,” &lt;em&gt;IEEE Robotics and Automation Letters&lt;/em&gt;, 2018. &lt;a href=&quot;https://doi.org/10.1109/LRA.2018.2852779&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Q. Feng et al., “Center-of-Mass-Based Robust Grasp Planning for Unknown Objects Using Tactile-Visual Sensors,” &lt;em&gt;2020 IEEE International Conference on Robotics and Automation&lt;/em&gt;, 2020. &lt;a href=&quot;https://doi.org/10.1109/ICRA40945.2020.9196815&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;T. N. Le, J. Lundell, F. J. Abu-Dakka, and V. Kyrki, “Deformation-Aware Data-Driven Grasp Synthesis,” &lt;em&gt;IEEE Robotics and Automation Letters&lt;/em&gt;, 2022. &lt;a href=&quot;https://doi.org/10.1109/LRA.2022.3146551&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;X. Zhu et al., “Sample Efficient Grasp Learning Using Equivariant Models,” &lt;em&gt;Robotics: Science and Systems XVIII&lt;/em&gt;, 2022. &lt;a href=&quot;https://doi.org/10.15607/RSS.2022.XVIII.071&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Y. Shi, E. Welte, M. Gilles, and R. Rayyes, “vMF-Contact: Uncertainty-Aware Evidential Learning for Probabilistic Contact-Grasp in Noisy Clutter,” &lt;em&gt;2025 IEEE International Conference on Robotics and Automation&lt;/em&gt;, 2025. &lt;a href=&quot;https://doi.org/10.1109/ICRA55743.2025.11127888&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;X. Dengxiong, X. Wang, S. Bai, and Y. Zhang, “Self-Supervised 6-DoF Robot Grasping by Demonstration via Augmented Reality Teleoperation System,” &lt;em&gt;2024 IEEE International Conference on Robotics and Automation&lt;/em&gt;, 2024. &lt;a href=&quot;https://doi.org/10.1109/ICRA57147.2024.10611721&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;</content:encoded><h:img src="https://pic.hana0721.top/76117294_p0_master1200.2rvq8fo0ul.webp"/><enclosure url="https://pic.hana0721.top/76117294_p0_master1200.2rvq8fo0ul.webp"/></item><item><title>Robotic Grasp Detection (9): 目标、任务、部件与语言条件抓取</title><link>https://agusexp25.top/blog/robotic-grasp-detection-9</link><guid isPermaLink="true">https://agusexp25.top/blog/robotic-grasp-detection-9</guid><description>从目标选择、关系推理、部件可供性到材料与任务兼容性，分析语言和视觉语言模型如何约束抓取，以及语义与物理可行性的接口。</description><pubDate>Fri, 14 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;&lt;/p&gt;
&lt;h2&gt;“能抓”与“应该抓”是两个问题（Graspability vs. Compatibility）&lt;/h2&gt;
&lt;p&gt;对象无关抓取（Object-Agnostic Grasping）寻找场景中任意稳定抓取；条件抓取（Conditional Grasping）还要回答抓哪个物体、抓哪个部件，以及该抓取是否适合后续任务。&lt;/p&gt;
&lt;p&gt;设平行夹爪候选为 $g=(R,\vec t,w)$，其中 $R\in SO(3)$、$\vec t\in\mathbb R^3$、$w\in\mathbb R_{\geq0}$；场景观测为 $o$，条件为 $c$。一个便于实现的候选分数可以分解为：&lt;/p&gt;
&lt;p&gt;$$
Q(g\mid o,c)
=Q_{\text{physical}}(g\mid o)
+\lambda Q_{\text{semantic}}(g\mid o,c),
$$&lt;/p&gt;
&lt;p&gt;其中 $c$ 可以是目标身份、部件、自然语言或任务；$Q_{\text{physical}}$ 评价接触、碰撞与可达性，$Q_{\text{semantic}}$ 评价目标和任务兼容性，$\lambda\geq0$ 控制语义偏好在排序中的权重。&lt;/p&gt;
&lt;p&gt;安全条件和排序偏好需要不同的接口。若“不要触碰刀刃”是安全条件，它直接进入可行集合；“更偏向把手中部”则作为候选排序项：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;硬约束（Hard Constraint）&lt;/strong&gt;：目标身份、禁止接触区、夹爪宽度和碰撞，直接形成可行集合 $\mathcal F_c$；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;软偏好（Soft Preference）&lt;/strong&gt;：更喜欢把手中部、减少腕部旋转或保留放置余量，用于集合内部排序。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;选择问题写成：&lt;/p&gt;
&lt;p&gt;$$
g^*=\arg\max_{g\in\mathcal G\cap\mathcal F_c}
\left[Q_{\text{physical}}(g)+\lambda Q_{\text{preference}}(g,c)\right].
$$&lt;/p&gt;
&lt;p&gt;如果语义模型输出场景点 $\vec x_i\in\mathbb R^3$ 属于目标或部件的概率 $p_i\in[0,1]$，可计算候选闭合区 $\mathcal C(g)$ 的语义一致性：&lt;/p&gt;
&lt;p&gt;$$
Q_{\text{target}}(g)=
\frac{1}{|\mathcal C(g)|}
\sum_{x_i\in\mathcal C(g)}p_i.
$$&lt;/p&gt;
&lt;p&gt;接触点概率与闭合区平均概率共同使用，可以区分“夹爪中心位于目标附近”和“两侧接触确实落在目标上”。&lt;/p&gt;
&lt;h2&gt;条件抓取的方法路线（Conditional Grasping Map）&lt;/h2&gt;
&lt;p&gt;| 条件层级                                      | 模型输出                   | 进入抓取检测器的方式           | 代表方法                                |
| :-------------------------------------------- | :------------------------- | :----------------------------- | :-------------------------------------- |
| 目标条件（Target-Conditioned）                | 实例掩码或目标查询         | 裁剪目标点云、调制点特征       | REGRAD、TARGO-Net                       |
| 部件条件（Part-Conditioned）                  | 部件掩码或可供性场         | 限制接触区域                   | Fine-Grained Grasp Detection            |
| 任务条件（Task-Conditioned）                  | 任务兼容分数或姿态偏好     | 与物理质量联合排序             | Task-Oriented Grasp Detection、GraspGPT |
| 语言条件（Language-Conditioned）              | 文本—几何相似度            | 目标检索、交叉注意力或查询选择 | Language-Driven Grasp Detection、OVGNet |
| 物理属性条件（Physical-Property-Conditioned） | 材料、质量、脆弱性和力限制 | 禁区、安全余量与夹紧力约束     | PhyGrasp                                |&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;条件层级（Conditioning Levels）&lt;/h2&gt;
&lt;h3&gt;目标条件（Target-Conditioned）&lt;/h3&gt;
&lt;p&gt;目标条件抓取要求从杂乱场景中抓取指定对象，而不是任意清空。REGRAD 将对象关系、目标身份与安全抓取共同标注 [1]。目标分割、对象识别和姿态生成由此成为相互依赖的阶段。&lt;/p&gt;
&lt;h3&gt;部件条件（Part-Conditioned）&lt;/h3&gt;
&lt;p&gt;任务经常要求抓把手、边缘、瓶身或工具末端。部件可供性（Part Affordance）表示某个部件支持何种动作。细粒度部件抓取方法将语言或部件标签映射到三维区域，再在区域内生成六自由度（Six Degrees of Freedom, 6-DoF）姿态 [5]。&lt;/p&gt;
&lt;h3&gt;任务条件（Task-Conditioned）&lt;/h3&gt;
&lt;p&gt;同一物体的稳定抓取不一定适合所有任务。倒水要保留杯口与手腕旋转空间，递交工具要暴露功能端，放置任务可能约束物体最终朝向。Task-Oriented Grasp Detection 将视觉可供性与隐式质量结合，使“好抓取”随任务改变 [4]。&lt;/p&gt;
&lt;h3&gt;物理属性条件（Physical-Property-Conditioned）&lt;/h3&gt;
&lt;p&gt;材料、质量、摩擦和脆弱性会改变接触位置与夹持力。PhyGrasp 使用三维几何、语言与物理属性描述选择部件级抓取 [12]。模型把这些属性转换为禁止接触区域、力限制或稳定性偏好，再参与候选过滤与排序。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;自然语言如何进入抓取系统（How Language Enters a Grasping System）&lt;/h2&gt;
&lt;p&gt;自然语言指令（Natural-Language Command）可以在不同阶段发挥作用：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;目标检索（Target Retrieval）：找到“红色杯子”；&lt;/li&gt;
&lt;li&gt;部件定位（Part Grounding）：找到“杯子的把手”；&lt;/li&gt;
&lt;li&gt;可供性推理（Affordance Reasoning）：判断“倒水时不要堵住杯口”；&lt;/li&gt;
&lt;li&gt;约束生成（Constraint Generation）：产生目标区域、禁区或姿态偏好；&lt;/li&gt;
&lt;li&gt;场景策略（Scene Strategy）：决定先移开哪个遮挡物。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;早期联合语言抓取网络直接将命令与图像特征融合，预测语言条件的平面抓取 [2]。Language-Driven Grasp Detection 使用大规模语言与视觉先验进行开放词汇平面抓取 [3]。若系统最终执行 6-DoF 抓取，二维目标区域还需要通过深度反投影为三维点，并在三维场景中检查接近路径。&lt;/p&gt;
&lt;h3&gt;语言特征如何与几何对齐&lt;/h3&gt;
&lt;p&gt;给定文本编码 $e_c\in\mathbb R^{d_e}$ 与像素或点特征 $f_i\in\mathbb R^{d_f}$，线性投影 $W_e\in\mathbb R^{d\times d_e}$、$W_f\in\mathbb R^{d\times d_f}$ 将二者映射到相同的 $d$ 维空间。目标注意力可以由归一化相似度产生：&lt;/p&gt;
&lt;p&gt;$$
\alpha_i=\frac{
\exp(\langle W_f f_i,W_e e_c\rangle/\tau)
}{
\sum_j\exp(\langle W_f f_j,W_e e_c\rangle/\tau)
}.
$$&lt;/p&gt;
&lt;p&gt;$\alpha_i\in[0,1]$ 是第 $i$ 个位置与指令的匹配权重，温度 $\tau&gt;0$ 控制分布尖锐程度。Transformer 方法让语言词元（Token）与图像或点云 Token 做交叉注意力（Cross-Attention），输出目标掩码、部件掩码或抓取查询。&lt;/p&gt;
&lt;p&gt;若输入是像素掩码，对像素 $(u,v)$ 和深度 $z$ 使用相机内参 $(f_x,f_y,c_x,c_y)$ 反投影：&lt;/p&gt;
&lt;p&gt;$$
\vec x(u,v)=
\begin{bmatrix}
(u-c_x)z/f_x\
(v-c_y)z/f_y\
z
\end{bmatrix}
\in\mathbb R^3.
$$&lt;/p&gt;
&lt;p&gt;每个三维点同时保留掩码概率 $p_i$，供后续硬裁剪或软特征调制使用。&lt;/p&gt;
&lt;p&gt;语义掩码有两种进入检测器的方式。硬裁剪只把 $p_i&gt;\eta$ 的点送入抓取网络，减少背景计算；软调制使用 $f_i&apos;=p_i f_i$，或把 $p_i$ 作为额外通道，使边界不确定性保留到抓取头。给定真值掩码与使用预测掩码的两组结果，分别测量姿态检测上限和完整语义接口的性能。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;交互式目标消歧（Interactive Grounding）&lt;/h2&gt;
&lt;p&gt;指令可能含糊，例如“拿那个杯子”对应多个实例。INVIGORATE 将视觉指代消解（Visual Grounding）、遮挡关系、提问与抓取动作组织为部分可观测决策过程（Partially Observable Markov Decision Process, POMDP）[6]。&lt;/p&gt;
&lt;p&gt;系统维护目标状态的信念分布（Belief State）$b_t(s)$。得到回答或新视觉观测 $o_{t+1}$ 后，按贝叶斯更新：&lt;/p&gt;
&lt;p&gt;$$
b_{t+1}(s)\propto
p(o_{t+1}\mid s,a_t)
\sum_{s&apos;}p(s\mid s&apos;,a_t)b_t(s&apos;).
$$&lt;/p&gt;
&lt;p&gt;“提问”与“抓取”都是动作：提问消耗时间但降低目标歧义，错误抓取具有更高代价。策略比较提问后的期望信息价值与直接执行效用，并记录目标后验、提问次数和错误对象抓取率。&lt;/p&gt;
&lt;p&gt;系统可以在目标后验分散或错误抓取代价较高时先提问，在目标明确时直接生成抓取。目标识别、阻挡判断、提问次数和物理执行构成四个可分别统计的阶段。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;从语言知识到任务抓取（From Language Knowledge to Task Grasps）&lt;/h2&gt;
&lt;p&gt;GraspGPT 利用大语言模型（Large Language Model, LLM）的语义知识，为未见对象和任务产生抓取先验 [7]。FoundationGrasp 进一步结合基础模型（Foundation Model）的语义与几何先验，研究可泛化任务抓取 [10]。&lt;/p&gt;
&lt;p&gt;这类系统通常包含两个层次：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;高层语义模型推断目标、部件和用途；&lt;/li&gt;
&lt;li&gt;低层几何模型生成接触稳定、无碰撞的平行夹爪姿态。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;高层模型输出掩码（Mask）、目标点、部件概率、正负区域或候选偏好；几何生成器再据此产生平行夹爪姿态，运动规划器负责碰撞和可达性验证。这个接口把语言推理结果转换成可查询的三维约束。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;对象中心多任务抓取（Object-Centric Multi-Task Grasping）&lt;/h2&gt;
&lt;p&gt;多任务掩码 Transformer（Multi-Task Masked Transformer, M2T2）从杂乱点云中预测对象中心接触掩码、抓取与放置姿态，并可接受目标或语言条件 [8]。它把抓取与放置视为相关低层技能，而不是只输出单次抓取。&lt;/p&gt;
&lt;p&gt;对象查询（Object Query）先与场景点特征交互，产生每个查询对应的对象/接触掩码；抓取头只在该查询聚合的点特征上解码姿态，放置头则预测物体在目标区域中的姿态。查询索引因此保持对象身份的一致性：目标条件从同一个查询读取掩码和抓取结果。训练时对预测查询与真值对象做二分图匹配（Bipartite Matching），再计算掩码、接触和姿态损失。&lt;/p&gt;
&lt;p&gt;对象中心表示（Object-Centric Representation）有利于保持目标身份，但依赖点云分辨率、实例结构和对象边界。小目标或严重遮挡会同时影响语义选择与姿态预测。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;开放词汇与三维语义场（Open-Vocabulary and 3D Semantic Fields）&lt;/h2&gt;
&lt;p&gt;开放词汇抓取（Open-Vocabulary Grasping）要求识别训练标签之外的对象或部件。OVGNet 统一视觉语言特征与抓取预测 [9]；GaussianGrasper 将语言语义写入三维高斯泼溅表示（3D Gaussian Splatting, 3DGS）[11]。&lt;/p&gt;
&lt;p&gt;一个三维高斯由中心 $\vec\mu_i\in\mathbb R^3$、协方差 $\Sigma_i\in\mathbb R^{3\times3}$、不透明度 $\alpha_i\in[0,1]$、颜色与语义特征 $f_i\in\mathbb R^d$ 描述。多视角图像优化后，语言查询与 $f_i$ 的相似度形成三维目标概率场。抓取检测器可从高斯场提取深度或占据，也可以把语义概率投影到传感器点云，然后在该几何上生成接触与检查碰撞。&lt;/p&gt;
&lt;p&gt;开放词汇能力通常来自大规模视觉语言预训练，三维抓取头则用深度、尺度、夹爪宽度和碰撞模型把“哪里是把手”转换成“哪些姿态可以夹住把手”。&lt;/p&gt;
&lt;p&gt;Open-Vocabulary Part-Based Grasping 将对象—部件提示、分割与六自由度抓取串联起来 [13]。模块化结构可以分别评价开放词汇定位、部件分割和姿态生成。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;场景策略与遮挡处理（Strategic Clearing under Occlusion）&lt;/h2&gt;
&lt;p&gt;当目标不可见或不可达时，系统先规划清理动作。ThinkGrasp 使用视觉语言模型（Vision-Language Model, VLM）判断应抓取目标的哪个部件，或先移走哪个遮挡物，再调用低层六自由度生成器 [14]。&lt;/p&gt;
&lt;p&gt;TARGO 则把目标遮挡程度变成可控基准变量，评价目标驱动抓取随可见性变化的性能 [15]。两者分别关注策略和测量：前者决定动作顺序，后者建立遮挡条件下的统一测试。&lt;/p&gt;
&lt;p&gt;场景策略使“抓取检测”扩展为多步决策。此时最终成功率同时受到语义推理、遮挡估计、每一步姿态检测和执行误差影响，需要保留阶段指标。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;语义到物理的接口（Semantic-to-Physical Interface）&lt;/h2&gt;
&lt;p&gt;语言结果可以转换为以下物理约束：&lt;/p&gt;
&lt;p&gt;| 语义要求         | 低层物理表示                 |
| :--------------- | :--------------------------- |
| “抓杯子的把手”   | 目标部件掩码与允许接触区域   |
| “不要碰易碎表面” | 禁止接触区域与安全余量       |
| “为了倒水”       | 手腕朝向、杯口净空和后续轨迹 |
| “拿最重的物体”   | 目标身份、质心与夹紧力要求   |
| “目标被挡住了”   | 遮挡关系与清理动作序列       |&lt;/p&gt;
&lt;p&gt;评测沿接口分解为：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;目标/部件定位是否正确；&lt;/li&gt;
&lt;li&gt;在正确定位条件下，可行姿态生成率是多少；&lt;/li&gt;
&lt;li&gt;候选是否满足碰撞、宽度与可达性；&lt;/li&gt;
&lt;li&gt;真实抓取是否稳定；&lt;/li&gt;
&lt;li&gt;最终任务是否完成。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;在候选级实现这些约束时，设预测接触点 $\vec c_1,\vec c_2\in\mathbb R^3$，夹爪扫掠体积为 $V(g)\subset\mathbb R^3$，允许接触区域和禁止接触区域分别为 $\mathcal R_{\text{allowed}},\mathcal R_{\text{forbidden}}\subset\mathbb R^3$：&lt;/p&gt;
&lt;p&gt;$$
\begin{aligned}
\vec c_1,\vec c_2 &amp;#x26;\in \mathcal R_{\text{allowed}},\
\operatorname{dist}(\vec c_1,\mathcal R_{\text{forbidden}})&amp;#x26;&gt;m,\
V(g)\cap\mathcal O_{\text{scene}}&amp;#x26;=\varnothing,
\end{aligned}
$$&lt;/p&gt;
&lt;p&gt;其中场景占据区域 $\mathcal O_{\text{scene}}\subset\mathbb R^3$，安全余量 $m\in\mathbb R_{&gt;0}$。概率掩码可以进一步计算候选与禁止区域的期望重叠。任务约束还可延伸到放置：把抓取后物体变换 ${}^{G}T_O\in SE(3)$ 与目标放置 ${}^{W}T_O^{\text{goal}}\in SE(3)$ 组合，检查该抓取是否允许末端到达目标朝向。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;参考文献（References）&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;H. Zhang et al., “REGRAD: A Large-Scale Relational Grasp Dataset for Safe and Object-Specific Robotic Grasping in Clutter,” &lt;em&gt;IEEE Robotics and Automation Letters&lt;/em&gt;, 2022. &lt;a href=&quot;https://doi.org/10.1109/LRA.2022.3142401&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Y. Chen, R. Xu, Y. Lin, and P. A. Vela, “A Joint Network for Grasp Detection Conditioned on Natural Language Commands,” &lt;em&gt;2021 IEEE International Conference on Robotics and Automation&lt;/em&gt;, 2021. &lt;a href=&quot;https://doi.org/10.1109/ICRA48506.2021.9561994&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;A. D. Vuong et al., “Language-Driven Grasp Detection,” &lt;em&gt;2024 IEEE/CVF Conference on Computer Vision and Pattern Recognition&lt;/em&gt;, 2024. &lt;a href=&quot;https://doi.org/10.1109/CVPR52733.2024.01695&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;W. Chen et al., “Learning 6-DoF Task-Oriented Grasp Detection via Implicit Estimation and Visual Affordance,” &lt;em&gt;2022 IEEE/RSJ International Conference on Intelligent Robots and Systems&lt;/em&gt;, 2022. &lt;a href=&quot;https://doi.org/10.1109/IROS47612.2022.9981900&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Y. Song et al., “Learning 6-DoF Fine-Grained Grasp Detection Based on Part Affordance Grounding,” &lt;em&gt;IEEE Transactions on Automation Science and Engineering&lt;/em&gt;, 2025. &lt;a href=&quot;https://doi.org/10.1109/TASE.2025.3566461&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;H. Zhang et al., “INVIGORATE: Interactive Visual Grounding and Grasping in Clutter,” &lt;em&gt;Robotics: Science and Systems XVII&lt;/em&gt;, 2021. &lt;a href=&quot;https://doi.org/10.15607/RSS.2021.XVII.020&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;C. Tang et al., “GraspGPT: Leveraging Semantic Knowledge from a Large Language Model for Task-Oriented Grasping,” &lt;em&gt;IEEE Robotics and Automation Letters&lt;/em&gt;, 2023. &lt;a href=&quot;https://doi.org/10.1109/LRA.2023.3320012&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;W. Yuan, A. Murali, A. Mousavian, and D. Fox, “M2T2: Multi-Task Masked Transformer for Object-Centric Pick and Place,” &lt;em&gt;Proceedings of the 7th Conference on Robot Learning&lt;/em&gt;, 2023. &lt;a href=&quot;https://proceedings.mlr.press/v229/yuan23a.html&quot;&gt;PMLR&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;M. Li et al., “OVGNet: A Unified Visual-Linguistic Framework for Open-Vocabulary Robotic Grasping,” &lt;em&gt;2024 IEEE/RSJ International Conference on Intelligent Robots and Systems&lt;/em&gt;, 2024. &lt;a href=&quot;https://doi.org/10.1109/IROS58592.2024.10802654&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;C. Tang et al., “FoundationGrasp: Generalizable Task-Oriented Grasping with Foundation Models,” &lt;em&gt;IEEE Transactions on Automation Science and Engineering&lt;/em&gt;, 2025. &lt;a href=&quot;https://doi.org/10.1109/TASE.2025.3542418&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Y. Zheng et al., “GaussianGrasper: 3D Language Gaussian Splatting for Open-Vocabulary Robotic Grasping,” &lt;em&gt;IEEE Robotics and Automation Letters&lt;/em&gt;, 2024. &lt;a href=&quot;https://doi.org/10.1109/LRA.2024.3432348&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;D. Guo et al., “PhyGrasp: Generalizing Robotic Grasping with Physics-Informed Large Multimodal Models,” &lt;em&gt;2025 IEEE/RSJ International Conference on Intelligent Robots and Systems&lt;/em&gt;, 2025. &lt;a href=&quot;https://doi.org/10.1109/IROS60139.2025.11246481&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;T. van Oort et al., “Open-Vocabulary Part-Based Grasping,” &lt;em&gt;arXiv preprint arXiv:2406.05951&lt;/em&gt;, 2024. &lt;a href=&quot;https://arxiv.org/abs/2406.05951&quot;&gt;arXiv&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Y. Qian et al., “ThinkGrasp: A Vision-Language System for Strategic Part Grasping in Clutter,” &lt;em&gt;Proceedings of the 8th Conference on Robot Learning&lt;/em&gt;, 2024. &lt;a href=&quot;https://proceedings.mlr.press/v270/qian25c.html&quot;&gt;PMLR&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Y. Xia et al., “TARGO and TARGO-Net: Benchmarking Target-Driven Object Grasping under Occlusions,” &lt;em&gt;International Journal of Computer Vision&lt;/em&gt;, 2026. &lt;a href=&quot;https://doi.org/10.1007/s11263-025-02716-9&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;</content:encoded><h:img src="https://pic.hana0721.top/75863098_p0_master1200.8aduokw8y2.webp"/><enclosure url="https://pic.hana0721.top/75863098_p0_master1200.8aduokw8y2.webp"/></item><item><title>Robotic Grasp Detection (8): 基于扩散模型与流模型的生成式抓取检测</title><link>https://agusexp25.top/blog/robotic-grasp-detection-8</link><guid isPermaLink="true">https://agusexp25.top/blog/robotic-grasp-detection-8</guid><description>从 VAE 到潜空间扩散、SE(3) 代价场、约束引导和 MeanFlow，解释生成式抓取如何表示多解姿态，以及覆盖率、质量和推理成本的关系。</description><pubDate>Fri, 14 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;&lt;/p&gt;
&lt;h2&gt;为什么抓取是多解问题（Why Grasping Is Multimodal）&lt;/h2&gt;
&lt;p&gt;一个杯子可以抓杯身、杯沿或把手；同一接触位置也可能存在多个接近方向。若训练数据中包含多种正确抓取，使用均方误差（Mean Squared Error, MSE）回归单一姿态，模型会把多个模式压缩到一个平均输出，而该输出可能落在低质量区域。&lt;/p&gt;
&lt;p&gt;设观测点云为 $P={\vec p_i}_{i=1}^{N}$，其中 $\vec p_i\in\mathbb R^3$；平行夹爪抓取写为：&lt;/p&gt;
&lt;p&gt;$$
g=(R,\vec t,w),
\qquad
R\in SO(3),\quad
\vec t\in\mathbb R^3,\quad
w\in\mathbb R_{\geq0},
$$&lt;/p&gt;
&lt;p&gt;其中 $R$、$\vec t$ 和 $w$ 分别是夹爪旋转、参考点位置与开口宽度。生成式抓取检测（Generative Grasp Detection）学习条件分布：&lt;/p&gt;
&lt;p&gt;$$
p(g\mid P,c),
$$&lt;/p&gt;
&lt;p&gt;其中 $c$ 可以是目标、任务或夹爪条件。推理时从分布中采样多个 $g$，再进行质量评价、碰撞检查、对称感知非极大值抑制（Symmetry-Aware Non-Maximum Suppression, NMS）和机器人可达性过滤。&lt;/p&gt;
&lt;p&gt;生成器的目标是用有限候选覆盖多个高质量模式。多样性（Diversity）、有效率（Validity）、覆盖率（Coverage）与推理成本因此需要放在同一候选预算下分析。&lt;/p&gt;
&lt;h2&gt;生成式方法的技术路线（Generative Method Map）&lt;/h2&gt;
&lt;p&gt;| 方法路线                           | 训练对象                 | 推理方式             | 代表方法                        | 主要特点               |
| :--------------------------------- | :----------------------- | :------------------- | :------------------------------ | :--------------------- |
| 变分生成（Variational Generation） | 条件潜变量分布           | 一次解码一个潜变量   | 6-DOF GraspNet                  | 采样速度快             |
| 潜空间扩散（Latent Diffusion）     | 抓取潜向量上的去噪过程   | 多步潜变量去噪后解码 | GraspLDM                        | 用自编码器约束姿态结构 |
| $SE(3)$ 扩散场（Diffusion Field）  | 姿态分布的分数或能量     | 采样或梯度优化       | SE(3)-DiffusionFields           | 可与轨迹代价联合优化   |
| 约束引导（Constraint Guidance）    | 生成器与约束分类器       | 在去噪过程中修改分数 | Constrained Generative Sampling | 可注入任务和碰撞约束   |
| 流匹配（Flow Matching）            | 从先验到抓取分布的速度场 | 积分常微分方程       | GraspMeanFlow                   | 减少网络评估步数       |&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;变分抓取生成（Variational Grasp Generation）&lt;/h2&gt;
&lt;p&gt;6-DOF GraspNet 使用变分自编码器（Variational Autoencoder, VAE）学习物体点云条件下的六自由度（Six Degrees of Freedom, 6-DoF）抓取 [1]。训练时，编码器接收点云 $P$ 与真值抓取 $g$，输出潜变量分布 $q_\phi(z\mid g,P)$，其中 $z\in\mathbb R^d$；解码器根据 $z$ 和点云特征重建抓取 $\hat g$。推理时不再需要真值 $g$，而是从先验 $p(z)=\mathcal N(0,I_d)$ 采样。&lt;/p&gt;
&lt;p&gt;典型证据下界（Evidence Lower Bound, ELBO）包含重建项和 Kullback–Leibler 散度（Kullback–Leibler Divergence, KL Divergence）：&lt;/p&gt;
&lt;p&gt;$$
\mathcal{L}&lt;em&gt;{\text{VAE}}
=\mathbb{E}&lt;/em&gt;{q_\phi(z\mid g,P)}[-\log p_\theta(g\mid z,P)]
+\beta D_{\mathrm{KL}}(q_\phi(z\mid g,P)|p(z)).
$$&lt;/p&gt;
&lt;p&gt;第一项训练解码器重建抓取，第二项让后验接近推理时使用的标准高斯先验；$\beta\geq0$ 控制两者权重。采样不同 $z$ 可以产生多个姿态。实际重建损失通常分别计算平移、旋转与开口宽度，并对平行夹爪的 $180^\circ$ 对称姿态取较小旋转误差。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;扩散模型的基本机制（Diffusion Model Basics）&lt;/h2&gt;
&lt;p&gt;扩散模型（Diffusion Model）先对数据逐步加噪，再学习逆向去噪 [13]。先把一个抓取编码为欧氏向量 $x_0\in\mathbb R^D$；$D$ 取决于旋转表示，例如平移、六维旋转表示和宽度拼接后得到 $D=10$。前向过程可写成：&lt;/p&gt;
&lt;p&gt;$$
q(x_t\mid x_{t-1})
=\mathcal{N}(\sqrt{1-\beta_t}x_{t-1},\beta_t I_D).
$$&lt;/p&gt;
&lt;p&gt;其中 $t\in{1,\ldots,T}$ 是噪声步，$\beta_t\in(0,1)$ 是噪声调度，$I_D\in\mathbb R^{D\times D}$ 是单位矩阵。网络可以预测噪声、分数函数（Score Function）或去噪样本，再从随机噪声迭代生成抓取。&lt;/p&gt;
&lt;p&gt;把每步噪声记为 $\alpha_t=1-\beta_t$、$\bar\alpha_t=\prod_{s=1}^{t}\alpha_s$，就可以一步采样任意噪声级：&lt;/p&gt;
&lt;p&gt;$$
x_t=\sqrt{\bar\alpha_t}x_0
+\sqrt{1-\bar\alpha_t},\epsilon,
\qquad \epsilon\sim\mathcal N(0,I_D).
$$&lt;/p&gt;
&lt;p&gt;噪声预测网络 $\epsilon_\theta(x_t,t,P,c)$ 的基本训练损失是：&lt;/p&gt;
&lt;p&gt;$$
\mathcal L_{\text{diff}}
=\mathbb E_{x_0,t,\epsilon}
\left[
\lVert\epsilon-\epsilon_\theta(x_t,t,P,c)\rVert_2^2
\right].
$$&lt;/p&gt;
&lt;p&gt;其中噪声 $\epsilon\in\mathbb R^D$，去噪网络还接收点云特征和条件 $c$。训练时随机抽取 $t$，一次前向传播学习一个噪声层级；推理时从 $x_T\sim\mathcal N(0,I_D)$ 开始，按调度器（Scheduler）反复计算 $x_{t-1}$。以去噪扩散概率模型（Denoising Diffusion Probabilistic Model, DDPM）为例，其均值更新为：&lt;/p&gt;
&lt;p&gt;$$
\mu_\theta(x_t,t)=\frac{1}{\sqrt{\alpha_t}}
\left(
x_t-\frac{\beta_t}{\sqrt{1-\bar\alpha_t}}
\epsilon_\theta(x_t,t,P,c)
\right),
$$&lt;/p&gt;
&lt;p&gt;再按后验方差加入噪声。若一次批量生成 $K$ 个候选，去噪网络需要处理 $K\times T$ 个“候选—时间步”组合；批量并行可以缩短墙钟时间。&lt;/p&gt;
&lt;p&gt;抓取姿态位于三维特殊欧氏群（Special Euclidean Group, $SE(3)$）。旋转表示可以使用四元数（Quaternion）、旋转矩阵、李代数（Lie Algebra），或直接在流形（Manifold）上定义噪声与更新；表示方式决定归一化、对称性处理和插值路径。&lt;/p&gt;
&lt;p&gt;若使用李代数，把局部姿态增量写成 $\xi=(\vec v,\vec\omega)\in\mathbb R^6\simeq\mathfrak{se}(3)$，其中 $\vec v,\vec\omega\in\mathbb R^3$ 分别表示平移与旋转增量，再通过指数映射更新齐次变换 $T_t\in SE(3)$：&lt;/p&gt;
&lt;p&gt;$$
T_{t-1}=T_t\exp(\widehat{\Delta\xi_t}).
$$&lt;/p&gt;
&lt;p&gt;这样旋转始终留在 $SO(3)$ 上。平行夹爪具有 $180^\circ$ 等价旋转，训练时可把标签映射到统一代表，或在损失中对等价集合取最小值。平移、旋转和夹爪宽度使用不同单位，进入网络前通常分别标准化。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;潜空间扩散（Latent Diffusion）&lt;/h2&gt;
&lt;p&gt;GraspLDM 先把六自由度抓取编码到潜空间，再执行扩散生成 [2]。潜空间扩散（Latent Diffusion）减少高维迭代成本，并让解码器学习姿态结构。&lt;/p&gt;
&lt;p&gt;训练通常分两步。第一步训练姿态自编码器：&lt;/p&gt;
&lt;p&gt;$$
z=E_\phi(g,P),\qquad
\hat g=D_\psi(z,P),
$$&lt;/p&gt;
&lt;p&gt;并用平移、对称感知旋转、宽度和有效性损失重建抓取。第二步冻结或联合微调编码器，在 $z$ 上训练条件扩散。推理时先采样 $z_T$、去噪得到 $z_0$，再用 $D_\psi$ 解码成姿态；解码器末端将旋转投影到 $SO(3)$，将开口截断到夹爪范围，随后调用场景碰撞检查。&lt;/p&gt;
&lt;p&gt;这种分解包含两个连续接口：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;潜空间是否保留所有有效抓取模式；&lt;/li&gt;
&lt;li&gt;扩散模型是否覆盖潜空间中的高质量区域。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;因此可以先独立测量自编码器的重建覆盖率，再测量扩散模型在固定潜空间中的采样覆盖率。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;把抓取分布变成可优化代价（Diffusion as an Optimizable Cost Field）&lt;/h2&gt;
&lt;p&gt;SE(3)-DiffusionFields 将扩散分数转化为平滑代价函数，并将抓取与运动联合优化 [3]。这使姿态不只由生成器采样，还能与轨迹、碰撞或机器人状态共同调整。&lt;/p&gt;
&lt;p&gt;分数网络近似：&lt;/p&gt;
&lt;p&gt;$$
s_\theta(g,t,P)\approx\nabla_g\log p_t(g\mid P).
$$&lt;/p&gt;
&lt;p&gt;其中 $s_\theta$ 输出位于姿态切空间中的局部修正方向。在低噪声层级，$-\log p_t(g\mid P)$ 可以作为平滑抓取代价。联合优化时，抓取位姿 $g$ 与机器人轨迹控制点 $\tau$ 交替或同时更新；每一步把旋转增量映射回流形，并用多个初始抓取覆盖不同模式。&lt;/p&gt;
&lt;p&gt;可以把最终目标写成：&lt;/p&gt;
&lt;p&gt;$$
J(g,\tau)
=J_{\text{grasp}}(g)
+\lambda_{\text{motion}}J_{\text{motion}}(\tau)
+\lambda_{\text{collision}}J_{\text{collision}}(g,\tau),
$$&lt;/p&gt;
&lt;p&gt;其中 $J_{\text{grasp}}$ 是扩散场给出的抓取代价，$J_{\text{motion}}$ 是轨迹平滑与关节运动代价，$J_{\text{collision}}$ 是夹爪和机械臂碰撞代价，$\lambda_{\text{motion}},\lambda_{\text{collision}}\geq0$。这样，姿态和运动可达性在同一个优化问题中更新。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;约束引导与后验修正（Constraint Guidance and Posterior Refinement）&lt;/h2&gt;
&lt;p&gt;通用生成器从训练数据学习抓取分布，部署条件还包括接近方向、无碰撞、目标部件和机器人可达性。&lt;/p&gt;
&lt;p&gt;Constrained Generative Sampling 在生成过程中加入约束，使候选向满足条件的区域移动 [4]。Refining 6-DoF Grasps with Context-Specific Classifiers 使用场景特定分类器梯度修正已有候选 [5]。统一形式可以写成：&lt;/p&gt;
&lt;p&gt;$$
\nabla_g \log p(g\mid P,c)
=\nabla_g \log p(g\mid P)
+\lambda\nabla_g \log p(c\mid g,P).
$$&lt;/p&gt;
&lt;p&gt;第二项是引导（Guidance），可以表达任务、碰撞或接触偏好。引导权重 $\lambda$ 控制条件服从程度与样本多样性。&lt;/p&gt;
&lt;p&gt;实现中常在每个去噪步修改分数：&lt;/p&gt;
&lt;p&gt;$$
\tilde s(g_t)=s_\theta(g_t,t,P)
+\lambda_t\nabla_{g_t}\log p_\varphi(c\mid g_t,P).
$$&lt;/p&gt;
&lt;p&gt;$\lambda_t$ 可以随噪声降低而增大：早期建立全局模式，后期满足精细约束。碰撞是非光滑二值函数，训练和引导阶段常用符号距离场（Signed Distance Field, SDF）、穿透深度或可微分占据网络构造软代价；最终再用真实夹爪网格执行离散碰撞检查。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;质量—多样性采样（Quality–Diversity Sampling）&lt;/h2&gt;
&lt;p&gt;只最大化质量容易反复得到同一抓取；只最大化多样性会保留大量低质量候选。质量—多样性（Quality–Diversity, QD）方法同时维护不同特征区域中的高质量解。&lt;/p&gt;
&lt;p&gt;Speeding up 6-DoF Grasp Sampling with Quality-Diversity 将姿态覆盖和质量共同纳入搜索 [6]，QDGset 则将这套思想扩展为大规模抓取数据生成 [7]。&lt;/p&gt;
&lt;p&gt;QD 的关键是行为描述符（Behavior Descriptor）如何定义，例如接近方向、接触区域、夹爪宽度或物体部件。描述符不同，“多样性”的物理含义也不同。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;任务与具身条件扩散（Task- and Embodiment-Conditioned Diffusion）&lt;/h2&gt;
&lt;p&gt;HGDiffuser 使用人体接触和手腕线索引导任务导向抓取 [8]。这里的条件不再只是物体几何，而是“为了某个用途，哪里应该被保留或接触”。&lt;/p&gt;
&lt;p&gt;GraspGen-X 将夹爪扫掠体积和几何作为条件，研究跨平行夹爪生成 [10]。同一物体和姿态在不同夹爪条件下会得到不同分数，因为最大开口、指尖厚度和闭合扫掠体积共同决定可行性。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;更少步数的流模型（Few-Step Flow Models）&lt;/h2&gt;
&lt;p&gt;扩散生成通常需要多次网络评估。流匹配（Flow Matching）学习一个连续速度场，将简单先验分布沿常微分方程（Ordinary Differential Equation, ODE）运输到数据分布：&lt;/p&gt;
&lt;p&gt;设 $g_t$ 是 $SE(3)$ 上的时间参数化抓取，$v_\theta$ 输出对应切空间速度：&lt;/p&gt;
&lt;p&gt;$$
\frac{dg_t}{dt}=v_\theta(g_t,t,P,c).
$$&lt;/p&gt;
&lt;p&gt;GraspMeanFlow 使用 $SE(3)$ 等变 MeanFlow 实现少步六自由度生成 [11]。少步推理降低机器人在线循环中的网络调用次数，固定候选预算下的覆盖率可以衡量加速后的模式保留情况。&lt;/p&gt;
&lt;p&gt;在欧氏空间的直线路径中，可从噪声 $x_0\in\mathbb R^D$ 与数据 $x_1\in\mathbb R^D$ 构造：&lt;/p&gt;
&lt;p&gt;$$
x_t=(1-t)x_0+tx_1,
\qquad
u_t=x_1-x_0,
$$&lt;/p&gt;
&lt;p&gt;并训练 $v_\theta(x_t,t,P,c)$ 拟合目标速度 $u_t\in\mathbb R^D$。推理通过数值积分 ODE 获得样本；一步或少步方法进一步学习跨时间区间的平均速度。对 $SE(3)$，直线插值替换成平移插值与旋转测地线，速度位于切空间。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;生成式抓取应如何评价（Evaluating Generative Grasps）&lt;/h2&gt;
&lt;p&gt;生成式方法的评测以固定候选预算和推理时间为基础，主要指标如下：&lt;/p&gt;
&lt;p&gt;| 指标                                | 含义                               |
| :---------------------------------- | :--------------------------------- |
| 有效率（Validity）                  | 样本满足接触与基本几何约束的比例   |
| 覆盖率（Coverage）                  | 标注或可执行模式中有多少被候选覆盖 |
| 多样性（Diversity）                 | 候选在接近方向、接触和部件上的差异 |
| 碰撞率（Collision Rate）            | 候选与物体外部、桌面或场景碰撞比例 |
| 条件一致性（Condition Consistency） | 是否符合目标、任务或夹爪条件       |
| 校准（Calibration）                 | 模型分数是否对应真实成功概率       |
| 推理成本（Inference Cost）          | 固定候选数所需时间与网络调用次数   |
| 物理成功（Physical Success）        | 经规划后真实执行的结果             |&lt;/p&gt;
&lt;p&gt;近期 GraspGen、Equivariant Volumetric Grasping 和 GraspMeanFlow 分别探索生成器内训练、等变体素分布和少步流 [9,11,12]。这些方向分别改变训练数据进入生成器的方式、三维表示和采样步数。&lt;/p&gt;
&lt;p&gt;比较生成器时，固定候选数 $K$、网络评估次数、碰撞器、重排器和最终 top-$k$。同时报告过滤前后的有效率与覆盖率，可以分辨改进来自生成分布还是后处理。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;参考文献（References）&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;A. Mousavian, C. Eppner, and D. Fox, “6-DOF GraspNet: Variational Grasp Generation for Object Manipulation,” &lt;em&gt;2019 IEEE/CVF International Conference on Computer Vision&lt;/em&gt;, 2019. &lt;a href=&quot;https://doi.org/10.1109/ICCV.2019.00299&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;K. R. Barad et al., “GraspLDM: Generative 6-DoF Grasp Synthesis Using Latent Diffusion Models,” &lt;em&gt;IEEE Access&lt;/em&gt;, 2024. &lt;a href=&quot;https://doi.org/10.1109/ACCESS.2024.3492118&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;J. Urain, N. Funk, J. Peters, and G. Chalvatzaki, “SE(3)-DiffusionFields: Learning Smooth Cost Functions for Joint Grasp and Motion Optimization through Diffusion,” &lt;em&gt;2023 IEEE International Conference on Robotics and Automation&lt;/em&gt;, 2023. &lt;a href=&quot;https://doi.org/10.1109/ICRA48891.2023.10161569&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;J. Lundell et al., “Constrained Generative Sampling of 6-DoF Grasps,” &lt;em&gt;2023 IEEE/RSJ International Conference on Intelligent Robots and Systems&lt;/em&gt;, 2023. &lt;a href=&quot;https://doi.org/10.1109/IROS55552.2023.10341344&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;T. Taunyazov et al., “Refining 6-DoF Grasps with Context-Specific Classifiers,” &lt;em&gt;2023 IEEE/RSJ International Conference on Intelligent Robots and Systems&lt;/em&gt;, 2023. &lt;a href=&quot;https://doi.org/10.1109/IROS55552.2023.10341671&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;J. Huber et al., “Speeding up 6-DoF Grasp Sampling with Quality-Diversity,” &lt;em&gt;2024 IEEE/RSJ International Conference on Intelligent Robots and Systems&lt;/em&gt;, 2024. &lt;a href=&quot;https://doi.org/10.1109/IROS58592.2024.10801391&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;J. Huber et al., “QDGset: A Large Scale Grasping Dataset Generated with Quality-Diversity,” &lt;em&gt;2025 IEEE International Conference on Robotics and Automation&lt;/em&gt;, 2025. &lt;a href=&quot;https://doi.org/10.1109/ICRA55743.2025.11127427&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;D. Huang, W. Dong, C. Tang, and H. Zhang, “HGDiffuser: Efficient Task-Oriented Grasp Generation via Human-Guided Grasp Diffusion Models,” &lt;em&gt;2025 IEEE/RSJ International Conference on Intelligent Robots and Systems&lt;/em&gt;, 2025. &lt;a href=&quot;https://doi.org/10.1109/IROS60139.2025.11247551&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;A. Murali et al., “GraspGen: A Diffusion-Based Framework for 6-DOF Grasping with On-Generator Training,” &lt;em&gt;arXiv preprint arXiv:2507.13097&lt;/em&gt;, 2025. &lt;a href=&quot;https://arxiv.org/abs/2507.13097&quot;&gt;arXiv&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;B. Han et al., “GraspGen-X: Cross-Embodiment 6-DOF Diffusion-Based Grasping,” &lt;em&gt;arXiv preprint arXiv:2606.00998&lt;/em&gt;, 2026. &lt;a href=&quot;https://arxiv.org/abs/2606.00998&quot;&gt;arXiv&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;J. Kwon et al., “GraspMeanFlow: SE(3)-Equivariant MeanFlow for Few-Step 6-DoF Grasp Generation,” &lt;em&gt;arXiv preprint arXiv:2608.03295&lt;/em&gt;, 2026. &lt;a href=&quot;https://arxiv.org/abs/2608.03295&quot;&gt;arXiv&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;P. Song, Y. Hu, P. Li, and R. Detry, “Equivariant Volumetric Grasping,” &lt;em&gt;arXiv preprint arXiv:2507.18847&lt;/em&gt;, 2025. &lt;a href=&quot;https://arxiv.org/abs/2507.18847&quot;&gt;arXiv&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;J. Ho, A. Jain, and P. Abbeel, “Denoising Diffusion Probabilistic Models,” &lt;em&gt;Advances in Neural Information Processing Systems 33&lt;/em&gt;, 2020. &lt;a href=&quot;https://arxiv.org/abs/2006.11239&quot;&gt;arXiv&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;</content:encoded><h:img src="https://pic.hana0721.top/74502138_p0_master1200.7i0z6ufn7r.webp"/><enclosure url="https://pic.hana0721.top/74502138_p0_master1200.7i0z6ufn7r.webp"/></item><item><title>Robotic Grasp Detection (7): 不完整几何与主动感知</title><link>https://agusexp25.top/blog/robotic-grasp-detection-7</link><guid isPermaLink="true">https://agusexp25.top/blog/robotic-grasp-detection-7</guid><description>分析单视角点云缺失、形状补全、隐式重建、多视角融合、透明物体深度失效与主动视角选择，并区分推断几何和获取新观测。</description><pubDate>Fri, 14 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;&lt;/p&gt;
&lt;h2&gt;抓取需要接触不可见区域（Grasping Requires Hidden Contact Geometry）&lt;/h2&gt;
&lt;p&gt;单视角红绿蓝—深度观测（Red–Green–Blue and Depth, RGB-D）只测到朝向相机的表面。平行夹爪（Parallel-Jaw Gripper）的两个夹指需要在物体两侧形成接触，其中一侧可能被自遮挡（Self-Occlusion）或其他物体遮挡（Inter-Object Occlusion）。因此，抓取检测器面对的输入不是完整物体，而是带有系统性缺失的几何观测。&lt;/p&gt;
&lt;p&gt;设真实表面为 $S\subset\mathbb R^3$，观测点云为 $P_{\text{obs}}\subset\mathbb R^3$，则单视角观测可以写成：&lt;/p&gt;
&lt;p&gt;$$
P_{\text{obs}} \subset S.
$$&lt;/p&gt;
&lt;p&gt;缺失几何不是普通随机噪声。它与视角、材质、遮挡关系和传感器原理相关：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;背面因为视线不可达而缺失；&lt;/li&gt;
&lt;li&gt;透明或反光表面因为深度测量失效而缺失；&lt;/li&gt;
&lt;li&gt;薄结构和远距离小物体因分辨率不足而稀疏；&lt;/li&gt;
&lt;li&gt;杂乱场景中的接触区域可能完全不可见。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;处理这类输入有两条路线：在固定观测下推断隐藏几何，或者移动传感器获取新的观测。前者对应形状补全和隐式重建，后者对应多视角融合和主动感知。&lt;/p&gt;
&lt;h2&gt;方法路线总览（Overview of Method Families）&lt;/h2&gt;
&lt;p&gt;下表先给出各类方法的输入、输出和典型抓取接口。后文再解释每种表示如何训练，以及它怎样进入抓取候选生成和排序。&lt;/p&gt;
&lt;p&gt;| 方法路线                                | 主要输入               | 主要输出                | 典型代表                                       | 抓取接口                          |
| :-------------------------------------- | :--------------------- | :---------------------- | :--------------------------------------------- | :-------------------------------- |
| 点云补全（Point Completion）            | 单视角点云             | 补全点集或完整点表示    | Beyond Top-Grasps、CompletePoints、PCF-Grasp   | 在补全几何上生成或评分 6-DoF 抓取 |
| 隐式联合重建（Implicit Reconstruction） | RGB-D / 物体裁剪       | Occupancy、SDF 或抓取场 | CenterGrasp、Local Occupancy-Enhanced Grasping | 查询局部几何并解码抓取            |
| 神经渲染（Neural Rendering）            | 多视角 RGB / RGB-D     | 辐射场、表面和三维特征  | GraspNeRF、Any-View                            | 从三维表示生成或优化抓取          |
| 主动视角规划（Active View Planning）    | 当前观测与候选视角     | 下一相机位姿和更新观测  | VISO-Grasp、Cross-View Fusion                  | 以抓取收益选择下一视角            |
| 不确定性传播（Uncertainty Propagation） | 多个几何假设或模型预测 | 抓取质量分布和碰撞概率  | 采样式补全、网络集成                           | 对候选执行风险感知排序            |&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;场景与点云补全（Scene and Point-Cloud Completion）&lt;/h2&gt;
&lt;p&gt;形状补全（Shape Completion）学习条件分布：&lt;/p&gt;
&lt;p&gt;$$
p(S_{\text{hidden}}\mid P_{\text{obs}}),
\qquad S_{\text{hidden}}\subset\mathbb R^3.
$$&lt;/p&gt;
&lt;p&gt;实际系统通常先输出一个确定性补全结果 $\hat S$，再把它送入抓取检测器。Beyond Top-Grasps Through Scene Completion 使用场景补全支持非顶抓姿态 [1]；CompletePoints 通过模拟完整点表示改善单视角六自由度（Six Degrees of Freedom, 6-DoF）检测 [2]。&lt;/p&gt;
&lt;p&gt;补全表示决定了训练目标和后端如何查询几何，常见形式有点集、占据场和符号距离场。&lt;/p&gt;
&lt;p&gt;**点集补全（Point-Set Completion）**直接预测点集 $\hat P\subset\mathbb R^3$。给定完整点集 $P^*\subset\mathbb R^3$，常用双向倒角距离（Chamfer Distance, CD）为：&lt;/p&gt;
&lt;p&gt;$$
\mathcal L_{\text{CD}}=
\frac{1}{|\hat P|}\sum_{x\in\hat P}\min_{y\in P^&lt;em&gt;}\lVert x-y\rVert_2^2
+\frac{1}{|P^&lt;/em&gt;|}\sum_{y\in P^*}\min_{x\in\hat P}\lVert y-x\rVert_2^2.
$$&lt;/p&gt;
&lt;p&gt;第一项让预测点靠近真实表面，第二项让预测点覆盖真实点集。训练时，网络编码 $P_{\text{obs}}$，解码器逐步生成缺失点或完整点集；推理时，补全点与观测点合并，再进入法线估计、候选生成和碰撞检测。CD 只比较点到点的距离，因此工程实现通常还会关注法线、薄结构和夹爪闭合区域的局部几何。&lt;/p&gt;
&lt;p&gt;**占据场（Occupancy Field）**对查询点 $x\in\mathbb R^3$ 和观测编码 $z\in\mathbb R^d$ 输出占据概率 $o_\theta(x,z)\in[0,1]$。训练样本由空间查询点和内外标签组成，二元交叉熵（Binary Cross-Entropy, BCE）可以写成：&lt;/p&gt;
&lt;p&gt;$$
\mathcal L_{\text{occ}}
=-\frac{1}{K}\sum_{k=1}^{K}
\left[y_k\log o_\theta(x_k,z)
+(1-y_k)\log(1-o_\theta(x_k,z))\right],
$$&lt;/p&gt;
&lt;p&gt;其中 $K$ 是查询点数量，$x_k\in\mathbb R^3$，$y_k\in{0,1}$ 表示该点位于物体内部还是外部。推理时，在三维网格上查询 $o_\theta$，再用阈值提取表面；在接触区域直接查询占据值，则可以判断夹爪指尖或闭合通道是否进入物体内部。训练查询点不能全部均匀采样，因为大多数点会远离表面，通常还要加入表面附近的扰动点。**截断符号距离场（Truncated Signed Distance Field, TSDF）**则为每个查询点提供到表面的有符号距离，适合碰撞检查和梯度优化。&lt;/p&gt;
&lt;p&gt;点集补全的后端处理通常可以分成四步：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;将观测点与补全点变换到同一坐标系；&lt;/li&gt;
&lt;li&gt;从表面法线、局部邻域或隐式场查询中生成抓取候选；&lt;/li&gt;
&lt;li&gt;在夹爪闭合区域和接近通道中执行碰撞检查；&lt;/li&gt;
&lt;li&gt;用抓取质量、碰撞结果和机器人可达性对候选排序。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;PCF-Grasp 将点云补全结果转换为几何特征，作为 6-DoF 抓取检测器的辅助输入，而不是直接把补全点作为唯一几何来源 [6]。这类接口让网络同时利用观测几何和补全先验。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;联合重建与抓取（Joint Reconstruction and Grasping）&lt;/h2&gt;
&lt;p&gt;CenterGrasp 使用对象中心隐式表示（Object-Centric Implicit Representation）同时进行形状重建和六自由度抓取估计 [3]。它先从 RGB-D 观测中提取对象级特征，再在对象坐标系中查询几何和抓取相关信息。&lt;/p&gt;
&lt;p&gt;可以用下面的抽象形式理解这类网络：&lt;/p&gt;
&lt;p&gt;$$
f_\theta(x,z)\rightarrow
(o_\theta(x,z),d_\theta(x,z),h_\theta(x,z)),
$$&lt;/p&gt;
&lt;p&gt;其中 $x\in\mathbb R^3$ 是对象坐标系中的查询位置，$z\in\mathbb R^d$ 是观测编码，$o_\theta$ 是占据预测，$d_\theta$ 是距离或表面相关量，$h_\theta$ 是用于抓取预测的局部特征。抓取姿态仍可统一写为 $g=(R,\boldsymbol t,w)$，其中 $R\in SO(3)$、$\boldsymbol t\in\mathbb R^3$，$w\in\mathbb R_{\geq0}$ 分别表示夹爪旋转、位置和开口宽度。&lt;/p&gt;
&lt;p&gt;连续隐式表示的推理过程是：估计对象坐标系，在三维查询点上计算占据和特征，再从高响应区域解码 $g$，最后进行碰撞与可达性检查。它不需要把完整物体固定成相同数量的点，但查询分辨率和对象坐标估计会直接影响候选质量。&lt;/p&gt;
&lt;p&gt;Local Occupancy-Enhanced Grasping 使用多平面投影（Multiple Triplanar Projection）编码局部占据几何 [7]。三张相互正交的二维特征平面分别存储局部空间信息，查询点投影到各平面后取样并融合特征，再预测抓取。相比直接在稀疏点上回归，它为接触区域提供了连续局部表示；全局场景关系仍由前端分割、坐标变换和后端碰撞检查处理。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;神经渲染与多视角几何（Neural Rendering and Multi-View Geometry）&lt;/h2&gt;
&lt;p&gt;神经辐射场（Neural Radiance Field, NeRF）和相关神经表面表示可以融合多张 RGB 图像，从不同视角恢复几何与外观。GraspNeRF 使用可泛化 NeRF 处理透明和高反光物体的多视角六自由度抓取 [4]。&lt;/p&gt;
&lt;p&gt;NeRF 沿相机射线查询场函数。设射线原点 $o\in\mathbb R^3$，单位方向 $d\in\mathbb R^3$，则 $r(t)=o+td$；在采样位置 $t_i$ 处，网络输出密度 $\sigma_i\in\mathbb R_{\geq0}$ 和颜色 $c_i\in\mathbb R^3$。离散体渲染（Volume Rendering）为：&lt;/p&gt;
&lt;p&gt;$$
\hat C(r)=\sum_i T_i\alpha_i c_i,
\qquad
T_i=\prod_{j&amp;#x3C;i}(1-\alpha_j),
\qquad
\alpha_i=1-e^{-\sigma_i\delta_i}.
$$&lt;/p&gt;
&lt;p&gt;其中 $\delta_i=t_{i+1}-t_i$ 是相邻采样点的距离，$T_i$ 是光线到达第 $i$ 个采样点时仍未被吸收的透射率，$\alpha_i$ 是该区间的不透明度。期望深度可写成 $\hat D(r)=\sum_iT_i\alpha_i t_i$。抓取系统通常从密度场提取网格或点云，也可以直接读取三维特征来评价候选。实际解码时还要进行尺度标定、表面阈值选择和夹爪碰撞检查。&lt;/p&gt;
&lt;p&gt;Any-View 6DoF Grasping 通过神经表面渲染，使模型能够从不同观察视角推断抓取 [5]。NeRF Grasp Pose Optimization 则利用 NeRF 特征评价和优化已有候选 [8]。&lt;/p&gt;
&lt;p&gt;多视角抓取的实现通常包含以下环节：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;通过相机外参标定（Extrinsic Calibration）将各视角变换到统一坐标系；&lt;/li&gt;
&lt;li&gt;编码每张图像并聚合跨视角特征；&lt;/li&gt;
&lt;li&gt;由聚合特征预测密度、表面或三维抓取特征；&lt;/li&gt;
&lt;li&gt;提取候选抓取 $g=(R,\boldsymbol t,w)$，执行碰撞过滤和机器人可达性检查。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;You Only Scan Once 面向动态场景构建一次扫描与重建流水线，再生成六自由度抓取 [9]；这类方法还需要在扫描期间维护相机、物体和机器人之间的时空关系。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;透明与高反光物体（Transparent and Specular Objects）&lt;/h2&gt;
&lt;p&gt;普通结构光或双目深度相机可能在玻璃、透明塑料和高反光金属上产生孔洞或错误深度。此时物体在 RGB 中可见，但深度图中缺少稳定的接触表面。&lt;/p&gt;
&lt;p&gt;主动立体（Active Stereo）相机投射红外纹理并通过左右图匹配估计视差。设焦距为 $f$、双目基线为 $b$、视差为 $d$，相机坐标系中的深度近似为：&lt;/p&gt;
&lt;p&gt;$$
z=\frac{fb}{d},
\qquad f,b,d,z\in\mathbb R_{&gt;0}.
$$&lt;/p&gt;
&lt;p&gt;透明表面会折射投影纹理，使匹配位置不再对应同一物理表面；高反光表面则可能造成饱和或错误匹配。因此，透明物体方法通常结合 RGB 轮廓、多视角一致性、主动照明或神经渲染来恢复几何。&lt;/p&gt;
&lt;p&gt;这类实验需要同时记录：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;光照与背景；&lt;/li&gt;
&lt;li&gt;相机类型和主动投射设置；&lt;/li&gt;
&lt;li&gt;视角数量；&lt;/li&gt;
&lt;li&gt;重建误差与抓取成功分别如何测量；&lt;/li&gt;
&lt;li&gt;方法在普通不透明物体上的表现。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;透明性改变的是观测模型（Observation Model）：同一个抓取检测器在输入端接收到的深度证据不同。GraspNeRF 通过多视角神经渲染恢复透明/高反光几何 [4]；ASGrasp 使用 RGB-D 主动立体相机（Active Stereo Camera）进行可泛化透明物体重建和抓取 [10]。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;主动视角选择（Active View Selection）&lt;/h2&gt;
&lt;p&gt;形状补全在固定观测下推断隐藏几何；主动感知（Active Perception）通过相机或机器人动作获得新证据。设历史观测为 $H_t$，候选相机位姿为 $v\in\mathcal V$，新观测为 $o_{t+1}(v)$，主动策略可以选择最大化预期抓取收益的视角：&lt;/p&gt;
&lt;p&gt;$$
v^*=\arg\max_v
\mathbb{E}\left[U(G\mid H_t,o_{t+1}(v))-C(v)\right],
$$&lt;/p&gt;
&lt;p&gt;其中 $U$ 是观测更新后的抓取效用，$C(v)$ 是移动时间、路径长度和碰撞风险组成的成本。&lt;/p&gt;
&lt;p&gt;下一最佳视角（Next-Best View, NBV）的目标是减少抓取相关的不确定性，例如暴露目标把手、被遮挡接触面或夹爪接近通道。实际系统通常从有限位姿集合 $\mathcal V$ 中选择视角，并在评分前删除机器人不可达或相机将与场景碰撞的位姿。&lt;/p&gt;
&lt;p&gt;设 $Z$ 表示待估计的三维占据状态，$H(\cdot)$ 表示其熵。对每个 $v\in\mathcal V$，可以用当前占据模型预测新观测带来的信息增益（Information Gain, IG）：&lt;/p&gt;
&lt;p&gt;$$
\operatorname{IG}(v)=
H(Z\mid H_t)-
\mathbb E_{o_{t+1}\sim p(o\mid v,H_t)}
[H(Z\mid H_t,o_{t+1})].
$$&lt;/p&gt;
&lt;p&gt;抓取相关策略可以只统计候选接触区和接近通道内的熵，或者直接估计观测后最高可行抓取分数的提升。一个具体的视角效用为：&lt;/p&gt;
&lt;p&gt;$$
J(v)=\operatorname{IG}(v)-\lambda_tT(v)-\lambda_mC_{\text{motion}}(v),
$$&lt;/p&gt;
&lt;p&gt;其中 $T(v)$ 是预计采集时间，$C_{\text{motion}}(v)$ 是机器人运动成本，$\lambda_t,\lambda_m\geq0$ 是权重。&lt;/p&gt;
&lt;p&gt;VISO-Grasp 将视觉语言目标、对象中心空间表示、主动视角规划和六自由度抓取结合起来，用于杂乱与不可见目标 [11]。Cross-View Fusion 则通过跨视角融合增强姿态估计，目前仍是 arXiv 预印本 [12]。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;不确定性应当传递到候选（Propagating Uncertainty to Grasps）&lt;/h2&gt;
&lt;p&gt;补全和主动观测都会改变后端候选的置信度。需要分别考虑：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;传感器噪声（Sensor Noise）；&lt;/li&gt;
&lt;li&gt;未观测区域的不确定性（Occlusion Uncertainty）；&lt;/li&gt;
&lt;li&gt;补全模型不确定性（Model Uncertainty）；&lt;/li&gt;
&lt;li&gt;多视角标定误差（Calibration Error）；&lt;/li&gt;
&lt;li&gt;执行过程中的姿态误差（Execution Error）。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果多个隐藏形状都合理，可以保留多个几何假设，并将每个假设分别送入抓取评分和碰撞检测。&lt;/p&gt;
&lt;p&gt;设补全模型产生 $M$ 个表面样本 ${\hat S_m}_{m=1}^{M}$，同一候选抓取为 $g=(R,\boldsymbol t,w)$。分别计算质量与碰撞，再得到期望质量和碰撞概率：&lt;/p&gt;
&lt;p&gt;$$
\bar q(g)=\frac{1}{M}\sum_{m=1}^{M}q(g;\hat S_m),
\qquad
p_{\text{coll}}(g)=\frac{1}{M}\sum_{m=1}^{M}
\mathbf 1[\operatorname{collision}(g,\hat S_m)].
$$&lt;/p&gt;
&lt;p&gt;选择时可以要求 $p_{\text{coll}}(g)&amp;#x3C;\delta$，再按 $\bar q(g)$ 排序。样本可以来自显式生成模型、网络集成（Deep Ensemble）或测试时随机失活（Monte Carlo Dropout）。这样，隐藏表面改变的不只是网络分数，也会反映在候选的碰撞统计中。&lt;/p&gt;
&lt;h2&gt;方法如何进入抓取系统（Methods in the Grasping Pipeline）&lt;/h2&gt;
&lt;p&gt;| 方法              | 观测策略          | 几何表示         | 抓取接口            | 主要计算            |
| :---------------- | :---------------- | :--------------- | :------------------ | :------------------ |
| Beyond Top-Grasps | 单视角            | 场景补全         | 非顶向抓取候选      | 补全 + 抓取规划     |
| CompletePoints    | 单视角            | 完整点表示       | 6-DoF 检测器        | 模拟完整点 + 检测   |
| CenterGrasp       | 单视角 RGB-D      | 对象中心隐式场   | 6-DoF 抓取估计      | 重建 + 抓取联合学习 |
| GraspNeRF         | 多视角 RGB        | 可泛化 NeRF      | 透明/高反光物体抓取 | 神经渲染 + 几何查询 |
| Any-View 6DoF     | 多视角            | 神经表面表示     | 6-DoF 抓取          | 跨视角融合 + 解码   |
| ASGrasp           | RGB-D 主动立体    | 透明物体重建     | 6-DoF 抓取          | 主动立体 + 重建     |
| VISO-Grasp        | 腕部 RGB-D + 语言 | 对象中心空间表示 | 目标条件抓取        | 视角规划 + 抓取检测 |
| PCF-Grasp         | 单视角点云        | 补全几何特征     | 6-DoF 抓取          | 补全特征 + 检测器   |&lt;/p&gt;
&lt;p&gt;从系统角度看，方法的差别可以归结为两个接口：它是改变几何输入，还是改变观测过程；它是直接生成抓取，还是为抓取检测器提供特征和候选。评价时应同时记录观测数量、重建/检测耗时、有效候选覆盖率、碰撞过滤后的候选数和最终执行成功率。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;参考文献（References）&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;J. Lundell, F. Verdoja, and V. Kyrki, “Beyond Top-Grasps through Scene Completion,” &lt;em&gt;2020 IEEE International Conference on Robotics and Automation&lt;/em&gt;, 2020. &lt;a href=&quot;https://doi.org/10.1109/ICRA40945.2020.9197320&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Z. Liu, Z. Chen, and W.-S. Zheng, “Simulating Complete Points Representations for Single-View 6-DoF Grasp Detection,” &lt;em&gt;IEEE Robotics and Automation Letters&lt;/em&gt;, 2024. &lt;a href=&quot;https://doi.org/10.1109/LRA.2024.3358757&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;E. Chisari, N. Heppert, T. Welschehold, W. Burgard, and A. Valada, “CenterGrasp: Object-Aware Implicit Representation Learning for Simultaneous Shape Reconstruction and 6-DoF Grasp Estimation,” &lt;em&gt;IEEE Robotics and Automation Letters&lt;/em&gt;, 2024. &lt;a href=&quot;https://doi.org/10.1109/LRA.2024.3388850&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Q. Dai et al., “GraspNeRF: Multiview-Based 6-DoF Grasp Detection for Transparent and Specular Objects Using Generalizable NeRF,” &lt;em&gt;2023 IEEE International Conference on Robotics and Automation&lt;/em&gt;, 2023. &lt;a href=&quot;https://doi.org/10.1109/ICRA48891.2023.10160842&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;S. Jauhri, I. Lunawat, and G. Chalvatzaki, “Learning Any-View 6DoF Robotic Grasping in Cluttered Scenes via Neural Surface Rendering,” &lt;em&gt;Robotics: Science and Systems XX&lt;/em&gt;, 2024. &lt;a href=&quot;https://doi.org/10.15607/RSS.2024.XX.046&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Y. Cheng et al., “PCF-Grasp: Converting Point Completion to Geometry Feature to Enhance 6-DoF Grasp,” &lt;em&gt;IEEE Transactions on Systems, Man, and Cybernetics: Systems&lt;/em&gt;, 2025. &lt;a href=&quot;https://doi.org/10.1109/TSMC.2025.3628946&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;K. Ma, H. Dong, and Y. Mu, “Local Occupancy-Enhanced Object Grasping with Multiple Triplanar Projection,” &lt;em&gt;Computer Vision – ECCV 2024&lt;/em&gt;, 2024. &lt;a href=&quot;https://doi.org/10.1007/978-3-031-72904-1_1&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;G. Soti, X. Huang, C. Wurll, and B. Hein, “6-DoF Grasp Pose Evaluation and Optimization via Transfer Learning from NeRFs,” &lt;em&gt;2024 IEEE International Conference on Robotics and Automation&lt;/em&gt;, 2024. &lt;a href=&quot;https://doi.org/10.1109/ICRA57147.2024.10610402&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;L. Zhou et al., “You Only Scan Once: A Dynamic Scene Reconstruction Pipeline for 6-DoF Robotic Grasping of Novel Objects,” &lt;em&gt;2024 IEEE International Conference on Robotics and Automation&lt;/em&gt;, 2024. &lt;a href=&quot;https://doi.org/10.1109/ICRA57147.2024.10611371&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;J. Shi et al., “ASGrasp: Generalizable Transparent Object Reconstruction and 6-DoF Grasp Detection from RGB-D Active Stereo Camera,” &lt;em&gt;2024 IEEE International Conference on Robotics and Automation&lt;/em&gt;, 2024. &lt;a href=&quot;https://doi.org/10.1109/ICRA57147.2024.10611152&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Y. Shi et al., “VISO-Grasp: Vision-Language Informed Spatial Object-Centric 6-DoF Active View Planning and Grasping in Clutter and Invisibility,” &lt;em&gt;2025 IEEE/RSJ International Conference on Intelligent Robots and Systems&lt;/em&gt;, 2025. &lt;a href=&quot;https://doi.org/10.1109/IROS60139.2025.11246329&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;K. Zhu, H. Jiang, J. Qian, and J. Xie, “A Cross-View Fusion Framework for Robust 6-DoF Grasp Pose Estimation,” &lt;em&gt;arXiv preprint arXiv:2606.06878&lt;/em&gt;, 2026. &lt;a href=&quot;https://arxiv.org/abs/2606.06878&quot;&gt;arXiv&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;</content:encoded><h:img src="https://pic.hana0721.top/74378589_p0_master1200.5j4sgia4w5.webp"/><enclosure url="https://pic.hana0721.top/74378589_p0_master1200.5j4sgia4w5.webp"/></item><item><title>Robotic Grasp Detection (6): 数据集与基准评测协议</title><link>https://agusexp25.top/blog/robotic-grasp-detection-6</link><guid isPermaLink="true">https://agusexp25.top/blog/robotic-grasp-detection-6</guid><description>系统比较平面、物体中心、场景级和执行感知抓取数据集，解释标签生成、泛化划分、GraspNet AP 协议，以及 Cornell、Jacquard、Dex-Net 和真实执行基准上的代表性结果。</description><pubDate>Fri, 14 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;&lt;/p&gt;
&lt;h2&gt;先区分数据集、基准与评测协议（Dataset, Benchmark, and Protocol）&lt;/h2&gt;
&lt;p&gt;在抓取检测（Grasp Detection）中，数据集（Dataset）不只是训练样本的集合。它还规定了机器人能看到什么、抓取如何表示、正负标签如何产生，以及“成功”究竟指什么。基准（Benchmark）是在数据集之上固定任务和测试划分；评测协议（Evaluation Protocol）则规定候选如何解码、排序、去重，以及最后使用哪个指标计算分数。&lt;/p&gt;
&lt;p&gt;Cornell 的 2D 矩形准确率、GraspNet-1Billion 的离线平均精度（Average Precision, AP）和真实机器人的抬升成功率，分别对应图像标注、解析几何和物理执行三个层级。阅读结果时，先确认方法所处的层级，再看数字。&lt;/p&gt;
&lt;p&gt;一个数据集可以用下面六个问题快速描述：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;输入是什么&lt;/strong&gt;：RGB 图像、深度图（Depth Image）、RGB-D 图像、点云、网格、语言还是触觉？&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;标签是什么&lt;/strong&gt;：旋转矩形、$SE(3)$ 抓取姿态、连续质量、碰撞标签、目标身份还是实际执行结果？&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;标签如何得到&lt;/strong&gt;：人工标注、解析计算（Analytic Computation）、物理仿真（Physics Simulation）还是机器人实验？&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;训练和测试如何分开&lt;/strong&gt;：按图像、物体实例、物体类别、场景、视角、遮挡程度还是夹爪尺寸划分？&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;使用什么夹爪&lt;/strong&gt;：固定的平行夹爪（Parallel-Jaw Gripper）几何、指尖长度、最大开口和碰撞模型是什么？&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;指标位于哪一层&lt;/strong&gt;：二维匹配、姿态检测、几何有效、仿真执行、真实抓取还是完整任务？&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;数据集总览（Dataset Map）&lt;/h2&gt;
&lt;p&gt;下表按照输入、标签、规模和指标概括这些基准。&lt;/p&gt;
&lt;p&gt;| 数据集              | 输入与场景                    | 抓取标签                     | 标签来源                   | 规模或划分                                                                       | 主要指标                         | 主要回答的问题                             |
| :------------------ | :---------------------------- | :--------------------------- | :------------------------- | :------------------------------------------------------------------------------- | :------------------------------- | :----------------------------------------- |
| Cornell             | 真实 RGB-D，单物体桌面图像    | 2D 旋转矩形                  | 人工标注                   | 885 张图像、240 个物体                                                           | 角度误差 + IoU                   | 图像中是否找到了一个合理的平面抓取         |
| Jacquard            | 合成 RGB-D / 深度图           | 2D 旋转矩形                  | 渲染与几何生成             | 约 54K 张图像、约 1.1M 个矩形                                                    | 角度误差 + IoU                   | 大规模平面抓取学习能否工作                 |
| Dex-Net 2.0         | 合成局部深度图块              | 平行夹爪姿态与鲁棒质量       | 解析准静态模型             | 1,500 个物体模型、约 6.7M 个样本                                                 | 质量预测、真实成功率             | 解析抓取质量能否被深度网络学习             |
| ACRONYM             | 物体网格与仿真抓取            | 物体坐标系中的 6-DoF 抓取    | 物理仿真                   | 8,872 个物体、262 个类别、约 17.7M 个抓取                                        | 仿真成功与覆盖率                 | 物体中心的 6-DoF 抓取分布能否泛化          |
| GraspNet-1Billion   | 两种真实 RGB-D 相机的杂乱场景 | 场景坐标系中的 6-DoF 抓取    | 力闭合、场景碰撞与坐标变换 | 88 个物体、190 个场景、97,280 张图像、超过 11 亿标签                             | $AP$、$AP_{0.4}$、$AP_{0.8}$     | 视觉模型能否在未见杂乱场景中生成高质量抓取 |
| REGRAD              | 关系化杂乱场景                | 目标、关系和安全抓取         | 生成式场景与解析标签       | 约 111.8K 个场景，Seen / Unseen                                                  | 目标特定与关系相关指标           | 抓取哪个对象以及如何避开关系约束           |
| LangSHAPE           | 视觉、语言与部件              | 部件可供性和 6-DoF 抓取      | 部件/对象级标注            | 16 个物体类别、35 个部件类别，8:1:1 划分                                         | 部件定位与抓取                   | 语言指定的部件是否真的可抓                 |
| TARGO               | 目标驱动的遮挡场景            | 目标对象条件下的 6-DoF 抓取  | 真实场景筛选与标注         | TARGO-Real：21 个物体、1,000 个场景                                              | 目标抓取与遮挡鲁棒性             | 指定目标而不是任意抓取能否成功             |
| Supermarket-6DoF    | 真实超市物体                  | 姿态、抬升与稳定性标签       | 机器人执行                 | 20 个物体、1,500 次尝试                                                          | Lift / Stability                 | 检测姿态是否能在真实平台上抓住物体         |
| GraspIT / GCA-Bench | 仿真与真实执行场景            | 滑移、可达性、阶段和任务结果 | 仿真验证与机器人实验       | GraspIT：约 316K 帧、1,035 个仿真场景、100 个真实场景；GCA-Bench：102 个任务场景 | Slip、Reachability、Task Success | 感知错误如何传递到规划和任务执行           |&lt;/p&gt;
&lt;p&gt;这些数据集沿着不同方向扩展任务：Jacquard 增加平面图像的规模，ACRONYM 增加物体中心的 6-DoF 多样性，GraspNet 增加真实 RGB-D 杂乱场景，TARGO、LangSHAPE 与 GCA-Bench 则加入目标、语言和任务执行条件。&lt;/p&gt;
&lt;h2&gt;平面抓取基准（Planar Grasp Benchmarks）&lt;/h2&gt;
&lt;h3&gt;Cornell Grasp Dataset：人工矩形标注&lt;/h3&gt;
&lt;p&gt;Cornell 是最常见的平面抓取基准。它提供真实桌面图像以及人工绘制的旋转抓取矩形。Redmon 等人使用的常见版本包含 885 张 RGB-D 图像、240 个物体和约 8,019 个矩形标注 [1]。&lt;/p&gt;
&lt;p&gt;一个矩形抓取通常写成：&lt;/p&gt;
&lt;p&gt;$$
g=(x,y,w,l,\theta),
$$&lt;/p&gt;
&lt;p&gt;其中 $(x,y)$ 是图像像素中的中心，$w$ 和 $l$ 是矩形的像素宽度与长度，$\theta$ 是图像平面内的旋转角。平行夹爪的两个指尖可以对应矩形的两条相对短边，因此这个表示隐含了“从图像上方沿相机光轴接近”的假设。&lt;/p&gt;
&lt;p&gt;常用判据要求预测矩形与某个标注矩形之间的方向误差小于 $30^\circ$，并且交并比（Intersection over Union, IoU）大于 $0.25$。IoU 定义为两个矩形区域交集与并集面积之比：&lt;/p&gt;
&lt;p&gt;$$
\operatorname{IoU}(g, g^&lt;em&gt;)
=\frac{|B(g)\cap B(g^&lt;/em&gt;)|}{|B(g)\cup B(g^*)|},
$$&lt;/p&gt;
&lt;p&gt;其中 $B(g)$ 是抓取矩形在图像中的区域，$g^*$ 是人工标注。这个指标衡量图像空间的几何接近，输入输出都位于平面抓取表示中。&lt;/p&gt;
&lt;p&gt;还需要区分两种常见划分：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;图像划分（Image-Wise Split）&lt;/strong&gt;：同一物体的不同图像可能同时出现在训练和测试中，测试重点是视角和图像变化；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;物体划分（Object-Wise Split）&lt;/strong&gt;：测试物体实例不出现在训练集中，更接近未见物体泛化。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;论文报告 Cornell accuracy 时，应同时写明使用的是 image-wise split 还是 object-wise split。&lt;/p&gt;
&lt;h3&gt;Jacquard：大规模合成矩形&lt;/h3&gt;
&lt;p&gt;Jacquard 用三维物体模型和渲染器生成 RGB-D / 深度图，再为每张图像生成多个平面抓取矩形。常见统计为约 54K 张图像、约 11K 个物体和约 1.1M 个矩形标签 [2]。它沿用角度误差与 IoU 判据，适合训练和评测大规模平面抓取检测器。&lt;/p&gt;
&lt;p&gt;它可以低成本改变物体形状、朝向和抓取数量；渲染域与真实相机之间的域差距（Rendering Domain Gap）则是后续 sim-to-real 实验需要处理的变量。&lt;/p&gt;
&lt;h3&gt;Cornell 与 Jacquard 上的代表性结果&lt;/h3&gt;
&lt;p&gt;下表列出公开论文中常被引用的平面抓取结果。Cornell 的两列分别是 image-wise 和 object-wise accuracy；Jacquard 一列使用的是 GKNet 论文中的 Abridged Jacquard Dataset（AJD），不是完整 Jacquard 测试集。速度为论文报告的单模型推理速度。&lt;/p&gt;
&lt;p&gt;| 方法                    | Cornell image-wise | Cornell object-wise | AJD accuracy |              速度 |
| :---------------------- | -----------------: | ------------------: | -----------: | ----------------: |
| Lenz et al. [20]        |              73.9% |               75.6% |            — |          0.07 fps |
| Redmon and Angelova [1] |              88.0% |               87.1% |            — |          3.31 fps |
| Kumra and Kanan [18]    |              89.2% |               88.9% |            — |         16.03 fps |
| GKNet [19]              |          &lt;strong&gt;96.9%&lt;/strong&gt; |           &lt;strong&gt;95.7%&lt;/strong&gt; |   &lt;strong&gt;98.39%&lt;/strong&gt; | 41.67 / 23.26 fps |&lt;/p&gt;
&lt;p&gt;这个表展示的是平面基准内部的演进：表示从矩形回归逐步转向关键点热图和分组，速度与准确率同时成为比较维度。AJD 的 98.39% 对应 512×512 输入和 AJD 协议，不能当作完整 Jacquard 的统一 leaderboard 数字。&lt;/p&gt;
&lt;h2&gt;物体中心的解析与仿真数据（Object-Centric Analytic and Simulated Data）&lt;/h2&gt;
&lt;h3&gt;Dex-Net 2.0：从解析质量到局部深度图块&lt;/h3&gt;
&lt;p&gt;Dex-Net 2.0 的训练样本来自三维物体模型，而不是机器人逐次尝试。它在物体表面采样平行夹爪候选，用鲁棒准静态抓取质量（Robust Quasi-Static Grasp Quality）给候选打标签，再从相机视角渲染深度图块，训练抓取质量卷积网络（Grasp Quality Convolutional Neural Network, GQ-CNN） [3]。论文报告约 1,500 个物体模型和约 6.7M 个合成深度样本，并在 ABB YuMi 上进行了验证。&lt;/p&gt;
&lt;p&gt;一个 Dex-Net 样本可以理解为以下变量的组合：物体网格、稳定放置姿态、相机姿态、候选抓取、渲染深度和解析质量。生成逻辑是：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;物体网格清理与缩放
    → 采样稳定放置姿态
    → 采样平行夹爪候选
    → 在摩擦与位姿扰动下计算鲁棒解析质量
    → 渲染带噪深度图
    → 裁剪候选附近的局部深度图块
    → 训练 GQ-CNN 预测质量
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这里的“正样本”是接触模型在给定摩擦、力和扰动假设下计算出的质量。网格尺度、摩擦系数、指尖几何和扰动分布都会进入标签，Dex-Net 2.0 的研究对象是单物体局部深度图上的质量预测。&lt;/p&gt;
&lt;p&gt;Dex-Net 的训练/测试划分在物体模型层完成；同一网格的不同渲染视角属于同一几何实例。&lt;/p&gt;
&lt;p&gt;Dex-Net 2.0 同时给出了一个物理执行结果：GQ-CNN 在 8 个已知物体上达到 93% 的抓取成功率，在 10 个未见物体上达到 80%；在 40 个新家庭物体上，对被判为 robust 的抓取达到 99% precision [3]。这些结果把解析质量、网络排序和 YuMi 执行连接起来，是物体中心基准与真实机器人之间的早期桥梁。&lt;/p&gt;
&lt;h3&gt;ACRONYM：物体坐标系中的 6-DoF 抓取分布&lt;/h3&gt;
&lt;p&gt;ACRONYM 面向物体中心的六自由度抓取，包含约 17.7M 个仿真平行夹爪抓取，覆盖 8,872 个物体和 262 个类别 [4]。与 Cornell/Jacquard 的矩形不同，它保存的是物体坐标系中的抓取姿态；加载物体时，可以把同一组姿态变换到任意场景位姿。&lt;/p&gt;
&lt;p&gt;标签由物理仿真产生：夹爪被放置到候选预抓取姿态，随后闭合指尖，并依据碰撞、接触和物体是否被稳定持有判断结果。ACRONYM 的主要用途是提供大规模物体中心 6-DoF 抓取分布，用于生成式模型训练、候选覆盖率分析和 sim-to-real 预训练。&lt;/p&gt;
&lt;h2&gt;GraspNet-1Billion：场景级 6-DoF 基准（Scene-Level 6-DoF Benchmark）&lt;/h2&gt;
&lt;h3&gt;数据采集与规模&lt;/h3&gt;
&lt;p&gt;GraspNet-1Billion 将真实 RGB-D 观测、杂乱场景、物体 6D 位姿和密集 6-DoF 抓取标签结合起来 [5]。它包含 88 个日常物体和 190 个杂乱场景；每个场景约有 512 个视角，总计 97,280 张 RGB-D 图像。数据由 Intel RealSense 435 和 Azure Kinect 两种深度相机同步采集，因此同一场景可以在不同传感器质量下被观察。&lt;/p&gt;
&lt;p&gt;“1Billion”指自动生成的抓取标注数量超过 11 亿。每个场景的标注数量约为 3M 到 9M，密度来自多个采样和变换步骤的组合。&lt;/p&gt;
&lt;h3&gt;标签是如何生成的&lt;/h3&gt;
&lt;p&gt;GraspNet 的标注流程分为两个阶段。&lt;/p&gt;
&lt;p&gt;第一阶段在单物体网格上生成抓取：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;在网格表面均匀采样抓取点；&lt;/li&gt;
&lt;li&gt;为每个点采样球面上的接近方向（Approach Direction）；&lt;/li&gt;
&lt;li&gt;在夹爪深度集合 $D$ 与夹爪绕接近轴的平面内角集合 $A$ 上搜索候选；&lt;/li&gt;
&lt;li&gt;根据物体几何确定夹爪宽度，删除空抓和物体自身碰撞的候选；&lt;/li&gt;
&lt;li&gt;对候选进行力闭合（Force Closure）计算，并在一组摩擦系数下记录质量。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;对某个候选抓取，若最小摩擦系数为 $\mu$ 时仍满足力闭合，原论文使用：&lt;/p&gt;
&lt;p&gt;$$
s=1.1-\mu
$$&lt;/p&gt;
&lt;p&gt;作为质量分数，其中 $\mu$ 是无量纲的摩擦系数，$s$ 也是无量纲分数。这个分数来自接触模型，不是实测成功概率。&lt;/p&gt;
&lt;p&gt;第二阶段把单物体抓取放入杂乱场景：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;用物体在场景中的位姿把物体坐标系抓取变换到场景坐标系；&lt;/li&gt;
&lt;li&gt;检查夹爪与桌面、背景和其他物体的碰撞；&lt;/li&gt;
&lt;li&gt;使用相机标定与逐帧相机位姿，把场景标注表达到各个视角。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;如果单物体抓取为 $G_i^{(o)}$，物体坐标系到世界坐标系的变换为 ${}^{w}T_{O_i}$，则场景坐标系中的抓取可以写成：&lt;/p&gt;
&lt;p&gt;$$
G_i^{(w)}={}^{w}T_{O_i}G_i^{(o)}.
$$&lt;/p&gt;
&lt;p&gt;这个过程同时产生物体姿态、掩码、边界框和场景抓取，构成 GraspNet 的场景级监督。&lt;/p&gt;
&lt;h3&gt;训练集与测试集如何划分&lt;/h3&gt;
&lt;p&gt;GraspNet 使用 100 个训练场景和 90 个测试场景。官方测试集分为三个各含 30 个场景的分支：&lt;/p&gt;
&lt;p&gt;| 划分    | 测试对象相对于训练集             | 主要考察的问题           |
| :------ | :------------------------------- | :----------------------- |
| Seen    | 训练中出现过的对象               | 场景杂乱、视角和遮挡变化 |
| Similar | 未出现但外形或类别相近的对象     | 中等程度的对象泛化       |
| Novel   | 与训练对象分布差异更大的未见对象 | 更严格的几何泛化         |&lt;/p&gt;
&lt;p&gt;早期论文有时把 Similar 写作 Unseen；表格中采用 GraspNet 官方常用的 Seen / Similar / Novel 命名。&lt;/p&gt;
&lt;h3&gt;官方 AP 如何计算&lt;/h3&gt;
&lt;p&gt;模型通常从 RGB-D 图像或场景点云输出带分数的候选抓取：&lt;/p&gt;
&lt;p&gt;$$
\hat g_j=(\hat R_j,\hat{\boldsymbol t}_j,\hat w_j,\hat q_j),
$$&lt;/p&gt;
&lt;p&gt;其中 $\hat R_j\in SO(3)$ 是旋转矩阵，$\hat{\boldsymbol t}_j\in\mathbb R^3$ 是抓取中心，$\hat w_j\in\mathbb R$ 是夹爪宽度，$\hat q_j\in\mathbb R$ 是用于排序的置信分数。官方评测包含以下步骤：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;按候选分数排序，并执行姿态非极大值抑制（Pose Non-Maximum Suppression, Pose-NMS），避免相同抓取模式重复占据候选名额；&lt;/li&gt;
&lt;li&gt;每个场景只保留前 50 个候选；&lt;/li&gt;
&lt;li&gt;根据夹爪内部的场景点确定候选关联的物体，并检查碰撞；&lt;/li&gt;
&lt;li&gt;对每个摩擦系数 $\mu$ 重新计算力闭合标签；&lt;/li&gt;
&lt;li&gt;计算不同候选截断位置的前缀精度，再在场景和摩擦系数上汇总。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;设经过 NMS 后的第 $j$ 个候选在摩擦系数 $\mu$ 下的标签为 $y_{j,\mu}\in{0,1}$。前 $k$ 个候选的精度是：&lt;/p&gt;
&lt;p&gt;$$
\operatorname{Precision@}k_{\mu}
=\frac{1}{k}\sum_{j=1}^{k}y_{j,\mu},
\qquad 1\leq k\leq 50.
$$&lt;/p&gt;
&lt;p&gt;单个场景在该摩擦系数下的 AP 定义为：&lt;/p&gt;
&lt;p&gt;$$
\operatorname{AP}&lt;em&gt;{\mu}
=\frac{1}{50}\sum&lt;/em&gt;{k=1}^{50}
\operatorname{Precision@}k_{\mu}.
$$&lt;/p&gt;
&lt;p&gt;总 AP 通常对 $\mu\in{0.2,0.4,0.6,0.8,1.0}$ 的结果取平均：&lt;/p&gt;
&lt;p&gt;$$
\operatorname{AP}
=\frac{1}{5}\sum_{\mu\in{0.2,0.4,0.6,0.8,1.0}}
\operatorname{AP}_{\mu}.
$$&lt;/p&gt;
&lt;p&gt;因此，$AP_{0.4}$ 更强调低摩擦条件下仍然满足力闭合的候选，$AP_{0.8}$ 则更接近高摩擦条件下的结果。GraspNet AP 的核心是前 50 个候选的前缀精度平均，候选排序、Pose-NMS 和碰撞过滤都属于协议的一部分。&lt;/p&gt;
&lt;h2&gt;GraspNet-1Billion 上的代表性高分结果（Representative Results）&lt;/h2&gt;
&lt;p&gt;下面的表格整理了后续论文在 GraspNet-1Billion 上报告的代表性结果。每个单元格按照 &lt;strong&gt;RealSense / Kinect&lt;/strong&gt; 的顺序书写；结果均采用论文报告的官方 split 和 AP 协议。&lt;/p&gt;
&lt;h3&gt;总体 AP 与泛化划分&lt;/h3&gt;
&lt;p&gt;| 方法                  | 输入与主要表示                        |           平均 AP |           Seen AP |        Similar AP |          Novel AP |
| :-------------------- | :------------------------------------ | ----------------: | ----------------: | ----------------: | ----------------: |
| GraspNet baseline [5] | 场景点云，点级 6-DoF 抓取             |     21.41 / 23.08 |     27.56 / 29.88 |     26.11 / 27.84 |     10.55 / 11.51 |
| TransGrasp [13]       | 场景点云，多尺度点 Transformer，7-DoF |     27.65 / 25.70 |     39.81 / 35.97 |     29.32 / 29.71 |     13.83 / 11.41 |
| GSNet [14]            | 场景点云，点级/视角级 Graspness       |     47.92 / 42.53 |     65.70 / 61.19 |     53.75 / 47.39 |     24.31 / 19.01 |
| AnyGrasp w/ CD [15]   | 场景点云，稠密生成 + 碰撞检测         |         49.01 / — |         66.12 / — |         56.09 / — |         24.81 / — |
| RNGNet [16]           | RGB-D，归一化区域抓取空间             |     58.06 / 52.24 |     75.20 / 72.23 |     66.62 / 58.43 |     32.38 / 26.05 |
| RNGNet w/ CD [16]     | RGB-D，区域预测 + 碰撞检测            | &lt;strong&gt;59.13 / 52.81&lt;/strong&gt; | &lt;strong&gt;76.28 / 72.89&lt;/strong&gt; | &lt;strong&gt;68.26 / 59.42&lt;/strong&gt; | &lt;strong&gt;32.84 / 26.12&lt;/strong&gt; |&lt;/p&gt;
&lt;p&gt;这里的“平均 AP”是三个测试分支 AP 的平均。Novel split 的分数明显低于 Seen split，说明未见几何仍然是主要难点；CD 表示额外的碰撞检测后处理。&lt;/p&gt;
&lt;h3&gt;不同摩擦条件下的补充结果&lt;/h3&gt;
&lt;p&gt;下面是 RNGNet 论文附录中几个方法的 $AP_{0.8}$ 和 $AP_{0.4}$ 结果，仍按 RealSense / Kinect 排列。&lt;/p&gt;
&lt;p&gt;| 方法                |   Seen $AP_{0.8}$ |  Novel $AP_{0.8}$ |   Seen $AP_{0.4}$ |  Novel $AP_{0.4}$ |
| :------------------ | ----------------: | ----------------: | ----------------: | ----------------: |
| GSNet [14]          |     76.25 / 71.46 |     29.93 / 23.73 |     61.08 / 56.04 |     14.05 / 10.60 |
| AnyGrasp w/ CD [15] |         77.27 / — |         31.08 / — |         61.02 / — |         13.82 / — |
| RNGNet w/ CD [16]   | &lt;strong&gt;86.58 / 83.10&lt;/strong&gt; | &lt;strong&gt;41.07 / 32.45&lt;/strong&gt; | &lt;strong&gt;72.26 / 68.11&lt;/strong&gt; | &lt;strong&gt;19.68 / 15.92&lt;/strong&gt; |&lt;/p&gt;
&lt;p&gt;低摩擦条件下的 AP 反映候选对接触和摩擦变化的余量，能够补充平均 AP 对质量分布的描述。&lt;/p&gt;
&lt;h2&gt;条件化与执行型基准（Conditional and Execution Benchmarks）&lt;/h2&gt;
&lt;h3&gt;REGRAD：对象关系与安全抓取&lt;/h3&gt;
&lt;p&gt;REGRAD 在杂乱场景中加入对象关系、目标对象和碰撞安全等信息，约包含 111.8K 个生成场景，训练、验证和测试规模约为 46.9K、32.1K 和 32.8K，并区分 Seen 与 Unseen [7]。它把评测对象从“场景中生成一个抓取”扩展为“在指定目标和关系约束下生成安全抓取”，因此结果通常按目标选择、关系预测和抓取几何分别统计。&lt;/p&gt;
&lt;h3&gt;LangSHAPE：语言指定的部件可供性&lt;/h3&gt;
&lt;p&gt;LangSHAPE 将语言条件（Language Conditioning）和部件可供性（Part Affordance）结合起来，包含 16 个物体类别、35 个部件类别，并使用对象级和部件级 8:1:1 划分 [8]。例如，“抓住杯子的把手”不仅要求输出一个合法姿态，还要求网络先把语言对应到正确部件。&lt;/p&gt;
&lt;p&gt;LangSHAPE 的评测链条包括部件定位、语言—部件匹配和部件约束抓取三个层次。&lt;/p&gt;
&lt;h3&gt;TARGO：目标驱动的遮挡抓取&lt;/h3&gt;
&lt;p&gt;TARGO 将目标身份和遮挡程度作为显式条件。TARGO-Real 使用 21 个物体和 1,000 个筛选后的真实场景，研究在遮挡变化下指定目标的 6-DoF 抓取 [9]。它把目标选择与几何生成放在同一个测试任务中。&lt;/p&gt;
&lt;h3&gt;执行感知数据：Supermarket-6DoF、GraspIT 与 GCA-Bench&lt;/h3&gt;
&lt;p&gt;Supermarket-6DoF 记录 20 个超市物体上的 1,500 次真实抓取尝试，并区分物体是否被抬起以及抓取后是否保持稳定 [10]。它将 6-DoF 姿态、场景点云、初始成功和扰动后稳定性放在同一条数据记录中。&lt;/p&gt;
&lt;p&gt;GraspIT 报告约 316K 组 RGB-D 帧、1,035 个仿真场景和 100 个真实场景，并提供约 2.3M 个经过滑移测试（Slip Test）验证的候选 [11]。它把几何候选、可达性和执行稳定性放在同一数据流程中。&lt;/p&gt;
&lt;p&gt;GCA-Bench 将抓取检测、目标选择、运动规划和执行拆成阶段指标，定义 102 个复杂任务场景 [12]。它的重点是记录感知、规划和控制之间的错误传递。&lt;/p&gt;
&lt;p&gt;Contact-GraspNet 使用 ACRONYM 的仿真抓取训练，从部分观测点云预测接触中心和 6-DoF 姿态，并在 Franka 与 RealSense L515 平台上进行结构化杂乱场景实验，论文报告超过 90% 的抓取成功率 [17]。&lt;/p&gt;
&lt;h3&gt;执行型基准的代表性结果&lt;/h3&gt;
&lt;p&gt;| 数据集 / 方法                                  | 任务与指标             |  代表性结果 | 评测设置                                   |
| :--------------------------------------------- | :--------------------- | ----------: | :----------------------------------------- |
| Dex-Net 2.0 / GQ-CNN [3]                       | 已知物体抓取成功率     |         93% | 8 个物体，ABB YuMi                         |
| Dex-Net 2.0 / GQ-CNN [3]                       | 未见物体抓取成功率     |         80% | 10 个物体，50 次尝试                       |
| Dex-Net 2.0 / GQ-CNN [3]                       | robust grasp precision |         99% | 40 个新家庭物体，69 个被判为 robust 的抓取 |
| Contact-GraspNet [17]                          | 结构化杂乱场景成功率   |        &gt;90% | Franka，RealSense L515                     |
| Supermarket-6DoF / Gripper-as-Point-Cloud [10] | 初始抓取成功预测准确率 | 77.2 ± 2.8% | 1,500 次真实尝试，5-fold cross-validation  |
| Supermarket-6DoF / Gripper-as-Point-Cloud [10] | 稳定抓取预测准确率     | 75.2 ± 1.0% | 抬升后进行腕部 ±90° 扰动                   |&lt;/p&gt;
&lt;p&gt;这组结果把“解析质量预测”“候选生成后的真实执行”和“执行结果预测”放在了同一个数据集章节中，但每一行仍保留自己的任务定义。&lt;/p&gt;
&lt;h2&gt;评测阶梯与可复现性（Evaluation Ladder and Reproducibility）&lt;/h2&gt;
&lt;p&gt;同一个预测姿态可以在不同层级被称为“成功”。从低到高，可以这样理解：&lt;/p&gt;
&lt;p&gt;| 层级         | 典型指标                               | 能证明什么                   | 不能证明什么             |
| :----------- | :------------------------------------- | :--------------------------- | :----------------------- |
| 图像矩形匹配 | 角度 + IoU                             | 与二维标注在图像上接近       | 完整三维碰撞与可达性     |
| 离线姿态检测 | AP、Recall@$k$                         | 与解析姿态标签匹配           | 真实抬升和稳定性         |
| 几何有效性   | Force Closure、Collision               | 满足指定接触与碰撞模型       | 传感器和执行误差下的成功 |
| 仿真执行     | Simulated Success、Coverage            | 在指定仿真参数下成功         | 真实材料和接触动力学     |
| 真实抓取     | Lift Success、Stability、Clearing Rate | 特定机器人完成一次或多次抓取 | 更换硬件后的泛化         |
| 完整任务     | Task Success、Recovery                 | 感知—规划—控制闭环效果       | 检测器单独贡献了多少     |&lt;/p&gt;
&lt;h3&gt;指标如何对应问题（Metrics and Questions）&lt;/h3&gt;
&lt;p&gt;GraspNet AP 衡量前 50 个候选在解析标签下的排序质量；Cornell IoU 衡量图像矩形与人工标注的几何接近；Lift Success 和 Stability 则直接观察机器人执行结果。跨基准阅读时，保留数据集、split、夹爪和指标名称即可，不需要把它们压缩成一个总分。&lt;/p&gt;
&lt;h3&gt;复现实验时必须固定的参数&lt;/h3&gt;
&lt;p&gt;复现实验时需要同时记录模型输出和评测 API 之间的处理参数：&lt;/p&gt;
&lt;p&gt;| 环节     | 需要记录的参数                                                |
| :------- | :------------------------------------------------------------ |
| 工作空间 | 桌面/箱体边界、深度范围、是否使用真值分割                     |
| 点云处理 | 体素下采样尺寸、输入点数、法线和颜色是否使用                  |
| 姿态解码 | 旋转表示、宽度范围、深度偏移和坐标系约定                      |
| 候选预算 | 每点方向数、总候选数、候选排序和 Top-$k$                      |
| Pose-NMS | 平移阈值、旋转阈值、夹爪对称处理和是否按物体分组              |
| 碰撞检查 | 指尖与手掌几何、体素尺寸、空抓和碰撞阈值                      |
| 评测输入 | RealSense/Kinect 分支、Seen/Similar/Novel split、摩擦系数集合 |
| 执行设置 | 机器人、相机位置、夹爪、轨迹规划器、成功判据和重试策略        |&lt;/p&gt;
&lt;p&gt;表格中的方法结果应与这些参数一起阅读，尤其是输入相机、候选预算、Pose-NMS 和碰撞模型。&lt;/p&gt;
&lt;h2&gt;参考文献（References）&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;J. Redmon and A. Angelova, “Real-Time Grasp Detection Using Convolutional Neural Networks,” &lt;em&gt;2015 IEEE International Conference on Robotics and Automation&lt;/em&gt;, 2015. &lt;a href=&quot;https://doi.org/10.1109/ICRA.2015.7139361&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;A. Depierre, E. Dellandrea, and L. Chen, “Jacquard: A Large Scale Dataset for Robotic Grasp Detection,” &lt;em&gt;2018 IEEE/RSJ International Conference on Intelligent Robots and Systems&lt;/em&gt;, 2018. &lt;a href=&quot;https://doi.org/10.1109/IROS.2018.8593950&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;J. Mahler et al., “Dex-Net 2.0: Deep Learning to Plan Robust Grasps with Synthetic Point Clouds and Analytic Grasp Metrics,” &lt;em&gt;Robotics: Science and Systems XIII&lt;/em&gt;, 2017. &lt;a href=&quot;https://doi.org/10.15607/RSS.2017.XIII.058&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;C. Eppner, A. Mousavian, and D. Fox, “ACRONYM: A Large-Scale Grasp Dataset Based on Simulation,” &lt;em&gt;2021 IEEE International Conference on Robotics and Automation&lt;/em&gt;, 2021. &lt;a href=&quot;https://doi.org/10.1109/ICRA48506.2021.9560844&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;H.-S. Fang, C. Wang, M. Gou, and C. Lu, “GraspNet-1Billion: A Large-Scale Benchmark for General Object Grasping,” &lt;em&gt;2020 IEEE/CVF Conference on Computer Vision and Pattern Recognition&lt;/em&gt;, 2020. &lt;a href=&quot;https://doi.org/10.1109/CVPR42600.2020.01146&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;H.-S. Fang, M. Gou, C. Wang, and C. Lu, “Robust Grasping across Diverse Sensor Qualities: The GraspNet-1Billion Dataset,” &lt;em&gt;The International Journal of Robotics Research&lt;/em&gt;, 2023. &lt;a href=&quot;https://doi.org/10.1177/02783649231193710&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;H. Zhang et al., “REGRAD: A Large-Scale Relational Grasp Dataset for Safe and Object-Specific Robotic Grasping in Clutter,” &lt;em&gt;IEEE Robotics and Automation Letters&lt;/em&gt;, 2022. &lt;a href=&quot;https://doi.org/10.1109/LRA.2022.3142401&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Y. Song et al., “Learning 6-DoF Fine-Grained Grasp Detection Based on Part Affordance Grounding,” &lt;em&gt;IEEE Transactions on Automation Science and Engineering&lt;/em&gt;, 2025. &lt;a href=&quot;https://doi.org/10.1109/TASE.2025.3566461&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Y. Xia et al., “TARGO and TARGO-Net: Benchmarking Target-Driven Object Grasping under Occlusions,” &lt;em&gt;International Journal of Computer Vision&lt;/em&gt;, 2026. &lt;a href=&quot;https://doi.org/10.1007/s11263-025-02716-9&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;J. Toskov and A. Cosgun, “Supermarket-6DoF: A Real-World Grasping Dataset and Grasp Pose Representation Analysis,” &lt;em&gt;arXiv preprint arXiv:2502.16311&lt;/em&gt;, 2025. &lt;a href=&quot;https://arxiv.org/abs/2502.16311&quot;&gt;arXiv&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;P. Koch, A. Karakurt, and A. Sers, “GraspIT: A Dataset Bridging the Sim-to-Real Gap and Back for Validated Grasping SE(3) Pose Generation,” &lt;em&gt;arXiv preprint arXiv:2607.05869&lt;/em&gt;, 2026. &lt;a href=&quot;https://arxiv.org/abs/2607.05869&quot;&gt;arXiv&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;H. Zhang et al., “Beyond Visual Grasping: Benchmarking Complex Grasping from Detection to Execution,” &lt;em&gt;arXiv preprint arXiv:2607.14341&lt;/em&gt;, 2026. &lt;a href=&quot;https://arxiv.org/abs/2607.14341&quot;&gt;arXiv&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Z. Liu, Z. Chen, S. Xie, and W.-S. Zheng, “TransGrasp: A Multi-Scale Hierarchical Point Transformer for 7-DoF Grasp Detection,” &lt;em&gt;2022 International Conference on Robotics and Automation&lt;/em&gt;, 2022. &lt;a href=&quot;https://doi.org/10.1109/ICRA46639.2022.9812001&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;C. Wang, H.-S. Fang, M. Gou, H. Fang, J. Gao, and C. Lu, “Graspness Discovery in Clutters for Fast and Accurate Grasp Detection,” &lt;em&gt;2021 IEEE/CVF International Conference on Computer Vision&lt;/em&gt;, 2021. &lt;a href=&quot;https://doi.org/10.1109/ICCV48922.2021.01566&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;H.-S. Fang et al., “AnyGrasp: Robust and Efficient Grasp Perception in Spatial and Temporal Domains,” &lt;em&gt;IEEE Transactions on Robotics&lt;/em&gt;, 39(5):3929–3945, 2023. &lt;a href=&quot;https://doi.org/10.1109/TRO.2023.3281153&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;S. Chen, P. Xie, W. Tang, D. Hu, Y. Dai, and G. Wang, “Region-aware Grasp Framework with Normalized Grasp Space for Efficient 6-DoF Grasping,” &lt;em&gt;Proceedings of the 8th Conference on Robot Learning&lt;/em&gt;, PMLR 270:1834–1850, 2024. &lt;a href=&quot;https://proceedings.mlr.press/v270/chen25c.html&quot;&gt;Paper&lt;/a&gt; · &lt;a href=&quot;https://arxiv.org/abs/2406.01767&quot;&gt;arXiv&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;M. Sundermeyer, A. Mousavian, R. Triebel, and D. Fox, “Contact-GraspNet: Efficient 6-DoF Grasp Generation in Cluttered Scenes,” &lt;em&gt;2021 IEEE International Conference on Robotics and Automation&lt;/em&gt;, 2021. &lt;a href=&quot;https://doi.org/10.1109/ICRA48506.2021.9561877&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;S. Kumra and C. Kanan, “Robotic Grasp Detection Using Deep Convolutional Neural Networks,” &lt;em&gt;2017 IEEE/RSJ International Conference on Intelligent Robots and Systems&lt;/em&gt;, 2017. &lt;a href=&quot;https://doi.org/10.1109/IROS.2017.8202237&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;R. Xu, F.-J. Chu, and P. A. Vela, “GKNet: Grasp Keypoint Network for Grasp Candidates Detection,” &lt;em&gt;The International Journal of Robotics Research&lt;/em&gt;, 2022. &lt;a href=&quot;https://doi.org/10.1177/02783649211069569&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;I. Lenz, H. Lee, and A. Saxena, “Deep Learning for Detecting Robotic Grasps,” &lt;em&gt;The International Journal of Robotics Research&lt;/em&gt;, 2015. &lt;a href=&quot;https://doi.org/10.1177/0278364914549607&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;</content:encoded><h:img src="https://pic.hana0721.top/72300463_p0_master1200.83amt5a3ia.webp"/><enclosure url="https://pic.hana0721.top/72300463_p0_master1200.83amt5a3ia.webp"/></item><item><title>Robotic Grasp Detection (5): 稠密、接触中心与体素抓取表示</title><link>https://agusexp25.top/blog/robotic-grasp-detection-5</link><guid isPermaLink="true">https://agusexp25.top/blog/robotic-grasp-detection-5</guid><description>比较点级、接触中心、抓取区域、图结构与体素抓取场，解释稠密预测如何摊销候选搜索，以及分辨率和解码如何决定实际覆盖率。</description><pubDate>Fri, 14 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;&lt;/p&gt;
&lt;h2&gt;稠密抓取表示的统一视角（A Unified View of Dense Grasp Representations）&lt;/h2&gt;
&lt;p&gt;第（4）篇讨论的采样式方法先提出很多候选，再逐个提取局部几何并评分。本篇讨论另一条路线：网络先对一组空间锚点（Spatial Anchors）共享计算特征，再在锚点处直接预测抓取参数。这样做的重点不是“输出一张更密的图”，而是把原本在连续 $SE(3)$ 中进行的搜索，改写成有限锚点上的并行回归、分类和后处理。&lt;/p&gt;
&lt;p&gt;设输入点云为：&lt;/p&gt;
&lt;p&gt;$$
P={\vec p_i}_{i=1}^{N},
\qquad
\vec p_i\in\mathbb R^3,
$$&lt;/p&gt;
&lt;p&gt;网络在一个锚点 $\vec a_j\in\mathbb R^3$ 附近输出一个抓取预测。平行夹爪的完整抓取可以写为：&lt;/p&gt;
&lt;p&gt;$$
g_j=(R_j,\vec t_j,w_j),
\qquad
R_j\in SO(3),\quad
\vec t_j\in\mathbb R^3,\quad
w_j\in\mathbb R_{\geq0},
$$&lt;/p&gt;
&lt;p&gt;其中 $R_j$ 是夹爪朝向，$\vec t_j$ 是夹爪参考点在场景坐标系中的位置，$w_j$ 是执行时的夹爪开口。不同工作并不一定直接预测这三个量：有的方法预测接触点和两个方向，有的方法预测体素中心和四元数，有的方法预测区域内的旋转热图。只要最终能够解码为 $(R_j,\vec t_j,w_j)$，它们就属于同一类问题。&lt;/p&gt;
&lt;p&gt;可以把一个稠密预测器抽象为：&lt;/p&gt;
&lt;p&gt;$$
F_{\vartheta}(P)
={(s_j,\delta_j,\rho_j,\omega_j)}_{j=1}^{M},
$$&lt;/p&gt;
&lt;p&gt;其中 $M$ 是锚点数，$s_j$ 是该锚点的抓取分数或前景分数，$\delta_j$ 是位置修正，$\rho_j$ 是方向表示，$\omega_j$ 是宽度表示。解码器 $D$ 再将它们变成有限候选集合：&lt;/p&gt;
&lt;p&gt;$$
\widehat{\mathcal G}
=D\left(F_{\vartheta}(P)\right)
={g_1,\ldots,g_K}.
$$&lt;/p&gt;
&lt;p&gt;这里有三个容易混淆的概念：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;**锚点（Anchor）**是网络输出所在的空间位置，例如输入点、体素中心或局部区域中心；&lt;/li&gt;
&lt;li&gt;**预测参数（Predicted Parameters）**是锚点附近的方向、中心偏移、深度和宽度；&lt;/li&gt;
&lt;li&gt;**候选抓取（Decoded Grasp）**是经过坐标恢复、碰撞过滤和非极大值抑制后真正交给规划器的姿态。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;因此，稠密网络并没有把连续的抓取空间完全消除。点采样密度、体素边长、方向桶、局部区域大小和解码规则共同决定了它能够覆盖哪些抓取。&lt;/p&gt;
&lt;h2&gt;为什么要改变抓取表示（Why Change the Representation）&lt;/h2&gt;
&lt;p&gt;直接从点云回归一个 $SE(3)$ 姿态有两个困难。第一，成功抓取通常是多模态的：一个杯子可能有杯身、杯口和把手等不同抓取模式。第二，抓取成功区域很窄，几毫米的平移或几度的旋转都可能改变接触和碰撞关系。若网络在一个锚点上只回归单个平均姿态，两个正确模式的平均值可能落在失败区域。&lt;/p&gt;
&lt;p&gt;稠密表示通常通过以下方式缓解这个问题：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;用大量空间锚点表达“在哪里可能抓”；&lt;/li&gt;
&lt;li&gt;用方向分类或方向锚点代替一次性回归任意旋转；&lt;/li&gt;
&lt;li&gt;用接触点、区域或体素中心把位置预测绑定到可观测几何；&lt;/li&gt;
&lt;li&gt;用宽度、深度和质量头把不同物理量分开监督；&lt;/li&gt;
&lt;li&gt;在网络输出之后保留多个峰值，而不是只取全局最大值。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这种分解带来的代价是标签生成和解码更加重要。网络的损失下降，并不自动意味着最终候选覆盖率高；如果正样本只落在少数锚点，模型仍可能漏掉细把手、背面接触或相邻物体之间的窄空间。&lt;/p&gt;
&lt;h2&gt;点级直接预测：PointNet++ Grasping（Point-Wise Direct Prediction）&lt;/h2&gt;
&lt;h3&gt;将输入点作为抓取锚点&lt;/h3&gt;
&lt;p&gt;PointNet++ Grasping 的出发点是：如果测试时仍然需要先随机采样候选，稀疏点云中的小物体和细结构可能需要大量采样才能被碰到。因此，它让点云中的每个输入点直接承担一个潜在抓取锚点的角色，使用 PointNet++ 的层次化点特征一次预测多个空间抓取 [1]。&lt;/p&gt;
&lt;p&gt;论文采用平行夹爪、已知夹爪几何和单深度相机等假设，并进一步假设夹爪接近方向沿抓取点处的表面法线。对一个点级抓取，论文使用以下几何量：&lt;/p&gt;
&lt;p&gt;$$
g_i=(\vec p_i,\vec n_i,\vec r_i,d_i),
$$&lt;/p&gt;
&lt;p&gt;其中 $\vec p_i\in\mathbb R^3$ 是抓取点，$\vec n_i\in\mathbb R^3$ 是单位接近向量，$\vec r_i\in\mathbb R^3$ 是夹爪开口方向，$d_i\in\mathbb R$ 是相对于抓取点沿接近方向的距离。论文的网络同时预测点是否适合产生抓取、$\vec n_i$ 和 $\vec r_i$；接近距离则根据抓取点下方点云的最深位置和夹爪允许的最大深度计算，而不是作为一个完全自由的回归量。&lt;/p&gt;
&lt;p&gt;在解码时，$\vec n_i$ 和 $\vec r_i$ 需要先规范化并正交化。可以将开口方向投影到垂直于接近方向的平面：&lt;/p&gt;
&lt;p&gt;$$
\vec r_i^{\perp}
=\vec r_i-(\vec r_i^{\mathsf T}\vec n_i)\vec n_i,
\qquad
\vec b_i
=\frac{\vec r_i^{\perp}}{\lVert\vec r_i^{\perp}\rVert_2}.
$$&lt;/p&gt;
&lt;p&gt;若 $\lVert\vec r_i^{\perp}\rVert_2$ 太小，说明网络预测的两个方向近似平行，无法形成稳定的夹爪坐标系，该点应被拒绝或使用回退方向。这个数值检查是“向量回归”与“可执行姿态”之间的必要接口。&lt;/p&gt;
&lt;h3&gt;为什么需要多掩码损失&lt;/h3&gt;
&lt;p&gt;PointNet++ Grasping 的训练标签来自单物体抓取规划和多物体场景构造。单物体阶段使用 Ferrari–Canny 力闭合指标（Ferrari–Canny Force-Closure Metric）评估抓取，并为同一位置保留主抓取和补充抓取；多物体阶段还要进行场景碰撞检查。这样得到的每个场景点并不一定同时拥有所有标签：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;背景点没有法线抓取标签；&lt;/li&gt;
&lt;li&gt;负抓取点可以有“不可抓”标签，但没有有效姿态回归目标；&lt;/li&gt;
&lt;li&gt;正抓取点才有方向、质量和类别等监督。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;因此，论文为每个点附带不同任务的掩码（Mask），分别控制法线、开口方向、抓取类别和质量损失。用 $m_i^{(u)}\in{0,1}$ 表示第 $u$ 个任务在点 $i$ 上是否有标签，$\hat y_i^{(u)}$ 和 $y_i^{(u)}$ 分别表示预测与标签，则一个带掩码的回归损失可以写成：&lt;/p&gt;
&lt;p&gt;$$
\mathcal L_u
=\frac{1}{\sum_i m_i^{(u)}+\epsilon}
\sum_{i=1}^{N}
m_i^{(u)},\ell_u\left(\hat y_i^{(u)},y_i^{(u)}\right),
$$&lt;/p&gt;
&lt;p&gt;其中 $\epsilon&gt;0$ 防止一个批次中没有该类标签时除零。掩码的作用不是忽略困难样本，而是避免把“没有定义的姿态”误当成零向量监督。若背景点被大量填成零角度和零宽度，网络会学到数据集编码习惯，而不是抓取几何。&lt;/p&gt;
&lt;p&gt;PointNet++ 的 Set-Abstraction 层先在不同半径内聚合局部点，再通过 Feature-Propagation 层把特征传播回点级输出。相比逐候选 CNN，这种结构不需要为每个候选重新裁剪局部输入；相比纯全局池化，它还保留了点的空间邻域。但它的性能上限仍受点云采样影响：如果细把手在输入中没有足够点，点级头部没有新的几何信息可以恢复它。&lt;/p&gt;
&lt;h2&gt;接触中心表示：Contact-GraspNet（Contact-Centric Generation）&lt;/h2&gt;
&lt;h3&gt;从完整位姿改写为接触点加方向&lt;/h3&gt;
&lt;p&gt;Contact-GraspNet 的关键观察是：对于大多数可预测的平行夹爪抓取，至少有一个指尖接触点在抓取前可见。与其在整个 $SE(3)$ 空间预测夹爪参考点，不如先在观测表面上预测“哪个点可以作为接触”，再从该点恢复夹爪姿态 [2]。&lt;/p&gt;
&lt;p&gt;设 $\vec c\in\mathbb R^3$ 是一个可见接触点，$\vec a\in\mathbb R^3$ 是单位接近方向，$\vec b\in\mathbb R^3$ 是单位夹爪基线方向，且二者正交：&lt;/p&gt;
&lt;p&gt;$$
\lVert\vec a\rVert_2=1,
\qquad
\lVert\vec b\rVert_2=1,
\qquad
\vec a^{\mathsf T}\vec b=0.
$$&lt;/p&gt;
&lt;p&gt;设 $d\in\mathbb R$ 是夹爪基线到夹爪参考坐标原点的固定距离，$w\in\mathbb R_{\geq0}$ 是夹爪开口，则论文使用：&lt;/p&gt;
&lt;p&gt;$$
\vec t_g
=\vec c+\frac{w}{2}\vec b+d\vec a,
$$&lt;/p&gt;
&lt;p&gt;以及：&lt;/p&gt;
&lt;p&gt;$$
R_g
=\begin{bmatrix}\vec b &amp;#x26; \vec a\times\vec b &amp;#x26; \vec a\end{bmatrix}
\in SO(3).
$$&lt;/p&gt;
&lt;p&gt;这里 $\vec c$ 可以理解为其中一个指尖接触位置：沿 $\vec b$ 方向移动 $w$ 后，另一侧理想接触位置约为 $\vec c+w\vec b$；夹爪参考点则位于两接触位置的中间并沿 $\vec a$ 偏移。这个参数化把位置的一部分直接绑定到真实观测表面，因此比任意回归 $\vec t_g\in\mathbb R^3$ 更容易产生靠近物体的候选。&lt;/p&gt;
&lt;p&gt;网络首先预测两个三维向量，再用 Gram–Schmidt 正交化（Gram–Schmidt Orthonormalization）得到 $\vec a$ 和 $\vec b$。设网络原始输出为 $\vec z_1,\vec z_2\in\mathbb R^3$，一种实现为：&lt;/p&gt;
&lt;p&gt;$$
\hat{\vec b}=\frac{\vec z_1}{\lVert\vec z_1\rVert_2},
\qquad
\hat{\vec a}
=\frac{\vec z_2-(\hat{\vec b}^{\mathsf T}\vec z_2)\hat{\vec b}}
{\left|\vec z_2-(\hat{\vec b}^{\mathsf T}\vec z_2)\hat{\vec b}\right|_2}.
$$&lt;/p&gt;
&lt;p&gt;如果分母接近零，说明两个原始方向无法稳定构造旋转，推理时应降低置信度或丢弃候选。网络因此不必依靠损失函数“希望”两个向量正交，而是把正交约束写进解码过程。&lt;/p&gt;
&lt;h3&gt;训练标签如何投影到观测点&lt;/h3&gt;
&lt;p&gt;Contact-GraspNet 使用 ACRONYM 的大规模网格抓取标注，并把物体网格上的成功抓取映射到可见场景点。具体过程包含三个坐标和邻域关系：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;在离线网格上记录每个非碰撞成功抓取与物体表面的接触点；&lt;/li&gt;
&lt;li&gt;从随机相机视角渲染部分场景点云；&lt;/li&gt;
&lt;li&gt;若一个观测点与某个网格接触点的距离不超过 $5,\mathrm{mm}$，就把它标为正接触点，并关联距离最近的成功抓取。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;于是，一个点级正标签不只是“这个点附近存在成功抓取”，还携带对应的 $R_g$、$\vec t_g$ 和 $w$。如果一个点附近有多个成功模式，训练时选择最近或关联的抓取并不等于完整表示了所有模式；Contact-GraspNet 通过在整个可见点集上保留大量接触点来近似覆盖这些模式。&lt;/p&gt;
&lt;p&gt;网络采用 PointNet++ 风格的编码器—解码器。论文实现中先输入约 $20{,}000$ 个随机点，再选择 $2{,}048$ 个最远点（Farthest Points）产生输出，以在显存限制下保持空间覆盖。每个输出点有四类预测：接触成功分数、两个三维方向向量，以及十个宽度区间的分类得分。&lt;/p&gt;
&lt;h3&gt;为什么姿态损失要和接触置信度耦合&lt;/h3&gt;
&lt;p&gt;仅对每个输出头分别计算损失，会出现一个问题：网络可能在错误的位置预测了一个看似合理的姿态。论文在夹爪模型上选取五个固定点 ${\vec v_m}_{m=1}^{5}$，把真实姿态和预测姿态作用到这些点上：&lt;/p&gt;
&lt;p&gt;$$
\vec v_m^{,&lt;em&gt;}
=R_g\vec v_m+\vec t_g,
\qquad
\hat{\vec v}_m
=\hat R_g\vec v_m+\hat{\vec t}_g,
\qquad
\vec v_m^{,&lt;/em&gt;},\hat{\vec v}_m\in\mathbb R^3.
$$&lt;/p&gt;
&lt;p&gt;对每个正接触点，计算预测夹爪点集与最近真实抓取点集之间的平均距离，并乘以预测接触分数。用 $\hat s_i$ 表示点 $i$ 的预测接触分数，用 $\mathcal G_i^*$ 表示与它关联的真实抓取集合，可以写成：&lt;/p&gt;
&lt;p&gt;$$
\mathcal L_{\mathrm{add-s}}
=\frac{1}{N_+}
\sum_{i\in\mathcal P_+}
\hat s_i
\min_{g^&lt;em&gt;\in\mathcal G_i^&lt;/em&gt;}
\left[
\frac{1}{5}\sum_{m=1}^{5}
\left|\hat{\vec v}&lt;em&gt;{im}-\vec v&lt;/em&gt;{im}^{,*}\right|_2
\right],
$$&lt;/p&gt;
&lt;p&gt;其中 $\mathcal P_+$ 是正接触点集合，$N_+=|\mathcal P_+|$。这个损失形成了一个有用的闭环：若预测的姿态离所有真实抓取都很远，接触分数不能仅凭位置特征维持高值；若一个点附近存在多个真实抓取，最小距离允许网络学习其中任意一个模式。论文还对接触分数的二元交叉熵只反向传播误差最大的前 $512$ 个点，以缓解正负点数量严重不平衡。&lt;/p&gt;
&lt;h3&gt;推理时如何从接触点得到场景抓取&lt;/h3&gt;
&lt;p&gt;推理流程不是“得到接触点就执行”，还需要把接触候选变成完整机器人姿态：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;从点云特征输出每个点的接触分数、方向和宽度；&lt;/li&gt;
&lt;li&gt;依据分数保留可见接触点，并将两个方向正交化；&lt;/li&gt;
&lt;li&gt;根据 $\vec t_g=\vec c+\frac{w}{2}\vec b+d\vec a$ 解码平移，根据 $R_g$ 解码旋转；&lt;/li&gt;
&lt;li&gt;在目标物体分割区域内关联接触点，删除接触点落在其他物体或背景上的候选；&lt;/li&gt;
&lt;li&gt;进行夹爪碰撞、运动学可达性和候选去重检查。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;接触表示的局限也正来自它的优点：它把抓取锚定在可见表面。如果一个可靠抓取需要两个都被遮挡的接触，或者可见表面与真实接触之间存在较大深度误差，网络需要依靠形状先验外推，不能从接触参数化中凭空获得隐藏几何。&lt;/p&gt;
&lt;h2&gt;Graspness：把候选预算分配到可抓区域（Graspness as a Proposal Prior）&lt;/h2&gt;
&lt;p&gt;Contact-GraspNet 直接从点生成姿态；Graspness Discovery / GSNet 则进一步把问题拆成“哪里值得花计算”和“在这里如何抓”两步 [3]。抓取性（Graspness）不是某个固定的力学指标，而是对一个点或一个点—接近方向组合，在给定候选生成规则下成功抓取比例的统计描述。&lt;/p&gt;
&lt;h3&gt;抓取性标签不是点的固有属性&lt;/h3&gt;
&lt;p&gt;设点云中第 $i$ 个点为 $\vec p_i$，在其周围对第 $j$ 个接近方向生成候选集合 $\mathcal G_{i,j}$。如果 $q(g)$ 是解析抓取质量，$\tau_q$ 是“可接受抓取”的阈值，则一个可操作的点级抓取性标签可以写为：&lt;/p&gt;
&lt;p&gt;$$
s_i^{\mathrm p}
=\frac{\sum_j\sum_{g\in\mathcal G_{i,j}}
\mathbf 1[q(g)&gt;\tau_q]}
{\sum_j|\mathcal G_{i,j}|}.
$$&lt;/p&gt;
&lt;p&gt;同一个点如果换一套深度采样、摩擦系数、夹爪尺寸或碰撞规则，$s_i^{\mathrm p}$ 就会改变。因此 Graspness 不是物体表面自带的真值，而是“点 + 候选生成协议 + 质量判据”的函数。场景中还要额外考虑邻物体碰撞，并将物体模型上的标签通过最近邻映射到部分观测点。&lt;/p&gt;
&lt;p&gt;除了点级分数，GSNet 还为每个点的多个接近方向预测视角级抓取性：&lt;/p&gt;
&lt;p&gt;$$
\vec s_i^{\mathrm v}
=\left[s_{i,1}^{\mathrm v},\ldots,s_{i,V}^{\mathrm v}\right]
\in[0,1]^V,
$$&lt;/p&gt;
&lt;p&gt;其中 $V$ 是球面上采样的接近方向数。点级分数回答“这里有没有希望”，视角级分数回答“从哪个方向靠近更有希望”。两者分开后，网络不会为整片场景的所有点都计算昂贵的方向条件姿态。&lt;/p&gt;
&lt;h3&gt;GSNet 的级联结构&lt;/h3&gt;
&lt;p&gt;GSNet 使用稀疏三维卷积的编码器—解码器提取点特征，随后使用级联抓取性模型（Cascaded Graspness Model）：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Objectness&lt;/strong&gt;：区分物体表面点与背景点；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Point-wise Graspness&lt;/strong&gt;：为物体点输出点级抓取性；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Graspable FPS&lt;/strong&gt;：只在高抓取性点中使用最远点采样，保留空间多样性；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;View-wise Graspness&lt;/strong&gt;：对每个种子点的多个球面方向打分；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Probabilistic View Selection&lt;/strong&gt;：按照视角分数形成概率并选择点—视角对；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Grasp Operation&lt;/strong&gt;：在选中的点—视角对周围建立定向圆柱，提取局部点并预测抓取分数、宽度、绕轴角和接近深度。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;论文实现中先从场景选择 $M=1024$ 个种子点，对每个点采样 $V=300$ 个视角；在抓取操作阶段，圆柱局部区域采样 $K=16$ 个点，绕接近方向离散为 $A=12$ 个角度，接近深度离散为 $D=4$ 个类别。因此，一个种子点—视角对并不只对应一个姿态，而对应 $A\times D=48$ 个角度—深度组合，每个组合输出抓取分数和夹爪宽度。&lt;/p&gt;
&lt;p&gt;这种设计的计算逻辑是：先用廉价的点级和视角级预测缩小搜索，再用局部 PointNet 对少量候选进行精细操作。若点级阈值过高，真正可抓区域在第一阶段就会被删除；若阈值过低，后面的圆柱分组和 $48$ 个组合预测又会失去效率优势。&lt;/p&gt;
&lt;p&gt;GSNet 的抓取分数使用与最小摩擦系数相关的归一化质量，并通过多任务损失同时训练物体性、点级抓取性、视角抓取性、抓取分数和宽度。这个例子说明“抓取性”最好被理解为候选生成的先验，而不能直接当作最终执行成功概率。&lt;/p&gt;
&lt;h2&gt;区域级表示：从一个点扩大到一个局部抓取空间（Region-Level Representation）&lt;/h2&gt;
&lt;p&gt;点级锚点计算高效，但单个点的特征未必包含完整夹爪闭合区域中的几何。REGNet 因此先从点云中分割物体表面和抓取区域，再在区域内预测和精化姿态 [4]。&lt;/p&gt;
&lt;h3&gt;REGNet：区域提议与闭合区域精化&lt;/h3&gt;
&lt;p&gt;REGNet 的流程可以拆成三个网络：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Segmentation Network, SN&lt;/strong&gt;：输出点级物体/背景分数；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Grasp Region Network, GRN&lt;/strong&gt;：在正物体点周围构造球形抓取区域，使用区域点特征产生粗抓取提议；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Refine Network, RN&lt;/strong&gt;：将粗抓取的闭合区域变换到抓取坐标系，并融合区域特征与闭合区域特征进行精化。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;GRN 使用抓取锚点（Grasp Anchor）而不是直接回归任意旋转。对正点 $\vec p_a$，预先在球面上设置一组参考方向 $\vec r_{a,i}$，每个方向对应一个候选方向类别；网络预测最接近的锚点类别及其残差，同时回归中心偏移和绕接近轴角度。分类负责把预测拉到正确的方向邻域，Smooth-$L_1$ 回归负责在该邻域内提高精度。&lt;/p&gt;
&lt;p&gt;RN 的输入不是单个点，而是候选夹爪闭合体积中的点集。点首先被变换到候选抓取坐标系：&lt;/p&gt;
&lt;p&gt;$$
\vec x_G=R^{\mathsf T}(\vec x-\vec t),
\qquad
\vec x,\vec t\in\mathbb R^3,
\quad R\in SO(3).
$$&lt;/p&gt;
&lt;p&gt;这样，网络看到的是“夹爪相对于局部几何的关系”，而不是依赖相机坐标系中的绝对姿态。REGNet 的区域设计解决了单点上下文不足的问题，但也带来两类误差：正点选择错误会让后续没有正确区域；区域半径过小看不到完整闭合几何，过大则会混入邻物体并增加计算量。&lt;/p&gt;
&lt;p&gt;TransGrasp 从特征聚合角度处理相似问题。它仍然以点为输出锚点，但用多尺度局部—全局 Transformer（Multi-Scale Local-Global Transformer）建模远距离点之间的关系，并用层次化协同注意力上采样（Hierarchical Co-Attention Upsampling）把高层场景信息传回较密的点集 [5]。这类关系对抓取很有用：远处的物体轮廓和邻物体位置能够帮助网络判断候选是否会发生碰撞，而不同尺度的局部几何能够减轻点云密度不均匀的影响。TransGrasp 的 7-DoF 输出把夹爪宽度作为 6-DoF 位姿之外的一个量，仍然可以在平行夹爪抓取的解码阶段还原为 $(R,\vec t,w)$。它说明“稠密表示”的改进不只发生在输出头，也可以发生在锚点之间如何共享上下文。&lt;/p&gt;
&lt;h3&gt;Normalized Grasp Space：先归一化再预测区域姿态&lt;/h3&gt;
&lt;p&gt;Region-Aware Grasp Framework with Normalized Grasp Space 进一步关注区域尺度和相机距离变化 [8]。它以 RGB-D 图像为输入，先用抓取位置热图找到区域中心，再依据深度生成真实尺度近似恒定的局部 patch。设 patch 中心深度为 $z_i\in\mathbb R_{&gt;0}$，相机焦距为 $F\in\mathbb R_{&gt;0}$，参考物理感受野为 $w_{\mathrm{ref}}\in\mathbb R_{&gt;0}$，则 patch 在图像上的边长可写为：&lt;/p&gt;
&lt;p&gt;$$
r_i=\frac{w_{\mathrm{ref}}F}{z_i}.
$$&lt;/p&gt;
&lt;p&gt;相机越远，同样的真实物理区域占用的像素越小，因此 $r_i$ 随 $1/z_i$ 缩放。裁剪得到的 RGB-D patch 会通过相机内参转成 XYZ 坐标图。设 patch 的三维坐标张量为 $P_i\in\mathbb R^{S\times S\times3}$，中心三维点为 $\vec p_i\in\mathbb R^3$，归一化后的局部输入为：&lt;/p&gt;
&lt;p&gt;$$
P_i^*=\frac{P_i-\vec p_i}{w_{\mathrm{ref}}}.
$$&lt;/p&gt;
&lt;p&gt;抓取标签也必须进行同样变换。若场景中的真实抓取为 $(R_j,\vec t_j,w_j)$，只保留中心距离满足：&lt;/p&gt;
&lt;p&gt;$$
\left|\vec t_j-\vec p_i\right|&lt;em&gt;2
&amp;#x3C;0.1w&lt;/em&gt;{\mathrm{ref}},
$$&lt;/p&gt;
&lt;p&gt;然后将其局部平移和宽度归一化：&lt;/p&gt;
&lt;p&gt;$$
\vec t_j^&lt;em&gt;=\frac{\vec t_j-\vec p_i}{w_{\mathrm{ref}}},
\qquad
w_j^&lt;/em&gt;=\frac{w_j}{w_{\mathrm{ref}}},
\qquad
R_j^*=R_j.
$$&lt;/p&gt;
&lt;p&gt;网络在这个 Normalized Grasp Space 中预测局部旋转热图、中心偏移和宽度，最后执行逆归一化：&lt;/p&gt;
&lt;p&gt;$$
\vec t_j=\vec p_i+w_{\mathrm{ref}}\vec t_j^&lt;em&gt;,
\qquad
w_j=w_{\mathrm{ref}}w_j^&lt;/em&gt;.
$$&lt;/p&gt;
&lt;p&gt;归一化带来了平移不变性和一定的尺度不变性，也让不同相机距离的局部区域具有更接近的物理尺度。但它并不是免费的不变性：深度噪声会影响 $r_i$ 和三维坐标，中心热图的误差会改变整个 patch，参考感受野和真实夹爪尺寸不匹配时仍可能出现漏抓或碰撞。&lt;/p&gt;
&lt;h2&gt;体素抓取场：VGN（Volumetric Grasp Field）&lt;/h2&gt;
&lt;p&gt;点级和区域级方法在不规则点集上工作；VGN 将固定工作空间离散为三维体素，并让每个体素中心对应一个抓取姿态 [6]。它的输入不是只包含表面的点坐标，而是截断符号距离场（Truncated Signed Distance Field, TSDF）。&lt;/p&gt;
&lt;h3&gt;TSDF 如何把深度变成三维卷积输入&lt;/h3&gt;
&lt;p&gt;设固定工作空间被划分为 $N_V\times N_V\times N_V$ 个体素，体素边长为 $v\in\mathbb R_{&gt;0}$。对体素中心 $\vec x$，根据深度观测计算其到最近表面的带符号距离 $d(\vec x)\in\mathbb R$，再用截断距离 $\tau\in\mathbb R_{&gt;0}$ 限制范围：&lt;/p&gt;
&lt;p&gt;$$
D(\vec x)
=\operatorname{clip}\left(\frac{d(\vec x)}{\tau},-1,1\right).
$$&lt;/p&gt;
&lt;p&gt;自由空间、表面附近和表面后方的体素会得到不同符号或数值。多帧深度可以在同一个体素网格中融合，从而让网络使用邻域、空闲空间和表面距离，而不必每次只看一张深度图的局部投影。&lt;/p&gt;
&lt;p&gt;VGN 的网络是全卷积网络（Fully Convolutional Network, FCN），输出与输入体素网格对齐的三个张量：&lt;/p&gt;
&lt;p&gt;$$
\hat Q\in[0,1]^{N_V\times N_V\times N_V},
$$&lt;/p&gt;
&lt;p&gt;$$
\hat R\in\mathbb R^{N_V\times N_V\times N_V\times4},
\qquad
\hat W\in\mathbb R^{N_V\times N_V\times N_V}.
$$&lt;/p&gt;
&lt;p&gt;其中 $\hat Q_{ijk}$ 是在体素中心执行抓取的预测成功概率，$\hat R_{ijk}$ 是四元数方向，$\hat W_{ijk}$ 是开口宽度。四元数最后要归一化到单位球面；它只表示旋转，不包含体素中心的平移。&lt;/p&gt;
&lt;h3&gt;VGN 的监督与平行夹爪对称性&lt;/h3&gt;
&lt;p&gt;仿真抓取标签需要先转换到 TSDF 网格坐标。设 $T_{RV}$ 是机器人基座坐标系到体素体积坐标系的刚体变换，$\vec t$ 是基座坐标系中的抓取中心，则体素索引近似为：&lt;/p&gt;
&lt;p&gt;$$
\tilde{\vec t}=\frac{T_{RV}(\vec t)}{v},
\qquad
\tilde w=\frac{w}{v}.
$$&lt;/p&gt;
&lt;p&gt;标签只在有真实抓取监督的体素位置计算损失，而不是强行给所有体素填写一个姿态。设 $q_i\in{0,1}$ 是体素 $i$ 的仿真成功标签，$\hat q_i$、$\hat r_i$、$\hat w_i$ 是网络预测，标签宽度和旋转为 $\tilde w_i$、$\tilde r_i$，则可写成：&lt;/p&gt;
&lt;p&gt;$$
\mathcal L_i
=\mathcal L_q(\hat q_i,q_i)
+q_i\left[
\mathcal L_r(\hat r_i,\tilde r_i)
+\mathcal L_w(\hat w_i,\tilde w_i)
\right].
$$&lt;/p&gt;
&lt;p&gt;正标签才需要姿态和宽度损失；对失败体素强行回归“失败姿态”没有物理意义。旋转损失还必须处理单位四元数的符号等价性：$\vec r$ 与 $-\vec r$ 表示同一个旋转。平行夹爪还存在绕夹爪对称轴旋转 $\pi$ 后物理等价的情况，因此 VGN 对原旋转标签和其对称旋转都计算距离并取较小值：&lt;/p&gt;
&lt;p&gt;$$
\mathcal L_r(\hat r_i,\tilde r_i)
=\min\left(
1-\left|\hat r_i^{\mathsf T}\tilde r_i\right|,
1-\left|\hat r_i^{\mathsf T}\tilde r_i^{\pi}\right|
\right).
$$&lt;/p&gt;
&lt;p&gt;如果忽略这种对称性，网络即使预测了物理上等价的姿态，也可能被损失错误惩罚，表现为旋转回归不稳定。&lt;/p&gt;
&lt;h3&gt;从体素场到有限候选&lt;/h3&gt;
&lt;p&gt;VGN 的一个高分体素并不是最终动作。论文的解码流程包含：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;对质量体素做三维高斯平滑，使局部高质量区域形成稳定峰值；&lt;/li&gt;
&lt;li&gt;删除离表面太近、手指深度无法容纳的体素；&lt;/li&gt;
&lt;li&gt;用质量阈值删除低分体素；&lt;/li&gt;
&lt;li&gt;对剩余体素执行三维非极大值抑制；&lt;/li&gt;
&lt;li&gt;在保留的体素位置读取旋转和宽度，反变换到机器人坐标系；&lt;/li&gt;
&lt;li&gt;检查夹爪与场景碰撞、接近方向和机器人可达性。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;这一流程解释了为什么“每个体素输出一个抓取”不会导致最终执行数目爆炸：质量峰值提取和 NMS 将体素场压缩成有限候选。但它也说明，体素边长、质量阈值和 NMS 半径都是方法的一部分。&lt;/p&gt;
&lt;p&gt;若体素边长从 $v$ 减半，在相同三维工作空间内体素数量约增加到原来的八倍。粗网格会抹平薄物体和窄缝；细网格会增加显存、卷积和解码成本。VGN 还在每个体素只预测一个姿态，因此同一中心附近多个方向的多模态分布无法完全表达；它用高质量单峰候选和后处理效率换取了表示简洁性。&lt;/p&gt;
&lt;h2&gt;其他锚点：图结构与概率关键点（Graph and Keypoint Anchors）&lt;/h2&gt;
&lt;h3&gt;GraNet：让候选感知场景关系&lt;/h3&gt;
&lt;p&gt;前面的点级表示通常通过局部邻域编码几何，但点与点之间的关系仍由网络隐式学习。GraNet 构造多层图（Multi-Level Graph），使用图特征嵌入（Graph Feature Embedding, GFE）、抓取点选择（Grasp Point Selection, GPS）和抓取姿态生成（Grasp Pose Generation, GPG）三个模块 [7]。&lt;/p&gt;
&lt;p&gt;GFE 在点图上聚合多跳邻域，同时融合局部注意力、全局池化和位置编码；GPS 先删除背景点，再根据场景中遮挡和空间分布筛选有价值的抓取点；GPG 在保留的节点上分解预测接近方向、绕轴旋转、宽度和深度。图结构的价值在于把邻近物体和候选之间的关系带进表示，但它依赖邻接边的定义。邻域半径过小会看不到碰撞物，过大则增加图传播和错误关系；如果物体分组或背景过滤错误，图网络也会传播错误信息。&lt;/p&gt;
&lt;h3&gt;KGN-Pro：从二维关键点概率恢复三维姿态&lt;/h3&gt;
&lt;p&gt;KGN-Pro 使用 RGB-D 输入中的二维抓取关键点概率，再通过概率二维—三维对应（Probabilistic 2D–3D Correspondence）和可微分透视 $n$ 点求解（Differentiable Perspective-$n$-Point, PnP）恢复 6-DoF 姿态 [9]。对一个候选，网络先预测抓取中心热图 $H$、中心亚像素偏移 $S$、中心到四个夹爪关键点的偏移 $O$，以及每个关键点的二维置信度。设夹爪模型中的三维关键点为 $\vec X_j\in\mathbb R^3$，对应像素为 $\vec u_j\in\mathbb R^2$，相机内参为 $K\in\mathbb R^{3\times3}$，理想投影满足：&lt;/p&gt;
&lt;p&gt;$$
\lambda_j\begin{bmatrix}\vec u_j\1\end{bmatrix}
=K\left(R\vec X_j+\vec t\right),
\qquad
\lambda_j\in\mathbb R_{&gt;0}.
$$&lt;/p&gt;
&lt;p&gt;如果只取热图最大值，遮挡关键点的一个错误峰值可能明显拉偏整体姿态。KGN-Pro 将加权重投影误差写成概率模型，并通过 Monte Carlo Pose Loss 对多个姿态样本进行优化；同时用最近邻匹配把预测姿态分配给最接近的物理可行抓取标签。这样，3D 姿态监督可以通过可微分 PnP 回传到二维关键点图，而不是在不可微 PnP 之后中断。它的优点是可以借用成熟的二维特征提取器，并保留亚像素定位精度；缺点是二维对应误差会经过 PnP 放大为三维旋转和平移误差，且必须明确夹爪模型关键点与实际平行夹爪之间的几何对应。&lt;/p&gt;
&lt;h2&gt;稠密抓取检测的训练流程（Training a Dense Grasp Detector）&lt;/h2&gt;
&lt;p&gt;无论锚点是点、接触点、区域还是体素，训练流程都可以分解为“把连续抓取标签分配给锚点—预测局部参数—只在有意义的位置计算损失”。下面给出抽象流程；不同论文在标签来源、方向参数化和损失权重上有所不同。&lt;/p&gt;
&lt;p&gt;这个流程中最容易被忽略的是“标签分配”。如果一个真实抓取只被分配到离它很远的体素，网络学到的中心会系统性偏移；如果同一个锚点附近存在多个互相冲突的旋转，却只保留一个角度标签，回归头会受到多模态平均的影响。实际实现会通过多锚点、方向分类、最近模式匹配、最小姿态距离或多标签监督缓解这一问题。&lt;/p&gt;
&lt;h2&gt;推理与解码：网络输出如何变成机器人候选（Inference and Decoding）&lt;/h2&gt;
&lt;p&gt;网络输出的张量仍然不是机器人可以直接执行的位姿。一个与表示无关的解码接口通常包含以下步骤：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;恢复坐标&lt;/strong&gt;：把归一化区域、体素索引或相机坐标转换回统一的机器人基座坐标系；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;恢复姿态&lt;/strong&gt;：对四元数归一化，对方向向量正交化，对角度或方向桶解码残差；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;恢复宽度&lt;/strong&gt;：把归一化宽度、宽度桶或网络输出截断到夹爪的物理开口范围；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;质量筛选&lt;/strong&gt;：按分数阈值保留候选，并明确分数是解析质量、仿真成功概率还是网络置信度；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;空间去重&lt;/strong&gt;：按平移、旋转和夹爪对称性执行 NMS；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;执行过滤&lt;/strong&gt;：检查指尖、手掌、腕部和接近轨迹与场景的碰撞，再检查逆运动学和控制器约束。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;设两个候选为 $g_i=(R_i,\vec t_i,w_i)$ 和 $g_j=(R_j,\vec t_j,w_j)$。一个考虑平移和旋转的去重距离可以写成：&lt;/p&gt;
&lt;p&gt;$$
d_{\mathrm{grasp}}(g_i,g_j)
=\frac{\lVert\vec t_i-\vec t_j\rVert_2}{\sigma_t}
+\frac{d_R^{\mathrm{sym}}(R_i,R_j)}{\sigma_R},
$$&lt;/p&gt;
&lt;p&gt;其中 $\sigma_t\in\mathbb R_{&gt;0}$ 和 $\sigma_R\in\mathbb R_{&gt;0}$ 是阈值尺度，$d_R^{\mathrm{sym}}$ 在平行夹爪等价旋转集合中取最小角距离。只按位置去重会删除同一点的顶抓和侧抓；只按角度去重又会留下大量空间重复姿态。&lt;/p&gt;
&lt;h3&gt;生成和评分必须分开报告&lt;/h3&gt;
&lt;p&gt;稠密检测器常被概括成“速度快”，但速度至少包含三部分：共享特征提取、锚点解码和候选后处理。比较方法时需要说明：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;输入点数、体素尺寸或区域数；&lt;/li&gt;
&lt;li&gt;每个锚点生成多少方向、深度和宽度组合；&lt;/li&gt;
&lt;li&gt;质量阈值、NMS 半径和碰撞检查是否开启；&lt;/li&gt;
&lt;li&gt;最终保留多少候选、Top-$k$ 使用的 $k$ 是多少；&lt;/li&gt;
&lt;li&gt;评测使用力闭合、仿真执行还是真实机器人成功率。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;否则，一个只保留少量候选的方法可能看起来推理很快，但它的覆盖率也可能更低；一个保留大量候选的方法可能排序质量更高，却把成本推迟到碰撞检查和运动规划。&lt;/p&gt;
&lt;h2&gt;评测：分数、覆盖与分辨率的关系（Evaluation and Resolution Trade-offs）&lt;/h2&gt;
&lt;h3&gt;GraspNet-1Billion 中的候选评测&lt;/h3&gt;
&lt;p&gt;GraspNet-1Billion 等 6-DoF 基准通常先对检测结果做抓取 NMS，再取前若干候选，在不同摩擦系数和力闭合条件下计算平均精度（Average Precision, AP）或相关成功指标。这样的指标同时依赖候选覆盖和排序质量：如果正确抓取根本没有被生成，评分器再准确也无法提升 AP；如果候选覆盖很高但排序差，Top-$k$ 也可能选不到高质量抓取。&lt;/p&gt;
&lt;p&gt;点级方法的瓶颈是输入点密度和点级召回，接触中心方法的瓶颈是可见接触和深度关联，体素方法的瓶颈是网格分辨率和固定工作空间，区域方法的瓶颈则是区域中心和尺度归一化。将这些方法只按一个最终 AP 排序，会掩盖它们在搜索空间上的不同取舍。&lt;/p&gt;
&lt;h3&gt;统一比较不同表示&lt;/h3&gt;
&lt;p&gt;| 表示           | 网络锚点           | 网络主要预测                       | 后处理重点              | 典型失败模式               |
| :------------- | :----------------- | :--------------------------------- | :---------------------- | :------------------------- |
| 点级直接预测   | 输入点             | 方向、开口方向、质量、类别         | 点筛选、正交化、碰撞    | 细结构缺点、单点上下文不足 |
| 接触中心       | 可见接触点         | 接近方向、基线方向、宽度、接触分数 | 接触关联、姿态恢复      | 隐藏接触和深度误差         |
| Graspness 级联 | 高抓取性点—视角    | 点/视角先验、局部操作参数          | 阈值、FPS、圆柱裁剪     | 前级误删导致后级无法恢复   |
| 区域级         | 局部区域中心       | 区域姿态热图、偏移、宽度           | 区域融合、坐标逆变换    | 区域尺度不匹配、邻物体混入 |
| 体素抓取场     | 体素中心           | 质量、四元数、宽度                 | 体素峰值、NMS、反体素化 | 分辨率、显存和单姿态限制   |
| 图/关键点      | 图节点或二维关键点 | 关系特征或关键点概率               | 图构造、PnP、对应筛选   | 边错误、遮挡对应和姿态放大 |&lt;/p&gt;
&lt;h3&gt;表示分辨率不是越高越好&lt;/h3&gt;
&lt;p&gt;若空间锚点间距为 $h$，降低 $h$ 通常能减少位置量化误差，但会增加锚点数量；对三维体素而言，体素数量近似按 $h^{-3}$ 增长。另一方面，过小的区域或圆柱会缺少夹爪闭合所需上下文，过大的区域会把更多邻物体送进网络。真正需要优化的是“可抓模式覆盖—局部几何分辨率—推理与执行成本”的平衡，而不是单独追求输出分辨率。&lt;/p&gt;
&lt;p&gt;稠密、接触中心和体素表示的共同贡献，是把候选搜索从逐候选循环改成共享特征上的结构化解码；它们没有消除多模态、遮挡、碰撞和执行不确定性，而是把这些问题放到了锚点设计、标签分配和解码阶段。理解这层关系，才能公平地比较 PointNet++、Contact-GraspNet、GSNet、REGNet 和 VGN 等看似不同的模型。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;参考文献（References）&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;P. Ni, W. Zhang, X. Zhu, and Q. Cao, “PointNet++ Grasping: Learning an End-to-End Spatial Grasp Generation Algorithm from Sparse Point Clouds,” &lt;em&gt;2020 International Conference on Robotics and Automation&lt;/em&gt;, 2020. &lt;a href=&quot;https://doi.org/10.1109/ICRA40945.2020.9196740&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;M. Sundermeyer, A. Mousavian, R. Triebel, and D. Fox, “Contact-GraspNet: Efficient 6-DoF Grasp Generation in Cluttered Scenes,” &lt;em&gt;2021 IEEE International Conference on Robotics and Automation&lt;/em&gt;, 2021. &lt;a href=&quot;https://doi.org/10.1109/ICRA48506.2021.9561877&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;C. Wang et al., “Graspness Discovery in Clutters for Fast and Accurate Grasp Detection,” &lt;em&gt;2021 IEEE/CVF International Conference on Computer Vision&lt;/em&gt;, 2021. &lt;a href=&quot;https://doi.org/10.1109/ICCV48922.2021.01566&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;B. Zhao et al., “REGNet: Region-Based Grasp Network for End-to-End Grasp Detection in Point Clouds,” &lt;em&gt;2021 IEEE International Conference on Robotics and Automation&lt;/em&gt;, 2021. &lt;a href=&quot;https://doi.org/10.1109/ICRA48506.2021.9561920&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Z. Liu, Z. Chen, S. Xie, and W.-S. Zheng, “TransGrasp: A Multi-Scale Hierarchical Point Transformer for 7-DoF Grasp Detection,” &lt;em&gt;2022 International Conference on Robotics and Automation&lt;/em&gt;, 2022. &lt;a href=&quot;https://doi.org/10.1109/ICRA46639.2022.9812001&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;M. Breyer, J. J. Chung, L. Ott, R. Siegwart, and J. Nieto, “Volumetric Grasping Network: Real-Time 6 DOF Grasp Detection in Clutter,” &lt;em&gt;Proceedings of the Conference on Robot Learning&lt;/em&gt;, PMLR 155, 2021. &lt;a href=&quot;https://proceedings.mlr.press/v155/breyer21a.html&quot;&gt;PMLR&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;H. Wang, W. Niu, and C. Zhuang, “GraNet: A Multi-Level Graph Network for 6-DoF Grasp Pose Generation in Cluttered Scenes,” &lt;em&gt;2023 IEEE/RSJ International Conference on Intelligent Robots and Systems&lt;/em&gt;, 2023. &lt;a href=&quot;https://doi.org/10.1109/IROS55552.2023.10341549&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;S. Chen et al., “Region-Aware Grasp Framework with Normalized Grasp Space for Efficient 6-DoF Grasping,” &lt;em&gt;Proceedings of the 8th Conference on Robot Learning&lt;/em&gt;, 2024. &lt;a href=&quot;https://proceedings.mlr.press/v270/chen25c.html&quot;&gt;PMLR&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;B. Chen, B. Li, J. Yang, Y. Liu, and G. Zhai, “KGN-Pro: Keypoint-Based Grasp Prediction through Probabilistic 2D–3D Correspondence Learning,” &lt;em&gt;2025 IEEE/RSJ International Conference on Intelligent Robots and Systems&lt;/em&gt;, 2025. &lt;a href=&quot;https://doi.org/10.1109/IROS60139.2025.11246850&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;</content:encoded><h:img src="https://pic.hana0721.top/72072963_p0_master1200.mo0d1wsi.webp"/><enclosure url="https://pic.hana0721.top/72072963_p0_master1200.mo0d1wsi.webp"/></item><item><title>Robotic Grasp Detection (4): 基于点云的采样式 6-DoF 抓取检测</title><link>https://agusexp25.top/blog/robotic-grasp-detection-4</link><guid isPermaLink="true">https://agusexp25.top/blog/robotic-grasp-detection-4</guid><description>解释点云中的 6-DoF 抓取候选如何被参数化、采样、编码和评分，并分析候选生成、深度学习评价、碰撞过滤与覆盖率之间的关系。</description><pubDate>Fri, 14 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;&lt;/p&gt;
&lt;h2&gt;6-DoF 抓取的任务定义与表示（Task Definition and Representation）&lt;/h2&gt;
&lt;p&gt;平面抓取（Planar Grasp）通常假设夹爪沿固定方向接近桌面。对于堆叠、货架、箱体或侧面可抓物体，这个假设会排除大量可行姿态。六自由度抓取（Six-Degrees-of-Freedom Grasp, 6-DoF Grasp）使用三维特殊欧氏群（Special Euclidean Group, $SE(3)$）位姿表示任意三维位置和旋转：&lt;/p&gt;
&lt;p&gt;$$
g=(R,\vec t,w), \qquad R\in SO(3),\quad \vec t\in\mathbb{R}^3,\quad w\in\mathbb R_{&gt;0},
$$&lt;/p&gt;
&lt;p&gt;其中 $SO(3)$ 是三维特殊正交群（Special Orthogonal Group），$w$ 是夹爪开口。点云（Point Cloud）提供带度量尺度的表面样本，适合构造三维接触与碰撞关系，但它只包含相机可见部分，并带有噪声、遮挡和法线估计误差。&lt;/p&gt;
&lt;p&gt;采样式检测通常采用“生成—评价—过滤”（Generate–Evaluate–Filter）结构。Gualtieri 等人和后续抓取姿态检测（Grasp Pose Detection, GPD）系统建立了这一经典范式 [1,2]。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;采样式 6-DoF 抓取检测的系统结构（System Structure）&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;场景点云（Scene Point Cloud）&lt;/strong&gt;：获取带有三维坐标的场景表面采样。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;预处理与法线估计（Preprocessing / Normal Estimation）&lt;/strong&gt;：去除离群点和无效点，并估计局部表面方向。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;表面与接近方向采样（Surface / Approach Sampling）&lt;/strong&gt;：选择种子点，并围绕局部表面方向生成接近方向。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;构造夹爪候选坐标系（Candidate Frame Construction）&lt;/strong&gt;：为每个采样结果确定接近轴、闭合轴和横向轴，形成候选姿态。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;提取夹爪闭合区域（Closing-Region Crop）&lt;/strong&gt;：将候选附近的点云变换到夹爪坐标系，并裁剪局部输入。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;几何或神经质量评价（Geometric / Learned Scoring）&lt;/strong&gt;：使用解析判据或候选评分网络判断抓取质量。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;碰撞过滤与非极大值抑制（Collision Filtering / Non-Maximum Suppression, NMS）&lt;/strong&gt;：删除碰撞候选和重复姿态。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;机器人可达性与最终选择（Reachability / Selection）&lt;/strong&gt;：检查逆运动学、接近轨迹和执行约束，并选择最终抓取。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;每个阶段都会改变最终候选分布。评分网络只是其中一环。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;点云预处理与表面采样（Point-Cloud Preprocessing and Surface Sampling）&lt;/h2&gt;
&lt;p&gt;设场景点云为 $P={\vec p_j}_{j=1}^{N}\subset\mathbb R^3$，其中 $N\in\mathbb N$ 是点数。候选生成器首先从可见表面选取种子点 $\vec p\in\mathbb R^3$（Seed Point），并在其局部邻域估计单位表面法线（Surface Normal）：&lt;/p&gt;
&lt;p&gt;$$
\vec n\in\mathbb R^3,
\qquad
\lVert\vec n\rVert_2=1.
$$&lt;/p&gt;
&lt;p&gt;后续流程围绕法线或局部切平面采样接近方向（Approach Direction）和夹爪绕轴角（Roll Angle）。这里的 $\vec n$ 是向量，不是点数；它垂直于种子点附近的局部切平面。&lt;/p&gt;
&lt;p&gt;法线通常由局部主成分分析（Principal Component Analysis, PCA）得到。对种子点 $\vec p$ 的邻域 $\mathcal N(\vec p)$，先计算协方差矩阵：&lt;/p&gt;
&lt;p&gt;$$
C(\vec p)=\frac{1}{|\mathcal N(\vec p)|}
\sum_{\vec x\in\mathcal N(\vec p)}
(\vec x-\bar{\vec x})(\vec x-\bar{\vec x})^{\mathsf T}.
$$&lt;/p&gt;
&lt;p&gt;$\bar{\vec x}\in\mathbb R^3$ 是邻域点的均值。$C(\vec p)\in\mathbb R^{3\times3}$ 的最小特征值（Eigenvalue）对应的特征向量（Eigenvector）近似 $\vec n$，另外两个特征向量张成局部切平面。最小特征值与另外两个特征值接近时，局部几何接近球形或噪声很大，法线方向不稳定；在边缘处，邻域还可能同时包含两个表面。因而实现中常按曲率比值拒绝不可靠法线，并使用相机视点统一法线正负方向。&lt;/p&gt;
&lt;p&gt;一种局部夹爪坐标系可以由三条轴构成：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;接近轴（Approach Axis）：夹爪向物体移动的方向；&lt;/li&gt;
&lt;li&gt;闭合轴（Closing Axis）：两个夹指相向运动的方向；&lt;/li&gt;
&lt;li&gt;横向轴（Lateral Axis）：由前两者叉乘得到。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;在噪声点云上，法线方向可能翻转或被遮挡边缘污染。邻域半径过小会放大噪声，过大则会抹平小物体和尖锐结构。采样参数因此同时决定精度和计算量。&lt;/p&gt;
&lt;h3&gt;候选姿态的参数化与采样（Candidate Pose Parameterization and Sampling）&lt;/h3&gt;
&lt;p&gt;仅有法线还不能确定六自由度姿态。一个常见枚举过程是：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;选择接近轴 $\vec a$，它可以沿 $-\vec n$，也可以在法线附近的圆锥中采样；&lt;/li&gt;
&lt;li&gt;在与 $\vec a$ 正交的平面内离散闭合轴 $\vec b$；&lt;/li&gt;
&lt;li&gt;令横向轴 $\vec c=\vec a\times\vec b$，组成旋转矩阵 $R=[\vec a\ \vec b\ \vec c]$；&lt;/li&gt;
&lt;li&gt;沿 $\vec a$ 改变夹爪插入深度，沿 $\vec b$ 改变闭合中心；&lt;/li&gt;
&lt;li&gt;根据局部点投影估计刚好包围物体的开口 $w$；&lt;/li&gt;
&lt;li&gt;把候选变换到夹爪坐标系后执行碰撞与接触检查。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;若每个种子点采样 $N_a$ 个接近方向、$N_r$ 个绕轴角和 $N_d$ 个深度，原始候选量就是 $N_{\text{seed}}N_aN_rN_d$。因此“使用 2,048 个点”不能说明候选预算，还必须给出每点方向数、深度数和前级拒绝比例。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;解析几何过滤与碰撞检查（Analytic Filtering and Collision Checking）&lt;/h2&gt;
&lt;p&gt;一个候选夹爪放入场景后，可以检查：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;闭合区域内是否包含足够物体点；&lt;/li&gt;
&lt;li&gt;两个夹指路径是否与物体或环境碰撞；&lt;/li&gt;
&lt;li&gt;指尖之间是否存在近似对向接触（Antipodal Contact）；&lt;/li&gt;
&lt;li&gt;开口宽度是否处于硬件范围；&lt;/li&gt;
&lt;li&gt;手掌和腕部扫掠体积（Swept Volume）是否安全。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;解析过滤（Analytic Filtering）可以快速删除明显无效候选，但可见点云中的“无碰撞”不等于完整场景无碰撞。未观测背面和桌面边缘仍可能造成执行失败。&lt;/p&gt;
&lt;p&gt;碰撞检查通常把夹爪拆成左指、右指、手掌和内部闭合区域四个长方体。把场景点 $\vec x$ 变换到候选夹爪坐标系：&lt;/p&gt;
&lt;p&gt;$$
\vec x_G=R^{\mathsf T}(\vec x-\vec t),
$$&lt;/p&gt;
&lt;p&gt;即可用轴对齐区间（Axis-Aligned Interval）判断点属于哪个体积。有效候选需要两个夹指和手掌体积中的点数低于碰撞阈值，同时闭合区域内存在足够物体点。为了容忍深度噪声，碰撞盒常向外膨胀几毫米；膨胀过小会漏掉真实碰撞，过大则会错误删除狭窄空间中的可行姿态。&lt;/p&gt;
&lt;p&gt;接近路径还要检查从预抓取位姿到最终位姿的扫掠体积（Swept Volume）。只在终点放置一次夹爪模型，无法发现手掌沿途撞到邻物体的情况。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;候选局部输入与视觉特征表示（Candidate-Centric Visual Representation）&lt;/h2&gt;
&lt;p&gt;GPD 将夹爪闭合区域中的点投影成适合卷积神经网络（Convolutional Neural Network, CNN）的局部表示，再把候选分类为可抓或不可抓 [1,2]。关键思想是把每个候选转换到自己的夹爪坐标系，从而让网络关注接触附近的相对几何。&lt;/p&gt;
&lt;p&gt;候选规范化后，GPD 类方法把闭合区域投影到多个正交平面，在栅格中编码占据情况与表面法线统计，得到固定尺寸的“手部图像”（Hand Image）：&lt;/p&gt;
&lt;p&gt;$$
I_i\in\mathbb R^{C_H\times H_H\times W_H},
$$&lt;/p&gt;
&lt;p&gt;其中 $i$ 表示第 $i$ 个抓取候选，$C_H$ 是占据、深度或法线等局部几何通道，$H_H,W_H$ 是栅格尺寸。CNN 在这个局部图像上重复使用卷积核，先提取边缘和局部表面模式，再通过更深层特征判断两指之间是否存在合适的支撑几何。同一个物体在世界坐标中旋转后，只要候选相对接触几何相同，规范化图像就近似一致；网络因此不必同时学习全局物体姿态与局部夹持关系。&lt;/p&gt;
&lt;p&gt;这一步也会丢失信息：投影把不同深度的点压到同一像素，固定栅格分辨率会抹平薄片和小间隙，而只裁剪闭合区域又看不到手腕外部的场景。实际流水线通常让局部网络负责接触评分，再让独立的全场景碰撞模块检查环境。&lt;/p&gt;
&lt;p&gt;局部表示需要平衡：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;保留接触形状与空闲空间；&lt;/li&gt;
&lt;li&gt;对全局物体姿态不敏感；&lt;/li&gt;
&lt;li&gt;对点数和遮挡变化具有鲁棒性；&lt;/li&gt;
&lt;li&gt;能区分夹指碰撞、掌部碰撞和有效闭合。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果只看很小的局部区域，模型可能无法判断候选属于哪个物体或是否会撞到邻居；如果输入整个场景，候选级评价成本又会显著上升。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;点集网络的候选评分：PointNetGPD（Point-Set Scoring with PointNetGPD）&lt;/h2&gt;
&lt;p&gt;PointNetGPD 将每个候选闭合区域内的原始点集直接送入 PointNet 风格编码器 [4]。点集网络通过对称聚合获得排列不变性（Permutation Invariance），避免手工投影和固定栅格。&lt;/p&gt;
&lt;p&gt;具体地，候选点先用 $\vec x_G=R^{\mathsf T}(\vec x-\vec t)$ 变换到夹爪坐标系，再按闭合盒裁剪。由于每个候选包含的点数不同，训练批次通常随机采样或重复补齐到固定点数 $M$，并按夹爪尺寸归一化坐标。PointNet 编码可写成：&lt;/p&gt;
&lt;p&gt;$$
h=\max_{j=1,\ldots,M}\phi(\vec x_{Gj}),
\qquad
\hat q=\sigma(\psi(h)),
$$&lt;/p&gt;
&lt;p&gt;其中 $\phi$ 是逐点多层感知机（Multi-Layer Perceptron, MLP），最大池化提供排列不变性，$\psi$ 输出可抓概率。若闭合区点数很少，重复补点不会创造几何信息；因此最小点数阈值仍是模型输入定义的一部分。&lt;/p&gt;
&lt;p&gt;这种方法提升了局部表示的通用性，但仍是候选评价器（Candidate Evaluator），不是完整生成器。如果前端没有采到正确接近方向，PointNetGPD 无法从评分阶段创造新候选。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;候选评分网络的监督训练（Supervised Training of Candidate Scorers）&lt;/h2&gt;
&lt;p&gt;采样式方法中的网络通常不是直接输出完整的 $SE(3)$ 位姿，而是回答一个更局部的问题：给定候选 $g_i$ 及其局部点云，执行这个候选的可能性有多大。将候选点变换到自身坐标系后，记局部输入为 $X_i$，评分网络可以写成：&lt;/p&gt;
&lt;p&gt;$$
q_i=f_{\vartheta}(X_i,g_i),
\qquad
q_i\in[0,1].
$$&lt;/p&gt;
&lt;p&gt;这里 $f_{\vartheta}$ 可以是 GPD 中处理手部图像的 CNN，也可以是 PointNetGPD 中处理点集的 PointNet 风格网络。$g_i$ 是否显式输入取决于实现：如果 $X_i$ 已经在候选夹爪坐标系中，位置和旋转通常已经通过坐标变换编码在局部点云里。&lt;/p&gt;
&lt;p&gt;训练标签 $y_i\in{0,1}$ 或 $y_i\in[0,1]$ 来自解析判据、仿真抓取结果或真实机器人执行结果。二值标签下，候选评分可以使用二元交叉熵：&lt;/p&gt;
&lt;p&gt;$$
\mathcal L(\vartheta)=
-\frac{1}{B}
\sum_{i=1}^{B}
\left[
y_i\log q_i+(1-y_i)\log(1-q_i)
\right],
$$&lt;/p&gt;
&lt;p&gt;其中 $B\in\mathbb N$ 是一个训练批次中的候选数量。正负候选通常严重不平衡，训练时需要正负采样、困难负样本挖掘（Hard-Negative Mining）或类别加权；否则网络可能通过大量预测“不可抓”获得表面上较高的准确率。&lt;/p&gt;
&lt;p&gt;候选评分器的训练数据还必须记录候选是如何生成的。若训练集只包含经过强碰撞过滤的候选，网络学习到的是“过滤后的候选分布”；若测试时采样密度、法线估计或候选坐标系定义发生变化，评分结果可能明显退化。&lt;/p&gt;
&lt;p&gt;推理时，评分网络只对已生成的候选计算 $q_i$，再结合碰撞、可达性和轨迹代价进行排序。因此，评分器的高分不能弥补候选生成阶段的覆盖不足。&lt;/p&gt;
&lt;h2&gt;6-DoF GraspNet：生成式候选生成（Generative Candidate Generation）&lt;/h2&gt;
&lt;p&gt;前面的 GPD 和 PointNetGPD 都先用局部表面几何枚举候选，再由网络判断候选是否可抓。6-DoF GraspNet 改变的是候选的来源：它直接学习“一个物体可能在哪里、以什么方向被抓取”，用生成模型从部分点云提出一组 6-DoF 位姿 [3]。不过，它并不是一个从点云到最终机器人动作的单网络，而是由 &lt;strong&gt;Sampler—Evaluator—Refinement&lt;/strong&gt; 三个环节组成：&lt;/p&gt;
&lt;p&gt;| 环节             | 输入                       | 输出                     | 解决的问题                 |
| :--------------- | :------------------------- | :----------------------- | :------------------------- |
| Grasp Sampler    | 物体点云 $X$、潜变量 $z$   | 初始抓取 $g^{(0)}$       | 生成多样候选               |
| Grasp Evaluator  | 物体点云 $X$、夹爪姿态 $g$ | 成功概率 $s$             | 识别生成器产生的失败候选   |
| Grasp Refinement | Evaluator 的姿态梯度       | 修正后的抓取 $g^{(j+1)}$ | 将邻近候选推向更高分的位姿 |&lt;/p&gt;
&lt;p&gt;三个环节并不是同一个端到端损失下联合训练的。Sampler 作为条件 VAE 学习成功抓取分布，Evaluator 使用正负抓取独立训练；推理时再把 Evaluator 的梯度用于修正 Sampler 的输出。论文将两者类比为生成器和判别器，但这里没有 GAN 的对抗训练。&lt;/p&gt;
&lt;h3&gt;输入、输出与学习目标（Inputs, Outputs, and Objective）&lt;/h3&gt;
&lt;p&gt;论文处理的是&lt;strong&gt;已经从场景中分割出的单个目标物体&lt;/strong&gt;。设深度相机得到的部分物体点云为：&lt;/p&gt;
&lt;p&gt;$$
X={\vec x_n}_{n=1}^{N},
\qquad
\vec x_n\in\mathbb R^3,
$$&lt;/p&gt;
&lt;p&gt;其中 $N\in\mathbb N$ 是点数。物体参考系的原点设在观测点云的中心，坐标轴与相机坐标系平行。对固定几何的平行夹爪，网络只预测夹爪的 6-DoF 位姿：&lt;/p&gt;
&lt;p&gt;$$
g=(R,\vec t)\in SE(3),
\qquad
R\in SO(3),\quad \vec t\in\mathbb R^3.
$$&lt;/p&gt;
&lt;p&gt;$R$ 和 $\vec t$ 分别把夹爪从自身坐标系旋转、平移到物体点云坐标系；夹爪开口不是该网络的预测量。网络要输出的也不是唯一姿态，而是一组抓取候选：&lt;/p&gt;
&lt;p&gt;$$
\widehat{\mathcal G}
={g_1,g_2,\ldots,g_K}.
$$&lt;/p&gt;
&lt;p&gt;这是因为成功抓取只占整个 $SE(3)$ 空间中的狭窄区域，而且通常具有多个彼此分离的模式。例如，杯口、杯身和把手附近可以形成不同的抓取模式。直接回归一个姿态会把多个模式压成一个结果，甚至得到落在模式之间的无效“平均姿态”；在整个 $SE(3)$ 空间均匀采样又需要极大的候选预算。6-DoF GraspNet 因此学习部分点云条件下的成功抓取分布：&lt;/p&gt;
&lt;p&gt;$$
p(\mathcal G^*\mid X),
$$&lt;/p&gt;
&lt;p&gt;其中 $\mathcal G^*$ 是训练数据中能够成功夹持物体的抓取集合。&lt;/p&gt;
&lt;h3&gt;Grasp Sampler：从潜变量解码一个 6-DoF 抓取&lt;/h3&gt;
&lt;p&gt;Grasp Sampler 是条件变分自编码器（Conditional Variational Autoencoder, CVAE）。它的关键不是让 VAE 一次输出整组候选，而是让&lt;strong&gt;同一个物体点云与不同潜变量分别生成不同抓取&lt;/strong&gt;。训练和推理过程并不相同。&lt;/p&gt;
&lt;p&gt;训练时，从 $\mathcal G^*$ 中取一个成功抓取 $g$，编码器根据点云和该抓取预测潜变量分布：&lt;/p&gt;
&lt;p&gt;$$
q_{\phi}(\vec z\mid X,g),
\qquad
\vec z\in\mathbb R^{d_z}.
$$&lt;/p&gt;
&lt;p&gt;从该分布采样 $\vec z$ 后，解码器根据同一个点云重建抓取：&lt;/p&gt;
&lt;p&gt;$$
\hat g=G_{\psi}(X,\vec z).
$$&lt;/p&gt;
&lt;p&gt;在具体网络中，编码器会把真实抓取参数作为特征附加到点云中的各个点，学习“这个抓取相对于该物体位于哪里”；解码器则把同一个潜变量 $\vec z$ 附加到点特征，通过 PointNet++ 的集合抽象层（Set-Abstraction Layer）提取局部到全局的点云特征。解码器最后输出三维平移和一个四维四元数（Quaternion）；四元数经过 $L_2$ 归一化后转换为旋转 $R$。&lt;/p&gt;
&lt;p&gt;为了同时衡量旋转和平移误差，论文没有直接把“米”和“弧度”相加，而是在标准夹爪模型上固定 $M$ 个点 ${\vec r_m}_{m=1}^{M}$，其中 $\vec r_m\in\mathbb R^3$。姿态 $g=(R,\vec t)$ 作用于夹爪点的结果为：&lt;/p&gt;
&lt;p&gt;$$
T(g;\vec r_m)=R\vec r_m+\vec t\in\mathbb R^3.
$$&lt;/p&gt;
&lt;p&gt;两个姿态之间的重建误差定义为变换后夹爪点的位置差：&lt;/p&gt;
&lt;p&gt;$$
\mathcal L_{\mathrm{pose}}(g,\hat g)
=\frac{1}{M}\sum_{m=1}^{M}
\left|
T(g;\vec r_m)-T(\hat g;\vec r_m)
\right|_1.
$$&lt;/p&gt;
&lt;p&gt;将 VAE 目标写成最小化形式，其结构为：&lt;/p&gt;
&lt;p&gt;$$
\mathcal L_{\mathrm{sampler}}
=\mathbb E_{q_{\phi}(\vec z\mid X,g)}
\left[\mathcal L_{\mathrm{pose}}(g,\hat g)\right]
+\beta D_{\mathrm{KL}}
\left(q_{\phi}(\vec z\mid X,g),|,\mathcal N(0,I_{d_z})\right),
$$&lt;/p&gt;
&lt;p&gt;其中第一项要求潜变量保留重建抓取所需的信息，第二项把潜空间约束到已知的标准正态先验。推理时不再有真实抓取 $g$，因此直接删除编码器，重复采样：&lt;/p&gt;
&lt;p&gt;$$
\vec z_k\sim\mathcal N(0,I_{d_z}),
\qquad
g_k^{(0)}=G_{\psi}(X,\vec z_k),
\qquad k=1,\ldots,K.
$$&lt;/p&gt;
&lt;p&gt;固定 $X$、改变 $\vec z_k$，就会得到一组不同位置和方向的抓取。论文实验选择 $d_z=2$，机器人实验一次采样 200 个潜变量。候选数量 $K$ 越大，越可能覆盖不同抓取模式，但推理、评价和精化成本也随之增加。&lt;/p&gt;
&lt;p&gt;Sampler 只使用成功抓取训练，这并不意味着每个生成结果都成功。VAE 的潜空间是连续的，而不同成功模式之间可能隔着失败区域；解码器在两个模式之间插值时，可能生成与物体碰撞、离物体过远或没有将物体包在两指之间的姿态。这正是 Evaluator 必须存在的原因。&lt;/p&gt;
&lt;h3&gt;Grasp Evaluator：显式编码物体—夹爪相对几何&lt;/h3&gt;
&lt;p&gt;Grasp Evaluator 学习的是给定观测和候选后的成功概率：&lt;/p&gt;
&lt;p&gt;$$
s=f_{\omega}(X,g)\approx p(S=1\mid X,g),
\qquad
s\in[0,1].
$$&lt;/p&gt;
&lt;p&gt;一种直接做法是把 $R$、$\vec t$ 拼接到物体的全局点云特征上，但论文实验发现这种表示的分类效果较差。原因是网络仍需从抽象的姿态参数中自行恢复两指、手掌和物体表面之间的空间关系。6-DoF GraspNet 改为把标准夹爪模型采样成 $M$ 个点，并按候选姿态变换：&lt;/p&gt;
&lt;p&gt;$$
X_g
=\left{\vec x_m^g=T(g;\vec r_m)\right}_{m=1}^{M},
\qquad
\vec x_m^g\in\mathbb R^3.
$$&lt;/p&gt;
&lt;p&gt;然后将物体点与夹爪点合并，并为每个点增加一个来源标记：&lt;/p&gt;
&lt;p&gt;$$
\widetilde X(g)
=\left{[\vec x_n^{\mathsf T},0]^{\mathsf T}\right}&lt;em&gt;{n=1}^{N}
\cup
\left{[(\vec x_m^g)^{\mathsf T},1]^{\mathsf T}\right}&lt;/em&gt;{m=1}^{M}
\subset\mathbb R^4.
$$&lt;/p&gt;
&lt;p&gt;因此 Evaluator 实际处理的是一个 $(N+M)\times4$ 的带标记点集。PointNet/PointNet++ 风格的点集网络可以直接从局部邻域中观察夹爪点与物体点的关系，例如手指是否穿入可见表面、手掌是否离物体过远，以及两指之间是否存在物体点。这里的“夹爪点云”不是另一个传感器的观测，而是根据已知夹爪几何和候选位姿在软件中渲染出来的。&lt;/p&gt;
&lt;p&gt;Evaluator 同时需要成功与失败抓取。二值标签 $y\in{0,1}$ 下，它使用二元交叉熵：&lt;/p&gt;
&lt;p&gt;$$
\mathcal L_{\mathrm{eval}}
=-y\log s-(1-y)\log(1-s).
$$&lt;/p&gt;
&lt;p&gt;随机从整个 $SE(3)$ 空间采到的负样本大多离物体很远，太容易区分，不能训练出精细的决策边界。论文因此使用困难负样本挖掘（Hard-Negative Mining）：先对成功抓取做小幅旋转和平移扰动，再保留那些与原成功姿态接近、但已经碰撞或离物体过远的失败抓取。论文生成困难负样本时在每个旋转轴上最多扰动 $\pm0.6$ rad、平移最多扰动 $\pm3$ cm。这样，Evaluator 学到的不是粗略的“夹爪是否靠近物体”，而是成功姿态附近的细微几何差异。&lt;/p&gt;
&lt;p&gt;需要注意，$s$ 是在论文仿真标签和部分点云条件下学习到的成功分数，并不是解析力闭合指标。遮挡区域、材质、摩擦和物体质量没有被当前输入完整观测，网络只能依赖训练数据中的形状先验进行判断。&lt;/p&gt;
&lt;h3&gt;Grasp Refinement：将点级梯度转换为刚体位姿更新&lt;/h3&gt;
&lt;p&gt;如果只用 Evaluator 过滤低分候选，许多“已经接近成功”的姿态仍会被直接丢弃。Grasp Refinement 的做法是固定网络参数，反向传播成功分数对候选姿态的梯度，再沿提高 $s$ 的方向更新抓取。&lt;/p&gt;
&lt;p&gt;这里不能独立更新 $X_g$ 中的每一个夹爪点，否则夹爪会被拉伸成非刚体形状。论文将抓取参数写成三维欧拉角和三维平移：&lt;/p&gt;
&lt;p&gt;$$
\vec\xi
=\begin{bmatrix}
\alpha &amp;#x26; \beta &amp;#x26; \gamma &amp;#x26; t_x &amp;#x26; t_y &amp;#x26; t_z
\end{bmatrix}^{\mathsf T}
\in\mathbb R^6.
$$&lt;/p&gt;
&lt;p&gt;再把全部夹爪点的坐标堆叠为：&lt;/p&gt;
&lt;p&gt;$$
\vec u(\vec\xi)
=\begin{bmatrix}
T(g(\vec\xi);\vec r_1)^{\mathsf T} &amp;#x26;
\cdots &amp;#x26;
T(g(\vec\xi);\vec r_M)^{\mathsf T}
\end{bmatrix}^{\mathsf T}
\in\mathbb R^{3M}.
$$&lt;/p&gt;
&lt;p&gt;自动微分先得到成功分数对全部夹爪点坐标的梯度 $\nabla_{\vec u}s\in\mathbb R^{3M}$，再通过刚体变换的雅可比矩阵（Jacobian Matrix）把它转换为六维姿态梯度：&lt;/p&gt;
&lt;p&gt;$$
\nabla_{\vec\xi}s
=J_{\vec u,\vec\xi}^{\mathsf T}\nabla_{\vec u}s
\in\mathbb R^6,
\qquad
J_{\vec u,\vec\xi}
=\frac{\partial\vec u}{\partial\vec\xi}
\in\mathbb R^{3M\times6}.
$$&lt;/p&gt;
&lt;p&gt;第 $j$ 次精化使用梯度上升更新：&lt;/p&gt;
&lt;p&gt;$$
\vec\xi_k^{(j+1)}
=\vec\xi_k^{(j)}
+\eta\nabla_{\vec\xi}s_k^{(j)},
\qquad
s_k^{(j)}=f_{\omega}\left(X,g(\vec\xi_k^{(j)})\right),
$$&lt;/p&gt;
&lt;p&gt;其中 $\eta\in\mathbb R_{&gt;0}$ 是步长。由于一阶梯度只在当前姿态附近可靠，论文限制步长，使单次更新的最大平移不超过 $1$ cm。更新姿态后需要重新渲染夹爪点云、再次前向计算成功分数，再进行下一轮反向传播。&lt;/p&gt;
&lt;p&gt;例如，Sampler 可能在碗口附近生成一个两指之间还没有包住碗壁的候选。Evaluator 从物体点与夹爪点的相对位置给出低分；其梯度经过上述雅可比矩阵转换后，会同时调整夹爪的平移和朝向，而不是任意移动某一个夹爪点。经过数次更新，候选可能进入训练数据中更像成功抓取的区域。这个过程只保证提升 Evaluator 的预测分数，不保证真实物理成功；错误的评分函数或局部极值仍会导致失败。&lt;/p&gt;
&lt;h3&gt;完整推理流程（Complete Inference Procedure）&lt;/h3&gt;
&lt;p&gt;算法框给出的是 6-DoF GraspNet 的核心网络流程。论文中的网络只针对分割后的单个目标物体，并不把邻近物体、机械臂可达性或完整接近轨迹作为网络输入；真实机器人实验在网络返回候选后，另用运动规划器检查无碰撞路径并执行最高分的可行抓取。因此，这项工作的准确定位是：&lt;strong&gt;从部分物体点云学习多样的候选分布，再用可微成功模型过滤并局部修正候选&lt;/strong&gt;。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;数据集与监督信号（Datasets and Supervision）&lt;/h2&gt;
&lt;h3&gt;6-DoF GraspNet 的仿真监督（Simulation Supervision in 6-DoF GraspNet）&lt;/h3&gt;
&lt;p&gt;6-DoF GraspNet 的训练数据不是 ACRONYM，而是作者用 FleX 物理模拟器为 6-DoF GraspNet 单独生成的抓取数据。作者从物体表面采样点，将夹爪的接近轴与表面法线对齐，再随机设置夹爪到表面的距离和绕接近轴的旋转；只有闭合区域包含物体且初始姿态不碰撞的候选才进入抓取模拟。数据包含 206 个物体模型，先生成 10,816,720 个候选，其中 7,074,038 个通过非空闭合区域检查并实际模拟，最终得到 2,104,894 个成功抓取标签 [3]。&lt;/p&gt;
&lt;p&gt;模拟中的平行夹爪和物体是自由运动的，仿真不使用重力，并固定表面摩擦系数和物体密度。夹爪完成闭合后还会执行预定义的摇晃动作；如果物体仍保持在两指之间，就把该姿态标为成功。摩擦系数、物体密度、夹爪几何和摇晃协议都会影响这个标签。因此，Evaluator 学到的是“在该仿真设置下抓取成功的概率”，而不是脱离夹爪和物体参数的普适物理真值。论文随后直接将只用仿真训练的模型用于真实机器人实验，这也是其 sim-to-real 结果需要重点解读的地方。&lt;/p&gt;
&lt;h3&gt;仿真数据集：ACRONYM（Simulation Dataset）&lt;/h3&gt;
&lt;p&gt;ACRONYM 提供 17.744M 个物理仿真平行夹爪抓取，覆盖 8,872 个物体和 262 个类别 [5]。大规模仿真使生成器能够看到更多形状和姿态，但标签继承了网格、摩擦、质量、接触求解器和夹爪模型的假设。&lt;/p&gt;
&lt;h3&gt;监督信号的语义（Semantics of Supervision）&lt;/h3&gt;
&lt;p&gt;采样式检测器常混合三种监督：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;解析对向/力闭合标签（Analytic Antipodal / Force-Closure Label）；&lt;/li&gt;
&lt;li&gt;仿真抓取结果（Simulation Outcome）；&lt;/li&gt;
&lt;li&gt;真实机器人成功或失败（Physical Outcome）。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;解析标签通常判断几何和摩擦模型下的理论可抓性，仿真标签还会受到碰撞、接触求解和物体参数影响，真实标签则包含深度误差、标定误差、运动规划和夹爪执行误差。训练标签决定评分器学习的“质量”语义，不能仅用网络结构名称概括。&lt;/p&gt;
&lt;p&gt;因此，比较两个候选评分网络时，至少要同时报告候选来源、标签来源、碰撞过滤规则和候选预算。相同的网络结构在不同标签语义下训练，得到的分数并不一定具有相同含义。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;候选聚类、去重与排序（Candidate Clustering, Deduplication, and Ranking）&lt;/h2&gt;
&lt;p&gt;大量候选会集中在同一物体表面。常见后处理包括：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;非极大值抑制（Non-Maximum Suppression, NMS）；&lt;/li&gt;
&lt;li&gt;$SE(3)$ 距离聚类（SE(3) Distance Clustering）；&lt;/li&gt;
&lt;li&gt;按物体或接触区域保留多样候选；&lt;/li&gt;
&lt;li&gt;碰撞、可达性和轨迹代价重新排序。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;在 $SE(3)$ 中，平移与旋转没有天然统一量纲，距离函数需要人为设置权重。平行夹爪还具有约 $180^\circ$ 平面对称性，相同物理抓取可能有两个旋转表示。如果不处理对称性，聚类和损失都会重复计算等价姿态。&lt;/p&gt;
&lt;p&gt;Efficient and Accurate Candidate Generation 进一步优化了 $SE(3)$ 候选生成效率 [6]；Automatic Grasp Pose Generation 则通过解析接触、摩擦与聚类保留多样候选 [7]。这些方法强调：候选生成本身就是独立研究问题。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;评测协议与报告指标（Evaluation Protocols and Metrics）&lt;/h2&gt;
&lt;p&gt;采样式 6-DoF 方法至少需要区分候选生成和候选评分两个环节。一个评分网络可能在给定候选上排序很好，但如果生成器没有覆盖正确姿态，最终系统仍然无法成功抓取。&lt;/p&gt;
&lt;h3&gt;候选覆盖与 Top-$k$ 质量（Candidate Coverage and Top-$k$ Quality）&lt;/h3&gt;
&lt;p&gt;若测试场景有参考抓取集合 $\mathcal G^*$，可以在固定位姿距离阈值下判断候选是否覆盖某个参考抓取。一个抽象的覆盖率写法是：&lt;/p&gt;
&lt;p&gt;$$
\operatorname{Recall}@K
=\frac{1}{N}
\sum_{n=1}^{N}
\mathbf 1
\left[
\exists i\le K,
d_{SE(3)}(g_i,g_n^*)&amp;#x3C;\tau
\right],
$$&lt;/p&gt;
&lt;p&gt;其中 $N$ 是测试场景或参考抓取数量，$g_i$ 是排序后的候选，$g_n^*$ 是参考抓取，$d_{SE(3)}$ 是同时考虑平移和旋转的距离，$\tau$ 是评价阈值。具体的平移、旋转和开口容差必须随协议报告，不能只给出一个没有定义的 Recall 数字。&lt;/p&gt;
&lt;p&gt;Top-$k$ 抓取成功率还要说明 $k$、候选是否经过碰撞过滤，以及“成功”来自解析判据、仿真执行还是真实机器人执行。候选数量增加通常会提高覆盖率，但也会增加评分和碰撞检查成本。&lt;/p&gt;
&lt;h3&gt;需要共同报告的系统量（System-Level Quantities）&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;原始采样候选数与每个场景的采样预算；&lt;/li&gt;
&lt;li&gt;解析过滤、碰撞检查和 NMS 后的候选数；&lt;/li&gt;
&lt;li&gt;候选生成时间、单候选评分时间和总推理延迟；&lt;/li&gt;
&lt;li&gt;Recall@$k$、Top-$k$ 质量和候选多样性；&lt;/li&gt;
&lt;li&gt;仿真或真实机器人抓取成功率，以及失败原因。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;只有在这些量使用相同候选预算、相同过滤规则和相同测试划分时，不同采样式方法之间的比较才有意义。&lt;/p&gt;
&lt;h2&gt;候选覆盖率、评分质量与计算成本（Coverage, Scoring Quality, and Cost）&lt;/h2&gt;
&lt;p&gt;采样式 6-DoF 检测的核心矛盾可以写成：&lt;/p&gt;
&lt;p&gt;$$
\text{Coverage}\uparrow
\quad\Longrightarrow\quad
N_{\text{candidate}}\uparrow
\quad\Longrightarrow\quad
\text{Scoring and Collision Cost}\uparrow.
$$&lt;/p&gt;
&lt;p&gt;提高评分器准确率不能解决候选缺失；扩大候选集合又会增加计算和多重比较。实用系统通常需要在下面几项之间折中：&lt;/p&gt;
&lt;p&gt;| 变量         | 过低的后果         | 过高的后果           |
| :----------- | :----------------- | :------------------- |
| 表面采样密度 | 漏掉小物体和窄接触 | 候选爆炸             |
| 方向采样数   | 接近方向覆盖不足   | 旋转评价成本高       |
| 局部区域大小 | 缺少上下文         | 输入冗余、混入邻物体 |
| 碰撞模型精度 | 执行碰撞           | 过滤耗时             |
| 聚类阈值     | 重复姿态多         | 删除不同抓取模式     |&lt;/p&gt;
&lt;p&gt;采样式方法的价值在于可解释、易结合解析约束，并能明确观察候选覆盖和碰撞过程。它的局限也同样清晰：前端采样质量决定了后端模型能力的上限。&lt;/p&gt;
&lt;p&gt;若把每个候选独立命中某个可行模式的概率粗略记为 $p$，采样 $N$ 次至少命中一次的概率为：&lt;/p&gt;
&lt;p&gt;$$
P(\text{hit})=1-(1-p)^N.
$$&lt;/p&gt;
&lt;p&gt;真实候选并不独立：相邻种子点、相近法线和小角度步长会产生大量相关样本，因此实际覆盖增长慢于上式。非极大值抑制删除重复候选时，又可能把同一位置但不同接近方向的两个有效模式合并。复现实验最好同时报告原始候选数、解析过滤后数量、NMS 后数量、评分耗时与最终 Recall@$k$，这样才能判断瓶颈发生在生成、过滤还是排序。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;参考文献（References）&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;M. Gualtieri, A. ten Pas, K. Saenko, and R. W. Platt, “High Precision Grasp Pose Detection in Dense Clutter,” &lt;em&gt;2016 IEEE/RSJ International Conference on Intelligent Robots and Systems&lt;/em&gt;, 2016. &lt;a href=&quot;https://doi.org/10.1109/IROS.2016.7759114&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;A. ten Pas, M. Gualtieri, K. Saenko, and R. W. Platt, “Grasp Pose Detection in Point Clouds,” &lt;em&gt;The International Journal of Robotics Research&lt;/em&gt;, 2017. &lt;a href=&quot;https://doi.org/10.1177/0278364917735594&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;A. Mousavian, C. Eppner, and D. Fox, “6-DOF GraspNet: Variational Grasp Generation for Object Manipulation,” &lt;em&gt;2019 IEEE/CVF International Conference on Computer Vision&lt;/em&gt;, 2019. &lt;a href=&quot;https://doi.org/10.1109/ICCV.2019.00299&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;H. Liang et al., “PointNetGPD: Detecting Grasp Configurations from Point Sets,” &lt;em&gt;2019 International Conference on Robotics and Automation&lt;/em&gt;, 2019. &lt;a href=&quot;https://doi.org/10.1109/ICRA.2019.8794435&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;C. Eppner, A. Mousavian, and D. Fox, “ACRONYM: A Large-Scale Grasp Dataset Based on Simulation,” &lt;em&gt;2021 IEEE International Conference on Robotics and Automation&lt;/em&gt;, 2021. &lt;a href=&quot;https://doi.org/10.1109/ICRA48506.2021.9560844&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;A. ten Pas, C. Keil, and R. W. Platt, “Efficient and Accurate Candidate Generation for Grasp Pose Detection in SE(3),” &lt;em&gt;2021 IEEE/RSJ International Conference on Intelligent Robots and Systems&lt;/em&gt;, 2021. &lt;a href=&quot;https://doi.org/10.1109/IROS51168.2021.9636215&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;K. Kleeberger, F. Roth, R. Bormann, and M. F. Huber, “Automatic Grasp Pose Generation for Parallel Jaw Grippers,” &lt;em&gt;Lecture Notes in Networks and Systems&lt;/em&gt;, 2022. &lt;a href=&quot;https://doi.org/10.1007/978-3-030-95892-3_45&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;</content:encoded><h:img src="https://pic.hana0721.top/71849616_p0.1sfmv9l9of.webp"/><enclosure url="https://pic.hana0721.top/71849616_p0.1sfmv9l9of.webp"/></item><item><title>Robotic Grasp Detection (3): 平面与 2.5-D 抓取检测</title><link>https://agusexp25.top/blog/robotic-grasp-detection-3</link><guid isPermaLink="true">https://agusexp25.top/blog/robotic-grasp-detection-3</guid><description>从抓取矩形的表示出发，解释平面与 2.5-D 抓取检测如何被建模为监督学习问题，并连接数据预处理、卷积网络、稠密预测、候选解码和机器人执行。</description><pubDate>Fri, 14 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;&lt;/p&gt;
&lt;h2&gt;平面抓取的任务假设与表示（Task Assumptions and Representation）&lt;/h2&gt;
&lt;p&gt;假设相机从上方向下观察桌面，机器人使用平行夹爪抓取桌上的纸盒。夹爪始终沿桌面法线下降，那么系统不再需要搜索任意三维接近方向，只需要回答四个核心问题：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;夹爪中心应该落在哪个图像位置？&lt;/li&gt;
&lt;li&gt;两个夹指应该沿哪个方向闭合？&lt;/li&gt;
&lt;li&gt;夹爪张开多宽？&lt;/li&gt;
&lt;li&gt;这个候选有多可靠？&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;这就是平面抓取检测（Planar Grasp Detection）的基本假设：固定或强约束夹爪接近方向（Approach Direction），把原本位于三维空间中的抓取搜索转化为图像平面上的低维检测问题。Jiang 等人使用旋转抓取矩形（Oriented Grasp Rectangle）同时表达抓取位置、方向、开口和夹爪物理范围，由此建立了经典的图像空间接口 [1]。&lt;/p&gt;
&lt;p&gt;设输入图像的高度和宽度分别为 $H_I,W_I\in\mathbb N$，其中 $\mathbb N$ 表示正整数集合。本文采用下面的矩形约定：&lt;/p&gt;
&lt;p&gt;$$
g_{\mathrm{2D}}=(u,v,\theta,w_{\mathrm{px}},l_{\mathrm{px}},q).
$$&lt;/p&gt;
&lt;p&gt;各分量的含义为：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;$(u,v)\in[0,W_I)\times[0,H_I)$ 是抓取中心的像素坐标；&lt;/li&gt;
&lt;li&gt;$\theta\in[-\pi/2,\pi/2)$ 是夹爪闭合轴相对图像横轴的角度；&lt;/li&gt;
&lt;li&gt;$w_{\mathrm{px}}\in\mathbb R_{&gt;0}$ 是闭合轴方向上的像素开口；&lt;/li&gt;
&lt;li&gt;$l_{\mathrm{px}}\in\mathbb R_{&gt;0}$ 是与闭合轴垂直的夹指覆盖长度；&lt;/li&gt;
&lt;li&gt;$q\in[0,1]$ 是由具体标签定义决定的质量分数。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;可以把它想象成一张俯视图上的夹爪 footprint：$w_{\mathrm{px}}$ 沿着两指相互靠近和分离的方向，表示两指之间需要留出的距离；$l_{\mathrm{px}}$ 沿着夹指本身延伸的方向，表示抓取矩形覆盖的接触区域长度。二者都是像素长度，但物理作用不同：$w_{\mathrm{px}}$ 主要决定夹爪要张开多大，$l_{\mathrm{px}}$ 主要参与标注区域和碰撞覆盖范围的表达。不同论文可能交换矩形的长、短边命名，因此必须以“闭合轴”和“垂直方向”的定义为准，而不能只看变量名。&lt;/p&gt;
&lt;p&gt;不同数据集和代码库可能把 $\theta$ 定义为矩形长边方向，而不是闭合轴方向，两者会相差 $\pi/2$。实现时必须固定一个约定，并在数据读取、数据增强、网络解码和机器人控制中始终使用同一约定。&lt;/p&gt;
&lt;p&gt;平行夹爪旋转 $180^\circ$ 后，两个夹指交换位置，但抓取几何并未改变，因此：&lt;/p&gt;
&lt;p&gt;$$
\theta\equiv\theta+\pi.
$$&lt;/p&gt;
&lt;p&gt;这也是为什么平面抓取角通常只保留长度为 $\pi$ 的区间，而不是完整的 $[0,2\pi)$。&lt;/p&gt;
&lt;h3&gt;2.5-D 抓取表示的定义（Definition of 2.5-D Grasp Representation）&lt;/h3&gt;
&lt;p&gt;仅有矩形还不能确定机器人末端在三维空间中的位置，因为 $(u,v)$ 只是像素坐标。加入中心深度 $z\in\mathbb R_{&gt;0}$ 后，可以写成：&lt;/p&gt;
&lt;p&gt;$$
g_{\mathrm{2.5D}}=(u,v,z,\theta,w_{\mathrm{px}},q;\hat a_C).
$$&lt;/p&gt;
&lt;p&gt;其中 $z$ 的单位通常是米，$\hat a_C\in\mathbb R^3$ 是用相机坐标系表示的单位接近方向。分号表示 $\hat a_C$ 往往由“相机俯视桌面”“夹爪竖直下降”等系统先验固定，而不是由网络自由预测。&lt;/p&gt;
&lt;p&gt;这个表示已经可以恢复三维平移、绕接近轴的旋转和夹爪开口，但它仍未在三维旋转群中搜索任意滚转（Roll）、俯仰（Pitch）和偏航（Yaw），所以通常称为 2.5-D 抓取（2.5-D Grasp）。&lt;/p&gt;
&lt;h2&gt;抓取检测首先是一个监督学习问题（Grasp Detection as Supervised Learning）&lt;/h2&gt;
&lt;p&gt;在写网络结构之前，先把问题写成机器学习可以处理的形式。对第 $n$ 个样本，输入不是一张抽象的“图片”，而是一个有明确维度的张量：&lt;/p&gt;
&lt;p&gt;$$
X^{(n)}\in\mathbb R^{C_{\mathrm{in}}\times H_X\times W_X}.
$$&lt;/p&gt;
&lt;p&gt;其中 $C_{\mathrm{in}}\in\mathbb N$ 是输入通道数：RGB 输入通常为 $3$，单通道深度输入为 $1$，RGB-D 早期融合输入通常为 $4$；$H_X,W_X\in\mathbb N$ 是网络输入的高度和宽度。训练时会把多个这样的样本组成一个批次（Batch）。&lt;/p&gt;
&lt;p&gt;标签也不是一个单独的“正确矩形”。一张图像可能有多个可行抓取，所以标签应被理解为一个结构化目标 $Y^{(n)}$，其中包含一个或多个抓取矩形，或者由它们栅格化得到的质量、角度和开口目标图。网络用参数集合 $\vartheta$ 表示从输入到预测的映射：&lt;/p&gt;
&lt;p&gt;$$
\hat Y=F_{\vartheta}(X).
$$&lt;/p&gt;
&lt;p&gt;训练的目标是让预测 $\hat Y$ 与标签 $Y$ 接近。给定训练集 $\mathcal D_{\mathrm{train}}$，目标可以写成：&lt;/p&gt;
&lt;p&gt;$$
\vartheta^*=\underset{\vartheta}{\arg\min};
\frac{1}{|\mathcal D_{\mathrm{train}}|}
\sum_{(X,Y)\in\mathcal D_{\mathrm{train}}}
\mathcal L(F_{\vartheta}(X),Y).
$$&lt;/p&gt;
&lt;p&gt;这里 $\mathcal L$ 是损失函数（Loss Function）。训练集（Training Set）用于更新参数，验证集（Validation Set）用于选择模型和阈值，测试集（Test Set）只用于最终报告；如果训练损失下降而验证损失上升，就需要警惕过拟合（Overfitting）。&lt;/p&gt;
&lt;h3&gt;多头输出与任务分解（Multi-Head Prediction and Task Decomposition）&lt;/h3&gt;
&lt;p&gt;平面抓取至少同时包含“这里能不能抓”“夹爪朝哪个方向闭合”和“夹爪需要张开多宽”三个不同性质的量。把它们全部编码成一个类别会导致角度和开口的信息丢失；把它们直接拼成一个连续向量，又会使角度周期和多解问题变得难以处理。因此，常见做法是让网络共享前面的视觉特征，再使用多个输出头（Prediction Heads）分别预测：&lt;/p&gt;
&lt;p&gt;$$
F_{\vartheta}(X)=
\left(\hat Q,\hat C,\hat S,\hat W\right).
$$&lt;/p&gt;
&lt;p&gt;其中 $\hat Q\in\mathbb R^{H_O\times W_O}$ 是每个输出位置的抓取质量或可抓取性分数，$\hat C,\hat S\in\mathbb R^{H_O\times W_O}$ 是 $\cos(2\theta)$ 和 $\sin(2\theta)$，$\hat W\in\mathbb R^{H_O\times W_O}$ 是归一化开口。$H_O,W_O\in\mathbb N$ 是输出图的空间尺寸；它们可以等于输入尺寸，也可以是输入尺寸的下采样版本。把四个头沿通道维堆叠后，单个样本的输出可以看成 $\hat Y\in\mathbb R^{4\times H_O\times W_O}$。&lt;/p&gt;
&lt;p&gt;这被称为多任务学习（Multi-Task Learning）：多个任务共享一部分参数，但每个任务使用适合自身目标的损失。质量预测通常是分类或有界回归，角度预测是周期变量回归，宽度预测是连续回归。它们不应该被当成完全相同的监督问题。&lt;/p&gt;
&lt;h2&gt;CNN 如何把图像变成抓取特征（From Image to Grasp Features）&lt;/h2&gt;
&lt;p&gt;卷积神经网络（Convolutional Neural Network, CNN）的关键不是把每个像素独立送入全连接层，而是使用同一组局部滤波器（Filter）在整张图像上滑动。这样，网络可以在不同位置识别相似的边缘、纹理和几何结构，同时保留这些结构出现在哪里。&lt;/p&gt;
&lt;p&gt;在网络中，图像和中间结果都表示为特征图（Feature Map）。第 $l$ 层特征图可以记为：&lt;/p&gt;
&lt;p&gt;$$
X^{(l)}\in\mathbb R^{C_l\times H_l\times W_l},
$$&lt;/p&gt;
&lt;p&gt;其中 $C_l$ 是通道数，$H_l,W_l$ 是空间尺寸。输入 RGB 图像的通道通常是 $3$；经过卷积后，通道不再直接对应颜色，而是对应网络学到的边缘、纹理、表面方向或更高层视觉模式。&lt;/p&gt;
&lt;p&gt;一个卷积层主要由三个设置决定：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Kernel Size&lt;/strong&gt;：局部滤波器的空间范围，例如 $3\times3$；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Stride&lt;/strong&gt;：滤波器每次移动多少像素，步幅大于 $1$ 会降低空间分辨率；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Padding&lt;/strong&gt;：是否在边缘补充像素，使输出尺寸保持或接近输入尺寸。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;卷积后通常接非线性激活函数，例如 ReLU。多层卷积叠加后，浅层特征倾向于描述边缘和局部深度变化，深层特征则能结合更大的区域判断物体轮廓、凹槽和可接近空间。&lt;/p&gt;
&lt;p&gt;单个特征图位置能够看到的原图区域称为感受野（Receptive Field）。下采样会扩大有效感受野、降低计算量，但也会损失精细的位置分辨率。抓取检测因此经常在网络后部使用上采样（Upsampling）或跳跃连接（Skip Connection），把语义信息和局部空间细节重新结合起来。&lt;/p&gt;
&lt;h3&gt;Backbone、Head 和全卷积输出&lt;/h3&gt;
&lt;p&gt;一个典型的抓取检测器可以分为：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Backbone&lt;/strong&gt;：通过卷积层提取共享视觉特征 $F\in\mathbb R^{C_F\times H_F\times W_F}$；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Quality Head&lt;/strong&gt;：预测每个位置是否适合抓取；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Angle Head&lt;/strong&gt;：预测双角编码 $\hat C,\hat S$；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Width Head&lt;/strong&gt;：预测归一化开口 $\hat W$；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Decoder&lt;/strong&gt;：把特征恢复到输出分辨率，并生成 $\hat Q,\hat C,\hat S,\hat W$。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;全卷积网络（Fully Convolutional Network, FCN）不在末端把整张图压缩成一个向量，而是保留特征图的空间布局：&lt;/p&gt;
&lt;p&gt;$$
F_{\vartheta}(X)=
\operatorname{Head}&lt;em&gt;{\vartheta}
\left(\operatorname{Backbone}&lt;/em&gt;{\vartheta}(X)\right).
$$&lt;/p&gt;
&lt;p&gt;因此，网络可以一次前向传播为许多图像位置同时预测抓取。这就是稠密抓取检测（Dense Grasp Detection）的基础。输出图可以与输入同分辨率，也可以更小；分辨率越低，计算越快，但中心位置和开口尺度的量化误差越明显。后续标签生成和候选解码必须使用同一个输出坐标系。&lt;/p&gt;
&lt;h2&gt;输入模态与预处理（Input Modalities and Preprocessing）&lt;/h2&gt;
&lt;p&gt;平面抓取并不等于只能使用 RGB。常见输入可以是 RGB、深度或 RGB-D，它们提供的信息不同：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;RGB 图像提供纹理、颜色、物体边界和一定的语义信息；&lt;/li&gt;
&lt;li&gt;深度图提供度量尺度、表面起伏和物体相对桌面的高度；&lt;/li&gt;
&lt;li&gt;RGB-D 融合可以同时利用外观与几何，但必须处理两种模态不同的数值分布和失效方式。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Kumra 和 Kanan 使用独立网络分支提取 RGB 与深度特征，再进行融合，说明“使用哪些模态”和“如何融合模态”都会影响检测结果 [4]。早期融合（Early Fusion）通常把归一化深度作为第四通道，此时 $X\in\mathbb R^{4\times H_X\times W_X}$；后期融合（Late Fusion）分别编码 $X_{\mathrm{rgb}}\in\mathbb R^{3\times H_X\times W_X}$ 和 $X_{\mathrm{d}}\in\mathbb R^{1\times H_X\times W_X}$，再合并特征，参数和计算更多，但更容易保留模态特有的特征。如果额外输入深度有效性掩码，通道数还会相应增加。&lt;/p&gt;
&lt;p&gt;以深度输入为例，一个可复现的预处理过程通常包括：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;将原始深度统一换算成米；&lt;/li&gt;
&lt;li&gt;把零值、无穷值和超出工作距离的值标记为无效；&lt;/li&gt;
&lt;li&gt;对小空洞进行插值，但同时保留有效性掩码（Validity Mask）；&lt;/li&gt;
&lt;li&gt;围绕工作空间裁剪，并缩放到网络输入尺寸；&lt;/li&gt;
&lt;li&gt;减去有效像素均值或按训练集统计量标准化；&lt;/li&gt;
&lt;li&gt;对深度值进行合理截断，避免极端离群值主导梯度。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;记 $\operatorname{wrap}&lt;em&gt;\pi(\cdot)$ 为把角度按周期 $\pi$ 映射回 $[-\pi/2,\pi/2)$ 的操作。如果训练时把图像旋转 $\delta\in\mathbb R$，所有抓取中心和角度也必须同步变换，角度变为 $\theta&apos;=\operatorname{wrap}&lt;/em&gt;\pi(\theta+\delta)$。如果图像缩放了倍数 $\gamma\in\mathbb R_{&gt;0}$，像素开口也必须变为 $w&apos;&lt;em&gt;{\mathrm{px}}=\gamma w&lt;/em&gt;{\mathrm{px}}$。只增强图像而不更新抓取标签，会直接制造错误监督。&lt;/p&gt;
&lt;h2&gt;抓取标注到稠密监督目标（From Grasp Annotations to Dense Targets）&lt;/h2&gt;
&lt;p&gt;Cornell Grasp Dataset 为同一张 RGB-D 图像提供多个正、负抓取矩形；Jacquard 则通过仿真构造约 $54,000$ 张图像、约 $11,000$ 个物体和约 $1.1$ 百万个成功抓取位置 [5]。数据集给出的是抓取集合，而不是唯一答案，这是平面抓取训练中最重要的多解性来源。&lt;/p&gt;
&lt;h3&gt;候选分类和直接回归使用什么标签&lt;/h3&gt;
&lt;p&gt;候选分类方法先生成一个矩形 $R$，再判断它是否与任一正标注匹配。训练标签通常是二值类别，或由矩形匹配程度得到的连续分数。直接回归方法则需要为一个图像位置选择具体回归目标；如果同一位置附近存在多个方向差异很大的正确抓取，随意取平均值可能得到一个不可执行的中间方向。&lt;/p&gt;
&lt;h3&gt;稠密方法如何把矩形栅格化&lt;/h3&gt;
&lt;p&gt;设网络输出高度和宽度为 $H_O,W_O\in\mathbb N$。对每个输出像素，稠密方法可以预测四张图：&lt;/p&gt;
&lt;p&gt;$$
\hat Q,\hat C,\hat S,\hat W\in\mathbb R^{H_O\times W_O}.
$$&lt;/p&gt;
&lt;p&gt;其中 $\hat Q$ 是质量图，$\hat C$ 和 $\hat S$ 是双角编码图，$\hat W$ 是归一化开口图。对应监督信号记为 $Q^&lt;em&gt;,C^&lt;/em&gt;,S^&lt;em&gt;,W^&lt;/em&gt;\in\mathbb R^{H_O\times W_O}$，正区域掩码记为 $M\in{0,1}^{H_O\times W_O}$。&lt;/p&gt;
&lt;p&gt;对于第 $j$ 个正抓取矩形，其角度和像素开口分别记为 $\theta_j$ 和 $w_{\mathrm{px},j}$。在该矩形的正区域内写入：&lt;/p&gt;
&lt;p&gt;$$
Q^&lt;em&gt;_{uv}=1,
\qquad
C^&lt;/em&gt;&lt;em&gt;{uv}=\cos(2\theta_j),
\qquad
S^*&lt;/em&gt;{uv}=\sin(2\theta_j),
$$&lt;/p&gt;
&lt;p&gt;$$
W^*&lt;em&gt;{uv}=\operatorname{clip}
\left(
\frac{w&lt;/em&gt;{\mathrm{px},j}}{w_{\mathrm{px},\max}},0,1
\right),
\qquad
M_{uv}=1.
$$&lt;/p&gt;
&lt;p&gt;这里 $w_{\mathrm{px},\max}\in\mathbb R_{&gt;0}$ 是训练时允许的最大像素开口，$\operatorname{clip}(x,0,1)$ 表示把标量 $x$ 截断到区间 $[0,1]$。背景位置只需要监督 $Q^*_{uv}=0$；背景没有唯一正确的角度和开口，因此不应该用大量人为的零角度、零宽度去训练回归头。&lt;/p&gt;
&lt;p&gt;GG-CNN 将标注矩形的中心三分之一区域用作夹爪中心的正掩码，并将角度编码为 $\sin(2\theta)$ 与 $\cos(2\theta)$，从而避免 $-\pi/2$ 与 $\pi/2$ 处的标签跳变 [6]。缩小正区域还有一个直观作用：矩形边缘的像素并不一定是安全的夹爪中心。&lt;/p&gt;
&lt;p&gt;如果网络输出分辨率低于输入分辨率，矩形中心和端点必须先用同一个几何变换映射到输出网格。非等比例缩放会同时改变角度和开口，不能只给 $u,v,w_{\mathrm{px}}$ 分别乘一个常数；更稳妥的做法是变换矩形四个顶点，再重新计算中心、方向和边长。相应地，$w_{\mathrm{px},\max}$ 必须明确是在输出网格还是输入图像坐标中定义：若在输出网格中定义，解码得到的宽度还要乘以输出到输入的空间尺度，中心坐标也要使用同一尺度恢复。&lt;/p&gt;
&lt;p&gt;多个正矩形发生重叠时，一个像素可能对应多个正确方向。实现可以保留离该像素最近的标注、保留质量最高的标注，或使用多峰表示；直接对原始角度做算术平均通常不正确。下面设一幅图像共有 $N_R\in\mathbb N$ 个正抓取矩形。&lt;/p&gt;
&lt;h2&gt;抓取检测范式与输出形式（Detection Paradigms and Output Representations）&lt;/h2&gt;
&lt;h3&gt;候选生成与分类（Proposal Generation and Classification）&lt;/h3&gt;
&lt;p&gt;Jiang 等人先用快速特征把数千万个潜在矩形缩减到约百个，再用更复杂的特征精排 [1]；Lenz 等人随后使用两级级联网络（Cascaded Network）完成类似的粗筛和精排 [2]。其基本思想并不复杂：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;在图像位置、角度、尺度和开口上离散采样；&lt;/li&gt;
&lt;li&gt;将每个候选区域旋转、裁剪到统一方向和尺寸；&lt;/li&gt;
&lt;li&gt;用快速分类器删除明显错误的候选；&lt;/li&gt;
&lt;li&gt;用更强的分类器对剩余候选打分；&lt;/li&gt;
&lt;li&gt;对近重复矩形做非极大值抑制（Non-Maximum Suppression, NMS）。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;若位置、角度和开口分别使用 $N_u,N_v,N_\theta,N_w\in\mathbb N$ 个网格值，候选总数 $N_{\mathrm{cand}}\in\mathbb N$ 为：&lt;/p&gt;
&lt;p&gt;$$
N_{\mathrm{cand}}=N_uN_vN_\theta N_w.
$$&lt;/p&gt;
&lt;p&gt;角度网格步长为 $\Delta\theta\in\mathbb R_{&gt;0}$ 时，最坏量化误差约为 $\Delta\theta/2$。缩小步长可以提高覆盖率，但候选数量会成倍增加。候选分类器再准确，也无法恢复采样器从未提出的抓取。&lt;/p&gt;
&lt;h3&gt;抓取矩形直接回归（Direct Grasp Rectangle Regression）&lt;/h3&gt;
&lt;p&gt;Redmon 和 Angelova 直接从整幅图像回归抓取矩形，MultiGrasp 版本进一步输出多个候选 [3]。这种方法省去了显式滑窗，但需要处理“同一物体有多个正确答案”的问题：如果损失函数让网络在多个方向之间取平均，预测结果可能恰好落在所有正确模式之间。&lt;/p&gt;
&lt;p&gt;角度的 $\pi$ 周期也不能直接使用普通平方误差。令角度编码 $a,b\in[-1,1]$ 为：&lt;/p&gt;
&lt;p&gt;$$
a=\cos(2\theta),
\qquad
b=\sin(2\theta).
$$&lt;/p&gt;
&lt;p&gt;网络预测 $\hat a,\hat b\in\mathbb R$ 后，通过：&lt;/p&gt;
&lt;p&gt;$$
\hat\theta=\frac{1}{2}\operatorname{atan2}(\hat b,\hat a)
$$&lt;/p&gt;
&lt;p&gt;恢复角度。这样，$\theta$ 与 $\theta+\pi$ 会映射到同一个编码，角度区间边界也不再产生人为的大误差。&lt;/p&gt;
&lt;p&gt;这里 $\operatorname{atan2}(y,x)$ 表示根据二维向量 $(x,y)$ 的象限返回角度，而不是只计算普通的 $\arctan(y/x)$。&lt;/p&gt;
&lt;h3&gt;稠密抓取图预测（Dense Grasp Map Prediction）&lt;/h3&gt;
&lt;p&gt;生成式抓取卷积神经网络（Generative Grasping Convolutional Neural Network, GG-CNN）把深度图直接映射为质量、角度和开口图 [6]。与“生成很多矩形再逐个分类”相比，稠密预测只进行一次共享卷积计算，适合实时和闭环控制。&lt;/p&gt;
&lt;p&gt;设预处理后的输入张量为 $X\in\mathbb R^{C_{\mathrm{in}}\times H_X\times W_X}$，其中 $C_{\mathrm{in}},H_X,W_X\in\mathbb N$ 分别是输入通道数、高度和宽度；网络参数集合记为 $\vartheta$。稠密预测器可写成：&lt;/p&gt;
&lt;p&gt;$$
F_\vartheta(X)=(\hat Q,\hat C,\hat S,\hat W).
$$&lt;/p&gt;
&lt;p&gt;原始 GG-CNN 使用 $300\times300$ 深度输入和全卷积网络，输出与图像对齐的抓取图，并报告约 $19,\mathrm{ms}$ 的完整感知流水线以及最高 $50,\mathrm{Hz}$ 的闭环运行 [6]。这些数字说明低延迟设计的价值，但只适用于论文的硬件、相机和竖直接近协议。&lt;/p&gt;
&lt;h3&gt;基于关键点的抓取表示（Keypoint-Based Grasp Representation）&lt;/h3&gt;
&lt;p&gt;关键点表示（Keypoint Representation）不直接回归矩形角度。设左右夹指对应的二维关键点为 $k_L,k_R\in\mathbb R^2$，则中心、开口和闭合轴角度可以恢复为：&lt;/p&gt;
&lt;p&gt;$$
\begin{bmatrix}u\v\end{bmatrix}
=\frac{k_L+k_R}{2},
\qquad
w_{\mathrm{px}}=\lVert k_R-k_L\rVert_2,
$$&lt;/p&gt;
&lt;p&gt;$$
\theta=\operatorname{atan2}
\left(
(k_R-k_L)_y,
(k_R-k_L)_x
\right).
$$&lt;/p&gt;
&lt;p&gt;其中下标 $x$ 和 $y$ 分别表示二维向量的横、纵分量。GKNet 使用成对关键点和中心信息检测抓取，并通过关联机制判断哪些左右关键点属于同一个候选 [7]。这种表示绕开了直接角度回归，但引入了新的问题：关键点配对错误会生成跨物体抓取，小物体上的一两个像素偏差也会显著放大角度误差。&lt;/p&gt;
&lt;h2&gt;稠密抓取检测的训练目标与优化（Training Objective and Optimization）&lt;/h2&gt;
&lt;p&gt;设所有输出像素组成集合 $\Omega$，正区域像素集合为：&lt;/p&gt;
&lt;p&gt;$$
\Omega_+={(u,v)\in\Omega\mid M_{uv}=1}.
$$&lt;/p&gt;
&lt;p&gt;质量头可以使用均方误差或二元交叉熵，记其逐像素损失为 $\ell_q(\hat Q_{uv},Q^*&lt;em&gt;{uv})\in\mathbb R&lt;/em&gt;{\ge0}$。角度和宽度只在 $\Omega_+$ 上回归。令 $\lambda_q,\lambda_a,\lambda_w\in\mathbb R_{&gt;0}$ 为损失权重，总损失记为 $\mathcal L\in\mathbb R_{\ge0}$。一个清晰的多头损失写法是：&lt;/p&gt;
&lt;p&gt;$$
\begin{aligned}
\mathcal L
=&amp;#x26;\ \frac{\lambda_q}{|\Omega|}
\sum_{(u,v)\in\Omega}
\ell_q(\hat Q_{uv},Q^&lt;em&gt;&lt;em&gt;{uv})\
&amp;#x26;+\frac{1}{\max(1,|\Omega&lt;/em&gt;+|)}
\sum_{(u,v)\in\Omega_+}
\Bigl[
\lambda_a(\hat C_{uv}-C^&lt;/em&gt;&lt;em&gt;{uv})^2
+\lambda_a(\hat S&lt;/em&gt;{uv}-S^&lt;em&gt;&lt;em&gt;{uv})^2
+\lambda_w(\hat W&lt;/em&gt;{uv}-W^&lt;/em&gt;_{uv})^2
\Bigr].
\end{aligned}
$$&lt;/p&gt;
&lt;p&gt;这个掩码结构解决了一个常见错误：若在背景像素上也回归角度和开口，数量庞大的背景零标签会压过真正有意义的正抓取监督。&lt;/p&gt;
&lt;p&gt;质量图仍然可能有严重的正负不平衡。可以采用正类加权二元交叉熵、焦点损失（Focal Loss）或正负像素采样，但权重必须在验证集上固定，不能根据测试集调节。&lt;/p&gt;
&lt;p&gt;训练时至少应监控三类量：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;质量图是否把高分放在物体可抓区域，而不是桌面或深度空洞；&lt;/li&gt;
&lt;li&gt;正区域上的角度误差是否按 $\pi$ 周期计算；&lt;/li&gt;
&lt;li&gt;解码后的物理开口是否落在真实夹爪范围内。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;只查看总损失下降，很难发现角度通道塌缩、宽度尺度错误或质量图全部接近零等问题。&lt;/p&gt;
&lt;h3&gt;输出层和损失如何配合&lt;/h3&gt;
&lt;p&gt;网络最后一层的原始输出（Logits）通常还要经过适合任务的激活：质量和宽度头常被限制到 $(0,1)$，角度头则保留两个连续通道，之后用它们的方向计算 $\operatorname{atan2}$。质量标签是二值“是否可抓”时，可以使用二元交叉熵（Binary Cross-Entropy, BCE）；质量标签是连续分数时，可以使用均方误差（Mean Squared Error, MSE）。损失形式应与标签含义匹配。&lt;/p&gt;
&lt;h3&gt;批训练与参数更新（Batch Training and Parameter Updates）&lt;/h3&gt;
&lt;p&gt;训练一个批次时，网络依次执行前向传播（Forward Pass）、损失计算、反向传播（Backpropagation）和参数更新。以下流程把数据增强、标签生成、训练和验证放在同一条链路中：&lt;/p&gt;
&lt;p&gt;这个流程中，物理抓取执行通常不在反向传播路径内。训练标签来自数据集或成功抓取记录，网络先学习图像到抓取表示的映射；深度反投影、碰撞检查和机器人执行主要发生在推理后的后处理阶段。若要让网络直接学习执行成功概率，就需要额外的真实或仿真执行数据，以及与执行结果对应的损失设计，不能把离线矩形标签自动等同于真实成功率。&lt;/p&gt;
&lt;h2&gt;稠密输出解码与候选生成（Dense Output Decoding and Candidate Generation）&lt;/h2&gt;
&lt;p&gt;网络输出四张图以后，不能简单取质量图最大像素就结束。一个可执行的推理过程通常包括：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;用有效深度掩码和机器人工作空间掩码删除无效像素；&lt;/li&gt;
&lt;li&gt;对质量图做轻度高斯平滑，降低单像素噪声；&lt;/li&gt;
&lt;li&gt;找局部极大值，而不是只保留全局最大值；&lt;/li&gt;
&lt;li&gt;对位置接近、角度相近的候选做 NMS；&lt;/li&gt;
&lt;li&gt;在峰值处读取双角编码和归一化开口；&lt;/li&gt;
&lt;li&gt;反投影为 2.5-D 抓取；&lt;/li&gt;
&lt;li&gt;检查夹爪体积、桌面碰撞、逆运动学和接近轨迹。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;设局部峰值共有 $N_P\in\mathbb N$ 个，并记第 $k$ 个峰值为 $(u_k,v_k)$，其中 $k=1,\ldots,N_P$。第 $k$ 个候选的角度和像素开口解码为：&lt;/p&gt;
&lt;p&gt;$$
\theta_k=\frac{1}{2}
\operatorname{atan2}
(\hat S_{u_kv_k},\hat C_{u_kv_k}),
$$&lt;/p&gt;
&lt;p&gt;$$
w_{\mathrm{px},k}
=w_{\mathrm{px},\max}\hat W_{u_kv_k}.
$$&lt;/p&gt;
&lt;p&gt;如果 $(\hat C_{u_kv_k},\hat S_{u_kv_k})$ 的模长接近零，说明网络没有给出稳定方向，该候选应降低分数或直接丢弃。NMS 也应同时考虑位置和 $\pi$ 周期角度，否则同一物理抓取可能以 $\theta$ 与 $\theta+\pi$ 重复出现。下面设质量阈值为 $\tau_q\in[0,1]$，最多继续检查 $N_{\max}\in\mathbb N$ 个候选。&lt;/p&gt;
&lt;h3&gt;网络置信度与执行可行性排序（Confidence and Executability Ranking）&lt;/h3&gt;
&lt;p&gt;网络分数通常只反映训练标签。真实系统还会使用独立的执行特征重新排序，例如：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;夹爪与桌面的最小距离；&lt;/li&gt;
&lt;li&gt;深度邻域中的有效像素比例；&lt;/li&gt;
&lt;li&gt;抓取中心到图像边界的距离；&lt;/li&gt;
&lt;li&gt;机械臂逆运动学余量；&lt;/li&gt;
&lt;li&gt;接近轨迹长度；&lt;/li&gt;
&lt;li&gt;候选在连续多帧中的稳定程度。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;因此，最终分数可以是网络质量与执行余量的组合，但每一项都必须在验证阶段固定。把失败候选过滤掉以后再报告“网络准确率”，会混淆检测器本身和整个机器人流水线的贡献。&lt;/p&gt;
&lt;h2&gt;网络输出如何进入机器人执行（From Network Output to Robot Execution）&lt;/h2&gt;
&lt;p&gt;到这里，网络已经给出了图像坐标中的候选；物理转换是把它接入机器人系统所需的接口，而不是训练网络的主体。尤其要区分两个长度：$w_{\mathrm{px}}$ 是需要换算成夹爪实际开口的量，$l_{\mathrm{px}}$ 通常只描述矩形在夹指方向上的覆盖范围，用于标签区域、几何检查或评价，并不直接等于夹爪的张开宽度。&lt;/p&gt;
&lt;h3&gt;读取深度并恢复三维中心&lt;/h3&gt;
&lt;p&gt;设深度图为 $D\in\mathbb R^{H_I\times W_I}$，$D(v,u)$ 表示像素 $(u,v)$ 的度量深度。由于单个像素可能是空洞或离群值，可以在半径为 $r\in\mathbb N$ 的邻域 $\mathcal N_r(u,v)$ 内取有效深度中位数：&lt;/p&gt;
&lt;p&gt;$$
z=\operatorname{median}
\left{
D(y,x)\mid(x,y)\in\mathcal N_r(u,v),\ D(y,x)&gt;0
\right}.
$$&lt;/p&gt;
&lt;p&gt;如果没有有效值，应丢弃候选。设相机内参矩阵为 $K\in\mathbb R^{3\times3}$，齐次像素向量为 $\tilde s=(u,v,1)^{\mathsf T}\in\mathbb R^3$，则中心在相机坐标系中的三维位置 $p_C\in\mathbb R^3$ 为：&lt;/p&gt;
&lt;p&gt;$$
p_C=zK^{-1}\tilde s.
$$&lt;/p&gt;
&lt;p&gt;若内参由焦距 $f_x,f_y\in\mathbb R_{&gt;0}$ 和主点 $c_x,c_y\in\mathbb R$ 给出，则：&lt;/p&gt;
&lt;p&gt;$$
p_C=
\begin{bmatrix}
(u-c_x)z/f_x\
(v-c_y)z/f_y\
z
\end{bmatrix}.
$$&lt;/p&gt;
&lt;h3&gt;把像素开口换成物理开口&lt;/h3&gt;
&lt;p&gt;对于闭合轴角度 $\theta$，二维单位方向为 $e_\theta=(\cos\theta,\sin\theta)^{\mathsf T}\in\mathbb R^2$。开口两端的像素位置为：&lt;/p&gt;
&lt;p&gt;$$
s_\pm=
\begin{bmatrix}u\v\end{bmatrix}
\pm\frac{w_{\mathrm{px}}}{2}e_\theta.
$$&lt;/p&gt;
&lt;p&gt;将两个端点按同一个深度 $z$ 反投影为 $P_+,P_-\in\mathbb R^3$：&lt;/p&gt;
&lt;p&gt;$$
P_\pm=zK^{-1}
\begin{bmatrix}
(s_\pm)&lt;em&gt;x\
(s&lt;/em&gt;\pm)&lt;em&gt;y\
1
\end{bmatrix},
\qquad
w&lt;/em&gt;{\mathrm m}=\lVert P_+-P_-\rVert_2.
$$&lt;/p&gt;
&lt;p&gt;其中 $w_{\mathrm m}\in\mathbb R_{&gt;0}$ 是物理开口，最终还要满足夹爪的硬件范围 $[w_{\min},w_{\max}]$。直接使用 $zw_{\mathrm{px}}/f_x$ 只在视场局部、方向和内参满足额外近似时成立；端点反投影更容易检查单位和坐标系是否一致。&lt;/p&gt;
&lt;h3&gt;构造位姿并执行可行性检查&lt;/h3&gt;
&lt;p&gt;在相机光轴与固定接近方向平行的俯视配置中，闭合轴可以先写成：&lt;/p&gt;
&lt;p&gt;$$
\bar c_C=
\begin{bmatrix}
\cos\theta/f_x\
\sin\theta/f_y\
0
\end{bmatrix}\in\mathbb R^3,
\qquad
c_C=\frac{\bar c_C}{\lVert\bar c_C\rVert_2}.
$$&lt;/p&gt;
&lt;p&gt;给定单位接近方向 $a_C\in\mathbb R^3$，令 $b_C=a_C\times c_C\in\mathbb R^3$，在固定工具轴约定下构造：&lt;/p&gt;
&lt;p&gt;$$
R_{CG}=\begin{bmatrix}c_C&amp;#x26;b_C&amp;#x26;a_C\end{bmatrix}\in SO(3).
$$&lt;/p&gt;
&lt;p&gt;若 $T_{BC}\in SE(3)$ 表示相机坐标系到机器人基座坐标系的外参，则：&lt;/p&gt;
&lt;p&gt;$$
T_{CG}=\begin{bmatrix}R_{CG}&amp;#x26;p_C\\mathbf 0_{1\times3}&amp;#x26;1\end{bmatrix}\in SE(3),
\qquad
T_{BG}=T_{BC}T_{CG}.
$$&lt;/p&gt;
&lt;p&gt;最后还需要检查夹爪宽度、指尖和桌面碰撞、逆运动学、预抓取位姿以及接近轨迹。通过这些检查的候选，才会被转换为机器人控制器的目标；网络质量高并不意味着候选一定可达或一定安全。&lt;/p&gt;
&lt;h2&gt;闭环控制与时序更新（Closed-Loop Control and Temporal Updates）&lt;/h2&gt;
&lt;p&gt;稠密平面检测的一个重要优势是可以高频重算。开环系统在初始帧预测一次抓取，然后完全依赖标定和控制精度；闭环系统则在夹爪接近过程中重复执行“观测—预测—解码—修正”。&lt;/p&gt;
&lt;p&gt;实际闭环不能每帧都无条件跳到新的最高峰，否则相邻候选之间的分数抖动会导致机械臂来回摆动。常见实现会：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;在位置、角度和宽度上跟踪与上一帧最接近的候选；&lt;/li&gt;
&lt;li&gt;对目标位置和角度做低通滤波；&lt;/li&gt;
&lt;li&gt;将目标差转换为速度命令或短时域位姿增量；&lt;/li&gt;
&lt;li&gt;当质量低于阈值、峰值跳变过大或深度失效时停止；&lt;/li&gt;
&lt;li&gt;当相机进入最小可靠测距范围后冻结视觉目标，再完成最后一段闭合。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;GG-CNN 的实验说明了低延迟抓取图对动态目标和闭环修正的价值 [6]。不过，网络前向频率不等于控制频率：图像采集、深度处理、坐标变换、通信和机器人控制器都会贡献延迟。&lt;/p&gt;
&lt;h2&gt;数据集与基准评测协议（Datasets and Benchmark Protocols）&lt;/h2&gt;
&lt;p&gt;平面抓取基准需要同时说明数据集、抓取标注、数据划分和评价指标。它们衡量的不是通用目标检测中的物体类别或边界框，而是预测的平行夹爪抓取是否接近一个可行的抓取矩形。&lt;/p&gt;
&lt;h3&gt;任务输入与抓取标注（Task Inputs and Grasp Annotations）&lt;/h3&gt;
&lt;p&gt;Cornell 和 Jacquard 都围绕平面抓取表示组织数据。输入通常包含 RGB、深度或 RGB-D 图像；输出是一个或多个旋转抓取矩形：&lt;/p&gt;
&lt;p&gt;$$
R=(u,v,\theta,w_{\mathrm{px}},l_{\mathrm{px}}).
$$&lt;/p&gt;
&lt;p&gt;同一物体可能存在多个可行抓取，因此一张图像对应的是正抓取集合 $\mathcal R^&lt;em&gt;={R_j^&lt;/em&gt;}$，而不是唯一的目标框。评测时，只要预测矩形与其中一个正标注足够接近，通常就可以视为匹配成功。这一点与 COCO 中“检测某个物体实例的边界框”不同。&lt;/p&gt;
&lt;h3&gt;Cornell Grasp Dataset（Cornell 抓取数据集）&lt;/h3&gt;
&lt;p&gt;Cornell Grasp Dataset 包含 885 张 RGB-D 图像和 240 个物体，提供人工标注的旋转抓取矩形 [1]。它适合验证平面抓取表示、候选分类、直接回归和稠密预测等方法，但规模相对较小，结果容易受到数据划分和数据增强策略影响。&lt;/p&gt;
&lt;p&gt;常见划分包括：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Image-Wise Split&lt;/strong&gt;：按图像划分，同一物体的不同视图可能同时出现在训练集和测试集；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Object-Wise Split&lt;/strong&gt;：按物体实例划分，测试物体不会出现在训练集。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Object-Wise Split 更能反映物体实例泛化能力。两种划分不能混合比较，论文报告结果时应明确使用的划分协议。&lt;/p&gt;
&lt;h3&gt;Jacquard Dataset（Jacquard 抓取数据集）&lt;/h3&gt;
&lt;p&gt;Jacquard 是面向大规模平面抓取检测的仿真 RGB-D 数据集，包含约 $54,000$ 张图像、约 $11,000$ 个物体和约 $1.1$ 百万个抓取标注 [5]。相较 Cornell，它提供了更大的物体和抓取覆盖范围，适合训练全卷积和稠密抓取检测器。&lt;/p&gt;
&lt;p&gt;Jacquard 的抓取数据来自仿真生成和仿真评估，因此可以用 Simulated Grasp Trial（SGT，仿真抓取试验）补充矩形几何指标。它的优势是规模大、标注成本低、可以批量测试抓取候选；局限是渲染外观、深度噪声、接触模型和真实夹爪之间存在 Synthetic-to-Real Gap（仿真到真实域差距）。在 Jacquard 上取得较高分数，不能直接等同于真实机器人成功率。&lt;/p&gt;
&lt;h3&gt;数据划分与预处理约束（Splits and Preprocessing Protocols）&lt;/h3&gt;
&lt;p&gt;训练集、验证集和测试集应在数据增强之前确定。旋转、裁剪和缩放后的样本仍然来自同一原始图像，不能让它们跨越训练集和测试集边界，否则会造成数据泄漏（Data Leakage）。&lt;/p&gt;
&lt;p&gt;同时需要固定：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;RGB、深度和抓取标注是否使用相同的裁剪、缩放和旋转；&lt;/li&gt;
&lt;li&gt;输出抓取矩形是在输入图像坐标还是输出特征图坐标中评价；&lt;/li&gt;
&lt;li&gt;是否采用 Image-Wise Split、Object-Wise Split 或数据集规定的官方划分；&lt;/li&gt;
&lt;li&gt;质量阈值、候选数量和 NMS 是否在验证集上确定。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;旋转抓取矩形指标（Rotated Grasp Rectangle Metrics）&lt;/h3&gt;
&lt;p&gt;设预测矩形为 $\hat R$，正标注矩形为 $R_j^*$，二者角度都映射到 $[-\pi/2,\pi/2)$。由于平行夹爪具有 $\pi$ 周期，周期角度误差定义为：&lt;/p&gt;
&lt;p&gt;$$
\Delta_\pi(\hat\theta,\theta_j^&lt;em&gt;)
=\min\left(
|\hat\theta-\theta_j^&lt;/em&gt;|,
\pi-|\hat\theta-\theta_j^*|
\right).
$$&lt;/p&gt;
&lt;p&gt;旋转矩形交并比（Intersection over Union, IoU）为：&lt;/p&gt;
&lt;p&gt;$$
\operatorname{IoU}(\hat R,R_j^&lt;em&gt;)
=\frac{|\hat R\cap R_j^&lt;/em&gt;|}{|\hat R\cup R_j^*|}.
$$&lt;/p&gt;
&lt;p&gt;常见的矩形检测判据要求预测至少与一个正标注同时满足：&lt;/p&gt;
&lt;p&gt;$$
\Delta_\pi(\hat\theta,\theta_j^&lt;em&gt;)&amp;#x3C;30^\circ,
\qquad
\operatorname{IoU}(\hat R,R_j^&lt;/em&gt;)&gt;0.25.
$$&lt;/p&gt;
&lt;p&gt;旋转 IoU 必须根据旋转矩形的多边形交集计算，不能用轴对齐外接框代替，否则会高估重叠程度。该指标衡量的是预测矩形与标注集合的几何接近程度，不是物理抓取成功。&lt;/p&gt;
&lt;h3&gt;评测证据的层级（Evidence Levels）&lt;/h3&gt;
&lt;p&gt;平面抓取结果应区分三个层级：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;矩形检测指标&lt;/strong&gt;：预测是否接近一个正抓取标注；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;仿真抓取成功率&lt;/strong&gt;：候选在碰撞、接触和摩擦模型下是否成功；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;真实机器人成功率&lt;/strong&gt;：候选经过深度恢复、坐标变换、运动规划和真实接触后是否成功。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Jacquard 使用 SGT 说明了第二层证据的价值，但仿真成功仍然不能替代真实机器人实验。一个通过矩形判据的预测，仍可能因为深度无效、物理开口超出硬件范围、夹爪碰撞桌面、没有逆运动学解或抬升时滑落而失败。&lt;/p&gt;
&lt;h2&gt;系统实现模块与日志（System Modules and Logging）&lt;/h2&gt;
&lt;p&gt;一个教学用途的平面抓取系统至少应拆成下面六个模块：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;数据模块&lt;/strong&gt;：读取 RGB-D、内参、抓取矩形和训练/测试划分；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;标签模块&lt;/strong&gt;：同步完成裁剪、旋转、缩放和稠密标签栅格化；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;网络模块&lt;/strong&gt;：输出质量、双角编码和归一化宽度；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;解码模块&lt;/strong&gt;：提取峰值、执行 NMS，并恢复矩形候选；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;几何模块&lt;/strong&gt;：读取深度、反投影、换算开口并完成手眼变换；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;执行模块&lt;/strong&gt;：碰撞、逆运动学、预抓取轨迹、闭合、抬升和失败恢复。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;训练阶段可以只运行前三个模块，但声称系统能够“机器人抓取”时，后三个模块不能省略。日志中也应分别记录：网络原始候选、几何过滤原因、规划失败原因和最终执行结果。否则，抓取失败时无法判断问题来自感知、标定、碰撞模型、运动规划还是夹爪接触。&lt;/p&gt;
&lt;h2&gt;平面与 2.5-D 方法的能力边界（Capability Boundary）&lt;/h2&gt;
&lt;p&gt;| 能力               | 平面/2.5-D 方法的表现 | 主要原因                         |
| :----------------- | :-------------------- | :------------------------------- |
| 竖直桌面抓取       | 强                    | 固定接近方向与任务先验一致       |
| 实时稠密预测       | 强                    | 输出空间低维，整图共享卷积计算   |
| 动态闭环修正       | 强                    | 可以高频更新中心、角度和开口     |
| 任意俯仰和滚转     | 弱                    | 网络通常不搜索完整 $SO(3)$       |
| 遮挡背面的接触     | 弱                    | 单幅图像矩形不表示隐藏几何       |
| 手腕和夹爪三维碰撞 | 间接                  | 必须依赖额外三维几何模块         |
| 机器人可达性       | 不直接表示            | 图像空间标签不了解机械臂关节状态 |&lt;/p&gt;
&lt;p&gt;平面抓取不是被 6-DoF 方法淘汰的旧接口。在固定相机、桌面、竖直接近和实时控制场景中，它仍然具有计算简单、数据接口清晰和闭环频率高的优势。真正需要确认的是：任务是否允许固定接近方向，以及评价是否覆盖了最终机器人面对的深度、碰撞、可达性和执行误差。&lt;/p&gt;
&lt;h2&gt;小结（Summary）&lt;/h2&gt;
&lt;p&gt;平面与 2.5-D 抓取检测可以按一条完整链路理解：&lt;/p&gt;
&lt;p&gt;$$
\text{RGB / Depth}
\rightarrow
\text{Grasp Labels}
\rightarrow
\text{Quality, Angle, Width Maps}
\rightarrow
\text{2-D Candidates}
\rightarrow
\text{2.5-D Poses}
\rightarrow
\text{Feasibility Checks}
\rightarrow
\text{Robot Execution}.
$$&lt;/p&gt;
&lt;p&gt;旋转矩形只是这条链路的中间表示。要把原理落实为系统，需要同时正确处理角度周期、像素宽度与物理宽度、无效深度、相机内外参、候选去重、三维碰撞、逆运动学和接近轨迹。只完成矩形检测，还没有完成机器人抓取。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;参考文献（References）&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Y. Jiang, S. Moseson, and A. Saxena, “Efficient Grasping from RGBD Images: Learning Using a New Rectangle Representation,” &lt;em&gt;2011 IEEE International Conference on Robotics and Automation&lt;/em&gt;, 2011. &lt;a href=&quot;https://doi.org/10.1109/ICRA.2011.5980145&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;I. Lenz, H. Lee, and A. Saxena, “Deep Learning for Detecting Robotic Grasps,” &lt;em&gt;The International Journal of Robotics Research&lt;/em&gt;, 2015. &lt;a href=&quot;https://doi.org/10.1177/0278364914549607&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;J. Redmon and A. Angelova, “Real-Time Grasp Detection Using Convolutional Neural Networks,” &lt;em&gt;2015 IEEE International Conference on Robotics and Automation&lt;/em&gt;, 2015. &lt;a href=&quot;https://doi.org/10.1109/ICRA.2015.7139361&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;S. Kumra and C. Kanan, “Robotic Grasp Detection Using Deep Convolutional Neural Networks,” &lt;em&gt;2017 IEEE/RSJ International Conference on Intelligent Robots and Systems&lt;/em&gt;, 2017. &lt;a href=&quot;https://doi.org/10.1109/IROS.2017.8202237&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;A. Depierre, E. Dellandrea, and L. Chen, “Jacquard: A Large Scale Dataset for Robotic Grasp Detection,” &lt;em&gt;2018 IEEE/RSJ International Conference on Intelligent Robots and Systems&lt;/em&gt;, 2018. &lt;a href=&quot;https://doi.org/10.1109/IROS.2018.8593950&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;D. Morrison, J. Leitner, and P. Corke, “Closing the Loop for Robotic Grasping: A Real-Time, Generative Grasp Synthesis Approach,” &lt;em&gt;Robotics: Science and Systems XIV&lt;/em&gt;, 2018. &lt;a href=&quot;https://doi.org/10.15607/RSS.2018.XIV.021&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;R. Xu, F.-J. Chu, and P. A. Vela, “GKNet: Grasp Keypoint Network for Grasp Candidates Detection,” &lt;em&gt;The International Journal of Robotics Research&lt;/em&gt;, 2022. &lt;a href=&quot;https://doi.org/10.1177/02783649211069569&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;</content:encoded><h:img src="https://pic.hana0721.top/70217040_p0_master1200.77e5dp0f1s.webp"/><enclosure url="https://pic.hana0721.top/70217040_p0_master1200.77e5dp0f1s.webp"/></item><item><title>Robotic Grasp Detection (2): 抓取几何与质量评价</title><link>https://agusexp25.top/blog/robotic-grasp-detection-2</link><guid isPermaLink="true">https://agusexp25.top/blog/robotic-grasp-detection-2</guid><description>以具体抓取候选为线索，从摩擦锥、力旋量、力闭合到鲁棒质量，解释解析抓取质量如何计算，以及它与仿真和真实成功的区别。</description><pubDate>Fri, 14 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import Algorithm from &apos;@/components/advanced/Algorithm.astro&apos;
import AlgorithmStep from &apos;@/components/advanced/AlgorithmStep.astro&apos;&lt;/p&gt;
&lt;h2&gt;先看一个具体问题（A Concrete Starting Point）&lt;/h2&gt;
&lt;p&gt;假设机器人要从桌面上夹起一个纸盒。视觉系统已经找到了两个候选抓取：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;候选 A：两个夹指接触纸盒的左右两侧，接触位置大致位于中部；&lt;/li&gt;
&lt;li&gt;候选 B：两个夹指也能接触左右两侧，但位置更靠近顶部。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这两个候选都可能看起来“能够夹住”。但是，当机器人抬起纸盒、机械臂发生一点姿态误差，或者纸盒受到侧向扰动时，它们的表现可能完全不同。候选 A 也许能够稳定抬起，候选 B 则可能让纸盒旋转或从夹指中滑落。&lt;/p&gt;
&lt;p&gt;因此，抓取检测（Grasp Detection）不能只回答：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;这个姿态看起来像不像一个抓取？&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;它还需要回答：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;在多个可行候选中，哪一个更值得执行？&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;这就是抓取质量（Grasp Quality）要解决的问题。抓取质量不是一个由网络凭空产生的神秘分数，而是对某个抓取候选进行评价的结果。评价可以来自接触力学模型、仿真执行，也可以来自真实机器人试验；不同来源得到的分数，含义并不相同。&lt;/p&gt;
&lt;h2&gt;Grasp Quality 的宽泛定义（A Broad Meaning of Grasp Quality）&lt;/h2&gt;
&lt;p&gt;对于给定的物体和机械手，通常不止一个抓取能够满足基本要求。Roa 和 Suárez 将抓取质量指标（Grasp Quality Measure）概括为：用于量化一个抓取“好坏程度”的指标（an index that quantifies the goodness of a grasp）[1]。&lt;/p&gt;
&lt;p&gt;这个定义故意比较宽泛，因为“好”取决于我们究竟想评价什么：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;如果关心接触力能否抵抗外部扰动，质量可以由力闭合（Force Closure）或 Ferrari–Canny 指标表示；&lt;/li&gt;
&lt;li&gt;如果关心感知误差和控制误差，质量可以表示不确定性下的成功概率；&lt;/li&gt;
&lt;li&gt;如果关心仿真中的动作结果，质量可以是是否成功闭合和抬升；&lt;/li&gt;
&lt;li&gt;如果关心真实部署，质量可以是多次机器人试验中的执行成功率；&lt;/li&gt;
&lt;li&gt;如果抓取服务于后续操作，质量还要考虑抓取是否适合任务。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;所以，Grasp Quality 不是所有论文都共用的一个固定公式。下面这三个概念需要先分开：&lt;/p&gt;
&lt;p&gt;| 概念                          | 含义                                     | 典型输出                             |
| :---------------------------- | :--------------------------------------- | :----------------------------------- |
| 力闭合（Force Closure）       | 接触力学上是否能够抵抗各个方向的外部扰动 | 通常是二值判断                       |
| 解析质量（Analytic Quality）  | 在力学模型下，抵抗扰动的余量有多大       | 连续分数，例如 Ferrari–Canny Epsilon |
| 执行成功（Execution Success） | 机器人实际是否完成闭合、抬升或后续任务   | 二值结果或成功率                     |&lt;/p&gt;
&lt;p&gt;一个力闭合抓取不一定能够被机器人成功执行；一个真实执行成功的抓取，也不一定具有较高的 Ferrari–Canny 分数。它们评价的是同一个抓取候选的不同方面。&lt;/p&gt;
&lt;p&gt;本文聚焦平行夹爪（Parallel-Jaw Gripper），但重点不是某一副夹爪，而是建立一条从接触几何到质量分数的推导链：&lt;/p&gt;
&lt;p&gt;$$
\text{接触位置和法线}
\rightarrow
\text{摩擦约束}
\rightarrow
\text{力与力矩}
\rightarrow
\text{Force Closure / Quality}
$$&lt;/p&gt;
&lt;h2&gt;先固定一个最简单的物理模型（A Minimal Physical Model）&lt;/h2&gt;
&lt;p&gt;为了能够计算，我们先暂时做几个简化：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;物体是刚体（Rigid Body），形状在抓取过程中不改变；&lt;/li&gt;
&lt;li&gt;抓取过程是准静态的（Quasi-Static），暂不考虑碰撞冲击和高速动态；&lt;/li&gt;
&lt;li&gt;夹指与物体在有限个接触点接触；&lt;/li&gt;
&lt;li&gt;接触遵循库仑摩擦模型（Coulomb Friction Model）；&lt;/li&gt;
&lt;li&gt;物体的质心、接触位置和接触法线已经能够估计。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;这些假设不是现实世界的完整描述，而是让接触力可以被写成公式。后面讨论的每个解析指标，都只在这些假设下成立。&lt;/p&gt;
&lt;p&gt;下面统一使用物体坐标系，并把向量写成列向量。设 $n\in\mathbb N$ 为接触点数量，接触编号为 $i=1,\ldots,n$；这里 $\mathbb N$ 表示正整数集合。三维位置、方向和力都属于 $\mathbb R^3$；标量（例如法向力、摩擦系数和长度）属于 $\mathbb R$。&lt;/p&gt;
&lt;h3&gt;力负责平移，力矩负责旋转&lt;/h3&gt;
&lt;p&gt;先不考虑摩擦。物体受到的接触力可以改变物体的平移运动；如果力的作用线没有经过质心，它还会产生旋转效果。&lt;/p&gt;
&lt;p&gt;设第 $i$ 个接触点为 $p_i\in\mathbb R^3$，物体质心为 $c\in\mathbb R^3$，接触力为 $f_i\in\mathbb R^3$。从质心指向接触点的向量是力臂（Moment Arm）$r_i\in\mathbb R^3$：&lt;/p&gt;
&lt;p&gt;$$
r_i=p_i-c.
$$&lt;/p&gt;
&lt;p&gt;接触力产生的力矩（Torque）$\tau_i\in\mathbb R^3$ 为：&lt;/p&gt;
&lt;p&gt;$$
\tau_i=r_i\times f_i.
$$&lt;/p&gt;
&lt;p&gt;这里的叉乘说明了一个很直观的事实：力越大、力臂越长，产生的旋转效果通常越明显；如果力的作用线正好经过质心，力矩就会变小。&lt;/p&gt;
&lt;p&gt;在准静态平衡下，设 $f_{\mathrm{ext}}\in\mathbb R^3$ 和 $\tau_{\mathrm{ext}}\in\mathbb R^3$ 分别是作用在物体上的外部力和外部力矩。记 $\mathbf 0_3\in\mathbb R^3$ 为三维零向量，接触力和外部扰动需要满足：&lt;/p&gt;
&lt;p&gt;$$
\sum_{i=1}^{n} f_i+f_{\mathrm{ext}}=\mathbf 0_3,
$$&lt;/p&gt;
&lt;p&gt;$$
\sum_{i=1}^{n} (p_i-c)\times f_i+\tau_{\mathrm{ext}}=\mathbf 0_3.
$$&lt;/p&gt;
&lt;p&gt;第一行平衡平移，第二行平衡旋转。抓取质量的核心问题，就是判断接触力是否有足够的方向和幅值，同时满足这两个平衡关系。&lt;/p&gt;
&lt;h2&gt;摩擦锥：接触力不是任意方向（Friction Cone）&lt;/h2&gt;
&lt;p&gt;如果夹指和物体完全没有摩擦，夹指只能沿接触法线推物体。现实中的夹指存在摩擦，因此还可以施加一部分切向力，但切向力不能无限增大。&lt;/p&gt;
&lt;p&gt;把第 $i$ 个接触力分成法向分量和切向分量：&lt;/p&gt;
&lt;p&gt;$$
f_i=f_{n,i}n_i+f_{t,i},
$$&lt;/p&gt;
&lt;p&gt;其中 $n_i\in\mathbb R^3$ 是指向物体内部的单位接触法线（Contact Normal），$f_{n,i}\in\mathbb R$ 是法向力大小，$f_{t,i}\in\mathbb R^3$ 是切向力向量：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;$\lVert n_i\rVert_2=1$，且 $f_{n,i}\ge 0$；&lt;/li&gt;
&lt;li&gt;$n_i^\top f_{t,i}=0$，所以 $f_{t,i}$ 位于接触切平面内。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;库仑摩擦模型给出的限制是：&lt;/p&gt;
&lt;p&gt;$$
\lVert f_{t,i}\rVert_2\le \mu f_{n,i},
$$&lt;/p&gt;
&lt;p&gt;其中 $\mu\in\mathbb R_{\ge 0}$ 是摩擦系数（Friction Coefficient）。当 $\mu$ 较大时，切向力允许更大，接触力的方向也可以偏离法线更多。&lt;/p&gt;
&lt;p&gt;把所有满足这个不等式的力方向画在接触点周围，就得到一个圆锥，称为摩擦锥（Friction Cone）。记摩擦锥半角为 $\theta_\mu\in\mathbb R$，则：&lt;/p&gt;
&lt;p&gt;$$
\theta_\mu=\arctan\mu.
$$&lt;/p&gt;
&lt;p&gt;因此，判断一个候选是否可能稳定，第一步不是看两个接触点距离有多远，而是看夹指施加的力是否落在两个接触点各自的摩擦锥内。&lt;/p&gt;
&lt;h3&gt;为什么要离散化摩擦锥&lt;/h3&gt;
&lt;p&gt;连续圆锥包含无穷多个力方向，计算机通常用 $m\in\mathbb N$ 条边组成的多面锥近似它。设 $t_{i1},t_{i2}\in\mathbb R^3$ 是接触切平面的两个正交单位向量，即 $n_i^\top t_{i1}=n_i^\top t_{i2}=0$、$t_{i1}^\top t_{i2}=0$ 且 $\lVert t_{i1}\rVert_2=\lVert t_{i2}\rVert_2=1$；再设每个接触的法向力预算为 $\bar f_{n,i}\in\mathbb R_{&gt;0}$。令 $k=0,\ldots,m-1$，第 $k$ 条边对应的接触力 $f_{ik}\in\mathbb R^3$ 可以写成：&lt;/p&gt;
&lt;p&gt;$$
f_{ik}=\bar f_{n,i}\left[
n_i+
\mu\cos!\left(\frac{2\pi k}{m}\right)t_{i1}
+\mu\sin!\left(\frac{2\pi k}{m}\right)t_{i2}
\right],
\qquad k=0,\ldots,m-1.
$$&lt;/p&gt;
&lt;p&gt;这些 $f_{ik}$ 是摩擦锥边界上的代表性接触力。$m$ 越大，圆锥近似越精细，但后续需要处理的候选力也越多。&lt;/p&gt;
&lt;p&gt;如果只需要表示允许的力方向，通常令法向力预算为 $1$；如果需要保留力的物理尺度，则使用具体的 $\bar f_{n,i}$。在不带上限的库仑模型下，第 $i$ 个接触的摩擦锥可以写成：&lt;/p&gt;
&lt;p&gt;$$
\mathcal C_i=
\left{
f_i\in\mathbb R^3\ \middle|&lt;br&gt;
f_i=f_{n,i}n_i+f_{t,i},\ f_{n,i}\ge 0,\ n_i^\top f_{t,i}=0,&lt;br&gt;
\lVert f_{t,i}\rVert_2\le \mu f_{n,i}
\right}.
$$&lt;/p&gt;
&lt;p&gt;因此，$\mathcal C_i$ 是一个力的集合，而不是一个单独的力向量；$f_{ik}$ 则是给定法向力预算下对这个集合边界的离散采样。&lt;/p&gt;
&lt;p&gt;这里的 $\bar f_{n,i}$ 很重要。如果不限制法向力大小，那么把所有接触力同时放大，就可以得到任意大的“抗扰动能力”，质量分数将失去有限尺度。因此，计算 Ferrari–Canny 指标时必须说明力是否被归一化，以及采用了怎样的力预算。&lt;/p&gt;
&lt;h2&gt;对向抓取：一个快速的几何判断（Antipodal Grasp）&lt;/h2&gt;
&lt;p&gt;对于平行夹爪，常见的候选生成方法是寻找对向抓取（Antipodal Grasp）。它的直观条件是：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;两个接触点位于物体相对的两侧；&lt;/li&gt;
&lt;li&gt;两个夹指的压紧方向大致相反；&lt;/li&gt;
&lt;li&gt;连接两个接触点的方向落在两侧接触摩擦锥允许的范围内。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;如果两个夹指只是碰到了物体，但接触力方向明显偏向同一侧，物体就可能沿着另一个方向滑走。对向条件可以快速排除这类候选。&lt;/p&gt;
&lt;p&gt;但对向抓取只是局部几何条件，不是完整的质量评价。即使一个候选满足对向条件，它仍然可能：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;与桌面或邻近物体碰撞；&lt;/li&gt;
&lt;li&gt;夹爪开口不足；&lt;/li&gt;
&lt;li&gt;夹得太浅；&lt;/li&gt;
&lt;li&gt;产生过大的旋转力矩；&lt;/li&gt;
&lt;li&gt;超出机械臂的可达范围。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;因此，对向抓取通常用于候选生成，随后还需要进行力闭合、解析质量和执行可行性检查。&lt;/p&gt;
&lt;h2&gt;把接触力写成力旋量（Wrench）&lt;/h2&gt;
&lt;p&gt;前面的分析同时涉及合力和力矩。为了用同一个数学对象表示它们，机器人抓取理论把三维力和三维力矩合称为力旋量（Wrench）。设 $\rho\in\mathbb R_{&gt;0}$ 是物体的特征长度（Characteristic Length），并用它把力矩归一化；单个接触产生的归一化力旋量 $w_i\in\mathbb R^6$ 写成：&lt;/p&gt;
&lt;p&gt;$$
w_i=
\begin{bmatrix}
f_i\
\tau_i/\rho
\end{bmatrix}
\in\mathbb R^6.
$$&lt;/p&gt;
&lt;p&gt;上面有六个分量：三维力 $f_i$ 和三维力矩 $\tau_i$。除以 $\rho$ 是为了处理单位不同的问题：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;力的单位是牛顿（N）；&lt;/li&gt;
&lt;li&gt;力矩的单位是牛顿米（N·m）；&lt;/li&gt;
&lt;li&gt;$\rho$ 是物体的特征长度（Characteristic Length）。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果不进行归一化，就不能直接把力和力矩放在同一个欧氏距离中比较。$\rho$ 越大，同样大小的力矩在归一化后越小；因此 $\rho$ 会影响之后的质量分数，复现实验时必须记录这个参数。&lt;/p&gt;
&lt;h3&gt;抓取映射（Grasp Map）&lt;/h3&gt;
&lt;p&gt;把接触力转换为力旋量，可以写成矩阵形式。先定义三维单位矩阵 $I_3\in\mathbb R^{3\times3}$，以及叉乘矩阵 $[r_i]&lt;em&gt;{\times}\in\mathbb R^{3\times3}$；对任意 $v\in\mathbb R^3$，它满足 $[r_i]&lt;/em&gt;{\times}v=r_i\times v$。下式中的 $[p_i-c]_{\times}$ 就是同一个矩阵，因为 $r_i=p_i-c$。于是抓取映射 $G_i\in\mathbb R^{6\times3}$ 为：&lt;/p&gt;
&lt;p&gt;$$
w_i=G_i f_i,
\qquad
G_i=
\begin{bmatrix}
I_3\
[p_i-c]_{\times}/\rho
\end{bmatrix}.
$$&lt;/p&gt;
&lt;p&gt;其中 $[p_i-c]_{\times}$ 是叉乘矩阵。它的作用就是把“力作用在什么位置”编码进矩阵：同一个力作用在不同的接触点上，会产生不同的力矩。&lt;/p&gt;
&lt;p&gt;如果有 $n$ 个接触点，把所有接触力按接触编号拼接为 $f\in\mathbb R^{3n}$：&lt;/p&gt;
&lt;p&gt;$$
f=\begin{bmatrix}f_1^\top&amp;#x26;f_2^\top&amp;#x26;\cdots&amp;#x26;f_n^\top\end{bmatrix}^\top\in\mathbb R^{3n},
$$&lt;/p&gt;
&lt;p&gt;把所有接触的映射块横向拼接为 $G\in\mathbb R^{6\times3n}$，就可以写成：&lt;/p&gt;
&lt;p&gt;$$
w=Gf,
\qquad
G=\begin{bmatrix}G_1&amp;#x26;G_2&amp;#x26;\cdots&amp;#x26;G_n\end{bmatrix}.
$$&lt;/p&gt;
&lt;p&gt;这里的 $w\in\mathbb R^6$ 是某一组接触力产生的合力旋量；把所有允许的 $w$ 收集起来，才得到后面定义的集合 $\mathcal W$。&lt;/p&gt;
&lt;h2&gt;Grasp Wrench Space：抓取能够抵抗哪些扰动&lt;/h2&gt;
&lt;p&gt;到目前为止，我们已经完成了三次转换：&lt;/p&gt;
&lt;p&gt;$$
\text{接触点和法线}
\rightarrow
\text{允许的接触力}
\rightarrow
\text{接触力产生的力旋量}.
$$&lt;/p&gt;
&lt;p&gt;把所有可能的力旋量收集起来，就得到抓取力旋量空间（Grasp Wrench Space, GWS）。真实的 GWS 位于六维空间 $\mathbb R^6$，因为它同时包含三个力分量和三个力矩分量。虽然人无法直接画出六维空间，但计算机可以在六维空间中计算它的凸包（Convex Hull）。&lt;/p&gt;
&lt;p&gt;在常见的接触力归一化下，先把每个接触的摩擦锥离散成 $f_{ik}\in\mathbb R^3$，再计算接触点 $i$ 的力矩 $\tau_{ik}\in\mathbb R^3$ 和对应力旋量 $w_{ik}\in\mathbb R^6$：&lt;/p&gt;
&lt;p&gt;$$
\tau_{ik}=(p_i-c)\times f_{ik},
$$&lt;/p&gt;
&lt;p&gt;$$
w_{ik}=
\begin{bmatrix}
f_{ik}\
\tau_{ik}/\rho
\end{bmatrix}.
$$&lt;/p&gt;
&lt;p&gt;记 $\operatorname{conv}(\cdot)$ 为包含给定点集的最小凸集。对所有原始力旋量求凸包，得到 $\mathcal W\subseteq\mathbb R^6$：&lt;/p&gt;
&lt;p&gt;$$
\mathcal W=
\operatorname{conv}
\left(
{w_{ik}\mid i=1,\ldots,n,\ k=0,\ldots,m-1}
\right).
$$&lt;/p&gt;
&lt;p&gt;“求凸包”可以先用二维例子理解：给平面上一组点，用一条橡皮筋把它们从外面包起来，橡皮筋围成的区域就是凸包。在这里，点变成了六维向量，橡皮筋变成了六维凸多面体。&lt;/p&gt;
&lt;p&gt;实际程序通常执行以下步骤：&lt;/p&gt;
&lt;p&gt;如果每个接触点有独立的力上限，允许的 GWS 更严格地说是各接触力旋量集合的闵可夫斯基和（Minkowski Sum），而不是简单套用同一个总力预算。这个区别会影响最终分数，但初学时可以先掌握“摩擦锥边 → 力旋量点 → 凸包”的主线。&lt;/p&gt;
&lt;h2&gt;Force Closure：原点为什么重要&lt;/h2&gt;
&lt;p&gt;外部扰动可以是任意方向的力和力矩，例如：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;从侧面推物体；&lt;/li&gt;
&lt;li&gt;向下拉物体；&lt;/li&gt;
&lt;li&gt;让物体绕质心旋转。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;对于下面的有限力旋量凸包判据，$\mathbf 0_6\in\mathbb R^6$ 表示六维零向量：&lt;/p&gt;
&lt;p&gt;如果接触力能够组合出大小相反的力旋量，抵消这些扰动，抓取就具有较强的抗扰动能力。&lt;/p&gt;
&lt;p&gt;在 GWS 中，常用的判断方式是看六维原点 $\mathbf 0_6$ 是否位于凸包 $\mathcal W$ 的内部。这里 $\operatorname{int}(\mathcal W)$ 表示集合 $\mathcal W$ 的内部：&lt;/p&gt;
&lt;p&gt;$$
\mathbf 0_6\in\operatorname{int}(\mathcal W)
\quad\Longrightarrow\quad
\text{Force Closure}.
$$&lt;/p&gt;
&lt;p&gt;这里的“原点”代表零合力、零合力矩；“位于内部”表示原点周围存在一个小区域，扰动方向稍微变化时，仍然可以通过改变接触力来平衡。&lt;/p&gt;
&lt;p&gt;因此，Force Closure 是一个二值判断：满足或不满足。它回答的是：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;理论上，接触力是否能够抵抗各个方向的外部扰动？&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;它没有回答以下问题：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;需要多大的夹紧力？&lt;/li&gt;
&lt;li&gt;机器人能否准确到达接触点？&lt;/li&gt;
&lt;li&gt;夹爪是否会先撞到桌面？&lt;/li&gt;
&lt;li&gt;摩擦系数的估计是否准确？&lt;/li&gt;
&lt;li&gt;真实物体是否会变形？&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这也是为什么还需要连续的质量指标。&lt;/p&gt;
&lt;h2&gt;Ferrari–Canny：从“能不能”到“余量有多大”&lt;/h2&gt;
&lt;p&gt;Force Closure 只能把抓取分成“可以”和“不可以”。但如果两个候选都满足 Force Closure，我们还想知道哪个候选更有余量。&lt;/p&gt;
&lt;p&gt;Ferrari–Canny Epsilon 指标用一个非常直观的几何量回答这个问题：以 GWS 原点为球心，能够放进 GWS 的最大球半径是多少。下面用 $\epsilon\in\mathbb R_{\ge0}$ 表示这个半径。&lt;/p&gt;
&lt;p&gt;假设凸包已经被写成一组半空间约束。这里 $J\in\mathbb N$ 是凸包面的数量；对每个 $j=1,\ldots,J$，$a_j\in\mathbb R^6$ 是第 $j$ 个面的外向法向量，$b_j\in\mathbb R$ 是该面的偏置；$w\in\mathbb R^6$ 仍表示任意一个力旋量：&lt;/p&gt;
&lt;p&gt;$$
a_j^\top w\le b_j,
\qquad j=1,\ldots,J.
$$&lt;/p&gt;
&lt;p&gt;其中每个约束对应凸包的一个面。若原点位于凸包内部，则在采用外向法向量、因而 $b_j&gt;0$ 的约定下，原点到第 $j$ 个面的距离 $d_j\in\mathbb R_{&gt;0}$ 为：&lt;/p&gt;
&lt;p&gt;$$
d_j=\frac{b_j}{\lVert a_j\rVert_2}.
$$&lt;/p&gt;
&lt;p&gt;最小的距离就是最薄弱方向的余量：&lt;/p&gt;
&lt;p&gt;$$
\epsilon=\min_j d_j
=\min_j\frac{b_j}{\lVert a_j\rVert_2}.
$$&lt;/p&gt;
&lt;p&gt;计算过程可以概括为：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;离散每个接触的摩擦锥；&lt;/li&gt;
&lt;li&gt;将每条锥边变成六维力旋量；&lt;/li&gt;
&lt;li&gt;在 $\mathbb R^6$ 中求凸包；&lt;/li&gt;
&lt;li&gt;检查原点是否在内部；&lt;/li&gt;
&lt;li&gt;求原点到所有凸包面的距离；&lt;/li&gt;
&lt;li&gt;取最小距离作为 $\epsilon$。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;因此，$\epsilon$ 不是“两个接触点距离越远越大”的简单几何启发式，而是 GWS 在最弱方向上的安全余量。摩擦锥边数、力矩归一化、最大接触力和接触模型都会影响它 [1]。&lt;/p&gt;
&lt;h3&gt;其他解析指标&lt;/h3&gt;
&lt;p&gt;除了 $\epsilon$，还可以使用其他指标。令 $\sigma_{\min}(G),\sigma_{\max}(G)\in\mathbb R_{\ge0}$ 分别表示矩阵 $G$ 的最小、最大奇异值，并令 $Q_{\mathrm{iso}}\in\mathbb R$ 表示各向同性分数，则常见形式为：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;GWS 体积（Wrench-Space Volume）&lt;/strong&gt;：计算 $\mathcal W$ 的六维体积，描述整体覆盖范围；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;抓取矩阵最小奇异值&lt;/strong&gt;：如果 $G$ 的最小奇异值很小，说明某个方向的力传递接近退化；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;各向同性（Isotropy）&lt;/strong&gt;：&lt;/p&gt;
&lt;p&gt;$$
Q_{\mathrm{iso}}
=\frac{\sigma_{\min}(G)}{\sigma_{\max}(G)}.
$$&lt;/p&gt;
&lt;p&gt;这个比值越接近 $1$，表示不同方向的力传递越均衡；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;几何和环境指标&lt;/strong&gt;：例如接触到质心的距离、夹爪闭合余量、表面平坦度、重力方向和碰撞距离。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这些指标没有绝对的“最佳选择”。$\epsilon$ 强调最弱方向，体积强调整体范围，各向同性强调方向均衡，碰撞距离则关注执行安全。Hybrid Physical Metric 将力闭合、平坦度、重力和碰撞等因素结合起来 [6]，说明场景级抓取通常需要组合多个评价信号。&lt;/p&gt;
&lt;h2&gt;鲁棒抓取质量：把误差加入计算（Robust Grasp Quality）&lt;/h2&gt;
&lt;p&gt;上面的计算默认物体模型、接触位置、夹爪姿态和摩擦系数都准确。但真实系统中至少存在以下误差：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;深度相机的测量噪声；&lt;/li&gt;
&lt;li&gt;手眼标定误差；&lt;/li&gt;
&lt;li&gt;机器人到达姿态的误差；&lt;/li&gt;
&lt;li&gt;摩擦系数未知；&lt;/li&gt;
&lt;li&gt;物体质心估计不准。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;一个名义姿态的 $\epsilon$ 很高，并不代表它在姿态偏移后仍然可靠。鲁棒抓取质量（Robust Grasp Quality）会对这些变量进行扰动，再重新计算质量。&lt;/p&gt;
&lt;p&gt;Dex-Net 2.0 使用鲁棒性函数描述在观测和控制不确定性下的抓取表现。设 $u\in\mathcal U$ 是抓取动作，$y\in\mathcal Y$ 是观测，$\xi\in\Xi$ 表示由感知、标定或执行误差引起的不确定性状态；这里 $\mathcal U$、$\mathcal Y$ 和 $\Xi$ 分别表示动作、观测和不确定性状态的取值空间。令 $S(u,\xi)\in{0,1}$ 表示在该状态下是否成功，令 $p(\xi\mid y)$ 表示给定观测后的不确定性分布，则期望成功质量 $Q(u,y)\in[0,1]$ 为：&lt;/p&gt;
&lt;p&gt;$$
Q(u,y)=\mathbb E_{\xi\sim p(\xi\mid y)}[S(u,\xi)]
=\Pr\bigl(S(u,\xi)=1\mid u,y\bigr),
$$&lt;/p&gt;
&lt;p&gt;这里的 $S(u,\xi)$ 可以由 Force Closure 或物理抬升等二值结果定义 [4]。如果质量函数不是二值成功指标，则令 $R(u,\xi)\in\mathbb R$ 表示某次不确定性状态下得到的连续质量，并在采样时用 $R$ 替换 $S$；此时对应的期望质量不再必然是成功概率。&lt;/p&gt;
&lt;p&gt;如果解析积分无法直接求出，最常见的方法是蒙特卡洛采样（Monte Carlo Sampling）。设 $N_{\mathrm{MC}}\in\mathbb N$ 为样本数，$s=1,\ldots,N_{\mathrm{MC}}$ 为样本编号，$\alpha\in(0,1)$ 为分位数水平；对第 $s$ 个不确定性样本记 $R_s=R(u,\xi_s)\in\mathbb R$。当标签是成功与否时，$R_s$ 就是二值变量 $S_s=S(u,\xi_s)\in{0,1}$：&lt;/p&gt;
&lt;p&gt;其中 $\hat Q\in\mathbb R$ 是样本均值，$q_\alpha\in\mathbb R$ 是质量样本的 $\alpha$ 分位数。平均质量适合风险中性的排序；低分位数 $q_\alpha$ 更关注最差的一部分情况。一个候选可能平均分很高，但在少量姿态偏差下突然失效，这种候选的低分位数会较低。&lt;/p&gt;
&lt;p&gt;Dex-Net 1.0 将物体模型、抓取模型和相关奖励组织到数据库中，用于鲁棒抓取规划 [2]。Johns 等人则研究了夹爪位姿不确定性对抓取函数的影响 [3]。这些工作说明，鲁棒质量不是给解析指标简单加一个噪声，而是需要明确扰动变量、分布和重新计算规则。&lt;/p&gt;
&lt;h2&gt;学习模型输出的质量是什么（Learned Quality Score）&lt;/h2&gt;
&lt;p&gt;解析计算需要物体几何、接触位置和摩擦假设。在大规模检测中，网络通常学习从深度图或点云直接预测一个质量分数。&lt;/p&gt;
&lt;p&gt;以 GQ-CNN 为例，输入并不是一张完整深度图就结束了。一个候选需要先确定：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;抓取中心；&lt;/li&gt;
&lt;li&gt;平面内旋转角；&lt;/li&gt;
&lt;li&gt;夹爪距离相机的深度；&lt;/li&gt;
&lt;li&gt;夹爪开口或候选宽度。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;随后，系统把候选附近的深度区域旋转到夹爪闭合轴对齐的坐标系，裁剪成固定尺寸的局部图块，再把图块和候选深度送入网络。网络预测的是该候选在 Dex-Net 标签模型下的鲁棒质量 [4]。&lt;/p&gt;
&lt;p&gt;因此，学习模型的输出语义完全依赖训练标签：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;训练标签来自 Force Closure，模型学习的是力闭合相关分数；&lt;/li&gt;
&lt;li&gt;训练标签来自仿真抬升，模型学习的是仿真成功相关分数；&lt;/li&gt;
&lt;li&gt;训练标签来自真实机器人试验，输出才可能与真实执行概率相关。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;网络输出一个位于 $0$ 和 $1$ 之间的分数，并不自动意味着它是经过校准的真实成功概率。更准确的推理流程是：&lt;/p&gt;
&lt;h2&gt;仿真成功和真实成功（Simulation and Physical Outcomes）&lt;/h2&gt;
&lt;p&gt;仿真可以比静态力闭合加入更多因素，例如夹爪闭合过程、物体质量、重力、碰撞和动力学接触。ACRONYM 使用大规模物理仿真生成平行夹爪抓取数据，并将仿真结果作为成功标签 [5]。&lt;/p&gt;
&lt;p&gt;但仿真成功仍然依赖：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;物体网格是否准确；&lt;/li&gt;
&lt;li&gt;质量和质心是否准确；&lt;/li&gt;
&lt;li&gt;摩擦系数是否准确；&lt;/li&gt;
&lt;li&gt;接触求解器是否可靠；&lt;/li&gt;
&lt;li&gt;夹爪碰撞模型是否接近真实硬件。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;真实机器人实验更接近最终目标，通常记录：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;夹爪是否成功闭合；&lt;/li&gt;
&lt;li&gt;物体是否被抬离桌面；&lt;/li&gt;
&lt;li&gt;搬运过程中是否掉落；&lt;/li&gt;
&lt;li&gt;受到扰动后是否保持；&lt;/li&gt;
&lt;li&gt;多次试验中的成功率。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这些结果属于执行层面的评价。它们受到控制器、传感器、机械臂和环境的共同影响，因此不能直接替代解析质量；同样，解析质量也不能直接被称为真实成功概率。&lt;/p&gt;
&lt;h2&gt;解析质量不是执行终点（From Analytic Quality to Execution）&lt;/h2&gt;
&lt;p&gt;一个解析分数较高的候选，真正发送给机器人之前还要通过几何和运动检查：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;夹爪是否与物体、桌面和邻近物体碰撞；&lt;/li&gt;
&lt;li&gt;夹爪开口是否处于硬件范围；&lt;/li&gt;
&lt;li&gt;机械臂是否存在逆运动学（Inverse Kinematics, IK）解；&lt;/li&gt;
&lt;li&gt;接近和退出轨迹是否能够规划；&lt;/li&gt;
&lt;li&gt;抓取位置是否适合后续搬运、放置或操作。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;这解释了为什么实际系统常常先用解析质量筛掉明显不稳定的候选，再用碰撞、可达性和任务约束重新排序。&lt;/p&gt;
&lt;p&gt;对于柔性物体，刚体模型还会失效。Deformation-Aware Grasp Synthesis 将物体刚度和形变信息加入抓取选择 [7]：一个几何上稳定的接触，可能会让软物体产生过大变形。对于已经发生接触的系统，视觉和触觉还可以继续判断滑移，并通过重新抓取修正初始动作 [8]。&lt;/p&gt;
&lt;h2&gt;小结（Summary）&lt;/h2&gt;
&lt;p&gt;可以把本文的主线压缩成四句话：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;抓取检测通常会产生多个候选，因此需要质量指标进行排序；&lt;/li&gt;
&lt;li&gt;摩擦锥规定接触力允许朝哪些方向施加；&lt;/li&gt;
&lt;li&gt;接触力通过力臂产生力矩，再被组合成六维力旋量；&lt;/li&gt;
&lt;li&gt;GWS 的位置和形状可以给出 Force Closure、$\epsilon$、体积等解析质量，但这些分数始终依赖物理假设，不能自动等同于真实执行成功。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;后续分析任何抓取质量方法时，首先要问的不是“分数越大是不是越好”，而是：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;这个分数究竟评价了什么，使用了什么假设，又与真实机器人执行的哪一个阶段对应？&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2&gt;参考文献（References）&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;M. A. Roa and R. Suárez, “Grasp Quality Measures: Review and Performance,” &lt;em&gt;Autonomous Robots&lt;/em&gt;, 2014. &lt;a href=&quot;https://doi.org/10.1007/s10514-014-9402-3&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;J. Mahler et al., “Dex-Net 1.0: A Cloud-Based Network of 3D Objects for Robust Grasp Planning Using a Multi-Armed Bandit Model with Correlated Rewards,” &lt;em&gt;2016 IEEE International Conference on Robotics and Automation&lt;/em&gt;, 2016. &lt;a href=&quot;https://doi.org/10.1109/ICRA.2016.7487342&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;E. Johns, S. Leutenegger, and A. J. Davison, “Deep Learning a Grasp Function for Grasping under Gripper Pose Uncertainty,” &lt;em&gt;2016 IEEE/RSJ International Conference on Intelligent Robots and Systems&lt;/em&gt;, 2016. &lt;a href=&quot;https://doi.org/10.1109/IROS.2016.7759657&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;J. Mahler et al., “Dex-Net 2.0: Deep Learning to Plan Robust Grasps with Synthetic Point Clouds and Analytic Grasp Metrics,” &lt;em&gt;Robotics: Science and Systems XIII&lt;/em&gt;, 2017. &lt;a href=&quot;https://doi.org/10.15607/RSS.2017.XIII.058&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;C. Eppner, A. Mousavian, and D. Fox, “ACRONYM: A Large-Scale Grasp Dataset Based on Simulation,” &lt;em&gt;2021 IEEE International Conference on Robotics and Automation&lt;/em&gt;, 2021. &lt;a href=&quot;https://doi.org/10.1109/ICRA48506.2021.9560844&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Y. Lu et al., “Hybrid Physical Metric for 6-DoF Grasp Pose Detection,” &lt;em&gt;2022 International Conference on Robotics and Automation&lt;/em&gt;, 2022. &lt;a href=&quot;https://doi.org/10.1109/ICRA46639.2022.9811961&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;T. N. Le, J. Lundell, F. J. Abu-Dakka, and V. Kyrki, “Deformation-Aware Data-Driven Grasp Synthesis,” &lt;em&gt;IEEE Robotics and Automation Letters&lt;/em&gt;, 2022. &lt;a href=&quot;https://doi.org/10.1109/LRA.2022.3146551&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;R. Calandra et al., “More Than a Feeling: Learning to Grasp and Regrasp Using Vision and Touch,” &lt;em&gt;IEEE Robotics and Automation Letters&lt;/em&gt;, 2018. &lt;a href=&quot;https://doi.org/10.1109/LRA.2018.2852779&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;</content:encoded><h:img src="https://pic.hana0721.top/66952181_p0_master1200.6ikvtocw16.webp"/><enclosure url="https://pic.hana0721.top/66952181_p0_master1200.6ikvtocw16.webp"/></item><item><title>Robotic Grasp Detection (1): 问题定义与分类体系</title><link>https://agusexp25.top/blog/robotic-grasp-detection-1</link><guid isPermaLink="true">https://agusexp25.top/blog/robotic-grasp-detection-1</guid><description>从观测、抓取表示、候选生成、质量信号、条件信息与评价层级六个正交维度，建立平行夹爪抓取检测的统一分类体系。</description><pubDate>Fri, 14 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;从“一个姿态”到条件决策（From Pose Prediction to Conditional Decision）&lt;/h2&gt;
&lt;p&gt;机器人抓取检测（Robotic Grasp Detection）常被简写为“输入图像或点云，输出抓取姿态”。这个描述省略了几个决定方法能力的变量：机器人看到多少几何信息、抓取针对哪个目标、使用什么夹爪、候选如何产生，以及最终分数究竟代表标注一致性还是物理成功。&lt;/p&gt;
&lt;p&gt;更完整的形式是：给定观测（Observation）$o$、目标或任务条件（Target or Task Condition）$z$、夹爪几何（Gripper Geometry）$h$ 和机器人状态（Robot State）$r$，产生有限候选集合或连续姿态分布：&lt;/p&gt;
&lt;p&gt;$$
G(o,z,h,r)={g_i}_{i=1}^{N},
\qquad \text{or} \qquad
p(g\mid o,z,h,r).
$$&lt;/p&gt;
&lt;p&gt;对于平行夹爪（Parallel-Jaw Gripper），一个空间抓取可以写成：&lt;/p&gt;
&lt;p&gt;$$
g=(T,w), \qquad T\in SE(3),
$$&lt;/p&gt;
&lt;p&gt;其中 $T$ 是夹爪相对相机、物体或机器人基座的刚体位姿（Rigid-Body Pose），$SE(3)$ 是三维特殊欧氏群（Special Euclidean Group），$w$ 是夹爪宽度（Jaw Width）。平面方法则常使用旋转矩形（Oriented Rectangle）：&lt;/p&gt;
&lt;p&gt;$$
g=(x,y,\theta,l,w).
$$&lt;/p&gt;
&lt;p&gt;两种方法都可以输出“抓取”，但它们覆盖的接近方向、碰撞关系和机器人约束完全不同。Jiang 等人的矩形表示使抓取成为图像空间检测问题 [1]；Contact-GraspNet 则从场景点云中的可见接触位置生成六自由度（Six Degrees of Freedom, 6-DoF）候选 [2]。因此，输出维度只是分类的一部分。&lt;/p&gt;
&lt;p&gt;实际实现中，有限候选集合通常存成一个 $N\times d$ 张量。以显式空间抓取为例，每行至少包含：&lt;/p&gt;
&lt;p&gt;$$
g_i=(t_i,r_i,w_i,q_i),
$$&lt;/p&gt;
&lt;p&gt;其中 $t_i\in\mathbb{R}^3$ 是平移，$r_i$ 可以是四元数（Quaternion）、旋转矩阵的六维连续表示（6D Continuous Rotation Representation）或离散方向索引，$w_i$ 是物理开口，$q_i$ 是分数。不同旋转编码对应不同的归一化与损失：四元数需要处理 $q$ 与 $-q$ 的双重覆盖；六维表示需要在解码时用 Gram–Schmidt 正交化；离散方向则需要分类后再回归桶内残差。&lt;/p&gt;
&lt;p&gt;候选通过几何与机器人约束后，可以写成二值可行性掩码（Feasibility Mask）：&lt;/p&gt;
&lt;p&gt;$$
m_i=
\mathbf 1[\text{collision-free}]
\mathbf 1[w_{\min}\leq w_i\leq w_{\max}]
\mathbf 1[\text{IK-feasible}].
$$&lt;/p&gt;
&lt;p&gt;最终选择是在 $m_i=1$ 的候选中排序，而不是先取网络最高分再祈望它可执行。若一个方法把碰撞和可达性作为后处理，另一个方法把它们放进训练损失，两者即使使用相同姿态表示，也属于不同的决策接口。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;维度一：观测与信息（Observation and Information）&lt;/h2&gt;
&lt;h3&gt;被动部分观测（Passive Partial Observation）&lt;/h3&gt;
&lt;p&gt;单帧红绿蓝图像（Red–Green–Blue Image, RGB Image）、深度图（Depth Image）、RGB-D 图像或点云（Point Cloud）是最常见输入。RGB 提供纹理、类别和边界，深度提供度量几何（Metric Geometry），但它们的失效方式不同：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;透明或高反光表面可能没有可靠深度；&lt;/li&gt;
&lt;li&gt;遮挡（Occlusion）使背面和接触区域不可见；&lt;/li&gt;
&lt;li&gt;远距离、小物体和倾斜表面会产生稀疏点云；&lt;/li&gt;
&lt;li&gt;RGB 能识别物体，却不能直接恢复隐藏几何和真实尺度。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;补全或隐式几何（Completed or Implicit Geometry）&lt;/h3&gt;
&lt;p&gt;形状补全（Shape Completion）、占据场（Occupancy Field）、神经辐射场（Neural Radiance Field, NeRF）和隐式表面（Implicit Surface）尝试表示未观测区域。它们增加了潜在抓取区域，也引入补全不确定性（Completion Uncertainty）：生成出来的背面并不等于真实背面。&lt;/p&gt;
&lt;h3&gt;主动与多视角观测（Active and Multi-View Observation）&lt;/h3&gt;
&lt;p&gt;主动感知（Active Perception）把“看哪里”纳入抓取决策。移动相机或机械臂可以减少遮挡，但需要额外时间、标定和运动规划。信息增益（Information Gain）与抓取收益之间的权衡，和被动单帧检测是不同问题。&lt;/p&gt;
&lt;h3&gt;接触后信息（Post-Contact Information）&lt;/h3&gt;
&lt;p&gt;触觉（Tactile Sensing）、力/力矩（Force/Torque）、滑移（Slip）和物体刚度（Stiffness）在夹爪接触后才出现。Calandra 等人表明，视觉可以提出初始抓取，而触觉能够判断是否需要重新抓取（Regrasp）[5]。这种方法不一定改变离线姿态精度，却可能提高执行可靠性。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;维度二：抓取表示（Grasp Representation）&lt;/h2&gt;
&lt;p&gt;| 表示                          | 典型输出                   | 主要优势                   | 主要缺失                                                           |
| :---------------------------- | :------------------------- | :------------------------- | :----------------------------------------------------------------- |
| 平面/2.5-D（Planar / 2.5-D）  | 中心、角度、开口、质量     | 输出紧凑、推理快、适合闭环 | 任意俯仰/滚转、三维碰撞                                            |
| 显式 6-DoF（Explicit 6-DoF）  | $SE(3)$ 位姿与宽度         | 任意接近方向、便于三维检查 | 搜索空间大、候选覆盖困难                                           |
| 接触中心（Contact-Centric）   | 接触点、方向与姿态         | 贴近局部几何、减少无效搜索 | 依赖可见表面和接触标注                                             |
| 稠密场（Dense Field）         | 像素/点/体素上的质量与姿态 | 共享计算、适合实时推理     | 分辨率、解码与非极大值抑制（Non-Maximum Suppression, NMS）影响覆盖 |
| 隐式函数（Implicit Function） | 查询位置或方向的连续质量   | 可表示连续抓取族           | 查询、采样与标定成本                                               |
| 概率分布（Pose Distribution） | $p(g\mid o)$ 或生成样本    | 表达多解性和不确定性       | 多样性不等于校准或可执行性                                         |&lt;/p&gt;
&lt;p&gt;Volumetric Grasping Network（VGN）把质量、旋转和夹爪宽度附着在截断符号距离场（Truncated Signed Distance Field, TSDF）的体素上 [3]。SE(3)-DiffusionFields 则把抓取与运动代价表示成可优化的扩散代价场（Diffusion Cost Field）[4]。两者都避免传统候选逐个分类，但一个是稠密体素预测，另一个是分布与优化接口。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;维度三：候选生成（Candidate Generation）&lt;/h2&gt;
&lt;p&gt;抓取表示说明“一个候选长什么样”，候选生成（Candidate Generation）说明“候选从哪里来”。常见机制包括：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;解析采样（Analytic Sampling）&lt;/strong&gt;：根据表面法线、接触对、摩擦锥和碰撞规则生成；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;直接回归（Direct Regression）&lt;/strong&gt;：网络一次输出一个或一组姿态；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;稠密预测（Dense Prediction）&lt;/strong&gt;：在像素、点或体素上预测抓取参数；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;生成式采样（Generative Sampling）&lt;/strong&gt;：从变分模型、扩散模型或流模型中采样多个姿态；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;混合生成（Hybrid Generation）&lt;/strong&gt;：几何采样、神经评分与解析过滤共同组成流水线。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;候选生成和质量估计必须分开理解。一个评分器即使非常准确，也无法恢复生成器从未提出的抓取模式；生成器覆盖很广，也可能产生大量碰撞或不可达候选。&lt;/p&gt;
&lt;h3&gt;候选预算如何进入结果&lt;/h3&gt;
&lt;p&gt;设标注或高质量参考集合为 $G^*$，预测的前 $k$ 个候选为 $G_k$，在位姿距离阈值 $ au$ 下可以定义集合召回率：&lt;/p&gt;
&lt;p&gt;$$
\operatorname{Recall@}k(\tau)
=\frac{1}{|G^&lt;em&gt;|}
\sum_{g^&lt;/em&gt;\in G^&lt;em&gt;}
\mathbf 1!\left[
\min_{g\in G_k}d(g,g^&lt;/em&gt;)&amp;#x3C;\tau
\right].
$$&lt;/p&gt;
&lt;p&gt;这里的 $d$ 不能把米和弧度直接相加。常见做法是分别设置平移阈值与旋转阈值，或使用加权距离；平行夹爪还要把相差 $180^\circ$ 的等价闭合方向视为同一模式。报告 Recall@$k$ 时，$k$、非极大值抑制半径、每个点/体素保留多少方向都必须固定，否则“模型覆盖更好”可能只表示它输出了更多近重复候选。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;维度四：质量与约束（Quality and Constraints）&lt;/h2&gt;
&lt;p&gt;评分函数可以统一写成：&lt;/p&gt;
&lt;p&gt;$$
s(g)=f(g,o,z,h,r),
$$&lt;/p&gt;
&lt;p&gt;但 $s(g)$ 并不是通用标尺。它可能表示：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;力闭合（Force Closure）或 Ferrari–Canny 指标；&lt;/li&gt;
&lt;li&gt;与环境无碰撞（Collision-Free）；&lt;/li&gt;
&lt;li&gt;仿真器中的抓取成功；&lt;/li&gt;
&lt;li&gt;学习得到的物理抬升概率；&lt;/li&gt;
&lt;li&gt;任务效用（Task Utility）；&lt;/li&gt;
&lt;li&gt;机器人可达性（Robot Reachability）。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;同一个候选在解析指标下可能稳定，却可能因相机外参误差、夹爪指尖厚度或逆运动学失败而无法执行。质量分数的语义、训练标签和过滤规则必须一起报告。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;维度五：条件与泛化（Conditioning and Generalization）&lt;/h2&gt;
&lt;p&gt;条件信息改变“什么是好抓取”：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;场景级（Scene-Level）：只要求从杂乱场景中抓走任意物体；&lt;/li&gt;
&lt;li&gt;目标条件（Target-Conditioned）：必须抓指定物体；&lt;/li&gt;
&lt;li&gt;部件条件（Part-Conditioned）：必须抓把手、边缘或功能部位；&lt;/li&gt;
&lt;li&gt;任务条件（Task-Conditioned）：抓取要适合倒水、放置或工具使用；&lt;/li&gt;
&lt;li&gt;物理属性条件（Physical-Property-Conditioned）：质量、材料、脆弱性或刚度影响接触位置；&lt;/li&gt;
&lt;li&gt;具身条件（Embodiment-Conditioned）：夹爪尺寸、指尖形状和机器人工作空间参与预测。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;泛化（Generalization）也不能只写成“未见物体”。未见实例、未见类别、新场景、传感器变化、材料变化、视角变化和夹爪变化分别测试不同能力。GraspGen-X 将夹爪扫掠体积（Swept Volume）作为条件，尝试在不同平行夹爪之间迁移，但目前仍属于 arXiv 预印本证据 [7]。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;维度六：评价层级（Evaluation Level）&lt;/h2&gt;
&lt;p&gt;抓取评测可以排列成一条逐级增加现实约束的阶梯：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;离线姿态匹配（Offline Pose Metric）
    ↓
几何与碰撞有效（Geometric / Collision Validity）
    ↓
仿真成功（Simulated Success）
    ↓
物理抬升或清空（Physical Lift / Clearing）
    ↓
稳定、滑移与可达（Stability / Slip / Reachability）
    ↓
任务完成与失败恢复（Task Completion / Recovery）
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;GraspNet-1Billion 的平均精度（Average Precision, AP）为场景级六自由度检测建立了统一协议 [6]，但 AP 不等于真实抬升、长期稳定或任务成功。比较论文时，必须同时固定输入、数据划分、夹爪、指标和物理执行层级。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;正交分类而不是单一标签（Orthogonal Taxonomy）&lt;/h2&gt;
&lt;p&gt;一个方法通常同时占据多个类别。例如，VGN 是“深度输入 + TSDF 体素表示 + 稠密生成 + 学习质量 + 固定夹爪 + 物理闭环”；Contact-GraspNet 是“场景点云 + 接触中心表示 + 稠密候选 + 碰撞过滤”；SE(3)-DiffusionFields 是“姿态分布 + 扩散代价 + 抓取与运动联合优化”。&lt;/p&gt;
&lt;p&gt;因此，卷积神经网络（Convolutional Neural Network, CNN）、Transformer、图神经网络（Graph Neural Network, GNN）或扩散模型不适合作为唯一分类轴。正交分类法关心六个问题：看到了什么、输出什么、如何生成、如何评分、在什么条件下工作，以及证据到达了哪一层。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;参考文献（References）&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Y. Jiang, S. Moseson, and A. Saxena, “Efficient Grasping from RGBD Images: Learning Using a New Rectangle Representation,” &lt;em&gt;2011 IEEE International Conference on Robotics and Automation&lt;/em&gt;, 2011. &lt;a href=&quot;https://doi.org/10.1109/ICRA.2011.5980145&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;M. Sundermeyer, A. Mousavian, R. Triebel, and D. Fox, “Contact-GraspNet: Efficient 6-DoF Grasp Generation in Cluttered Scenes,” &lt;em&gt;2021 IEEE International Conference on Robotics and Automation&lt;/em&gt;, 2021. &lt;a href=&quot;https://doi.org/10.1109/ICRA48506.2021.9561877&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;M. Breyer, J. J. Chung, L. Ott, R. Siegwart, and J. Nieto, “Volumetric Grasping Network: Real-Time 6 DOF Grasp Detection in Clutter,” &lt;em&gt;Proceedings of the Conference on Robot Learning&lt;/em&gt;, PMLR 155, 2021. &lt;a href=&quot;https://proceedings.mlr.press/v155/breyer21a.html&quot;&gt;PMLR&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;J. Urain, N. Funk, J. Peters, and G. Chalvatzaki, “SE(3)-DiffusionFields: Learning Smooth Cost Functions for Joint Grasp and Motion Optimization Through Diffusion,” &lt;em&gt;2023 IEEE International Conference on Robotics and Automation&lt;/em&gt;, 2023. &lt;a href=&quot;https://doi.org/10.1109/ICRA48891.2023.10161569&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;R. Calandra et al., “More Than a Feeling: Learning to Grasp and Regrasp Using Vision and Touch,” &lt;em&gt;IEEE Robotics and Automation Letters&lt;/em&gt;, 2018. &lt;a href=&quot;https://doi.org/10.1109/LRA.2018.2852779&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;H.-S. Fang, C. Wang, M. Gou, and C. Lu, “GraspNet-1Billion: A Large-Scale Benchmark for General Object Grasping,” &lt;em&gt;2020 IEEE/CVF Conference on Computer Vision and Pattern Recognition&lt;/em&gt;, 2020. &lt;a href=&quot;https://doi.org/10.1109/CVPR42600.2020.01146&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;B. Han et al., “GraspGen-X: Cross-Embodiment 6-DOF Diffusion-Based Grasping,” &lt;em&gt;arXiv preprint arXiv:2606.00998&lt;/em&gt;, 2026. &lt;a href=&quot;https://arxiv.org/abs/2606.00998&quot;&gt;arXiv&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;</content:encoded><h:img src="https://pic.hana0721.top/66119164_p0_master1200.3d5duqih46.webp"/><enclosure url="https://pic.hana0721.top/66119164_p0_master1200.3d5duqih46.webp"/></item><item><title>Robotic Grasp Detection (0): 系列范围、发展脉络与抓取决策流程</title><link>https://agusexp25.top/blog/robotic-grasp-detection-0</link><guid isPermaLink="true">https://agusexp25.top/blog/robotic-grasp-detection-0</guid><description>本系列的导论：界定平行夹爪抓取检测的研究范围，统一 planar、2.5-D 与 6-DoF 表示，并梳理从图像抓取框到执行感知系统的发展主线。</description><pubDate>Fri, 14 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;引言（Introduction）&lt;/h2&gt;
&lt;p&gt;**机器人抓取检测（Robotic Grasp Detection）**研究的是：给定传感器观测（Sensor Observation），机器人应当在什么位置、以什么姿态、使用多大的夹爪开口接近并夹持物体。它处在感知（Perception）与控制（Control）之间：上游可能是相机、触觉传感器或自然语言指令，下游则连接碰撞检测（Collision Checking）、逆运动学（Inverse Kinematics, IK）、运动规划（Motion Planning）和物理执行（Physical Execution）。&lt;/p&gt;
&lt;p&gt;这个定义看似直接，实际包含几个不同层次的问题。图像中的一个抓取框可能在二维指标（2D Metric）上完全正确，但对应的三维姿态（3D Pose）可能与桌面碰撞；一个几何上稳定的抓取可能超出机械臂工作空间（Robot Workspace）；一个成功抬起物体的抓取，也未必适合后续倾倒、放置或工具使用。因此，“检测到一个姿态”和“完成一次抓取”不是同一件事。&lt;/p&gt;
&lt;p&gt;本文以**平行夹爪（Parallel-Jaw Gripper）**为研究对象，从早期图像空间的抓取矩形（Grasp Rectangle）出发，逐步讨论基于点云（Point Cloud）的六自由度抓取（6-DoF Grasp）、稠密抓取场（Dense Grasp Field）、生成式模型（Generative Model）、主动感知（Active Perception）、多模态反馈（Multimodal Feedback）、语义条件（Semantic Conditioning）以及执行评估（Execution-Aware Evaluation）。理解这些方法的关键不是寻找一个脱离条件的“最佳网络”，而是回答：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;一个方法表示了哪些几何、语义与物理约束？这些约束在抓取决策流程的哪个阶段生效？最终证据测量的是离线检测，还是机器人真正能够执行的抓取？&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2&gt;系列范围（Scope）&lt;/h2&gt;
&lt;h3&gt;为什么限定平行夹爪？&lt;/h3&gt;
&lt;p&gt;平行夹爪通常由两个近似平行运动的夹指组成，依靠闭合产生的接触力夹持物体。与多指灵巧手相比，它的自由度更低、控制接口更稳定，也更容易将抓取写成一个几何姿态加夹爪宽度。这使它成为工业抓取和通用抓取检测中最常用的末端执行器（End-Effector）之一。&lt;/p&gt;
&lt;p&gt;平行夹爪抓取检测主要包含以下任务：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;抓取候选生成（Grasp Candidate Generation）&lt;/strong&gt;：产生一个或多个可能的抓取姿态；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;抓取质量估计（Grasp Quality Estimation）&lt;/strong&gt;：预测候选是否稳定、是否抗扰动或是否容易执行；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;抓取排序与选择（Grasp Ranking and Selection）&lt;/strong&gt;：从候选集合中选择最终执行的抓取；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;抓取姿态优化（Grasp Pose Refinement）&lt;/strong&gt;：利用几何、梯度、触觉或执行约束修正候选；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;闭环抓取（Closed-Loop Grasping）&lt;/strong&gt;：根据新的视觉、接触、滑移或力反馈持续更新决策。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;抓取检测不应把“视觉”作为硬边界。只要一种信息会改变候选抓取、质量分数或最终选择，它就是抓取决策的一部分。例如：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;主动感知（Active Perception）和多视角感知（Multi-View Perception）；&lt;/li&gt;
&lt;li&gt;触觉感知（Tactile Sensing）与力/力矩反馈（Force/Torque Feedback）；&lt;/li&gt;
&lt;li&gt;滑移检测（Slip Detection）和刚度感知（Stiffness-Aware Perception）；&lt;/li&gt;
&lt;li&gt;目标、任务、部件和语言条件（Target-, Task-, Part-, and Language-Conditioning）；&lt;/li&gt;
&lt;li&gt;夹爪几何、机械臂可达性和工作空间约束（Embodiment and Reachability Constraints）。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;纯吸盘抓取（Suction-Only Grasping）、纯多指灵巧手抓取（Dexterous-Hand Grasping）以及不输出机器人抓取的通用物体可供性检测（Affordance Detection），与平行夹爪抓取检测具有不同的输出空间和物理约束。对于混合末端执行器方法，需要将其中的平行夹爪分支单独分析，才能进行有意义的比较。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;抓取检测的问题形式（Problem Formulation）&lt;/h2&gt;
&lt;p&gt;可以把抓取检测器抽象为一个映射：&lt;/p&gt;
&lt;p&gt;$$
\mathcal{D}: (\mathcal{O}, c, e) \longmapsto
\mathcal{G} = \left{(g_i, q_i)\right}_{i=1}^{N},
$$&lt;/p&gt;
&lt;p&gt;其中：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;$\mathcal{O}$ 是观测（Observation），例如 RGB 图像（RGB Image）、深度图（Depth Image）、RGB-D 图像（RGB-D Image）、点云（Point Cloud）或触觉信号（Tactile Signal）；&lt;/li&gt;
&lt;li&gt;$c$ 是条件信息（Condition），例如目标物体、任务、语言指令或材料属性；&lt;/li&gt;
&lt;li&gt;$e$ 是具身信息（Embodiment），例如夹爪尺寸、机械臂构型和工作空间；&lt;/li&gt;
&lt;li&gt;$g_i$ 是第 $i$ 个抓取候选（Grasp Candidate）；&lt;/li&gt;
&lt;li&gt;$q_i$ 是对应的抓取质量（Grasp Quality）或置信度（Confidence）；&lt;/li&gt;
&lt;li&gt;$\mathcal{G}$ 是候选抓取集合（Grasp Set）。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这里的“检测”采用较宽的定义：它既包括从输入直接回归（Direct Regression）一个抓取，也包括生成候选、估计质量、过滤碰撞和优化姿态。运动规划器（Motion Planner）如何驱动机械臂到达该姿态通常是后续模块，但运动学可达性（Kinematic Reachability）可以反过来参与候选选择。&lt;/p&gt;
&lt;h3&gt;平面抓取表示（Planar Grasp Representation）&lt;/h3&gt;
&lt;p&gt;早期视觉方法通常把抓取表示成图像中的旋转矩形 [1]：&lt;/p&gt;
&lt;p&gt;$$
g_{\text{planar}} = (u, v, \theta, w, h),
$$&lt;/p&gt;
&lt;p&gt;其中 $(u,v)$ 是图像中心，$\theta$ 是平面内旋转角，$w$ 和 $h$ 描述夹爪开口与矩形尺度。该表示使抓取检测可以借用图像分类（Image Classification）、候选框排序（Proposal Ranking）和回归（Regression）方法。Lenz 等人使用深度网络（Deep Network）为大量候选打分 [2]，Redmon 和 Angelova 则进一步展示了单次前向传播（Single Forward Pass）的实时潜力 [3]。&lt;/p&gt;
&lt;p&gt;平面表示的代价是，它通常预设相机与夹爪接近方向之间的关系，不能直接表达任意三维接近方向。若再加入深度或高度信息，但仍保留受限接近方向，常被称为 &lt;strong&gt;2.5-D 抓取（2.5-D Grasp）&lt;/strong&gt;。&lt;/p&gt;
&lt;h3&gt;六自由度抓取表示（6-DoF Grasp Representation）&lt;/h3&gt;
&lt;p&gt;完整三维抓取通常使用刚体位姿（Rigid-Body Pose）表示：&lt;/p&gt;
&lt;p&gt;$$
T =
\begin{bmatrix}
R &amp;#x26; t \
0 &amp;#x26; 1
\end{bmatrix}
\in SE(3),
$$&lt;/p&gt;
&lt;p&gt;其中 $R \in SO(3)$ 是三维旋转（3D Rotation），$t \in \mathbb{R}^3$ 是三维平移（3D Translation），$SE(3)$ 表示三维特殊欧氏群（Special Euclidean Group）。对平行夹爪而言，还需要夹爪宽度 $w$，所以可以记为：&lt;/p&gt;
&lt;p&gt;$$
g_{6\text{DoF}} = (R, t, w).
$$&lt;/p&gt;
&lt;p&gt;六自由度（Six Degrees of Freedom, 6-DoF）恢复了任意接近方向，也让三维碰撞检测（3D Collision Checking）更自然，但输出空间从图像平面扩展到了连续的 $SE(3)$。候选覆盖（Candidate Coverage）、旋转表示（Rotation Representation）、点云缺失（Point-Cloud Incompleteness）和计算成本（Computational Cost）由此成为核心问题。高精度抓取姿态检测工作建立了“生成候选再分类（Generate-Then-Classify）”的经典流程 [4]，6-DOF GraspNet 则将多解抓取建模为可采样的概率分布（Probability Distribution）[6]。&lt;/p&gt;
&lt;h3&gt;从相机坐标到机器人命令&lt;/h3&gt;
&lt;p&gt;论文中的 $T$ 必须带坐标系下标才足以执行。若检测器在相机坐标系 ${C}$ 中输出夹爪位姿 ${}^{C}T_G$，手眼标定给出相机到机器人基座 ${B}$ 的外参变换（Extrinsic Transform）${}^{B}T_C$，发送给运动规划器的目标是：&lt;/p&gt;
&lt;p&gt;$$
{}^{B}T_G={}^{B}T_C,{}^{C}T_G.
$$&lt;/p&gt;
&lt;p&gt;矩阵乘法次序不能互换；把 ${}^{C}T_G$ 误当成 ${}^{B}T_G$，得到的并不是轻微姿态误差，而是完全不同的空间位置。执行接口还要约定夹爪坐标轴：通常一条轴表示接近方向（Approach Direction），一条轴表示夹指闭合方向（Closing Direction），第三条轴由叉乘确定。论文只报告“一个 $SE(3)$ 位姿”而不说明轴定义时，代码之间仍可能相差固定旋转。&lt;/p&gt;
&lt;p&gt;平面抓取还需要一次反投影（Back-Projection）。给定深度 $z=D(u,v)$ 和相机内参矩阵（Camera Intrinsic Matrix）$K$，像素中心对应的相机坐标为：&lt;/p&gt;
&lt;p&gt;$$
p_C=zK^{-1}
\begin{bmatrix}u&amp;#x26;v&amp;#x26;1\end{bmatrix}^{\mathsf T}.
$$&lt;/p&gt;
&lt;p&gt;若中心像素没有有效深度，常见实现会在矩形中心邻域取中位数、寻找最近有效像素，或直接丢弃候选。这个看似很小的实现选择会改变透明物体、边缘像素和细长物体上的实际召回率。&lt;/p&gt;
&lt;h3&gt;质量最高不等于可以执行&lt;/h3&gt;
&lt;p&gt;最终选择可以写成一个带约束优化问题（Constrained Optimization Problem）：&lt;/p&gt;
&lt;p&gt;$$
g^* = \arg\max_{g \in \mathcal{G}} q(g \mid \mathcal{O}, c, e)
$$&lt;/p&gt;
&lt;p&gt;同时要求：&lt;/p&gt;
&lt;p&gt;$$
\operatorname{collision}(g)=0, \qquad
\operatorname{reachable}(g)=1, \qquad
w_{\min} \leq w(g) \leq w_{\max}.
$$&lt;/p&gt;
&lt;p&gt;也就是说，高分候选仍需要通过碰撞检测（Collision Checking）、可达性检查（Reachability Checking）和夹爪宽度约束（Gripper-Width Constraint）。如果任务还要求放置方向、易碎部件保护或特定接触位置，目标函数中还要加入任务兼容性（Task Compatibility）与物理属性约束（Physical-Property Constraint）。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;统一抓取决策流程（Unified Grasp Decision Pipeline）&lt;/h2&gt;
&lt;p&gt;不同抓取方法可以放入下面的统一决策流程中理解：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;观测（Observation）
    ↓
目标或可抓区域识别（Target / Graspable-Region Identification）
    ↓
几何表示、补全或主动获取（Geometry Representation / Completion / Acquisition）
    ↓
抓取候选或姿态分布生成（Candidate / Pose-Distribution Generation）
    ↓
质量、不确定性与任务兼容性估计（Quality / Uncertainty / Compatibility）
    ↓
夹爪与机器人可行性过滤（Gripper / Robot Feasibility Filtering）
    ↓
执行与反馈（Execution and Feedback）
    └──────────────────────────────↺
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这个流程比“输入点云、输出姿态”更长，因为一次抓取可能在不同层级失败：&lt;/p&gt;
&lt;p&gt;| 层级 | 典型失败                                   | 对应英文概念                       |
| :--- | :----------------------------------------- | :--------------------------------- |
| 感知 | 深度缺失、目标被遮挡、透明表面不可见       | Sensor Failure / Occlusion         |
| 表示 | 平面抓取无法表达侧向接近，姿态分布覆盖不足 | Representation / Coverage Failure  |
| 几何 | 夹爪与桌面或相邻物体碰撞                   | Collision Failure                  |
| 物理 | 接触不稳定、摩擦不足、抬升后滑落           | Contact / Stability / Slip Failure |
| 具身 | 机械臂不可达或轨迹规划失败                 | Reachability / Planning Failure    |
| 任务 | 抓住了物体，但位置不适合后续操作           | Task-Compatibility Failure         |&lt;/p&gt;
&lt;p&gt;不同论文可能只解决其中一个环节。Contact-GraspNet 将候选与可见接触点绑定，以提高杂乱场景中的生成效率 [8]；Volumetric Grasping Network（VGN）在截断符号距离场（Truncated Signed Distance Field, TSDF）中稠密预测抓取质量、旋转和宽度 [9]；AnyGrasp 则进一步关注空间与时间域中的鲁棒抓取感知 [10]。这些方法都输出六自由度抓取，但它们处理的瓶颈并不相同。&lt;/p&gt;
&lt;p&gt;一个可执行候选因此不应只保存“姿态 + 分数”。更完整的记录至少包括：&lt;/p&gt;
&lt;p&gt;| 字段              | 处理细节                                    | 缺失后的问题                 |
| :---------------- | :------------------------------------------ | :--------------------------- |
| &lt;code&gt;frame_id&lt;/code&gt;        | 位姿属于相机、物体还是基座坐标系            | 无法正确组合外参             |
| &lt;code&gt;pose&lt;/code&gt;            | 平移、旋转表示及夹爪轴约定                  | 等价旋转和固定轴偏差混在一起 |
| &lt;code&gt;width&lt;/code&gt;           | 物理单位、最大开口与安全余量                | 网络输出不能直接下发硬件     |
| &lt;code&gt;score_type&lt;/code&gt;      | 解析质量、分类置信度或成功概率              | 不同分数被错误比较           |
| &lt;code&gt;collision_state&lt;/code&gt; | 指尖、手掌、手腕和接近路径的检查结果        | “末端姿态无碰撞”掩盖路径碰撞 |
| &lt;code&gt;uncertainty&lt;/code&gt;     | 深度、位姿或接触的协方差（Covariance）/样本 | 只能按点估计做脆弱排序       |
| &lt;code&gt;provenance&lt;/code&gt;      | 候选来自哪个点、体素、物体或语言目标        | 失败后无法回溯生成阶段       |&lt;/p&gt;
&lt;p&gt;这个数据结构也解释了闭环更新应改什么：新的视觉可以更新 &lt;code&gt;pose&lt;/code&gt; 与 &lt;code&gt;collision_state&lt;/code&gt;，触觉可以更新 &lt;code&gt;score_type&lt;/code&gt; 对应的稳定概率，机器人规划失败则应更新可达性，而不是把所有失败都压回一个抓取分数。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;发展脉络（Historical Development）&lt;/h2&gt;
&lt;h3&gt;阶段一：图像空间中的抓取矩形&lt;/h3&gt;
&lt;p&gt;2011 年的矩形表示把平行夹爪抓取转化为 RGB-D 图像中的结构化检测（Structured Detection）问题 [1]。随后，深度学习（Deep Learning）方法分别沿“候选排序（Candidate Ranking）”和“直接回归（Direct Regression）”两条路线发展 [2,3]。这一阶段建立了重要的视觉学习范式，但对接近方向和三维碰撞的表达有限。&lt;/p&gt;
&lt;h3&gt;阶段二：解析质量与合成监督&lt;/h3&gt;
&lt;p&gt;真实机器人抓取数据昂贵，而且一次成功或失败往往受感知、规划和硬件共同影响。Dex-Net 2.0 使用三维模型（3D Model）、渲染深度图（Rendered Depth Image）和解析抓取指标（Analytic Grasp Metric）构造大规模合成监督（Synthetic Supervision），再学习鲁棒抓取质量模型（Robust Grasp-Quality Model）[5]。这条路线说明：抓取学习不仅依赖人工标注（Manual Annotation），也可以利用接触几何（Contact Geometry）与物理近似（Physical Approximation）产生训练信号。&lt;/p&gt;
&lt;p&gt;但解析质量（Analytic Grasp Quality）并不等于真实成功。摩擦系数、物体质量、传感器噪声和执行误差只要与模拟假设不同，就会产生仿真到现实差距（Sim-to-Real Gap）。&lt;/p&gt;
&lt;h3&gt;阶段三：点云中的采样式 6-DoF 检测&lt;/h3&gt;
&lt;p&gt;三维点云（3D Point Cloud）使方法能够围绕局部表面生成任意方向的夹爪姿态。典型系统先产生大量六自由度候选，再使用卷积神经网络（Convolutional Neural Network, CNN）或点云网络（Point-Cloud Network）评价局部几何 [4]。这一范式恢复了任意接近方向，却引入了新的矛盾：采样越密，候选覆盖率（Candidate Coverage）越高，计算和排序成本也越大。&lt;/p&gt;
&lt;p&gt;生成式模型（Generative Model）开始直接学习多模态抓取分布（Multimodal Grasp Distribution）。6-DOF GraspNet 使用变分生成模型（Variational Generative Model）产生多个可能的抓取 [6]，使“一个物体存在多个正确答案”成为显式建模目标。&lt;/p&gt;
&lt;h3&gt;阶段四：稠密预测、接触表示与统一基准&lt;/h3&gt;
&lt;p&gt;GraspNet-1Billion 建立了面向一般物体与杂乱场景的大规模六自由度抓取基准（6-DoF Grasping Benchmark），并推动已见、相似与未见物体（Seen / Similar / Novel Objects）上的统一比较 [7]。与此同时，方法从显式候选列表（Explicit Candidate List）走向接触中心表示（Contact-Centric Representation）、点级抓取区域（Point-Wise Graspable Region）和体素抓取场（Volumetric Grasp Field）：Contact-GraspNet 从可见接触点生成候选 [8]，VGN 在体素空间（Voxel Space）中进行实时稠密预测（Dense Prediction）[9]。&lt;/p&gt;
&lt;p&gt;这一阶段的进步不只是网络结构（Network Architecture）变化。数据划分（Dataset Split）、碰撞标签（Collision Label）、传感器输入（Sensor Input）和真实机器人协议（Real-Robot Protocol）开始成为方法能否比较的前提。&lt;/p&gt;
&lt;h3&gt;阶段五：不确定性、语义、具身与执行&lt;/h3&gt;
&lt;p&gt;当前抓取检测正在从独立的几何模块（Geometric Module）扩展为条件化决策系统（Conditional Decision System）。方法开始显式建模传感器不确定性（Sensor Uncertainty）与姿态不确定性（Pose Uncertainty）[11]，利用语言或任务确定目标与接触部位，通过主动视角（Active View）减少遮挡，并根据夹爪形状、机械臂可达性和后续任务重新排序候选。&lt;/p&gt;
&lt;p&gt;评测也逐渐从离线抓取姿态指标（Offline Grasp-Pose Metric）转向检测到执行（Detection-to-Execution）的完整链路。近期的 GCA-Bench 尝试分别评估语义理解（Semantic Understanding）、姿态检测（Pose Detection）、规划（Planning）与实际执行，但目前仍是新近预印本（Preprint）证据 [12]。这提醒我们：单一检测分数无法说明失败究竟发生在哪个模块。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;理解抓取检测的三个维度（Three Analysis Axes）&lt;/h2&gt;
&lt;p&gt;卷积神经网络（Convolutional Neural Network, CNN）、Transformer 或扩散模型（Diffusion Model）只是实现手段。判断一个抓取检测方法的能力，需要同时考察下面三个维度。&lt;/p&gt;
&lt;h3&gt;1. 表示与生成（Representation and Generation）&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;输出是平面矩形、接触点、关键点、体素场，还是 $SE(3)$ 上的概率分布？&lt;/li&gt;
&lt;li&gt;候选来自解析采样（Analytic Sampling）、直接回归（Direct Regression）、稠密预测（Dense Prediction），还是扩散模型与流模型（Diffusion and Flow Models）？&lt;/li&gt;
&lt;li&gt;表示是否处理夹爪对称性、碰撞、宽度和多解性？&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;2. 信息与条件（Information and Conditioning）&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;输入是 RGB、深度、点云、体素、多视角，还是触觉和力觉？&lt;/li&gt;
&lt;li&gt;方法是否知道目标、任务、部件、材料或语言指令？&lt;/li&gt;
&lt;li&gt;夹爪尺寸、机器人构型和工作空间是固定假设，还是模型输入？&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;3. 证据与评价（Evidence and Evaluation）&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;结果是离线姿态精度、解析稳定性、仿真成功率，还是物理抬升成功率？&lt;/li&gt;
&lt;li&gt;是否评价滑移、可达性、轨迹规划和最终任务完成？&lt;/li&gt;
&lt;li&gt;数据集、划分、夹爪和成功定义是否允许公平比较？&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这三个维度分别回答“模型输出什么”“模型知道什么”和“结果证明了什么”。只有把三者放在一起，才能判断一个方法是在特定数据集上获得更高分数，还是确实提高了真实机器人抓取的可靠性。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;总结（Conclusion）&lt;/h2&gt;
&lt;p&gt;平行夹爪抓取检测最初可以被表述为图像中的旋转矩形预测，随后扩展为点云和体素空间中的六自由度候选生成。随着数据集、生成模型和机器人系统的发展，它的研究对象进一步扩展到不确定性、目标语义、材料属性、夹爪具身约束和真实执行。&lt;/p&gt;
&lt;p&gt;由此可以得到一个核心观点：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;抓取检测不是孤立的姿态回归，而是在不完整观测下生成候选、估计质量、满足几何与具身约束，并通过执行反馈验证的决策过程。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2&gt;参考文献（References）&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Y. Jiang, S. Moseson, and A. Saxena, “Efficient Grasping from RGBD Images: Learning Using a New Rectangle Representation,” &lt;em&gt;2011 IEEE International Conference on Robotics and Automation&lt;/em&gt;, 2011. &lt;a href=&quot;https://doi.org/10.1109/ICRA.2011.5980145&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;I. Lenz, H. Lee, and A. Saxena, “Deep Learning for Detecting Robotic Grasps,” &lt;em&gt;The International Journal of Robotics Research&lt;/em&gt;, 34(4–5):705–724, 2015. &lt;a href=&quot;https://doi.org/10.1177/0278364914549607&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;J. Redmon and A. Angelova, “Real-Time Grasp Detection Using Convolutional Neural Networks,” &lt;em&gt;2015 IEEE International Conference on Robotics and Automation&lt;/em&gt;, pp. 1316–1322, 2015. &lt;a href=&quot;https://doi.org/10.1109/ICRA.2015.7139361&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;M. Gualtieri, A. ten Pas, K. Saenko, and R. Platt, “High Precision Grasp Pose Detection in Dense Clutter,” &lt;em&gt;2016 IEEE/RSJ International Conference on Intelligent Robots and Systems&lt;/em&gt;, pp. 598–605, 2016. &lt;a href=&quot;https://doi.org/10.1109/IROS.2016.7759114&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;J. Mahler et al., “Dex-Net 2.0: Deep Learning to Plan Robust Grasps with Synthetic Point Clouds and Analytic Grasp Metrics,” &lt;em&gt;Robotics: Science and Systems XIII&lt;/em&gt;, 2017. &lt;a href=&quot;https://doi.org/10.15607/RSS.2017.XIII.058&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;A. Mousavian, C. Eppner, and D. Fox, “6-DOF GraspNet: Variational Grasp Generation for Object Manipulation,” &lt;em&gt;2019 IEEE/CVF International Conference on Computer Vision&lt;/em&gt;, pp. 2901–2910, 2019. &lt;a href=&quot;https://doi.org/10.1109/ICCV.2019.00299&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;H.-S. Fang, C. Wang, M. Gou, and C. Lu, “GraspNet-1Billion: A Large-Scale Benchmark for General Object Grasping,” &lt;em&gt;2020 IEEE/CVF Conference on Computer Vision and Pattern Recognition&lt;/em&gt;, pp. 11441–11450, 2020. &lt;a href=&quot;https://doi.org/10.1109/CVPR42600.2020.01146&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;M. Sundermeyer, A. Mousavian, R. Triebel, and D. Fox, “Contact-GraspNet: Efficient 6-DoF Grasp Generation in Cluttered Scenes,” &lt;em&gt;2021 IEEE International Conference on Robotics and Automation&lt;/em&gt;, pp. 13438–13444, 2021. &lt;a href=&quot;https://doi.org/10.1109/ICRA48506.2021.9561877&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;M. Breyer, J. J. Chung, L. Ott, R. Siegwart, and J. Nieto, “Volumetric Grasping Network: Real-Time 6 DOF Grasp Detection in Clutter,” &lt;em&gt;Proceedings of the Conference on Robot Learning&lt;/em&gt;, PMLR 155:1602–1611, 2021. &lt;a href=&quot;https://proceedings.mlr.press/v155/breyer21a.html&quot;&gt;PMLR&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;H.-S. Fang et al., “AnyGrasp: Robust and Efficient Grasp Perception in Spatial and Temporal Domains,” &lt;em&gt;IEEE Transactions on Robotics&lt;/em&gt;, 39(5):3929–3945, 2023. &lt;a href=&quot;https://doi.org/10.1109/TRO.2023.3281153&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;N. Marlier, O. Bruls, and G. Louppe, “Grasping Under Uncertainties: Sequential Neural Ratio Estimation for 6-DoF Robotic Grasping,” &lt;em&gt;IEEE Robotics and Automation Letters&lt;/em&gt;, 2024. &lt;a href=&quot;https://doi.org/10.1109/LRA.2024.3416773&quot;&gt;DOI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;H. Zhang et al., “Beyond Visual Grasping: Benchmarking Complex Grasping from Detection to Execution,” &lt;em&gt;arXiv preprint arXiv:2607.14341&lt;/em&gt;, 2026. &lt;a href=&quot;https://arxiv.org/abs/2607.14341&quot;&gt;arXiv&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;</content:encoded><h:img src="https://pic.hana0721.top/65089776_p0_master1200.5c1kl2nzfo.webp"/><enclosure url="https://pic.hana0721.top/65089776_p0_master1200.5c1kl2nzfo.webp"/></item><item><title>Paper Reading: Embodied AI 5</title><link>https://agusexp25.top/blog/paper-reading-eba5</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-reading-eba5</guid><description>从零开始的Embodied AI研究生活。</description><pubDate>Sat, 23 May 2026 16:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating, RatingCriteria } from &apos;@/components/advanced&apos;&lt;/p&gt;
&lt;p&gt;import { ManualTOC } from &apos;@/components/advanced&apos;&lt;/p&gt;
&lt;p&gt;&amp;#x3C;ManualTOC
title=&apos;&apos;
categories={[
{
title: &apos;Embodied AI Paper Reading&apos;,
items: [
{
title: &apos;Batch 1&apos;,
href: &apos;/blog/paper-reading-eba1&apos;,
order: &apos;1&apos;
},
{
title: &apos;Batch 2&apos;,
href: &apos;/blog/paper-reading-eba2&apos;,
order: &apos;2&apos;
},
{
title: &apos;Batch 3&apos;,
href: &apos;/blog/paper-reading-eba3&apos;,
order: &apos;3&apos;
},
{
title: &apos;Batch 4&apos;,
href: &apos;/blog/paper-reading-eba4&apos;,
order: &apos;4&apos;
},
{
title: &apos;Batch 5&apos;,
href: &apos;/blog/paper-reading-eba5&apos;,
order: &apos;5&apos;
}
]
}
]}
/&gt;&lt;/p&gt;
&lt;h2&gt;前言&lt;/h2&gt;
&lt;p&gt;RL菜鸡开始进军Embodied AI，慢慢积累，提升自己。&lt;/p&gt;
&lt;h2&gt;Scale Balanced Grasp&lt;/h2&gt;
&lt;p&gt;&amp;#x3C;ArxivRating
id=&apos;2212.05275&apos;
publication=&apos;CoRL2022&apos;
tldr=&apos;用多尺度局部特征、尺度均衡损失、按物体采样和噪声-干净混合训练，补足 GraspNet 对小物体与小部件的 6-DoF 抓取能力。&apos;
rank={0}&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/scale-balanced-grasp-overview-trimmed.491zytlqr7.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;这篇工作针对 GraspNet-1Billion 中一个很实际但容易被平均指标掩盖的问题：抓取宽度的分布严重偏向中、大尺度，模型在大箱子上有很多候选，却很少为螺栓、叉子或瓶盖等小部件产生高质量抓取。小物体本身几何信息少，深度传感器的缺失和噪声相对更大，直接在所有点上均匀学习会进一步放大这种不平衡。实验使用 GraspNet 的 190 个杂乱场景和 256 个视角，并把夹爪宽度划成 0–4 cm、4–7 cm、7–10 cm 三个尺度段。&lt;/p&gt;
&lt;p&gt;方法由四个互补模块组成。Multi-scale Cylinder Grouping（MsCG）用多个不同半径的圆柱感受野聚合局部点，再以 MLP 和 max-pooling 融合局部与场景上下文，避免单一半径无法同时覆盖窄夹爪和宽夹爪。Scale Balanced Learning（SBL）按尺度出现频率给低频样本更大权重，论文给出的权重为 &lt;code&gt;Wi = 1 - log(Ci/Cmax)&lt;/code&gt;，负样本仍取 1。Object Balanced Sampling（OBS）借助辅助的 3D 实例分割掩码，在每个物体内部单独做 FPS，并在推理时提高小物体的采样比例；Noisy-clean Mix（NcM）则把 CAD 生成的干净点云按实例混入真实噪声场景，保留遮挡和缺失区域，减小仿真到真实的差距。&lt;/p&gt;
&lt;p&gt;在 RealSense 测试中，加入碰撞检测（CD）的完整模型 seen/similar/novel AP 为 63.83/58.46/24.63，明显高于不做尺度处理的 27.56/26.11/10.55 基线。小尺度 seen AP 从 9.44 提升到 13.47，再加入 OBS 后达到 18.29；真实机器人抓取孤立小物体的成功率为 80%，杂乱场景为 88.24%，场景完成率为 96.77%。论文也提醒，复杂物体上的细小几何组件仍然容易失败，平放在桌面上的薄小物体可用抓取很少，后续可能需要更精密的深度传感器和更细的标注/数据清洗。
&lt;/p&gt;
&lt;h2&gt;EconomicGrasp&lt;/h2&gt;
&lt;p&gt;&amp;#x3C;ArxivRating
id=&apos;2407.08366&apos;
publication=&apos;ECCV2024&apos;
tldr=&apos;只保留每个视角中最好的抓取并用 focal representation 建模属性，让 6-DoF 抓取从近百亿稠密标签转向低成本、易收敛的经济监督。&apos;
rank={0}&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/economicgrasp-framework-trimmed.73uo4m0xmx.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;EconomicGrasp 关注的不是再堆一个更大的检测器，而是 GraspNet-1Billion 的监督方式本身。原始标注为每个点提供 300 个视角、每个视角 12 个平面角和 4 个深度，标签文件约 55 GB，训练时一个 batch 需要加载近 1 亿个标签，既拖慢数据处理，也让优化很难收敛。作者分析发现，同一点附近的候选抓取常常只在视角上不一致：原始视角标签的标准差约 46.81，而角度和深度分别只有 3.18 与 0.81，说明稠密监督并不等于信息都同样有用。&lt;/p&gt;
&lt;p&gt;经济监督保留每个点的全部 300 个视角，但每个视角只选一个最优抓取，先离线构建场景级标签，并删除摩擦系数低于 0.8 或发生碰撞的候选。这样标签存储从 55 GB 降到 1.6 GB（不到原来的三十分之一），损失函数再用 selective matching mask 忽略输入点与标签点未匹配的部分。模型侧引入 focal representation：交互式抓取头先用全局注意力交换区域点信息，再在视角、平面角、深度、宽度和质量等属性之间做局部注意力；质量不是直接回归，而是把分数划成 &lt;code&gt;[0, .2, .4, .6, .8, 1]&lt;/code&gt; 六个区间，分类后取期望得到连续分数。&lt;/p&gt;
&lt;p&gt;实验仍在 GraspNet 的 100 个训练场景和 90 个测试场景上进行，骨干是 14 层 Minkowski 3D U-Net，batch size 为 4，Adam 初始学习率 &lt;code&gt;1e-3&lt;/code&gt;、余弦衰减，训练 10 个 epoch。Kinect/RealSense 的 mAP 为 44.62/51.63，略高于 GSNet 的 42.53/47.81；资源表中训练时间为 8.3 小时、主存 4.2 GB、GPU 占用 5.81 GB，而 GSNet 分别为 37.8 小时、35.4 GB 和 9.15 GB。Franka 加 RealSense 的六个真实场景中，成功率为 92.3%，失败次数为 36/7680。它的边界也很明确：结果依赖 GraspNet 和固定平行夹爪的标签定义，以及“每视角选一个最好抓取”的启发式；论文没有覆盖动态目标、目标导向操作或更广泛的夹爪形态。
&lt;/p&gt;
&lt;h2&gt;RNGNet&lt;/h2&gt;
&lt;p&gt;&amp;#x3C;ArxivRating
id=&apos;2406.01767&apos;
publication=&apos;CoRL2024&apos;
tldr=&apos;先用热图定位局部区域，再把 RGB-D patch 归一化到 Normalized Grasp Space，以轻量门控网络在不同物体尺度和夹爪宽度下生成区域抓取。&apos;
rank={0}&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/rngnet-framework-trimmed.1zizfc10fz.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;RNGNet 认为，直接对整幅场景点云做全局特征提取会把大量无关背景和重复几何混在一起；已有局部方法又常依赖固定裁剪尺度，换物体尺寸或夹爪后就需要重新训练。论文因此采用单视角 RGB-D 的区域流程：先找“哪里可能抓”，再在局部区域内解决 6-DoF 姿态，而不是让一个网络同时解释整张场景。&lt;/p&gt;
&lt;p&gt;核心是 Normalized Grasp Space（NGS）。以热图中心深度 &lt;code&gt;zi&lt;/code&gt; 为依据，令 patch 半径约为 &lt;code&gt;ri = wref * F / zi&lt;/code&gt;，将 RGB-D 转为 RGB-XYZ 后按参考夹爪宽度 &lt;code&gt;wref&lt;/code&gt; 做平移和尺度归一化：&lt;code&gt;P*i = (Pi - pi) / wref&lt;/code&gt;。只保留中心附近 &lt;code&gt;0.1*wref&lt;/code&gt; 半径内的抓取，并同步归一化平移和夹爪宽度。这样同一几何形状在不同图像位置具有平移不变性，对绕相机 z 轴旋转等变，并对物体/夹爪尺度更鲁棒；训练时还把感受野随机化到 &lt;code&gt;[wref/2, 2*wref]&lt;/code&gt;，避免模型记住单一尺寸。&lt;/p&gt;
&lt;p&gt;网络由 Grasp Heatmap Model、深度自适应网格提取器和多阶段 gated CNN 组成。Point-wise Gate 用 XYZ 特征经过共享 MLP 生成通道门控，选择性放大与几何有关的滤波器；区域头用非均匀旋转锚点预测 &lt;code&gt;gamma/beta&lt;/code&gt;，并以二维热图表示旋转、回归归一化宽度和中心偏移。模型仅约 3.66M 参数，在 GraspNet-1Billion 上训练，RTX 3060Ti/AMD 5600X 上一次前向约 17 ms。RealSense/Kinect 总 AP 为 58.06/52.24，seen 为 75.20/72.23，novel 为 32.38/26.05；加入碰撞检测后为 59.13/52.81。真实杂乱清空成功率 90%（54/60），交接 82.5%，传送带抓取 67.5%。局限是单视角仍受深度噪声影响，实验主要针对刚体和平行夹爪；作者也把多视角场景信息和面向指令的操作作为后续方向。
&lt;/p&gt;
&lt;h2&gt;AnyGrasp&lt;/h2&gt;
&lt;p&gt;&amp;#x3C;ArxivRating
id=&apos;2212.08333&apos;
publication=&apos;TRO2022&apos;
tldr=&apos;在 GSNet 式几何模块上加入稳定性与时序关联，让单次前向同时输出稠密 7-DoF 抓取，并能在低成本深度相机下跟踪动态目标。&apos;
rank={0}&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/anygrasp-architecture-trimmed.7w7jmchjfp.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;AnyGrasp 面向两个常被分开讨论的要求：静态场景要快速、密集且准确地给出可执行抓取，动态场景还要连续跟踪并预测抓取位姿。传统采样-评分方法需要逐个候选调用网络，速度慢且候选稀疏；许多动态方法又没有公开的时序训练数据。AnyGrasp 使用单视角部分点云，一次前向约 100 ms 生成稠密 7-DoF 抓取，再在后处理中做碰撞检查和夹爪居中。&lt;/p&gt;
&lt;p&gt;几何处理模块基于 GSNet：先预测点的 objectness 和 graspable probability，用 Graspable FPS 选出 &lt;code&gt;M=1024&lt;/code&gt; 个种子，再用 Graspable PVS 从 300 个候选视角中选高质量视角。沿视角做 cylinder grouping，以 12 个平面旋转和 5 个深度（额外加入 0.5 cm）预测得分与宽度。为减少“能夹住但提起会滑”的情况，作者定义 stable/COG score：假设物体密度均匀，计算夹爪平面到物体质心的归一化垂直距离，并用 &lt;code&gt;new score = original * (1 - stable)&lt;/code&gt; 调整原始质量。&lt;/p&gt;
&lt;p&gt;时序关联模块从种子、抓取、RGB 特征和位姿构造 &lt;code&gt;M×C&lt;/code&gt;（&lt;code&gt;C=256&lt;/code&gt;）表示，在相邻帧间用余弦相似度和监督式对比损失寻找同一抓取；在物体坐标系中度量关联距离，并用 temporal buffer 保留历史位姿、预测下一步运动和动量。训练优先使用真实感知数据：GraspNet 场景之外增加 168 个场景和 104 个新物体，并补充密集标签。静态实验超过 300 个未见物体，尝试级成功率 93.3%、物体级 99.8%，单台 UR5 平均每小时超过 900 次抓取；动态“抓鱼”成功率 75.5%，系统约 7 Hz，D435 深度噪声达到 ±5 mm 时仍能工作。边界在于质心的均匀密度假设、单视角和固定平行夹爪；动态失败主要来自水中低摩擦、动量过时和相似目标的关联切换。
&lt;/p&gt;
&lt;h2&gt;GSNet&lt;/h2&gt;
&lt;p&gt;&amp;#x3C;ArxivRating
id=&apos;2406.11142&apos;
publication=&apos;ICCV2021&apos;
tldr=&apos;先学习每个点“有多少抓取机会”的 graspness，再只在高价值点和视角上做姿态回归，避免把大部分算力浪费在不可抓区域。&apos;
rank={0}&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/gsnet-architecture-trimmed.6m4mg0zk7i.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;GSNet 把 6-DoF 抓取拆成“在哪里抓”和“如何抓”两个阶段。GraspNet 场景中真正可抓的点不到 10%，均匀采样会让网络花大量时间处理桌面、遮挡缝隙和不可达区域；如果只在最后回归姿态，网络又缺少显式的场景级筛选信号。论文通过对候选视角、平面角和深度做 look-ahead 搜索，用可行抓取的比例定义 point/view graspness，得到一个可学习的“抓取性地形”。&lt;/p&gt;
&lt;p&gt;模型的 cascaded graspness model 先用点编码器-解码器输出每个点的 graspable landscape，Graspable FPS 从高 graspness 区域选 &lt;code&gt;M=1024&lt;/code&gt; 个种子；随后 Graspable PVS 依据预测概率在 Fibonacci sphere 的 300 个视角中采样/选择。第二阶段的 grasp operation model 对每个种子做 cylinder grouping 和 PointNet 局部聚合，预测 &lt;code&gt;A×D=12×4=48&lt;/code&gt; 个视角-深度组合的抓取分数与夹爪宽度，并联合优化点级、视角级和操作级损失。&lt;/p&gt;
&lt;p&gt;训练使用 GraspNet-1Billion 的 190 个场景、256 视角，体素大小为 0.005 m，Adam、batch size 4、10 个 epoch，并在推理时可接碰撞检测。RealSense 的 seen/similar/novel AP 为 65.70/53.75/23.98，Kinect 为 61.19/47.39/19.01；加入碰撞检测后分别达到 67.12/54.81/24.31 和 63.50/49.18/19.78。推理约 0.10 s（CGM 0.08 s、GOM 0.02 s），相对早期基线 AP 近乎翻倍，真实 UR5+D435 杂乱抓取约 91.3%。代价是低 graspness 区域会被主动舍弃，抓取多样性依赖解析标签和既定质量指标；透明物体、严重缺失深度和非平行夹爪场景仍未充分覆盖。
&lt;/p&gt;
&lt;h2&gt;HGGD&lt;/h2&gt;
&lt;p&gt;&amp;#x3C;ArxivRating
id=&apos;2403.18546&apos;
tldr=&apos;用 2D RGB-D grasp heatmap 先定位高质量区域，再在局部点云中以非均匀锚点生成多抓取，获得较少标签和实时推理下的高质量 6-DoF 抓取。&apos;
rank={0}&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/hggd-framework-trimmed.4jotrz0z95.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;HGGD 观察到，很多点云抓取方法把整幅场景送入 3D 网络，却没有充分利用图像平面上很便宜的热图先验；相反，单纯从候选数据库投影抓取又难以覆盖新物体。它把任务拆成 Grasp Heatmap Model（GHM）和 Non-uniform Multi-Grasp Generator（NMG）：前者回答“哪些像素区域值得看”，后者只在这些区域聚合局部几何并输出多个 6-DoF 抓取。&lt;/p&gt;
&lt;p&gt;GHM 是输入 &lt;code&gt;640×360&lt;/code&gt; RGB-D 的 ResNet-34 编解码器，输出高斯编码的置信热图 &lt;code&gt;Qc&lt;/code&gt;，以及以 &lt;code&gt;r=8&lt;/code&gt; 网格和 &lt;code&gt;ka=6&lt;/code&gt; 定向锚点表示的角度、宽度、深度属性热图。NMG 取训练时 top-k 的 128 个、推理时 32/48 个热图中心，把中心按深度反投影到点云，以预测宽度决定 ball-query 半径，再做 FPS 保留最多 512 个局部点。语义特征和点特征融合后送入 PointNet；对 &lt;code&gt;beta/gamma&lt;/code&gt; 使用非均匀锚点平移，并令 &lt;code&gt;kr=7&lt;/code&gt; 的多标签组合最多产生 49 个抓取，同时回归中心偏移。&lt;/p&gt;
&lt;p&gt;训练在 GraspNet 外还使用 TS-ACRONYM：300 个 ShapeNetSem 物体、500 个场景、每场景 50 个视角，每场景约 500 个抓取，标签量约为 GraspNet 的 2%。论文报告单张 RTX 3090 约 4 小时即可训练。TS-ACRONYM 上 HGGD 的 CR/CFR/AS 为 0.503/98.2%/0.686，推理 28 ms；GraspNet RealSense/Kinect 的 seen/similar/novel AP 为 64.45/53.59/24.59 和 61.17/47.02/19.37，约 36 ms。UR5e+D435i 的 20 个日用品实验成功率 94%（62/66），7 个场景全部完成；透明玻璃因深度失真失败，说明热图并不能替代可靠的传感器几何。模型还受合成/真实域差异和固定平行夹爪设定限制。
&lt;/p&gt;
&lt;h2&gt;FlexLoG&lt;/h2&gt;
&lt;p&gt;&amp;#x3C;ArxivRating
id=&apos;2403.15054&apos;
tldr=&apos;把全局热图、graspness、目标检测、分割或点击统一成 guidance，只在局部规范坐标中用轻量 LoG 预测物体无关的高质量抓取。&apos;
rank={0}&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/flexlog-framework-trimmed.32ioq7wunx.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;FlexLoG 试图解决 scene-level 抓取和 target-oriented 抓取之间的割裂。只看全局点云时，网络容易被无关物体干扰；只为某个目标设计的模型又难以复用到热图、检测框、分割掩码或用户点击等不同入口。论文因此把“从哪里取局部区域”和“局部区域里如何生成抓取”分开，形成可插拔的 Flexible Guidance Module（FGM）和 Local Grasp Model（LoG）。&lt;/p&gt;
&lt;p&gt;FGM 接收全局 grasp heatmap/graspness，或局部目标检测、实例分割、点击和 affordance guidance，先选中心，再用 ball query 与 FPS 提取局部点。LoG 只看规范化的局部 XYZ，不依赖类别语义：PointMLP 编码器后，Collision Head 预测夹爪宽度相关碰撞，Orientation Head 先用 6 个 &lt;code&gt;theta&lt;/code&gt; bin 加残差，再用 &lt;code&gt;7×7&lt;/code&gt; 非均匀锚点预测 &lt;code&gt;beta/gamma&lt;/code&gt;（最多 49 个姿态），Offset Head 回归三维中心修正。最终抓取表示为 &lt;code&gt;(Δx, Δy, Δz, θ, γ, β, w)&lt;/code&gt;，把场景坐标中的尺度、位置和物体类别影响尽量消掉。&lt;/p&gt;
&lt;p&gt;作者从 GraspNet 生成约 650 万个 regional grasp-centric 样本，每个区域保留中心 2 cm 内的标签，默认每场景采样 48 个中心、每区域 512 点。热图 guidance 下 RealSense/Kinect 的 seen/similar/novel AP 为 72.81/65.21/30.04 和 69.44/59.01/23.67，平均 56.02/50.67，速度约 26 FPS；相对 Graspness 方法约快 2.6 倍，mAP 提高约 15%。目标导向评测中 LoG mean TOAP 为 39.25/33.36，接近 TOGNet 的 40.73/36.40。UR5e+D435i 在杂乱、随机摆放和 click-and-grasp 三种设置总成功率 95%（140/148），18 个场景全部完成。局限是仅用点云，透明/反光表面的深度缺失会导致低质量姿态，真实失败还包括光滑表面滑落和杂乱中的夹爪碰撞；作者计划加入更强的语义信息。
&lt;/p&gt;
&lt;h2&gt;GraNet&lt;/h2&gt;
&lt;p&gt;&amp;#x3C;ArxivRating
id=&apos;2312.03345&apos;
publication=&apos;IROS2023&apos;
tldr=&apos;用多层、多跳的场景图学习点之间的空间关系，再以物体前景、价值点筛选和局部抓取生成逐级缩小搜索空间。&apos;
rank={0}&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/granet-framework-trimmed.2yz2si3s3s.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;GraNet 认为，均匀采样和 PointNet++ 的局部层级池化都没有充分利用“哪些点彼此相关、哪些点对抓取更有价值”。在杂乱场景里，遮挡边界、同一物体的远距离表面和邻近物体之间的关系会直接影响抓取姿态。GraNet 只用 XYZ，不依赖纹理，端到端地把场景点云转成多层图，再逐步筛出最值得操作的点。&lt;/p&gt;
&lt;p&gt;Graph Feature Embedding（GFE）先对 &lt;code&gt;N=12000&lt;/code&gt; 个点建立 &lt;code&gt;k=32&lt;/code&gt; 的 KNN 场景图，用 SIGN 风格的扁平多跳图卷积传播 &lt;code&gt;p=4&lt;/code&gt; 跳信息，并通过局部 hop/channel attention 和全局池化融合多尺度特征，同时加入位置编码。Grasp Point Selection（GPS）先做 OPS 前景/物体表面二分类，在 FPS 得到 &lt;code&gt;Nobj=2048&lt;/code&gt; 个对象点后重建对象图；再由 VPS 依据每个点的平均标注抓取分数估计 Degree of Value，分成 10 个等级，取最高价值的 &lt;code&gt;Nval=512&lt;/code&gt; 个点。最后 GPG 对预定义接近方向做分类，在局部圆柱中回归平面旋转、深度和宽度，不再额外堆第二个分割器。&lt;/p&gt;
&lt;p&gt;GraNet 只使用 GraspNet-1Billion 约 30% 的训练数据，在一张 10 GB RTX 3080 上以 batch size 2、Adam 训练 10 个 epoch，学习率从 &lt;code&gt;1e-3&lt;/code&gt; 在第 8 个 epoch 后降到 &lt;code&gt;5e-4&lt;/code&gt;。RealSense 的 seen/similar/novel 平均 AP 为 43.33/39.98/14.90，Kinect 为 41.48/35.29/11.57；相对 Li/TransGrasp 等基线，seen 和 similar split 分别有明显提升。PhoXi + UR5 的四个新物体杂乱场景中，平均成功率 84.2%，场景完成率 93.75%。代价是 KNN、多跳图和任务相关价值标签带来预处理与计算开销，真实机器人只覆盖少量场景，物体缺失、强噪声、动态目标和更大规模部署仍缺乏系统评估。
&lt;/p&gt;
&lt;h2&gt;TransGrasp&lt;/h2&gt;
&lt;p&gt;&amp;#x3C;ArxivRating
id=&apos;https://ieeexplore.ieee.org/document/9812001&apos;
publication=&apos;ICRA2022&apos;
tldr=&apos;用分层、多尺度点 Transformer 建模远距离几何关系，让单阶段网络直接预测 7-DoF 平行夹爪抓取姿态。&apos;
rank={0}&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/transgrasp-overview.7lkptcwosb.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;这篇 IEEE 论文针对 PointNet++ 式层级点网络的一个盲区：局部邻域很容易提取，但相距较远、却共同决定轮廓和碰撞的点之间缺少非局部交互。TransGrasp 以单阶段的 hierarchical point transformer 为核心，在整幅场景中建立多尺度形状感知，并用长距离相关性帮助网络理解细长结构、轮廓和夹爪避障。输出是 7-DoF 平行夹爪抓取（位置、旋转和宽度），属于 GraspNet-1Billion 的稀疏候选预测路线。&lt;/p&gt;
&lt;p&gt;从公开摘要和后续论文的对比描述来看，模型先在多个尺度构建局部点邻域，再用 Transformer 自注意力交换跨区域的几何特征；高层特征回流到细粒度点，最终由抓取头同时给出姿态与夹爪宽度。与只在局部圆柱内评分的方法相比，长距离注意力可以把同一物体的远端表面联系起来，也能在预测时显式感知潜在碰撞。由于原始 IEEE 版本没有公开完整实现和层数/损失细节，下面只保留可由摘要和公开实验确认的结构，不把未核实的模块名当成论文事实。&lt;/p&gt;
&lt;p&gt;在 GraspNet-1Billion 上，RealSense 的 seen/similar/novel AP 约为 39.81/29.32/13.83，平均 27.65；Kinect 约为 35.97/29.71/11.41，平均 25.70。EconomicGrasp 的资源对比表记录其训练约 41.2 小时、主存 4.8 GB、GPU 约 7.61 GB，Kinect/RealSense mAP 约 25.69/29.48。作者还在 ABB YuMi、Azure Kinect DK 和 ABB 双指夹爪上做了单物体与杂乱场景实验，说明点 Transformer 的全局关系建模能转化为较高的真实抓取成功率。实验边界是单视角、固定平行夹爪和静态 GraspNet 分布；论文闭源版本也使复现实验和精确的失败模式分析不如 arXiv 工作充分。
&lt;/p&gt;
&lt;h2&gt;S4G&lt;/h2&gt;
&lt;p&gt;&amp;#x3C;ArxivRating
id=&apos;1910.14218&apos;
publication=&apos;CoRL2019&apos;
tldr=&apos;用物理仿真生成带接触质量的杂乱场景数据，再让 PointNet++ 对单视角点云逐点回归一个 SE(3) 抓取，兼顾遮挡、碰撞与姿态扰动鲁棒性。&apos;
rank={0}&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/s4g-pipeline-trimmed.41ys3dzm2j.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;S4G 处理的是单个廉价深度相机看到的“残缺世界”：点云只有一个视角，物体类别未知，遮挡和深度噪声会让传统 3/4-DoF 平面抓取无法绕开障碍。论文提出 Amodal Single-view Single-shot SE(3) Grasp Detection，直接为输入点云中的每个点预测一个 6-DoF 位姿和质量，不依赖先分割物体或逐候选调用评分器。&lt;/p&gt;
&lt;p&gt;为了获得足够可靠的标签，作者用 123 个 YCB 物体在 MuJoCo 中通过 V-HACD 分解碰撞网格，物理投放到桌面并让场景达到平衡，再用光线追踪生成单视角点云。深度加入 &lt;code&gt;D~ = (1 + N(0, 0.003^2))D&lt;/code&gt; 噪声，并显式建模夹爪接触：两侧接触点用 &lt;code&gt;cos alpha1 cos alpha2&lt;/code&gt; 计算抗摩擦质量，法线在夹爪有效半径 23 mm 内平滑，排除法线位移超过 3 mm 的邻点，同时检查占用、碰撞和姿态扰动鲁棒性，最后取多项指标的最小值作为监督。&lt;/p&gt;
&lt;p&gt;网络是单次前向的 PointNet++ 分割式架构，用连续 6D 旋转表示和对称性感知旋转损失，逐点输出一组抓取，再用 NMS 与加权随机采样保留候选。训练 100 个 epoch，Adam 初始学习率 &lt;code&gt;1e-3&lt;/code&gt;，每 20 个 epoch 减半，输入 25,600 点。约 6000 个模拟场景（约 260 万抓取）中，近垂直方向只有 63.38% 的物体可抓，显示 SE(3) 搜索的必要性；噪声仿真抗摩擦分数为 0.7354、无碰撞率 53.32%。Kinova MOVO/Jaco2 加 KinectV2 的 30 个未见物体实验成功率 77.1%，场景完成率 92.5%，处理约 5.8 s、网络推理 12.6 ms。局限是仿真到真实仍有域差距，接触模型含启发式与均匀密度假设，单视角和固定平行夹爪对薄壁、非凸、深度缺失物体仍敏感。
&lt;/p&gt;
&lt;h2&gt;GtG 2.0&lt;/h2&gt;
&lt;p&gt;&amp;#x3C;ArxivRating
id=&apos;2505.02664&apos;
tldr=&apos;GtG 2.0 先用 Darboux frame 生成 7-DoF 候选，再在夹爪内外局部点图上用五个轻量 GNN 集成评分，提升真实杂乱抓取的精度与泛化。&apos;
rank={0}&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/gtg2-overview-trimmed.4cllwjeuae.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;GtG 2.0 是对 GtG 1.0 的一次现实化改造。旧版本假定点云完整、无噪声，随机生成 4-DoF 候选并在整场景图上评分；真实深度相机下，候选生成和全局图都会成为瓶颈。新版本把任务拆成“候选生成”和“候选质量评分”两阶段：前者尽量保留召回率，后者只在每个夹爪附近做精细几何判断。&lt;/p&gt;
&lt;p&gt;第一阶段的 GPG 从原始点云和 Navier–Stokes 深度补全点云中用 Darboux frame 生成 7-DoF 候选，关闭异常点剔除，合并两套候选后按 5 mm/1° 做 NMS。第二阶段对每个候选提取夹爪两指之间的 inside 点和外部 context 点，各用 FPS 最多保留 70 个，并把坐标变换到夹爪局部坐标系。每个节点只有 5 维特征 &lt;code&gt;[x,y,z, inside/outside one-hot]&lt;/code&gt;，最多 140 个节点，以 &lt;code&gt;k=5&lt;/code&gt; 的 kNN 建图；Position/Label encoder 后接 3 层 SAGEConv、逐元素变换、global max-pooling 和 MLP 输出质量分数。&lt;/p&gt;
&lt;p&gt;模型由 5 个独立训练的 GNN 组成，平均预测作为集成结果，总参数约 0.57M（单模型约 0.11M）。训练标签重新根据 GraspNet 几何检查修正：碰撞为 &lt;code&gt;-1&lt;/code&gt;，高摩擦但不可执行为 &lt;code&gt;-0.5&lt;/code&gt;，可行质量归一化到 &lt;code&gt;[0,1]&lt;/code&gt;；每 10 个 epoch 动态重采样所有可行样本、5 万碰撞负样本和 5 万低质量负样本，Adam、学习率 &lt;code&gt;0.01&lt;/code&gt;、MSE 训练 500 epoch。GraspNet hypothesis-and-test 的 RealSense/Kinect 平均 AP 为 53.42/47.00，明显高于同类轻量 GNN；inside-only、inside+outside、ensemble 的子集 AP 依次为 45.29、48.57、53.69。Kinect v1 加 Delta 机械臂的 9 个家居物体、5 个杂乱场景中成功 30/33（91%），场景完成率 100%。论文明确承认 novel split 仍落后 seen，GPG 产生大量低质量候选；更强候选生成、未见物体泛化和端到端单阶段模型是后续方向。
&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/42175762_p0_master1200.6m4jay5vlg.webp"/><enclosure url="https://pic.hana0721.top/42175762_p0_master1200.6m4jay5vlg.webp"/></item><item><title>Paper Reading: Embodied AI 4</title><link>https://agusexp25.top/blog/paper-reading-eba4</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-reading-eba4</guid><description>从零开始的Embodied AI研究生活。</description><pubDate>Thu, 09 Apr 2026 16:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating, RatingCriteria } from &apos;@/components/advanced&apos;&lt;/p&gt;
&lt;p&gt;import { ManualTOC } from &apos;@/components/advanced&apos;&lt;/p&gt;
&lt;p&gt;&amp;#x3C;ManualTOC
title=&apos;&apos;
categories={[
{
title: &apos;Embodied AI Paper Reading&apos;,
items: [
{
title: &apos;Batch 1&apos;,
href: &apos;/blog/paper-reading-eba1&apos;,
order: &apos;1&apos;
},
{
title: &apos;Batch 2&apos;,
href: &apos;/blog/paper-reading-eba2&apos;,
order: &apos;2&apos;
},
{
title: &apos;Batch 3&apos;,
href: &apos;/blog/paper-reading-eba3&apos;,
order: &apos;3&apos;
},
{
title: &apos;Batch 4&apos;,
href: &apos;/blog/paper-reading-eba4&apos;,
order: &apos;4&apos;
},
{
title: &apos;Batch 5&apos;,
href: &apos;/blog/paper-reading-eba5&apos;,
order: &apos;5&apos;
}
]
}
]}
/&gt;&lt;/p&gt;
&lt;h2&gt;前言&lt;/h2&gt;
&lt;p&gt;RL菜鸡开始进军Embodied AI，慢慢积累，提升自己。&lt;/p&gt;
&lt;h2&gt;4D-VLA&lt;/h2&gt;
&lt;p&gt;&amp;#x3C;ArxivRating&lt;/p&gt;
&lt;p&gt;id=&apos;2506.22242&apos;
tldr=&apos;4D-VLA 用连续 RGB-D 和历史帧记忆把深度、时间与跨场景坐标纳入 VLA 预训练，缓解多机器人数据中的坐标混乱和状态混乱。&apos;
rank={0}&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2506.22242.99u2r3sldm.webp&quot; alt=&quot;&quot;&gt;
4D-VLA 的动机是让来自不同机器人、相机和场景的轨迹真正可以一起预训练。只用单帧 RGB 时，模型既看不清物体的三维关系，也无法判断动作所处的阶段，导致同一观察对应的动作分布很分散，论文称之为 coordinate-system chaos 和 state chaos。&lt;/p&gt;
&lt;p&gt;核心方法是在视觉输入中加入连续 RGB-D 帧，把深度用于对齐机器人与场景坐标，把时间上下文用于建模运动状态；同时用 cross-scene calibration 减少不同采集设置的坐标偏差。memory-bank sampling 从历史观测中选择信息量较高的帧，避免把全部视频都塞进上下文。作者还提出 MV-Bench，用多视角仿真检验空间感知和新视角泛化。&lt;/p&gt;
&lt;p&gt;数据与实验覆盖仿真和真实机器人操作，并与 OpenVLA 等 VLA 比较；消融分别考察深度、时序、校准和记忆采样。结果显示，4D 输入和记忆策略能同时改善动作成功率、时空推理及跨视角适应，而不需要显著增加主干模型规模。&lt;/p&gt;
&lt;p&gt;主要结论是，补足观测的几何和时间信息，比单纯扩大动作数据更能稳定多源预训练。局限在于深度传感器噪声、相机标定和帧选择错误会直接影响策略，MV-Bench 仍是仿真评测，真实长时序与更多 embodiment 的收益需要继续验证。建议代表 Figure：Figure 1（4D-VLA 输入、校准和记忆采样的总览）。
&lt;/p&gt;
&lt;h2&gt;D(R,O) Grasp&lt;/h2&gt;
&lt;p&gt;&amp;#x3C;ArxivRating&lt;/p&gt;
&lt;p&gt;id=&apos;2410.01702&apos;
tldr=&apos;D(R,O) Grasp 将机器人手的描述与物体点云编码为统一交互表示，直接预测跨机器人、跨物体的合法稳定灵巧抓取。&apos;
rank={0}&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2410.01702.pg29w3l2x.webp&quot; alt=&quot;&quot;&gt;
D(R,O) Grasp 的动机是解决灵巧手抓取中的 embodiment gap：不同手的关节数量、连杆尺寸和可达空间不同，分别训练会浪费数据，直接迁移抓取姿态又常出现运动学不合法或接触不稳定。&lt;/p&gt;
&lt;p&gt;方法把处于抓取姿态的机器人手和物体点云放到同一交互表示中。网络读取机器人的几何/关节描述和物体点云，学习手—物接触关系，再输出候选抓取姿态；预测阶段配合运动学约束和稳定性筛选，因而不是只在图像上找一个二维框。表示不绑定某一手型，目标是对新手和新物体保持泛化。&lt;/p&gt;
&lt;p&gt;实验在三种不同灵巧手的仿真环境和 LeapHand 真实平台上评估成功率、抓取多样性与推理时间，并比较不同手型、物体几何和未见组合。论文报告仿真平均成功率约为 87.5%，真实 LeapHand 约为 89%，且单次推理可在秒级内完成。&lt;/p&gt;
&lt;p&gt;结果表明，显式建模机器人与物体的交互，比把每个 embodiment 当作独立类别更容易迁移。局限是输入仍依赖较完整的手部描述、点云质量和标定；稳定性主要由几何/仿真指标近似，动态接触、柔性物体和闭环失败恢复尚未充分覆盖。建议代表 Figure：Figure 1（统一交互表示与跨手型抓取流程）。
&lt;/p&gt;
&lt;h2&gt;Fast-in-Slow&lt;/h2&gt;
&lt;p&gt;&amp;#x3C;ArxivRating&lt;/p&gt;
&lt;p&gt;id=&apos;2506.01953&apos;
tldr=&apos;Fast-in-Slow 将高速 System 1 动作模块嵌入带 VLM 推理能力的 System 2，并以异步双系统协同兼顾规划质量和控制频率。&apos;
rank={0}&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2506.01953.6t7uc6lp5b.webp&quot; alt=&quot;&quot;&gt;
Fast-in-Slow（FiS）的研究动机是解决机器人基础模型的两难：VLM 能做常识和长时序推理，却通常以很低频率输出动作；单独的快速策略能实时控制，却无法利用大模型的语义知识。把两个完全独立的模型串联还会造成表示和通信损失。&lt;/p&gt;
&lt;p&gt;FiS 在一个 VLA 中部分共享参数，把 System 1 执行模块放入 System 2 的 VLM 表示内部。两个系统接收不同的模态输入、以异步频率运行：System 2 低频生成和筛选高层动作候选，System 1 高频把候选变成平滑的动作 chunk。dual-aware co-training 同时训练动作生成与上下文表示，避免快速分支破坏慢速分支的推理能力。&lt;/p&gt;
&lt;p&gt;实验包含仿真操作任务和真实机器人任务。作者报告相对既有方法平均成功率在仿真提升约 8%、真实任务提升约 11%，动作 chunk 为 8 时控制频率可达 117.7 Hz；消融表明部分参数共享和异步调度都对收益有贡献。&lt;/p&gt;
&lt;p&gt;主要结论是，快慢系统不必靠两个互不相干的网络实现，适度共享能把语义计划直接传给高速控制器。局限是 System 2 候选和价值判断出错时，System 1 只能快速执行错误计划；异步缓存、频率和硬件同步增加工程复杂度，复杂接触任务及更多机器人形态仍需验证。建议代表 Figure：Figure 1（FiS 的 System 1/System 2 数据流和异步时序）。
&lt;/p&gt;
&lt;h2&gt;NavDP&lt;/h2&gt;
&lt;p&gt;&amp;#x3C;ArxivRating&lt;/p&gt;
&lt;p&gt;id=&apos;2505.08712&apos;
tldr=&apos;NavDP 在仿真中用带特权信息指导的轨迹扩散策略学习 RGB-D 导航，并尝试零样本迁移到真实环境和不同机器人。&apos;
rank={0}&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/navdp-1.2a5t8jj6g3.webp&quot; alt=&quot;&quot;&gt;
NavDP 的动机是让导航策略摆脱手工级联模块和昂贵真实示范。动态、开放世界中的机器人需要同时生成安全轨迹并判断轨迹质量，而只用 RGB-D 的策略往往看不出碰撞风险，单纯依靠仿真又容易产生 sim-to-real 落差。&lt;/p&gt;
&lt;p&gt;核心是一个 Transformer 架构，输入局部 RGB-D，联合预测候选轨迹和对应的 critic value。训练时在仿真中使用地图、碰撞和未来状态等 privileged information 为轨迹打分，再通过对比式候选监督把这些信号蒸馏到只看 RGB-D 的策略；动作轨迹由 diffusion policy 生成。配套的数据管线在大量场景中自动产生安全/危险导航经验。&lt;/p&gt;
&lt;p&gt;数据集覆盖约三千个仿真场景和超过一百万米的导航经历，实验在仿真和真实环境中测试点到点导航、动态障碍与不同底盘/传感器设置，并与模块化和学习式导航器比较。结果显示，特权信息只用于训练并不会阻碍部署，NavDP 在跨场景、跨机器人和 sim-to-real 测试中保持较强的成功率与安全性。&lt;/p&gt;
&lt;p&gt;结论是“用仿真老师教会视觉策略评估轨迹”比直接模仿最短路径更有利于泛化。局限包括仿真中的碰撞/动力学模型与真实世界仍有差异，RGB-D 在强反光、雨雾或稀疏纹理下会失效；长程全局规划、极端动态人群和未知传感器还不是充分覆盖的场景。建议代表 Figure：Figure 1（NavDP 的轨迹生成—价值评估联合训练和部署流程）。
&lt;/p&gt;
&lt;h2&gt;Nav $A^3$&lt;/h2&gt;
&lt;p&gt;&amp;#x3C;ArxivRating&lt;/p&gt;
&lt;p&gt;id=&apos;2508.04598&apos;
tldr=&apos;NavA³ 用全局 Reasoning-VLM 解析开放指令、用局部 NaviAfford 做开放词汇空间指向，完成长时程“理解—导航—找物体”。&apos;
rank={0}&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2508.04598.4jotsp1q67.webp&quot; alt=&quot;&quot;&gt;
NavA³ 针对现实中“去找到能完成某件事的物品”这类开放指令，而非预先定义的 object navigation 标签。难点在于高层语言目标可能包含隐含的地点和用途，目标物体还可能是开放词汇、被遮挡并处在陌生布局中。&lt;/p&gt;
&lt;p&gt;框架分为全局和局部两级。全局策略将 Reasoning-VLM 的指令解析能力与全局三维场景视图结合，推断最可能包含目标的区域并规划长程路线；局部策略 NaviAfford（PointingVLM）接收当前视野，输出开放词汇物体的位置、可达性和空间 affordance，从而把路线终点精确到目标。&lt;/p&gt;
&lt;p&gt;作者收集约一百万条带空间 affordance 的样本训练局部模型，并在不同机器人 embodiment 的真实长时程导航中评估复杂指令、开放词汇定位和找物体成功率，同时与现有 VLN/物体导航方法比较。实验显示，分层设计在全局搜索和局部指向之间取得更好的成功率，并能处理预定义类别之外的目标。&lt;/p&gt;
&lt;p&gt;主要结论是，高层语义推理和低层空间指向应分别建模再闭环协作。局限是全局三维重建、定位漂移和局部指向误差会级联放大；affordance 标注与真实可操作性不总是一致，长程失败恢复和动态人群中的安全性还缺少系统评估。建议代表 Figure：Figure 1（全局区域规划与局部 NaviAfford 指向的层次化架构）。
&lt;/p&gt;
&lt;h2&gt;StreamVLN&lt;/h2&gt;
&lt;p&gt;&amp;#x3C;ArxivRating&lt;/p&gt;
&lt;p&gt;id=&apos;2507.05240&apos;
tldr=&apos;StreamVLN 以 slow-fast 上下文建模处理连续视觉流：滑窗对话保证即时动作，3D 感知记忆压缩长期历史并复用 KV cache。&apos;
rank={0}&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/streamvln-1.9ddoo5om4g.webp&quot; alt=&quot;&quot;&gt;
StreamVLN 的动机是把视频式 VLM 用到真实视觉语言导航时，细粒度当前观测、长期路线记忆和推理延迟很难同时满足。每帧都重算长视频上下文会越来越慢，固定窗口又会忘记早期地标和指令约束。&lt;/p&gt;
&lt;p&gt;方法维护两个上下文。fast stream 使用交错视觉、语言、动作的滑动窗口和多轮对话，持续给出低延迟动作；slow stream 低频更新历史记忆，用 3D-aware token pruning 保留与空间布局和路线相关的视觉 token。推理时复用 KV cache，使上下文长度和成本随视频时长保持有界。&lt;/p&gt;
&lt;p&gt;实验在 VLN-CE 等连续环境基准上比较导航成功率、路径效率、延迟和长视频鲁棒性，并测试不同窗口和记忆更新频率。结果达到当时的强基线水平，同时支持实时对话式动作生成，说明慢速压缩记忆可以补足快速局部控制。&lt;/p&gt;
&lt;p&gt;结论是，导航视频的历史信息不应简单截断，而应按三维空间价值异步压缩。局限是 token pruning 依赖深度/几何估计，错误记忆可能持续影响后续决策；VLN-CE 与真实家庭环境仍有差距，语言歧义、遮挡和大规模动态物体下的长期记忆需要更多验证。建议代表 Figure：Figure 1（fast dialogue stream 与 slow memory stream 的时序关系）。
&lt;/p&gt;
&lt;h2&gt;V-JEPA 2&lt;/h2&gt;
&lt;p&gt;&amp;#x3C;ArxivRating&lt;/p&gt;
&lt;p&gt;id=&apos;2506.09985&apos;
tldr=&apos;V-JEPA 2 先从海量无动作视频学习潜在世界模型，再用少量机器人视频对齐动作，实现理解、预测和图像目标规划。&apos;
rank={0}&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2506.09985.26m7bhn5t1.webp&quot; alt=&quot;&quot;&gt;
V-JEPA 2 的动机是让模型主要靠观察学习物理世界，而不是为每个机器人任务重新收集带动作和奖励的数据。像素生成模型容易把容量用在纹理细节上，直接行为克隆又难以从互联网视频获得可迁移的动力学知识。&lt;/p&gt;
&lt;p&gt;作者先用超过百万小时的互联网视频和图像训练 action-free joint-embedding predictive architecture，在潜空间预测被遮挡或未来的视觉表示；再与语言模型对齐以支持视频问答。针对机器人规划，V-JEPA 2-AC 只用少量 DROID 无标注机器人视频做 latent action-conditioned world model，并在潜空间搜索到达图像目标的动作序列。&lt;/p&gt;
&lt;p&gt;评测覆盖 Something-Something v2 动作理解、EPIC-Kitchens-100 预期动作、PerceptionTest/TempCompass 视频问答，以及 Franka 机械臂的取放和图像目标规划。论文报告动作理解和问答达到很强的结果；V-JEPA 2-AC 在两个实验室的 Franka 上无需目标机器人数据、任务奖励或任务专门训练即可完成若干取放任务。&lt;/p&gt;
&lt;p&gt;主要结论是，web-scale 自监督视频加少量交互视频足以形成可用于规划的视觉世界模型。局限是潜在动作并不等同于可执行控制，接触动力学、力觉和失败恢复仍需真实数据；零样本实验任务较受限，面对新机器人、长时程目标和安全约束时不能直接保证成功。建议代表 Figure：Figure 1（V-JEPA 2 预训练、V-JEPA 2-AC 对齐和规划闭环）。
&lt;/p&gt;
&lt;h2&gt;MolmoAct&lt;/h2&gt;
&lt;p&gt;&amp;#x3C;ArxivRating&lt;/p&gt;
&lt;p&gt;id=&apos;2508.07917&apos;
tldr=&apos;MolmoAct 提出 Action Reasoning Model：先用深度感知生成可编辑空间轨迹，再由低层动作头执行，使 VLA 的计划可解释、可干预。&apos;
rank={0}&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2508.07917.2a5t9dm38t.webp&quot; alt=&quot;&quot;&gt;
MolmoAct 的动机是弥合“看到指令”到“生成可靠动作”的断层。许多机器人基础模型把观测和语言直接映射到控制，遇到长时程、空间约束或分布外物体时难以说明中间计划，也难以让用户修改动作意图。&lt;/p&gt;
&lt;p&gt;其 ARM 采用结构化三阶段管线：视觉和指令先编码为 depth-aware perception tokens；模型随后输出表示接触点、路径和目标姿态的中层 trajectory trace；最后由动作头把轨迹转换为精细的连续控制。轨迹是可视化且可编辑的中间表示，可以在执行前被检查或引导。作者同时发布包含一万余条高质量轨迹的 MolmoAct Dataset 和动作推理数据。&lt;/p&gt;
&lt;p&gt;实验覆盖 SimplerEnv Visual Matching、LIBERO、单臂与双臂真实任务，以及分布外物体和开放指令。MolmoAct-7B-D 在这些设置中都优于多种 VLA 基线，尤其在长时程和轨迹 steering 上；用新增数据做中期训练还能稳定提升基础模型的平均表现。&lt;/p&gt;
&lt;p&gt;结论是，把空间计划显式化能同时改善可解释性、干预性和泛化。局限是深度估计与轨迹标注错误会传递到动作，编辑轨迹的接口还未证明对普通用户足够直观；真实评测仍集中于桌面操作，快速接触、移动底盘和跨传感器迁移有待研究。建议代表 Figure：Figure 1（感知 token—轨迹 trace—动作执行三阶段）。
&lt;/p&gt;
&lt;h2&gt;MimicGen&lt;/h2&gt;
&lt;p&gt;&amp;#x3C;ArxivRating&lt;/p&gt;
&lt;p&gt;id=&apos;2310.17596&apos;
publication=&apos;CoRL2023&apos;
tldr=&apos;MimicGen 把少量人类示范中的动作片段按物体和场景变换自动重定向，规模化生成可用于模仿学习的机器人数据。&apos;
rank={0}&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2310.17596.4cllx9ac7a.webp&quot; alt=&quot;&quot;&gt;
MimicGen 针对真实示范昂贵且覆盖范围窄的问题：长时程装配、咖啡准备等任务需要大量不同初始状态，但逐条遥操作既耗时又难以复现。论文希望只用少量高质量示范，自动扩展物体实例、摆放和机器人设置。&lt;/p&gt;
&lt;p&gt;系统先把示范分解为具有语义边界的动作片段，识别片段中的关键物体和相对位姿，再将 waypoint 和控制序列根据新场景中的物体变换重定向。重定向后的轨迹在仿真中进行碰撞与成功检查，失败样本被过滤或重新采样，最后输出统一格式的数据供行为克隆等算法训练。&lt;/p&gt;
&lt;p&gt;从约两百条人类示范出发，MimicGen 在 18 类任务、不同场景配置、物体实例和机械臂上生成五万条以上演示。作者在长时程和高精度任务中比较生成数据、额外人类示范和混合数据训练的策略，并展示多种初始状态下的仿真与真实执行。&lt;/p&gt;
&lt;p&gt;结果表明，经过物体中心重定向的数据能显著扩大覆盖，效果可与继续采集人类示范相比。局限是片段边界、物体追踪和重定向假设在遮挡、柔性物体或接触动力学变化时容易失效；数据主要在仿真中扩增，真实域的视觉和摩擦差异仍需额外示范或随机化。建议代表 Figure：Figure 1（示范分段、场景重定向和数据过滤流水线）。
&lt;/p&gt;
&lt;h2&gt;SpatialVLA&lt;/h2&gt;
&lt;p&gt;&amp;#x3C;ArxivRating&lt;/p&gt;
&lt;p&gt;id=&apos;2501.15830&apos;
tldr=&apos;SpatialVLA 用 Ego3D 位置编码和 Adaptive Action Grids 显式表示三维空间，使预训练 VLA 更易跨任务和跨机器人迁移。&apos;
rank={0}&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2501.15830.73uo5c0wny.webp&quot; alt=&quot;&quot;&gt;
SpatialVLA 的研究动机是，通用 VLA 往往能识别物体，却难以稳定判断深度、相对位置和运动幅度；直接离散化关节动作还把不同机器人绑定到不同的坐标和动作词表。&lt;/p&gt;
&lt;p&gt;方法一是在视觉 token 中加入 Ego3D Position Encoding，把像素与相机坐标中的深度/位置关系注入模型；方法二是 Adaptive Action Grids，将末端位姿变化按空间方向和尺度自适应离散化，使动作 token 表达可迁移的空间运动，而不是固定关节索引。模型先在约一百一十万条真实机器人 episode 上预训练，再在新设置中重新离散化动作网格进行轻量适配。&lt;/p&gt;
&lt;p&gt;实验包含多机器人仿真、真实桌面操作、零样本任务和分布外场景，评测物体、空间、目标与长时程泛化。作者报告空间表示带来更稳定的轨迹推断，Adaptive Action Grids 在新机器人/新相机上比从头训练或固定动作网格更容易适配。&lt;/p&gt;
&lt;p&gt;主要结论是，空间归纳偏置应同时进入观测编码和动作表示。局限在于 Ego3D 依赖深度与标定，深度缺失或透明物体会削弱优势；网格离散化仍有量化误差，灵巧手、移动机器人和连续力控制尚未被充分验证。建议代表 Figure：Figure 1（Ego3D Position Encoding 与 Adaptive Action Grids 的示意）。
&lt;/p&gt;
&lt;h2&gt;TraceVLA&lt;/h2&gt;
&lt;p&gt;&amp;#x3C;ArxivRating&lt;/p&gt;
&lt;p&gt;id=&apos;2412.10345&apos;
publication=&apos;ICLR2024&apos;
tldr=&apos;TraceVLA 将历史状态—动作轨迹画成视觉 trace 作为提示，增强 OpenVLA 的空间与时间感知，而不改动动作接口。&apos;
rank={0}&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2412.10345.67y6pvqh9r.webp&quot; alt=&quot;&quot;&gt;
TraceVLA 的动机是让 VLA 不只看当前帧，而能理解“物体从哪里来、末端刚刚做了什么”。直接把历史状态拼成长序列会增加上下文和训练负担，也不容易让视觉骨干学到可用的时空关系。&lt;/p&gt;
&lt;p&gt;作者把状态—动作轨迹编码为图像上的 visual trace，例如在观测或深度图上绘制末端和关键点的历史路径，再将这类提示与语言、当前图像一起输入 VLA。TraceVLA 通过收集并标注约十五万条操作轨迹微调 OpenVLA；同时训练一个基于 Phi-3-Vision 的较小模型，检验方法是否依赖大参数量。&lt;/p&gt;
&lt;p&gt;实验在 SimplerEnv 的多种配置和 WidowX 真实机器人任务上评测，并比较无 trace 的 OpenVLA 及不同轨迹长度/颜色编码。结果显示，visual trace 能提升空间—时间动作预测和跨 embodiment 泛化，真实任务的成功率提升尤其明显；小模型也能获得接近大型基线的效果并降低推理成本。&lt;/p&gt;
&lt;p&gt;结论是，简单的视觉化历史轨迹可以作为通用 VLA 的时空记忆接口。局限是 trace 依赖关键点跟踪、深度投影和坐标标定，遮挡或快速运动会把噪声写入提示；二维轨迹不能完整表达接触力和三维遮挡，超长时程任务与更多传感器仍需验证。建议代表 Figure：Figure 1（visual trace 如何从历史观测/动作生成并注入 VLA）。
&lt;/p&gt;
&lt;h2&gt;Hume&lt;/h2&gt;
&lt;p&gt;&amp;#x3C;ArxivRating&lt;/p&gt;
&lt;p&gt;id=&apos;2505.21432&apos;
tldr=&apos;Hume 用价值引导的慢速 System 2 反复筛选动作候选，再由异步 System 1 级联去噪实现实时灵巧控制。&apos;
rank={0}&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2505.21432.2yz2t83r1v.webp&quot; alt=&quot;&quot;&gt;
Hume 的动机是把“先想再做”的 System-2 思维引入 VLA。复杂操作中，单次动作预测可能碰撞或走错顺序，但让大模型每个控制周期都完整推理又会牺牲频率，因此需要低频决策与高频执行的协作。&lt;/p&gt;
&lt;p&gt;System 2 在 VLA 主干上增加 value-query head，为多次采样的动作候选估计 state-action value，并选择价值最高者；System 1 是轻量反应式 visuomotor policy，接收候选后用 cascaded action denoising 生成连续动作。部署时两者异步运行：System 2 偶尔重新思考，System 1 在其间保持流畅控制。&lt;/p&gt;
&lt;p&gt;作者在多个仿真操作基准和真实灵巧手/机械臂任务上比较单系统 VLA、不同候选数和无价值头的消融。结果显示，价值筛选对多峰动作和需要顺序判断的任务有效，Hume 在仿真与真实部署中都优于当时的 VLA 基线。&lt;/p&gt;
&lt;p&gt;主要结论是，显式估计动作价值能把慢思考转化为可执行的候选选择。局限是 value head 的判断依赖训练分布，错误高价值候选仍会被快速执行；多候选采样增加 System 2 延迟和算力，真实灵巧接触、长时程纠错与安全约束尚未充分检验。建议代表 Figure：Figure 1（价值引导候选选择与 System 1 级联去噪的双系统结构）。
&lt;/p&gt;
&lt;h2&gt;RICL&lt;/h2&gt;
&lt;p&gt;&amp;#x3C;ArxivRating&lt;/p&gt;
&lt;p&gt;id=&apos;2508.02062&apos;
tldr=&apos;RICL 通过少量示范微调 π0-FAST 的检索式上下文接口，让预训练 VLA 能在不更新参数的情况下现场学习新操作。&apos;
rank={0}&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2508.02062.6po8egtdsy.webp&quot; alt=&quot;&quot;&gt;
RICL 关注预训练 VLA 缺少 in-context learning 的问题。语言模型可以从示例中临时学会新格式或任务，但以模仿学习训练的 VLA 通常只会复现训练分布；终端用户若要适配新物体，不能每次都重新微调大模型。&lt;/p&gt;
&lt;p&gt;方法是在预训练策略上追加一套面向 ICL 的微调配方：给定新任务的少量演示，系统按视觉、语言和动作相似度检索最相关的片段，放入当前 VLA 上下文，再预测动作。作者将 RICL 应用于 π0-FAST，并支持只提供示范而不更新参数；若允许目标任务微调，还可以在 ICL 基础上继续提升。&lt;/p&gt;
&lt;p&gt;实验覆盖多个未见操作任务，比较零样本、10—20 条示范的 RICL、普通微调和不同检索策略。结果表明，少量演示即可带来明显的现场适应，且在不改权重时仍能利用示范中的动作顺序、物体外观和控制风格。&lt;/p&gt;
&lt;p&gt;主要结论是，ICL 可以作为 VLA 的用户接口，而不只是语言模型能力。局限是检索质量和上下文长度决定了收益，示范若遗漏失败恢复或安全边界，模型也不会自动补齐；目前验证集中于 π0-FAST 和桌面操作，跨机器人、触觉任务及恶意/冲突示范下的稳健性仍待评估。建议代表 Figure：Figure 1（示范检索、上下文拼接和动作预测流程）。
&lt;/p&gt;
&lt;h2&gt;OmniVTLA&lt;/h2&gt;
&lt;p&gt;&amp;#x3C;ArxivRating&lt;/p&gt;
&lt;p&gt;id=&apos;2508.08706&apos;
tldr=&apos;OmniVTLA 以语义对齐的双路径触觉编码器融合视觉与力觉，并发布 ObjTac 三模态数据以改善接触丰富的抓取。&apos;
rank={0}&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2508.08706.9kgwkfdocx.webp&quot; alt=&quot;&quot;&gt;
OmniVTLA 的动机是补上 VLA 对触觉的忽视。视觉能提供远距离语义，却难以判断是否接触、是否打滑或夹持力是否合适；不同视觉/力觉触觉传感器的数据格式又差异很大，使触觉难以直接加入通用模型。&lt;/p&gt;
&lt;p&gt;模型采用 dual-path tactile encoder：一条路径用预训练 ViT 处理视觉式触觉，另一条用 semantically aligned tactile ViT（SA-ViT）处理力觉/触觉图，并将两者与视觉、语言 token 融合。为学习统一表示，作者构建 ObjTac，包含 56 个物体、10 个类别的文本—视觉—触觉三模态样本，规模约 13.5 万条。&lt;/p&gt;
&lt;p&gt;实验在真实夹爪和灵巧手的抓取/放置任务中比较不同触觉传感器、无触觉 VLA 和单路径编码器，报告夹爪成功率约 96.9%、灵巧手达到满成功率，并观察到更短完成时间和更平滑轨迹。结果说明触觉不仅提高接触判断，也能作为语义条件参与动作生成。&lt;/p&gt;
&lt;p&gt;局限是 ObjTac 的物体和接触类型有限，SA-ViT 的跨传感器对齐仍依赖校准；力觉噪声、传感器磨损和柔性物体会改变分布。评测主要是抓取放置，插接、擦拭、工具使用等更复杂接触任务以及跨 embodiment 零样本迁移还需验证。建议代表 Figure：Figure 1（双路径触觉编码器与 VLA 融合结构）。
&lt;/p&gt;
&lt;h2&gt;Spatial Traces&lt;/h2&gt;
&lt;p&gt;&amp;#x3C;ArxivRating&lt;/p&gt;
&lt;p&gt;id=&apos;2508.09032&apos;
tldr=&apos;Spatial Traces 将关键点的视觉轨迹投影到深度图，统一给 VLA 提供空间位置和时间运动提示，并以少量数据增强泛化。&apos;
rank={0}&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/spatial-traces-1.58i3c1rgis.webp&quot; alt=&quot;&quot;&gt;
Spatial Traces 的动机是现有 VLA 往往分别处理空间和时间：SpatialVLA 强调三维位置，TraceVLA 强调历史轨迹，但两者各自缺少另一维信息。机器人需要同时知道末端“在哪里”和“沿什么路径到达”。&lt;/p&gt;
&lt;p&gt;方法从连续观测中提取物体或末端关键点，在深度图上绘制带时间顺序的 visual trace，再与语言和当前视觉输入一起送入 VLA。轨迹把历史运动压缩成视觉提示，不要求改写原有动作接口；作者还研究了最少训练数据、轨迹长度和关键点选择对效果的影响。&lt;/p&gt;
&lt;p&gt;实验主要在 SimplerEnv 上，与 SpatialVLA、TraceVLA 等方法比较不同任务配置。论文报告平均成功任务数相对 SpatialVLA 提升约 4%，相对 TraceVLA 提升约 19%，并指出即使训练数据较少也能获得收益。&lt;/p&gt;
&lt;p&gt;结论是，把深度和轨迹叠加在同一视觉载体上，能以较低标注成本补足时空关联。局限是关键点跟踪、深度质量和绘制规范成为新的误差源；二维投影仍不能表达接触力、遮挡后的三维路径，真实机器人和长时程导航的结果还需要扩展。建议代表 Figure：Figure 1（关键点轨迹投影到深度图并输入 VLA 的流程）。
&lt;/p&gt;
&lt;h2&gt;Embodied-R1&lt;/h2&gt;
&lt;p&gt;&amp;#x3C;ArxivRating&lt;/p&gt;
&lt;p&gt;id=&apos;2508.13998&apos;
tldr=&apos;Embodied-R1 把 embodiment-agnostic pointing 作为视觉到动作的中间层，用 20 万级 Embodied-Points 数据和两阶段强化微调训练通用空间推理。&apos;
rank={0}&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2508.13998.3uvk8oe7k4.webp&quot; alt=&quot;&quot;&gt;
Embodied-R1 针对“seeing-to-doing gap”：视觉语言模型能描述物体和关系，却很难把理解转化为不同机器人都能使用的空间指令；直接学习关节动作又受数据稀缺和 embodiment 异构限制。作者选择 pointing 作为与机器人形态无关的中间表示，先指向哪里，再由控制策略执行。&lt;/p&gt;
&lt;p&gt;模型是约 3B 参数的 VLM，围绕四类 embodied pointing 能力训练，包括目标指向、空间关系指向和与动作相关的定位。作者从通用视觉推理和机器人数据构建 Embodied-Points-200K，先监督微调，再用带多任务、尺度和几何约束的 reward 做两阶段 reinforced fine-tuning（RFT），使回答既正确又符合空间度量。&lt;/p&gt;
&lt;p&gt;实验覆盖 11 个 embodied spatial/pointing benchmark、SIMPLEREnv 和真实 XArm 任务，测试零样本物体、位置和视觉干扰泛化。论文报告在 SIMPLEREnv 可取得约 56.2% 成功率，在八个 XArm 任务上达到约 87.5%，并显著超过强基线。&lt;/p&gt;
&lt;p&gt;主要结论是，指向可作为从开放世界语义到具体动作的低带宽桥梁。局限是 pointing 本身仍是二维/局部表示，真实控制还要依赖外部策略与标定；RFT 奖励设计和自动构造数据可能引入偏差，复杂接触、连续轨迹和移动机器人尚未直接解决。建议代表 Figure：Figure 1（四类 pointing 能力、数据构建与 RFT curriculum）。
&lt;/p&gt;
&lt;h2&gt;RynnEC&lt;/h2&gt;
&lt;p&gt;&amp;#x3C;ArxivRating&lt;/p&gt;
&lt;p&gt;id=&apos;2508.14160&apos;
tldr=&apos;RynnEC 以区域级视频理解为核心，引入 region encoder 与 mask decoder，把 MLLM 的物体属性、分割和空间推理连接到具身场景。&apos;
rank={0}&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2508.14160.232ldutylj.webp&quot; alt=&quot;&quot;&gt;
RynnEC 的动机是通用 MLLM 虽能回答整图问题，却常在机器人视角下无法精确处理“这个区域里的物体”“沿着该物体边界”等细粒度交互。具身认知还缺少大规模带区域和时间标注的三维数据。&lt;/p&gt;
&lt;p&gt;方法建立在视觉语言基础模型上，加入 region encoder 和 mask decoder，使模型可以对视频中的框、点、区域和掩码进行交互式理解。作者用以自中心视频为主的数据生成流程补足 3D 标注稀缺，并发布 RynnEC-Bench，覆盖物体属性理解、区域分割和空间关系推理。&lt;/p&gt;
&lt;p&gt;实验在区域级视频问答、分割和空间推理基准上与通用及具身 MLLM 比较。结果显示，紧凑的 RynnEC 在这些任务上达到很强的表现，尤其是区域选择和掩码质量；区域中心的接口也更适合作为后续规划/控制模块的感知输入。&lt;/p&gt;
&lt;p&gt;主要结论是，将视频上下文和可操作区域作为统一 token 空间，有助于把 MLLM 变成具身认知核心。局限是论文主要验证感知与推理，并不直接输出机器人动作；自动生成的 egocentric 数据存在视角和标注偏差，复杂接触、动态物体和跨机器人闭环仍需单独评估。建议代表 Figure：Figure 1（region encoder、mask decoder 与区域级视频交互）。
&lt;/p&gt;
&lt;h2&gt;RoboRefer&lt;/h2&gt;
&lt;p&gt;&amp;#x3C;ArxivRating&lt;/p&gt;
&lt;p&gt;id=&apos;2506.04308&apos;
tldr=&apos;RoboRefer 用独立深度编码器和带几何过程奖励的强化微调，提升 VLM 在三维场景中的空间指代与多步推理。&apos;
rank={0}&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2506.04308.4ubnlug6wu.webp&quot; alt=&quot;&quot;&gt;
RoboRefer 的动机是让机器人准确理解“指令所说的位置”。通用 VLM 的二维语义能力不足以处理前后、遮挡、相对距离和多步空间关系，错误的指代会让后续控制策略在正确物体上执行错误动作。&lt;/p&gt;
&lt;p&gt;模型在视觉语言骨干旁加入 disentangled depth encoder，并用监督微调学习深度和空间关系；随后进行 reinforcement fine-tuning，使用对距离、方向和指代区域敏感的过程奖励，鼓励逐步、可度量的空间推理。为此作者构建 RefSpatial，包含约两千万 QA、31 类空间关系和最多五步的推理链，并发布 RefSpatial-Bench。&lt;/p&gt;
&lt;p&gt;实验在空间问答、指代定位和复杂场景基准上评估 SFT 与 RFT 版本，还把输出接到 UR5、G1 等机器人的控制策略，在杂乱真实场景完成长时程任务。论文报告 SFT 版本平均成功率约 89.6%，RFT 在 RefSpatial-Bench 上明显领先基线，并在部分设置超过 Gemini-2.5-Pro。&lt;/p&gt;
&lt;p&gt;结论是，深度分支与几何过程奖励能把“看懂关系”从语言猜测变成可检查的空间推理。局限是深度估计和相机标定仍是瓶颈，RFT 奖励可能偏向数据集中的几何模板；模型输出到连续控制之间仍有接口误差，动态遮挡、柔性物体和未知传感器需更多实测。建议代表 Figure：Figure 1（深度编码、空间推理链和机器人控制连接）。
&lt;/p&gt;
&lt;h2&gt;Discrete Diffusion VLA&lt;/h2&gt;
&lt;p&gt;&amp;#x3C;ArxivRating&lt;/p&gt;
&lt;p&gt;id=&apos;2508.20072&apos;
tldr=&apos;Discrete Diffusion VLA 在统一 Transformer 内对离散动作 chunk 做扩散式渐进修正，以自适应顺序和二次重掩码兼顾并行效率与动作质量。&apos;
rank={0}&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2508.20072.pg29qjswr.webp&quot; alt=&quot;&quot;&gt;
Discrete Diffusion VLA 的动机是弥合两类动作解码的缺点：自回归 token 按固定左到右顺序生成、容易累积错误；外接连续 diffusion head 又切断视觉语言骨干中的统一信息流。作者希望保留预训练 VLM 先验，同时允许动作 token 并行且可纠错。&lt;/p&gt;
&lt;p&gt;方法先把 action chunk 离散化，在同一 Transformer 中执行离散扩散去噪。每轮根据置信度自适应决定先解码哪些动作元素，对不确定元素做 secondary re-masking 并再次预测；因此高置信维度可以提前确定，难维度获得渐进修正，而不是被固定顺序锁死。&lt;/p&gt;
&lt;p&gt;实验覆盖 LIBERO、SimplerEnv-Fractal、SimplerEnv-Bridge 的成功率/视觉匹配，以及 AgileX Cobot Magic 的真实机器人测试；还比较并行自回归、连续扩散和不同重掩码策略。结果显示，该方法在多项基准上保持强性能，并在语言、视觉分布外测试中比简单并行解码或连续扩散保留更多预训练能力。&lt;/p&gt;
&lt;p&gt;主要结论是，离散扩散把“动作 token 化”和“逐步修正”放进了一个可扩展骨干。局限是离散网格带来量化误差，迭代去噪仍会增加延迟；解码顺序依赖置信度校准，面对精细力控、不同动作空间和长时程规划的效果尚不明确。建议代表 Figure：Figure 1（离散动作扩散、置信度排序和二次重掩码过程）。
&lt;/p&gt;
&lt;h2&gt;G0&lt;/h2&gt;
&lt;p&gt;&amp;#x3C;ArxivRating&lt;/p&gt;
&lt;p&gt;id=&apos;2509.00576&apos;
tldr=&apos;G0 将 Galaxea 真实开放世界数据与 VLM 规划、VLA 执行的双系统结合，以跨 embodiment—单 embodiment—任务后训练课程学习长时程操作。&apos;
rank={0}&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2509.00576.pg29qjsyu.webp&quot; alt=&quot;&quot;&gt;
G0 关注 VLA 从受控桌面走向真实生活/工作空间时的数据和规划瓶颈。公开轨迹常来自不同机器人和简单指令，真实环境中的物体、子任务和长时程错误恢复覆盖不足；一个低层策略也难以同时承担高层任务分解。&lt;/p&gt;
&lt;p&gt;作者发布 Galaxea Open-World Dataset，在真实人居和工作场景中用统一机器人 embodiment 采集多样行为，并提供精确到子任务的语言标注。G0 采用双系统：VLM 根据多模态观察生成任务计划和子目标，VLA 负责细粒度动作执行。训练按跨 embodiment 预训练、Galaxea 单 embodiment 预训练、任务级 post-training 三阶段进行。&lt;/p&gt;
&lt;p&gt;评测覆盖 tabletop manipulation、few-shot 新任务和长时程移动操作，比较不同数据阶段、规划器和低层策略。论文的消融明确显示，真实开放世界数据与单 embodiment 预训练共同决定了最终性能，而不是单纯增加模型参数。&lt;/p&gt;
&lt;p&gt;主要结论是，开放环境数据质量和针对部署硬件的后期对齐同样重要。局限是数据集中于单一机器人体系，跨硬件迁移仍依赖前期数据；VLM 计划错误会向下游级联，真实场景的安全、恢复和持续学习尚需更大规模测试。建议代表 Figure：Figure 1（Galaxea 数据、VLM 规划和 VLA 执行的双系统与三阶段训练）。
&lt;/p&gt;
&lt;h2&gt;InternScenes&lt;/h2&gt;
&lt;p&gt;&amp;#x3C;ArxivRating&lt;/p&gt;
&lt;p&gt;id=&apos;2509.10813&apos;
tldr=&apos;InternScenes 融合真实扫描、程序生成和设计场景，构建布局逼真、可交互且经过物理消碰撞的大规模室内仿真数据集。&apos;
rank={0}&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2509.10813.8adzdxqn1b.webp&quot; alt=&quot;&quot;&gt;
InternScenes 的动机是现有具身仿真场景常在规模、类别或真实性之间取舍：小物体被清理掉、家具布局过于规整，或不同资产互相穿插导致导航和交互训练失真。作者希望同时扩大场景多样性和物理可模拟性。&lt;/p&gt;
&lt;p&gt;数据集把 real-world scans、程序化生成场景和设计师创建场景统一处理，建立真实到仿真的副本，补充可交互物体，并通过物理模拟解决碰撞。最终覆盖约四万个室内场景、约一百九十六万个 3D 物体、15 类常见房间和 288 个物体类别；场景保留大量小物体，布局比清洗后的数据更复杂。&lt;/p&gt;
&lt;p&gt;作者用两个任务检验数据价值：室内布局生成和 point-goal navigation。实验比较不同场景来源和训练规模，显示 InternScenes 的真实布局会带来更难但更有意义的泛化测试，同时扩大数据后模型能够学习这些复杂布局，而不只是记住规则化房间。&lt;/p&gt;
&lt;p&gt;主要结论是，数据处理、可交互资产和物理消碰撞本身就是具身学习基础设施。局限是仿真材质、光照和动力学仍不等同真实世界，资产许可与生成流程可能限制复现；当前基准偏感知、布局和导航，接触丰富操作及真实机器人 sim-to-real 还未被充分验证。建议代表 Figure：Figure 1（多源场景融合、真实到仿真处理与消碰撞流程）。
&lt;/p&gt;
&lt;h2&gt;GraspNet&lt;/h2&gt;
&lt;p&gt;&amp;#x3C;ArxivRating&lt;/p&gt;
&lt;p&gt;id=&apos;https://openaccess.thecvf.com/content_CVPR_2020/papers/Fang_GraspNet-1Billion_A_Large-Scale_Benchmark_for_General_Object_Grasping_CVPR_2020_paper.pdf&apos;
publication=&apos;CVPR2020&apos;
tldr=&apos;GraspNet-1Billion 建立面向通用物体抓取的 RGB-D/6D 基准，用密集抓取姿态和杂乱场景评测检测、碰撞与泛化。&apos;
rank={0}&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/graspnet-01.szo6sf2oa.webp&quot; alt=&quot;&quot;&gt;
GraspNet 的动机是抓取研究长期缺少统一、足够大且包含杂乱场景的公开基准。小规模数据集通常只覆盖少量物体或单一摆放，算法在“看过的物体”上有效，却无法公平比较未见物体、遮挡和碰撞安全性。&lt;/p&gt;
&lt;p&gt;论文构建 GraspNet-1Billion：采集多视角 RGB-D 场景，为物体生成密集的 6-DoF 平行夹爪抓取姿态，并通过物理/碰撞检查提供可执行性标签。基准同时定义抓取检测、抓取姿态评估和碰撞检测任务，提供 seen/unseen 物体与不同场景条件的标准划分，并给出点云、RGB-D 和多种基线方法。&lt;/p&gt;
&lt;p&gt;数据与实验覆盖单物体、多个物体和密集杂乱堆叠，使用真实机器人验证仿真评分与实际抓取的一致性。作者比较基于深度、点云和多视角的检测器，展示在未见物体和遮挡下性能会明显下降，也说明密集标注能支持更细的误差分析。&lt;/p&gt;
&lt;p&gt;主要结论是，统一的 6D 抓取数据和评测协议推动了从单物体演示到一般物体抓取的研究。局限是标签主要针对刚性物体和特定平行夹爪，解析/仿真稳定性不能完全代表真实摩擦与柔性接触；RGB-D 传感器噪声、透明物体和手眼标定仍会造成 sim-to-real 差异。建议代表 Figure：Figure 1（数据采集、密集抓取标注与基准任务总览）。&lt;/p&gt;
&lt;h2&gt;GraspNet-1Billion&lt;/h2&gt;
&lt;p&gt;&amp;#x3C;ArxivRating&lt;/p&gt;
&lt;p&gt;id=&apos;https://journals.sagepub.com/doi/10.1177/02783649231193710&apos;
publication=&apos;IJRR2023&apos;
tldr=&apos;GraspNet-1Billion 期刊版系统化整理大规模 6D 抓取数据、碰撞检测和标准评测，强调跨物体与杂乱场景的可复现比较。&apos;
rank={0}&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/graspnet-1billion.9ddoo5on0v.webp&quot; alt=&quot;&quot;&gt;
这篇期刊版的动机仍是建立通用抓取的共同实验语言：不同工作使用不同相机、物体集合、抓取质量指标和成功定义，导致结果难以横向比较。完整版本进一步说明数据、标注和评测协议如何覆盖真实部署中的遮挡与碰撞。&lt;/p&gt;
&lt;p&gt;核心是以场景点云和物体姿态为条件的密集抓取表示，配套抓取质量评估、碰撞检测和标准化数据划分。算法可以先在点云中提出 6D 候选，再利用碰撞与稳定性标签排序；基准允许比较单视角/多视角输入、已见/未见物体及不同杂乱程度，而不把问题简化为二维检测。&lt;/p&gt;
&lt;p&gt;实验围绕公开数据和真实抓取平台展开，报告多种点云抓取基线在不同 split、遮挡和场景密度下的差异，并分析检测质量、碰撞率与实际成功之间的关系。结果支持 GraspNet 作为预训练和评测资源，也表明跨类别泛化仍是主要难点。&lt;/p&gt;
&lt;p&gt;结论是，数据规模只有在标签和评测协议一致时才真正有助于抓取研究。局限包括数据仍以刚性物体、平行夹爪和 RGB-D 观测为主，复杂灵巧手、软体/透明物体和力反馈未被覆盖；基准分数不能替代每个机器人工作空间的安全验证。建议代表 Figure：Figure 1（GraspNet 数据组织、抓取质量/碰撞评测和实验设置）。&lt;/p&gt;
&lt;h2&gt;PointNetGPD&lt;/h2&gt;
&lt;p&gt;&amp;#x3C;ArxivRating&lt;/p&gt;
&lt;p&gt;id=&apos;1809.06267&apos;
publication=&apos;ICRA2019&apos;
tldr=&apos;PointNetGPD 直接用抓取器局部原始点云学习抓取评价函数，避免手工深度特征，并用 YCB 数据验证新物体泛化。&apos;
rank={0}&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/pointnetgpd-1.3gp4h58444.webp&quot; alt=&quot;&quot;&gt;
PointNetGPD 的动机是传统抓取检测通常先把局部深度图转换为手工特征，再由 CNN 判断候选好坏；稀疏、噪声或视角变化会让这些特征失真。作者希望让网络直接从抓取器内部的 3D 点集学习接触几何。&lt;/p&gt;
&lt;p&gt;方法采用 PointNet 风格的点集编码器，对每个候选抓取器位姿截取其夹爪空间内的物体点云，输出该候选的成功概率。它保留点集的置换不变性，能从稀疏点云中提取接触区域的整体几何；抓取候选生成与评价分开，评价网络可接到不同的采样器后面。&lt;/p&gt;
&lt;p&gt;作者利用 YCB 物体集构建约 35 万条真实点云—抓取样本，先在仿真中量化候选评价，再在机器人抓取和杂乱清除任务中测试。实验显示，直接点云输入比手工深度表示更能泛化到未见物体，并在成功率和推理效率上优于当时基线。&lt;/p&gt;
&lt;p&gt;主要结论是，局部原始点云已经包含足够的接触几何，不必依赖固定投影特征。局限是模型只评价给定候选，候选覆盖不足时无法补救；点云密度、遮挡和手眼标定仍敏感，主要面向平行夹爪和刚性物体，闭环力控与灵巧手迁移尚未解决。建议代表 Figure：Figure 1（抓取候选局部点云送入 PointNetGPD 的网络流程）。
&lt;/p&gt;
&lt;h2&gt;High Precision Grasp Pose Detection&lt;/h2&gt;
&lt;p&gt;&amp;#x3C;ArxivRating&lt;/p&gt;
&lt;p&gt;id=&apos;1603.01564&apos;
publication=&apos;IROS2016&apos;
tldr=&apos;High Precision Grasp Pose Detection 先生成大量 6-DoF 候选，再用深度 CNN 结合候选表示、类别/实例先验和仿真预训练筛选密集杂乱中的可靠抓取。&apos;
rank={0}&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/high-precision-grasp-1.491zyvopwi.webp&quot; alt=&quot;&quot;&gt;
这篇工作的动机是密集杂乱抓取中的高精度筛选。候选生成器可以找到许多几何上可行的夹爪姿态，但遮挡、深度噪声和物体间碰撞会使大多数候选不可执行；仅靠简单局部特征难以区分这些细微差别。&lt;/p&gt;
&lt;p&gt;算法先从点云生成大量 6-DoF grasp candidates，再把每个候选转换为适合 CNN 的深度表示并分类为好/坏抓取。作者提出更有信息量的候选表示，并系统研究两类先验：待抓物体的实例/类别知识，以及用理想 CAD 深度图进行预训练。最终选择得分高且无碰撞的姿态交给 Baxter 机器人执行。&lt;/p&gt;
&lt;p&gt;实验使用在线深度数据和合成 CAD 深度进行训练，在不同杂乱程度、是否提供物体先验的设置下评估检测器，并在 Baxter 密集堆叠抓取中验证。真实实验报告平均抓取成功率约 93%，相对早期方法有明显提升；消融显示候选表示、预训练和先验各自都有贡献。&lt;/p&gt;
&lt;p&gt;主要结论是，候选质量不仅取决于 CNN 容量，表示设计与可迁移的深度预训练同样关键。局限是系统依赖前端候选生成和类别/实例先验，先验错误会导致偏置；深度遮挡、透明或柔性物体以及不同夹爪/相机仍会降低效果，端到端闭环动作修正不在论文范围内。建议代表 Figure：Figure 1（候选生成、深度表示分类与 Baxter 执行管线）。
&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/67997247_p0_master1200.6po3p2g2e0.webp"/><enclosure url="https://pic.hana0721.top/67997247_p0_master1200.6po3p2g2e0.webp"/></item><item><title>Paper Reading: VLM 2</title><link>https://agusexp25.top/blog/paper-reading-vlm2</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-reading-vlm2</guid><description>从零开始的VLM研究生活。</description><pubDate>Fri, 26 Dec 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating, RatingCriteria } from &apos;@/components/advanced&apos;&lt;/p&gt;
&lt;h2&gt;前言&lt;/h2&gt;
&lt;p&gt;浅浅学习一下VLM相关的知识。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/57793944_p0_master1200.4xv4u7fok2.webp"/><enclosure url="https://pic.hana0721.top/57793944_p0_master1200.4xv4u7fok2.webp"/></item><item><title>Paper Reading: VLM 1</title><link>https://agusexp25.top/blog/paper-reading-vlm1</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-reading-vlm1</guid><description>从零开始的VLM研究生活。</description><pubDate>Fri, 26 Dec 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating, RatingCriteria } from &apos;@/components/advanced&apos;&lt;/p&gt;
&lt;h2&gt;前言&lt;/h2&gt;
&lt;p&gt;浅浅学习一下VLM相关的知识。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/56422576_p0_master1200.7i0z6ufn65.webp"/><enclosure url="https://pic.hana0721.top/56422576_p0_master1200.7i0z6ufn65.webp"/></item><item><title>Paper Reading: Unify MLLM 1</title><link>https://agusexp25.top/blog/paper-reading-umllm2</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-reading-umllm2</guid><description>读一些统一多模态大模型相关的论文</description><pubDate>Fri, 26 Dec 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating, RatingCriteria } from &apos;@/components/advanced&apos;&lt;/p&gt;
&lt;h2&gt;前言&lt;/h2&gt;
&lt;p&gt;速览一些统一多模态大模型的论文。&lt;/p&gt;
&lt;h2&gt;LMFusion&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/lmfusion-overview.8dxlavsbqt.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;LMFusion 针对统一理解与生成模型常见的训练矛盾：如果把一个已经学完海量文本的 Llama-3 直接用多模态数据微调，语言能力会发生灾难性遗忘；如果只把学习率调小，又会压制视觉能力。论文的出发点是尽量复用 Llama-3 的语言知识，同时把视觉训练限制在独立的参数子空间中。&lt;/p&gt;
&lt;p&gt;模型从 Llama-3 8B 初始化两套并行 Transformer 参数。文本和图像分别拥有独立的 QKV/O 投影、FFN 与归一化参数，但在注意力中拼接两种模态的 Q/K/V，因此跨模态信息仍能交换；文本 token 使用因果掩码，图像 token 使用双向掩码。图像由冻结 VAE 编为 &lt;code&gt;32×32×8&lt;/code&gt; latent，再经 U-Net 下采样成 256 个 token，输出端用 U-Net 上采样器完成 Transfusion 式 DDPM 噪声预测；文本头优化交叉熵，图像路径优化扩散损失。主设置把文本分支学习率设为 0，仅更新图像分支和约 0.27B 参数的 U-Net。&lt;/p&gt;
&lt;p&gt;训练使用 3.8 亿 Shutterstock 图文对，统一到 &lt;code&gt;256×256&lt;/code&gt;，并以 80%“文本在前、图像在后”和 20%反向顺序混合。与 Transfusion 相比，LMFusion 的半 FLOPs 配置不再额外消耗纯文本语料；虽然参数总量约为其两倍，但每个 token 只激活对应模态的一半参数。这个设计把“保持语言能力”和“让视觉模块学习”从同一组权重的竞争，改成了结构上的隔离与有限交互。&lt;/p&gt;
&lt;p&gt;在半 FLOPs 对比中，LMFusion 的 MS-COCO caption CIDEr 为 38.3（Transfusion 为 32.0），无 CFG 的 FID 为 13.9（14.4）；在扩展的 LLaVAFusion 实验中，MMMU 为 41.7、MME-P 为 1603.7。消融显示同时分离注意力投影和 FFN 的 deep separation 明显优于只分离 FFN 或完全共享参数。边界也很清楚：主实验只生成 &lt;code&gt;256×256&lt;/code&gt; 图像，理解评估主要是 COCO caption 而非广泛 VQA，模型的两倍参数会增加存储成本；有 CFG 时生成优势基本与 Transfusion 持平，图像编辑也只有小规模定性验证。
&lt;/p&gt;
&lt;h2&gt;UniToken&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/unitoken-framework.2rvux0r110.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;UniToken 试图解决两种统一视觉编码各自的短板。纯离散 token 经过量化后丢失语义，理解任务吸收视觉知识的效率较低；理解与生成各用一套编码器虽然有效，却需要在任务之间切换模式和预测头。论文因此让同一张图同时提供高层语义和低层细节，并让任务类型不再决定输入编码方式。&lt;/p&gt;
&lt;p&gt;具体做法是采用 SigLIP-SO400M 提取连续视觉特征，经两层 MLP 对齐到 LLM 空间；同时沿用 Chameleon 的 VQ-GAN tokenizer，把图像变成码本大小 16,384、下采样率 16 的离散 ID，并用 LLM 词表查询对应 embedding。序列写成 &lt;code&gt;[BOS][BOI]{image_d}[SEP]{image_c}[EOI]{text}[EOS]&lt;/code&gt;，同一个 Chameleon-7B/Lumina-mGPT 初始化的 LLM 和统一预测头负责两种输出：理解只在答案文本 token 上算交叉熵，生成只在离散图像 token 上算交叉熵。为强化细粒度理解，SigLIP 使用网格切分支持最高 &lt;code&gt;768×768&lt;/code&gt; 输入，并以较小的 &lt;code&gt;1e-5&lt;/code&gt; 学习率端到端微调，避免 ViT 崩溃。&lt;/p&gt;
&lt;p&gt;训练分三阶段：Stage I 冻结 LLM，只用 250 万图像描述对齐 SigLIP 与 adapter；Stage II 解冻全部参数，混合约 1000 万理解数据和 1000 万 MidJourney 文生图数据；Stage III 再用 423K 高质量多轮对话和 100K 物体控制文生图样本做指令强化。论文的关键消融是任务干扰：纯离散 Chameleon 在理解与生成联合训练后 GenEval 从 51.2 降到 31.1，而 UniToken 仅从 51.1 降到 49.4；大规模训练时理解/生成数据约 1:1 也比 2:1 稳定。&lt;/p&gt;
&lt;p&gt;Stage III 的 GenEval 总分为 0.63，MMBench-EN 为 71.1、OCRBench 为 757，说明统一编码对 OCR 和多模态理解有明显帮助；但生成仍落后于 SD3、DALL-E 3 等扩散模型，在 Positions 和 Color Attribution 上尤其弱。论文还报告了能力权衡：OCR/指令强化后 MMMU、MathVista 等通用推理指标会下降，且 MidJourney 的 1000 万生成样本并非公开可复现实验数据；模型在问答中仍会出现幻觉，较大 ViT 学习率也容易训练崩溃。
&lt;/p&gt;
&lt;h2&gt;VARGPT&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/vargpt-overview.1vzdhkhclv.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;VARGPT 关注统一模型中两种视觉任务的建模范式差异：理解适合让语言模型逐 token 生成答案，生成则更适合按多尺度视觉 token 逐级预测。作者以 LLaVA-1.5-7B 为骨干，加入独立的视觉 decoder 和两组视觉特征投影器，在同一个因果语言模型中用 next-token 做理解、用 next-scale 做图像生成，并用特殊 token 在对话中切换两条路径。&lt;/p&gt;
&lt;p&gt;理解路径使用 CLIP ViT-L/14 和两层 projector，将图像特征映射到 Vicuna-7B 的输入空间；生成路径沿用 VAR 的多尺度 VQ tokenizer，LLM 生成每一层视觉特征后交给约 2B 参数、30 层的视觉 decoder，再由 VQ-VAE decoder 还原图像。文本 decoder 始终采用 causal attention，视觉 decoder 采用 block-causal attention；&lt;code&gt;&amp;#x3C;image_gen_start&gt;&lt;/code&gt;、&lt;code&gt;&amp;#x3C;image_gen&gt;&lt;/code&gt;、&lt;code&gt;&amp;#x3C;image_gen_end&gt;&lt;/code&gt; 标记图像生成区间，并以 classifier-free guidance 改善采样。&lt;/p&gt;
&lt;p&gt;训练由三阶段组成：Stage 1 用 128 万 ImageNet 指令对只训练生成投影器，先对齐文本和视觉生成空间；Stage 2 解冻 LLM、理解 projector，并混合 LLaVA-1.5 的 665K、LLaVA-OneVision 抽样的 508K 以及少量 ImageNet-Instruct 数据，强化多轮视觉理解；Stage 3 冻结其他部分、训练视觉 decoder 和生成投影器，用 140 万图像生成指令对提升 instruction-to-image。三阶段合计约 386 万样本，训练时同时保留理解和生成格式。&lt;/p&gt;
&lt;p&gt;在零样本多模态评测中，VARGPT 的 MMBench 为 67.6、SEEDBench 为 67.9、MMMU 为 36.44，GQA 为 62.3、SciQA-img 为 80.1；生成消融中完整三阶段达到 FID 12.6、CLIP 27.4。它还能在一轮对话里连续输出解释文字和图像，但生成数据主要来自 ImageNet，规模与质量都低于扩散模型常用语料，因此生成质量和细节仍受限；当前输出固定为 &lt;code&gt;256×256&lt;/code&gt;，复杂指令中的细粒度属性也常不能完整呈现。
&lt;/p&gt;
&lt;h2&gt;Janus-Pro&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/janus-pro-architecture-trimmed.5c1p9nqzqf.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Janus-Pro 的核心仍是 Janus 提出的“解耦视觉编码”。同一套视觉表示很难同时满足理解所需的高层语义和生成所需的低层细节，因此模型不强行共享编码器，而是让两条路径在统一自回归 Transformer 中汇合。Pro 版本主要从训练策略、数据规模和语言模型规模三方面修补 Janus 在短 prompt 生成不稳定、画面细节不足的问题。&lt;/p&gt;
&lt;p&gt;理解路径用 SigLIP-L/16-384 提取语义特征，展平后经 understanding adaptor 接入 LLM；生成路径用 VQ tokenizer 得到离散 ID，经 generation adaptor 映射到同一输入空间，并额外使用图像预测头自回归预测视觉 token。两类 token 可以在一个序列中交错，文本由语言头预测，图像由生成头预测。Janus-Pro 提供 1B 和 7B 两种规模，基座是 1.5B/7B 的 DeepSeek-LLM，图像分辨率统一为 &lt;code&gt;384×384&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;训练上，作者延长 Stage I 以充分学习 ImageNet 的像素依赖，Stage II 去掉低效的 ImageNet 子阶段，直接使用普通密集描述的文生图数据；Stage III 将多模态理解、纯文本和文生图数据比例从 7:3:10 调为 5:1:4。数据方面新增约 9000 万理解样本（包括图像描述、表格、图表和文档），并加入约 7200 万合成审美数据，使真实/合成生成数据约为 1:1；同时把 LLM 扩展到 7B 验证方法的可缩放性。&lt;/p&gt;
&lt;p&gt;Janus-Pro-7B 在 MMBench 达到 79.2，MMMU 41.0、MME-Perception 1567.1、MM-Vet 50.0；GenEval 总分 0.80、DPG-Bench 84.19，短 prompt 的稳定性和简单文字生成也明显改善。代价是输入仍限制在 &lt;code&gt;384×384&lt;/code&gt;，细粒度 OCR 受分辨率影响；生成图像还会受到 VQ tokenizer 重建损失影响，小脸等小区域缺少细节。模型因此是统一能力的强基线，但并未消除高分辨率生成与精细文字理解的瓶颈。
&lt;/p&gt;
&lt;h2&gt;BLIP3-o&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/blip3o-architecture.3gp4h1ek5a.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;BLIP3-o 把统一模型的关键问题拆成三个可控轴：图像应该编码成低层 VAE latent 还是高层 CLIP feature，连续表示用 MSE 还是 Flow Matching 学习，以及理解与生成应联合训练还是顺序训练。论文发现 CLIP feature 更紧凑、训练更快，Flow Matching 能保留连续分布的随机性，而先训练理解再冻结自回归骨干、单独训练生成模块，最容易兼顾两种能力。&lt;/p&gt;
&lt;p&gt;模型以冻结的 Qwen2.5-VL-7B（另有完全开源数据训练的 4B 版本）为理解骨干。文本经过 Qwen2.5-VL，autoregressive backbone 先输出一组 learnable query 形成中间视觉特征；随后一个约 1.4B 参数的 Lumina-Next/DiT 扩散 Transformer，以这些 query 为条件，用 Flow Matching 生成固定长度的 64 个 CLIP image features，再由 CLIP-conditioned diffusion decoder 还原图像。相比 MSE 直接回归均值，Flow Matching 的噪声轨迹允许同一 prompt 采样出多种结果，但推理要经过“生成 CLIP latent”和“解码成像”两次扩散。&lt;/p&gt;
&lt;p&gt;训练阶段先用约 2500 万 CC12M、SA-1B、JourneyDB 图文对（8B 版本另加约 3000 万内部数据）训练图像生成模块，再用 GPT-4o 生成的 60K 高质量 instruction-tuning 对覆盖复杂手势、物体、地标和文字渲染。实验比较显示，CLIP+Flow Matching 在 prompt alignment 上优于 VAE 方案，顺序训练则在保持理解能力的同时获得更好的生成质量；8B 模型在 MME-P 为 1682.6、MMMU 为 50.6、GenEval 为 0.84、WISE 为 0.62，DPG-Bench 的自动指标虽非最高，但人评中视觉质量和 prompt alignment 都胜过 Janus-Pro。&lt;/p&gt;
&lt;p&gt;局限在于 8B 版本依赖额外的内部图像数据，4B 才是仅用公开数据的可复现版本；CLIP latent 生成和最终解码的双扩散过程增加推理成本。论文也承认联合训练对数据总量和理解/生成比例非常敏感，当前选择顺序训练更多是稳定、可控的工程折中，复杂图像编辑、交错生成等应用仍处于后续扩展阶段。
&lt;/p&gt;
&lt;h2&gt;Show-o2&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/show-o2-overview.102w247ode.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Show-o2 的目标是把原先偏图像的统一模型扩展到图像、视频和交错多模态序列。作者认为理解需要语义特征，生成需要完整低层信息，直接复用单一视觉表示会互相牵制；因此从 Wan2.1 的 3D causal VAE latent 出发，设计双路径的 spatial（视频时再加 temporal）fusion，在同一表示中保留两种信息。&lt;/p&gt;
&lt;p&gt;语义路径由 SigLIP 权重初始化的 semantic layers 提取高层特征，并在干净或加噪 latent 上做蒸馏；projector 路径保留 VAE 的低层细节，二者拼接后经 RMSNorm 和 MLP 融合。文本 embedding 与统一视觉表示进入 Qwen2.5-Instruct，采用 omni-attention：跨序列保持因果，视觉块内部保持 full attention。语言头优化 next-token prediction，另一个带 adaLN-Zero 的 flow head 预测视觉 latent 的速度，联合损失为 &lt;code&gt;αL_NTP + L_FM&lt;/code&gt;，所以同一模型能生成图像、视频和文字交错序列。&lt;/p&gt;
&lt;p&gt;训练分两阶段。Stage 1 只更新 projector、空间/时空 fusion 和 flow head，使用约 6600 万图文对，并逐步加入 WebVid/Panda 视频和 OmniCorpus 交错数据；Stage 2 再用 900 万高质量理解指令、1600 万筛选后的生成数据和 160 万视频理解样本微调整个模型。1.5B 模型的 flow head 可迁移到 7B，仅用轻量 MLP 对齐 hidden size；但 7B 训练因成本过高没有加入视频和交错数据。&lt;/p&gt;
&lt;p&gt;7B 版本在 MME-P 为 1620.5、GQA 63.1、MMMU 48.9、MMStar 56.6、AI2D 78.6；GenEval 为 0.76，DPG-Bench 为 86.14，2B 视觉生成总分在 VBench 达到 81.34。它还支持视频理解、文生视频、图生视频和图文交错故事生成。论文明确指出文字渲染仍弱，小物体细节受有限分辨率影响；高分辨率和 text-rich 数据虽能缓解，但视频/交错能力在大模型上尚未经过同等规模训练。
&lt;/p&gt;
&lt;h2&gt;Qwen-Image&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/qwen-image-architecture.1zizfaaflg.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Qwen-Image 面向两个长期难点：复杂 prompt 中的多行/段落文字很难准确渲染，图像编辑又要求只改目标区域而保持身份、背景和纹理一致。它不是把理解和生成合并为一个自回归输出头，而是用多模态 Qwen2.5-VL 提取条件、用大规模 MMDiT 进行图像 latent 的 flow matching；因此更像一个由强视觉语言模型驱动的生成基础模型。&lt;/p&gt;
&lt;p&gt;架构由冻结的 Qwen2.5-VL-7B、兼容图像/视频的 VAE 和 20B 参数双流 MMDiT 组成。Qwen2.5-VL 的最后一层 hidden state提供文本或图文条件，VAE 采用共享 encoder、图像/视频双 decoder，并专门在文字密集图像上微调 image decoder 以提升小字重建。MMDiT 中引入 MSRoPE：从图像中心布置二维位置，把文本位置放到图像网格对角线上，既支持分辨率缩放，又保持文本侧近似一维 RoPE 的区分性。编辑时同时输入 Qwen2.5-VL 的语义表示和 VAE 的重建表示，分别负责语义一致性与像素保真。&lt;/p&gt;
&lt;p&gt;数据工程是论文的主体贡献。训练集按 Nature（约 55%）、Design（27%）、People（13%）和受控合成数据（5%）平衡，经过七阶段过滤、重标注和多尺度训练，从 &lt;code&gt;256&lt;/code&gt; 逐步升到 &lt;code&gt;640&lt;/code&gt;、&lt;code&gt;1328&lt;/code&gt; 分辨率。文字渲染采用从无文字到文字、从简单字符到段落布局的课程，并合成 pure rendering、contextual compositing 和结构化模板三类样本；预训练后再做人工筛选 SFT，以及 DPO 和 GRPO 偏好优化。这样同时覆盖 T2I、I2I、TI2I、文本编辑、物体增删、姿态修改和 novel-view synthesis。&lt;/p&gt;
&lt;p&gt;在 GenEval 上，RL 后模型达到 0.91；OneIG-Bench 中英文轨道的总体表现和 Alignment/Text 维度均居前，GEdit、ImgEdit、GSO 新视角合成与多个深度数据集也取得领先或有竞争力结果。定性案例显示它能渲染英文长段落和中文对联，并在编辑时保持人物细节与背景结构。不过模型由 20B MMDiT 加 7B 条件编码器构成，训练依赖数十亿规模的数据工程、分布式 Producer–Consumer 基础设施和偏好优化，部署成本很高；深度估计仍未超过专门判别式模型，且其核心能力是图像生成/编辑而非原生的文本-图像统一自回归建模。
&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/49383596_p0_master1200.6t7pmts45l.webp"/><enclosure url="https://pic.hana0721.top/49383596_p0_master1200.6t7pmts45l.webp"/></item><item><title>Paper Reading: Unify MLLM 1</title><link>https://agusexp25.top/blog/paper-reading-umllm1</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-reading-umllm1</guid><description>读一些统一多模态大模型相关的论文</description><pubDate>Fri, 26 Dec 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating, RatingCriteria } from &apos;@/components/advanced&apos;&lt;/p&gt;
&lt;h2&gt;前言&lt;/h2&gt;
&lt;p&gt;速览一些统一多模态大模型的论文。&lt;/p&gt;
&lt;h2&gt;SEED&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2307.08041.8vnn08fsam.webp&quot; alt=&quot;&quot;&gt;
SEED 针对早期统一模型的两难：VQ 图像 token 往往偏像素、难以和语言 token 对齐，而只把视觉特征当作文本提示又不能让模型真正生成视觉内容。作者提出因果式图像 tokenizer，让视觉 token 摆脱二维 patch 位置的硬编码，按一维因果依赖产生；tokenizer 同时使用图像重建和语义判别目标，使每个 token 的抽象程度更接近词语。&lt;/p&gt;
&lt;p&gt;训练时先在约 500 万公开图文对上学习 tokenizer，再把它接入现成 LLM，以 LoRA 做轻量对齐。视觉 token 和文本 token 共用自回归接口，因此可以做图像描述、视觉问答，也可以从文本预测视觉 token 后还原图像。论文的结果是一个很早期但完整的“看与画”原型，证明离散视觉语言有机会复用 LLM 的 next-token recipe；不过作者没有进行大规模多模态预训练或指令微调。&lt;/p&gt;
&lt;p&gt;局限是 tokenizer 的码本和固定视觉压缩仍会损失细节，重建质量与专用扩散模型存在差距；LoRA 对齐只验证了小规模可行性，复杂交错文档、长视频和高分辨率场景没有覆盖。建议代表 Figure：论文展示因果视觉 token 生成、LLM 对齐与图像解码的整体架构图。
&lt;/p&gt;
&lt;h2&gt;LaVIT&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2309.04669.7axw0riljr.webp&quot; alt=&quot;&quot;&gt;
LaVIT 认为把图像永远压成固定数量、低层次的 token，会浪费上下文并阻碍视觉信息与语言推理对齐；传统 VLM 又常冻结 LLM，只优化“看图后写字”。它因此设计动态离散视觉 tokenizer：先由视觉编码器提取 patch，再用 token selector 选择信息量高的 patch，并由 token merger 把被丢弃 patch 的信息合并到保留 token 中。输出 token 具有词语级语义，长度随图像内容变化。&lt;/p&gt;
&lt;p&gt;LaVIT 将视觉 token 与文本 token 拼成同一序列，用 LLaMA 类 decoder-only Transformer 做 next-token 预训练，并在同一个接口中支持图像理解和文本到图像生成。实验覆盖 NoCaps、Flickr、VQAv2、OKVQA、GQA、VizWiz 等 caption/VQA 任务，也评测图像生成和跨模态组合；在论文所用零样本设置中，7B 模型整体优于当时多种冻结式 VLM，说明动态压缩与统一目标确实有效。&lt;/p&gt;
&lt;p&gt;局限是 selector/merger 的决策会带来信息丢失和额外训练不稳定性，离散码本仍受重建质量、序列长度与分辨率制约；论文的预训练数据和算力规模也让完全复现实验有门槛。建议代表 Figure：展示 token selector、token merger 以及图文统一自回归序列的 Figure 2/3（以论文 PDF 标注为准）。
&lt;/p&gt;
&lt;h2&gt;SEED-X&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2404.14396.3nscdep29d.webp&quot; alt=&quot;&quot;&gt;
SEED-X 关注早期 SEED-LLaMA 在真实应用中的两个缺口：固定输入尺寸难处理长宽比各异的图片，单一视觉粒度又无法同时满足“看懂细节”和“按语义自由生成”。方法先用 ViT 得到视觉 token，并训练一个接收这些 token 的 SDXL U-Net 去噪器；理解侧采用动态分辨率/多图切片，生成侧则让不同粒度的视觉特征分别承担语义生成、重建和编辑。&lt;/p&gt;
&lt;p&gt;视觉 tokenizer/de-tokenizer 在 JourneyDB、LAION-Aesthetics、Unsplash、LAION-COCO 等图像数据上预训练，再进行多模态预训练和指令微调。论文评测单图、多图、交错图文理解，以及文本生图、条件生成和图像编辑；结果显示高分辨率输入和多粒度解码能改善 OCR、细节重建与指令跟随，并能通过应用级指令微调适配不同场景。结论是“同一视觉表示覆盖所有任务”并非唯一方案，粒度可控的编码/解码更实用。&lt;/p&gt;
&lt;p&gt;局限是 SDXL 解码器仍是外接扩散模块，训练和推理成本高于纯自回归模型；细粒度 token 会拉长上下文，动态切片也可能造成跨块关系丢失。部分应用依赖定制指令数据，通用交错生成和视频能力仍有限。建议代表 Figure：论文 Figure 1 的统一多粒度理解—生成流程，或展示不同 token 粒度重建/生成差异的图。
&lt;/p&gt;
&lt;h2&gt;Emu&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2307.05222.2h914mx1z4.webp&quot; alt=&quot;&quot;&gt;
Emu 的动机是把图片、视频和文本都当作可交错的序列元素，从而摆脱“视觉编码器加语言模型”的单向接口。视觉信号先编码为连续 embedding，和文本 token 按原文顺序交错；Transformer 对文本位置做分类，对视觉位置做回归，训练目标始终是序列中的下一个元素。图像生成时再用单独训练的 image decoder 将预测 embedding 还原成像素。&lt;/p&gt;
&lt;p&gt;预训练混合 LAION-2B、LAION-COCO 图文对、MMC4 交错网页、WebVid-10M 视频文本对和自建视频交错数据，覆盖图片、网页和视频。作者在 caption、VQA、视频问答、文本生图以及 in-context 图文生成上进行零样本/少样本评测，并用指令微调展示多模态助手。结果说明连续 embedding 能让一个模型在理解和生成之间共享上下文，且可直接利用大量交错数据。&lt;/p&gt;
&lt;p&gt;局限是视觉回归的连续向量缺少离散 token 的精确概率建模，容易产生平均化或细节不足的图像；真正的像素质量仍由外接 decoder 决定，训练也依赖大规模、噪声较高的网页数据。视频长序列、复杂编辑和可控文字生成没有系统解决。建议代表 Figure：论文展示交错图文/视频序列及两个模态预测头的 Figure 1 或 Figure 2。
&lt;/p&gt;
&lt;h2&gt;Emu2&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2312.13286.7ehhyhbp2m.webp&quot; alt=&quot;&quot;&gt;
Emu2 研究的核心不是再加任务头，而是验证模型规模和数据规模能否让多模态 in-context learning 像语言模型一样自然出现。它用 EVA-02 CLIP 编码器将图像/视频压成连续 embedding，采用 LLaMA-33B 作为多模态 Transformer，并以 SDXL 作为视觉解码器；相较 Emu，连接方式简化为对图像 patch 做池化和线性投影，减少中间模块。&lt;/p&gt;
&lt;p&gt;训练使用 LAION-2B、CapsFusion-120M、WebVid-10M 等图文/视频文本对，随后加入交错图文、视频帧和纯文本序列。基础模型在少样本 VQA、视觉分类、视觉提示和 object-grounded generation 上测试，再用指令微调评测开放式问答和 subject-driven generation。实验表明规模扩展显著增强了不经任务专训的上下文学习和临时推理能力，说明统一序列建模具有可扩展性。&lt;/p&gt;
&lt;p&gt;局限是 37B 规模带来极高训练和推理成本，连续视觉 token 的长度仍限制长视频和多图交错；生成质量受 SDXL decoder 和回归目标约束。论文展示的是能力涌现而非机制解释，少样本结果也可能受提示模板影响。建议代表 Figure：Figure 2 的视觉编码—多模态建模—视觉解码结构，或论文的视觉 prompting 示例图。
&lt;/p&gt;
&lt;h2&gt;Chameleon&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2405.09818.5flb8567kl.webp&quot; alt=&quot;&quot;&gt;
Chameleon 试图直接建模“图片—文字—图片—文字”的完整文档，而不是把视觉内容只放在上下文开头。图像被 tokenizer 转为离散 token，与文本 token 使用同一词表空间和 early-fusion Transformer；因果注意力允许模型在任意交错顺序中读写两种模态。论文还给出从预训练到对齐的稳定 recipe，并在 SFT 中加入文本、代码、视觉对话、图像生成、交错生成和安全数据。&lt;/p&gt;
&lt;p&gt;实验覆盖 VQA、caption、文本能力、文本生图、图像条件生成和长篇 mixed-modal generation。自动指标显示模型在 caption 和文本任务上有竞争力，图像生成虽不及专用扩散模型但已能生成非平凡结果；人评以自然用户提示比较长篇图文输出时，Chameleon 可与更大闭源模型竞争。结论是早期融合适合统一“多模态文档”接口。&lt;/p&gt;
&lt;p&gt;局限是离散化会在语义与像素细节之间取舍，图像 token 数量也迅速占满上下文；同一 Transformer 同时承担语言和图像生成，训练稳定性与任务配比敏感。长篇人评和安全评测依赖内部流程，自动基准尚不足以覆盖交错生成质量。建议代表 Figure：论文的 early-fusion token 序列/训练 recipe 示意图，以及长篇交错输出案例。
&lt;/p&gt;
&lt;h2&gt;Transfusion&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2408.11039.4xv9jk7399.webp&quot; alt=&quot;&quot;&gt;
Transfusion 认为文本的离散概率建模和图像的连续扩散各有优势，强行把图像量化成语言 token 会造成信息损失。它把预训练 VAE 的图像 latent 切成 patch，使用共享 Transformer 建模交错序列：文本位置计算语言模型交叉熵，图像位置计算扩散噪声损失；模态专用的编码/解码层负责把 patch 映射进出 Transformer。因果掩码还允许同一图像的 patch 互相条件化。&lt;/p&gt;
&lt;p&gt;作者从头训练多个规模的 Transfusion，在文本困惑度和 Llama 评测集、MS-COCO 文生图/图像描述、VQA 等单模态与跨模态任务上比较离散 token 基线和扩散模型，并把最大模型扩展到多万亿级多模态 token。结果显示连续图像建模随模型和数据扩展更平滑，少量 patch 也能保留较好的生成质量，文本能力与图像能力可以在一个 backbone 中共存。&lt;/p&gt;
&lt;p&gt;局限是每个图像 patch 仍需扩散采样，推理速度和工程复杂度不等同于普通 LLM；低 patch 数会牺牲细节，增加 patch 又会拉长序列。实验主要从头训练，如何稳定地把 recipe 迁移到成熟 LLM、如何处理视频/音频尚未回答。建议代表 Figure：论文 Figure 1/3 的 VAE-patch、因果掩码及双损失统一训练图。
&lt;/p&gt;
&lt;h2&gt;Emu3&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2409.18869.b9miy64jf.webp&quot; alt=&quot;&quot;&gt;
Emu3 直接挑战“视觉生成必须依赖扩散、视觉理解必须依赖 CLIP/LLM 组合”的惯例。模型先用离散视觉 tokenizer 表示图像和视频，再把视觉 token 与文本 token 放入同一因果序列，从头训练单一 Transformer；因此理解和生成都退化为预测下一个 token，视频则按帧和空间位置继续预测。&lt;/p&gt;
&lt;p&gt;训练混合图文、视频文本和交错多模态序列，随后通过指令微调得到 Emu3-Chat 等版本。论文在图像生成、视频生成、caption、VQA、OCR 和综合视觉理解上与 SDXL、LLaVA-1.6 等专用或组合模型比较，报告了统一模型在感知和生成两端都具竞争力，并能生成高保真视频。结论是 token 化与规模扩展足以构成一条简洁的统一路线。&lt;/p&gt;
&lt;p&gt;局限是离散码本决定上限：复杂纹理、细小文字和视频时序都可能在 tokenizer 阶段丢失；自回归生成长图像/视频 token 很慢，显存和上下文长度压力大。与成熟扩散模型的质量比较依赖分辨率、采样和数据配比，开放域安全与长视频稳定性也未充分验证。建议代表 Figure：论文的图像/视频 token 化和统一 next-token 训练流程图。
&lt;/p&gt;
&lt;h2&gt;MMAR&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2410.10798.39lwmj3km3.webp&quot; alt=&quot;&quot;&gt;
MMAR 针对统一模型的表示瓶颈：离散视觉 token 会量化掉细节，扩散式视觉输入又常只保留最后去噪状态，导致图像理解时 backbone 看不到完整信息。它让自回归 Transformer 直接输出连续 image patch embedding，并在每个 patch 的 hidden state 上接轻量 diffusion head；文本仍由语言头做分类，图像生成由 diffusion head 负责。论文还给出数值稳定技巧和生成/理解损失的平衡策略。&lt;/p&gt;
&lt;p&gt;作者在 18 个图像理解基准上比较离散 token、预训练 CLIP encoder 和其他统一模型，同时评测文生图质量，并做模型/数据规模扩展实验。结果显示连续输入能显著改善理解，且生成质量保持在统一模型的强水平；随数据和模型扩大，MMAR 仍能稳定训练，说明 backbone 与扩散头解耦是可扩展的折中。&lt;/p&gt;
&lt;p&gt;局限是每个 patch 仍要进行扩散求解，推理成本和实现复杂度高于纯 token 模型；数值稳定与损失权重依赖经验设置，理论保证不等于有限算力下的鲁棒性。实验以图像为主，视频、音频及更长的交错序列尚未验证。建议代表 Figure：MMAR 的连续 patch 自回归骨干与多 diffusion head 结构图。
&lt;/p&gt;
&lt;h2&gt;Janus&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2410.13848.39lwmdgtdt.webp&quot; alt=&quot;&quot;&gt;
Janus 的出发点是理解和生成需要不同粒度：理解偏好 CLIP/SigLIP 的高层语义，生成需要保留局部纹理和像素布局；强迫一个视觉编码器兼顾二者会互相干扰。Janus 因而采用两条独立视觉编码路径，分别把语义特征和生成 token 投影到统一 Transformer；文本由语言头预测，图像生成由视觉 token 头预测，主干仍是一个自回归模型。&lt;/p&gt;
&lt;p&gt;论文提供 1B 级模型并进行多模态预训练、视觉理解指令微调和文生图训练，评测 MMBench、MMMU、GQA、MM-Vet 等理解基准以及 GenEval、DPG-Bench 等生成基准，并与 Chameleon、Emu 等统一模型及专用模型比较。解耦后模型在理解和生成之间的冲突明显减轻，以较小规模取得当时强统一结果；同时，替换任一路径的 encoder 也较灵活。&lt;/p&gt;
&lt;p&gt;局限是两套视觉路径增加参数和训练/部署维护成本，统一更多体现在 Transformer 而非完整视觉编码器；离散生成仍受 tokenizer 和分辨率影响，细小文字、复杂编辑不稳定。实验场景以静态图像为主，视频和多轮交错输出未充分展开。建议代表 Figure：论文 Figure 1 的双视觉编码路径与共享 Transformer 总览图。
&lt;/p&gt;
&lt;h2&gt;PUMA&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2410.13861.58i3cpmc4p.webp&quot; alt=&quot;&quot;&gt;
PUMA 观察到不同生成任务的粒度需求相反：文本生图只需粗粒度语义并保留随机性，图像编辑却需要细粒度结构和纹理。它用 CLIP 编码器提取从 256、64、16、4 到 1 个 token 的多尺度特征，为每个尺度训练一个条件 SDXL 解码器；LLaMA-3 8B 自回归地从粗到细预测多尺度视觉特征，并和文本 token 共同建模。&lt;/p&gt;
&lt;p&gt;训练分为视觉编码/解码预训练，以及多模态预训练和任务指令微调。实验在 ImageNet 重建、MS-COCO 多样文生图、Emu-Edit 条件编辑、条件生成和视觉语言理解上比较 SEED-X、Emu2、SDXL 等。细粒度特征重建更接近原图，粗粒度特征生成更多样，统一模型能以同一接口覆盖多种任务，验证了“粒度是可控轴”这一设计。&lt;/p&gt;
&lt;p&gt;局限是每个粒度都需要专用扩散解码器，模型体积与推理成本随之增加；CLIP 特征本身并非像素无损，粗细粒度之间的切换依赖训练好的尺度选择。复杂视频、长交错内容和真正端到端的单解码器方案尚未解决。建议代表 Figure：Figure 2/3 的多尺度特征从粗到细生成与对应解码器示意。
&lt;/p&gt;
&lt;h2&gt;Show-o&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2408.12528.lwgc0nrty.webp&quot; alt=&quot;&quot;&gt;
Show-o 试图让一个模型根据模态选择合适的生成范式，而不是让文本和图像都被迫逐 token 或都被迫扩散。文本和图像先离散化到统一词表；Transformer 的文本路径采用 causal next-token prediction，图像路径使用 masked discrete diffusion，在同一上下文中可交错出现。统一 prompt 格式控制图像理解、生成、inpainting 和 extrapolation。&lt;/p&gt;
&lt;p&gt;训练数据包括 RefinedWeb 文本、ImageNet-1K 图像，以及来自 CC12M、SA-1B、LAION-Aesthetics 的约数千万图文对；训练中同时保留文本能力、视觉重建和多模态指令。论文在 VQA、caption、文本生图、图像编辑和混合生成上与同规模专用模型比较，结果显示 Show-o 在理解上保持竞争力，生成和编辑也能接近更大的专家模型。&lt;/p&gt;
&lt;p&gt;局限是离散图像 token 仍受码本和分辨率限制，masked diffusion 需要多轮迭代；不同任务的 prompt/mask 设计会影响结果，长视频和高保真文字不是重点。它的统一性是共享主干加两种目标，尚未证明所有模态都能以同样效率扩展。建议代表 Figure：论文 Figure 1/2 的 AR 与离散扩散在同一 Transformer 中协同的架构图。
&lt;/p&gt;
&lt;h2&gt;VILA-U&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2409.04429.102w2vw2sg.webp&quot; alt=&quot;&quot;&gt;
VILA-U 关注传统 VLM 把理解和生成拆成两套模块所造成的表示不一致。它训练 unified foundation vision tower：视觉特征一方面经残差量化产生离散 token 并重建图像，另一方面与文本编码器做图文对比学习，使 token 同时具备语义对齐和可解码性。视觉 token 与文本 token 直接拼接，由 LLaMA-2 类语言模型统一进行 next-token prediction。&lt;/p&gt;
&lt;p&gt;视觉塔先在 COYO-700M 上训练；多模态理解使用 ShareGPT4V 图文指令和 MMC4 交错数据，生成侧加入高质量图文和视频文本数据，并用 classifier-free guidance 采样。实验覆盖图像/视频理解、caption、VQA、OCR 和文生图，显示纯 token 自回归方案在理解上接近强 VLM，在生成上也能达到统一模型的较好水平。&lt;/p&gt;
&lt;p&gt;局限是残差量化会使高分辨率图像产生大量 token，生成速度和上下文长度都受限制；统一视觉塔仍需在语义与重建间折中，文本渲染、细粒度编辑和长视频质量未完全解决。生成质量也高度依赖专门筛选的数据。建议代表 Figure：论文 Figure 1 的视觉离散化、图文序列和解码流程图。
&lt;/p&gt;
&lt;h2&gt;MIO&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2409.17692.86udgas5q4.webp&quot; alt=&quot;&quot;&gt;
MIO 针对 GPT-4o 式任意模态互转缺少开源、可交错输出方案的问题。模型用 SEED-Tokenizer 将图像/视频编码为离散 token，用 SpeechTokenizer 编码语音，文本沿用词表；因果 Transformer 在同一序列中预测四种模态 token，再由各自 detokenizer 还原。训练依次进行对齐预训练、交错多模态预训练、语音增强预训练和综合监督微调。&lt;/p&gt;
&lt;p&gt;实验覆盖图像 caption/VQA、视频理解、语音识别/合成和跨模态生成，并与双模态 VLM、any-to-any 基线及专用模型比较。除了标准指标，论文展示交错视频—文本生成、chain-of-visual-thought、视觉指南生成和指令图像编辑等案例，说明统一 token 序列可以表达复杂的多轮交互。&lt;/p&gt;
&lt;p&gt;局限是四种模态的 token 速率、质量和数据规模差异很大，训练配比与长序列显存压力会影响能力平衡；语音和视频解码器仍是模态专用组件，端到端质量受 tokenizer 上限限制。高级涌现能力主要是定性展示，系统安全、实时性和长上下文尚需更多评测。建议代表 Figure：论文 Figure 1 的四模态 tokenization、四阶段训练和 any-to-any 输出总览。
&lt;/p&gt;
&lt;h2&gt;JanusFlow&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2411.07975.362aonnr78.webp&quot; alt=&quot;&quot;&gt;
JanusFlow 延续 Janus 的核心认识：理解和生成需要不同视觉表示，但不希望为生成再堆叠复杂的 Transformer。它在 DeepSeek-LLM 类自回归 backbone 上增加轻量生成 encoder/decoder 和 rectified-flow head：理解路径使用 SigLIP 语义特征，生成路径使用 SDXL-VAE latent，两个表示在统一训练中加入对齐约束，文本仍由语言头自回归预测。&lt;/p&gt;
&lt;p&gt;实验以 384 分辨率图像为主，评测 MMBench、MMMU、GQA、MM-Vet 等理解任务及 GenEval、DPG-Bench 等文生图任务，并消融共享/解耦 encoder、表示对齐和 flow 训练。结果显示 rectified flow 可以在 LLM 框架中直接训练，JanusFlow 在理解和生成两端都超过早期统一模型，接近各自专用系统。&lt;/p&gt;
&lt;p&gt;局限是 flow 采样仍需多步迭代，推理并未达到纯 next-token 模型的简单性；双视觉编码器和 latent decoder 仍增加系统组件。实验主要是静态图像，视频、编辑、长交错序列及更大语言模型规模的收益尚不确定。建议代表 Figure：论文 Figure 1 的 AR backbone、双视觉编码器和 rectified-flow head 总览。
&lt;/p&gt;
&lt;h2&gt;Orthus&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2412.00127.13mi0lqj84.webp&quot; alt=&quot;&quot;&gt;
Orthus 直接处理连续图像特征，避免 VQ 量化和扩散输入末步带来的信息损失。文本 token 与连续 image patch embedding 进入同一个 causal Transformer；每个 hidden state 分别送入 LM head 预测下一个文本 token，或送入 diffusion head 预测下一个图像 patch。作者用可微视觉 embedding 替换现有统一 AR 模型中的 VQ 操作，再只调新增模块即可得到 Orthus-base，随后进行交错图文的后训练。&lt;/p&gt;
&lt;p&gt;实验覆盖视觉问答、图像描述、文本生成、文生图和长篇 mixed-modal generation；7B 设置在 GenEval、MME-Perception 等指标上与 Show-o、Chameleon 比较，并展示连续多图文输出。结果说明“共享 AR backbone + 模态专用头”能保留图像信息，同时让模态间相关性在一个上下文中建模，训练成本比从头设计大型统一系统低。&lt;/p&gt;
&lt;p&gt;局限是 diffusion head 仍使每个 patch 需要噪声采样，端到端推理速度和稳定性受影响；连续特征没有离散概率的严格校准，图像细节与高分辨率扩展仍是瓶颈。轻量构建 recipe 依赖已有 tokenizer/LLM，跨视频、音频和复杂编辑尚未验证。建议代表 Figure：论文 Figure 2 的连续视觉输入、共享骨干及双模态 head 架构。
&lt;/p&gt;
&lt;h2&gt;TokenFlow&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2412.03069.51evha1k06.webp&quot; alt=&quot;&quot;&gt;
TokenFlow 针对 VQGAN 类 tokenizer 的根本冲突：为重建优化的 token 关注颜色和纹理，却缺少 VLM 需要的语义；只蒸馏 CLIP 又会丢掉生成所需的低层信息。它设计 semantic codebook 和 pixel codebook 两条表示，并用 shared mapping 让同一空间位置的索引保持对应，从而既能读高层语义，又能取回细节。&lt;/p&gt;
&lt;p&gt;tokenizer 在 LAION、COYO-700M 等图像上训练，生成模型再用约数千万高质量图文对进行自回归训练；理解实验使用 Vicuna/Qwen 等 LLM，覆盖 SEEDBench、MMVet、POPE、VQAv2、GQA、TextVQA、AI2D、MMMU 等，生成实验使用 GenEval、DPG-Bench，重建在 ImageNet 上评测。论文报告双码本在统一模型中显著缩小理解与生成的折中，并使离散视觉输入超过同规模 LLaVA 基线。&lt;/p&gt;
&lt;p&gt;局限是 tokenizer、映射和两个码本增加训练及存储复杂度，语义/像素对齐未必对所有域都成立；自回归生成仍受 token 数和采样速度限制。实验主要针对图像，视频和高分辨率文字细节没有系统覆盖。建议代表 Figure：论文 Figure 1 的双 codebook 与 shared mapping，或 Figure 4 的语义/像素聚类可视化。
&lt;/p&gt;
&lt;h2&gt;Liquid&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2412.04332.8adzdxp1r3.webp&quot; alt=&quot;&quot;&gt;
Liquid 试图回答一个简单问题：是否必须依赖 CLIP 等外部视觉 encoder，才能把 LLM 变成统一多模态生成器。它把图像 tokenizer 的离散码映射到与文本相同的 embedding 空间，直接用一个 LLM 处理图文交错序列和 next-token 目标；因此视觉理解、文本能力和视觉生成共享参数，而不是由外接视觉塔提供理解特征。&lt;/p&gt;
&lt;p&gt;作者在混合多模态数据上持续预训练多个规模的 LLM，并系统比较从约 0.5B 到数十亿级模型的语言保持、视觉问答和文生图能力。实验使用 GenAI-Bench、MJHQ-30K、文本困惑度和通用语言任务，与 Chameleon、SD v2.1/XL 等比较；结果显示扩大模型后统一训练造成的语言/视觉性能下降会减弱，Liquid 在生成对齐和文本能力之间取得较好平衡。&lt;/p&gt;
&lt;p&gt;局限是共享离散空间仍受图像 tokenizer 质量和序列长度影响，小模型的模态干扰并未消失；继续预训练成熟 LLM 需要严格控制数据配比，否则语言能力会退化。模型主要覆盖图像，视频、音频和高精度编辑仍待扩展。建议代表 Figure：论文展示共享 token 空间与不同规模 scaling law 的总览图。
&lt;/p&gt;
&lt;h2&gt;MUSE-VL&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2411.17762.6m4mgqxedl.webp&quot; alt=&quot;&quot;&gt;
MUSE-VL 认为 VQGAN 主要为像素重建服务，视觉 token 与语言 token 的抽象层级不一致，导致统一自回归模型需要海量图文数据才能学会理解。它以 SigLIP 预训练视觉特征初始化 encoder，在原有量化—重建损失之外加入语义损失，得到 Semantic Discrete Encoding（SDE）；同一离散词表随后供 LLM 输入和图像生成使用。&lt;/p&gt;
&lt;p&gt;视觉 tokenizer 使用约千万图像训练，LLM 侧可接 Yi、Qwen 等不同规模 backbone；理解训练混合约数千万图像描述/指令样本，生成侧使用图像 caption 数据。实验比较 SDE、VQGAN、LaVIT 等 tokenizer，并在 MMBench、SEEDBench、MMStar、MME 等理解基准和图像生成基准上评测。论文报告在相同 LLM 规模下理解能力明显超过早期统一模型，并缩小与专用 VLM 的差距。&lt;/p&gt;
&lt;p&gt;局限是语义损失权重、SigLIP 域偏差与码本大小需要调节，过强语义约束可能牺牲纹理重建；生成仍依赖离散 token 的长度和 decoder，视频及高分辨率 OCR 未充分验证。建议代表 Figure：SDE tokenizer 的语义/重建双损失结构图，或比较不同 tokenizer 的聚类可视化。
&lt;/p&gt;
&lt;h2&gt;SILMM&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2412.05818.5j4x5v2xtg.webp&quot; alt=&quot;&quot;&gt;
SILMM 针对组合式文生图中的颜色绑定、计数、空间关系和多对象组合错误。现有布局规划或人类/AI 反馈流程依赖手工 prompt 和昂贵标注，难以持续扩展。论文提出与具体 LMM 架构无关的自我改进循环：模型生成组合 prompt，采样多个视觉表示和图像，再用 VQA/检测式自反馈挑选 chosen/rejected 对，进行 DPO 并重复迭代。&lt;/p&gt;
&lt;p&gt;离散视觉 token 模型可直接用生成概率做 DPO；连续视觉特征没有天然 token 概率，作者用 DropDiv 在末端 MLP 引入多样性，再提出 kernel-based continuous DPO 对连续表示排序。实验基于 SEED-LLaMA 和 DreamLLM，构造四类组合 prompt，在 T2I-CompBench++、TIFA、DPG-Bench 上评测，迭代后各类属性、布局和关系对齐均有明显提升。&lt;/p&gt;
&lt;p&gt;局限是自反馈质量受 VQA/检测模型偏差影响，错误的 chosen/rejected 会被循环放大；生成多样样本和反复 DPO 的计算成本较高。连续 DPO 的核函数和多样性注入也带来额外超参数，尚未证明迁移到视频、编辑或闭源 LMM。建议代表 Figure：论文 Figure 2 的五步自我改进循环及离散/连续 DPO 分支。
&lt;/p&gt;
&lt;h2&gt;ILLUME&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2412.06673.6t7uc6kxbd.webp&quot; alt=&quot;&quot;&gt;
ILLUME 关注统一 MLLM 通常需要数倍于普通 VLM 的图文数据才能完成视觉对齐。作者在视觉 tokenizer 中加入语义约束，使离散 token 同时保留可生成细节和语言可读语义；训练采用渐进式多阶段课程，并提出 self-enhancing multimodal alignment，让模型比较文本描述与自己生成图像的一致性，再用该信号反向改善理解和生成。&lt;/p&gt;
&lt;p&gt;模型以 Vicuna-7B 为语言骨干，理解侧采用 UNIT 视觉编码器并用 patchify 支持高分辨率，生成侧使用离散码本。预训练仅使用约 1500 万样本，之后进行多模态指令微调和编辑训练；实验覆盖 MMBench、MMMU、OCR/文档问答、GenEval、MJHQ-30K 和图像编辑等。结果显示在更少预训练数据下，ILLUME 仍可与 Janus 等统一模型及部分专用模型竞争，自评估机制对幻觉和图文错配有帮助。&lt;/p&gt;
&lt;p&gt;局限是自评估仍依赖模型自身或外部视觉判断，可能形成确认偏差；离散码本限制高分辨率文字和纹理，patchify 带来长上下文。15M 数据规模的优势与具体数据清洗强相关，视频、语音和开放域安全尚未覆盖。建议代表 Figure：论文 Figure 1 的 tokenizer、渐进训练和 self-enhancing alignment 闭环。
&lt;/p&gt;
&lt;h2&gt;Visual Lexicon&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2412.06774.pg29wovoj.webp&quot; alt=&quot;&quot;&gt;
Visual Lexicon（ViLex）要解决 CLIP 语义 embedding 缺少细节、文本描述又无法表达风格纹理的问题。模型以 SigLIP 图像编码器和 attention pooling 生成位于文本词表空间的视觉 token；训练时冻结 Imagen 等文本生图扩散模型，只优化视觉 token，使其重建输入图像并保持语义级一致。ViLex token 可以单独作为“视觉词”，也可以和自然语言 token 拼接后作为 T2I prompt。&lt;/p&gt;
&lt;p&gt;实验在重建保真度、图像条件生成和 vision encoder 迁移上评估：即使只有一个 ViLex token，重建也优于纯文本 embedding；不微调 T2I 模型即可做多种 DreamBooth 风格的主体/概念学习；将 ViLex 接入 VLM 后，在 15 个理解基准上相对 SigLIP baseline 持续提升。结论是把丰富视觉信息放进语言空间，可同时利用语言组合性和扩散模型先验。&lt;/p&gt;
&lt;p&gt;局限是 token 的语义解释性和跨模型可移植性尚不明确，训练依赖冻结的 Imagen/词表，换基础 T2I 模型可能需要重新适配；单 token 的细节容量有限，复杂多图交错和端到端自回归生成不在主要实验范围。建议代表 Figure：Figure 1 的 ViLex token 与文本组合生成示意，或视觉 token 重建/聚类图。
&lt;/p&gt;
&lt;h2&gt;LatentLM&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2412.08635.4cllx9e1jn.webp&quot; alt=&quot;&quot;&gt;
LatentLM 认为离散 token 会损失连续模态的信息，而把整幅图像交给一次扩散又难以与因果语言建模统一。它用 VAE 将图像、音频或视频压成连续 latent token；Transformer 按序读取这些 token，文本位置用分类头预测下一个离散 token，连续位置则由 diffusion head 进行 next-token diffusion。为避免自回归训练中的 variance collapse，作者提出 σ-VAE，让 latent 的方差保持可建模。&lt;/p&gt;
&lt;p&gt;图像生成实验在 ImageNet 上测试不同模型规模、分辨率、tokenizer 和推理吞吐；多模态实验覆盖交错图文、文本生图、图像描述和纯文本；语音实验则以文本和语音提示做 TTS，并与 VALL-E 2 比较。结果显示 LatentLM 的图像质量和扩展性优于若干 DiT/离散 token 基线，TTS 在说话人相似度、鲁棒性和解码步数上也有优势，且可复用 LLM 的 KV cache 与部署基础设施。&lt;/p&gt;
&lt;p&gt;局限是每个连续 token 仍需扩散采样，长视频/高分辨率会带来序列和计算压力；σ-VAE、噪声日程与 diffusion head 的稳定性需要精细调参。跨模态实验规模和数据覆盖不如成熟专用模型，统一接口的安全、编辑和交错生成能力仍待检验。建议代表 Figure：Figure 2 的连续/离散 token 统一建模与 next-token diffusion 流程。
&lt;/p&gt;
&lt;h2&gt;SynerGen-VL&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2412.09604.4ubnluff5o.webp&quot; alt=&quot;&quot;&gt;
SynerGen-VL 试图简化 encoder-free 统一模型的训练：复杂的双编码器、特殊生成头和多阶段配比会增加扩展难度，而直接把高分辨率图像展平又会耗尽上下文。它提出 token folding，在保留局部结构的同时把视觉 token 折叠成更短序列；训练时引入 vision expert 的 progressive alignment，先用专家提供稳定视觉监督，再逐步让语言模型承担统一 next-token 预测。&lt;/p&gt;
&lt;p&gt;模型以 InternLM2 类 LLM 为骨干，在大规模混合图文数据上进行对齐预训练和指令微调，支持高分辨率图像理解、caption、VQA 及图像生成。实验覆盖 TextVQA、DocVQA、GQA、AI2D、ChartQA、InfoVQA 等细粒度理解，以及 GenEval/DPG-Bench 等生成指标；在相近或更少激活参数下，结果达到或超过现有 encoder-free 统一模型，并缩小与专用 VLM 的差距。&lt;/p&gt;
&lt;p&gt;局限是 token folding 的压缩比与视觉细节存在权衡，复杂文档、极小文字和多图交错仍可能丢信息；vision expert 在训练期增加计算且可能把偏差蒸馏进模型。统一模型的生成质量仍受离散 tokenizer 和自回归速度限制，视频/音频未覆盖。建议代表 Figure：论文展示 token folding 和 vision-expert progressive alignment 的架构/训练图。
&lt;/p&gt;
&lt;h2&gt;MetaMorph&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2412.14164.7i13w78gli.webp&quot; alt=&quot;&quot;&gt;
MetaMorph 研究的是“统一能力是否能靠指令微调快速获得”，而非重新预训练一个多模态基础模型。VPiT 把图文交错样本整理成指令跟随格式，要求 LLaMA-3/3.1 同时预测离散文本 token 和连续视觉 token；视觉输入先由现成 encoder 提供，生成端用视觉 decoder 还原图像。作者先训练轻量 adapter，再解冻语言骨干做统一指令微调。&lt;/p&gt;
&lt;p&gt;实验通过控制理解数据、生成数据和两者配比，观察视觉生成是否伴随理解能力自然出现；最终 MetaMorph 使用 LLaMA-3.1 8B，在 MMBench、SEEDBench、MMMU、TextVQA、视频问答和 COCO/FID 等任务上，与 Janus、VILA-U、Emu3、Transfusion 等统一模型比较。结果支持两个结论：理解数据对两种能力的帮助更普遍，生成数据只需少量即可解锁视觉生成；LLM 的世界知识和推理先验能改善复杂 prompt 的图像生成。&lt;/p&gt;
&lt;p&gt;局限是方法依赖已有视觉 encoder、连续视觉 decoder 和高质量指令模板，并非完全从零的 any-to-any 模型；生成质量仍受视觉特征回归和固定分辨率限制。数据配比结论来自有限模型和任务，视频、编辑、安全及长交错输出尚缺系统评测。建议代表 Figure：VPiT 指令格式与“理解数据驱动生成涌现”的实验示意图。
&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/71875434_p0_master1200.7pvvr603z.webp"/><enclosure url="https://pic.hana0721.top/71875434_p0_master1200.7pvvr603z.webp"/></item><item><title>Paper Reading: MLLM 2</title><link>https://agusexp25.top/blog/paper-reading-mllm2</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-reading-mllm2</guid><description>读一些多模态相关的论文</description><pubDate>Fri, 26 Dec 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating, RatingCriteria } from &apos;@/components/advanced&apos;&lt;/p&gt;
&lt;h2&gt;LLaVA-OneVision&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/llava-onevision-architecture.13mhzu0qkp.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;LLaVA-OneVision 要解决的是开放多模态模型按场景割裂的问题：单图模型、交错多图模型和视频模型通常分别训练，视频能力的提升还常以牺牲静态图像性能为代价。它延续 LLaVA 的低成本路线，不引入复杂的跨模态专家，而是尝试让相同的视觉编码与语言解码接口覆盖单图、多图和视频，并通过训练顺序与 Token 分配促成跨场景 Task Transfer。论文的重点因此不只是刷新某个 Benchmark，而是证明强单图能力能够迁移到视频，多种已学技能还能组合出训练集中没有显式出现的新能力。&lt;/p&gt;
&lt;p&gt;网络仍然非常直接：SigLIP 负责把每个图像 Crop 或视频帧编码成网格特征，两层 MLP Projector 将视觉特征映射到语言 Embedding 空间，Qwen2 则作为自回归语言模型生成答案。作者提供 0.5B、7B 和 72B 三档 LLM，对应完整模型约为 0.8B、8.0B 和 73.2B。关键设计是 Higher AnyRes：高分辨率单图被切成多个 &lt;code&gt;384×384&lt;/code&gt; Crop，并保留一张全局缩略图；当视觉 Token 超过预算时，用双线性插值压缩每个 Crop 的特征，而不是直接降低输入分辨率。单图最多使用 &lt;code&gt;(1+9)×729=7290&lt;/code&gt; 个 Token，多图最多约为 &lt;code&gt;12×729=8748&lt;/code&gt; 个 Token，视频则把每帧压缩到 196 个 Token、最多取 32 帧，共 6272 个 Token。三种场景的总预算被控制在相近量级，使单图的长视觉序列更接近多帧序列，也降低迁移时的表示落差。&lt;/p&gt;
&lt;p&gt;训练采用 Curriculum Learning。Stage 1 用 558K 图文对只训练 Projector，完成语言与图像特征对齐；Stage 1.5 用约 4M 高质量知识数据训练完整模型，其中包括对 COCO118K、BLIP558K 和 CC3M 重描述得到的 3.5M 详细 Caption、Document/OCR 数据以及中文和语言指令数据，论文称这部分数据有 99.8% 为合成数据。Stage 2 先在 3.2M 单图指令上训练，再进行 OneVision Training：混合约 560K 多图样本、350K 视频样本和从前一阶段重采样的 800K 高质量单图样本，共约 1.6M。后续阶段均更新完整模型，视觉编码器学习率为 &lt;code&gt;2e-6&lt;/code&gt;，Projector 与 LLM 为 &lt;code&gt;1e-5&lt;/code&gt;；视觉 Token 上限也从 Stage 1 的 729 逐步扩到 AnyRes 下的 &lt;code&gt;729×10&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;结果覆盖三类场景。LLaVA-OneVision-72B 在单图任务上取得 AI2D 85.6、DocVQA 91.3、MathVista 67.5、MMBench 85.9 和 MMMU 56.8；多图任务上取得 Mantis 77.6、MuirBench 54.8；视频任务上取得 MLVU 68.0、VideoMME 66.2。它在多项指标上超过 GPT-4V，但与 GPT-4o 在复杂视觉聊天等真实场景上仍有距离。一个很有代表性的现象是，仅经过单图阶段的 7B Checkpoint 在 ActivityNet-QA 已达到 55.1，加入多图和视频训练后为 56.6，说明很多视频问题可以直接迁移单帧感知能力；而在需要长期或关系推理的 EgoSchema 上则从 52.9 提升到 60.1，更能体现专门视频数据的价值。论文还展示了图表联合理解、GUI 操作、Set-of-Mark、视频差异比较、多摄像头自动驾驶视频理解等组合能力。&lt;/p&gt;
&lt;p&gt;这套方法的边界同样需要注意。部分评测与训练数据存在重合，论文也明确把不少多图、多视角任务标为 In-Domain，因此不能把所有提升都归因于零样本迁移；所谓 Emerging Capability 主要是案例展示，缺少严格的因果消融。OneVision 阶段虽然大幅补强多图和视频，但一些单图指标会小幅回落，例如 72B 的 MMBench 从 86.6 降到 85.9、MMMU 从 57.4 降到 56.8，说明多场景混训仍有干扰。Higher AnyRes 的长视觉序列也带来显著显存和推理成本，而大量合成数据会继承教师模型偏差。最后，它统一的是视觉输入到文本回答的理解任务，并没有统一图像或视频生成；真实视觉聊天与 GPT-4o 的差距也被作者留作更强 LLM、更大数据和偏好学习的后续方向。&lt;/p&gt;
&lt;h2&gt;GPT 5&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/gpt-5-system-overview.96agsm8xd7.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;GPT-5 在系统卡里首先被定义为一个 System，而不是单一模型：&lt;code&gt;gpt-5-main&lt;/code&gt; 负责大多数低延迟请求，&lt;code&gt;gpt-5-thinking&lt;/code&gt; 为困难问题投入更多推理计算，实时 Router 根据对话类型、复杂度、工具需求和用户明确表达的意图选择模型。Router 会继续利用用户切换模型、回答偏好和正确率等真实信号训练；达到用量上限后，则由对应的 Mini 模型接管。API 还提供 Thinking Mini 和 Nano，ChatGPT 中的 Thinking Pro 则对同一个 Thinking 模型使用并行 Test-Time Compute。这个设计把“是否深思、使用多少计算”变成系统级调度问题，但系统卡也明确说这些能力当时尚未合并为一个单体模型。&lt;/p&gt;
&lt;p&gt;公开的训练信息相对有限。数据来自公开互联网、第三方合作来源，以及用户、人工训练员和研究人员提供或生成的内容，并经过质量、个人信息和敏感内容过滤。&lt;code&gt;gpt-5-thinking&lt;/code&gt; 系列通过 Reinforcement Learning 学习在回答前进行内部推理、尝试不同策略并识别错误；后训练还专门降低迎合用户的 Sycophancy，并让模型在工具失效、任务不可行或输入缺失时诚实失败。安全训练从传统的二元“回答或拒绝”转向 Safe-Completions：不只判断 Prompt 意图，而是直接约束输出风险，在政策边界内尽量提供仍然有用的高层信息。模型参数量、网络结构、训练 Token 数、数据配比和具体 RL 算法均未披露，因此这份材料更接近部署与安全报告，而不是可复现的技术论文。&lt;/p&gt;
&lt;p&gt;系统卡给出的改进主要集中在真实使用可靠性。对带浏览的 ChatGPT 生产流量，&lt;code&gt;gpt-5-main&lt;/code&gt; 的错误事实 Claim 比 GPT-4o 少 26%，包含至少一个重大事实错误的回答少 44%；&lt;code&gt;gpt-5-thinking&lt;/code&gt; 相比 OpenAI o3 分别减少 65% 和 78%。面对浏览、工具调用和代码场景的 Prompt Injection，Thinking 模型得分为 0.99、0.99 和 0.97，对应 OpenAI o3 的 0.89、0.80 和 0.94。它在 Coding Deception、工具损坏和缺失图像三项测试中的欺骗率分别为 0.17、0.11 和 0.09，也明显低于 o3 的 0.47、0.61 和 0.87。HealthBench Hard 从 o3 的 31.6% 提升到 46.2%，而系统卡还记录默认 API Verbosity 下 SWE-bench Verified 为 74.9%。这些结果说明提升不只来自更长推理，也来自工具使用、事实核查、失败处理和后训练行为的共同变化。&lt;/p&gt;
&lt;p&gt;更强能力也提高了风险门槛。OpenAI 以预防性原则把 &lt;code&gt;gpt-5-thinking&lt;/code&gt; 视为 Biological and Chemical 领域的 High Capability，尽管系统卡称尚无决定性证据证明它能让新手造成严重生物危害；Cybersecurity 和 AI Self-Improvement 则未达到 High。部署防护包含模型级 Safe-Completions、生物内容快速分类器与推理型二级 Monitor、账户执法、API 访问限制和 Trusted Access Program。外部评测并没有证明风险消失：Apollo 在专门诱发隐蔽行为的环境中测得 Thinking 的 Covert Action Rate 为 3.97%，虽低于 o3 的 8.24%，但以 Helpful-Only 方式构造的评测版本达到 28.36%；模型还会表现出一定的 Evaluation Awareness。&lt;/p&gt;
&lt;p&gt;这份系统卡也暴露出几个重要局限。首先，Router 会随线上信号持续更新，不同入口、用量状态和 Test-Time Compute 会改变实际行为，因而“GPT-5”并不是一个固定、容易复现实验的 Checkpoint。其次，幻觉只是下降而未消失：SimpleQA 无网页条件下 Thinking 的 Hallucination Rate 仍为 0.40，Main 为 0.47。&lt;code&gt;gpt-5-main&lt;/code&gt; 在部分 Instruction Hierarchy 和安全类别上还出现回退，例如恶意用户与开发者消息下的 Phrase Protection 分别只有 0.619 和 0.404。准备度评测本身也被系统卡视为能力下界，并会受 Verbosity、Scaffold 和 Elicitation 方法影响。最后，约 4% 的定向欺骗轨迹、High 生物风险分类以及未公开的模型与数据细节，都意味着更强 Benchmark 成绩不能替代持续监控、外部评测和系统级防护。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/70977889_p0_master1200.9gx5x526gc.webp"/><enclosure url="https://pic.hana0721.top/70977889_p0_master1200.9gx5x526gc.webp"/></item><item><title>Paper Reading: MLLM 1</title><link>https://agusexp25.top/blog/paper-reading-mllm1</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-reading-mllm1</guid><description>读一些多模态相关的论文</description><pubDate>Fri, 26 Dec 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating, RatingCriteria } from &apos;@/components/advanced&apos;&lt;/p&gt;
&lt;h2&gt;CLIP&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2103.00020.13mi0lkes8.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;研究动机：传统视觉模型依赖固定类别和人工标注，换任务就要重新训练；网络上已有大量带自然语言描述的图像，论文希望直接利用这些弱标注学习通用视觉概念。&lt;/p&gt;
&lt;p&gt;核心方法：CLIP 使用独立的图像编码器和文本编码器，把一批图文对的匹配样本拉近、非匹配样本推远，采用对称的对比损失训练。推理时把类别名写成文本提示，与图像特征比较相似度即可完成零样本预测，不需要为每个下游任务增加分类头。&lt;/p&gt;
&lt;p&gt;实验/数据：作者从互联网收集大规模图文对，并在 ImageNet 及多个分类、检索、细粒度识别和 OCR 数据集上测试零样本迁移，也比较了少量标注微调与线性探测效果。&lt;/p&gt;
&lt;p&gt;主要结论：自然语言监督能够替代一部分任务专用标注，模型在许多分布外数据上仍有可用的零样本能力；图文共享语义空间也成为后续视觉语言模型的通用接口。&lt;/p&gt;
&lt;p&gt;局限：网络字幕噪声和社会偏见会被模型继承；全局特征对精确定位、计数、文字识别和复杂组合关系不够敏感，提示词写法也会显著影响结果，预训练计算与数据规模很大。&lt;/p&gt;
&lt;p&gt;建议配图：论文 Figure 1（双编码器与零样本分类流程）。
&lt;/p&gt;
&lt;h2&gt;SigLip&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2303.15343.41ys4a5fwn.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;研究动机：CLIP 的 softmax 对比损失需要在整个 batch 内归一化，扩大 batch 才能提供足够多的负样本，训练通信和显存成本较高。论文希望让每个图文对独立判断是否匹配，降低对超大 batch 的依赖。&lt;/p&gt;
&lt;p&gt;核心方法：SigLIP 保留图像、文本双编码器，但把每个配对关系写成二元分类，匹配对标签为正、不匹配对为负，并使用 sigmoid loss 独立计算各对的损失。模型仍通过大规模图文预训练获得共享嵌入，可直接用于检索和零样本分类。&lt;/p&gt;
&lt;p&gt;实验/数据：作者在大规模网页图文数据上训练不同规模的 ViT 版本，并在 ImageNet 零样本分类、图文检索和迁移学习任务上与 CLIP 系列比较，同时测试不同 batch 大小和分辨率设置。&lt;/p&gt;
&lt;p&gt;主要结论：SigLIP 在不依赖全局 batch 归一化的情况下取得与 CLIP 相当或更好的效果，小 batch 训练更容易扩展到不同硬件；其嵌入也适合为后续多模态语言模型提供视觉特征。&lt;/p&gt;
&lt;p&gt;局限：模型仍是全局图文表示，不能自然地产生文字或像素级定位；网页数据的噪声、多语种覆盖和偏见没有被目标函数根本解决，细粒度组合推理仍需额外模块。&lt;/p&gt;
&lt;p&gt;建议配图：论文 Figure 1（sigmoid 对比损失与 CLIP softmax 的对比）。
&lt;/p&gt;
&lt;h2&gt;SigLipV2&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2502.14786.1zizg20zun.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;研究动机：原始 SigLIP 的全局对齐已经很强，但在局部定位、密集预测和多语种语义上仍有限；固定方形缩放也会损失文档、网页和宽幅图像中的空间信息。论文希望用统一训练配方改善这些能力。&lt;/p&gt;
&lt;p&gt;核心方法：SigLIP 2 以 sigmoid 图文目标为基础，加入 captioning、image-text matching、自蒸馏和 masked prediction 等辅助任务，并进行在线数据筛选与去偏。视觉编码器提供固定分辨率版本，也提供保留输入原生宽高比的 NaFlex 变体，使特征更适合检测、分割和视觉语言模型。&lt;/p&gt;
&lt;p&gt;实验/数据：训练数据覆盖更丰富的多语种图文来源，评测包括零样本分类、图文检索、视觉语言迁移、目标定位和密集预测，并比较不同模型规模、分辨率及训练目标的消融。&lt;/p&gt;
&lt;p&gt;主要结论：多目标训练并未牺牲全局对齐，反而在同等规模下改善语义理解、定位和 dense feature；原生宽高比模型对文档和非方形图像更实用，多语种与去偏数据也提升了跨语言表现。&lt;/p&gt;
&lt;p&gt;局限：训练配方更复杂、计算开销更高，辅助损失和数据配比需要调参；模型仍主要输出编码特征而非生成结果，对长链推理和开放式对话的能力取决于外接语言模型。&lt;/p&gt;
&lt;p&gt;建议配图：论文 Figure 1（SigLIP 2 多任务训练配方与模型变体）。
&lt;/p&gt;
&lt;h2&gt;Dino V1&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2104.14294.96agtdslk8.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;研究动机：监督预训练依赖昂贵标签，而无监督方法常只学到纹理或实例相似度。DINO 研究自蒸馏能否让视觉 Transformer 自己发现物体和部件的语义组织。&lt;/p&gt;
&lt;p&gt;核心方法：学生网络和教师网络结构相同，教师参数由学生参数的指数移动平均更新；同一图像的全局裁剪和局部裁剪分别送入两者，学生通过交叉熵匹配教师输出。中心化与 sharpening 稳定教师分布，多裁剪迫使模型在尺度变化下保持一致。&lt;/p&gt;
&lt;p&gt;实验/数据：论文在 ImageNet 无标签图像上预训练不同规模的 ViT 和 ResNet，并用线性分类、k-NN、图像检索、分割和注意力可视化评估表示质量。&lt;/p&gt;
&lt;p&gt;主要结论：DINO 的 ViT 注意力会自发聚焦物体区域，特征在分类、检索和分割迁移中表现出较好的语义泛化；EMA 教师和多裁剪是避免坍塌、获得结构化表示的关键。&lt;/p&gt;
&lt;p&gt;局限：训练仍需较大计算量和精心的增强/温度设置，注意力显著性不等于可靠的像素级分割；模型没有语言监督，对文字、跨模态对齐和细粒度关系理解有限。&lt;/p&gt;
&lt;p&gt;建议配图：论文 Figure 1（教师—学生自蒸馏与多裁剪流程）。
&lt;/p&gt;
&lt;h2&gt;Dino V2&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2304.07193.6m4mgqu7i7.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;研究动机：DINO 等自监督模型已经显示出迁移潜力，但数据规模、长训练稳定性和跨域鲁棒性仍不足。DINOv2 的目标是训练一个不依赖下游微调、可作为视觉基础模型的高质量特征提取器。&lt;/p&gt;
&lt;p&gt;核心方法：作者先从海量网页图像中筛选并去重出高质量、多样化的数据集，再结合 DINO 的全局自蒸馏、iBOT 的 masked patch prediction 与 KoLeo 特征均匀性正则。模型采用较大的 ViT，并通过蒸馏得到更小的可部署版本。&lt;/p&gt;
&lt;p&gt;实验/数据：预训练数据覆盖自然图像和不同领域的无标签图片；评测包含 ImageNet 线性探测、物体/语义分割、深度估计、检索以及跨域数据集，并比较冻结特征和少量微调两种设置。&lt;/p&gt;
&lt;p&gt;主要结论：数据清理与联合自监督目标让 DINOv2 在多种任务上提供稳定的通用特征，冻结骨干也能取得很强结果；它证明视觉基础模型不必依赖人工类别标签。&lt;/p&gt;
&lt;p&gt;局限：高质量数据管线和大规模预训练成本高，数据分布仍可能带来地域与内容偏差；特征不包含显式语言语义，生成、问答和需要精确几何推理的任务仍需专门模型。&lt;/p&gt;
&lt;p&gt;建议配图：论文 Figure 1（DINOv2 预训练与跨任务迁移示意）。
&lt;/p&gt;
&lt;h2&gt;Dino V3&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2508.10104.99u2r3tcwr.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;研究动机：自监督视觉模型在长训练和大规模扩展时，patch 级特征可能逐渐退化，导致密集任务收益停滞；同时同一骨干还要适应不同分辨率、模型大小和跨模态应用。DINOv3 试图把这些问题纳入一个可扩展的基础模型方案。&lt;/p&gt;
&lt;p&gt;核心方法：论文系统扩大数据、模型和优化设置，并提出 Gram anchoring，约束特征之间的 Gram 结构在训练中保持稳定，以减缓 dense feature 崩坏。训练完成后再用后处理策略调整输入分辨率、蒸馏不同尺寸模型，并与文本空间对齐，而不必重新端到端训练。&lt;/p&gt;
&lt;p&gt;实验/数据：数据涵盖自然、遥感等多种图像来源；作者在分类、检测、分割、深度、匹配和跨域密集任务上进行冻结特征评测，并比较不同模型规模、训练时长和后处理策略。&lt;/p&gt;
&lt;p&gt;主要结论：Gram anchoring 让长 schedule 下的局部特征保持可用，DINOv3 在无需微调的多项任务上超过此前自监督或弱监督基础模型；后处理提供了性能、分辨率和部署成本之间的灵活折中。&lt;/p&gt;
&lt;p&gt;局限：报告依赖极大规模数据和计算资源，完整训练配方与数据覆盖仍难以由普通研究者复现；文本对齐是后处理得到的，模型的细粒度语言理解和生成能力并非本文重点。&lt;/p&gt;
&lt;p&gt;建议配图：论文 Figure 1（Gram anchoring 与 DINOv3 整体训练流程）。
&lt;/p&gt;
&lt;h2&gt;ViLT&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2102.03334.6po8eglpfi.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;研究动机：当时主流视觉语言模型依赖 Faster R-CNN 区域特征，预处理慢、系统复杂且难以端到端扩展。ViLT 探索只用 patch embedding 是否足以完成图文理解。&lt;/p&gt;
&lt;p&gt;核心方法：图像被切成 patch，经线性投影后与文本 token 拼成序列，由单个 Transformer 编码器处理。预训练联合使用 masked language modeling、image-text matching 和 word-patch alignment 等目标，视觉侧不再运行区域提议网络。&lt;/p&gt;
&lt;p&gt;实验/数据：作者在 Conceptual Captions、SBU、GQA 等图文数据上预训练，并在图文检索、视觉问答、视觉蕴含和 NLVR2 等任务上与区域特征模型比较，也报告了推理速度和参数效率。&lt;/p&gt;
&lt;p&gt;主要结论：简单 patch 表示能以更低的预处理成本获得有竞争力的跨模态结果，证明视觉语言 Transformer 不必绑定目标检测器；端到端结构更容易迁移到新的分辨率和任务。&lt;/p&gt;
&lt;p&gt;局限：缺少区域检测器带来的显式物体归纳偏置，在细粒度定位、复杂文字和高分辨率场景上较弱；统一 Transformer 仍需大量图文预训练，早期版本的语言生成能力有限。&lt;/p&gt;
&lt;p&gt;建议配图：论文 Figure 1（ViLT patch-token 序列与预训练目标）。
&lt;/p&gt;
&lt;h2&gt;ALBEF&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2107.07651.pg29qc418.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;研究动机：直接在 cross-modal encoder 中融合会把模糊或错配的网页字幕传播到表示中；但只做独立编码又缺乏细粒度交互。ALBEF 提出先对齐、后融合的训练顺序来稳定学习。&lt;/p&gt;
&lt;p&gt;核心方法：图像编码器和文本编码器先通过 image-text contrastive loss 学习全局对齐，再把两者送入 cross-attention 模块进行 image-text matching 和 masked language modeling。动量编码器产生更平滑的目标分布，配合 hard negative mining 和 momentum distillation 为噪声样本提供软监督。&lt;/p&gt;
&lt;p&gt;实验/数据：预训练使用多个公开图文数据集，随后在图文检索、视觉问答、视觉蕴含和 NLVR2 等任务上微调，并做损失组合、动量教师及负样本策略的消融。&lt;/p&gt;
&lt;p&gt;主要结论：先对齐可提升跨模态融合的样本效率，动量蒸馏能从噪声网页数据中提取更稳定的监督；模型在检索和理解任务上都达到当时强基线。&lt;/p&gt;
&lt;p&gt;局限：需要两套编码器、动量队列和负样本管理，训练与部署复杂度高；软标签仍可能放大数据偏差，模型主要面向判别式理解，开放式生成与精确空间推理不是重点。&lt;/p&gt;
&lt;p&gt;建议配图：论文 Figure 1（align-before-fuse 两阶段架构）。
&lt;/p&gt;
&lt;h2&gt;VLMo&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2111.02358.4n8fqenwi1.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;研究动机：视觉语言预训练通常为单模态和跨模态任务维护不同网络，参数重复且难以联合扩展；完全共享又会让视觉和语言的统计规律互相干扰。VLMo 试图用一个可切换的 Transformer 兼顾二者。&lt;/p&gt;
&lt;p&gt;核心方法：MoME-Transformer 共享 self-attention，同时为视觉、文本和视觉语言输入提供不同的 feed-forward experts，并用路由选择相应专家。预训练先进行单模态学习，再逐步加入图文对齐与融合目标，使同一骨干获得多种工作模式。&lt;/p&gt;
&lt;p&gt;实验/数据：作者在大规模图文对和单模态语料上训练，并评估图文检索、视觉问答、视觉蕴含和 NLVR2；消融比较专家共享方式、训练阶段和路由策略。&lt;/p&gt;
&lt;p&gt;主要结论：模态专属专家能保留单模态表示能力，同时共享注意力促进跨模态交互；统一模型在多项理解任务上超过分别训练或简单拼接的基线。&lt;/p&gt;
&lt;p&gt;局限：专家路由增加参数、显存和实现复杂度，训练顺序与任务配比较敏感；模型仍是编码式架构，对长文本生成、复杂对话和像素级输出支持有限。&lt;/p&gt;
&lt;p&gt;建议配图：论文 Figure 1（MoME Transformer 的共享/专属模块）。
&lt;/p&gt;
&lt;h2&gt;BLIP&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2201.12086.pg29qcw87.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;研究动机：网页图文对经常错配、字幕简短或包含无关信息；同时已有模型往往只擅长检索/问答或只擅长描述生成。BLIP 希望在同一个预训练框架中兼顾两类能力并清理训练信号。&lt;/p&gt;
&lt;p&gt;核心方法：模型包含图像编码器、文本编码器和带跨注意力的文本解码器，联合优化 image-text contrastive、image-text matching 与 language modeling。CapFilt 先用 captioner 为网页图像生成候选字幕，再由 filter 判断并剔除不匹配文本，把合成数据与原始数据一起训练。&lt;/p&gt;
&lt;p&gt;实验/数据：预训练混合网页图文与 COCO、Visual Genome 等标注数据，覆盖图文检索、图像描述、视觉问答、视觉对话和基于图像的文本生成；论文还比较了不同过滤阈值与模型规模。&lt;/p&gt;
&lt;p&gt;主要结论：合成并过滤字幕能显著提高噪声数据的有效性，统一的 encoder-decoder 在理解和生成任务之间取得较好平衡；BLIP 也为后续 BLIP-2 的视觉语言接口提供了基础。&lt;/p&gt;
&lt;p&gt;局限：CapFilt 质量依赖 captioner 和过滤器，可能引入模型偏见；多任务训练和解码器使模型比纯双编码器更重，对高分辨率定位、复杂推理及开放世界事实性仍有限。&lt;/p&gt;
&lt;p&gt;建议配图：论文 Figure 1（BLIP 架构与 CapFilt 数据引导流程）。
&lt;/p&gt;
&lt;h2&gt;CoCa&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2205.01917.96agtdte43.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;研究动机：对比学习擅长学习全局语义但不能生成文字，自回归 captioning 能生成却未必保持跨模态检索结构。CoCa 探索用共享图像编码器和文本解码器把两种训练信号结合起来。&lt;/p&gt;
&lt;p&gt;核心方法：文本 Transformer 前半段以自注意力得到 unimodal text embedding，与图像 embedding 做 contrastive loss；后半段加入图像 cross-attention，按因果顺序预测 caption token。图像侧使用大规模视觉编码器，两个目标共享参数并联合优化。&lt;/p&gt;
&lt;p&gt;实验/数据：模型在大规模图文数据上预训练，并测试零样本分类、图文检索、图像描述、视觉问答和少量下游迁移；实验还比较只用对比或只用生成目标的版本。&lt;/p&gt;
&lt;p&gt;主要结论：对比和生成目标可以互补，单一骨干既保留强零样本分类/检索，又具备高质量描述能力；该设计为视觉语言模型接入语言解码器提供了简洁范式。&lt;/p&gt;
&lt;p&gt;局限：自回归解码推理慢于双编码器，文本生成仍受网页字幕质量影响；模型以全局图像条件为主，对局部定位、计数和长链视觉推理支持不足，训练数据与算力门槛也很高。&lt;/p&gt;
&lt;p&gt;建议配图：论文 Figure 1（CoCa 的 unimodal/ multimodal decoder 分工）。
&lt;/p&gt;
&lt;h2&gt;BEiT V3&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2208.10442.8adzdxjqg5.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;研究动机：图像和文字通常由两套预训练骨干处理，跨模态模型难以共享大规模表示学习；论文希望用统一 Transformer 同时吸收纯图像、纯文本和图文数据。&lt;/p&gt;
&lt;p&gt;核心方法：BEiT-3 采用 Multiway Transformer，共享 self-attention，视觉和文本使用各自的 feed-forward expert。图像先由视觉 tokenizer 转为离散视觉词，文本使用子词 token；两种模态都进行 masked data modeling，并在图文阶段加入匹配和任务微调。&lt;/p&gt;
&lt;p&gt;实验/数据：预训练混合图文对、ImageNet 类纯图像和文本语料，评测覆盖图像分类、图文检索、视觉问答、视觉蕴含和 NLVR2 等任务，比较共享骨干与模态专属专家的效果。&lt;/p&gt;
&lt;p&gt;主要结论：统一的掩码建模和专家路由能让同一模型在视觉、语言及跨模态任务上都保持竞争力；共享注意力促进迁移，而专家隔离减轻了模态间干扰。&lt;/p&gt;
&lt;p&gt;局限：视觉 tokenizer 和大规模预训练管线复杂，离散化可能损失细节；模型主要输出编码/分类结果而非开放式图像生成，训练数据规模和计算资源不易复现。&lt;/p&gt;
&lt;p&gt;建议配图：论文 Figure 1（BEiT-3 Multiway Transformer 与三种数据流）。
&lt;/p&gt;
&lt;h2&gt;BLIP2&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2301.12597.4ubnlua3fi.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;研究动机：端到端更新视觉模型和大语言模型需要巨大算力，并容易破坏语言能力。BLIP-2 试图在两者之间学习一个小而通用的接口，让已有单模态模型直接协同工作。&lt;/p&gt;
&lt;p&gt;核心方法：Q-Former 使用一组可学习 query 从冻结视觉编码器提取与文本相关的少量视觉特征；第一阶段通过对比、匹配和视觉条件生成对齐视觉与查询，第二阶段用线性投影把查询接入冻结的 OPT 或 FlanT5，并训练图像到文本生成目标。&lt;/p&gt;
&lt;p&gt;实验/数据：预训练使用图文描述和网页数据，评测包含零样本图像描述、视觉问答、知识型 VQA、视觉对话和指令跟随；论文还测试不同视觉编码器、LLM 及查询数量的组合。&lt;/p&gt;
&lt;p&gt;主要结论：Q-Former 这一窄接口足以把冻结视觉表征传给不同 LLM，训练参数和成本远低于端到端方案，同时获得较强的描述、问答和跨模态生成能力。&lt;/p&gt;
&lt;p&gt;局限：冻结视觉编码器会限制领域适应和细粒度空间理解，固定数量 query 可能丢失小目标与文字；语言模型的先验也会造成幻觉，模型并非真正的像素级 grounding 或复杂图像推理系统。&lt;/p&gt;
&lt;p&gt;建议配图：论文 Figure 1（Q-Former 连接冻结视觉编码器和冻结 LLM 的两阶段训练）。
&lt;/p&gt;
&lt;h2&gt;LLava&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2304.08485.8okf4ssskf.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;研究动机：已有视觉语言预训练模型在固定任务上很强，却不能像通用聊天模型一样遵循自然语言指令。LLaVA 研究能否用简单视觉接口和高质量指令数据，把语言模型的对话与推理能力迁移到图像场景。&lt;/p&gt;
&lt;p&gt;核心方法：图像由 CLIP ViT 编码，经线性 projector 映射到 Vicuna 的词向量空间，并与用户文本拼接输入。训练分为图文特征对齐和视觉指令微调两阶段，后者使用 GPT-4 根据图像描述、问答和复杂推理模板生成多轮对话。&lt;/p&gt;
&lt;p&gt;实验/数据：作者在 COCO 等图文数据上做对齐，再用视觉指令对评测通用 VQA、图像对话、科学图表和视觉推理基准，并进行人工对话质量比较。&lt;/p&gt;
&lt;p&gt;主要结论：语言模型原有的指令跟随和解释风格能够通过轻量 projector 迁移到视觉输入，LLaVA 以较小工程复杂度建立了开源 MLLM 的强基线。&lt;/p&gt;
&lt;p&gt;局限：合成指令继承 GPT-4 的偏差和幻觉，单一图像 token 化方式对高分辨率 OCR、精确定位和多图关系支持不足；模型的知识主要来自语言先验，回答不一定由图像证据支撑。&lt;/p&gt;
&lt;p&gt;建议配图：论文 Figure 1（视觉 projector 与两阶段视觉指令调优）。
&lt;/p&gt;
&lt;h2&gt;Flamingo&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2204.14198.3k8qfltlzv.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;研究动机：大语言模型通常只看文本，视觉模型又需要每个任务单独训练；更现实的多模态场景还包含图文交错和视频。Flamingo 希望尽量冻结已有模型，只增加少量模块，就能在新任务上用几个示例完成适应。&lt;/p&gt;
&lt;p&gt;核心方法：冻结视觉 backbone 和 Chinchilla 类语言模型，用 Perceiver Resampler 把可变数量的图像或视频特征压缩成固定视觉 token，并在语言模型层间插入零初始化的 gated cross-attention。训练数据采用图文交错网页序列，语言模型自回归预测文本，支持图像、视频和文本混排。&lt;/p&gt;
&lt;p&gt;实验/数据：预训练混合网页交错数据、单图文对和视频文本数据；评测覆盖少样本图像问答、图像描述、视觉对话、视频问答及多种检索任务，并与需要全量微调的模型比较。&lt;/p&gt;
&lt;p&gt;主要结论：冻结骨干加少量跨注意力模块即可获得很强的 few-shot 多模态迁移，交错上下文让模型能在一个提示中引用多张图和视频帧。&lt;/p&gt;
&lt;p&gt;局限：训练数据、模型权重和大部分基础设施不公开，复现门槛高；视觉 token 压缩会损失细节，少样本性能受示例顺序影响，模型仍会产生事实幻觉和社会偏见。&lt;/p&gt;
&lt;p&gt;建议配图：论文 Figure 1（Perceiver Resampler 与 gated cross-attention 结构）。
&lt;/p&gt;
&lt;h2&gt;Visual Instruction Tuning&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2304.08485.8okf4ssskf.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;研究动机：视觉问答数据往往只覆盖单一问题类型，不能训练出可交互的通用助手；同时高质量人工多轮视觉指令数据稀缺。该工作把“如何构造指令数据并调优语言模型”作为视觉语言助手的关键问题。&lt;/p&gt;
&lt;p&gt;核心方法：沿用 CLIP 视觉编码器、线性投影和 Vicuna 语言模型，将图像特征作为序列前缀。先用图像字幕做特征对齐，再把 GPT-4 改写的对话、详细描述和复杂问答统一为 next-token 监督，训练模型生成完整回答而非额外分类标签。&lt;/p&gt;
&lt;p&gt;实验/数据：视觉指令数据包含单轮问答、多轮对话、详细描述和视觉推理，评测覆盖通用 VQA、图像对话、OCR/图表和科学问题，并通过人工偏好比较回答的有用性与一致性。&lt;/p&gt;
&lt;p&gt;主要结论：数据格式和质量对能力提升与模型结构同样重要；在不改变语言模型主体的情况下，视觉指令调优就能产生可用的开放式图像对话能力，并推动后续开源复现。&lt;/p&gt;
&lt;p&gt;局限：指令由强语言模型合成，存在风格与事实偏差；模型对小字、空间关系和需要外部知识的题目仍不稳，回答可能出现视觉幻觉。&lt;/p&gt;
&lt;p&gt;建议配图：论文 Figure 2（视觉指令数据类型与训练样例）。
&lt;/p&gt;
&lt;h2&gt;Qwen-VL&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2308.12966.9rk4fophci.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;研究动机：早期 MLLM 多把图像压成低分辨率全局特征，中文、多图、文字识别和目标定位能力不足。Qwen-VL 希望在保持大语言模型对话能力的同时，显式学习视觉空间信息。&lt;/p&gt;
&lt;p&gt;核心方法：图像经过视觉编码器和视觉语言适配器映射为一串视觉 token，再与 Qwen-7B 文本序列联合建模；训练中加入图文对齐、图像描述、问答、OCR 以及带边界框坐标的 grounding 任务。模型提供基础版和更强的聊天版，支持中英文指令和多图交互。&lt;/p&gt;
&lt;p&gt;实验/数据：预训练与指令调优混合网页图文、中文图文、OCR/文档和检测标注，并在通用 VQA、OCR、图像描述、视觉对话、引用表达和 grounding 基准上测试。&lt;/p&gt;
&lt;p&gt;主要结论：显式坐标监督和较高输入分辨率显著增强文字识别、目标定位及中文对话，Qwen-VL 也说明开源 LLM 可以通过视觉适配器扩展为通用助手。&lt;/p&gt;
&lt;p&gt;局限：视觉 token 数量和高分辨率带来显存与延迟压力，复杂场景仍会漏检小目标；坐标与文本生成容易受语言先验干扰，模型在开放世界事实性和安全拒答上仍需额外校准。&lt;/p&gt;
&lt;p&gt;建议配图：论文 Figure 1（Qwen-VL 视觉编码、坐标 token 和对话接口）。
&lt;/p&gt;
&lt;h2&gt;Gemini&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/gemini-01.4cllwlb3wg.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;研究动机：把视觉编码器外挂到文本 LLM 往往难以处理交错模态、长视频和跨模态推理；论文报告 Gemini 系列从训练阶段就联合建模多种输入，目标是让一个模型在不同模态间迁移知识。&lt;/p&gt;
&lt;p&gt;核心方法：技术报告披露 Gemini 使用 decoder-only Transformer 和统一的多模态 token/序列接口，支持图文交错、音频和视频帧输入；同时提供面向端侧的 Nano、通用的 Pro 以及高能力的 Ultra，并配合监督微调、人类偏好优化和安全评测。&lt;/p&gt;
&lt;p&gt;实验/数据：训练数据包含网页文本、图像、音频、视频及多模态文档，具体配比未完全公开；评测覆盖学科知识、数学、代码、图像理解、OCR、视频/音频理解、跨模态推理和安全性。&lt;/p&gt;
&lt;p&gt;主要结论：原生多模态训练能在长上下文、跨模态组合和多项学术基准上取得强表现，不同规模模型可在能力与成本之间取舍；报告也强调了安全过滤和分层部署的重要性。&lt;/p&gt;
&lt;p&gt;局限：架构细节、数据来源和训练配方大多未公开，外部难以完全复现；报告中的基准选择与污染风险难独立核验，模型仍可能产生幻觉、偏见和不安全建议。&lt;/p&gt;
&lt;p&gt;建议配图：技术报告 Figure 1（Gemini 多模态输入与模型家族概览）。
&lt;/p&gt;
&lt;h2&gt;GPT-4V&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/gpt4v-01.2vfguu6z7w.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;研究动机：为 GPT-4 增加图像输入会带来 OCR、图表推理、面部与地理识别等新能力，也会引入隐私、偏见和危险建议风险。系统卡的目标是公开已知能力边界与安全测试结果，帮助部署者评估风险。&lt;/p&gt;
&lt;p&gt;核心方法：文档不披露 GPT-4V 的具体视觉编码器或训练细节，而是描述端到端产品评测流程：使用公开样例、内部测试集和红队提示，检查视觉问答、文字/图表理解、医学与科学图像、敏感属性推断、网络安全及越权行为，并配套拒答策略、内容过滤和人工审核。&lt;/p&gt;
&lt;p&gt;实验/数据：评测覆盖普通照片、文档、手写体、图表、医学图像和多语言文字，另有针对隐私、仇恨、错误信息和高风险专业建议的对抗测试；许多样例与数据集未公开。&lt;/p&gt;
&lt;p&gt;主要结论：GPT-4V 展现出较强的通用视觉理解和跨模态推理，但在小字、空间关系、事实核验和敏感内容上仍会出错；系统卡把“能力提升”与“新增风险”同时列为上线约束。&lt;/p&gt;
&lt;p&gt;局限：这是产品安全文档而非可复现实验论文，模型结构、数据和完整指标不透明；红队覆盖不可能穷尽真实使用情境，缓解措施也可能随版本更新而改变。&lt;/p&gt;
&lt;p&gt;建议配图：系统卡中的能力/风险评测框架图（通常为 Figure 1 或 Overview 图）。
&lt;/p&gt;
&lt;h2&gt;LISA&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2308.00692.4ubnm0dyq8.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;研究动机：传统 referring segmentation 处理“图中左边的狗”这类短指令，却难以回答包含常识、属性比较或多步推理的指代问题；纯 LLM 又只能生成文字，无法给出像素级区域。LISA 将语言推理和分割输出放到同一对话中。&lt;/p&gt;
&lt;p&gt;核心方法：模型采用 CLIP 视觉编码器和 LLaVA/Vicuna 类语言模型，语言模型生成特殊的 &lt;code&gt;SEG&lt;/code&gt; token；该 token 的隐藏状态经投影后作为 SAM mask decoder 的提示，输出目标掩码。训练先进行视觉—语言特征对齐，再用普通指代分割与带推理解释的 LISA-Chat 指令数据联合微调。&lt;/p&gt;
&lt;p&gt;实验/数据：评测覆盖 ReasonSeg、RefCOCO 系列、复杂场景语义分割和视觉对话，比较是否加入推理文本、SAM 适配器及不同视觉特征的消融。&lt;/p&gt;
&lt;p&gt;主要结论：一个离散 token 就能把语言模型的推理决策传给像素解码器，模型在复杂指代和需要解释的分割问题上优于只做短指令的基线。&lt;/p&gt;
&lt;p&gt;局限：掩码质量受 SAM 分辨率和候选特征影响，小目标、边界和歧义指代仍易失败；推理文本可能看似合理但与掩码不一致，训练数据中的合成解释也会带来偏差。&lt;/p&gt;
&lt;p&gt;建议配图：论文 Figure 1（&lt;code&gt;SEG&lt;/code&gt; token 连接 LLM 与 SAM 的流程）。
&lt;/p&gt;
&lt;h2&gt;Cambrian-1&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2406.16860.wja562zmz.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;研究动机：许多 MLLM 把主要容量和调参放在语言模型，视觉输入却被压缩成少量低分辨率 token，导致细节、文字和空间关系不足。Cambrian-1 反过来系统研究视觉编码器选择、特征层级和视觉—语言连接器。&lt;/p&gt;
&lt;p&gt;核心方法：模型组合多个互补视觉编码器（语义、局部和高分辨率特征），通过 Spatial Vision Aggregator 在空间上对齐、融合并压缩多层 token，再接入开源 LLM。作者还设计视觉语言适配器和高分辨率分支，使同一语言骨干能处理不同尺寸图像。&lt;/p&gt;
&lt;p&gt;实验/数据：训练使用公开图文预训练数据、合成/人工筛选的视觉指令数据和高分辨率任务样本；在 MMBench、MMMU、MathVista、OCR、图表、定位及多种视觉问答基准上比较不同编码器、连接器和分辨率设置。&lt;/p&gt;
&lt;p&gt;主要结论：视觉编码器组合与空间聚合对 MLLM 质量的影响不亚于更换 LLM，vision-centric 配置在细粒度理解和高分辨率任务上显著增强，并提供了较开放的训练配方。&lt;/p&gt;
&lt;p&gt;局限：多编码器需要重复计算和更大显存，工程部署复杂；模型能力仍依赖语言骨干与合成指令数据，视频、音频、长时序和像素级生成不在主要覆盖范围内。&lt;/p&gt;
&lt;p&gt;建议配图：论文 Figure 1（Cambrian-1 多视觉编码器与 Spatial Vision Aggregator）。
&lt;/p&gt;
&lt;h2&gt;Qwen2-VL&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2409.12191.70b27m5okf.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;研究动机：固定分辨率会裁掉文档和长宽幅图像的内容，均匀采样视频又难以表达时间关系；同时 MLLM 需要更可靠的坐标和细粒度文字理解。Qwen2-VL 以“任意分辨率与时间”作为核心设计目标。&lt;/p&gt;
&lt;p&gt;核心方法：Naive Dynamic Resolution 把图像按内容切成可变网格并保留相应数量的视觉 token，减少强制缩放的信息损失；M-RoPE 将位置拆为时间、高度、宽度三轴，让图像和视频共享位置机制。模型还加入窗口注意力、视频时间戳以及框/点坐标 token，支持多图和视频对话。&lt;/p&gt;
&lt;p&gt;实验/数据：预训练与指令调优混合多语种图文、文档/OCR、视频字幕和 grounding 数据；评测覆盖通用 VQA、数学图表、OCR、视频理解、指代表达和目标定位，并比较固定分辨率与动态分辨率。&lt;/p&gt;
&lt;p&gt;主要结论：动态 token 和 M-RoPE 提升了不同宽高比、长视频及空间定位任务的表现，Qwen2-VL 在中文、多语言和文档场景中更实用，同时保持通用对话能力。&lt;/p&gt;
&lt;p&gt;局限：高分辨率或长视频会线性增加 token、显存和延迟，窗口化可能损失全局关系；模型仍会幻觉或误读小字，坐标输出的稳定性依赖指令格式和数据覆盖。&lt;/p&gt;
&lt;p&gt;建议配图：论文 Figure 1（Naive Dynamic Resolution 与 M-RoPE 三轴位置编码）。
&lt;/p&gt;
&lt;h2&gt;Qwen2.5-VL&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2502.13923.5flb85ammg.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;研究动机：真实应用不仅需要看懂单张图片，还要处理长视频、密集文字、复杂文档和带坐标的操作指令。Qwen2.5-VL 试图把这些能力统一到一个可对话模型，而不是依赖多个专用工具。&lt;/p&gt;
&lt;p&gt;核心方法：视觉编码器采用更细粒度的窗口注意力和动态分辨率策略，视频按内容自适应采样并显式编码绝对时间；语言侧延续多模态旋转位置编码，输出边界框、点和时间区间等结构化坐标。训练中加入文档解析、图表/OCR、长视频问答、指令跟随和视觉代理轨迹，使模型能生成动作与工具调用格式。&lt;/p&gt;
&lt;p&gt;实验/数据：数据覆盖多语种图文、PDF/表格、合成文字渲染、视频和 GUI 操作轨迹；评测包括通用 VQA、OCR、数学、视频理解、空间 grounding、文档解析及代理任务，并报告不同规模模型的迁移结果。&lt;/p&gt;
&lt;p&gt;主要结论：改进后的视觉编码与时间表示显著增强了长视频、文字密集图像和空间指令能力，模型在通用对话之外可以作为文档助手或视觉代理的基础模型。&lt;/p&gt;
&lt;p&gt;局限：长序列的推理成本和显存占用仍高，代理动作对页面变化和错误恢复不够稳；报告数据与评测管线复杂，模型在细小文字、罕见布局和开放世界事实性上仍可能出错。&lt;/p&gt;
&lt;p&gt;建议配图：论文 Figure 1（Qwen2.5-VL 图像/视频编码与代理输出示意）。
&lt;/p&gt;
&lt;h2&gt;InstructBLIP&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2305.06500.8okf4ssspw.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;研究动机：BLIP-2 的 Q-Former 用固定 query 抽取视觉信息，但不同任务需要关注不同区域和语义；同时仅靠图文预训练不能保证模型遵循自然语言指令。InstructBLIP 将指令注入视觉抽取阶段。&lt;/p&gt;
&lt;p&gt;核心方法：冻结图像编码器和大语言模型，使用 instruction-aware Q-Former：文本指令与 learnable query 一起参与 cross-attention，使 query 选择与任务相关的视觉内容。模型在多个视觉语言任务上统一成指令—回答格式，并用生成目标微调语言模型接口。&lt;/p&gt;
&lt;p&gt;实验/数据：作者把多类公开数据集改写为自然语言指令，覆盖图像描述、通用/知识型 VQA、视觉推理、检索和视觉对话；实验比较不同指令模板、冻结策略、query 数量及 BLIP-2 基线。&lt;/p&gt;
&lt;p&gt;主要结论：让指令参与视觉特征抽取比只在 LLM 端提示更有效，单一模型能在未见任务上进行零样本或少样本迁移，说明任务条件化的视觉瓶颈具有通用性。&lt;/p&gt;
&lt;p&gt;局限：冻结骨干限制了新领域适应，高分辨率定位和 OCR 仍不理想；多任务指令混合易产生任务冲突，模型回答仍可能受语言先验影响而产生幻觉。&lt;/p&gt;
&lt;p&gt;建议配图：论文 Figure 1（instruction-aware Q-Former 与任务统一格式）。
&lt;/p&gt;
&lt;h2&gt;LLaMA-Adapter&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2303.16199.7axw0rhq0q.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;研究动机：全量微调大语言模型成本高且容易破坏原有语言能力，研究者需要在有限显存下快速把 LLaMA 扩展到图像对话。LLaMA-Adapter 探索参数高效的视觉注入方式。&lt;/p&gt;
&lt;p&gt;核心方法：图像由预训练视觉编码器提取特征，经投影得到视觉提示 token，并通过零初始化 attention 或适配层注入 LLaMA 的高层。文本主干大部分冻结，只更新适配器、视觉投影和少量归一化/偏置参数，再用视觉指令对进行监督微调。&lt;/p&gt;
&lt;p&gt;实验/数据：训练使用图文描述和视觉问答/对话指令数据，评测图像描述、VQA、视觉对话及通用指令跟随，并比较全量微调、不同注入层和参数量的效果。&lt;/p&gt;
&lt;p&gt;主要结论：极少的可训练参数也能保留 LLaMA 的语言能力并获得可用视觉对话，零初始化使训练初期接近原始语言模型、稳定性较好。&lt;/p&gt;
&lt;p&gt;局限：适配器容量有限，复杂视觉推理、OCR 和空间 grounding 弱于全量训练模型；性能依赖视觉编码器与指令数据质量，低资源场景仍可能出现幻觉。&lt;/p&gt;
&lt;p&gt;建议配图：论文 Figure 1（视觉提示注入 LLaMA 的适配器结构）。
&lt;/p&gt;
&lt;h2&gt;VisionLLM&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2305.11175.b9miv5e2v.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;研究动机：检测、分割、姿态和问答通常各自维护模型与输出头，任务扩展和人机交互成本高。VisionLLM 试图用语言指令描述任务，让一个 LLM 负责多种视觉输出并支持开放式组合。&lt;/p&gt;
&lt;p&gt;核心方法：视觉编码器产生图像 token，经过连接器送入 LLM；提示中指定任务、类别或区域格式，语言模型以文本 token 和特殊视觉 token 自回归解码。专用的视觉解码器把这些 token 还原为边界框、掩码、关键点等结构化结果，并用统一的视觉指令调优目标训练。&lt;/p&gt;
&lt;p&gt;实验/数据：训练混合检测、实例/语义分割、姿态估计、图像描述和视觉问答数据，评测覆盖 COCO、ADE20K、Visual Genome 及多种开放式视觉任务，并做任务指令、输出格式和多任务配比消融。&lt;/p&gt;
&lt;p&gt;主要结论：语言接口可以统一不同视觉任务并支持任务间迁移，模型还能在同一对话中根据指令切换输出类型，为视觉系统增加了更灵活的交互方式。&lt;/p&gt;
&lt;p&gt;局限：把坐标和掩码序列化为 token 会增加长度与解码延迟，精确几何输出仍不如专用头稳定；多任务数据和格式设计复杂，模型对未覆盖任务、长图像和细粒度文字的泛化有限。&lt;/p&gt;
&lt;p&gt;建议配图：论文 Figure 1（VisionLLM 统一视觉指令与多任务解码流程）。
&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/70434530_p0_master1200.b9htgy5uw.webp"/><enclosure url="https://pic.hana0721.top/70434530_p0_master1200.b9htgy5uw.webp"/></item><item><title>Paper Reading: MARL 1</title><link>https://agusexp25.top/blog/paper-reading-marl1</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-reading-marl1</guid><description>回来吧MARL，我最骄傲的信仰。</description><pubDate>Fri, 26 Dec 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating, RatingCriteria } from &apos;@/components/advanced&apos;&lt;/p&gt;
&lt;h2&gt;前言&lt;/h2&gt;
&lt;p&gt;博主制作这篇博客时，已弃坑MARL，仅留作纪念，怀念最初的感觉。&lt;/p&gt;
&lt;h2&gt;VDN&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/1706.05296.2oc902grkw.webp&quot; alt=&quot;&quot;&gt;
VDN（Value-Decomposition Networks）针对合作任务只有一个团队回报、而每个智能体只能看到局部历史的问题。直接把所有观测和动作拼成一个中央 Q 网络会遭遇组合爆炸；独立学习又会把队友的探索误认为环境噪声，甚至出现“lazy agent”——一个智能体承担几乎全部工作，另一个因为尝试动作会降低团队回报而学会不行动。VDN 的出发点是仍然使用团队回报，但把信用分配交给一个可学习的价值分解。&lt;/p&gt;
&lt;p&gt;方法用每个智能体的循环 Q 网络产生 &lt;code&gt;Qi(τi, ai)&lt;/code&gt;，再以简单加法构成 &lt;code&gt;Qtot = Σi Qi&lt;/code&gt;。训练时用完整团队转移和总回报反向传播，隐式地学习每个局部 Q 的贡献；执行时只需每个智能体独立选择 &lt;code&gt;argmax Qi&lt;/code&gt;，因为加法保证局部贪心与联合贪心一致。论文还将 LSTM、多步 TD、dueling 结构与参数共享、角色信息和低/高层通信作为可组合增强，而不是把额外奖励手工写给某个智能体。&lt;/p&gt;
&lt;p&gt;实验是在部分可观测的二维协作迷宫中进行：两个智能体分别测试 Switch（狭窄通道换位）、Fetch（交替取物并送回）和 Checkers（不同奖励敏感度的苹果/柠檬）等七个任务，每种设置用多个随机种子比较独立学习者和中央控制器。价值分解在归一化学习曲线和最终回报上都明显优于这两类基线；在 Fetch 中，网络学出的两个局部 Q 会分别提前响应取物和交付事件，说明它确实从单一团队回报中形成了有意义的信用分配。共享权重与角色标识能缓解惰性问题，低层通信在需要互相观察的 Checkers 上也有帮助。&lt;/p&gt;
&lt;p&gt;局限是加法分解的表达能力很窄，无法描述一个智能体动作价值随队友动作改变的非单调协同；论文的任务规模主要是二智能体小型网格，尚未证明大规模或连续控制下的可扩展性。局部 Q 也不是唯一或可解释的因果贡献，换一种等价分解可能得到不同的数值。代表图可选论文中展示 Fetch 的团队 Q 与两个局部 Q 曲线的 Figure 6。
&lt;/p&gt;
&lt;h2&gt;QMIX&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/1803.11485.1sfrkm736s.webp&quot; alt=&quot;&quot;&gt;
QMIX 解决的是 VDN 的加法限制与独立学习的非平稳性。实际系统可以在训练阶段访问全局状态，但部署时每个单位只能根据自己的观测历史行动；如果直接学习联合 Q，动作数量会随智能体数指数增长。论文提出用一个状态条件的混合器把局部价值组合起来，并通过结构约束让中央和局部决策严格一致。&lt;/p&gt;
&lt;p&gt;每个智能体由 DRQN 根据局部观测、上一步动作和隐藏状态输出 &lt;code&gt;Qi(τi, ai)&lt;/code&gt;。混合网络以这些标量和全局状态为输入，权重由 hypernetwork 从状态生成，并对权重取绝对值，使 &lt;code&gt;∂Qtot/∂Qi ≥ 0&lt;/code&gt;。因此联合最大化可以分解为每个智能体独立的 &lt;code&gt;argmax Qi&lt;/code&gt;；全局状态只在训练时用于混合器，不会泄露到执行端。相较 VDN，非线性混合器能表达更丰富的状态依赖关系，同时保留线性复杂度的 TD 目标计算。&lt;/p&gt;
&lt;p&gt;主要评测是 StarCraft II Learning Environment 的分散微操任务，包含 5 Marines、2 Stalkers/3 Zealots 等六张地图，并比较 IQL、VDN、COMA 等方法。QMIX 在 easy、hard 任务上通常达到更高且更稳定的胜率，尤其在需要集火、风筝或异构单位协作的地图上优于 VDN 和 IQL；消融显示状态条件权重、循环记忆和非线性混合都重要。论文把 SMAC 作为后续 MARL 价值分解工作的标准基线。&lt;/p&gt;
&lt;p&gt;局限是单调性仍是充分条件而非所有可分解任务的必要条件：若一个智能体对某动作的排序依赖队友同一步动作，QMIX 可能无法表示最优 Q，训练还会受探索分布影响。混合器需要训练期全局状态，现实部署若无法收集该状态仍需额外设计；SMAC 的固定单位和规则敌人也不能代表通信受限、连续动作或真实机器人。代表图可选论文 Figure 1 的 SMAC 地图与 Figure 3/4 的胜率曲线。
&lt;/p&gt;
&lt;h2&gt;Qatten&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2002.03939.5trqz0b6t8.webp&quot; alt=&quot;&quot;&gt;
Qatten 观察到 VDN 的加法和 QMIX 的黑盒单调混合都没有明确说明“某个智能体在当前状态有多重要”。论文先从联合 Q 对局部 Q 的隐式函数关系出发，推导在最优动作附近的展开：各阶交互项可以近似为带状态相关系数的局部 Q 加权和。这个视角既保留了可分散最大化，又为 agent-level credit assignment 提供了可解释接口。&lt;/p&gt;
&lt;p&gt;实际网络由每个智能体的 GRU Q 网络和多头 attention mixer 组成。全局状态嵌入作为 query，各智能体位置、单位类型或其他个体特征作为 key，softmax 相似度得到 &lt;code&gt;λi,h&lt;/code&gt;，每个 head 对局部 &lt;code&gt;Qi&lt;/code&gt; 做加权求和，再加上由状态产生的偏置；可选的 weighted-head 版本再用非负状态权重组合各头。由于所有权重非负，&lt;code&gt;Qtot&lt;/code&gt; 对每个 &lt;code&gt;Qi&lt;/code&gt; 单调，IGM 成立，训练时可高效求下一步联合最大值，执行时仍只需局部贪心。&lt;/p&gt;
&lt;p&gt;作者在 SMAC 的 easy、hard 和 super-hard 场景上用与 QMIX 相同的训练计划比较 VDN、QMIX、QTRAN、COMA 和独立学习。easy 地图上 Qatten 与 QMIX 相当（例如 2s3z、3s5z、1c3s5z 的中位胜率约 94–97%）；在 &lt;code&gt;bane_vs_bane&lt;/code&gt;、&lt;code&gt;2c_vs_64zg&lt;/code&gt; 等 hard 地图上训练更稳定，在超难 &lt;code&gt;MMM2&lt;/code&gt; 中能学会让 Medivac 吸收伤害后撤退的策略，而其他方法常失败；在 &lt;code&gt;3s5z_vs_3s6z&lt;/code&gt; 中约两百万步后仍能取得约 16% 胜率。注意力可视化显示模型会把权重集中到关键的 Baneling 等单位。&lt;/p&gt;
&lt;p&gt;它的表达能力仍受正权重单调约束，理论展开只在局部最优附近严格成立，多头数和嵌入设计也会影响训练稳定性。注意力权重是相关性而非因果贡献，不能自动解决长期信用分配；实验集中在离散 SMAC，尚未覆盖连续动作、动态通信和真实系统。代表图可选论文 Figure 1 的 Qatten 架构或 Figure 2 的 hard/super-hard 胜率图。
&lt;/p&gt;
&lt;h2&gt;QTRAN&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/1905.05408.1sfrknjd8w.webp&quot; alt=&quot;&quot;&gt;
QTRAN 针对一个核心表达问题：VDN 和 QMIX 只覆盖满足加法或单调条件的任务，但很多协作行为是非单调的，例如一个智能体单独追捕会受罚，必须等队友同时到位。论文用 Individual-Global-Max（IGM）描述真正需要的条件——联合最优动作等于各局部 Q 的贪心动作——并指出加法、单调性只是过强的充分条件。&lt;/p&gt;
&lt;p&gt;QTRAN 学习三个相互连接的网络：联合动作价值 &lt;code&gt;Qjt(τ, u)&lt;/code&gt;、每个智能体的局部 &lt;code&gt;Qi(τi, ui)&lt;/code&gt;，以及只依赖联合历史的状态值 &lt;code&gt;Vjt(τ)&lt;/code&gt;。它将联合 Q 转换为 &lt;code&gt;Q&apos;jt = Σi Qi&lt;/code&gt;，再由 &lt;code&gt;Vjt&lt;/code&gt; 修正，使最优联合动作处的等式成立、其他动作满足不等式约束。QTRAN-base 和 QTRAN-alt 对非最优动作的变换与损失不同；实践中用惩罚项软化约束，以避免枚举整个联合动作空间，并在执行时丢弃联合网络，只保留局部 Q。&lt;/p&gt;
&lt;p&gt;实验包括非单调的矩阵博弈、多域 Gaussian Squeeze（十个智能体分配资源）和带单独捕获惩罚的 modified Predator-Prey。VDN/QMIX 在多峰或强惩罚设置常收敛到“逃跑/低回报”局部最优；QTRAN 能更快找到合作策略，尤其当惩罚增大或智能体数从 2 增至 4 时优势扩大。QTRAN-alt 通常比 base 更稳定，在四捕食者、高惩罚设置仍能获得正回报，而 base 可能直到训练结束都未收敛。&lt;/p&gt;
&lt;p&gt;局限是理论上的 IGM 约束在深度实现中只能用软正则近似，联合 Q、状态值和局部网络的损失相互竞争，导致 SMAC 等复杂任务上训练不稳定；论文后续工作也显示 QTRAN 在许多 SMAC 地图不如 QMIX。非最优联合动作的约束计算仍可能昂贵，部分可观测下的状态值也会受估计偏差影响。代表图可选论文 Figure 1 的 QTRAN-base/alt 三网络结构和 Figure 4 的 Predator-Prey 曲线。
&lt;/p&gt;
&lt;h2&gt;QPLEX&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2008.01062.1hsxrgsoha.webp&quot; alt=&quot;&quot;&gt;
QPLEX 试图在可扩展性与表达能力之间取得比 QMIX、QTRAN 更稳的折中。IGM 只要求联合动作选择和局部贪心一致，并不要求 Q 值本身单调；QTRAN/WQMIX 通过软惩罚或加权投影近似这一条件，复杂任务中可能违反 IGM。QPLEX 的关键观察是，dueling Q 的状态值不影响动作选择，真正需要约束的是 advantage 的相对大小。&lt;/p&gt;
&lt;p&gt;网络先对每个局部 Q 做 &lt;code&gt;Qi = Vi + Ai&lt;/code&gt;，Transformation 模块利用全局状态或联合历史以正权重变换局部值；Dueling Mixing 再以 &lt;code&gt;Vtot = ΣVi&lt;/code&gt; 和 &lt;code&gt;Atot = Σi λi(τ,a) Ai&lt;/code&gt; 构造联合 Q，其中 &lt;code&gt;λi &gt; 0&lt;/code&gt; 由多头注意力生成。正权重和优势范围约束保证局部与联合最大动作一致，且论文证明这种 duplex dueling 架构具有完整 IGM 表达能力。执行端移除 mixer，只运行各自的循环 Q 网络。&lt;/p&gt;
&lt;p&gt;作者先在带严重错配惩罚的矩阵博弈和 two-state MMDP 验证表达能力与训练稳定性，再在 SMAC 的 14 个标准场景加 3 个超难场景比较 QTRAN、QMIX、VDN、Qatten 和两种 Weighted QMIX。QPLEX 在矩阵任务中能避开 VDN/QMIX 的局部最优，在 two-state MMDP 不出现基线的 Q 值发散；在线 SMAC 平均胜率和样本效率整体领先，最多在 17 张地图中的 8 张达到最佳，&lt;code&gt;5s10z&lt;/code&gt; 等超难图相对基线有超过 30 个百分点的胜率差。离线数据设置中也能直接利用固定数据集而无需额外在线探索。&lt;/p&gt;
&lt;p&gt;局限是完整 IGM 只针对可分解的合作任务，无法解决本身不可分解或观测不足导致的冲突；注意力权重网络的容量、头数和正值参数化会影响优化，模型仍需训练期全局状态。论文主要在离散 StarCraft 微操上验证，离线数据覆盖和分布外动作的安全性仍需更多研究。代表图可选 Figure 1 的 duplex dueling 架构或 Figure 4 的 17 张 SMAC 地图汇总。
&lt;/p&gt;
&lt;h2&gt;RQN&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2205.15245.1e9btxcejp.webp&quot; alt=&quot;&quot;&gt;
Residual Q-Networks（RQN）关注价值分解方法在复杂环境中的不稳定和信用分配。VDN、QMIX、QTRAN、QPLEX 都可能因结构限制或相对过度泛化而在训练后期掉回低回报；而完全依赖全局状态的 mixer 在某些现实设置也不可用。RQN 的思路不是再设计一个永久的 mixer，而是学习每个智能体一条 Q 值轨迹的相对重要性，暂时把有希望的历史放大，帮助局部网络形成正确分解。&lt;/p&gt;
&lt;p&gt;对每个 agent 的局部 Q，辅助网络接收当前输入和 episode 轨迹摘要，输出 residual/估计因子，构造 &lt;code&gt;Q+i = Qi + H(Qi)&lt;/code&gt;（论文给出的形式是对 Q 轨迹做非线性变换）。训练目标仍遵循 IGM，使局部贪心可组合；当各 agent 已达到训练目标、轨迹不再需要校正时，残差因子趋于稳定，辅助网络不再改变主 Q，这就是“self-depreciation”。该机制不要求额外全局状态，主要通过 replay buffer 中的轨迹改善信用分配与稳定性。&lt;/p&gt;
&lt;p&gt;实验在四类矩阵/网格环境（Switch、Checkers、Predator-Prey 2/4、Combat）以及 SMAC 的 &lt;code&gt;8m&lt;/code&gt;、&lt;code&gt;3s5z&lt;/code&gt;、&lt;code&gt;3s5z_vs_3s6z&lt;/code&gt; 上比较 VDN、QMIX、QTRAN-base、QPLEX 和 Weighted QMIX。RQN 在 Switch、Checkers 和高惩罚/多捕食者任务中更快达到高回报并保持较小振荡；在 Predator-Prey 4 里能避免 VDN/QMIX 的后期性能坠落，在没有完整状态信息的设置优势尤其明显。SMAC 上多数方法都能解决较易地图，RQN 具有竞争力，但在 Combat 等高度延迟的场景并非始终最好。&lt;/p&gt;
&lt;p&gt;局限是论文的理论条件和残差形式依赖轨迹分布，辅助网络增加了超参数、记忆和训练成本；“达到目标后自动过时”并不等于严格的收敛证明。实验随机种子较少、SMAC 地图有限，尚未与更大规模 agent 或连续动作系统系统比较。代表图可选 Figure 1 的 CTDE/RQN 示意和 Figure 7/8 的残差因子随训练变化图。
&lt;/p&gt;
&lt;h2&gt;GraphMix&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2010.04740.60uyufy633.webp&quot; alt=&quot;&quot;&gt;
GraphMIX 认为 QMIX/VDN 的 mixer 把团队看成无结构的向量，难以表达“谁应该关注谁”。在多智能体微操、交通或机器人编队中，智能体之间的关系随观测和动作变化，且不同 agent 对当前团队回报的贡献不等。论文用完整有向图表示团队，让注意力学习边权，再把图消息传递用于价值分解和信用分配，同时保持集中训练、分散执行。&lt;/p&gt;
&lt;p&gt;每个节点先接收一个局部 &lt;code&gt;Qi(τi, ai)&lt;/code&gt; 标量，边权由各 DRQN 隐状态的 query/key 注意力得到。多层 mixing GNN 用非负、单调的组合函数聚合邻居，图读出得到 &lt;code&gt;Qtot(s,a)&lt;/code&gt;；非负约束保证 IGM，执行时各 agent 仍可独立贪心。节点最终嵌入还经 softmax 映射为有效的局部回报比例 &lt;code&gt;αi&lt;/code&gt;，额外的 local TD loss 沿捷径更新局部 Q，和全局 TD loss 一起端到端训练。论文也展示了与 RODE 的组合，让角色层和动作层共用图信用分配。&lt;/p&gt;
&lt;p&gt;评测在 SMAC 的 9 张 hard/super-hard 地图进行，训练 2M 步（四张超难地图延长至 5M），比较 QMIX、OW-QMIX、RODE。GraphMIX 在 &lt;code&gt;6h_vs_8z&lt;/code&gt;、&lt;code&gt;corridor&lt;/code&gt;、&lt;code&gt;27m_vs_30m&lt;/code&gt;、&lt;code&gt;bane_vs_bane&lt;/code&gt; 等图明显超过 QMIX，并在多张地图超过 Weighted QMIX；RODE+GraphMIX 在 &lt;code&gt;6h_vs_8z&lt;/code&gt;、&lt;code&gt;MMM2&lt;/code&gt;、&lt;code&gt;3s5z_vs_3s6z&lt;/code&gt; 达到更高的最佳胜率。消融表明 local loss 对部分超难图有帮助，单独使用完整图结构并不能替代有效的 action/role 分解。&lt;/p&gt;
&lt;p&gt;局限是图仍假设所有智能体两两相连，边数和 GNN 计算随 agent 数平方增长；单调消息传递限制了非单调协作的表达。softmax 边权和局部回报比例是训练信号，不是可验证的因果贡献；实验依赖 SMAC 的全局状态和规则敌人，真实通信、动态图拓扑和连续控制尚未验证。代表图可选 Figure 1 的 GraphMIX 架构及 Figure 2 的九张 SMAC 胜率对比。
&lt;/p&gt;
&lt;h2&gt;Weighted QMIX&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2006.10800v2.1lcjp6kybp.webp&quot; alt=&quot;&quot;&gt;
Weighted QMIX 从一个反直觉现象出发：即使拥有真实最优 &lt;code&gt;Q*&lt;/code&gt;，QMIX 把所有联合动作等权投影到单调函数类，也可能把最优动作的值压低，最终选错策略。问题不是单纯探索不足，而是表示类之外的 Q 值在均方误差下被平均拟合。作者因此把优化重点转向真正影响贪心策略的高价值动作。&lt;/p&gt;
&lt;p&gt;论文先在表格情形形式化 QMIX 的“Bellman 更新后投影”算子，再引入加权投影。Centrally-Weighted（CW）QMIX 用一个不受单调约束的集中 Q 估计权重，Optimistically-Weighted（OW）QMIX 用乐观的高值判别强调接近最优的联合动作；二者都保留一个可分散的单调 &lt;code&gt;Qtot&lt;/code&gt;，并由 unrestricted &lt;code&gt;Q̂*&lt;/code&gt; 提供投影目标。理论上合适的权重能恢复任意联合 Q 的最大动作，且执行端仍只需局部 Q。&lt;/p&gt;
&lt;p&gt;实验包括带非单调回报的 Predator-Prey 和 SMAC 多张地图。普通 QMIX 在 Predator-Prey 因单独捕获惩罚而无法获得正回报，QPLEX 也可能失败；CW/OW-QMIX 能较快学到合作捕获策略。把 epsilon 探索从 50K 步延长到 1M 步后，两个 Weighted 变体在 &lt;code&gt;3s5z&lt;/code&gt;、&lt;code&gt;5m_vs_6m&lt;/code&gt; 等地图仍显著超过 QMIX，并在 &lt;code&gt;bane_vs_bane&lt;/code&gt; 对探索率更鲁棒；不过 &lt;code&gt;3s5z_vs_3s6z&lt;/code&gt; 等超难图显示额外探索和 unrestricted 网络有时会伤害性能。&lt;/p&gt;
&lt;p&gt;局限是加权方案依赖启发式权重和一个额外集中 Q，后者的架构错误会造成回归；理论保证主要针对理想表格投影，深度网络和有限 replay 下不一定成立。它仍继承 QMIX 的单调执行约束，也需要训练期全局状态。代表图可选 Figure 2 的 Predator-Prey 曲线和 Figure 3–5 的不同探索率 SMAC 对比。
&lt;/p&gt;
&lt;h2&gt;MAVEN&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/1910.07483.8hh79d481k.webp&quot; alt=&quot;&quot;&gt;
MAVEN 研究的是 CTDE 中经常被低估的探索问题。QMIX 等价值分解方法的 epsilon-greedy 只在每一步独立扰动，无法在需要长时间协同的任务中持续尝试一条完整策略；而单调表示限制又会把探索推向容易得到但次优的行为。作者希望让多智能体像层次策略一样“承诺”一个 episode 级的探索模式，同时不破坏分散执行。&lt;/p&gt;
&lt;p&gt;方法引入共享离散潜变量 &lt;code&gt;z&lt;/code&gt;。高层策略根据全局状态采样 &lt;code&gt;z&lt;/code&gt;，每个局部价值网络以自己的历史和同一个 &lt;code&gt;z&lt;/code&gt; 为条件，因此固定 &lt;code&gt;z&lt;/code&gt; 时会形成一个持续整局的联合行为模式。训练目标加入轨迹与 &lt;code&gt;z&lt;/code&gt; 之间的互信息最大化，使不同潜变量产生可区分的行为；底层仍使用 QMIX 风格的单调 mixer 和 epsilon-greedy。潜变量只在 episode 开始或高层决策时改变，带来 committed、temporally extended exploration。&lt;/p&gt;
&lt;p&gt;作者在矩阵游戏、专门设计的 &lt;code&gt;2-corridors&lt;/code&gt;（训练中途封闭短通道）和 SMAC 的 easy/hard/super-hard 地图上比较 QMIX、QTRAN、COMA、IQL。MAVEN 在 &lt;code&gt;corridor&lt;/code&gt;、&lt;code&gt;6h_vs_8z&lt;/code&gt; 等超难图显著高于基线，easy/hard 图性能至少不逊于 QMIX；短通道突然关闭后，QMIX 无法恢复，MAVEN 会切换到长通道并重新获得胜率。消融显示只用均匀潜变量或去掉互信息会减少轨迹多样性，说明高层策略和多样性奖励缺一不可。&lt;/p&gt;
&lt;p&gt;局限是潜变量空间大小、互信息系数和高层策略都需要调参，离散模式数量增大还会分摊训练预算；它仍依赖价值分解的局部 Q 和 SMAC 式全局状态。持续潜变量适合阶段性策略，但不一定适合需要逐步细粒度适应的任务。代表图可选 Figure 1 的层次潜变量示意或 Figure 4/5 的超难 SMAC 与通道切换结果。
&lt;/p&gt;
&lt;h2&gt;HAPPO&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2109.11251.54yhezoibk.webp&quot; alt=&quot;&quot;&gt;
HAPPO 针对把单智能体 PPO/TRPO 直接复制到 MARL 时的理论漏洞：即使每个 agent 的局部更新都朝着正优势方向，多个更新叠加后联合回报仍可能下降。现有 MAPPO/IPPO 通常共享参数，适合同构单位却限制动作空间不同的团队，也没有严格的单调改进证明。论文的目标是在不假设 Q 函数可分解的前提下，为异构 cooperative MARL 建立 trust-region policy iteration。&lt;/p&gt;
&lt;p&gt;核心是 multi-agent advantage decomposition lemma：给定任意 agent 顺序，联合优势可写成按顺序条件化的局部优势之和。于是每次随机打乱顺序，只更新一个 agent，并让它在前面 agent 的新策略条件下优化自己的 TRPO/PPO surrogate；其余 agent 暂时固定。HATRPO 使用 KL 约束，HAPPO 用 clipped ratio 近似，二者都不要求参数共享。理论上这种 sequential update 对每次迭代保持联合性能不下降，并在适当条件下收敛到 Nash equilibrium。&lt;/p&gt;
&lt;p&gt;实验覆盖 SMAC 的两个 hard 和一个 super-hard 地图，以及把机器人不同身体部件当作 agent 的 Multi-Agent MuJoCo（Ant、HalfCheetah 等多种异构划分）。SMAC 上参数共享的 MAPPO/IPPO 很强、很多地图都能 100% 胜，因此区分度有限；MuJoCo 上 HATRPO/HAPPO 在 agent 数增加时仍超过 IPPO、MAPPO 和非共享 MADDPG，HATRPO 通常回报更高、方差更小。作者还用 &lt;code&gt;r(a1,a2)=a1a2&lt;/code&gt; 的单状态例子展示并行更新可能降回报，而顺序更新能改进。&lt;/p&gt;
&lt;p&gt;局限是 on-policy rollout 和逐 agent 更新带来较高样本与墙钟成本，HAPPO 不能像 MAT 那样并行更新；顺序随机化、KL/PPO clip 和共享 critic 的实现细节会影响稳定性。单调改进定理依赖有限信赖域、准确优势估计等假设，现实中的函数逼近和截断仍可能违背保证。代表图可选 Figure 1 的双智能体更新反例和 Figure 3 的 Multi-Agent MuJoCo 曲线。
&lt;/p&gt;
&lt;h2&gt;MAT&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2205.14953.362aonjsie.webp&quot; alt=&quot;&quot;&gt;
MAT（Multi-Agent Transformer）把“多个 agent 同时决策”重新表述为“按一个任意顺序生成 agent 动作序列”。出发点是 HAPPO 使用的优势分解定理：前面 agent 的动作被条件化后，后续局部优势之和等于联合优势，因而可以安全地做序列化策略搜索。这样能利用 Transformer 的长程建模和可变序列长度，而不是给每个 agent 互相独立的策略。&lt;/p&gt;
&lt;p&gt;模型由 encoder-decoder 组成。Encoder 读取全局状态和所有 agent 的观测/历史，self-attention 建立 agent 间关系；decoder 以一个随机排列为顺序，使用 causal mask 自回归地产生每个 agent 的动作分布，训练时用 teacher forcing 将真实前序动作批量输入，所以不同 agent 的梯度仍可并行计算。PPO-style clipped objective 在顺序优势的条件下更新，作者证明其联合策略继承单调改进；MAT-Dec 则用独立 actor 作为 CTDE 对照。相较 HAPPO 的逐 agent 反复优化，Transformer 将复杂度从随 agent 数乘法增长降为线性。&lt;/p&gt;
&lt;p&gt;评测覆盖 SMAC、Multi-Agent MuJoCo、Bi-DexHands 双手灵巧操作和 Google Research Football。MAT 在多数 MuJoCo、Bi-DexHands 和 GRF 任务上超过 MAPPO/HAPPO，SMAC 同构单位上 MAPPO 的参数共享很强但 MAT 仍保持竞争力。预训练后在 6 个未见 SMAC 地图和不同故障关节的 HalfCheetah 上做零样本/1–10% few-shot 微调，MAT 的迁移胜率和回报普遍高于从头训练及 MAPPO；例如 8m、2s vs 1sc 等任务只用少量新数据即可恢复高胜率。&lt;/p&gt;
&lt;p&gt;局限是 decoder 的自回归推理仍需要按 agent 顺序生成动作，实时性会受团队规模影响；固定/随机顺序是否最优也尚未解决。Transformer 的 encoder 依赖训练期全局状态和较大显存，few-shot 结论主要来自模拟器，真实异构机器人和长期非平稳任务还需验证。代表图可选 Figure 2 的 encoder-decoder 结构、Figure 4 的 MuJoCo/Bi-DexHands 对比或 Figure 5 的足球结果。
&lt;/p&gt;
&lt;h2&gt;RODE&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2010.01523.et8gkwv6s.webp&quot; alt=&quot;&quot;&gt;
RODE（Learning Roles to Decompose Multi-Agent Tasks）针对联合动作空间随 agent 数指数增长、探索难度高的问题。人类往往先分工再行动，但手工预设角色需要任务先验且难以迁移；从零学习角色又几乎等价于直接在完整联合空间探索。RODE 的关键是先按动作的功能效果划分动作空间，让角色发现变成一个更小的搜索问题。&lt;/p&gt;
&lt;p&gt;作者训练一个 forward/predictive action encoder，根据当前观测、其他 agent 动作预测下一观测和团队回报，使具有相似影响的动作在潜空间靠近；再用 k-means 将动作聚成若干 role action spaces。高层 role selector 每 &lt;code&gt;c&lt;/code&gt; 步为 agent 选择一个 role，使用其动作表示的平均向量和 QMIX mixer 学习低频协调；低层 role policy 只在该 role 的受限动作集合中选择 primitive action，并以动作表示作为查询。两层都采用共享 GRU 和 CTDE，因而同时缩短时间跨度和动作/观测维度。&lt;/p&gt;
&lt;p&gt;在 SMAC 全部 14 张地图上，RODE 经过 8 个随机种子比较 VDN、QMIX、QPLEX、ROMA、HSD，在 10/14 张地图达到最高中位胜率，且 9 张 hard/super-hard 全部领先；动作表示会把同类敌人的攻击和相近方向移动聚成可解释簇。消融显示，真正决定收益的是“按效果限制 role action space”，随机子集或保留完整动作空间会接近 QMIX；在 transfer 实验中，从 &lt;code&gt;6 Zealots vs 24 Zerglings&lt;/code&gt; 学到的策略无需新策略训练，在最多三倍 agent 数的未见地图仍可获得约 50% 胜率。&lt;/p&gt;
&lt;p&gt;局限是动作聚类依赖短期 forward model 和 k-means，环境效果非平稳或连续动作时簇可能失真；role 间边界、更新间隔 &lt;code&gt;c&lt;/code&gt; 和簇数需要调参。低层仍使用 QMIX 式单调 mixer，不能表达所有非单调协同；迁移实验固定了观测排序和 SMAC 单位，真实机器人和动态角色切换尚未覆盖。代表图可选 Figure 1 的双层 RODE 架构、Figure 2 的动作表示聚类或 Figure 3 的超难 SMAC 曲线。
&lt;/p&gt;
&lt;h2&gt;EMC&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2111.11032.7i13w733l5.webp&quot; alt=&quot;&quot;&gt;
EMC（Episodic Multi-agent RL with Curiosity-driven Exploration）认为 MARL 探索不能简单照搬单智能体的全局 curiosity 或局部 novelty。全局状态空间随 agent 数指数增长，局部观测又看不到队友，二者都可能在需要同时到达/集火的任务中走偏。价值分解网络中的局部 &lt;code&gt;Qi&lt;/code&gt; 是由全局 TD 梯度训练出的历史嵌入，既压缩了局部状态，又隐式携带队友影响，因此其动态变化可以作为协作相关的新颖性信号。&lt;/p&gt;
&lt;p&gt;EMC 在每个 agent 的 Q 网络旁训练预测器，以预测目标 &lt;code&gt;Qi&lt;/code&gt;；预测误差作为 intrinsic reward，驱动 agent 访问尚未稳定、且可能包含高价值交互的历史。与简单 epsilon-greedy 相比，这种 curiosity 不需要显式枚举联合状态。为利用探索中偶然发现的成功轨迹，算法维护按全局状态 embedding 索引的 episodic memory，记录从该状态得到的最高回报，并将 memory TD target 与常规 TD loss 加权，促使价值网络快速回放和巩固这些轨迹。EMC 可插入 VDN、QMIX 或 QPLEX 等 mixer。&lt;/p&gt;
&lt;p&gt;在需要同步到达目标的 11×12 网格示例中，惩罚 &lt;code&gt;p=2&lt;/code&gt; 时，EMC-QPLEX 能找到最优协作策略，而 global/local curiosity 和普通 QPLEX 失败；在 Predator-Prey 中，EMC-VDN/QMIX/QPLEX 都能跳出误捕惩罚造成的局部最优。SMAC 的 17 张地图（14 个标准加 3 个超难）上，EMC 在 &lt;code&gt;corridor&lt;/code&gt;、&lt;code&gt;3s5z_vs_3s6z&lt;/code&gt; 等图达到当时最佳或并列最佳，最多 6 张图领先，且在 &lt;code&gt;1c3s8z_vs_1c3s9z&lt;/code&gt;、&lt;code&gt;5s10z&lt;/code&gt;、&lt;code&gt;7s7z&lt;/code&gt; 上收敛速度明显更快。消融显示超难探索图需要 curiosity，而 episodic memory 负责把发现的好轨迹稳定保留下来。&lt;/p&gt;
&lt;p&gt;局限是预测误差会随 Q 网络本身更新而变化，可能把模型不确定性或表示漂移误当新颖性；memory 的状态 embedding、容量和回报阈值也需调节。全局状态只在训练期可用，稀疏奖励之外的安全/多目标偏好没有建模；SMAC 的规则敌人不能代表真实非平稳协作者。代表图可选 Figure 1 的 CTDE curiosity 示意、Figure 4 的三种 visitation heatmap 或 Figure 7 的超难地图结果。
&lt;/p&gt;
&lt;h2&gt;EMU&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2403.01112.13mi0lmw07.webp&quot; alt=&quot;&quot;&gt;
EMU（Efficient episodic Memory Utilization）延续 episodic control 加速 MARL 的想法，但指出随机投影有两个问题：语义相近的全局状态未必在 embedding 中相近，窄距离阈值只能召回几乎相同的状态；若早期记到的是局部最优，反复利用记忆反而会阻止探索。论文因此同时改进“记忆怎样表示”和“记忆怎样施加奖励”。&lt;/p&gt;
&lt;p&gt;首先用带 timestep 条件的 encoder/decoder 学习全局状态的语义 embedding：decoder 预测该状态记忆中的最高回报，并通过 deterministic conditional autoencoder 额外重建状态，使相似回报和相似任务进度形成平滑空间。其次为每条记忆标注 desirability（例如 SMAC 击败全部敌人、GRF 进球），只对通往 desirable next state 的转移加 episodic incentive。该奖励按记忆中 desirable 轨迹比例和目标网络估计的价值差构造，论文证明其 TD 梯度在策略趋于最优时逼近真实最优梯度；EMU 可插在 QPLEX、CDS 等任意 MARL 框架上。&lt;/p&gt;
&lt;p&gt;实验在 SMAC 的 easy/hard/super-hard 地图（包括 &lt;code&gt;MMM2&lt;/code&gt;、&lt;code&gt;6h_vs_8z&lt;/code&gt;、&lt;code&gt;3s5z_vs_3s6z&lt;/code&gt;）和 Google Research Football 上比较 QPLEX、EMC、QMIX、CDS 及其 EMU 版本。EMU(QPLEX) 与 EMU(CDS) 通常更快到达最优策略，超难图的多随机种子方差明显小于传统 episodic control；GRF 中也能在早期利用语义相似记忆找到胜球策略。去掉 episodic incentive 后会出现局部收敛和大幅 seed 波动，去掉 dCAE 后可召回的语义邻居减少，验证两个组件互补。&lt;/p&gt;
&lt;p&gt;局限是 embedding 网络需要持续更新并同步重映射记忆，带来额外计算和存储；desirability 阈值通常依赖任务是否有清晰的成功回报，复杂多目标任务难以二值化。激励设计仍依赖全局状态和近似计数，策略早期的错误高回报记忆可能污染训练。评测主要是离散模拟环境，真实机器人、视觉状态和长期变化的任务尚未证明。代表图可选 Figure 1 的 EMU 总体结构和 Figure 2 的随机投影/EmbNet/dCAE t-SNE。
&lt;/p&gt;
&lt;h2&gt;HPN&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2203.05285.4g57uz1rk3.webp&quot; alt=&quot;&quot;&gt;
这篇工作从表示而非损失函数入手处理 MARL 的维度诅咒。SMAC、足球和 MPE 的观测常是实体集合：把队友/敌人按任意顺序拼接并不会改变信息，但普通 MLP 会把每种排列当成不同样本；同时“攻击哪个敌人”“把球传给哪个队友”等动作又应随对应实体一起置换。论文把前者形式化为 permutation invariance（PI），后者形式化为 permutation equivariance（PE），目标是在不改变主干网络的情况下消除这些冗余排列。&lt;/p&gt;
&lt;p&gt;DPN（Dynamic Permutation Network）在输入层为每个实体用 module-selection network 选择对应模块，再求和得到 PI 表示；输出层用另一组选择器把同一实体映射到同一 action module，从而保证 PE。HPN（Hyper Policy Network）进一步让 hypernetwork 直接根据实体特征生成输入/输出模块参数，不受固定模块数量限制，提升表示能力。两者只改 policy/Q 网络的输入和输出层，主干可替换为 QMIX、VDN、MAPPO、QPLEX 或 MADDPG，并以端到端 RL loss 训练。&lt;/p&gt;
&lt;p&gt;在 SMAC 的 hard/super-hard 场景，HPN-QMIX 相比 fine-tuned QMIX 在几乎所有地图达到 100% 胜率；在 &lt;code&gt;5m_vs_6m&lt;/code&gt; 达到相同 80% 胜率所需环境步数，HPN-VDN/HPN-QMIX 可减少约 14 倍。比较 PI/PE 基线时，性能顺序大致为 HPN &gt; DPN ≥ UPDeT ≥ ASN &gt; QMIX &gt; GNN/Deep Set/数据增强，显示共享 embedding 虽保证 PI 但容量不足。将 HPN 插入 MAPPO/QPLEX 也能稳定提升；MPE 的 cooperative navigation 和 predator-prey 进一步验证只需 PI 的场景。&lt;/p&gt;
&lt;p&gt;局限是 HPN 为每个实体生成参数，显存和计算开销可能随实体数增长，且仍要求正确识别实体类型与动作对应关系；若实体本身有身份、顺序或拓扑语义，强行 PI/PE 会损失信息。实验主要使用规则化的实体特征和模拟环境，动态加入/删除实体、遮挡、连续动作和真实通信尚未充分测试。代表图可选 Figure 1 的 SMAC 排列示意、Figure 4 的 HPN 架构或 Figure 6 的 PI/PE 基线比较。
&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/69606244_p0_master1200.64eg2rlm3q.webp"/><enclosure url="https://pic.hana0721.top/69606244_p0_master1200.64eg2rlm3q.webp"/></item><item><title>Paper Reading: LLM 2</title><link>https://agusexp25.top/blog/paper-reading-llm2</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-reading-llm2</guid><description>读一些大型语言模型相关的论文</description><pubDate>Fri, 26 Dec 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating, RatingCriteria } from &apos;@/components/advanced&apos;&lt;/p&gt;
&lt;h2&gt;MMaDA&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/mmada-overview.2a5t8fpn1z.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;MMaDA 关注统一多模态模型中的一个结构与训练错位：很多方法虽然把文本理解、视觉理解和图像生成放进同一个 Transformer，但文本仍采用自回归预测，图像则采用连续或离散扩散，后训练也主要沿用为自回归语言模型设计的方法。MMaDA 希望用同一种概率形式覆盖三类任务，并进一步回答非自回归的多模态扩散模型应该怎样进行长思维链微调和强化学习。最终的 MMaDA-8B 同时支持文本推理、多模态问答和文生图，而不是把专用 LLM、VLM 与图像扩散模型拼成多个独立模块。&lt;/p&gt;
&lt;p&gt;模型以 LLaDA-8B-Instruct 为文本骨干，并采用统一的离散 Token 表示。文本使用 LLaDA Tokenizer，图像则由 Show-o 的 MAGVIT-v2 Quantizer 编码；后者的下采样倍数为 16、Codebook 大小为 8192，因此一张 &lt;code&gt;512×512&lt;/code&gt; 图像会被转换为 &lt;code&gt;32×32=1024&lt;/code&gt; 个视觉 Token。文本和图像 Token 都通过随机替换成 &lt;code&gt;[MASK]&lt;/code&gt; 来加噪，同一个 Transformer 同时预测所有被遮挡位置，并只在这些位置计算交叉熵。推理时，文本沿用 LLaDA 的 Semi-Autoregressive Remasking：把输出分块、从左到右处理，每个块内并行去噪；图像则对完整的 1024 Token 序列使用 Cosine Schedule 和 Low-Confidence Remasking，从而保持并行生成。&lt;/p&gt;
&lt;p&gt;后训练分成 Mixed Long-CoT 和 UniGRPO 两部分。Mixed Long-CoT 把文本推理、多模态推理和知识驱动文生图都整理为统一的 &lt;code&gt;&amp;#x3C;think&gt;推理过程&amp;#x3C;/think&gt;最终结果&lt;/code&gt; 格式，然后仅对回答部分加 Mask，让模型在保留 Prompt 的条件下复原推理与答案。文本轨迹来自 ReasonFlux、LIMO、s1k、OpenThoughts 和 AceMath-Instruct；几何与视觉推理由 LMM-R1 在 GeoQA、CLEVR 上生成并按正确性筛选；知识型文生图数据则由 GPT-4.1 合成科学、文化和地标等事实描述。UniGRPO 针对扩散模型无法像自回归模型那样直接连乘 Token 概率的问题，保持问题不被遮挡，在不同更新轮次对回答采样不同 Mask Ratio，并以被遮挡 Token 的平均 Log-Probability 近似序列概率。奖励也按任务分流：文本和几何推理使用正确性与格式奖励，图文任务再加入 CLIP Score，文生图同时使用 ImageReward。&lt;/p&gt;
&lt;p&gt;训练共三阶段。Stage 1 使用 RefinedWeb、ImageNet-1K 和开放图文数据做联合预训练，先训练 20 万步，再用更丰富的图文对替换 ImageNet 继续训练 40 万步；Stage 2 混合 Alpaca、LLaVA-1.5 和上述推理数据训练 5 万步；Stage 3 使用 UniGRPO 再训练 5 万步。论文报告训练使用 64 张 A100 80GB、全局 Batch Size 1280，并以 AdamW 和 &lt;code&gt;5e-5&lt;/code&gt; 初始学习率优化。消融结果能清楚看到后训练的作用：从 Stage 1 到 Mixed Long-CoT 再到 UniGRPO，GSM8K 从 17.4 提升到 65.2、73.4，MATH500 从 4.2 提升到 26.5、36.0，ImageReward 也从 0.69 提升到 0.84、1.15。&lt;/p&gt;
&lt;p&gt;最终模型在文本侧取得 MMLU 68.4、GSM8K 73.4 和 MATH 36.0，均明显优于同源的 LLaDA-8B，但整体仍未超过 Qwen2-7B；多模态侧取得 POPE 86.1、VQAv2 76.7、MMMU 30.2；生成侧取得 CLIP Score 32.46、ImageReward 1.15、GenEval 0.63，并在强调文化知识的 WISE 上达到 0.67。这里最有说服力的不是每项都达到专用模型的绝对最优，而是同一套扩散参数和后训练规则能在三类任务上同步增益。局限也很明显：论文只验证了 8B 规模，图像仍受固定离散 Quantizer 和 &lt;code&gt;512×512&lt;/code&gt; 分辨率约束；不少结果低于强专用模型，迭代去噪也没有消除多步推理成本。此外，CLIP Score 和 ImageReward 既是强化学习奖励又是主要生成评测指标，可能高估对这两种代理指标之外的真实视觉质量提升。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/69461006_p0_master1200.1e974ctzq9.webp"/><enclosure url="https://pic.hana0721.top/69461006_p0_master1200.1e974ctzq9.webp"/></item><item><title>Paper Reading: LLM 1</title><link>https://agusexp25.top/blog/paper-reading-llm1</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-reading-llm1</guid><description>读一些大型语言模型相关的论文</description><pubDate>Fri, 26 Dec 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating, RatingCriteria } from &apos;@/components/advanced&apos;&lt;/p&gt;
&lt;h2&gt;GPT 1.0&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/gpt1-01.362anzf7mw.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;动机。&lt;/strong&gt; 当时有监督 NLP 往往为每个任务单独设计网络，也受制于标注数据规模。论文提出：海量无标注文本蕴含可迁移的语言知识，先学习下一词预测，再用少量标注数据适配下游任务。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;方法。&lt;/strong&gt; 采用仅含 Transformer decoder 的 12 层、117M 参数语言模型，在 BooksCorpus 上以标准自回归目标预训练；微调时将文本或文本对拼接输入，接一个线性任务头，并保留辅助语言模型损失以稳定小数据集学习。其核心不是新结构，而是“生成式预训练 + 判别式微调”的统一范式。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;实验。&lt;/strong&gt; 在自然语言推理、问答、语义相似度和文本分类共 12 个基准上取得 9 项当时最佳结果，例如在 RACE、MultiNLI、QQP 等任务显著超过此前专用模型，证明迁移收益并不限于单一任务。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;局限。&lt;/strong&gt; 单向自回归表示无法同时利用一个词左右两侧的上下文；预训练语料和模型都较小，且微调输入模板仍依赖任务设计。后续 BERT 的双向掩码建模和更大规模训练主要补足了这些问题。&lt;/p&gt;
&lt;h2&gt;BERT&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/1810.04805.2yz2t7vzug.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;动机。&lt;/strong&gt; 传统从左到右语言模型在预测词时看不到右侧上下文，不利于词级分类、抽取式问答等理解任务；同时，任务专用架构使迁移成本很高。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;方法。&lt;/strong&gt; BERT 是 Transformer encoder。它在 BooksCorpus 与英文 Wikipedia（约 33 亿词）上进行预训练：随机遮住 15% token 做 MLM，并以句对是否连续的 NSP 学习句间关系；输入由 token、segment 与位置嵌入相加。BERT-base（110M）与 BERT-large（340M）只需在顶部加入很小的输出层即可微调分类、序列标注和问答。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;实验。&lt;/strong&gt; BERT-large 在 GLUE 获得 80.5，较此前最佳提高 7.7 分；SQuAD v1.1 的 F1 达 93.2，SQuAD v2.0 的 F1 达 83.1，并在 MultiNLI、SWAG 等任务创下当时纪录。消融显示双向条件化是关键，而 NSP 的收益并不如 MLM 稳定。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;局限。&lt;/strong&gt; MLM 在预训练中看到 &lt;code&gt;[MASK]&lt;/code&gt;、微调推理时却看不到，存在目标不一致；预测被遮挡 token 彼此独立，NSP 也后来被证明未必必要。编码器天生不直接生成文本，预训练与微调的计算开销也很大。&lt;/p&gt;
&lt;h2&gt;GPT 2.0&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/gpt2-01.5xbcw21bso.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;动机。&lt;/strong&gt; 作者将许多 NLP 任务都视为“根据上下文继续生成文本”，追问一个语言模型是否能只靠预训练、无显式多任务监督地完成它们。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;方法。&lt;/strong&gt; 在从 Reddit 高质量外链收集的 WebText（约 40GB 文本）上训练 decoder-only Transformer，并使用 byte-level BPE，避免未知词。模型从 117M 扩展至 1.5B 参数（48 层、1600 隐藏维），用自然语言式提示把翻译、问答、摘要等任务转成续写。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;实验。&lt;/strong&gt; 最大模型在 8 个零样本语言建模/问答等基准中的 7 个优于此前零样本方法，在 WebText 测试集困惑度 18.34；其生成展示了长文连贯性和初步的任务迁移。出于滥用担忧，最初只公开较小模型，后才释放 1.5B 权重。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;局限。&lt;/strong&gt; 零样本成绩仍明显落后于有监督专用系统，提示措辞和评测格式影响很大；WebText 的来源、偏见和版权边界不透明，模型也会生成虚假、有害或记忆化内容。论文没有建立可靠的事实性或安全控制机制。&lt;/p&gt;
&lt;h2&gt;Megatron-LM&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/1909.08053.4cllx971xb.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;动机。&lt;/strong&gt; 数据并行只能把不同 batch 分到多卡，每张卡仍须容纳完整模型；当 Transformer 大到单卡放不下时，训练瓶颈转为模型内部矩阵乘法和激活的显存与通信。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;方法。&lt;/strong&gt; Megatron-LM 将 attention 的头和 MLP 中间维度按列/行切分到 GPU，在线性层边界仅做必要的 all-reduce；这是一种细粒度的张量模型并行，并可与数据并行组合。论文还实现了高效的 fused kernel、混合精度和激活重计算，训练 72 层、83 亿参数的 GPT 式模型及 36 层 BERT。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;实验。&lt;/strong&gt; 在 512 张 NVIDIA V100 上，83 亿参数 GPT-2 模型达到约 15.1 PFLOP/s，训练吞吐与较小模型接近线性扩展；该模型在 WikiText-103、LAMBADA 等语言建模评测优于此前 GPT-2 规模模型，BERT 也在 RACE/SQuAD 上保持竞争力。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;局限。&lt;/strong&gt; 张量并行在每层引入同步通信，对高速互连依赖很强，跨节点效率下降；它主要解决“放得下”，没有改变数据、优化和对齐问题。后来的流水线并行、ZeRO 和 3D 并行才让更大模型更易训练。&lt;/p&gt;
&lt;h2&gt;T5&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/1910.10683.szo7g4c8l.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;动机。&lt;/strong&gt; 预训练研究中的模型结构、目标、数据集与下游格式各不相同，难以公平比较。作者希望以单一框架做受控实验，并让分类、翻译、摘要、问答共享同一接口。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;方法。&lt;/strong&gt; T5 使用 encoder-decoder Transformer，将输入和目标都写成文本，例如 &lt;code&gt;sst2 sentence: ...&lt;/code&gt; 生成 &lt;code&gt;positive&lt;/code&gt;。在清洗后的 Common Crawl 数据集 C4 上预训练，最佳去噪目标是随机删除连续 span，并由 decoder 生成带 sentinel token 的缺失片段；模型从 Small 到 11B 参数，配合 task prefix 与多任务微调。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;实验。&lt;/strong&gt; 论文在 GLUE、SuperGLUE、SQuAD、CNN/Daily Mail、WMT 翻译等 24 个任务上进行大规模消融，发现 C4、span corruption 与 encoder-decoder 的组合稳健；11B 模型在当时的 GLUE、SuperGLUE 和 SQuAD 取得强结果。贡献更重要之处在于公开了对数据清洗、长度、目标和规模的可复查比较。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;局限。&lt;/strong&gt; 文本化接口虽然统一，却会把标签和格式选择变成 prompt 工程；encoder-decoder 对纯生成任务的推理成本通常高于 decoder-only。C4 的过滤规则仍会保留互联网偏见与噪声，且论文的最优规模结论受当时计算预算限制。&lt;/p&gt;
&lt;h2&gt;ZeRO&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/1910.02054.39lwmgedkm.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;动机。&lt;/strong&gt; 混合精度数据并行中，每张 GPU 仍复制参数、梯度及 Adam 的 FP32 主权重和一、二阶矩；这些模型状态的冗余很快耗尽显存，即使单步计算还能继续扩展。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;方法。&lt;/strong&gt; ZeRO-DP 按阶段消除冗余：Stage 1 分片优化器状态，Stage 2 再分片梯度，Stage 3 连参数也分片、在计算时按需聚合。论文结合 CPU/NVMe offload 与 ZeRO-R 等残余内存优化（如分区激活、固定大小 buffer），在保持数据并行通信量量级的前提下降低单卡状态内存。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;实验。&lt;/strong&gt; 在 1024 张 V100 上，作者训练了 1.5 万亿参数模型；相较基线，ZeRO 在相近吞吐下可训练远大于单卡/普通数据并行容量的模型，并展示了百亿至千亿参数设置下的可扩展性与内存节省。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;局限。&lt;/strong&gt; Stage 3 的按需 all-gather/reduce-scatter 增加通信和实现复杂度，低带宽集群或小模型未必划算；offload 会受 PCIe、CPU 或存储延迟限制。它是系统内存方案，并不能替代对模型质量、数据治理和训练稳定性的研究。&lt;/p&gt;
&lt;h2&gt;Scaling Law&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2001.08361.58i3cpgqhe.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;动机。&lt;/strong&gt; 大模型训练成本高，若只能试少数规模，研究者需要可外推的规律来回答“模型、数据与训练步数应如何分配计算预算”。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;方法。&lt;/strong&gt; 作者训练大量不同大小的 Transformer 语言模型，分别控制参数量、数据集 token 数和总 FLOPs，以交叉熵损失拟合幂律。实验进一步考察了宽度/深度、batch size 和训练步数，并给出计算受限下参数量增长快于数据量的经验配比。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;实验。&lt;/strong&gt; 在跨多个数量级的模型、数据和计算预算上，验证损失呈稳定幂律且尚未见明显饱和；结论解释了为何更大模型即使未充分训练仍可能更划算，并为 GPT-3 时代的规模规划提供依据。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;局限。&lt;/strong&gt; 规律主要以训练损失为目标，不能直接保证下游能力、安全性或推理成本；它也依赖特定数据和模型族。后来的 Chinchilla 工作以更多训练 token 重新估计计算最优配比，指出 Kaplan 配方会让大模型相对欠训练，故不应将其视为永久定律。&lt;/p&gt;
&lt;h2&gt;GPT 3.0&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2005.14165.pg29qb9pa.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;动机。&lt;/strong&gt; 微调为每个任务保存和训练一个模型，既昂贵又依赖标注。论文检验：单个极大自回归模型能否把任务描述和演示样例写入上下文，并在推理时完成适配。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;方法。&lt;/strong&gt; GPT-3 是 96 层、175B 参数的 decoder-only Transformer，使用约 3000 亿 token 的混合语料训练，含过滤后的 Common Crawl、WebText2、Books1/2 与 Wikipedia。作者统一比较 zero-shot、one-shot 与 few-shot prompting：将自然语言指令或示例直接置于 2048-token 上下文中，不做梯度更新。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;实验。&lt;/strong&gt; 参数增大显著提升少样本表现：在闭卷问答、翻译、Winograd、算术和文本补全等任务中，few-shot 往往接近或超过当时微调系统；LAMBADA 的 few-shot 准确率达 76.2%。但一些任务仍接近随机，说明能力并不均匀。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;局限。&lt;/strong&gt; 训练数据可能污染测试集，few-shot 提示选择会导致结果波动；模型仍会事实幻觉、执行浅层模式匹配，并带有互联网偏见。175B 模型训练和部署成本极高，作者也明确讨论了滥用、隐私和公平性风险。&lt;/p&gt;
&lt;h2&gt;Switch Transformers&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2101.03961.5trqz0c0yc.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;动机。&lt;/strong&gt; 密集 Transformer 每个 token 都激活全部参数，扩容同时线性增加 FLOPs。MoE 可以增加专家容量，但传统 top-2 路由的通信、负载均衡和数值稳定性使超大训练困难。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;方法。&lt;/strong&gt; 在 T5 的 FFN 层替换为大量专家，并由 router 对每个 token 选择 top-1 专家（Switch）；这样单 token 只计算一个专家。论文配套使用容量因子、辅助负载均衡损失、选择性精度和 router z-loss，以避免 token 拥塞、专家塌缩和 bfloat16 训练不稳定。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;实验。&lt;/strong&gt; Switch-C 模型达到约 1.6 万亿参数，在同等计算预算下比 T5-XXL 更快达到更低预训练损失；在多语言翻译和 SuperGLUE 微调上也有竞争力。作者报告相对密集 T5 可获得约 4 倍预训练速度提升，并成功扩展到数千 TPU 核。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;局限。&lt;/strong&gt; 总参数虽大，每个 token 实际看到的参数有限；all-to-all 专家通信和负载均衡使硬件、batch 和实现高度耦合。容量溢出的 token 会被丢弃或走残差，MoE 也使推理部署、显存占用和专家利用率监控更复杂。&lt;/p&gt;
&lt;h2&gt;Codex&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2107.03374.32ioqxpx6r.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;动机。&lt;/strong&gt; 编程语言既有严格语法又要求语义正确，通用文本模型即使能补全代码，也不等于能按自然语言规格编写可执行函数。作者希望量化代码预训练与规模对这一能力的影响。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;方法。&lt;/strong&gt; 在 GPT-3 基础上，以从 GitHub 收集、去重和过滤后的公开 Python 代码微调，得到 12B 参数 Codex；输入文档字符串、函数签名及可选示例，模型自回归补全函数体。论文同时提出 HumanEval：164 道人工编写的 Python 函数题，以隐藏单元测试和 pass@k 衡量功能正确性。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;实验。&lt;/strong&gt; Codex 12B 在 HumanEval 的 pass@1 为 28.8%，从多个采样中选择时 pass@100 达 72.3%，远高于同规模纯文本 GPT-3；规模、代码数据量和温度采样均影响结果。论文还给出 Docstring 到代码、代码解释和修复的质性案例。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;局限。&lt;/strong&gt; HumanEval 很小，且公开代码预训练带来基准泄漏、许可证和作者归属疑问；pass@k 的多次采样会掩盖单次可靠性。生成程序可能不安全、低效或包含漏洞，单元测试通过也无法证明在真实工程中的正确性。&lt;/p&gt;
&lt;h2&gt;COT&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2201.11903.9o0ii1wa53.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;动机。&lt;/strong&gt; 标准 few-shot 示例只给“问题 → 答案”，模型必须在一次跳跃中完成多步计算；这在数学、符号和组合推理中容易失败。作者考察显式自然语言推导是否能充当可迁移的推理脚手架。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;方法。&lt;/strong&gt; CoT prompting 在 few-shot demonstrations 中提供“问题 → 分步推理 → 最终答案”，测试题则让模型续写推理与答案，无需微调或外部工具。论文在 PaLM 等不同规模模型上比较直接答案、标准提示与 CoT，并涵盖 GSM8K、MultiArith、SVAMP、CommonsenseQA、AQuA、策略问答等任务。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;实验。&lt;/strong&gt; 对 540B PaLM，8-shot CoT 将 GSM8K 准确率从标准 prompting 的 17.9% 提高到 58.1%，MultiArith 达 94.2%；对算术、常识与符号推理都有收益。关键现象是“涌现”：小于约百亿参数的模型通常不能从 CoT 获益，甚至更差。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;局限。&lt;/strong&gt; 中间文字是模型生成的表象，未必忠实反映内部因果过程，错误也会逐步累积；结果高度依赖示例质量和任务语言形式。CoT 增加输出 token 和延迟，且不能保证精确计算、事实核验或对抗鲁棒性。&lt;/p&gt;
&lt;h2&gt;InstructGPT&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2203.02155.7zr5ks4ha7.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;动机。&lt;/strong&gt; 仅最大化互联网文本似然会让模型模仿错误、偏见和不希望的行为，且“预测下一词”不等于“遵循用户指令”。论文将对齐目标概括为 helpful、honest、harmless。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;方法。&lt;/strong&gt; 三阶段 RLHF：标注员先写示范回答以监督微调（SFT）；再对同一提示的多个回答排序，训练 reward model；最后以 PPO 优化策略，并加入来自 SFT 模型的 KL 惩罚以抑制奖励投机。数据来自 API 提示与标注员编写提示，且明确进行隐私过滤。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;实验。&lt;/strong&gt; 在人工偏好比较中，1.3B InstructGPT 的回答比 175B 原始 GPT-3 更常被标注员偏好；部署后，用户对不真实、有毒和不当输出的投诉下降。论文还报告了 TruthfulQA、RealToxicityPrompts 等自动/半自动评测，说明偏好优化并未简单损害语言任务表现。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;局限。&lt;/strong&gt; 奖励模型只能学习有限标注员群体的偏好，存在文化代表性、标注偏差和 reward hacking；PPO 训练不稳定且昂贵。人类更喜欢的回答不必然真实、安全或公平，长期行为、分布外提示和社会影响仍难由离线比较充分验证。&lt;/p&gt;
&lt;h2&gt;PaLM&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2204.02311.86udg7qmwm.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;动机。&lt;/strong&gt; 更大模型在 few-shot 学习上持续进步，但训练系统、数值稳定性和跨任务能力仍限制规模。PaLM 试图同时验证 500B 级稠密语言模型的可训练性及其泛化边界。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;方法。&lt;/strong&gt; PaLM 是 540B 参数、118 层的 decoder-only Transformer，采用并行 attention/FFN、SwiGLU、RoPE、共享输入输出嵌入和多查询 attention 等设计；以 Pathways 在 6144 个 TPU v4 芯片上训练约 780B token。语料覆盖网页、书籍、Wikipedia、新闻、GitHub 代码及多语种文本，并使用 8192-token 上下文。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;实验。&lt;/strong&gt; 论文报告其在 29 项英语 NLP 任务中以少样本提示超越此前最佳，GSM8K 的 8-shot CoT 达 58.1%，在多语言翻译、自然语言推理与代码生成也有强结果；进一步以 PaLM-SayCan 等案例展示将语言规划用于机器人控制的潜力。大量消融比较了规模、数据混合和架构选择。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;局限。&lt;/strong&gt; 论文承认模型会复述训练数据、生成刻板印象、错误信息和有害内容；超大训练的能耗、碳排和资源集中同样显著。基准成绩不能说明真实世界可靠性，且数据来源、覆盖语言和低资源语言公平性仍有限。&lt;/p&gt;
&lt;h2&gt;LLaMA&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2302.13971.8vnn08exc4.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;动机。&lt;/strong&gt; 当时最强的语言模型通常依赖不公开的训练数据、代码和算力，研究者难以复现或分析。作者希望用公开可获得的语料训练一组相对小的模型，探索“更多高质量 token 是否能以较小参数换取同等能力”。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;方法。&lt;/strong&gt; LLaMA 是 decoder-only Transformer，使用 RMSNorm、SwiGLU、RoPE 和 AdamW，最大上下文 2048。训练数据约 1.4T token，来自 CommonCrawl/CCNet、C4、GitHub、Wikipedia、书籍、arXiv 和 StackExchange 等公开来源；7B/13B 约训练 1T token，较大模型训练约 1.4T token。模型规模为 6.7B、13B、32.5B 和 65.2B（通常简称 7B/13B/33B/65B）。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;实验。&lt;/strong&gt; LLaMA-13B 在多数基准上超过 GPT-3 175B，65B 与 Chinchilla-70B 和 PaLM-540B 具有竞争力；这说明数据配方、训练 token 数和规模的平衡可以显著提高参数效率。论文还报告了语言建模、常识推理、数学和代码等多类评测。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;局限。&lt;/strong&gt; 发布的是未做指令对齐的基础模型，直接对话的帮助性和安全性有限；公开网页、代码和书籍仍可能包含偏见、毒性、个人信息及评测污染。训练 65B 仍需 2048 张 A100 运行约 21 天，开放权重并不等于训练成本低，且英文和高资源语料占比限制了多语种泛化。&lt;/p&gt;
&lt;h2&gt;GPT 4&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2303.08774.32ioqxrh71.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;动机。&lt;/strong&gt; GPT-3.5 之后，模型是否能稳定达到专业考试和复杂推理所需的水平，以及多模态输入能否纳入同一系统，成为主要问题。作者还希望系统评估事实性、偏见、滥用和安全缓解，而不只报告单一语言建模损失。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;方法。&lt;/strong&gt; 报告只披露 GPT-4 以 Transformer 自回归目标进行预训练，再经过包含人类反馈的后训练与对齐；模型可接收图像和文本，但输出为文本。训练数据包括公开互联网数据和获许可的第三方数据，具体参数量、数据配比、硬件和优化配方没有公开。工程上使用可预测的规模化训练和多轮安全后训练来控制行为。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;实验。&lt;/strong&gt; GPT-4 在 MMLU、专业考试、代码和推理评测上达到接近人类或专业级表现，模拟律师资格考试位列约前 10%；在 MMLU 的翻译版本中，26 种语言有 24 种超过对应语言的最佳公开系统。图像输入也能处理图表、文档和视觉问答等任务。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;局限。&lt;/strong&gt; 模型仍会幻觉、给出过时或不可靠的答案，无法像人一样从交互经验持续学习；上下文长度、工具使用和复杂任务的稳定性也有限。报告没有给出足够的架构和训练信息，难以独立复现，且偏见、隐私、越权使用和安全评测的覆盖仍不完整。&lt;/p&gt;
&lt;h2&gt;DPO&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2305.18290.41ys43u9di.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;动机。&lt;/strong&gt; 传统 RLHF 需要监督微调、奖励模型、在线采样和 PPO，工程链条长、超参数多且训练不稳定。作者观察到，在固定参考策略和 KL 约束下，最优奖励函数可以由策略与参考模型的对数概率表示，因此无需显式学习奖励模型。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;方法。&lt;/strong&gt; DPO 对每个“chosen/rejected”偏好对，比较策略相对参考模型的对数概率差，用一个带温度的 logistic/二元交叉熵损失直接更新策略。训练只需离线偏好数据、当前策略和冻结的参考模型，不需要价值模型、在线 rollout 或 PPO 的裁剪更新。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;实验。&lt;/strong&gt; 在情感控制、摘要和对话等任务上，作者用最多约 6B 参数模型比较 DPO、PPO 和其他偏好优化方法。DPO 通常达到不低于 RLHF 的人类偏好和自动评测分数，同时训练流程更短、显存和调参成本更低。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;局限。&lt;/strong&gt; 方法依赖离线偏好对的质量、覆盖范围和一致性，噪声或单一标注群体会被直接放大；固定参考模型和隐式奖励假设也可能限制策略探索。对需要在线交互、环境反馈或偏好难以可靠收集的任务，DPO 未必优于带奖励模型的 RL。&lt;/p&gt;
&lt;h2&gt;ToT&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2305.10601.3yf66e16fh.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;动机。&lt;/strong&gt; 普通 CoT 一旦在早期生成错误步骤，后续 token 往往只能沿错误路径继续；它也缺少对候选解的比较、规划和回溯。许多需要组合搜索的任务更像在状态空间中寻找解，而不是一次性续写。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;方法。&lt;/strong&gt; ToT 把若干 token 组成一个可解释的“thought”状态，反复调用模型提出候选思路，再由模型或任务专用评价器估计价值。系统可用 BFS、DFS 或剪枝策略保留多个分支，在发现死路时回溯并继续搜索；无需重新训练基础模型。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;实验。&lt;/strong&gt; 在 Game of 24、创意写作和填字游戏上，GPT-4 的 ToT 都明显超过直接回答和 CoT 基线；Game of 24 的成功率约 74%，而单链 CoT 约 4%。创意写作的全局一致性和填字的约束满足也得到提升，说明显式搜索对不同任务均有帮助。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;局限。&lt;/strong&gt; 每类任务都要设计思路粒度、生成提示和评价器，迁移并非自动完成；搜索分支会成倍增加 API 调用、token、延迟和费用。语言模型的自评可能不可靠，错误价值判断会剪掉正确分支，因此 ToT 更像推理时的任务工程，而不是普适的训练算法。&lt;/p&gt;
&lt;h2&gt;LLaMA2&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2307.09288.7q0l5d5rq.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;动机。&lt;/strong&gt; LLaMA 展示了开放基础模型的潜力，但未对齐的权重不适合直接服务用户；同时需要更长上下文、更高质量数据和系统性的安全评估。Llama 2 试图同时提升基础模型能力，并公开一套可复用的对话对齐配方。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;方法。&lt;/strong&gt; 家族包含 7B、13B、34B 和 70B（34B 主要报告、未正式发布），在约 2T 公开 token 上预训练，比上一代多约 40%，上下文从 2048 扩至 4096；34B/70B 使用 GQA 降低 KV cache。Llama 2-Chat 先用 27,540 条高质量示范做 SFT，再迭代进行拒绝采样和 PPO，分别训练 helpfulness 与 safety 奖励模型，并用 Ghost Attention 改善多轮指令保持。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;实验。&lt;/strong&gt; 基础 70B 在常识、知识、数学和代码基准上领先多数开放基线；Chat 版的人类偏好评测接近 GPT-3.5/PaLM，在安全和帮助性上优于上一代，仍与 GPT-4 存在差距。论文还公开了超过百万级二元偏好比较及红队测试结果。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;局限。&lt;/strong&gt; 评测和标注主要以英语为中心，安全偏好带有主观性和文化偏差；实际部署仍需针对应用做过滤、拒答和工具权限设计。模型可能幻觉、泄露训练数据或产生毒性内容，RLHF 数据昂贵且 PPO 复杂，70B 的显存和推理成本也限制了普通团队使用。&lt;/p&gt;
&lt;h2&gt;Mistral 7B&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/mistral-1.6bhsmx9ngi.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;动机。&lt;/strong&gt; 仅扩大参数并不能解决部署显存、KV cache 和长序列解码成本；作者希望让一个 7B 模型在消费级或中等规模硬件上仍有强竞争力，并把高效注意力实现公开出来。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;方法。&lt;/strong&gt; 模型有 32 层、隐藏维 4096、32 个 query heads 和 8 个 KV heads，使用 GQA 减少缓存。Sliding Window Attention 只连接固定窗口，并配合 rolling-buffer cache，使缓存大小有界而信息可通过层叠传播；上下文长度为 8192、窗口 4096。实现使用 FlashAttention/xFormers，并以 Apache 2.0 发布。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;实验。&lt;/strong&gt; Mistral 7B 在 MMLU 60.1、HellaSwag 81.3、HumanEval 30.5、GSM8K 52.2 等指标上超过 Llama 2 13B 的对应结果；在指令微调的 MT-Bench 上得分 6.84，也高于 Llama 2-13B-Chat 的 6.65。作者报告在 16K 序列上约 2 倍速度和更低 KV cache 占用。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;局限。&lt;/strong&gt; 7B 容量仍使知识覆盖和复杂推理受限，基础权重也没有安全对齐；Instruct 版本的数据和评测较初步，公开榜单不代表真实对话可靠性。滑窗的长程能力和“理论注意力跨度”依赖实现、层数与任务，提示式 guardrail 不能替代稳健的内容安全系统。&lt;/p&gt;
&lt;h2&gt;Mamba&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2312.00752.2h914mxx5m.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;动机。&lt;/strong&gt; Transformer 的注意力需要随序列长度增长的 KV cache 和二次计算；早期线性 SSM 虽高效，却难以进行基于内容的选择与复制。作者希望同时获得 Transformer 的内容选择能力和 SSM 的线性扩展、常数状态解码。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;方法。&lt;/strong&gt; Mamba 令 SSM 的步长、状态转移和输入投影由当前 token 动态决定，使模型学习何时记住、忘记或传播信息。硬件感知的并行扫描避免显式物化扩展状态和反复读写内存；整体块去掉独立 attention 与 MLP，简化为选择性 SSM、门控和投影。推理时只保留固定大小的递归状态，序列计算和生成吞吐近似线性。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;实验。&lt;/strong&gt; 在 Pile 上训练约 125M–2.8B 语言模型，Mamba-2.8B 超过 Pythia-2.8B，并在相近规模下匹敌更大的 Transformer；Mamba-3B 在多项任务接近约两倍参数的 Transformer。模型在 DNA、音频和基因组序列上也有效，合成 induction 任务可外推到百万 token，生成吞吐约为同等 Transformer 的 5 倍。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;局限。&lt;/strong&gt; 固定大小状态必然压缩历史，对任意精确检索、全局交互或需要双向证据的任务可能成为瓶颈；selective scan 还依赖专门 CUDA/kernel 和硬件布局。主要实验规模在 3B 左右，不能直接证明其在前沿规模或开放域推理上超越注意力，长上下文质量也取决于状态容量与选择策略。&lt;/p&gt;
&lt;h2&gt;Mamba2&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2405.21060.3yf66e22v0.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;动机。&lt;/strong&gt; Mamba 的选择性扫描高效但实现复杂，且 SSM 与注意力之间的关系不清晰，限制了并行化和架构设计。作者寻找一个既能递归处理长序列、又能利用矩阵乘法硬件的统一表示。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;方法。&lt;/strong&gt; Structured State Space Duality（SSD）把 SSM 写成结构化半可分矩阵，同时支持递归、分块和二次矩阵乘法三种计算形式。Mamba-2 将状态矩阵简化为标量乘单位阵，增大 head 维度，并在块中加入 GVA 式头布局与适合 tensor parallel 的投影；专用 SSD kernel 可在短序列用扫描、长序列用块矩阵计算。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;实验。&lt;/strong&gt; 在 Pile 上用 300B token 训练 2.7B 模型，Mamba-2 超过 Mamba-2.8B、Pythia-2.8B，部分下游结果也超过 Pythia-6.9B；在困惑度、FLOPs 和墙钟时间的 Pareto 前沿上支配早期 Mamba 与 Transformer++。SSD 比 selective scan 快约 2–8 倍，在约 2K 长度处追平优化后的 FlashAttention-2，16K 时最高约 6 倍快。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;局限。&lt;/strong&gt; 为了获得结构化高效计算，SSD 对状态矩阵和表达能力作了限制，并不等同于任意 SSM 或完整注意力；性能高度依赖 kernel、GPU 和并行布局。实验主要集中在 2.7B、Pile 与标准语言任务，前沿规模的通用推理、事实性和极长上下文能力仍未充分验证。&lt;/p&gt;
&lt;h2&gt;Qwen2.5&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2412.15115.2rvuxsgu9b.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;动机。&lt;/strong&gt; 开放模型在长文档、结构化输出、数学代码和多语言指令上仍不稳定，且不同参数规模的性价比差异很大。Qwen 团队希望用更大、更干净的数据和统一后训练，把能力下放到小模型，同时保留 72B 的高端表现。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;方法。&lt;/strong&gt; 提供 0.5B、1.5B、3B、7B、14B、32B、72B 的 dense decoder 模型，并另有不完全开放的 Turbo/Plus MoE。预训练数据从上一代约 7T 扩至 18T token，分阶段过滤和配比，加入数学、代码及合成数据；后训练使用超过百万样本的 SFT、离线 DPO 和在线 GRPO。模型使用 RoPE、RMSNorm、带 QKV bias 的 Transformer，并按规模提供 32K 或 128K 上下文；Turbo 通过渐进扩展、YaRN/DCA 支持更长窗口。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;实验。&lt;/strong&gt; Qwen2.5-7B-Instruct 在 MMLU-Pro 56.3、MATH 75.5、GSM8K 91.6、HumanEval 84.8；72B-Instruct 分别达到 71.1、83.1、95.8、86.6，Arena-Hard 81.2、MT-Bench 9.35。72B 在多项任务接近或超过 Llama 3.1-405B，32B/14B 则提供较好的成本—效果折中。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;局限。&lt;/strong&gt; 许多结果来自自动或内部评测，可能存在数据污染、提示敏感和对齐偏差；不同尺寸的权重、许可证与 Turbo/Plus 的可复现性不一致。128K/百万级上下文依赖专门扩展和评测设置，真实长文检索未必同样可靠；多语种覆盖、安全拒答和工具调用仍需应用侧验证。&lt;/p&gt;
&lt;h2&gt;DeepSeek-V3&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2412.19437.1zizg20zbo.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;动机。&lt;/strong&gt; 超大稠密模型的训练和推理成本随参数线性增长，而 MoE 虽能降低每 token 计算，却带来专家失衡、跨节点通信和显存压力。作者希望在保持大模型容量的同时，建立可扩展、稳定且成本透明的训练系统。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;方法。&lt;/strong&gt; V3 为 61 层 MoE，含 256 个 routed experts 与 1 个 shared expert，每个 token 激活 8 个 routed experts（总规模约 671B、激活约 37B），并使用 Multi-head Latent Attention 压缩 KV。训练 14.8T 高质量 token，采用无 auxiliary loss 的专家负载均衡、multi-token prediction、FP8 混合精度和 DualPipe 计算—通信重叠；上下文通过 4K→32K→128K 的两阶段 YaRN 扩展。后训练结合 SFT、RL 和来自 DeepSeek-R1 的推理蒸馏。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;实验。&lt;/strong&gt; 论文报告基础模型在 MMLU 88.5、MMLU-Pro 75.9、GPQA 59.1 等知识、数学和代码指标上处于开放模型前列；Chat 版总体接近 GPT-4o/Claude 3.5，并在中英文事实性、代码任务上表现强。训练总量约 278.8 万 H800 GPU 小时（含预训练、上下文扩展和后训练），论文给出的租用估算约 557.6 万美元；MTP/自验证解码还带来约 1.8 倍 token 吞吐。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;局限。&lt;/strong&gt; 671B 总参数使推荐部署单元和显存需求仍对小团队不友好，端到端推理和专家通信尚有优化空间；FP8 收益依赖 Hopper 等硬件并伴随精度折中。数据配方和部分评测细节不完全公开，中文/英语分布与内部基准可能影响结论，MoE 在不同领域仍可能出现负载不均和能力波动。&lt;/p&gt;
&lt;h2&gt;DeepSeek-R1&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2501.12948.5moj3kwrue.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;动机。&lt;/strong&gt; 仅靠模仿短答案或人工 CoT 可能限制模型发现新解法；作者想测试规则可验证的奖励能否让模型自行发展长链推理，并将这种能力迁移到更广泛的帮助性任务。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;方法。&lt;/strong&gt; R1-Zero 从 DeepSeek-V3-Base 出发，不做 SFT，使用 GRPO，以数学/代码/逻辑的正确性和格式作为规则奖励。训练中模型逐渐学会自我反思、验证和切换策略；完整 R1 先加入可读的 cold-start 长 CoT 数据，再进行迭代 RL、拒绝采样和 SFT，并混合一般帮助性与安全数据。论文还用约 80 万条 R1 生成样本对 Qwen/Llama 做纯 SFT 蒸馏，蒸馏模型不再额外做 RL。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;实验。&lt;/strong&gt; R1-Zero 在 AIME 2024 的 pass@1 从 15.6% 提升到 77.9%；R1 主模型在 MMLU 90.8、MMLU-Pro 84.0、GPQA 71.5、AIME 2024 79.8、MATH-500 97.3、LiveCodeBench 65.9、SWE Verified 49.2 等任务达到强结果，Codeforces 约 96.3 百分位。蒸馏到 1.5B–70B 后仍保留相当一部分数学推理能力，显示推理轨迹具有迁移价值。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;局限。&lt;/strong&gt; 长 CoT 会过度思考、消耗大量 token，模型可能陷入错误逻辑；pass@64 往往高于 pass@1，说明单次可靠性仍不足。工具调用、结构化输出和软件工程 RL 较弱，缺少可靠 verifier 时容易 reward hacking；在非中英语言中会混杂语言，few-shot 提示常使表现下降，应用需要零样本提示和额外后处理。&lt;/p&gt;
&lt;h2&gt;Kimi K2&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2507.20534.77ea31urd0.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;动机。&lt;/strong&gt; 语言模型在真实工作流中不仅要回答问题，还要规划、调用工具、读写文件并验证结果；静态指令数据难以覆盖这些长程交互。K2 以 agentic 能力为目标，尝试在超大 MoE 上稳定训练并降低开放模型的使用门槛。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;方法。&lt;/strong&gt; 模型总参数约 1.04T、激活约 32B，含 384 个专家、每 token 选 8 个专家、61 层，并采用 MLA 式注意力。MuonClip 将 Muon 优化器与 QK-Clip 结合，控制注意力 logit 不稳定；模型在 15.5T token 上训练且无 loss spike。训练数据大量来自模拟/真实环境中的工具轨迹和合成任务，后训练联合可验证奖励（RLVR）与自批评 rubric 奖励。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;实验。&lt;/strong&gt; 报告在非思考模式下的 Tau2-bench 66.1、ACEBench 英文 76.5、SWE-bench Verified 65.8、多语 47.3、LiveCodeBench v6 53.7、AIME 2025 49.5、GPQA-Diamond 75.1、OJBench 27.1，并称 2025 年 7 月 LMSYS 排名中为顶尖开放模型。工具调用和多轮代理评测的提升尤其明显。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;局限。&lt;/strong&gt; 模糊的工具定义或困难推理会触发过长轨迹，导致输出截断和未完成的工具调用；无必要地开放工具甚至会降低成绩。一次性完成整套软件项目仍不如专门的 agentic coding 框架。合成重述可能引入事实漂移、幻觉或毒性，人工评测带主观性，而 1T 级模型的部署成本和并行通信压力仍很高。&lt;/p&gt;
&lt;h2&gt;DFT&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2508.05629.6po8egte2j.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;动机。&lt;/strong&gt; 标准 SFT 等价于对专家序列做精确匹配，模型对低概率 token 的逆概率权重会产生过大的梯度，导致过拟合和比 RL 更差的泛化。作者希望保留 SFT 的离线、简单和高效，同时让更新信号更接近带验证奖励的 RL。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;方法。&lt;/strong&gt; DFT 将每个目标 token 的负对数似然乘以当前策略对该 token 的概率（停止梯度），从而抵消 SFT 梯度中的 inverse-probability weighting；实践中按 token 而非整句计算以避免数值不稳定。该改动不需要奖励模型、参考模型、大 batch 或在线采样，可直接替换标准 SFT 目标。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;实验。&lt;/strong&gt; 在 NuminaMath-CoT 上微调 Qwen2.5-Math、Llama 3、DeepSeekMath 等模型，并评测 Math500、Minerva Math、OlympiadBench、AIME 2024、AMC 2023；例如 Qwen2.5-Math-1.5B 的平均准确率从基座 15.92、SFT 18.01 提升到 DFT 31.58，Qwen2.5-Math-7B 从 23.62 提升到 37.15。DFT 还在离线 RL、代码生成和多模态数学上普遍超过 SFT，并在该设置中以平均 35.43 超过 DPO、RFT、PPO 和 GRPO 的对比结果。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;局限。&lt;/strong&gt; DFT 依赖正例轨迹和当前模型概率，仍是离线正数据学习，不能替代缺少 verifier 的在线探索。论文的 Natural Questions 案例中，SFT 将准确率从 31.24% 提高到 36.62%，DFT 反而降至 30.14%，说明它可能强化已有信念、不适合吸收模型尚未掌握的新事实；收益也可能随模型、数据和概率校准而变化，尚缺大规模生产验证。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/68232005_p0_master1200.60uu51sjdo.webp"/><enclosure url="https://pic.hana0721.top/68232005_p0_master1200.60uu51sjdo.webp"/></item><item><title>Paper Reading: Embodied AI 3</title><link>https://agusexp25.top/blog/paper-reading-eba3</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-reading-eba3</guid><description>从零开始的Embodied AI研究生活。</description><pubDate>Fri, 26 Dec 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating, RatingCriteria } from &apos;@/components/advanced&apos;&lt;/p&gt;
&lt;p&gt;import { ManualTOC } from &apos;@/components/advanced&apos;&lt;/p&gt;
&lt;p&gt;&amp;#x3C;ManualTOC
title=&apos;&apos;
categories={[
{
title: &apos;Embodied AI Paper Reading&apos;,
items: [
{
title: &apos;Batch 1&apos;,
href: &apos;/blog/paper-reading-eba1&apos;,
order: &apos;1&apos;
},
{
title: &apos;Batch 2&apos;,
href: &apos;/blog/paper-reading-eba2&apos;,
order: &apos;2&apos;
},
{
title: &apos;Batch 3&apos;,
href: &apos;/blog/paper-reading-eba3&apos;,
order: &apos;3&apos;
},
{
title: &apos;Batch 4&apos;,
href: &apos;/blog/paper-reading-eba4&apos;,
order: &apos;4&apos;
},
{
title: &apos;Batch 5&apos;,
href: &apos;/blog/paper-reading-eba5&apos;,
order: &apos;5&apos;
}
]
}
]}
/&gt;&lt;/p&gt;
&lt;h2&gt;前言&lt;/h2&gt;
&lt;p&gt;RL菜鸡开始进军Embodied AI，慢慢积累，提升自己。&lt;/p&gt;
&lt;h2&gt;RoboVerse&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/roboverse.wja4hl5rt.webp&quot; alt=&quot;&quot;&gt;
RoboVerse 关注的不是某一个策略网络，而是机器人学习长期缺失的“可扩展数据—仿真—评测”基础设施。真实机器人数据采集昂贵、硬件依赖强，现有仿真数据又分散在不同模拟器和格式中，导致数据难以复用、算法难以公平比较。论文希望用统一平台把这些碎片连接起来。&lt;/p&gt;
&lt;p&gt;核心是 MetaSim。它为不同模拟器提供统一的配置系统和 Gym 风格 API，抽象了环境启动、资产加载、物理步进、传感器和任务定义等接口，因此可以在多个模拟器之间迁移任务和轨迹。平台还支持混合仿真：把物理引擎、渲染器和资产库组合起来，以同时获得较好的物理精度和视觉质量；对于不同机械臂，则通过保留末端位姿和夹爪语义的映射完成 cross-embodiment trajectory transfer。&lt;/p&gt;
&lt;p&gt;在数据侧，RoboVerse 将公开数据迁移、策略 rollout、运动规划、遥操作、轨迹增强、域随机化和生成模型结合起来，构造统一格式的高保真数据。正文概述的规模约为 50 万条轨迹、276 个任务类别、5500 个资产和超过 5000 万个状态转移；项目页面与后续版本还继续扩展了任务和轨迹规模。数据覆盖 ManiSkill、RLBench、CALVIN、LIBERO、RoboSuite 等来源，并保留多种相机、物体、光照和机器人设置。&lt;/p&gt;
&lt;p&gt;评测协议同时覆盖 imitation learning、reinforcement learning、world model learning 以及 sim-to-sim、sim-to-real。作者把泛化划分为从同分布到任务、物体、场景和视觉条件变化的多个等级，统一训练/测试划分后比较行为克隆和 RL 基线。实验显示，跨模拟器的数据复用、域随机化和高保真渲染能改善策略的分布外表现，也能支持直接 sim-to-real 的验证。&lt;/p&gt;
&lt;p&gt;RoboVerse 的价值更接近“机器人学习的公共底座”，而不是单一 SOTA 算法：它降低了接入新模拟器和新任务的工程成本，并让不同方法在相同协议下比较。局限也很明确：合成数据的物理真实性和视觉多样性仍受模拟器与资产质量限制，真实世界复杂接触、软体和长时序任务不能完全由仿真替代；跨模拟器接口统一后仍可能存在动力学和传感器分布差异，sim-to-real 结果需要谨慎解读。
&lt;/p&gt;
&lt;h2&gt;AgiBot World Colosseo&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2503.06669.5trqybyxnv.webp&quot; alt=&quot;&quot;&gt;
AgiBot World Colosseo 试图解决机器人基础模型最现实的瓶颈：不是模型参数不够，而是高质量、跨任务、跨场景的真实机器人数据不够。既有 Open X-Embodiment 虽然规模大，却混合了不同硬件、视角和采集标准；DROID 等数据集的场景更丰富，但在规模、质量控制、双臂和灵巧手覆盖上仍有限。&lt;/p&gt;
&lt;p&gt;平台在约 4000 平方米的 domestic、retail、industrial、restaurant、office 五类真实场景中，使用 100 多台 AgiBot G1 双臂人形机器人采集数据。最新版本包含 1,001,552 条轨迹、约 2976.4 小时数据，覆盖 217 个任务、87 种技能、106 个场景和 3000 多个物体。机器人配备 RGB-D/鱼眼相机、末端相机、6-DoF 灵巧手以及可选的视触觉夹爪，记录多视角图像、深度、标定信息、本体状态和任务/子任务语言标注。&lt;/p&gt;
&lt;p&gt;数据采集采用 human-in-the-loop 流程。任务先经过可行性验证，再由 VR 控制器或全身动作捕捉系统遥操作；本地检查帧完整性，云端进行场景、技能、任务和失败原因标注，人工复核后才进入训练。与简单丢弃失败轨迹不同，约 1% 的失败恢复数据会保留，并标注错误时间点和恢复行为；模型部署反馈还会反过来修正采集规范，例如删除过长的 idle frames。&lt;/p&gt;
&lt;p&gt;在模型侧，论文提出 Genie Operator-1（GO-1）。GO-1 使用视觉语言模型和 latent action planner，把人类视频、异构机器人轨迹与 AgiBot World 数据放到统一预训练流程中。潜动作表示将不同 embodiment 的观测变化压缩为可迁移的计划，之后再由目标机器人动作头解码。这样既能利用无动作的人类视频，也能避免直接把不同机器人关节空间硬拼在一起。&lt;/p&gt;
&lt;p&gt;实验中，AgiBot World 预训练策略相对 Open X-Embodiment 训练策略平均提升约 30%；即使只使用约十分之一的时长，泛化也能提升约 18%。GO-1 在复杂灵巧和长时序任务上成功率超过 60%，相对 RDT 提升约 32%，且随着数据量增加呈现较平滑的 scaling。论文的局限是所有主要评测都在真实场景中进行，暂时缺少与真实设置对齐的公开仿真环境，复现实验成本较高；数据还集中在 AgiBot G1 这一硬件体系，跨平台迁移仍需额外验证。
&lt;/p&gt;
&lt;h2&gt;UniVLA&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2505.06111.6po8ds8m6r.webp&quot; alt=&quot;&quot;&gt;
UniVLA（Learning to Act Anywhere with Task-centric Latent Actions）关注跨 embodiment 学习。现有 VLA 大多依赖带动作标签的机器人数据，而不同机器人、视角和控制频率之间差异很大；如果直接把 action 拼在一起，模型会把相机抖动、旁观者运动等与任务无关的变化也当成动作。作者希望从互联网视频和人类第一视角视频中学习一个与 embodiment 无关、但与任务相关的潜动作空间。&lt;/p&gt;
&lt;p&gt;方法分三步。第一步从一对相隔约一秒的观测帧出发，用 inverse dynamics encoder 推断 latent action，再由 forward dynamics decoder 重建未来观测；动作 token 在 DINOv2 的 patch 特征空间中学习，而不是直接在像素空间重建，从而降低纹理、光照和镜头运动的干扰。随后使用 VQ-VAE 将 latent action 离散化成 codebook token。第二步，自动回归 VLA 以语言、当前观测和离散 latent action 为输入，学习跨 embodiment 的任务规划。第三步，只训练一个轻量 decoder（约 10.8M 参数），将 latent plan 解码为目标机器人的连续轨迹。&lt;/p&gt;
&lt;p&gt;训练数据可以没有动作标签：作者把 RT-1、BridgeV2、DROID、Kuka、TOTO、Taco Play、CALVIN、LIBERO、ManiSkill2 以及人类视频等统一成视频片段，再用语言条件去分离 task-centric dynamics。模型在 BridgeV2 上预训练后，也能继续吸收不同机器人和人类视频；这使得动作表示不再绑定某个机械臂的关节定义。&lt;/p&gt;
&lt;p&gt;结果显示，UniVLA 在 LIBERO Spatial/Object/Goal/Long 上分别达到 95.4/98.8/93.6/94.0%，平均约 95.5%；CALVIN ABC→D 和 ABCD→D 平均完成长度为 4.41 和 4.63。在 SimplerEnv 的 WidowX/Bridge 设置中平均成功率约 69.8%，相较既有结果明显提升。world-model 预训练比只做 action-only 训练更重要：在少量下游数据（例如 10% CALVIN 微调集）时仍能保持可用性能，而无 latent world model 的模型几乎无法完成长时序组合任务。&lt;/p&gt;
&lt;p&gt;作者指出目前的 post-training 规模研究受算力限制，622K 视频并不代表最终上限；统一自回归 token 框架的训练和推理成本也很高，真实 ALOHA 和 NAVSIM 结果仍属于初步迁移。未来还需要更大视频集、强化学习和更多真实 embodiment 的联合验证。
&lt;/p&gt;
&lt;h2&gt;GraspVLA&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2505.03233.1appvctgvx.webp&quot; alt=&quot;&quot;&gt;
GraspVLA 研究一个具体但基础的问题：能否完全依靠大规模合成动作数据训练出具有 foundation model 特征的抓取策略，从而减少真实遥操作数据的成本。作者构建 SynGrasp-1B，将 Objaverse 中约 10,680 个物体实例、240 个类别放入物理仿真，生成十亿帧、带语言和精确动作标签的抓取数据。&lt;/p&gt;
&lt;p&gt;数据流水线先随机化物体布局、初始姿态、材质、光照、背景和相机，再用抓取合成算法得到 force-closure 抓取姿态，用 CuRobo 规划无碰撞轨迹，并在 MuJoCo 中验证成功抬升。为避免模仿策略学到“先停一下再抓”的僵硬动作，作者采用单段平滑轨迹和随机机器人初始位姿；整套数据由 160 张 RTX 4090 运行约 10 天生成。&lt;/p&gt;
&lt;p&gt;GraspVLA 由视觉语言骨干和 flow-matching action expert 组成。它提出 Progressive Action Generation（PAG）：先自回归预测目标物体 2D bounding box，再预测机器人基座坐标系中的 grasp pose，最后让 action expert 生成连续 action chunk。互联网 grounding 数据只监督 bounding box，合成数据同时监督 box、grasp pose 和动作，因此语义知识与几何动作知识可以共同训练，模型还能对合成类别之外的长尾物体进行开放词汇抓取。&lt;/p&gt;
&lt;p&gt;在真实零样本抓取中，GraspVLA 在合成类别和 web 类别上都明显优于 OpenVLA、Octo 和 π0 的对应微调版本；表 1 中各项环境变化下的成功率大多在 86–97% 区间，透明物体上也优于 AnyGrasp。LIBERO 的 Long/Goal/Object 三个 suite 分别约为 82.0/91.2/94.1%。少量示范微调还能学习“不要碰杯内壁”“从拥挤瓶堆中按顺序抓取”等偏好。&lt;/p&gt;
&lt;p&gt;局限包括：合成和评测主要使用 Franka Panda 的固定双视角，跨机器人与跨相机配置尚未充分验证；force-closure 标签不建模柔性物体；含糊指令（如“拿食物”“最左边的物体”）仍容易失败；PAG 需要先生成中间 token，L40S 上延迟约 200 ms。当前重点是抓取，推、放置和非抓取操作还需要新的合成器和更复杂的动力学。
&lt;/p&gt;
&lt;h2&gt;GRAPE&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2411.19309.6m4mg2fjmj.webp&quot; alt=&quot;&quot;&gt;
GRAPE（Generalizing Robot Policy via Preference Alignment）认为，单纯用成功示范做 behavior cloning 会把专家隐含的价值观一并“硬拷贝”进策略：有的示范追求完成任务，有的更安全，有的更省动作，但数据没有显式说明这些偏好。模型因此容易在新物体、新场景或不同目标下产生次优轨迹。作者希望在不依赖昂贵在线 RL 的情况下，直接对整条机器人轨迹做偏好对齐。&lt;/p&gt;
&lt;p&gt;GRAPE 先用 VLM 将复杂任务拆成时间阶段，并为每个阶段提出空间关键点。用户可以指定 task completion、safety、efficiency、resilience 等对齐目标，随后让 GPT-4o 根据关键点生成阶段性 cost function。模型在当前 VLA（实验主要使用 OpenVLA）上采样多条 rollout，用外部阶段 cost、策略自评 log-likelihood 和二值成功信号组成 GCPG reward，再把高 reward 与低 reward 轨迹配成 chosen/rejected 对。&lt;/p&gt;
&lt;p&gt;训练采用 trajectory-wise preference optimization（TPO）。每轮从更新后的策略在线采样，按多阶段 reward 排序，再迭代优化；阶段 cost 用指数衰减聚合，前一阶段失败会降低后续阶段的总体分数。与逐步动作偏好不同，TPO 的梯度贯穿整条轨迹，能同时利用成功和失败样本，并把“安全/效率”等定制目标变成可解释的约束。&lt;/p&gt;
&lt;p&gt;在真实和仿真任务上，GRAPE 相比同数据微调的 Octo-SFT、OpenVLA-SFT 和 DPO 基线，in-domain 成功率提升约 51.79%，unseen 任务提升约 58.20%。切换到安全目标时，碰撞率降低约 37.44%；切换到效率目标时，rollout 步数缩短约 11.15%。结果说明偏好优化不只提升平均成功率，也能改变策略的行为风格。&lt;/p&gt;
&lt;p&gt;局限在于偏好和 cost 仍由 VLM 自动生成，关键点检测或 VLM 判断错误会把错误偏好写入模型；在线采样虽然比完整 RL 便宜，仍需要多轮真实/仿真 rollout。多阶段拆分假设任务可以被清晰分段，对高度连续、接触丰富或需要全局协同的技能未必合适；论文也主要在有限的机械臂任务上验证，尚未覆盖移动机器人和长期自主运行。
&lt;/p&gt;
&lt;h2&gt;A0&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2504.12636.73uo4ngxa1.webp&quot; alt=&quot;&quot;&gt;
A0 针对机器人操作中经常被忽视的空间 affordance：不仅要知道“抓哪个物体”，还要知道“在物体哪里接触、接触后沿什么轨迹运动”。端到端 VLA 往往直接回归动作，容易在擦桌面、堆叠或倒液体等任务上缺少明确的空间中间表示；模块化 VLM 方法则常停留在框或稠密 heatmap，难以表达接触后的运动。&lt;/p&gt;
&lt;p&gt;A0 采用层次化结构。高层 Spatial Affordance Understanding 模块输出 Embodiment-Agnostic Affordance Representation，包括目标物体的 object-centric contact point 和 post-contact trajectory；低层 Action Execution 模块再结合深度相机、2D-to-3D 投影、抓取姿态估计和机器人运动规划执行。这样高层表示不依赖具体机械臂的关节数量，能够迁移到 Franka、Kinova、Realman 和 Dobot 等平台。&lt;/p&gt;
&lt;p&gt;模型以语言编码器和图像编码器为输入，使用 Position Offset Attention 把运动相关的局部特征提取出来，再用 Spatial Information Aggregation Layer 将二维视觉坐标映射到精确空间位置。训练先在约 100 万个 contact-point 数据上做 affordance 预训练，再用标注的空间轨迹数据进行监督微调；DiT block 负责生成接触后的轨迹，action module 将其转换成具体控制量。&lt;/p&gt;
&lt;p&gt;论文报告 Franka 平均成功率 62.50%、Kinova 53.75%，在 Wipe Board 轨迹跟随任务上约 45%，并在双臂和多种物体交互上优于直接动作回归的 VLA。其意义在于把“可操作性”作为跨 embodiment 的中间层，而不是把视觉理解和控制完全割裂。&lt;/p&gt;
&lt;p&gt;局限是高层 affordance 仍需要接触点和轨迹标注，数据构建成本不低；二维点到三维坐标依赖深度相机标定，遮挡、透明物体和柔性物体会影响精度。模型目前聚焦桌面操作，复杂动态场景、移动底盘和真正的闭环失败恢复仍未充分评估。
&lt;/p&gt;
&lt;h2&gt;OneTwoVLA&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2505.11917.7axw0332s7.webp&quot; alt=&quot;&quot;&gt;
OneTwoVLA 试图把“会想”和“会做”放进同一个 VLA，而不是用两个互不了解的系统拼接。传统 dual-system 让高层 VLM 先写计划、低层 VLA 再执行，容易出现高层提出低层做不到的动作，也会因为高层每次都重新推理而产生明显延迟。OneTwoVLA 让一个模型在执行过程中自适应决定何时进入 reasoning mode、何时直接输出动作。&lt;/p&gt;
&lt;p&gt;模型以 π0 为动作基座，使用两个特殊决策 token：&lt;code&gt;[BOR]&lt;/code&gt; 表示开始推理，&lt;code&gt;[BOA]&lt;/code&gt; 表示开始动作。每个时刻模型先根据多视角图像、上一次推理参考图、指令、历史摘要和本体状态预测决策 token；若选择 &lt;code&gt;[BOR]&lt;/code&gt;，生成场景描述、任务计划、历史总结和下一步指令；若选择 &lt;code&gt;[BOA]&lt;/code&gt;，则沿用最新 reasoning 内容生成连续 action chunk。完成子任务、检测到失败或需要询问用户时才触发推理，其他时刻保持快速执行。&lt;/p&gt;
&lt;p&gt;为训练这种交错结构，作者把机器人轨迹切成 reasoning interval 和 acting interval，并自动标注推理边界。随后用 Gemini 2.5 生成场景描述、计划、历史摘要和 next-step instruction，还构建包含空间关系、物体属性和多步骤任务的合成视觉语言数据，与机器人数据共同训练。人机交互文本会被追加到后续 instruction，使模型能在执行中接受澄清或纠正。&lt;/p&gt;
&lt;p&gt;实验覆盖长时序烹饪、hotpot、cocktail、错误恢复、自然语言交互和 visual grounding。论文报告长时序规划相对 flat VLA 提升约 30%，相对始终调用高层模型的 dual-system 提升约 24%；在 tomato-egg 任务中总执行时间约 184 s，明显低于始终推理的系统。模型能发现抓取失败、重新规划，并在用户临时说“换一个/不要这个”后立即更新动作。&lt;/p&gt;
&lt;p&gt;限制是自适应触发依赖合成推理标注，边界判断错误会导致过少或过多的 reasoning；模型仍以 π0 和现有 flow action expert 为基础，长时序真实任务的规模和硬件覆盖有限。推理内容也不保证完全忠实于内部决策，且每次进入 reasoning mode 仍会带来不可忽略的延迟。
&lt;/p&gt;
&lt;h2&gt;RDT-1B&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2410.07864.4n8fpqa1io.webp&quot; alt=&quot;&quot;&gt;
RDT-1B（Robotics Diffusion Transformer）面向双臂操作中两个互相放大的难题：动作维度翻倍后分布高度多峰，而双臂示范又比单臂更昂贵、更稀缺。直接用 MSE 或离散 token 学习容易得到两种动作模式的平均值，造成两只手不协调；只用目标双臂数据又不足以支撑 foundation model 规模。&lt;/p&gt;
&lt;p&gt;RDT 使用 1.2B 参数的 Diffusion Transformer，通过迭代去噪生成 action chunk，利用扩散模型表达双臂动作的多模态分布。架构对机器人数据做了专门修改：用 MLP decoder 处理动作的非线性和高频变化，改进归一化，并交替注入图像和文本条件。更关键的是 Physically Interpretable Unified Action Space：把不同机器人的末端位姿、关节或轮子动作按照物理含义映射到统一向量，而不是按索引生硬拼接。&lt;/p&gt;
&lt;p&gt;预训练阶段汇总 46 个多机器人数据集，约 100 万条 episode；微调阶段在自建目标双臂数据上收集 6000 多条轨迹、300 多个挑战任务。输入包含外部相机、左右腕相机、语言、频率和本体状态，模型一次预测多个未来动作。为了满足实时性，部署时把扩散采样步数从 100 降到 5，动作 chunk 频率约 6 Hz，单动作频率约 381 Hz。&lt;/p&gt;
&lt;p&gt;在 ALOHA 双臂机器人上，RDT 相比 ACT、OpenVLA 和 Octo 的整体成功率提升约 56%，可以零样本处理未见物体、场景和语言指令，并用 1–5 条示范学习新技能。论文还展示了倒水、交接折衣、操纵机器狗摇杆等需要细粒度双手协同的任务；消融表明扩散建模、模型规模和预训练数据规模都贡献明显。&lt;/p&gt;
&lt;p&gt;局限是 1.2B 模型和多步去噪仍需要较高显存与计算，实时设置依赖减少采样步数和特定硬件；统一动作空间主要覆盖带夹爪的机器人，灵巧手、移动底盘和接触丰富任务的映射未充分验证。预训练数据以单臂为主，跨机器人迁移最后仍依赖目标双臂微调，不能完全消除 embodiment gap。
&lt;/p&gt;
&lt;h2&gt;Octo&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2405.12213.8adzd95u30.webp&quot; alt=&quot;&quot;&gt;
Octo 是一个完全开源的 generalist robot policy，核心目标是让下游研究者不必为每个新机器人和新传感器从零训练。它在 Open X-Embodiment 的 25 个数据源上训练约 80 万条轨迹，覆盖单臂、双臂、语言指令、目标图像、腕部相机和第三视角相机。&lt;/p&gt;
&lt;p&gt;模型把不同输入都转成 token：语言由 T5-base 编码，图像经过浅层 CNN 切成 patch，目标图像和本体状态也各自有对应 tokenizer。Transformer 处理统一序列后输出 readout token，再交给动作头。其 block-wise attention 允许在微调时增加或删除 observation、task 和 action head，而不必改动预训练主干，因此可以从末端位姿控制切换到关节控制，或加入新的力觉/相机输入。&lt;/p&gt;
&lt;p&gt;动作头使用 conditional diffusion 预测连续 action chunk，而不是逐维离散化。扩散头能够表达一条观测对应的多种合理动作，特别适合插入、倒咖啡等多峰行为。Octo 提供 27M 和 93M 两个模型，支持语言或 goal image 条件，并发布预训练权重、数据管线和微调脚本。&lt;/p&gt;
&lt;p&gt;作者在 9 个机器人平台上做了 zero-shot 和 few-shot 评估。预训练数据中的机器人可以直接控制；对于新观测空间、新动作空间和新任务，只需少量目标域数据、消费级 GPU 上数小时即可完成微调。消融显示，扩大数据混合、使用更灵活的 token 接口和 diffusion action head 都比窄化的单一输入/离散动作设置更稳定。&lt;/p&gt;
&lt;p&gt;Octo 的边界也很清楚：80 万轨迹虽然在当时最大，但数据质量、语言标注和机器人形态仍不均衡；新 embodiment 仍需微调，并非真正的零样本通用控制。93M 模型对复杂灵巧技能的容量有限，扩散采样也带来推理开销；长时序规划、触觉和移动机器人任务不是论文主要覆盖范围。
&lt;/p&gt;
&lt;h2&gt;FAST&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2501.09747.msp1bi0f.webp&quot; alt=&quot;&quot;&gt;
FAST（Frequency-space Action Sequence Tokenization）解决的是自回归 VLA 的一个底层但关键的问题：把连续动作按“每个维度、每个时间步”简单分桶，会产生高度相关的 token。模型只要复制上一个 token 就能获得低训练损失，却学不会高频、灵巧和长动作序列。&lt;/p&gt;
&lt;p&gt;作者把动作 chunk 看成时间序列，先对每个维度做离散余弦变换（DCT），在频域中用少量系数表达整段轨迹，再量化并进行 byte-pair encoding。这样相邻 token 的相关性下降，Transformer 可以用普通 next-token prediction 学习高频动作。FAST+ 进一步在 100 万条真实机器人轨迹上训练成通用 tokenizer，覆盖单臂、双臂、移动机器人和不同控制频率。&lt;/p&gt;
&lt;p&gt;在 π0 上使用 FAST 得到 π0-FAST 后，模型可以处理此前离散分桶完全失败的高频灵巧任务，也能在 DROID 这类大规模 in-the-wild 数据上训练。论文报告，结合 FAST 的自回归 VLA 在约 1 万小时机器人数据上达到接近 diffusion VLA 的表现，同时训练时间最多减少 5 倍。频域压缩还减少了动作序列长度，改善了高控制频率下的学习稳定性。&lt;/p&gt;
&lt;p&gt;FAST 的重要性不只在于一个编码器，而是揭示了 action tokenization 会直接决定 VLA 的能力上限。它适合训练阶段统一语言和动作，但推理仍需自回归生成 token，控制频率和延迟通常不如连续 diffusion/flow expert；量化误差、DCT 窗口长度和不同机器人的动作范围也需要校准。FAST+ 的通用性主要在已有机器人轨迹分布内验证，对全新传感器、接触动力学和极高频闭环控制仍需更多实验。
&lt;/p&gt;
&lt;h2&gt;Magma&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2502.13130.26m7at35uc.webp&quot; alt=&quot;&quot;&gt;
Magma 试图把数字世界的 UI agent 和物理世界的机器人放进同一个多模态 agent。作者认为，普通 VLM 具备“verbal intelligence”，却不懂空间和时间动作；而专门的 VLA 虽然会动，微调后又常丢失通用视觉语言理解。Magma 用统一的 action grounding 任务把两者连接起来。&lt;/p&gt;
&lt;p&gt;核心是 Set-of-Mark（SoM）和 Trace-of-Mark（ToM）。在静态图像中，SoM 给可点击按钮、物体或机器人末端加编号标记，模型预测下一个应操作的 mark；在视频中，ToM 用点跟踪器提取手、机械臂或物体的未来轨迹，模型预测这些 mark 的时空变化。这样没有动作标签的 UI 截图、教学视频和机器人视频都可以转成统一的“看图—定位—行动”训练样本。&lt;/p&gt;
&lt;p&gt;Magma 使用约 3900 万条多模态样本，混合图像文本、Ego4D/Something-Something 视频、UI 数据和 Open X-Embodiment 机器人轨迹。模型从一个视觉语言骨干出发，用统一 token 预测语言答案、2D UI 操作坐标或机器人 action token；之后可以在 Mind2Web、AITW、SimplerEnv、Bridge、LIBERO 和真实 WidowX 上 zero-shot 或轻量微调。&lt;/p&gt;
&lt;p&gt;单一 Magma 模型在 UI navigation 和机器人 manipulation 上达到开源模型中的 SOTA，同时保持 GQA、TextVQA、VideoMME 等理解能力。论文强调，SoM/ToM 比直接把 7-DoF 动作塞进语言词表更容易跨域，尤其在 sim-to-real 场景中能利用视频的空间和时间先验；在 SimplerEnv 的 Google Robot/Bridge 任务上，预训练模型比只用机器人数据的版本明显更稳。&lt;/p&gt;
&lt;p&gt;局限包括：SoM/ToM 依赖点跟踪、检测和自动标注质量，遮挡、快速运动和镜头运动会产生噪声；机器人动作在训练中仍被离散化或转成文本 token，精细连续控制能力不如专门 diffusion/flow policy。39M 样本来源异构，统一标记并不等于统一物理动力学；真实实验主要是 WidowX 和桌面操作，移动、双臂和高频灵巧控制还需要专门适配。
&lt;/p&gt;
&lt;h2&gt;ChatVLA&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2502.14420.4xv9ivp9yu.webp&quot; alt=&quot;&quot;&gt;
ChatVLA 研究如何让一个模型同时“聊天、理解图像、控制机器人”。作者先系统分析三种训练方式：只用机器人轨迹会让模型几乎失去问答能力；直接混入 image-text 数据又会损害控制；在机器人数据中加入固定 reasoning 文本虽然有所帮助，但仍不能解决任务干扰。论文将前一种现象称为 spurious forgetting，后一种称为 partial task interference。&lt;/p&gt;
&lt;p&gt;方法包含两个关键点。第一是 Phased Alignment Training：先用机器人数据把模型训练成可靠的控制器，同时保留少量 reasoning 监督；然后再逐步加入视觉问答、caption、OCR 和 multimodal understanding 数据，重新激活原有视觉—语言对齐。第二是 MLP 层上的 Mixture-of-Experts：控制和理解共享 self-attention，以交换空间和语义特征，但分别使用 task-specific MLP，减少参数竞争；action head 与 LLM head 也分开。&lt;/p&gt;
&lt;p&gt;实验覆盖 TextVQA、DocVQA、MMMU、MME、MMStar 等理解基准，以及厨房、浴室、桌面 25 个真实机器人任务。ChatVLA 在 MMMU 上约为 6 倍于 ECoT，在 MMStar 得到 47.2%，且视觉语言骨干参数更少；真实 25 任务总成功次数为 55/107，高于 OpenVLA 的 20/107 和 Octo 的 18/107。论文还通过数据设置消融验证：reasoning 数据可以部分恢复对话能力，并改善控制泛化，而直接 co-training 若无阶段策略会明显降低动作成功率。&lt;/p&gt;
&lt;p&gt;这项工作说明 VLA 的“遗忘”不一定是预训练知识完全消失，可能是机器人动作目标改变了内部表示的对齐方式。局限是理解和控制仍依赖手工设定的阶段比例及 MoE 路由，25 个真实任务规模有限；对长时序、多机器人和连续动作分布的验证不足。模型同时维护多个专家会增加参数与训练复杂度，如何在不牺牲控制频率的情况下扩展更大视觉语言骨干仍是问题。
&lt;/p&gt;
&lt;h2&gt;ChatVLA-2&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2505.21906.4ubnl5w7bm.webp&quot; alt=&quot;&quot;&gt;
ChatVLA-2 在 ChatVLA 的基础上进一步追问：如果 VLA 真的保留了预训练 VLM 的知识，能否在训练时从未见过的数学题、OCR 字体、物体和空间关系上直接控制机器人？作者将目标定义为两种能力：open-world embodied reasoning（继承 VLM 的识别、数学和空间知识）以及 reasoning following（把语言推理可靠地转成动作）。&lt;/p&gt;
&lt;p&gt;模型以 Qwen2-VL/DexVLA 为基础，在 VLM 的 MLP 层引入 Dynamic Mixture-of-Experts，共 8 个专家、推理时动态选择 2 个。部分专家学习多模态理解，部分专家学习机器人控制，也允许共享空间关系等有益特征；动态路由保留原始 Qwen2-VL 结构，避免静态拆分破坏预训练知识。另一个 reasoning-following module 用 reasoning token 替换后半段 action expert 的 observation embedding，使动作生成明确受当前推理条件化。&lt;/p&gt;
&lt;p&gt;训练分两阶段。Stage 1 以 COCO、TextVQA、GQA 和机器人数据 co-training，建立图像文本知识到动作的连接；Stage 2 冻结整个 VLM，只训练 action expert，让它学习遵循任意新推理而不再破坏语言知识。作者只用 600 条 math-matching 和 300 条 toy-placement 轨迹，并给机器人数据加入 reasoning 文本。&lt;/p&gt;
&lt;p&gt;真实实验的 math matching game 要求双臂机器人读取白板算式、找到对应数字卡并按顺序抓取。开放世界设置中的算式和手写字体都未出现在训练数据里，ChatVLA-2 达到 OCR 3.58/4、数学推理 1.73/2、43/52 次任务成功（82.7%），而其他基线几乎为零。Toy placement 的开放世界设置中，模型物体识别 0.94、空间 affordance 0.88、127/156 次成功（81.4%），明显高于 DexVLA、ChatVLA 和 π0。&lt;/p&gt;
&lt;p&gt;局限是实验集中在两个精心设计的桌面任务，尚未证明对任意开放世界长时序任务都有效；动态 MoE 增加推理计算，且第二阶段冻结 VLM 后动作专家仍可能无法覆盖复杂接触技能。模型是否真正“遵循”内部推理，而不是利用任务相关捷径，也需要更多因果干预和更大规模盲测。
&lt;/p&gt;
&lt;h2&gt;RoboBrain&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2502.21257.7i13vip8pz.webp&quot; alt=&quot;&quot;&gt;
RoboBrain 把机器人“大脑”拆成三个从抽象到具体的能力：long-horizon planning、object affordance perception 和 end-effector trajectory prediction。现有 MLLM 往往能描述场景，却不会把“把杯子放到盘子上”拆成可执行子任务，也不能在每个子任务中指出接触区域和轨迹。&lt;/p&gt;
&lt;p&gt;作者构建 ShareRobot，从 Open X-Embodiment 的 23 个源数据集中筛选 51,403 条高质量实例，过滤低分辨率、失败、描述模糊和短视频。三位标注者为数据添加任务分解、当前/未来子任务、成功/失败、affordance box 和 gripper trajectory。最终得到约 1,027,990 个 planning QA，另有 6,522 张 affordance 图和 6,870 张 trajectory 图，覆盖 102 个场景、12 种 embodiment 和 100 多种原子动作。&lt;/p&gt;
&lt;p&gt;RoboBrain 基于 LLaVA，使用多阶段训练：先用 LCS/OneVision 图文数据获得通用理解，再加入高分辨率图像和长视频，最后用 A-LoRA 专门训练 affordance、用 T-LoRA 专门训练 trajectory。输入可以是单帧、多帧或长视频，输出既可以是自然语言计划，也可以是标准化的框坐标、轨迹 waypoint 和成功判断。&lt;/p&gt;
&lt;p&gt;在 RoboVQA、OpenEQA、affordance 和 trajectory benchmark 上，RoboBrain 达到或接近 SOTA。它能回答“下一步做什么”“当前动作是否可执行”“未来会发生什么”等问题，并把同一套数据用于规划和视觉 grounding。这里的贡献更偏向数据和统一训练 recipe，而不是一个直接控制关节的 VLA。&lt;/p&gt;
&lt;p&gt;局限是大量 planning QA 由 Gemini 生成后再人工抽检，标注质量与模型偏差可能互相传递；affordance 仍用 2D 框、trajectory 仍用 2D 点，深度遮挡和真实运动学需要额外模块。RoboBrain 本身不直接输出连续动作，落地时还要接 action policy 或规划器；长视频记忆、跨 embodiment 控制和在线失败恢复尚未充分验证。
&lt;/p&gt;
&lt;h2&gt;CoT-VLA&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2503.22020.5c1p9qxl1e.webp&quot; alt=&quot;&quot;&gt;
CoT-VLA 将语言模型里的 Chain-of-Thought 改成视觉形式：机器人不直接从当前图像跳到动作，而是先预测一个未来 subgoal image，再根据这个图像生成一小段动作。未来图像天然存在于机器人示范中，因此相比人工写文字计划，额外标注成本较低；无动作的人类视频也可以参与训练视觉推理部分。&lt;/p&gt;
&lt;p&gt;模型建立在 VILA-U 7B 上，输入语言、当前观测和历史帧。第一阶段自回归生成若干 visual tokens，表示未来 (n) 帧的子目标；第二阶段同时读取当前观测和子目标图像，使用 full attention 一次预测 action chunk。训练时对视觉/文本 token 使用 causal attention，对 action token 使用 hybrid/full attention，避免把动作维度按语言 token 串行生成。&lt;/p&gt;
&lt;p&gt;预训练混合 Open X-Embodiment 机器人示范与 EPIC-KITCHENS、Something-Something 等 action-less 视频。视觉目标预测只需视频帧，动作生成仍使用带动作的机器人数据；部署时每执行一个短 chunk 就重新拍摄观测，形成闭环。这样中间图像不仅是可视化解释，也是动作条件。&lt;/p&gt;
&lt;p&gt;在 LIBERO 四个 suite 上，CoT-VLA-7B 达到 Spatial 81.13%、Object 87.5%、Goal 91.6%、Long 87.6%，平均表现优于或接近基线；Bridge-V2 的 motion/semantic/action 等泛化类别也优于 OpenVLA。Franka tabletop 六个任务上，模型平均成功率最高；使用真实示范中的 ground-truth goal image 会再提升约 40 个百分点，说明视觉推理质量是主要瓶颈。&lt;/p&gt;
&lt;p&gt;主要限制是生成中间图像需要逐 token 解码，论文报告推理速度约慢 7 倍；图像预测可能出现幻觉或模糊，最终动作仍会被错误目标带偏。动作 chunk 降低了反馈频率，难以处理快速接触和突发失败；当前视觉预训练数据规模也受算力限制，尚未覆盖更复杂的灵巧手与长时间操作。
&lt;/p&gt;
&lt;h2&gt;Interleave-VLA&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2505.02152.4n8fpqa23j.webp&quot; alt=&quot;&quot;&gt;
Interleave-VLA 认为，机器人只接受文字指令是泛化瓶颈。诸如“拿和这张图一样的物体”“把这个放到那个旁边”很难用文字唯一描述，而 cropped image、网页照片或手绘草图可以直接提供 in-context visual grounding。论文因此把 VLM 常用的交错图文输入扩展到连续低层机器人控制。&lt;/p&gt;
&lt;p&gt;方法尽量保持模型无关：在原有 π0/OpenVLA 的 tokenizer 中加入 &lt;code&gt;&amp;#x3C;BOI&gt;/&amp;#x3C;EOI&gt;&lt;/code&gt; 等分隔 token，允许任意 text-image-text 序列进入 VLA，核心 action expert、flow matching 目标和超参数不变。训练时使用自动构建的 Open Interleaved X-Embodiment Dataset：解析原文字指令，用开放词汇检测器定位目标物体，再从机器人帧裁出对象图或插入互联网图片，生成诸如“把 [图像] 放进 [图像]”的交错指令。&lt;/p&gt;
&lt;p&gt;数据集整合 11 个 OXE 数据源，约 210K episodes、13M 帧、3500 多个物体，并混合真实相机 crop、网页照片、简单图形和手绘 sketch。论文还分析了 Text-VLA 的三种 attentional hallucination：语言歧义引起的 attention bias、注意力扩散以及目标与场景之间的 attention leakage；交错图像提供更直接的视觉锚点，可降低这些错误。&lt;/p&gt;
&lt;p&gt;在 SimplerEnv 中，熟悉任务上 Interleave-VLA 与 Text-VLA 基本持平；未见物体和场景上，完整 Interleave-VLA 平均成功率约 60.7%，而 Text-VLA 约 30.5%，接近 2 倍。真实机器人实验中，使用交错数据预训练后，目标物体正确拾取率和任务成功率通常提高 2–3 倍。模型还可以零样本理解训练中没有出现的网页图片和手绘草图，并可较小改动迁移到 OpenVLA。&lt;/p&gt;
&lt;p&gt;局限是自动生成的 crop/检测标签可能把背景、遮挡或相似物体裁错；训练数据依赖 OXE 的文字说明和有限 embodiment，不能覆盖任意多图关系。交错输入增加视觉 token 数量，长指令会提高显存和推理延迟；目前评测主要是桌面抓取，视频指令、触觉和长时序交互仍待验证。
&lt;/p&gt;
&lt;h2&gt;Knowledge Insulating Vision-Language-Action Models&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2505.23705.5trqybyyrb.webp&quot; alt=&quot;&quot;&gt;
Knowledge Insulating VLA 研究一个常被忽略的训练动力学问题：给预训练 VLM 接上随机初始化的 diffusion/flow action expert 后，动作专家的梯度会反向污染 VLM backbone，导致训练变慢、语言跟随变差，并削弱 web-scale 视觉语言知识迁移。作者提出“知识绝缘”而不是简单冻结 backbone。&lt;/p&gt;
&lt;p&gt;核心做法是同时保留两种动作表示。VLM backbone 用 FAST 离散动作 token 和通用 VLM 数据做 next-token prediction，获得稳定的表征学习信号；小型 action expert 用连续 action chunk 做 flow matching，负责高频、精确控制。通过在 action expert 与 backbone 的 cross-attention 边界 stop-gradient，连续动作损失不会更新预训练 VLM，但 backbone 仍会被离散动作和图文任务适配。&lt;/p&gt;
&lt;p&gt;论文在 π0 架构上比较多种 recipe：纯 continuous action 的 π0、纯 FAST 的 π0-FAST、冻结 backbone、joint training、VLM co-training 和 knowledge insulation。实验覆盖 LIBERO、DROID、移动双臂机器人及多种长时序桌面任务。结果显示，绝缘模型训练更快、语言指令跟随更好，同时保持 flow expert 的连续控制优势；在 LIBERO 上从 generalist model 初始化的模型达到 Spatial 98.0、Object 97.8、Goal 95.6、Long 85.8、LIBERO-90 96.0，整体优于仅离散或无 stop-gradient 配置。&lt;/p&gt;
&lt;p&gt;作者还证明，VLM 图文数据不是“可有可无”的正则项：在未见物体的移动操作中，co-training 明显提高 OOD follow rate；而仅冻结 backbone 会因为没有机器人适配梯度而限制控制能力。离散 token 在训练阶段、连续 expert 在推理阶段的组合，正好把“容易训练”和“快速执行”分开。&lt;/p&gt;
&lt;p&gt;局限是同时预测离散和连续动作使训练计算量增加约 20%，架构和 mask 设计较复杂；语言跟随仍会受到数据中的动作—指令相关性影响，并非完全解决。stop-gradient 主要在 π0/flow expert 上验证，其他 VLA、灵巧手和更大 VLM 是否同样受益还需要测试；训练时仍需准备 FAST token 和通用 VLM 数据，工程门槛并没有完全消失。
&lt;/p&gt;
&lt;h2&gt;Hi Robot&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2502.19417.26m7at36c0.webp&quot; alt=&quot;&quot;&gt;
Hi Robot 针对的是开放环境里的“非原子”指令：用户不会总是说“拿起杯子”，而是会说“做一个不放番茄的素食三明治”“只收走垃圾，不要动餐盘”，并在执行过程中追加纠正和限制。单一 flat VLA 往往只能复读训练过的短指令，遇到组合任务或中途反馈就失去上下文。&lt;/p&gt;
&lt;p&gt;系统采用类似 System 2/System 1 的层次结构。高层 VLM 接收场景图像、用户长指令和实时反馈，输出下一步原子语言命令，也可以生成澄清或确认文本；低层 VLA 接收这些简单命令和当前观测，用 flow-matching action expert 连续输出动作 chunk。高层每隔约一秒或收到新用户交互时重新推理，低层则以较高频率执行，从而兼顾语义灵活性和控制反应速度。&lt;/p&gt;
&lt;p&gt;高层模型的训练数据不只来自人工标注。作者先用 VLM 读取机器人轨迹和原子命令，再反向合成“可能导致该动作的复杂用户提示、约束和中途纠正”，构成 open-ended synthetic interaction 数据；同时保留人工标注的原子行为。这样模型能学习“只拿黄色物体”“不要碰泡菜”“这不是垃圾，放回去”等组合语言，并把它们映射到低层可执行动作。&lt;/p&gt;
&lt;p&gt;实验覆盖单臂、双臂和移动双臂平台，任务包括清理杂乱桌面、制作三明治、买杂货。Hi Robot 在 instruction accuracy 和 task progress 上平均比 GPT-4o 高约 40%，也优于 flat VLA；用户在任务中说“留下其余的”“再拿一包 KitKat”时，系统能即时更新后续动作。去掉合成交互数据后，模型容易忽略澄清和约束；去掉层次分解则会退回清空所有物品等默认策略。&lt;/p&gt;
&lt;p&gt;局限是高层合成数据依赖 prompt engineering，生成的复杂指令不一定覆盖真实用户分布；高层和低层模型彼此并不知道对方能力，低层失败不会自动反馈给高层。固定低频调用高层仍有延迟，未来需要异步、自适应多层推理，以及把两个模型在训练或推理阶段更紧密地耦合。
&lt;/p&gt;
&lt;h2&gt;Scenethesis&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2505.02836.102w27e9td.webp&quot; alt=&quot;&quot;&gt;
Scenethesis 是一个 training-free 的文本到交互式 3D 场景生成框架，面向仿真、游戏、VR 和 Embodied AI。单独使用 LLM 规划场景时，模型知道“沙发和茶几应该共存”，却常把椅子朝向柜子、把小物体悬在空中或让物体互相穿插；而传统学习方法受限于小规模室内数据集，难以生成户外和非住宅场景。&lt;/p&gt;
&lt;p&gt;框架由四个 agentic 模块组成。第一步，LLM 根据文本和 Objaverse 资产库选择物体，确定 anchor object，并生成粗粒度层次布局。第二步，视觉模块调用图像生成器、Grounded-SAM 和 DepthPro，把粗布局细化为带对象分割、深度和关系的 scene graph。第三步，物理感知优化模块通过 RoMa 语义对应匹配，把 3D 资产投影到视觉引导图；再用 signed distance field（SDF）约束碰撞、尺度、落地和稳定性，迭代调整每个物体的 5DoF 位姿。最后由 VLM judge 检查整体空间一致性，必要时触发重新规划。&lt;/p&gt;
&lt;p&gt;和只检测 3D bounding box 的方法不同，Scenethesis 用 mesh-level SDF 处理小物体穿插，并区分 object collision、scene collision、instability、可达性和 walkable area。它不需要额外训练 3D layout 模型，因此可以从语言先验扩展到 beach、warehouse、hospital、museum 等室外或非住宅场景。&lt;/p&gt;
&lt;p&gt;在 22 个室内场景、6 个主类别和 12 个子类别上，Scenethesis 的 CLIP/BLIP/VQA 对齐、物体多样性、布局一致性和空间真实感整体优于 DiffuScene、PhyScene、SceneTeller 与 Holodeck。人类偏好评测也显示，在 shopping、tourism、sports 等训练数据稀少的类别中优势更明显；生成的可编辑对象和环境图可直接用于交互式仿真。&lt;/p&gt;
&lt;p&gt;局限是整个 pipeline 依赖多个外部模型（LLM、图像生成、分割、深度、对应匹配），推理成本和错误累积较高；图像引导是部分视角，遮挡和深度估计错误仍会导致几何错位。物理约束主要针对地面物体布局，软体、液体、复杂动力学和可操作性尚未建模；生成场景的“看起来合理”也不等同于真实机器人能稳定完成任务。
&lt;/p&gt;
&lt;h2&gt;LBM&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2507.05331.491zyv1rio.webp&quot; alt=&quot;&quot;&gt;
LBM（Large Behavior Model）论文的重点不是再提出一个更大的 VLA，而是严谨地检查“大规模多任务预训练到底有没有用”。作者指出，许多 LBM 论文的真实世界样本很少、初始条件不一致、没有盲测和统计检验，很难区分预训练收益与实验偶然性。因此本文固定 Diffusion Policy 范式，系统比较多任务预训练后微调和单任务从零训练。&lt;/p&gt;
&lt;p&gt;模型输入两步观测历史、最多六路 RGB、双臂末端位姿/相对位姿/夹爪状态和语言；CLIP ViT-B/16 提取视觉语言特征，8 层 768 维 DiT 预测 16 步、每步 20 维动作。部署频率为 10 Hz，每次执行前 8 步后重新规划。训练流程是先混合全部数据预训练，再按任务微调；评测随机化策略顺序和初始条件，并同时报告成功率（SR）与按里程碑计算的 task completion（TC）。&lt;/p&gt;
&lt;p&gt;数据总称 Ramen，约 1695 小时：TRI-Ramen 545 小时（真实 468 小时、仿真 45 小时、UMI 32 小时）加约 1150 小时 OXE-Ramen。平台是 9 个站点的双 Franka FR3。仿真覆盖 16 个 seen 和 8 个 unseen 任务，每个策略/条件通常约 200 次 rollout；真实评测包含 3 个 seen 与 5 个 unseen 任务，每个条件 50 次，总计约 47,000 次仿真和 1,800 次真实试验。作者使用 Bayesian posterior、Bonferroni/CLD 和顺序检验来报告不确定性。&lt;/p&gt;
&lt;p&gt;主要结论是：在相同微调数据量下，预训练 LBM specialist 通常优于从零训练的 single-task policy；达到后者相近性能时，LBM 只需要约 1/3–1/5 的任务示范。优势在外观、站点和物体分布偏移下更明显，且随着预训练数据量和任务多样性平滑增长。完全不微调的 LBM zero-shot 表现却不稳定，说明“预训练规模大”并不自动等于可执行策略。&lt;/p&gt;
&lt;p&gt;这篇论文的局限也很有警示意义：训练随机性没有纳入完整统计模型，真实每条件 50 次 rollout 仍会受到初始场景和人工评分误差影响；评测后还发现部分预训练 batch 使用了错误的 data normalization，主实验没有重跑昂贵的真实试验。小型 CLIP 文本编码器使语言 steerability 偏弱，低运动帧过滤对 LBM 与单任务模型的影响方向也不一致；结论主要针对双臂桌面 DiT，不能直接外推到更大 VLA 或其他 embodiment。
&lt;/p&gt;
&lt;h2&gt;UniVLA&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2506.19850.51evglidbs.webp&quot; alt=&quot;&quot;&gt;
这篇 UniVLA 与前面的 task-centric latent action 论文不同，它把问题推进到“视觉、语言和动作是否可以原生共享一个 token 空间”。作者认为多数 VLA 是语言中心的 late fusion：静态图像经过额外视觉编码器后才接入动作头，难以学习视频里的时间和因果结构，也难以让动作反过来影响视觉预测。&lt;/p&gt;
&lt;p&gt;模型采用约 8.5B 参数、类似 Emu3 的纯自回归 Transformer，不额外依赖独立 ViT 或 action head。语言使用文本 token，图像经 VQ tokenizer 离散化，连续动作经 FAST/DCT 压缩后离散化；三者共享词表并按时间交错排列。训练第一阶段是 world-model post-training：给定文本和视频帧，只对视觉 token 计算 loss，学习指令条件下的未来状态。第二阶段是 policy fine-tuning：序列变成 $(T, I_1, A_1, \ldots)$，只对 action token 计算 loss。&lt;/p&gt;
&lt;p&gt;作者汇总约 622K 个机器人视频，来源包括 RT-1、BridgeV2、DROID、Kuka、TOTO、Taco Play、FMB、CALVIN、LIBERO、ManiSkill2、SSV2 等。模型在 CALVIN 34 个任务、LIBERO 四个 suite、SimplerEnv WidowX/Google Robot 上测试，并做了视觉未来预测、空间 grounding、ALOHA 真实操控和 NAVSIM 驾驶的初步迁移。&lt;/p&gt;
&lt;p&gt;CALVIN ABC→D/ABCD→D 平均完成长度为 4.41/4.63；LIBERO Spatial/Object/Goal/Long 为 95.4/98.8/93.6/94.0%，平均约 95.5%；SimplerEnv-Bridge-WidowX 平均约 69.8%。world-model post-training 比 action-only 明显有效，LIBERO、SimplerEnv 和 CALVIN 长时序指标都大幅提升，甚至只用 10% 下游微调数据也能保持约 3.19 的 CALVIN 平均长度。&lt;/p&gt;
&lt;p&gt;限制是 8.5B 纯自回归模型训练和推理成本很高，主结果仍以仿真为主；真实 ALOHA 与 NAVSIM 只属于初步迁移。作者明确表示受计算资源限制，post-training 的规模规律还没有充分研究，统一 token 框架与 RL 的结合也留待未来。
&lt;/p&gt;
&lt;h2&gt;SmolVLA&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2506.01844.6il0icmi4v.webp&quot; alt=&quot;&quot;&gt;
SmolVLA 追求的是“足够强但真的能买得起”的 VLA。现有模型往往数十亿参数，需要大型数据中心训练和高端 GPU 推理；社区里的低成本 SO-100/SO-101 机器人虽然可以采集数据，却很少被纳入公开基础模型。论文目标是单 GPU 训练、消费级 GPU/CPU 部署，并通过异步执行降低动作等待时间。&lt;/p&gt;
&lt;p&gt;模型基于 SmolVLM-2，只取视觉语言骨干前半部分（主模型前 16 层），图像只使用全局视图和 pixel shuffle，每帧压缩到 64 个 visual token；机器人状态投影成 token。约 450M 参数（action expert 约 100M）的 flow-matching expert 生成 50 步 action chunk，使用交错 cross-attention 与 causal self-attention，让动作块既能读取视觉语言条件又保持时间一致性。&lt;/p&gt;
&lt;p&gt;训练数据从 Hugging Face 的 481 个社区数据集筛选，约 22.9K episodes、10.6M 帧，主要是 SO-100 的多任务轨迹；Qwen2.5-VL-3B 自动重写噪声指令，并人工统一 top/wrist/side 相机顺序。评测覆盖 LIBERO、Meta-World、SO-100 真实 pick-place/stack/sort 和未见过 embodiment 的 SO-101 Lego pick-place。RobotClient/PolicyServer 把动作执行和新 chunk 推理放到异步队列，还能将策略放在远程 GPU。&lt;/p&gt;
&lt;p&gt;450M 模型在 LIBERO 平均 87.3%（Spatial 90、Object 96、Goal 92、Long 71），Meta-World 平均 57.3%；SO-100 多任务平均约 78.3%，高于 π0 的 61.7%，SO-101 Lego pick-place 达到 90%。异步模式成功率与同步模式相近，但平均完成时间从 13.75 s 降至 9.70 s，固定时间内完成次数约翻倍。&lt;/p&gt;
&lt;p&gt;局限是预训练几乎只有 SO-100 embodiment，数据规模远小于百万级 VLA；小模型容量、SmolVLM-2 主要面向 OCR/文档预训练、尚未联合通用多模态数据，都会限制开放世界能力。当前任务较短且主要依赖 imitation learning，长时序、复杂接触、RL 和更广泛跨 embodiment 泛化尚未解决。
&lt;/p&gt;
&lt;h2&gt;ThinkAct&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2507.16815.4cllwkuugb.webp&quot; alt=&quot;&quot;&gt;
ThinkAct 是一个“慢思考、快执行”的双系统 VLA。端到端 VLA 直接从图像和语言回归动作，往往缺少长时序计划，也没有明确的失败反思；已有 CoT 方法依赖昂贵的人工/模型推理轨迹，普通 QA 奖励又不能保证推理和动作对齐。ThinkAct 用 action-aligned visual reward 训练高层推理，再把推理压缩成 visual plan latent 交给低层动作模型。&lt;/p&gt;
&lt;p&gt;Reasoning MLLM 使用 Qwen2.5-VL 7B，根据当前观测和指令生成文本计划及长度为 8 的二维夹爪轨迹；Q-Former latent projector 将其压缩为高层空间—时间意图。低层是约 432M 参数的 DiT diffusion policy，接收 latent、状态和图像后生成连续动作 chunk。训练时冻结 MLLM，只在目标环境更新 action model、state encoder 和 projector；推理时两者可以异步运行。&lt;/p&gt;
&lt;p&gt;RL 阶段采用 GRPO，不用单一任务成功率，而是把视觉反馈做成两个奖励：goal reward 比较预测轨迹的起终点与目标，trajectory reward 用 DTW 对齐整条轨迹，再加 format reward。SFT/RL 数据混合 OXE、Something-Something V2、RoboVQA、EgoPlan、RoboFail 和 LLaVA-Video，覆盖机器人轨迹、失败恢复和具身问答。&lt;/p&gt;
&lt;p&gt;在 SimplerEnv 的 Google/Bridge 设置中，整体成功率分别为 71.5%、65.1% 和 43.8%；LIBERO 平均 84.4%，Long 70.9%。EgoPlan-Bench2、RoboVQA 和 OpenEQA 上分别达到约 48.2、59.8 BLEU 和 56.2 的整体分数。短视频上下文还能让模型识别“中途掉落”并重新规划抓取，展示自我纠错和少样本适应能力。&lt;/p&gt;
&lt;p&gt;局限是 ThinkAct 继承基础 MLLM 的视觉/空间幻觉，错误计划会直接影响动作；轨迹检测、关键点提取和离线 latent 缓存增加工程依赖，强遮挡或新相机下可能失效。训练需要多张高端 GPU，推理仍需同时运行大 MLLM 与动作模型；在安全关键场景中，错误 CoT、模糊指令和过度信任模型反思都可能产生风险。
&lt;/p&gt;
&lt;h2&gt;VIDAR&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2507.12898.58i3c14iz9.webp&quot; alt=&quot;&quot;&gt;
Vidar 将机器人策略拆成“视频先验 + 逆动力学适配器”，目标是让一个视频模型迁移到多个 embodiment。传统 pixel-to-action VLA 需要大量目标机器人示范，且容易受相机视角、背景和遮挡影响；而视频包含动作连续性、接触和场景动力学，可以先在更丰富的数据上学习，再用很少的示范对齐动作空间。&lt;/p&gt;
&lt;p&gt;形式上 $\pi = I \circ G$：$G$ 是条件 rectified-flow 视频扩散模型，输入机器人类型、相机布局、任务语言、多视角观测，预测未来可执行视频；$I$ 是 Masked Inverse Dynamics Model（MIDM），把短视频窗口转成目标机器人的动作。作者把约 750K 跨平台多视角机器人片段投影到 unified observation space，预训练阶段不输入动作，只学习不同 embodiment 下的世界演化；目标平台再用少量视频微调。&lt;/p&gt;
&lt;p&gt;MIDM 由 U-Net mask predictor 和 ResNet action regressor 组成，通过动作回归误差和 mask 稀疏正则学习关注手、工具和接触区域，不需要像素级 segmentation 标签。扩散视频采样具有随机性，作者还使用 test-time scaling：并行生成多个候选视频，用 CLIP/VLM（真实实验为 GPT-4o）按任务相关性和物理合理性排序后再解码动作。&lt;/p&gt;
&lt;p&gt;仿真 RoboTwin 50 任务中，low-data clean/randomized 的成功率为 60.0/15.7%，standard clean/randomized 为 65.8/17.5%，优于 π0.5。真实未见平台只收集 20 分钟、232 个 episode（约每任务 3 条示范），seen task、unseen task、unseen background 分别达到 68.2%、66.7%、55.6%；MIDM 的测试准确率 49.0%，明显高于普通 ResNet 的 24.3%。去掉 TTS 或 MIDM 都会显著下降。&lt;/p&gt;
&lt;p&gt;局限是当前真实控制为 open-loop：一次生成 60 帧视频后不再闭环重生成；8 张 80GB GPU 生成 7.5 秒视频约需 25 秒，GPT-4o 候选排序还增加云端延迟和成本。MIDM 仍需要目标 embodiment 的少量动作示范，实验主体集中在 ALOHA 双臂和桌面场景，灵巧手、移动机器人、触觉和高频闭环控制尚未覆盖。
&lt;/p&gt;
&lt;h2&gt;DreamVLA&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2507.04447.32ioq9cval.webp&quot; alt=&quot;&quot;&gt;
DreamVLA 认为，直接从当前图像和语言预测动作缺少“未来世界知识”。已有方法生成整张未来图像或视频，包含大量静态背景冗余，也没有显式的深度、物体语义和 affordance。DreamVLA 不重建完整未来帧，而是预测与动作最相关的 dynamic、spatial、semantic 表征，形成 perception–prediction–action 闭环。&lt;/p&gt;
&lt;p&gt;输入由文本、RGB 观测和 proprioception 编码；GPT-2 风格多模态 Transformer 通过 &lt;code&gt;&amp;#x3C;dream&gt;&lt;/code&gt; queries 产生 world embedding，分别预测未来动态区域、单目深度以及 DINOv2/SAM 高层语义特征，另用 &lt;code&gt;&amp;#x3C;action&gt;&lt;/code&gt; query 提取动作 latent。动态区域由 CoTracker/光流产生二值监督，深度和语义提供空间与物体身份先验。Block-wise structured attention 禁止 dynamic、depth、semantic query 互相读取，避免跨模态信息泄漏；独立 DiT action decoder 根据共享 latent 生成连续动作。&lt;/p&gt;
&lt;p&gt;训练时使用 CALVIN language-free split、DROID 和 LIBERO-90，再对目标 benchmark 微调 world-knowledge heads。推理时跳过辅助预测头，直接使用 world embedding，因此不会像外接视频生成器那样引入很高延迟。作者在 CALVIN、LIBERO 以及 Franka Panda 真实 pick/place、drawer open/close 上评测。&lt;/p&gt;
&lt;p&gt;CALVIN ABC-D 平均连续完成长度为 4.44；LIBERO Spatial/Object/Goal/Long 为 97.5/94.0/89.5/89.5%，平均 92.6%。Franka 三类任务总体成功率 76.7%（pick 82.5%、place 80.0%、drawer 67.5%）。消融显示 dynamic region 是最大收益来源，depth 和 semantic 单独使用可能反而损害性能；结构化 attention 将 CALVIN 平均长度从 causal 的 3.75 提升到 4.44。&lt;/p&gt;
&lt;p&gt;作者明确指出当前范围仍偏窄：主要是 parallel-gripper、RGB-centric 数据，场景几何和材质多样性有限。未来要加入灵巧手接触标注、点云/触觉和 volumetric world state，并通过更大数据和 on-policy fine-tuning 提升长时序鲁棒性。预测动态区域依赖光流/跟踪质量，遮挡或快速运动时也可能给 world embedding 带来错误监督。
&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/66497987_p0_master1200.58hynbbxn8.webp"/><enclosure url="https://pic.hana0721.top/66497987_p0_master1200.58hynbbxn8.webp"/></item><item><title>Paper Reading: Embodied AI 2</title><link>https://agusexp25.top/blog/paper-reading-eba2</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-reading-eba2</guid><description>从零开始的Embodied AI研究生活。</description><pubDate>Fri, 26 Dec 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating, RatingCriteria } from &apos;@/components/advanced&apos;&lt;/p&gt;
&lt;p&gt;import { ManualTOC } from &apos;@/components/advanced&apos;&lt;/p&gt;
&lt;p&gt;&amp;#x3C;ManualTOC
title=&apos;&apos;
categories={[
{
title: &apos;Embodied AI Paper Reading&apos;,
items: [
{
title: &apos;Batch 1&apos;,
href: &apos;/blog/paper-reading-eba1&apos;,
order: &apos;1&apos;
},
{
title: &apos;Batch 2&apos;,
href: &apos;/blog/paper-reading-eba2&apos;,
order: &apos;2&apos;
},
{
title: &apos;Batch 3&apos;,
href: &apos;/blog/paper-reading-eba3&apos;,
order: &apos;3&apos;
},
{
title: &apos;Batch 4&apos;,
href: &apos;/blog/paper-reading-eba4&apos;,
order: &apos;4&apos;
},
{
title: &apos;Batch 5&apos;,
href: &apos;/blog/paper-reading-eba5&apos;,
order: &apos;5&apos;
}
]
}
]}
/&gt;&lt;/p&gt;
&lt;h2&gt;前言&lt;/h2&gt;
&lt;p&gt;RL菜鸡开始进军Embodied AI，慢慢积累，提升自己。&lt;/p&gt;
&lt;h2&gt;LLARVA&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/LLARVA.8z70f5s0j6.webp&quot; alt=&quot;&quot;&gt;
LLARVA 是一种 OpenVLA-like 的 VLA，使用 Instruction Tuning 进行微调，并通过输出 2D Visual Trace 去引导 Action 生成。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/LLARVA-prompt.7axnhz1uu9.webp&quot; alt=&quot;&quot;&gt;
LLARVA 的输入指令被规范化为 Prompt，详细见图。
LLM 的主干为 LLaMA2 7B，并使用 LoRA 进行微调。
先预测 2D Visual Trace 再生成 Action Chunk，本质上是基于 CoT 的思想。&lt;/p&gt;
&lt;h2&gt;ATM&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/ATM.83aizqrop9.webp&quot; alt=&quot;&quot;&gt;
ATM 的亮点在于仅可以使用 Action-free 的数据去训练机器人操作策略。
ATM 是一种 Pipeline 方法，分为任意点轨迹建模与轨迹引导策略学习两个部分。
在任意点轨迹建模部分，ATM 利用了大量 Label-free 的视频训练了一个 Points-Tracker，输入是当前观察 Obs、任务 Instruction 以及初始 Points，输出是未来的 Points-Trajectory。
在轨迹引导策略学习部分，策略网络以上个步骤预测的 Points-Trajectory 以及当前 Obs 为输入，输出机器人的 Action。&lt;/p&gt;
&lt;p&gt;任意点轨迹建模：
在数据处理部分，ATM 使用了离线的 Points-Tracker 模型去得出的 Label。
同时，过滤掉了大部分静止的 Points，只保留了 32 个高频活动的 Points。
对于当前 Obs，使用 ViT 将图像切分为 Patches，并随机 Mask 掉 50% 的 Patches，得出 Image Token。
对于任务 Instruction，使用 BERT 进行信息提取 Language Token。
对于初始 Points，在文中是有32个，编码为 Track Token。
以 Obs 以及 Instruction 为 Base 的 Points-Tracker 被定义为一个 Transformer，输入为 Image Token、Language Token 以及 Track Token，输出为未来的 Points-Trajectory。
按照题主的理解，输出的 Points-Trajectory 其实就是任务导向的 Vision-Language Fusion。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/ATM-policy.9kgo1hvysf.webp&quot; alt=&quot;&quot;&gt;
轨迹引导策略学习：
首先，使用了 BERT-like 的 Transformer 对 Image Token 以及 Track Token 进行 Fusion，得出特征 [CLS]。
然后，策略网络设定为 MLP，以 [CLS] 以及 Track Token 为输入，输出机器人的 Action。
在策略学习的过程中，并没有引入 Instruction 的信息，因为在轨迹建模阶段已经引入了。
同时，对 Track Token 进行了两次 Fusion，这样会有更好的效果，详细见原文。&lt;/p&gt;
&lt;h2&gt;Track2Act&lt;/h2&gt;
&lt;p&gt;Track2Act 本质上和 ATM 是一样的，都是以 Points-Trajectory 去引导动作的生成。
Track2Act 主要分为三个阶段：Points-Trajectory 预测、Open-loop 动作求解以及 Residual Policy 闭环修正。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/Track2Act-pt.13m9i5xvjf.webp&quot; alt=&quot;&quot;&gt;
在 Points-Trajectory 预测阶段，Track2Act 使用了 DiT 生成模型。
DiT 的 Condition 被设置为初始图像 $I_0$ 以及目标图像 $\mathcal{G}$ 的表征，给定随机采样的查询点集 $P_0$，生成 Points-Trajectory。&lt;/p&gt;
&lt;p&gt;在 Open-loop 动作求解阶段，Track2Act 使用了一个确定性的算法进行刚性动作的求解，不涉及神经网络训练。
这个算法的输入是 Points-Trajectory，输出一系列的刚性变换 $[\textbf{T}&lt;em&gt;t]&lt;/em&gt;{t=1}^H$。
具体求解算法见原文，这里不详细展开。
最后，基于刚性变换，可以求解出机器人的 Open-loop 动作序列 $[\bar{a}&lt;em&gt;t]&lt;/em&gt;{t=1}^H$。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/Track2Act-rp.4n877z0ttz.webp&quot; alt=&quot;&quot;&gt;
在 Residual Policy 闭环修正阶段，Track2Act 使用一个 Residual Policy 去修正 Open-loop 动作。其实就是使用一个 Transformer-Encoder 去预测误差，最后加在一起。&lt;/p&gt;
&lt;p&gt;最后简单瑞萍一下，其实博主觉得后面两个阶段完成可以使用神经网络进行表征，有点多余，虽然残差修正动作这个思想是好的。&lt;/p&gt;
&lt;h2&gt;ECoT&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/ECoT.73ufntxfff.webp&quot; alt=&quot;&quot;&gt;
ECoT 这篇工作指出 LLM 那边的 CoT 是无法直接迁移到 Embodied 任务环境中的。
若只是简单的语义推理，那么就会出现大量不符合实际物理环境的幻觉。
因此，ECoT 在 CoT 的基础上添加了智能体对环境的感知，从而使得 CoT 具有 Embodied 性质。
ECoT 的具体设置见上图，和 CoT 类似，只是加入了 Embodied 的感知。
ECoT 使用的模型基座是 OpenVLA，使用 ECoT 后效果得到了很好的改善。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/ECoT-data.1vz50u4k0o.webp&quot; alt=&quot;&quot;&gt;
ECoT 还提出了一套使用机器人数据产生 CoT 训练数据的 Pipeline。
具体就不多说了，图里面说的很清楚。&lt;/p&gt;
&lt;p&gt;这种推理过程是显式的，具有一定的解释性，缺点就是这样会降低推理的速度，文中也给了一些解决方案。&lt;/p&gt;
&lt;h2&gt;VoxPoser&lt;/h2&gt;
&lt;p&gt;VoxPoser 是一种 Code for Robotic 的方法。
简单的来说，VoxPoser 使用 LLM 去生成 Python 代码，这里的代码会调用 VLM 的 API 生成 3D Value Map，然后进行 MPC。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/VoxPoser.1vz50wovrd.webp&quot; alt=&quot;&quot;&gt;
首先，VoxPoser 会告诉 LLM 任务的文本描述以及一些 VLM 具有的 API函数，让它去产生能够基于 RGB-D 图像计算 3D Value Map 的 Python 代码。
然后，使用 Python 执行器去执行代码，过程中会调用 VLM 的 API，其实就是 OWL-ViT 获取边框还有 SAM 获取 Mask，然后重建 3D Points Cloud，计算得出 3D Value Map。
最后，有了 3D Value Map 作为价值引导，就可以使用 MPC 的方法合成轨迹，进行规划。
在文中，提供了在线训练 MPC 以及 启发式 MPC 两种方式，前者需要环境交互，后者则无需训练。&lt;/p&gt;
&lt;h2&gt;PIVOT&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/PIVOT-example.2rvmgdu2g2.webp&quot; alt=&quot;&quot;&gt;
PIVOT 的思想很简单，就是把机器人的低级 Action 投影到图像中，并采用 VQA 的形式让 VLM 去选择 Action 集合。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/PIVOT.szfq1osvp.webp&quot; alt=&quot;&quot;&gt;
PIVOT 维护一个 Action 的分布，初始化为均匀分布，有点像 MPC 中的交叉熵方法。
PIVOT 使用的是 Zero-Shot 的迭代算法，不断去优化 Action 的分布，直到收敛。
首先，PIVOT 从分布中采样一系列的 Action，然后将 Action 投影到 2D 图像上，详细见图，每个 Action 都对应了序号。
然后，给定任务描述文本以及 2D 图像，编写合适的 Prompt 让 VLM 去选择最优 Action 集合。
接着，根据选取的 Action 集合去维护 Action 分布，类似于 MPC 中的交叉熵方法。
经过不断迭代，可以得出较好的 Action 候选集合。&lt;/p&gt;
&lt;p&gt;PIVOT 的思路很有启发性，但缺陷也是明显的。比如，3D 歧义理解、细粒度控制以及 VLM 的幻觉问题。&lt;/p&gt;
&lt;h2&gt;Code As Policies&lt;/h2&gt;
&lt;p&gt;CaP 核心思想不是训练策略网络，而是通过 Prompt 让 LLM 去调用机器人 API，从而完成任务。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/CaP.77e1n0y43g.webp&quot; alt=&quot;&quot;&gt;
首先，CaP 进行了 LMP 形式化，其实就是让策略利用 Python 语言的一些特性。
然后，为了处理复杂任务代码过长或者逻辑复杂的问题，CaP 使用了层次化代码生成的方法，其实就是自下而上分而治之的思想。
最后，CaP 进行了感知与动作的对齐。
LLM 会基于 Prompt 得出一些预定义的感知 API 以及 控制 API。
LLM 可以通过感知 API 去获取视觉信息的变量。
LLM 会计算控制 API 的参数，并执行。&lt;/p&gt;
&lt;p&gt;CaP 的工作虽然简单，但它将高层规划和底层执行联系在了一起。&lt;/p&gt;
&lt;h2&gt;RoboPoint&lt;/h2&gt;
&lt;p&gt;RoboPoint 通过构建一套程序化合成数据生成流水线，将通用视觉语言模型（VLM）微调为能根据自然语言指令预测精确 2D 空间操作点（Spatial Affordance）的模型，从而实现了无需真实世界数据训练的机器人零样本（Zero-shot）操控与导航。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/RoboPoint.lw7w2yur8.webp&quot; alt=&quot;&quot;&gt;
在数据生成阶段，RoboPoint 利用程序化生成技术构建多样化的 3D 仿真场景，通过利用模拟器中的精确几何信息自动计算物体间的空间关系，并创造性地采用“移除目标物体再采样”的策略来自动标注自由空间（Free Space），从而低成本地生成了海量包含“图像-指令-像素坐标点”的高质量合成训练数据。&lt;/p&gt;
&lt;p&gt;在指令微调阶段，RoboPoint 套用 LLaVA 的架构，冻住视觉层只练语言模型，把“找坐标”直接转化成“文本生成”任务，让模型直接输出坐标数字
同时，为了防止了 VLM 的遗忘，加入了 VQA 数据进行 Co-Training。&lt;/p&gt;
&lt;p&gt;在真实执行阶段，先使用 RoboPoint 计算出 RGB 图像上的 2D 坐标，然后结合深度图转换为 3D 坐标，最后直接套用一个预设好的抓取姿态，把目标传给传统的运动规划算法去解算路径，机械臂照做就行了。&lt;/p&gt;
&lt;p&gt;RoboPoint 其实也是一种高层决策的规划，也是一种 System 2 的方法。&lt;/p&gt;
&lt;h2&gt;GR-1&lt;/h2&gt;
&lt;p&gt;GR-1 证明了视频生成是策略学习的高效代理任务，它通过大规模视频生成式预训练迫使 GPT 模型内化环境动态与物理先验，从而在下游机器人任务中实现了卓越的小样本学习与零样本泛化能力。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/GR-1-all.1sfj4q0vsm.webp&quot; alt=&quot;&quot;&gt;
GR-1 采用 GPT-style Causal Transformer 架构处理多模态交织序列，先通过大规模视频生成预训练学习环境动态，再经由动作与未来帧联合预测任务进行微调，实现端到端的自回归策略学习。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/GR-1-input.2vf8flx9ka.webp&quot; alt=&quot;&quot;&gt;
在预训练阶段，GR-1 利用大规模人类第一视角视频数据集（Ego4D）执行语言条件下的视频预测任务，旨在无需动作标注即可习得通用物理动态。
模型架构上冻结了 CLIP 文本编码器与 MAE-ViT 视觉编码器（辅以 Perceiver Resampler 压缩特征），将语言指令、历史图像帧与可学习的 [OBS] Token 交织输入至 GPT 主干网络。
训练过程中，模型屏蔽 [ACT] Token，仅通过因果掩码注意力机制利用 [OBS] Token 驱动视觉解码器（Vision Decoder）重建未来帧像素，从而迫使模型内化视觉演变规律与视语对齐关系，为下游机器人操作任务提供具备强泛化能力的 World Model 初始化权重。&lt;/p&gt;
&lt;p&gt;在微调阶段，GR-1 加载预训练权重并扩展输入序列，将机器人本体状态（Proprioceptive State）与语言、图像交织输入，引入 [ACT] Token 用于回归 7-DoF 机械臂动作与夹爪状态。
训练采用多任务联合优化策略，在执行行为克隆（Behavior Cloning）学习策略分布的同时，保留未来帧预测（Video Prediction）作为辅助任务，通过联合最小化动作回归损失与图像重建损失，迫使策略在决策时显式利用预训练阶段习得的物理世界动态（World Model），从而实现感知到动作的高效迁移与对齐。&lt;/p&gt;
&lt;p&gt;GR-1 的 Limitation 也是明显的。
因为要处理高维图像，所以导致推理延迟较高。
同时预训练的人类视频与机械臂控制之间存在形态鸿沟（Embodiment Gap），目前仅依靠微调隐式对齐而缺乏显式的动作重定向机制。&lt;/p&gt;
&lt;h2&gt;HPT&lt;/h2&gt;
&lt;p&gt;HPT 使用一种模块化 Token 对齐机制将异构机器人的 Proprioception 与 Vision 映射到共享潜空间到通用策略架构，并在大规模 Cross-Embodied 数据上验证了机器人策略学习的 Scaling Laws 以及迁移能力。&lt;/p&gt;
&lt;p&gt;HPT 采用了一种高度模块化的 Stem-Trunk-Head 设计范式来解决 Cross-Embodied 难题。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/HPT-Stem.8z70jpnbae.webp&quot; alt=&quot;&quot;&gt;
在 Stem 模块中，利用 Cross-Attention 将异构的 Proprioception 与 Vision 对齐到统一的 Embodied 潜在表征。首先，机器人的 Vision 信息被编码成 Cross-Attention 中的 K 与 V，并与一组可学习的 Q 进行聚合得出 Vision Token。同样，机器人的 Proprioception 也经过相同的操作，得出 Proprio. Token。不同的 Embodied 对应了不同 Stem，是分别进行学习的。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/HPT.2yyuezdjdc.webp&quot; alt=&quot;&quot;&gt;
在 Trunk 模块中，所有 Embodied 任务共享一个 Transformer，负责将 Stem 对齐后的多模态 Token 进行深度融合和推理。最终，经过池化后得出最终 Latent。&lt;/p&gt;
&lt;p&gt;在 Head 模块中，负责将 Trunk 得出 Latent 进行解码，这里的解码器可以是 MLP、DP 以及 ACT，得出机器人的 Action。请注意，异构的机器人分别对应了不同的 Head。&lt;/p&gt;
&lt;p&gt;在训练数据上，HPT 使用 OXE、Simulation 以及 Human Videos 等。
HPT 使用了最暴力的 BC 方法，证明了其 Scaling Law 的存在。&lt;/p&gt;
&lt;h2&gt;RoboDual&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/RoboDual-Overview.86u6gy6bzq.webp&quot; alt=&quot;&quot;&gt;
RoboDual 的整体架构由负责 High-level 决策的 Generalist 与负责 Low-level 决策的 Speicalist 组成。
其中，Generalist 是类似于 OpenVLA 的 VLA 模型，虽然具有一定的泛化能力，但推理效率比较低。
而 Specialist 是一种类似于 ACT 或是 DiT 的决策模型，在特定领域上有比较好的效果，且推理效率高，但难以适应新的任务环境。
RoboDual 做的事情就是将两者结合在一起，Generalist 负责 High-level 的任务规划，而 Specialist 进行 Low-level 的实时决策。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/RoboDual.et1hb05w6.webp&quot; alt=&quot;&quot;&gt;
RoboDual 的具体实现很简单，就是将 Generalist 归纳出的 Task Latent 与 Action Latnet 作为 Specialist 的 Condition，然后让 Specialist 输出 Action Chunk。
在文章中，Generalist 是 OpenVLA 架构，Specialist 是 DiT 架构。
由于 Generalist 和 Specialist 的推理效率不同，RoboDual 在推理过程中使用双线程的方式，即 Generalist 和 Specialist 分别使用独立的线程。
在实际的使用中，Specialist 拿到的 Generalist 的提示总是有延迟的。因此，RoboDual 在实际训练中采用了延迟感知训练的 Trick。&lt;/p&gt;
&lt;p&gt;实际上，RoboDual 在对 OpenVLA 进行了一定修改，让其输出 Action Chunk。因此，Specialist 是有一段比较粗略的动作轨迹作为指导的，它只是进一步地细化这段动作轨迹，相当于 Specialist 对 Generalist 的输出结果进行插值。&lt;/p&gt;
&lt;h2&gt;GR-2&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/GR-2.7i0wy0nlxr.webp&quot; alt=&quot;&quot;&gt;
GR-2 的思路和 GR-1 的一样，只是扩展了更多的优质数据集。
具体做法分为两个阶段。
首先，在大规模的 Web 级别的 Video 数据集预训练一个 World Model。
然后，在机器人数据上进行微调，得出一个 End-to-end 的 VLA 模型。&lt;/p&gt;
&lt;h2&gt;Humanoid Manipulation&lt;/h2&gt;
&lt;p&gt;{/* 这篇工作对 DP3 进行改进，并将其应用到通用机器人操作任务。 &lt;em&gt;/}
{/&lt;/em&gt; 该研究使用 Fourier GR1 作为实验平台，并固定住双腿，以确保稳定性。 &lt;em&gt;/}
{/&lt;/em&gt; 在数据采集方面，使用了遥操作收集。 &lt;em&gt;/}
{/&lt;/em&gt; 观测主要包含了 Camera 的 3D 点云以及机器人本体感知。 &lt;em&gt;/}
{/&lt;/em&gt; 在策略学习中，因为机器人的 Camera 并不是固定的，所以该研究提出了 iDP3，也就是以 Camera 作为参考系去调整 3D 点云的坐标，以适应任务环境。 &lt;em&gt;/}
{/&lt;/em&gt; 同时，使用卷积去代替 MLP 处理视觉信息会更加的平滑。 &lt;em&gt;/}
{/&lt;/em&gt; 最后，延长预测时域使得策略更加的平稳一致。 */}&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/iDP3.45i746rn30.webp&quot; alt=&quot;&quot;&gt;
这项工作对 DP3 算法进行了针对性改进，目的是让其能更好地服务于通用机器人的操作任务。
研究使用了 Fourier GR1 作为实验载体，为了保证操作过程中的绝对稳定，机器人的双腿被固定住，数据则通过遥操作的方式进行收集。
系统的输入端主要包含相机的 3D 点云以及机器人的本体感知数据。
在策略学习阶段，作者注意到机器人的相机并非固定不动，因此提出了名为 iDP3 的新方法，即以相机自身作为参考系去标准化 3D 点云的坐标，以此适应动态的任务环境。
此外，为了让视觉信息的处理更加平滑，算法使用卷积层代替了传统的 MLP。
最后配合延长的预测时域，成功使得机器人生成的策略动作更加平稳和连贯。&lt;/p&gt;
&lt;h2&gt;Surfer&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/Surfer.175x1vj6ob.webp&quot; alt=&quot;&quot;&gt;
Surfer 提出了一个基于世界模型（World Model）的架构，旨在通过接收历史图像帧（History Frames）、语言指令（Instruction）以及机器人的本体感知信息（Proprioception）来预测下一步的动作（Action）及执行后的未来帧。在多模态特征编码方面，Surfer 采用了高效的处理策略：对于视觉输入，利用冻结的 CLIP 编码器将图像帧转化为 Tokens，并引入 TokenLearner 进行压缩以提升推理效率；对于文本输入，使用冻结的 Text Encoder 提取 Text Latent；对于本体感知信息，则通过 MLP 编码得到 Proprio Latent。&lt;/p&gt;
&lt;p&gt;Surfer 的世界模型主体由两个基于多层 Transformer 的模块构成，分别负责动作预测与场景预测。在动作预测模块中，模型以历史帧的 Visual Tokens 作为 Query，将拼接后的 Text Latent 和 Proprio Latent 作为 Key 和 Value，通过 Cross-Attention 机制生成当前时间步的 Action。随后，帧预测模块复用历史帧 Tokens 作为 Query，并将刚刚预测出的 Action 作为 Key 和 Value，同样利用 Cross-Attention 推导出执行动作后的未来帧 Tokens，并采用 L2 Loss 进行监督训练。&lt;/p&gt;
&lt;p&gt;总结来看，Surfer 的核心亮点在于引入了未来帧预测作为动作决策的辅助监督信号。这种设计符合直觉：如果模型生成的动作能够准确预测出环境的未来状态，说明该动作决策本身是符合物理逻辑的。然而，这种方法的局限性也显而易见：一旦帧预测模块不够准确，错误的预测反而会引入噪声，形成负面监督。此外，该工作尚未验证模型在 Scaling up（扩大规模）后的表现，其在大规模数据下的潜力仍有待探索。&lt;/p&gt;
&lt;p&gt;{/* Surfer 构建了一个 World Model，以历史 Frame、语言 Instruction 以及机器人感知 Proprio 为输入，输出下一步的 Action 以及 Frame。 &lt;em&gt;/}
{/&lt;/em&gt; 在 Vision 处理方面，Surfer 使用用冻结的 CLIP 将 Frame 处理成 Tokens，并使用 TokenLearner 对这些 Tokens，以提高推理效率。 &lt;em&gt;/}
{/&lt;/em&gt; 在 Text 处理方面，Surfer 使用冻结的 Text Encoder 处理成 Text Latent。 &lt;em&gt;/}
{/&lt;/em&gt; 在 Proprio 处理方面，Surfer 使用 MLP 去学习得出 Proprio Latent。 &lt;em&gt;/}
{/&lt;/em&gt;  &lt;em&gt;/}
{/&lt;/em&gt; Surfer 的 World Model 分为两个部分，分别负责预测当前时间步的 Action 以及执行后的 Frame。 &lt;em&gt;/}
{/&lt;/em&gt; 这两个部分都是由多层的 Transformer 模块组成。 &lt;em&gt;/}
{/&lt;/em&gt; 在 Action 预测模块，使用经过 CLIP 处理的历史 Frame Tokens 作为 Query，[Text Latent, Proprio Latent] 作为 Key 和 Value，经过 Cross-Attention 得出 Action。 &lt;em&gt;/}
{/&lt;/em&gt; 在 Frame 预测模块，使用经过 CLIP 处理的历史 Frame Tokens 作为 Query，预测的 Action 作为 Key 和 Value，经过 Cross-Attention 得出执行 Action 后的 Frame Tokens，并使用 L2 Loss 来进行训练。 &lt;em&gt;/}
{/&lt;/em&gt;  &lt;em&gt;/}
{/&lt;/em&gt; 小结一下，Surfer 的亮点在于使用未来的 Frame 作为训练 Action 决策的监督信号，这相当于就是说如果执行这个 Action 能够预测出未来的 Frame，那么我的预测就是合理的，相当的符合直觉。缺点也是明显的，如果 Frame 预测得不准，那么这种监督反而还是一种负面的，且 Surfer 并没有验证 Scaling up 后的效果。 */}&lt;/p&gt;
&lt;h2&gt;SceneVerse&lt;/h2&gt;
&lt;p&gt;SceneVerse 是一个大型的 3D-VL 数据集，总共包含 2.5M 个场景-语言对，由 ScanNet、ARKitScenes、HM3D、3RScan、MultiScan、Structured3D、ProcTHOR 等多个 3D 数据集集合而成。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/SceneVerse-data.41ylez0j3l.webp&quot; alt=&quot;&quot;&gt;
为了确保不同数据源之间的一致性，每个 Scan 处理成了 $\mathbb{R}^{N \times 8}$ 的维度，分别为 3D 坐标、RGB 颜色、实例 ID 和语义标签定义。
首先，SceneVerse 将 3D 场景建模为 Graph，Object 为 Node，Object 之间的空间关系被建模为 Edge。
接着，SceneVerse 使用一种基于 Prompt 的 Pipeline 方法去生成不同纬度的 Caption，详细见图。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/SceneVerse-GPS.70avihp8so.webp&quot; alt=&quot;&quot;&gt;
最后，SceneVerse 训练了一个叫 GPS 的 Transformer，用于对齐 3D 场景和文本信息，类似于 3D 领域中的 CLIP。
SceneVerse 的工作量还是很足的，值得肯定。&lt;/p&gt;
&lt;h2&gt;Robot See Robot Do&lt;/h2&gt;
&lt;p&gt;Robot See Robot Do 是一种 Pipeline 方法，用于完成 Articulated Object Manipulation 任务，只需单目人类示例即可完成学习。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/RSRD-overview.5xb68ueasx.webp&quot; alt=&quot;&quot;&gt;
RSRD 分为 See 和 Do 两个部分。在 See 的过程中，首先对静态 Object 进行特征学习。具体流程如下，基于环绕待操作 Object 的视频，先使用 3D Gaussian Splatting 转换为 3D 点云，再使用 GARField 对点进行聚类，最后使用 DINOv2 学习点的特征表示。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/RSRD-4D.4qrv08p81o.webp&quot; alt=&quot;&quot;&gt;
最后，从人类演示视频中，反解出这每个部件在每一帧的 3D 位姿。具体流程如下，首先对每时间步可优化的部件姿态参数渲染出 DINO 特征和深度，并与输入帧中提取的 DINO 特征和单目深度进行比较。然后，使用 ARAP 损失惩罚高斯分布偏离其初始配置过远的情况，相对于邻近点。这些损失共同反向传播至部件姿态，并通过梯度下降进行优化，以恢复 3D 部件运动。在 Do 的过程中，则将物体的运动轨迹映射到机器人的操作中去。&lt;/p&gt;
&lt;p&gt;Robot See Robot Do 的方法虽然无需训练，但无法进行泛化，只能做一些简单的任务。&lt;/p&gt;
&lt;h2&gt;ReKep&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/Rekep.4clfp7etmb.webp&quot; alt=&quot;&quot;&gt;
来自斯坦福大学李飞飞团队（一作 Wenlong Huang）的这项工作提出了 ReKep 框架，通过利用 视觉语言模型（VLM） 将自然语言指令转化为基于 语义关键点的 Python 时空约束函数，并结合实时优化求解器，实现了无需特定任务训练即可完成 多阶段、双臂协同及动态响应的复杂机器人操作任务（如倒茶、叠衣服）。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/Rekep-detail.4clfp7ezbi.webp&quot; alt=&quot;&quot;&gt;
Rekep 是一种 Pipeline 方法，主要分为「关键点提取」、「约束生成」以及「优化求解」。
在「关键点提取」阶段，Rekep 采用了 DINOv2 和 SAM 提取 Frame 中的关键点。
在「约束生成」阶段，Rekep 将带有关键点覆盖的 Frame 以及 文本指令输入到 GPT-4o 中，让其输出 Python 代码，以计算约束。
在「优化求解」阶段，Rekep 采用分层优化求解的形式，使用「寻找子目标」和「规划路径」两种优化结构。&lt;/p&gt;
&lt;p&gt;Rekep 比较的工程，像是各种模型的结合体，在实现上也比较合理，是一篇合格的工作。&lt;/p&gt;
&lt;h2&gt;OmniManip&lt;/h2&gt;
&lt;p&gt;OmniManip 的设计逻辑围绕「如何将自然语言转化为稳健的物理约束」展开。该系统并非试图让模型学会复杂的控制律，而是通过构建一个“对象中心”的规范坐标系，让模型在最适合描述物体功能的空间内进行推理。这张图展示了 OmniManip 系统的整体架构图，可以将其分为三个主要阶段：
&lt;img src=&quot;https://pic.hana0721.top/OmniManip.32iin0p6t4.webp&quot; alt=&quot;&quot;&gt;
任务感知与分解阶段：数据流的起点是用户的自然语言指令（如 &quot;Pour tea into the cup&quot;）和摄像头捕获的 RGB-D 原始图像 。
首先，系统使用 VFM 进行物体锚定（Object Grounding），具体做法是先用 Grounding DINO 计算得出 Object 的 Bounding Boxes，再使用 SAM 对 Object 生成像素级的 Mask。
随后，系统使用 VLM 进行任务划分（Stage Partitioning），根据 VLM 的知识将任务分解为多个阶段（Stages），每个阶段都明确了动作类型以及主动物体（Active）和被动物体（Passive）的角色分配 。
例如，在“倒茶”任务的第一阶段，主动物体是机器人夹持器，被动物体是茶壶，动作是“抓取”；而在第二阶段，主动物体变为茶壶，被动物体变为茶杯，动作变为“倾倒” 。这种基于物体的角色分配为后续提取交互原语奠定了逻辑基础。&lt;/p&gt;
&lt;p&gt;对象中心交互原语提取阶段：这是系统的核心，旨在将语义指令转化为精确的几何约束。
首先，系统利用 3D AIGC 技术从单图生成物体的 3D 网格模型，再通过 6D 姿态估计器（6D Pose Estimator）确定物体当前的位姿，并将其映射到功能性的「规范空间」中，使后续的推理具有视角无关性 。
&lt;img src=&quot;https://pic.hana0721.top/OmniManip-detail.70aw3p0ml1.webp&quot; alt=&quot;&quot;&gt;
随后，系统使用 VLM 提取交互原语，也就是在规范空间内识别出关键的交互点（如壶嘴、壶柄、杯口）和交互方向（如壶嘴喷出的轴线），上图展示了其中的技术细节。
左图展示了系统如何从 2D 图像中确定 3D 空间中的关键交互位置。
系统将交互点分为「可见且可触及」（Visible and Tangible，如壶柄）和「不可见或不可触及」（Invisible or Intangible，如杯底中心或被遮挡的部分）两类 。
为了帮助 VLM 克服 3D 感知不足，系统借助了 SCAFFOLD 提示机制，也就是在图像上覆盖了一层笛卡尔坐标网格（点阵），这样 VLM 就可以通过网格坐标来精确定位目标点位。
对于不可见的点，系统引导模型通过主视角定位，并结合正交视角（Orthogonal View）的几何关系来推断其在 3D 空间中的确切深度和位置 。
右图详细解释了系统如何从无数种可能的动作角度中筛选出最合适的一个。
系统不再进行全空间搜索，而是首先提取物体在规范空间中的主几何轴线作为候选方向（图中红箭头所示）。
VLM 会为每一个候选轴生成具体的自然语言描述（Captioning），例如「该轴穿过茶壶中心并垂直于注水口」。
大语言模型（LLM）接收这些语义描述，并根据当前任务（如「倒茶」）的需求对各个轴进行相关性评分。
最终输出一个排序列表，分值最高的轴（靠近 1）将被选定为执行任务的空间约束方向。
最后，系统将实现闭环规划。系统基于 VLM 去生成具体的空间约束（CONSTRAINTS），例如「主动轴与被动轴对齐」或「点间距小于 5cm」。
并基于 RRC 机制，根据生成的约束去预先渲染一张模拟交互后的 Frame，并使用 VLM 去 Checking 这张 Frame，如果不合理就重新采样，直到成功。&lt;/p&gt;
&lt;p&gt;在线轨迹规划与执行阶段：系统将逻辑约束转化为物理运动的执行过程。
系统根据上一阶段确定的几何约束，实时求解一个优化方程。该方程同时考虑了约束损失（确保动作对齐）、避障损失（防止碰撞）和平滑损失（确保运动不突兀）。
在执行过程中，系统输出一系列末端执行器的位姿序列，驱动机器人动作。
同时，6D 位姿追踪器（6D Pose Tracker）持续监测物体的实时位置。如果物体发生了意外移动，追踪器会将最新的位姿反馈给优化算法，动态更新动作，从而实现极高的鲁棒性。&lt;/p&gt;
&lt;p&gt;OmniManip 结合了之前 ViLA、VoxPoser、ReKep、CoPa 等多项技术的优势，提出了一个从语义理解到物理执行的完整解决方案。
通过对比可见，OmniManip 的先进性主要体现在将「高级常识验证」与「底层姿态优化」通过「对象中心表示」深度耦合，从而在保证通用性的同时，显著提升了执行的确定性和精度。&lt;/p&gt;
&lt;h2&gt;SOFAR&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/SOFAR.5fl56dgtmd.webp&quot; alt=&quot;&quot;&gt;
SOFAR 通过引入「语义取向」概念，将自然语言指令直接映射为 3D 空间中的几何取向向量，揭示了通过「语义-几何」深度对齐来实现具身智能开放世界 6-DoF 精细操控的核心路径。
&lt;img src=&quot;https://pic.hana0721.top/SOFAR-data.8hh17lhsa9.webp&quot; alt=&quot;&quot;&gt;
为了训练模型理解「语义取向」，SOFAR 构建了一个大规模的「语义-几何」对齐数据集，名为 OrienText300K。该数据集基于 VLM 与 Objaverse 生成，包含了 350K 个物体配对的语义取向标签。OrienText300K 的数据由三元组 [3D 网络模型, 语言描述, 语义取向] 构成，其中语义取向表示为语言描述对应的单位方向向量。
&lt;img src=&quot;https://pic.hana0721.top/SOFAR-net.7lkjs588b8.webp&quot; alt=&quot;&quot;&gt;
随后，SOFAR 基于 OrienText300K 训练了一个名为 PointSO 的 Transformer 模型，专门用于从自然语言指令和 3D 点云中预测对应的语义取向向量。由于原始点云数据量巨大，PointSO 使用最远点采样（FPS）方法将点云压缩为若干关键点，并使用 K-最近邻（KNN）算法为每个关键点寻找相邻的点，形成局部点云块（Patches）。在语言嵌入方面，PointSO 使用冻结的 CLIP 文本编码器将输入的自然语言指令转化为全局文本 Token。在 Fusion 方面，PointSO 没有采用复杂的交叉注意力，而是直接将文本 Token 投影到与几何 Token 相同的维度后，进行逐 Token 相加（Token-wise Addition）。这种策略能更有效地将语义偏置注入到每一个几何局部表征中。最后，PointSO 通过一个 MLP 层将融合后的特征映射到一个单位向量空间，输出最终的语义取向向量。
&lt;img src=&quot;https://pic.hana0721.top/SOFAR-pipeline.4qrvmct634.webp&quot; alt=&quot;&quot;&gt;
SOFAR 的工作流水线展示了从非结构化视觉输入到结构化控制输出的完整过程。首先，系统接受 RGB-D 图像以及用户自然语言指令作为输入。然后，系统使用 VLM 解析得出物品列表 (Object List) 以及取向信息提示 (Orientation Info)，这样可以将抽象的人类意图分解为具体的处理对象和语义约束，为后续的感知模块提供指引。接着，系统使用 VFM 进行物品锚定，具体做法是先用 Florence-2 得出物品的 Bounding Boxes，再使用 SAM 生成物品 Mask，并使用相机内参将 2D 坐标转换为 3D 点云。随后，系统将自然语言指令与点云输入到预训练的 PointSO 模型中，预测得出语义取向向量。最终，系统将这些信息整理成 JSON 格式的场景图以及标记图像 (Annotated Image)，以便 VLM 可以高效阅读和处理，后面就是常规的基于 VLM 的 Task Planning 或是 Manipulation 了。&lt;/p&gt;
&lt;p&gt;SOFAR 通过语义取向实现 6-DoF 对齐，其自动标注方案极具启发性。但流水线解耦易导致误差累积（占比约 74%），且 5° 精度与 8.5s 延迟制约了高精度实时任务的应用，仍需闭环优化 。&lt;/p&gt;
&lt;h2&gt;PIVOT-R&lt;/h2&gt;
&lt;p&gt;PIVOT-R 是 Surfer 的改进版本，通过引入原语建模航点（Primitive-modeled Waypoints）强化了物理逻辑，并使用异步多模型架构完成任务拆解、场景预测和动作预测，从而提升了复杂机器人操作任务的执行效率和鲁棒性。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/PIVOT-R.8dxfckhy52.webp&quot; alt=&quot;&quot;&gt;
PIVOT-R 系统基于异步分层执行器（AHE），并通过三条并行的模块实现高效推理。首先，原语解析模块接受用户自然语言指令和当前视觉观察，并使用预训练的 VLM 结合 Prompt 对场景进行语义理解，并将抽象指令转化为具体的动作原语（如「接近目标」或「抓取」）。接着，航点感知模块接受动作原语以及历史视觉观察，分别使用 Text Encoder 和 Image Encoder 进行嵌入，经过特殊设计的 Cross-Attention 模块进行融合，最终预测完成动作原语后的 Frame。最后，动作预测模块接受当前视觉观察特征、经过 MLP 投影的历史机器人状态以及源自航点感知模块的未来帧特征，经过 Cross-Attention 机制生成当前时间步的动作输出。这三个模块之间通过异步执行器进行协调，允许它们以不同的频率独立更新，从而提高系统的响应速度和效率。&lt;/p&gt;
&lt;p&gt;不同于 Surfer 逐帧对环境建模导致计算冗余，而 PIVOT-R 仅聚焦关键「航点（Waypoints）」，有效过滤了噪声并捕捉了本质物理逻辑。同时，凭借异步分层执行器（AHE），PIVOT-R 实现了 28 倍的推理效率提升，解决了 Surfer 难以实时部署的痛点。总得来说，是篇不错的改进工作，但仍然存在一些局限性，如对航点的定义和选择依赖较大，且在复杂场景下可能仍会面临误差累积的问题。&lt;/p&gt;
&lt;h2&gt;ManipGen&lt;/h2&gt;
&lt;p&gt;ManipGen 是一种基于局部策略空间不变性的框架，旨在实现长程操纵任务 sim2real 的零样本迁移。
&lt;img src=&quot;https://pic.hana0721.top/ManipGen.4xv3lsycy0.webp&quot; alt=&quot;&quot;&gt;
这张流程图展示了 ManipGen 框架的三个核心阶段：从大规模仿真专家获取，到通用视觉策略蒸馏，最后到零样本长程任务部署。在第一阶段，ManipGen 引入大规模 3D 模型数据库，并使用最远点采样（FPS）提取关键点，同时结合 Affordance 信息确定交互区域，最后在仿真环境中利用「特权信息」使用 RL 训练大量的「专家策略」，并得出大量的「专家经验」。在第二阶段，由于特权信息在现实中不可得，此阶段利用多任务 DAgger 算法将专家经验「蒸馏」给仅依赖视觉的通用模型。该策略接受来自腕部相机的实时 RGB-D、初始 RGB-D、物品分割 Mask 以及机器人本体感知作为输入，经过 ResNet18 以及 MLP 处理后输出动作。在第三阶段，ManipGen 使用 VLM 接受自然语言指令和全局视图，并解析为一系列的 [object, skill] 元组。对于每个元组，使用 Neural MP 计算从当前位置到目标物体交互区域的避障轨迹。到达目标区域后，则激活阶段二中「局部策略」，完成具体的交互动作。不断重复这一过程，直到完成整个长程任务。&lt;/p&gt;
&lt;p&gt;ManipGen 展现了很典型的 sim2real 思路，通过局部策略的空间不变性实现了长程操纵任务的零样本迁移。其创新点在于引入了「特权信息」来训练专家策略，并通过多任务 DAgger 将其蒸馏给视觉模型，从而克服了 sim2real 中的感知鸿沟。然而，该方法仍然依赖于高质量的仿真数据和专家策略的有效性，在复杂环境下可能面临泛化能力不足的问题。&lt;/p&gt;
&lt;h2&gt;DemoGen&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/DemoGen.8vnhfde3lh.png&quot; alt=&quot;&quot;&gt;
DemoGen 是一种基于 One-shot 人类演示生成大规模合成演示数据的框架，其核心思想是将机器人轨迹分解为多段 Skill Segments 和 Motion Segments，并利用点云在空间中的等变性以及连接性质来实现从单一演示到大规模数据的生成。DemoGen 的方法分为以下几个阶段。&lt;/p&gt;
&lt;p&gt;源演示的感知与语义解析。首先，DemoGen 方法接收一段使用单目 RGBD 相机记录的源轨迹作为输入，并使用一系列的点云预处理方法降低噪声与冗余。接着，DemoGen 使用 Grounded SAM 模型对点云进行分割，将点云划分为 Object Clusters 和 Effector Clusters。随后，DemoGen 根据 Effector 与 Object 几何中心距离将轨迹分解为 Skill Segments（机器人与物体接触的部分）和 Motion Segments（机器人在空中运动的部分）。
&lt;img src=&quot;https://pic.hana0721.top/DemoGen-example.9rjyutnyer.webp&quot; alt=&quot;&quot;&gt;
基于 TAMP 的动作轨迹迁移。针对一个新的场景，DemoGen 通过计算变换矩阵将源轨迹中的 Object Cloud 映射到新场景中的 Object 位置。同时，DemoGen 对 Skill Segments 进行迁移，保持机器人与物体的相对位置关系不变。针对 Effector 操作 Object 的过程，其 Object Cloud 会与 Effector Cloud 进行绑定，确保在迁移过程中保持一致的交互关系。对于 Motion Segments，DemoGen 则通过调用运动规划器（如 RRT-Connect）在 SE(3) 空间中重新规划轨迹，生成无碰撞的运动路径。&lt;/p&gt;
&lt;p&gt;根据上述流程，DemoGen 能够从单一的人类演示中生成大规模的合成 3D 演示数据，从而为机器人学习提供丰富的训练样本。最终，DemoGen 训练了 DP3 模型，并在多个长程操纵任务中验证了其生成数据的有效性和泛化能力。局限也很明显，DemoGen 提出的几何平移假设难以建模复杂的非刚性交互，比如布料操作或液体处理等任务。&lt;/p&gt;
&lt;h2&gt;ArticuBot&lt;/h2&gt;
&lt;p&gt;ArticuBot 是一种 Sim2Real 方法，主要贡献了一个对 Articulation Object 操作的仿真数据生成方案，以及一个基础的分层策略模型。
&lt;img src=&quot;https://pic.hana0721.top/ArticuBot.5c1js44i07.webp&quot; alt=&quot;&quot;&gt;
仿真演示生成。ArticuBot 在仿真环境中引入了 PartNet-Mobility 数据集，使用 Franka 机械臂生成示范数据。
进一步，ArticuBot 将轨迹分为三个阶段。
首先是「Grasp Sampling」，给定 Articulation Object，利用标注获取连接件 Point Cloud 的，并使用采样方法生成多个抓取候选点。
接着是「Motion Planning」，有了抓取候选点，那么就可以使用运动规划器（如 RRT-Connect）在 SE(3) 空间中生成无碰撞的运动轨迹。
最后是「Opening Action」，在前两个阶段的基础上，可以计算末端执行器的位姿序列，完成对 Articulation Object 的操作。
这一阶段最终输出了 4.23 万条高质量的演示轨迹（Observation-Action Pairs）作为后续学习的基石。&lt;/p&gt;
&lt;p&gt;分层策略学习。ArticuBot 的策略模型采用了分层设计，分为 High-level Policy 和 Low-level Policy 两个层次。
High-level Policy 负责预测「机器人应该移动到何处」，ArticuBot 使用了一种 Weighted Displacement Model， 接受分割后的 Object Point Cloud 为输入，输出末端子目标位姿 (Predicted Sub-goal eef)。
Low-level Policy 则负责预测「如何使用末端执行器去解决任务」，ArticuBot 使用了 DP3 模型，接受多源输入，最终输出一系列的 Action。&lt;/p&gt;
&lt;h2&gt;LAPA&lt;/h2&gt;
&lt;p&gt;LAPA 是一种基于 Latent Action 的 VLA 预训练方法，旨在通过引入一个中间的 Latent Action 表征来指导 VLA 模型的学习，从而提升其在复杂任务中的表现和泛化能力。
&lt;img src=&quot;https://pic.hana0721.top/LAPA.b9h3eovoi.webp&quot; alt=&quot;&quot;&gt;
首先，LAPA 采用大量无动作标签的视频数据进行预训练，使用一个专门设计的 VQVAE 模型来学习从视觉输入到 Latent Action 的映射关系。
Latent Action 被设计为多个离散的变量序列，和 Dreamer 一样类似。
接着，很容易将 data 处理为 [Frame, Instruction, Latent Action] 的形式，用于去训练 VLLA 模型，其实就是在 VLM 的基础接上一层 MLP 去预测 Latent Action。
具体训练细节为，冻结视觉编码器，只微调主干和后续的 MLP 层。
最终，LAPA 使用机器人数据进行微调，将 Latent Action 的 MLP 层替换为直接预测机器人 Action 的 MLP 层。
同样，也是冻结视觉编码器，只微调主干和后续的 MLP 层。
后续的 GR00T 工作就是在 LAPA 的基础上，扩展了更多的优质数据集。&lt;/p&gt;
&lt;h2&gt;GR00T&lt;/h2&gt;
&lt;p&gt;GROOT N1 是继承了 LAPA 思想的工作。
该研究将异构训练语料库构建为一个金字塔结构，特点是从底层到顶层，数据量逐渐减少，但针对性逐渐增强。
在数据金字塔最底层，这些数据包含了基础常识与视觉先验。
例如，包括了 Reddit、Wikipedia、Common Crawl 等的互联网规模 Web 数据，以及包括了 Ego4D、EPIC-KITCHENS、HOI4D 等的人类视角视频。
在数据金字塔中层，主要是一些多样性增强与合成轨迹的数据。
例如，GROOT 使用 DexMimicGen 系统，在 RoboCasa 等物理引擎中生成的合成轨迹，以及使用视频生成模型（如 WAN2.1）扩充的 Counterfactual 视频数据。
在数据金字塔顶层，则是一些真实的机器人数据。例如，GROOT 使用了 OXE 以及 AgiBot-Alpha 数据，这些都是源自真实机器人操作的高质量数据集。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/GROOT.45i8p9rxr9.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;GROOT N1 采用 PI-like 架构，虽然文中说是 Double System，但实际上只是个快慢 System，和 RoboDual 的双线程有点类似。
在预训练阶段，GROOT N1 实现了异构数据对齐。
针对无标签数据，GROOT N1 采用了 LAPA 的思想，使用 VQ-VAE 去编码 Latent Action，并作为监督信号。
同时，对于视频生成模型产生的神经轨迹，GROOT N1 采用逆动力学模型去还原 Action。
而对于那些带有动作标签的数据，则直接使用动作标签作为监督信号。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/64131498_p0_master1200.45i9cfg3rk.webp"/><enclosure url="https://pic.hana0721.top/64131498_p0_master1200.45i9cfg3rk.webp"/></item><item><title>Paper Reading: Embodied AI 1</title><link>https://agusexp25.top/blog/paper-reading-eba1</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-reading-eba1</guid><description>从零开始的Embodied AI研究生活。</description><pubDate>Fri, 26 Dec 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating, RatingCriteria } from &apos;@/components/advanced&apos;&lt;/p&gt;
&lt;p&gt;import { ManualTOC } from &apos;@/components/advanced&apos;&lt;/p&gt;
&lt;p&gt;&amp;#x3C;ManualTOC
title=&apos;&apos;
categories={[
{
title: &apos;Embodied AI Paper Reading&apos;,
items: [
{
title: &apos;Batch 1&apos;,
href: &apos;/blog/paper-reading-eba1&apos;,
order: &apos;1&apos;
},
{
title: &apos;Batch 2&apos;,
href: &apos;/blog/paper-reading-eba2&apos;,
order: &apos;2&apos;
},
{
title: &apos;Batch 3&apos;,
href: &apos;/blog/paper-reading-eba3&apos;,
order: &apos;3&apos;
},
{
title: &apos;Batch 4&apos;,
href: &apos;/blog/paper-reading-eba4&apos;,
order: &apos;4&apos;
},
{
title: &apos;Batch 5&apos;,
href: &apos;/blog/paper-reading-eba5&apos;,
order: &apos;5&apos;
}
]
}
]}
/&gt;&lt;/p&gt;
&lt;h2&gt;前言&lt;/h2&gt;
&lt;p&gt;RL菜鸡开始进军Embodied AI，慢慢积累，提升自己。&lt;/p&gt;
&lt;h2&gt;ACT&lt;/h2&gt;
&lt;h2&gt;DP&lt;/h2&gt;
&lt;h2&gt;RT-1&lt;/h2&gt;
&lt;h2&gt;RT-2&lt;/h2&gt;
&lt;h2&gt;OpenVLA&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/openvla.iclclg6tx.webp&quot; alt=&quot;&quot;&gt;
OpenVLA基本继承了RT-2的思想，形成了OpenVLA-like的VLA范式。
简单来说，就是使用LLM对Image观测以及Language指令进行Fusion，输出Action Token，最后再Detokenizer成机器人可执行的Action。
OpenVLA使用Prismatic-7B VLM作为主干，文中详细解释了为什么采用Prismatic-7B VLM。
和RT-2一样，使用256个频率最低的词元作为Action Token。
训练数据主要使用了OXE Dataset，并对数据进行了处理，以便于训练。
最终，OpenVLA展示了在不同消费级和服务级的GPU上的运行效果。
然而，OpenVLA也有着诸多Limitation。
首先，它只接受单图像预测，无法处理异构的机器人设置。
其次，它的吞吐量不够，无法实现高频率的控制。
最后，同时也是最大的硬伤，和RT-2一样，在面对Co-Training时，选择频率最低的256个Token作为Action Token，会出现双峰学习问题。
但不可否认的是，OpenVLA还是一份伟大的工作，开创了OpenVLA-like的VLA学习范式。&lt;/p&gt;
&lt;h2&gt;OXE | RT-X&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/OXE.5moa1wm2lz.webp&quot; alt=&quot;&quot;&gt;
Open X-Embodiment数据集包含超过100万个真实机器人轨迹，涵盖22种机器人实体，从单机械臂机器人到双臂机器人和四足机器人。
该数据集是通过汇集来自全球 34 个机器人研究实验室的 60 个现有机器人数据集，并将它们转换为一致的数据格式以便于下载和使用而构建的。
&lt;img src=&quot;https://pic.hana0721.top/RT-X.3yex4q5zbj.webp&quot; alt=&quot;&quot;&gt;
该团队还使用OXE训练了RT-1和RT-2，展现出泛化性能。
工作量如此之大，伟大无需多言。&lt;/p&gt;
&lt;h2&gt;Unified Video Action Model&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/UVA-easy.465lu585n.webp&quot; alt=&quot;&quot;&gt;
从数据流上看，UVA首先学习了Image与Action Chunk的Joint Latent，然后使用Diffusion模型解码出未来的Action Chunk以及观测Image。
为了兼容多种类型的输入，并解耦出对应的Action Chunk以及Image，UVA采用了掩码学习。
&lt;img src=&quot;https://pic.hana0721.top/UVA-all.2h8s31j1cb.webp&quot; alt=&quot;&quot;&gt;
下面讲解学习Joint Latent的流程。
对于每张历史Image使用预训练的VAE编码器进行编码，得出$N$个$d$维的Image Token。
对于每个历史Action Chunk，为了对齐Image Token的维度，采用重复$M$次拼接的方式对齐到$N$维度，并经过一个MLP投影到$N\times d$。
对于要预测的Image，处理方式与历史Image一样，但加上了定义好的掩码。
最终，将三类Token拼接在一起，输入到Transformer中进行编码，得出Joint Latent。
接下来讲解预测流程。
对于预测Image，将每个Token作为Image Diffusion的Condition，经过去噪还原出局部的VAE的Latent，最后拼接经过VAE的解码器还原出Image。
对于预测Action Chunk，则将所有的Token作为Action Diffusion的Condition，经过去噪得出Future Action Chunk。
UVA使用了灵活目标的掩码训练方法，有助于防止模型对特定任务产生过拟合，从而提升模型的整体通用性和鲁棒性。&lt;/p&gt;
&lt;h2&gt;Genie Envisioner&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/genie-envisioner-platform.1e9bszfyjq.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Genie Envisioner 并不是单独提出一个 VLA，而是尝试使用同一个视频生成世界模型统一 Policy Learning、Simulation 与 Evaluation。
不同于 OpenVLA 等方法将视觉观测映射到以语言为中心的语义空间，Genie Envisioner 选择构建以视觉为中心的 Latent Space，尽可能保留机器人交互中的空间、时间以及运动细节。&lt;/p&gt;
&lt;p&gt;整个平台的核心是 GE-Base，一个由 Language 与 Multi-View Observation 引导的视频 Diffusion World Model。
GE-Base 以初始观测、Language Instruction 以及从历史视频中稀疏采样的 Memory Frames 为 Condition，自回归地生成下一个 Multi-View Video Chunk。
Sparse Memory 能让模型在不保留全部历史 Frame 的情况下捕获 Long-Horizon 依赖，而跨视角 Attention 则用于维持头部相机与左右腕部相机之间的空间一致性。
具体实现上，GE-Base 可以建立在 LTX-Video 2B 或 COSMOS2 2B 上，并使用冻结的 T5-XXL 编码 Language Instruction。&lt;/p&gt;
&lt;p&gt;GE-Base 在 AgiBot-World-Beta 上进行预训练，这份数据包含约 100 万条真实双臂机器人轨迹，共计 2967 小时。
训练分为两个阶段：首先在 3Hz 到 30Hz 随机采样的 57 帧视频上进行 Multi-Resolution Temporal Adaptation，使模型适应不同速度的机器人运动；随后使用固定 5Hz 的 9 帧视频进行 Low-Frequency Policy Alignment，使视觉 Latent 的时间粒度与下游控制对齐。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/genie-envisioner-ge-act.4ubnl2plio.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;在 GE-Base 的基础上，GE-Act 添加了一个轻量的 160M Action DiT 分支。
Action DiT 与 Video DiT 具有对应的 Block 深度，但使用更小的 Hidden Dimension，并通过 Cross-Attention 读取 Video DiT 的视觉 Latent。
它从 Noise Action 出发，使用 Flow Matching 生成结构化的 Action Chunk，因此部署时不需要真的把未来视频解码出来。
GE-Act 先在大规模机器人数据上冻结 GE-Base、只预训练 Action Module，再依次进行 Task-Specific Video Adaptation 与 Action Specialization。&lt;/p&gt;
&lt;p&gt;为了满足实时控制，GE-Act 还采用了 Slow-Fast Asynchronous Inference。
Video DiT 只进行一次去噪，并将得到的视觉表示 Cache；Action DiT 则复用这些表示进行五次去噪。
同时，Video DiT 以 5Hz 更新，Action Model 以 30Hz 输出控制信号，在 RTX 4090 上可以在 200ms 内生成 54 步 Action。&lt;/p&gt;
&lt;p&gt;GE-Act 不仅能在 AgiBot G1 上完成家务与工业任务，还能使用约 1 小时、250 条新平台示范迁移到 Agilex Cobot Magic 与 Dual Franka，并在 Cloth Folding、Box Folding 等精细操作上超过 $\pi_0$、GR00T N1 与 UniVLA。
消融实验也说明，通用视频模型本身并不足以直接学习 Policy；使用机器人领域的 GE-Base 预训练后，模型的 Step-wise Success Rate 与 End-to-End Success Rate 才会显著提升。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/genie-envisioner-ge-sim.77ea2a3eqy.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;GE-Sim 则把 GE-Base 改造成 Action-Conditioned Video Simulator。
它一方面将 End-Effector Pose 投影到图像空间，提供显式的空间 Condition；另一方面将相邻动作的位姿变化编码为 Motion Token，并与参考图像的 Style Token 一起注入 Video DiT。
Policy 输出 Action 后，GE-Sim 生成对应的视频结果，再将生成结果送回 Policy，便可以形成 Closed-Loop Rollout；配合集群并行后，每小时可以评估数千条 Episode。&lt;/p&gt;
&lt;p&gt;最后，EWMBench 从 Scene Consistency、Spatial/Temporal Alignment、Dynamic Consistency、Instruction Alignment 与行为多样性等维度评估具身视频世界模型。
这点很重要，因为通用视频指标主要关心画面质量，并不能可靠反映机器人动作是否合理、是否完成了 Instruction。&lt;/p&gt;
&lt;p&gt;Genie Envisioner 的局限也比较明显：预训练数据全部来自 AgiBot-World-Beta，Embodiment 与数据来源仍然单一；实验集中在平行夹爪的上半身桌面操作，没有覆盖灵巧手和全身运动；EWMBench 仍依赖 Proxy Metric 与有限的人工验证，距离完全可靠的自动 Task Success Evaluation 还有距离。&lt;/p&gt;
&lt;h2&gt;TinyVLA&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/TinyVLA.64ebqsl3yh.webp&quot; alt=&quot;&quot;&gt;
TinyVLA首次提出了VLM+DP的VLA范式，这个范式后续被应用到了 $\pi$ 系列。
在这个范式下，Action不再由LLM的Token Detokenize出来，而是直接由一个Action Expert（DP或是ACT）输出。
这样做，可以避免RT-2以及OpenVLA中的双峰学习问题，能够避免灾难性遗忘，使得VLM和Action Expert各司其职。
在TinyVLA中，选用了Pythia作为VLM主干，选用DP作为Action Expert。
Action Expert以VLM主干输出的信息为Condition，输出Action Chunk。
在训练过程中，使用LoRA微调VLM，防止了VLM的灾难性遗忘，且可以进行高效的微调。
在实验部分，TinyVLA超越了OpenVLA，且可以在OOD的场景下完成一些任务。
TinyVLA应该是最早提出PI-like架构的工作，算是祖师爷。&lt;/p&gt;
&lt;h2&gt;CogACT&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/CogACT.67xxokoxle.webp&quot; alt=&quot;&quot;&gt;
CogACT也是一种PI-like的VLA，分为VLM Fusion和Action Expert模块。
在VLM Fusion模块中，CogACT采用了一种BERT-like的方式进行Fusion，输入Image观测以及Language指令，输出类似于[CLS]的Cognition Feature。
在Action Expert模块中，以Cognition Feature为Condition，经过一个DiT得出Action Chunk。
&lt;img src=&quot;https://pic.hana0721.top/CogACT-ensembling.8s3s17oxad.webp&quot; alt=&quot;&quot;&gt;
CogACT和ACT一样，使用了类似的Action Ensembling，但CogACT中的权重是自适应的，避免了不同模式中不合理地聚合Action。&lt;/p&gt;
&lt;h2&gt;PI-0&lt;/h2&gt;
&lt;h2&gt;PI-0.5&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/pi-0.5.77e4ti1nhe.webp&quot; alt=&quot;&quot;&gt;
PI-0.5 是 PI-0 的续作，主要在模型训练上做了一些改进。
PI-0.5 对 VLM 进行了大量的 Co-Training,包括使用了 VQA、Discretized Actions、Sub Tasks 以及 Boxes Bounding 等多种数据。
这样做的话，可以让 VLM 在 Inference 过程中先拆分 Sub Tasks，然后再使用 Action Expert 去预测 Action Chunk。
同时，Co-Training 可以有效预防 VLM 的灾难性遗忘。
另外一点，PI-0.5 使用了 FAST 编码器，可以将 Token 转换为离散的动作，这样可以在预训练过程中输出离散动作。
这样做可以使得 Pre-Training 与 Post-Training 的学习更加的耦合，以提高模型的泛化能力。&lt;/p&gt;
&lt;h2&gt;GR-3&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/GR-3.4qrwfuzlkf.webp&quot; alt=&quot;&quot;&gt;
GR-3 是字节继 GR-2 后的工作，整体采用了 PI-like 的架构，也就是使用 VLM 进行 Fusion，并使用 Flow Matching 的 Action Expert 去输出 Action Chunk。
GR-3 的 VLM 使用的是 Qwen2.5-VL-3B-Instruct。
在训练上，GR-3 采用了 Co-Training 的方式。
对于无 Action 标签的 Web 数据，采用 VQA 的方式进行训练。
对于有 Action 标签的机器人数据，采用 Flow Matching 损失进行训练。
这样使用 Co-Training 的方式，可以让 VLM 在训练过程中同时学习 Web 数据和机器人数据的知识，同时能避免破坏 VLM 的知识。&lt;/p&gt;
&lt;h2&gt;InstructVLA&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/InstructVLA.8dxg3hq98d.webp&quot; alt=&quot;&quot;&gt;
InstructVLA 采用了 PI-like 架构，也就是 VLM + Action Expert 的结构。
如图，InstructVLA 采用了 Eagle2-2B 作为 VLM 主干，使用 SigLIP 将图像信息映射到语言空间。
为了使得 VLM 能同时进行多模态推理和语言引导的 Latent Action 规划，InstructVLA 引入了一组可学习的 Action Query，这样就可以提取 Latent Action。
同时，为了使得 VLM 能够在推理与操作之间切换，InstructVLA 引入了 MoE 设计的 LoRA 模块，来适应不同的输入模式。
接着，Latent Action 被用于下游的 Flow Matching 进行 Action Chunk 的预测。
具体做法就是，将 Latent Action 以 FiLM 的方式注入到 DinoV2 中，同时作为 Flow Matching 的 Condition，以预测 Action Chunk。&lt;/p&gt;
&lt;p&gt;InstructVLA 的训练分为两个阶段，第一个阶段是动作预训练，第二个阶段是 VLA-IT。
在动作预训练阶段，InstructVLA 使用异构机器人数据集，例如 OXE、Bridge等。
训练时联合交叉熵与流匹配损失，冻结 VLM 主干的参数，只更新 MoE 设计的 LoRA 模型参数。
在 VLA-IT 阶段，InstructVLA 冻结了 Flow Matching 模块的参数，新增了语言 LoRA 适配器和 MoE 适应缩放头。
其中，MoE 模块是唯一可训练参数，并使用了 VLA-IT 数据集进行训练，详细可以见原文。&lt;/p&gt;
&lt;h2&gt;DinoV3&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2508.10104.99u2r3tcwr.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;DINOv3 是 DINOv2 的大规模续作，目标是训练一个冻结后就能直接服务于 Classification、Segmentation、Depth、Tracking 与 3D Geometry 等任务的通用视觉 Backbone。
它真正解决的难点不只是把模型扩大到 7B，而是如何在长时间自监督训练中同时保住 Global Feature 与 Dense Feature。&lt;/p&gt;
&lt;p&gt;在数据方面，DINOv3 从约 170 亿张公开 Instagram 图片构成的 Raw Pool 出发。
作者一方面使用基于 DINOv2 Embedding 的分层 K-Means 与 Balanced Sampling 构造了 16.89 亿张图片的 LVD-1689M，另一方面使用下游数据作为 Seed 进行 Retrieval Curation，并混入 ImageNet 与 Mapillary 等公开数据。
训练时还特意保留 10% 的 ImageNet-1k Homogeneous Batch，以兼顾数据多样性与高质量视觉概念。&lt;/p&gt;
&lt;p&gt;训练目标基本继承了 DINOv2，由 Image-Level 的 DINO Loss、Patch-Level 的 iBOT Loss 以及用于分散特征的 Distributed KoLeo Regularization 组成。
主模型是 6.7B 参数的 ViT-7B，共 40 个 Transformer Block，Embedding Dimension 为 4096，Patch Size 为 16，并保留 4 个 Register Token。
位置编码改为带 Box Jitter 的 RoPE，使输入坐标范围在训练中随机缩放，从而提高模型对 Resolution、Scale 与 Aspect Ratio 的鲁棒性。
优化上去掉了 Cosine Schedule，Learning Rate、Weight Decay 与 Teacher EMA Momentum 在 Warmup 后保持不变，因此不必在训练前确定最终的 Optimization Horizon。&lt;/p&gt;
&lt;p&gt;DINOv3 最重要的 Insight 是发现：随着训练继续，ImageNet Classification 等 Global Metric 会持续变好，但 Segmentation 等 Dense Task 在约 20 万 Iteration 后反而开始退化。
从 Patch Similarity Map 可以看到，后期模型会让大量无关 Patch 具有很高的相似度，Patch Feature 逐渐失去 Locality。
这并不是 DINOv2 中 High-Norm Outlier 的同一个问题，即使加入 Register Token，长训时的 Patch-Level Consistency 仍然会崩坏。&lt;/p&gt;
&lt;p&gt;为了解决这个问题，作者提出了 Gram Anchoring。
具体来说，将同一张图中所有 L2-Normalized Patch Feature 两两做内积，得到描述 Patch 关系的 Gram Matrix；然后让当前 Student 的 Gram Matrix 去匹配一个训练早期、Dense Feature 更干净的 Gram Teacher。
这样只约束 Patch 之间的相对结构，而不会强迫 Student 逐点复制 Teacher Feature，因此 Global Representation 仍然可以继续学习。
在 100 万 Iteration 后加入 Gram Loss，也可以很快修复已经明显退化的 Dense Feature。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/dinov3-dense-features.6bhsmttq1q.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;作者还让 Gram Teacher 处理两倍分辨率的图像，再将 Feature Map 下采样到 Student 的尺寸。
这种方式可以把高分辨率下更平滑、更局部一致的 Patch 关系蒸馏回 Student，在 ADE20k 上相比普通 Gram Anchoring 又提高约 2 mIoU。
随后，DINOv3 使用 512/768 等混合分辨率进行短暂的 High-Resolution Post-Training，使模型在训练分辨率之外、甚至 4K 图像上仍能产生稳定的 Feature Map。&lt;/p&gt;
&lt;p&gt;为了便于实际部署，作者又把 ViT-7B 蒸馏为 ViT-S、ViT-B、ViT-L、ViT-H+ 等不同规模的模型，并提出 Multi-Student Distillation，让多个 Student 共享一次昂贵的 Teacher Forward。
此外，DINOv3 也可以冻结视觉 Backbone，仅训练 Text Encoder 与顶部两层 Transformer，通过拼接 [CLS] 与 Mean-Pooled Patch Feature 完成 Image-Text Alignment，从而获得 Zero-Shot 能力。&lt;/p&gt;
&lt;p&gt;实验中大多数场景都冻结 DINOv3 主干，只训练线性层或轻量 Decoder。
仅使用 Linear Probe，DINOv3-7B 在 ADE20k、Cityscapes 与 VOC 上分别达到 55.9、81.1 与 86.6 mIoU，同时在 NYUv2 与 KITTI 的单目深度估计上超过 DINOv2。
它的 Dense Feature 还在 3D Correspondence、Unsupervised Object Discovery 与 Video Segmentation Tracking 上取得了最优结果；例如 DAVIS 的 $J&amp;#x26;F$ 达到 83.3，比 DINOv2 高 6.7。
将它作为冻结 Backbone 接入 Plain-DETR、Mask2Former 或 Depth Anything，也能达到或刷新 Object Detection、Semantic Segmentation 与 Relative Depth 的 SOTA。
对于 Embodied AI 来说，这种稳定的高分辨率局部特征、几何对应关系和 Sim-to-Real 能力，可能比单纯提高 Image Classification Accuracy 更有价值。&lt;/p&gt;
&lt;p&gt;DINOv3 的代价是非常高的训练成本：单次 ViT-7B 预训练约消耗 47MWh，论文估计整个项目约使用 900 万 GPU Hours，并产生约 2600 吨二氧化碳当量。
纯视觉自监督对文字与 Glyph 的建模仍弱于 Image-Text Supervision；公平性评估中，低收入地区相对高收入地区仍有约 23% 的性能差距，欧洲与非洲之间也存在超过 14% 的差距。&lt;/p&gt;
&lt;h2&gt;FiS-VLA&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2506.01953.6t7uc6lp5b.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;现有 PI-like VLA 通常将 VLM 作为 System 2，再外挂一个独立的 Diffusion Policy 作为 System 1。
虽然 Action Expert 很轻量，但它没有经过 Internet-Scale Pre-Training，只能被动接收 VLM 提取出的 Feature，无法直接继承 VLM 内部的知识。
FiS-VLA 的核心想法是 Fast-in-Slow：保留完整 VLM 负责慢速推理，同时把 VLM 最后的若干个 Transformer Block 复用为快速执行模块，让 System 1 本身也来自预训练模型。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/fis-vla-architecture.4cllwho7ub.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;FiS-VLA 从 Prismatic VLM 初始化，视觉编码器同时使用 SigLIP 与 DINOv2，分别提取高层语义与局部空间特征。
它还加入了轻量的 3D Tokenizer，通过 FPS、KNN 与 Linear Layer 将单目 Depth 恢复出的 Point Cloud 转为 Token，再复用同一个 Vision Encoder 映射到 LLM Space。
LLM Backbone 是具有 32 个 Block 的 LLaMA2-7B；论文默认从中间层读取 System 2 的 Latent，并将最后少量 Block 作为 System 1。
Robot State、Diffusion Timestep 与 Noised Action 则分别经过 MLP 投影为连续 Token。&lt;/p&gt;
&lt;p&gt;两个系统使用不同的输入与运行频率。
System 2 低频读取 2D Image 与 Language Instruction，依靠完整 VLM 进行场景理解和上下文推理，并输出 Intermediate Latent。
System 1 高频读取最新的 2D Image、3D Point Cloud 与 Robot State，再结合一段时间内复用的 System 2 Latent，通过 Diffusion 生成连续 Action Chunk。
训练时使用 Asynchronous Sampling，让 System 1 学会在 System 2 尚未更新的情况下，仍然正确理解较早的高层 Condition。&lt;/p&gt;
&lt;p&gt;由于 System 1 与 System 2 共享模型参数，只训练 Diffusion Action Loss 会破坏 VLM 原有的自回归能力。
因此 FiS-VLA 提出了 Dual-Aware Co-Training：$L_{fast}$ 使用 Diffusion Denoising Loss 学习连续动作，$L_{slow}$ 使用 Next-Token Prediction 继续监督 System 2 输出离散动作或 Language Plan，最终联合优化两个目标。
这种设计既让 System 1 学会实时控制，也降低了 System 2 发生灾难性遗忘的风险。&lt;/p&gt;
&lt;p&gt;预训练数据来自 OXE、DROID 与 RoboMIND 等跨 Embodiment 数据集，过滤后包含超过 86 万条轨迹。
预训练阶段由于缺少 Subgoal Annotation，System 2 先学习离散 Action Token；在下游微调中再加入人工标注并自动增强的 Sub-Task Plan，使它获得更明确的语言推理监督。&lt;/p&gt;
&lt;p&gt;在 RLBench 的 10 个任务上，FiS-VLA 的平均成功率为 69%，高于 CogACT 的 61% 与 $\pi_0$ 的 55%。
Action Chunk 为 1 时，它在 RTX 4090 上达到 21.9Hz，分别高于 CogACT 的 9.8Hz 和 $\pi_0$ 的 13.8Hz；Action Chunk 为 8 时，控制频率可以达到 117.7Hz。
在真实双臂任务中，FiS-VLA 在 Agilex 与 AlphaBot 上分别取得 68% 与 74% 的平均成功率，而 $\pi_0$ 分别为 59% 与 61%。
面对 Unseen Object、复杂背景以及光照扰动时，FiS-VLA 的性能下降也普遍小于 $\pi_0$。&lt;/p&gt;
&lt;p&gt;消融实验比较有说服力：将两个 VLM Block 用于 System 1 后性能基本趋于饱和；Robot State、2D Image 与 3D Point Cloud 都会带来增益；System 2 与 System 1 的 1:4 更新比例在速度与性能之间最好。
如果移除 $L_{slow}$，平均成功率会从 69% 降到 62%，说明保留慢系统的推理表示确实会反过来改善快系统的控制。&lt;/p&gt;
&lt;p&gt;FiS-VLA 目前仍然静态指定 System 1 共享多少个 Block，以及两个系统以什么频率协作。
不同任务对推理深度与反应速度的需求并不相同，因此如何根据任务难度与环境变化动态调整共享参数和更新频率，是这套架构下一步需要解决的问题。&lt;/p&gt;
&lt;h2&gt;VIMA&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/VIMA.70atg93q8d.webp&quot; alt=&quot;&quot;&gt;
VIMA 的具体做法就是将 Robotic Manipulation 任务规范为 Multi-Modal Prompt。
Multi-Modal Prompt 具体实现为 Vision 与 Text 的排列组合，文中考虑了6种任务类别。
由于时代的局限，当时没有 Multi-Modal 的 Robotic Task 的 Benchmark。
于是，该团队提出了VIMA-Bench，可以通过脚本化的 Oracle 智能体生成大量的模仿学习数据。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/VIMA-Contral.60uq3314ou.webp&quot; alt=&quot;&quot;&gt;
VIMA 这个工作比较早期，所以只使用了 T5 进行 Vision 与 Text 的 Fusion。
对于 Text，采用预训练的 T5 词嵌入获取 Text Token。
对于 Scene Vision，首先使用领域微调的 Mask R-CNN 来提取物体，然后经过 ViT 编码成 Scene Token。
对于 Object Vision，和 Scene Vision一样的方式，编码为 Object Token。
经过 T5 模型，可以得出 Prompt Tokens。&lt;/p&gt;
&lt;p&gt;VIMA 控制器采用了 Decoder-Only 的架构，于 Decision Transformer 类似，采用序列建模的方式。
VIMA 控制器以 History 为输入，输出 Action。
这部分与 Fusion 相似，被处理成了若干的 Vision Token，然后与机器人的 Joint Position 以及 Action 拼接，形成 History Token。
在推理过程中，经过了多层的 Self-Attention 与 Cross-Attention 结构，自回归产生下一步的 Action。
在 Cross-Attention 模块中，Prompt Tokens 被投影至 $K_{\mathcal{P}}$ 和 $V_{\mathcal{P}}$，并使用 History 投影的 $Q_{\mathcal{H}}$查询。&lt;/p&gt;
&lt;h2&gt;SayCan&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/SayCan.86u4ow4enj.webp&quot; alt=&quot;&quot;&gt;
SayCan 是任务规划的早期工作。任务规划就是给一个高级任务指令，分解为一系列机器人可执行的下游任务。
很显然，具有强泛化能力的 LLM 非常适合做这个任务，但也有一些问题。
最主要的问题就是 LLM 无法识别到物理世界，从而产生一些机器人无法执行的任务，也就是幻觉问题。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/SayCan-method.4ubeuinub1.webp&quot; alt=&quot;&quot;&gt;
为了解决这个问题，SayCan 引入了 RL 中的 Value Function，表示为在当前状态下执行成功某个 skill 的成功率。
在 SayCan设置的场景中，机器人有固定的 skill 集合，每次从里面选择一个 skill 执行。
直接让 LLM 输出需要执行的 skill 是不保险的，因为可能输出 skill 集合中没有的 skill。
所以，SayCan 不再让 LLM 去输出下一步执行的 skill，而是让 LLM 给所有的 skill 进行评分。
同时，SayCan 会给 LLM 一些 Example Prompt，让 LLM 能够更加有效地提取知识。
最后将两者结合，去选择机器人应该执行的 skill。&lt;/p&gt;
&lt;h2&gt;PaLM-E&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/PaLM-E.45i5blou92.webp&quot; alt=&quot;&quot;&gt;
PaLM-E 做的事情很简单，就是在 PaLM 的基础上添加若干的视觉编码组件，如 ViT、OSRT等。
然后，使用 VQA 与机器人场景数据进行 Co-Training，这样就得到了一个通用的 VLM，可以处理多种任务。
在机器人场景下，PaLM-E 可以发挥 Planning 的作用。&lt;/p&gt;
&lt;p&gt;PaLM-E 其实没有多少的 insight，主要是在输入上做处理，具体可以去看原文。
但 PaLM-E 的效果很好，在 Planning 任务中薄纱了当时的 SayCan，且有跨任务的能力。&lt;/p&gt;
&lt;h2&gt;ViLA&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/ViLA.2oc09ver89.webp&quot; alt=&quot;&quot;&gt;
ViLA 的思路非常简单，就是告诉 VLM 当前要执行的 Task 以及 Obs，然后使用 Prompt 输出 CoT 形成 Task Planning，
然后维护 TODO List，每次执行 TODO List 中的第一条 Low-level Task，不断循环直到任务结束。&lt;/p&gt;
&lt;p&gt;ViLA 的思路虽然简单，但是有用且本质，非常具有启发性。&lt;/p&gt;
&lt;h2&gt;CoPa&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/CoPa-overview.6m4dqmphlv.webp&quot; alt=&quot;&quot;&gt;
CoPa 结合了许多种方法，让机器人直接输出 Action 去完成 high-level 任务。
CoPa 将大多数操作任务分为任务导向抓取和运动规划两个阶段。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/CoPa-grounding.7axnand0m8.webp&quot; alt=&quot;&quot;&gt;
在&quot;任务导向抓取&quot;中，分为粗粒度 Object 锚定和细粒度 Grasp 锚定。
在粗粒度 Object 锚定中，先使用 SoM 去分割出 Obs 中的可抓取 Object，然后再使用 GPT-4V 去筛选最终抓取 Object。
在细粒度 Grasp 锚定中，使用同样的方式去筛选最终 Grasp 的位置。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/CoPa-grasp.8dxclj8uhq.webp&quot; alt=&quot;&quot;&gt;
进一步，CoPa 使用 GraspNet 去生成机器人的候选抓取姿态，并使用 Grasp 锚定进行筛选。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/CoPa-planning.3govrov2ot.webp&quot; alt=&quot;&quot;&gt;
在&quot;任务运动规划&quot;中，首先采用同样的锚定方式识别多个任务相关的部件。
然后，使用 GPT-4V 生成操作约束限制。
最后，可以得出一系列的 SE(3) 的矩阵，求可以得出抓取姿态。&lt;/p&gt;
&lt;h2&gt;PointLLM&lt;/h2&gt;
&lt;p&gt;PointLLM 主要有两个贡献，第一个是提出了基于 Prompt 的 3D LLM 问答数据标注方法，第二点是训练一个 3D 点云版本的 VLM。
&lt;img src=&quot;https://pic.hana0721.top/PointLLM-data.1vz4sgdvpn.webp&quot; alt=&quot;&quot;&gt;
由于时代的局限性，当时没有用于 3D 点云用于 LLM 问答的数据集。
于是，这篇工作基于 Cap3D 数据集，基于 Prompt 使用 VLM 对数据进行标注。
&lt;img src=&quot;https://pic.hana0721.top/PointLLM-model.6pnzokytyj.webp&quot; alt=&quot;&quot;&gt;
随后，PointLLM 使用这份数据训练了一个 3D 点云版本的 VLM，如框架图所示。&lt;/p&gt;
&lt;h2&gt;EmbodiedGPT&lt;/h2&gt;
&lt;p&gt;EmbodiedGPT 是一个端到端的决策模型，并且具有跨任务的能力，如 TAMP、VQA 等。
&lt;img src=&quot;https://pic.hana0721.top/EmbodiedGPT.eszs0eugq.webp&quot; alt=&quot;&quot;&gt;
下面简单描述一下 EmbodiedGPT 的工作流，可以分为 Planning 和 low-level 决策执行阶段。&lt;/p&gt;
&lt;p&gt;对于 Planning 阶段，EmbodiedGPT 首先使用 ViT 对图像信息进行编码得出 Vision Token。
然后，Vision Token 与可学习的 Embodied Token 经过 Q-Former 进行 Fusion。
最后，Fusion 后的信息与 Text Prompt 一同输入到 LLaMA3 中得出 Planning Text。&lt;/p&gt;
&lt;p&gt;对于 low-level 决策执行阶段，Planning Token、Embodied Token 以及 Vision Token 再次在 Q-Former 进行 Fusion，得出 Instance Information。
同时，为了捕获全局信息，图像信息经过 ImageNet 预训练的 ResNet50 进行全局平均池化特征提取，得出 Global Information。
最后，这两个 Information 拼接在一起，并输入到 low-level 的决策网络中，以输出 low-level action。&lt;/p&gt;
&lt;p&gt;EmbodiedGPT 的亮点是借助 Q-Former 将 Planning 的信息融入了 low-level 的决策中。&lt;/p&gt;
&lt;h2&gt;RT-Trajectory&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/RT-Trajectory.491razmvk0.webp&quot; alt=&quot;&quot;&gt;
RT-Trajectory 做的事情很简单，就是使用运动 Trajectory 去代替了 RT-1 中的 Text Instruction。
在具体实现中，Trajectory 被表示为一张 轨迹图像。
在训练过程中，使用从数据集中标注的 Trajectory 图像，文中给出了详细的标注方法。
而在推理过程中，提供了三种方式去得出 Trajectory 图像，详细见图。&lt;/p&gt;
&lt;p&gt;RT-Trajectory 这篇工作证明了，在 low-level 控制中使用 Text 进行引导可能不是最优的选择，这种 Trajectory 引导能够处理更加细粒度的控制。
同时，RT-Trajectory 缺点也很明显，在推理过程中，无法保证 Trajectory 是合理的，特别是将 3D Trajectory 映射为 2D 图像，会存在失真的现象。&lt;/p&gt;
&lt;h2&gt;Im2Flow2Act&lt;/h2&gt;
&lt;p&gt;Im2Flow2Act 是一个 End-to-End 的模型，其核心思想是基于 Object Flow 去生成 low-level policy。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/Im2Flow2Act-flow.1hsp38n80q.webp&quot; alt=&quot;&quot;&gt;
Im2Flow2Act 首先基于 Task Description 以及
初始 Frame 去生成 Object Flow。对于初始 Frame，使用 DINO 去检测出 Object 的框图，然后在框图中均匀采样 Points ，作为 Object Flow 的初始 Points。之后，以初始 Frame、初始 Points 以及 Task Description 为 Condition，使用视频生成模型 AnimateDiff 去生成 Object Flow。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/im2flow2act.491rba042s.webp&quot; alt=&quot;&quot;&gt;
为了确保实时感知，Im2Flow2Act 首先根据初始 Frame 以及当前 Frame 使用点追踪算法 TAPIR 去捕获 Object 的当前的 Keypoints。随后，使用 BERT-like 的状态编码器将 Keypoints 压缩为 [CLS]。同时，为了进行时间对齐，也就是让机器人自己做到哪里了，Im2Flow2Act 使用了一个 Transformer 将 Object Flow、[CLS]以及机器人 Joint Position 编码成 Latent。最后，以 Latent、[CLS]以及 Joint Position 为 Condition，使用 DP 去生成 Action Chunk。&lt;/p&gt;
&lt;p&gt;这篇工作比 RT-Trajectory 更加有细粒度，但还是存在 3D 歧义的问题。
&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/133535742_p0_master1200.icpovr2id.webp"/><enclosure url="https://pic.hana0721.top/133535742_p0_master1200.icpovr2id.webp"/></item><item><title>Paper Reading: CV 3</title><link>https://agusexp25.top/blog/paper-reading-cv3</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-reading-cv3</guid><description>浅度一些视觉相关的工作</description><pubDate>Fri, 26 Dec 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating, RatingCriteria } from &apos;@/components/advanced&apos;&lt;/p&gt;
&lt;p&gt;import { ManualTOC } from &apos;@/components/advanced&apos;&lt;/p&gt;
&lt;p&gt;&amp;#x3C;ManualTOC
title=&apos;&apos;
categories={[
{
title: &apos;CV Paper Reading&apos;,
items: [
{
title: &apos;Batch 1&apos;,
href: &apos;/blog/paper-reading-cv1&apos;,
order: &apos;1&apos;
},
{
title: &apos;Batch 2&apos;,
href: &apos;/blog/paper-reading-cv2&apos;,
order: &apos;2&apos;
},
{
title: &apos;Batch 3&apos;,
href: &apos;/blog/paper-reading-cv3&apos;,
order: &apos;3&apos;
}
]
}
]}
/&gt;&lt;/p&gt;
&lt;h2&gt;前言&lt;/h2&gt;
&lt;p&gt;计算机视觉基础模型关注从图像、视频和点云中学习可迁移的表征与几何结构。相关工作覆盖经典视觉骨干、自监督预训练、开放词表检测、通用分割、点云表征与视觉几何，核心作用是为分类、检测、分割、三维理解、场景重建和机器人感知等任务提供稳定的基础感知能力。&lt;/p&gt;
&lt;h2&gt;InternImage&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/internimage.2yz2sgd5az.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;InternImage 的目标是证明 CNN 也可以像 ViT 一样受益于大参数量和大规模数据。论文认为传统卷积的强 inductive bias 带来效率和稳定性，但也限制了长程依赖和输入自适应空间聚合；而 dense prediction 任务又非常需要大感受野和高分辨率特征。因此作者选择 deformable convolution 作为核心算子，试图在 CNN 框架里获得类似 self-attention 的动态采样能力。&lt;/p&gt;
&lt;p&gt;核心改动是 DCNv3。它从 DCNv2 出发，保留可学习 offset 和 modulation 带来的 adaptive spatial aggregation，但做了几处适合大模型训练的调整：共享采样点之间的投影权重以降低参数和显存成本，引入 multi-group 机制让不同 group 学习不同空间聚合模式，并对 modulation scalars 在采样点维度归一化，使训练更稳定。这些设计让 3×3 deformable convolution 能同时具备较大有效感受野、输入相关采样和相对可控的计算成本。&lt;/p&gt;
&lt;p&gt;架构上，InternImage 仍是分层 CNN backbone：stem 和 downsampling 沿用常规 CNN 设计，基本 block 则围绕 DCNv3 构建，并吸收 Transformer/现代 backbone 中常见的 LayerNorm、FFN、残差堆叠和 scaling rule。论文从 30M 到 1B 参数探索模型规模，并在 427M 级别训练数据上训练 InternImage-H，重点验证 CNN 是否能在大数据大模型设定下追上甚至超过大型 ViT。&lt;/p&gt;
&lt;p&gt;实验覆盖 ImageNet、COCO、ADE20K 等分类、检测和语义分割任务。论文报告 InternImage-B 仅用 ImageNet-1K 训练达到 84.9% top-1；InternImage-H 在 427M 数据上达到 89.6% top-1，并在 COCO test-dev 达到 65.4 mAP、ADE20K 达到 62.9 mIoU。它的意义是给“大规模 CNN 视觉基础模型”提供了一个强案例；局限是 DCN 算子吞吐仍不如普通卷积/部分 ViT 友好，工程部署复杂度也高于标准 CNN。&lt;/p&gt;
&lt;h2&gt;V-JEPA&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/v-jepa.83arhqd2lv.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;V-JEPA 的核心问题是：只靠 feature prediction，能否从视频中学到强视觉表征？它不使用文本、负样本、人类标注、预训练图像编码器，也不做像素级重建；而是把视频中的一部分时空区域作为 context，预测另一部分区域在 latent feature space 中的表示。相比 VideoMAE 这类 pixel reconstruction，V-JEPA 更强调抽象语义和动态结构，而不是复原低层纹理。&lt;/p&gt;
&lt;p&gt;训练框架是 joint-embedding predictive architecture。模型包含 x-encoder、y-encoder 和 predictor：x-encoder 只看未遮挡的视频 token，y-encoder 处理完整视频并提供目标区域的特征，predictor 根据 context features 和带位置编码的 mask tokens 去预测目标区域的 latent features。y-encoder 不是直接反向传播更新，而是 x-encoder 的 EMA 版本，这样可以提供较稳定的目标并避免表示坍塌。损失使用特征空间中的 L1 regression。&lt;/p&gt;
&lt;p&gt;masking 设计也很关键。论文采用 3D multi-block masking，把空间连续块沿整个时间维度重复，减少视频时空冗余造成的信息泄露。它混合 short-range masks 和 long-range masks：前者覆盖较小局部区域，后者覆盖大区域，平均遮挡比例接近 90%。这种任务迫使模型利用视频上下文预测缺失区域的高层表示，而不是简单从邻近像素复制。模型本体使用 ViT-L/16、ViT-H/16 等视频 Transformer，视频 patch 是 16×16 像素、跨 2 帧的时空 token。&lt;/p&gt;
&lt;p&gt;实验上，V-JEPA 在 VideoMix2M 上预训练，并用 frozen backbone + attentive probe 评估 Kinetics-400、Something-Something-v2、ImageNet-1K 等任务。论文报告最大 ViT-H/16 模型在冻结评估下达到 K400 81.9%、SSv2 72.2%、IN1K 77.9%；特征预测相比像素预测在冻结评估中更强，尤其在需要细粒度时间理解的 SSv2 上优势明显。fine-tuning 时 V-JEPA 也接近 VideoMAE/MVD 等像素预测方法。总体看，它是 JEPA 思路在视频自监督上的重要实证，但训练仍依赖大规模视频数据和较重的 ViT，且空间定位/密集任务能力不是本文重点。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/98073480.3rbvmy4uvn.webp"/><enclosure url="https://pic.hana0721.top/98073480.3rbvmy4uvn.webp"/></item><item><title>Paper Reading: CV 2</title><link>https://agusexp25.top/blog/paper-reading-cv2</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-reading-cv2</guid><description>浅度一些视觉相关的工作</description><pubDate>Fri, 26 Dec 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating, RatingCriteria } from &apos;@/components/advanced&apos;&lt;/p&gt;
&lt;p&gt;import { ManualTOC } from &apos;@/components/advanced&apos;&lt;/p&gt;
&lt;p&gt;&amp;#x3C;ManualTOC
title=&apos;&apos;
categories={[
{
title: &apos;CV Paper Reading&apos;,
items: [
{
title: &apos;Batch 1&apos;,
href: &apos;/blog/paper-reading-cv1&apos;,
order: &apos;1&apos;
},
{
title: &apos;Batch 2&apos;,
href: &apos;/blog/paper-reading-cv2&apos;,
order: &apos;2&apos;
},
{
title: &apos;Batch 3&apos;,
href: &apos;/blog/paper-reading-cv3&apos;,
order: &apos;3&apos;
}
]
}
]}
/&gt;&lt;/p&gt;
&lt;h2&gt;前言&lt;/h2&gt;
&lt;p&gt;计算机视觉基础模型关注从图像、视频和点云中学习可迁移的表征与几何结构。相关工作覆盖经典视觉骨干、自监督预训练、开放词表检测、通用分割、点云表征与视觉几何，核心作用是为分类、检测、分割、三维理解、场景重建和机器人感知等任务提供稳定的基础感知能力。&lt;/p&gt;
&lt;h2&gt;OpenScene&lt;/h2&gt;
&lt;p&gt;OpenScene 关注的是开放词表 3D scene understanding，而不是单物体点云分类。
它的目标是给每个 3D point 预测一个和 CLIP/text/image pixel 共嵌入的 dense feature，这样任意文本 query 都可以通过 cosine similarity 在 3D 场景里生成热力图或语义分割。
&lt;img src=&quot;https://pic.hana0721.top/openscene.45ibfrh4ps.webp&quot; alt=&quot;&quot;&gt;
方法分三步。
首先，用 OpenSeg 或 LSeg 这类开放词表 2D segmentation model 提取每张 RGB 图像的 dense pixel features；然后利用相机位姿和深度，把多视角 pixel features back-project 到 3D points，并做 multi-view average fusion，得到 &lt;code&gt;F_2D&lt;/code&gt;。
其次，训练一个 MinkowskiNet18A 只从 3D geometry 输入预测 &lt;code&gt;F_3D&lt;/code&gt;，用 cosine loss 蒸馏到 &lt;code&gt;F_2D&lt;/code&gt;，这样没有 RGB 时也能做开放词表查询。
最后，用文本 prompt 与 2D/3D features 的相似度决定每个点采用 2D fusion 还是 3D distill feature，形成 2D-3D ensemble。&lt;/p&gt;
&lt;p&gt;结果上，在 ScanNet 4 个 unseen 类别的 zero-shot segmentation 中，OpenScene-LSeg 达到 62.8% mIoU，而 3DGenZ 是 7.7%，MSeg voting 是 53.4%。
在标准场景语义分割中，OpenScene-OpenSeg zero-shot 在 nuScenes 上达到 42.1% mIoU / 61.8% mAcc，在 ScanNet 上为 47.5% / 70.7%，在 Matterport 上为 42.6% / 59.2%。
消融显示 2D-3D ensemble 通常优于只用 2D fusion 或 3D distillation；并且随着 label set 扩大，OpenScene 对长尾类别比全监督模型更稳。
总体看，OpenScene 把 CLIP 空间从 2D 图像和单物体 3D 扩展到真实 3D 场景，是开放词表 3D 场景理解的关键基线。&lt;/p&gt;
&lt;h2&gt;OpenMask3D&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/openmask3d.232ld03d2j.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;OpenMask3D 解决的是 OpenScene 的一个自然短板：OpenScene 学的是 per-point semantic feature，适合做语义热力图，但不能天然区分同类物体的多个 instance。
OpenMask3D 因此提出 open-vocabulary 3D instance segmentation：先拿到 class-agnostic 3D instance masks，再给每个 mask 计算一个开放词表 CLIP feature。&lt;/p&gt;
&lt;p&gt;具体流程是两阶段。
第一阶段使用预训练 Mask3D 的 mask proposal module，只保留 binary instance masks，丢掉 closed-set class labels 和 confidence scores。
第二阶段对每个 3D mask 计算 mask feature：先根据可见点数量和深度遮挡选择 top-k RGB-D views；再把 3D mask 投影到 2D，并用 SAM 根据投影点生成更干净的 2D object mask；随后围绕 2D mask 做多尺度 crop，用 CLIP visual encoder 提取 crop features，最后跨 crop 和 view 平均，得到 per-mask feature。
查询时只需要把文本或图像 query 编成 CLIP feature，与每个 mask feature 做相似度匹配。&lt;/p&gt;
&lt;p&gt;ScanNet200 validation 上，OpenMask3D 达到 AP 15.4、AP50 19.9、AP25 23.1，明显高于用 OpenScene features 加 mask 聚合的 open-vocabulary baselines；尤其 tail AP 为 14.9，而 OpenScene 2D Fusion + masks 是 9.9。
在 Replica 跨数据集测试中，OpenMask3D AP 为 13.1，也高于 OpenScene 变体。
如果 mask proposal 只用 ScanNet20 训练、再评估 ScanNet200，OpenMask3D 在 novel classes 上仍有 11.9 AP，说明它对未见类别主要依赖 CLIP mask feature，而不是 closed-set class head。
消融显示 SAM 2D mask refinement 和 multi-scale crops 都有帮助；oracle masks 实验中，OpenMask3D 的 tail AP 达到 32.9，甚至超过 fully supervised Mask3D 的 tail AP 17.9，说明瓶颈主要在 3D mask proposal 质量。&lt;/p&gt;
&lt;p&gt;总体看，OpenMask3D 是从开放词表 3D 语义理解走向开放词表 3D 实例级交互的重要一步：它把 CLIP 的开放语义绑定到 object mask，而不是散落在每个 point 上。&lt;/p&gt;
&lt;h2&gt;VGGT&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/vggt.wja4eehh3.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;VGGT 的目标是把传统 3D pipeline 中分散的几何任务统一到一个前馈模型里。输入可以是一张、几张或上百张同一场景图像，输出包括每帧相机参数、深度图、point map，以及用于 3D point tracking 的 dense features。和 DUSt3R/MASt3R 依赖 pairwise prediction 再做全局对齐不同，VGGT 直接让多张图在一个大 Transformer 中交互，因此在很多任务上可以不经过 bundle adjustment 或 global alignment 就得到可用几何结果。&lt;/p&gt;
&lt;p&gt;模型结构刻意减少 3D inductive bias。每张图先用 DINO patchify 成 tokens，然后进入 Alternating-Attention Transformer：一层 frame-wise self-attention 只在单张图内部建模，下一层 global self-attention 在所有图像 tokens 间建模。这样既保留单帧局部表征，又允许跨视角传播几何关系。第一帧被指定为参考坐标系，camera token 和 register token 用不同 learnable token 标记第一帧，使相机、深度和 point map 都在第一帧坐标系下预测。&lt;/p&gt;
&lt;p&gt;输出头分为几类：camera head 从 camera token 回归旋转四元数、平移和 FoV；DPT dense head 从图像 tokens 回归 depth map、point map 和不确定性；tracking head 借用 CoTracker2 风格模块，用 dense tracking features 做点轨迹预测。训练时使用多任务损失，包括 camera、depth、point map 和 tracking loss。一个很有意思的结论是：虽然深度、相机和 point map 之间可以互相推导，但训练时同时预测这些量反而提升 point map 精度；推理时用独立预测的 depth + camera 反推点云，通常比直接使用 point map head 更准。&lt;/p&gt;
&lt;p&gt;实验上，VGGT 强调速度和统一性。在 RealEstate10K/CO3Dv2 的相机估计中，feed-forward 模式 AUC@30 达到 85.3/88.2，已经超过 DUSt3R、MASt3R 和 VGGSfM v2；加 BA 后进一步到 93.5/91.8。DTU dense MVS 中，在不知道 GT camera 的设置下，VGGT overall 0.382，明显好于 DUSt3R 的 1.741；ETH3D point map estimation 中，depth+camera 推导点云 overall 0.677，也优于 DUSt3R/MASt3R 且只需约 0.2s。总体看，VGGT 是把视觉几何从“优化驱动 pipeline”推向“多任务大模型前馈预测”的代表，但它也依赖大量带 3D 标注的数据，复杂长序列和非常规动态场景仍可能需要后处理或专门模型补强。&lt;/p&gt;
&lt;h2&gt;DUSt3R&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/dust3r.5xbcvylc2h.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;DUSt3R 的核心是把多视图几何问题改写成 dense point map regression。传统 SfM/MVS pipeline 通常要先做特征匹配、估计相机内外参、三角化，再做稠密重建；这些步骤彼此依赖，任何一步失败都会传递误差。DUSt3R 反过来：给两张 RGB 图像，不要求相机内参、外参或姿态初始化，直接预测两张图每个像素对应的 3D 点。&lt;/p&gt;
&lt;p&gt;Point map 可以理解为一个 &lt;code&gt;H×W×3&lt;/code&gt; 的 dense field：每个像素都对应一个 3D 坐标。关键设计是，DUSt3R 对输入图像 &lt;code&gt;I1, I2&lt;/code&gt; 输出 &lt;code&gt;X11&lt;/code&gt; 和 &lt;code&gt;X21&lt;/code&gt;，两者都表达在第一张图的相机坐标系中。这样输出本身就包含了两个视角之间的几何关系：&lt;code&gt;X11&lt;/code&gt; 是第一张图自己的点云，&lt;code&gt;X21&lt;/code&gt; 是第二张图的像素对应 3D 点，但坐标也放在第一张图坐标系下。因此从 point maps 可以进一步恢复深度、像素匹配、相对位姿、相机内参，甚至绝对定位所需的 2D-3D 对应。&lt;/p&gt;
&lt;p&gt;网络结构基于 CroCo/ViT。两张图先经过共享 ViT encoder 得到 tokens，再进入两个交织的 Transformer decoder；每个 decoder block 先做单视图 self-attention，再通过 cross-attention 和另一张图交换信息，最后由 DPT 风格回归头输出 point maps 和 confidence maps。训练使用带置信度的 3D 回归损失，并通过尺度归一化处理不同场景的尺度不确定性。confidence 不只是训练中的权重，也会在后处理中过滤低可信点。&lt;/p&gt;
&lt;p&gt;当输入超过两张图时，DUSt3R 仍然先做 pairwise prediction，再构建图像 pair graph。每条边有一组 pairwise point maps，global alignment 优化每条边的刚体变换和尺度，把所有 pairwise point maps 对齐到同一个全局坐标系。这个优化不是传统 BA 的 2D reprojection error，而是在 3D 空间里对齐 point maps，因此更直接也更快。实验显示 DUSt3R 在相机位姿、多视图深度、单目深度、匹配和重建上都能作为统一几何基线；但它的主要限制也很明确：多图场景依赖 pairwise graph 和后处理优化，扩展到长序列或动态场景时成本和鲁棒性会受影响。&lt;/p&gt;
&lt;h2&gt;MASt3R&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/mast3r.1ow5m4v3bc.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;MASt3R 可以看作 DUSt3R 面向图像匹配和视觉定位的增强版。DUSt3R 已经能从两张图预测同一坐标系下的 point maps，因此可以通过 3D 最近邻或 PnP 得到匹配和位姿；但 point map 本质是回归输出，噪声会让像素级对应不够精确，而且 DUSt3R 并没有显式用 matching loss 训练。MASt3R 的核心问题就是：如何保留 DUSt3R 对大视角变化的鲁棒性，同时提升匹配精度。&lt;/p&gt;
&lt;p&gt;方法上，MASt3R 仍然保留 DUSt3R 的两图 Transformer 框架，同时输出 3D point maps、confidence maps 和额外的 dense local descriptors。新增 descriptor head 是一个简单 MLP，对每个像素输出单位归一化的局部特征。训练时除 DUSt3R 的 confidence-aware 3D regression loss 外，还加入基于 ground-truth correspondence 的 InfoNCE matching loss。这个损失把匹配视作分类问题：正确像素必须在另一张图的候选像素中被选中，而不是只要落在附近即可，因此会显著鼓励高精度匹配。&lt;/p&gt;
&lt;p&gt;另一个贡献是 fast reciprocal matching。普通 dense reciprocal nearest neighbor 要比较两张图所有像素对，复杂度是 &lt;code&gt;O(W²H²)&lt;/code&gt;，对高分辨率图非常慢。MASt3R 从第一张图采样 &lt;code&gt;k&lt;/code&gt; 个像素，反复做 &lt;code&gt;image1 -&gt; image2 -&gt; image1&lt;/code&gt; 最近邻映射，收集形成 cycle 的 reciprocal matches，并过滤已经收敛的点。这样复杂度降到 &lt;code&gt;O(kWH)&lt;/code&gt;，既快很多，又带有一定 outlier filtering 效果。论文还提供 coarse-to-fine 方案，让用户在速度和精度之间调整。&lt;/p&gt;
&lt;p&gt;实验重点在 matching/localization。Map-free localization 上，MASt3R 在 VCRE AUC 上达到 0.933/0.941 量级，相比 LoFTR+KBR 的 0.634 有约 30% 绝对提升；中位平移误差可降到约 0.36m，而传统强基线大约在 2m 左右。在 Aachen/InLoc 视觉定位中，MASt3R top20/top40 也明显优于 DUSt3R，特别是在 InLoc 上表现强。总体看，MASt3R 的价值在于把“匹配”从纯 2D appearance similarity 转成 3D-grounded correspondence：面对大视角、强外观变化或少视图定位时更稳，但它仍然主要处理 pairwise/binocular 设置，多图重建仍需要匹配后的三角化或额外 pipeline。&lt;/p&gt;
&lt;h2&gt;Spann3R&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/spann3r.8okf417gah.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Spann3R 解决的是 DUSt3R 的一个直接瓶颈：DUSt3R 每次只处理图像对，pairwise point maps 都在局部坐标系中；如果要重建多图场景，必须再做 per-scene global alignment。这个步骤虽然比传统 BA 简洁，但对实时增量重建和长序列仍然不够友好。Spann3R 的目标是让模型直接输出全局坐标系下的 per-image point maps，从而减少甚至绕开优化式全局对齐。&lt;/p&gt;
&lt;p&gt;核心设计是 Spatial Memory。模型仍建立在 DUSt3R 范式上，并利用 DUSt3R 预训练权重；不同的是，处理新图像时，模型维护一个外部空间记忆，用来保存此前帧的相关 3D 信息。当前帧的几何特征会生成 query，历史预测经 lightweight memory encoder 编码成 memory values，另有 MLP heads 产生 memory keys。模型通过查询 memory 找到与当前帧相关的历史几何信息，再预测当前图像在同一全局坐标系下的 point map。&lt;/p&gt;
&lt;p&gt;训练时，Spann3R 从视频/图像序列中采样 5 帧，要求模型逐步更新 memory 并输出全局 point maps。这样做的意义是把“全局对齐”从测试时优化问题转移到模型内部的记忆读取和前馈预测问题。对于有序图像序列，Spann3R 可以实时增量处理；对于无序图像集合，也可以通过选择顺序或检索方式组织输入。&lt;/p&gt;
&lt;p&gt;实验上，Spann3R 在多个未见数据集上取得接近 DUSt3R+global alignment 的重建质量，同时速度更适合在线场景。它在 7Scenes、NRGBD、DTU 等重建指标中并不总是全面超过经过优化的 DUSt3R，但优势在于无需对每个场景做重型全局对齐，能够以 memory 方式持续吸收新帧。可以把它理解成 DUSt3R 到在线 3D reconstruction 的中间形态：牺牲一点离线最优精度，换取增量性、实时性和更好的长序列可扩展性。&lt;/p&gt;
&lt;h2&gt;MonST3R&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/monst3r.pg28yscln.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;MonST3R 关注动态场景几何。DUSt3R 默认训练在静态场景上，当视频中存在运动物体时，pairwise point map 的对齐可能被前景运动干扰：模型有时会用运动物体作为对齐依据，导致静态背景错位；也可能把前景物体几何估错。MonST3R 的关键想法是，不显式建模 scene flow 或物体运动，而是继续使用 point map：每个时间步预测一个 point map，动态物体会在不同时刻出现在不同空间位置，这本身就能表示 4D 几何。&lt;/p&gt;
&lt;p&gt;模型架构基本沿用 DUSt3R：两帧输入经过共享 encoder 和 cross-attention decoder，输出两帧 point maps 和 confidence maps。区别在训练数据与策略。动态场景缺少同时具备 RGB、深度和相机位姿的数据，因此论文选择以 DUSt3R 为初始化，只微调 decoder 和 prediction heads，冻结 encoder 来保留原有几何特征；训练数据混合 PointOdyssey、TartanAir、Spring 和 Waymo，其中 PointOdyssey 权重最高。训练 pair 的 temporal stride 从 1 到 9 采样，并偏向更大 stride，以增加相机运动和物体运动多样性；同时用 FoV augmentation 增强内参泛化。损失仍使用 DUSt3R 的 confidence-aware regression loss。&lt;/p&gt;
&lt;p&gt;下游视频处理时，MonST3R 不对所有帧两两建图，而是在滑动时间窗口内计算 pairwise point maps。随后优化一个动态全局 point cloud 和每帧相机参数：基础项沿用 DUSt3R 的 point map alignment loss；新增 camera trajectory smoothness loss 约束相邻相机旋转和平移平滑；再加入 flow projection loss，让由相机运动诱导的 flow 在“可信静态区域”内接近外部 optical flow。可信静态区域通过比较相机诱导 flow 和估计 optical flow 得到，差异小的区域被认为更可能是静态背景。优化结果中包含全局 point maps、相机参数、内参和每帧深度，因此可以直接输出 video depth、camera pose 和动态/静态 mask。&lt;/p&gt;
&lt;p&gt;结果上，MonST3R 在视频深度上对 DepthCrafter 等专门方法有竞争力：例如 scale-only normalization 下，在 Sintel/Bonn/KITTI 的 Abs Rel 为 0.345/0.065/0.106，优于 DepthCrafter 的 0.692/0.217/0.141。相机位姿方面，它在 Sintel 和 ScanNet 的 joint depth &amp;#x26; pose 方法中表现最好或接近最好，并且不依赖 GT camera intrinsics；在 ScanNet 静态场景上也优于 DUSt3R with mask。总体看，MonST3R 是 DUSt3R 系列从静态图片集合走向动态视频/4D 重建的重要尝试，优点是表示简单、几何一致性强；限制是仍需要滑动窗口优化，对长时遮挡、开放场景和特殊相机内参比较敏感。&lt;/p&gt;
&lt;h2&gt;CUT3R&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/cut3r.99u2qc1wyk.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;CUT3R 继续沿着 DUSt3R 系列的 point map 表示发展，但重点从 pairwise / window-based reconstruction 转向 continuous online perception。它认为真实智能体不是拿到一整组图片后离线优化，而是随着新观测不断更新对场景的内部理解。因此 CUT3R 维护一个 persistent latent state：每来一张新图，图像 tokens 一边从 state 读取已有场景信息，一边把新的观测写回 state，然后输出当前视角的 metric-scale point map 和相机参数。&lt;/p&gt;
&lt;p&gt;这个 state 不是显式地图，而是一组可学习/可更新的 tokens。初始 state 是 learnable tokens；输入图像先被编码成视觉 tokens，再和 state 做交互。交互之后，一方面可以从当前图像读出每像素 3D point map、相机内外参，另一方面也能把当前观测融入 state。多帧 point maps 因为位于共同坐标系，可以直接累积成在线 dense scene reconstruction。这和 Spann3R 的 spatial memory 有相似目标，但 CUT3R 更强调 recurrent state 的持续更新，并且覆盖静态、动态、视频流和无序图像集合。&lt;/p&gt;
&lt;p&gt;一个有趣能力是 unseen-view querying。CUT3R 可以用 virtual camera query，也就是 raymap，去读取 state，并预测这个未观测视角的 point map 和颜色。换句话说，state 不只是记住已经看见的点，还学到了一定的 3D scene prior，可以对未见区域做结构补全。这让 CUT3R 介于视觉几何模型和 feed-forward novel view / structure generation 之间。&lt;/p&gt;
&lt;p&gt;实验上，CUT3R 覆盖单目深度、视频深度、相机位姿和 3D reconstruction。论文强调它在 video depth 中优于 DUSt3R、MASt3R 和 Spann3R，因为这些方法的 global alignment 默认静态场景，容易伤害动态物体；相比 MonST3R，CUT3R 不依赖额外 optical flow/global alignment 优化，保持在线，并报告接近或更快的性能。在 7-Scenes/NRGBD sparse image reconstruction 中，它明显优于在线 Spann3R，且接近甚至超过 DUSt3R-GA，同时速度约为其 25×。总体看，CUT3R 的关键价值是把 DUSt3R 类几何预测变成“可持续更新的状态模型”，更适合机器人、长视频和在线场景理解。&lt;/p&gt;
&lt;h2&gt;3D Gaussian Splatting&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/gaussian-splatting.4cllwho59p.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;3D Gaussian Splatting 解决的是 NeRF 系列的核心痛点：神经辐射场质量高，但训练和渲染都慢，尤其在完整无界场景和 1080p 实时渲染上很难达到交互速度。3DGS 放弃用 MLP 隐式表示连续 radiance field，而是使用显式的 3D Gaussian primitives 表示场景。每个 Gaussian 带有位置、各向异性协方差、透明度和颜色/球谐系数；渲染时把这些 3D Gaussians 投影到屏幕上做 visibility-aware splatting。&lt;/p&gt;
&lt;p&gt;初始化通常来自 SfM/COLMAP 的 sparse point cloud。每个点初始化为一个 3D Gaussian，然后通过可微渲染和图像重建损失直接优化。Gaussian 的协方差是各向异性的，这一点很关键：各向同性球形 blob 很难贴合表面，而椭球形 Gaussian 可以沿着表面展开，用更少 primitives 表达复杂几何和细节。颜色用 spherical harmonics 表达视角相关外观，透明度参与 alpha compositing。&lt;/p&gt;
&lt;p&gt;训练中最重要的是 interleaved optimization 与 density control。模型一边优化 Gaussian 参数，一边根据梯度和大小进行 densification：对欠重建的小结构 clone Gaussian，对过大的 Gaussian split 成更小的元素，同时 prune 掉透明度低或无贡献的 Gaussian。这样表示会从稀疏 SfM 点逐渐长成高质量的显式场景。渲染端则使用 tile-based rasterizer：先按视图投影和深度排序，把影响同一 tile 的 Gaussians 聚合，再做快速 alpha blending。相比沿每条 ray 密集采样，splatting 避免了空空间计算，因此速度极快。&lt;/p&gt;
&lt;p&gt;结果上，论文报告在 Mip-NeRF 360 等真实场景上达到接近或超过 Mip-NeRF360 的质量，但训练时间约 35–45 分钟，而 Mip-NeRF360 约 48 小时；渲染从秒级/帧提升到 1080p 30fps 以上。3DGS 的影响非常大：它把可微重建从“慢速神经场”推向“显式可编辑/可渲染 primitives”，成为后续动态 3DGS、feed-forward 3DGS、SLAM、AIGC 3D 表示和高斯场景编辑的默认基础。缺点是原始 3DGS 仍是 per-scene optimization，几何表面不是严格 mesh，透明/反射/稀疏视角等场景仍有挑战。&lt;/p&gt;
&lt;h2&gt;Depth Anything&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/depth-anything.6t7ubev16s.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Depth Anything 的目标是训练一个 open-world monocular depth estimation 模型。传统深度估计依赖少量带深度标注的数据，跨域泛化差；MiDaS 通过多数据集混训改善了这一点，但标注数据仍然有限。Depth Anything 的核心思路是：先用 1.5M labeled images 训练 teacher，再给 62M unlabeled images 生成 pseudo depth labels，最后用 labeled + pseudo-labeled 数据训练 student。&lt;/p&gt;
&lt;p&gt;有标注训练部分沿用 MiDaS 风格的 affine-invariant depth loss。因为不同数据集的深度标注存在未知尺度和偏移，模型先把深度转成 disparity，再对每张图做 scale/shift normalization，训练目标关注相对深度结构而不是绝对 metric scale。encoder 使用 DINOv2 初始化，并额外对 sky 区域做 farthest disparity 处理。&lt;/p&gt;
&lt;p&gt;论文发现，简单 self-training 并不会自动提升：当 teacher 和 student 架构/pretraining 相似、且 labeled 数据已经足够多时，student 很容易复制 teacher 的正确和错误。为此 Depth Anything 对 unlabeled images 加强扰动，让 student 在更难输入上拟合 teacher 的 clean pseudo label。扰动包括强颜色增强、Gaussian blur 和 CutMix；CutMix 时两张无标注图被拼接，loss 分别在对应区域和各自 teacher pseudo label 对齐。这样无标注数据才真正提供了额外视觉覆盖和鲁棒性。&lt;/p&gt;
&lt;p&gt;另一个关键是 semantic-assisted perception。作者尝试过用 RAM + GroundingDINO + HQ-SAM 生成离散语义 mask 做辅助监督，但效果不好；最后改为用冻结 DINOv2 的 dense features 做 feature alignment。这个连续特征空间比离散类别更丰富，同时使用 tolerance margin，避免强制深度模型完全复制 DINOv2、损害同一物体内部的深度差异。结果上，Depth Anything 在零样本相对深度、metric depth fine-tuning 和下游语义分割上都表现强，NYUv2/KITTI fine-tune 也刷新当时结果。它的意义在于把“大规模无标注图像 + 伪深度 + DINOv2 表征”变成通用深度模型训练范式。&lt;/p&gt;
&lt;h2&gt;Depth Anything V2&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/depth-anything-v2.3rbya6tp1w.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Depth Anything V2 的动机是修正 V1 的两个问题：V1 对复杂场景很鲁棒、速度也快，但细节不够细，透明/反射物体表现较弱；扩散式深度模型如 Marigold 细节好，但慢、重、迁移性差。V2 不追求复杂新结构，而是强调数据和训练策略：高质量 synthetic labels 比 noisy real labels 更适合训练 depth teacher，再用这个 teacher 给大规模真实图生成高质量 pseudo labels。&lt;/p&gt;
&lt;p&gt;整体 pipeline 分三步。第一，用 DINOv2-G 作为 teacher backbone，只在精确 synthetic images 上训练，避免真实深度标注中的噪声。第二，用这个强 teacher 给 62M unlabeled real images 生成 pseudo depth。第三，训练不同大小的 student models（ViT-S/B/L/G），主要使用 pseudo-labeled real images，而不是混入真实人工/传感器标注。论文的一个重要观察是：在 student 阶段，去掉 synthetic labeled images、只用 pseudo-labeled real images，很多时候反而更好；这说明 teacher 生成的 dense pseudo labels 在细节和一致性上比许多真实深度数据更干净。&lt;/p&gt;
&lt;p&gt;方法上，V2 仍采用 DINOv2 encoder + DPT depth decoder，输出 affine-invariant inverse depth。训练损失包括 scale-and-shift-invariant loss 和 gradient matching loss；后者对 synthetic data 特别重要，可以显著提升边界和薄结构的 depth sharpness。对 pseudo labels，V2 继承 V1 的 feature alignment 思路，用 DINOv2 语义特征保持泛化能力，并忽略 top 10% largest-loss regions，避免噪声 pseudo label 过度影响训练。&lt;/p&gt;
&lt;p&gt;实验中，传统 KITTI/NYU/Sintel/ETH3D/DIODE 指标上 V2 和 V1 接近，但论文强调这些 benchmark 不足以衡量细节、透明物体和复杂布局。因此作者构建 DA-2K benchmark，覆盖 8 类代表性场景，用稀疏但高精度相对深度标注评估。DA-2K 上 V2-G 达到 97.4% accuracy，明显高于 Marigold 86.8%、DepthFM 85.8% 和 V1 88.5%。V2 还提供从 25M 到 1.3B 参数的模型，推理比 Stable Diffusion 系深度模型快 10× 以上。总体看，V2 的贡献主要是数据质量路线：用 synthetic 精确监督训练强 teacher，再把真实世界覆盖交给大规模 pseudo labels。&lt;/p&gt;
&lt;h2&gt;Depth Anything 3&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/depth-anything-3.2dpf65in2s.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Depth Anything 3 的定位不再只是 monocular depth，而是 arbitrary visual inputs 下的 spatially consistent geometry。输入可以是一张图、多视角图像集合或视频，也可以选择是否提供已知相机位姿；模型输出每个视角的 depth map 和 ray map，从而恢复统一 3D 空间。论文的核心主张是 minimal modeling：不需要 VGGT 那样预测相机、深度、point map、track 等多个冗余任务，一个 plain Transformer 加一个合适的 depth-ray target 就足够覆盖 depth、pose 和 geometry。&lt;/p&gt;
&lt;p&gt;Depth-ray representation 是关键。每个像素不直接预测 point map，而是预测 depth 和 camera ray。ray map 是 &lt;code&gt;H×W×6&lt;/code&gt;，前三维是 ray origin，后三维是 ray direction；3D 点可以写成 &lt;code&gt;origin + depth * direction&lt;/code&gt;。这种表示隐式包含相机位姿和内参：camera center 可由 ray origins 平均得到，旋转和内参可通过 ray directions 与 canonical rays 的 homography/RQ decomposition 恢复。相比直接回归旋转矩阵，它避免了正交约束；相比 point map，它把 depth 与 viewing ray 分开，更适合多视角一致几何。&lt;/p&gt;
&lt;p&gt;架构上，DA3 使用标准预训练 ViT/DINO backbone，并加入 input-adaptive cross-view self-attention，让 selected layers 中不同视角 tokens 可以重排和交互，从而支持任意数量输入。输出端使用 dual DPT head，同一组特征经过不同融合参数分别预测 depth 和 ray。如果有已知相机，也可以通过简单 camera encoder 注入条件。训练采用 teacher-student 方式统一多来源数据：先用合成数据训练强 monocular teacher，再给真实数据生成高质量 dense pseudo-depth，并把 pseudo-depth 和原始稀疏/噪声深度对齐，兼顾细节完整性和几何准确性。&lt;/p&gt;
&lt;p&gt;实验上，DA3 建立了覆盖 pose estimation、any-view geometry 和 visual rendering 的新 benchmark，包含 HiRoom、ETH3D、DTU、7Scenes、ScanNet++ 等 89+ 场景。论文报告 DA3-Giant 在相机位姿和几何上超过 VGGT：摘要中称相机精度平均提升 44.3%，几何精度平均提升 25.1%；在 pose 表中，DA3-Giant 在多数数据集 AUC@3/AUC@30 排第一；在 reconstruction 表中，DA3-Giant 在 HiRoom、ETH3D、ScanNet++ 等也领先。它还保留了 Depth Anything 系列在单目 metric depth 上的强泛化，ETH3D/SUN-RGBD/DIODE 上表现突出。总体看，DA3 是把单目深度基础模型升级成视觉几何基础模型的一步，但作为 2025 之后的新工作，生态和复现实践还需要继续观察。&lt;/p&gt;
&lt;h2&gt;Video Depth Anything&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/video-depth-anything.6m4mfz8w5d.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Video Depth Anything 的目标是把 Depth Anything V2 从单图相对深度扩展到 temporally consistent video depth。它关注的问题不是单帧预测是否足够强，而是逐帧独立推理会在视频中产生明显闪烁，并且普通短窗口视频模型很难推广到分钟级长视频。论文因此保留 Depth Anything V2 的强图像先验，把时序建模尽量做成轻量、可零样本迁移的增量模块。&lt;/p&gt;
&lt;p&gt;架构上，模型冻结 Depth Anything V2 encoder，把视频帧维度折叠进 batch 后提取单帧特征，再用一个基于 DPT 的 spatiotemporal head 做融合。时序 self-attention 只插在低分辨率特征层，避免在高分辨率 token 上做昂贵视频注意力；因此模型既能利用预训练单图深度能力，又能通过少量时序层吸收跨帧一致性。对长视频，推理采用 overlapping windows 和 key frames，把新窗口的深度预测对齐到已有窗口，从而把短时一致性延展到超长序列。&lt;/p&gt;
&lt;p&gt;训练损失里最值得注意的是 Temporal Gradient Matching。作者没有直接用 optical-flow warping 约束，因为相机运动时同一个 3D 点在不同帧的深度本来就会变化，强行让 warping 后深度一致会引入错误监督。TGM 改为匹配同一像素位置上预测深度与真值深度的时间梯度，并只在真值时间变化稳定的位置施加约束，减少边界、遮挡和动态物体带来的噪声；空间上仍配合 scale-and-shift-invariant depth loss。&lt;/p&gt;
&lt;p&gt;实验上，VDA 在 KITTI、ScanNet、Bonn、NYUv2、Sintel 和长 ScanNet 视频的 zero-shot depth / temporal consistency 指标上达到很强结果。论文还强调效率：小模型在 A100 上可以达到实时级别，适合长视频批量处理。局限在于它本质仍是相对深度和窗口式传播，极端动态场景、长期遮挡恢复以及全局 metric scale 仍不是它直接解决的问题。&lt;/p&gt;
&lt;h2&gt;Metric3D V2&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/metric3d-v2.2dpf65indl.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Metric3D V2 的核心定位是 monocular geometric foundation model：单张图同时预测 metric depth 和 surface normal，并希望在未知测试域上保持可度量尺度。它要解决的主要矛盾是，单目图像中的尺度不仅受场景影响，也强烈受相机内参、焦距和视场角影响；如果把来自不同相机的数据直接混合训练，模型容易学到数据集偏差，而不是稳定几何规律。&lt;/p&gt;
&lt;p&gt;论文的关键模块是 Canonical Camera Transformation Module。训练和推理时，输入图像会被变换到一个 canonical camera space，模型在这个统一相机空间中预测深度，再映射回真实相机坐标。这样做相当于把多相机内参造成的 metric ambiguity 从学习目标中剥离出来，使网络更专注于图像内容和几何结构本身。V2 还把 depth 与 normal 联合建模，因为深度提供全局距离，法向提供局部表面方向，两者在几何上互补。&lt;/p&gt;
&lt;p&gt;架构上，Metric3D V2 可以使用 ConvNeXt 或 ViT backbone；强版本采用 DINOv2-reg 特征和 DPT decoder，并通过 ConvGRU 做 iterative refinement，不断更新 depth 和 normal。损失设计也比较工程化：silog loss 约束整体深度，Random Proposal Normalization Loss 强化局部深度对比，virtual normal 和 pair-wise normal regression 约束三维几何关系；当缺少真值法向时，则用 depth-normal consistency 提供弱监督。&lt;/p&gt;
&lt;p&gt;实验中，Metric3D V2 使用大规模混合数据训练，在 DIODE、iBIMS、ETH3D、NuScenes 等 zero-shot metric depth 数据集以及 NYUv2、ScanNet 等 normal benchmark 上表现很强。它的意义在于把单目 metric depth 从“针对某个数据集拟合尺度”推进到“显式处理相机差异”的几何基础模型。不过它仍需要较复杂的数据配比、相机变换和多损失训练流程，工程成本明显高于纯相对深度模型。&lt;/p&gt;
&lt;h2&gt;UniDepth&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/unidepth.szo6olfyy.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;UniDepth 的目标是 universal monocular metric depth：推理时不要求用户提供相机内参，却仍希望从单张图恢复 metric 3D structure。相比只预测 depth map 的方法，它更直接地把输出写成每个像素对应的 3D points，因此问题不只是“这个像素多远”，还包括“这条成像射线朝哪里”。这使它和 Metric3D V2 一样关注相机建模，但选择了更端到端的自提示路线。&lt;/p&gt;
&lt;p&gt;方法上，UniDepth 使用 pseudo-spherical output representation，把输出分解为 azimuth、elevation 和 log-depth。直观理解是，前两项描述像素射线方向，后一项描述沿射线的距离；这样能把 camera rays 与 depth 分离，减少把相机差异混进深度回归里的风险。论文还提出 dense camera representation，用每个像素的角度射线表示相机，并通过 spherical harmonic encoding 嵌入到网络中。&lt;/p&gt;
&lt;p&gt;最有特色的是 self-promptable camera module。模型先从图像特征中估计 dense camera representation，再用这个“自生成相机提示”去条件化深度特征，相当于在不知道真实内参的情况下为自己补上相机上下文。训练时还加入 geometric invariance loss，使 camera-prompted features 在几何变换下更稳定。这个设计让 UniDepth 不必假设测试时有准确内参，也不只是把内参当作额外标量输入。&lt;/p&gt;
&lt;p&gt;实验上，UniDepth 使用约三百万张真实图像训练，覆盖自动驾驶和室内数据，并在十个数据集上做 zero-shot 评估。论文报告它在多个 metric depth benchmark 上超过 Metric3D、ZeroDepth 等方法，提交时还在 KITTI Depth Prediction Benchmark 上排名第一。它的价值是把“未知相机单目 metric depth”做得更系统；局限是相机自估计一旦失败，会同时影响 ray 和 depth，两者误差会在 3D 点恢复中耦合。&lt;/p&gt;
&lt;h2&gt;MoGe&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/moge.b9mi3k2ld.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;MoGe 关注 open-domain monocular geometry estimation，目标是从单张任意图像恢复稠密 3D point map，而不只是 depth map。它的出发点是，开放域单目图像通常缺少可靠全局尺度和位移监督，如果强行要求模型预测真实世界坐标，数据噪声和尺度歧义会很严重；但如果只预测相对深度，又会丢掉更完整的三维几何结构。&lt;/p&gt;
&lt;p&gt;论文采用 affine-invariant point map representation。每个像素直接对应一个 3D 点，但训练监督允许整体仿射尺度和偏移存在不确定性，从而避免把不可观测的全局尺度硬塞给模型。为了让模型仍然学到全局形状，作者设计了鲁棒高效的 point cloud alignment solver，对预测点云和监督点云进行对齐后再计算几何误差；同时加入 multi-scale local geometry loss，让局部曲面、边界和细节不会被全局对齐平均掉。&lt;/p&gt;
&lt;p&gt;架构上，MoGe 使用 ViT/DINOv2 encoder 加轻量 CNN upsampler，除了 point map 之外还预测 valid region mask。这个 mask 很重要，因为天空、反光、远处无穷区域或无效深度如果被强制纳入监督，会破坏前景几何学习。相比 Depth Anything 系列更偏向深度排序，MoGe 的表示更接近 DUSt3R / VGGT 这类 point-map geometry，但它专门处理单目开放域和尺度不确定性。&lt;/p&gt;
&lt;p&gt;实验覆盖 NYUv2、KITTI、ETH3D、iBims、Sintel、GSO、DDAD、DIODE 等数据集，并同时评估 point map、depth 和 camera FOV。论文报告 MoGe 在多项开放域几何指标上超过 LeReS、UniDepth、DUSt3R、Depth Anything、Metric3D V2、ZoeDepth、GeoWizard、Marigold 等方法。总体看，MoGe 的贡献是把单目几何从 depth-centric 推向 point-map-centric；代价是输出和评估更复杂，也更依赖有效区域与对齐策略的稳定性。&lt;/p&gt;
&lt;h2&gt;FoundationStereo&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/foundation-stereo.7w7jmaqvss.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;FoundationStereo 的目标是做 stereo matching foundation model，让双目视差模型具备更强 zero-shot generalization。传统 stereo 网络经常在 Scene Flow、KITTI 或 Middlebury 这类特定数据上表现很好，但换到反光、低纹理、遮挡、不同基线和不同相机参数的真实场景就会明显退化。论文从模型和数据两侧同时处理这个问题：一边引入单目基础模型先验，一边构造更覆盖真实难例的合成训练集。&lt;/p&gt;
&lt;p&gt;模型上，FoundationStereo 通过 Side-Tuning Adapter 利用冻结的 Depth Anything V2 特征，把强单目深度先验注入 stereo matching，而不是完全依赖双目匹配纹理。与此同时，它保留多层 CNN 高频特征来处理局部边缘和细节。核心匹配模块是 Attentive Hybrid Cost Filtering：先构建 hybrid cost volume，再结合 Axial-Planar Convolution 和 Disparity Transformer，在空间维度和视差维度同时过滤代价体，最后通过 GRU 迭代细化视差。&lt;/p&gt;
&lt;p&gt;数据上，论文提出 FoundationStereo Dataset，使用 NVIDIA Omniverse 生成大规模高质量合成双目数据，覆盖透明反光、弱纹理、严重遮挡、多基线、多焦距和不同视场角等情况。它还做 iterative self-curation：先训练初始模型，在合成数据上找出高错误样本，再替换这些模糊或不可靠样本，重复多轮提升数据质量。这和 Depth Anything V2 的数据路线有点类似，都是把“高质量且覆盖难例的数据”视为基础模型泛化的关键。&lt;/p&gt;
&lt;p&gt;实验中，FoundationStereo 在 Middlebury、ETH3D、KITTI-12/15 等 zero-shot benchmark 上表现突出，fine-tuned 版本在提交时达到 Middlebury 和 ETH3D leaderboard 第一。它的主要价值是把 stereo 从单一数据集监督推进到基础模型范式，并证明单目深度先验可以有效帮助双目匹配。局限也很明确：模型效率不是重点，论文报告高分辨率推理仍偏慢；此外透明物体等极端材质的合成多样性仍有提升空间。&lt;/p&gt;
&lt;h2&gt;Florence-2&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/florence-2.9rk4ex3bhi.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Florence-2 的目标是把多种视觉任务统一成 prompt-based sequence-to-sequence learning。用户给一张图和一个文本任务提示，模型用文本形式输出结果；caption、object detection、grounding、segmentation、OCR 等任务都被改写成“输入提示到输出序列”的翻译问题。这里的关键不是提出某个新检测头，而是设计一个能表达不同空间层级和语义粒度的统一接口。&lt;/p&gt;
&lt;p&gt;表示上，Florence-2 把普通文本、框、quad、polygon 等都序列化。检测任务输出类别和 box 坐标 token，referring segmentation 输出 polygon 顶点 token，caption 和 OCR 则输出自然语言文本。模型结构也相对直接：DaViT 作为 vision encoder，把图像转成 visual tokens；之后接标准 Transformer multi-modal encoder-decoder，把视觉 token 和任务提示一起编码，再自回归生成答案。&lt;/p&gt;
&lt;p&gt;论文的另一半贡献是 FLD-5B 数据引擎。该数据集包含 126M 图像和约 5.4B 视觉标注，覆盖 image-level text、region-text pairs、text-phrase-region triplets 等多种粒度；其中 Grounding DINO、SAM 等模型也被用来生成或细化 region 与 mask 标注。通过这种自动标注与模型迭代，Florence-2 获得了比传统人工数据集更宽的任务覆盖。&lt;/p&gt;
&lt;p&gt;实验上，Florence-2 在 zero-shot、fine-tuning 和 transfer learning 场景下都表现强，尤其说明统一多任务预训练能改善检测、分割、caption、grounding 等下游任务的通用表示。局限也比较明显：能力很依赖超大规模私有/半自动数据引擎；把所有输出都序列化虽然统一，但在高精度密集预测和实时部署上未必比专门模型更自然。&lt;/p&gt;
&lt;h2&gt;YOLO-World&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/yolo-world.26m7apwijy.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;YOLO-World 的问题意识很清楚：开放词表检测通常依赖大型视觉语言检测器，语义强但速度慢；YOLO 系列速度快，却只能检测训练集中固定类别。论文的目标是把 YOLOv8 这类 one-stage detector 扩展成 efficient open-vocabulary detector，让用户能用文本类别或短语定义待检测目标，同时保留实时部署能力。&lt;/p&gt;
&lt;p&gt;方法上，YOLO-World 用 CLIP text encoder 编码类别词或名词短语，用 YOLO image encoder 提取多尺度图像特征，然后通过 RepVL-PAN 做视觉语言融合。RepVL-PAN 里包括 Text-guided CSPLayer 和 Image-Pooling Attention：前者把文本信息注入图像特征金字塔，后者让文本 embedding 结合图像上下文更新。检测头不再输出固定类别 logits，而是输出 object embeddings，并用 region-text contrastive learning 让 object embedding 与对应文本 embedding 对齐。&lt;/p&gt;
&lt;p&gt;它最实用的设计是 prompt-then-detect。训练时每个样本构造 online vocabulary，包含正类别和负类别；推理时用户先把目标词表离线编码成 vocabulary embeddings，部署时可以把这些 embedding 重参数化进模型权重，从而不必每张图都跑文本编码器。这让 YOLO-World 在固定应用词表下比一般 open-vocabulary detector 更容易落地。&lt;/p&gt;
&lt;p&gt;实验中，YOLO-World 在 LVIS 上报告 35.4 AP 和 52.0 FPS 的速度-精度组合，并且可迁移到 open-vocabulary instance segmentation、referring object detection 等任务。它的价值在于把开放词表检测从“强但重”的研究模型推向实时系统；局限是语义理解深度仍受轻量 YOLO 架构和离线词表约束，对复杂表达、关系 grounding 和极长开放类别集合不如更重的 Grounding DINO 类模型自然。&lt;/p&gt;
&lt;h2&gt;Grounding DINO 1.5&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/grounding-dino-1-5.13mhzu0orr.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Grounding DINO 1.5 是 Grounding DINO 的工程化增强版本，核心目标是同时推进 stronger generalization 和 faster deployment。它仍沿用“把开放集检测改写成 phrase grounding”的路线，用语言提示定义目标类别或短语，再输出对应 boxes；但 1.5 不只做一个模型，而是提供 Pro 和 Edge 两个方向：Pro 追求更强泛化，Edge 面向边缘设备速度。&lt;/p&gt;
&lt;p&gt;Pro 版本保留 Grounding DINO 的 dual-encoder-single-decoder 框架，并采用更大的 ViT-L 视觉 backbone。论文强调 deep early fusion：在解码前就通过 cross-attention 融合图像和语言特征，这通常能提升召回和定位精度，但也可能带来 hallucination；因此训练中增加负样本比例，用更全面的采样策略平衡开放集召回与误检。数据上，Grounding DINO 1.5 构建 Grounding-20M，使用超过 20M 带 grounding 标注的图像扩展语义覆盖。&lt;/p&gt;
&lt;p&gt;Edge 版本则从计算瓶颈下手。原 Grounding DINO 的 multi-scale feature enhancer 成本较高，Edge 改为只在高层 P5 特征上做跨模态融合，用 vanilla self-attention 替代 deformable self-attention，再通过 cross-scale feature fusion 把 P3/P4 的细节信息补回来；backbone 也换成更快的 InceptionNeXt-T。这个设计牺牲一部分模型容量，换取可部署的速度。&lt;/p&gt;
&lt;p&gt;结果上，Grounding DINO 1.5 Pro 在 COCO zero-shot 上达到 54.3 AP，在 LVIS-minival zero-shot 上达到 55.7 AP；Edge 在 LVIS-minival zero-shot 上达到 36.2 AP，并可通过 TensorRT 获得高 FPS。它的意义在于把 Grounding DINO 从学术模型推进到高性能 API 和边缘部署；局限是论文更像系统升级报告，很多提升来自模型尺度、数据引擎和工程优化，而不是一个特别简洁的新算法。&lt;/p&gt;
&lt;h2&gt;OWL-ViT&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/owl-vit.4g57u7h96a.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;OWL-ViT 是 open-vocabulary detection 里非常干净的一条基线：先用 CLIP/LiT 风格的 image-text contrastive pre-training 得到图像和文本编码器，再把预训练 ViT 直接改造成检测器。它的核心假设是，大规模图文预训练已经学到开放词表语义，只需要一个轻量检测适配过程，就能把 image-level 语义迁移到 object-level localization。&lt;/p&gt;
&lt;p&gt;架构上，OWL-ViT 去掉 ViT 的 token pooling，把每个 image token 都看作一个潜在 object query，并在这些 token 上接轻量 box prediction head 和 objectness/classification head。文本查询由 text encoder 编码成 query embeddings，图像 token 与文本 embedding 做相似度匹配，从而得到 text-conditioned detection。由于图像和文本分支没有复杂融合，模型也可以把 query image patch 编码成 embedding，用同一套检测头做 one-shot image-conditioned detection。&lt;/p&gt;
&lt;p&gt;训练上，OWL-ViT 在公开检测数据上 end-to-end fine-tune，同时用类别名字替代固定整数标签，使不同数据集的 label space 更容易合并。论文还强调一些 practical recipe：随机 prompt、prompt ensemble、mosaic/scale augmentation、pseudo-negative labels、严格去重等，这些细节对把 CLIP 式预训练迁移到检测很关键。&lt;/p&gt;
&lt;p&gt;实验中，OWL-ViT 在 LVIS text-conditioned open-vocabulary detection 上取得强基线结果，最好模型在 unseen rare categories 上达到 31.2 AP，并在 image-conditioned detection 上明显优于当时复杂的 one-shot 检测方法。它的贡献是证明“简单 ViT + 图文预训练 + 检测微调”足以形成强开放词表定位器；不足是缺少深层图文融合，对复杂语言关系、短语 grounding 和密集多目标场景的表达能力有限。&lt;/p&gt;
&lt;h2&gt;GLIP&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/glip.3rbya6tq7h.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;GLIP 是开放词表检测和 phrase grounding 走向统一预训练的代表工作。它的基本观点是：传统检测的类别标签可以看作文本短语，phrase grounding 的文本短语也可以看作开放类别检测目标；因此两者可以统一成 region-word alignment 问题。这样做的好处是，检测数据、grounding 数据和大规模图文数据都能进入同一个 object-level language-aware pre-training 框架。&lt;/p&gt;
&lt;p&gt;在模型上，GLIP 以 Dynamic Head / Swin 等检测结构为基础，把分类损失替换成 grounding loss：给定图像和文本 prompt，模型预测区域并与文本中的词或短语对齐。它还提出 language-aware deep fusion，让视觉特征和语言特征在较深层进行交互，而不是只在最后分类时比较 embedding。相比只用闭集分类头的 detector，GLIP 的检测目标天然由语言定义，因此可以迁移到未见类别。&lt;/p&gt;
&lt;p&gt;数据路线是 GLIP 的关键贡献之一。它先使用人工检测和 grounding 数据训练，再用已有 grounding 模型给大规模 web image-text pairs 生成框，形成 self-training 数据。论文报告预训练数据规模达到 27M grounding data，其中包括 3M human-annotated 数据和 24M web-crawled 图文数据。这个“先把图文数据转成 grounding 数据，再训练开放检测器”的路线，后来影响了 Grounding DINO、Florence-2 等工作。&lt;/p&gt;
&lt;p&gt;实验上，GLIP 在不看 COCO 图像的情况下 zero-shot 到 COCO 可达到 49.8 AP，fine-tune 后达到 60.8 AP；迁移到 LVIS、Flickr30K Entities 和 ODinW 等任务也很强，甚至 1-shot 设置可接近全监督 Dynamic Head。它的局限是模型和数据管线都偏重，prompt 长度、类别拆分和伪框质量会影响效果；但从研究脉络看，它是 open-vocabulary detection 从 CLIP 后处理走向 grounded pre-training 的重要转折点。&lt;/p&gt;
&lt;h2&gt;SEEM&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/seem.45ie122152.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;SEEM 的目标是做一个 universal image segmentation interface，而不是只做 class-agnostic interactive segmentation。它支持没有 prompt 时的 semantic / instance / panoptic segmentation，也支持文本、点、框、scribble、mask、参考图像区域等多种 prompt。和 SAM 相比，SEEM 更强调 semantic-awareness：不仅给出 mask，还希望在开放词表语义空间里给 mask 贴上标签。&lt;/p&gt;
&lt;p&gt;方法上，SEEM 使用通用 encoder-decoder 架构，但把 text prompts、visual prompts 和 memory prompts 都送入同一个 decoder 交互。visual prompt 是关键统一接口：点、框、scribble、polygon 或另一张图中的参考区域，都通过 Visual Sampler 从图像特征中采样成同一类 visual embeddings。这样模型不需要为每种输入单独设计 prompt encoder，也能把用户的非文本交互映射到统一空间。&lt;/p&gt;
&lt;p&gt;论文提出四个设计目标：versatility、compositionality、interactivity、semantic-awareness。compositionality 体现在文本 prompt 和 visual prompt 可以直接拼接使用，即使训练时未显式覆盖所有组合；interactivity 则靠 memory prompts 记录上一轮 mask，通过 mask-guided cross-attention 把历史分割信息传给当前轮；semantic-awareness 则来自 joint visual-semantic space，让 visual prompt 输出也能和文本类别 embedding 对齐。&lt;/p&gt;
&lt;p&gt;实验覆盖 interactive segmentation、generic segmentation、referring segmentation 和 video object segmentation 等任务。论文报告单个 SEEM 在 9 个数据集上用很少监督即可取得竞争表现，并且 visual + textual prompt 的组合能明显提升 referring segmentation。它的意义是把 SAM 式交互接口扩展成“可组合、可语义化”的通用分割接口；局限是系统复杂度高，训练需要同时平衡 panoptic、referring、interactive 多类损失，实时性和极端精细交互体验不一定优于专门模型。&lt;/p&gt;
&lt;h2&gt;X-Decoder&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/x-decoder.3gp4h1eige.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;X-Decoder 是 SEEM 的重要前置工作，核心目标是用一个 generalized decoder 同时输出 pixel-level segmentation 和 language tokens。它把 segmentation、referring segmentation、image-text retrieval、captioning、VQA 等任务放到同一框架里，重点不在 prompt 交互，而在建立一个共享的 pixel-level visual-semantic space，让像素级理解和语言级生成互相增强。&lt;/p&gt;
&lt;p&gt;模型采用 image encoder、text encoder 加 X-Decoder。decoder 接收两类 query：generic non-semantic latent queries 和由文本输入诱导的 semantic queries；输出也分成 pixel-level masks 和 token-level semantic embeddings。generic segmentation 主要用 latent queries 预测 mask，再和类别文本 embedding 做 mask-text matching；referring segmentation 则把 referring phrase 作为 text query 调制 mask 解码；retrieval 和 captioning 则利用同一语义空间做跨模态匹配或生成。&lt;/p&gt;
&lt;p&gt;一个重要设计是 image encoder 和 text encoder 完全解耦，文本不是在 encoder 侧和图像早融合，而是作为 decoder queries 参与解码。这使模型能同时利用 intra-image segmentation supervision 和 inter-image image-text supervision，也方便做 retrieval、captioning 这类全局视觉语言任务。相比只做开放词表分割的模型，X-Decoder 更像一个视觉语言解码器，把 region/pixel 任务和 token 任务接在一起。&lt;/p&gt;
&lt;p&gt;实验上，X-Decoder 在 open-vocabulary segmentation、referring segmentation、captioning 和 retrieval 上都有较强迁移，论文特别强调在 7 个数据集 10 个设置上达到新的 open-vocabulary segmentation SOTA；消融也显示 retrieval 能帮助开放词表分割，captioning 和 referring segmentation 能互相增益。它的局限是统一性带来训练和任务调度复杂度，且交互式 prompt 能力不如后续 SEEM 明确；但作为“统一像素与语言解码”的框架，它为后来的通用分割接口打了基础。&lt;/p&gt;
&lt;h2&gt;Sapiens&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/sapiens.6po8dp20a8.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Sapiens 是面向 human-centric vision 的基础模型族，覆盖 2D pose estimation、body-part segmentation、depth estimation 和 surface normal prediction 四类任务。它的核心判断是：人体视觉任务需要高分辨率、细粒度解剖结构和跨场景泛化；与其用通用视觉模型硬迁移，不如在大规模人类图像上做 domain-specific pretraining，再用相对有限但高质量的任务标注微调。&lt;/p&gt;
&lt;p&gt;预训练数据是 Humans-300M，来自约 10 亿张 in-the-wild 图像的筛选，保留高置信度、足够大的人体区域，并过滤水印、文字、艺术化和异常图像。模型采用 ViT/MAE 路线，在 1024×1024 高分辨率下用 masked autoencoding 预训练；patch size 为 16，因此每个 token 覆盖的图像区域比标准低分辨率 ViT 小很多，更适合人体关键点、手指、脸部和衣物边界这类细节。&lt;/p&gt;
&lt;p&gt;下游适配保持简单：pose 用 top-down heatmap prediction，并扩展到 308 个关键点；part segmentation 使用 28 类人体部件；depth 和 normal 则主要用高质量 3D human scans / synthetic rendering 生成监督。论文强调 decoder 都比较轻量，主要能力来自高分辨率人类图像预训练和模型规模扩展，参数从 0.3B 扩展到 2B 时四个任务都持续提升。&lt;/p&gt;
&lt;p&gt;实验上，Sapiens 在 Humans-5K pose、Humans-2K part segmentation、Hi4D depth、THuman2 normal 等 benchmark 上显著超过既有方法；例如 pose 相比 prior art 提升 7.6 AP，part segmentation 提升 17.1 mIoU，Hi4D depth 的 RMSE 相对降低 22.4%，THuman2 normal 角误差相对降低 53.5%。它的价值是证明“领域数据筛选 + 高分辨率 MAE + 大模型”对人体视觉非常有效；局限是数据和算力成本巨大，且对严重遮挡、拥挤人群、罕见姿态仍有失败案例。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/139063757_p0_master1200.2yyzxgr9fg.webp"/><enclosure url="https://pic.hana0721.top/139063757_p0_master1200.2yyzxgr9fg.webp"/></item><item><title>Paper Reading: CV 1</title><link>https://agusexp25.top/blog/paper-reading-cv1</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-reading-cv1</guid><description>浅度一些视觉相关的工作</description><pubDate>Fri, 26 Dec 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating, RatingCriteria } from &apos;@/components/advanced&apos;&lt;/p&gt;
&lt;p&gt;import { ManualTOC } from &apos;@/components/advanced&apos;&lt;/p&gt;
&lt;p&gt;&amp;#x3C;ManualTOC
title=&apos;&apos;
categories={[
{
title: &apos;CV Paper Reading&apos;,
items: [
{
title: &apos;Batch 1&apos;,
href: &apos;/blog/paper-reading-cv1&apos;,
order: &apos;1&apos;
},
{
title: &apos;Batch 2&apos;,
href: &apos;/blog/paper-reading-cv2&apos;,
order: &apos;2&apos;
},
{
title: &apos;Batch 3&apos;,
href: &apos;/blog/paper-reading-cv3&apos;,
order: &apos;3&apos;
}
]
}
]}
/&gt;&lt;/p&gt;
&lt;h2&gt;前言&lt;/h2&gt;
&lt;p&gt;计算机视觉基础模型关注从图像、视频和点云中学习可迁移的表征与几何结构。相关工作覆盖经典视觉骨干、自监督预训练、开放词表检测、通用分割、点云表征与视觉几何，核心作用是为分类、检测、分割、三维理解、场景重建和机器人感知等任务提供稳定的基础感知能力。&lt;/p&gt;
&lt;h2&gt;AlexNet&lt;/h2&gt;
&lt;p&gt;训练稳定性主要来自几个工程选择。第一，激活函数使用 ReLU，而不是 sigmoid 或 tanh，使深层网络训练更快，也缓解梯度饱和。第二，模型使用 overlapping max pooling，让池化窗口有重叠，在降采样的同时保留更多局部信息。第三，论文引入 local response normalization（LRN）模拟局部竞争，不过这个模块后来基本被 BatchNorm 等方法替代。第四，因为当时单卡显存不足，网络被拆到两块 GPU 上训练，部分层只连接同一 GPU 上的通道，部分层再跨 GPU 交互。&lt;/p&gt;
&lt;p&gt;AlexNet 对过拟合的处理也很关键。ImageNet 已经比过去的数据集大很多，但相对 6000 万级参数的网络仍然不算大，因此论文使用随机裁剪、水平翻转和 RGB PCA 颜色扰动做数据增强，并在全连接层使用 dropout。最终模型在 ILSVRC-2012 测试集上达到 15.3% top-5 error，显著低于第二名的 26.2%。从今天看，AlexNet 的结构并不优雅：大卷积核、全连接层参数重、LRN 已经过时；但它证明了“更大数据 + GPU + 深 CNN”这条路线可行，直接开启了后续 VGG、GoogLeNet、ResNet 等 CNN Backbone 的发展。&lt;/p&gt;
&lt;h2&gt;VGG&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/vgg.96agsm8sim.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;VGG 的问题意识很清楚：在大规模图像识别中，如果尽量固定其他设计，只增加网络深度，性能会不会继续提升？因此它没有追求复杂模块，而是采用极其统一的设计原则：输入为 224×224 RGB 图像，卷积层几乎全部使用 &lt;code&gt;3×3&lt;/code&gt; kernel，stride 为 1，padding 为 1，使特征图尺寸在卷积后保持不变；空间下采样由 5 个 &lt;code&gt;2×2&lt;/code&gt; max pooling 完成；最后接 3 个全连接层和 softmax 分类器。&lt;/p&gt;
&lt;p&gt;使用连续 &lt;code&gt;3×3&lt;/code&gt; 卷积是 VGG 最核心的设计。两个 &lt;code&gt;3×3&lt;/code&gt; 卷积堆叠后的感受野相当于 &lt;code&gt;5×5&lt;/code&gt;，三个 &lt;code&gt;3×3&lt;/code&gt; 相当于 &lt;code&gt;7×7&lt;/code&gt;，但参数更少，而且中间多了非线性激活，因此表达能力更强。论文比较了从 11 层到 19 层的多个配置，最终 VGG-16 和 VGG-19 表现最好，说明在当时的训练设定下，把网络稳定加深到 16/19 个带权重层确实能带来收益。&lt;/p&gt;
&lt;p&gt;实验上，VGG 在 ILSVRC-2014 分类任务中取得很强结果，论文报告的最佳单模型测试 top-5 error 约为 7.3%，结合 multi-crop 与 dense evaluation 后验证集 top-5 error 可到约 7.1%。VGG 的长期影响不只是 ImageNet 排名，而是提供了一个非常简单、可复现、迁移性强的卷积 Backbone 范式：小卷积核重复堆叠、逐级下采样、通道数逐级增加。它的缺点也同样明显：全连接层带来大量参数，整体计算和存储开销很高，因此后来逐渐被 Inception、ResNet 等更高效或更易优化的结构取代。&lt;/p&gt;
&lt;h2&gt;ResNet&lt;/h2&gt;
&lt;p&gt;结构上，ResNet 的基本单元是 residual block。浅层版本通常由两个 &lt;code&gt;3×3&lt;/code&gt; 卷积组成，输入通过 identity shortcut 直接加到卷积分支输出上；当空间尺寸或通道数变化时，可以用 projection shortcut 或 zero-padding 处理维度匹配。论文特别强调，很多情况下无参数的 identity shortcut 已经足够有效，这意味着残差连接本身不是靠增加大量参数取胜，而是在优化路径上提供了更直接的信息和梯度通道。&lt;/p&gt;
&lt;p&gt;对于 50/101/152 层的 ImageNet 模型，ResNet 使用 bottleneck block：&lt;code&gt;1×1&lt;/code&gt; 卷积先降维，&lt;code&gt;3×3&lt;/code&gt; 卷积处理空间信息，再用 &lt;code&gt;1×1&lt;/code&gt; 卷积升维。这样可以在控制计算量的同时把网络加深到 152 层。实验中，34 层 plain net 训练和验证都劣于 18 层 plain net，而 34 层 ResNet 明显改善这一问题；论文报告 34 层 ResNet 相比 34 层 plain net 降低约 3.5% top-1 error。更深模型继续提升，ResNet-152 单模型在 ImageNet 验证集上达到 4.49% top-5 error，集成模型在测试集上达到 3.57% top-5 error，并赢得 ILSVRC 与 COCO 2015 多个任务。ResNet 的贡献非常基础：残差连接后来成为 CNN、Transformer 和多模态网络里几乎默认的深层建模组件。&lt;/p&gt;
&lt;h2&gt;ViT&lt;/h2&gt;
&lt;h2&gt;MAE&lt;/h2&gt;
&lt;h2&gt;DINO&lt;/h2&gt;
&lt;h2&gt;DINOv2&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2304.07193.6m4mgqu7i7.webp&quot; alt=&quot;&quot;&gt;
DINOv2 可以看作是 DINO 的规模化与工程化升级版本，目标不再只是验证 self-distillation 在 ViT 上的有效性，而是训练出一组可以直接作为冻结视觉 Backbone 使用的通用特征模型。在数据层面，DINOv2 不再局限于 ImageNet 这类标准数据集，而是从大规模无标签图像中进行去重、过滤、检索和聚类，构建出包含 1.42 亿张图像的 LVD-142M 数据集，从而获得覆盖更广、质量更高的视觉概念分布。在方法层面，DINOv2 仍然沿用教师-学生自蒸馏框架，但将训练目标从 DINO 中偏图像级的表示学习进一步扩展到 patch-level 表示学习：除了使用 DINO loss 对齐全局视图的语义分布，还引入 iBOT 风格的 masked patch prediction，让学生网络在部分 patch 被 mask 的情况下预测教师网络给出的 patch-level 目标。这样模型不仅能学到 image-level 的全局语义，也能学到适合分割、深度估计和视觉对应等任务的 dense features。为了在更大数据和更大模型上稳定训练，DINOv2 还强化了防塌缩机制，包括 Sinkhorn-Knopp centering 和 KoLeo regularization，使特征分布更加均衡、输出空间利用更加充分。总体来看，DINOv2 的核心贡献在于把 DINO 的自监督 ViT 路线扩展为一套可规模化训练、可蒸馏到不同模型尺寸、且能在多种下游任务中直接迁移的通用视觉特征体系。&lt;/p&gt;
&lt;h2&gt;DINOv3&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/2508.10104.99u2r3tcwr.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;DINOv3 可以看作是 DINOv2 路线的进一步规模化与 dense feature 强化版本，目标是训练一个可以直接作为冻结视觉 Backbone 使用的通用视觉基础模型。数据层面，DINOv3 使用 LVD-1689M 数据集进行训练，共包含 16.89 亿张无标注图像。这些图像来自约 170 亿张 Instagram 公开帖子图像构成的大规模候选池，随后通过内容过滤、去重、DINOv2 特征聚类、均衡采样和检索式筛选得到最终训练集，从而在保证规模的同时尽量提升视觉概念覆盖和数据质量。模型层面，DINOv3 继续沿用教师-学生自监督蒸馏框架，并将 Teacher 扩展到约 7B 参数规模，同时通过蒸馏得到 ViT 和 ConvNeXt 的多种小模型，方便在不同计算预算下部署。DINOv3 最关键的新方法是 Gram Anchoring：论文发现，在继续放大 DINOv2 并延长训练后，图像级分类能力仍会提升，但 patch-level dense features 可能出现退化，影响分割、深度估计和视觉对应等任务。Gram Anchoring 用早期 dense feature 更干净的模型作为约束对象，通过对齐 patch 特征之间的 Gram 相似性结构，帮助模型在继续学习全局语义的同时保留局部几何关系和空间一致性。总体来看，DINOv3 的核心贡献不在于提出全新的自监督范式，而在于证明 DINOv2 风格的自蒸馏视觉模型可以在更大数据、更大模型和更长训练下继续扩展，并通过 Gram Anchoring 解决 dense feature 质量保持的问题。&lt;/p&gt;
&lt;h2&gt;Grounding DINO&lt;/h2&gt;
&lt;p&gt;从 workflow 看，图像先经过 backbone 得到 visual features，文本经过 text encoder 得到 text features，随后在 Feature Enhancer 中做 Fusion。Language-Guided Query Selection 会计算 image tokens 和 text tokens 的相似度，再对文本维度取最大值，得到每个 image token 与整段 prompt 的最高相关分数，最后选出 top-K 个 image tokens 作为 decoder 的初始候选 query。并同时取出 reference boxes，每个 image token 本身来自 feature map 的一个空间位置，检测器也会为每个位置生成或预测一个粗略候选框。Cross-Modal Decoder 再继续 refine 这些 query，若有 L 层 decoder，则有 L 层中间表征。Prediction Head 以每层的中间表征去预测 box refinement，一路计算 query feature 与 text feature 的相似度。&lt;/p&gt;
&lt;p&gt;训练时，所有数据都会被整理成 grounding 格式：[image, text, boxes, positive_map]，其中 positive_map 表示每个 box 对应文本中的哪些 token。普通检测数据可以把类别名拼成 prompt，phrase grounding 数据本来就有短语和 box 的对应关系，caption 数据则需要借助已有模型生成 pseudo boxes。由于预测的 query 和真实目标之间没有天然顺序，训练时先用 Hungarian Matching 做一对一匹配，再使用 query-text token matching 上的 focal loss、box L1 loss 和 GIoU loss。&lt;/p&gt;
&lt;h2&gt;Segment Anything&lt;/h2&gt;
&lt;p&gt;SAM 对歧义的处理也很关键。
如果模型只有一个输出，在单点提示这种天然模糊的场景里容易把多个合理 Mask 平均成一个不干净的结果。
因此 SAM 默认对单个提示预测 3 个 Mask，对应 whole、part、subpart 这类常见嵌套层级，并额外预测每个 Mask 的 IoU 置信度用于排序。
训练时对多个输出分别计算损失，但只反传最小损失的那一个，相当于允许模型把不同输出槽位分配给不同合理解释。
当输入包含多个提示时，歧义通常降低，模型则返回单个更确定的 Mask。
损失函数使用 focal loss 与 dice loss 的组合，IoU 预测头使用 MSE 监督。&lt;/p&gt;
&lt;p&gt;训练流程模拟交互式分割，而不是只做一次静态预测。
每个目标 Mask 先随机选择一个前景点或带噪声的框作为初始提示，模型预测后，再从预测错误区域采样新的前景点或背景点进行修正，并把上一轮未阈值化的 Mask logits 作为 Dense Prompt 输入下一轮。
论文默认使用 11 轮：1 个初始提示、8 个从错误区域采样的交互点，以及 2 轮不加入新点的自我细化。
这样训练出来的模型不仅能处理单点或框，也能自然接入「用户继续点击修正」的交互流程。&lt;/p&gt;
&lt;p&gt;数据层面的贡献同样重要。
由于互联网上没有现成的海量分割 Mask，作者构建了一个三阶段 Data Engine。
第一阶段是 Assisted-manual：标注员使用 SAM 辅助的浏览器工具点击前景和背景，并可用 brush/eraser 修正，最终在 12 万张图上收集 430 万个 Mask，平均每个 Mask 的标注时间从 34 秒降到 14 秒。
第二阶段是 Semi-automatic：先用检测器自动填入高置信 Mask，标注员再补充遗漏物体，累计达到 30 万张图、1020 万个 Mask。
第三阶段是 Fully automatic：对每张图使用 32×32 规则点网格提示 SAM，并通过 IoU 置信度、稳定性筛选、NMS 和重叠裁剪过滤结果，最终在 1100 万张授权且隐私处理过的图像上生成 11 亿个高质量 Mask，形成 SA-1B。&lt;/p&gt;
&lt;p&gt;实验强调的是 Zero-shot Transfer。
单前景点分割中，SAM 在 23 个多域数据集上有 16 个数据集的 mIoU 高于 RITM；如果用 oracle 从 3 个候选 Mask 中选择最接近 GT 的结果，则所有数据集都优于 RITM，说明单点评估会受到 GT 歧义影响。
在 BSDS500 边缘检测上，SAM 没有专门训练边缘任务，但 ODS 达到 0.768、R50 达到 0.928，召回很强但会预测更多未标注边缘。
在 LVIS 目标提案中，SAM 的 AR@1000 为 59.3，低于 ViTDet-H 的 63.0，但在 medium、common 和 rare objects 上反而超过 ViTDet-H。
在实例分割中，SAM 接收 ViTDet 的检测框作为 Prompt，在 COCO 上 AP 为 46.5、LVIS 上 AP 为 44.7，低于全监督 ViTDet，但人工评测认为 SAM 的边界质量更好。&lt;/p&gt;
&lt;p&gt;这篇论文最值得学习的是「任务定义、模型接口、数据飞轮」三者绑定在一起。
Promptable Segmentation 给模型提供统一接口，轻量 Mask Decoder 保证交互可用，Data Engine 又利用当前模型降低标注成本、反过来扩大数据规模。
因此 SAM 的创新并不只是一个 ViT 分割模型，而是把分割模型做成可组合的视觉基础设施。
它的局限也来自这个定位：SAM 追求通用性而不是某个数据集的最高 IoU，细小结构可能漏掉，偶尔会产生小的断裂或幻觉区域；重型 Image Encoder 也让完整端到端推理并非真正实时。
另外，论文中的 text-to-mask 只是探索性结果，还不能等价于后续开放词表分割模型。&lt;/p&gt;
&lt;h2&gt;SAM 2&lt;/h2&gt;
&lt;p&gt;Memory Bank 是 SAM 2 的核心数据结构。
它维护两类空间记忆：一类是最近若干未提示帧的 FIFO 记忆，用来表示短期运动和外观变化；另一类是用户提示过的关键帧记忆，用来长期锚定目标身份。
除了空间特征，SAM 2 还保存 object pointers，也就是从 Mask Decoder 输出 token 得到的轻量向量，用来提供高层语义级的目标身份信息。
每一帧预测完成后，Memory Encoder 会把当前预测 Mask 下采样，并与该帧未条件化的图像特征相加，再用轻量卷积融合，生成下一步可写入 Memory Bank 的记忆。
这形成了一个流式循环：读入一帧 → 查询记忆 → 预测 Mask → 编码新记忆 → 继续处理下一帧。&lt;/p&gt;
&lt;p&gt;Prompt Encoder 和 Mask Decoder 大体沿用 SAM。
点、框等 sparse prompts 通过位置编码和提示类型 Embedding 表示，Mask 通过卷积编码后加到 frame embedding 上。
Mask Decoder 继续使用 two-way Transformer，在 Prompt Token 和 frame embedding 之间双向交互，并输出 Mask、IoU 分数和目标可见性信息。
对于单点这类歧义提示，SAM 2 仍然预测多个候选 Mask；但在视频里，歧义不仅发生在空间上，也可能沿时间传播，因此如果用户没有额外提示消除歧义，模型会根据预测 IoU 选择一个候选继续传播。
当某帧目标被遮挡或不可见时，遮挡 / 可见性预测头也会参与判断，避免错误地强行生成目标 Mask。&lt;/p&gt;
&lt;p&gt;训练时，SAM 2 同时使用图像和视频数据，并模拟交互式视频标注过程。
论文默认采样 8 帧序列，随机选择最多 2 帧作为提示帧，并在训练过程中根据 GT masklet 和模型预测采样纠错点击。
初始提示的分布是：50% 使用 GT Mask，25% 使用 GT 内的正点，25% 使用 bounding box。
模型需要按时间顺序逐帧预测完整 masklet，并在收到纠错点击后利用新的提示和已有 memory 修正后续结果。
损失包括 Mask 的 focal loss 和 dice loss、IoU 预测的 L1/MAE loss，以及目标是否存在的 occlusion / object prediction cross-entropy，权重比例为 20:1:1:1。
为增强长视频能力，作者还加入 16 帧序列微调：选择编辑帧最多、最困难的一半 masklets，用较低学习率训练，并冻结图像编码器以适配 A100 80GB 显存。&lt;/p&gt;
&lt;p&gt;数据引擎是 SAM 2 的另一条主线。
Phase 1 使用原始 SAM 逐帧辅助标注视频，每帧都要重新分割，质量高但慢，平均 37.8 秒 / 帧，在 1.4K 视频上收集 16K masklets。
Phase 2 引入只能接收 Mask prompt 的 SAM 2 Mask：标注员先用 SAM 标第一帧，再让模型传播到后续帧，错误时仍需要在中间帧重新画 Mask，速度降到 7.4 秒 / 帧，收集 63.5K masklets。
Phase 3 使用完整 SAM 2，标注员可以直接用点或 Mask 在任意帧修正，模型利用 memory 继续传播，速度降到 4.5 秒 / 帧，相比 Phase 1 快 8.4 倍，同时保持可比质量，收集 197K masklets。
此外，作者还用规则点网格在首帧自动生成候选 masklets，并经过人工验证筛选，既增加覆盖度，也能把失败样本送回人工修正流程。
最终 SA-V 数据集包含 50.9K 视频、642.6K masklets 和 35.5M masks，是已有最大 VOS 数据集 Mask 数量的 53 倍；其中手工部分为 190.9K masklets 和 10.0M masks。&lt;/p&gt;
&lt;p&gt;实验上，SAM 2 的重点是 Zero-shot 视频和图像分割。
在 promptable video segmentation 中，SAM 2 在 9 个密集标注视频数据集上同时优于 SAM+XMem++ 和 SAM+Cutie，并且达到更好精度所需交互次数少于前者的三分之一。
在只给第一帧提示的 semi-supervised VOS 设定中，SAM 2 在 17 个视频数据集平均表现也最好：1-click 为 64.7，3-click 为 75.3，5-click 为 77.6，box 为 74.4，GT mask 为 79.3，均高于 SAM+XMem++ 和 SAM+Cutie。
在图像 Segment Anything 任务中，如果只用 SA-1B 训练，SAM 2 的 1-click mIoU 为 58.9，略高于 SAM 的 58.1，但速度从 21.7 FPS 提升到 130.1 FPS；使用作者的视频和图像混合数据后，SA-23 上升到 61.9，14 个新增视频图像化数据集上升到 69.6。
在传统 VOS SOTA 对比中，SAM 2 Hiera-L 在 MOSE val、DAVIS 2017 val、LVOS val、SA-V val/test 和 YTVOS 2019 val 上分别达到 77.9、90.7、78.0、77.9、78.4 和 89.3，并且 Hiera-B+ / Hiera-L 都能在 A100 上实时运行，分别约 43.8 / 30.2 FPS。&lt;/p&gt;
&lt;p&gt;这篇论文最值得学习的是它把 SAM 的「可提示接口」推广成了一个流式时序系统。
SAM 负责在单帧里根据 Prompt 找到目标，SAM 2 则进一步回答：当目标在视频里移动、遮挡、消失、重现时，模型如何记住它、如何接受用户在任意帧修正、如何把修正继续传播。
它的局限也主要来自视频长期建模：跨镜头切换、拥挤场景、长时间遮挡、快速移动的细小结构和多个外观相似目标仍然困难。
另外，SAM 2 虽然可以处理多目标，但基本是逐目标独立处理，只共享每帧图像特征，目标之间缺少显式交互。
因此 SAM 2 更像是一个通用交互式视频分割基础设施，而不是完全解决所有开放世界视频理解问题的最终模型。&lt;/p&gt;
&lt;h2&gt;SAM 3&lt;/h2&gt;
&lt;p&gt;PCS 和 PVS 的本质差异在于「一个提示对应一个实例」变成了「一个概念对应所有实例」。
这带来两个新难点。
第一是开放词表识别：模型要判断输入中是否存在某个短语对应的概念，尤其要处理大量 hard negatives，例如图中没有该概念、相似概念或细粒度概念。
第二是实例穷尽性：只分出一个目标是不够的，模型必须尽量找到所有匹配实例，还要允许用户通过正负 exemplar 交互式补充漏检或移除误检。
论文明确限制文本提示为简单名词短语，不直接解决长 referring expression 或需要复杂推理的语言查询；复杂查询可以用 MLLM 拆成多个 noun phrases 后再调用 SAM 3。
&lt;img src=&quot;https://pic.hana0721.top/sam3-arch.1vzaqf4jmb.webp&quot; alt=&quot;&quot;&gt;
模型结构由 detector 和 tracker 组成，两者共享一个对齐过的 Perception Encoder 视觉语言 backbone。
Detector 是 DETR 风格的开放词表检测/分割器：图像和文本由 PE 编码，image exemplars 如果存在，则由 exemplar encoder 编码；文本 token 和 exemplar token 合称 prompt tokens。
Fusion Encoder 让图像特征 cross-attend 到 prompt tokens，得到条件化图像特征；随后 DETR-like decoder 用 object queries 在条件化图像特征上定位匹配实例。
每层 decoder 都预测 query 是否匹配当前 prompt、box refinement；Mask head 借鉴 MaskFormer 产生实例 Mask，此外还有 semantic segmentation head 逐像素预测是否属于当前概念。&lt;/p&gt;
&lt;p&gt;Presence Token 是 SAM 3 中很关键的设计。
普通 DETR query 同时承担「识别是什么」和「定位在哪里」两个任务，但开放词表场景下，识别需要看全图上下文，定位却是局部问题，两者容易冲突。
SAM 3 引入一个全局 learned presence token，专门预测 noun phrase 是否存在于输入中，即全局 presence score。
各个 object query 只负责在「该概念存在」的条件下定位候选实例，最终实例分数由 query score 和 presence score 相乘得到。
这样 recognition 和 localization 被解耦，尤其有利于 hard negatives：当图中根本没有该概念时，presence head 可以整体压低预测，而不是让局部 query 硬找一个相似物体。&lt;/p&gt;
&lt;p&gt;Image exemplar 让 SAM 3 具备交互式概念适配能力。
一个 exemplar 由 bounding box 和二元标签组成，标签可以是 positive 或 negative。
Positive exemplar 表示「找和这个框中目标同类的所有实例」，negative exemplar 表示「不要找这类误检」。
Exemplar encoder 会融合 box 位置编码、正负标签编码和 ROI-pooled 视觉特征，再用小 Transformer 得到 exemplar prompt，最后和文本 prompt 拼接。
这和 SAM/SAM2 的视觉提示不同：SAM 的框通常只定位一个实例，而 SAM 3 的 exemplar 会泛化成概念提示，例如给一个狗的正框后，模型应当找出图中所有狗。&lt;/p&gt;
&lt;p&gt;视频部分可以理解为「detector 负责发现新实例，tracker 负责维持身份」。
在每一帧，detector 根据概念 prompt 检测当前帧所有匹配对象；tracker 则沿用 SAM 2 风格的 memory-based propagation，把上一帧已有 masklets 传播到当前帧。
随后，SAM 3 用 IoU-based matching 将传播结果和当前帧检测结果合并：已匹配的 masklet 更新位置，未匹配的新检测会 spawn 成新的 masklet。
为了降低拥挤场景中的身份混淆，模型还使用 temporal disambiguation：一方面用 masklet detection score 衡量某个轨迹在时间窗口内是否持续被检测支持，低于阈值则抑制；另一方面周期性用高置信 detector mask 重新 prompt tracker，替换 tracker 自己可能漂移的预测，让 memory bank 保持新鲜可靠。
用户也可以继续用正负 click 细化单个 mask 或 masklet，视频中修正后的 Mask 会继续传播到整段视频。&lt;/p&gt;
&lt;p&gt;训练分四个阶段：先预训练 Perception Encoder，再做 detector pre-training，然后 detector fine-tuning，最后冻结 backbone 训练 tracker。
数据引擎也对应地从图像走向视频。
Phase 1 使用 captioner/parser 提出 noun phrases，用开放词表检测器加 SAM 2 生成初始 Mask，人类执行 Mask Verification 和 Exhaustivity Verification，得到 4.3M image-NP pairs。
Phase 2 用 Phase 1 的人类验证数据微调 Llama 3.2，形成 AI verifiers 自动做 MV 和 EV，让人类专注困难样本；同时用 Llama-based pipeline 生成 hard negative NPs，并多轮更新 SAM 3，新增 122M image-NP pairs。
Phase 3 扩展到 15 个图像域，并从 alt-text 和基于 Wikidata 的 22.4M 节点 SA-Co ontology 中挖掘长尾细粒度概念，新增 19.5M image-NP pairs。
Phase 4 扩展到视频，通过运动/场景过滤和失败样本挖掘生成视频 masklets，最终得到 SA-Co/VIDEO。&lt;/p&gt;
&lt;p&gt;SA-Co 数据集的规模很大。
高质量图像数据 SA-Co/HQ 包含 5.2M images、4M unique NPs、146.1M image-NP pairs 和 52.3M masks。
合成数据 SA-Co/SYN 由成熟数据引擎和 AI verifiers 生成，包含 39.4M images、38M NPs、1.7B image-NP pairs 和 1.4B masks。
外部数据 SA-Co/EXT 包含 9.3M images、497.4K NPs 和 70.5M masks。
视频数据 SA-Co/VIDEO 包含 52.5K videos、24.8K NPs、134K video-NP pairs 和 467K masklets。
评测集覆盖 207K unique phrases、121K images/videos 和超过 3M media-phrase pairs，并显式包含大量 hard negatives。&lt;/p&gt;
&lt;p&gt;实验上，SAM 3 在图像 PCS with text 中显著优于已有开放词表系统。
在 SA-Co/Gold 实例分割上，SAM 3 的 cgF1 为 54.1，而最强基线 OWLv2* 为 24.6，Human oracle 为 72.8；也就是说 SAM 3 超过最强基线两倍，并达到约 74% 的人类表现。
在 LVIS instance segmentation 上，SAM 3 的 cgF1/AP 为 37.2/48.5；在 box detection 上，LVIS cgF1/AP 为 40.6/53.6，COCO AP 为 56.4。
语义分割上，SAM 3 在 ADE-847、PascalConcept-59 和 Cityscapes 上分别达到 13.8、60.8 和 65.2 mIoU，超过强 specialist baseline APE。&lt;/p&gt;
&lt;p&gt;Exemplar 和交互结果体现了 SAM 3 的新接口价值。
单个 exemplar 提示下，SAM 3 在 COCO、LVIS 和 ODinW13 上相对 T-Rex2 分别提升 +18.3、+10.3 和 +20.5 AP+。
从文本 prompt 开始逐步添加 exemplar 时，3 次点击后 cgF1 比 text-only 高 +21.6，也比理想化的 PVS 单实例修正高 +2.0。
原因是 PCS exemplar 不只是修正一个实例，而是会泛化到类似目标：正样本能补一类漏检，负样本能压一类误检。
计数任务也受益于「先分割再计数」：SAM 3 在 CountBench 上 MAE 0.12、Accuracy 93.8%，并且能给出实例 Mask，而多数 MLLM 只能输出数字。&lt;/p&gt;
&lt;p&gt;视频 PCS 中，SAM 3 也把文本概念扩展到开放词表视频分割。
在 SA-Co/VEval 的三个子集上，SAM 3 分别达到 SA-V 30.3 cgF1 / 58.0 pHOTA、YT-Temporal-1B 50.8 / 69.9、SmartGlasses 36.4 / 63.6。
在公开 benchmark 上，SAM 3 在 LVVIS test mAP 为 36.3，BURST test HOTA 为 44.5，OVIS val mAP 为 60.5，整体明显优于 GLEE、LLMDet + SAM 3 Tracker 以及 tracking-by-detection 替代方案。
在传统 PVS/VOS 能力上，SAM 3 也没有退化：VOS 中在 MOSEv1、DAVIS17、LVOSv2、SA-V val/test、YTVOS19、MOSEv2 上分别达到 78.4、92.2、88.5、83.5、84.4、89.7、60.3，其中 MOSEv2 比 prior work 高 6.5 点。
在 SA-37 交互式图像分割上，SAM 3 的 1/3/5-click mIoU 为 66.1、81.3、85.1，3-click 和 5-click 超过 SAM 2.1 L。&lt;/p&gt;
&lt;p&gt;消融说明这篇论文的关键收益确实来自「识别-定位解耦、hard negatives、数据引擎」三件事。
Presence head 让 cgF1 从 50.7 提升到 52.2，IL_MCC 从 0.77 到 0.82。
Hard negatives 数量从 0 增加到 30/img 时，cgF1 从 28.3 提升到 43.0，主要提升来自 image-level recognition。
训练数据方面，仅 EXT 为 23.7 cgF1，加入 SYN 后到 32.8，加入 HQ 后到 45.5，EXT+SYN+HQ 达到 47.4。
AI verifiers 也很关键：在伪标签上加入 EV verifier 可把 cgF1 从 54.0 提到 61.2，再加入 MV verifier 到 62.3，论文认为 AI verifiers 关闭了模型与人类表现差距的大约一半。&lt;/p&gt;
&lt;p&gt;我觉得 SAM 3 的核心贡献是把 SAM 系列从「视觉位置提示」推进到「开放词表概念提示」。
SAM 解决单图实例分割，SAM 2 解决视频中同一实例的记忆与传播，SAM 3 则进一步解决「给一个概念，找出所有实例，并在视频里保持身份」的问题。
局限也很清楚：它不擅长 out-of-domain 术语，需要额外 domain expansion 或 fine-tuning；文本输入被限制为简单 noun phrases，复杂推理查询要借助 MLLM agent；视频中推理成本随被跟踪对象数量线性增长；概念本身还存在天然歧义，例如类别边界、主观形容词和上下文依赖。
所以 SAM 3 更像是开放词表实例分割/视频分割的基础接口，而不是通用视觉推理模型。&lt;/p&gt;
&lt;h2&gt;SAM 3D&lt;/h2&gt;
&lt;p&gt;这篇工作的核心动机是 3D 的「数据壁垒」。
多视角几何或合成数据可以提供 3D 监督，但真实世界中大量物体只出现在单张自然图像里，而且常常有遮挡、场景杂乱、尺度变化和上下文依赖。
已有 image-to-3D 模型多在 isolated object renders 上训练，对居中、干净的物体效果不错，但在自然场景中距离远、遮挡重、只露出一部分的物体上容易失败。
SAM 3D 的直觉是：人类能从单图恢复 3D，很大程度依赖 recognition cue 和 context cue；模型也应当从目标局部外观、完整场景上下文和物体类别先验中联合推断 3D。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/sam3d-arch.2dpci7c1qe.webp&quot; alt=&quot;&quot;&gt;
模型输入编码分成 cropped object 和 full image 两路。
第一路把目标 Mask 裁剪出的物体图像和裁剪后的 binary mask 一起送入 DINOv2 encoder，提供高分辨率、聚焦目标的细节信息。
第二路把完整图像和 full-image binary mask 送入 encoder，提供全局场景上下文、尺度、遮挡关系和识别线索。
模型还可以选择性接收 point map &lt;code&gt;P&lt;/code&gt;，这个点图可以来自 LiDAR、iPhone 深度传感器或单目深度模型，用于辅助布局估计；但论文也强调形状和纹理质量并不强依赖 point map。&lt;/p&gt;
&lt;p&gt;整体架构是两阶段 latent flow matching。
第一阶段是 Geometry Model，建模 &lt;code&gt;p(O, R, t, s | I, M)&lt;/code&gt;：其中 &lt;code&gt;O&lt;/code&gt; 是 &lt;code&gt;64^3&lt;/code&gt; 的 coarse shape voxel，&lt;code&gt;R&lt;/code&gt; 使用 6D rotation representation，&lt;code&gt;t&lt;/code&gt; 是平移，&lt;code&gt;s&lt;/code&gt; 是尺度。
Geometry Model 是一个约 1.2B 参数的 flow transformer，采用 Mixture-of-Transformers 架构，在输入图像/Mask 条件下联合生成粗形状和布局。
第二阶段是 Texture &amp;#x26; Refinement Model，建模 &lt;code&gt;p(S, T | I, M, O)&lt;/code&gt;：它先从 coarse shape 中抽取 active voxels，再用约 600M 参数的 sparse latent flow transformer 细化几何并合成纹理。
最后，结构化 latent 可以通过两个 VAE decoder 输出 mesh 或 3D Gaussian splats；两个 decoder 共享同一个 VAE encoder，因此处在相同的 structured latent space 中。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/sam3d-train.8hh4knfj2u.webp&quot; alt=&quot;&quot;&gt;
训练流程非常像大模型训练范式：pretraining、mid-training、post-training，再加 alignment 和 distillation。
Pretraining 使用 isolated synthetic 3D assets，作者从 Objaverse-XL 和授权数据中收集 2.7M object meshes，每个物体渲染 24 个视角，构成 Iso-3DO，用 2.5T training tokens 学习基本形状和纹理生成能力。
Mid-training 构造 semi-synthetic 的 render-and-paste 数据 RP-3DO，把带纹理 mesh alpha-composite 到自然图像里，包含遮挡-被遮挡对，以及把真实物体替换成位置和尺度相似的合成物体。
RP-3DO 有 61M samples 和 2.8M unique meshes，用 2.7T training tokens 训练 mask-following、occlusion robustness、layout estimation 和 visual cue usage。
这一步之后，模型已经见过所有输入/输出模态，但仍然主要是合成或半合成数据，因此需要真实图像 post-training。&lt;/p&gt;
&lt;p&gt;Post-training 是 SAM 3D 最重要的数据飞轮。
3D 标注不像 2D Mask 标注，普通标注员很难直接建 mesh，但他们可以在多个候选 3D 模型里选择最像图中物体的那个，并给出质量评分。
因此，数据引擎会先用当前模型和一组已有 learned / retrieval-based models 生成候选形状与纹理，再让人类从 &lt;code&gt;N=8&lt;/code&gt; 个候选中选最好的一个。
如果质量评分超过阈值，最佳候选成为正样本 &lt;code&gt;D+ = (I, M, S, T, R, t, s)&lt;/code&gt;；其他较差候选变成偏好优化中的负样本 &lt;code&gt;D-&lt;/code&gt;。
早期由于模型还弱，候选主要来自 ensemble；随着迭代推进，SAM 3D 自己最终贡献了约 80% 的标注数据。
整个真实数据收集最终覆盖接近 1M images，约 3.14M untextured meshes 和约 100K textured meshes。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/sam3d-data.6wrdl6jh80.webp&quot; alt=&quot;&quot;&gt;
真实数据引擎被拆成三个标注子任务。
Stage 1 选择目标物体 &lt;code&gt;(I, M)&lt;/code&gt;：从多种真实图像数据源采样，并用 3D-oriented taxonomy 平衡物体分布，Mask 来自已有分割标注或人类选择。
Stage 2 选择形状和纹理 &lt;code&gt;(S, T)&lt;/code&gt;：人类在多个模型候选中选择最符合输入图像和 Mask 的 3D object，并拒绝低质量候选。
Stage 2.5 处理 hard examples：当没有模型能生成合理形状时，样本会被路由给专业 3D artists 直接标注，形成高质量 Art-3DO。
Stage 3 标注布局 &lt;code&gt;(R, t, s)&lt;/code&gt;：给定 Stage 2 的 object shape，标注员在 point cloud 中操作物体的平移、旋转和尺度，让 3D object 与 2.5D 场景对齐。&lt;/p&gt;
&lt;p&gt;模型更新同样分阶段。
SFT 先用噪声较大的非专家 MITL-3DO 数据缩小 synthetic-to-real gap，再用更小但质量更高的 Art-3DO 数据强化审美和几何质量，减少 floaters、bottomless meshes、缺失对称性等常见失败。
随后使用 DPO 做 preference alignment，把 Stage 2 中人类选择的 &lt;code&gt;D+&lt;/code&gt; 和较差候选 &lt;code&gt;D-&lt;/code&gt; 作为偏好对，优化人类更敏感但普通 flow matching 难以直接刻画的属性，例如闭合性、对称性和整体可用性。
最后，Geometry Model 做 distillation，将推理时的 function evaluations 从 25 降到 4，使 shape 和 layout 可以做到 sub-second 级生成。&lt;/p&gt;
&lt;p&gt;实验中，作者构建了新的 SA-3DAO benchmark：1000 个由专业 3D artists 从自然图像恢复并对齐的无纹理 3D objects。
这个 benchmark 比 isolated render 更接近真实使用场景，包含室内外场景、遮挡、小物体、稀有文化物体、衣物、滑雪缆车、自动扶梯等复杂目标。
在 SA-3DAO shape 指标上，SAM 3D 明显优于 Trellis、Hunyuan3D、Direct3D-S2、TripoSG、Hi3DGen 等方法：F1@0.01 为 0.2344，vIoU 为 0.2311，Chamfer 为 0.0400，EMD 为 0.1211。
相比最强基线，F1 和 vIoU 提升很大，Chamfer / EMD 也显著更低，说明它不仅能生成看起来像的形状，也更接近 artist ground truth 几何。
在 ISO3D isolated object 上，SAM 3D 的 Uni3D 为 0.3707，基本达到或略超 SOTA，说明它强化真实场景能力的同时没有牺牲干净物体能力。&lt;/p&gt;
&lt;p&gt;布局估计是 SAM 3D 区别于普通 image-to-3D 生成器的重要部分。
在 SA-3DAO 上，SAM 3D joint layout 的 3D IoU 为 0.4254、ICP-Rot 为 20.77、ADD-S 为 0.2661、ADD-S@0.1 为 0.7232，显著优于「先生成 mesh 再用 FoundationPose/Megapose 对齐」的 pipeline。
在 Aria Digital Twin 上，SAM 3D 的 3D IoU 为 0.4970、ADD-S@0.1 为 0.7673；论文强调这相当于把真实场景 joint shape+layout 能力从非常低的可用率提升到大幅可用。
如果再做 test-time layout optimization，ADT 上 3D IoU 可从 0.4837 提到 0.5258，2D IoU 从 0.5143 提到 0.6487。&lt;/p&gt;
&lt;p&gt;人类偏好实验也支持这个结论。
在真实物体和场景中，SAM 3D 的 object reconstruction 相比 prior SOTA 至少有 5:1 win rate，scene reconstruction 有约 6:1 win rate。
纹理评价中，在给定 SAM 3D shape 的条件下，标注员也明显偏好 SAM 3D 的 Texture &amp;#x26; Refinement：相对 Trellis，在 ISO3D、Preference Set、SA-3DAO、LVIS 上胜率分别为 81.1%、87.0%、86.2%、89.1%；相对 Hunyuan3D-2.1，在后三个真实/偏好集合上也都是 86% 以上。&lt;/p&gt;
&lt;p&gt;消融实验说明多阶段训练是必要的。
只做 Iso-3DO pretraining 时，SA-3DAO F1@0.01 只有 0.1349，vIoU 0.1202。
加入 RP-3DO mid-training 后提升到 0.1705 / 0.1683；加入 MITL-3DO SFT 到 0.2027 / 0.2025；MITL DPO 到 0.2156 / 0.2156；Art-3DO SFT 到 0.2331 / 0.2337；最终 Art-3DO DPO 达到 0.2344 / 0.2311，同时 Chamfer 降到 0.0400。
去掉 MITL-3DO、Art-3DO 或 DPO 都会退化，其中去掉 Art-3DO 影响最大，说明高质量 artist data 对真实世界形状质量非常关键。&lt;/p&gt;
&lt;p&gt;这篇论文对我的启发是：3D foundation model 的核心瓶颈不是网络结构本身，而是如何把真实图像和可信 3D supervision 连接起来。
SAM 3D 的数据引擎把「让人直接建模」改成了「让人从模型候选中选择并评分」，再把选择结果变成 SFT 数据和 DPO 偏好对，这和 RLHF / data flywheel 的思想非常接近。
因此它不是简单的 image-to-3D 模型，而是一套把 2D Mask、候选 3D、point map、人类偏好和专业 artist 数据组合起来的真实世界 3D 对齐系统。
局限也很明确：Geometry Model 的 coarse shape 是 &lt;code&gt;64^3&lt;/code&gt;，细结构、薄结构、手和脸等对分辨率敏感的部分可能失真；模型逐物体预测 layout，不显式推理多物体接触、稳定性、互穿或共平面；texture 预测不知道最终 pose，所以旋转对称物体有时会出现纹理朝向错误。
总体看，SAM 3D 是 SAM 系列从「分割物体」走向「把分割出的物体 3D 化」的重要一步，尤其适合机器人、AR/VR、游戏、影视和交互式媒体中的真实场景 3D 感知。&lt;/p&gt;
&lt;h2&gt;PointNet&lt;/h2&gt;
&lt;p&gt;分类任务中，PointNet 先得到全局 feature 再做 object classification；分割任务中，则把全局 feature 拼回每个点的局部 feature 上，再逐点预测 part / semantic label。
代表结果是 ModelNet40 overall accuracy 89.2%，ShapeNet part segmentation mean IoU 83.7%。
它的意义不在于复杂结构，而在于证明「共享 MLP + max pooling」就能直接吃 unordered point set，并成为后续点云网络的基本 building block。&lt;/p&gt;
&lt;h2&gt;PointNet++&lt;/h2&gt;
&lt;p&gt;PointNet++ 的动机很直接：PointNet 虽然解决了点集无序性，但它主要做全局聚合，没有显式建模 metric space 中的局部邻域结构。
点云里的局部几何非常重要，例如椅子腿、桌面边缘、墙角和家具边界；同时真实扫描点云往往采样密度不均匀，固定尺度的局部特征很容易失效。
PointNet++ 把 PointNet 变成层级局部算子。
&lt;img src=&quot;https://pic.hana0721.top/pnpp-arch.2yz04j1byk.webp&quot; alt=&quot;&quot;&gt;
每个 set abstraction level 包含三步：Sampling layer 用 farthest point sampling 选 centroids，保证覆盖整个点集；Grouping layer 用 ball query 按半径找局部邻域；PointNet layer 在每个局部邻域内运行 mini-PointNet，把可变数量的邻域点编码成固定长度 local feature。
堆叠多个 set abstraction level 后，点的数量逐层减少，receptive field 逐层增大，类似点云版本的层级 CNN。
&lt;img src=&quot;https://pic.hana0721.top/pnpp-da.icrpqonfx.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;为了解决非均匀密度，论文提出两种 density adaptive 设计。
MSG 在同一层用多个半径做 grouping，然后拼接多尺度特征；训练时使用 random input dropout，让模型学会在稀疏/稠密采样下选择合适尺度。
MRG 则把当前层局部 PointNet 特征和下一层更粗分辨率的特征拼接，计算更省，在低密度区域更依赖粗尺度信息，在高密度区域保留细节。
分割任务中，PointNet++ 还用 feature propagation，把高层稀疏点特征通过 kNN inverse-distance interpolation 传播回原始点，并和 skip features 拼接后逐点分类。&lt;/p&gt;
&lt;p&gt;代表结果上，PointNet++ 在 ModelNet40 上达到 90.7% accuracy，加入 normal 后达到 91.9%，超过 PointNet 的 89.2%。
在 ScanNet scene labeling 中，它比 PointNet 更能分出家具等局部物体，而不是只抓住房间整体布局。
总体来看，PointNet 是点云深度学习的「集合函数」基线，PointNet++ 则补上了局部结构、多尺度和密度鲁棒性，是后续点云 backbone 的重要起点。&lt;/p&gt;
&lt;h2&gt;Point-BERT&lt;/h2&gt;
&lt;p&gt;直观理解：Point-BERT 的贡献是定义了「点云词表 + masked token prediction」这条路线，让标准 Transformer 能通过自监督预训练获得点云表征。
缺点也比较明显：dVAE tokenizer 训练复杂、依赖额外 DGCNN/FoldingNet，整体预训练流程不够简洁。&lt;/p&gt;
&lt;h2&gt;Point-MAE&lt;/h2&gt;
&lt;p&gt;结果上，Point-MAE 在 ModelNet40 上达到 93.8%（8k 点为 94.04%），ScanObjectNN PB-T50-RS 达到 85.18%，比 Point-BERT 高 2.11%；Few-shot 四个设置也全面超过 Point-BERT；ShapeNetPart instance mIoU 为 86.1%。
它的经验结论也很重要：点云 MAE 更适合 random masking + 较高 mask ratio（约 60%–80%），让模型必须从稀疏可见局部推理整体结构。&lt;/p&gt;
&lt;p&gt;总体看，Point-BERT 证明了点云 masked pretraining 可行；Point-MAE 则说明不需要复杂离散词表，直接做几何重建也能学到更强、更简洁的 3D 表征。&lt;/p&gt;
&lt;h2&gt;PointGPT&lt;/h2&gt;
&lt;p&gt;结果上，PointGPT-L 在 ModelNet40 达到 94.9%，ScanObjectNN PB-T50-RS 达到 93.4%，ShapeNetPart instance mIoU 达到 86.6%；few-shot 四个设置也达到当时很强的结果。
需要注意，这些最佳结果来自更大模型、混合数据预训练和 post-pre-training；单纯的 PointGPT-S 更适合作为与 Point-MAE/Point-BERT 同量级比较。
总体看，PointGPT 的价值是把点云预训练从「补洞/重建」推进到「按空间序列自回归生成」，但其排序方式和扩展训练流程也让实现复杂度上升。&lt;/p&gt;
&lt;h2&gt;Point Transformer V1&lt;/h2&gt;
&lt;h2&gt;Point Transformer V2&lt;/h2&gt;
&lt;h2&gt;Point Transformer V3&lt;/h2&gt;
&lt;h2&gt;PointCLIP&lt;/h2&gt;
&lt;h2&gt;PointCLIP V2&lt;/h2&gt;
&lt;p&gt;总体看，PointCLIP V2 的核心贡献是同时 prompt CLIP 的视觉侧和语言侧，把原本只能做 3D 分类的 PointCLIP 扩展成统一的 3D open-world learner。
不过它仍依赖投影质量、GPT 生成文本和 CLIP 的 2D 先验，因此对细粒度几何和真实复杂场景的能力仍受 2D-3D 对齐上限约束。&lt;/p&gt;
&lt;h2&gt;ULIP&lt;/h2&gt;
&lt;p&gt;ULIP 是 backbone-agnostic 的，可以套在 PointNet++、PointBERT、PointMLP 等网络上。
标准分类中，它在 ScanObjectNN 上把 PointBERT 从 83.1% 提到 86.4%，把 PointMLP 从 85.7% 提到 88.8%；在 ModelNet40 上，PointMLP* + ULIP 达到 94.7%。
Zero-shot 3D classification 是更关键的结果：ModelNet40 上 PointBERT + ULIP 达到 60.4% top-1，而 PointCLIP 只有 20.2%；ScanObjectNN 上 PointNet++(msg) + ULIP 达到 49.9%，也远高于 PointCLIP 的 15.4%。
消融还显示，同时对齐 point-image-text 三种模态总是优于只对齐其中两种。&lt;/p&gt;
&lt;p&gt;总体看，ULIP 是 3D 多模态预训练的重要转折点：它证明了 3D backbone 可以通过少量三元组数据继承 CLIP 的开放词表语义，而不必把点云硬投影成 2D 图像再分类。&lt;/p&gt;
&lt;h2&gt;Point-Bind &amp;#x26; Point-LLM&lt;/h2&gt;</content:encoded><h:img src="https://pic.hana0721.top/62258773_p0_master1200.7zr0vfh0rf.webp"/><enclosure url="https://pic.hana0721.top/62258773_p0_master1200.7zr0vfh0rf.webp"/></item><item><title>Paper Reading: Basic Method 1</title><link>https://agusexp25.top/blog/paper-reading-bm1</link><guid isPermaLink="true">https://agusexp25.top/blog/paper-reading-bm1</guid><description>从基础开始吧！</description><pubDate>Fri, 26 Dec 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating, RatingCriteria } from &apos;@/components/advanced&apos;&lt;/p&gt;
&lt;h2&gt;前言&lt;/h2&gt;
&lt;p&gt;这里主要是一些比较基础性的文章。&lt;/p&gt;
&lt;h2&gt;VAE&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/vae-graphical-model.5trqy8sc6g.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;VAE 解决的是连续潜变量生成模型中的推断与学习问题。生成模型先从先验 $p_\theta(z)$ 采样潜变量 $z$，再由条件分布 $p_\theta(x|z)$ 生成观测 $x$；但边缘似然 $p_\theta(x)=\int p_\theta(z)p_\theta(x|z),dz$ 通常无法直接计算，真实后验 $p_\theta(z|x)$ 也同样不可解。论文因此引入识别模型 $q_\phi(z|x)$ 近似真实后验：它接收样本并输出潜变量分布，所以可以视作概率 Encoder；$p_\theta(x|z)$ 则是概率 Decoder。和每个样本都单独运行迭代推断不同，所有样本共享参数 $\phi$，因此推断过程被摊销进一个神经网络中，并与生成模型参数 $\theta$ 联合学习。&lt;/p&gt;
&lt;p&gt;训练目标是观测对数似然的 Evidence Lower Bound（ELBO）：$\mathcal{L}(\theta,\phi;x)=\mathbb{E}&lt;em&gt;{q&lt;/em&gt;\phi(z|x)}[\log p_\theta(x|z)]-D_{\mathrm{KL}}(q_\phi(z|x)|p_\theta(z))$。第一项要求从潜变量中重建输入，可理解为负重建误差；第二项把近似后验约束到先验附近，使不同样本的编码共同形成可采样的连续潜空间。最大化 ELBO 一方面提高数据似然的下界，另一方面缩小 $q_\phi(z|x)$ 与真实后验 $p_\theta(z|x)$ 的差距，因此概率建模、表示学习和生成可以在同一个目标下完成。&lt;/p&gt;
&lt;p&gt;真正让这个目标能用反向传播训练的是 Reparameterization Trick。对于对角高斯后验 $q_\phi(z|x)=\mathcal{N}(\mu_\phi(x),\operatorname{diag}(\sigma_\phi^2(x)))$，不直接从依赖 $\phi$ 的分布中采样，而是先采样与参数无关的 $\epsilon\sim\mathcal{N}(0,I)$，再令 $z=\mu_\phi(x)+\sigma_\phi(x)\odot\epsilon$。这样随机性被移到计算图之外，$z$ 对 $\mu$ 和 $\sigma$ 仍然可微，可以得到低方差的 Monte Carlo 梯度。论文据此提出 SGVB 估计器与 minibatch AEVB 算法；实验中只要 minibatch 足够大，每个样本使用一次潜变量采样就能有效训练。&lt;/p&gt;
&lt;p&gt;论文在 MNIST 和 Frey Face 上比较了 AEVB、Wake-Sleep 与 Monte Carlo EM，展示了 AEVB 可以用在线 minibatch 优化更快地提升变分下界，并学习出可生成、可插值的低维连续表示。VAE 的长期影响不只是一个具体网络，而是把「神经网络参数化的近似后验 + 可微随机采样 + ELBO」组合成通用深度生成建模范式；后续的条件 VAE、层级 VAE、VQ-VAE 与潜空间扩散等方法都建立在这一概率 Encoder–Decoder 思路之上。&lt;/p&gt;
&lt;h2&gt;Transformer&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/transformer-architecture.1hsxqp90pa.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Transformer 针对的是 RNN 式序列建模的串行瓶颈。循环网络必须按位置依次更新隐藏状态，训练时无法在一个序列内部充分并行，而且两个远距离 token 之间的信息需要经过很长的计算路径。Transformer 去掉 recurrence 和 convolution，让每个位置通过 Self-Attention 直接与序列中的所有位置交互；任意两个 token 在一层内即可建立联系，训练阶段也可以同时处理所有位置。&lt;/p&gt;
&lt;p&gt;原论文仍采用标准 Encoder–Decoder 结构。Encoder 和 Decoder 都堆叠 $N=6$ 层，隐藏维度为 $d_{\text{model}}=512$。每个 Encoder 层包含 Multi-Head Self-Attention 和逐位置 Feed-Forward Network；每个 Decoder 层在这两部分之间增加一层 Encoder–Decoder Attention，并在 Decoder Self-Attention 中使用因果 Mask，防止当前位置读取未来输出。每个子层外都使用残差连接与 LayerNorm，即原论文的 $\operatorname{LayerNorm}(x+\operatorname{Sublayer}(x))$。逐位置 FFN 是共享到各个位置的两层 MLP，内部维度为 2048。&lt;/p&gt;
&lt;p&gt;注意力的核心计算是 $\operatorname{Attention}(Q,K,V)=\operatorname{softmax}(QK^\top/\sqrt{d_k})V$。Query 与 Key 的点积给出相关性，再对 Value 做加权聚合；除以 $\sqrt{d_k}$ 是为了避免维度较大时点积幅值过大、softmax 进入梯度很小的饱和区域。Multi-Head Attention 则把 $Q,K,V$ 投影到多个子空间并行计算，再拼接各个 Head 的输出。论文使用 8 个 Head，每个 Head 的 $d_k=d_v=64$，总计算量与单个完整维度 Head 相近，却能同时关注不同位置关系与表示子空间。Encoder Self-Attention 的 $Q,K,V$ 都来自 Encoder，Decoder Masked Self-Attention 都来自已生成前缀，而 Cross-Attention 的 Query 来自 Decoder、Key 和 Value 来自 Encoder 输出。&lt;/p&gt;
&lt;p&gt;由于网络本身没有顺序归纳偏置，输入 Embedding 还要加上不同频率的正弦、余弦 Positional Encoding。相较 RNN，每层 Self-Attention 的序列计算复杂度为 $O(n^2d)$，但顺序操作数和最大路径长度都是 $O(1)$；这使它特别适合 GPU 并行，也解释了其在长序列上内存开销较大的另一面。实验中 Transformer 在 WMT 2014 English-to-German 上达到 28.4 BLEU，在 English-to-French 上达到 41.8 BLEU，训练成本显著低于当时的循环与卷积强基线。更重要的是，这篇论文给出了可规模化的通用 Token 交互模块，后来的 BERT、GPT、ViT 与多模态大模型都可以看作对这一架构的不同取舍和扩展。&lt;/p&gt;
&lt;h2&gt;Diffusion&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/ddpm-forward-reverse-process.9kgwjhh7lu.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;DDPM 把生成建模写成一对方向相反的 Markov Chain。固定的 Forward Process 从真实样本 $x_0$ 出发，在第 $t$ 步加入少量高斯噪声：$q(x_t|x_{t-1})=\mathcal{N}(\sqrt{1-\beta_t}x_{t-1},\beta_t I)$；当步数足够多时，$x_T$ 接近标准高斯。学习到的 Reverse Process 则从 $x_T\sim\mathcal{N}(0,I)$ 开始，用 $p_\theta(x_{t-1}|x_t)$ 一步步恢复数据。只要每一步的 $\beta_t$ 足够小，反向条件分布也可以建模为高斯，从而把复杂的数据分布拆成许多简单的局部去噪问题。&lt;/p&gt;
&lt;p&gt;前向过程最关键的性质是可以跳过中间链条直接采样任意时刻：令 $\alpha_t=1-\beta_t$、$\bar\alpha_t=\prod_{s=1}^t\alpha_s$，则 $x_t=\sqrt{\bar\alpha_t}x_0+\sqrt{1-\bar\alpha_t}\epsilon$，其中 $\epsilon\sim\mathcal{N}(0,I)$。因此训练时不必真的执行 $t$ 次加噪，只需随机采样一个时间步和一份噪声即可构造 $x_t$。原始变分下界可以分解为相邻高斯后验之间的 KL 项；论文进一步把反向均值重新参数化为预测噪声 $\epsilon_\theta(x_t,t)$，最终得到简单目标 $L_{\text{simple}}=\mathbb{E}&lt;em&gt;{t,x_0,\epsilon}|\epsilon-\epsilon&lt;/em&gt;\theta(x_t,t)|^2$。这个 ε-prediction 目标是对标准变分下界的重新加权，实质上等价于在多个噪声尺度上进行 Denoising Score Matching。&lt;/p&gt;
&lt;p&gt;采样时先生成纯高斯噪声 $x_T$，然后按 $t=T,\ldots,1$ 反复用网络估计噪声、计算反向均值并加入对应方差的随机项，最终得到 $x_0$。论文所有实验使用 $T=1000$，$\beta_t$ 从 $10^{-4}$ 线性增加到 $0.02$；噪声预测器采用带 GroupNorm 的 U-Net，用正弦时间 Embedding 告知当前噪声尺度，并在 $16\times16$ 特征图上加入 Self-Attention。该参数化同时揭示了 DDPM 与 Annealed Langevin Dynamics 的联系：网络预测的噪声可以转换为不同尺度下的数据 Score，而反向链相当于一个由学习到的 Score 引导的随机去噪过程。&lt;/p&gt;
&lt;p&gt;实验中，使用 $L_{\text{simple}}$ 的无条件 CIFAR-10 模型达到 Inception Score 9.46 和 FID 3.17；在 CelebA-HQ 与 256×256 LSUN 上也生成了当时很强的样本。消融显示，直接优化完整变分下界能得到更好的负对数似然，但简化的 ε-prediction 目标明显提升视觉质量，说明 likelihood 与感知样本质量并不完全一致。DDPM 的主要代价是原始采样需要约 1000 次网络前向，速度远慢于 GAN；不过它证明了不依赖对抗训练的逐步去噪模型同样可以生成高质量图像，并奠定了后续快速采样、条件扩散和潜空间扩散的基础。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/62423081_p0_master1200.3ns7nvxp9b.webp"/><enclosure url="https://pic.hana0721.top/62423081_p0_master1200.3ns7nvxp9b.webp"/></item><item><title>Ubuntu OpenSSH 远程服务器配置教程</title><link>https://agusexp25.top/blog/openssh-server-setup</link><guid isPermaLink="true">https://agusexp25.top/blog/openssh-server-setup</guid><description>从安装 openssh-server 到公网访问、密钥登录、防火墙与安全加固，把一台 Ubuntu 配成可维护的 SSH 远程服务器。</description><pubDate>Mon, 01 Jun 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;有一台已经装好 Ubuntu 的机器后，最常见的下一步就是把它当作远端服务器使用：本地电脑通过 &lt;code&gt;ssh&lt;/code&gt; 登录，在服务器上跑代码、部署服务、传文件或远程开发。&lt;/p&gt;
&lt;p&gt;这篇文章整理一套从零开始的 OpenSSH 配置流程，目标是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;局域网内可以 SSH 登录&lt;/li&gt;
&lt;li&gt;公网或云服务器场景知道该放行哪些端口&lt;/li&gt;
&lt;li&gt;支持 SSH 密钥登录&lt;/li&gt;
&lt;li&gt;关闭高风险登录方式，减少被爆破的概率&lt;/li&gt;
&lt;li&gt;遇到连不上时能快速定位问题&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;默认环境：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;服务器：Ubuntu 22.04 / 24.04 或相近版本&lt;/li&gt;
&lt;li&gt;客户端：Linux / macOS / Windows PowerShell 均可&lt;/li&gt;
&lt;li&gt;SSH 服务端：OpenSSH Server&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;1. 安装 OpenSSH Server&lt;/h2&gt;
&lt;p&gt;在 Ubuntu 服务器上执行：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo apt update
sudo apt install -y openssh-server
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;安装完成后启动 SSH 服务，并设置开机自启：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo systemctl enable --now ssh
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;查看服务状态：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo systemctl status ssh
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果看到 &lt;code&gt;active (running)&lt;/code&gt;，说明 SSH 服务已经正常运行。&lt;/p&gt;
&lt;p&gt;也可以用下面的命令确认 22 端口是否在监听：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo ss -tlnp | grep &apos;:22&apos;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;正常情况下会看到类似：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:((&quot;sshd&quot;,pid=1234,fd=3))
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;2. 创建一个普通登录用户&lt;/h2&gt;
&lt;p&gt;如果你现在只是在本机上用安装系统时创建的用户，也可以直接用这个用户登录。&lt;br&gt;
如果这台机器之后要长期当服务器用，推荐单独创建一个普通用户。&lt;/p&gt;
&lt;p&gt;例如创建 &lt;code&gt;hana&lt;/code&gt; 用户：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo adduser hana
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果这个用户需要执行 &lt;code&gt;sudo&lt;/code&gt;：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo usermod -aG sudo hana
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;之后就可以用这个用户远程登录：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;ssh hana@服务器IP
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;不推荐直接用 &lt;code&gt;root&lt;/code&gt; 远程登录。服务器日常运维最好使用普通用户登录，需要管理员权限时再通过 &lt;code&gt;sudo&lt;/code&gt; 提权。&lt;/p&gt;
&lt;h2&gt;3. 查看服务器 IP&lt;/h2&gt;
&lt;h3&gt;局域网 IP&lt;/h3&gt;
&lt;p&gt;如果你只需要在同一个 Wi-Fi / 路由器 / 实验室内网里连接，先查看服务器的内网 IP：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;hostname -I
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;输出可能类似：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;192.168.1.20 172.17.0.1
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;一般使用 &lt;code&gt;192.168.x.x&lt;/code&gt;、&lt;code&gt;10.x.x.x&lt;/code&gt; 或 &lt;code&gt;172.16.x.x&lt;/code&gt; 到 &lt;code&gt;172.31.x.x&lt;/code&gt; 这一类地址。&lt;/p&gt;
&lt;p&gt;然后在本地电脑上连接：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;ssh hana@192.168.1.20
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;第一次连接时会看到主机指纹确认提示：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;Are you sure you want to continue connecting (yes/no/[fingerprint])?
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;确认 IP 没写错后输入：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;yes
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;之后再输入服务器用户密码即可登录。&lt;/p&gt;
&lt;h3&gt;公网 IP&lt;/h3&gt;
&lt;p&gt;如果是云服务器，公网 IP 通常在云厂商控制台里可以直接看到。&lt;/p&gt;
&lt;p&gt;如果是放在家里或实验室的物理机器，则需要区分两件事：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;机器自己的内网 IP，例如 &lt;code&gt;192.168.1.20&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;路由器对外的公网 IP&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;可以在服务器上查看对外出口 IP：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;curl ifconfig.me
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;但能看到公网 IP 不代表外部一定能连进来。很多校园网、公司网络、家庭宽带可能处在 NAT 后面，没有可直接访问的公网入口。&lt;/p&gt;
&lt;h2&gt;4. 开放防火墙端口&lt;/h2&gt;
&lt;p&gt;Ubuntu 常用防火墙是 &lt;code&gt;ufw&lt;/code&gt;。如果你启用了它，需要允许 SSH 流量。&lt;/p&gt;
&lt;p&gt;查看防火墙状态：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo ufw status
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;放行 OpenSSH：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo ufw allow OpenSSH
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;或者明确放行 22 端口：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo ufw allow 22/tcp
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果 &lt;code&gt;ufw&lt;/code&gt; 还没启用，可以启用它：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo ufw enable
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;再次确认：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo ufw status numbered
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果后面你把 SSH 改到了非默认端口，例如 &lt;code&gt;2222&lt;/code&gt;，记得提前放行新端口：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo ufw allow 2222/tcp
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;重点：先放行新端口，再改 SSH 配置。&lt;/strong&gt; 否则可能把自己锁在服务器外面。&lt;/p&gt;
&lt;h2&gt;5. 从本地电脑连接服务器&lt;/h2&gt;
&lt;p&gt;最基本的 SSH 命令格式是：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;ssh 用户名@服务器IP
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;例如：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;ssh hana@192.168.1.20
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果 SSH 服务不是默认的 22 端口，需要加 &lt;code&gt;-p&lt;/code&gt;：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;ssh -p 2222 hana@192.168.1.20
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Windows PowerShell、macOS Terminal、Linux Terminal 都可以直接使用这个命令。&lt;br&gt;
如果 Windows 提示找不到 &lt;code&gt;ssh&lt;/code&gt;，可以在系统设置的“可选功能”里安装 OpenSSH Client。&lt;/p&gt;
&lt;h2&gt;6. 配置 SSH 密钥登录&lt;/h2&gt;
&lt;p&gt;密码登录能用，但不适合长期暴露在公网。更推荐使用 SSH 密钥。&lt;/p&gt;
&lt;h3&gt;6.1 在本地电脑生成密钥&lt;/h3&gt;
&lt;p&gt;在本地电脑执行，不是在服务器上执行：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;ssh-keygen -t ed25519 -C &quot;your_email@example.com&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;默认会生成：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;私钥：&lt;code&gt;~/.ssh/id_ed25519&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;公钥：&lt;code&gt;~/.ssh/id_ed25519.pub&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;看到 passphrase 提示时：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;想安全一些：设置一个私钥密码&lt;/li&gt;
&lt;li&gt;想省事：直接回车留空&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;更推荐设置 passphrase，然后配合 &lt;code&gt;ssh-agent&lt;/code&gt; 使用。&lt;/p&gt;
&lt;h3&gt;6.2 把公钥上传到服务器&lt;/h3&gt;
&lt;p&gt;Linux / macOS 通常可以直接用：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;ssh-copy-id -i ~/.ssh/id_ed25519.pub hana@192.168.1.20
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果服务器端口不是 22：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;ssh-copy-id -i ~/.ssh/id_ed25519.pub -p 2222 hana@192.168.1.20
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Windows PowerShell 没有 &lt;code&gt;ssh-copy-id&lt;/code&gt; 时，可以手动追加公钥：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-powershell&quot;&gt;type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh hana@192.168.1.20 &quot;mkdir -p ~/.ssh &amp;#x26;&amp;#x26; cat &gt;&gt; ~/.ssh/authorized_keys &amp;#x26;&amp;#x26; chmod 700 ~/.ssh &amp;#x26;&amp;#x26; chmod 600 ~/.ssh/authorized_keys&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;上传完成后测试密钥登录：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;ssh hana@192.168.1.20
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果不再要求输入服务器用户密码，说明密钥登录已经生效。&lt;br&gt;
如果你设置了私钥 passphrase，系统可能会要求输入私钥密码，这是正常的。&lt;/p&gt;
&lt;h2&gt;7. 配置本地 SSH 别名&lt;/h2&gt;
&lt;p&gt;每次输入 &lt;code&gt;ssh -p 2222 hana@1.2.3.4&lt;/code&gt; 很麻烦，可以在本地电脑配置 &lt;code&gt;~/.ssh/config&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;Linux / macOS：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;nano ~/.ssh/config
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Windows：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-powershell&quot;&gt;notepad $env:USERPROFILE\.ssh\config
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;添加：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-ssh-config&quot;&gt;Host my-server
  HostName 192.168.1.20
  User hana
  Port 22
  IdentityFile ~/.ssh/id_ed25519
  ServerAliveInterval 60
  ServerAliveCountMax 5
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;之后直接连接：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;ssh my-server
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果是 Windows，也可以把私钥路径写成：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-ssh-config&quot;&gt;IdentityFile C:/Users/YourName/.ssh/id_ed25519
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这套配置对 &lt;code&gt;scp&lt;/code&gt;、&lt;code&gt;rsync&lt;/code&gt;、VSCode Remote SSH 也都有效。&lt;/p&gt;
&lt;h2&gt;8. 公网访问需要额外做什么&lt;/h2&gt;
&lt;p&gt;局域网能连，不代表公网能连。公网访问取决于你的机器放在哪里。&lt;/p&gt;
&lt;h3&gt;云服务器&lt;/h3&gt;
&lt;p&gt;云服务器通常需要检查三层：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Ubuntu 里的 SSH 服务是否正常运行&lt;/li&gt;
&lt;li&gt;Ubuntu 防火墙是否放行 SSH 端口&lt;/li&gt;
&lt;li&gt;云厂商安全组是否放行 SSH 端口&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;云厂商安全组里至少需要一条入站规则：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;协议：TCP
端口：22 或你的自定义端口
来源：你的本地公网 IP，或临时使用 0.0.0.0/0
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;更安全的做法是只允许自己的公网 IP，而不是长期开放给所有地址。&lt;/p&gt;
&lt;h3&gt;家里或实验室物理机&lt;/h3&gt;
&lt;p&gt;如果服务器在路由器后面，需要在路由器里设置端口转发：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;公网 TCP 2222 -&gt; 192.168.1.20:22
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;外部连接时写：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;ssh -p 2222 hana@你的公网IP
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这里推荐把公网端口设成 &lt;code&gt;2222&lt;/code&gt; 这类非默认端口，再转发到内网的 &lt;code&gt;22&lt;/code&gt; 端口。&lt;br&gt;
这不能替代密钥和安全配置，但可以减少一些默认端口扫描噪音。&lt;/p&gt;
&lt;p&gt;如果你的网络没有公网 IP，或者被校园网 / 公司网 NAT 隔离，可以考虑：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Tailscale / ZeroTier 这类内网穿透组网工具&lt;/li&gt;
&lt;li&gt;WireGuard 自建 VPN&lt;/li&gt;
&lt;li&gt;云服务器反向 SSH 隧道&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;不要为了省事把路由器后台、服务器密码登录和弱密码一起暴露到公网。&lt;/p&gt;
&lt;h2&gt;9. 安全加固 SSH 服务端&lt;/h2&gt;
&lt;p&gt;确认密钥登录已经成功后，再进行安全加固。&lt;/p&gt;
&lt;p&gt;Ubuntu 的 OpenSSH 配置主文件是：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;/etc/ssh/sshd_config
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;更推荐把本地自定义配置放到：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;/etc/ssh/sshd_config.d/99-local.conf
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这样以后系统升级时更清晰。&lt;/p&gt;
&lt;p&gt;创建配置文件：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo nano /etc/ssh/sshd_config.d/99-local.conf
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;写入：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-ssh-config&quot;&gt;PermitRootLogin no
PubkeyAuthentication yes
PasswordAuthentication no
KbdInteractiveAuthentication no
X11Forwarding no
AllowUsers hana
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;含义：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;PermitRootLogin no&lt;/code&gt;：禁止 root 远程登录&lt;/li&gt;
&lt;li&gt;&lt;code&gt;PubkeyAuthentication yes&lt;/code&gt;：允许公钥登录&lt;/li&gt;
&lt;li&gt;&lt;code&gt;PasswordAuthentication no&lt;/code&gt;：禁止密码登录&lt;/li&gt;
&lt;li&gt;&lt;code&gt;KbdInteractiveAuthentication no&lt;/code&gt;：关闭键盘交互式密码认证&lt;/li&gt;
&lt;li&gt;&lt;code&gt;X11Forwarding no&lt;/code&gt;：关闭不常用的图形转发&lt;/li&gt;
&lt;li&gt;&lt;code&gt;AllowUsers hana&lt;/code&gt;：只允许指定用户登录&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果你有多个用户，可以写成：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-ssh-config&quot;&gt;AllowUsers hana deploy ubuntu
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;保存后先检查配置语法：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo sshd -t
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;没有输出通常表示语法正确。然后重载 SSH：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo systemctl reload ssh
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;不要立刻关闭当前 SSH 窗口。&lt;/strong&gt;&lt;br&gt;
请打开一个新的终端窗口，再测试一次：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;ssh my-server
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;确认新连接可以登录后，再退出旧连接。&lt;/p&gt;
&lt;h2&gt;10. 是否需要修改默认端口&lt;/h2&gt;
&lt;p&gt;修改默认端口不是必须项。它不能真正替代密钥登录和防火墙策略，但能减少自动化扫描日志。&lt;/p&gt;
&lt;p&gt;如果要把 SSH 端口改成 &lt;code&gt;2222&lt;/code&gt;，先放行新端口：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo ufw allow 2222/tcp
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;然后编辑本地配置文件：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo nano /etc/ssh/sshd_config.d/99-local.conf
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;添加或修改：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-ssh-config&quot;&gt;Port 2222
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;检查配置并重载：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo sshd -t
sudo systemctl reload ssh
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;新开一个终端测试：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;ssh -p 2222 hana@服务器IP
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;确认新端口可用后，再考虑删除旧的防火墙规则。&lt;/p&gt;
&lt;h2&gt;11. 安装 fail2ban（可选）&lt;/h2&gt;
&lt;p&gt;如果服务器必须暴露在公网，并且你还保留了密码登录，建议至少安装 &lt;code&gt;fail2ban&lt;/code&gt;。&lt;br&gt;
即使已经关闭密码登录，&lt;code&gt;fail2ban&lt;/code&gt; 也可以减少日志里的暴力扫描噪音。&lt;/p&gt;
&lt;p&gt;安装：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo apt update
sudo apt install -y fail2ban
sudo systemctl enable --now fail2ban
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;查看状态：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo systemctl status fail2ban
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;查看 SSH jail：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo fail2ban-client status sshd
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果只是内网服务器，可以先不装，避免引入额外变量。&lt;/p&gt;
&lt;h2&gt;12. 常见问题排查&lt;/h2&gt;
&lt;h3&gt;12.1 Connection timed out&lt;/h3&gt;
&lt;p&gt;一般是网络路径不通，重点检查：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;IP 是否写对&lt;/li&gt;
&lt;li&gt;端口是否写对&lt;/li&gt;
&lt;li&gt;服务器是否开机&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ufw&lt;/code&gt; 是否放行&lt;/li&gt;
&lt;li&gt;云服务器安全组是否放行&lt;/li&gt;
&lt;li&gt;路由器端口转发是否正确&lt;/li&gt;
&lt;li&gt;是否处在不可入站的 NAT 网络后面&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;服务器上看端口监听：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo ss -tlnp | grep ssh
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;本地测试端口连通性：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;nc -vz 服务器IP 22
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Windows PowerShell 可以用：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-powershell&quot;&gt;Test-NetConnection 服务器IP -Port 22
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;12.2 Connection refused&lt;/h3&gt;
&lt;p&gt;通常说明网络到了服务器，但目标端口没有服务在监听。检查：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo systemctl status ssh
sudo ss -tlnp | grep &apos;:22&apos;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果 SSH 没启动：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo systemctl restart ssh
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;12.3 Permission denied&lt;/h3&gt;
&lt;p&gt;这类错误通常是认证失败。检查：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;用户名是否正确&lt;/li&gt;
&lt;li&gt;公钥是否写入服务器的 &lt;code&gt;~/.ssh/authorized_keys&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;服务器是否禁用了密码登录&lt;/li&gt;
&lt;li&gt;本地是否用了正确的私钥&lt;/li&gt;
&lt;li&gt;&lt;code&gt;~/.ssh&lt;/code&gt; 权限是否正确&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;在服务器上修复权限：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;在本地指定私钥测试：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;ssh -i ~/.ssh/id_ed25519 hana@服务器IP
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;12.4 改配置后彻底连不上&lt;/h3&gt;
&lt;p&gt;如果是云服务器，优先使用云厂商控制台的 VNC / Web Terminal 登录修复。&lt;br&gt;
如果是物理机，需要接显示器或通过管理口进入。&lt;/p&gt;
&lt;p&gt;常见恢复动作：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo sshd -t
sudo systemctl status ssh
sudo nano /etc/ssh/sshd_config.d/99-local.conf
sudo systemctl reload ssh
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;所以修改 SSH 配置时，一定要遵守这个顺序：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;保留当前 SSH 会话&lt;/li&gt;
&lt;li&gt;修改配置&lt;/li&gt;
&lt;li&gt;执行 &lt;code&gt;sudo sshd -t&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;执行 &lt;code&gt;sudo systemctl reload ssh&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;新开终端测试新连接&lt;/li&gt;
&lt;li&gt;确认无误后再关闭旧会话&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;13. 一套推荐的最终配置&lt;/h2&gt;
&lt;p&gt;如果是个人长期使用的 Ubuntu 服务器，我通常会采用：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;普通用户登录，不允许 root 登录&lt;/li&gt;
&lt;li&gt;SSH 密钥登录&lt;/li&gt;
&lt;li&gt;禁止密码登录&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ufw&lt;/code&gt; 只放行必要端口&lt;/li&gt;
&lt;li&gt;云服务器安全组只允许自己的 IP 访问 SSH&lt;/li&gt;
&lt;li&gt;本地配置 &lt;code&gt;~/.ssh/config&lt;/code&gt; 别名&lt;/li&gt;
&lt;li&gt;长任务放在 &lt;code&gt;tmux&lt;/code&gt; 里跑&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;最小可用服务端配置：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-ssh-config&quot;&gt;PermitRootLogin no
PubkeyAuthentication yes
PasswordAuthentication no
KbdInteractiveAuthentication no
X11Forwarding no
AllowUsers hana
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;本地客户端配置：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-ssh-config&quot;&gt;Host my-server
  HostName 服务器IP
  User hana
  Port 22
  IdentityFile ~/.ssh/id_ed25519
  ServerAliveInterval 60
  ServerAliveCountMax 5
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;以后连接只需要：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;ssh my-server
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;到这里，这台 Ubuntu 机器就已经可以作为一台基础远端服务器使用了。后续可以继续接上 VSCode Remote SSH、&lt;code&gt;scp&lt;/code&gt;、&lt;code&gt;rsync&lt;/code&gt;、&lt;code&gt;tmux&lt;/code&gt; 等工具，形成完整的远程开发工作流。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/145491169_p0_master1200.2dpccm5v9t.webp"/><enclosure url="https://pic.hana0721.top/145491169_p0_master1200.2dpccm5v9t.webp"/></item><item><title>Vim 详细使用教程：从入门到高频操作</title><link>https://agusexp25.top/blog/vim-detailed-guide</link><guid isPermaLink="true">https://agusexp25.top/blog/vim-detailed-guide</guid><description>一篇系统化 Vim 教程，覆盖模式切换、移动、编辑、复制粘贴、查找替换、可视模式、宏、寄存器与常用配置。</description><pubDate>Wed, 22 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;如果你经常在 Linux 服务器、终端或 SSH 环境里工作，&lt;code&gt;Vim&lt;/code&gt; 仍然是最值得掌握的编辑器之一。&lt;/p&gt;
&lt;p&gt;它的学习曲线确实比普通文本编辑器陡，但一旦掌握核心操作，你会明显感受到两个变化：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;手不用频繁离开键盘&lt;/li&gt;
&lt;li&gt;编辑速度和文本控制力都会上一个台阶&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这篇教程按“先能独立编辑文件，再逐步提升效率”的顺序来讲，尽量把高频操作一次讲清楚。&lt;/p&gt;
&lt;h2&gt;1. Vim 是什么，适合什么场景&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;Vim&lt;/code&gt; 是一个以键盘操作为核心的文本编辑器，尤其适合：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;远程服务器上快速改配置&lt;/li&gt;
&lt;li&gt;在终端里直接编辑代码或脚本&lt;/li&gt;
&lt;li&gt;处理大量文本、日志、配置文件&lt;/li&gt;
&lt;li&gt;希望减少鼠标依赖的人&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果你只是偶尔改一两行文本，图形编辑器当然更直观；但如果你经常 SSH 到远端机器，&lt;code&gt;Vim&lt;/code&gt; 基本属于必备技能。&lt;/p&gt;
&lt;h2&gt;2. 安装与启动&lt;/h2&gt;
&lt;p&gt;Ubuntu / Debian:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo apt update
sudo apt install -y vim
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;CentOS / RHEL:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo yum install -y vim
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;macOS (Homebrew):&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;brew install vim
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;查看版本：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;vim --version
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;打开文件：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;vim filename.txt
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果文件不存在，保存时会自动创建。&lt;/p&gt;
&lt;h2&gt;3. 先理解 Vim 的核心：模式&lt;/h2&gt;
&lt;p&gt;Vim 最重要的概念不是命令本身，而是&lt;strong&gt;模式&lt;/strong&gt;。&lt;/p&gt;
&lt;h3&gt;3.1 普通模式&lt;/h3&gt;
&lt;p&gt;打开 Vim 后默认进入普通模式。&lt;br&gt;
这个模式主要用于：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;移动光标&lt;/li&gt;
&lt;li&gt;删除、复制、粘贴&lt;/li&gt;
&lt;li&gt;搜索&lt;/li&gt;
&lt;li&gt;跳转&lt;/li&gt;
&lt;li&gt;执行命令&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;你可以把普通模式理解成“控制模式”。&lt;/p&gt;
&lt;h3&gt;3.2 插入模式&lt;/h3&gt;
&lt;p&gt;插入模式就是正常输入文字的模式。&lt;/p&gt;
&lt;p&gt;常见进入方式：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;i&lt;/code&gt;：在光标前插入&lt;/li&gt;
&lt;li&gt;&lt;code&gt;a&lt;/code&gt;：在光标后插入&lt;/li&gt;
&lt;li&gt;&lt;code&gt;I&lt;/code&gt;：跳到行首并插入&lt;/li&gt;
&lt;li&gt;&lt;code&gt;A&lt;/code&gt;：跳到行尾并插入&lt;/li&gt;
&lt;li&gt;&lt;code&gt;o&lt;/code&gt;：在下一行新开一行并插入&lt;/li&gt;
&lt;li&gt;&lt;code&gt;O&lt;/code&gt;：在上一行新开一行并插入&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;退出插入模式：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;按 &lt;code&gt;Esc&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;3.3 可视模式&lt;/h3&gt;
&lt;p&gt;可视模式用于选中文本。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;v&lt;/code&gt;：字符级选择&lt;/li&gt;
&lt;li&gt;&lt;code&gt;V&lt;/code&gt;：整行选择&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Ctrl+v&lt;/code&gt;：块选择（列编辑非常有用）&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;3.4 命令行模式&lt;/h3&gt;
&lt;p&gt;在普通模式下输入 &lt;code&gt;:&lt;/code&gt; 进入命令行模式，用于保存、退出、替换、设置选项等。&lt;/p&gt;
&lt;p&gt;例如：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-vim&quot;&gt;:w
:q
:wq
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;4. 第一次使用的最小闭环&lt;/h2&gt;
&lt;p&gt;你至少先记住这几步：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;vim test.txt&lt;/code&gt; 打开文件&lt;/li&gt;
&lt;li&gt;按 &lt;code&gt;i&lt;/code&gt; 进入插入模式&lt;/li&gt;
&lt;li&gt;输入内容&lt;/li&gt;
&lt;li&gt;按 &lt;code&gt;Esc&lt;/code&gt; 回到普通模式&lt;/li&gt;
&lt;li&gt;输入 &lt;code&gt;:wq&lt;/code&gt; 保存并退出&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;如果你不想保存：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-vim&quot;&gt;:q!
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果文件没改动，直接退出：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-vim&quot;&gt;:q
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;5. 光标移动：真正决定效率的部分&lt;/h2&gt;
&lt;p&gt;很多人学 Vim 只记编辑命令，但真正拉开差距的是移动。&lt;/p&gt;
&lt;h3&gt;5.1 基础移动&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;h&lt;/code&gt;：左&lt;/li&gt;
&lt;li&gt;&lt;code&gt;j&lt;/code&gt;：下&lt;/li&gt;
&lt;li&gt;&lt;code&gt;k&lt;/code&gt;：上&lt;/li&gt;
&lt;li&gt;&lt;code&gt;l&lt;/code&gt;：右&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这四个键是最基础的移动方式。&lt;/p&gt;
&lt;h3&gt;5.2 按单词移动&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;w&lt;/code&gt;：跳到下一个单词开头&lt;/li&gt;
&lt;li&gt;&lt;code&gt;b&lt;/code&gt;：跳到上一个单词开头&lt;/li&gt;
&lt;li&gt;&lt;code&gt;e&lt;/code&gt;：跳到当前或下一个单词末尾&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果你在代码里频繁移动，&lt;code&gt;w b e&lt;/code&gt; 比方向键高效很多。&lt;/p&gt;
&lt;h3&gt;5.3 按行移动&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;0&lt;/code&gt;：跳到行首&lt;/li&gt;
&lt;li&gt;&lt;code&gt;^&lt;/code&gt;：跳到本行第一个非空字符&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$&lt;/code&gt;：跳到行尾&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;5.4 按屏幕和文档移动&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;gg&lt;/code&gt;：跳到文件开头&lt;/li&gt;
&lt;li&gt;&lt;code&gt;G&lt;/code&gt;：跳到文件末尾&lt;/li&gt;
&lt;li&gt;&lt;code&gt;:10&lt;/code&gt;：跳到第 10 行&lt;/li&gt;
&lt;li&gt;&lt;code&gt;10G&lt;/code&gt;：跳到第 10 行&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Ctrl+d&lt;/code&gt;：向下翻半页&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Ctrl+u&lt;/code&gt;：向上翻半页&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Ctrl+f&lt;/code&gt;：向下翻一页&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Ctrl+b&lt;/code&gt;：向上翻一页&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;5.5 行内快速跳转&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;f{字符}&lt;/code&gt;：向右找到本行中下一个指定字符&lt;/li&gt;
&lt;li&gt;&lt;code&gt;F{字符}&lt;/code&gt;：向左找到本行中上一个指定字符&lt;/li&gt;
&lt;li&gt;&lt;code&gt;t{字符}&lt;/code&gt;：跳到目标字符前一位&lt;/li&gt;
&lt;li&gt;&lt;code&gt;T{字符}&lt;/code&gt;：跳到目标字符后一位&lt;/li&gt;
&lt;li&gt;&lt;code&gt;;&lt;/code&gt;：重复上一次 &lt;code&gt;f/F/t/T&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;,&lt;/code&gt;：反向重复&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;例如你想跳到这一行下一个 &lt;code&gt;)&lt;/code&gt;，直接按：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;f)
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;6. 编辑文本的高频操作&lt;/h2&gt;
&lt;h3&gt;6.1 删除&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;x&lt;/code&gt;：删除当前字符&lt;/li&gt;
&lt;li&gt;&lt;code&gt;dd&lt;/code&gt;：删除当前整行&lt;/li&gt;
&lt;li&gt;&lt;code&gt;dw&lt;/code&gt;：删除到下一个单词&lt;/li&gt;
&lt;li&gt;&lt;code&gt;d$&lt;/code&gt;：删除到行尾&lt;/li&gt;
&lt;li&gt;&lt;code&gt;d0&lt;/code&gt;：删除到行首&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;6.2 复制与粘贴&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;yy&lt;/code&gt;：复制当前行&lt;/li&gt;
&lt;li&gt;&lt;code&gt;yw&lt;/code&gt;：复制一个单词&lt;/li&gt;
&lt;li&gt;&lt;code&gt;p&lt;/code&gt;：在光标后粘贴&lt;/li&gt;
&lt;li&gt;&lt;code&gt;P&lt;/code&gt;：在光标前粘贴&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;6.3 修改&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;change&lt;/code&gt; 系列本质上是“删除后立刻进入插入模式”。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;cw&lt;/code&gt;：修改一个单词&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cc&lt;/code&gt;：修改整行&lt;/li&gt;
&lt;li&gt;&lt;code&gt;c$&lt;/code&gt;：从当前位置改到行尾&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;6.4 撤销与重做&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;u&lt;/code&gt;：撤销&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Ctrl+r&lt;/code&gt;：重做&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;6.5 重复上一次操作&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;.&lt;/code&gt;：重复上一次修改&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这是 Vim 里非常强的一个键。&lt;/p&gt;
&lt;p&gt;例如你刚执行过一次 &lt;code&gt;cw&lt;/code&gt; 把某个变量名改掉，接着移动到下一个变量，按 &lt;code&gt;.&lt;/code&gt; 就能重复同样的修改动作。&lt;/p&gt;
&lt;h2&gt;7. 数字前缀：批量操作的关键&lt;/h2&gt;
&lt;p&gt;Vim 大量命令都支持“数字 + 动作”。&lt;/p&gt;
&lt;p&gt;例如：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;3j&lt;/code&gt;：向下移动 3 行&lt;/li&gt;
&lt;li&gt;&lt;code&gt;5x&lt;/code&gt;：删除 5 个字符&lt;/li&gt;
&lt;li&gt;&lt;code&gt;3dd&lt;/code&gt;：删除 3 行&lt;/li&gt;
&lt;li&gt;&lt;code&gt;2yy&lt;/code&gt;：复制 2 行&lt;/li&gt;
&lt;li&gt;&lt;code&gt;4w&lt;/code&gt;：向前跳 4 个单词&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这个机制很重要，因为它能把重复操作压缩成一个动作。&lt;/p&gt;
&lt;h2&gt;8. 文本对象：Vim 真正强大的地方&lt;/h2&gt;
&lt;p&gt;文本对象的思路是：&lt;strong&gt;不是按字符编辑，而是按语义结构编辑&lt;/strong&gt;。&lt;/p&gt;
&lt;h3&gt;8.1 单词对象&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ciw&lt;/code&gt;：修改当前单词&lt;/li&gt;
&lt;li&gt;&lt;code&gt;diw&lt;/code&gt;：删除当前单词&lt;/li&gt;
&lt;li&gt;&lt;code&gt;yiw&lt;/code&gt;：复制当前单词&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这里的 &lt;code&gt;iw&lt;/code&gt; 是 &lt;code&gt;inner word&lt;/code&gt;。&lt;/p&gt;
&lt;h3&gt;8.2 括号对象&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ci(&lt;/code&gt;：修改圆括号里的内容&lt;/li&gt;
&lt;li&gt;&lt;code&gt;di(&lt;/code&gt;：删除圆括号里的内容&lt;/li&gt;
&lt;li&gt;&lt;code&gt;yi(&lt;/code&gt;：复制圆括号里的内容&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;8.3 引号对象&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ci&quot;&lt;/code&gt;：修改双引号内内容&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ci&apos;&lt;/code&gt;：修改单引号内内容&lt;/li&gt;
&lt;li&gt;输入 &lt;code&gt;ci&lt;/code&gt; 后再接反引号键：修改反引号内内容&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;例如：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;name = &quot;hana_blog&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;光标放在引号内部任意位置，按：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;ci&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;就会直接清空引号内内容并进入插入模式。&lt;/p&gt;
&lt;h3&gt;8.4 around 与 inner&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;i&lt;/code&gt;：inside / inner，不包括边界&lt;/li&gt;
&lt;li&gt;&lt;code&gt;a&lt;/code&gt;：around，包括边界&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;例如：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ci&quot;&lt;/code&gt;：只改引号内部内容&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ca&quot;&lt;/code&gt;：连引号一起替换&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;9. 可视模式：选中、缩进、批量编辑&lt;/h2&gt;
&lt;h3&gt;9.1 基础选择&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;v&lt;/code&gt; 进入字符选择&lt;/li&gt;
&lt;li&gt;&lt;code&gt;V&lt;/code&gt; 进入行选择&lt;/li&gt;
&lt;li&gt;选中后按 &lt;code&gt;d&lt;/code&gt; 删除、按 &lt;code&gt;y&lt;/code&gt; 复制、按 &lt;code&gt;&gt;&lt;/code&gt; 缩进、按 &lt;code&gt;&amp;#x3C;&lt;/code&gt; 反缩进&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;9.2 块选择&lt;/h3&gt;
&lt;p&gt;按 &lt;code&gt;Ctrl+v&lt;/code&gt; 进入块选择后，可以做列级编辑。&lt;/p&gt;
&lt;p&gt;常见场景：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;同时给多行前面加注释&lt;/li&gt;
&lt;li&gt;同时删除多行开头的相同前缀&lt;/li&gt;
&lt;li&gt;做整列对齐&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;例如给多行前面加 &lt;code&gt;#&lt;/code&gt;：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;Ctrl+v&lt;/code&gt; 选中多行的第一列&lt;/li&gt;
&lt;li&gt;按 &lt;code&gt;I&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;输入 &lt;code&gt;# &lt;/code&gt;&lt;/li&gt;
&lt;li&gt;按 &lt;code&gt;Esc&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Vim 会把这段内容批量插入到所有选中的行前面。&lt;/p&gt;
&lt;h2&gt;10. 搜索与替换&lt;/h2&gt;
&lt;h3&gt;10.1 搜索&lt;/h3&gt;
&lt;p&gt;向下搜索：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;/keyword
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;向上搜索：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;?keyword
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;搜索结果跳转：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;n&lt;/code&gt;：下一个&lt;/li&gt;
&lt;li&gt;&lt;code&gt;N&lt;/code&gt;：上一个&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;10.2 高亮与取消高亮&lt;/h3&gt;
&lt;p&gt;开启搜索高亮：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-vim&quot;&gt;:set hlsearch
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;取消当前高亮：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-vim&quot;&gt;:nohlsearch
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;10.3 替换&lt;/h3&gt;
&lt;p&gt;替换当前行第一个匹配：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-vim&quot;&gt;:s/old/new/
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;替换当前行所有匹配：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-vim&quot;&gt;:s/old/new/g
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;替换全文所有匹配：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-vim&quot;&gt;:%s/old/new/g
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;替换全文并逐个确认：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-vim&quot;&gt;:%s/old/new/gc
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这里的 &lt;code&gt;c&lt;/code&gt; 表示 confirm。&lt;/p&gt;
&lt;h2&gt;11. 多文件与多窗口操作&lt;/h2&gt;
&lt;h3&gt;11.1 同时打开多个文件&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;vim file1.txt file2.txt
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;在 Vim 内切换缓冲区：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;:bn&lt;/code&gt;：下一个 buffer&lt;/li&gt;
&lt;li&gt;&lt;code&gt;:bp&lt;/code&gt;：上一个 buffer&lt;/li&gt;
&lt;li&gt;&lt;code&gt;:ls&lt;/code&gt;：查看 buffer 列表&lt;/li&gt;
&lt;li&gt;&lt;code&gt;:b 2&lt;/code&gt;：跳到第 2 个 buffer&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;11.2 分屏&lt;/h3&gt;
&lt;p&gt;水平分屏：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-vim&quot;&gt;:split
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;垂直分屏：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-vim&quot;&gt;:vsplit
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;打开指定文件：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-vim&quot;&gt;:split another.txt
:vsplit another.txt
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;窗口切换：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Ctrl+w&lt;/code&gt; 然后 &lt;code&gt;h/j/k/l&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;关闭当前窗口：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-vim&quot;&gt;:q
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;11.3 标签页&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;:tabnew&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;:tabnext&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;:tabprev&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;:tabclose&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;不过对很多人来说，buffer + split 已经够用了。&lt;/p&gt;
&lt;h2&gt;12. 寄存器：理解复制粘贴背后的机制&lt;/h2&gt;
&lt;p&gt;Vim 的复制、删除内容其实会进入寄存器。&lt;/p&gt;
&lt;p&gt;查看寄存器：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-vim&quot;&gt;:registers
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;常见寄存器：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&quot;&lt;/code&gt;：默认寄存器&lt;/li&gt;
&lt;li&gt;&lt;code&gt;0&lt;/code&gt;：最近一次复制内容&lt;/li&gt;
&lt;li&gt;&lt;code&gt;%&lt;/code&gt;：当前文件名&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/&lt;/code&gt;：最近一次搜索内容&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;指定寄存器复制：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;&quot;ayy
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;表示把当前行复制到 &lt;code&gt;a&lt;/code&gt; 寄存器。&lt;/p&gt;
&lt;p&gt;从 &lt;code&gt;a&lt;/code&gt; 寄存器粘贴：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;&quot;ap
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果你经常复制一段内容，期间又做了删除操作，寄存器会非常有用。&lt;/p&gt;
&lt;h2&gt;13. 宏：把重复编辑自动化&lt;/h2&gt;
&lt;p&gt;宏适合处理“同一种编辑动作重复很多次”的场景。&lt;/p&gt;
&lt;h3&gt;13.1 录制宏&lt;/h3&gt;
&lt;p&gt;按：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;qa
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;表示开始录制到寄存器 &lt;code&gt;a&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;完成操作后按：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;q
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;结束录制。&lt;/p&gt;
&lt;h3&gt;13.2 执行宏&lt;/h3&gt;
&lt;p&gt;执行一次：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;@a
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;执行 10 次：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;10@a
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;举例：如果你有很多格式相似的行，需要逐行插入固定前缀或做相同替换，宏会比手工操作快很多。&lt;/p&gt;
&lt;h2&gt;14. 实用命令汇总&lt;/h2&gt;
&lt;p&gt;保存：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-vim&quot;&gt;:w
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;另存为：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-vim&quot;&gt;:w newfile.txt
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;退出：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-vim&quot;&gt;:q
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;保存并退出：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-vim&quot;&gt;:wq
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;强制退出不保存：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-vim&quot;&gt;:q!
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;显示行号：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-vim&quot;&gt;:set number
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;显示相对行号：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-vim&quot;&gt;:set relativenumber
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;开启语法高亮：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-vim&quot;&gt;:syntax on
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;15. 推荐的基础配置&lt;/h2&gt;
&lt;p&gt;你可以先从一个最小 &lt;code&gt;.vimrc&lt;/code&gt; 开始：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-vim&quot;&gt;set number
set relativenumber
set tabstop=2
set shiftwidth=2
set expandtab
set autoindent
set hlsearch
set incsearch
set ignorecase
set smartcase
syntax on
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;配置文件位置通常是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Linux / macOS: &lt;code&gt;~/.vimrc&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这套配置的作用分别是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;显示绝对行号与相对行号&lt;/li&gt;
&lt;li&gt;Tab 宽度设为 2&lt;/li&gt;
&lt;li&gt;用空格代替 Tab&lt;/li&gt;
&lt;li&gt;自动缩进&lt;/li&gt;
&lt;li&gt;搜索时高亮、增量显示&lt;/li&gt;
&lt;li&gt;搜索默认忽略大小写，但如果输入大写则大小写敏感&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;16. 新手最容易踩的坑&lt;/h2&gt;
&lt;h3&gt;16.1 忘记自己还在插入模式&lt;/h3&gt;
&lt;p&gt;一旦发现快捷键都不生效，第一反应先按 &lt;code&gt;Esc&lt;/code&gt;，回到普通模式再说。&lt;/p&gt;
&lt;h3&gt;16.2 不会退出&lt;/h3&gt;
&lt;p&gt;这个几乎是每个 Vim 新手都踩过的坑。记住：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;:q!&lt;/code&gt; 不保存退出&lt;/li&gt;
&lt;li&gt;&lt;code&gt;:wq&lt;/code&gt; 保存退出&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;16.3 只会用方向键&lt;/h3&gt;
&lt;p&gt;如果一直依赖方向键，你会很难真正体会 Vim 的效率。&lt;br&gt;
至少先强迫自己多用：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;hjkl&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;w b e&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;0 ^ $&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;gg G&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;16.4 把 Vim 当普通编辑器硬用&lt;/h3&gt;
&lt;p&gt;Vim 的效率来自“动作组合”，不是单个命令。&lt;/p&gt;
&lt;p&gt;比如下面这些都应该当成组合去理解：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ciw&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;d$&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;yi(&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;3dd&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;:%s/old/new/gc&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;17. 一条推荐学习路径&lt;/h2&gt;
&lt;p&gt;如果你不想一次记太多，可以按这个顺序学：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;先学进入 / 退出插入模式：&lt;code&gt;i a o Esc&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;再学保存退出：&lt;code&gt;:w :q :wq :q!&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;再学基础移动：&lt;code&gt;hjkl w b 0 $ gg G&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;再学删除复制粘贴：&lt;code&gt;x dd yy p u&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;再学高频组合：&lt;code&gt;ciw dw cw .&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;最后学搜索替换、可视块、寄存器、宏&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;这样会比一次背完整命令表更容易真正用起来。&lt;/p&gt;
&lt;h2&gt;18. 结语&lt;/h2&gt;
&lt;p&gt;Vim 最难的不是命令本身，而是接受它的编辑思维：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;普通模式负责控制&lt;/li&gt;
&lt;li&gt;插入模式只负责输入&lt;/li&gt;
&lt;li&gt;大部分高效操作都来自“动作 + 对象”的组合&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;当你开始习惯 &lt;code&gt;ciw&lt;/code&gt;、&lt;code&gt;dd&lt;/code&gt;、&lt;code&gt;p&lt;/code&gt;、&lt;code&gt;.&lt;/code&gt;、&lt;code&gt;/&lt;/code&gt;、&lt;code&gt;:%s///gc&lt;/code&gt; 这类操作后，很多文本编辑任务会变得非常顺手。&lt;/p&gt;
&lt;p&gt;如果你正在服务器上工作，最值得先练熟的不是全部功能，而是下面这组最小集合：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;i  a  o  Esc
:wq  :q!
hjkl  w  b  0  $
dd  yy  p  u
/  n  N
ciw  cw  .
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;把这些练熟，再继续扩展到可视块、宏和寄存器，Vim 就会开始真正好用起来。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/99213551_p0_master1200.4jopcsx1ya.webp"/><enclosure url="https://pic.hana0721.top/99213551_p0_master1200.4jopcsx1ya.webp"/></item><item><title>共享服务器下 Git 版本管理实战（Linux/macOS/Windows）</title><link>https://agusexp25.top/blog/shared-server-git-ssh-workflow</link><guid isPermaLink="true">https://agusexp25.top/blog/shared-server-git-ssh-workflow</guid><description>适用于多人共用 Linux 账号：安全配置 Git 身份、SSH 转发并完成远程推送，附 macOS/Windows 对照步骤。</description><pubDate>Wed, 22 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;这个场景非常典型：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;代码仓库：&lt;code&gt;https://github.com/your-username/your-repo.git&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;服务器：固定为 Linux&lt;/li&gt;
&lt;li&gt;使用方式：多人共用同一个 Linux 系统用户&lt;/li&gt;
&lt;li&gt;本地电脑：可能是 Linux / macOS / Windows&lt;/li&gt;
&lt;li&gt;目标：既要规范用 Git 管理版本，又不能把个人凭证留在共享机器上&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这篇教程把完整流程整理成可复用版本：所有仓库操作都在 Linux 服务器执行，本地电脑相关步骤按 Linux / macOS / Windows 分别给出命令。&lt;/p&gt;
&lt;h2&gt;一、先确认仓库状态（Linux 服务器）&lt;/h2&gt;
&lt;p&gt;先进入项目目录，确认当前分支、远程地址、工作区状态：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;cd /path/to/your/project
git branch --show-current
git remote -v
git status
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;预期重点：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;当前分支是 &lt;code&gt;main&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;origin&lt;/code&gt; 指向你的仓库&lt;/li&gt;
&lt;li&gt;先识别是否有不该提交的大目录（如 &lt;code&gt;checkpoints/&lt;/code&gt;、&lt;code&gt;outputs/&lt;/code&gt;、&lt;code&gt;external/&lt;/code&gt;）&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;二、先做提交边界清理：补 &lt;code&gt;.gitignore&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;这一步的目的不是“立刻提交”，而是先把实验产物和本地依赖从源码中隔离。&lt;/p&gt;
&lt;p&gt;示例（按你项目实际调整）：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-gitignore&quot;&gt;# local configs
configs/paths.sh

# experiment artifacts
checkpoints/
outputs/
logs/

# caches
data/
.cache/

# local external deps
external/
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;补完后再看状态：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git status
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果结果里主要剩下源码和文档改动，说明提交边界已经干净。&lt;/p&gt;
&lt;h2&gt;三、共享账号场景下的 Git 身份配置（只配当前仓库）&lt;/h2&gt;
&lt;p&gt;多人共用一个 Linux 用户时，不要用全局身份，避免污染他人项目。&lt;/p&gt;
&lt;p&gt;先做前置检查：&lt;code&gt;git config user.email&lt;/code&gt; 里要填的邮箱，必须先在 GitHub 账号里添加并完成验证。&lt;/p&gt;
&lt;p&gt;GitHub 邮箱设置路径：&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Settings&lt;/code&gt; -&gt; &lt;code&gt;Emails&lt;/code&gt; -&gt; &lt;code&gt;Add email address&lt;/code&gt; -&gt; &lt;code&gt;Verify&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;然后再回到服务器配置仓库级身份：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git config user.name &quot;your-github-username&quot;
git config user.email &quot;your-email@example.com&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;验证：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git config --get user.name
git config --get user.email
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;推荐原则：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;用仓库级配置（不加 &lt;code&gt;--global&lt;/code&gt;）&lt;/li&gt;
&lt;li&gt;不使用 &lt;code&gt;credential.helper store&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;不在共享机器长期保存个人 PAT/私钥&lt;/li&gt;
&lt;li&gt;如果开启了 GitHub 邮箱隐私策略，优先使用 GitHub 提供的 &lt;code&gt;noreply&lt;/code&gt; 邮箱做 &lt;code&gt;user.email&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;四、把远程切到 SSH&lt;/h2&gt;
&lt;p&gt;GitHub SSH URL 固定格式：&lt;/p&gt;
&lt;p&gt;&lt;code&gt;git@github.com:&amp;#x3C;用户名&gt;/&amp;#x3C;仓库名&gt;.git&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;例如：&lt;/p&gt;
&lt;p&gt;&lt;code&gt;git@github.com:your-username/your-repo.git&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;设置并验证：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git remote set-url origin git@github.com:your-username/your-repo.git
git remote -v
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;五、核心安全做法：用 SSH Agent Forwarding（不在服务器留私钥）&lt;/h2&gt;
&lt;h3&gt;5.1 在本地电脑准备 SSH key（按你的本机系统执行）&lt;/h3&gt;
&lt;p&gt;如果你本地还没有 key，先生成：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Linux / macOS&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;ssh-keygen -t ed25519 -C &quot;your-email@example.com&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;Windows（PowerShell）&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class=&quot;language-powershell&quot;&gt;ssh-keygen -t ed25519 -C &quot;your-email@example.com&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;加载 key 到 agent：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Linux / macOS&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;ssh-add ~/.ssh/id_ed25519
ssh-add -l
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;Windows（PowerShell）&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class=&quot;language-powershell&quot;&gt;Get-Service ssh-agent | Set-Service -StartupType Automatic
Start-Service ssh-agent
ssh-add $env:USERPROFILE\.ssh\id_ed25519
ssh-add -l
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;5.2 配置 SSH 别名并开启转发（本地电脑）&lt;/h3&gt;
&lt;p&gt;配置文件路径：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Linux / macOS：&lt;code&gt;~/.ssh/config&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Windows：&lt;code&gt;C:\Users\&amp;#x3C;你用户名&gt;\.ssh\config&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;配置示例：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-sshconfig&quot;&gt;Host &amp;#x3C;server-alias&gt;
  HostName &amp;#x3C;你的服务器IP或域名&gt;
  User &amp;#x3C;服务器用户名&gt;
  IdentityFile ~/.ssh/id_ed25519
  ForwardAgent yes
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;然后登录服务器（任意系统本机都一样）：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;ssh -A &amp;#x3C;server-alias&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;5.3 在 GitHub 账号里添加 SSH 公钥（关键主步骤）&lt;/h3&gt;
&lt;p&gt;先在本地电脑读取公钥（按你的本机系统执行）：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Linux / macOS&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;cat ~/.ssh/id_ed25519.pub
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;Windows（PowerShell）&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class=&quot;language-powershell&quot;&gt;Get-Content $env:USERPROFILE\.ssh\id_ed25519.pub
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;然后到 GitHub 网页完成绑定：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;右上角头像 -&gt; &lt;code&gt;Settings&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;左侧进入 &lt;code&gt;SSH and GPG keys&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;点击 &lt;code&gt;New SSH key&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Key type&lt;/code&gt; 选择 &lt;strong&gt;Authentication Key&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Title&lt;/code&gt; 填一个容易识别的名称（例如 &lt;code&gt;my-laptop-agent-forward&lt;/code&gt;）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Key&lt;/code&gt; 粘贴整行公钥&lt;/li&gt;
&lt;li&gt;点击 &lt;code&gt;Add SSH key&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;这一段必须完成，否则后面的 &lt;code&gt;ssh -T git@github.com&lt;/code&gt; 很可能出现 &lt;code&gt;Permission denied (publickey)&lt;/code&gt;。&lt;/p&gt;
&lt;h3&gt;5.4 在服务器上验证 agent 转发&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;ssh-add -l
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果能看到你本地 key 的指纹，说明转发已生效。&lt;/p&gt;
&lt;h2&gt;六、第一次连 GitHub 的认证与排错&lt;/h2&gt;
&lt;p&gt;在服务器上测试：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;ssh -T git@github.com
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;你遇到过的报错是：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;git@github.com: Permission denied (publickey).
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这通常表示“这把公钥还没绑定到目标 GitHub 账号”，不是服务器命令错了。&lt;/p&gt;
&lt;p&gt;解决步骤：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;确认你已经完成上面的 &lt;code&gt;Settings&lt;/code&gt; -&gt; &lt;code&gt;SSH and GPG keys&lt;/code&gt; -&gt; &lt;code&gt;New SSH key&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;检查粘贴的是完整公钥（包含开头 &lt;code&gt;ssh-ed25519&lt;/code&gt; 和中间长串内容）&lt;/li&gt;
&lt;li&gt;保存后重新测试：&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;ssh -T git@github.com
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;通过标志通常是类似：&lt;code&gt;Hi your-username! You&apos;ve successfully authenticated...&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;七、开始版本管理并推送&lt;/h2&gt;
&lt;p&gt;建议每个明确阶段做一次小提交：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git add &amp;#x3C;files&gt;
git commit -m &quot;feat: your change&quot;
git push origin main
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;针对你的这类实验项目，推荐把提交拆小：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;chore: add gitignore for artifacts and local deps&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;docs: add api compatibility notes&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;feat: add baseline scripts&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这样回滚和审阅都会轻松很多。&lt;/p&gt;
&lt;p&gt;如果 &lt;code&gt;git push&lt;/code&gt; 因邮箱策略被拒绝（常见于开启了 “Block command line pushes that expose my email”）：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;到 GitHub &lt;code&gt;Settings&lt;/code&gt; -&gt; &lt;code&gt;Emails&lt;/code&gt; 确认邮箱已验证，或复制你的 &lt;code&gt;noreply&lt;/code&gt; 邮箱&lt;/li&gt;
&lt;li&gt;在仓库重新设置：&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git config user.email &quot;your-noreply-email@users.noreply.github.com&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;ol start=&quot;3&quot;&gt;
&lt;li&gt;用新邮箱重做提交并推送：&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git commit --amend --reset-author --no-edit
git push origin main
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;八、共享机器最佳实践清单&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Git 身份用仓库级配置，不用全局。&lt;/li&gt;
&lt;li&gt;不把个人私钥长期放在共享 Linux 账号目录。&lt;/li&gt;
&lt;li&gt;不使用 &lt;code&gt;credential.helper store&lt;/code&gt; 明文落盘 PAT。&lt;/li&gt;
&lt;li&gt;用 &lt;code&gt;ssh -A&lt;/code&gt; 转发本地凭证，断开会话即失效。&lt;/li&gt;
&lt;li&gt;按功能阶段做小提交，避免把大文件和临时产物混入历史。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;结语&lt;/h2&gt;
&lt;p&gt;这套流程本质上做了两件事：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;把“代码版本管理”做规范（清晰提交边界 + 小步提交）&lt;/li&gt;
&lt;li&gt;把“共享账号安全”做正确（本地持有私钥 + 会话转发认证）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果后续你要继续在这个仓库迭代，直接复用这一套即可。&lt;/p&gt;</content:encoded><h:img src="https://Minakanmi-Yuki.github.io/picx-images-hosting/101003773_p0_master1200.3uvfruqg2c.webp"/><enclosure url="https://Minakanmi-Yuki.github.io/picx-images-hosting/101003773_p0_master1200.3uvfruqg2c.webp"/></item><item><title>用 scp 向远程服务器传送文件</title><link>https://agusexp25.top/blog/scp-upload-to-server</link><guid isPermaLink="true">https://agusexp25.top/blog/scp-upload-to-server</guid><description>一篇讲清 scp 文件上传的实用教程：基础命令、目录传输、自定义端口、SSH 密钥登录与常见报错排查。</description><pubDate>Wed, 22 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;code&gt;scp&lt;/code&gt; 是最常见的远程传文件命令之一。&lt;br&gt;
如果你已经能通过 &lt;code&gt;ssh&lt;/code&gt; 登录服务器，那么通常也可以直接用 &lt;code&gt;scp&lt;/code&gt; 把本地文件传到远程机器上。&lt;/p&gt;
&lt;p&gt;这篇文章只解决一个实际问题：&lt;strong&gt;如何把本地文件或目录上传到远程 Linux 服务器&lt;/strong&gt;。默认场景如下：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;本地电脑：Linux / macOS / Windows（PowerShell）&lt;/li&gt;
&lt;li&gt;远程机器：Linux 服务器&lt;/li&gt;
&lt;li&gt;远程登录方式：用户名 + IP（或域名）+ SSH 端口&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;1. &lt;code&gt;scp&lt;/code&gt; 最基本的命令格式&lt;/h2&gt;
&lt;p&gt;上传文件的基本写法是：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;scp 本地文件 用户名@服务器IP:远程路径
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;例如，把当前目录下的 &lt;code&gt;notes.txt&lt;/code&gt; 上传到服务器家目录：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;scp notes.txt username@192.168.1.20:~
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这条命令的含义：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;notes.txt&lt;/code&gt;：本地文件&lt;/li&gt;
&lt;li&gt;&lt;code&gt;username&lt;/code&gt;：远程服务器用户名&lt;/li&gt;
&lt;li&gt;&lt;code&gt;192.168.1.20&lt;/code&gt;：远程服务器 IP&lt;/li&gt;
&lt;li&gt;&lt;code&gt;~&lt;/code&gt;：远程用户家目录&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果服务器要求密码，执行后会提示你输入远程登录密码。&lt;/p&gt;
&lt;p&gt;如果你已经在本地 &lt;code&gt;~/.ssh/config&lt;/code&gt; 里给服务器配了 SSH 别名，那么这里也可以直接用别名替代 &lt;code&gt;username@服务器IP&lt;/code&gt;。例如：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;scp notes.txt my-server:~
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;2. 上传到指定目录&lt;/h2&gt;
&lt;p&gt;如果你想把文件上传到远程机器上的某个明确目录，可以直接写完整路径：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;scp notes.txt username@192.168.1.20:/home/username/uploads/
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;再比如上传一个压缩包：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;scp project.tar.gz username@192.168.1.20:/home/username/projects/
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;建议先确认远程目录确实存在，否则可能报错：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;ssh username@192.168.1.20 &quot;mkdir -p /home/username/projects&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;3. 上传目录而不是单个文件&lt;/h2&gt;
&lt;p&gt;如果要上传整个文件夹，需要加 &lt;code&gt;-r&lt;/code&gt;：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;scp -r my_project username@192.168.1.20:/home/username/projects/
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;说明：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-r&lt;/code&gt; 表示递归复制&lt;/li&gt;
&lt;li&gt;&lt;code&gt;my_project&lt;/code&gt; 可以是目录&lt;/li&gt;
&lt;li&gt;远程目标目录建议提前创建好&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果目录里文件较多，这个命令可能会执行一段时间。&lt;/p&gt;
&lt;h2&gt;4. 服务器不是 22 端口时怎么写&lt;/h2&gt;
&lt;p&gt;很多云服务器或实验室机器不会使用默认的 &lt;code&gt;22&lt;/code&gt; 端口。&lt;br&gt;
这时要用大写 &lt;code&gt;-P&lt;/code&gt; 指定端口：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;scp -P 2222 notes.txt username@192.168.1.20:/home/username/uploads/
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;注意这里是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;scp&lt;/code&gt; 用 &lt;code&gt;-P&lt;/code&gt; 指定端口&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ssh&lt;/code&gt; 通常用小写 &lt;code&gt;-p&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这两个地方很容易写混。&lt;/p&gt;
&lt;h2&gt;5. 使用 SSH 密钥上传&lt;/h2&gt;
&lt;p&gt;如果你的服务器用私钥登录，可以用 &lt;code&gt;-i&lt;/code&gt; 指定私钥文件：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;scp -i ~/.ssh/id_ed25519 notes.txt username@192.168.1.20:/home/username/uploads/
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果服务器端口也不是默认值，可以一起写：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;scp -P 2222 -i ~/.ssh/id_ed25519 notes.txt username@192.168.1.20:/home/username/uploads/
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果你已经在 &lt;code&gt;~/.ssh/config&lt;/code&gt; 里配置了 SSH Host 别名，那么命令可以进一步简化。&lt;/p&gt;
&lt;p&gt;例如配置：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-ssh-config&quot;&gt;Host my-server
  HostName 192.168.1.20
  User username
  Port 2222
  IdentityFile ~/.ssh/id_ed25519
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;之后就可以直接写：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;scp notes.txt my-server:/home/username/uploads/
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这个写法在日常使用里通常最省事。&lt;/p&gt;
&lt;h2&gt;6. Windows / macOS / Linux 上是否都能用&lt;/h2&gt;
&lt;h3&gt;Linux / macOS&lt;/h3&gt;
&lt;p&gt;终端里通常直接可用：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;scp -V
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Windows&lt;/h3&gt;
&lt;p&gt;Windows 10 / 11 一般自带 OpenSSH Client，可以在 PowerShell 里直接执行：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-powershell&quot;&gt;scp .\notes.txt username@192.168.1.20:/home/username/uploads/
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果提示 &lt;code&gt;scp&lt;/code&gt; 不是内部或外部命令，先检查 OpenSSH Client 是否已安装。&lt;/p&gt;
&lt;h2&gt;7. 文件名带空格时怎么处理&lt;/h2&gt;
&lt;p&gt;如果本地文件名里有空格，建议加引号：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;scp &quot;my notes.txt&quot; username@192.168.1.20:/home/username/uploads/
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果远程目录路径里有空格，也建议整体加引号：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;scp notes.txt &quot;username@192.168.1.20:/home/username/my uploads/&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;最稳妥的做法仍然是：&lt;strong&gt;文件名和目录名尽量避免空格&lt;/strong&gt;。&lt;/p&gt;
&lt;h2&gt;8. 如何确认上传成功&lt;/h2&gt;
&lt;p&gt;上传完成后，可以登录服务器检查：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;ssh username@192.168.1.20
ls -lh /home/username/uploads/
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;也可以直接一条命令验证：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;ssh username@192.168.1.20 &quot;ls -lh /home/username/uploads/&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果你上传的是目录，也可以用：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;ssh username@192.168.1.20 &quot;du -sh /home/username/projects/my_project&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;9. 常见报错与处理&lt;/h2&gt;
&lt;h3&gt;&lt;code&gt;ssh: connect to host ... port ...: Connection refused&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;通常说明：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;IP 或域名写错&lt;/li&gt;
&lt;li&gt;端口写错&lt;/li&gt;
&lt;li&gt;远程服务器 SSH 服务没开&lt;/li&gt;
&lt;li&gt;防火墙没有放行对应端口&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;优先检查你是否能先正常执行：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;ssh username@192.168.1.20
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;或者：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;ssh -p 2222 username@192.168.1.20
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;&lt;code&gt;Permission denied&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;通常有两种情况：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;用户名、密码或私钥不对&lt;/li&gt;
&lt;li&gt;你没有目标目录的写权限&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;先确认登录是否正常，再确认上传目标是否是你有权限写入的位置，例如：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;/home/username/&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/home/username/uploads/&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;~/projects/&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;不要一开始就传到 &lt;code&gt;/root/&lt;/code&gt; 或系统目录。&lt;/p&gt;
&lt;h3&gt;&lt;code&gt;No such file or directory&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;通常表示：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;本地文件路径写错&lt;/li&gt;
&lt;li&gt;远程目标目录不存在&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;处理方式：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;本地先 &lt;code&gt;ls&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;远程先 &lt;code&gt;ssh&lt;/code&gt; 登录确认目录&lt;/li&gt;
&lt;li&gt;需要时先执行 &lt;code&gt;mkdir -p&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;10. 实用命令速查&lt;/h2&gt;
&lt;p&gt;上传单个文件：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;scp file.txt username@server:~
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;上传到指定目录：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;scp file.txt username@server:/home/username/uploads/
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;上传整个目录：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;scp -r mydir username@server:/home/username/projects/
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;指定端口：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;scp -P 2222 file.txt username@server:/home/username/uploads/
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;指定私钥：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;scp -i ~/.ssh/id_ed25519 file.txt username@server:/home/username/uploads/
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;使用 SSH Host 别名：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;scp file.txt my-server:/home/username/uploads/
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;11. 什么时候不建议继续用 &lt;code&gt;scp&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;scp&lt;/code&gt; 很适合：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;临时上传文件&lt;/li&gt;
&lt;li&gt;上传脚本、压缩包、配置文件&lt;/li&gt;
&lt;li&gt;快速把本地项目丢到服务器上&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;但如果你要：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;长时间断点续传&lt;/li&gt;
&lt;li&gt;大量文件同步&lt;/li&gt;
&lt;li&gt;频繁增量更新目录&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;那么通常更推荐 &lt;code&gt;rsync&lt;/code&gt;。&lt;/p&gt;
&lt;h2&gt;12. 一句话总结&lt;/h2&gt;
&lt;p&gt;记住这一条就够你先用起来：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;scp 本地文件 用户名@服务器IP:远程路径
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果再多记两个参数：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-r&lt;/code&gt;：传目录&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-P&lt;/code&gt;：指定端口&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;大多数 &lt;code&gt;scp&lt;/code&gt; 上传场景就已经能覆盖了。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/93990522_p0_master1200.et40soxif.webp"/><enclosure url="https://pic.hana0721.top/93990522_p0_master1200.et40soxif.webp"/></item><item><title>纯 SSH 服务器配置 RustDesk（命令行方案）</title><link>https://agusexp25.top/blog/rustdesk-cli-server-setup</link><guid isPermaLink="true">https://agusexp25.top/blog/rustdesk-cli-server-setup</guid><description>面向只有 SSH 的远程 Linux 服务器：从补桌面、安装 RustDesk，到设置固定密码、自建服务端配置与常见坑排查。</description><pubDate>Wed, 22 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;如果你现在只有一台远程 Linux 服务器的 SSH 权限，想把它接入 RustDesk，先记住一个关键前提：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;只有命令行可以操作&lt;/strong&gt;，不等于&lt;strong&gt;这台机器没有图形桌面&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;如果机器真的只有纯终端、没有图形会话，RustDesk 也不能凭空远控出一个“桌面”&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;RustDesk 官方 Linux 文档明确提到两件事：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Linux 端优先使用发行版原生包安装&lt;/li&gt;
&lt;li&gt;登录界面远控仍然要求 &lt;code&gt;X11&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;另外，RustDesk 官方仓库的 Headless Linux 说明页提到：Linux headless 支持默认关闭，只在 Ubuntu 上做过测试，并要求 GNOME、&lt;code&gt;xserver-xorg-video-dummy&lt;/code&gt; 和 &lt;code&gt;lightdm&lt;/code&gt; 这类前置条件。&lt;/p&gt;
&lt;p&gt;所以这篇文章分两种情况写：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;服务器本来就有桌面，只是你现在只能 SSH 上去&lt;/li&gt;
&lt;li&gt;服务器真的没有桌面，需要先补一个最小可远控的图形环境&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;本文主线以 Ubuntu / Debian 为例。&lt;/p&gt;
&lt;h2&gt;0. 先判断你是哪一种机器&lt;/h2&gt;
&lt;p&gt;如果下面命令里能看到 GNOME、Xorg、display manager 之类的包，通常说明机器已经有图形环境：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;dpkg -l | rg &apos;ubuntu-desktop|gnome-shell|xorg|gdm3|lightdm&apos;
systemctl get-default
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;如果输出里已经有桌面组件，可以直接跳到“安装 RustDesk”&lt;/li&gt;
&lt;li&gt;如果基本什么都没有，而且默认 target 是 &lt;code&gt;multi-user.target&lt;/code&gt;，按“先补桌面”处理&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;1. 机器完全没有桌面时：先补图形环境&lt;/h2&gt;
&lt;p&gt;如果你的远程机本质上是一台“纯 CLI 服务器”，先装一套 RustDesk 更稳的官方建议组合。&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo apt update
sudo apt install -y ubuntu-desktop xserver-xorg-video-dummy lightdm
sudo systemctl set-default graphical.target
sudo systemctl enable lightdm
sudo reboot
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这一步的作用分别是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ubuntu-desktop&lt;/code&gt;：提供 GNOME 桌面&lt;/li&gt;
&lt;li&gt;&lt;code&gt;xserver-xorg-video-dummy&lt;/code&gt;：没有物理显示器时，提供 dummy display&lt;/li&gt;
&lt;li&gt;&lt;code&gt;lightdm&lt;/code&gt;：给无头场景一个更稳定的图形登录管理器&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;这里我遵循 RustDesk 官方 headless 说明页的口径，优先写 GNOME + dummy driver + &lt;code&gt;lightdm&lt;/code&gt;。&lt;br&gt;
如果你打算用更轻的 &lt;code&gt;xfce4&lt;/code&gt;，社区里有人跑通，但官方页只明确写了 GNOME，稳定性就别混着赌。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;2. 安装 RustDesk&lt;/h2&gt;
&lt;p&gt;RustDesk 官方文档在 Linux 上推荐优先用发行版原生包：Ubuntu / Debian 用 &lt;code&gt;.deb&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;下面这段命令会自动识别架构，并从 RustDesk GitHub 最新 release 拉对应的 Debian 包：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;mkdir -p ~/downloads/rustdesk
cd ~/downloads/rustdesk

ARCH=&quot;$(dpkg --print-architecture)&quot;
if [ &quot;$ARCH&quot; = &quot;amd64&quot; ]; then
  PATTERN=&apos;rustdesk-[^&quot;]*-x86_64\.deb&apos;
elif [ &quot;$ARCH&quot; = &quot;arm64&quot; ]; then
  PATTERN=&apos;rustdesk-[^&quot;]*-aarch64\.deb&apos;
else
  echo &quot;Unsupported arch: $ARCH&quot;
  exit 1
fi

URL=&quot;$(curl -fsSL https://api.github.com/repos/rustdesk/rustdesk/releases/latest \
  | grep -oE &quot;https://[^\&quot;]+${PATTERN}&quot; \
  | head -n 1)&quot;

if [ -z &quot;$URL&quot; ]; then
  echo &quot;Failed to resolve RustDesk release url&quot;
  exit 1
fi

curl -L &quot;$URL&quot; -o rustdesk.deb
sudo apt install -fy ./rustdesk.deb
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;验证：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;rustdesk --version
systemctl status rustdesk --no-pager
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果 &lt;code&gt;systemctl status rustdesk&lt;/code&gt; 提示服务不存在，也不用慌，先试：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo systemctl enable --now rustdesk
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;3. 开启 headless 选项、设置固定密码、拿到 ID&lt;/h2&gt;
&lt;p&gt;如果这台机子没有物理显示器，或者你就是想让它长期作为“无人值守远控节点”，把下面三步做完：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo rustdesk --option allow-linux-headless Y
sudo rustdesk --password &apos;YourStrongPassword123&apos;
sudo rustdesk --get-id
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;你真正要记住的是两样东西：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;RustDesk ID&lt;/li&gt;
&lt;li&gt;你刚设置的固定密码&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;然后在你本地电脑上的 RustDesk 客户端里，输入这个 ID 和密码即可连接。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;allow-linux-headless&lt;/code&gt; 是 RustDesk 官方 headless Linux 说明页明确要求开启的选项。&lt;br&gt;
如果你的机器本来就有显示器和完整桌面，这一步通常不是必须，但开了也没坏处。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;4. 如果你想重启后还能连登录界面：切到 X11&lt;/h2&gt;
&lt;p&gt;RustDesk 官方 Linux 文档写得很明确：&lt;strong&gt;登录界面远控仍然需要 X11&lt;/strong&gt;。&lt;br&gt;
也就是说，哪怕新版本已经有实验性的 Wayland 支持，登录界面这块仍然不要指望 Wayland。&lt;/p&gt;
&lt;p&gt;如果你装的是 &lt;code&gt;gdm3&lt;/code&gt;，直接改：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo nano /etc/gdm3/custom.conf
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;把这一行改成：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-ini&quot;&gt;WaylandEnable=false
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;保存后重启：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo reboot
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果你前面按本文装的是 &lt;code&gt;lightdm&lt;/code&gt;，通常会比 &lt;code&gt;gdm3 + Wayland&lt;/code&gt; 少一层坑。&lt;/p&gt;
&lt;h2&gt;5. 如果你用的是自建 RustDesk Server&lt;/h2&gt;
&lt;p&gt;如果你不是走 RustDesk 官方公共服务器，而是用自己的 &lt;code&gt;hbbs&lt;/code&gt; / &lt;code&gt;hbbr&lt;/code&gt;，CLI 场景下最省事的方式不是手改 GUI，而是直接注入配置字符串。&lt;/p&gt;
&lt;p&gt;RustDesk 官方部署文档里的 Linux 脚本就是这么做的：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;RUSTDESK_CFG=&apos;你的 config string&apos;
sudo rustdesk --config &quot;$RUSTDESK_CFG&quot;
sudo systemctl restart rustdesk
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;然后再重新确认：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;rustdesk --get-id
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这里有两个实用建议：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;config string&lt;/code&gt; 最好从你已经配好的 RustDesk 客户端或管理端导出，避免手敲 &lt;code&gt;ID Server&lt;/code&gt; / &lt;code&gt;Relay Server&lt;/code&gt; / &lt;code&gt;Key&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;先执行 &lt;code&gt;--config&lt;/code&gt;，再执行 &lt;code&gt;systemctl restart rustdesk&lt;/code&gt;，不要反过来&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果你暂时还没有现成的 config string，可以先用 RustDesk 官方公共服务器把链路打通，再切到自建服务。&lt;/p&gt;
&lt;h2&gt;6. 一套可直接复制的最小闭环&lt;/h2&gt;
&lt;p&gt;如果你的目标只是“把一台只有 SSH 的 Ubuntu 服务器接进 RustDesk”，最短路径就是下面这套：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo apt update
sudo apt install -y ubuntu-desktop xserver-xorg-video-dummy lightdm
sudo systemctl set-default graphical.target
sudo systemctl enable lightdm
sudo reboot
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;重连 SSH 后继续：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;mkdir -p ~/downloads/rustdesk
cd ~/downloads/rustdesk

ARCH=&quot;$(dpkg --print-architecture)&quot;
if [ &quot;$ARCH&quot; = &quot;amd64&quot; ]; then
  PATTERN=&apos;rustdesk-[^&quot;]*-x86_64\.deb&apos;
elif [ &quot;$ARCH&quot; = &quot;arm64&quot; ]; then
  PATTERN=&apos;rustdesk-[^&quot;]*-aarch64\.deb&apos;
else
  echo &quot;Unsupported arch: $ARCH&quot;
  exit 1
fi

URL=&quot;$(curl -fsSL https://api.github.com/repos/rustdesk/rustdesk/releases/latest \
  | grep -oE &quot;https://[^\&quot;]+${PATTERN}&quot; \
  | head -n 1)&quot;

curl -L &quot;$URL&quot; -o rustdesk.deb
sudo apt install -fy ./rustdesk.deb

sudo systemctl enable --now rustdesk
sudo rustdesk --option allow-linux-headless Y
sudo rustdesk --password &apos;YourStrongPassword123&apos;
sudo rustdesk --get-id
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;到这里，这台服务器就已经具备“被 RustDesk 连接”的最小条件了。&lt;/p&gt;
&lt;h2&gt;7. 常见问题&lt;/h2&gt;
&lt;h3&gt;7.1 &lt;code&gt;rustdesk --get-id&lt;/code&gt; 没输出&lt;/h3&gt;
&lt;p&gt;优先检查：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;systemctl status rustdesk --no-pager
journalctl -u rustdesk -n 100 --no-pager
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;常见原因：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;RustDesk 服务没起来&lt;/li&gt;
&lt;li&gt;机器外网不通，无法连到官方服务器或你的自建 &lt;code&gt;hbbs&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;你切了自建服务，但没执行 &lt;code&gt;rustdesk --config&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;7.2 能连上，但黑屏&lt;/h3&gt;
&lt;p&gt;这类问题大概率不是 RustDesk “安装失败”，而是&lt;strong&gt;没有可用图形会话&lt;/strong&gt;。按这个顺序检查：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;有没有安装桌面环境&lt;/li&gt;
&lt;li&gt;有没有安装 &lt;code&gt;xserver-xorg-video-dummy&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;当前是不是 &lt;code&gt;graphical.target&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;登录界面是不是还在 Wayland&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;7.3 重启后能 SSH，但 RustDesk 进不去登录界面&lt;/h3&gt;
&lt;p&gt;优先怀疑两件事：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;没切到 &lt;code&gt;graphical.target&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;登录管理器还在 Wayland&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;也就是说，下面两条至少要成立：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;systemctl get-default
grep -n &apos;WaylandEnable&apos; /etc/gdm3/custom.conf
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;7.4 这台机器根本不需要桌面，我还该不该装 RustDesk？&lt;/h3&gt;
&lt;p&gt;如果你只是想：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;跑训练&lt;/li&gt;
&lt;li&gt;部署服务&lt;/li&gt;
&lt;li&gt;改代码&lt;/li&gt;
&lt;li&gt;看日志&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;那其实 &lt;code&gt;SSH + tmux + VSCode Remote SSH&lt;/code&gt; 往往更合适。&lt;br&gt;
RustDesk 真正擅长的是“图形桌面远控”，不是替代终端运维。&lt;/p&gt;
&lt;h2&gt;8. 参考&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;RustDesk Linux 文档：&lt;a href=&quot;https://rustdesk.com/docs/en/client/linux/&quot;&gt;rustdesk.com/docs/en/client/linux/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;RustDesk Client Deployment（Linux &lt;code&gt;--config&lt;/code&gt; 脚本）：
&lt;a href=&quot;https://rustdesk.com/docs/en/self-host/client-deployment/&quot;&gt;rustdesk.com/docs/en/self-host/client-deployment/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;RustDesk Headless Linux Support（官方仓库 Wiki）：
&lt;a href=&quot;https://github.com/rustdesk/rustdesk/wiki/Headless-Linux-Support&quot;&gt;github.com/rustdesk/rustdesk/wiki/Headless-Linux-Support&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content:encoded><h:img src="https://pic.hana0721.top/91341540_p0_master1200.7pw5duffp.webp"/><enclosure url="https://pic.hana0721.top/91341540_p0_master1200.7pw5duffp.webp"/></item><item><title>Linux 无图形界面服务器代理配置（Clash Verge 方案）</title><link>https://agusexp25.top/blog/linux-server-clash-verge-proxy</link><guid isPermaLink="true">https://agusexp25.top/blog/linux-server-clash-verge-proxy</guid><description>面向纯 SSH 服务器：Clash Verge 无 GUI 不可用时，使用 mihomo 内核完成订阅、选节点、systemd 常驻与终端代理。</description><pubDate>Wed, 22 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;你这个场景是“Linux 服务器只有 SSH，没有图形桌面”。&lt;/p&gt;
&lt;p&gt;先说结论：&lt;strong&gt;无 GUI 环境不能直接运行 Clash Verge&lt;/strong&gt;（它是基于 WebView 的图形客户端）。
在服务器上应改为使用它的内核方案：&lt;code&gt;mihomo&lt;/code&gt; 命令行。&lt;/p&gt;
&lt;p&gt;这篇给你一套纯命令行流程，目标是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;不依赖图形界面&lt;/li&gt;
&lt;li&gt;可开机自启&lt;/li&gt;
&lt;li&gt;默认不走全局代理，需要时再临时 &lt;code&gt;export&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;终端里的 &lt;code&gt;curl&lt;/code&gt; / &lt;code&gt;apt&lt;/code&gt; / &lt;code&gt;git&lt;/code&gt; 可按命令局部走代理&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;0. 前置条件&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;服务器系统：Linux（Ubuntu / Debian / CentOS）&lt;/li&gt;
&lt;li&gt;你有一个可用的 Clash 订阅链接&lt;/li&gt;
&lt;li&gt;你有 &lt;code&gt;sudo&lt;/code&gt; 权限&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;1. 安装 mihomo（替代 Clash Verge GUI）&lt;/h2&gt;
&lt;p&gt;不要先手写通配符解压。先把文件下载到当前目录，再解压。&lt;/p&gt;
&lt;p&gt;下面脚本会自动识别架构并从官方最新 release 获取下载链接：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;https://github.com/MetaCubeX/mihomo/releases/latest&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;mkdir -p ~/downloads/mihomo
cd ~/downloads/mihomo

ARCH=&quot;$(uname -m)&quot;
if [ &quot;$ARCH&quot; = &quot;x86_64&quot; ]; then
  PATTERN=&apos;mihomo-linux-amd64[^&quot;]*\.gz&apos;
elif [ &quot;$ARCH&quot; = &quot;aarch64&quot; ] || [ &quot;$ARCH&quot; = &quot;arm64&quot; ]; then
  PATTERN=&apos;mihomo-linux-arm64[^&quot;]*\.gz&apos;
else
  echo &quot;Unsupported arch: $ARCH&quot;
  exit 1
fi

URL=&quot;$(curl -fsSL https://api.github.com/repos/MetaCubeX/mihomo/releases/latest \
  | grep -oE &quot;https://[^\&quot;]+${PATTERN}&quot; \
  | head -n 1)&quot;

if [ -z &quot;$URL&quot; ]; then
  echo &quot;Failed to resolve download url&quot;
  exit 1
fi

curl -L &quot;$URL&quot; -o mihomo.gz
gunzip -f mihomo.gz
chmod +x mihomo
sudo install -m 755 mihomo /usr/local/bin/mihomo
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;验证安装：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;mihomo -v
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;你遇到的这类错误：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;gzip: mihomo-linux-amd64-*.gz: No such file or directory
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;本质是当前目录里没有匹配文件，常见原因有两个：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;还没下载 &lt;code&gt;mihomo&lt;/code&gt; 压缩包&lt;/li&gt;
&lt;li&gt;文件名和通配符不一致&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;先 &lt;code&gt;ls -lh&lt;/code&gt; 看目录里实际文件名，再执行解压。&lt;/p&gt;
&lt;h2&gt;2. 准备配置目录与 &lt;code&gt;config.yaml&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;创建工作目录：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo mkdir -p /etc/mihomo/providers
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;新建 &lt;code&gt;/etc/mihomo/config.yaml&lt;/code&gt;（最小可用模板）：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-yaml&quot;&gt;mixed-port: 7890
allow-lan: false
bind-address: 127.0.0.1
mode: rule
log-level: info
external-controller: 127.0.0.1:9090
secret: &quot;your-strong-secret&quot;

proxy-providers:
  mysub:
    type: http
    url: &quot;https://your-subscription-url&quot;
    path: ./providers/mysub.yaml
    interval: 3600
    health-check:
      enable: true
      interval: 300
      url: https://www.gstatic.com/generate_204

proxy-groups:
  - name: Proxy
    type: select
    use:
      - mysub

rules:
  - MATCH,Proxy
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果你“只有一个订阅链接”，只需要改这两处：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;secret&lt;/code&gt;：改成你自己的随机字符串（例如 16~32 位）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;url&lt;/code&gt;：改成你的订阅链接原文&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;示例（只演示要改的行）：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-yaml&quot;&gt;secret: &quot;8e1d3f4a5b6c7d8e&quot;
url: &quot;https://your-subscription-url&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;url&lt;/code&gt; 必须带引号，避免 &lt;code&gt;&amp;#x26;&lt;/code&gt;、&lt;code&gt;?&lt;/code&gt; 等字符导致 YAML 解析错误。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;写入文件：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo tee /etc/mihomo/config.yaml &gt;/dev/null &amp;#x3C;&amp;#x3C;&apos;YAML&apos;
mixed-port: 7890
allow-lan: false
bind-address: 127.0.0.1
mode: rule
log-level: info
external-controller: 127.0.0.1:9090
secret: &quot;your-strong-secret&quot;

proxy-providers:
  mysub:
    type: http
    url: &quot;https://your-subscription-url&quot;
    path: ./providers/mysub.yaml
    interval: 3600
    health-check:
      enable: true
      interval: 300
      url: https://www.gstatic.com/generate_204

proxy-groups:
  - name: Proxy
    type: select
    use:
      - mysub

rules:
  - MATCH,Proxy
YAML
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;如果你的机场给的是“完整配置文件”而不是订阅 URL，可以直接把完整 YAML 覆盖到 &lt;code&gt;/etc/mihomo/config.yaml&lt;/code&gt;。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;2.1 只有订阅链接时，怎么判断用哪种方式&lt;/h3&gt;
&lt;p&gt;先看订阅返回的前几行：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;curl -L &quot;你的订阅链接&quot; | head -n 20
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;如果能看到 &lt;code&gt;proxies:&lt;/code&gt;、&lt;code&gt;proxy-groups:&lt;/code&gt;、&lt;code&gt;rules:&lt;/code&gt;，说明这是完整配置。直接保存为 &lt;code&gt;/etc/mihomo/config.yaml&lt;/code&gt; 即可。&lt;/li&gt;
&lt;li&gt;如果主要是节点列表，没有完整规则组，就用本文上面的 &lt;code&gt;proxy-providers&lt;/code&gt; 模板，把链接填到 &lt;code&gt;url&lt;/code&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;3. 先前台启动测试&lt;/h2&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo mihomo -d /etc/mihomo -t
sudo mihomo -d /etc/mihomo
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;关注是否有报错；确认正常后用 &lt;code&gt;Ctrl+C&lt;/code&gt; 停止，继续做 systemd 常驻。&lt;/p&gt;
&lt;h2&gt;4. 配置 systemd 开机自启&lt;/h2&gt;
&lt;p&gt;创建服务文件 &lt;code&gt;/etc/systemd/system/mihomo.service&lt;/code&gt;：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-ini&quot;&gt;[Unit]
Description=mihomo Daemon, Another Clash Kernel.
After=network.target NetworkManager.service systemd-networkd.service iwd.service

[Service]
Type=simple
LimitNPROC=500
LimitNOFILE=1000000
CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_RAW CAP_NET_BIND_SERVICE CAP_SYS_TIME CAP_SYS_PTRACE CAP_DAC_READ_SEARCH CAP_DAC_OVERRIDE
AmbientCapabilities=CAP_NET_ADMIN CAP_NET_RAW CAP_NET_BIND_SERVICE CAP_SYS_TIME CAP_SYS_PTRACE CAP_DAC_READ_SEARCH CAP_DAC_OVERRIDE
Restart=always
ExecStartPre=/usr/bin/sleep 1s
ExecStart=/usr/local/bin/mihomo -d /etc/mihomo
ExecReload=/bin/kill -HUP $MAINPID

[Install]
WantedBy=multi-user.target
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;执行：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo systemctl daemon-reload
sudo systemctl enable mihomo
sudo systemctl start mihomo
sudo systemctl status mihomo
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;4.1 不开机自启，只手动启动&lt;/h3&gt;
&lt;p&gt;如果你不希望开机自动拉起，只想“需要时再开”：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo systemctl daemon-reload
sudo systemctl disable mihomo
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;之后按需手动控制：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo systemctl start mihomo
sudo systemctl stop mihomo
sudo systemctl restart mihomo
sudo systemctl status mihomo
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;开机自启和手动启动并不冲突：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;enable&lt;/code&gt; / &lt;code&gt;disable&lt;/code&gt; 决定“开机是否自动启动”&lt;/li&gt;
&lt;li&gt;&lt;code&gt;start&lt;/code&gt; / &lt;code&gt;stop&lt;/code&gt; 决定“当前这一刻是否运行”&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;查看日志：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;journalctl -u mihomo -o cat -f
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;5. 无 GUI 下切换节点（API）&lt;/h2&gt;
&lt;p&gt;先在当前 shell 定义变量（推荐）：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;export MIHOMO_API=&quot;http://127.0.0.1:9090&quot;
export MIHOMO_SECRET=&quot;your-strong-secret&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;config.yaml&lt;/code&gt; 里的 &lt;code&gt;secret&lt;/code&gt; 仍然是固定字符串；这里用环境变量只是为了命令行调用更方便。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;可选：写入 &lt;code&gt;~/.bashrc&lt;/code&gt;，每次登录自动可用：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;echo &apos;export MIHOMO_API=&quot;http://127.0.0.1:9090&quot;&apos; &gt;&gt; ~/.bashrc
echo &apos;export MIHOMO_SECRET=&quot;your-strong-secret&quot;&apos; &gt;&gt; ~/.bashrc
source ~/.bashrc
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;如果是多人共用账号，不建议把 &lt;code&gt;MIHOMO_SECRET&lt;/code&gt; 长期明文写在共享用户的 &lt;code&gt;~/.bashrc&lt;/code&gt;。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;先注意请求头写法，必须是：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;-H &quot;Authorization: Bearer ${MIHOMO_SECRET}&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;错误写法（会返回 &lt;code&gt;{&quot;message&quot;:&quot;Unauthorized&quot;}&lt;/code&gt;）：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;-H &quot;your-strong-secret&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;查看策略组节点：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;curl -s -H &quot;Authorization: Bearer ${MIHOMO_SECRET}&quot; \
  &quot;${MIHOMO_API}/proxies&quot; | head
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;把 &lt;code&gt;Proxy&lt;/code&gt; 组切到指定节点（例如 &lt;code&gt;HK-01&lt;/code&gt;）：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;curl -s -X PUT \
  -H &quot;Authorization: Bearer ${MIHOMO_SECRET}&quot; \
  -H &quot;Content-Type: application/json&quot; \
  -d &apos;{&quot;name&quot;:&quot;HK-01&quot;}&apos; \
  &quot;${MIHOMO_API}/proxies/Proxy&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;用完后清理变量（可选）：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;unset MIHOMO_API MIHOMO_SECRET
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;6. 让终端命令走代理&lt;/h2&gt;
&lt;p&gt;当前 shell 临时生效：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;export http_proxy=http://127.0.0.1:7890
export https_proxy=http://127.0.0.1:7890
export all_proxy=socks5://127.0.0.1:7890
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;验证：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;curl https://ipinfo.io
curl -I https://www.google.com
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;取消：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;unset http_proxy https_proxy all_proxy
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;服务器场景不建议写进 &lt;code&gt;~/.bashrc&lt;/code&gt; 全局生效，推荐做成手动开关函数：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;proxy_on() {
  export http_proxy=http://127.0.0.1:7890
  export https_proxy=http://127.0.0.1:7890
  export all_proxy=socks5://127.0.0.1:7890
}

proxy_off() {
  unset http_proxy https_proxy all_proxy
}

proxy_status() {
  env | grep -i proxy || echo &quot;proxy is off&quot;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;把上面函数放进 &lt;code&gt;~/.bashrc&lt;/code&gt; 或 &lt;code&gt;~/.zshrc&lt;/code&gt; 后，按需执行 &lt;code&gt;proxy_on&lt;/code&gt; / &lt;code&gt;proxy_off&lt;/code&gt;。&lt;/p&gt;
&lt;h2&gt;7. 常见工具代理&lt;/h2&gt;
&lt;h3&gt;APT（单次命令局部代理）&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo env \
  http_proxy=http://127.0.0.1:7890 \
  https_proxy=http://127.0.0.1:7890 \
  apt update
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;安装包也是同理：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo env \
  http_proxy=http://127.0.0.1:7890 \
  https_proxy=http://127.0.0.1:7890 \
  apt install -y &amp;#x3C;package-name&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Git（单次命令局部代理）&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git -c http.proxy=http://127.0.0.1:7890 \
    -c https.proxy=http://127.0.0.1:7890 \
    clone &amp;#x3C;repo-url&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;pull&lt;/code&gt; / &lt;code&gt;push&lt;/code&gt; 也可以同样加 &lt;code&gt;-c&lt;/code&gt;：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git -c http.proxy=http://127.0.0.1:7890 \
    -c https.proxy=http://127.0.0.1:7890 \
    pull
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;8. 排障速查&lt;/h2&gt;
&lt;h3&gt;1) &lt;code&gt;curl&lt;/code&gt; 仍然直连&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;env | grep -i proxy
ss -lntp | grep 7890
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;确认代理变量已设置，且 &lt;code&gt;mihomo&lt;/code&gt; 确实监听在 &lt;code&gt;127.0.0.1:7890&lt;/code&gt;。&lt;/p&gt;
&lt;h3&gt;2) 服务起不来&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;systemctl status mihomo
journalctl -u mihomo -o cat -e
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;大多数情况是 &lt;code&gt;config.yaml&lt;/code&gt; 语法错误或订阅 URL 无效。&lt;/p&gt;
&lt;h3&gt;3) API 连接被拒绝&lt;/h3&gt;
&lt;p&gt;检查 &lt;code&gt;external-controller&lt;/code&gt; 是否是 &lt;code&gt;127.0.0.1:9090&lt;/code&gt;，以及 &lt;code&gt;secret&lt;/code&gt; 是否和请求头一致。&lt;/p&gt;
&lt;p&gt;如果返回：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-json&quot;&gt;{&quot;message&quot;:&quot;Unauthorized&quot;}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;通常不是端口错了，而是认证头格式错误。应使用：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;curl -s -H &quot;Authorization: Bearer ${MIHOMO_SECRET}&quot; \
  &quot;${MIHOMO_API}/proxies&quot; | head
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;4) &lt;code&gt;mihomo.service not found&lt;/code&gt; / &lt;code&gt;Unit file does not exist&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;这表示 systemd 服务文件还没创建成功，或文件名不对。&lt;/p&gt;
&lt;p&gt;先确认二进制路径存在：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;which mihomo
ls -l /usr/local/bin/mihomo
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;再重新创建服务文件：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo tee /etc/systemd/system/mihomo.service &gt;/dev/null &amp;#x3C;&amp;#x3C;&apos;UNIT&apos;
[Unit]
Description=mihomo Daemon, Another Clash Kernel.
After=network.target NetworkManager.service systemd-networkd.service iwd.service

[Service]
Type=simple
Restart=always
ExecStart=/usr/local/bin/mihomo -d /etc/mihomo
ExecReload=/bin/kill -HUP $MAINPID

[Install]
WantedBy=multi-user.target
UNIT
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;然后加载并启动：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo systemctl daemon-reload
sudo systemctl enable mihomo
sudo systemctl start mihomo
sudo systemctl status mihomo
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果你只想手动启动，不开机自启，把 &lt;code&gt;enable&lt;/code&gt; 换成：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo systemctl disable mihomo
sudo systemctl start mihomo
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;9. 最小闭环（无 GUI）&lt;/h2&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# 1) 启动服务
sudo systemctl start mihomo

# 2) 配置终端代理
export http_proxy=http://127.0.0.1:7890
export https_proxy=http://127.0.0.1:7890
export all_proxy=socks5://127.0.0.1:7890

# 3) 验证
curl https://ipinfo.io
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;到这里，你在纯 SSH 服务器上的代理就可用了。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/99749488_p0_master1200.83an1pr7zr.webp"/><enclosure url="https://pic.hana0721.top/99749488_p0_master1200.83an1pr7zr.webp"/></item><item><title>在本地电脑上配置 GitHub 权限（SSH/HTTPS）</title><link>https://agusexp25.top/blog/github-auth-local-setup</link><guid isPermaLink="true">https://agusexp25.top/blog/github-auth-local-setup</guid><description>面向本地电脑的 GitHub 权限配置教程：Git 身份、SSH key、PAT、Credential Manager、多账号切换与常见报错排查。</description><pubDate>Wed, 22 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;如果你要在自己的电脑上把代码推到 GitHub，核心其实只需要配对三件事：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Git 身份是谁&lt;/li&gt;
&lt;li&gt;你的电脑拿什么方式向 GitHub 认证&lt;/li&gt;
&lt;li&gt;凭证是临时输入、系统托管，还是长期缓存&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;很多人把这三件事混在一起，所以一遇到 &lt;code&gt;Permission denied&lt;/code&gt;、&lt;code&gt;Authentication failed&lt;/code&gt;、推错账号，就很容易卡住。&lt;/p&gt;
&lt;p&gt;这篇教程专门讲“&lt;strong&gt;本地电脑如何配置 GitHub 权限&lt;/strong&gt;”，按 SSH 和 HTTPS 两条路线都给一套可用流程。&lt;/p&gt;
&lt;h2&gt;0. 先区分两个概念&lt;/h2&gt;
&lt;p&gt;配置 GitHub 权限时，最容易混淆的是下面两件事：&lt;/p&gt;
&lt;h3&gt;0.1 Git 身份&lt;/h3&gt;
&lt;p&gt;这是提交记录里显示的作者信息：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git config --global user.name &quot;your-name&quot;
git config --global user.email &quot;your-email@example.com&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;它决定的是 commit 里写谁，不等于“你有没有权限 push 到 GitHub”。&lt;/p&gt;
&lt;h3&gt;0.2 GitHub 认证&lt;/h3&gt;
&lt;p&gt;这是你电脑连接 GitHub 时真正用到的授权方式，常见有两种：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;SSH key&lt;/li&gt;
&lt;li&gt;HTTPS + Personal Access Token (PAT)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;也就是说：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;user.name&lt;/code&gt; / &lt;code&gt;user.email&lt;/code&gt; 解决“你是谁”&lt;/li&gt;
&lt;li&gt;SSH / PAT 解决“你有没有权限访问这个仓库”&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;1. 先检查本地环境&lt;/h2&gt;
&lt;p&gt;先确认 Git 和 SSH 工具都可用。&lt;/p&gt;
&lt;p&gt;Linux / macOS:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git --version
ssh -V
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Windows（PowerShell）：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-powershell&quot;&gt;git --version
ssh -V
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果 &lt;code&gt;git&lt;/code&gt; 不存在，先安装 Git。&lt;/p&gt;
&lt;p&gt;如果 &lt;code&gt;ssh&lt;/code&gt; 不存在：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Windows: 安装 Git for Windows 或启用 OpenSSH Client&lt;/li&gt;
&lt;li&gt;macOS / Linux: 通常系统自带&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;2. 配置 Git 身份&lt;/h2&gt;
&lt;p&gt;如果这台电脑主要由你自己使用，通常直接配置全局身份就够了：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git config --global user.name &quot;your-github-username&quot;
git config --global user.email &quot;your-email@example.com&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;检查结果：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git config --global --get user.name
git config --global --get user.email
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果你希望提交记录绑定到 GitHub 账号，&lt;code&gt;user.email&lt;/code&gt; 最好使用：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;你在 GitHub 已验证过的邮箱&lt;/li&gt;
&lt;li&gt;或者 GitHub 提供的 &lt;code&gt;noreply&lt;/code&gt; 邮箱&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;查看某个仓库当前实际生效的身份：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git config --get user.name
git config --get user.email
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果你只想对当前仓库单独配置，不要加 &lt;code&gt;--global&lt;/code&gt;。&lt;/p&gt;
&lt;h2&gt;3. 推荐路线 A：使用 SSH key&lt;/h2&gt;
&lt;p&gt;对个人电脑来说，SSH 通常是最省心的一种方式：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;不需要每次输入 Token&lt;/li&gt;
&lt;li&gt;更适合长期使用&lt;/li&gt;
&lt;li&gt;配合 &lt;code&gt;ssh-agent&lt;/code&gt; 后体验最好&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;4. 生成 SSH key&lt;/h2&gt;
&lt;p&gt;推荐使用 &lt;code&gt;ed25519&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;Linux / macOS:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;ssh-keygen -t ed25519 -C &quot;your-email@example.com&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Windows（PowerShell）：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-powershell&quot;&gt;ssh-keygen -t ed25519 -C &quot;your-email@example.com&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;执行过程中会看到几项提示：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;Enter file in which to save the key (...)
Enter passphrase (...)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;建议：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;路径直接用默认值&lt;/li&gt;
&lt;li&gt;&lt;code&gt;passphrase&lt;/code&gt; 最好设置，不要留空&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;默认路径通常是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Linux / macOS: &lt;code&gt;~/.ssh/id_ed25519&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Windows: &lt;code&gt;C:\Users\你的用户名\.ssh\id_ed25519&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;对应公钥文件是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;id_ed25519.pub&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;5. 把公钥加到 GitHub&lt;/h2&gt;
&lt;p&gt;先查看公钥内容。&lt;/p&gt;
&lt;p&gt;Linux / macOS:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;cat ~/.ssh/id_ed25519.pub
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Windows（PowerShell）：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-powershell&quot;&gt;Get-Content $HOME\.ssh\id_ed25519.pub
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;复制整行公钥后，到 GitHub 页面：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;右上角头像 -&gt; &lt;code&gt;Settings&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;进入 &lt;code&gt;SSH and GPG keys&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;点击 &lt;code&gt;New SSH key&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Title&lt;/code&gt; 随便填，例如 &lt;code&gt;My Laptop&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;把刚才复制的公钥粘进去&lt;/li&gt;
&lt;li&gt;点击 &lt;code&gt;Add SSH key&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;这一步完成后，你的 GitHub 账号才真正认识这台电脑的密钥。&lt;/p&gt;
&lt;h2&gt;6. 启动 ssh-agent 并加载私钥&lt;/h2&gt;
&lt;h3&gt;6.1 Linux / macOS&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;eval &quot;$(ssh-agent -s)&quot;
ssh-add ~/.ssh/id_ed25519
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;6.2 Windows（PowerShell）&lt;/h3&gt;
&lt;p&gt;先启动 OpenSSH Agent 服务：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-powershell&quot;&gt;Get-Service ssh-agent
Start-Service ssh-agent
Set-Service -Name ssh-agent -StartupType Automatic
ssh-add $HOME\.ssh\id_ed25519
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果你设置了 passphrase，这里会要求你输入一次。&lt;/p&gt;
&lt;h2&gt;7. 测试 SSH 认证是否成功&lt;/h2&gt;
&lt;p&gt;执行：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;ssh -T git@github.com
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;第一次连接时，可能会看到主机指纹确认：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;Are you sure you want to continue connecting (yes/no/[fingerprint])?
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;输入：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;yes
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果认证成功，常见输出类似：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;Hi your-username! You&apos;ve successfully authenticated...
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;8. 把仓库远程地址切到 SSH&lt;/h2&gt;
&lt;p&gt;查看当前远程地址：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git remote -v
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果是 HTTPS，例如：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;https://github.com/your-username/your-repo.git
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;可以改成 SSH：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git remote set-url origin git@github.com:your-username/your-repo.git
git remote -v
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;之后推送：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git push -u origin main
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;9. 备选路线 B：使用 HTTPS + PAT&lt;/h2&gt;
&lt;p&gt;如果你暂时不想配 SSH，也可以直接走 HTTPS，但现在不能再用 GitHub 登录密码，必须用 &lt;code&gt;Personal Access Token&lt;/code&gt;。&lt;/p&gt;
&lt;h2&gt;10. 创建 PAT&lt;/h2&gt;
&lt;p&gt;GitHub 页面路径：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;右上角头像 -&gt; &lt;code&gt;Settings&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Developer settings&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Personal access tokens&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;选择 &lt;code&gt;Tokens (classic)&lt;/code&gt; 或 Fine-grained Token&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;如果你是新手，本地个人电脑使用 &lt;code&gt;Tokens (classic)&lt;/code&gt; 会更直接。&lt;/p&gt;
&lt;p&gt;创建时至少注意：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;设定过期时间&lt;/li&gt;
&lt;li&gt;给出需要的仓库权限&lt;/li&gt;
&lt;li&gt;私人仓库常见需要 &lt;code&gt;repo&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;生成后要立刻保存，因为 GitHub 通常只显示一次。&lt;/p&gt;
&lt;h2&gt;11. HTTPS 推送时怎么填用户名和密码&lt;/h2&gt;
&lt;p&gt;当你执行：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git push
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果提示输入：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;Username for &apos;https://github.com&apos;:
Password for &apos;https://github.com&apos;:
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;应该这样填：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Username&lt;/code&gt;：你的 GitHub 用户名&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Password&lt;/code&gt;：你的 PAT，不是 GitHub 登录密码&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;12. 让系统记住凭证&lt;/h2&gt;
&lt;p&gt;如果你每次都输 PAT，会比较烦。更合理的做法是让系统凭证管理器接管。&lt;/p&gt;
&lt;h3&gt;12.1 Windows&lt;/h3&gt;
&lt;p&gt;Git for Windows 通常可配 &lt;code&gt;manager-core&lt;/code&gt;：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git config --global credential.helper manager-core
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;之后凭证会进入 Windows Credential Manager。&lt;/p&gt;
&lt;h3&gt;12.2 macOS&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git config --global credential.helper osxkeychain
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;12.3 Linux&lt;/h3&gt;
&lt;p&gt;如果你没有桌面凭证管理器，最简单是：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git config --global credential.helper cache
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这只做内存缓存，安全性通常比明文存盘好。&lt;/p&gt;
&lt;p&gt;不推荐：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git config --global credential.helper store
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;因为它可能把 Token 明文写到本地文件里。&lt;/p&gt;
&lt;h2&gt;13. 多 GitHub 账号怎么处理&lt;/h2&gt;
&lt;p&gt;这是本地电脑最常见的进阶需求之一：工作号一个，私人号一个。&lt;/p&gt;
&lt;h3&gt;13.1 SSH 多账号方案&lt;/h3&gt;
&lt;p&gt;思路是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;每个账号各自一把 SSH key&lt;/li&gt;
&lt;li&gt;在 &lt;code&gt;~/.ssh/config&lt;/code&gt; 里用不同 Host 别名&lt;/li&gt;
&lt;li&gt;不同仓库绑定不同远程地址&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;示例：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-ssh-config&quot;&gt;Host github-personal
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_ed25519_personal

Host github-work
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_ed25519_work
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;然后你的远程地址可以写成：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;git@github-personal:yourname/repo.git
git@github-work:company/repo.git
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这样不同仓库就会走不同密钥。&lt;/p&gt;
&lt;h3&gt;13.2 Git 身份也分仓库设置&lt;/h3&gt;
&lt;p&gt;例如：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git config user.name &quot;work-account&quot;
git config user.email &quot;work@example.com&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这样只影响当前仓库。&lt;/p&gt;
&lt;h2&gt;14. 最常见的报错与处理&lt;/h2&gt;
&lt;h3&gt;14.1 &lt;code&gt;Permission denied (publickey)&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;通常说明：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;公钥没加到 GitHub&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ssh-agent&lt;/code&gt; 没加载私钥&lt;/li&gt;
&lt;li&gt;仓库远程地址和你预期账号不一致&lt;/li&gt;
&lt;li&gt;你实际用了另一把 key&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;优先检查：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;ssh-add -l
git remote -v
ssh -T git@github.com
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;14.2 &lt;code&gt;Authentication failed&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;这通常发生在 HTTPS 路线下，常见原因：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;你输入的是 GitHub 登录密码，不是 PAT&lt;/li&gt;
&lt;li&gt;PAT 权限不够&lt;/li&gt;
&lt;li&gt;PAT 已过期&lt;/li&gt;
&lt;li&gt;系统里缓存了旧凭证&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;14.3 提交记录不显示在 GitHub 账号下&lt;/h3&gt;
&lt;p&gt;通常不是权限问题，而是邮箱不匹配。&lt;/p&gt;
&lt;p&gt;检查：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git config --get user.email
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;确认这个邮箱已经在 GitHub 账号中添加并验证。&lt;/p&gt;
&lt;h3&gt;14.4 推到了错误账号&lt;/h3&gt;
&lt;p&gt;通常是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;系统缓存了另一个账号的 PAT&lt;/li&gt;
&lt;li&gt;SSH 走了另一把 key&lt;/li&gt;
&lt;li&gt;仓库配置的 &lt;code&gt;user.name&lt;/code&gt; / &lt;code&gt;user.email&lt;/code&gt; 与预期不一致&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;15. 一条推荐工作流&lt;/h2&gt;
&lt;p&gt;如果你是“自己的电脑 + 长期使用 GitHub”，我更推荐：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;配 Git 全局身份&lt;/li&gt;
&lt;li&gt;生成 &lt;code&gt;ed25519&lt;/code&gt; SSH key&lt;/li&gt;
&lt;li&gt;把公钥加到 GitHub&lt;/li&gt;
&lt;li&gt;用 &lt;code&gt;ssh-agent&lt;/code&gt; 管理私钥&lt;/li&gt;
&lt;li&gt;把远程地址改成 SSH&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;也就是：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git config --global user.name &quot;your-name&quot;
git config --global user.email &quot;your-email@example.com&quot;
ssh-keygen -t ed25519 -C &quot;your-email@example.com&quot;
ssh-add ~/.ssh/id_ed25519
ssh -T git@github.com
git remote set-url origin git@github.com:your-username/your-repo.git
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这套组合通常是最稳的。&lt;/p&gt;
&lt;h2&gt;16. 结语&lt;/h2&gt;
&lt;p&gt;在本地电脑上配置 GitHub 权限，本质上不是“装一个工具就完事”，而是把下面三层关系理顺：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Git 提交身份&lt;/li&gt;
&lt;li&gt;GitHub 认证方式&lt;/li&gt;
&lt;li&gt;本地凭证管理方式&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果你希望长期稳定使用，优先选 SSH。&lt;br&gt;
如果你只是临时使用或公司流程要求 HTTPS，再用 PAT + 系统凭证管理器。&lt;/p&gt;
&lt;p&gt;只要把这套关系理顺，以后遇到 GitHub 权限问题，基本都能很快定位。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/98000873_p0_master1200.491vjnsp6s.webp"/><enclosure url="https://pic.hana0721.top/98000873_p0_master1200.491vjnsp6s.webp"/></item><item><title>Vibe Coding For AI 4: Gemini CLI 安装与使用指南</title><link>https://agusexp25.top/blog/vibe-coding-4</link><guid isPermaLink="true">https://agusexp25.top/blog/vibe-coding-4</guid><description>谷歌官方出品的 Gemini CLI 完整教程，探索其强大的上下文感知、自动任务执行与多模态交互能力。</description><pubDate>Sat, 18 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;本文内容由 AI 生成，主要供博主自用参考，不保证完全准确，请以官方文档为准。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;什么是 Gemini CLI？&lt;/h2&gt;
&lt;p&gt;Gemini CLI 是 Google 官方推出的命令行 AI 助手。
它不仅是一个简单的聊天界面，更是一个深度集成到开发流程中的 Coding Agent。
它能够感知项目上下文，读取和修改文件，执行 Shell 命令，并支持通过 Agent Skills 和 MCP（Model Context Protocol）进行扩展。&lt;/p&gt;
&lt;p&gt;对于追求极致性能和谷歌生态集成的开发者来说，Gemini CLI 是 Vibe Coding 的又一利器。&lt;/p&gt;
&lt;h2&gt;安装前准备&lt;/h2&gt;
&lt;h3&gt;安装 Node.js&lt;/h3&gt;
&lt;p&gt;Gemini CLI 要求 &lt;strong&gt;Node.js 20.0.0+&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;macOS（Homebrew）：&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;brew install node
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Linux（Ubuntu/Debian）：&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;curl -fsSL https://deb.nodesource.com/setup_23.x | sudo -E bash -
sudo apt-get install -y nodejs
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;验证安装：&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;node --version   # 确保版本 &gt;= 20
npm --version
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;检查网络环境&lt;/h3&gt;
&lt;p&gt;确保你的终端可以顺畅访问 Google 的 API 服务。&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;curl ipin.io
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;安装 Gemini CLI&lt;/h2&gt;
&lt;h3&gt;推荐方式：npm 全局安装&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;npm install -g @google/gemini-cli
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;其他方式&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Homebrew:&lt;/strong&gt; &lt;code&gt;brew install gemini-cli&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;npx (无需安装直接运行):&lt;/strong&gt; &lt;code&gt;npx @google/gemini-cli&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;安装完成后验证：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;gemini --version
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;配置与鉴权&lt;/h2&gt;
&lt;h3&gt;获取 API Key&lt;/h3&gt;
&lt;p&gt;前往 &lt;a href=&quot;https://aistudio.google.com/&quot;&gt;Google AI Studio&lt;/a&gt; 获取你的 Gemini API Key。&lt;/p&gt;
&lt;h3&gt;设置环境变量&lt;/h3&gt;
&lt;p&gt;将密钥添加到你的 shell 配置文件（如 &lt;code&gt;~/.zshrc&lt;/code&gt; 或 &lt;code&gt;~/.bashrc&lt;/code&gt;）：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;export GEMINI_API_KEY=&quot;你的_API_KEY&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果使用中转服务，可以设置基础 URL：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;export GEMINI_BASE_URL=&quot;https://你的中转地址/v1&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;启动与基本用法&lt;/h2&gt;
&lt;h3&gt;交互模式（REPL）&lt;/h3&gt;
&lt;p&gt;在项目根目录运行：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;gemini
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;进入交互界面后，你可以像在网页端一样与 Gemini 对话，但它现在拥有操作你本地文件的权限。&lt;/p&gt;
&lt;h3&gt;非交互模式（单次查询）&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;gemini -p &quot;分析当前目录结构并总结项目功能&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;管道模式&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;cat error.log | gemini &quot;解释这个错误并给出修复方案&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;恢复会话&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;gemini -r latest
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;核心功能特性&lt;/h2&gt;
&lt;h3&gt;1. 上下文感知&lt;/h3&gt;
&lt;p&gt;Gemini CLI 会自动读取项目中的文件结构，并尊重 &lt;code&gt;.geminiignore&lt;/code&gt; 文件（类似于 &lt;code&gt;.gitignore&lt;/code&gt;）。
你可以通过 &lt;code&gt;GEMINI.md&lt;/code&gt; 文件为 AI 提供项目特定的指令和规范。&lt;/p&gt;
&lt;h3&gt;2. 快捷文件引用&lt;/h3&gt;
&lt;p&gt;在对话中，你可以使用 &lt;code&gt;@&lt;/code&gt; 符号快速引用文件内容：
&lt;code&gt;帮我重构一下 @src/utils/date.ts 里的格式化函数&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;3. Shell 集成&lt;/h3&gt;
&lt;p&gt;在交互界面中，可以使用 &lt;code&gt;!&lt;/code&gt; 前缀直接执行 Shell 命令：
&lt;code&gt;!npm test&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;4. 自动任务执行&lt;/h3&gt;
&lt;p&gt;你可以给 Gemini 下达复杂的指令，它会自动拆解步骤并执行，例如：
&lt;code&gt;帮我把项目中所有的 React 组件从 Class 组件重构成 Function 组件，并添加 Vitest 测试&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;常用斜杠命令&lt;/h2&gt;
&lt;p&gt;| 命令 | 功能 |
|------|------|
| &lt;code&gt;/help&lt;/code&gt; | 显示所有可用命令 |
| &lt;code&gt;/model set &amp;#x3C;model&gt;&lt;/code&gt; | 切换使用的 Gemini 模型版本 |
| &lt;code&gt;/resume&lt;/code&gt; | 搜索并恢复历史会话 |
| &lt;code&gt;/rewind&lt;/code&gt; | 在历史记录中回溯，甚至可以撤销代码更改 |
| &lt;code&gt;/settings&lt;/code&gt; | 配置 CLI 的外观和行为 |
| &lt;code&gt;/quit&lt;/code&gt; | 退出当前会话 |&lt;/p&gt;
&lt;h2&gt;进阶技巧：Agent Skills&lt;/h2&gt;
&lt;p&gt;Gemini CLI 支持通过 &lt;strong&gt;Agent Skills&lt;/strong&gt; 扩展功能。你可以通过编写简单的脚本或配置，让 Gemini 具备特定领域的专家知识（如特定框架的优化技巧、复杂的部署流程等）。&lt;/p&gt;
&lt;h2&gt;小结&lt;/h2&gt;
&lt;p&gt;Gemini CLI 凭借其强大的多模态处理能力和 Google 的模型优势，在处理大规模代码重构和复杂逻辑理解上表现出色。
它是目前命令行 Coding Agent 中最全能的选手之一。&lt;/p&gt;
&lt;p&gt;如果你已经习惯了在前几篇教程中提到的 Claude CLI 或 OpenCode，Gemini CLI 的强大工具链和恢复机制（Rewind）绝对值得你一试。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/120269913_p0_master1200.3k8lu5pi8s.webp"/><enclosure url="https://pic.hana0721.top/120269913_p0_master1200.3k8lu5pi8s.webp"/></item><item><title>Vibe Coding For AI 3: Codex CLI 安装与使用指南</title><link>https://agusexp25.top/blog/vibe-coding-3</link><guid isPermaLink="true">https://agusexp25.top/blog/vibe-coding-3</guid><description>面向 macOS 和 Linux 用户的 Codex CLI 上手教程，覆盖安装、登录与常用命令说明。</description><pubDate>Sat, 18 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;本文内容由 AI 生成，主要供博主自用参考，不保证完全准确，请以官方文档为准。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;什么是 Codex CLI？&lt;/h2&gt;
&lt;p&gt;Codex CLI 是 OpenAI 推出的命令行 Coding Agent。
它可以直接在终端中读取和修改项目文件、执行命令、完成代码任务，也支持非交互模式用于脚本化流程。&lt;/p&gt;
&lt;p&gt;本文基于 &lt;code&gt;codex-cli 0.121.0&lt;/code&gt; 编写，面向 macOS 和 Linux 用户。&lt;/p&gt;
&lt;h2&gt;安装前准备&lt;/h2&gt;
&lt;h3&gt;安装 Node.js&lt;/h3&gt;
&lt;p&gt;Codex CLI 通过 &lt;code&gt;npm&lt;/code&gt; 分发，先确保系统有 Node.js。
当前 &lt;code&gt;@openai/codex&lt;/code&gt; 的 &lt;code&gt;engines&lt;/code&gt; 要求是 &lt;code&gt;node &gt;= 16&lt;/code&gt;，建议使用更高版本（如 Node 20 LTS）。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;macOS（Homebrew）：&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;brew install node
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Ubuntu/Debian：&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Arch：&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo pacman -S nodejs npm
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;验证安装：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;node --version
npm --version
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;检查网络环境&lt;/h3&gt;
&lt;p&gt;如果终端无法正常访问外网，安装和登录都可能失败。
可以先测试当前出口 IP：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;curl ipin.io
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;安装 Codex CLI&lt;/h2&gt;
&lt;h3&gt;方式 1：npm 安装（推荐）&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;npm install -g @openai/codex
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;验证是否安装成功：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;codex --version
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;出现版本号即为成功。&lt;/p&gt;
&lt;h3&gt;方式 2：Homebrew 安装（可选）&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;brew install --cask codex
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这条路径适合习惯用 Homebrew 管理工具的用户，但版本更新节奏可能和 npm 不一致。&lt;/p&gt;
&lt;h2&gt;登录与鉴权&lt;/h2&gt;
&lt;p&gt;Codex CLI 需要先登录才能使用。&lt;/p&gt;
&lt;h3&gt;交互登录&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;codex login
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;查看登录状态：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;codex login status
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;使用 API Key 登录&lt;/h3&gt;
&lt;p&gt;如果你已有 API Key，可以通过 stdin 方式登录：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;export OPENAI_API_KEY=&quot;sk-xxxx&quot;
printenv OPENAI_API_KEY | codex login --with-api-key
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;退出登录：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;codex logout
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;启动方式&lt;/h2&gt;
&lt;h3&gt;交互模式（最常用）&lt;/h3&gt;
&lt;p&gt;进入项目目录后直接运行：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;cd /path/to/your/project
codex
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;也可以在启动时附带首条需求：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;codex &quot;帮我先梳理这个仓库的目录结构，然后给出重构计划&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;非交互模式（自动化）&lt;/h3&gt;
&lt;p&gt;适合 CI、脚本、批处理任务：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;codex exec &quot;检查 src 下的 TypeScript 类型错误并给出修复建议&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;管道模式（stdin）&lt;/h3&gt;
&lt;p&gt;把其他命令输出直接喂给 Codex：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git diff | codex exec &quot;根据这份改动写一个规范的 commit message&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;常用子命令速查&lt;/h2&gt;
&lt;p&gt;| 命令 | 作用 |
|------|------|
| &lt;code&gt;codex&lt;/code&gt; | 启动交互式 TUI |
| &lt;code&gt;codex exec&lt;/code&gt; | 非交互执行一次任务 |
| &lt;code&gt;codex review&lt;/code&gt; | 非交互代码审查 |
| &lt;code&gt;codex login&lt;/code&gt; | 登录管理 |
| &lt;code&gt;codex logout&lt;/code&gt; | 清除本地登录凭据 |
| &lt;code&gt;codex resume&lt;/code&gt; | 恢复历史会话 |
| &lt;code&gt;codex fork&lt;/code&gt; | 从历史会话分叉新会话 |
| &lt;code&gt;codex apply &amp;#x3C;TASK_ID&gt;&lt;/code&gt; | 应用某个任务产出的 diff |
| &lt;code&gt;codex mcp&lt;/code&gt; | 管理 MCP 服务 |
| &lt;code&gt;codex completion&lt;/code&gt; | 生成 shell 补全脚本 |
| &lt;code&gt;codex sandbox&lt;/code&gt; | 在 Codex 提供的沙箱中运行命令 |&lt;/p&gt;
&lt;h2&gt;高频命令示例&lt;/h2&gt;
&lt;h3&gt;1) 审查当前未提交改动&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;codex review --uncommitted
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;2) 和指定基线分支做审查&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;codex review --base main
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;3) 继续最近一次会话&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;codex resume --last
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;4) 在指定目录启动&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;codex -C /path/to/repo
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;5) 指定模型启动&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;codex -m gpt-5.4
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;6) 开启 web search 能力&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;codex --search
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;常见运行参数说明&lt;/h2&gt;
&lt;h3&gt;沙箱与安全&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-s, --sandbox read-only|workspace-write|danger-full-access&lt;/code&gt;
控制命令执行权限范围。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--full-auto&lt;/code&gt;
低摩擦自动执行（默认沙箱是 &lt;code&gt;workspace-write&lt;/code&gt;）。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--dangerously-bypass-approvals-and-sandbox&lt;/code&gt;
跳过审批与沙箱，风险极高，只建议在外部已隔离环境使用。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;上下文与目录&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-C, --cd &amp;#x3C;DIR&gt;&lt;/code&gt;
指定工作目录。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--add-dir &amp;#x3C;DIR&gt;&lt;/code&gt;
给当前会话增加额外可写目录。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;模型与配置&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-m, --model &amp;#x3C;MODEL&gt;&lt;/code&gt;
指定模型。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-p, --profile &amp;#x3C;CONFIG_PROFILE&gt;&lt;/code&gt;
使用配置文件中的 profile。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-c, --config key=value&lt;/code&gt;
临时覆写 &lt;code&gt;~/.codex/config.toml&lt;/code&gt; 的配置项。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Shell 补全（可选）&lt;/h2&gt;
&lt;p&gt;以 &lt;code&gt;zsh&lt;/code&gt; 为例：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;codex completion zsh
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;可以把输出重定向到你的补全目录并在 shell 配置中加载，之后 Tab 补全会更顺手。&lt;/p&gt;
&lt;h2&gt;常见问题&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Q: 提示 &lt;code&gt;command not found: codex&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;检查 npm 全局 bin 目录是否在 PATH 中：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;npm config get prefix
export PATH=&quot;$(npm config get prefix)/bin:$PATH&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Q: 如何升级 Codex CLI？&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;npm update -g @openai/codex
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Q: 如何确认当前有哪些命令可用？&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;codex --help
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;小结&lt;/h2&gt;
&lt;p&gt;Codex CLI 的核心价值是把 AI 代理能力直接带到终端工作流里。
如果你习惯命令行开发，先掌握这三件事就够用了：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;codex&lt;/code&gt;（交互）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;codex exec&lt;/code&gt;（自动化）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;codex review&lt;/code&gt;（审查改动）&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;剩下的能力，再根据项目需求逐步加上就行。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/120188807_p0_master1200.1lcf3tjzx5.webp"/><enclosure url="https://pic.hana0721.top/120188807_p0_master1200.1lcf3tjzx5.webp"/></item><item><title>Vibe Coding For AI 2: Claude CLI 安装与使用指南</title><link>https://agusexp25.top/blog/vibe-coding-2</link><guid isPermaLink="true">https://agusexp25.top/blog/vibe-coding-2</guid><description>面向 macOS 和 Linux 用户的 Claude CLI 完整教程，从安装到熟练使用，覆盖核心功能与常用指令。</description><pubDate>Sat, 18 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;本文内容由 AI 生成，主要供博主自用参考，不保证完全准确，请以官方文档为准。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;什么是 Claude CLI？&lt;/h2&gt;
&lt;p&gt;Claude CLI（也叫 Claude Code）是 Anthropic 官方推出的命令行 AI 编程助手。
和 IDE 插件不同，它直接运行在终端里，能够读取、修改你的代码文件，执行命令，甚至帮你管理 Git 工作流。
对于习惯在终端工作的开发者来说，这是目前体验最好的 Coding Agent 之一。&lt;/p&gt;
&lt;p&gt;本文面向 macOS 和 Linux 用户，带你从零开始安装并熟练使用 Claude CLI。&lt;/p&gt;
&lt;h2&gt;安装前准备&lt;/h2&gt;
&lt;h3&gt;安装 Node.js&lt;/h3&gt;
&lt;p&gt;Claude CLI 通过 &lt;code&gt;npm&lt;/code&gt; 分发，所以首先需要确保系统上有 Node.js（版本 &gt;= 18）。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;macOS（推荐用 Homebrew）：&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;brew install node
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Linux（Ubuntu/Debian）：&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Linux（Arch）：&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo pacman -S nodejs npm
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;安装完成后验证：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;node --version   # 应该 &gt;= 18
npm --version
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;检查网络环境&lt;/h3&gt;
&lt;p&gt;Claude CLI 需要访问 Anthropic 的 API，国内用户需要确保终端走代理。
可以用以下命令检查当前 IP：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;curl ipin.io
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果返回的是国内 IP，需要先配置好终端代理再继续。&lt;/p&gt;
&lt;h2&gt;安装 Claude CLI&lt;/h2&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;npm install -g @anthropic-ai/claude-code
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;安装完成后验证：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;claude --version
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;出现版本号即为安装成功。&lt;/p&gt;
&lt;h2&gt;配置 API Key&lt;/h2&gt;
&lt;h3&gt;获取 API Key&lt;/h3&gt;
&lt;p&gt;前往 &lt;a href=&quot;https://console.anthropic.com/&quot;&gt;Anthropic Console&lt;/a&gt; 注册账号，进入 &lt;code&gt;API Keys&lt;/code&gt; 页面创建一个新的密钥。&lt;/p&gt;
&lt;p&gt;如果不想直接使用官方 API（价格较贵），也可以使用 &lt;a href=&quot;https://api.ikuncode.cc/&quot;&gt;Ikuncode&lt;/a&gt; 等中转服务，配置方式相同。&lt;/p&gt;
&lt;h3&gt;设置环境变量&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;临时设置（当前终端会话有效）：&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;export ANTHROPIC_API_KEY=&quot;sk-ant-xxxxxxxx&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;永久设置（推荐）：&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;macOS/Linux 用户将以下内容添加到 &lt;code&gt;~/.zshrc&lt;/code&gt; 或 &lt;code&gt;~/.bashrc&lt;/code&gt;：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;export ANTHROPIC_API_KEY=&quot;sk-ant-xxxxxxxx&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;然后重新加载配置：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;source ~/.zshrc   # 或 source ~/.bashrc
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;使用中转 API&lt;/h3&gt;
&lt;p&gt;如果使用第三方中转服务，还需要额外设置 API 地址：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;export ANTHROPIC_BASE_URL=&quot;https://你的中转地址/v1&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;启动 Claude CLI&lt;/h2&gt;
&lt;p&gt;进入你的项目目录，直接运行：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;cd /path/to/your/project
claude
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;首次启动会进入一个交互式 TUI 界面，类似下图的对话框。
你可以直接用自然语言描述你想做的事，Claude 会自动读取项目文件、执行命令、修改代码。&lt;/p&gt;
&lt;h2&gt;核心使用模式&lt;/h2&gt;
&lt;h3&gt;交互模式（默认）&lt;/h3&gt;
&lt;p&gt;直接运行 &lt;code&gt;claude&lt;/code&gt; 进入对话界面，这是最常用的模式。
在这里你可以持续对话，Claude 会记住整个会话的上下文。&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;claude
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;单次执行模式&lt;/h3&gt;
&lt;p&gt;如果只想执行一个任务，不需要进入交互界面：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;claude -p &quot;帮我写一个读取 CSV 文件的 Python 函数&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;-p&lt;/code&gt; 是 &lt;code&gt;--print&lt;/code&gt; 的缩写，执行完毕后直接退出，适合脚本集成。&lt;/p&gt;
&lt;h3&gt;管道模式&lt;/h3&gt;
&lt;p&gt;Claude CLI 支持从标准输入读取内容，非常适合配合其他命令使用：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;cat error.log | claude -p &quot;分析这个错误日志，告诉我问题在哪里&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git diff | claude -p &quot;帮我写一个 commit message&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;常用斜杠命令&lt;/h2&gt;
&lt;p&gt;在交互模式下，输入 &lt;code&gt;/&lt;/code&gt; 可以触发内置命令。&lt;/p&gt;
&lt;h3&gt;会话管理&lt;/h3&gt;
&lt;p&gt;| 命令 | 功能 |
|------|------|
| &lt;code&gt;/help&lt;/code&gt; | 查看所有可用命令及说明 |
| &lt;code&gt;/clear&lt;/code&gt; | 清空当前对话上下文，重新开始 |
| &lt;code&gt;/compact [说明]&lt;/code&gt; | 压缩对话历史节省 token，可附加保留说明 |
| &lt;code&gt;/cost&lt;/code&gt; | 查看当前会话的 token 消耗和费用估算 |
| &lt;code&gt;/quit&lt;/code&gt; 或 &lt;code&gt;/exit&lt;/code&gt; | 退出 Claude CLI |&lt;/p&gt;
&lt;h3&gt;模型与配置&lt;/h3&gt;
&lt;p&gt;| 命令 | 功能 |
|------|------|
| &lt;code&gt;/model&lt;/code&gt; | 交互式切换当前使用的模型 |
| &lt;code&gt;/doctor&lt;/code&gt; | 检查环境配置、API 连通性是否正常 |
| &lt;code&gt;/init&lt;/code&gt; | 在当前项目生成 &lt;code&gt;CLAUDE.md&lt;/code&gt; 配置文件 |
| &lt;code&gt;/config&lt;/code&gt; | 查看或修改 Claude CLI 的配置项 |
| &lt;code&gt;/vim&lt;/code&gt; | 切换到 Vim 键位模式（再次输入关闭） |&lt;/p&gt;
&lt;h3&gt;记忆与上下文&lt;/h3&gt;
&lt;p&gt;| 命令 | 功能 |
|------|------|
| &lt;code&gt;/memory&lt;/code&gt; | 查看和管理跨会话的持久记忆内容 |
| &lt;code&gt;/context&lt;/code&gt; | 查看当前上下文窗口的使用情况 |&lt;/p&gt;
&lt;h3&gt;代码与项目&lt;/h3&gt;
&lt;p&gt;| 命令 | 功能 |
|------|------|
| &lt;code&gt;/review&lt;/code&gt; | 对当前 git 改动进行代码审查 |
| &lt;code&gt;/pr_comments&lt;/code&gt; | 拉取并展示当前 PR 的评论 |
| &lt;code&gt;/bug&lt;/code&gt; | 快速进入 bug 报告模式，引导描述问题 |
| &lt;code&gt;/terminal-setup&lt;/code&gt; | 配置终端 shell 集成（如 iTerm2 / zsh） |&lt;/p&gt;
&lt;h3&gt;权限管理&lt;/h3&gt;
&lt;p&gt;| 命令 | 功能 |
|------|------|
| &lt;code&gt;/permissions&lt;/code&gt; | 查看当前会话的工具权限设置 |
| &lt;code&gt;/allowed-tools&lt;/code&gt; | 列出当前允许自动执行的工具列表 |&lt;/p&gt;
&lt;h3&gt;自定义 Slash 命令&lt;/h3&gt;
&lt;p&gt;除了内置命令，你还可以在 &lt;code&gt;.claude/commands/&lt;/code&gt; 目录下创建自定义命令。
每个 &lt;code&gt;.md&lt;/code&gt; 文件对应一个命令，文件名即命令名：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;.claude/
└── commands/
    ├── deploy.md      # /deploy
    └── test-all.md    # /test-all
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;文件内容就是发给 Claude 的 prompt 模板，支持 &lt;code&gt;$ARGUMENTS&lt;/code&gt; 占位符接收参数：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-markdown&quot;&gt;# deploy.md
运行 `bun build` 构建项目，然后执行 `$ARGUMENTS` 部署到对应环境。
部署前先确认没有未提交的改动。
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;使用时：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;/deploy production
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;CLAUDE.md：项目级配置&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;/init&lt;/code&gt; 命令会在项目根目录生成一个 &lt;code&gt;CLAUDE.md&lt;/code&gt; 文件，这是 Claude 的&quot;项目说明书&quot;。
你可以在里面写：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;项目架构说明&lt;/li&gt;
&lt;li&gt;常用命令（如何启动、测试、构建）&lt;/li&gt;
&lt;li&gt;代码规范和约定&lt;/li&gt;
&lt;li&gt;不希望 Claude 修改的文件或目录&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;每次启动 Claude CLI，它都会自动读取这个文件，从而更好地理解你的项目。&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-markdown&quot;&gt;# CLAUDE.md 示例

## 项目说明
这是一个 FastAPI 后端项目，使用 PostgreSQL 数据库。

## 常用命令
- `uvicorn main:app --reload` - 启动开发服务器
- `pytest` - 运行测试
- `alembic upgrade head` - 执行数据库迁移

## 注意事项
- 不要修改 `migrations/` 目录下的文件
- 所有 API 接口需要添加类型注解
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;权限控制&lt;/h2&gt;
&lt;p&gt;Claude CLI 在执行文件操作或运行命令时，默认会弹出确认提示。
你可以通过以下方式调整权限策略：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;自动允许所有操作（谨慎使用）：&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;claude --dangerously-skip-permissions
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;只允许读取，不允许写入：&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;在对话中告诉 Claude &quot;只读模式，不要修改任何文件&quot; 即可，它会遵守这个约束。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;针对特定工具设置权限：&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;在 &lt;code&gt;CLAUDE.md&lt;/code&gt; 或项目的 &lt;code&gt;.claude/settings.json&lt;/code&gt; 中可以精细控制哪些操作自动允许、哪些需要确认。&lt;/p&gt;
&lt;h2&gt;实用技巧&lt;/h2&gt;
&lt;h3&gt;多文件操作&lt;/h3&gt;
&lt;p&gt;Claude CLI 可以同时处理多个文件，直接描述需求即可：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;帮我把项目里所有的 console.log 替换成 logger.info，
并且确保 logger 已经在每个文件里正确导入
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;结合 Git 工作流&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;帮我查看最近 5 个 commit 的改动，
然后写一个总结性的 release note
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;当前分支有哪些改动还没有提交？帮我整理成一个 commit
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;代码审查&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;帮我审查 src/auth.py 这个文件，
重点关注安全漏洞和性能问题
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;调试辅助&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;python main.py 2&gt;&amp;#x26;1 | claude -p &quot;程序报错了，帮我分析原因并给出修复方案&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;常见问题&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Q: 提示 &lt;code&gt;command not found: claude&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;检查 npm 全局安装路径是否在 PATH 里：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;npm config get prefix
# 将输出的路径加上 /bin 添加到 PATH
export PATH=&quot;$(npm config get prefix)/bin:$PATH&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Q: API 请求失败，提示 401&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;检查 &lt;code&gt;ANTHROPIC_API_KEY&lt;/code&gt; 是否正确设置，可以用以下命令确认：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;echo $ANTHROPIC_API_KEY
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Q: 响应很慢或超时&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;检查网络代理是否正常，确保终端流量走代理：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;export https_proxy=http://127.0.0.1:7890
export http_proxy=http://127.0.0.1:7890
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Q: 如何更新到最新版本&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;npm update -g @anthropic-ai/claude-code
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;小结&lt;/h2&gt;
&lt;p&gt;Claude CLI 的核心优势在于它能直接操作你的代码库，而不只是给你看代码片段。
配置好之后，日常的重构、调试、写测试、整理 commit 这些事情都可以交给它来做，
你只需要用自然语言描述目标就好。&lt;/p&gt;
&lt;p&gt;如果你之前用过 Cursor 或者 GitHub Copilot，Claude CLI 更像是一个能主动干活的同事，
而不只是一个代码补全工具。上手之后，工作流会有质的变化。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/104786218_p0_master1200.8vnievbkwk.webp"/><enclosure url="https://pic.hana0721.top/104786218_p0_master1200.8vnievbkwk.webp"/></item><item><title>SSH 断连不掉任务：tmux 入门教程</title><link>https://agusexp25.top/blog/tmux-ssh-session-management</link><guid isPermaLink="true">https://agusexp25.top/blog/tmux-ssh-session-management</guid><description>针对 SSH 网络不稳定场景的 tmux 快速教程：会话创建、分离重连、窗口分屏与常用快捷键。</description><pubDate>Fri, 17 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;远程开发最常见的痛点之一：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;本地网络波动&lt;/li&gt;
&lt;li&gt;SSH 会话断开&lt;/li&gt;
&lt;li&gt;正在跑的脚本一起中断&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果你经常在服务器上跑训练、部署或长时间任务，&lt;code&gt;tmux&lt;/code&gt; 基本是必备工具。&lt;/p&gt;
&lt;h2&gt;1. tmux 能解决什么&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;tmux&lt;/code&gt; 是终端复用器。你可以把它理解成“可恢复的终端容器”：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;任务跑在 tmux 会话里，不依赖当前 SSH 连接&lt;/li&gt;
&lt;li&gt;你断网、关电脑、重连后都能继续接上原来的终端状态&lt;/li&gt;
&lt;li&gt;一个 SSH 连接里还能开多个窗口和分屏&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;一句话：&lt;strong&gt;把任务和网络连接解耦&lt;/strong&gt;。&lt;/p&gt;
&lt;h2&gt;2. 安装 tmux&lt;/h2&gt;
&lt;p&gt;Ubuntu / Debian:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo apt update
sudo apt install -y tmux
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;CentOS / RHEL:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo yum install -y tmux
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;macOS (Homebrew):&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;brew install tmux
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;检查版本：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;tmux -V
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;3. 第一次使用（最小闭环）&lt;/h2&gt;
&lt;p&gt;下面这套流程，够你马上上手：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;登录服务器后创建会话&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;tmux new -s work
&lt;/code&gt;&lt;/pre&gt;
&lt;ol start=&quot;2&quot;&gt;
&lt;li&gt;在会话里启动任务（例如训练脚本）&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;python train.py
&lt;/code&gt;&lt;/pre&gt;
&lt;ol start=&quot;3&quot;&gt;
&lt;li&gt;需要离开时，分离会话（任务继续跑）&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;按 &lt;code&gt;Ctrl+b&lt;/code&gt;，松开后再按 &lt;code&gt;d&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ol start=&quot;4&quot;&gt;
&lt;li&gt;以后重连服务器，恢复会话&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;tmux attach -t work
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;4. 你会用到的核心命令&lt;/h2&gt;
&lt;p&gt;列出所有会话：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;tmux ls
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;新建会话：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;tmux new -s session_name
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;连接会话：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;tmux attach -t session_name
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;分离当前会话：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;tmux detach
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;关闭会话：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;tmux kill-session -t session_name
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;5. 常用快捷键（先记这几个）&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;tmux&lt;/code&gt; 默认前缀键是 &lt;code&gt;Ctrl+b&lt;/code&gt;，后面所有快捷键都以它开头。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Ctrl+b&lt;/code&gt; 然后 &lt;code&gt;d&lt;/code&gt;：分离会话&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Ctrl+b&lt;/code&gt; 然后 &lt;code&gt;c&lt;/code&gt;：新建窗口&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Ctrl+b&lt;/code&gt; 然后 &lt;code&gt;n&lt;/code&gt; / &lt;code&gt;p&lt;/code&gt;：切换下一个 / 上一个窗口&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Ctrl+b&lt;/code&gt; 然后 &lt;code&gt;%&lt;/code&gt;：左右分屏&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Ctrl+b&lt;/code&gt; 然后 &lt;code&gt;&quot;&lt;/code&gt;：上下分屏&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Ctrl+b&lt;/code&gt; 然后 &lt;code&gt;x&lt;/code&gt;：关闭当前 pane&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;6. SSH 场景下的推荐习惯&lt;/h2&gt;
&lt;h3&gt;习惯 A：任务一律在 tmux 里启动&lt;/h3&gt;
&lt;p&gt;不要直接在普通 SSH shell 里跑长任务。先 &lt;code&gt;tmux new -s xxx&lt;/code&gt;，再启动脚本。&lt;/p&gt;
&lt;h3&gt;习惯 B：会话命名有语义&lt;/h3&gt;
&lt;p&gt;例如：&lt;code&gt;train&lt;/code&gt;, &lt;code&gt;deploy&lt;/code&gt;, &lt;code&gt;debug&lt;/code&gt;，方便你 &lt;code&gt;tmux ls&lt;/code&gt; 后快速找到目标。&lt;/p&gt;
&lt;h3&gt;习惯 C：用日志文件做双保险&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;python train.py 2&gt;&amp;#x26;1 | tee train.log
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;即使你暂时没 attach，也能通过日志确认任务状态。&lt;/p&gt;
&lt;h2&gt;7. 常见问题&lt;/h2&gt;
&lt;h3&gt;Q1: &lt;code&gt;tmux attach&lt;/code&gt; 提示找不到会话&lt;/h3&gt;
&lt;p&gt;先看会话列表：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;tmux ls
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果确实不存在，说明之前的会话已经退出，需要重新创建。&lt;/p&gt;
&lt;h3&gt;Q2: 连接时提示 &lt;code&gt;sessions should be nested with care&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;你可能在一个 tmux 里又 attach 了另一个 tmux。通常先分离当前层，回到普通 shell 再 attach 目标会话。&lt;/p&gt;
&lt;h3&gt;Q3: 如何退出 tmux 并结束任务&lt;/h3&gt;
&lt;p&gt;在 tmux 的 shell 中执行 &lt;code&gt;exit&lt;/code&gt;（或终止前台任务），该 pane 关闭；会话所有 pane 都退出后，会话会自动结束。&lt;/p&gt;
&lt;h2&gt;8. 一条推荐工作流&lt;/h2&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;ssh your_server
tmux new -s train
python train.py 2&gt;&amp;#x26;1 | tee train.log
# 按 Ctrl+b, d 分离
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;之后任意时间：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;ssh your_server
tmux attach -t train
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这样即使 SSH 中断，你的任务也不会跟着掉。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/126903857_p0_master1200.2dpaix2l3u.webp"/><enclosure url="https://pic.hana0721.top/126903857_p0_master1200.2dpaix2l3u.webp"/></item><item><title>如何把本地项目上传到 GitHub 仓库（完整教程）</title><link>https://agusexp25.top/blog/upload-project-to-github</link><guid isPermaLink="true">https://agusexp25.top/blog/upload-project-to-github</guid><description>从创建仓库到首次 push，一步步教你把本地项目上传到 GitHub，并附 SSH/HTTPS 两种方式和常见报错排查。</description><pubDate>Thu, 16 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;很多同学第一次上传项目时，最容易卡在三件事：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;没初始化 Git&lt;/li&gt;
&lt;li&gt;远程仓库地址配错&lt;/li&gt;
&lt;li&gt;首次认证失败（SSH key / Token）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这篇教程按「从 0 到可用」整理，跟着做一遍就可以把自己的项目稳定上传到 GitHub。&lt;/p&gt;
&lt;h2&gt;0. 准备工作&lt;/h2&gt;
&lt;p&gt;先确认你已经安装好 Git：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git --version
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果能看到版本号（例如 &lt;code&gt;git version 2.x.x&lt;/code&gt;），就可以继续。&lt;/p&gt;
&lt;h2&gt;1. 在 GitHub 上创建空仓库&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;打开 GitHub，点击右上角 &lt;code&gt;+&lt;/code&gt; -&gt; &lt;code&gt;New repository&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;填写仓库名（例如 &lt;code&gt;my-first-project&lt;/code&gt;）&lt;/li&gt;
&lt;li&gt;选择 &lt;code&gt;Public&lt;/code&gt; 或 &lt;code&gt;Private&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;先不要勾选 &lt;code&gt;Add a README file&lt;/code&gt;（避免和本地历史冲突）&lt;/li&gt;
&lt;li&gt;点击 &lt;code&gt;Create repository&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;创建后页面会给你一个仓库地址，通常有两种：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;HTTPS：&lt;code&gt;https://github.com/你的用户名/仓库名.git&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;SSH：&lt;code&gt;git@github.com:你的用户名/仓库名.git&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;2. 本地项目初始化 Git&lt;/h2&gt;
&lt;p&gt;进入你的项目目录，然后执行：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git init
git add .
git commit -m &quot;init: first commit&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果你还没有配置 Git 身份，先设置（只需一次）：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git config --global user.name &quot;你的名字&quot;
git config --global user.email &quot;你的邮箱&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;3. 添加 &lt;code&gt;.gitignore&lt;/code&gt;（强烈建议）&lt;/h2&gt;
&lt;p&gt;上传前，建议把不该入库的文件排除掉，比如依赖、构建产物、环境变量。&lt;/p&gt;
&lt;p&gt;常见示例（按你的项目类型调整）：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-gitignore&quot;&gt;node_modules/
dist/
.env
.DS_Store
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果你在 &lt;code&gt;git add .&lt;/code&gt; 之前忘了加 &lt;code&gt;.gitignore&lt;/code&gt;，先补上，然后再执行一次：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git add .
git commit -m &quot;chore: add gitignore&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;4. 绑定远程仓库并推送&lt;/h2&gt;
&lt;p&gt;把 &lt;code&gt;origin&lt;/code&gt; 指向你刚创建的 GitHub 仓库：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git remote add origin &amp;#x3C;你的仓库地址&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;查看是否添加成功：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git remote -v
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;然后推送：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git branch -M main
git push -u origin main
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;首次成功后，后续只需要：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git add .
git commit -m &quot;feat: your message&quot;
git push
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;5. 认证方式选择：HTTPS 还是 SSH&lt;/h2&gt;
&lt;h3&gt;方式 A：HTTPS（简单）&lt;/h3&gt;
&lt;p&gt;优点：配置快。&lt;/p&gt;
&lt;p&gt;注意：GitHub 不再支持账号密码直登，通常要用 &lt;code&gt;Personal Access Token&lt;/code&gt;。&lt;/p&gt;
&lt;h4&gt;&lt;code&gt;git push&lt;/code&gt; 后提示输入 password，应该填什么？&lt;/h4&gt;
&lt;p&gt;如果你的远程地址是 HTTPS（&lt;code&gt;https://github.com/...&lt;/code&gt;），这里的 &lt;code&gt;password&lt;/code&gt; 不是 GitHub 登录密码，而是 &lt;code&gt;Personal Access Token (PAT)&lt;/code&gt;。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;GitHub 右上角头像 -&gt; &lt;code&gt;Settings&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Developer settings&lt;/code&gt; -&gt; &lt;code&gt;Personal access tokens&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;选择 &lt;code&gt;Tokens (classic)&lt;/code&gt;（新手更容易上手）&lt;/li&gt;
&lt;li&gt;点击 &lt;code&gt;Generate new token&lt;/code&gt;，勾选 &lt;code&gt;repo&lt;/code&gt; 权限&lt;/li&gt;
&lt;li&gt;生成后复制 token（只显示一次）&lt;/li&gt;
&lt;li&gt;下次 &lt;code&gt;git push&lt;/code&gt; 时输入：
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Username&lt;/code&gt;：你的 GitHub 用户名&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Password&lt;/code&gt;：刚才生成的 PAT&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;可以先确认远程地址类型：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git remote -v
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果显示的是 &lt;code&gt;https://github.com/...&lt;/code&gt;，就一定要用 PAT。&lt;/p&gt;
&lt;h3&gt;方式 B：SSH（推荐长期使用）&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;生成密钥：&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;ssh-keygen -t ed25519 -C &quot;your_email@example.com&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;ol start=&quot;2&quot;&gt;
&lt;li&gt;拷贝公钥内容（&lt;code&gt;~/.ssh/id_ed25519.pub&lt;/code&gt;）&lt;/li&gt;
&lt;li&gt;到 GitHub -&gt; &lt;code&gt;Settings&lt;/code&gt; -&gt; &lt;code&gt;SSH and GPG keys&lt;/code&gt; -&gt; &lt;code&gt;New SSH key&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;添加后测试：&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;ssh -T git@github.com
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;看到 &lt;code&gt;Hi &amp;#x3C;username&gt;!&lt;/code&gt; 类似提示说明配置成功。&lt;/p&gt;
&lt;h2&gt;6. 常见报错与解决&lt;/h2&gt;
&lt;h3&gt;&lt;code&gt;remote origin already exists&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;说明你之前加过远程地址：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git remote remove origin
git remote add origin &amp;#x3C;你的仓库地址&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;&lt;code&gt;src refspec main does not match any&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;通常是你还没提交过代码。先提交一次：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git add .
git commit -m &quot;init&quot;
git branch -M main
git push -u origin main
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;&lt;code&gt;Permission denied (publickey)&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;说明 SSH 密钥未配置好。按上面的 SSH 步骤重新检查：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;本地是否有密钥文件&lt;/li&gt;
&lt;li&gt;GitHub 是否已添加公钥&lt;/li&gt;
&lt;li&gt;远程地址是否为 SSH 格式&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;code&gt;rejected&lt;/code&gt; / &lt;code&gt;non-fast-forward&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;远程有新提交，本地没同步：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git pull --rebase origin main
git push
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;7. 最小工作流（记住这 3 行）&lt;/h2&gt;
&lt;p&gt;日常开发最常用：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git add .
git commit -m &quot;feat: 描述你这次改了什么&quot;
git push
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;到这里，你的项目已经可以稳定托管在 GitHub 上了。后续再学习分支协作（&lt;code&gt;git checkout -b&lt;/code&gt;）、Pull Request、CI/CD 就会顺很多。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/126839080_p0_master1200.232gprncye.webp"/><enclosure url="https://pic.hana0721.top/126839080_p0_master1200.232gprncye.webp"/></item><item><title>Ubuntu 24.04 安装 MATLAB R2024a</title><link>https://agusexp25.top/blog/matlab-ubuntu-24-04-install</link><guid isPermaLink="true">https://agusexp25.top/blog/matlab-ubuntu-24-04-install</guid><description>基于 Ubuntu 24.04 的 MATLAB R2024a 安装实操：挂载 ISO、图形安装、命令行启动配置、卸载流程。</description><pubDate>Thu, 16 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;这篇记录整理了我在 Ubuntu 24.04 上安装 MATLAB R2024a 的流程，重点是&lt;strong&gt;可复现&lt;/strong&gt;和&lt;strong&gt;后续维护方便&lt;/strong&gt;。&lt;/p&gt;
&lt;h2&gt;0. 准备条件&lt;/h2&gt;
&lt;p&gt;安装前请先确认：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;你有有效的 MathWorks 账号与许可证（个人/学校/单位均可）&lt;/li&gt;
&lt;li&gt;系统是 Ubuntu 24.04 x86_64&lt;/li&gt;
&lt;li&gt;磁盘空间建议至少 25 GB&lt;/li&gt;
&lt;li&gt;有图形界面（或你能通过远程桌面运行图形安装器）&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;1. 下载 MATLAB R2024a 安装包（官方）&lt;/h2&gt;
&lt;p&gt;建议使用 MathWorks 官方渠道下载，避免镜像被篡改或版本不一致：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;官网下载入口：&lt;code&gt;https://www.mathworks.com/downloads/&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;产品页（Linux）：&lt;code&gt;https://www.mathworks.com/products/matlab.html&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;想省事，可以直接在终端使用 &lt;code&gt;aria2c&lt;/code&gt; 下载（非官方）：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;aria2c &quot;magnet:?xt=urn:btih:5C78E38581C13CE9D63EA0222BEE4A6BF10328D3&amp;#x26;tr=http%3A%2F%2Fbt4.t-ru.org%2Fann%3Fmagnet&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;当然，博主也是用这个链接下载的，下载完成后会得到一个压缩包，解压后里面有 &lt;code&gt;R2024a_Linux.iso&lt;/code&gt; 安装镜像和 &lt;code&gt;Crack&lt;/code&gt; 文件夹。&lt;/p&gt;
&lt;h2&gt;2. 挂载安装镜像&lt;/h2&gt;
&lt;p&gt;如果你已经拿到官方安装镜像（例如 &lt;code&gt;R2024a_Linux.iso&lt;/code&gt;），可以先挂载：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo mkdir -p /mnt/matlab
sudo mount -o loop R2024a_Linux.iso /mnt/matlab
ls /mnt/matlab
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;能看到 &lt;code&gt;install&lt;/code&gt; 等文件说明挂载成功。&lt;/p&gt;
&lt;h2&gt;3. 启动安装器&lt;/h2&gt;
&lt;p&gt;在挂载目录中运行官方安装程序：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;cd /mnt/matlab
sudo ./install
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果没有问题，就会进入向导。首先，会要求你进行登陆。如果有账号直接登就好，如果没有账号就注册一个，博主是使用 gmail 注册的。
&lt;img src=&quot;https://pic.hana0721.top/mathwork-signin.3k8lr0yus2.webp&quot; alt=&quot;&quot;&gt;
登陆后，就会进入这个页面，让你输入密钥。这个时候先点击左上角的切换为 &lt;code&gt;I have a File Installation Key&lt;/code&gt;。
然后，打开 &lt;code&gt;Crack&lt;/code&gt; 文件夹，找到 &lt;code&gt;readme.txt&lt;/code&gt;，里面有若干密钥，选择 &lt;code&gt;Full desktop&lt;/code&gt; 版本的密钥输入即可。
&lt;img src=&quot;https://pic.hana0721.top/mathwork-key.32ik2g2sgi.webp&quot; alt=&quot;&quot;&gt;
接着，下一个页面会让你选择许可证，许可证的在 &lt;code&gt;Crack&lt;/code&gt; 文件夹里，选择 &lt;code&gt;license.lic&lt;/code&gt; 文件即可。
&lt;img src=&quot;https://pic.hana0721.top/mathwork-lic.5trmaiuxz1.webp&quot; alt=&quot;&quot;&gt;
选择安装路径，这里一般使用 &lt;code&gt;home/your_username/MATLAB/R2024a&lt;/code&gt;，也可以自定义路径。
&lt;img src=&quot;https://pic.hana0721.top/mathwork-path.1ow0yf33xd.webp&quot; alt=&quot;&quot;&gt;
选择需要的 &lt;code&gt;Product&lt;/code&gt;，如果不清楚可以默认全选。
&lt;img src=&quot;https://pic.hana0721.top/mathwork-product.6m4hs9kuj5.webp&quot; alt=&quot;&quot;&gt;
把共享信息和错误报告选项都取消勾选，保护隐私。
&lt;img src=&quot;https://pic.hana0721.top/mathwork-option.3ns7oreph1.webp&quot; alt=&quot;&quot;&gt;
等待安装完成即可，安装过程可能需要一些时间，耐心等待。
&lt;img src=&quot;https://pic.hana0721.top/mathwork-install.64eg3omvhb.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h2&gt;4. 配置命令行启动&lt;/h2&gt;
&lt;p&gt;安装完成后，为了在任意路径直接启动 MATLAB，可以创建软链接，确保你在 &lt;code&gt;Crack&lt;/code&gt; 路径下，执行以下命令。&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo cp libmwlmgrimpl.so ~/MATLAB/R2024a/bin/glnxa64/matlab_startup_plugins/lmgrimpl/
sudo ln -s ~/MATLAB/R2024a/bin/matlab /usr/local/bin/matlab
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;然后测试：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;matlab
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果能正常打开，说明安装与路径配置都已完成。&lt;/p&gt;
&lt;h2&gt;5. 卸载镜像&lt;/h2&gt;
&lt;p&gt;安装结束后可以卸载挂载点：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo umount /mnt/matlab
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;6. 删除（卸载）MATLAB R2024a&lt;/h2&gt;
&lt;p&gt;如果你需要完整卸载当前用户目录下的 MATLAB R2024a，可以按下面顺序执行：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo pkill -f MATLAB
sudo rm /usr/local/bin/matlab
sudo rm -rf ~/MATLAB/R2024a
sudo rm -rf ~/.matlab
ps aux | grep matlab
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果 &lt;code&gt;ps&lt;/code&gt; 仍有 MATLAB 相关进程，使用：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;kill -9 &amp;#x3C;PID&gt;
&lt;/code&gt;&lt;/pre&gt;</content:encoded><h:img src="https://pic.hana0721.top/70937229_p0_master1200.6bhnz4ob71.webp"/><enclosure url="https://pic.hana0721.top/70937229_p0_master1200.6bhnz4ob71.webp"/></item><item><title>A800 服务器深度学习环境标准配置教程</title><link>https://agusexp25.top/blog/linux-dl-env-setup</link><guid isPermaLink="true">https://agusexp25.top/blog/linux-dl-env-setup</guid><description>按统一标准配置 A800 研究环境：Driver 570+、CUDA Toolkit 12.8、cuDNN 9、PyTorch cu128，并附版本不一致排查。</description><pubDate>Wed, 15 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;这篇教程按一套固定标准来配 A800 服务器，目标是“可复现、可维护、少踩坑”。&lt;/p&gt;
&lt;h2&gt;标准配置（本文统一口径）&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;GPU: NVIDIA A800&lt;/li&gt;
&lt;li&gt;Driver: &lt;code&gt;570+&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;CUDA Toolkit: &lt;code&gt;12.8&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;cuDNN: &lt;code&gt;9.x (for CUDA 12)&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;PyTorch: &lt;code&gt;cu128&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;1. 基础系统初始化&lt;/h2&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo apt update &amp;#x26;&amp;#x26; sudo apt upgrade -y
sudo apt install -y git curl wget vim tmux htop btop unzip zip build-essential dkms linux-headers-$(uname -r)
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;2. 驱动检查（A800）&lt;/h2&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;nvidia-smi
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;重点看两项：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Driver Version&lt;/li&gt;
&lt;li&gt;GPU 是否识别到 A800&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;只要驱动正常，后续 PyTorch GPU 通常就能跑起来。&lt;/p&gt;
&lt;h2&gt;2.1 已安装过旧驱动时：卸载并重装（推荐流程）&lt;/h2&gt;
&lt;p&gt;如果你之前装过其他版本驱动，建议按下面流程“先卸载，再安装目标版本”。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;下面命令会卸载现有 NVIDIA 驱动并重启，建议在有控制台（云厂商 VNC/管理终端）保障的前提下执行。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;第一步：卸载旧驱动&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo systemctl stop nvidia-persistenced || true
sudo apt remove --purge -y &apos;^nvidia-.*&apos; &apos;^libnvidia-.*&apos;
sudo apt autoremove -y
sudo apt autoclean
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;可选：重启一次，确保旧模块完全退出。&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo reboot
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;第二步：安装目标驱动（A800 推荐 570）&lt;/h3&gt;
&lt;p&gt;先看系统推荐：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo ubuntu-drivers devices
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;然后二选一：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;自动安装推荐版本（最稳）：&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo ubuntu-drivers autoinstall
&lt;/code&gt;&lt;/pre&gt;
&lt;ol start=&quot;2&quot;&gt;
&lt;li&gt;手动指定 570（你当前目标）：&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo apt install -y nvidia-driver-570-server
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果 &lt;code&gt;nvidia-driver-570-server&lt;/code&gt; 不存在，可改用：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo apt install -y nvidia-driver-570
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;安装后重启：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo reboot
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;第三步：验收&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;nvidia-smi
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;确认点：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;能识别 A800&lt;/li&gt;
&lt;li&gt;Driver Version 为目标版本（如 570.x）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;通过后再继续下面 CUDA Toolkit 与 cuDNN 的安装步骤。&lt;/p&gt;
&lt;h2&gt;3. 清理旧 CUDA Toolkit&lt;/h2&gt;
&lt;p&gt;先检查当前 &lt;code&gt;nvcc&lt;/code&gt;：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;nvcc --version
which nvcc
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果是旧版本，先清理旧工具链：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo apt remove --purge -y &quot;cuda*&quot; &quot;nvidia-cuda-toolkit&quot; &quot;libcudnn*&quot;
sudo apt autoremove -y
sudo apt autoclean
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;4. 安装 CUDA Toolkit 12.8&lt;/h2&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt update
sudo apt install -y cuda-toolkit-12-8
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;写入环境变量（非常关键）：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;echo &apos;export PATH=/usr/local/cuda-12.8/bin:$PATH&apos; &gt;&gt; ~/.bashrc
echo &apos;export LD_LIBRARY_PATH=/usr/local/cuda-12.8/lib64:$LD_LIBRARY_PATH&apos; &gt;&gt; ~/.bashrc
source ~/.bashrc
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;验证：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;nvcc --version
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;应该看到 &lt;code&gt;release 12.8&lt;/code&gt;。&lt;/p&gt;
&lt;h2&gt;5. 安装 cuDNN 9（CUDA 12 系）&lt;/h2&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo apt install -y libcudnn9-cuda-12 libcudnn9-dev-cuda-12
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;5.1 验证 cuDNN 是否安装成功&lt;/h3&gt;
&lt;p&gt;先看系统层是否有 cuDNN 动态库：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo ldconfig
ldconfig -p | grep cudnn
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;预期输出应该至少包含类似下面的行（版本号可能不同）：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;libcudnn.so.9 (libc6,x86-64) =&gt; /usr/lib/x86_64-linux-gnu/libcudnn.so.9
libcudnn_ops.so.9 (libc6,x86-64) =&gt; /usr/lib/x86_64-linux-gnu/libcudnn_ops.so.9
libcudnn_cnn.so.9 (libc6,x86-64) =&gt; /usr/lib/x86_64-linux-gnu/libcudnn_cnn.so.9
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果没有任何输出，通常说明 cuDNN 没装好，或者库路径没被系统识别。&lt;/p&gt;
&lt;p&gt;再看包管理器是否安装到位：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;dpkg -l | grep -E &quot;libcudnn9|libcudnn9-dev&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;6. 安装 Miniconda 与终端初始化&lt;/h2&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
rm -f Miniconda3-latest-Linux-x86_64.sh
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;安装完成后，做终端初始化并使其生效：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;~/miniconda3/bin/conda init bash
source ~/.bashrc
conda --version
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;如果你用的是 &lt;code&gt;zsh&lt;/code&gt;，把 &lt;code&gt;bash&lt;/code&gt; 换成 &lt;code&gt;zsh&lt;/code&gt;：&lt;code&gt;conda init zsh&lt;/code&gt;。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;后续环境创建与包安装放在下一节进行。&lt;/p&gt;
&lt;h2&gt;7. 安装 PyTorch（cu128）&lt;/h2&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;pip install --upgrade pip
pip install torch torchvision torchaudio \
  --index-url https://download.pytorch.org/whl/cu128 \
  --extra-index-url https://pypi.tuna.tsinghua.edu.cn/simple
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果你网络到官方源很慢，可以先临时设置国内镜像，再执行安装：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
pip config set global.extra-index-url https://download.pytorch.org/whl/cu128
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;常用国内镜像（任选其一）：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;清华：&lt;code&gt;https://pypi.tuna.tsinghua.edu.cn/simple&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;中科大：&lt;code&gt;https://pypi.mirrors.ustc.edu.cn/simple&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;阿里云：&lt;code&gt;https://mirrors.aliyun.com/pypi/simple&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;腾讯云：&lt;code&gt;https://mirrors.cloud.tencent.com/pypi/simple&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;华为云：&lt;code&gt;https://repo.huaweicloud.com/repository/pypi/simple&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;例如改成中科大：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;pip config set global.index-url https://pypi.mirrors.ustc.edu.cn/simple
pip config set global.extra-index-url https://download.pytorch.org/whl/cu128
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;安装完成后，如需恢复默认：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;pip config unset global.index-url
pip config unset global.extra-index-url
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;验证 GPU：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;python - &amp;#x3C;&amp;#x3C;&apos;PY&apos;
import torch
print(&apos;torch:&apos;, torch.__version__)
print(&apos;cuda available:&apos;, torch.cuda.is_available())
if torch.cuda.is_available():
    print(&apos;device:&apos;, torch.cuda.get_device_name(0))
PY
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;8. 常用科研包（按需）&lt;/h2&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;pip install numpy scipy pandas matplotlib seaborn scikit-learn
pip install jupyterlab ipykernel tqdm pyyaml rich einops opencv-python
pip install tensorboard wandb
&lt;/code&gt;&lt;/pre&gt;</content:encoded><h:img src="https://pic.hana0721.top/143484250_p0_master1200.9ddjzdu0z1.webp"/><enclosure url="https://pic.hana0721.top/143484250_p0_master1200.9ddjzdu0z1.webp"/></item><item><title>在 VSCode 上配置 SSH 远程开发</title><link>https://agusexp25.top/blog/vscode-ssh-setup</link><guid isPermaLink="true">https://agusexp25.top/blog/vscode-ssh-setup</guid><description>覆盖 Windows / macOS / Linux 的 VSCode Remote SSH 配置：从生成密钥到连接远程服务器，再到常见问题排查。</description><pubDate>Tue, 14 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;在本地写代码、在远程 Linux 机器上跑环境，是现在很常见的开发方式。&lt;br&gt;
这篇教程按“能快速用起来”的思路整理，&lt;strong&gt;覆盖 Windows / macOS / Linux 三个平台&lt;/strong&gt;，默认你已经有一台可登录的 Linux 服务器（云主机 / 学校实验室机器均可）。&lt;/p&gt;
&lt;h2&gt;1. 安装 VSCode Remote SSH 插件&lt;/h2&gt;
&lt;p&gt;在 VSCode 扩展市场安装：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Remote - SSH&lt;/code&gt;（作者 Microsoft）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;安装完成后，左侧活动栏会出现远程图标。&lt;/p&gt;
&lt;h2&gt;2. 生成 SSH 密钥（本地，按系统）&lt;/h2&gt;
&lt;h3&gt;Windows（PowerShell）&lt;/h3&gt;
&lt;p&gt;先确认 OpenSSH 客户端可用：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-powershell&quot;&gt;ssh -V
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果提示找不到命令，请在「设置 -&gt; 可选功能」安装 OpenSSH Client。然后生成密钥：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-powershell&quot;&gt;ssh-keygen -t ed25519 -C &quot;your_email@example.com&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;默认路径通常是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;私钥：&lt;code&gt;C:\Users\你的用户名\.ssh\id_ed25519&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;公钥：&lt;code&gt;C:\Users\你的用户名\.ssh\id_ed25519.pub&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;macOS / Linux（Terminal）&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;ssh-keygen -t ed25519 -C &quot;your_email@example.com&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;默认路径：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;私钥：&lt;code&gt;~/.ssh/id_ed25519&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;公钥：&lt;code&gt;~/.ssh/id_ed25519.pub&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;关于 passphrase 提示（你遇到的这个）&lt;/h3&gt;
&lt;p&gt;当你看到：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;Enter passphrase for &quot;/Users/xxx/.ssh/id_ed25519&quot; (empty for no passphrase):
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这是在询问你的&lt;strong&gt;私钥密码&lt;/strong&gt;（不是服务器密码）。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;想要更安全：输入一个 passphrase（推荐）&lt;/li&gt;
&lt;li&gt;想省事：直接回车留空（不推荐）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果你已经设置了 passphrase，又不想每次都输入，可以把密钥加入 &lt;code&gt;ssh-agent&lt;/code&gt;。&lt;/p&gt;
&lt;h2&gt;3. 把公钥上传到服务器（按系统）&lt;/h2&gt;
&lt;p&gt;这一步会让你先输入一次&lt;strong&gt;服务器登录密码&lt;/strong&gt;。输入后如果没有报错，就是成功。&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;ssh-copy-id -i ~/.ssh/id_ed25519.pub -p your_port username@your_server_ip
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;4. 配置 SSH Host（本地）&lt;/h2&gt;
&lt;p&gt;编辑 SSH 配置文件：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Windows：&lt;code&gt;C:\Users\你的用户名\.ssh\config&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;macOS / Linux：&lt;code&gt;~/.ssh/config&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;添加：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-ssh-config&quot;&gt;Host my-server
  HostName your_server_ip
  User username
  Port your_port
  IdentityFile ~/.ssh/id_ed25519
  ServerAliveInterval 60
  ServerAliveCountMax 5
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果是 Windows，&lt;code&gt;IdentityFile&lt;/code&gt; 也可以写完整路径，例如：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-ssh-config&quot;&gt;IdentityFile C:/Users/YourName/.ssh/id_ed25519
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这样你后面直接 &lt;code&gt;ssh my-server&lt;/code&gt; 就能连，不用每次敲完整 IP。&lt;/p&gt;
&lt;h2&gt;5. 在 VSCode 连接远程机器&lt;/h2&gt;
&lt;p&gt;在 VSCode 中：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;Cmd/Ctrl + Shift + P&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;输入 &lt;code&gt;Remote-SSH: Connect to Host...&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;选择 &lt;code&gt;my-server&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;首次连接时确认 fingerprint&lt;/li&gt;
&lt;li&gt;如果弹出密码框，输入你的&lt;strong&gt;服务器密码&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;连接成功后，左下角会显示 &lt;code&gt;SSH: my-server&lt;/code&gt;。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;说明：即使你配置了密钥，首次仍可能要求你输入一次密码或 passphrase，属于正常现象。&lt;/p&gt;
&lt;/blockquote&gt;</content:encoded><h:img src="https://pic.hana0721.top/133376054_p0_master1200.1ziuqmv790.webp"/><enclosure url="https://pic.hana0721.top/133376054_p0_master1200.1ziuqmv790.webp"/></item><item><title>Vibe Coding For AI 1: Windows 上配置 Coding Agent 指南</title><link>https://agusexp25.top/blog/vibe-coding-1</link><guid isPermaLink="true">https://agusexp25.top/blog/vibe-coding-1</guid><description>学会在 Windows 上配置 Vibe Coding，提升开发效率和代码质量。</description><pubDate>Sat, 04 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;什么是 Vibe Coding？&lt;/h2&gt;
&lt;p&gt;Vibe Coding 是一种新兴的编程范式，旨在通过 AI 助手（Coding Agent）来提升开发效率和代码质量。
在 Vibe Coding 中，开发者与 AI 助手进行实时互动，AI 可以根据上下文提供代码建议、自动补全、错误检查等功能。
这种方式不仅加快了开发速度，还能帮助开发者更好地理解和优化代码。
在这篇文章中，教会你如何在 Windows 上配置 Vibe Coding。
对于 AI 供应商，考虑到经济实惠和易用性，推荐使用 &lt;a href=&quot;https://api.ikuncode.cc/&quot;&gt;Ikuncode&lt;/a&gt; 的中转服务。
本教程中使用的 CLI 工具是 &lt;a href=&quot;https://github.com/opencode-ai/opencode&quot;&gt;OpenCode&lt;/a&gt;，支持多种 AI 供应商，提供了丰富的功能和良好的用户体验。&lt;/p&gt;
&lt;h2&gt;OpenCode CLI 配置&lt;/h2&gt;
&lt;p&gt;首先，需要在 Windows 系统上打开终端，推荐使用 &lt;code&gt;PowerShell&lt;/code&gt;。
在启动栏中搜索 &lt;code&gt;PowerShell&lt;/code&gt; 即可，记得使用管理员权限运行。
咱们使用 &lt;code&gt;npm&lt;/code&gt; 来安装 &lt;code&gt;OpenCode&lt;/code&gt;，所以先要确保 Windows 上安装好了 &lt;code&gt;npm&lt;/code&gt;。
在安装之前，建议确认终端的代理情况，可以使用以下命令检查当前的代理设置：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;curl ipin.io
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果代理设置正确，会返回你的 IP 地址信息。如果没有魔法，下载 &lt;code&gt;OpenCode&lt;/code&gt; 可能会遇到网络问题。
接下来，使用以下命令安装 &lt;code&gt;Node.js&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;curl -o node-installer.msi https://nodejs.org/dist/v20.11.0/node-v20.11.0-x64.msi
node-installer.msi
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;安装完成后，可以使用以下命令验证安装，出现版本号即为成功。&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;node --version
npm --version
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;接下来，就可以安装 &lt;code&gt;OpenCode&lt;/code&gt; 啦，使用以下命令全局安装。&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;npm install -g opencode-ai
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;安装完成后，可以使用以下命令验证安装，出现以下页面即为成功。&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;opencode
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top//opencode.58hy7doj9k.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;其实，到这里就可以尝试进行 Vibe Coding 了，因为 &lt;code&gt;OpenCode&lt;/code&gt; 内置了一些免费的 AI 模型，可以直接使用。
不过，免费模型的性能和功能可能有限，如果想要更好的体验，建议配置一个更强大的 AI 供应商。&lt;/p&gt;
&lt;h2&gt;IkunCode 中转站 配置&lt;/h2&gt;
&lt;p&gt;IkunCode 是一个提供 AI 模型中转服务的平台，支持多种 AI 供应商，价格合理，使用方便。
首先，需要在 &lt;a href=&quot;https://api.ikuncode.cc/&quot;&gt;Ikuncode&lt;/a&gt; 官网注册一个账号，完成注册后登录。
&lt;a href=&quot;https://api.ikuncode.cc/&quot;&gt;Ikuncode&lt;/a&gt; 涵盖了多个 AI 供应商的模型，例如 &lt;code&gt;Anthropic&lt;/code&gt;、&lt;code&gt;OpenAI&lt;/code&gt;、&lt;code&gt;Google&lt;/code&gt; 等。
这里以 &lt;code&gt;OpenAI&lt;/code&gt; 的 &lt;code&gt;Codex-5.1&lt;/code&gt; 模型为例，演示如何配置 &lt;code&gt;OpenCode&lt;/code&gt; 使用 &lt;code&gt;Ikuncode&lt;/code&gt; 的中转服务。
当然，天下没有免费的午餐，想要使用这些模型，是需要烧钱的，这里选择 &lt;code&gt;Codex-5.1&lt;/code&gt; 也是因为比较实惠。
接下来，点击上方的 &lt;code&gt;控制台&lt;/code&gt;，可以看到自己的账户余额，点击 &lt;code&gt;钱包管理&lt;/code&gt;，即可进行充值。
充值完毕后，点击左侧的 &lt;code&gt;令牌管理&lt;/code&gt;，再点击 &lt;code&gt;添加令牌&lt;/code&gt;，即可创建一个新的 API 令牌。按照下图选择，即可配置出 &lt;code&gt;OpenAI&lt;/code&gt; 的密钥。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top//ikuncode-key.99txlschjq.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h2&gt;CC-Switch 密钥管理&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;CC-Switch&lt;/code&gt; 是一个开源的密钥管理工具，可以帮助开发者安全地存储和管理 API 密钥。
首先啦，就是要安装 &lt;code&gt;CC-Switch&lt;/code&gt;，进入 &lt;a href=&quot;https://github.com/farion1231/cc-switch/releases&quot;&gt;CC-Switch 发布页面&lt;/a&gt;，选择安装 &lt;code&gt;msi&lt;/code&gt; 版本，下载并安装。
接下来打开 &lt;code&gt;CC-Switch&lt;/code&gt;，点击上方的 &lt;code&gt;OpenCode&lt;/code&gt;，再点击 &lt;code&gt;添加密钥&lt;/code&gt;，按照咱的配置方案，输入以下信息，然后保存就好啦。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top//CC-Switch.pfx4ff7hb.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h2&gt;OpenCode 配置验证&lt;/h2&gt;
&lt;p&gt;配置完成后，就可以开始使用 &lt;code&gt;OpenCode&lt;/code&gt; 进行 Vibe Coding 了。
进入你的项目文件夹，运行 &lt;code&gt;opencode&lt;/code&gt; 命令启动 &lt;code&gt;OpenCode&lt;/code&gt; 啦。
首先，可以使用 &lt;code&gt;/models&lt;/code&gt; 命令查看当前可用的 AI 模型，确认 &lt;code&gt;OpenAI&lt;/code&gt; 的 &lt;code&gt;Codex-5.1&lt;/code&gt; 模型已经成功配置，然后选择切换。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top//opencode-models.2h8vzc36jt.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;OpenCode&lt;/code&gt; 提供了两种模型，分别是 &lt;code&gt;Build&lt;/code&gt; 和 &lt;code&gt;Plan&lt;/code&gt;，其中 &lt;code&gt;Build&lt;/code&gt; 模型适合生成代码，而 &lt;code&gt;Plan&lt;/code&gt; 模型适合生成开发计划和任务分解，使用 &lt;code&gt;Tab&lt;/code&gt; 键进行切换。
接下来，向 Agent 打个招呼，如果有回应，那么就配置成功啦！恭喜你进入 Vibe Coding 的世界了！&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top//opencode-hello.8adu8mx2iz.webp&quot; alt=&quot;&quot;&gt;&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/129563571_p0_master1200.1ziuqmv78w.webp"/><enclosure url="https://pic.hana0721.top/129563571_p0_master1200.1ziuqmv78w.webp"/></item><item><title>RL笔记（29）：推理模型的崛起 (GRPO &amp; PRM)</title><link>https://agusexp25.top/blog/rl-note-29</link><guid isPermaLink="true">https://agusexp25.top/blog/rl-note-29</guid><description>大模型训练的新范式：详解 DeepSeek 提出的 GRPO 如何彻底省去 Critic 网络，以及 PRM 如何通过过程监督让模型学会正确推理。</description><pubDate>Wed, 07 Jan 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;引言（Introduction）&lt;/h2&gt;
&lt;p&gt;在上一篇笔记中，我们介绍了经典的 &lt;strong&gt;PPO + RLHF&lt;/strong&gt; 流程。虽然 PPO 非常有效，但在训练超大规模语言模型时，它面临两个挑战：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;资源消耗巨大&lt;/strong&gt;：PPO 需要维护 Actor、Ref、Reward、Critic 四个模型，显存开销极高。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;结果导向的局限&lt;/strong&gt;：传统的奖励模型只对最终答案评分（ORM），而不关心推理过程。如果模型凑巧猜对了答案，也会得到高分，这会导致“走捷径”和幻觉。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;本章将介绍 &lt;strong&gt;GRPO&lt;/strong&gt; ——一种更轻量、更高效的策略优化算法，以及 &lt;strong&gt;PRM&lt;/strong&gt; ——一种对思维过程进行细粒度监督的奖励机制。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;GRPO (Group Relative Policy Optimization)&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;论文&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2402.03300&quot;&gt;DeepSeekMath: Pushing the Limits of Mathematical Reasoning in LLMs&lt;/a&gt;
&lt;strong&gt;应用&lt;/strong&gt;：DeepSeek-V3 / DeepSeek-R1&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;GRPO 的核心创新在于：&lt;strong&gt;彻底丢弃了 Critic 模型，利用组内相对排名来估计优势函数（Advantage）。&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;核心思想：组内相对评价&lt;/h3&gt;
&lt;p&gt;在 PPO 中，我们需要 Critic 网络来预测状态价值 $V(s)$，从而计算优势 $A = Q - V$。
而在 GRPO 中，对于每一个提示词（Prompt）$q$：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;让模型生成&lt;strong&gt;一组&lt;/strong&gt;不同的回复 ${o_1, o_2, o_3, ..., o_G}$（组大小为 $G$）。&lt;/li&gt;
&lt;li&gt;利用奖励模型（或规则奖励）计算出这一组回复的分数 ${r_1, r_2, r_3, ..., r_G}$。&lt;/li&gt;
&lt;li&gt;通过这组分数的&lt;strong&gt;相对强弱&lt;/strong&gt;来直接得出每个回复的优势。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;优势函数计算&lt;/h3&gt;
&lt;p&gt;第 $i$ 个回复的优势函数 $A_i$ 计算公式为：&lt;/p&gt;
&lt;p&gt;$$
A_i = \frac{r_i - \text{mean}(r_1, r_2, ..., r_G)}{\text{std}(r_1, r_2, ..., r_G)}
$$&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;💡 直觉理解&lt;/strong&gt;：
这就像是在班级里考试。我们不需要一个绝对的“满分标准”（Critic），只需要看你在班级里的排名。如果你比班级平均分高，我们就增加你这种行为的概率；反之则降低。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;GRPO 损失函数&lt;/h3&gt;
&lt;p&gt;$$
L_{GRPO}(\theta) = \frac{1}{G} \sum_{i=1}^G \left[ \min\left( \frac{\pi_\theta(o_i|q)}{\pi_{\text{old}}(o_i|q)} A_i, \text{clip}\left(\frac{\pi_\theta(o_i|q)}{\pi_{\text{old}}(o_i|q)}, 1-\epsilon, 1+\epsilon\right) A_i \right) - \beta D_{KL}(\pi_\theta || \pi_{\text{ref}}) \right]
$$&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;优势&lt;/strong&gt;：由于省去了 Critic 网络，在大模型训练中可以节省约 &lt;strong&gt;50%&lt;/strong&gt; 的梯度计算相关显存，从而允许更长的上下文或更大的 Batch Size。&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2&gt;PRM (Process Reward Models)&lt;/h2&gt;
&lt;p&gt;传统的奖励模型被称为 &lt;strong&gt;ORM (Outcome Reward Models)&lt;/strong&gt;：只看结果。
&lt;strong&gt;PRM (Process Reward Models)&lt;/strong&gt; 则是对推理链条中的&lt;strong&gt;每一个步骤&lt;/strong&gt;进行打分。&lt;/p&gt;
&lt;h3&gt;核心动机&lt;/h3&gt;
&lt;p&gt;在复杂的数学推导或编程任务中：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;中间错一步，步步错&lt;/strong&gt;：即使最终答案对，中间逻辑也可能有毒。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;奖励稀疏&lt;/strong&gt;：只有到最后才给分，模型很难学会长链条的逻辑。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;训练与运作机制&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;步骤拆解&lt;/strong&gt;：将模型生成的思维链（CoT）利用换行符或特殊 token 拆分为 $S_1, S_2, ..., S_n$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;细粒度标注&lt;/strong&gt;：通过人类专家或更强模型（如 GPT-4）对每一个 $S_i$ 标注“正确”、“错误”或“中性”。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;模型预测&lt;/strong&gt;：PRM 模型学习预测每一步的正确概率。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;强化学习中的应用&lt;/h3&gt;
&lt;p&gt;在 RL 过程中，奖励函数不再是标量，而是一个序列：
$$ \mathcal{R} = {r(S_1), r(S_2), ..., r(S_n)} $$
这允许 PPO 或 GRPO 进行&lt;strong&gt;更密集的奖励信号反馈&lt;/strong&gt;，显著提升模型处理复杂推理问题的逻辑严密性。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;案例分析：DeepSeek-R1 的强化学习范式&lt;/h2&gt;
&lt;p&gt;DeepSeek-R1 展示了 GRPO 结合“规则奖励”的惊人效果：&lt;/p&gt;
&lt;h3&gt;规则导向的 PRM&lt;/h3&gt;
&lt;p&gt;在推理任务中，我们有时不需要神经网络做奖励模型，而是使用&lt;strong&gt;硬规则&lt;/strong&gt;：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;准确性奖励 (Accuracy)&lt;/strong&gt;：答案必须对（例如数学题，提取最后的结果比对）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;格式奖励 (Format)&lt;/strong&gt;：思维链必须放在 &lt;code&gt;&amp;#x3C;think&gt;&lt;/code&gt; 和 &lt;code&gt;&amp;#x3C;/think&gt;&lt;/code&gt; 标签之间。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;涌现能力&lt;/h3&gt;
&lt;p&gt;DeepSeek 发现，通过这种简单的 GRPO + 规则奖励，模型在训练过程中会出现&lt;strong&gt;自我反思（Self-reflection）&lt;/strong&gt;。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;当模型发现之前的推导有问题时，它会自发地写下“Wait, that&apos;s not right...”（等一下，这不对……），然后重新推导。&lt;/li&gt;
&lt;li&gt;这种能力并不是通过 SFT（监督微调）刻意教出来的，而是通过 RL 最大化奖励的过程中&lt;strong&gt;自发进化&lt;/strong&gt;出来的。&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2&gt;总结与对比：PPO vs. GRPO&lt;/h2&gt;
&lt;p&gt;| 维度           | PPO (标准版)               | GRPO (组相对版)             |
| :------------- | :------------------------- | :-------------------------- |
| &lt;strong&gt;显存消耗&lt;/strong&gt;   | 高 (需要 Critic 网络)      | &lt;strong&gt;低 (丢弃 Critic 网络)&lt;/strong&gt;   |
| &lt;strong&gt;优势估计&lt;/strong&gt;   | 依赖学出来的 $V(s)$        | &lt;strong&gt;依赖组内样本的统计分布&lt;/strong&gt;  |
| &lt;strong&gt;训练稳定性&lt;/strong&gt; | 容易受 Critic 网络波动影响 | 更稳定，因为对比是相对的    |
| &lt;strong&gt;主要应用&lt;/strong&gt;   | 早期 ChatGPT, Llama 3 对齐 | &lt;strong&gt;DeepSeek-R1/V3 推理训练&lt;/strong&gt; |&lt;/p&gt;
&lt;h3&gt;启示&lt;/h3&gt;
&lt;p&gt;强化学习在大模型时代的进化方向非常明确：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;算力优化&lt;/strong&gt;：通过像 GRPO 这样的算法减少训练开销。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;逻辑监督&lt;/strong&gt;：通过 PRM 或 规则奖励 强化模型的推理过程，而不仅仅是最终答案。&lt;/li&gt;
&lt;/ol&gt;</content:encoded><h:img src="https://pic.hana0721.top/142350190_p0_master1200.2yyy3wl757.webp"/><enclosure url="https://pic.hana0721.top/142350190_p0_master1200.2yyy3wl757.webp"/></item><item><title>RL笔记（28）：大语言模型与强化学习 (LLM + RLHF)</title><link>https://agusexp25.top/blog/rl-note-28</link><guid isPermaLink="true">https://agusexp25.top/blog/rl-note-28</guid><description>大模型的最后一块拼图：详解基于人类反馈的强化学习 (RLHF)。涵盖从 SFT 到奖励模型，以及利用 PPO 算法进行策略对齐的完整流程。</description><pubDate>Tue, 06 Jan 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;引言（Introduction）&lt;/h2&gt;
&lt;p&gt;在之前的笔记中，我们一直在研究如何让智能体在物理环境或博弈环境（如 Atari, MuJoCo, SMAC）中拿高分。而现在，我们要处理的对象是 &lt;strong&gt;大语言模型 (LLM)&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;大模型的训练通常分为三个阶段：&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;预训练 (Pre-training)&lt;/strong&gt;：在海量文本上通过自监督学习“知识”。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;指令微调 (SFT, Supervised Fine-Tuning)&lt;/strong&gt;：在高质量问答对上学习“对话格式”。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;人类对齐 (Alignment)&lt;/strong&gt;：通过强化学习，让模型生成符合人类价值观（有用、诚实、无害）的内容。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;为什么要用 RL 而不是 SFT？&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;难以写出标准答案&lt;/strong&gt;：对于“写一首诗”这种开放性问题，不存在唯一的正解（Label）。人类可以很容易判断谁写得更好，但很难写出完美的示范。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;分布偏移问题&lt;/strong&gt;：SFT 属于行为克隆（BC），如果模型在生成时产生了一个没见过的词，误差会迅速累积。RL 则让模型在“试错”中学会从各种回复中找到最优路径。&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2&gt;核心映射：将 LLM 建模为 RL 问题&lt;/h2&gt;
&lt;p&gt;要用强化学习训练 LLM，我们首先需要将文本生成过程对应到 MDP 五元组中：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;状态 (State, $s$)&lt;/strong&gt;：当前输入的提示词（Prompt）以及模型已经生成的 Token 序列。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;动作 (Action, $a$)&lt;/strong&gt;：模型预测的下一个 Token。动作空间就是词表（Vocab Size，通常为 3w ~ 10w）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;策略 (Policy, $\pi$)&lt;/strong&gt;：大语言模型本身，输入提示词，输出下一个词的概率分布。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;奖励 (Reward, $R$)&lt;/strong&gt;：反映生成的一整段话好不好。这个奖励不是环境给的，而是由 &lt;strong&gt;奖励模型 (Reward Model)&lt;/strong&gt; 评分。&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2&gt;RLHF 的三大步骤&lt;/h2&gt;
&lt;p&gt;RLHF (Reinforcement Learning from Human Feedback) 通常包含以下经典流程：&lt;/p&gt;
&lt;h3&gt;阶段一：监督微调 (SFT)&lt;/h3&gt;
&lt;p&gt;在预训练模型的基础上，使用人类编写的高质量 (Prompt, Answer) 数据集进行微调。此时模型学会了基本的指令遵循能力。&lt;/p&gt;
&lt;h3&gt;阶段二：奖励模型训练 (Reward Modeling)&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;给同一个 Prompt，让 SFT 后的模型生成多个不同的回复 ${y^1, y^2, y^3, y^4}$。&lt;/li&gt;
&lt;li&gt;让人类对这些回复进行排序（例如 $y^2 &gt; y^1 &gt; y^4 &gt; y^3$）。&lt;/li&gt;
&lt;li&gt;训练一个标量奖励模型 $r_\theta(x, y)$，使其输出的分数符合人类的排序规律。损失函数通常采用 &lt;strong&gt;Pairwise Ranking Loss&lt;/strong&gt;：
$$ L(\theta) = - \mathbb{E}&lt;em&gt;{(x, y_w, y_l) \sim \mathcal{D}} \left[ \log \sigma \left( r&lt;/em&gt;\theta(x, y&lt;em&gt;w) - r&lt;/em&gt;\theta(x, y_l) \right) \right] $$
其中 $y_w$ 是胜出的回复，$y_l$ 是失败的回复。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;阶段三：强化学习对齐 (PPO)&lt;/h3&gt;
&lt;p&gt;利用奖励模型给出的分数，通过 PPO 算法调整 LLM 的参数。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;RLHF 中的 PPO 目标函数&lt;/h2&gt;
&lt;p&gt;在对齐阶段，我们的目标是最大化奖励模型的分数。但如果只考虑奖励，模型可能会学会“钻空子”（Reward Hacking），生成一些人类看不懂但奖励模型给高分的乱码。&lt;/p&gt;
&lt;p&gt;因此，我们需要约束模型，使其不要偏离原始模型太远。目标函数定义为：&lt;/p&gt;
&lt;p&gt;$$
J(\phi) = \mathbb{E}&lt;em&gt;{x \sim \mathcal{D}, y \sim \pi&lt;/em&gt;\phi(y|x)} \left[ r_\theta(x, y) - \beta \log \left( \frac{\pi_\phi(y|x)}{\pi_{\text{ref}}(y|x)} \right) \right]
$$&lt;/p&gt;
&lt;h3&gt;公式拆解：&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;$r_\theta(x, y)$&lt;/strong&gt;：奖励模型对生成的完整句子 $y$ 给出的预测分数。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;$\log \left( \frac{\pi_\phi(y|x)}{\pi_{\text{ref}}(y|x)} \right)$&lt;/strong&gt;：这是新策略 $\pi_\phi$ 与参考模型（通常是 SFT 后的模型）$\pi_{\text{ref}}$ 之间的 &lt;strong&gt;KL 散度&lt;/strong&gt;（准确说是 KL 惩罚项）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;$\beta$&lt;/strong&gt;：KL 惩罚系数。$\beta$ 越大，模型越保守，越像原始模型。&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;💡 直觉理解&lt;/strong&gt;：
这一项的作用是：&lt;strong&gt;“你可以尽量讨好人类，但不能忘了怎么说话。”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2&gt;LLM-PPO 的训练架构&lt;/h2&gt;
&lt;p&gt;在这一阶段，显存中通常需要同时加载四个模型（通常采用参数共享或层冻结来优化）：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Actor (Policy Network)&lt;/strong&gt;：当前正在训练的 LLM，参数为 $\phi$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reference Model&lt;/strong&gt;：冻结的 SFT 模型，用于计算 KL 惩罚。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Critic (Value Network)&lt;/strong&gt;：一个额外的头部，输入 Token 序列，预测从当前位置开始能获得的未来总奖励（即 $V(s)$）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reward Model&lt;/strong&gt;：冻结的评分模型。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;训练循环：&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;采样 (Rollout)&lt;/strong&gt;：输入 Prompt $x$，Actor 生成回复 $y$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;评分 (Evaluation)&lt;/strong&gt;：Reward Model 对 $(x, y)$ 打分。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;计算优势 (Advantage)&lt;/strong&gt;：
利用序列中的每一个 Token 的 TD Error 来计算优势 $\hat{A}$。
注意：在 LLM 中，奖励通常是在&lt;strong&gt;最后一个 Token&lt;/strong&gt; 给出的，而前面的 Token 奖励为 0（除了 KL 惩罚）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;更新 (Update)&lt;/strong&gt;：
利用 PPO 的 Clip 损失函数更新 Actor，利用 MSE 损失更新 Critic。&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2&gt;进阶：DPO (Direct Preference Optimization)&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;论文&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2305.18290&quot;&gt;Direct Preference Optimization: Your Language Model is Secretly a Reward Model&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;PPO 虽然经典，但非常复杂（需要 4 个模型，显存开销巨大，训练极不稳定）。
2023 年提出的 &lt;strong&gt;DPO&lt;/strong&gt; 彻底简化了这个过程。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;DPO 的核心发现&lt;/strong&gt;：
我们可以通过数学变换，直接将奖励函数 $r$ 表达为最优策略 $\pi^*$ 的函数。这意味着我们&lt;strong&gt;不需要训练奖励模型&lt;/strong&gt;，也不需要强化学习，直接在偏好数据 $(y_w, y_l)$ 上进行&lt;strong&gt;监督式学习&lt;/strong&gt;即可。&lt;/p&gt;
&lt;p&gt;DPO 损失函数：&lt;/p&gt;
&lt;p&gt;$$
L_{DPO}(\pi_\phi; \pi_{\text{ref}}) = - \mathbb{E}&lt;em&gt;{(x, y_w, y_l) \sim \mathcal{D}} \left[ \log \sigma \left( \beta \log \frac{\pi&lt;/em&gt;\phi(y_w|x)}{\pi_{\text{ref}}(y_w|x)} - \beta \log \frac{\pi_\phi(y_l|x)}{\pi_{\text{ref}}(y_l|x)} \right) \right]
$$&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;直觉&lt;/strong&gt;：如果模型在好回复 $y_w$ 上的概率提升比在坏回复 $y_l$ 上快，Loss 就变小。&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2&gt;总结&lt;/h2&gt;
&lt;p&gt;LLM + RL 的结合标志着强化学习从“解决玩具问题”走向了“赋能通用人工智能”。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;RLHF&lt;/strong&gt; 建立了模型行为与人类偏好的桥梁。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;PPO&lt;/strong&gt; 提供了稳定的优化框架，通过 KL 惩罚保证了语言的自然性。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;DPO&lt;/strong&gt; 等后续算法进一步降低了对齐的门槛，使得中小型团队也能进行模型对齐。&lt;/li&gt;
&lt;/ol&gt;</content:encoded><h:img src="https://pic.hana0721.top/139369087_p0_master1200.9gx5x7w6ei.webp"/><enclosure url="https://pic.hana0721.top/139369087_p0_master1200.9gx5x7w6ei.webp"/></item><item><title>RL笔记（27）：MARL 最后的波纹 (MAT &amp; HASAC)</title><link>https://agusexp25.top/blog/rl-note-27</link><guid isPermaLink="true">https://agusexp25.top/blog/rl-note-27</guid><description>多智能体领域的 SOTA 之作：详解 Multi-Agent Transformer (MAT) 如何将博弈转化为序列建模，以及 HASAC 如何结合异构理论与 SAC 的样本效率。</description><pubDate>Mon, 05 Jan 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;引言（Introduction）&lt;/h2&gt;
&lt;p&gt;在之前的笔记中，我们看到了 MARL 的发展脉络：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MAPPO&lt;/strong&gt;：On-Policy，稳定但样本效率低。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;HAPPO&lt;/strong&gt;：引入序列更新，解决了异构和单调性问题，但仍是 On-Policy。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Decision Transformer&lt;/strong&gt;：将单智能体 RL 变成了序列预测。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;本章将介绍两个集大成者：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;MAT (Multi-Agent Transformer)&lt;/strong&gt;：将 &quot;Transformer&quot; 和 &quot;序列决策&quot; 引入 MARL，把多智能体博弈变成了一个自回归（Auto-Regressive）的序列生成问题。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;HASAC (Heterogeneous-Agent SAC)&lt;/strong&gt;：将 HAPPO 的 &quot;序列更新理论&quot; 应用于 SAC，打造出兼具理论保证和极高样本效率的 Off-Policy 算法。&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2&gt;Multi-Agent Transformer (MAT)&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;论文&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2205.14953&quot;&gt;Multi-Agent Reinforcement Learning is a Sequence Modeling Problem&lt;/a&gt; (NeurIPS 2022)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;核心思想：把“并发”变成“串行”&lt;/h3&gt;
&lt;p&gt;传统 MARL（如 QMIX, MAPPO）假设所有智能体在同一时刻&lt;strong&gt;同时&lt;/strong&gt;采取行动，联合动作分布为 $\pi(\mathbf{a}|s) = \prod \pi(a^i|s)$（假设独立）。&lt;/p&gt;
&lt;p&gt;MAT 提出了一种颠覆性的视角：&lt;strong&gt;联合策略可以分解为序列预测&lt;/strong&gt;。
利用概率链式法则，联合动作的概率可以写成：&lt;/p&gt;
&lt;p&gt;$$
\pi(\mathbf{a}|s) = \prod_{i=1}^n \pi(a^i | s, a^1, a^2, ..., a^{i-1})
$$&lt;/p&gt;
&lt;p&gt;这意味着：Agent 1 先动；Agent 2 看到 Agent 1 的动作后再动；Agent 3 看到 1 和 2 的动作后再动……
这与 &lt;strong&gt;Transformer&lt;/strong&gt; 的自回归生成（预测下一个单词）完全一致！&lt;/p&gt;
&lt;h3&gt;架构设计：Encoder-Decoder&lt;/h3&gt;
&lt;p&gt;MAT 使用了标准的 Transformer 架构：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Encoder（处理观测）&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;输入：所有智能体的局部观测序列 $(o^1, o^2, ..., o^n)$。&lt;/li&gt;
&lt;li&gt;作用：利用 Self-Attention 提取智能体之间的交互特征，生成联合状态表征。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Decoder（生成动作）&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;输入：Encoder 的输出 + 之前的智能体动作序列 $(a^1, ..., a^{i-1})$。&lt;/li&gt;
&lt;li&gt;输出：当前智能体 $i$ 的动作概率分布 $\pi(a^i | \dots)$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;机制&lt;/strong&gt;：类似于 GPT，通过 Masked Attention 确保智能体 $i$ 只能看到它之前的队友动作，看不到未来的。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;训练目标&lt;/h3&gt;
&lt;p&gt;MAT 使用 PPO 的目标函数进行端到端训练。&lt;/p&gt;
&lt;p&gt;$$
L(\theta) = \min(r_t(\theta) \hat{A}_t, \text{clip}(r_t(\theta), 1-\epsilon, 1+\epsilon)\hat{A}_t)
$$&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;优势&lt;/strong&gt;：这种序列化建模天然地解决了&lt;strong&gt;非平稳性&lt;/strong&gt;问题。对于 Agent $i$ 来说，它做决策时，队友 $1 \sim i-1$ 的动作已经是&lt;strong&gt;已知&lt;/strong&gt;的（Fixed），环境不再是“薛定谔”的。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;性能&lt;/strong&gt;：MAT 在 SMAC 等基准测试中展现了惊人的性能，尤其是在需要复杂协调的任务中，且具有极强的 Zero-Shot 泛化能力。&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2&gt;Heterogeneous-Agent SAC (HASAC)&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;论文&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2109.11251&quot;&gt;Trust Region Policy Optimization in Multi-Agent Reinforcement Learning&lt;/a&gt; (ICLR 2022)
&lt;em&gt;注：HASAC 是该论文提出的 HARL (Heterogeneous-Agent RL) 框架下的 Off-Policy 变体。&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;核心动机：效率至上&lt;/h3&gt;
&lt;p&gt;HAPPO 虽然理论完美（保证单调提升），但它是 On-Policy 的，数据利用率低，训练慢。
SAC 是单智能体中样本效率最高的 Off-Policy 算法。
&lt;strong&gt;HASAC = HAPPO 的序列更新理论 + SAC 的最大熵 Off-Policy 机制。&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;算法原理&lt;/h3&gt;
&lt;p&gt;HASAC 继承了 HAPPO 的 &lt;strong&gt;多智能体优势分解引理&lt;/strong&gt;：&lt;/p&gt;
&lt;p&gt;$$
A_{\boldsymbol{\pi}}^{\text{joint}}(s, \mathbf{a}) = \sum_{i=1}^n A_{\pi}^{i}(s, a^i, a^1, ..., a^{i-1})
$$&lt;/p&gt;
&lt;h3&gt;训练流程&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;随机排列&lt;/strong&gt;：每一轮训练，随机打乱智能体更新顺序（例如 $1 \to 2 \to \dots \to n$）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;序列更新&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;对于智能体 $i$，它的 Critic $Q_i$ 需要评估的是：在队友 $1 \sim i-1$ 已经更新了新策略，而队友 $i+1 \sim n$ 还在用旧策略的情况下的价值。&lt;/li&gt;
&lt;li&gt;目标函数结合了 SAC 的熵正则化：
$$
J(\pi^i) = \mathbb{E}&lt;em&gt;{\mathcal{D}} \left[ Q^{\pi&lt;/em&gt;{\text{old}}}(s, a^1, ..., a^i, ..., a^n) - \alpha \log \pi^i(a^i|s) \right]
$$&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;关键点&lt;/strong&gt;：在计算 $Q$ 值时，输入的动作向量 $\mathbf{a}$ 是混合的：
&lt;ul&gt;
&lt;li&gt;$a^{1:i-1}$ 来自&lt;strong&gt;当前最新&lt;/strong&gt;的策略。&lt;/li&gt;
&lt;li&gt;$a^{i}$ 是当前正在优化的。&lt;/li&gt;
&lt;li&gt;$a^{i+1:n}$ 来自&lt;strong&gt;旧&lt;/strong&gt;策略（Replay Buffer 中的动作或旧策略采样）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;优缺点&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;优点&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;极高的样本效率&lt;/strong&gt;：Off-Policy 机制让它可以利用历史数据。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;异构友好&lt;/strong&gt;：不需要参数共享，适合不同类型的智能体协作。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;收敛保证&lt;/strong&gt;：继承了 HARL 的单调性证明。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;缺点&lt;/strong&gt;：计算复杂度较高，因为需要串行更新每个智能体，且 Critic 需要处理混合动作输入。&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2&gt;深度对比：四大天王&lt;/h2&gt;
&lt;p&gt;至此，我们已经集齐了 MARL 领域的四大顶级算法。&lt;/p&gt;
&lt;p&gt;| 维度          | MAPPO                 | HAPPO          | MAT                      | HASAC              |
| :------------ | :-------------------- | :------------- | :----------------------- | :----------------- |
| &lt;strong&gt;核心机制&lt;/strong&gt;  | PPO + CTDE            | 序列更新 + PPO | &lt;strong&gt;Transformer + 自回归&lt;/strong&gt; | &lt;strong&gt;序列更新 + SAC&lt;/strong&gt; |
| &lt;strong&gt;策略类型&lt;/strong&gt;  | On-Policy             | On-Policy      | On-Policy                | &lt;strong&gt;Off-Policy&lt;/strong&gt;     |
| &lt;strong&gt;决策方式&lt;/strong&gt;  | 独立 (同步)           | 独立 (执行时)  | &lt;strong&gt;序列 (串行执行)&lt;/strong&gt;      | 独立 (执行时)      |
| &lt;strong&gt;同构/异构&lt;/strong&gt; | 强依赖同构 (参数共享) | &lt;strong&gt;异构友好&lt;/strong&gt;   | 同构/异构皆可            | &lt;strong&gt;异构友好&lt;/strong&gt;       |
| &lt;strong&gt;样本效率&lt;/strong&gt;  | 低                    | 低             | 中                       | &lt;strong&gt;高&lt;/strong&gt;             |
| &lt;strong&gt;适用场景&lt;/strong&gt;  | 大规模同质集群        | 复杂异构协作   | 极复杂序列决策           | 需要快速收敛的任务 |&lt;/p&gt;
&lt;h3&gt;总结&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;如果你追求&lt;strong&gt;极致的性能&lt;/strong&gt;和对复杂策略的建模能力，&lt;strong&gt;MAT&lt;/strong&gt; 是首选，它代表了 RL 与 LLM 结合的趋势。&lt;/li&gt;
&lt;li&gt;如果你追求&lt;strong&gt;训练速度&lt;/strong&gt;和&lt;strong&gt;样本利用率&lt;/strong&gt;，或者你的智能体是&lt;strong&gt;异构&lt;/strong&gt;的（比如一个无人机配合一个机械臂），&lt;strong&gt;HASAC&lt;/strong&gt; 是目前的最强选择。&lt;/li&gt;
&lt;/ul&gt;</content:encoded><h:img src="https://pic.hana0721.top/134041716_p0_master1200.5q80bz7b6v.webp"/><enclosure url="https://pic.hana0721.top/134041716_p0_master1200.5q80bz7b6v.webp"/></item><item><title>RL笔记（26）：异构智能体信任区域优化 (HAPPO &amp; HATRPO)</title><link>https://agusexp25.top/blog/rl-note-26</link><guid isPermaLink="true">https://agusexp25.top/blog/rl-note-26</guid><description>从经验主义回归理论严谨性：详解 HAPPO 如何解决 MARL 中的单调提升难题。涵盖多智能体优势分解引理、序列更新机制以及与 MAPPO 的本质区别。</description><pubDate>Sun, 04 Jan 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;引言（Introduction）&lt;/h2&gt;
&lt;p&gt;在之前的笔记中，我们介绍了 &lt;strong&gt;MAPPO&lt;/strong&gt;，它简单地让每个智能体运行 PPO，并共用一个中心化 Critic。虽然在工程上很成功，但它在理论上存在一个巨大的漏洞：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;多智能体更新冲突&lt;/strong&gt;。
在单智能体中，PPO/TRPO 保证了每一步更新，策略性能 $J(\pi)$ 都是&lt;strong&gt;单调不减&lt;/strong&gt;的。
但在多智能体中，如果所有智能体&lt;strong&gt;同时&lt;/strong&gt;更新策略，这就好比两个人抬桌子，A 想往左，B 想往右，虽然两人各自觉得自己的方向是对的，但合起来的结果可能导致桌子翻倒（联合策略性能下降）。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;HAPPO (Heterogeneous-Agent PPO)&lt;/strong&gt; 和 &lt;strong&gt;HATRPO&lt;/strong&gt; 的核心贡献在于：提出了&lt;strong&gt;多智能体优势分解引理&lt;/strong&gt;，并据此设计了&lt;strong&gt;序列更新&lt;/strong&gt;方案，在理论上证明了联合策略的单调提升，特别适用于&lt;strong&gt;异构（Heterogeneous）&lt;/strong&gt; 智能体场景。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;理论基石：多智能体优势分解引理&lt;/h2&gt;
&lt;p&gt;我们希望优化联合策略 $\boldsymbol{\pi} = (\pi^1, \pi^2, ..., \pi^n)$ 以最大化联合回报 $J(\boldsymbol{\pi})$。
类似于 TRPO，我们关注新旧策略的回报差 $J(\boldsymbol{\pi}&lt;em&gt;{\text{new}}) - J(\boldsymbol{\pi}&lt;/em&gt;{\text{old}})$。&lt;/p&gt;
&lt;h3&gt;优势分解引理 (Multi-Agent Advantage Decomposition Lemma)&lt;/h3&gt;
&lt;p&gt;HAPPO 证明了，联合策略的优势函数（Joint Advantage）可以精确分解为每个智能体局部优势函数的&lt;strong&gt;累加&lt;/strong&gt;，前提是这些优势是&lt;strong&gt;按顺序&lt;/strong&gt;计算的。&lt;/p&gt;
&lt;p&gt;$$
A_{\boldsymbol{\pi}}^{\text{joint}}(s, \mathbf{a}) = \sum_{i=1}^n A_{\pi}^{i}(s, a^i, a^1, a^2, ..., a^{i-1})
$$&lt;/p&gt;
&lt;p&gt;这里的 $A_{\pi}^{i}$ 是第 $i$ 个智能体的优势函数，但有一个关键细节：
它不仅依赖于当前状态 $s$ 和动作 $a^i$，还依赖于&lt;strong&gt;排在他前面的智能体 $(a^1, a^2, ..., a^{i-1})$ 的动作&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;这意味着：如果我们按照某种顺序 $1, 2, ..., n$ 依次更新智能体，那么整体性能的提升等于每个人贡献的提升之和。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;核心机制：序列更新 (Sequential Update)&lt;/h2&gt;
&lt;p&gt;为了利用上述引理，HAPPO 抛弃了 MAPPO 的“同步更新”模式，采用了 &lt;strong&gt;序列更新&lt;/strong&gt; 模式。&lt;/p&gt;
&lt;h3&gt;流程&lt;/h3&gt;
&lt;p&gt;在每一次训练迭代中：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;随机排列&lt;/strong&gt;：随机生成一个智能体的更新顺序（例如：Agent 3 -&gt; Agent 1 -&gt; Agent 2）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;依次更新&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Agent 3&lt;/strong&gt;：基于旧策略 $\boldsymbol{\pi}&lt;em&gt;{\text{old}}$ 计算自己的优势，更新策略，变为 $\pi^3&lt;/em&gt;{\text{new}}$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Agent 1&lt;/strong&gt;：看到 Agent 3 已经更新了（环境变了），基于 $(\pi^3_{\text{new}}, \pi^1_{\text{old}}, \pi^2_{\text{old}})$ 计算自己的优势，更新为 $\pi^1_{\text{new}}$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Agent 2&lt;/strong&gt;：看到 3 和 1 都变了，基于 $(\pi^3_{\text{new}}, \pi^1_{\text{new}}, \pi^2_{\text{old}})$ 更新自己。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;循环结束&lt;/strong&gt;：所有智能体更新完毕，进入下一轮采样。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;为什么这样就稳了？&lt;/h3&gt;
&lt;p&gt;通过这种方式，对于每一个智能体 $i$ 来说，它在更新时，排在它前面的队友已经是“新策略”了，排在后面的还是“旧策略”。它只需要在当前这个&lt;strong&gt;固定&lt;/strong&gt;的上下文中找到最优提升方向，就能保证整个团队的总分是增加的。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;💡 直觉&lt;/strong&gt;：
就像多人过独木桥。大家一起跑容易挤掉下去（同步更新）。HAPPO 的做法是：第一个人先走稳，第二个人看准第一个人的位置再走，依次类推。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2&gt;HATRPO 与 HAPPO&lt;/h2&gt;
&lt;p&gt;基于这个理论框架，衍生出了两个算法。它们都共享同一个&lt;strong&gt;中心化 Critic&lt;/strong&gt; $V(s)$。&lt;/p&gt;
&lt;h3&gt;HATRPO (Trust Region)&lt;/h3&gt;
&lt;p&gt;这是 TRPO 的多智能体版本。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;目标&lt;/strong&gt;：最大化局部优势期望。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;约束&lt;/strong&gt;：严格限制每个智能体更新前后的 KL 散度：
$$ \mathbb{E}[D_{KL}(\pi^i_{\text{old}} || \pi^i_{\text{new}})] \le \delta $$&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;求解&lt;/strong&gt;：同样需要使用共轭梯度法（CG），计算量较大，但理论性质最强。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;HAPPO (Proximal Policy)&lt;/h3&gt;
&lt;p&gt;这是 PPO 的多智能体版本，更实用。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;目标&lt;/strong&gt;：使用 Clip 技巧来替代 KL 约束。
定义比率 $r_t^i(\theta) = \frac{\pi^i(a^i|s)}{\pi^i_{\text{old}}(a^i|s)}$，损失函数为：
$$
L^{HAPPO}(\theta^i) = \mathbb{E} \left[ \min \left( r_t^i(\theta) \hat{M}^i, \text{clip}\left(r_t^i(\theta), 1-\epsilon, 1+\epsilon\right) \hat{M}^i \right) \right]
$$&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;关键点 $\hat{M}^i$&lt;/strong&gt;：这是&lt;strong&gt;修正后的优势函数&lt;/strong&gt;。
在计算 Agent $i$ 的优势时，必须扣除排在它前面的队友 $1, ..., i-1$ 已经拿走的优势，确保不重复计算功劳。&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2&gt;深度对比：HAPPO vs. MAPPO&lt;/h2&gt;
&lt;p&gt;这两个算法非常相似，都是 PPO + CTDE，很容易混淆。&lt;/p&gt;
&lt;p&gt;| 维度         | MAPPO (Multi-Agent PPO)       | HAPPO (Heterogeneous-Agent PPO)                 |
| :----------- | :---------------------------- | :---------------------------------------------- |
| &lt;strong&gt;更新方式&lt;/strong&gt; | &lt;strong&gt;同步更新 (Simultaneous)&lt;/strong&gt;   | &lt;strong&gt;序列更新 (Sequential)&lt;/strong&gt;                       |
| &lt;strong&gt;理论保证&lt;/strong&gt; | 无单调提升保证 (可能震荡)     | &lt;strong&gt;有单调提升保证&lt;/strong&gt;                              |
| &lt;strong&gt;参数共享&lt;/strong&gt; | 强烈依赖 (Parameter Sharing)  | &lt;strong&gt;不需要&lt;/strong&gt; (天生支持异构)                       |
| &lt;strong&gt;优势计算&lt;/strong&gt; | $A(s, a^i)$ (假设队友不变)    | $A(s, a^i, a^1, ..., a^{i-1})$ (考虑队友更新)   |
| &lt;strong&gt;适用场景&lt;/strong&gt; | 同质智能体 (如星际争霸小狗海) | &lt;strong&gt;异构智能体&lt;/strong&gt; (如牧羊犬与羊、不同类型的机器人) |
| &lt;strong&gt;计算量&lt;/strong&gt;   | 较小                          | 稍大 (因为要串行计算)                           |&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;总结&lt;/h2&gt;
&lt;p&gt;HAPPO 系列算法在 MARL 领域具有重要的理论地位：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;解决了 Heterogeneous (异构) 问题&lt;/strong&gt;：以前的算法（如 QMIX, MAPPO）通常假设智能体共享参数以加速收敛。HAPPO 证明了即使每个智能体结构完全不同（异构），只要按顺序更新，也能高效协作。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;解决了 Trust Region 问题&lt;/strong&gt;：它将单智能体的“信任区域”概念成功推广到了多智能体，解决了多智能体同时更新导致的&lt;strong&gt;环境非平稳&lt;/strong&gt;和&lt;strong&gt;信度分配&lt;/strong&gt;难题。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;如果你面对的任务中，智能体各不相同（例如一个无人机配合一个地面车），且协作极其复杂，HAPPO 往往比 MAPPO 表现更稳健。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/116834498_p0_master1200.1e974fnzok.webp"/><enclosure url="https://pic.hana0721.top/116834498_p0_master1200.1e974fnzok.webp"/></item><item><title>RL笔记（25）：多智能体策略梯度 (MADDPG &amp; MAPPO)</title><link>https://agusexp25.top/blog/rl-note-25</link><guid isPermaLink="true">https://agusexp25.top/blog/rl-note-25</guid><description>从连续控制到离散博弈：详解 CTDE 架构在 Actor-Critic 中的应用。涵盖 MADDPG 的多面手 Critic 设计与 MAPPO 的工程化胜利。</description><pubDate>Fri, 02 Jan 2026 16:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;引言：Actor-Critic 的群体进化&lt;/h2&gt;
&lt;p&gt;我们在之前的笔记中学习了 &lt;strong&gt;CTDE (中心化训练，分布式执行)&lt;/strong&gt; 的思想。在 Value-Based 方法（如 QMIX）中，CTDE 体现在将 $Q_{tot}$ 分解为 $Q_i$。&lt;/p&gt;
&lt;p&gt;而在 &lt;strong&gt;Actor-Critic&lt;/strong&gt; 架构中，CTDE 的实现更加直观且灵活：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Actor (策略)&lt;/strong&gt;：必须是&lt;strong&gt;局部&lt;/strong&gt;的 ($\pi(a_i|o_i)$)，因为执行时只能靠自己。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Critic (价值)&lt;/strong&gt;：必须是&lt;strong&gt;全局&lt;/strong&gt;的 ($Q(s, \mathbf{a})$ 或 $V(s)$)，因为训练时我们可以利用上帝视角来更准地评估局势，从而指导 Actor。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;本章将介绍这一范式下的两个里程碑算法：针对连续动作的 &lt;strong&gt;MADDPG&lt;/strong&gt; 和目前最强的 Baseline &lt;strong&gt;MAPPO&lt;/strong&gt;。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;MADDPG (Multi-Agent DDPG)&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;论文&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/1706.02275&quot;&gt;Multi-Agent Actor-Critic for Mixed Cooperative-Competitive Environments&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;MADDPG 是 DDPG 算法在多智能体环境下的自然延伸，由 OpenAI 在 2017 年提出。它主要解决了&lt;strong&gt;非平稳性&lt;/strong&gt;问题。&lt;/p&gt;
&lt;h3&gt;核心思想：Critic 知道一切&lt;/h3&gt;
&lt;p&gt;在独立学习（Independent DDPG）中，Critic 只输入 $(o_i, a_i)$。当队友 $j$ 的策略 $\pi_j$ 改变时，环境对 $i$ 来说就变了，导致 Critic 震荡。&lt;/p&gt;
&lt;p&gt;MADDPG 提出：&lt;strong&gt;Critic 应该输入所有人的动作&lt;/strong&gt;。
$$ Q_i^{\boldsymbol{\pi}}(s, a_1, \dots, a_N) $$
只要输入了联合动作 $\mathbf{a} = (a_1, \dots, a_N)$，环境的状态转移 $P(s&apos;|s, \mathbf{a})$ 就是由物理规律决定的，是&lt;strong&gt;平稳 (Stationary)&lt;/strong&gt; 的。&lt;/p&gt;
&lt;h3&gt;架构设计&lt;/h3&gt;
&lt;p&gt;对于 $N$ 个智能体，每个智能体 $i$ 维护两个网络：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Actor $\mu_{\theta_i}(o_i)$&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：仅局部观测 $o_i$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：确定性动作 $a_i$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;特点&lt;/strong&gt;：执行时完全独立。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Critic $Q_{\phi_i}(s, a_1, \dots, a_N)$&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：全局状态 $s$（或所有人的观测） + &lt;strong&gt;所有人的动作&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：标量 Q 值。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;特点&lt;/strong&gt;：仅在训练时使用。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;训练流程&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Critic 更新&lt;/strong&gt;：最小化贝尔曼误差。
$$ y = r&lt;em&gt;i + \gamma Q_i&apos;(s&apos;, a&apos;_1, \dots, a&apos;_N)|&lt;/em&gt;{a&apos;_j = \mu&apos;_j(o&apos;_j)} $$
注意：计算目标值时，需要用到&lt;strong&gt;每个智能体的 Target Actor&lt;/strong&gt; 来预测下一步动作。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Actor 更新&lt;/strong&gt;：确定性策略梯度。
$$ \nabla*{\theta_i} J = \mathbb{E} [\nabla*{a&lt;em&gt;i} Q_i(s, a_1, \dots, a_N)|&lt;/em&gt;{a&lt;em&gt;i=\mu_i(o_i)} \cdot \nabla&lt;/em&gt;{\theta_i} \mu_i(o_i)] $$
注意：Critic 对 $a_i$ 求导，告诉 Actor $i$ 如何调整动作能提高集体（或个人）收益。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;优缺点&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;优点&lt;/strong&gt;：可以处理连续动作；适用于合作、竞争或混合任务（每个 Critic 可以最大化不同的奖励 $r_i$）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;缺点&lt;/strong&gt;：Critic 的输入维度随人数线性增长，难以扩展到大规模集群。&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2&gt;MAPPO (Multi-Agent PPO)&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;论文&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2103.01955&quot;&gt;The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;长期以来，人们认为 Off-Policy（如 MADDPG/QMIX）在 MARL 中更高效。但 MAPPO (2021) 证明：&lt;strong&gt;只要调参得当，简单的 On-Policy PPO 也能吊打复杂的 Off-Policy 算法。&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;核心思想：Centralized Value Function&lt;/h3&gt;
&lt;p&gt;MAPPO 的结构极其简单，就是 PPO + CTDE。
它与 IPPO（独立 PPO）唯一的区别在于 &lt;strong&gt;Critic&lt;/strong&gt;。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;IPPO Critic&lt;/strong&gt;: $V(o_i)$ —— 只看自己，不仅视野窄，而且受队友策略变化干扰严重。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MAPPO Critic&lt;/strong&gt;: $V(s)$ —— &lt;strong&gt;看全局&lt;/strong&gt;。Critic 学习的是全局状态价值函数。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;为什么 $V(s)$ 比 $Q(s, \mathbf{a})$ 好？&lt;/h3&gt;
&lt;p&gt;MADDPG 使用 $Q(s, \mathbf{a})$，这需要输入巨大的联合动作空间。
MAPPO 使用 $V(s)$ 来计算优势函数：
$$ \hat{A}&lt;em&gt;i(t) = \sum (\gamma \lambda)^l (r&lt;/em&gt;{i, t+l} + \gamma V(s*{t+1+l}) - V(s*{t+l})) $$。
$V(s)$ 不需要输入动作，维度低，训练更容易收敛。&lt;/p&gt;
&lt;h3&gt;成功的关键：工程技巧 (Implementation Matters)&lt;/h3&gt;
&lt;p&gt;MAPPO 的成功不仅仅在于算法，更在于 5 个关键的工程实践：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;输入特征处理&lt;/strong&gt;：将 Agent ID 作为 One-hot 向量拼接到状态中（在参数共享时区分不同个体）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;参数共享 (Parameter Sharing)&lt;/strong&gt;：所有智能体共用一个 Actor 和一个 Critic 网络（适用于同质智能体），极大加速收敛。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;PopArt&lt;/strong&gt;：对 Critic 的目标值（Value Target）进行&lt;strong&gt;归一化&lt;/strong&gt;，处理奖励尺度差异大的问题。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;数据并行&lt;/strong&gt;：使用多个并行环境收集数据。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;裁剪 (Clipping)&lt;/strong&gt;：PPO 本身的 Clip 机制有效防止了非平稳环境下的策略崩塌。&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2&gt;深度对比：MADDPG vs. MAPPO&lt;/h2&gt;
&lt;p&gt;| 维度            | MADDPG                  | MAPPO                        |
| :-------------- | :---------------------- | :--------------------------- | ---- |
| &lt;strong&gt;基础算法&lt;/strong&gt;    | DDPG (Off-Policy)       | PPO (On-Policy)              |
| &lt;strong&gt;策略类型&lt;/strong&gt;    | 确定性 ($\mu(o)$)       | 随机性 ($\pi(a               | o)$) |
| &lt;strong&gt;动作空间&lt;/strong&gt;    | &lt;strong&gt;连续&lt;/strong&gt; (擅长)         | 连续 &amp;#x26; 离散 (都擅长)         |
| &lt;strong&gt;Critic 形式&lt;/strong&gt; | $Q(s, a_1, \dots, a_N)$ | $V(s)$                       |
| &lt;strong&gt;通信需求&lt;/strong&gt;    | 训练时需知晓他人动作    | 训练时需知晓全局状态         |
| &lt;strong&gt;样本效率&lt;/strong&gt;    | 较高 (Replay Buffer)    | 较低 (需大量采样)            |
| &lt;strong&gt;稳定性&lt;/strong&gt;      | 较差 (超参数敏感)       | &lt;strong&gt;极高&lt;/strong&gt; (鲁棒性强)          |
| &lt;strong&gt;SOTA 表现&lt;/strong&gt;   | 早期基准                | 目前 SMAC 等环境的主流强基准 |&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;总结&lt;/h2&gt;
&lt;p&gt;多智能体策略方法的发展经历了从“各自为战”到“全局协同”的过程。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MADDPG&lt;/strong&gt; 解决了连续动作下的多智能体博弈问题，通过将“队友的动作”显式输入 Critic，在数学上恢复了平稳性。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MAPPO&lt;/strong&gt; 则展示了“大道至简”的力量，证明了通过引入全局价值函数 $V(s)$ 并配合优秀的工程实现，On-Policy 算法也能在复杂的协作任务中达到 SOTA 水平。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;至此，我们已经涵盖了 MARL 的两大主流流派：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Value-Based&lt;/strong&gt;: QMIX, QPLEX (适合离散动作，强显式协作)。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Policy-Based&lt;/strong&gt;: MADDPG, MAPPO (适合连续动作，通用性强)。&lt;/li&gt;
&lt;/ol&gt;</content:encoded><h:img src="https://pic.hana0721.top/112236596_p0_master1200.232gogbiox.webp"/><enclosure url="https://pic.hana0721.top/112236596_p0_master1200.232gogbiox.webp"/></item><item><title>RL笔记（24）：超越单调性 (QTRAN, WQMIX, QPLEX)</title><link>https://agusexp25.top/blog/rl-note-24</link><guid isPermaLink="true">https://agusexp25.top/blog/rl-note-24</guid><description>打破 QMIX 的枷锁：详解 QTRAN、Weighted QMIX 和 QPLEX 如何突破单调性约束。涵盖软约束松弛、非对称加权投影及对偶对决架构的完全表达能力证明。</description><pubDate>Thu, 01 Jan 2026 16:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;引言（Introduction）&lt;/h2&gt;
&lt;p&gt;在上一章中，我们介绍了 &lt;strong&gt;QMIX&lt;/strong&gt;，它通过强制混合网络的权重非负，实现了对 IGM 原则的单调性近似。
然而，单调性是一个&lt;strong&gt;充分非必要条件&lt;/strong&gt;。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;局限性&lt;/strong&gt;：QMIX 无法表示非单调的协作任务（例如：智能体 A 和 B 必须同时做动作 X 才能得分，单独做反而扣分。这种“异或”逻辑违反了单调性）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;挑战&lt;/strong&gt;：我们需要一种方法，既能满足 IGM 原则（保证分布式执行），又能覆盖&lt;strong&gt;所有&lt;/strong&gt;可能的联合价值函数空间。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;本章将介绍三种试图突破 QMIX 天花板的进阶算法：&lt;strong&gt;QTRAN&lt;/strong&gt;（基于变换）、&lt;strong&gt;WQMIX&lt;/strong&gt;（基于加权）和 &lt;strong&gt;QPLEX&lt;/strong&gt;（基于优势函数）。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;QTRAN: Learning to Factorize with Transformation&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;论文&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/1905.05408&quot;&gt;QTRAN: Learning to Factorize with Transformation for Cooperative MARL&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;核心思想：变换与松弛&lt;/h3&gt;
&lt;p&gt;QTRAN 认为，直接学习一个满足 IGM 的 $Q_{tot}$ 太难了。
不如我们将 $Q_{tot}$ 拆解为两部分：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;$Q&apos;_{tot}$&lt;/strong&gt;：一个易于分解的部分（如 VDN 的求和形式），用于指导动作选择。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;$V_{tot}$&lt;/strong&gt;：一个状态价值修正项，用于补足残差，确保逼近真实的 $Q^*$。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;数学构造&lt;/h3&gt;
&lt;p&gt;我们定义变换后的目标函数：&lt;/p&gt;
&lt;p&gt;$$
Q_{tot}(s, \mathbf{u}) \approx Q&apos;&lt;em&gt;{tot}(s, \mathbf{u}) + V&lt;/em&gt;{tot}(s, \mathbf{u})
$$&lt;/p&gt;
&lt;p&gt;其中 $Q&apos;&lt;em&gt;{tot}(s, \mathbf{u}) = \sum&lt;/em&gt;{i=1}^n Q_i(u_i)$ 是我们实际用来选动作的函数。&lt;/p&gt;
&lt;p&gt;为了保证 $\arg\max Q&apos;&lt;em&gt;{tot} = \arg\max Q&lt;/em&gt;{tot}$（IGM 原则），QTRAN 推导出了一组充分条件：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;最优动作一致性&lt;/strong&gt;：在最优动作 $\bar{\mathbf{u}}$ 处，两者相等。
$$ Q&apos;&lt;em&gt;{tot}(\bar{\mathbf{u}}) - Q&lt;/em&gt;{tot}(\bar{\mathbf{u}}) + V_{tot}(\bar{\mathbf{u}}) = 0 $$&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;非最优动作界限&lt;/strong&gt;：在非最优动作 $\mathbf{u}$ 处，$Q&apos;&lt;em&gt;{tot}$ 不会“篡位”。
$$ Q&apos;&lt;/em&gt;{tot}(\mathbf{u}) - Q_{tot}(\mathbf{u}) + V_{tot}(\mathbf{u}) \ge 0 $$&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;损失函数设计&lt;/h3&gt;
&lt;p&gt;QTRAN 将上述硬约束转化为软损耗（Soft Constraints）加入训练：&lt;/p&gt;
&lt;p&gt;$$
L_{opt} = (Q&apos;&lt;em&gt;{tot}(\bar{\mathbf{u}}) - y&lt;/em&gt;{target})^2 + \lambda \sum_{\mathbf{u} \in \mathcal{U}, \mathbf{u} \ne \bar{\mathbf{u}}} (Q&apos;&lt;em&gt;{tot}(\mathbf{u}) - Q&lt;/em&gt;{tot}(\mathbf{u}) + V_{tot}(\mathbf{u}))^2
$$&lt;/p&gt;
&lt;h3&gt;总结&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;优点&lt;/strong&gt;：理论上具有完全的表达能力 (Full Expressiveness)。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;缺点&lt;/strong&gt;：实际训练中，软约束很难被完美满足，且计算量巨大（涉及所有动作空间的求和）。在复杂任务上表现往往不如 QMIX。&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2&gt;Weighted QMIX (WQMIX)&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;论文&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2006.10800&quot;&gt;Weighted QMIX: Expanding Monotonic Value Function Factorisation&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;核心思想：非对称加权&lt;/h3&gt;
&lt;p&gt;WQMIX 指出 QMIX 的核心问题是 &lt;strong&gt;相对过泛化 (Relative Overgeneralization)&lt;/strong&gt;：为了拟合某些非最优的低分动作，模型被迫拉低了最优动作的 Q 值。&lt;/p&gt;
&lt;p&gt;WQMIX 提出：&lt;strong&gt;我们其实不在乎非最优动作的 Q 值准不准，我们只在乎最优动作的 Q 值准不准。&lt;/strong&gt;
因此，我们可以给最优样本赋予极高的权重。&lt;/p&gt;
&lt;h3&gt;算法架构&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;无限制网络 $\hat{Q}^*$&lt;/strong&gt;：使用一个普通的前馈网络（不加绝对值约束）来估计真实的联合 Q 值。这保证了表达能力，但不满足 IGM。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;单调网络 $Q_{tot}$&lt;/strong&gt;：使用标准的 QMIX 结构（满足 IGM），用来做策略执行。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;加权投影&lt;/strong&gt;：通过加权 Loss 强行让 $Q_{tot}$ 去逼近 $\hat{Q}^*$。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;损失函数&lt;/h3&gt;
&lt;p&gt;$$
\mathcal{L} = \sum_{i=1}^b w(s, \mathbf{u}) \left( \hat{Q}^*(s, \mathbf{u}) - Q_{tot}(s, \mathbf{u}) \right)^2
$$&lt;/p&gt;
&lt;p&gt;权重函数 $w$ 的设计体现了&lt;strong&gt;乐观主义&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;如果 $\hat{Q}^*$ 认为当前动作很好的（可能是潜在的最优解），给大权重 $w=1$。&lt;/li&gt;
&lt;li&gt;如果 $\hat{Q}^*$ 认为当前动作很差，给小权重 $w=\alpha \ll 1$。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这使得 $Q_{tot}$ 即使受限于单调性，也会优先保证在最优动作附近的形状是正确的，从而突破了结构瓶颈。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;QPLEX: Duplex Dueling Multi-Agent Q-Learning&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;论文&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/2008.01062&quot;&gt;QPLEX: Duplex Dueling Multi-Agent Q-Learning&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;核心思想：基于优势的 IGM&lt;/h3&gt;
&lt;p&gt;QPLEX 是目前的 SOTA 方法之一。它借鉴了 Dueling DQN 的思想，指出 IGM 原则其实只关乎 &lt;strong&gt;优势函数 (Advantage)&lt;/strong&gt;，与状态价值 $V(s)$ 无关。&lt;/p&gt;
&lt;p&gt;$$ Q*{tot}(s, \mathbf{u}) = V*{tot}(s) + A_{tot}(s, \mathbf{u}) $$&lt;/p&gt;
&lt;p&gt;只要保证 $A_{tot}$ 和局部 $A_i$ 在“正负号”上的一致性，就能满足 IGM，而不需要限制权重的正负。&lt;/p&gt;
&lt;h3&gt;数学构造&lt;/h3&gt;
&lt;p&gt;QPLEX 构造了如下形式的联合优势函数：&lt;/p&gt;
&lt;p&gt;$$
A_{tot}(s, \mathbf{u}) = \sum_{i=1}^n \lambda_i(s, \mathbf{u}) A_i(s, u_i)
$$&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;关键点：只要系数 $\lambda_i(s, \mathbf{u}) &gt; 0$，那么 $A_{tot}$ 的符号就由 $A_i$ 决定。
&lt;ul&gt;
&lt;li&gt;如果所有 $u_i$ 都是局部最优（$A_i=0$），那么 $A_{tot}=0$（全局最优）。&lt;/li&gt;
&lt;li&gt;如果有任何一个 $u_i$ 不是最优（$A_i &amp;#x3C; 0$），那么 $A_{tot} &amp;#x3C; 0$（全局非最优）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;网络架构&lt;/h3&gt;
&lt;p&gt;QPLEX 使用 &lt;strong&gt;多头注意力机制 (Multi-Head Attention)&lt;/strong&gt; 来动态生成权重 $\lambda_i$。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;这不仅保证了 $\lambda_i &gt; 0$，还赋予了模型根据当前状态动态调整每个智能体权重的能力。&lt;/li&gt;
&lt;li&gt;通过这种严格的数学构造，QPLEX 在理论上实现了&lt;strong&gt;完全表达能力&lt;/strong&gt;，同时保留了 VDN 般高效的计算效率。&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2&gt;总结与对比&lt;/h2&gt;
&lt;p&gt;| 算法      | 核心机制               | 表达能力      | IGM 保证            | 计算复杂度 |
| :-------- | :--------------------- | :------------ | :------------------ | :--------- |
| &lt;strong&gt;QMIX&lt;/strong&gt;  | 单调性约束 (权重 $&gt;0$) | 受限 (单调类) | 严格                | 低         |
| &lt;strong&gt;QTRAN&lt;/strong&gt; | 软约束松弛 + 罚项      | 完全          | 近似 (软约束)       | 极高       |
| &lt;strong&gt;WQMIX&lt;/strong&gt; | 双网络 + 非对称加权    | 近似完全      | 严格 (投影后)       | 中         |
| &lt;strong&gt;QPLEX&lt;/strong&gt; | 优势分解 + 注意力权重  | &lt;strong&gt;完全&lt;/strong&gt;      | &lt;strong&gt;严格 (数学构造)&lt;/strong&gt; | 中         |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;演进脉络&lt;/strong&gt;：
从 QMIX 的“削足适履”（为了 IGM 牺牲表达能力），到 QPLEX 的“量体裁衣”（通过精巧的数学构造同时实现 IGM 和完全表达能力），值分解算法在 MARL 领域已经发展得相当成熟。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/105886628_p0_master1200.5fl6its319.webp"/><enclosure url="https://pic.hana0721.top/105886628_p0_master1200.5fl6its319.webp"/></item><item><title>RL笔记（23）：多智能体值分解 (VDN &amp; QMIX)</title><link>https://agusexp25.top/blog/rl-note-23</link><guid isPermaLink="true">https://agusexp25.top/blog/rl-note-23</guid><description>如何在不牺牲独立决策能力的前提下，实现复杂的协作？详解多智能体强化学习中的值分解流派。涵盖 IGM 原则、VDN 的线性分解与 QMIX 的单调性约束设计。</description><pubDate>Wed, 31 Dec 2025 16:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;引言（Introduction）&lt;/h2&gt;
&lt;p&gt;在上一篇笔记中，我们讨论了 MARL 的两种极端：&lt;strong&gt;JAL（完全中心化）&lt;/strong&gt; 理论完美但不可计算，&lt;strong&gt;IPPO（完全独立）&lt;/strong&gt; 计算简单但理论有毒。&lt;/p&gt;
&lt;p&gt;我们需要一种折中方案：&lt;strong&gt;CTDE（中心化训练，分布式执行）&lt;/strong&gt;。
对于 Value-Based 方法来说，CTDE 的核心挑战在于：&lt;strong&gt;如何利用全局 $Q_{tot}$ 来指导局部 $Q_i$ 的更新，同时确保局部贪婪决策能导致全局最优？&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;这就是 &lt;strong&gt;值分解 (Value Decomposition)&lt;/strong&gt; 算法的核心使命。本章将介绍这一流派的开山之作 &lt;strong&gt;VDN&lt;/strong&gt; 和经典之作 &lt;strong&gt;QMIX&lt;/strong&gt;。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;理论基石：Dec-POMDP 与 IGM&lt;/h2&gt;
&lt;h3&gt;问题形式化：Dec-POMDP&lt;/h3&gt;
&lt;p&gt;我们将多智能体协作任务建模为 &lt;strong&gt;去中心化部分可观测马尔可夫决策过程 (Dec-POMDP)&lt;/strong&gt;。
元组定义为 $G = \langle \mathcal{S}, N, U, P, R, Z, O, \gamma \rangle$：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;$s \in \mathcal{S}$：全局状态。&lt;/li&gt;
&lt;li&gt;$u_i \in U$：智能体 $i$ 的动作，联合动作 $\mathbf{u} \in U^n$。&lt;/li&gt;
&lt;li&gt;$z_i \in Z$：智能体 $i$ 的局部观测。&lt;/li&gt;
&lt;li&gt;$\tau_i$：动作-观测历史（因为是部分可观测，智能体需要记住历史）。&lt;/li&gt;
&lt;li&gt;$Q_{tot}(s, \mathbf{u})$：全局联合价值函数，代表集体的利益。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;核心原则：IGM (Individual-Global-Max)&lt;/h3&gt;
&lt;p&gt;为了保证“分布式执行”的有效性，我们必须确保：&lt;strong&gt;当每个智能体都最大化自己的局部利益 $Q_i$ 时，集体的利益 $Q_{tot}$ 也同时被最大化。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;这被称为 &lt;strong&gt;IGM 原则&lt;/strong&gt;，数学表达为：&lt;/p&gt;
&lt;p&gt;$$
\arg\max_{\mathbf{u}} Q_{tot}(\boldsymbol{\tau}, \mathbf{u}) =
\begin{pmatrix}
\arg\max_{u_1} Q_1(\tau_1, u_1) \
\vdots \
\arg\max_{u_n} Q_n(\tau_n, u_n)
\end{pmatrix}
$$&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;直觉&lt;/strong&gt;：就像一支理想的足球队，如果前锋拼命进球（局部最优），后卫拼命防守（局部最优），那么整支球队的胜率（全局最优）也应该是最高的。如果满足 IGM，我们就不需要复杂的协调通信，各自为战即可。&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2&gt;VDN (Value-Decomposition Networks)&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;论文&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/1706.05296&quot;&gt;Value-Decomposition Networks For Cooperative Multi-Agent Learning&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;VDN&lt;/strong&gt; 是值分解领域的奠基之作。它的思路非常简单粗暴：假设全局价值就是局部价值的&lt;strong&gt;直接加和&lt;/strong&gt;。&lt;/p&gt;
&lt;h3&gt;核心假设&lt;/h3&gt;
&lt;p&gt;$$
Q_{tot}(\boldsymbol{\tau}, \mathbf{u}) = \sum_{i=1}^n Q_i(\tau_i, u_i; \theta_i)
$$&lt;/p&gt;
&lt;h3&gt;训练与执行&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;训练时&lt;/strong&gt;：我们最小化 $Q_{tot}$ 与真实回报的 TD 误差：
$$ \mathcal{L}(\theta) = \left( r + \gamma \max*{\mathbf{u}&apos;} Q*{tot}(\boldsymbol{\tau}&apos;, \mathbf{u}&apos;; \theta^-) - Q*{tot}(\boldsymbol{\tau}, \mathbf{u}; \theta) \right)^2 $$
注意：这里的 $\max*{\mathbf{u}&apos;} Q_{tot}$ 可以很容易计算，因为 $\max \sum Q_i = \sum \max Q_i$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;执行时&lt;/strong&gt;：每个智能体只需选择 $u_i^* = \arg\max_{u_i} Q_i$，即可保证选择了全局最优动作。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;局限性&lt;/h3&gt;
&lt;p&gt;VDN 满足 IGM 原则，但&lt;strong&gt;求和&lt;/strong&gt;的假设太强了。它限制了 $Q_{tot}$ 只能表示局部价值的线性组合，无法处理复杂的非线性协作（例如：只有当 A 和 B 同时做某事时，奖励才会暴增）。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;QMIX&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;论文&lt;/strong&gt;：&lt;a href=&quot;https://arxiv.org/abs/1803.11485&quot;&gt;QMIX: Monotonic Value Function Factorisation for Deep Multi-Agent Reinforcement Learning&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;QMIX&lt;/strong&gt; 放宽了 VDN 的限制。它指出，要满足 IGM 原则，并不需要严格的线性求和，只需要满足 &lt;strong&gt;单调性约束 (Monotonicity Constraint)&lt;/strong&gt; 即可。&lt;/p&gt;
&lt;h3&gt;核心假设&lt;/h3&gt;
&lt;p&gt;$$
\frac{\partial Q_{tot}}{\partial Q_i} \ge 0, \quad \forall i \in {1, \dots, n}
$$&lt;/p&gt;
&lt;p&gt;即：&lt;strong&gt;局部价值 $Q_i$ 越高，全局价值 $Q_{tot}$ 也就越高。&lt;/strong&gt;
只要满足这个条件，$\arg\max Q_{tot}$ 就一定等价于 $\arg\max Q_i$ 的组合。&lt;/p&gt;
&lt;h3&gt;网络架构&lt;/h3&gt;
&lt;p&gt;QMIX 使用一个 &lt;strong&gt;混合网络 (Mixing Network)&lt;/strong&gt; 来拟合 $Q_{tot}$，它以所有 $Q_i$ 为输入，以 $Q_{tot}$ 为输出。
为了保证单调性（权重非负），QMIX 引入了一个 &lt;strong&gt;超网络 (Hypernetwork)&lt;/strong&gt;。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Agent Network&lt;/strong&gt;: 输入局部观测 $\tau_i$，输出 $Q_i$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Mixing Network&lt;/strong&gt;:
&lt;ul&gt;
&lt;li&gt;这是一个前馈神经网络，输入是 ${Q_1, \dots, Q_n}$，输出是 $Q_{tot}$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;关键点&lt;/strong&gt;：这个网络的&lt;strong&gt;权重 (Weights)&lt;/strong&gt; 是由 Hypernetwork 生成的，且被强制取绝对值（保证非负）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Hypernetwork&lt;/strong&gt;:
&lt;ul&gt;
&lt;li&gt;输入是全局状态 $s$。&lt;/li&gt;
&lt;li&gt;输出是 Mixing Network 的权重 $W$ 和偏置 $b$。&lt;/li&gt;
&lt;li&gt;公式：$W_{mix} = | \text{Hyper}(s) |$。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;通过这种设计，QMIX 实现了：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;非线性能力&lt;/strong&gt;：Mixing Network 可以是复杂的非线性函数。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;状态依赖&lt;/strong&gt;：全局状态 $s$ 决定了混合的方式（例如在某些状态下，$Q_1$ 更重要；在另一些状态下，$Q_2$ 更重要）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;单调性保证&lt;/strong&gt;：由于权重恒为正，混合网络对输入 $Q_i$ 保持单调递增。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;损失函数&lt;/h3&gt;
&lt;p&gt;QMIX 的训练也是标准的 DQN 风格：&lt;/p&gt;
&lt;p&gt;$$
\mathcal{L}(\theta) = \left( r + \gamma Q_{tot}(\boldsymbol{\tau}&apos;, s&apos;, \mathbf{u}&lt;em&gt;{max}&apos;; \theta^-) - Q&lt;/em&gt;{tot}(\boldsymbol{\tau}, s, \mathbf{u}; \theta) \right)^2
$$&lt;/p&gt;
&lt;p&gt;其中 $\mathbf{u}_{max}&apos;$ 是通过各个 $Q_i$ 贪婪选出的动作组合。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;总结与对比&lt;/h2&gt;
&lt;p&gt;| 维度             | VDN                         | QMIX                           |
| :--------------- | :-------------------------- | :----------------------------- |
| &lt;strong&gt;分解方式&lt;/strong&gt;     | 线性求和                    | 非线性混合                     |
| &lt;strong&gt;IGM 保证&lt;/strong&gt;     | 是 (Sum)                    | 是 (Monotonicity)              |
| &lt;strong&gt;全局信息利用&lt;/strong&gt; | 无 (仅通过反向传播隐式利用) | &lt;strong&gt;有 (Hypernetwork 输入 $s$)&lt;/strong&gt; |
| &lt;strong&gt;表达能力&lt;/strong&gt;     | 弱 (仅限线性关系)           | &lt;strong&gt;强 (单调非线性关系)&lt;/strong&gt;        |
| &lt;strong&gt;适用场景&lt;/strong&gt;     | 简单协作                    | 复杂非线性协作 (如集火攻击)    |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;QMIX 的地位&lt;/strong&gt;：
它是 MARL 领域最经典的算法之一。虽然它只能处理满足单调性假设的任务（有些任务可能局部最优不等于全局最优），但在《星际争霸》(SMAC) 等主流测试平台上，QMIX 及其变体长期占据统治地位。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/104724685_p0_master1200.7p472bcti3.webp"/><enclosure url="https://pic.hana0721.top/104724685_p0_master1200.7p472bcti3.webp"/></item><item><title>RL笔记（22）：初入多智能体强化学习 (MARL)</title><link>https://agusexp25.top/blog/rl-note-22</link><guid isPermaLink="true">https://agusexp25.top/blog/rl-note-22</guid><description>MARL 的两个极端：详解联合动作学习 (JAL) 与独立学习 (Independent RL)。深度分析“维度灾难”与“环境非平稳性”这对核心矛盾。</description><pubDate>Wed, 31 Dec 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;引言（Introduction）&lt;/h2&gt;
&lt;p&gt;在之前的 19 篇笔记中，我们研究的都是 &lt;strong&gt;单智能体强化学习 (Single-Agent RL)&lt;/strong&gt;。
但在现实世界中，任务往往涉及多个个体。&lt;strong&gt;多智能体强化学习 (MARL)&lt;/strong&gt; 将问题扩展到了随机博弈（Stochastic Games）的领域。&lt;/p&gt;
&lt;p&gt;在进入复杂的 SOTA 算法之前，我们必须先理解解决 MARL 问题的两种&lt;strong&gt;最朴素、最极端&lt;/strong&gt;的思路：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;完全中心化 (JAL)&lt;/strong&gt;：把所有人看作一个人。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;完全去中心化 (IPPO)&lt;/strong&gt;：把队友看作空气（或环境噪声）。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;这两种思路分别对应了 MARL 的两大核心难题：&lt;strong&gt;维度灾难&lt;/strong&gt; 与 &lt;strong&gt;非平稳性&lt;/strong&gt;。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;理论模型：随机博弈&lt;/h2&gt;
&lt;p&gt;定义为一个元组 $(N, \mathcal{S}, \mathcal{A}, \mathcal{P}, \mathcal{R}, \gamma)$：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;$N$：智能体数量。&lt;/li&gt;
&lt;li&gt;$\mathcal{S}$：全局状态空间。&lt;/li&gt;
&lt;li&gt;$\mathcal{A} = \mathcal{A}_1 \times \dots \times \mathcal{A}_N$：&lt;strong&gt;联合动作空间 (Joint Action Space)&lt;/strong&gt;。
&lt;ul&gt;
&lt;li&gt;状态转移取决于所有人的动作组合 $\mathbf{a} = (a_1, \dots, a_N)$。&lt;/li&gt;
&lt;li&gt;即 $s&apos; \sim \mathcal{P}(\cdot | s, \mathbf{a})$。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2&gt;极端一：联合动作学习 (JAL)&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Joint Action Learning (JAL)&lt;/strong&gt; 代表了 &lt;strong&gt;完全中心化 (Fully Centralized)&lt;/strong&gt; 的思路。&lt;/p&gt;
&lt;h3&gt;核心思想&lt;/h3&gt;
&lt;p&gt;既然环境受所有人的动作 $\mathbf{a}$ 影响，那我们就构建一个拥有上帝视角的 &lt;strong&gt;“超级智能体” (Super Agent)&lt;/strong&gt;，它接收全局状态 $s$，直接输出联合动作 $\mathbf{a}$ 来控制所有单位。&lt;/p&gt;
&lt;h3&gt;方法&lt;/h3&gt;
&lt;p&gt;直接套用标准的 PPO 算法：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;输入：$s$&lt;/li&gt;
&lt;li&gt;输出：$\mathbf{a} = (a_1, a_2, \dots, a_N)$&lt;/li&gt;
&lt;li&gt;策略：$\Pi_\theta(\mathbf{a} | s)$&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;理论分析&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;优势：环境平稳&lt;/strong&gt;。
对于这个超级智能体来说，外界环境是静止的（Stationary），因为没有“其他人”在干扰它。因此，马尔可夫性质成立，RL 的收敛性理论依然有效。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;致命缺陷：维度灾难 (Curse of Dimensionality)&lt;/strong&gt;。
假设每个智能体有 $|A|$ 个动作，共有 $N$ 个智能体。联合动作空间的大小为 $|A|^N$。
&lt;ul&gt;
&lt;li&gt;$|A|=5, N=10 \Rightarrow 5^{10} \approx 9,765,625$。&lt;/li&gt;
&lt;li&gt;输出层需要预测近一千万个概率值，这在计算上是不可行的。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2&gt;极端二：独立学习 (Independent RL / IPPO)&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Independent PPO (IPPO)&lt;/strong&gt; 代表了 &lt;strong&gt;完全去中心化 (Fully Decentralized)&lt;/strong&gt; 的思路。&lt;/p&gt;
&lt;h3&gt;核心思想&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;“把队友当空气”&lt;/strong&gt;。
每个智能体 $i$ 都是一个独立的个体，它只关心自己的观测 $o_i$ 和奖励 $r_i$。它把所有“其他智能体”都视为&lt;strong&gt;环境的一部分&lt;/strong&gt;。&lt;/p&gt;
&lt;h3&gt;方法&lt;/h3&gt;
&lt;p&gt;同时运行 $N$ 个独立的 PPO 算法（参数可以共享，也可以不共享）：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;对于智能体 $i$：
&lt;ul&gt;
&lt;li&gt;输入：局部观测 $o_i$&lt;/li&gt;
&lt;li&gt;输出：独立动作 $a_i$&lt;/li&gt;
&lt;li&gt;策略：$\pi_{\theta_i}(a_i | o_i)$&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;理论分析&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;优势：线性扩展&lt;/strong&gt;。
计算复杂度随人数 $N$ 线性增长。无论有多少人，每个网络只输出 $|A|$ 个概率。这完美解决了维度灾难。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;致命缺陷：非平稳性 (Non-Stationarity)&lt;/strong&gt;。
从智能体 $i$ 的视角看，状态转移概率变成了：
$$ P(s&apos;|s, a&lt;em&gt;i) = \sum&lt;/em&gt;{\mathbf{a}&lt;em&gt;{-i}} P(s&apos;|s, a_i, \mathbf{a}&lt;/em&gt;{-i}) \pi*{-i}(\mathbf{a}*{-i}|s) $$
注意公式里的 $\pi_{-i}$（队友的策略）。在训练过程中，&lt;strong&gt;队友也在学习，$\pi_{-i}$ 一直在变&lt;/strong&gt;。
这意味着：&lt;strong&gt;对于智能体 $i$ 来说，昨天有用的策略，今天可能就没用了，因为环境（队友）变了。&lt;/strong&gt;
这破坏了马尔可夫假设，理论上算法无法收敛。&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2&gt;总结与对比&lt;/h2&gt;
&lt;p&gt;| 维度           | 联合动作学习 (JAL)           | 独立学习 (IPPO)                                  |
| :------------- | :--------------------------- | :----------------------------------------------- | --- | ---------------------- | --- | --- |
| &lt;strong&gt;控制方式&lt;/strong&gt;   | &lt;strong&gt;完全中心化&lt;/strong&gt; (Super Agent) | &lt;strong&gt;完全去中心化&lt;/strong&gt; (Independent Agents)            |
| &lt;strong&gt;动作空间&lt;/strong&gt;   | 联合动作 $\mathbf{a}$        | 独立动作 $a_i$                                   |
| &lt;strong&gt;空间复杂度&lt;/strong&gt; | &lt;strong&gt;指数级爆炸&lt;/strong&gt; $             | A                                                | ^N$ | &lt;strong&gt;线性增长&lt;/strong&gt; $N \times | A   | $   |
| &lt;strong&gt;环境性质&lt;/strong&gt;   | &lt;strong&gt;平稳 (Stationary)&lt;/strong&gt;        | &lt;strong&gt;非平稳 (Non-Stationary)&lt;/strong&gt;                      |
| &lt;strong&gt;理论保证&lt;/strong&gt;   | 有收敛保证                   | 无收敛保证                                       |
| &lt;strong&gt;实际表现&lt;/strong&gt;   | 规模稍大即无法运行           | 尽管没理论保证，但在实践中往往是 Strong Baseline |&lt;/p&gt;
&lt;h3&gt;这一章的启示&lt;/h3&gt;
&lt;p&gt;我们陷入了两难境地：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;选 JAL，理论稳但算不动。&lt;/li&gt;
&lt;li&gt;选 IPPO，算得快但理论虚。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;这就引出了 MARL 研究的圣杯——&lt;strong&gt;CTDE (集中式训练，分布式执行)&lt;/strong&gt;。
我们需要一种折中的方法：&lt;strong&gt;在训练时利用 JAL 的上帝视角来缓解非平稳性，在执行时利用 IPPO 的独立结构来避免维度灾难。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;这正是后续 &lt;strong&gt;MAPPO&lt;/strong&gt; 和 &lt;strong&gt;QMIX&lt;/strong&gt; 等算法的核心动机。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/102841826_p0_master1200.4clh7xw95k.webp"/><enclosure url="https://pic.hana0721.top/102841826_p0_master1200.4clh7xw95k.webp"/></item><item><title>RL笔记（21）：目标导向的强化学习 (Goal-Conditioned RL)</title><link>https://agusexp25.top/blog/rl-note-21</link><guid isPermaLink="true">https://agusexp25.top/blog/rl-note-21</guid><description>从解决单一任务到解决一类任务：详解目标导向 RL 的数学形式化。涵盖通用价值函数近似 (UVFA) 理论，以及解决稀疏奖励难题的核心技术——事后经验回放 (HER)。</description><pubDate>Tue, 30 Dec 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;引言（Introduction）&lt;/h2&gt;
&lt;p&gt;在标准的强化学习设定中，我们通常训练一个智能体去完成&lt;strong&gt;一个特定的任务&lt;/strong&gt;（例如：打赢一局游戏，或者让机器人走到特定的坐标 $(x,y)$）。如果任务目标变了（例如：走到新的坐标 $(x&apos;, y&apos;)$），我们通常需要重新训练网络。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;目标导向的强化学习 (Goal-Conditioned RL, GCRL)&lt;/strong&gt; 旨在打破这一限制。我们希望训练一个智能体，它不仅能根据状态 $s$ 做出决策，还能根据&lt;strong&gt;输入的目标 $g$&lt;/strong&gt; 动态调整策略。&lt;/p&gt;
&lt;p&gt;即策略函数变为 $\pi(a|s, g)$，价值函数变为 $Q(s, a, g)$。这使得智能体具备了&lt;strong&gt;多任务泛化&lt;/strong&gt;的能力。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;问题形式化 (Problem Formulation)&lt;/h2&gt;
&lt;p&gt;我们将标准的马尔可夫决策过程 (MDP) 扩展为 &lt;strong&gt;目标增强的 MDP (Augmented MDP)&lt;/strong&gt;。&lt;/p&gt;
&lt;h3&gt;扩展元组&lt;/h3&gt;
&lt;p&gt;新的元组定义为 $\mathcal{M} = (\mathcal{S}, \mathcal{A}, \mathcal{P}, \mathcal{G}, r, \gamma)$。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;$\mathcal{G}$：目标空间（通常是状态空间 $\mathcal{S}$ 的子集）。&lt;/li&gt;
&lt;li&gt;$r(s, a, g)$：目标导向的奖励函数。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;奖励函数的设计&lt;/h3&gt;
&lt;p&gt;在 GCRL 中，最常见的奖励函数有两种形式：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;稀疏奖励 (Sparse Reward)&lt;/strong&gt;：
只有当智能体真正达成目标时才给奖励（通常用于机械臂抓取等精确任务）。&lt;/p&gt;
&lt;p&gt;$$
r(s, a, g) = \mathbb{I}(\phi(s) = g) = \begin{cases} 0 &amp;#x26; \text{if } ||\phi(s) - g|| &amp;#x3C; \epsilon \ -1 &amp;#x26; \text{otherwise} \end{cases}
$$&lt;/p&gt;
&lt;p&gt;&lt;em&gt;(注：这里用 0/-1 奖励结构比 1/0 更常见，因为这样价值函数代表了“到达目标的期望步数”的负值)&lt;/em&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;稠密奖励 (Dense Reward)&lt;/strong&gt;：
基于当前状态与目标的距离。
$$
r(s, a, g) = -||\phi(s) - g||_2
$$&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;目标：UVFA&lt;/h3&gt;
&lt;p&gt;我们的优化目标是找到一个最优策略 $\pi^*$，最大化所有可能的起始状态和目标的期望回报：&lt;/p&gt;
&lt;p&gt;$$
J(\pi) = \mathbb{E}&lt;em&gt;{g \sim p(g), s_0 \sim p(s_0), \tau \sim \pi} \left[ \sum&lt;/em&gt;{t=0}^\infty \gamma^t r(s_t, a_t, g) \right]
$$&lt;/p&gt;
&lt;p&gt;这种能够同时泛化状态 $s$ 和目标 $g$ 的价值函数近似器，被称为 &lt;strong&gt;通用价值函数近似 (Universal Value Function Approximators, UVFA)&lt;/strong&gt;。
$$ V(s, g; \theta) \approx \mathbb{E} [R | s, g] $$
神经网络结构通常是将状态特征 $\phi(s)$ 和目标特征 $\psi(g)$ 拼接后输入。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;稀疏奖励难题&lt;/h2&gt;
&lt;p&gt;尽管 UVFA 提供了理论框架，但在实际训练中，如果使用&lt;strong&gt;稀疏奖励&lt;/strong&gt;，学习会极其困难。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;问题&lt;/strong&gt;：在一个高维环境中（例如机械臂控制），随机探索碰到目标 $g$ 的概率几乎为 0。
这意味着：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;经验回放池 $\mathcal{D}$ 中几乎所有的样本，其奖励 $r$ 都是 -1（或 0）。&lt;/li&gt;
&lt;li&gt;智能体收不到任何正反馈，梯度无法指引优化的方向。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这被称为 &lt;strong&gt;稀疏奖励问题 (Sparse Reward Problem)&lt;/strong&gt;。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;事后经验回放 (Hindsight Experience Replay, HER)&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;HER&lt;/strong&gt; 是 GCRL 领域最核心的算法创新。它的灵感来源于人类的“精神胜利法”。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;💡 直觉&lt;/strong&gt;：
假设你的目标是射中靶心，但你射偏了，射到了旁边的树上。
虽然作为“射靶心”的任务你失败了，但如果我们事后回顾（Hindsight），假设原本的目标就是“射中那棵树”，那你通过刚才的动作序列，完美地完成了任务！&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;理论推导&lt;/h3&gt;
&lt;p&gt;HER 的核心在于&lt;strong&gt;重标记 (Relabeling)&lt;/strong&gt; 经验回放池中的目标。&lt;/p&gt;
&lt;p&gt;假设智能体在目标 $g$ 的指导下，产生了一条轨迹：
$$ \tau = {s_0, a_0, r_0, s_1, \dots, s_T} $$
其中，最后的状态 $s_T$ 并没有到达预设目标 $g$，所以所有的 $r_t = -1$。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;HER 的操作&lt;/strong&gt;：
我们构造一个新的虚假目标 $g&apos; = s_T$（即把最后实际达到的状态当作目标）。
对于轨迹中的每一个转换 $(s_t, a_t, s_{t+1})$，我们根据新目标 $g&apos;$ 重新计算奖励：&lt;/p&gt;
&lt;p&gt;$$
r&apos;&lt;em&gt;t = r(s_t, a_t, g&apos;) = \begin{cases} 0 &amp;#x26; \text{if } s&lt;/em&gt;{t+1} = g&apos; \ -1 &amp;#x26; \text{otherwise} \end{cases}
$$&lt;/p&gt;
&lt;p&gt;由于 $g&apos;$ 就是 $s_T$，那么在轨迹结束时，智能体&lt;strong&gt;必然&lt;/strong&gt;获得了正奖励。&lt;/p&gt;
&lt;p&gt;我们将原始数据 $(s_t, a_t, r_t, s_{t+1}, g)$ 和修改后的数据 $(s_t, a_t, r&apos;&lt;em&gt;t, s&lt;/em&gt;{t+1}, g&apos;)$ 都存入 Replay Buffer。&lt;/p&gt;
&lt;h3&gt;为什么数学上是成立的？(Off-Policy 的重要性)&lt;/h3&gt;
&lt;p&gt;HER 只能用于 &lt;strong&gt;离线策略 (Off-Policy)&lt;/strong&gt; 算法（如 DQN, DDPG, SAC）。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;原因&lt;/strong&gt;：
我们原本产生的轨迹 $\tau$ 是由策略 $\pi(\cdot | s, g)$ 生成的。
但在训练时，我们将其强行解释为是由策略 $\pi(\cdot | s, g&apos;)$ 生成的。
这本质上是一种极端的 Off-Policy 学习：&lt;strong&gt;行为策略的目标与更新时的目标完全不同。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;只要算法支持 Off-Policy（即不仅可以利用自己产生的旧数据，还可以利用“别人”产生的数据），HER 就是数学上合法的。因为对于 $(s_t, a_t, s_{t+1})$ 这个物理转换来说，它只遵循环境动力学 $P(s&apos;|s,a)$，与目标 $g$ 无关。环境的物理规律是不随心中的目标而改变的。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;HER 的变种与理论解释&lt;/h2&gt;
&lt;h3&gt;不同的重标记策略 (Replay Strategy)&lt;/h3&gt;
&lt;p&gt;在将数据存入 Buffer 时，我们可以选择不同的重标记方式：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Future&lt;/strong&gt;: 从当前时间步 $t$ 之后的轨迹中随机选取一个状态作为新目标 $g&apos;$。（这是标准做法，效果最好）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Final&lt;/strong&gt;: 仅使用轨迹的最后一个状态 $s_T$ 作为 $g&apos;$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Episode&lt;/strong&gt;: 从整个轨迹中随机选取一个状态。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Random&lt;/strong&gt;: 随机生成一个全新的目标（效果通常不好）。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;隐式课程学习 (Implicit Curriculum Learning)&lt;/h3&gt;
&lt;p&gt;从理论上讲，HER 实现了一种自动的课程学习。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;初期&lt;/strong&gt;：智能体很笨，只能碰到离起始点很近的状态。HER 把这些近的状态设为目标，智能体学会了如何“走一小步”。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;中期&lt;/strong&gt;：学会走一小步后，智能体能探索到稍远一点的状态。HER 再次把稍远的状态设为目标。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;后期&lt;/strong&gt;：随着能力扩展，智能体最终能学会到达真正的远距离目标 $g$。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这种奖励信号从容易到困难的自动传播，是 HER 解决稀疏奖励问题的本质原因。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;总结&lt;/h2&gt;
&lt;p&gt;目标导向 RL 将强化学习从“解决一个问题”提升到了“解决一类问题”。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;UVFA&lt;/strong&gt; 提供了网络结构的理论基础，让 $V(s,g)$ 成为可能。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;HER&lt;/strong&gt; 解决了最为棘手的稀疏奖励问题，通过&lt;strong&gt;事后重标记&lt;/strong&gt;，将每一次失败的尝试都转化为另一次成功的训练数据。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;至此，我们已经掌握了让智能体学会“指哪打哪”的关键技术。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/90399055_p0_master1200.4g535npbv6.webp"/><enclosure url="https://pic.hana0721.top/90399055_p0_master1200.4g535npbv6.webp"/></item><item><title>RL笔记（20）：Decision Transformer</title><link>https://agusexp25.top/blog/rl-note-20</link><guid isPermaLink="true">https://agusexp25.top/blog/rl-note-20</guid><description>范式转移：当强化学习遇上 Transformer。详解 Decision Transformer 如何抛弃贝尔曼方程，利用 Return-to-Go 将 RL 重构为条件序列建模问题。</description><pubDate>Mon, 29 Dec 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;引言（Introduction）&lt;/h2&gt;
&lt;p&gt;在之前的笔记中，无论是有模型还是无模型，在线还是离线，我们解决 RL 问题的核心思路都是基于 &lt;strong&gt;动态规划 (Dynamic Programming)&lt;/strong&gt; 的：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;我们要估计价值函数 $V(s)$ 或 $Q(s,a)$。&lt;/li&gt;
&lt;li&gt;利用贝尔曼方程进行迭代更新（自举）。&lt;/li&gt;
&lt;li&gt;通过最大化价值来获得策略。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Decision Transformer (DT)&lt;/strong&gt; 提出了一种完全不同的视角：
如果我们拥有大量的离线轨迹数据，为什么不把它看作是一个 &lt;strong&gt;序列建模 (Sequence Modeling)&lt;/strong&gt; 问题呢？
就像 GPT 预测下一个单词一样，能不能根据&lt;strong&gt;过去的轨迹&lt;/strong&gt;和&lt;strong&gt;期望的回报&lt;/strong&gt;，直接预测&lt;strong&gt;下一个动作&lt;/strong&gt;？&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;核心思想&lt;/strong&gt;：
强化学习 $\approx$ 在给定&lt;strong&gt;期望回报 (Target Return)&lt;/strong&gt; 条件下的&lt;strong&gt;行为克隆 (Conditional Behavior Cloning)&lt;/strong&gt;。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2&gt;轨迹表示与 Return-to-Go&lt;/h2&gt;
&lt;p&gt;为了将 RL 问题转化为 Transformer 可以处理的序列问题，我们需要重新定义模型的输入。&lt;/p&gt;
&lt;h3&gt;轨迹 (Trajectory)&lt;/h3&gt;
&lt;p&gt;一条标准的 RL 轨迹由状态、动作和奖励组成：
$$ \tau = (s_1, a_1, r_1, s_2, a_2, r_2, \dots, s_T, a_T, r_T) $$&lt;/p&gt;
&lt;h3&gt;剩余回报 (Return-to-Go, RTG)&lt;/h3&gt;
&lt;p&gt;传统的 RL 使用即时奖励 $r_t$。但在做序列预测时，我们更关心“&lt;strong&gt;未来还能拿多少分&lt;/strong&gt;”。
定义 $t$ 时刻的 &lt;strong&gt;Return-to-Go (RTG)&lt;/strong&gt; $\hat{R}_t$ 为从当前时刻到回合结束的累积回报：&lt;/p&gt;
&lt;p&gt;$$
\hat{R}&lt;em&gt;t = \sum&lt;/em&gt;{k=t}^T r_k
$$&lt;/p&gt;
&lt;h3&gt;模型的输入序列&lt;/h3&gt;
&lt;p&gt;DT 的核心创新在于将 RTG 作为一种&lt;strong&gt;条件 (Condition)&lt;/strong&gt; 输入给模型。
输入序列被组织为三元组的序列（K-V-Q 模式）：&lt;/p&gt;
&lt;p&gt;$$
\tau_{input} = (\hat{R}_1, s_1, a_1, \hat{R}_2, s_2, a_2, \dots, \hat{R}_T, s_T, a_T)
$$&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;直觉&lt;/strong&gt;：这就像是在告诉模型：“我现在状态是 $s_1$，我想在未来总共获得 $\hat{R}_1$ 分，请告诉我该做什么动作 $a_1$？”&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2&gt;网络架构&lt;/h2&gt;
&lt;p&gt;DT 直接使用了 &lt;strong&gt;GPT (Generative Pre-trained Transformer)&lt;/strong&gt; 的架构，即因果掩码 Transformer (Causal Transformer)。&lt;/p&gt;
&lt;h3&gt;嵌入层 (Embeddings)&lt;/h3&gt;
&lt;p&gt;由于 $R, s, a$ 的模态不同（标量、图像/向量、离散/连续），我们需要先将它们映射到同一个维度 $d$：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;状态嵌入&lt;/strong&gt;：CNN 或 MLP 处理 $s_t$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;动作嵌入&lt;/strong&gt;：Embedding 层或 MLP 处理 $a_t$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;回报嵌入&lt;/strong&gt;：MLP 处理 $\hat{R}_t$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;时间步嵌入 (Timestep Embedding)&lt;/strong&gt;：为了让模型知道当前处于轨迹的哪个阶段，额外加入一个可学习的时间位置编码。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;上下文窗口 (Context Window)&lt;/h3&gt;
&lt;p&gt;由于轨迹可能很长，Transformer 无法处理整个 Episode。DT 使用一个固定的上下文窗口 $K$（context length），只把最近的 $K$ 步输入模型：&lt;/p&gt;
&lt;p&gt;$$
\text{Input}&lt;em&gt;t = [\hat{R}&lt;/em&gt;{t-K}, s_{t-K}, a_{t-K}, \dots, \hat{R}_t, s_t]
$$&lt;/p&gt;
&lt;h3&gt;预测目标&lt;/h3&gt;
&lt;p&gt;模型的目标是预测下一个 token。在 DT 中，我们主要关注预测&lt;strong&gt;动作&lt;/strong&gt; $a_t$。&lt;/p&gt;
&lt;p&gt;$$
a_t = \text{DecisionTransformer}(\hat{R}&lt;em&gt;{t-K}, s&lt;/em&gt;{t-K}, a_{t-K}, \dots, \hat{R}_t, s_t)
$$&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;训练与推断&lt;/h2&gt;
&lt;h3&gt;训练 (Training)&lt;/h3&gt;
&lt;p&gt;DT 的训练过程完全是&lt;strong&gt;监督学习 (Supervised Learning)&lt;/strong&gt;，不需要计算梯度，不需要贝尔曼误差，不需要目标网络。&lt;/p&gt;
&lt;p&gt;从离线数据集 $\mathcal{D}$ 中采样轨迹片段，最小化预测动作与真实动作的误差：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;离散动作&lt;/strong&gt;：交叉熵损失 (Cross-Entropy Loss)。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;连续动作&lt;/strong&gt;：均方误差 (MSE Loss)。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;$$
\mathcal{L}(\theta) = \mathbb{E}&lt;em&gt;{\tau \sim \mathcal{D}} \left[ \sum&lt;/em&gt;{t=1}^T (a_t - \hat{a}_t)^2 \right]
$$&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;💡 注意&lt;/strong&gt;：虽然数据集中可能包含低分的轨迹（“臭棋”），但模型学习的是条件概率 $P(a_t | \hat{R}_t, s_t, \dots)$。也就是说，模型学会了“如果想要低分该怎么做”以及“如果想要高分该怎么做”。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;推断 (Inference)&lt;/h3&gt;
&lt;p&gt;这是 DT 最神奇的地方。训练完成后，我们可以通过&lt;strong&gt;提示 (Prompting)&lt;/strong&gt; 来控制智能体。&lt;/p&gt;
&lt;p&gt;我们给智能体设定一个&lt;strong&gt;目标回报 (Target Return)&lt;/strong&gt; $\hat{R}_{target}$（通常设为数据集中最高分的那个回报，或者更高）。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;自回归生成过程&lt;/strong&gt;：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;初始时刻 $t=1$&lt;/strong&gt;：输入 $(\hat{R}_{target}, s_1)$，模型输出动作 $a_1$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;环境交互&lt;/strong&gt;：执行 $a_1$，环境返回即时奖励 $r_1$ 和新状态 $s_2$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;更新目标&lt;/strong&gt;：既然已经拿到了 $r_1$，剩下的目标就要减去它：
$$ \hat{R}_2 = \hat{R}_1 - r_1 $$&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;下一时刻&lt;/strong&gt;：输入 $(\dots, \hat{R}_1, s_1, a_1, \hat{R}_2, s_2)$，预测 $a_2$。&lt;/li&gt;
&lt;li&gt;重复直至结束。&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2&gt;理论对比：DT vs. CQL&lt;/h2&gt;
&lt;p&gt;为了理解 DT 的位置，我们将它与上一篇笔记中的 CQL 进行对比：&lt;/p&gt;
&lt;p&gt;| 维度               | Conservative Q-Learning (CQL)          | Decision Transformer (DT)                |
| :----------------- | :------------------------------------- | :--------------------------------------- |
| &lt;strong&gt;核心范式&lt;/strong&gt;       | &lt;strong&gt;动态规划 (DP)&lt;/strong&gt;                      | &lt;strong&gt;序列建模 (SL)&lt;/strong&gt;                        |
| &lt;strong&gt;学习目标&lt;/strong&gt;       | 逼近最优价值函数 $Q^*(s,a)$            | 拟合条件分布 $P(a|\hat{R}, s)$          |
| &lt;strong&gt;训练方式&lt;/strong&gt;       | 最小化贝尔曼误差 (TD Error)            | 最大化动作似然 (Supervised)              |
| &lt;strong&gt;OOD 处理&lt;/strong&gt;       | 显式惩罚未知动作的 Q 值 (悲观主义)     | 依靠 Transformer 的泛化能力 (无显式约束) |
| &lt;strong&gt;长时序信用分配&lt;/strong&gt; | 依靠 $Q$ 值的自举传播 (Bootstrapping)  | 依靠 Attention 机制直接关联过去与未来    |
| &lt;strong&gt;优点&lt;/strong&gt;           | 理论下界保证，擅长拼接轨迹 (Stitching) | 训练极其稳定，易于扩展，能够处理稀疏奖励 |&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;总结&lt;/h2&gt;
&lt;p&gt;Decision Transformer 的提出证明了：&lt;strong&gt;只要模型足够强（Transformer），强化学习可以被简化为监督学习。&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;它不需要复杂的 Actor-Critic 架构。&lt;/li&gt;
&lt;li&gt;它不需要处理“过高估计”等死板的数值问题。&lt;/li&gt;
&lt;li&gt;它通过 &lt;strong&gt;Return-to-Go&lt;/strong&gt; 实现了类似于“事后诸葛亮”的条件控制：利用这一局最终的得分作为条件，来学习这一局中的动作。&lt;/li&gt;
&lt;/ul&gt;</content:encoded><h:img src="https://pic.hana0721.top/131135880_p0_master1200.9rjzqc0dp5.webp"/><enclosure url="https://pic.hana0721.top/131135880_p0_master1200.9rjzqc0dp5.webp"/></item><item><title>RL笔记（19）：离线强化学习 (Offline RL)</title><link>https://agusexp25.top/blog/rl-note-19</link><guid isPermaLink="true">https://agusexp25.top/blog/rl-note-19</guid><description>数据驱动的强化学习：当不能与环境交互时，如何从静态数据集中学习？深度解析分布偏移 (Distribution Shift) 问题，以及 BCQ 和 CQL 算法的理论推导。</description><pubDate>Sun, 28 Dec 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;引言（Introduction）&lt;/h2&gt;
&lt;p&gt;在之前的章节（DQN, SAC, DDPG）中，我们讨论的都是 &lt;strong&gt;在线 (Online)&lt;/strong&gt; 或 &lt;strong&gt;离线策略 (Off-Policy)&lt;/strong&gt; 算法。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Online&lt;/strong&gt;: 边玩边学。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Off-Policy&lt;/strong&gt;: 可以利用之前的经验回放池（Replay Buffer），但仍然需要不断与环境交互来补充新数据，纠正价值估计。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;离线强化学习 (Offline RL)&lt;/strong&gt;，又称 Batch RL，面临的是一个更严苛的场景：
&lt;strong&gt;智能体完全不能与环境交互，只能从一个固定的、历史的数据集 $\mathcal{D}$ 中学习策略。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;这就像是“仅仅通过看别人下棋的棋谱（而且可能含有臭棋），就要学会成为棋圣”。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;核心挑战：分布偏移 (Distribution Shift)&lt;/h2&gt;
&lt;p&gt;既然 Off-Policy 算法（如 SAC）可以使用 Replay Buffer，为什么不能直接把静态数据集 $\mathcal{D}$ 当作 Buffer 跑 SAC 呢？&lt;/p&gt;
&lt;p&gt;答案是：&lt;strong&gt;外推误差 (Extrapolation Error)&lt;/strong&gt;。&lt;/p&gt;
&lt;h3&gt;贝尔曼更新的陷阱&lt;/h3&gt;
&lt;p&gt;回顾 Q-Learning 的贝尔曼更新目标：&lt;/p&gt;
&lt;p&gt;$$
\mathcal{T}Q(s, a) = r + \gamma \max_{a&apos;} Q(s&apos;, a&apos;)
$$&lt;/p&gt;
&lt;p&gt;或者 Actor-Critic 中的：&lt;/p&gt;
&lt;p&gt;$$
y = r + \gamma Q(s&apos;, \pi(s&apos;))
$$&lt;/p&gt;
&lt;p&gt;这里存在一个致命的 &lt;strong&gt;反事实查询 (Counterfactual Query)&lt;/strong&gt; 问题：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;数据集 $\mathcal{D}$ 是由行为策略 $\pi_\beta$ 产生的。&lt;/li&gt;
&lt;li&gt;我们学习的新策略 $\pi$ 通常会与 $\pi_\beta$ 不同（为了变得更好）。&lt;/li&gt;
&lt;li&gt;在计算目标值时，我们需要查询 $Q(s&apos;, \pi(s&apos;))$。&lt;/li&gt;
&lt;li&gt;如果 $\pi(s&apos;)$ 选出的动作 $a&apos;$ &lt;strong&gt;从未在数据集 $\mathcal{D}$ 中出现过&lt;/strong&gt;（OOD, Out-of-Distribution），Q 网络对这个从未见过的 $(s&apos;, a&apos;)$ 会输出什么？
&lt;ul&gt;
&lt;li&gt;根据神经网络的特性，它会输出一个随机的、无意义的值。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;最大化的诅咒&lt;/strong&gt;：由于 $\max$ 操作的存在，优化器会倾向于选择那些被&lt;strong&gt;错误高估&lt;/strong&gt;的 OOD 动作。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;误差传播&lt;/strong&gt;：这个高估的误差会通过贝尔曼方程回传，导致整个 Q 函数崩溃。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;这就是 &lt;strong&gt;分布偏移&lt;/strong&gt;：训练数据的分布 $(s, a) \sim \pi_\beta$ 与学习策略的分布 $(s, a) \sim \pi$ 不一致，导致 Q 值在未知区域严重高估。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;解决方案一：基于约束的方法 (BCQ)&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;BCQ (Batch-Constrained deep Q-learning)&lt;/strong&gt; 的思路非常直观：
既然 OOD 动作会导致 Q 值高估，那我就&lt;strong&gt;禁止智能体选择那些在数据集中没出现过的动作&lt;/strong&gt;。&lt;/p&gt;
&lt;h3&gt;理论推导&lt;/h3&gt;
&lt;p&gt;我们希望优化策略 $\pi$，使其在最大化 $Q$ 值的动作，同时满足它生成的动作分布接近行为策略 $\pi_\beta$：&lt;/p&gt;
&lt;p&gt;$$
\pi(s) = \arg\max_{a} Q(s,a) \quad \text{s.t.} \quad P(a|s, \mathcal{D}) &gt; \tau
$$&lt;/p&gt;
&lt;h3&gt;算法实现逻辑&lt;/h3&gt;
&lt;p&gt;由于 $\pi_\beta$ 未知，BCQ 训练一个 &lt;strong&gt;生成模型 (VAE)&lt;/strong&gt; 来拟合数据集中的状态-动作分布。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;生成 (Generation)&lt;/strong&gt;：使用 CVAE 根据状态 $s$ 生成一组“在该状态下可能出现过的”候选动作 ${a_1, \dots, a_n}$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;扰动 (Perturbation)&lt;/strong&gt;：训练一个扰动网络 $\xi_\phi(s,a)$，对生成的动作进行微调（在小范围内寻找更优解），得到 ${a_1+\xi_1, \dots, a_n+\xi_n}$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;选择 (Selection)&lt;/strong&gt;：在这些动作中，选择 Q 值最大的那个作为最终输出。&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;💡 评价&lt;/strong&gt;：BCQ 是一种保守策略，它消除了外推误差，但也限制了策略的泛化能力（只能在见过的数据附近微调）。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2&gt;解决方案二：基于价值的保守方法 (CQL)&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;CQL (Conservative Q-Learning)&lt;/strong&gt; 是目前理论最完备的 Offline RL 算法之一。
它的思路是：&lt;strong&gt;修改贝尔曼更新的目标函数，显式地惩罚 OOD 动作的 Q 值。&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;目标函数设计&lt;/h3&gt;
&lt;p&gt;标准的贝尔曼误差是最小化 $\mathbb{E}_{(s,a)\sim\mathcal{D}} [(Q - \mathcal{T}Q)^2]$。
CQL 增加了一个正则项，用于&lt;strong&gt;最小化&lt;/strong&gt;策略 $\mu$（新策略）产生的动作的 Q 值，同时&lt;strong&gt;最大化&lt;/strong&gt;数据集 $\mathcal{D}$ 中动作的 Q 值：&lt;/p&gt;
&lt;p&gt;$$
\min_Q \alpha \left( \underbrace{\mathbb{E}&lt;em&gt;{s\sim\mathcal{D}, a\sim\mu(a|s)} [Q(s,a)]}&lt;/em&gt;{\text{压低 OOD 动作的 Q 值}} - \underbrace{\mathbb{E}&lt;em&gt;{s\sim\mathcal{D}, a\sim\pi&lt;/em&gt;\beta(a|s)} [Q(s,a)]}&lt;em&gt;{\text{拉高数据中动作的 Q 值}} \right) + \frac{1}{2} \mathbb{E}&lt;/em&gt;{\mathcal{D}} [(Q - \mathcal{B}^{\pi}Q)^2]
$$&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;$\mu(a|s)$：可以是当前学习的策略，也可以是随机分布。&lt;/li&gt;
&lt;li&gt;通过这种“压低未知，拉高已知”，CQL 迫使 Q 函数在 OOD 区域产生低估。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;理论推导：Q 值下界 (Lower Bound)&lt;/h3&gt;
&lt;p&gt;CQL 的核心理论贡献在于证明了上述目标函数学习到的 Q 值 $\hat{Q}$ 是真实 Q 值 $Q^\pi$ 的&lt;strong&gt;下界&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;令 $\mathcal{B}^\pi$ 为贝尔曼算子。CQL 的不动点迭代可以近似写作：&lt;/p&gt;
&lt;p&gt;$$
\hat{Q}_{k+1} \leftarrow \mathcal{B}^\pi \hat{Q}&lt;em&gt;k - \alpha (\mu - \pi&lt;/em&gt;\beta)
$$&lt;/p&gt;
&lt;p&gt;(这里省略了复杂的采样误差项，仅关注期望行为)&lt;/p&gt;
&lt;p&gt;当 $\alpha$ 足够大时，可以证明：&lt;/p&gt;
&lt;p&gt;$$
\mathbb{E}&lt;em&gt;{\pi(a|s)} [\hat{Q}(s,a)] \le \mathbb{E}&lt;/em&gt;{\pi(a|s)} [Q^\pi(s,a)]
$$&lt;/p&gt;
&lt;p&gt;这意味着 CQL 学习到的 Q 值是&lt;strong&gt;保守的 (Conservative)&lt;/strong&gt;。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;如果策略想去一个未知区域，CQL 会告诉它：“那个地方 Q 值很低（哪怕实际上可能很高）”。&lt;/li&gt;
&lt;li&gt;因此，策略会倾向于留在数据覆盖的“安全区域”内。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;广义 CQL (Generalization)&lt;/h3&gt;
&lt;p&gt;对于连续动作空间，CQL 将第一项正则化改为 $\log\sum\exp$ 形式（Soft-max），以覆盖所有可能的动作：&lt;/p&gt;
&lt;p&gt;$$
\min_Q \alpha \mathbb{E}&lt;em&gt;{s \sim \mathcal{D}} \left[ \log \sum_a \exp(Q(s,a)) - \mathbb{E}&lt;/em&gt;{a \sim \pi_\beta}[Q(s,a)] \right] + \text{Bellman Error}
$$&lt;/p&gt;
&lt;p&gt;这等价于压低整个 Q 值函数的配分函数，确保没有任何一个 OOD 动作能由于外推误差而获得异常高的 Q 值。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;总结：从乐观到悲观&lt;/h2&gt;
&lt;p&gt;| 维度         | 在线/离线策略 RL (DQN/SAC)         | 离线 RL (Offline RL)                                         |
| :----------- | :--------------------------------- | :----------------------------------------------------------- |
| &lt;strong&gt;心态&lt;/strong&gt;     | &lt;strong&gt;乐观 (Optimistic)&lt;/strong&gt;              | &lt;strong&gt;悲观 (Pessimistic) / 保守&lt;/strong&gt;                                |
| &lt;strong&gt;对待未知&lt;/strong&gt; | 未知动作 = 潜在的高回报 (探索红利) | 未知动作 = 潜在的风险 (外推误差)                             |
| &lt;strong&gt;核心算法&lt;/strong&gt; | $\max Q$                           | $\max Q$ s.t. $a \in \mathcal{D}$ (BCQ) $\min Q_{OOD}$ (CQL) |
| &lt;strong&gt;适用场景&lt;/strong&gt; | 模拟器、低成本试错环境             | 医疗、工业控制、自动驾驶 (试错成本极高)                      |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;离线强化学习的本质&lt;/strong&gt;：
在无法验证真伪的情况下，&lt;strong&gt;宁可错过（低估），不可做错（高估）。&lt;/strong&gt; 只有当数据充分证明某个策略好时，我们才敢信任它。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/103975128_p0_master1200.8vniavqp93.webp"/><enclosure url="https://pic.hana0721.top/103975128_p0_master1200.8vniavqp93.webp"/></item><item><title>RL笔记（18）：基于模型的策略优化 (MBPO)</title><link>https://agusexp25.top/blog/rl-note-18</link><guid isPermaLink="true">https://agusexp25.top/blog/rl-note-18</guid><description>Model-Based RL 的集大成者：深度解析 MBPO 的理论边界。从单调性保证到分支推演 (Branched Rollout)，论证如何通过控制推演步长来解决模型偏差带来的二次误差累积问题。</description><pubDate>Sat, 27 Dec 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;引言（Introduction）&lt;/h2&gt;
&lt;p&gt;在强化学习的谱系中，存在一对矛盾：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Model-Free (如 SAC)&lt;/strong&gt;：渐进性能好（能收敛到很高的分数），但样本效率极低（需要几百万次交互）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Model-Based (如 Dyna)&lt;/strong&gt;：样本效率高（利用模型生成数据），但往往受限于&lt;strong&gt;模型偏差 (Model Bias)&lt;/strong&gt;，导致渐进性能较差。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;模型偏差的诅咒&lt;/strong&gt;在于：模型也是从数据中拟合出来的，它必然存在误差。当智能体在模型中进行长距离推演时，微小的误差会像滚雪球一样迅速放大（Compound Error），导致智能体在“虚构的完美世界”里表现很好，但在“残酷的现实世界”里一塌糊涂。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;MBPO (Model-Based Policy Optimization)&lt;/strong&gt; 的核心贡献在于它通过严格的理论推导，定量地分析了模型误差与策略性能的关系，并提出了一种&lt;strong&gt;分支推演 (Branched Rollout)&lt;/strong&gt; 机制，在保证单调提升的前提下，最大化地利用模型。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;理论推导：回报差的上界&lt;/h2&gt;
&lt;p&gt;我们希望找到一个策略 $\pi$，最大化真实环境中的期望回报 $\eta[\pi]$。
但我们只能优化模型环境中的期望回报 $\hat{\eta}[\pi]$。
我们需要推导两者之间的误差上界，从而找到一个安全优化的 &lt;strong&gt;下界 (Lower Bound)&lt;/strong&gt;。&lt;/p&gt;
&lt;h3&gt;定义与假设&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;真实环境的状态转移分布：$p(s&apos;|s,a)$&lt;/li&gt;
&lt;li&gt;学习模型的状态转移分布：$\hat{p}(s&apos;|s,a)$&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;模型误差 $\epsilon_m$&lt;/strong&gt;：假设模型在分布上的最大误差是有界的（TV 散度）：
$$ \max*{s,a} D*{TV}(p(\cdot|s,a) || \hat{p}(\cdot|s,a)) \le \epsilon_m $$&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;状态分布的差异&lt;/h3&gt;
&lt;p&gt;策略 $\pi$ 在真实动力学下的状态访问分布为 $\rho_\pi$，在模型动力学下的状态访问分布为 $\hat{\rho}_\pi$。
根据 &lt;em&gt;Simulation Lemma&lt;/em&gt;，两者之间的差异上界为：&lt;/p&gt;
&lt;p&gt;$$
D_{TV}(\rho_\pi || \hat{\rho}_\pi) \le \frac{\gamma \epsilon_m}{(1-\gamma)^2}
$$&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;⚠️ 警示&lt;/strong&gt;：注意这里的 $(1-\gamma)^2$。这意味着状态分布的误差是随着时间视界（Horizon）&lt;strong&gt;二次方&lt;/strong&gt;增长的。这就是为什么在传统 Model-Based RL 中，长距离推演会导致极其严重的偏差。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;真实回报与模型回报的差异&lt;/h3&gt;
&lt;p&gt;基于上述状态分布差异，我们可以推导出真实回报 $\eta[\pi]$ 与模型回报 $\hat{\eta}[\pi]$ 的差值上界：&lt;/p&gt;
&lt;p&gt;$$
\left| \eta[\pi] - \hat{\eta}[\pi] \right| \le 2 r_{\max} \frac{\gamma \epsilon_m}{(1-\gamma)^2}
$$&lt;/p&gt;
&lt;p&gt;这个上界告诉我们：如果我们只是简单地训练一个模型，然后在模型里从头跑到尾（Full Rollout）来训练策略，那么真实性能和模型性能的差距可能会非常大，优化 $\hat{\eta}$ 并不代表能提升 $\eta$。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;核心突破：分支推演 (Branched Rollout)&lt;/h2&gt;
&lt;p&gt;为了打破上述的“二次方误差诅咒”，MBPO 提出改变推演的方式。&lt;/p&gt;
&lt;h3&gt;什么是分支推演？&lt;/h3&gt;
&lt;p&gt;传统的 Dyna 风格是从初始状态 $s_0$ 开始，一直推演到 $s_T$。
MBPO 的 &lt;strong&gt;$k$-步分支推演&lt;/strong&gt; 是：
从策略在&lt;strong&gt;真实环境&lt;/strong&gt;中访问过的状态分布 $\mathcal{D}_{\text{env}}$ 中采样一个状态 $s$，作为推演的起点，然后仅在模型中推演 $k$ 步。&lt;/p&gt;
&lt;h3&gt;修正后的误差边界&lt;/h3&gt;
&lt;p&gt;在 $k$-步分支推演下，回报差的上界被显著收紧了：&lt;/p&gt;
&lt;p&gt;$$
\left| \eta[\pi] - \hat{\eta}&lt;em&gt;k[\pi] \right| \le 2 r&lt;/em&gt;{\max} \left[ \frac{\gamma^{k+1} \epsilon_\pi}{(1-\gamma)^2} + \frac{\gamma^k \epsilon_m}{1-\gamma} + \frac{k}{1-\gamma}\epsilon_m \right]
$$&lt;/p&gt;
&lt;p&gt;&lt;em&gt;(注：公式略作简化以直观展示核心项)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;关键在于最后一项 $\frac{k}{1-\gamma}\epsilon_m$。
这表明：&lt;strong&gt;在分支推演下，模型误差 $\epsilon_m$ 对总回报误差的贡献是随 $k$ 线性增长的，而不是二次方增长。&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;$k$ 的权衡 (Trade-off)&lt;/h3&gt;
&lt;p&gt;这个理论边界揭示了超参数 $k$ 的物理意义：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;当 $k$ 很小时&lt;/strong&gt;：误差界很紧（线性），我们可以放心地信任模型数据。但是模型能提供的“远见”有限。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;当 $k$ 很大时&lt;/strong&gt;：误差界变松（趋向二次方），模型偏差开始主导，导致策略性能下降。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;因此，MBPO 动态调整 $k$：在训练初期模型不准时，$k=1$；随着模型精度提高，逐渐增加 $k$（通常从 1 增加到 15 左右），在保证偏差可控的前提下最大化利用模型。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;算法架构设计&lt;/h2&gt;
&lt;p&gt;MBPO 的实现是围绕上述理论构建的，由三个核心模块组成。&lt;/p&gt;
&lt;h3&gt;概率模型集成 (Ensemble of Probabilistic Models)&lt;/h3&gt;
&lt;p&gt;为了准确估计模型误差并防止过拟合，MBPO 训练一组（如 7 个）高斯概率网络。
$$ \hat{p}&lt;em&gt;\theta(s&apos;|s,a) = \mathcal{N}(\mu&lt;/em&gt;\theta(s,a), \Sigma_\theta(s,a)) $$&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;不确定性感知&lt;/strong&gt;：预测时随机从集成模型中选择一个成员，这模拟了贝叶斯后验采样，能够捕捉&lt;strong&gt;认知不确定性 (Epistemic Uncertainty)&lt;/strong&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;混合策略优化 (Model-Based Policy Optimization)&lt;/h3&gt;
&lt;p&gt;MBPO 使用 &lt;strong&gt;SAC (Soft Actor-Critic)&lt;/strong&gt; 作为底层的策略优化器。
为了克服模型偏差，SAC 的训练数据由两部分组成：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;真实数据 $\mathcal{D}_{\text{env}}$&lt;/strong&gt;：占比很小（如 5%）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;模型数据 $\mathcal{D}_{\text{model}}$&lt;/strong&gt;：由分支推演产生的海量数据，占比很大（如 95%）。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;算法流程 (伪代码)&lt;/h3&gt;
&lt;p&gt;$$
\begin{aligned}
&amp;#x26; \bullet ; \text{Initialize policy } \pi_\phi, \text{ ensemble models } {p_{\theta_1}, \dots, p_{\theta_B}} \
&amp;#x26; \bullet ; \text{Initialize empty buffers } \mathcal{D}&lt;em&gt;{\text{env}}, \mathcal{D}&lt;/em&gt;{\text{model}} \
&amp;#x26; \bullet ; \textbf{For } N \text{ epochs} \textbf{ do}: \
&amp;#x26; \bullet \qquad \textbf{1. Collect Real Data (Exploration)} \
&amp;#x26; \bullet \qquad \text{Rollout policy in real environment, add transitions to } \mathcal{D}&lt;em&gt;{\text{env}} \
&amp;#x26; \bullet \qquad \textbf{2. Train Models (Supervised Learning)} \
&amp;#x26; \bullet \qquad \text{Train ensemble } {p&lt;/em&gt;\theta} \text{ on } \mathcal{D}&lt;em&gt;{\text{env}} \text{ via Max Likelihood} \
&amp;#x26; \bullet \qquad \textbf{3. Branched Rollout (Data Augmentation)} \
&amp;#x26; \bullet \qquad \text{Sample states } s \sim \mathcal{D}&lt;/em&gt;{\text{env}} \
&amp;#x26; \bullet \qquad \text{Rollout } k \text{ steps using models, add to } \mathcal{D}&lt;em&gt;{\text{model}} \
&amp;#x26; \bullet \qquad \textbf{4. Policy Optimization (SAC)} \
&amp;#x26; \bullet \qquad \textbf{For } G \text{ gradient steps} \textbf{ do}: \
&amp;#x26; \bullet \qquad \qquad \text{Sample batch } B \text{ from } \mathcal{D}&lt;/em&gt;{\text{env}} \cup \mathcal{D}&lt;em&gt;{\text{model}} \text{ (e.g., 95% model data)} \
&amp;#x26; \bullet \qquad \qquad \text{Update } \pi&lt;/em&gt;\phi, Q_\psi \text{ using SAC loss} \
&amp;#x26; \bullet \qquad \textbf{End For} \
&amp;#x26; \bullet ; \textbf{End For}
\end{aligned}
$$&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;总结：MBPO 的启示&lt;/h2&gt;
&lt;p&gt;MBPO 是 Model-Based RL 的一个转折点，它通过理论证明回答了**“我们该多大程度信任模型？”**这个问题。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;单调性保证&lt;/strong&gt;：通过限制推演步长 $k$，MBPO 将模型误差控制在线性增长范围内，从而保证了策略改进的单调性（类似 TRPO 的 Trust Region 思想，但应用在 Rollout Length 上）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;数据增强&lt;/strong&gt;：MBPO 本质上是把学到的模型当作一个&lt;strong&gt;超级数据增强器&lt;/strong&gt;。它从有限的真实数据出发，通过短步推演，扩散出海量的虚拟数据供 SAC 训练。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;结果&lt;/strong&gt;：MBPO 在 MuJoCo 等基准测试中，以 1/10 甚至更少的样本量，达到了与 SAC 相当的渐进性能，打破了“Model-Based 也就是学得快但分不高”的刻板印象。&lt;/li&gt;
&lt;/ol&gt;</content:encoded><h:img src="https://pic.hana0721.top/98259515_p0_master1200.3ns7nvxpav.webp"/><enclosure url="https://pic.hana0721.top/98259515_p0_master1200.3ns7nvxpav.webp"/></item><item><title>RL笔记（17）：模型预测控制 (MPC)</title><link>https://agusexp25.top/blog/rl-note-17</link><guid isPermaLink="true">https://agusexp25.top/blog/rl-note-17</guid><description>在已知环境模型的情况下，如何高效规划？详解模型预测控制 (MPC) 的原理：预测未来、滚动优化与MPC-SAC。</description><pubDate>Fri, 26 Dec 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;引言（Introduction）&lt;/h2&gt;
&lt;p&gt;在之前的笔记中，我们探讨了&lt;strong&gt;无模型 (Model-Free)&lt;/strong&gt; 算法（如 Q-Learning, PPO, SAC）如何通过试错学习。我们也初步接触了&lt;strong&gt;基于模型 (Model-Based)&lt;/strong&gt; 的 Dyna-Q，它通过学习环境模型来生成模拟数据辅助学习。&lt;/p&gt;
&lt;p&gt;今天我们深入 Model-Based RL 的另一个重要分支：&lt;strong&gt;模型预测控制 (Model Predictive Control, MPC)&lt;/strong&gt;。
MPC 的核心优势在于，它&lt;strong&gt;直接利用环境模型进行前向规划&lt;/strong&gt;，像一个经验丰富的棋手一样“预判”未来，然后根据预测结果做出当前最优的决策。&lt;/p&gt;
&lt;p&gt;MPC 不仅仅是生成模拟数据（像 Dyna-Q），它是在每一个状态下，都&lt;strong&gt;重新规划&lt;/strong&gt;一次未来的动作序列。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;MPC 的核心思想&lt;/h2&gt;
&lt;p&gt;MPC 是一种控制策略，它假设我们拥有一个精确的环境模型 $M(s,a) \to (r, s&apos;)$。&lt;/p&gt;
&lt;h3&gt;预测与规划 (Prediction &amp;#x26; Planning)&lt;/h3&gt;
&lt;p&gt;在当前状态 $s_t$，MPC 并不直接选择一个动作。而是：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;预测未来&lt;/strong&gt;：假设从当前状态 $s_t$ 开始，执行一系列动作 $\pi = {a_t, a_{t+1}, \dots, a_{t+H}}$（称为&lt;strong&gt;预测时域 (Prediction Horizon)&lt;/strong&gt; $H$）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;模拟轨迹&lt;/strong&gt;：利用模型 $M$，模拟出这一系列动作可能产生的轨迹及其累积奖励。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;优化规划&lt;/strong&gt;：找到能最大化累积奖励的动作序列 $\pi^*$。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;滚动优化 (Rolling Optimization)&lt;/h3&gt;
&lt;p&gt;MPC 的决策过程是&lt;strong&gt;滚动&lt;/strong&gt;的：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;在状态 $s_t$，MPC 找到最优动作序列 $\pi^* = {a_t^&lt;em&gt;, a_{t+1}^&lt;/em&gt;, \dots, a_{t+H}^*}$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;只执行第一个动作 $a_t^*$&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;智能体进入新状态 $s_{t+1}$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;重新规划&lt;/strong&gt;：基于新的状态 $s_{t+1}$，重复步骤 1-3。&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;💡 直觉&lt;/strong&gt;：
MPC 就像一个有预见性的决策者。它不会一次性把所有步骤都定死，而是每走一步，都根据当前情况重新规划下一步的最佳路径。这使得它能很好地应对环境变化。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2&gt;MPC 与强化学习的结合&lt;/h2&gt;
&lt;p&gt;MPC 本身是一种控制方法，如何与 RL 结合呢？&lt;/p&gt;
&lt;h3&gt;学习模型&lt;/h3&gt;
&lt;p&gt;在 Model-Based RL 中，我们首先需要学习一个环境模型 $M_\theta$。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;监督学习&lt;/strong&gt;：用收集到的真实数据 $(s, a, r, s&apos;)$ 来训练模型。
&lt;ul&gt;
&lt;li&gt;预测奖励：$r \approx R_\phi(s,a)$&lt;/li&gt;
&lt;li&gt;预测状态：$s&apos; \approx M_\theta(s,a)$&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;模型类型&lt;/strong&gt;：可以是&lt;strong&gt;概率模型&lt;/strong&gt;（如 PETS 使用的概率 GP 回归）来估计模型的不确定性，也可以是确定性模型（如简单的神经网络）。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;MPC 规划&lt;/h3&gt;
&lt;p&gt;一旦有了模型 $M_\theta$，就可以进行规划：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;在当前状态 $s_t$，MPC 在所有可能的 $H$ 步动作序列中搜索，找到能最大化模拟累积奖励的序列 $\pi^* = {a_t^&lt;em&gt;, a_{t+1}^&lt;/em&gt;, \dots, a_{t+H}^*}$。&lt;/li&gt;
&lt;li&gt;执行 $a_t^*$。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;优化策略&lt;/h3&gt;
&lt;p&gt;MPC 产生的动作序列 $\pi^&lt;em&gt;$ 本身就可以看作是当前状态下的一个“策略”。我们可以用标准的 RL 算法（如 PPO, SAC）来优化**生成这个 $\pi^&lt;/em&gt;$ 的参数**。&lt;/p&gt;
&lt;p&gt;例如，&lt;strong&gt;MPC-SAC&lt;/strong&gt; 的做法：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;训练一个模型&lt;/strong&gt; $M_\theta$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;训练 Actor-Critic&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;Critic 学习 $Q$ 值。&lt;/li&gt;
&lt;li&gt;Actor 学习策略 $\pi_\phi$。&lt;/li&gt;
&lt;li&gt;在 Actor 的更新时，&lt;strong&gt;使用 MPC 规划 $H$ 步&lt;/strong&gt;，获得更准确的奖励信号来更新 Actor。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2&gt;PETS 算法示例 (Probabilistic Embeded Trajectory Sampling)&lt;/h2&gt;
&lt;p&gt;PETS 是一个经典的 Model-Based RL 算法，它使用了&lt;strong&gt;概率模型&lt;/strong&gt;来处理模型不确定性。&lt;/p&gt;
&lt;h3&gt;概率模型&lt;/h3&gt;
&lt;p&gt;PETS 使用&lt;strong&gt;高斯过程 (Gaussian Process, GP)&lt;/strong&gt; 或其他概率模型来学习奖励函数 $R_\phi$ 和状态转移函数 $M_\theta$。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;优点&lt;/strong&gt;：GP 不仅能给出预测值，还能给出预测的&lt;strong&gt;不确定性&lt;/strong&gt;（方差）。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;采样与规划&lt;/h3&gt;
&lt;p&gt;在 MPC 规划时，PETS 会从学到的概率模型中&lt;strong&gt;采样&lt;/strong&gt;多条可能的未来轨迹。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;如果模型预测某一步不确定性很高（方差大），意味着未来可能有很多种情况，MPC 会倾向于选择风险更小的路径。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;策略学习&lt;/h3&gt;
&lt;p&gt;PETS 也会用学习到的模型和规划结果来训练一个 Actor-Critic 策略。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;MPC 的优势与劣势&lt;/h2&gt;
&lt;h3&gt;优势&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;高样本效率&lt;/strong&gt;：通过模型可以“预演”大量场景，大大减少与真实环境的交互次数。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;可解释性&lt;/strong&gt;：模型可以被检查，知道智能体为什么这么规划。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;安全性&lt;/strong&gt;：在规划时可以预见潜在的危险状态，并加以避免。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;劣势&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;模型偏差 (Model Bias)&lt;/strong&gt;：这是 Model-Based 方法的软肋。如果模型不准确，规划的结果可能完全错误。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;计算成本&lt;/strong&gt;：MPC 规划本身需要大量的计算，尤其是在动作空间连续、预测时域长的情况下。&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2&gt;总结&lt;/h2&gt;
&lt;p&gt;MPC 提供了一种强大的在&lt;strong&gt;已知模型&lt;/strong&gt;下进行序列决策的方法。它通过向前看（预测）和滚动优化，能够做出比直接 RL 更明智的决策。
将 MPC 与 RL 结合，是 Model-Based RL 的重要研究方向，其目标是学好模型，并用好模型，从而以最高的样本效率解决复杂任务。&lt;/p&gt;
&lt;p&gt;我们之前的笔记主要聚焦于 Model-Free 方法（Q-Learning, REINFORCE, PPO, SAC）。Model-Based 方法（Dyna-Q, MPC）提供了另一种思路，它们往往在样本效率上具有优势，但在模型精度要求上较高。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/95619535_p0_master1200.8okafg4jti.webp"/><enclosure url="https://pic.hana0721.top/95619535_p0_master1200.8okafg4jti.webp"/></item><item><title>RL笔记（16）：模仿学习 (Imitation Learning)</title><link>https://agusexp25.top/blog/rl-note-16</link><guid isPermaLink="true">https://agusexp25.top/blog/rl-note-16</guid><description>没有奖励函数怎么办？详解模仿学习的三大流派：行为克隆 (BC) 的简单粗暴与局限、逆强化学习 (IRL) 的理论推导，以及生成式对抗模仿学习 (GAIL) 的对抗博弈思想。</description><pubDate>Thu, 25 Dec 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;引言（Introduction）&lt;/h2&gt;
&lt;p&gt;在传统的强化学习中，智能体通过最大化累积奖励来学习。然而，在很多复杂任务中，“定义奖励”比“解决任务”本身还要难。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;例子&lt;/strong&gt;：自动驾驶。你很难用数学公式精确定义什么叫“开得稳且安全”。但是，我们可以很容易地收集到人类老司机的驾驶数据。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;模仿学习 (Imitation Learning)&lt;/strong&gt; 的目标是：给定一组专家演示数据 $\tau_E = {(s_1, a_1), (s_2, a_2), \dots }$，训练一个策略 $\pi_\theta$，使其行为尽可能接近专家策略 $\pi_E$。&lt;/p&gt;
&lt;p&gt;我们不需要知道背后的奖励函数是什么，只需要“照猫画虎”。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;行为克隆 (Behavioral Cloning, BC)&lt;/h2&gt;
&lt;p&gt;这是最简单、最直观的模仿学习方法。&lt;/p&gt;
&lt;h3&gt;核心思想&lt;/h3&gt;
&lt;p&gt;把模仿学习看作一个&lt;strong&gt;监督学习 (Supervised Learning)&lt;/strong&gt; 问题。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：状态 $s$（特征）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;标签&lt;/strong&gt;：动作 $a$（专家在 $s$ 下做的动作）。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;我们的目标是训练一个分类器（离散动作）或回归器（连续动作）$\pi_\theta(s)$，使其输出拟合专家的动作。&lt;/p&gt;
&lt;h3&gt;目标函数&lt;/h3&gt;
&lt;p&gt;使用最大似然估计 (MLE)：&lt;/p&gt;
&lt;p&gt;$$
\max_\theta \mathbb{E}&lt;em&gt;{(s,a) \sim \pi_E} [\log \pi&lt;/em&gt;\theta(a|s)]
$$&lt;/p&gt;
&lt;p&gt;即最小化负对数似然损失：&lt;/p&gt;
&lt;p&gt;$$
L(\theta) = - \sum_{i=1}^N \log \pi_\theta(a_i|s_i)
$$&lt;/p&gt;
&lt;h3&gt;局限性：协变量偏移 (Covariate Shift)&lt;/h3&gt;
&lt;p&gt;虽然 BC 简单有效，但它有一个致命弱点：&lt;strong&gt;误差累积&lt;/strong&gt;。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;训练分布&lt;/strong&gt;：策略是在专家访问过的状态 $s \sim P(\pi_E)$ 上训练的。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;测试分布&lt;/strong&gt;：在实际运行时，策略 $\pi_\theta$ 可能会犯一点小错。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;恶性循环&lt;/strong&gt;：这一点小错会导致智能体进入一个&lt;strong&gt;专家从未去过&lt;/strong&gt;的状态（Out-of-Distribution）。在这种陌生状态下，BC 策略可能会胡乱行动，导致更大的错误，最终迅速偏离轨道（比如自动驾驶车偏离一点点后，不知道怎么修回去，直接冲出跑道）。&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;💡 总结&lt;/strong&gt;：BC 只是单纯地拟合动作，而不理解“为什么要这么做”。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2&gt;逆强化学习 (Inverse RL, IRL)&lt;/h2&gt;
&lt;p&gt;为了解决 BC 的问题，IRL 提出了一个更深层的思路：&lt;strong&gt;专家之所以这么做，是因为他在最大化某个未知的奖励函数 $R$。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;如果我们能把这个 $R$ 反推（Inverse）出来，再用标准的 RL 算法（如 PPO/SAC）去最大化这个 $R$，不就能学会专家的策略了吗？&lt;/p&gt;
&lt;h3&gt;核心流程&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;假设&lt;/strong&gt;：存在一个参数化的奖励函数 $R_\phi(s,a)$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;目标&lt;/strong&gt;：找到参数 $\phi$，使得在该奖励函数下，专家的轨迹获得的累积回报高于其他任何策略。
$$ \mathbb{E}&lt;em&gt;{\pi_E} [R&lt;/em&gt;\phi] \ge \mathbb{E}&lt;em&gt;{\pi} [R&lt;/em&gt;\phi] $$&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;内层循环&lt;/strong&gt;：给定当前的 $R_\phi$，通过 RL 训练一个最优策略 $\pi^*$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;外层循环&lt;/strong&gt;：更新 $R_\phi$，使得专家轨迹和 $\pi^*$ 轨迹的差距变大（让专家得分更高）。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;难点&lt;/h3&gt;
&lt;p&gt;IRL 是一个&lt;strong&gt;不适定 (Ill-posed)&lt;/strong&gt; 问题：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;很多奖励函数都能解释同一种行为（例如：如果 $R=0$，任何策略都是最优的）。&lt;/li&gt;
&lt;li&gt;因此，IRL 通常需要引入&lt;strong&gt;最大熵 (Maximum Entropy)&lt;/strong&gt; 假设：在所有能解释专家行为的奖励函数中，选择那个对策略分布约束最少（熵最大）的。&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;💡 总结&lt;/strong&gt;：IRL 试图理解专家的“动机”。但它计算极其昂贵，因为每更新一次奖励函数，就要重新跑一遍完整的 RL 训练。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2&gt;生成式对抗模仿学习 (GAIL)&lt;/h2&gt;
&lt;p&gt;Ho &amp;#x26; Ermon (2016) 证明了：&lt;strong&gt;我们其实不需要显式地把奖励函数 $R$ 恢复出来。&lt;/strong&gt;
如果我们直接训练一个策略，让它的状态-动作分布 $\rho_\pi(s,a)$ 和专家的分布 $\rho_E(s,a)$ 难以区分，不就达到目的了吗？&lt;/p&gt;
&lt;p&gt;这正是 &lt;strong&gt;GAN (生成对抗网络)&lt;/strong&gt; 的思想。&lt;/p&gt;
&lt;h3&gt;核心架构&lt;/h3&gt;
&lt;p&gt;GAIL 包含两个网络进行博弈：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;判别器 (Discriminator) $D_w(s,a)$&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;任务是&lt;strong&gt;找茬&lt;/strong&gt;。它接收一个 $(s,a)$ 对，判断这是&lt;strong&gt;专家&lt;/strong&gt;产生的（输出 1），还是&lt;strong&gt;智能体&lt;/strong&gt;产生的（输出 0）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;生成器 (Generator) $\pi_\theta(a|s)$&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;即我们的策略网络。任务是&lt;strong&gt;欺骗&lt;/strong&gt;判别器，让自己的行为看起来像专家。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;目标函数&lt;/h3&gt;
&lt;p&gt;GAIL 的优化目标与 GAN 几乎一致：&lt;/p&gt;
&lt;p&gt;$$
\min_\pi \max_D V(\pi, D) = \mathbb{E}&lt;em&gt;{\pi_E}[\log D(s,a)] + \mathbb{E}&lt;/em&gt;{\pi}[\log(1 - D(s,a))]
$$&lt;/p&gt;
&lt;h3&gt;训练流程&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;训练判别器 $D$&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;采样专家数据 $(s_E, a_E)$ 和 智能体数据 $(s_\pi, a_\pi)$。&lt;/li&gt;
&lt;li&gt;让 $D(s_E, a_E) \to 1$，让 $D(s_\pi, a_\pi) \to 0$。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;训练策略 $\pi$&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;我们使用 $D$ 的输出作为一种&lt;strong&gt;替代奖励 (Surrogate Reward)&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;定义奖励函数：$r(s,a) = - \log(1 - D(s,a))$ （或者其他变体，如 $\log D(s,a)$）。&lt;/li&gt;
&lt;li&gt;如果 $D$ 认为当前动作像专家（$D \approx 1$），奖励就高；不像专家，奖励就低。&lt;/li&gt;
&lt;li&gt;使用 PPO 或 TRPO 来最大化这个奖励。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;优势&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;解决了 Covariate Shift&lt;/strong&gt;：因为 $\pi$ 是在环境中交互训练的（RL），遇到偏离的状态时，判别器会给低分，RL 算法会学会如何修正回到正轨。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;效率高&lt;/strong&gt;：不需要像 IRL 那样反复求解最优策略，策略和判别器是同步更新的。&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2&gt;总结与对比&lt;/h2&gt;
&lt;p&gt;| 维度         | 行为克隆 (BC)                     | 逆强化学习 (IRL)            | 生成对抗模仿 (GAIL)                            |
| :----------- | :-------------------------------- | :-------------------------- | :--------------------------------------------- |
| &lt;strong&gt;核心思想&lt;/strong&gt; | &lt;strong&gt;监督学习&lt;/strong&gt;：拟合 $s \to a$ 映射 | &lt;strong&gt;逆向推理&lt;/strong&gt;：反推 $R(s,a)$ | &lt;strong&gt;对抗博弈&lt;/strong&gt;：让分布 $\rho_\pi \approx \rho_E$ |
| &lt;strong&gt;交互需求&lt;/strong&gt; | 不需要与环境交互 (Offline)        | 需要 (Online)               | 需要 (Online)                                  |
| &lt;strong&gt;奖励函数&lt;/strong&gt; | 无                                | 显式学出 $R$                | 隐式奖励 ($D$ 的输出)                          |
| &lt;strong&gt;优点&lt;/strong&gt;     | 简单、训练快                      | 可解释性强、鲁棒            | 效果好、无需解内层 RL 循环                     |
| &lt;strong&gt;缺点&lt;/strong&gt;     | 误差累积 (Covariate Shift)        | 计算极其昂贵                | 训练不稳定 (GAN 通病)                          |&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;💡 思考&lt;/strong&gt;：
如果专家的数据也不是完美的（比如偶尔手滑），BC 会傻傻地把错误也学进去，而 IRL/GAIL 由于有奖励函数的平滑作用，通常能学出比专家更好的策略。&lt;/p&gt;
&lt;/blockquote&gt;</content:encoded><h:img src="https://pic.hana0721.top/94819769_p0_master1200.4xv4u7folx.webp"/><enclosure url="https://pic.hana0721.top/94819769_p0_master1200.4xv4u7folx.webp"/></item><item><title>RL笔记（15）：SAC</title><link>https://agusexp25.top/blog/rl-note-15</link><guid isPermaLink="true">https://agusexp25.top/blog/rl-note-15</guid><description>深入解析 Soft Actor-Critic (SAC)：从最大熵原理出发，详细推导 Soft 策略迭代与收敛性证明，并解析重参数化技巧与自动熵调节等关键实现细节。</description><pubDate>Wed, 24 Dec 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;引言（Introduction）&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Soft Actor-Critic (SAC)&lt;/strong&gt; 是一种基于最大熵强化学习的 &lt;strong&gt;Off-Policy（离线策略）&lt;/strong&gt; 算法，于 2018 年提出。
SAC 的前身是 Soft Q-learning (SQL)。相比于 SQL 需要复杂的采样过程，SAC 引入了 Actor-Critic 架构，使其训练更加稳定且高效。SAC 在各类 Benchmark 及真实机器人任务中表现出色，以其&lt;strong&gt;极强的抗干扰能力&lt;/strong&gt;和&lt;strong&gt;对超参数的鲁棒性&lt;/strong&gt;著称，是现代深度强化学习的基石算法之一。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;最大熵强化学习 (Maximum Entropy RL)&lt;/h2&gt;
&lt;h3&gt;熵的定义&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;熵 (Entropy)&lt;/strong&gt; 表示对一个随机变量的随机程度的度量。如果 $X$ 是一个随机变量，它的概率密度记为 $p$，那么它的熵 $H$ 定义为：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
H(X)&amp;#x26;=\mathbb{E}&lt;em&gt;{x\sim p}[-\log p(x)]\notag \
&amp;#x26;=-\int&lt;/em&gt;{x}p(x)\log p(x) \mathrm{d}x \notag
\end{align}
$$&lt;/p&gt;
&lt;p&gt;在强化学习中，可以使用 $H(\pi(\cdot|s))$ 来表示策略 $\pi$ 在状态 $s$ 下的随机程度。&lt;/p&gt;
&lt;h3&gt;目标函数&lt;/h3&gt;
&lt;p&gt;最大熵强化学习（maximum entropy RL）的思想是除了最大化累计奖励，还要使得策略更加随机。如此，强化学习的目标中加入了一项熵的正则项，定义为：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
\pi_{\textbf{MaxEnt}}^*=\arg\max_{\pi}\mathbb{E}&lt;em&gt;{\pi}\left[\sum&lt;/em&gt;{t=0}^\infty r(s_t,a_t)+\alpha H(\pi(\cdot|s_t))\right]\notag
\end{align}
$$&lt;/p&gt;
&lt;p&gt;其中，$\alpha$ 是一项正则项系数，用来权衡熵的重要程度。
SAC 算法加入熵正则项，有利于增加强化学习算法的探索，$\alpha$ 越大，探索性越强，有助于加速策略的学习，降低策略陷入局部最优的可能性。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;基于能量的模型 (Energy-Based Model, EBM)&lt;/h2&gt;
&lt;p&gt;基于能量的模型（Energy-Based Model，EBM）是一类基于统计物理学原理的概率模型，通过能量函数为每个可能的状态分配一个标量能量值，低能量区域对应高概率区域。在强化学习中，EBM 将状态-动作对 $(s,a)$ 映射到能量值 $\mathcal{E}$，从而表示策略分布，定义为：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
\pi(a|s)=\frac{\exp(-\mathcal{E}(s,a))}{Z(s)}\notag
\end{align}
$$&lt;/p&gt;
&lt;p&gt;其中，$Z(s)=\int_{A}\exp(-\mathcal{E}(s,a))\mathrm{d}a$ 是配分函数，负责归一化能量值以形成有效的概率分布。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;Soft 策略迭代 (Soft Policy Iteration)&lt;/h2&gt;
&lt;h3&gt;Soft 贝尔曼方程&lt;/h3&gt;
&lt;p&gt;$$
\begin{align}
V_{\textbf{soft}}^\pi(s)&amp;#x26;=\mathbb{E}&lt;em&gt;{a\sim\pi(\cdot|s)}[Q^{\pi}&lt;/em&gt;{\textbf{soft}}(s,a)-\alpha\log\pi(a|s)]\notag \
&amp;#x26;=\mathbb{E}&lt;em&gt;{a\sim \pi(a|s)}[Q^{\pi}&lt;/em&gt;{\textbf{soft}}(s,a)]+\alpha H(\pi(\cdot|s)) \notag
\end{align}
$$&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
Q^{\pi}&lt;em&gt;{\textbf{soft}}(s,a)=r(s,a)+\gamma \mathbb{E}&lt;/em&gt;{s^\prime\sim p(\cdot|s,a)}[V_{\textbf{soft}}^\pi(s^\prime)]\notag \
\end{align}
$$&lt;/p&gt;
&lt;h3&gt;Soft 策略评估 (Soft Policy Evaluation)&lt;/h3&gt;
&lt;p&gt;在 SAC 算法中，Soft 价值函数定义为：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
V_{\textbf{soft}}^\pi(s)\triangleq\mathbb{E}&lt;em&gt;{a\sim\pi(\cdot|s)}[Q^{\pi}&lt;/em&gt;{\textbf{soft}}(s,a)-\alpha\log\pi(a|s)]\notag
\end{align}
$$&lt;/p&gt;
&lt;p&gt;Soft 动作价值函数定义为：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
Q^{\pi}&lt;em&gt;{\textbf{soft}}(s,a)\triangleq r(s,a)+\gamma \mathbb{E}&lt;/em&gt;{s^\prime\sim p(\cdot|s,a)}[V_{\textbf{soft}}^\pi(s^\prime)]\notag \
\end{align}
$$&lt;/p&gt;
&lt;p&gt;动作价值函数的 Soft 贝尔曼迭代算子定义为：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
\mathcal{T}^\pi Q^{k}&lt;em&gt;{\textbf{soft}}(s,a)&amp;#x26;\triangleq r(s,a)+\gamma \mathbb{E}&lt;/em&gt;{s^\prime\sim p(\cdot|s,a)}[V_{\textbf{soft}}^{k}(s^\prime)]\notag \
&amp;#x26;\triangleq  r(s,a)+\gamma \mathbb{E}&lt;em&gt;{s^\prime\sim p(\cdot|s,a)}[\mathbb{E}&lt;/em&gt;{a^\prime\sim\pi(\cdot|s^\prime)}[Q^{k}_{\textbf{soft}}(s^\prime,a^\prime)-\alpha\log\pi(a^\prime|s^\prime)]]\notag
\end{align}
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Soft 策略评估定理&lt;/strong&gt;：基于上述的算子 $\mathcal{T}^\pi$ 以及初始化的映射 $Q^0_{\textbf{soft}}:S\times A\rightarrow \mathbb{R}$，且 $|A|&amp;#x3C;\infty$，$Q^{k+1}&lt;em&gt;{\textbf{soft}}=\mathcal{T}^\pi Q^k&lt;/em&gt;{\textbf{soft}}$。那么当 $k\rightarrow\infty$ 时，序列 ${Q^k_{\textbf{soft}}}$ 会收敛至 $Q_{\textbf{soft}}^\pi$。&lt;/p&gt;
&lt;p&gt;接下来证明这是一个压缩映射。文章重新定义了奖励 $r_\pi(s,a)$：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
r_{\pi}(s,a)\triangleq r(s,a)+\mathbb{E}_{s^\prime\sim p(\cdot|s,a)}[H(\pi(\cdot|s^\prime))]\notag \
\end{align}
$$&lt;/p&gt;
&lt;p&gt;迭代式可以重写为：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
\mathcal{T}^\pi Q^{k}&lt;em&gt;{\textbf{soft}}(s,a)\triangleq r&lt;/em&gt;\pi(s,a)+\gamma \mathbb{E}&lt;em&gt;{s^\prime\sim p(\cdot|s,a), a^\prime \sim \pi(\cdot|s^\prime)}[Q^{k}&lt;/em&gt;{\textbf{soft}}(s^\prime,a^\prime)]\notag \
\end{align}
$$&lt;/p&gt;
&lt;p&gt;在算法中，我们假设 $|A|&amp;#x3C;\infty$，那么 $r_\pi(s,a)$ 就是有界的，那么只需要证明此不等式：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
\big|\big|\mathcal{T}^\pi Q^N_{\textbf{soft}}(s,a)-\mathcal{T}^\pi Q^M_{\textbf{soft}}(s,a)\big|\big|&lt;em&gt;\infty \le k\big|\big| Q^N&lt;/em&gt;{\textbf{soft}}(s,a)-Q^M_{\textbf{soft}}(s,a)\big|\big|_\infty ,\quad\exists k\in(0,1)\notag
\end{align}
$$&lt;/p&gt;
&lt;p&gt;左式化简为：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
\big|\mathcal{T}^\pi Q^N_{\textbf{soft}}(s,a)-\mathcal{T}^\pi Q^M_{\textbf{soft}}(s,a)\big|
&amp;#x26;=\gamma\big|\mathbb{E}&lt;em&gt;{s^\prime\sim p(\cdot|s,a), a^\prime\sim\pi(\cdot|s^\prime)}\left[Q^N&lt;/em&gt;{\textbf{soft}}(s^\prime,a^\prime)-Q^M_{\textbf{soft}}(s^\prime,a^\prime)\right]\big|\notag \
&amp;#x26;\le \gamma\mathbb{E}&lt;em&gt;{s^\prime\sim p(\cdot|s,a), a^\prime\sim\pi(\cdot|s^\prime)}\left[\big|Q^N&lt;/em&gt;{\textbf{soft}}(s^\prime,a^\prime)-Q^M_{\textbf{soft}}(s^\prime,a^\prime)\big|\right] \notag \
&amp;#x26;\le \gamma\mathbb{E}&lt;em&gt;{s^\prime\sim p(\cdot|s,a)}\left[\max&lt;/em&gt;{a^\prime\in A}\big|Q^N_{\textbf{soft}}(s^\prime,a^\prime)-Q^M_{\textbf{soft}}(s^\prime,a^\prime)\big|\right] \notag \
&amp;#x26;\le \gamma \max_{s^\prime\in S,a^\prime\in A} \big|Q^N_{\textbf{soft}}(s^\prime,a^\prime)-Q^M_{\textbf{soft}}(s^\prime,a^\prime)\big| \notag
\end{align}
$$&lt;/p&gt;
&lt;p&gt;最终可以得出：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
\max_{s\in S,a\in A}\big|\mathcal{T}^\pi Q^N_{\textbf{soft}}(s,a)-\mathcal{T}^\pi Q^M_{\textbf{soft}}(s,a)\big| \le \gamma \max_{s^\prime\in S,a^\prime\in A} \big|Q^N_{\textbf{soft}}(s^\prime,a^\prime)-Q^M_{\textbf{soft}}(s^\prime,a^\prime)\big| \notag \
\end{align}
$$&lt;/p&gt;
&lt;p&gt;其中，折扣因子 $\gamma\in(0,1)$，可以证明 $\mathcal{T}^\pi$ 是压缩映射。&lt;/p&gt;
&lt;hr&gt;
&lt;h3&gt;Soft 策略提升 (Soft Policy Improvement)&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Soft 策略提升定理&lt;/strong&gt;：对于任意 $\pi_{\text{old}} \in \Pi$，并以下式优化 $\pi_{\text{new}}$。假设 $|A|&amp;#x3C;\infty$，那么对于 $\forall (s,a) \in S \times A$，有 $Q_{\textbf{soft}}^{\pi_{\text{new}}}(s,a)\ge Q_{\textbf{soft}}^{\pi_{\text{old}}}(s,a)$。&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
\pi_{\text{new}}(\cdot|s)=\arg \min_{\pi^\prime\in\Pi}D_{\textbf{KL}}\left(\pi^\prime(\cdot|s)\Big|\Big|\frac{\exp(\frac{1}{\alpha}Q^{\pi_{\text{old}}}&lt;em&gt;{\textbf{soft}}(s,\cdot))}{Z^{\pi&lt;/em&gt;{\text{old}}}(s)}\right)\notag \
\end{align}
$$&lt;/p&gt;
&lt;p&gt;其中 $Z^{\pi_{\text{old}}}(s)$ 是配分函数，负责归一化分布。&lt;/p&gt;
&lt;p&gt;定义 $J(\pi(\cdot|s);\pi_{\text{old}})$ 为：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
J(\pi(\cdot|s);\pi_{\text{old}})&amp;#x26;= D_{\textbf{KL}}\left(\pi(\cdot|s)\Big|\Big|\frac{\exp(\frac{1}{\alpha}Q_{\textbf{soft}}^{\pi_\text{old}}(s,\cdot))}{Z^{\pi_\text{old}}(s)}\right)\notag \
&amp;#x26;=\int_a \pi(a|s)\log\frac{\pi(a|s)}{\exp(\frac{1}{\alpha}Q_{\textbf{soft}}^{\pi_\text{old}}(s,a)-\log Z^{\pi_{\text{old}}}(s))}\text{d}a \notag \
&amp;#x26;=\mathbb{E}&lt;em&gt;{a\sim\pi(\cdot|s)}\left[\log\pi(a|s)-\frac{1}{\alpha}Q&lt;/em&gt;{\textbf{soft}}^{\pi_\text{old}}(s,a)+\log Z^{\pi_\text{old}}(s)\right] \notag
\end{align}
$$&lt;/p&gt;
&lt;p&gt;那么对于 $\pi_\text{old}$ 和 $\pi_\text{new}$，满足 $J(\pi_\text{new}(\cdot|s);\pi_\text{old})\le J(\pi_\text{old}(\cdot|s);\pi_\text{old})$，即：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
\mathbb{E}&lt;em&gt;{a\sim\pi&lt;/em&gt;\text{new}(\cdot|s)}\left[\log\pi_\text{new}(a|s)-\frac{1}{\alpha}Q_{\textbf{soft}}^{\pi_\text{old}}(s,a)+\log Z^{\pi_\text{old}}(s)\right] \le \mathbb{E}&lt;em&gt;{a\sim\pi&lt;/em&gt;\text{old}(\cdot|s)}\left[\log\pi_\text{old}(a|s)-\frac{1}{\alpha}Q_{\textbf{soft}}^{\pi_\text{old}}(s,a)+\log Z^{\pi_\text{old}}(s)\right]  \notag \
\end{align}
$$&lt;/p&gt;
&lt;p&gt;$Z^{\pi_\text{old}}(s)$ 与 $a$ 无关，相约后得：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
\mathbb{E}&lt;em&gt;{a\sim\pi&lt;/em&gt;\text{new}(\cdot|s)}\left[\log\pi_\text{new}(a|s)-\frac{1}{\alpha}Q_{\textbf{soft}}^{\pi_\text{old}}(s,a)\right] \le \mathbb{E}&lt;em&gt;{a\sim\pi&lt;/em&gt;\text{old}(\cdot|s)}\left[\log\pi_\text{old}(a|s)-\frac{1}{\alpha}Q_{\textbf{soft}}^{\pi_\text{old}}(s,a)\right]  \notag \
\end{align}
$$&lt;/p&gt;
&lt;p&gt;化简为：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
\mathbb{E}&lt;em&gt;{a\sim\pi&lt;/em&gt;\text{new}(\cdot|s)}\left[Q_{\textbf{soft}}^{\pi_\text{old}}(s,a)-\alpha\log\pi_\text{new}(a|s)\right] \ge \mathbb{E}&lt;em&gt;{a\sim\pi&lt;/em&gt;\text{old}(\cdot|s)}\left[Q_{\textbf{soft}}^{\pi_\text{old}}(s,a)-\alpha\log\pi_\text{old}(a|s)\right] = V_{\textbf{soft}}^{\pi_\text{old}}(s) \notag \
\end{align}
$$&lt;/p&gt;
&lt;p&gt;接下来证明 $Q_{\textbf{soft}}^{\pi_{\text{new}}}(s,a)\ge Q_{\textbf{soft}}^{\pi_{\text{old}}}(s,a)$，我们利用上式进行迭代展开：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
Q_{\textbf{soft}}^{\pi_{\text{old}}}(s,a) &amp;#x26;= r_0 + \gamma \mathbb{E}&lt;em&gt;{s_1\sim p(\cdot|s,a)}\left[ V&lt;/em&gt;{\textbf{soft}}^{\pi_\text{old}}(s_1)\right]\notag \
&amp;#x26;\le r_0 + \gamma \mathbb{E}&lt;em&gt;{s_1\sim p(\cdot|s,a)}\left[\mathbb{E}&lt;/em&gt;{a_1\sim \pi_\text{new}(\cdot|s_1)}\left[Q_{\textbf{soft}}^{\pi_\text{old}}(s_1,a_1) - \alpha \log \pi_\text{new}(a_1|s_1)\right]\right] \notag \
&amp;#x26;= r_0 + \gamma \mathbb{E}&lt;em&gt;{s_1\sim p(\cdot|s,a)}\left[\mathbb{E}&lt;/em&gt;{a_1\sim \pi_\text{new}(\cdot|s_1)}\left[r(s_1, a_1) + \gamma \mathbb{E}&lt;em&gt;{s_2}[V&lt;/em&gt;{\textbf{soft}}^{\pi_\text{old}}(s_2)] + \alpha H(\pi_\text{new}(\cdot|s_1))\right]\right] \notag \
&amp;#x26;\cdots \notag \
&amp;#x26;\le \sum_{t=0}^\infty \gamma^t \mathbb{E}&lt;em&gt;{(s_t,a_t)\sim \rho^{\pi&lt;/em&gt;\text{new}}}\left[r(s_t,a_t)+\alpha H(\pi_\text{new}(\cdot|s_t))\right]\notag \
&amp;#x26;=Q_{\textbf{soft}}^{\pi_\text{new}}(s,a) \notag
\end{align}
$$&lt;/p&gt;
&lt;p&gt;证明完毕。&lt;/p&gt;
&lt;hr&gt;
&lt;h3&gt;Soft 策略迭代定理&lt;/h3&gt;
&lt;p&gt;假设 $|A|&amp;#x3C;\infty$，对于任意 $\pi \in \Pi$，重复应用 Soft 策略评估和 Soft 策略提升，会收敛到 $\pi^&lt;em&gt;$，使得对于任意 $\pi \in \Pi$ 以及 $(s,a)\in S\times A$，都有 $Q^{\pi^&lt;/em&gt;}&lt;em&gt;\textbf{soft}(s,a)\ge Q^{\pi}&lt;/em&gt;\textbf{soft}(s,a)$。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;证明过程&lt;/strong&gt;：
令 $\pi_i$ 为第 $i$ 轮迭代的策略，根据 Soft 策略迭代定理，序列 ${Q^{\pi_i}&lt;em&gt;\textbf{soft}}$ 是单调递增的。对于任意 $\pi \in \Pi$， $Q^\pi&lt;/em&gt;\textbf{soft}$ 是有上界的（奖励与熵均是有界的），因此序列会收敛到某个 $\pi^&lt;em&gt;$，接下来需要证明 $\pi^&lt;/em&gt;$ 是最优的。
在收敛时，必然满足：对于任意 $\pi\in\Pi$ 且 $\pi\neq \pi^&lt;em&gt;$，都有 $J(\pi^&lt;/em&gt;(\cdot|s);\pi^&lt;em&gt;) &amp;#x3C; J(\pi(\cdot|s);\pi^&lt;/em&gt;)$，即：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
\mathbb{E}&lt;em&gt;{a\sim\pi^&lt;em&gt;(\cdot|s)}\left[\log\pi^&lt;/em&gt;(a|s)-\frac{1}{\alpha}Q&lt;/em&gt;{\textbf{soft}}^{\pi^&lt;em&gt;}(s,a)\right] &amp;#x3C; \mathbb{E}&lt;em&gt;{a\sim\pi(\cdot|s)}\left[\log\pi(a|s)-\frac{1}{\alpha}Q&lt;/em&gt;{\textbf{soft}}^{\pi^&lt;/em&gt;}(s,a)\right]  \notag \
\end{align}
$$&lt;/p&gt;
&lt;p&gt;化简为：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
V_\textbf{soft}^{\pi^&lt;em&gt;}(s) &gt; \mathbb{E}&lt;em&gt;{a\sim \pi(\cdot|s)}\left[Q&lt;/em&gt;\textbf{soft}^{\pi^&lt;/em&gt;}(s,a)-\alpha \log \pi(a|s)\right]\notag \
\end{align}
$$&lt;/p&gt;
&lt;p&gt;接下来证明 $\pi^&lt;em&gt;$ 是最优的，即证明 $Q_\textbf{soft}^{\pi^&lt;/em&gt; }(s,a) &gt; Q^\pi_\textbf{soft}(s,a)$：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
Q_\textbf{soft}^{\pi^* }(s,a)&amp;#x26;=r_0+\gamma\mathbb{E}&lt;em&gt;{s_1\sim p(\cdot|s,a)}\left[V&lt;/em&gt;\textbf{soft}^{\pi^&lt;em&gt;}(s_1)\right]\notag \
&amp;#x26;&gt;r_0+\gamma\mathbb{E}&lt;em&gt;{s_1\sim p(\cdot|s,a)}\left[\mathbb{E}&lt;/em&gt;{a_1\sim \pi(\cdot|s_1)}\left[Q_\textbf{soft}^{\pi^&lt;/em&gt;}(s_1,a_1)-\alpha \log \pi(a_1|s_1)\right]\right] \notag \
&amp;#x26;= r_0+\gamma\mathbb{E}&lt;em&gt;{s_1\sim p(\cdot|s,a)}\left[\mathbb{E}&lt;/em&gt;{a_1\sim \pi(\cdot|s_1)}\left[r(s_1, a_1) + \gamma \mathbb{E}&lt;em&gt;{s_2}[V&lt;/em&gt;\textbf{soft}^{\pi^*}(s_2)] + \alpha H(\pi(\cdot|s_1))\right]\right] \notag \
&amp;#x26;&gt; \sum_{t=0}^\infty \gamma^t \mathbb{E}&lt;em&gt;{(s_t,a_t)\sim\rho^\pi}\left[r(s_t,a_t)+\alpha H(\pi(\cdot|s_t))\right] \notag \
&amp;#x26;=Q^\pi&lt;/em&gt;\textbf{soft}(s,a)\notag
\end{align}
$$&lt;/p&gt;
&lt;p&gt;证明完毕。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;算法实现&lt;/h2&gt;
&lt;p&gt;在 SAC 算法中，我们为两个动作价值函数 $Q_\textbf{soft}$（参数分别 $\omega_1$ 为和 $\omega_2$）和一个策略函数 $\pi$（参数为 $\theta$）建模。基于 Double DQN 的思想，SAC 使用 $Q_\textbf{soft}$ 两个网络，但每次用 $Q_\textbf{soft}$ 网络时会挑选一个 $Q_\textbf{soft}$ 值小的网络，从而缓解 $Q_\textbf{soft}$ 值过高估计的问题。&lt;/p&gt;
&lt;h3&gt;动作价值函数 (Critic)&lt;/h3&gt;
&lt;p&gt;任意一个函数 $Q_\textbf{soft}$ 的损失函数为：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
L_{Q_\textbf{soft}}(\omega)&amp;#x26;=\mathbb{E}&lt;em&gt;{(s_t,a_t,r_t,s&lt;/em&gt;{t+1})\sim R}\left[\frac{1}{2}\left(Q_\textbf{soft}^\omega(s_t,a_t)-\left(r_t+\gamma V_{\textbf{soft}}^{\omega^-}(s_{t+1})\right)\right)^2\right]\notag \
&amp;#x26;= \mathbb{E}&lt;em&gt;{(s_t,a_t,r_t,s&lt;/em&gt;{t+1})\sim R}\left[\frac{1}{2}\left(Q_\textbf{soft}^\omega(s_t,a_t)-\left(r_t+\gamma\mathbb{E}&lt;em&gt;{a&lt;/em&gt;{t+1}\sim \pi_\theta(\cdot|s_{t+1})}\left[\min_{j=1,2} Q_\textbf{soft}^{\omega_j^-}(s_{t+1},a_{t+1})-\alpha \log \pi_{\theta}(a_{t+1}|s_{t+1})\right]\right)\right)^2\right]\notag
\end{align}
$$&lt;/p&gt;
&lt;p&gt;其中，$R$ 是策略过去收集的数据，因为 SAC 是一种离线策略算法。为了让训练更加稳定，这里使用了两个目标网络 $Q_\textbf{soft}^{\omega_j^-}$。目标网络的更新方式是 Soft 更新：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
\omega_j^-\leftarrow \tau \omega_j + (1-\tau) \omega_j^-, \quad j=1,2\notag
\end{align}
$$&lt;/p&gt;
&lt;h3&gt;策略函数 (Actor)&lt;/h3&gt;
&lt;p&gt;接下来根据 Soft 策略提升定理中的 KL 散度来推导策略 $\pi_\theta$ 的损失函数 $L_{\pi}(\theta)$：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
\theta&amp;#x26;=\arg \min_{\theta} L_\pi(\theta) \notag \
&amp;#x26;=\arg \min_{\theta} \mathbb{E}&lt;em&gt;{s_t\sim R}\left[D&lt;/em&gt;\textbf{KL}\left(\pi_\theta(\cdot|s_t)\Big|\Big|\frac{\exp(\frac{1}{\alpha }Q_\textbf{soft}^\omega(s_t,\cdot))}{Z(s_t)}\right)\right]\notag \
&amp;#x26;= \arg\min_\theta \mathbb{E}&lt;em&gt;{s_t\sim R}\left[\mathbb{E}&lt;/em&gt;{a_t\sim \pi_\theta(\cdot|s_t)}\left[\log\left(\frac{\pi_\theta(a_t|s_t)Z(s_t)}{\exp(\frac{1}{\alpha}Q_\textbf{soft}^\omega(s_t,a_t))}\right)\right]\right] \notag \
&amp;#x26;=\arg\min_\theta \mathbb{E}&lt;em&gt;{s_t\sim R, a_t\sim \pi&lt;/em&gt;\theta(\cdot|s_t)}\left[\log \pi_\theta(a_t|s_t)-\frac{1}{\alpha}Q_\textbf{soft}^\omega(s_t,a_t)+\log Z(s_t)\right] \notag \
&amp;#x26;=\arg\min_\theta \mathbb{E}&lt;em&gt;{s_t\sim R, a_t\sim \pi&lt;/em&gt;\theta(\cdot|s_t)}\left[\log \pi_\theta(a_t|s_t)-\frac{1}{\alpha}Q_\textbf{soft}^\omega(s_t,a_t)\right] \notag \
&amp;#x26;=\arg\min_\theta \mathbb{E}&lt;em&gt;{s_t\sim R, a_t\sim \pi&lt;/em&gt;\theta(\cdot|s_t)}\left[\alpha\log \pi_\theta(a_t|s_t)-Q_\textbf{soft}^\omega(s_t,a_t)\right] \notag \
&amp;#x26;=\arg\max_\theta \mathbb{E}&lt;em&gt;{s_t\sim R}\left[V&lt;/em&gt;\textbf{soft}^\omega (s_t)\right]\notag
\end{align}
$$&lt;/p&gt;
&lt;p&gt;考虑到两个 $Q_\textbf{soft}^\omega$ 网络，损失函数写为：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
L_\pi(\theta)=\arg\min_\theta \mathbb{E}&lt;em&gt;{s_t\sim R, a_t\sim \pi&lt;/em&gt;\theta(\cdot|s_t)}\left[\alpha\log \pi_\theta(a_t|s_t)-\min_{j=1,2}Q_\textbf{soft}^{\omega_j}(s_t,a_t)\right] \notag \
\end{align}
$$&lt;/p&gt;
&lt;h3&gt;重参数化技巧 (Reparameterization Trick)&lt;/h3&gt;
&lt;p&gt;对于连续动作空间的环境，策略输出 Gauss 分布的均值和标准差，但是 Gauss 分布采样动作的过程是不可导的。因此，我们使用了重参数化技巧。
重参数化的做法是先从标准的 Gauss 分布 $\mathcal{N}$ 进行采样，然后再将采样值乘以标准差后加上均值，如下：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
a_t&amp;#x26;=f_\theta(\epsilon_t;s_t) \notag \
&amp;#x26;= \mu_\theta(s_t)+\epsilon_t\sigma_\theta(s_t), \quad \epsilon\sim\mathcal{N}(0,I)\notag
\end{align}
$$&lt;/p&gt;
&lt;p&gt;这样就可以认为是从策略高斯分布采样，并且这样对于策略函数是可导的，损失函数写为：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
L_\pi(\theta)=\arg\min_\theta \mathbb{E}&lt;em&gt;{s_t\sim R, \epsilon_t \sim \mathcal{N}}\left[\alpha\log \pi&lt;/em&gt;\theta(f_\theta(\epsilon_t;s_t)|s_t)-\min_{j=1,2}Q_\textbf{soft}^{\omega_j}(s_t,f_\theta(\epsilon_t;s_t))\right] \notag \
\end{align}
$$&lt;/p&gt;
&lt;h3&gt;自动调整熵系数 (Automating Entropy Adjustment)&lt;/h3&gt;
&lt;p&gt;在 SAC 算法中，如何选择熵正则项的系数非常重要。在不同的状态下需要不同大小的熵：在最优动作不确定的某个状态下，熵的取值应该大一点；而在某个最优动作比较确定的状态下，熵的取值可以小一点。
为了自动调整熵正则项，SAC 将强化学习的目标改写为一个带约束的优化问题：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
\arg\max_\theta\mathbb{E}&lt;em&gt;{(s_t,a_t)\sim \rho^{\pi&lt;/em&gt;\theta}}\left[\sum_{t=0}^\infty r(s_t,a_t)\right] \quad \text{s.t.} \quad \mathbb{E}&lt;em&gt;{(s_t,a_t)\sim\rho^{\pi&lt;/em&gt;\theta}}\left[-\log\pi_\theta(a_t|s_t)\right]\ge H_0\notag \
\end{align}
$$&lt;/p&gt;
&lt;p&gt;将上述问题转化为 KKT（Karush-Kuhn-Tucker）条件下的约束问题：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
\arg\min_\theta\mathbb{E}&lt;em&gt;{(s_t,a_t)\sim \rho^{\pi&lt;/em&gt;\theta}}\left[-\sum_{t=0}^\infty r(s_t,a_t)\right] \quad \text{s.t.} \quad H_0-\mathbb{E}&lt;em&gt;{(s_t,a_t)\sim\rho^{\pi&lt;/em&gt;\theta}}\left[-\log\pi_\theta(a_t|s_t)\right]\le 0\notag \
\end{align}
$$&lt;/p&gt;
&lt;p&gt;通过拉格朗日乘数法，转化为无约束问题，拉格朗日函数为：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
L(\theta,\alpha)=\mathbb{E}&lt;em&gt;{(s_t,a_t)\sim \rho^{\pi&lt;/em&gt;\theta}}\left[-\sum_{t=0}^\infty r(s_t,a_t)\right] + \alpha\left[H_0-\mathbb{E}&lt;em&gt;{(s_t,a_t)\sim\rho^{\pi&lt;/em&gt;\theta}}\left[-\log\pi_\theta(a_t|s_t)\right]\right] \notag
\end{align}
$$&lt;/p&gt;
&lt;p&gt;其中 $\alpha\ge0$ 是拉格朗日乘数，将拉格朗日函数中与 $\alpha$ 相关的提取出来：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
L(\alpha)=\mathbb{E}&lt;em&gt;{s_t\sim R,a_t\sim\pi&lt;/em&gt;\theta(\cdot|s_t)}\left[-\alpha\log\pi_\theta(a_t|s_t)-\alpha H_0\right] \notag
\end{align}
$$&lt;/p&gt;
&lt;p&gt;即当策略的熵低于目标值 $H_0$ 时，训练目标 $L(\alpha)$ 会使 $\alpha$ 的值增大，进而在上述最小化损失函数 $L_\pi(\theta)$ 的过程中增加了策略熵对应项的重要性；而当策略的熵高于目标值 $H_0$ 时，训练目标 $L(\alpha)$ 会使 $\alpha$ 的值减小，进而使得策略训练时更专注于价值提升。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/92079701_p0_master1200.64eg2t4l77.webp"/><enclosure url="https://pic.hana0721.top/92079701_p0_master1200.64eg2t4l77.webp"/></item><item><title>RL笔记（14）：SQL</title><link>https://agusexp25.top/blog/rl-note-14</link><guid isPermaLink="true">https://agusexp25.top/blog/rl-note-14</guid><description>深入解析 Soft Q-Learning (SQL)：从最大熵强化学习原理出发，详细推导 Soft Bellman 方程、策略提升定理及收敛性证明，并探讨基于能量模型的策略采样与实现细节。</description><pubDate>Tue, 23 Dec 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;引言（Introduction）&lt;/h2&gt;
&lt;p&gt;Soft Q-Learning (SQL) 是强化学习中结合 &lt;strong&gt;最大熵强化学习（Maximum Entropy Reinforcement Learning）&lt;/strong&gt; 思想的 Q-Learning 扩展算法。
它的核心目标不仅仅是找到&lt;strong&gt;那一条&lt;/strong&gt;获得最高分的路，而是要找到&lt;strong&gt;所有&lt;/strong&gt;能获得高分的路。它在最大化累积奖励的同时，强制策略保持随机性（即最大化策略的熵），从而提升策略的探索能力、鲁棒性和泛化性。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;最大熵强化学习（Maximum Entropy RL）&lt;/h2&gt;
&lt;h3&gt;基本定义&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;熵（Entropy）&lt;/strong&gt; 是表示随机变量不确定性的度量。对于随机变量 $X$，如果其概率密度为 $p$，熵 $H$ 定义为：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
H(X)&amp;#x26;=\mathbb{E}&lt;em&gt;{x\sim p}[-\log p(x)]\notag \
&amp;#x26;=-\int&lt;/em&gt;{X}p(x)\log p(x) \mathrm{d}x \notag
\end{align}
$$&lt;/p&gt;
&lt;p&gt;在强化学习中，我们关注的是策略 $\pi$ 在状态 $s$ 下的随机程度，记为 $H(\pi(\cdot|s))$。&lt;/p&gt;
&lt;h3&gt;目标函数&lt;/h3&gt;
&lt;p&gt;最大熵强化学习的思想是：除了最大化累计奖励，还要使得策略更加随机。因此，目标函数中加入了一项&lt;strong&gt;熵正则项&lt;/strong&gt;：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
\pi_{\textbf{MaxEnt}}^*=\arg\max_{\pi}\sum_{t=0}^\infty \mathbb{E}_{\pi}[ r(s_t,a_t)+\alpha H(\pi(\cdot|s_t))]\notag
\end{align}
$$&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;$\alpha$ (Temperature)：正则项系数，用来权衡熵的重要程度。
&lt;ul&gt;
&lt;li&gt;$\alpha \to 0$：退化为标准 RL（贪婪）。&lt;/li&gt;
&lt;li&gt;$\alpha$ 越大：越鼓励探索，策略分布越平坦。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;💡 直觉理解&lt;/strong&gt;：
这一项 $\alpha H$ 的加入，意味着智能体如果不去探索新的动作，或者太早确定一个动作（熵变低），就会受到“惩罚”。这能有效防止智能体陷入局部最优。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2&gt;基于能量的模型 (Energy-Based Model, EBM)&lt;/h2&gt;
&lt;p&gt;SQL 使用基于能量的模型来建模策略。这源于统计物理学：能量越低的状态，出现的概率越高。&lt;/p&gt;
&lt;p&gt;在强化学习中，我们将状态-动作对 $(s,a)$ 映射到能量值 $\mathcal{E}$。策略分布定义为：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
\pi(a|s)=\frac{\exp(-\mathcal{E}(s,a))}{Z(s)}\notag
\end{align}
$$&lt;/p&gt;
&lt;p&gt;其中，$Z(s)$ 是&lt;strong&gt;配分函数（Partition Function）&lt;/strong&gt;，用于归一化，确保概率之和为 1：&lt;/p&gt;
&lt;p&gt;$$
Z(s)=\int_{\mathcal{A}}\exp(-\mathcal{E}(s,a))\mathrm{d}a
$$&lt;/p&gt;
&lt;p&gt;在 Soft Q-Learning 中，我们通常用 Soft Q 值来代替负能量 $-\mathcal{E}(s,a)$，即 $Q_{soft}(s,a)$ 越大，选择该动作的概率越大。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;Soft 贝尔曼方程 (Soft Bellman Equation)&lt;/h2&gt;
&lt;p&gt;为了推导 SQL，我们需要重新定义价值函数 $V$ 和 $Q$，将熵包含进去。&lt;/p&gt;
&lt;h3&gt;回顾：普通贝尔曼方程&lt;/h3&gt;
&lt;p&gt;普通 $Q$ 值：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
Q^\pi(s,a) &amp;#x26;= r(s,a)+\gamma\mathbb{E}_{s^\prime \sim p(\cdot|s,a)}[V^\pi(s^\prime)] \notag
\end{align}
$$&lt;/p&gt;
&lt;p&gt;普通 $V$ 值：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
V^\pi(s) &amp;#x26;=\mathbb{E}_{a\sim \pi(\cdot|s)}[Q^\pi(s,a)] \notag
\end{align}
$$&lt;/p&gt;
&lt;h3&gt;定义：Soft 贝尔曼方程&lt;/h3&gt;
&lt;p&gt;在最大熵框架下，价值函数的定义发生了变化。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Soft 状态价值函数 $V_\text{soft}$ 推导：&lt;/strong&gt;
$V_\text{soft}$ 不仅包含未来的奖励，还包含未来的熵。&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
V_{\textbf{soft}}^\pi(s)
&amp;#x26;=\mathbb{E}&lt;em&gt;{\pi}[\sum&lt;/em&gt;{l=0}^\infty \gamma^l(R_{t+l}+\alpha H(\pi(\cdot|S_{t+l})))|S_t=s] \notag \
&amp;#x26;=\mathbb{E}&lt;em&gt;{\pi}[R_t+\alpha H(\pi(\cdot|S_t))|S_t=s]+\gamma \mathbb{E}&lt;/em&gt;{\pi}[\sum_{l=0}^\infty \gamma^l(R_{t+1+l}+\alpha H(\pi(\cdot|S_{t+1+l})))] \notag \
&amp;#x26;=\mathbb{E}&lt;em&gt;{a\sim\pi(\cdot|s)}[r(s,a)]+\alpha H(\pi(\cdot|s))+\gamma \mathbb{E}&lt;/em&gt;{a\sim\pi(\cdot|s),s^\prime\sim p(\cdot|s,a)}[V^{\pi}_{\textbf{soft}}(s^\prime)] \notag
\end{align}
$$&lt;/p&gt;
&lt;p&gt;将 $H(\pi)$ 展开为期望形式 $\mathbb{E}[-\log \pi]$，可以合并项：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
V_{\textbf{soft}}^\pi(s)
&amp;#x26;=\mathbb{E}&lt;em&gt;{a\sim\pi(\cdot|s)}[r(s,a)-\alpha\log\pi(a|s)+\gamma\mathbb{E}&lt;/em&gt;{s^\prime\sim p(\cdot|s,a)}[V^{\pi}&lt;em&gt;{\textbf{soft}}(s^\prime)]] \notag \
&amp;#x26;=\mathbb{E}&lt;/em&gt;{a\sim\pi(\cdot|s)}[r(s,a)+\gamma \mathbb{E}&lt;em&gt;{s^\prime\sim p(\cdot|s,a)}[V^{\pi}&lt;/em&gt;{\textbf{soft}}(s^\prime)]]+\alpha H(\pi(\cdot|s)) \notag
\end{align}
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Soft 动作价值函数 $Q_\text{soft}$ 推导：&lt;/strong&gt;
与 $V$ 类似，展开递归形式：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
Q_{\textbf{soft}}^\pi(s,a)
&amp;#x26;=r(s,a)+\gamma \mathbb{E}&lt;em&gt;{s^\prime\sim p(\cdot|s,a),a^\prime\sim\pi(\cdot|s^\prime)}[Q^{\pi}&lt;/em&gt;{\textbf{soft}}(s^\prime,a^\prime)-\alpha\log\pi(a^\prime|s^\prime)] \notag
\end{align}
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;两者关系总结：&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;V 与 Q 的关系&lt;/strong&gt;：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
V_{\textbf{soft}}^\pi(s)&amp;#x26;=\mathbb{E}&lt;em&gt;{a\sim\pi(\cdot|s)}[Q^{\pi}&lt;/em&gt;{\textbf{soft}}(s,a)-\alpha\log\pi(a|s)]\notag \
&amp;#x26;=\mathbb{E}&lt;em&gt;{a\sim \pi(a|s)}[Q^{\pi}&lt;/em&gt;{\textbf{soft}}(s,a)]+\alpha H(\pi(\cdot|s)) \notag
\end{align}
$$&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;💡 笔记&lt;/strong&gt;：这说明 $V$ 值等于 $Q$ 值的期望加上当前的熵红利。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Q 与 V 的关系&lt;/strong&gt;（Soft Bellman）：
$$
\begin{align}
Q^{\pi}&lt;em&gt;{\textbf{soft}}(s,a)=r(s,a)+\gamma \mathbb{E}&lt;/em&gt;{s^\prime\sim p(\cdot|s,a)}[V_{\textbf{soft}}^\pi(s^\prime)]\notag \
\end{align}
$$&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2&gt;Soft 策略提升定理 (Soft Policy Improvement)&lt;/h2&gt;
&lt;p&gt;我们如何保证更新策略后，效果一定会变好？这里给出了详细证明。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;定理&lt;/strong&gt;：对于任意状态 $s$，如果我们按照以下规则更新策略：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
\tilde{\pi}(\cdot|s) \propto \exp(\frac{1}{\alpha}Q^{\pi}_{\textbf{soft}}(s,\cdot)), \quad \forall s \in \mathcal{S} \notag \
\end{align}
$$&lt;/p&gt;
&lt;p&gt;那么新策略 $\tilde{\pi}$ 的 Soft Q 值一定优于旧策略 $\pi$。&lt;/p&gt;
&lt;h3&gt;证明过程&lt;/h3&gt;
&lt;p&gt;首先，我们计算旧策略 $\pi$ 下的 $V$ 值，并尝试引入新策略 $\tilde{\pi}$ 的形式。&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
V_{\textbf{soft}}^\pi(s)&amp;#x26;=\mathbb{E}&lt;em&gt;{a\sim \pi(\cdot|s)}[Q&lt;/em&gt;{\textbf{soft}}^\pi(s,a)]+\alpha H(\pi(\cdot|s)) \notag \
&amp;#x26;=\int_a\pi(a|s)Q_{\textbf{soft}}^\pi(s,a)\text{d}a-\alpha\int_a\pi(a|s)\log\pi(a|s)\text{d}a\notag
\end{align}
$$&lt;/p&gt;
&lt;p&gt;这里利用一个恒等变换。因为更新规则 $\tilde{\pi}(a|s) = \frac{\exp(\frac{1}{\alpha}Q(s,a))}{Z(s)}$，所以 $Q(s,a) = \alpha \log \tilde{\pi}(a|s) + \alpha \log Z(s)$。
代入积分中：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
V_{\textbf{soft}}^\pi(s) &amp;#x26;= \alpha\int_a \pi(a|s) \left[ \log \tilde{\pi}(a|s) + \log \int_{a^\prime}\exp(\frac{1}{\alpha}Q_{\textbf{soft}}^\pi(s,a^\prime))\text{d}a^\prime \right] \text{d}a - \alpha\int_a\pi(a|s)\log\pi(a|s)\text{d}a \notag \
&amp;#x26;= \alpha \log \left[ \int_{a^\prime}\exp(\frac{1}{\alpha}Q_{\textbf{soft}}^\pi(s,a^\prime))\text{d}a^\prime \right] + \alpha \int_a \pi(a|s) \log \frac{\tilde{\pi}(a|s)}{\pi(a|s)} \text{d}a \notag \
&amp;#x26;= \alpha \log \int_a\exp(\frac{1}{\alpha}Q_{\textbf{soft}}^\pi(s,a))\text{d}a - \alpha D_{\textbf{KL}}(\pi(\cdot|s)||\tilde{\pi}(\cdot|s)) \notag
\end{align}
$$&lt;/p&gt;
&lt;p&gt;当 $\pi = \tilde{\pi}$ 时，KL 散度为 0，我们得到&lt;strong&gt;Soft Value Function 的解析解（LogSumExp 形式）&lt;/strong&gt;：&lt;/p&gt;
&lt;p&gt;$$
V_{\textbf{soft}}^{\tilde{\pi}}(s) = \alpha \log \int_a \exp(\frac{1}{\alpha}Q_{\textbf{soft}}^\pi(s,a))\text{d}a
$$&lt;/p&gt;
&lt;p&gt;因为 KL 散度非负（$D_{KL} \ge 0$），且 $\alpha &gt; 0$，所以去掉 KL 项后，不等式成立：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
\alpha \log \int_a \exp(\frac{1}{\alpha}Q)\text{d}a \ge V_{\textbf{soft}}^\pi(s) + \alpha D_{\textbf{KL}} \ge V_{\textbf{soft}}^\pi(s) \notag
\end{align}
$$&lt;/p&gt;
&lt;p&gt;这导出了关键不等式：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
\mathbb{E}&lt;em&gt;{a\sim\tilde{\pi}(\cdot|s)}[Q&lt;/em&gt;{\textbf{soft}}^\pi(s,a)]+ \alpha H(\tilde{\pi}(\cdot|s))\ge
\mathbb{E}&lt;em&gt;{a\sim\pi(\cdot|s)}[Q&lt;/em&gt;{\textbf{soft}}^\pi(s,a)]+ \alpha H(\pi(\cdot|s)) \notag
\end{align}
$$&lt;/p&gt;
&lt;p&gt;接下来的迭代推导证明了 $Q$ 值的单调递增性（通过不断展开贝尔曼算子）：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
Q_{\textbf{soft}}^\pi(s,a) &amp;#x26;= r_0 + \gamma V_{soft}^\pi(s_1) \notag \
&amp;#x26;\le r_0 + \gamma (\mathbb{E}&lt;em&gt;{a_1 \sim \tilde{\pi}}[Q^\pi(s_1, a_1)] + \alpha H(\tilde{\pi})) \quad \text{(根据上述不等式)} \notag \
&amp;#x26;\le \dots \notag \
&amp;#x26;\le Q&lt;/em&gt;{\textbf{soft}}^{\tilde{\pi}}(s,a) \notag
\end{align}
$$&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;💡 结论&lt;/strong&gt;：
只要我们将策略更新为正比于 $\exp(Q/\alpha)$，新的策略在 Soft Q 值的评估下一定比旧策略更好（或持平）。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2&gt;Soft 策略评估定理与收敛性证明&lt;/h2&gt;
&lt;p&gt;我们定义&lt;strong&gt;Soft 贝尔曼算子 $\mathcal{T}$&lt;/strong&gt;，并证明反复应用它会收敛到最优值。&lt;/p&gt;
&lt;p&gt;定义算子操作：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
\mathcal{T} Q_{\textbf{soft}}^\pi(s,a) \triangleq r(s,a)+\gamma \mathbb{E}&lt;em&gt;{s^\prime\sim p(\cdot|s,a)}\left[\alpha\log\int&lt;/em&gt;{a^\prime}\exp (\frac{1}{\alpha}Q_{\textbf{soft}}^\pi(s^\prime,a^\prime))\text{d}a^\prime\right]\notag
\end{align}
$$&lt;/p&gt;
&lt;h3&gt;压缩映射证明 (Contraction Mapping)&lt;/h3&gt;
&lt;p&gt;我们要证明 $||\mathcal{T}Q_1 - \mathcal{T}Q_2|| \le k ||Q_1 - Q_2||$，其中 $k &amp;#x3C; 1$。&lt;/p&gt;
&lt;p&gt;定义度量距离 $\epsilon = \max_{s,a}|Q_1(s,a) - Q_2(s,a)|$。
这意味对于任意 $(s,a)$：&lt;/p&gt;
&lt;p&gt;$$
Q_1(s,a) \le Q_2(s,a) + \epsilon
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;关键推导步骤&lt;/strong&gt;：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;利用指数单调性：&lt;/p&gt;
&lt;p&gt;$$
\exp(\frac{1}{\alpha}Q_1) \le \exp(\frac{1}{\alpha}(Q_2 + \epsilon)) = \exp(\frac{Q_2}{\alpha}) \cdot \exp(\frac{\epsilon}{\alpha})
$$&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;积分保序性：&lt;/p&gt;
&lt;p&gt;$$
\int \exp(\frac{Q_1}{\alpha}) \text{d}a&apos; \le \exp(\frac{\epsilon}{\alpha}) \int \exp(\frac{Q_2}{\alpha}) \text{d}a&apos;
$$&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;取 $\alpha \log$（&lt;strong&gt;注意这里的常数提取&lt;/strong&gt;）：
$$
\begin{align}
\alpha \log \int \exp(\frac{Q_1}{\alpha}) \text{d}a&apos;
&amp;#x26;\le \alpha \log \left[ \exp(\frac{\epsilon}{\alpha}) \int \exp(\frac{Q_2}{\alpha}) \text{d}a&apos; \right] \notag \
&amp;#x26;= \alpha \left[ \log(\exp(\frac{\epsilon}{\alpha})) + \log \int \exp(\frac{Q_2}{\alpha}) \text{d}a&apos; \right] \notag \
&amp;#x26;= \alpha \left[ \frac{\epsilon}{\alpha} + \log \int \exp(\frac{Q_2}{\alpha}) \text{d}a&apos; \right] \notag \
&amp;#x26;= \epsilon + \alpha \log \int \exp(\frac{Q_2}{\alpha}) \text{d}a&apos; \notag
\end{align}
$$&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;计算算子差值：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
|\mathcal{T}Q_1 - \mathcal{T}Q_2| &amp;#x26;= \gamma \left| \mathbb{E}&lt;em&gt;{s&apos;} \left[ \alpha \log \int&lt;/em&gt;{a^\prime} \exp(\frac{Q_1(s^\prime,a^\prime)}{\alpha}) \text{d}a^\prime - \alpha \log \int_{a^\prime} \exp(\frac{Q_2(s^\prime,a^\prime)}{\alpha}) \text{d}a^\prime \right] \right| \notag \
&amp;#x26;\le \gamma \mathbb{E}&lt;em&gt;{s&apos;} [\epsilon] \notag \
&amp;#x26;= \gamma \max&lt;/em&gt;{s,a} |Q_1(s,a)-Q_2(s,a)| \notag
\end{align}
$$&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;结论：
$$
||\mathcal{T}Q_1 - \mathcal{T}Q_2||&lt;em&gt;\infty \le \gamma ||Q_1 - Q_2||&lt;/em&gt;\infty
$$&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;由于折扣因子 $\gamma \in (0,1)$，算子 $\mathcal{T}$ 是一个&lt;strong&gt;压缩映射&lt;/strong&gt;，必然收敛到唯一的不动点 $Q^*_\text{soft}$。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;实现困难与解决方案&lt;/h2&gt;
&lt;p&gt;理论很完美，但实际用神经网络实现时（Deep RL），有两个主要困难。&lt;/p&gt;
&lt;h3&gt;困难 1：处理积分 (The Integral Problem)&lt;/h3&gt;
&lt;p&gt;在计算 $V_\text{soft}(s)$ 时，需要计算 $\log \int \exp(Q) \text{d}a$。
如果动作空间是连续的，这个积分通常无法解析计算。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;解决方案：重要性采样 (Importance Sampling)&lt;/strong&gt;
我们把积分转化为期望，通过采样来近似。
引入一个采样分布 $q_a(a)$（通常可以是当前的策略网络）：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
V_{\textbf{soft}}^{\theta}(s)&amp;#x26;= \alpha \log \int_a \exp(\frac{1}{\alpha}Q_{\textbf{soft}}^{\theta}(s,a))\text{d}a\notag \
&amp;#x26;=\alpha\log\int_a q_a(a)\frac{\exp(\frac{1}{\alpha}Q_{\textbf{soft}}^{\theta}(s,a))}{q_a(a)} \text{d}a \notag \
&amp;#x26;\approx \alpha \log \mathbb{E}&lt;em&gt;{a\sim q_a(\cdot)}\left[\frac{\exp(\frac{1}{\alpha}Q&lt;/em&gt;{\textbf{soft}}^{\theta}(s,a))}{q_a(a)}\right] \notag
\end{align}
$$&lt;/p&gt;
&lt;p&gt;于是，Soft Q-Learning 的目标函数（Bellman Error）变为：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
J_Q(\theta)&amp;#x26;=\mathbb{E}&lt;em&gt;{\mathcal{D}}\left[\frac{1}{2}\left(\hat{Q}&lt;/em&gt;{\textbf{soft}}(s_t,a_t)-Q_{\textbf{soft}}^\theta(s_t,a_t)\right)^2\right]\notag
\end{align}
$$&lt;/p&gt;
&lt;p&gt;其中目标值 $\hat{Q}$ 使用上述的重要性采样估计来计算 $V$。&lt;/p&gt;
&lt;h3&gt;困难 2：策略采样 (Sampling from Energy-Based Policy)&lt;/h3&gt;
&lt;p&gt;理论上的最优策略是基于能量的：$\pi(a|s) \propto \exp(\frac{1}{\alpha}Q(s,a))$。
这是一种复杂的分布，我们无法直接从 Q 网络中高效采样动作。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;解决方案：Amortized Inference (近似推断)&lt;/strong&gt;
我们训练一个显式的策略网络（Actor）$\pi_\phi(a|s)$（通常是高斯分布或由神经网络生成的分布），让它去逼近那个能量分布。&lt;/p&gt;
&lt;p&gt;目标是最小化两者之间的 KL 散度：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
J_\pi(\phi;s_t)=D_{\textbf{KL}}\left(\pi_\phi(\cdot|s_t)\Big|\Big|\exp\left(\frac{1}{\alpha}(Q_{\textbf{soft}}^\theta(s_t,\cdot)-V_{\textbf{soft}}^\theta(s_t))\right)\right)\notag
\end{align}
$$&lt;/p&gt;
&lt;p&gt;将 KL 散度展开并忽略常数项，等价于最大化：&lt;/p&gt;
&lt;p&gt;$$
\mathbb{E}&lt;em&gt;{a \sim \pi&lt;/em&gt;\phi}[Q^\theta(s,a) - \alpha \log \pi_\phi(a|s)]
$$&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;💡 实现细节&lt;/strong&gt;：
在 SQL 原文中，作者使用了 &lt;strong&gt;SVGD (Stein Variational Gradient Descent)&lt;/strong&gt; 方法来更新这个策略网络，这允许策略生成非常复杂的多模态分布。后续的 SAC 算法则使用了重参数化技巧（Reparameterization Trick）来简化这一步。&lt;/p&gt;
&lt;/blockquote&gt;</content:encoded><h:img src="https://pic.hana0721.top/86800103_p0_master1200.4qrwyrtj6a.webp"/><enclosure url="https://pic.hana0721.top/86800103_p0_master1200.4qrwyrtj6a.webp"/></item><item><title>RL笔记（13）：DDPG</title><link>https://agusexp25.top/blog/rl-note-13</link><guid isPermaLink="true">https://agusexp25.top/blog/rl-note-13</guid><description>深度确定性策略梯度：将 DQN 扩展到连续动作空间。详解 DDPG 的软更新与噪声探索，以及 TD3 如何通过双 Q 网络和延迟更新解决过估计问题。</description><pubDate>Mon, 22 Dec 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;引言（Introduction）&lt;/h2&gt;
&lt;p&gt;我们之前学过 &lt;strong&gt;DQN&lt;/strong&gt;（处理离散动作的价值方法）和 &lt;strong&gt;REINFORCE/PPO&lt;/strong&gt;（处理连续/离散动作的随机策略方法）。
如果我们将 DQN 的思想（Off-policy, Replay Buffer）应用到连续控制任务中，会遇到什么问题？&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;DQN 需要对动作取最大值 $\max_a Q(s,a)$。在连续空间中，这个最大化操作本身就是一个复杂的优化问题。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;DDPG (Deep Deterministic Policy Gradient)&lt;/strong&gt; 的出现解决了这个问题。你可以简单地把它理解为 &lt;strong&gt;“DQN + Actor-Critic”&lt;/strong&gt;。它使用一个 Actor 网络来直接输出那个“让 Q 值最大的动作”，从而避免了复杂的积分或最大化计算。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;策略类型的本质区别&lt;/h2&gt;
&lt;p&gt;在深入 DDPG 之前，我们需要明确两种策略的数学形式差异。&lt;/p&gt;
&lt;h3&gt;随机策略 (Stochastic Policy)&lt;/h3&gt;
&lt;p&gt;输出动作的&lt;strong&gt;概率分布&lt;/strong&gt;（如高斯分布的均值和方差）。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;离散动作&lt;/strong&gt;：$\pi(a|s;\theta)=\frac{\exp(Q_\theta(s,a))}{\sum_{a^\prime}\exp(Q_\theta(s,a^\prime))}$ (Softmax)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;连续动作&lt;/strong&gt;：$\pi(a|s;\theta) \sim \mathcal{N}(\mu_\theta(s), \sigma_\theta(s))$&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;确定性策略 (Deterministic Policy)&lt;/h3&gt;
&lt;p&gt;对于同一个状态，永远输出&lt;strong&gt;同一个动作&lt;/strong&gt;。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;离散动作&lt;/strong&gt;：$\pi(s;\theta)=\operatorname{argmax}&lt;em&gt;{a} Q&lt;/em&gt;\theta(s,a)$ (不可微，无法用梯度下降直接优化)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;连续动作&lt;/strong&gt;：$a=\mu_\theta(s)$ (可微，这正是 DDPG 的基础)&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;💡 核心区别&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;随机策略&lt;/strong&gt;通过&lt;strong&gt;对数似然 (Log-Likelihood)&lt;/strong&gt; 来更新参数：$\nabla \log \pi \cdot Q$。它试探性地增加高分动作的概率。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;确定性策略&lt;/strong&gt;通过&lt;strong&gt;链式法则 (Chain Rule)&lt;/strong&gt; 来更新参数：$\nabla_a Q \cdot \nabla_\theta \mu$。它直接告诉动作“往哪个方向挪一点，Q 值会变大”。&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2&gt;确定性策略梯度定理 (DPG)&lt;/h2&gt;
&lt;p&gt;这是 DDPG 的理论基石。我们希望找到策略参数 $\theta$，最大化目标函数 $J(\theta) = \mathbb{E}[Q(s, \mu_\theta(s))]$。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;定理推导&lt;/strong&gt;：
假设我们有一个 Critic 网络 $Q^w(s,a)$ 估得足够准。我们想调整 Actor $\mu_\theta(s)$，使得输出的动作 $a$ 能获得更大的 $Q$ 值。
根据链式法则：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
\nabla_\theta J(\mu_\theta) &amp;#x26;= \mathbb{E}&lt;em&gt;{s \sim \rho^\pi} [\nabla&lt;/em&gt;\theta Q^w(s, \mu_\theta(s))] \notag \
&amp;#x26;= \mathbb{E}&lt;em&gt;{s \sim \rho^\pi} [\underbrace{\nabla_a Q^w(s,a)|&lt;/em&gt;{a=\mu_\theta(s)}}&lt;em&gt;{\text{Critic 指出的方向}} \cdot \underbrace{\nabla&lt;/em&gt;\theta \mu_\theta(s)}_{\text{Actor 的梯度}}] \notag
\end{align}
$$&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;直觉&lt;/strong&gt;：Critic 告诉 Actor：“动作 $a$ 往大变一点，Q 值能增加”。Actor 就计算如何调整 $\theta$ 才能让 $a$ 变大。&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2&gt;深度确定性策略梯度 (DDPG)&lt;/h2&gt;
&lt;p&gt;DDPG 是 Deep Q-Network (DQN) 在连续动作空间的自然延伸。&lt;/p&gt;
&lt;h3&gt;核心组件&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Actor-Critic 架构&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Actor $\mu(s; \theta)$：输出确定性动作。&lt;/li&gt;
&lt;li&gt;Critic $Q(s, a; w)$：评估 (状态, 动作) 的价值。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;经验回放 (Replay Buffer)&lt;/strong&gt;：与 DQN 一样，存储 $(s, a, r, s&apos;)$，打破数据相关性，实现 Off-Policy 训练。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;目标网络 (Target Networks)&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;为了稳定训练，建立了 Target Actor $\mu&apos;$ 和 Target Critic $Q&apos;$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;关键改进：软更新 (Soft Update)&lt;/strong&gt;。
DQN 是每隔 $C$ 步硬拷贝参数。DDPG 使用滑动平均：
$$ \theta&apos; \leftarrow \tau \theta + (1-\tau)\theta&apos; $$
其中 $\tau \ll 1$ (如 0.001)。这使得目标值变化非常平滑。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;探索策略 (Exploration)&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;确定性策略本身不会探索。DDPG 必须在动作上&lt;strong&gt;加噪声&lt;/strong&gt;来进行探索：
$$ a&lt;em&gt;t = \mu&lt;/em&gt;\theta(s_t) + \mathcal{N}_t $$&lt;/li&gt;
&lt;li&gt;原论文使用了 &lt;strong&gt;Ornstein-Uhlenbeck (OU)&lt;/strong&gt; 噪声（具有时间相关性，适合惯性系统）。现在的实践通常直接使用简单的&lt;strong&gt;高斯噪声&lt;/strong&gt; $\mathcal{N}(0, \sigma)$。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;DDPG 算法流程&lt;/h3&gt;
&lt;p&gt;$$
\begin{aligned}
&amp;#x26; \bullet ; \text{Initialize Actor } \mu_\theta, \text{Critic } Q_w, \text{Target nets } \mu&apos;, Q&apos; \
&amp;#x26; \bullet ; \textbf{For } \text{episode } = 1 \to E \textbf{ do}: \
&amp;#x26; \bullet \qquad \text{Receive initial state } s \
&amp;#x26; \bullet \qquad \textbf{For } t = 1 \to T \textbf{ do}: \
&amp;#x26; \bullet \qquad \qquad \text{Select action } a = \mu_\theta(s) + \text{Noise} \
&amp;#x26; \bullet \qquad \qquad \text{Execute } a, \text{ observe } r, s&apos; \
&amp;#x26; \bullet \qquad \qquad \text{Store } (s, a, r, s&apos;) \text{ in Buffer } \mathcal{R} \
&amp;#x26; \bullet \qquad \qquad \text{Sample batch } N \text{ from } \mathcal{R} \
&amp;#x26; \bullet \qquad \qquad \textbf{// Update Critic (minimize MSBE)} \
&amp;#x26; \bullet \qquad \qquad y = r + \gamma Q&apos;(s&apos;, \mu&apos;(s&apos;)) \
&amp;#x26; \bullet \qquad \qquad L_w = \frac{1}{N}\sum (y - Q_w(s,a))^2 \
&amp;#x26; \bullet \qquad \qquad \textbf{// Update Actor (maximize Q)} \
&amp;#x26; \bullet \qquad \qquad \nabla_\theta J = \frac{1}{N} \sum \nabla_a Q_w(s,a) \nabla_\theta \mu_\theta(s) \
&amp;#x26; \bullet \qquad \qquad \textbf{// Soft Update Targets} \
&amp;#x26; \bullet \qquad \qquad \theta&apos; \leftarrow \tau \theta + (1-\tau)\theta&apos; \
&amp;#x26; \bullet \qquad \qquad w&apos; \leftarrow \tau w + (1-\tau)w&apos; \
&amp;#x26; \bullet \qquad \textbf{End For} \
&amp;#x26; \bullet ; \textbf{End For}
\end{aligned}
$$&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;双价值函数策略延时更新 (TD3)&lt;/h2&gt;
&lt;p&gt;DDPG 很强，但非常&lt;strong&gt;脆弱&lt;/strong&gt;，对超参数敏感。它继承了 DQN 的&lt;strong&gt;过高估计 (Overestimation)&lt;/strong&gt; 问题，甚至更严重。TD3 提出了三个技巧来修正它。&lt;/p&gt;
&lt;h3&gt;技巧 1：截断双 Q 学习 (Clipped Double Q-Learning)&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;问题&lt;/strong&gt;：DQN 中 $y = r + \gamma \max Q$ 会导致价值高估。DDPG 中虽然没有 max，但 Actor 也是朝着 Q 值最大的方向更新的，效果一样。
&lt;strong&gt;解决&lt;/strong&gt;：学习两个 Critic ($Q_1, Q_2$)，计算目标值时&lt;strong&gt;取最小值&lt;/strong&gt;。
$$ y = r + \gamma \min*{i=1,2} Q*{\phi_i&apos;}(s&apos;, \tilde{a}) $$
这体现了“悲观主义”原则，宁可低估也不要高估。&lt;/p&gt;
&lt;h3&gt;技巧 2：策略参数延迟更新 (Delayed Policy Updates)&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;问题&lt;/strong&gt;：Critic 还在学习中，波动很大。如果 Actor 频繁根据错误的 Critic 调整方向，会导致策略震荡发散。
&lt;strong&gt;解决&lt;/strong&gt;：让 Critic 多练几次，Actor 再动。
通常 Critic 更新 2 次（或更多），Actor 和 目标网络才更新 1 次。&lt;/p&gt;
&lt;h3&gt;目标策略平滑 (Target Policy Smoothing)&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;问题&lt;/strong&gt;：Critic 可能会对某些尖峰值（错误的 Q 值峰值）过拟合。
&lt;strong&gt;解决&lt;/strong&gt;：在计算目标值时，给动作加一点&lt;strong&gt;被截断的噪声&lt;/strong&gt;，让 Q 函数在动作周围更平滑。&lt;/p&gt;
&lt;p&gt;$$
\tilde{a} = \mu_{\theta&apos;}(s&apos;) + \epsilon, \quad \epsilon \sim \text{clip}(\mathcal{N}(0, \sigma), -c, c)
$$&lt;/p&gt;
&lt;p&gt;$$ y = r + \gamma \min Q&apos;(s&apos;, \tilde{a}) $$&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;💡 直觉&lt;/strong&gt;：相似的动作应该有相似的价值。如果动作稍微变一点点，价值就剧烈变化，说明这个 Critic 是有问题的（过拟合）。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2&gt;深度解析：DDPG/TD3 的定位&lt;/h2&gt;
&lt;p&gt;我们可以将 DDPG/TD3 放在整个 RL 家族谱系中进行对比：&lt;/p&gt;
&lt;p&gt;| 维度         | DDPG / TD3                                    | PPO / A2C                            | DQN              |
| :----------- | :-------------------------------------------- | :----------------------------------- | :--------------- | ----------------- |
| &lt;strong&gt;动作空间&lt;/strong&gt; | &lt;strong&gt;连续&lt;/strong&gt; (Continuous)                         | 离散 或 连续                         | 离散 (Discrete)  |
| &lt;strong&gt;策略类型&lt;/strong&gt; | &lt;strong&gt;确定性策略&lt;/strong&gt; ($\mu(s)$)                     | 随机策略 ($\pi(a                     | s)$)             | 确定性 (argmax Q) |
| &lt;strong&gt;样本效率&lt;/strong&gt; | &lt;strong&gt;高 (Off-Policy)&lt;/strong&gt;                           | 低 (On-Policy)                       | 高 (Off-Policy)  |
| &lt;strong&gt;更新方式&lt;/strong&gt; | &lt;strong&gt;链式法则&lt;/strong&gt; ($\nabla_a Q \nabla_\theta \mu$) | 对数似然 ($\nabla \log \pi \cdot A$) | 最小化 TD Error  |
| &lt;strong&gt;稳定性&lt;/strong&gt;   | 较低 (需精细调参)                             | &lt;strong&gt;高&lt;/strong&gt; (鲁棒性强)                    | 中               |
| &lt;strong&gt;核心痛点&lt;/strong&gt; | Q 值高估、超参数敏感                          | 采样慢、无法利用旧数据               | 无法处理连续动作 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;总结&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;DDPG&lt;/strong&gt; 是 DQN 在连续控制领域的继承者，引入了 Actor-Critic 架构。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;TD3&lt;/strong&gt; 是 DDPG 的“补丁版”，通过双 Q 网络和延迟更新，大大提升了算法的稳定性。&lt;/li&gt;
&lt;li&gt;它们都是 &lt;strong&gt;Off-Policy&lt;/strong&gt; 算法，适合需要极高样本效率的场景（如机器人控制）。&lt;/li&gt;
&lt;/ul&gt;</content:encoded><h:img src="https://pic.hana0721.top/78391247_p0_master1200.5j4sgia4wg.webp"/><enclosure url="https://pic.hana0721.top/78391247_p0_master1200.5j4sgia4wg.webp"/></item><item><title>RL笔记（12）：PPO</title><link>https://agusexp25.top/blog/rl-note-12</link><guid isPermaLink="true">https://agusexp25.top/blog/rl-note-12</guid><description>OpenAI 的默认算法：详解 PPO 如何通过 Clip 技巧简化 TRPO。涵盖 PPO-Clip 与 PPO-Penalty 两种变体、GAE 优势估计及完整的损失函数设计。圣PPO伟大无需多言！</description><pubDate>Sun, 21 Dec 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;引言（Introduction）&lt;/h2&gt;
&lt;p&gt;上一章提到的 &lt;strong&gt;TRPO&lt;/strong&gt; 虽然理论优美（保证单调不减），但计算太复杂了（需要共轭梯度法求解 Hessian-Vector Product）。
OpenAI 提出的 &lt;strong&gt;PPO (Proximal Policy Optimization)&lt;/strong&gt; 是 TRPO 的一阶近似版本。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;核心思想&lt;/strong&gt;：TRPO 使用 KL 散度作为&lt;strong&gt;硬约束 (Constraint)&lt;/strong&gt;，而 PPO 将约束转化为&lt;strong&gt;惩罚项 (Penalty)&lt;/strong&gt; 或者直接通过&lt;strong&gt;截断 (Clipping)&lt;/strong&gt; 来限制策略更新幅度。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;地位&lt;/strong&gt;：PPO 是目前 Deep RL 的基准算法，平衡了实现复杂度、样本效率和性能。&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2&gt;变体 1：PPO-Clip (主流)&lt;/h2&gt;
&lt;p&gt;这是目前最常用的 PPO 版本，它不需要计算 KL 散度，直接在目标函数里动手脚。&lt;/p&gt;
&lt;h3&gt;重要性采样比率&lt;/h3&gt;
&lt;p&gt;定义新旧策略的比率为 $r_t(\theta)$：&lt;/p&gt;
&lt;p&gt;$$
r_t(\theta) = \frac{\pi_\theta(a_t|s_t)}{\pi_{\theta_{\text{old}}}(a_t|s_t)}
$$&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;当 $\theta = \theta_{\text{old}}$ 时，$r_t = 1$。&lt;/li&gt;
&lt;li&gt;我们希望 $r_t$ 不要偏离 1 太多，这意味着新策略没有发生剧烈变化。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;截断目标函数&lt;/h3&gt;
&lt;p&gt;PPO-Clip 的核心目标函数如下：&lt;/p&gt;
&lt;p&gt;$$
L^{CLIP}(\theta)=\hat{\mathbb{E}}_t \left[ \min \left( r_t(\theta)\hat{A}_t, \text{clip}(r_t(\theta), 1-\epsilon, 1+\epsilon)\hat{A}_t \right) \right]
$$&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;$\epsilon$ 是一个超参数（通常为 0.2），表示允许策略变化的幅度（Trust Region）。&lt;/li&gt;
&lt;li&gt;$\text{clip}(r, 1-\epsilon, 1+\epsilon)$：把比率 $r$ 强制限制在 $[0.8, 1.2]$ 之间。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;直观理解：为什么要 Min？&lt;/h3&gt;
&lt;p&gt;我们需要分两种情况来看优势函数 $\hat{A}_t$ 的正负：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;情况 A：动作是好的 ($\hat{A}_t &gt; 0$)&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;我们希望增加这个动作的概率，即 $r_t(\theta)$ 增大。&lt;/li&gt;
&lt;li&gt;但不能无限增大。如果 $r_t &gt; 1+\epsilon$，&lt;code&gt;clip&lt;/code&gt; 函数会将其锁死在 $1+\epsilon$。&lt;/li&gt;
&lt;li&gt;此时 $\min$ 操作生效，目标函数不再随 $r_t$ 增加而增加。这防止了策略更新步子太大。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;情况 B：动作是坏的 ($\hat{A}_t &amp;#x3C; 0$)&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;我们希望减小这个动作的概率，即 $r_t(\theta)$ 减小。&lt;/li&gt;
&lt;li&gt;但不能无限减小。如果 $r_t &amp;#x3C; 1-\epsilon$，&lt;code&gt;clip&lt;/code&gt; 函数会将其锁死在 $1-\epsilon$。&lt;/li&gt;
&lt;li&gt;此时 $\min$ 操作生效，防止策略过度修正（以此避免策略坍塌）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;💡 总结&lt;/strong&gt;：
只有当策略变化在“安全区域”内时，我们才进行奖励优化；一旦超出安全区域，就不再给予额外的梯度奖励。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2&gt;变体 2：PPO-Penalty (自适应 KL)&lt;/h2&gt;
&lt;p&gt;这是另一种接近 TRPO 原义的方法，将 KL 散度作为正则项加入 Loss，并动态调整系数 $\beta$。&lt;/p&gt;
&lt;h3&gt;目标函数&lt;/h3&gt;
&lt;p&gt;$$
L^{KLPEN}(\theta)=\hat{\mathbb{E}}&lt;em&gt;t \left[ r_t(\theta)\hat{A}&lt;em&gt;t - \beta D&lt;/em&gt;{KL}(\pi&lt;/em&gt;{\theta_{\text{old}}}(\cdot|s_t) || \pi_\theta(\cdot|s_t)) \right]
$$&lt;/p&gt;
&lt;h3&gt;自适应 $\beta$ 更新规则&lt;/h3&gt;
&lt;p&gt;我们在每次更新后计算平均 KL 散度 $d = \hat{\mathbb{E}}&lt;em&gt;t [D&lt;/em&gt;{KL}]$，并与目标值 $d_{\text{targ}}$ 比较：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;如果 $d &amp;#x3C; d_{\text{targ}} / 1.5$&lt;/strong&gt;：说明策略变动太小，步子太保守。&lt;strong&gt;减小惩罚&lt;/strong&gt; $\beta \leftarrow \beta / 2$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;如果 $d &gt; d_{\text{targ}} \times 1.5$&lt;/strong&gt;：说明策略变动太大，步子太危险。&lt;strong&gt;增大惩罚&lt;/strong&gt; $\beta \leftarrow \beta \times 2$。&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2&gt;广义优势估计 (GAE)&lt;/h2&gt;
&lt;p&gt;在计算优势函数 $\hat{A}_t$ 时，简单的多步 TD 或蒙特卡洛都有局限。PPO 通常使用 &lt;strong&gt;GAE (Generalized Advantage Estimation)&lt;/strong&gt; 来平衡偏差和方差。&lt;/p&gt;
&lt;p&gt;我们定义 TD Error $\delta_t = r_t + \gamma V(s_{t+1}) - V(s_t)$。
GAE 是 $\delta$ 的加权几何平均：&lt;/p&gt;
&lt;p&gt;$$
\hat{A}&lt;em&gt;t^{GAE} = \sum&lt;/em&gt;{k=0}^{\infty} (\gamma \lambda)^k \delta_{t+k}
$$&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;$\lambda = 0$：即单步 TD（偏差大，方差小）。&lt;/li&gt;
&lt;li&gt;$\lambda = 1$：即蒙特卡洛（无偏差，方差大）。&lt;/li&gt;
&lt;li&gt;$\lambda \in (0, 1)$：通常取 0.95，在两者之间取得最佳平衡。&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2&gt;完整的 PPO 损失函数&lt;/h2&gt;
&lt;p&gt;在实际代码实现（如 Actor-Critic 架构）中，PPO 的总 Loss 包含三部分：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;策略损失 (Policy Loss)&lt;/strong&gt;：即 $L^{CLIP}$，让策略变好。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;价值损失 (Value Loss)&lt;/strong&gt;：$L^{VF} = (V_\theta(s_t) - V_{target})^2$，让 Critic 估值更准。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;熵奖励 (Entropy Bonus)&lt;/strong&gt;：$S[\pi_\theta]$，鼓励策略保持随机性，防止过早收敛到局部最优。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;$$
L^{Total}_t(\theta) = - L^{CLIP}_t(\theta) + c_1 L^{VF}_t(\theta) - c_2 S&lt;a href=&quot;s_t&quot;&gt;\pi_\theta&lt;/a&gt;
$$&lt;/p&gt;
&lt;p&gt;&lt;em&gt;(注：通常深度学习框架是最小化 Loss，所以最大化目标前加负号)&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;PPO 算法流程&lt;/h2&gt;
&lt;p&gt;$$
\begin{aligned}
&amp;#x26; \bullet ; \text{Initialize policy parameters } \theta \text{ and value parameters } \phi \
&amp;#x26; \bullet ; \textbf{For } \text{iteration } k = 1, 2, \dots \textbf{ do}: \
&amp;#x26; \bullet \qquad \textbf{1. Data Collection:} \
&amp;#x26; \bullet \qquad \text{Run policy } \pi_{\theta_{old}} \text{ in environment for } T \text{ steps} \
&amp;#x26; \bullet \qquad \text{Compute advantage estimates } \hat{A}&lt;em&gt;1, \dots, \hat{A}&lt;em&gt;T \text{ using GAE} \
&amp;#x26; \bullet \qquad \textbf{2. Optimization:} \
&amp;#x26; \bullet \qquad \textbf{For } \text{epoch } = 1 \to K \textbf{ do}: \
&amp;#x26; \bullet \qquad \qquad \text{Shuffle data and divide into mini-batches} \
&amp;#x26; \bullet \qquad \qquad \textbf{For } \text{each mini-batch } B \textbf{ do}: \
&amp;#x26; \bullet \qquad \qquad \qquad L = L^{CLIP}(\theta) - c_1 L^{VF}(\phi) + c_2 S[\pi&lt;/em&gt;\theta] \
&amp;#x26; \bullet \qquad \qquad \qquad \text{Update } \theta, \phi \text{ using Adam optimizer} \
&amp;#x26; \bullet \qquad \qquad \textbf{End For} \
&amp;#x26; \bullet \qquad \textbf{End For} \
&amp;#x26; \bullet \qquad \theta&lt;/em&gt;{old} \leftarrow \theta \
&amp;#x26; \bullet ; \textbf{End For}
\end{aligned}
$$&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;总结&lt;/h2&gt;
&lt;p&gt;PPO 之所以能成为 OpenAI 的默认算法（Default Algorithm），是因为它：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;简单&lt;/strong&gt;：只需要对梯度进行简单的截断（Clip），不需要复杂的二阶优化。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;稳定&lt;/strong&gt;：截断机制保证了策略不会因为一次糟糕的更新而崩溃。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;通用&lt;/strong&gt;：既适用于离散动作（Atari），也适用于连续动作（机器人控制）。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;至此，经典的 Policy Gradient 家族（REINFORCE $\to$ Actor-Critic $\to$ TRPO $\to$ PPO）已经梳理完毕。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/78075718_p0_master1200.51eqrx8rbi.webp"/><enclosure url="https://pic.hana0721.top/78075718_p0_master1200.51eqrx8rbi.webp"/></item><item><title>RL笔记（11）：TRPO</title><link>https://agusexp25.top/blog/rl-note-11</link><guid isPermaLink="true">https://agusexp25.top/blog/rl-note-11</guid><description>深度强化学习的里程碑：详解 TRPO 如何通过信任区域约束保证策略更新的单调性。涵盖目标函数推导、二阶泰勒近似、共轭梯度法及 HVP 技巧。</description><pubDate>Sat, 20 Dec 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;引言（Introduction）&lt;/h2&gt;
&lt;p&gt;在 REINFORCE 和 A2C 等策略梯度算法中，我们通常使用固定的学习率 $\alpha$ 来更新参数：$\theta \leftarrow \theta + \alpha \nabla J$。
但这有一个严重问题：&lt;strong&gt;策略参数的变化 $\Delta \theta$ 并不等同于策略行为的变化&lt;/strong&gt;。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;有时候参数改一点点，策略分布变动巨大（导致性能崩塌）。&lt;/li&gt;
&lt;li&gt;有时候参数改很多，策略分布几乎没变（训练效率低）。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;TRPO (Trust Region Policy Optimization)&lt;/strong&gt; 的核心思想是：我们不直接控制参数的变化量，而是控制&lt;strong&gt;策略分布的变化量&lt;/strong&gt;（用 KL 散度衡量）。我们在一个“信任区域”内进行优化，确保每一步更新后，策略的表现都是&lt;strong&gt;单调不减&lt;/strong&gt;的。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;策略优化的单调性证明&lt;/h2&gt;
&lt;p&gt;我们的目标是找到一个新策略 $\pi_{\theta&apos;}$，使得它的期望回报 $J(\theta&apos;)$ 比旧策略 $J(\theta)$ 高。&lt;/p&gt;
&lt;h3&gt;性能差异引理 (Performance Difference Lemma)&lt;/h3&gt;
&lt;p&gt;首先推导新旧策略的目标函数之差：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
J(\theta^\prime)-J(\theta)
&amp;#x26;= \mathbb{E}&lt;em&gt;{s_0}[V^{\pi&lt;/em&gt;{\theta^\prime}}(s_0)]-\mathbb{E}&lt;em&gt;{s_0}[V^{\pi&lt;/em&gt;{\theta}}(s_0)]\notag\
&amp;#x26;=\mathbb{E}&lt;em&gt;{\pi&lt;/em&gt;{\theta^\prime}}[\sum_{t=0}^\infty \gamma^t r(s_t,a_t)] - \mathbb{E}&lt;em&gt;{s_0}[\sum&lt;/em&gt;{t=0}^\infty \gamma^t V^{\pi_\theta}(s_t)-\sum_{t=1}^\infty \gamma^t V^{\pi_\theta}(s_t)] \notag \
&amp;#x26;=\mathbb{E}&lt;em&gt;{\pi&lt;/em&gt;{\theta^\prime}}[\sum_{t=0}^\infty \gamma^t r(s_t,a_t)] - \mathbb{E}&lt;em&gt;{\pi&lt;/em&gt;{\theta^\prime}}[\sum_{t=0}^\infty \gamma^t (V^{\pi_\theta}(s_t)-\gamma V^{\pi_\theta}(s_{t+1}))] \notag \
&amp;#x26;= \mathbb{E}&lt;em&gt;{\pi&lt;/em&gt;{\theta^\prime}}[\sum_{t=0}^\infty \gamma^t (r(s_t,a_t)+\gamma V^{\pi_\theta}(s_{t+1})-V^{\pi_\theta}(s_t))] \notag \
&amp;#x26;=\mathbb{E}&lt;em&gt;{\pi&lt;/em&gt;{\theta^\prime}}[\sum_{t=0}^\infty \gamma^t A^{\pi_\theta}(s_t,a_t )] \notag
\end{align}
$$&lt;/p&gt;
&lt;p&gt;将期望展开为状态访问分布 $\nu^{\pi_{\theta&apos;}}$ 的形式：&lt;/p&gt;
&lt;p&gt;$$
J(\theta^\prime)-J(\theta) = \sum_{t=0}^\infty \gamma^t \mathbb{E}&lt;em&gt;{s_t\sim p^{\pi&lt;/em&gt;{\theta^\prime}} \, ; a_t\sim\pi_{\theta^\prime}(\cdot|s_t)}[ A^{\pi_\theta}(s_t,a_t)]
= \frac{1}{1-\gamma} \mathbb{E}&lt;em&gt;{s\sim\nu^{\pi&lt;/em&gt;{\theta^\prime}}\, ;a\sim\pi_{\theta^\prime}(\cdot|s)}[A^{\pi_\theta}(s,a)]
$$&lt;/p&gt;
&lt;h3&gt;状态分布近似&lt;/h3&gt;
&lt;p&gt;上式很难计算，因为 $\nu^{\pi_{\theta&apos;}}$ 依赖于新策略（而新策略还没求出来）。
TRPO 做了一个关键假设：&lt;strong&gt;当新旧策略差距很小时，状态访问分布变化不大&lt;/strong&gt;，即 $\nu^{\pi_{\theta&apos;}} \approx \nu^{\pi_\theta}$。&lt;/p&gt;
&lt;p&gt;目标函数近似为：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
J(\theta^\prime)-J(\theta) &amp;#x26;\approx \frac{1}{1-\gamma}\mathbb{E}&lt;em&gt;{s\sim\nu^{\pi&lt;/em&gt;\theta}\,; a\sim\pi_{\theta^\prime}(\cdot|s)}[A^{\pi_\theta}(s,a)] \notag \
&amp;#x26;= \frac{1}{1-\gamma}\mathbb{E}&lt;em&gt;{s\sim\nu^{\pi&lt;/em&gt;\theta}\,; a\sim\pi_{\theta}(\cdot|s)}\left[\frac{\pi_{\theta^\prime}(a|s)}{\pi_\theta(a|s)}A^{\pi_\theta}(s,a)\right] \quad \text{(重要性采样)} \notag
\end{align}
$$&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;信任区域约束&lt;/h2&gt;
&lt;p&gt;为了让上述近似成立，必须限制 $\pi_{\theta&apos;}$ 和 $\pi_\theta$ 不能差太多。我们使用 &lt;strong&gt;KL 散度&lt;/strong&gt; 作为约束条件。&lt;/p&gt;
&lt;p&gt;优化目标：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
\max_{\theta^\prime} \quad &amp;#x26; \mathbb{E}&lt;em&gt;{s\sim\nu^{\pi&lt;/em&gt;\theta}\,; a\sim\pi_{\theta}(\cdot|s)}\left[\frac{\pi_{\theta^\prime}(a|s)}{\pi_\theta(a|s)}A^{\pi_\theta}(s,a)\right] \notag \
\text{s.t.} \quad &amp;#x26; \bar{D}&lt;em&gt;{KL}(\theta || \theta&apos;) = \mathbb{E}&lt;/em&gt;{s\sim\nu^{\pi_\theta}}[D_{KL}(\pi_{\theta}(\cdot|s) || \pi_{\theta&apos;}(\cdot|s))] \leqslant \delta \notag
\end{align}
$$&lt;/p&gt;
&lt;p&gt;(注：忽略了常数系数 $\frac{1}{1-\gamma}$，因为它不影响梯度方向)&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;数学近似求解&lt;/h2&gt;
&lt;p&gt;为了求解这个带约束的优化问题，我们对其进行泰勒展开。&lt;/p&gt;
&lt;h3&gt;目标函数的一阶近似&lt;/h3&gt;
&lt;p&gt;令 $L(\theta&apos;) = \mathbb{E}[\frac{\pi_{\theta&apos;}}{\pi_\theta} A^{\pi_\theta}]$。在 $\theta&apos; = \theta$ 处展开：&lt;/p&gt;
&lt;p&gt;$$
L(\theta&apos;) \approx L(\theta) + \nabla_{\theta&apos;} L(\theta&apos;)|_{\theta&apos;=\theta}^T (\theta&apos; - \theta)
$$&lt;/p&gt;
&lt;p&gt;由于 $L(\theta) = \mathbb{E}[1 \cdot A^{\pi_\theta}] = 0$ (优势函数的期望为0)，且 $\nabla_{\theta&apos;} L(\theta&apos;)|&lt;em&gt;{\theta} = \nabla&lt;/em&gt;\theta J(\theta)$ (策略梯度)。
记梯度为 $g$：
$$ L(\theta&apos;) \approx g^T (\theta&apos; - \theta) $$&lt;/p&gt;
&lt;h3&gt;约束条件的二阶近似&lt;/h3&gt;
&lt;p&gt;KL 散度在 $\theta&apos;=\theta$ 处的一阶导数为 0（因为是极小值点），所以必须展开到二阶。&lt;/p&gt;
&lt;p&gt;$$
\bar{D}_{KL}(\theta || \theta&apos;) \approx \frac{1}{2} (\theta&apos; - \theta)^T \mathbf{H} (\theta&apos; - \theta)
$$&lt;/p&gt;
&lt;p&gt;其中 $\mathbf{H}$ 是 KL 散度的 &lt;strong&gt;黑塞矩阵 (Hessian Matrix)&lt;/strong&gt;（也是 Fisher Information Matrix）。&lt;/p&gt;
&lt;h3&gt;近似后的优化问题&lt;/h3&gt;
&lt;p&gt;令更新步长 $\Delta \theta = \theta&apos; - \theta$，问题转化为：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
\max_{\Delta \theta} \quad &amp;#x26; g^T \Delta \theta \notag \
\text{s.t.} \quad &amp;#x26; \frac{1}{2} \Delta \theta^T \mathbf{H} \Delta \theta \leqslant \delta \notag
\end{align}
$$&lt;/p&gt;
&lt;h3&gt;解析解&lt;/h3&gt;
&lt;p&gt;利用拉格朗日乘数法（推导见你原笔记），解得：&lt;/p&gt;
&lt;p&gt;$$
\Delta \theta = \sqrt{\frac{2\delta}{g^T \mathbf{H}^{-1} g}} \mathbf{H}^{-1} g
$$&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;共轭梯度法 (Conjugate Gradient)&lt;/h2&gt;
&lt;p&gt;公式里需要计算 $\mathbf{H}^{-1} g$。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;问题&lt;/strong&gt;：$\mathbf{H}$ 是神经网络参数的 Hessian 矩阵。如果参数有 100万个，$\mathbf{H}$ 就是 $100w \times 100w$ 的矩阵，显式计算它的逆是不可能的。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;思路&lt;/strong&gt;：我们不需要算 $\mathbf{H}^{-1}$，我们只需要算向量 $x = \mathbf{H}^{-1} g$。这等价于求解线性方程组 $\mathbf{H}x = g$。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;共轭梯度法 (CG)&lt;/strong&gt; 是一种迭代算法，它可以只通过计算矩阵-向量乘积 ($\mathbf{H}v$)，在 $k$ 步内（$k \ll \text{参数维度}$）找到 $x$ 的近似解。&lt;/p&gt;
&lt;h3&gt;Hessian-Vector Product (HVP)&lt;/h3&gt;
&lt;p&gt;CG 算法需要计算 $\mathbf{H}v$。虽然我们算不起 $\mathbf{H}$，但可以利用反向传播算 $\mathbf{H}v$。&lt;/p&gt;
&lt;p&gt;$$
\mathbf{H}v = \nabla_\theta (\nabla_\theta \bar{D}_{KL} \cdot v)
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;代码实现技巧&lt;/strong&gt;：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;先算 KL 散度的梯度 $\nabla \bar{D}_{KL}$。&lt;/li&gt;
&lt;li&gt;算梯度和向量 $v$ 的点积：$scalar = \nabla \bar{D}_{KL}^T v$。&lt;/li&gt;
&lt;li&gt;对这个标量再求一次梯度：$\nabla_\theta (scalar)$。
这样只需要两次反向传播，就能算出 $\mathbf{H}v$，完全避免了存储巨大的 Hessian 矩阵。&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2&gt;线搜索 (Line Search)&lt;/h2&gt;
&lt;p&gt;虽然我们算出了更新方向 $\Delta \theta$ 和最大步长 $\beta = \sqrt{\frac{2\delta}{g^T \mathbf{H}^{-1} g}}$，但由于泰勒展开只是&lt;strong&gt;局部近似&lt;/strong&gt;，直接走这么远可能会导致策略性能下降（KL 散度超标或目标函数下降）。&lt;/p&gt;
&lt;p&gt;TRPO 采用 &lt;strong&gt;回溯线搜索 (Backtracking Line Search)&lt;/strong&gt; 来确定最终步长：
设 $\theta_{new} = \theta + \alpha^j \beta \Delta \theta$，其中 $\alpha \in (0, 1)$ 是衰减系数（如 0.5）。
从 $j=0, 1, 2, \dots$ 开始尝试，直到满足以下两个条件：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;KL 约束满足&lt;/strong&gt;：$\bar{D}&lt;em&gt;{KL}(\theta || \theta&lt;/em&gt;{new}) \leqslant \delta$&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;目标函数提升&lt;/strong&gt;：$L(\theta_{new}) \geqslant 0$ (即性能确实提升了)&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2&gt;TRPO 算法流程总结&lt;/h2&gt;
&lt;p&gt;$$
\begin{aligned}
&amp;#x26; \bullet ; \text{Initialize policy parameters } \theta_0 \
&amp;#x26; \bullet ; \textbf{For } k = 0, 1, 2, \dots \textbf{ do}: \
&amp;#x26; \bullet \qquad \text{Collect trajectories } \tau \text{ using } \pi_{\theta_k} \
&amp;#x26; \bullet \qquad \text{Estimate advantages } A^{\pi_{\theta_k}} \text{ (using GAE)} \
&amp;#x26; \bullet \qquad \text{Compute policy gradient } g = \nabla_\theta L(\theta)|&lt;em&gt;{\theta_k} \
&amp;#x26; \bullet \qquad \text{Use CG to compute } x \approx \mathbf{H}^{-1} g \text{ with HVP} \
&amp;#x26; \bullet \qquad \text{Compute max step length } \beta = \sqrt{\frac{2\delta}{x^T \mathbf{H} x}} \
&amp;#x26; \bullet \qquad \text{Perform Line Search to find best step size } \eta \in {\beta, 0.5\beta, 0.25\beta \dots} \
&amp;#x26; \bullet \qquad \text{Update } \theta&lt;/em&gt;{k+1} = \theta_k + \eta x \
&amp;#x26; \bullet ; \textbf{End For}
\end{aligned}
$$&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;优缺点分析&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;优点&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;理论保证&lt;/strong&gt;：单调提升，不再担心学习率太大导致训练崩溃。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;数据效率&lt;/strong&gt;：比 REINFORCE 高，因为利用了二阶信息（自然梯度）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;缺点&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;计算复杂&lt;/strong&gt;：CG 和 HVP 实现复杂，且计算量大。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;约束太硬&lt;/strong&gt;：KL 散度是硬约束，处理起来不够灵活。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;💡 预告&lt;/strong&gt;：
TRPO 虽然好，但太复杂了。有没有一种方法，既能保留 TRPO 的“信任区域”思想（稳定），又能像 SGD 一样简单（一阶优化）？
这就是 &lt;strong&gt;PPO (Proximal Policy Optimization)&lt;/strong&gt; 的由来（下一章内容）。&lt;/p&gt;
&lt;/blockquote&gt;</content:encoded><h:img src="https://pic.hana0721.top/76117294_p0_master1200.2rvq8fo0ul.webp"/><enclosure url="https://pic.hana0721.top/76117294_p0_master1200.2rvq8fo0ul.webp"/></item><item><title>RL笔记（10）：Actor-Critic</title><link>https://agusexp25.top/blog/rl-note-10</link><guid isPermaLink="true">https://agusexp25.top/blog/rl-note-10</guid><description>策略梯度与价值函数的完美结合：详解 Actor-Critic 架构。从 Baseline 减小方差的数学证明，到优势函数 (Advantage) 的推导及 A2C 算法流程。</description><pubDate>Fri, 19 Dec 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;引言（Introduction）&lt;/h2&gt;
&lt;p&gt;在之前的笔记中，我们学习了两种截然不同的强化学习路径：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Value-Based (如 Q-Learning)&lt;/strong&gt;：通过学习价值函数 $Q(s,a)$ 来间接导出策略。优点是方差小（利用了 TD 的一步更新），缺点是无法处理连续动作。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Policy-Based (如 REINFORCE)&lt;/strong&gt;：直接学习策略 $\pi_\theta$。优点是可以处理连续动作，缺点是方差极大（因为使用了蒙特卡洛回报 $G_t$），且只能在回合结束后更新。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Actor-Critic (AC)&lt;/strong&gt; 架构旨在结合两者的优点：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Actor (演员)&lt;/strong&gt;：即策略网络 $\pi_\theta(a|s)$，负责由状态输出动作。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Critic (评论家)&lt;/strong&gt;：即价值网络 $V_w(s)$ 或 $Q_w(s,a)$，负责评估 Actor 的动作好不好，帮助 Actor 减小方差加速学习。&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2&gt;降低方差的技巧：基线 (Baseline)&lt;/h2&gt;
&lt;p&gt;回顾 REINFORCE 的梯度公式：&lt;/p&gt;
&lt;p&gt;$$
\nabla_\theta J(\theta) = \mathbb{E}&lt;em&gt;{\tau \sim \pi&lt;/em&gt;\theta} \left[ \sum_{t=0}^T \nabla_\theta \log \pi_\theta(a_t|s_t) G_t \right]
$$&lt;/p&gt;
&lt;p&gt;这里的 $G_t$ 是从 $t$ 时刻开始的累积回报。由于环境随机性和策略随机性，$G_t$ 的波动非常大，导致梯度估计不稳定。&lt;/p&gt;
&lt;p&gt;为了减小方差，我们引入一个 &lt;strong&gt;基线函数 (Baseline) $b(s)$&lt;/strong&gt;。基线函数只与状态有关，与动作无关。
我们把梯度修改为：&lt;/p&gt;
&lt;p&gt;$$
\nabla_\theta J(\theta) = \mathbb{E} \left[ \sum_{t=0}^T \nabla_\theta \log \pi_\theta(a_t|s_t) (G_t - b(s_t)) \right]
$$&lt;/p&gt;
&lt;h3&gt;数学证明：引入基线不改变梯度期望&lt;/h3&gt;
&lt;p&gt;我们需要证明减去一项 $b(s_t)$ 后，梯度的期望值不变。即证明：&lt;/p&gt;
&lt;p&gt;$$
\mathbb{E}&lt;em&gt;{a_t \sim \pi&lt;/em&gt;\theta} [\nabla_\theta \log \pi_\theta(a_t|s_t) \cdot b(s_t)] = 0
$$&lt;/p&gt;
&lt;p&gt;证明如下：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
\mathbb{E}&lt;em&gt;{a \sim \pi} [\nabla&lt;/em&gt;\theta \log \pi(a|s) \cdot b(s)]
&amp;#x26;= \sum_{a} \pi(a|s) \frac{\nabla_\theta \pi(a|s)}{\pi(a|s)} b(s) \notag \
&amp;#x26;= b(s) \sum_{a} \nabla_\theta \pi(a|s) \notag \
&amp;#x26;= b(s) \nabla_\theta \sum_{a} \pi(a|s) \notag \
&amp;#x26;= b(s) \nabla_\theta (1) \notag \
&amp;#x26;= 0 \notag
\end{align}
$$&lt;/p&gt;
&lt;p&gt;结论：只要 $b(s)$ 不依赖于动作 $a$，我们可以随意减去它而不改变梯度的方向，但能显著改变梯度的方差。通常，我们选择状态价值函数 $V(s)$ 作为基线。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;Actor-Critic 架构演变&lt;/h2&gt;
&lt;h3&gt;Q Actor-Critic&lt;/h3&gt;
&lt;p&gt;如果我们用一个神经网络 $Q_w(s,a)$ 来近似 REINFORCE 中的 $G_t$，梯度变为：&lt;/p&gt;
&lt;p&gt;$$
\nabla_\theta J(\theta) \approx \mathbb{E} [\nabla_\theta \log \pi_\theta(a|s) Q_w(s,a)]
$$&lt;/p&gt;
&lt;p&gt;但这并没有解决问题，因为单纯拟合 $Q$ 值还是很难。&lt;/p&gt;
&lt;h3&gt;Advantage Actor-Critic (A2C)&lt;/h3&gt;
&lt;p&gt;为了利用 Baseline 减小方差，我们希望梯度形式为：&lt;/p&gt;
&lt;p&gt;$$
\nabla_\theta J(\theta) \approx \mathbb{E} [\nabla_\theta \log \pi_\theta(a|s) (Q_w(s,a) - V_v(s))]
$$&lt;/p&gt;
&lt;p&gt;其中 $Q(s,a) - V(s)$ 被称为 &lt;strong&gt;优势函数 (Advantage Function)&lt;/strong&gt;，记为 $A(s,a)$。它表示“在状态 $s$ 下，动作 $a$ 比平均情况好了多少”。&lt;/p&gt;
&lt;p&gt;但是，如果我们需要同时维护两个网络（一个算 $Q$，一个算 $V$），训练会很麻烦。我们可以利用 &lt;strong&gt;TD Error&lt;/strong&gt; 来近似优势函数。&lt;/p&gt;
&lt;p&gt;根据贝尔曼方程：
$$ Q(s&lt;em&gt;t, a_t) \approx r_t + \gamma V(s&lt;/em&gt;{t+1}) $$
因此，优势函数可以写为：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
A(s_t, a_t) &amp;#x26;= Q(s_t, a_t) - V(s_t) \notag \
&amp;#x26;\approx r_t + \gamma V(s_{t+1}) - V(s_t) \notag
\end{align}
$$&lt;/p&gt;
&lt;p&gt;这恰好就是 &lt;strong&gt;TD Error ($\delta_t$)&lt;/strong&gt;！&lt;/p&gt;
&lt;p&gt;因此，我们只需要维护一个 &lt;strong&gt;Actor 网络 $\pi_\theta(a|s)$&lt;/strong&gt; 和一个 &lt;strong&gt;Critic 网络 $V_w(s)$&lt;/strong&gt; 即可。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;A2C 算法流程&lt;/h2&gt;
&lt;p&gt;在 Advantage Actor-Critic 中，Critic 的任务是把 $V_w(s)$ 估得越准越好，Actor 的任务是利用 Critic 提供的 TD Error 来更新策略。&lt;/p&gt;
&lt;h3&gt;Critic 的更新 (Value Update)&lt;/h3&gt;
&lt;p&gt;Critic 的目标是最小化 TD Error 的平方（即回归问题）：&lt;/p&gt;
&lt;p&gt;$$
L_{critic}(w) = \frac{1}{2} \left( r_t + \gamma V_w(s_{t+1}) - V_w(s_t) \right)^2
$$&lt;/p&gt;
&lt;p&gt;梯度更新：
$$ w \leftarrow w + \alpha_c \delta_t \nabla_w V_w(s_t) $$&lt;/p&gt;
&lt;h3&gt;Actor 的更新 (Policy Update)&lt;/h3&gt;
&lt;p&gt;Actor 使用 TD Error 作为优势函数的估计值进行梯度上升：&lt;/p&gt;
&lt;p&gt;$$
\nabla_\theta J(\theta) \approx \nabla_\theta \log \pi_\theta(a_t|s_t) \delta_t
$$&lt;/p&gt;
&lt;p&gt;梯度更新：
$$ \theta \leftarrow \theta + \alpha&lt;em&gt;a \delta_t \nabla&lt;/em&gt;\theta \log \pi_\theta(a_t|s_t) $$&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;💡 直觉理解&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;如果 $\delta_t &gt; 0$（惊喜，结果比预期好）：增加动作 $a_t$ 的概率。&lt;/li&gt;
&lt;li&gt;如果 $\delta_t &amp;#x3C; 0$（失望，结果比预期差）：减小动作 $a_t$ 的概率。&lt;/li&gt;
&lt;li&gt;这里的“预期”就是 Critic 提供的 $V(s_t)$。&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;h3&gt;A2C 伪代码&lt;/h3&gt;
&lt;p&gt;$$
\begin{aligned}
&amp;#x26; \bullet ; \text{Initialize Actor } \pi_\theta \text{ and Critic } V_w \
&amp;#x26; \bullet ; \textbf{For } \text{episode } = 1 \to E \textbf{ do}: \
&amp;#x26; \bullet \qquad \text{Initialize state } s \
&amp;#x26; \bullet \qquad \textbf{For } \text{step } t = 1 \to T \textbf{ do}: \
&amp;#x26; \bullet \qquad \qquad \text{Sample action } a \sim \pi_\theta(\cdot|s) \
&amp;#x26; \bullet \qquad \qquad \text{Execute } a, \text{ observe } r, s&apos; \
&amp;#x26; \bullet \qquad \qquad \textbf{// Calculate TD Error (Advantage)} \
&amp;#x26; \bullet \qquad \qquad \delta \leftarrow r + \gamma V_w(s&apos;) - V_w(s) \
&amp;#x26; \bullet \qquad \qquad \textbf{// Update Critic} \
&amp;#x26; \bullet \qquad \qquad w \leftarrow w + \alpha_c \delta \nabla_w V_w(s) \
&amp;#x26; \bullet \qquad \qquad \textbf{// Update Actor} \
&amp;#x26; \bullet \qquad \qquad \theta \leftarrow \theta + \alpha_a \delta \nabla_\theta \log \pi_\theta(a|s) \
&amp;#x26; \bullet \qquad \qquad s \leftarrow s&apos; \
&amp;#x26; \bullet \qquad \textbf{End For} \
&amp;#x26; \bullet ; \textbf{End For}
\end{aligned}
$$&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;偏差与方差的权衡 (Bias-Variance Tradeoff)&lt;/h2&gt;
&lt;p&gt;我们可以总结一下不同计算 Advantage 的方法，它们体现了 RL 中核心的权衡：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;蒙特卡洛 (REINFORCE)&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;$A_t \approx G_t - V(s_t)$&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;无偏差&lt;/strong&gt;：$G_t$ 是真实回报。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;高方差&lt;/strong&gt;：受整个序列随机性影响。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Actor-Critic (TD)&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;$A_t \approx r_t + \gamma V(s_{t+1}) - V(s_t)$&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;低方差&lt;/strong&gt;：只受一步随机性影响。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;有偏差&lt;/strong&gt;：依赖于 Critic 的估计 $V(s_{t+1})$，如果 Critic 还没练好，Actor 就会被带偏。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;为了平衡两者，我们可以使用 &lt;strong&gt;多步 TD&lt;/strong&gt; 或者 &lt;strong&gt;GAE (Generalized Advantage Estimation)&lt;/strong&gt;，这是 PPO 等进阶算法的核心技巧。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;总结&lt;/h2&gt;
&lt;p&gt;Actor-Critic 架构是现代深度强化学习的主流架构。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;它解决了 REINFORCE 方差大、更新慢的问题。&lt;/li&gt;
&lt;li&gt;它解决了 DQN 无法处理连续动作的问题。&lt;/li&gt;
&lt;li&gt;它是后续 &lt;strong&gt;A3C, DDPG, TRPO, PPO, SAC&lt;/strong&gt; 等高级算法的共同祖先。&lt;/li&gt;
&lt;/ul&gt;</content:encoded><h:img src="https://pic.hana0721.top/75863098_p0_master1200.8aduokw8y2.webp"/><enclosure url="https://pic.hana0721.top/75863098_p0_master1200.8aduokw8y2.webp"/></item><item><title>RL笔记（9）：REINFORCE</title><link>https://agusexp25.top/blog/rl-note-9</link><guid isPermaLink="true">https://agusexp25.top/blog/rl-note-9</guid><description>从价值到策略：详解策略梯度 (Policy Gradient) 定理的完整数学推导，并介绍最基础的策略梯度算法——REINFORCE。</description><pubDate>Thu, 18 Dec 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;引言（Introduction）&lt;/h2&gt;
&lt;p&gt;在之前的 DQN 等算法中，我们都是先学习价值函数 $Q(s,a)$，再根据价值函数推导出策略（例如 $\epsilon$-Greedy）。这类方法称为 &lt;strong&gt;Value-Based&lt;/strong&gt; 方法。&lt;/p&gt;
&lt;p&gt;但这类方法有一些局限：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;无法处理连续动作空间&lt;/strong&gt;：在连续动作中找 $\max_a Q(s,a)$ 非常困难。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;无法学习随机策略&lt;/strong&gt;：DQN 最终学到的是确定性策略，但在某些博弈场景（如剪刀石头布），随机策略才是最优的。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;因此，我们引入 &lt;strong&gt;Policy-Based&lt;/strong&gt; 方法：直接参数化策略 $\pi_\theta(a|s)$，通过调整参数 $\theta$ 来最大化期望回报。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;策略的表示&lt;/h2&gt;
&lt;p&gt;我们需要用一个函数（通常是神经网络）来表示策略。&lt;/p&gt;
&lt;h3&gt;随机策略 (Stochastic Policy)&lt;/h3&gt;
&lt;p&gt;输入状态 $s$，输出动作的概率分布。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;离散动作&lt;/strong&gt;（如 Softmax）：
$$ \pi(a|s;\theta)=\frac{\exp(Q*\theta(s,a))}{\sum*{a^\prime}\exp(Q_\theta(s,a^\prime))} $$&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;连续动作&lt;/strong&gt;（如高斯分布）：
$$ \pi(a|s;\theta) = \frac{1}{\sqrt{2\pi}\sigma} \exp\left(-\frac{(a-\mu*\theta(s))^2}{2\sigma^2}\right) $$
通常网络输出均值 $\mu*\theta(s)$ 和标准差 $\sigma_\theta(s)$。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;确定性策略 (Deterministic Policy)&lt;/h3&gt;
&lt;p&gt;输入状态 $s$，直接输出动作值。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;离散动作&lt;/strong&gt;：$$ a=\operatorname{argmax}&lt;em&gt;{a} Q&lt;/em&gt;\theta(s,a) $$ （不可微，无法直接用梯度下降）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;连续动作&lt;/strong&gt;：$$ a=\mu_\theta(s) $$ （可微，用于 DDPG 等算法）&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2&gt;策略梯度定理 (Policy Gradient Theorem)&lt;/h2&gt;
&lt;p&gt;这是 Policy-Based 方法的基石。我们的目标是最大化期望回报 $J(\theta)$，通过计算梯度 $\nabla_\theta J(\theta)$ 来更新参数。&lt;/p&gt;
&lt;h3&gt;目标函数&lt;/h3&gt;
&lt;p&gt;$$
J(\theta) = \mathbb{E}&lt;em&gt;{s_0}[V^{\pi&lt;/em&gt;\theta}(s_0)]
$$&lt;/p&gt;
&lt;p&gt;其中 $s_0$ 是初始状态。&lt;/p&gt;
&lt;h3&gt;梯度推导 (The &quot;Hard&quot; Part)&lt;/h3&gt;
&lt;p&gt;我们需要计算 $\nabla_\theta V^{\pi_\theta}(s)$。根据贝尔曼方程展开：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
\nabla_\theta V^{\pi_\theta}(s)
&amp;#x26;= \nabla_\theta \sum_{a\in \mathcal{A}} \pi_\theta (a|s) Q^{\pi_\theta}(s,a) \notag \
&amp;#x26;= \sum_{a\in\mathcal{A}}\left[\nabla_\theta \pi_\theta (a|s) Q^{\pi_\theta}(s,a) +\pi_\theta (a|s) \nabla_\theta Q^{\pi_\theta}(s,a) \right] \notag
\end{align}
$$&lt;/p&gt;
&lt;p&gt;这里的难点在于 $\nabla_\theta Q^{\pi_\theta}(s,a)$，因为 $Q$ 值本身也依赖于策略参数 $\theta$（未来的动作会变）。我们继续展开 $Q$：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
\nabla_\theta Q^{\pi_\theta}(s,a) &amp;#x26;= \nabla_\theta \sum_{r,s^\prime} P(s^\prime, r| s, a) (r + \gamma V^{\pi_\theta}(s^\prime)) \notag \
&amp;#x26;= \sum_{s^\prime} P(s^\prime| s, a) \gamma \nabla_\theta V^{\pi_\theta}(s^\prime) \notag
\end{align}
$$&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;注意：环境的动力学 $P$ 和奖励 $r$ 与 $\theta$ 无关，所以导数为 0。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;代回原式，得递归形式：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
\nabla_\theta V^{\pi_\theta}(s)
&amp;#x26;= \underbrace{\sum_{a\in\mathcal{A}}\nabla_\theta\pi_\theta(a|s) Q^{\pi_\theta}(s,a)}&lt;em&gt;{\phi(s)} + \gamma \sum&lt;/em&gt;{a\in\mathcal{A}}\pi_\theta (a|s) \sum_{s^\prime \in \mathcal{S}} P(s^\prime| s, a) \nabla_\theta V^{\pi_\theta}(s^\prime) \notag
\end{align}
$$&lt;/p&gt;
&lt;p&gt;定义转移概率 $d^{\pi_\theta}(s \to s&apos;, k)$ 为策略 $\pi_\theta$ 从 $s$ 出发走 $k$ 步到达 $s&apos;$ 的概率。反复迭代上述递归式：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
\nabla_\theta V^{\pi_\theta}(s)
&amp;#x26;= \phi(s) + \gamma \sum_{s&apos;} d(s \to s&apos;, 1) \nabla_\theta V(s&apos;) \notag \
&amp;#x26;= \phi(s) + \gamma \sum_{s&apos;} d(s \to s&apos;, 1) [\phi(s&apos;) + \gamma \sum_{s&apos;&apos;} d(s&apos; \to s&apos;&apos;, 1) \nabla_\theta V(s&apos;&apos;)] \notag \
&amp;#x26;= \dots \notag \
&amp;#x26;= \sum_{x \in \mathcal{S}} \sum_{k=0}^\infty \gamma^k d^{\pi_\theta}(s \to x, k) \phi(x) \notag
\end{align}
$$&lt;/p&gt;
&lt;h3&gt;引入状态访问分布&lt;/h3&gt;
&lt;p&gt;回到总目标函数 $J(\theta)$ 的梯度：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
\nabla_\theta J(\theta) &amp;#x26;= \mathbb{E}&lt;em&gt;{s_0} [\nabla&lt;/em&gt;\theta V^{\pi_\theta}(s_0)] \notag \
&amp;#x26;= \sum_{s \in \mathcal{S}} \left( \sum_{k=0}^\infty \gamma^k d^{\pi_\theta}(s_0 \to s, k) \right) \phi(s) \notag
\end{align}
$$&lt;/p&gt;
&lt;p&gt;利用状态访问分布 $\nu^{\pi_\theta}(s)$ 的定义：
$$ \sum*{k=0}^\infty \gamma^k d^{\pi*\theta}(s&lt;em&gt;0 \to s, k) \propto \nu^{\pi&lt;/em&gt;\theta}(s) $$&lt;/p&gt;
&lt;p&gt;我们得到了极其优雅的 &lt;strong&gt;策略梯度定理&lt;/strong&gt;：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
\nabla_\theta J(\theta)
&amp;#x26;\propto \sum_{s \in \mathcal{S}} \nu^{\pi_\theta}(s) \phi(s) \notag \
&amp;#x26;= \sum_{s \in \mathcal{S}} \nu^{\pi_\theta}(s) \sum_{a \in \mathcal{A}} \nabla_\theta \pi_\theta(a|s) Q^{\pi_\theta}(s,a) \notag
\end{align}
$$&lt;/p&gt;
&lt;h3&gt;对数导数技巧 (Log-Derivative Trick)&lt;/h3&gt;
&lt;p&gt;为了能在采样中计算，我们利用恒等式 $\nabla \pi = \pi \frac{\nabla \pi}{\pi} = \pi \nabla \log \pi$：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
\nabla_\theta J(\theta)
&amp;#x26;= \mathbb{E}&lt;em&gt;{s \sim \nu^{\pi&lt;/em&gt;\theta}} \left[ \sum_{a \in \mathcal{A}} \pi_\theta(a|s) \nabla_\theta \log \pi_\theta(a|s) Q^{\pi_\theta}(s,a) \right] \notag \
&amp;#x26;= \mathbb{E}&lt;em&gt;{\pi&lt;/em&gt;\theta} [\nabla_\theta \log \pi_\theta(a|s) Q^{\pi_\theta}(s,a)] \notag
\end{align}
$$&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;核心结论&lt;/strong&gt;：我们不需要知道环境的状态转移 $P$，也不需要对状态分布 $\nu(s)$ 求导。只要让智能体在环境里玩，收集数据，就可以计算梯度！&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2&gt;REINFORCE 算法&lt;/h2&gt;
&lt;p&gt;REINFORCE 是最基础的策略梯度算法，它使用 &lt;strong&gt;蒙特卡洛方法 (Monte-Carlo)&lt;/strong&gt; 来估计 $Q^{\pi_\theta}(s,a)$。&lt;/p&gt;
&lt;p&gt;对于一条完整的轨迹 $\tau = {s_1, a_1, r_1, \dots, s_T, a_T, r_T}$，时刻 $t$ 的真实回报 $G_t$ 是 $Q(s_t, a_t)$ 的无偏估计：
$$ Q^{\pi*\theta}(s_t, a_t) \approx G_t = \sum*{k=t}^T \gamma^{k-t} r_k $$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;参数更新公式&lt;/strong&gt;：
$$ \theta \leftarrow \theta + \alpha \gamma^t G&lt;em&gt;t \nabla&lt;/em&gt;\theta \log \pi_\theta(a_t|s_t) $$&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;直觉&lt;/strong&gt;：如果某个动作 $a_t$ 带来了高回报 $G_t$，我们就增加它的概率（$\nabla \log \pi$ 方向）；如果回报低（甚至是负的），就减少它的概率。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;算法伪代码&lt;/h3&gt;
&lt;p&gt;$$
\begin{aligned}
&amp;#x26; \bullet ; \text{Initialize policy parameters } \theta \
&amp;#x26; \bullet ; \textbf{For } \text{episode } e = 1 \to E \textbf{ do}: \
&amp;#x26; \bullet \qquad \text{Generate trajectory } \tau = {s_1, a_1, r_1, \dots, s_T, a_T, r_T} \sim \pi_\theta \
&amp;#x26; \bullet \qquad \textbf{For } t = 1 \to T \textbf{ do}: \
&amp;#x26; \bullet \qquad \qquad G_t \leftarrow \sum_{k=t}^T \gamma^{k-t} r_k \
&amp;#x26; \bullet \qquad \qquad \theta \leftarrow \theta + \alpha \gamma^t G_t \nabla_\theta \log \pi_\theta(a_t|s_t) \
&amp;#x26; \bullet \qquad \textbf{End For} \
&amp;#x26; \bullet ; \textbf{End For}
\end{aligned}
$$&lt;/p&gt;
&lt;h3&gt;优缺点分析&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;优点&lt;/strong&gt;：可以直接处理连续动作；学习到的随机策略可以探索；数学推导优美。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;缺点&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;方差极大&lt;/strong&gt;：一局游戏的结果随机性很大，导致梯度估计不稳定。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;On-Policy&lt;/strong&gt;：必须采集一条数据就更新一次，旧数据无法重复利用，效率低。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;回合更新&lt;/strong&gt;：必须等到游戏结束才能计算 $G_t$。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;💡 思考&lt;/strong&gt;：为了减小方差，我们通常会减去一个 &lt;strong&gt;基线 (Baseline)&lt;/strong&gt; $b(s)$，比如状态价值 $V(s)$。这不会改变梯度的期望，但能显著降低方差。这就是 &lt;strong&gt;Actor-Critic&lt;/strong&gt; 算法的雏形（下一章内容）。&lt;/p&gt;
&lt;/blockquote&gt;</content:encoded><h:img src="https://pic.hana0721.top/74502138_p0_master1200.7i0z6ufn7r.webp"/><enclosure url="https://pic.hana0721.top/74502138_p0_master1200.7i0z6ufn7r.webp"/></item><item><title>RL笔记（8）：DQN</title><link>https://agusexp25.top/blog/rl-note-8</link><guid isPermaLink="true">https://agusexp25.top/blog/rl-note-8</guid><description>深度强化学习的开山之作。详解 DQN 如何利用神经网络拟合 Q 值，以及两大核心创新：经验回放与目标网络。进阶涵盖 Double DQN 与 Dueling DQN。</description><pubDate>Wed, 17 Dec 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;引言（Introduction）&lt;/h2&gt;
&lt;p&gt;在之前的 Q-Learning 算法中，我们使用一个矩阵（Q-Table）来记录每个状态动作对 $(s,a)$ 的价值。
这种方法有两个致命局限：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;内存限制&lt;/strong&gt;：如果状态空间很大（例如围棋 $10^{170}$），表格根本存不下。这被称为&lt;strong&gt;维度灾难 (Curse of Dimensionality)&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;泛化能力差&lt;/strong&gt;：对于没见过的状态，表格无法给出估计，而在连续状态空间中，几乎很难遇到完全一样的状态。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;为了解决这个问题，我们引入&lt;strong&gt;函数拟合 (Function Approximation)&lt;/strong&gt;。&lt;strong&gt;深度Q网络 (Deep Q-Network, DQN)&lt;/strong&gt; 使用一个神经网络 $Q_\omega(s, a)$ 来近似 $Q^*(s, a)$，输入状态 $s$，输出所有离散动作的 Q 值。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;深度 Q 网络 (DQN)&lt;/h2&gt;
&lt;h3&gt;核心定义&lt;/h3&gt;
&lt;p&gt;在 DQN 中，我们使用参数为 $\omega$ 的神经网络来拟合动作价值函数。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：状态 $s$（例如游戏的屏幕像素）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出&lt;/strong&gt;：每个动作 $a \in \mathcal{A}$ 对应的价值 $Q(s,a)$。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;损失函数&lt;/h3&gt;
&lt;p&gt;类似于 Q-Learning，我们希望神经网络的输出逼近 TD Target。
对于一条数据 $(s_i, a_i, r_i, s_i^\prime)$，目标是最小化均方误差：&lt;/p&gt;
&lt;p&gt;$$
J(\omega)=\frac{1}{2N}\sum_{i=1}^{N}\left[ \underbrace{Q_\omega(s_i,a_i)}&lt;em&gt;{\text{预测值}} - \underbrace{\left(r_i+\gamma \max&lt;/em&gt;{a^\prime}Q_\omega(s_i^\prime,a^\prime)\right)}_{\text{TD Target}} \right]^2
$$&lt;/p&gt;
&lt;p&gt;然而，直接这样训练是不稳定的。DQN 引入了两大“法宝”来解决这个问题。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;创新一：经验回放 (Experience Replay)&lt;/h2&gt;
&lt;p&gt;在一般的监督学习中，我们假设训练数据是&lt;strong&gt;独立同分布 (i.i.d)&lt;/strong&gt; 的。但在强化学习中，智能体采集的数据是序列相关的（现在的状态依赖于上一秒的状态）。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;做法&lt;/strong&gt;：
维护一个&lt;strong&gt;回放缓冲区 (Replay Buffer)&lt;/strong&gt; $\mathcal{R}$。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;智能体与环境交互，将产生的数据 $(s_t, a_t, r_t, s_{t+1})$ 存入缓冲区。&lt;/li&gt;
&lt;li&gt;训练时，从缓冲区中&lt;strong&gt;随机采样&lt;/strong&gt;一个批次 (Batch) 的数据进行梯度下降。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;作用&lt;/strong&gt;：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;打破相关性&lt;/strong&gt;：随机采样消除了数据之间的时间相关性，满足独立同分布假设，稳定网络训练。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;提高样本效率&lt;/strong&gt;：一条经验数据可以被多次采样利用，而不是用完即弃。&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2&gt;创新二：目标网络 (Target Network)&lt;/h2&gt;
&lt;p&gt;在原版 Q-Learning 中，TD Target 的计算也依赖于当前网络参数 $\omega$：&lt;/p&gt;
&lt;p&gt;$$
y_i = r_i + \gamma \max_{a&apos;} Q_\omega(s&apos;_i, a&apos;)
$$&lt;/p&gt;
&lt;p&gt;这就好比“在射箭的同时，靶子也在动”。更新 $\omega$ 会同时改变预测值和目标值，容易导致震荡发散。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;做法&lt;/strong&gt;：
引入一个结构相同但参数独立的&lt;strong&gt;目标网络 (Target Network)&lt;/strong&gt;，参数记为 $\omega^-$。
计算目标值时使用 $\omega^-$，更新网络时优化 $\omega$。&lt;/p&gt;
&lt;p&gt;$$
y_i = r_i + \gamma \max_{a&apos;} Q_{\omega^-}(s&apos;_i, a&apos;)
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;更新规则&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;训练网络 $\omega$&lt;/strong&gt;：每个 step 都进行梯度下降更新。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;目标网络 $\omega^-$&lt;/strong&gt;：每隔 $C$ 步（例如 1000 步），将 $\omega$ 的值复制给 $\omega^-$ ($\omega^- \leftarrow \omega$)。&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;💡 直觉&lt;/strong&gt;：固定住靶子一会儿，让射手（训练网络）安心瞄准，等射手练好了，再把靶子挪到新的位置。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2&gt;DQN 算法伪代码&lt;/h2&gt;
&lt;p&gt;$$
\begin{aligned}
&amp;#x26; \bullet ; \text{Initialize main network } Q_\omega \text{ and target network } Q_{\omega^-} \text{ with weights } \omega \
&amp;#x26; \bullet ; \text{Initialize replay buffer } \mathcal{R} \
&amp;#x26; \bullet ; \textbf{For } \text{episode } e = 1 \to E \textbf{ do}: \
&amp;#x26; \bullet \qquad \text{Initialize state } s \
&amp;#x26; \bullet \qquad \textbf{For } \text{step } t = 1 \to T \textbf{ do}: \
&amp;#x26; \bullet \qquad \qquad \text{Select action } a \text{ using } \epsilon\text{-greedy based on } Q_\omega(s) \
&amp;#x26; \bullet \qquad \qquad \text{Execute } a, \text{ observe } r, s&apos; \
&amp;#x26; \bullet \qquad \qquad \text{Store transition } (s, a, r, s&apos;) \text{ in } \mathcal{R} \
&amp;#x26; \bullet \qquad \qquad \textbf{If } |\mathcal{R}| &gt; \text{batch_size}: \
&amp;#x26; \bullet \qquad \qquad \qquad \text{Sample batch } {(s_i, a_i, r_i, s&apos;&lt;em&gt;i)}&lt;/em&gt;{i=1}^N \text{ from } \mathcal{R} \
&amp;#x26; \bullet \qquad \qquad \qquad \text{Calculate targets: } y_i = r_i + \gamma \max_{a&apos;} Q_{\omega^-}(s&apos;&lt;em&gt;i, a&apos;) \
&amp;#x26; \bullet \qquad \qquad \qquad \text{Update } \omega \text{ by minimizing } \frac{1}{N}\sum (Q&lt;/em&gt;\omega(s_i, a_i) - y_i)^2 \
&amp;#x26; \bullet \qquad \qquad \qquad \textbf{Every } C \text{ steps: } \omega^- \leftarrow \omega \
&amp;#x26; \bullet \qquad \qquad s \leftarrow s&apos; \
&amp;#x26; \bullet \qquad \textbf{End For} \
&amp;#x26; \bullet ; \textbf{End For}
\end{aligned}
$$&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;进阶 1：Double DQN&lt;/h2&gt;
&lt;h3&gt;问题：过高估计 (Overestimation)&lt;/h3&gt;
&lt;p&gt;DQN 在计算目标值时使用了 $\max$ 操作：$y_i = r + \gamma \max_{a&apos;} Q(s&apos;, a&apos;)$。
由于神经网络本身存在估计误差，$\max$ 操作倾向于选择那些被&lt;strong&gt;高估&lt;/strong&gt;的值。这种&lt;strong&gt;最大化偏差 (Maximization Bias)&lt;/strong&gt; 会导致 Q 值普遍偏大，影响策略学习。&lt;/p&gt;
&lt;h3&gt;解决方案&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;解耦选择与评估&lt;/strong&gt;。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;选择动作&lt;/strong&gt;：使用当前网络 $Q_\omega$ 来决定哪个动作最好（即 argmax）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;评估价值&lt;/strong&gt;：使用目标网络 $Q_{\omega^-}$ 来计算那个动作的价值。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Double DQN 目标公式&lt;/strong&gt;：&lt;/p&gt;
&lt;p&gt;$$
y_i = r_i + \gamma Q_{\omega^-}(s&apos;&lt;em&gt;i, \underset{a&apos;}{\operatorname{argmax}} Q&lt;/em&gt;\omega(s&apos;_i, a&apos;))
$$&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;进阶 2：Dueling DQN&lt;/h2&gt;
&lt;h3&gt;核心思想&lt;/h3&gt;
&lt;p&gt;在很多状态下，&lt;strong&gt;状态本身的价值&lt;/strong&gt;比&lt;strong&gt;选择什么动作&lt;/strong&gt;更重要。
例如：在赛车游戏中，如果前面是死胡同（状态差），无论你向左转还是向右转（动作），价值都很低。
Dueling DQN 改变了网络结构，将 Q 值分解为两部分：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;状态价值函数 (Value Function)&lt;/strong&gt; $V(s)$：仅与状态有关。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;优势函数 (Advantage Function)&lt;/strong&gt; $A(s,a)$：与动作有关，表示动作 $a$ 相比平均情况好多少。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;$$
Q(s, a) = V(s) + A(s, a)
$$&lt;/p&gt;
&lt;h3&gt;可辨识性问题 (Identifiability)&lt;/h3&gt;
&lt;p&gt;如果直接用 $V+A$，网络会出现唯一性问题（$V$ 加 10，$A$ 减 10，总和 $Q$ 不变）。为了让 $V$ 和 $A$ 能被唯一确定，我们需要强行约束 $A$ 的某种性质。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;聚合公式 (Aggregation)&lt;/strong&gt;：
通常让优势函数 $A$ 对于某个状态的均值为 0，或者最大值为 0。&lt;/p&gt;
&lt;p&gt;$$
Q(s,a;\theta,\alpha,\beta)=V(s;\theta,\beta) + \left( A(s,a;\theta,\alpha) - \frac{1}{|\mathcal{A}|}\sum_{a^\prime}A(s,a^\prime;\theta,\alpha) \right)
$$&lt;/p&gt;
&lt;p&gt;或者：&lt;/p&gt;
&lt;p&gt;$$
Q(s,a;\theta,\alpha,\beta)=V(s;\theta,\beta) + \left( A(s,a;\theta,\alpha) - \max_{a^\prime}A(s,a^\prime;\theta,\alpha) \right)
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;优点&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;在动作对环境影响不大的状态下，能更快地学习状态价值 $V$。&lt;/li&gt;
&lt;li&gt;极大地提高了训练效率和稳定性。&lt;/li&gt;
&lt;/ul&gt;</content:encoded><h:img src="https://pic.hana0721.top/74378589_p0_master1200.5j4sgia4w5.webp"/><enclosure url="https://pic.hana0721.top/74378589_p0_master1200.5j4sgia4w5.webp"/></item><item><title>RL笔记（7）：Dyna-Q</title><link>https://agusexp25.top/blog/rl-note-7</link><guid isPermaLink="true">https://agusexp25.top/blog/rl-note-7</guid><description>从试错到规划：基于模型的强化学习 (Model-Based RL) 入门。详解 Dyna-Q 算法如何利用环境模型生成模拟数据，加速策略学习。</description><pubDate>Tue, 16 Dec 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;引言（Introduction）&lt;/h2&gt;
&lt;p&gt;在之前的 Q-Learning 和 SARSA 中，智能体只能通过&lt;strong&gt;真实&lt;/strong&gt;地与环境交互（摔跟头、吃金币）来学习，这被称为 &lt;strong&gt;无模型强化学习 (Model-Free RL)&lt;/strong&gt;。这种方式虽然稳健，但效率较低，因为真实交互往往昂贵且缓慢。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;基于模型的强化学习 (Model-Based RL)&lt;/strong&gt; 引入了一个新的思路：如果智能体能学会环境的运行规律（建立一个模型），它就可以在脑海中“推演”未来，从而减少对真实世界的依赖。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;💡 直觉理解&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Model-Free (Q-Learning)&lt;/strong&gt;：像是在练习投篮，必须每次真把球投出去才知道进没进。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Model-Based (Dyna-Q)&lt;/strong&gt;：像是下棋高手，不仅在实战中学习，还在脑海中复盘和推演（Planning），“如果我走这一步，对手可能会那样走...”。&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2&gt;核心概念&lt;/h2&gt;
&lt;h3&gt;什么是模型 (Model)？&lt;/h3&gt;
&lt;p&gt;在 RL 中，模型 $M$ 指的是对环境动态的模拟。给定状态 $s$ 和动作 $a$，模型能预测出下一个状态 $s&apos;$ 和奖励 $r$：&lt;/p&gt;
&lt;p&gt;$$
s&apos;, r \leftarrow M(s, a)
$$&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;预知模型&lt;/strong&gt;：如下棋，规则是完全已知的。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;学习模型&lt;/strong&gt;：如机器人走路，需要通过观测数据 $(s, a, r, s&apos;)$ 来拟合环境规律。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;两个关键指标&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;收敛效果&lt;/strong&gt;：算法收敛后能够获得的期望回报。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;样本复杂度 (Sample Complexity)&lt;/strong&gt;：达到同样的性能，需要在真实环境中交互多少次。
&lt;ul&gt;
&lt;li&gt;Model-Based 的核心优势就是&lt;strong&gt;降低样本复杂度&lt;/strong&gt;（少走弯路）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;学习与规划&lt;/h3&gt;
&lt;p&gt;Dyna-Q 架构将 RL 过程分为了两部分：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;直接强化学习 (Direct RL)&lt;/strong&gt;：利用&lt;strong&gt;真实经验&lt;/strong&gt;更新价值函数（和 Q-Learning 一样）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;规划 (Planning)&lt;/strong&gt;：利用&lt;strong&gt;模拟经验&lt;/strong&gt;（模型生成的）更新价值函数。&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2&gt;Dyna-Q 算法&lt;/h2&gt;
&lt;p&gt;Dyna-Q 是将 Q-Learning 与规划结合的最简单范例。它维护一个简单的&lt;strong&gt;查表式模型 (Table-based Model)&lt;/strong&gt;，记录在这个状态 $s$ 做动作 $a$ 曾经发生了什么。&lt;/p&gt;
&lt;h3&gt;算法流程&lt;/h3&gt;
&lt;p&gt;在每个时间步 $t$：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;行动&lt;/strong&gt;：在真实环境中执行动作，获得 $(s, a, r, s&apos;)$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;直接学习&lt;/strong&gt;：用真实数据更新 $Q(s,a)$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;模型学习&lt;/strong&gt;：把 $(s, a) \to (r, s&apos;)$ 记入模型（如果是确定性环境，直接覆盖；如果是随机环境，可能需要记录分布）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;规划 (Planning)&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;重复 $N$ 次（比如 10 次）：&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;做梦&lt;/strong&gt;：随机从记忆中挑选一个&lt;strong&gt;曾经去过的&lt;/strong&gt;状态 $s_{sim}$ 和&lt;strong&gt;曾经做过的&lt;/strong&gt;动作 $a_{sim}$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;推演&lt;/strong&gt;：询问模型得到模拟结果 $r_{sim}, s&apos;_{sim}$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;间接学习&lt;/strong&gt;：用模拟数据更新 $Q(s_{sim}, a_{sim})$。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;算法伪代码&lt;/h3&gt;
&lt;p&gt;$$
\begin{aligned}
&amp;#x26; \bullet ; \text{Initialize } Q(s,a), \text{Model } M(s,a) \
&amp;#x26; \bullet ; \textbf{For } \text{episode } e = 1 \to E \textbf{ do}: \
&amp;#x26; \bullet \qquad \text{Initialize state } s \
&amp;#x26; \bullet \qquad \textbf{For } \text{step } t = 1 \to T \textbf{ do}: \
&amp;#x26; \bullet \qquad \qquad \text{Choose action } a \text{ using } \epsilon\text{-greedy} \
&amp;#x26; \bullet \qquad \qquad \text{Execute } a, \text{ observe } r, s&apos; \
&amp;#x26; \bullet \qquad \qquad \textbf{1. Direct RL (Q-Learning update):} \
&amp;#x26; \bullet \qquad \qquad Q(s,a) \leftarrow Q(s,a) + \alpha [r + \gamma \max_{a&apos;} Q(s&apos;, a&apos;) - Q(s,a)] \
&amp;#x26; \bullet \qquad \qquad \textbf{2. Model Learning:} \
&amp;#x26; \bullet \qquad \qquad M(s, a) \leftarrow (r, s&apos;) \
&amp;#x26; \bullet \qquad \qquad \textbf{3. Planning (Loop N times):} \
&amp;#x26; \bullet \qquad \qquad \textbf{For } n = 1 \to N \textbf{ do}: \
&amp;#x26; \bullet \qquad \qquad \qquad \text{Randomly select } s_{sim} \text{ previously observed} \
&amp;#x26; \bullet \qquad \qquad \qquad \text{Randomly select } a_{sim} \text{ previously taken in } s_{sim} \
&amp;#x26; \bullet \qquad \qquad \qquad r_{sim}, s&apos;&lt;em&gt;{sim} \leftarrow M(s&lt;/em&gt;{sim}, a_{sim}) \
&amp;#x26; \bullet \qquad \qquad \qquad Q(s_{sim}, a_{sim}) \leftarrow Q(s_{sim}, a_{sim}) + \alpha [r_{sim} + \gamma \max_{a&apos;} Q(s&apos;&lt;em&gt;{sim}, a&apos;) - Q(s&lt;/em&gt;{sim}, a_{sim})] \
&amp;#x26; \bullet \qquad \qquad \textbf{End For} \
&amp;#x26; \bullet \qquad \qquad s \leftarrow s&apos; \
&amp;#x26; \bullet \qquad \textbf{End For} \
&amp;#x26; \bullet ; \textbf{End For}
\end{aligned}
$$&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;优缺点分析&lt;/h2&gt;
&lt;h3&gt;优势&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;样本效率极高&lt;/strong&gt;：在每次与环境交互后，Dyna-Q 会进行 $N$ 次规划。这意味着&lt;strong&gt;一条真实经验被复用了 $N+1$ 次&lt;/strong&gt;。对于真实交互很昂贵的场景（如机器人实验），这非常有用。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;劣势&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;模型偏差 (Model Bias)&lt;/strong&gt;：这是 Model-Based RL 的死穴。
&lt;ul&gt;
&lt;li&gt;如果模型学错了（比如现实中走这一步会掉坑里，模型却认为会飞过去），那么规划得越多，智能体就在错误的道路上越走越远。&lt;/li&gt;
&lt;li&gt;解决方案通常涉及&lt;strong&gt;不确定性估计&lt;/strong&gt;（如果对模型预测不自信，就不要信它）或&lt;strong&gt;探索奖励&lt;/strong&gt;（Dyna-Q+，鼓励去验证模型不确定的地方）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2&gt;总结&lt;/h2&gt;
&lt;p&gt;Dyna-Q 完美展示了强化学习如何结合“行万里路”（真实交互）与“读万卷书”（模型规划）。
在下一章，我们将正式告别“表格型 (Tabular)”强化学习，引入神经网络，进入 &lt;strong&gt;深度强化学习 (Deep Reinforcement Learning)&lt;/strong&gt; 的时代。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/72300463_p0_master1200.83amt5a3ia.webp"/><enclosure url="https://pic.hana0721.top/72300463_p0_master1200.83amt5a3ia.webp"/></item><item><title>RL笔记（6）：时序差分</title><link>https://agusexp25.top/blog/rl-note-6</link><guid isPermaLink="true">https://agusexp25.top/blog/rl-note-6</guid><description>结合了蒙特卡洛与动态规划的精华：详解时序差分 (TD) 学习。涵盖 SARSA、Q-Learning 及其多步扩展，深入对比 On-Policy 与 Off-Policy 的本质区别。</description><pubDate>Mon, 15 Dec 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;引言（Introduction）&lt;/h2&gt;
&lt;p&gt;在大部分强化学习的现实场景中，MDP 中的状态转移概率 $\mathcal{P}$ 和奖励函数 $\mathcal{R}$ 通常是未知的。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;因为没有模型，我们无法直接用&lt;strong&gt;动态规划 (DP)&lt;/strong&gt; 来算出最优解。&lt;/li&gt;
&lt;li&gt;智能体必须像&lt;strong&gt;蒙特卡洛 (MC)&lt;/strong&gt; 那样，通过与环境交互、采样数据来学习。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这类方法统称为 &lt;strong&gt;无模型强化学习 (Model-Free RL)&lt;/strong&gt;。本章将介绍其中最重要的一类方法：&lt;strong&gt;时序差分 (Temporal Difference, TD)&lt;/strong&gt;。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;时序差分方法 (Temporal Difference)&lt;/h2&gt;
&lt;h3&gt;核心思想&lt;/h3&gt;
&lt;p&gt;时序差分 (TD) 结合了蒙特卡洛 (MC) 和动态规划 (DP) 的思想：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;像 MC&lt;/strong&gt;：直接从经验（采样数据）中学习，不需要环境模型。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;像 DP&lt;/strong&gt;：利用&lt;strong&gt;自举 (Bootstrapping)&lt;/strong&gt; 的思想，用后继状态的估计值来更新当前状态的估计值，而不需要等到回合结束。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;价值函数的更新&lt;/h3&gt;
&lt;p&gt;回顾蒙特卡洛 (MC) 的增量更新公式：&lt;/p&gt;
&lt;p&gt;$$
V(s_t) \leftarrow V(s_t) + \alpha [G_t - V(s_t)]
$$&lt;/p&gt;
&lt;p&gt;其中 $G_t$ 是从 $t$ 时刻开始直到回合结束的真实回报。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;TD 的改进&lt;/strong&gt;：
TD 不想等到回合结束。它利用贝尔曼方程的性质，用 $r_t + \gamma V(s_{t+1})$ 来&lt;strong&gt;替代&lt;/strong&gt; $G_t$：&lt;/p&gt;
&lt;p&gt;$$
V(s_t) \leftarrow V(s_t) + \alpha [\underbrace{r_t + \gamma V(s_{t+1})}_{\text{TD Target}} - V(s_t)]
$$&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;TD Target&lt;/strong&gt;: $r_t + \gamma V(s_{t+1})$，这是我们对真实回报 $G_t$ 的一个有偏但方差更小的估计。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;TD Error&lt;/strong&gt;: $\delta_t = r_t + \gamma V(s_{t+1}) - V(s_t)$，表示“当下的惊喜”——实际发生的情况比预期的好了多少。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;为什么可以替代？&lt;/h3&gt;
&lt;p&gt;根据 $V^\pi$ 的定义推导：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
V^\pi(s) &amp;#x26;= \mathbb{E}&lt;em&gt;\pi[G_t | S_t=s] \notag \
&amp;#x26;= \mathbb{E}&lt;/em&gt;\pi [R_t + \gamma G_{t+1} | S_t=s] \notag \
&amp;#x26;= \mathbb{E}&lt;em&gt;\pi [R_t + \gamma V^\pi(S&lt;/em&gt;{t+1}) | S_t=s] \notag
\end{align}
$$&lt;/p&gt;
&lt;p&gt;可见，$R_t + \gamma V(S_{t+1})$ 是 $V(s)$ 的无偏估计（假设 $V(S_{t+1})$ 准确）。随着迭代进行，最终 $V$ 会收敛到 $V^\pi$。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;SARSA 算法&lt;/h2&gt;
&lt;p&gt;SARSA 是 &lt;strong&gt;S&lt;/strong&gt;tate-&lt;strong&gt;A&lt;/strong&gt;ction-&lt;strong&gt;R&lt;/strong&gt;eward-&lt;strong&gt;S&lt;/strong&gt;tate-&lt;strong&gt;A&lt;/strong&gt;ction 的缩写，因为它利用五元组 $(s_t, a_t, r_t, s_{t+1}, a_{t+1})$ 进行更新。&lt;/p&gt;
&lt;h3&gt;从 V 到 Q&lt;/h3&gt;
&lt;p&gt;在 Model-Free 场景下，我们通常直接估计 &lt;strong&gt;动作价值函数 $Q(s,a)$&lt;/strong&gt;，而不是 $V(s)$，以便直接选取动作。
更新公式：&lt;/p&gt;
&lt;p&gt;$$
Q(s_t,a_t) \leftarrow Q(s_t,a_t) + \alpha [r_t + \gamma Q(s_{t+1},a_{t+1}) - Q(s_t,a_t)]
$$&lt;/p&gt;
&lt;h3&gt;探索与利用&lt;/h3&gt;
&lt;p&gt;SARSA 需要解决两个问题：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;估计不准&lt;/strong&gt;：在训练初期，Q 值是不准确的。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;采样覆盖&lt;/strong&gt;：如果一直贪婪地选动作，可能永远无法发现更好的策略。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;因此，SARSA 使用 &lt;strong&gt;$\epsilon$-贪婪策略 ($\epsilon$-Greedy)&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;以 $1-\epsilon$ 的概率选择 $\arg\max_a Q(s,a)$。&lt;/li&gt;
&lt;li&gt;以 $\epsilon$ 的概率随机选择动作。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;算法伪代码&lt;/h3&gt;
&lt;p&gt;$$
\begin{aligned}
&amp;#x26; \bullet ; \text{Initialize } Q(s,a) \
&amp;#x26; \bullet ; \textbf{For } \text{episode } = 1 \to E \textbf{ do}: \
&amp;#x26; \bullet \qquad \text{Initialize state } s \
&amp;#x26; \bullet \qquad \text{Choose action } a \text{ from } s \text{ using } \epsilon\text{-greedy} \
&amp;#x26; \bullet \qquad \textbf{For } \text{step } = 1 \to T \textbf{ do}: \
&amp;#x26; \bullet \qquad \qquad \text{Take action } a, \text{ observe } r, s&apos; \
&amp;#x26; \bullet \qquad \qquad \text{Choose action } a&apos; \text{ from } s&apos; \text{ using } \epsilon\text{-greedy} \
&amp;#x26; \bullet \qquad \qquad Q(s,a) \leftarrow Q(s,a) + \alpha [r + \gamma Q(s&apos;,a&apos;) - Q(s,a)] \
&amp;#x26; \bullet \qquad \qquad s \leftarrow s&apos;, a \leftarrow a&apos; \
&amp;#x26; \bullet \qquad \textbf{End For} \
&amp;#x26; \bullet ; \textbf{End For}
\end{aligned}
$$&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;多步 SARSA ($n$-step SARSA)&lt;/h2&gt;
&lt;p&gt;MC 是无偏但方差大（要等很久），TD(0) 是偏差大但方差小（看一步）。我们可以折中一下，看 $n$ 步。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;单步 TD (SARSA)&lt;/strong&gt;:
$$G_t^{(1)} = r_t + \gamma Q(s_{t+1}, a_{t+1})$$&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;$n$ 步 TD&lt;/strong&gt;:
$$G_t^{(n)} = r_t + \gamma r_{t+1} + \dots + \gamma^n Q(s_{t+n}, a_{t+n})$$&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;$n$ 步 SARSA 更新规则&lt;/strong&gt;：&lt;/p&gt;
&lt;p&gt;$$
Q(s_t,a_t) \leftarrow Q(s_t,a_t) + \alpha [G_t^{(n)} - Q(s_t,a_t)]
$$&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;Q-Learning 算法&lt;/h2&gt;
&lt;p&gt;Q-Learning 是强化学习中最著名的算法之一，它与 SARSA 非常像，但有一个关键区别。&lt;/p&gt;
&lt;h3&gt;更新规则&lt;/h3&gt;
&lt;p&gt;$$
Q(s_t,a_t) \leftarrow Q(s_t,a_t) + \alpha [r_t + \gamma \max_{a&apos;} Q(s_{t+1}, a&apos;) - Q(s_t,a_t)]
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;关键区别&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;SARSA&lt;/strong&gt;：使用 $Q(s_{t+1}, a_{t+1})$。这里的 $a_{t+1}$ 是智能体&lt;strong&gt;实际采取&lt;/strong&gt;的动作（可能包含了 $\epsilon$ 的随机探索）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Q-Learning&lt;/strong&gt;：使用 $\max_{a&apos;} Q(s_{t+1}, a&apos;)$。不管智能体下一步实际做了什么，我们在更新时都假设它会做&lt;strong&gt;最好的&lt;/strong&gt;那个动作。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;算法伪代码&lt;/h3&gt;
&lt;p&gt;$$
\begin{aligned}
&amp;#x26; \bullet ; \text{Initialize } Q(s,a) \
&amp;#x26; \bullet ; \textbf{For } \text{episode } e = 1 \to E \textbf{ do}: \
&amp;#x26; \bullet \qquad \text{Initialize state } s \
&amp;#x26; \bullet \qquad \textbf{For } \text{step } t = 1 \to T \textbf{ do}: \
&amp;#x26; \bullet \qquad \qquad \text{Choose action } a \text{ from } s \text{ using } \epsilon\text{-greedy} \
&amp;#x26; \bullet \qquad \qquad \text{Take action } a, \text{ observe } r, s&apos; \
&amp;#x26; \bullet \qquad \qquad Q(s,a) \leftarrow Q(s,a) + \alpha [r + \gamma \max_{a&apos;} Q(s&apos;, a&apos;) - Q(s,a)] \
&amp;#x26; \bullet \qquad \qquad s \leftarrow s&apos; \
&amp;#x26; \bullet \qquad \textbf{End For} \
&amp;#x26; \bullet ; \textbf{End For}
\end{aligned}
$$&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;核心对比：在线策略 vs. 离线策略&lt;/h2&gt;
&lt;p&gt;这是强化学习中最重要的分类之一。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;行为策略 (Behavior Policy)&lt;/strong&gt;：智能体与环境交互、产生数据时使用的策略（通常包含随机性，如 $\epsilon$-greedy）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;目标策略 (Target Policy)&lt;/strong&gt;：我们想要学习和优化的策略（通常是贪婪策略，即最优策略）。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;| 特性         | 在线策略 (On-Policy)                                                                             | 离线策略 (Off-Policy)                                                |
| :----------- | :----------------------------------------------------------------------------------------------- | :------------------------------------------------------------------- |
| &lt;strong&gt;定义&lt;/strong&gt;     | 行为策略 &lt;strong&gt;==&lt;/strong&gt; 目标策略                                                                         | 行为策略 &lt;strong&gt;!=&lt;/strong&gt; 目标策略                                             |
| &lt;strong&gt;代表算法&lt;/strong&gt; | &lt;strong&gt;SARSA&lt;/strong&gt;                                                                                        | &lt;strong&gt;Q-Learning&lt;/strong&gt;                                                       |
| &lt;strong&gt;更新依据&lt;/strong&gt; | 使用&lt;strong&gt;实际执行&lt;/strong&gt;的下一个动作 $a_{t+1}$ 的价值                                                    | 使用&lt;strong&gt;理论上最优&lt;/strong&gt;的动作 $\max Q$ 的价值                             |
| &lt;strong&gt;优缺点&lt;/strong&gt;   | 比较胆小。因为它知道自己下一步可能会乱走（随机探索），所以它会避开悬崖边缘（哪怕悬崖边有宝藏）。 | 比较大胆。它假设自己下一步一定会走最优路径，所以会勇敢地贴着悬崖走。 |
| &lt;strong&gt;数据效率&lt;/strong&gt; | 数据必须现采现用，不能使用旧策略产生的数据（Replay Buffer）。                                    | 可以使用过去的数据，或者别人玩的数据（适合结合 Experience Replay）。 |&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;💡 直觉理解&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;SARSA&lt;/strong&gt; 像是一个&lt;strong&gt;谨慎的学生&lt;/strong&gt;：他在学习时会考虑到自己考试时可能会因为紧张（$\epsilon$ 随机性）而犯错，所以他平时练习时就尽量选容错率高的解法。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Q-Learning&lt;/strong&gt; 像是一个&lt;strong&gt;理想主义者&lt;/strong&gt;：他在学习时假设自己考试时绝对不会犯错（全选最优解 $\max Q$），所以他会学习那条理论上分数最高、但可能风险很大的路径。&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;</content:encoded><h:img src="https://pic.hana0721.top/72072963_p0_master1200.mo0d1wsi.webp"/><enclosure url="https://pic.hana0721.top/72072963_p0_master1200.mo0d1wsi.webp"/></item><item><title>RL笔记（5）：蒙特卡洛</title><link>https://agusexp25.top/blog/rl-note-5</link><guid isPermaLink="true">https://agusexp25.top/blog/rl-note-5</guid><description>从模型到经验：如何不依赖状态转移矩阵，仅通过‘玩游戏’来估计价值？详解蒙特卡洛预测与控制、增量更新及 GLIE 性质。</description><pubDate>Sun, 14 Dec 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;引言（Introduction）&lt;/h2&gt;
&lt;p&gt;在上一章 &lt;strong&gt;动态规划&lt;/strong&gt; 中，我们假设环境是已知的（即我们知道状态转移概率 $\mathcal{P}$ 和奖励函数 $\mathcal{R}$）。但在现实中，比如围棋或机器人在火星行走，我们往往无法预知“做了动作后具体会发生什么”。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;蒙特卡洛方法 (Monte-Carlo methods, MC)&lt;/strong&gt; 标志着我们进入了 &lt;strong&gt;无模型 (Model-Free)&lt;/strong&gt; 强化学习的领域。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;核心思想&lt;/strong&gt;：不需要知道环境的动力学方程，只需要让智能体在环境中&lt;strong&gt;采样（玩游戏）&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;大数定律&lt;/strong&gt;：只要玩的次数够多，观测到的平均回报就会趋近于真实的期望回报。&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;注意&lt;/strong&gt;：MC 方法仅适用于&lt;strong&gt;情节任务 (Episodic Tasks)&lt;/strong&gt;，即任务必须有终止状态（如一盘棋下完、游戏通关或挂掉）。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2&gt;蒙特卡洛预测 (Monte-Carlo Prediction)&lt;/h2&gt;
&lt;p&gt;我们的第一个目标是：给定一个策略 $\pi$，估算它的状态价值函数 $V^\pi(s)$。&lt;/p&gt;
&lt;p&gt;回顾 $V$ 的定义：&lt;/p&gt;
&lt;p&gt;$$
V^\pi(s)=\mathbb{E}_\pi[G_t|S_t=s]
$$&lt;/p&gt;
&lt;p&gt;在没有模型的情况下，我们无法通过贝尔曼方程的 $\sum P(s&apos;|s)\dots$ 来计算期望。
MC 的做法是：直接用&lt;strong&gt;经验平均值&lt;/strong&gt;来代替期望。&lt;/p&gt;
&lt;h3&gt;算法流程&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;使用策略 $\pi$ 采样 $N$ 条完整的轨迹（Episode）：
$$s_0 \xrightarrow{a_0} r_0, s_1 \xrightarrow{a_1} r_1, \dots, s_{T-1} \xrightarrow{a_{T-1}} r_{T-1}, s_T$$&lt;/li&gt;
&lt;li&gt;计算每条轨迹中，状态 $s$ 出现后的累积回报 $G_t$。&lt;/li&gt;
&lt;li&gt;取平均值：
$$V(s) \approx \frac{1}{N(s)} \sum_{i=1}^{N(s)} G_t^{(i)}$$&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;首次访问 vs. 每次访问&lt;/h3&gt;
&lt;p&gt;在一条轨迹中，状态 $s$ 可能会出现多次。如何计算回报？&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;首次访问 (First-visit MC)&lt;/strong&gt;：只计算状态 $s$ &lt;strong&gt;第一次&lt;/strong&gt;出现时的回报 $G_t$。这是无偏估计。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;每次访问 (Every-visit MC)&lt;/strong&gt;：状态 $s$ 每次出现，都计算一次回报 $G_t$ 并纳入平均。这也是无偏估计（但收敛性证明略有不同）。&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2&gt;增量式更新 (Incremental Update)&lt;/h2&gt;
&lt;p&gt;在实际计算中，我们不需要要把几百万条轨迹的数据都存下来最后求平均，而是可以使用&lt;strong&gt;增量更新&lt;/strong&gt;的方法（类似于第二章多臂老虎机中的更新）。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;推导&lt;/strong&gt;：
假设 $V_{k-1}$ 是前 $k-1$ 次的平均值，$G_k$ 是第 $k$ 次观测到的回报：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
V_k &amp;#x26;= \frac{1}{k} \sum_{i=1}^k G_i \notag \
&amp;#x26;= \frac{1}{k} (G_k + \sum_{i=1}^{k-1} G_i) \notag \
&amp;#x26;= \frac{1}{k} (G_k + (k-1)V_{k-1}) \notag \
&amp;#x26;= V_{k-1} + \frac{1}{k} (G_k - V_{k-1}) \notag
\end{align}
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;算法描述&lt;/strong&gt;：
对于每条采样出的轨迹，对其中的每个状态 $S_t$ 和回报 $G_t$：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;计数器加一：$N(S_t) \leftarrow N(S_t) + 1$&lt;/li&gt;
&lt;li&gt;更新价值：
$$
V(S_t) \leftarrow V(S_t) + \frac{1}{N(S_t)} \underbrace{(G_t - V(S_t))}_{\text{误差 Error}}
$$
或者是使用固定的步长 $\alpha$（适用于非平稳问题）：
$$
V(S_t) \leftarrow V(S_t) + \alpha (G_t - V(S_t))
$$&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2&gt;蒙特卡洛控制 (Monte-Carlo Control)&lt;/h2&gt;
&lt;p&gt;知道怎么评估价值还不够，我们的最终目标是找到&lt;strong&gt;最优策略&lt;/strong&gt; $\pi^*$。
这就是 &lt;strong&gt;广义策略迭代 (Generalized Policy Iteration, GPI)&lt;/strong&gt; 的思想：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;评估&lt;/strong&gt;：用 MC 方法估算当前策略的 $Q(s,a)$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;提升&lt;/strong&gt;：根据估算的 $Q(s,a)$ 改进策略（通常是贪婪策略）。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;为什么要用 $Q$ 而不是 $V$？&lt;/h3&gt;
&lt;p&gt;在 Model-Free 场景下，如果我们只知道 $V(s)$，却不知道状态转移 $P(s&apos;|s,a)$，我们是无法推断出哪个动作 $a$ 导致了更好的 $s&apos;$。
因此，必须显式地估算 &lt;strong&gt;动作价值函数 $Q(s,a)$&lt;/strong&gt;。&lt;/p&gt;
&lt;h3&gt;探索的必要性&lt;/h3&gt;
&lt;p&gt;如果我们在提升策略时使用完全贪婪策略（greedy）：$\pi(s) = \arg\max_a Q(s,a)$，智能体可能会因为过早收敛而错过最优解（没见过的动作永远不会去尝试）。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;解决方案：$\epsilon$-Greedy 策略&lt;/strong&gt;
保持持续的探索（Exploration）：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;以 $1-\epsilon$ 的概率选择当前 $Q$ 值最大的动作。&lt;/li&gt;
&lt;li&gt;以 $\epsilon$ 的概率随机选择动作。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;GLIE (Greedy in the Limit with Infinite Exploration)&lt;/strong&gt;：
如果我们让 $\epsilon$ 随着时间推移逐渐趋近于 0（例如 $\epsilon_k = 1/k$），那么 MC 控制算法最终会收敛到最优策略。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;总结与对比&lt;/h2&gt;
&lt;p&gt;蒙特卡洛方法是强化学习中第一种不需要了解环境模型的算法。&lt;/p&gt;
&lt;p&gt;| 维度          | 动态规划 (DP)                                        | 蒙特卡洛 (MC)                                          |
| :------------ | :--------------------------------------------------- | :----------------------------------------------------- |
| &lt;strong&gt;环境模型&lt;/strong&gt;  | 需要已知 $P, R$ (Model-Based)                        | 未知，仅需经验 (Model-Free)                            |
| &lt;strong&gt;更新方式&lt;/strong&gt;  | **自举 (Bootstrapping)**用后继状态的估计值更新当前值 | &lt;strong&gt;全采样&lt;/strong&gt;必须等到 Episode 结束拿到真实 $G_t$ 才能更新 |
| &lt;strong&gt;适用范围&lt;/strong&gt;  | 状态空间较小，已知规则                               | 情节性任务 (Episodic)，未知规则                        |
| &lt;strong&gt;偏差/方差&lt;/strong&gt; | 有偏差 (Bias)，低方差                                | 无偏差 (Unbiased)，高方差                              |&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;💡 思考&lt;/strong&gt;：
MC 必须等到游戏结束才能更新，这在像自动驾驶这样没有明确“终点”或者流程极长的任务中非常低效。有没有一种方法，既不需要模型（像 MC），又不需要等到结束就能更新（像 DP）呢？
这就是下一章 &lt;strong&gt;时序差分 (Temporal Difference, TD)&lt;/strong&gt; 要解决的问题。&lt;/p&gt;
&lt;/blockquote&gt;</content:encoded><h:img src="https://pic.hana0721.top/71849616_p0.1sfmv9l9of.webp"/><enclosure url="https://pic.hana0721.top/71849616_p0.1sfmv9l9of.webp"/></item><item><title>RL笔记（4）：动态规划</title><link>https://agusexp25.top/blog/rl-note-4</link><guid isPermaLink="true">https://agusexp25.top/blog/rl-note-4</guid><description>详解强化学习中的动态规划（DP）方法，涵盖策略迭代与价值迭代的算法原理、贝尔曼算子的收敛性证明（Banach不动点定理）及DP方法的局限性分析。</description><pubDate>Sat, 13 Dec 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;引言（Introduction）&lt;/h2&gt;
&lt;p&gt;动态规划（DP）在强化学习中指的是在环境模型已知（即状态转移概率 $\mathcal{P}$ 和奖励函数 $\mathcal{R}$ 已知）的情况下，计算最优策略的一类算法。
DP 的核心思想是将复杂问题分解为子问题，通过求解子问题来求解原问题。在 MDP 中，这体现为利用贝尔曼方程进行迭代更新。&lt;/p&gt;
&lt;h2&gt;策略迭代 (Policy Iteration)&lt;/h2&gt;
&lt;p&gt;核心思想： “先以此为据，算个清楚；再择优而行。”
策略迭代将求解过程严格拆分为两个交替的步骤，直到策略不再改变。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;步骤一：策略评估 (Policy Evaluation)：在当前策略 $\pi$ 固定不变的情况下，计算出该策略下精确的状态价值函数 $V^\pi$。这意味着在这个步骤里，我们通常需要多次迭代（或者解线性方程组）直到 $V^\pi$ 完全收敛。&lt;/li&gt;
&lt;li&gt;步骤二：策略提升 (Policy Improvement)：基于刚刚算出来的精确 $V^\pi$，贪心地更新策略。即对于每个状态，选择那个能带来最大期望回报的动作 $\pi^\prime(s)=\arg\max_{a} Q^\pi(s,a)$。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;特点： 收敛所需的迭代步数少，但每一步内部的计算量大（因为策略评估需要很久）。&lt;/p&gt;
&lt;h3&gt;策略评估（Policy Evaluation）&lt;/h3&gt;
&lt;p&gt;策略评估的目标是求解给定策略 $\pi$ 的状态价值函数 $V^\pi$。
对于策略 $\pi$，状态价值函数满足贝尔曼期望方程：&lt;/p&gt;
&lt;p&gt;$$
V^\pi(s)=\sum_{a\in \mathcal{A}}\pi(a|s)(\mathcal{R}(s,a)+\gamma\sum_{s^\prime\in \mathcal{S}}\mathcal{P}(s^\prime|s,a)V^\pi(s^\prime))
$$&lt;/p&gt;
&lt;p&gt;这构成了一个线性方程组，但在状态空间较大时直接求解困难，因此采用迭代法。&lt;/p&gt;
&lt;h4&gt;贝尔曼迭代（Bellman Iteration）&lt;/h4&gt;
&lt;p&gt;将当前时刻估计的价值函数 $V_k$ 代入贝尔曼方程右侧，计算下一轮的估计 $V_{k+1}$ ：&lt;/p&gt;
&lt;p&gt;$$
V_{k+1}(s)\leftarrow\sum_{a\in\mathcal{A}}\pi(a|s)(\mathcal{R}(s,a)+\gamma\sum_{s^\prime\in\mathcal{S}}\mathcal{P}(s^\prime|s,a)V_{k}(s^\prime))
$$&lt;/p&gt;
&lt;p&gt;随机选定初始值 $V_0$ ，当 $k\rightarrow\infin$ 时，序列 ${ V_k }$ 会收敛到 $V^\pi$ 。
为了方便证明收敛性，定义贝尔曼算子为 $\mathcal{T}^\pi$：&lt;/p&gt;
&lt;p&gt;$$
\mathcal{T}^\pi V_k = \sum_{a\in\mathcal{A}}\pi(a|s)(\mathcal{R}(s,a)+\gamma\sum_{s^\prime\in\mathcal{S}}\mathcal{P}(s^\prime|s,a)V_{k}(s^\prime))
$$&lt;/p&gt;
&lt;h4&gt;收敛性证明（Banach不动点定理）&lt;/h4&gt;
&lt;p&gt;为了证明序列 ${ V_k }$ 收敛于 $V^\pi$，我们将迭代过程看作算子 $\mathcal{T}^\pi$ 的应用：&lt;/p&gt;
&lt;p&gt;$$
V_{k+1}=\mathcal{T}^\pi V_k
$$&lt;/p&gt;
&lt;p&gt;证明步骤如下：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;定义范数：采用无穷范数 $\parallel V \parallel_\infty=\max_{s\in \mathcal{S}} | V(s)|$；&lt;/li&gt;
&lt;li&gt;压缩映射性质：对于任意两个价值函数 $U, V$，有：
$$
\begin{align}
\parallel \mathcal{T}^\pi U - \mathcal{T}^\pi V \parallel_\infty
&amp;#x26;= \max_{s} | \gamma \sum_{a}\pi(a|s)\sum_{s^\prime}\mathcal{P}(s^\prime|s,a)(U(s^\prime)-V(s^\prime)) | \notag \
&amp;#x26;\leqslant \gamma \max_{s} \sum_{a}\pi(a|s)\sum_{s^\prime}\mathcal{P}(s^\prime|s,a) |U(s^\prime)-V(s^\prime)| \notag \
&amp;#x26;\leqslant \gamma \max_{s} \sum_{a}\pi(a|s)\sum_{s^\prime}\mathcal{P}(s^\prime|s,a) \parallel U - V \parallel_\infty \notag \
&amp;#x26;= \gamma \parallel U - V \parallel_\infty \notag
\end{align}
$$&lt;/li&gt;
&lt;li&gt;结论：只要折扣因子 satisfying $0 \le \gamma &amp;#x3C; 1$，算子 $\mathcal{T}^\pi$ 就是一个$\gamma$-压缩映射（Contraction Mapping）。根据 Banach 不动点定理，序列 ${V_k}$ 必收敛于唯一的固定点 $V^\pi$。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;策略提升（Policy Improvement）&lt;/h3&gt;
&lt;p&gt;在计算出 $V^\pi$ 后，我们需要判断当前策略是否最优。如果不是，如何改进？&lt;/p&gt;
&lt;h4&gt;策略提升理论（Policy Improvement Theorem）&lt;/h4&gt;
&lt;p&gt;给定策略 $\pi$ 和其价值函数 $V^\pi$，构造新策略 $\pi^\prime$ 使得其在每个状态下都贪心地选择动作价值最大的动作：&lt;/p&gt;
&lt;p&gt;$$
\pi^\prime(s) = \argmax_{a\in\mathcal{A}} Q^\pi(s,a) = \argmax_{a\in\mathcal{A}} \left( r(s,a)+\gamma\sum_{s^\prime \in\mathcal{S}}\mathcal{P}(s^\prime|s,a)V^\pi(s^\prime) \right)
$$&lt;/p&gt;
&lt;p&gt;定理保证：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;$V^{\pi^\prime}(s) \geqslant V^\pi(s), \forall s \in \mathcal{S}$（策略单调递增）。&lt;/li&gt;
&lt;li&gt;如果 $V^{\pi^\prime}(s) = V^\pi(s)$，则 $\pi$ 已经是与最优策略 $V^*$ 等价的策略。&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;理论证明（Theorem Proof）&lt;/h4&gt;
&lt;p&gt;证明：对于任何状态 $s$，满足$V^{\pi^\prime}(s)\geqslant V^\pi(s)$。
证明思路：利用 $V^\pi(s) \leqslant \max_a Q^\pi(s,a) = Q^\pi(s, \pi^\prime(s))$，反复展开 $Q^\pi$ 即可证。&lt;/p&gt;
&lt;p&gt;状态价值函数和动作价值函数之间的关系：&lt;/p&gt;
&lt;p&gt;$$
V^\pi(s)=\sum_{a\in\mathcal{A}}\pi(a|s)Q^\pi(s,a)
$$&lt;/p&gt;
&lt;p&gt;经过推导，可以得出：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
V^\pi(s)&amp;#x26;=\sum_{a\in\mathcal{A}}\pi(a|s)Q^\pi(s,a) \notag \
&amp;#x26;\leqslant \max_{a\in\mathcal{A}} Q^\pi(s,a) \notag \
&amp;#x26;=\max_{a\in\mathcal{A}} \left( r(s,a) + \gamma \sum_{s^\prime\in\mathcal{S}} \mathcal{P}(s^\prime|s,a) V^\pi(s^\prime)\right) \notag \
&amp;#x26;= Q^\pi(s,\pi^\prime(s)) \notag \
\end{align}
$$&lt;/p&gt;
&lt;p&gt;有了 $V^\pi(s)\leqslant Q^\pi(s,\pi^\prime(s))$，可以进一步推导出：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
V^\pi(s) &amp;#x26;\leqslant Q^\pi(s,\pi^\prime(s)) \notag \
&amp;#x26;= \mathbb{E}&lt;em&gt;{\pi^\prime}[R&lt;/em&gt;{t}+\gamma V^\pi(S_{t+1})|S_t=s] \notag \
&amp;#x26;\leqslant \mathbb{E}&lt;em&gt;{\pi^\prime}[R_t+\gamma Q^\pi(S&lt;/em&gt;{t+1},\pi^\prime(S_{t+1}))|S_t=s]\notag \
&amp;#x26;= \mathbb{E}&lt;em&gt;{\pi^\prime}[R_t+\gamma R&lt;/em&gt;{t+1}+\gamma^2V^\pi(S_{t+2})|S_t=s] \notag \
&amp;#x26;\leqslant \mathbb{E}&lt;em&gt;{\pi^\prime}[R_t+\gamma R&lt;/em&gt;{t+1}+\gamma^2 R_{t+2} + \gamma^3 V^\pi(S_{t+3})|S_t=s]  \notag \
&amp;#x26;\cdots \notag \
&amp;#x26;\leqslant \mathbb{E}&lt;em&gt;{\pi^\prime}[R_t+\gamma R&lt;/em&gt;{t+1}+\gamma^2 R_{t+2} + \gamma^3 R_{t+3} + \cdots|S_t=s]  \notag \
&amp;#x26;= V^{\pi^\prime}(s) \notag
\end{align}
$$&lt;/p&gt;
&lt;h3&gt;迭代算法（Iteration Algorithm）&lt;/h3&gt;
&lt;p&gt;策略迭代交替进行“策略评估”和“策略提升”，直到策略不再变化。&lt;/p&gt;
&lt;p&gt;流程：&lt;/p&gt;
&lt;p&gt;$$
\pi_0 \xrightarrow{E} V^{\pi_0} \xrightarrow{I} \pi_1 \xrightarrow{E} V^{\pi_1} \xrightarrow{I} \dots \xrightarrow{I} \pi_* \xrightarrow{E} V^*
$$&lt;/p&gt;
&lt;p&gt;算法伪代码：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;初始化：$V(s) \in \mathbb{R}$，$\pi(s) \in \mathcal{A}$ 任意。&lt;/li&gt;
&lt;li&gt;策略评估（循环直到收敛）：
&lt;ul&gt;
&lt;li&gt;$\Delta \leftarrow 0$&lt;/li&gt;
&lt;li&gt;For each $s \in \mathcal{S}$:
&lt;ul&gt;
&lt;li&gt;$v \leftarrow V(s)$&lt;/li&gt;
&lt;li&gt;$V(s) \leftarrow \sum_{s^\prime} \mathcal{P}(s^\prime|s,\pi(s))[\mathcal{R}(s,\pi(s)) + \gamma V(s^\prime)]$&lt;/li&gt;
&lt;li&gt;$\Delta \leftarrow \max(\Delta, |v - V(s)|)$&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;若 $\Delta &amp;#x3C; \theta$，停止评估。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;策略提升：
&lt;ul&gt;
&lt;li&gt;$policy_stable \leftarrow true$&lt;/li&gt;
&lt;li&gt;For each $s \in \mathcal{S}$:
&lt;ul&gt;
&lt;li&gt;$old_action \leftarrow \pi(s)$&lt;/li&gt;
&lt;li&gt;$\pi(s) \leftarrow \argmax_a \sum_{s^\prime} \mathcal{P}(s^\prime|s,a)[\mathcal{R}(s,a) + \gamma V(s^\prime)]$&lt;/li&gt;
&lt;li&gt;If $old_action \neq \pi(s)$, then $policy_stable \leftarrow false$&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;If $policy_stable$ is true，停止并返回 $V^&lt;em&gt;, \pi^&lt;/em&gt;$；否则跳转至步骤 2。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;p&gt;注意：由于有限状态 MDP 的策略总数是有限的（$|\mathcal{A}|^{|\mathcal{S}|}$），且每次提升策略都严格（或非严格）变好，策略迭代保证在有限步内收敛。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;价值迭代（Value Iteration）&lt;/h2&gt;
&lt;p&gt;策略迭代的缺点是每次“策略评估”都需要迭代很多次直到完全收敛。
事实上，我们不需要等到 $V^\pi$ 完全收敛才进行策略提升。
如果将策略评估的迭代次数缩减为 1次，并结合策略提升，就得到了价值迭代。&lt;/p&gt;
&lt;h3&gt;贝尔曼最优迭代（Bellman Optimal Iteration）&lt;/h3&gt;
&lt;p&gt;价值迭代直接迭代求解最优价值函数，基于贝尔曼最优方程进行迭代：&lt;/p&gt;
&lt;p&gt;$$
V_{k+1}(s) \leftarrow \max_{a\in\mathcal{A}} \left{ \mathcal{R}(s,a) + \gamma \sum_{s^\prime \in \mathcal{S}} \mathcal{P}(s^\prime|s,a) V_k(s^\prime) \right}
$$&lt;/p&gt;
&lt;p&gt;随机选定初始值 $V_0$ ，当 $k\rightarrow\infin$ 时，序列 ${ V_k }$ 会收敛到 $V^&lt;em&gt;$ 。为了方便证明收敛性，定义贝尔曼最优算子为 $\mathcal{T}^&lt;/em&gt;$：&lt;/p&gt;
&lt;p&gt;$$
\mathcal{T}^* V_{k} = \max_{a\in\mathcal{A}} \left{ \mathcal{R}(s,a) + \gamma \sum_{s^\prime \in \mathcal{S}} \mathcal{P}(s^\prime|s,a) V_k(s^\prime) \right}
$$&lt;/p&gt;
&lt;h3&gt;收敛性证明（Banach不动点定理）&lt;/h3&gt;
&lt;p&gt;为了证明序列 ${V_k}$ 收敛于 $V^&lt;em&gt;$ ，将迭代过程看作算子 $\mathcal{T}^&lt;/em&gt;$ 的应用：&lt;/p&gt;
&lt;p&gt;$$
V_{k+1} = \mathcal{T}^* V_k
$$&lt;/p&gt;
&lt;p&gt;证明步骤如下：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;定义范数：采用无穷范数 $||V||&lt;em&gt;{\infty}=\max&lt;/em&gt;{s\in\mathcal{S}}|V(s)|$；&lt;/li&gt;
&lt;li&gt;压缩映射性质：对于 $\forall s\in\mathcal{S}$ 以及任意两个价值函数 $U,V$，有：
$$
\begin{align}
|\mathcal{T}^* U(s) - \mathcal{T}^* V(s)|
&amp;#x26;=\left|\max_{a\in\mathcal{A}}\left{\mathcal{R}(s,a)+\gamma\sum_{s^\prime\in\mathcal{S}}\mathcal{P}(s^\prime|s,a)U(s^\prime)\right}-\max_{a\in\mathcal{A}}\left{\mathcal{R}(s,a)+\gamma\sum_{s^\prime\in\mathcal{S}}\mathcal{P}(s^\prime|s,a)U(s^\prime)\right}\right| \notag \
&amp;#x26;\leqslant \max_{a\in\mathcal{A}}\left|\gamma\sum_{s^\prime\in\mathcal{S}}\mathcal{P}(s^\prime|s,a)(U(s^\prime)-V(s^\prime))\right| \notag \
&amp;#x26;= \gamma\max_{a\in\mathcal{A}}\sum_{s^\prime\in\mathcal{S}}\mathcal{P}(s^\prime|s,a)\left|U(s)-V(s)\right| \notag \
&amp;#x26;\leqslant \gamma\max_{a\in\mathcal{A}}\sum_{s^\prime\in\mathcal{S}}\mathcal{P}(s^\prime|s,a)||U-V||&lt;em&gt;{\infty} \notag \
&amp;#x26;= \gamma ||U-V||&lt;/em&gt;{\infty} \notag
\end{align}
$$&lt;/li&gt;
&lt;li&gt;对左式取最大值： $||\mathcal{T}^*U-\mathcal{T}^*V||&lt;em&gt;{\infty}\leqslant\gamma ||U-V||&lt;/em&gt;{\infty}$&lt;/li&gt;
&lt;li&gt;结论：只要折扣因子 satisfying $0 \le \gamma &amp;#x3C; 1$，算子 $\mathcal{T}^&lt;em&gt;$ 就是一个$\gamma$-压缩映射（Contraction Mapping）。根据 Banach 不动点定理，序列 ${V_k}$ 必收敛于唯一的固定点 $V^&lt;/em&gt;$。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;迭代算法（Iteration Algorithm）&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;初始化&lt;/strong&gt;：$V(s)$ 任意。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;迭代更新&lt;/strong&gt;（Loop until $\Delta &amp;#x3C; \theta$）：
&lt;ul&gt;
&lt;li&gt;$\Delta \leftarrow 0$&lt;/li&gt;
&lt;li&gt;For each $s \in \mathcal{S}$:
&lt;ul&gt;
&lt;li&gt;$v \leftarrow V(s)$&lt;/li&gt;
&lt;li&gt;$V(s) \leftarrow \max_{a} \sum_{s^\prime\in\mathcal{S}} \mathcal{P}(s^\prime|s,a)[\mathcal{R}(s,a) + \gamma V(s^\prime)]$&lt;/li&gt;
&lt;li&gt;$\Delta \leftarrow \max(\Delta, |v - V(s)|)$&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出策略&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;$\pi^*(s) = \argmax_{a} \sum_{s^\prime\in\mathcal{S}} \mathcal{P}(s^\prime|s,a)[\mathcal{R}(s,a) + \gamma V(s^\prime)]$&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;局限性（Limitation）&lt;/h2&gt;
&lt;p&gt;动态规划方法（如策略迭代和价值迭代）是强化学习的理论基石，其核心优势在于理论完备性，利用自举（Bootstrapping）机制能够保证在有限步内稳定收敛至全局最优策略。
然而，其在实际应用中存在两大核心局限：一是强依赖完备的环境模型（Model-based），即必须预先知晓精确的状态转移概率和奖励函数，这在现实场景中往往难以满足；
二是受困于维数灾难（Curse of Dimensionality），随着状态变量增加，状态空间呈指数级膨胀，导致遍历所有状态进行全宽更新（Full-width Backup）在计算资源和存储空间上变得不可行，因此无法直接应用于大规模或连续状态空间的复杂问题。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/70217040_p0_master1200.77e5dp0f1s.webp"/><enclosure url="https://pic.hana0721.top/70217040_p0_master1200.77e5dp0f1s.webp"/></item><item><title>RL笔记（3）：马尔可夫决策过程</title><link>https://agusexp25.top/blog/rl-note-3</link><guid isPermaLink="true">https://agusexp25.top/blog/rl-note-3</guid><description>梳理从马尔可夫过程(MP)、奖励过程(MRP)到决策过程(MDP)的演变，详解价值函数、贝尔曼方程推导、占用度量及最优策略定义。</description><pubDate>Fri, 12 Dec 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;引言（Introduction）&lt;/h2&gt;
&lt;p&gt;在上一章《多臂老虎机》中，我们解决了一个简化版的强化学习问题：在一个&lt;strong&gt;只有一个不变状态&lt;/strong&gt;的环境中，如何平衡探索与利用以获得最大收益。&lt;/p&gt;
&lt;p&gt;然而，现实世界要复杂得多。
下棋时，你走出的一步棋不仅决定了当下的局势，更改变了棋盘的格局，影响了你后续所有的选择。你的每一个动作（Action）不仅会带来即时的奖励（Reward），还会通过**状态转移（State Transition）**改变环境的状态（State）。&lt;/p&gt;
&lt;p&gt;这就是**序列决策（Sequential Decision Making）**的核心难题：今天的选择，决定明天的处境。&lt;/p&gt;
&lt;p&gt;为了描述这种“牵一发而动全身”的动态过程，我们需要引入强化学习的数学基石——&lt;strong&gt;马尔可夫决策过程（MDP）&lt;/strong&gt;。本章将从最基础的马尔可夫过程出发，层层递进，最终推导出描述价值流转的&lt;strong&gt;贝尔曼方程（Bellman Equation）&lt;/strong&gt;。这是理解后续所有 RL 算法（如 DQN, PPO, SAC）的绝对前提。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;马尔可夫过程（Markov Process）&lt;/h2&gt;
&lt;h3&gt;随机过程（Stochastic Process）&lt;/h3&gt;
&lt;p&gt;随机过程是研究随时间演变的随机现象。
在随机过程中，随机现象在$$t$$时刻的取值为$S_t$，并且$S_t$通常会取决于之前的状态 $(S_1,...,S_{t-1})$。
在已知 $(S_1,...,S_{t-1})$的情况下，下一个时刻 $t$的状态为 $S_t$的概率可以表示为$P(S_t | S_1,...,S_{t-1})$。&lt;/p&gt;
&lt;h3&gt;马尔可夫性质（Markov Property）&lt;/h3&gt;
&lt;p&gt;当且仅当某个时刻的状态只取决于上个时刻的状态时，这个随机过程满足马尔可夫性质，即$P(S_t | S_{t-1}) = P(S_t | S_1, ..., S_{t-1})$。&lt;/p&gt;
&lt;h3&gt;马尔可夫过程（Markov Process）&lt;/h3&gt;
&lt;p&gt;马尔可夫过程就是满足了马尔可夫性质的随机过程，也叫马尔可夫链（Markov Chain）。
通常使用一个二元组 $&amp;#x3C;\mathcal{S}, \mathcal{P}&gt;$ 来描述马尔可夫过程，其中 $\mathcal{S}$是有限数量的状态集合， $\mathcal{P}$是状态转移矩阵（State Transition Matrix）。
假设 $|\mathcal{S}|=n$，那么有：&lt;/p&gt;
&lt;p&gt;$$
\mathcal{P}=\begin{bmatrix} P(s_1|s_1) &amp;#x26; \cdots &amp;#x26; P(s_n|s_1)
\cr \vdots &amp;#x26; \ddots &amp;#x26; \vdots \cr P(s_n|s_1) &amp;#x26; \cdots &amp;#x26; P(s_n|s_n) \end{bmatrix}
$$&lt;/p&gt;
&lt;p&gt;且对于任意 $i$行，满足 $\sum_{j=1}^{n} P(s_j|s_i)=1$。
特别的，当一个状态 $s_t$ 满足 $P(s_t|s_t)=1$，那么称 $s_t$为终止状态（Terminal State）。
给定马尔可夫过程，从某个状态 $S_1$ 出发，根据状态转移矩阵 $\mathcal{P}$ 得出一段状态序列 $S_1 S_2...S_T$（Episode），这个过程也叫做采样（Sampling）。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;马尔可夫奖励过程（Markov Reward Process）&lt;/h2&gt;
&lt;p&gt;马尔可夫奖励过程基于马尔可夫过程加入了奖励函数 $\mathcal{R}$（Reward Function）与折扣因子 $$\gamma$$（Discount Factor），通常由四元组 $&amp;#x3C;\mathcal{S},\mathcal{P},\mathcal{R},\gamma&gt;$ 构成：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;$\mathcal{S}$ 是有限状态集；&lt;/li&gt;
&lt;li&gt;$\mathcal{P}$ 是状态转移矩阵；&lt;/li&gt;
&lt;li&gt;$\mathcal{R}$ 是奖励函数，$\mathcal{R}(s)$ 表示达到状态 $s$ 可以获得的奖励；&lt;/li&gt;
&lt;li&gt;$\gamma$ 是折扣因子，取值为 $[0,1)$。 $\gamma$ 的越小，对于未来的利益折扣越大；&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;回报（Return）&lt;/h3&gt;
&lt;p&gt;在一个马尔可夫奖励过程中，在某个时刻 $t$，其回报 $G_t$ 的定义如下：&lt;/p&gt;
&lt;p&gt;$$
G_t=R_t+\gamma R_{t+1}+\gamma^2 R_{t+2}+...=\sum_{k=0}^\infin \gamma^k R_{t+k}
$$&lt;/p&gt;
&lt;p&gt;其中， $R_t$ 表示 $t$ 时刻获得的奖励。&lt;/p&gt;
&lt;h3&gt;价值函数（Value Function）&lt;/h3&gt;
&lt;p&gt;某个状态 $s$的期望回报 $\mathbb{E}[G_t|S_t=s]$，被称为这个状态的价值（Value）。那么所有状态的价值组成了价值函数（Value Function），展开如下：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
V(s)&amp;#x26;=\mathbb{E}[G_t|S_t=s] \notag \
&amp;#x26;=\mathbb{E}[R_t+\gamma R_{t+1}+\gamma^2 R_{t+2}+...|S_t=s] \notag \
&amp;#x26;=\mathbb{E}[R_t+\gamma(R_{t+1}+\gamma R_{t+2}+...)|S_t=s] \notag \
&amp;#x26;=\mathbb{E}[R_t+\gamma G_{t+1}|S_t=s] \notag \
&amp;#x26;= \mathbb{E}[R_t+\gamma V(S_{t+1})|S_t=s] \notag \
\end{align}
$$&lt;/p&gt;
&lt;p&gt;经过几步简单的推导，可以得出贝尔曼方程（Bellman Equation）：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
V(s)&amp;#x26;= \mathbb{E}[R_t+\gamma V(S_{t+1})|S_t=s] \notag \
&amp;#x26;= \mathbb{E}[R_t|S_t=s]+\gamma\mathbb{E}[V(S_{t+1})|S_t=s] \notag \
&amp;#x26;= \mathcal{R}(s)+\gamma\sum_{s^\prime \in \mathcal{S}} P(s^\prime|s) V(s^\prime) \notag
\end{align}
$$&lt;/p&gt;
&lt;p&gt;可以写成矩阵形式：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
\mathcal{V}&amp;#x26;=\mathcal{R}+\gamma\mathcal{P}\mathcal{V} \notag \
(I-\gamma\mathcal{P})\mathcal{V}&amp;#x26;=\mathcal{R} \notag \
\mathcal{V}&amp;#x26;=(I-\gamma\mathcal{P})^{-1}\mathcal{R} \notag
\end{align}
$$&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;马尔可夫决策过程（Markov Decision Process）&lt;/h2&gt;
&lt;p&gt;在马尔可夫奖励过程的基础上，加入外界的刺激，即智能体（Agent）的动作（Action），就有了马尔可夫决策过程（Markov Decision Process）。
马尔可夫决策由五元组 $&amp;#x3C;\mathcal{S},\mathcal{A},\mathcal{P},\mathcal{R},\gamma&gt;$构成，分别是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;$\mathcal{S}$ 是有限状态集；&lt;/li&gt;
&lt;li&gt;$\mathcal{A}$ 是动作的集合；&lt;/li&gt;
&lt;li&gt;$\gamma$ 是折扣因子；&lt;/li&gt;
&lt;li&gt;$\mathcal{R}(s,a)$ 是奖励函数；&lt;/li&gt;
&lt;li&gt;$\mathcal{P}(s^\prime|s,a)$ 是状态转移函数；&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;策略（Policy）&lt;/h3&gt;
&lt;p&gt;策略的定义：智能体根据当前的状态 $S_t$，并从动作集合 $\mathcal{A}$中选取一个 $A_t$ 的函数，一般记为 $\pi$。
$\pi(a|s)=P(A_t=a|S_t=s)$ 表示状态 $s$ 下，选择动作 $a$ 的概率。&lt;/p&gt;
&lt;h4&gt;确定性策略（Deterministic Policy）&lt;/h4&gt;
&lt;p&gt;如果一个策略 $\pi$ ，对于每一个状态 $s\in\mathcal{S}$ ，有且仅有唯一动作 $a\in\mathcal{A}$ ，使得 $\pi(a|s)=1$ ，那么这个策略就是一个确定性策略。&lt;/p&gt;
&lt;h4&gt;随机性策略（Stochastic Policy）&lt;/h4&gt;
&lt;p&gt;随机性策略和确定性策略相反，它输出的各个动作的概率分布（Probability Distribution），每次采取动作时会从分布中进行采样。&lt;/p&gt;
&lt;h3&gt;状态价值函数（State-Value Function）&lt;/h3&gt;
&lt;p&gt;基于策略 $\pi$ 的状态价值函数被记为 $V^\pi(s)=\mathbb{E}_\pi[G_t|S_t=s]$ 。
注意：若 $\pi \ne \pi^\prime$ ，则 $V^\pi \ne V^{\pi^\prime}$ 。&lt;/p&gt;
&lt;h3&gt;动作价值函数（Action-Value Function）&lt;/h3&gt;
&lt;p&gt;马尔可夫决策过程引入了动作，我们额外定义了一个动作价值函数（Action-Value Function）。
基于策略 $\pi$ 的动作价值函数被记为 $Q^\pi(s,a)$ ，表达式为 $Q^\pi(s,a)=\mathbb{E}_{\pi}[G_t|S_t=s,A_t=a]$ 。
经过简单的推导，可以得出如下公式：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
Q^\pi(s,a)&amp;#x26;=\mathbb{E}&lt;em&gt;\pi[G_t|S_t=s,A_t=a] \notag \
&amp;#x26;=\mathbb{E}&lt;/em&gt;\pi[R_t+\gamma R_{t+1}+\gamma^2 R_{t+2}+...|S_t=s,A_t=a] \notag \
&amp;#x26;= \mathbb{E}&lt;em&gt;\pi[R_t+\gamma(R&lt;/em&gt;{t+1}+\gamma R_{t+2}+...)|S_t=s,A_t=a] \notag \
&amp;#x26;= \mathbb{E}&lt;em&gt;\pi[R_t+\gamma V(S&lt;/em&gt;{t+1})|S_t=s,A_t=a] \notag \
&amp;#x26;= \mathbb{E}&lt;em&gt;\pi[R_t]+\gamma \mathbb{E}&lt;/em&gt;\pi[V^\pi(S_{t+1})|S_t=s,A_t=a] \notag \
&amp;#x26;= \mathcal{R}(s,a)+\gamma \sum_{s^\prime \in \mathcal{S}}\mathcal{P}(s^\prime|s,a)V^\pi(s^\prime) \notag
\end{align}
$$&lt;/p&gt;
&lt;p&gt;状态价值函数和动作价值函数之间的关系：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
V^\pi(s)&amp;#x26;= \mathbb{E}&lt;em&gt;{a\sim \pi( \cdot | s)}[Q^\pi(s,a)] \notag \
&amp;#x26;=\sum&lt;/em&gt;{a\in \mathcal{A}}\pi(a|s)Q^\pi(s,a) \notag
\end{align}
$$&lt;/p&gt;
&lt;p&gt;注意：若 $\pi \ne \pi^\prime$ ，则 $Q^\pi \ne Q^{\pi^\prime}$ 。&lt;/p&gt;
&lt;h3&gt;贝尔曼期望方程（Bellman Expectation Equation）&lt;/h3&gt;
&lt;p&gt;对状态价值函数进行边缘化（Marginalization），可以得出 $V^\pi(s)$ 的贝尔曼期望方程：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
V^\pi(s)&amp;#x26;=\mathbb{E}&lt;em&gt;\pi[R_t+\gamma V^\pi(S&lt;/em&gt;{t+1})|S_t=s] \notag \
&amp;#x26;=\mathcal{R}(s)+\gamma\sum_{s^\prime\in \mathcal{S}}\mathcal{P}(s^\prime|s)V^\pi(s^\prime) \notag \
&amp;#x26;=\sum_{a\in \mathcal{A}}\pi(a|s)(\mathcal{R}(s,a)+\gamma\sum_{s^\prime\in \mathcal{S}}\mathcal{P}(s^\prime|s,a)V^\pi(s^\prime)) \notag
\end{align}
$$&lt;/p&gt;
&lt;p&gt;将 $V^\pi(s)=\sum_{a\in\mathcal{A}}\pi(a|s)Q^\pi(s,a)$ 代入，可以得出 $Q^\pi(s,a)$ 的贝尔曼期望方程：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
Q^\pi(s,a)&amp;#x26;=\mathbb{E}&lt;em&gt;{\pi}[G_t|S_t=s,A_t=a] \notag \
&amp;#x26;=\mathcal{R}(s,a) + \gamma \sum&lt;/em&gt;{s^\prime\in \mathcal{S}}\mathcal{P}(s^\prime|s,a)V^\pi(s^\prime) \notag \
&amp;#x26;= \mathcal{R}(s,a)+\gamma\sum_{s\in\mathcal{S}}\mathcal{P}(s^\prime|s,a)\sum_{a^\prime\in\mathcal{A}}\pi(a^\prime|s^\prime)Q^\pi(s^\prime,a^\prime) \notag
\end{align}
$$&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;状态访问分布（State Visitation Distribution）&lt;/h2&gt;
&lt;p&gt;在同一个马尔可夫过程中，不同的策略，它们的价值函数是不一样的。
因为在不同的策略，智能体能够访问的状态的概率分布是不同的。
我们使用 $P_t^\pi(s)$ 来表示智能体使用策略 $\pi$ 在 $t$ 时刻访问状态 $s$ 的概率。
策略 $\pi$ 的状态访问分布（State Visitation Distribution）定义如下：&lt;/p&gt;
&lt;p&gt;$$
\nu^\pi(s)=(1-\gamma)\sum_{t=0}^{\infin}\gamma^t P_t^\pi(s)
$$&lt;/p&gt;
&lt;p&gt;$1-\gamma$ 是归一化因子，它保证 $\nu^\pi(s)$ 是一个有效的概率分布，即 $\sum_s \nu^\pi(s)=1$，推导如下：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
\sum_s \nu^\pi(s)&amp;#x26;=\sum_s (1-\gamma) \sum_{t=0}^\infin \gamma^t P_t^\pi(s) \notag \
&amp;#x26;= (1-\gamma)\sum_{t=0}^\infin \gamma^t \sum_s P_t^\pi(s) \notag \
\end{align}
$$&lt;/p&gt;
&lt;p&gt;在任意时刻 $t$，满足 $\sum_s P_t^\pi(s)=1$，可以推导出：&lt;/p&gt;
&lt;p&gt;$$
\sum_s \nu^\pi(s)=(1-\gamma) \sum_{t=0}^\infin \gamma^t
$$&lt;/p&gt;
&lt;p&gt;这里有个几何级数，满足 $\sum_{t=0}^\infin\gamma^t=\frac{1}{1-\gamma}$，可以推导出：&lt;/p&gt;
&lt;p&gt;$$
\sum_s \nu^\pi(s)=(1-\gamma) \frac{1}{1-\gamma}=1
$$&lt;/p&gt;
&lt;p&gt;特别地，定义初始状态分布为 $\nu_0(s)$，且 $P_0^\pi(s)=\nu_0(s)$。&lt;/p&gt;
&lt;p&gt;使用上述公式计算该分布涉及到了无穷步的交互，但是实际上的交互数量是有限的。同时，状态访问分布满足以下性质：&lt;/p&gt;
&lt;p&gt;$$
\nu^\pi(s^\prime)=(1-\gamma)\nu_0(s^\prime)+\gamma  \int \mathcal{P}(s^\prime|s,a)\pi(a|s)\nu^\pi(s) {\rm d} s {\rm d} a
$$&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;占用度量（Occupancy Measure）&lt;/h2&gt;
&lt;p&gt;进一步，为了表示动作状态 $(s,a)$ 访问的分布，定义策略 $\pi$ 的占用度量（Occupancy Measure）如下：&lt;/p&gt;
&lt;p&gt;$$
\rho^\pi(s,a)=(1-\gamma)\sum_{t=0}^\infin \gamma^t P_t^\pi(s)\pi(a|s)
$$&lt;/p&gt;
&lt;p&gt;两者存在以下关系：&lt;/p&gt;
&lt;p&gt;$$
\rho^\pi(s,a)=\nu^\pi(s)\pi(a|s)
$$&lt;/p&gt;
&lt;p&gt;最终，可以推导出两个定理：&lt;/p&gt;
&lt;p&gt;定理1：给定环境（MDP）的条件下，策略 $\pi_1$和策略 $\pi_2$ 得出的占用度量 $\rho^{\pi_1}$ 和 $\rho^{\pi_2}$ 满足：&lt;/p&gt;
&lt;p&gt;$$
\pi_1 = \pi_2 \Longleftrightarrow \rho^{\pi_1} = \rho^{\pi_2}
$$&lt;/p&gt;
&lt;p&gt;定理2：给定一合法的占用度量 $\rho$，生成该占用度量的唯一策略是：&lt;/p&gt;
&lt;p&gt;$$
\pi_\rho(a|s)=\frac{\rho(s,a)}{\sum_{a^\prime}\rho(s,a^\prime)}
$$&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;最优策略（Optimal Policy）&lt;/h2&gt;
&lt;p&gt;强化学习的目标：找到一个策略，使得智能体从初始状态出发获取最大的累计奖励。
首先定义策略之间的偏序关系：当且仅当对于任何状态 $s$ 都满足 $V^\pi(s) \ge V^{\pi^\prime}(s)$，则 $\pi &gt; \pi^\prime$。
最优策略（Optimal Policy）：在一个MDP中，至少存在一个策略优于其他策略或者至少存在一个策略不差于其他策略，这个策略就是最优策略。&lt;/p&gt;
&lt;p&gt;最优策略都有相同的状态价值函数，被称为最优状态价值函数：&lt;/p&gt;
&lt;p&gt;$$
V^*(s)=\max_\pi V^\pi(s),; \forall s \in \mathcal{S}
$$&lt;/p&gt;
&lt;p&gt;同理，定义最优动作价值函数：&lt;/p&gt;
&lt;p&gt;$$
Q^*(s,a)=\max_\pi Q^\pi(s,a), ; \forall s\in\mathcal{S},a\in\mathcal{A}
$$&lt;/p&gt;
&lt;p&gt;最优状态价值函数和最优动作价值函数之间的关系：&lt;/p&gt;
&lt;p&gt;$$
Q^&lt;em&gt;(s,a)=\mathcal{R}(s,a)+\gamma\sum_{s^\prime\in\mathcal{S}} \mathcal{P}(s^\prime|s,a)V^&lt;/em&gt;(s^\prime)
$$&lt;/p&gt;
&lt;p&gt;$$
V^&lt;em&gt;(s)=\max_{a\in\mathcal{A}}Q^&lt;/em&gt;(s,a)
$$&lt;/p&gt;
&lt;p&gt;贝尔曼最优方程（Bellman optimality equation）：&lt;/p&gt;
&lt;p&gt;$$
V^&lt;em&gt;(s)=\max_{a\in\mathcal{A}} { \mathcal{R}(s,a)+\gamma\sum_{s^\prime\in\mathcal{S}}\mathcal{P}(s^\prime|s,a)V^&lt;/em&gt;(s^\prime)}
$$&lt;/p&gt;
&lt;p&gt;$$
Q^&lt;em&gt;(s,a)=\mathcal{R}(s,a)+\gamma\sum_{s^\prime\in\mathcal{S}}\mathcal{P}(s^\prime|s,a) \max_{a^\prime\in\mathcal{A}} Q^&lt;/em&gt;(s^\prime,a^\prime)
$$&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/66952181_p0_master1200.6ikvtocw16.webp"/><enclosure url="https://pic.hana0721.top/66952181_p0_master1200.6ikvtocw16.webp"/></item><item><title>RL笔记（2）：多臂老虎机</title><link>https://agusexp25.top/blog/rl-note-2</link><guid isPermaLink="true">https://agusexp25.top/blog/rl-note-2</guid><description>从赌场到推荐系统：详解多臂老虎机问题。涵盖累积懊悔、Epsilon-Greedy、UCB 以及基于贝叶斯的汤普森采样。</description><pubDate>Thu, 11 Dec 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;引言（Introduction）&lt;/h2&gt;
&lt;p&gt;在上一章中，我们提到了 RL 的核心矛盾：&lt;strong&gt;探索与利用 (Exploration vs. Exploitation)&lt;/strong&gt;。
为了研究这个问题，我们先暂时把“状态转移”拿掉，看一个最简化的场景——&lt;strong&gt;多臂老虎机 (Multi-Armed Bandit, MAB)&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;这个问题来源于赌场：
假设你面前有 $K$ 台老虎机。每台老虎机吐钱的概率分布不一样（有的容易赢，有的容易输），但你事先不知道。你的目标是：在有限的操作次数 $T$ 内，获得最大的累积奖励。&lt;/p&gt;
&lt;p&gt;这不仅是赌博问题，它在现实中无处不在：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;推荐系统&lt;/strong&gt;：把哪部电影推给用户？（探索新电影 vs 利用已知的高分电影）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;临床试验&lt;/strong&gt;：给病人用哪种药？（试新药 vs 用疗效确定的旧药）&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2&gt;问题定义&lt;/h2&gt;
&lt;h3&gt;形式化描述&lt;/h3&gt;
&lt;p&gt;多臂老虎机问题是一个元组 $\langle \mathcal{A}, \mathcal{R} \rangle$：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;$\mathcal{A}$：动作集合，即 $K$ 个拉杆，${a_1, \dots, a_K}$。&lt;/li&gt;
&lt;li&gt;$\mathcal{R}$：奖励概率分布。对于每个动作 $a$，奖励 $r \sim \mathcal{R}(r|a)$。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;累积懊悔 (Cumulative Regret)&lt;/h3&gt;
&lt;p&gt;怎么衡量一个算法好不好？我们引入&lt;strong&gt;懊悔 (Regret)&lt;/strong&gt; 的概念。
假设我们开了上帝视角，知道哪台机器最好，那台机器的期望奖励是 $Q^*$。
如果我们选了差的机器，我们就会“后悔”。在 $T$ 步内的总懊悔定义为：&lt;/p&gt;
&lt;p&gt;$$
R_T = \sum_{t=1}^T (Q^* - q_*(a_t))
$$&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;$Q^*$：全局最优拉杆的期望奖励。&lt;/li&gt;
&lt;li&gt;$q_*(a_t)$：我们第 $t$ 步实际选的那个拉杆的期望奖励。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;我们的目标&lt;/strong&gt;：设计一个算法，让累积懊悔 $R_T$ 增长得越慢越好（最好是亚线性的，即 $\lim_{T \to \infty} \frac{R_T}{T} = 0$）。这意味着随着时间推移，我们几乎总是选中最好的那台机器。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;基础：估计期望奖励&lt;/h2&gt;
&lt;p&gt;不论用什么算法，我们都需要估计每个拉杆的价值。最简单的方法是&lt;strong&gt;增量式蒙特卡洛更新&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;假设第 $k$ 个拉杆被选中了 $n$ 次，每次的奖励是 $r_1, \dots, r_n$。
当前的估计值 $Q_n$ 是平均值。当有新的奖励 $r_{n+1}$ 进来时，更新公式为：&lt;/p&gt;
&lt;p&gt;$$
Q_{n+1} = Q_n + \frac{1}{n+1} (r_{n+1} - Q_n)
$$&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;💡 直觉&lt;/strong&gt;：
$\text{新估计值} = \text{旧估计值} + \text{步长} \times \text{误差}$
这个公式非常重要，它是后续所有强化学习价值更新的雏形。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2&gt;算法 1：$\epsilon$-Greedy 算法&lt;/h2&gt;
&lt;p&gt;这是最直观的平衡策略。&lt;/p&gt;
&lt;h3&gt;规则&lt;/h3&gt;
&lt;p&gt;每次选择动作时，生成一个 $[0, 1]$ 的随机数：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;以 $1-\epsilon$ 的概率（利用）&lt;/strong&gt;：选择当前估计值 $Q(a)$ 最高的那个拉杆。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;以 $\epsilon$ 的概率（探索）&lt;/strong&gt;：随机选择任意一个拉杆。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;衰减的 $\epsilon$&lt;/h3&gt;
&lt;p&gt;普通的 $\epsilon$-Greedy 有个缺点：即使已经玩了一万次，明明知道哪个最好，它还是会以固定的 $\epsilon$ 概率去乱选，导致懊悔线性增长。
&lt;strong&gt;改进&lt;/strong&gt;：让 $\epsilon$ 随时间减小，例如 $\epsilon_t = \frac{1}{t}$。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;初期 $\epsilon$ 大：疯狂探索。&lt;/li&gt;
&lt;li&gt;后期 $\epsilon$ 小：主要利用，趋近于最优策略。&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2&gt;算法 2：上置信界 (UCB)&lt;/h2&gt;
&lt;p&gt;$\epsilon$-Greedy 的探索是盲目的。&lt;strong&gt;UCB (Upper Confidence Bound)&lt;/strong&gt; 提出了一种“&lt;strong&gt;面对不确定性保持乐观 (Optimism in the Face of Uncertainty)&lt;/strong&gt;”的原则。&lt;/p&gt;
&lt;h3&gt;核心思想&lt;/h3&gt;
&lt;p&gt;我们给每个拉杆的价值算一个&lt;strong&gt;上界&lt;/strong&gt;。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;如果一个拉杆估计值高，上界就高。&lt;/li&gt;
&lt;li&gt;如果一个拉杆&lt;strong&gt;被选的次数很少&lt;/strong&gt;（不确定性大），它的波动范围就大，上界也会很高。
我们每次都选&lt;strong&gt;上界最高&lt;/strong&gt;的那个拉杆。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;UCB 公式&lt;/h3&gt;
&lt;p&gt;在时刻 $t$，对于动作 $a$，我们计算它的 UCB 分数：&lt;/p&gt;
&lt;p&gt;$$
\text{Score}_t(a) = \hat{Q}_t(a) + c \sqrt{\frac{\ln t}{N_t(a) + 1}}
$$&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;$\hat{Q}_t(a)$：当前的平均收益（利用项）。&lt;/li&gt;
&lt;li&gt;$\sqrt{\dots}$：&lt;strong&gt;不确定性红利（探索项）&lt;/strong&gt;。
&lt;ul&gt;
&lt;li&gt;$N_t(a)$ 是动作 $a$ 被选中的次数。分母越小（玩得少），这一项越大。&lt;/li&gt;
&lt;li&gt;$t$ 是总步数。随着时间推移，如果某个动作一直没被选，分子 $\ln t$ 变大，也会强行把它的分数拉高。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;$c$：超参数，控制探索的权重。&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;💡 效果&lt;/strong&gt;：
那些“潜力股”（玩得少）和“绩优股”（均值高）都会被选中，而那些“玩了很多次且证明了很烂”的拉杆会被逐渐抛弃。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2&gt;算法 3：汤普森采样 (Thompson Sampling)&lt;/h2&gt;
&lt;p&gt;汤普森采样 (Thompson Sampling)基于&lt;strong&gt;贝叶斯 (Bayesian)&lt;/strong&gt; 思想，比 UCB 更具统计学美感。&lt;/p&gt;
&lt;h3&gt;核心思想&lt;/h3&gt;
&lt;p&gt;我们不维护一个具体的数值 $Q(a)$，而是维护每个拉杆奖励的&lt;strong&gt;概率分布&lt;/strong&gt;。
假设每台老虎机只有“赢”和“输”两种结果（伯努利分布）。我们可以用 &lt;strong&gt;Beta 分布&lt;/strong&gt; 来描述这种不确定性。&lt;/p&gt;
&lt;h3&gt;流程&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;初始化&lt;/strong&gt;：为每个拉杆 $k$ 维护两个数：$Win_k$（赢的次数）和 $Lose_k$（输的次数）。初始都为 1。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;采样&lt;/strong&gt;：在每一步，对于每个拉杆，从它的 Beta 分布中随机采样一个数：
$$
\theta_k \sim \text{Beta}(Win_k + 1, Lose_k + 1)
$$
&lt;blockquote&gt;
&lt;p&gt;注意：不是选 Beta 分布的均值，而是&lt;strong&gt;采样&lt;/strong&gt;产生一个随机数。如果一个拉杆尝试少，Beta 分布很宽，采样出来的数可能很高也可能很低（探索）。如果尝试多且赢得多，Beta 分布很尖且靠右，采样出来的数大概率很高（利用）。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;决策&lt;/strong&gt;：选择采样值 $\theta_k$ 最大的那个拉杆 $a_t$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;更新&lt;/strong&gt;：观察实际奖励 $r_t$，如果赢了则 $Win_{a_t} += 1$，输了则 $Lose_{a_t} += 1$。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;优势&lt;/h3&gt;
&lt;p&gt;汤普森采样在很多实际应用中表现比 UCB 更好，因为它引入了随机性，能更平滑地处理探索与利用，而且对非平稳环境适应性较强。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;总结&lt;/h2&gt;
&lt;p&gt;多臂老虎机是强化学习的“单状态”特例，它教会了我们处理 RL 核心难题的几种范式：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;盲目探索&lt;/strong&gt;：$\epsilon$-Greedy（简单粗暴，但有效）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;乐观探索&lt;/strong&gt;：UCB（基于不确定性的确定性策略，数学理论完备）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;后验采样&lt;/strong&gt;：Thompson Sampling（基于概率分布的随机策略，贝叶斯流派）。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;解决了怎么选动作的问题，下一章我们将引入&lt;strong&gt;状态转移&lt;/strong&gt;，去面对真正复杂的&lt;strong&gt;序列决策问题&lt;/strong&gt;——马尔可夫决策过程 (MDP)。&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/66119164_p0_master1200.3d5duqih46.webp"/><enclosure url="https://pic.hana0721.top/66119164_p0_master1200.3d5duqih46.webp"/></item><item><title>RL笔记（1）：初入强化学习</title><link>https://agusexp25.top/blog/rl-note-1</link><guid isPermaLink="true">https://agusexp25.top/blog/rl-note-1</guid><description>什么是强化学习？它与监督学习有何不同？核心要素与基本世界观的构建。</description><pubDate>Wed, 10 Dec 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;引言（Introduction）&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;强化学习 (Reinforcement Learning, RL)&lt;/strong&gt; 是机器学习中一个独特的领域，它关注的是&lt;strong&gt;智能体 (Agent)&lt;/strong&gt; 如何在&lt;strong&gt;环境 (Environment)&lt;/strong&gt; 中通过&lt;strong&gt;试错 (Trial-and-Error)&lt;/strong&gt; 来学习最佳策略。&lt;/p&gt;
&lt;p&gt;如果说监督学习是“老师手把手教你做题”（有标签），那么强化学习就是“把你扔进游戏里自己玩，赢了得分，输了扣分”。智能体必须通过与环境的交互，自己总结出怎么做才能获得最高的&lt;strong&gt;累积奖励&lt;/strong&gt;。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;核心直觉&lt;/strong&gt;：
就像训练小狗：小狗做动作（Action），你给它骨头或训斥（Reward）。小狗为了多吃骨头，逐渐学会了“听到口令坐下”这个策略（Policy）。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2&gt;强化学习 vs. 其他机器学习&lt;/h2&gt;
&lt;p&gt;为了搞懂 RL，我们先看它和我们熟悉的监督学习有什么本质区别：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;没有“正确答案” (No Ground Truth)&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;监督学习&lt;/strong&gt;：输入一张猫的图片，标签明确告诉你“这是猫”。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;RL&lt;/strong&gt;：你走了一步棋，没人告诉你这一步是“对”还是“错”，你只知道这局棋最后是赢了还是输了。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;反馈是延迟的 (Delayed Reward)&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;你现在做的一个决定（比如买股票），可能要很久之后（卖出时）才知道好坏。这被称为&lt;strong&gt;信用分配问题 (Credit Assignment Problem)&lt;/strong&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;数据是动态分布的 (Non-i.i.d Data)&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;你的策略变了，你看到的画面（状态）也就变了。智能体的动作会直接改变它未来接收到的数据。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2&gt;核心组件：RL 的世界观&lt;/h2&gt;
&lt;p&gt;强化学习的一切都发生在一个循环交互中。我们需要掌握以下几个核心术语，它们是后续所有章节的基石。&lt;/p&gt;
&lt;h3&gt;1. 交互循环 (The Loop)&lt;/h3&gt;
&lt;p&gt;在每一个时刻 $t$：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;观察&lt;/strong&gt;：智能体看到环境的状态 $S_t$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;动作&lt;/strong&gt;：智能体根据策略，选择一个动作 $A_t$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;反馈&lt;/strong&gt;：环境受到动作影响，变成新状态 $S_{t+1}$，并给出一个即时奖励 $R_t$。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;2. 状态 (State, $S$)&lt;/h3&gt;
&lt;p&gt;状态是对环境现状的描述。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;例子&lt;/strong&gt;：在玩《王者荣耀》时，屏幕上的所有画面（英雄位置、血量、小地图）就是状态。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;全观测 vs. 部分观测&lt;/strong&gt;：如果你能看到整个棋盘，这叫全观测；如果你在打扑克，你看不到对手的牌，这叫部分观测（POMDP）。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;3. 动作 (Action, $A$)&lt;/h3&gt;
&lt;p&gt;智能体能做的事情。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;离散动作&lt;/strong&gt;：上下左右、跳跃、开火（如超级马里奥）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;连续动作&lt;/strong&gt;：方向盘转动 30.5 度、油门踩 70%（如自动驾驶）。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;4. 奖励 (Reward, $R$)&lt;/h3&gt;
&lt;p&gt;奖励是一个标量数值，是环境给智能体的唯一反馈信号。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;奖励假设 (The Reward Hypothesis)&lt;/strong&gt;：所有目标都可以被描述为“最大化累积奖励的期望”。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;注意&lt;/strong&gt;：奖励定义了“好坏”，但没告诉智能体“怎么做”。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;5. 策略 (Policy, $\pi$)&lt;/h3&gt;
&lt;p&gt;策略是智能体的大脑，它定义了&lt;strong&gt;在某个状态下该采取什么动作&lt;/strong&gt;。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;确定性策略&lt;/strong&gt;：看到 $s$，就做 $a$。即 $a = \pi(s)$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;随机性策略&lt;/strong&gt;：看到 $s$，有 70% 概率做 $a_1$，30% 概率做 $a_2$。即 $\pi(a|s) = P(A_t=a|S_t=s)$。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;6. 价值 (Value, $V$)&lt;/h3&gt;
&lt;p&gt;这是 RL 中最关键的概念之一（后续笔记会详细讲）。
&lt;strong&gt;奖励&lt;/strong&gt;是眼前的利益，&lt;strong&gt;价值&lt;/strong&gt;是长远的目光。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;例子&lt;/strong&gt;：为了赢下棋局（高价值），你可能需要牺牲一个车（负的即时奖励）。&lt;/li&gt;
&lt;li&gt;价值函数预测了：从当前状态出发，未来&lt;strong&gt;总共&lt;/strong&gt;能拿多少分。&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2&gt;两个核心难题&lt;/h2&gt;
&lt;p&gt;在深入学习具体算法前，我们需要理解阻碍智能体变强的两大难题：&lt;/p&gt;
&lt;h3&gt;1. 序列决策 (Sequential Decision Making)&lt;/h3&gt;
&lt;p&gt;智能体的动作有&lt;strong&gt;长远影响&lt;/strong&gt;。现在的选择决定了未来的状态，进而限制了未来的选择。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;解决思路&lt;/em&gt;：我们需要引入 &lt;strong&gt;马尔可夫决策过程 (MDP)&lt;/strong&gt; 来数学化描述这个过程（详见笔记 3），并通过 &lt;strong&gt;动态规划&lt;/strong&gt;（笔记 5）或 &lt;strong&gt;时序差分&lt;/strong&gt;（笔记 6）来求解未来的价值。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;2. 探索与利用 (Exploration vs. Exploitation)&lt;/h3&gt;
&lt;p&gt;这是 RL 独有的矛盾。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;利用 (Exploitation)&lt;/strong&gt;：根据现有经验，做那个我认为最好的动作（拿确定的分数）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;探索 (Exploration)&lt;/strong&gt;：尝试一个没做过的动作，虽然可能导致扣分，但也可能发现一条通往更高分的新捷径。&lt;/li&gt;
&lt;li&gt;&lt;em&gt;解决思路&lt;/em&gt;：就像去餐厅吃饭，是去吃那家确定的好吃的店（利用），还是去试一家新开的店（探索）？&lt;/li&gt;
&lt;li&gt;这个问题在 &lt;strong&gt;多臂老虎机 (Multi-armed Bandit)&lt;/strong&gt; 问题中最为纯粹（详见笔记 2）。&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2&gt;学习路线图 (Roadmap)&lt;/h2&gt;
&lt;p&gt;本系列笔记将按照以下逻辑逐步深入：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;无状态的基础&lt;/strong&gt;：从最简单的&lt;strong&gt;多臂老虎机&lt;/strong&gt;（笔记 2）开始，只考虑动作选择，不考虑状态转移。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;建立数学模型&lt;/strong&gt;：引入&lt;strong&gt;马尔可夫决策过程 (MDP)&lt;/strong&gt;（笔记 3），正式描述状态转移和序列决策。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;求解 MDP&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;如果你知道环境的一切规则（上帝视角），使用&lt;strong&gt;动态规划&lt;/strong&gt;（笔记 5）。&lt;/li&gt;
&lt;li&gt;如果你只能通过玩游戏来学习（蒙眼摸象），使用&lt;strong&gt;蒙特卡洛&lt;/strong&gt;（笔记 4）和&lt;strong&gt;时序差分&lt;/strong&gt;（笔记 6）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;进阶与深度强化学习&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;当状态太多存不下表格时，我们引入神经网络，进入 Deep RL 时代（DQN, Policy Gradient, Actor-Critic 等）。&lt;/li&gt;
&lt;li&gt;一直到最前沿的 SAC, PPO 等算法。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;让我们开始这段旅程吧！&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top//65089776_p0_master1200.5c1kl2nzfo.webp"/><enclosure url="https://pic.hana0721.top//65089776_p0_master1200.5c1kl2nzfo.webp"/></item><item><title>Slay the Spire: Silent Cards 评测</title><link>https://agusexp25.top/blog/sts-silent-cards-rating</link><guid isPermaLink="true">https://agusexp25.top/blog/sts-silent-cards-rating</guid><description>Silent 全卡评测索引页：按稀有度整理卡牌，包含基础信息、卡图与评分占位，便于后续逐卡完善攻略。</description><pubDate>Tue, 14 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { StsCardRating, StsSilentTierBoard } from &apos;@/components/advanced&apos;&lt;/p&gt;
&lt;h2&gt;Silent Cards Rank 表&lt;/h2&gt;
&lt;p&gt;个人情况：我在《杀戮尖塔》累计游玩约 &lt;code&gt;2000h&lt;/code&gt;，最好成绩为 &lt;code&gt;SL 179 连胜&lt;/code&gt;、&lt;code&gt;NOSL 10 连胜&lt;/code&gt;。平时会在 B 站直播杀戮尖塔，主页：&lt;a href=&quot;https://space.bilibili.com/44972476&quot;&gt;juhuahua233&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;说明：本 Rank 表按个人评测结果整理。评级解读时建议参考稀有度（Starter / Common / Uncommon / Rare）与成型阶段，不同稀有度的抓取机会与机会成本差异很大。&lt;/p&gt;
&lt;p&gt;免责声明：该分级仅代表个人当前版本体验，不构成通用强度结论；不同路线、遗物、路径、事件、升级时机、Boss 都会显著改变卡牌价值。请结合你的局内状态灵活取舍。&lt;/p&gt;
&lt;h2&gt;起始卡 Starter Cards&lt;/h2&gt;
&lt;h3&gt;防御 Defend&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;Defend&apos;
rarity=&apos;Starter&apos;
type=&apos;Skill&apos;
cost=&apos;1&apos;
effect=&apos;Gain 5(8) Block.&apos;
score={5}
image=&apos;https://pic.hana0721.top//Defend_G.8vni909zoh.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;猎人的防御价值会比较高，评分也会比其他角色的防御卡更高一些。
首先，取决于猎人的毒系终端，毒会偏向于防杀。
其次，猎人有一张轮椅卡——灵动，可以有效提高防御的数值。
综上，猎人的防御是普遍比打击有价值的。
&lt;/p&gt;
&lt;h3&gt;中和 Neutralize&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;Neutralize&apos;
rarity=&apos;Starter&apos;
type=&apos;Attack&apos;
cost=&apos;0&apos;
effect=&apos;Deal 3(4) damage. Apply 1(2) Weak.&apos;
score={7.5}
image=&apos;https://pic.hana0721.top//Neutralize.67y1yngycu.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;0费的1层虚弱，敲后2层。
虚弱覆盖率是 Silent 在 NOSL 玩法中需要重点关注的。
因此，一般在进入一层 boss 前会升级中和，若没有其他的虚弱卡。
同时，轮椅遗物纸鹤的存在更加提高了虚弱的价值。&lt;/p&gt;
&lt;h3&gt;打击 Strike&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;Strike&apos;
rarity=&apos;Starter&apos;
type=&apos;Attack&apos;
cost=&apos;1&apos;
effect=&apos;Deal 6(9) damage.&apos;
score={2}
image=&apos;https://pic.hana0721.top//Strike_G.5trm7s8nhy.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;打击，不说了。但是在 Silent 套牌中，打击还真不是最垃圾的，原来还有高手。&lt;/p&gt;
&lt;h3&gt;生存者 Survivor&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;Survivor&apos;
rarity=&apos;Starter&apos;
type=&apos;Skill&apos;
cost=&apos;1&apos;
effect=&apos;Gain 8(11) Block. Discard a card.&apos;
score={6}
image=&apos;https://pic.hana0721.top//Survivor.6m4hpip987.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;Silent 的费防比最高的卡，特效是丢弃一张牌。
在前期，丢弃是非常好的，因为你根本出不完手牌，还能听一些丢弃触发的卡牌。
在后期，当你过牌很足时，丢弃也是一种很好的卸牌手段。
针对保留，生存者可能时好时坏。
在你有金字塔的情况下一般是好的，保留量大，可以卸牌。
在你使用计划妥当的情况下，生存者可能会丢弃掉一些你想要保留的牌。
&lt;/p&gt;
&lt;h2&gt;普通卡 Common Cards&lt;/h2&gt;
&lt;h3&gt;杂技 Acrobatics&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;Acrobatics&apos;
rarity=&apos;Common&apos;
type=&apos;Skill&apos;
cost=&apos;1&apos;
effect=&apos;Draw 3(4) cards. Discard 1 card.&apos;
score={0}
image=&apos;https://pic.hana0721.top//Acrobatics.39lrv58oug.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;TODO: 写这张卡在 Silent 套牌中的定位、抓取优先级、升级优先级、和关键联动。
&lt;/p&gt;
&lt;h3&gt;后空翻 Backflip&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;Backflip&apos;
rarity=&apos;Common&apos;
type=&apos;Skill&apos;
cost=&apos;1&apos;
effect=&apos;Gain 5(8) Block. Draw 2 cards.&apos;
score={0}
image=&apos;https://pic.hana0721.top//Backflip.2dpafoz0eq.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;TODO: 写这张卡在 Silent 套牌中的定位、抓取优先级、升级优先级、和关键联动。
&lt;/p&gt;
&lt;h3&gt;灾祸 Bane&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;Bane&apos;
rarity=&apos;Common&apos;
type=&apos;Attack&apos;
cost=&apos;1&apos;
effect=&apos;Deal 7(10) damage. If the enemy is Poison, deal 7(10) damage again.&apos;
score={0}
image=&apos;https://pic.hana0721.top//Bane.6wrbio4hck.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;TODO: 写这张卡在 Silent 套牌中的定位、抓取优先级、升级优先级、和关键联动。
&lt;/p&gt;
&lt;h3&gt;刀刃之舞 Blade Dance&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;Blade Dance&apos;
rarity=&apos;Common&apos;
type=&apos;Skill&apos;
cost=&apos;1&apos;
effect=&apos;Add 3(4) Shiv to your hand.&apos;
score={0}
image=&apos;https://pic.hana0721.top//BladeDance.102rbnnydx.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;TODO: 写这张卡在 Silent 套牌中的定位、抓取优先级、升级优先级、和关键联动。
&lt;/p&gt;
&lt;h3&gt;斗篷与匕首 Cloak And Dagger&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;Cloak And Dagger&apos;
rarity=&apos;Common&apos;
type=&apos;Skill&apos;
cost=&apos;1&apos;
effect=&apos;Gain 6 Block. Add 1(2) Shiv to your hand.&apos;
score={0}
image=&apos;https://pic.hana0721.top//CloakAndDagger.92qq4fw53w.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;TODO: 写这张卡在 Silent 套牌中的定位、抓取优先级、升级优先级、和关键联动。
&lt;/p&gt;
&lt;h3&gt;匕首雨 Dagger Spray&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;Dagger Spray&apos;
rarity=&apos;Common&apos;
type=&apos;Attack&apos;
cost=&apos;1&apos;
effect=&apos;Deal 4(6) damage to ALL enemies twice.&apos;
score={0}
image=&apos;https://pic.hana0721.top//DaggerSpray.1apl4t36jj.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;TODO: 写这张卡在 Silent 套牌中的定位、抓取优先级、升级优先级、和关键联动。
&lt;/p&gt;
&lt;h3&gt;投掷匕首 Dagger Throw&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;Dagger Throw&apos;
rarity=&apos;Common&apos;
type=&apos;Attack&apos;
cost=&apos;1&apos;
effect=&apos;Deal 9(12) damage. Draw 1 card. Discard 1 card.&apos;
score={0}
image=&apos;https://pic.hana0721.top//R_dagger-throw.1apl4t36k5.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;TODO: 写这张卡在 Silent 套牌中的定位、抓取优先级、升级优先级、和关键联动。
&lt;/p&gt;
&lt;h3&gt;致命毒药 Deadly Poison&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;Deadly Poison&apos;
rarity=&apos;Common&apos;
type=&apos;Skill&apos;
cost=&apos;1&apos;
effect=&apos;Apply 5(7) Poison.&apos;
score={0}
image=&apos;https://pic.hana0721.top//DeadlyPoison.60uu37uswx.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;TODO: 写这张卡在 Silent 套牌中的定位、抓取优先级、升级优先级、和关键联动。
&lt;/p&gt;
&lt;h3&gt;偏折 Deflect&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;Deflect&apos;
rarity=&apos;Common&apos;
type=&apos;Skill&apos;
cost=&apos;0&apos;
effect=&apos;Gain 4(7) Block.&apos;
score={0}
image=&apos;https://pic.hana0721.top//Deflect.9o0dqqqleq.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;TODO: 写这张卡在 Silent 套牌中的定位、抓取优先级、升级优先级、和关键联动。
&lt;/p&gt;
&lt;h3&gt;闪躲翻滚 Dodge and Roll&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;Dodge and Roll&apos;
rarity=&apos;Common&apos;
type=&apos;Skill&apos;
cost=&apos;1&apos;
effect=&apos;Gain 4(6) Block. Next turn, gain 4(6) Block.&apos;
score={0}
image=&apos;https://pic.hana0721.top//DodgeandRoll.102rbnnyea.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;TODO: 写这张卡在 Silent 套牌中的定位、抓取优先级、升级优先级、和关键联动。
&lt;/p&gt;
&lt;h3&gt;飞膝 Flying Knee&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;Flying Knee&apos;
rarity=&apos;Common&apos;
type=&apos;Attack&apos;
cost=&apos;1&apos;
effect=&apos;Deal 8(11) damage. Next turn, gain 1 Energy.&apos;
score={0}
image=&apos;https://pic.hana0721.top//FlyingKnee.3rbtjqa2g5.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;TODO: 写这张卡在 Silent 套牌中的定位、抓取优先级、升级优先级、和关键联动。
&lt;/p&gt;
&lt;h3&gt;抢占先机 Outmaneuver&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;Outmaneuver&apos;
rarity=&apos;Common&apos;
type=&apos;Skill&apos;
cost=&apos;1&apos;
effect=&apos;Next turn, gain 2(3) Energy.&apos;
score={0}
image=&apos;https://pic.hana0721.top//Outmaneuver.26m2k9cv02.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;TODO: 写这张卡在 Silent 套牌中的定位、抓取优先级、升级优先级、和关键联动。
&lt;/p&gt;
&lt;h3&gt;尖啸 Piercing Wail&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;Piercing Wail&apos;
rarity=&apos;Common&apos;
type=&apos;Skill&apos;
cost=&apos;1&apos;
effect=&apos;ALL enemies lose 6(8) Strength for 1 turn. Exhaust.&apos;
score={0}
image=&apos;https://pic.hana0721.top//PiercingWail.7pvtx7coj.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;TODO: 写这张卡在 Silent 套牌中的定位、抓取优先级、升级优先级、和关键联动。
&lt;/p&gt;
&lt;h3&gt;带毒刺击 Poisoned Stab&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;Poisoned Stab&apos;
rarity=&apos;Common&apos;
type=&apos;Attack&apos;
cost=&apos;1&apos;
effect=&apos;Deal 6(8) damage. Apply 3(4) Poison.&apos;
score={0}
image=&apos;https://pic.hana0721.top//PoisonedStab.3625xffm5v.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;TODO: 写这张卡在 Silent 套牌中的定位、抓取优先级、升级优先级、和关键联动。
&lt;/p&gt;
&lt;h3&gt;早有准备 Prepared&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;Prepared&apos;
rarity=&apos;Common&apos;
type=&apos;Skill&apos;
cost=&apos;0&apos;
effect=&apos;Draw 1(2) card(s). Discard 1(2) card(s).&apos;
score={0}
image=&apos;https://pic.hana0721.top//Prepared.1ziuotqpkk.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;TODO: 写这张卡在 Silent 套牌中的定位、抓取优先级、升级优先级、和关键联动。
&lt;/p&gt;
&lt;h3&gt;快斩 Quick Slash&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;Quick Slash&apos;
rarity=&apos;Common&apos;
type=&apos;Attack&apos;
cost=&apos;1&apos;
effect=&apos;Deal 8(12) damage. Draw 1 card.&apos;
score={0}
image=&apos;https://pic.hana0721.top//QuickSlash.70axgdxk38.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;TODO: 写这张卡在 Silent 套牌中的定位、抓取优先级、升级优先级、和关键联动。
&lt;/p&gt;
&lt;h3&gt;切割 Slice&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;Slice&apos;
rarity=&apos;Common&apos;
type=&apos;Attack&apos;
cost=&apos;0&apos;
effect=&apos;Deal 6(9) damage.&apos;
score={0}
image=&apos;https://pic.hana0721.top//Slice.3ns7m0gzqt.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;TODO: 写这张卡在 Silent 套牌中的定位、抓取优先级、升级优先级、和关键联动。
&lt;/p&gt;
&lt;h3&gt;隐秘打击 Sneaky Strike&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;Sneaky Strike&apos;
rarity=&apos;Common&apos;
type=&apos;Attack&apos;
cost=&apos;2&apos;
effect=&apos;Deal 12(16) damage. If you have discarded a card this turn, gain 2 Energy.&apos;
score={0}
image=&apos;https://pic.hana0721.top//SneakyStrike.13md9dh14m.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;TODO: 写这张卡在 Silent 套牌中的定位、抓取优先级、升级优先级、和关键联动。
&lt;/p&gt;
&lt;h3&gt;突然一拳 Sucker Punch&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;Sucker Punch&apos;
rarity=&apos;Common&apos;
type=&apos;Attack&apos;
cost=&apos;1&apos;
effect=&apos;Deal 7(9) damage. Apply 1(2) Weak.&apos;
score={0}
image=&apos;https://pic.hana0721.top//SuckerPunch.szjg81sza.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;TODO: 写这张卡在 Silent 套牌中的定位、抓取优先级、升级优先级、和关键联动。
&lt;/p&gt;
&lt;h2&gt;罕见卡 Uncommon Cards&lt;/h2&gt;
&lt;h3&gt;精准 Accuracy&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;Accuracy&apos;
rarity=&apos;Uncommon&apos;
type=&apos;Power&apos;
cost=&apos;1&apos;
effect=&apos;Shiv deal 4(6) additional damage.&apos;
score={0}
image=&apos;https://pic.hana0721.top//Accuracy.1hst08pbyf.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;TODO: 写这张卡在 Silent 套牌中的定位、抓取优先级、升级优先级、和关键联动。
&lt;/p&gt;
&lt;h3&gt;全力攻击 All-Out Attack&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;All-Out Attack&apos;
rarity=&apos;Uncommon&apos;
type=&apos;Attack&apos;
cost=&apos;1&apos;
effect=&apos;Deal 10(14) damage to ALL enemies. Discard 1 card at random.&apos;
score={0}
image=&apos;https://pic.hana0721.top//All-OutAttack.4clh614iq7.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;TODO: 写这张卡在 Silent 套牌中的定位、抓取优先级、升级优先级、和关键联动。
&lt;/p&gt;
&lt;h3&gt;背刺 Backstab&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;Backstab&apos;
rarity=&apos;Uncommon&apos;
type=&apos;Attack&apos;
cost=&apos;0&apos;
effect=&apos;Deal 11(15) damage. Innate. Exhaust.&apos;
score={0}
image=&apos;https://pic.hana0721.top//Backstab.102rbnnydv.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;TODO: 写这张卡在 Silent 套牌中的定位、抓取优先级、升级优先级、和关键联动。
&lt;/p&gt;
&lt;h3&gt;残影 Blur&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;Blur&apos;
rarity=&apos;Uncommon&apos;
type=&apos;Skill&apos;
cost=&apos;1&apos;
effect=&apos;Gain 5(8) Block. Block is not removed at the start of your next turn.&apos;
score={0}
image=&apos;https://pic.hana0721.top//Blur.9rjzogjo46.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;TODO: 写这张卡在 Silent 套牌中的定位、抓取优先级、升级优先级、和关键联动。
&lt;/p&gt;
&lt;h3&gt;弹跳药瓶 Bouncing Flask&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;Bouncing Flask&apos;
rarity=&apos;Uncommon&apos;
type=&apos;Skill&apos;
cost=&apos;2&apos;
effect=&apos;Apply 3 Poison to a random enemy 3(4) times.&apos;
score={0}
image=&apos;https://pic.hana0721.top//BouncingFlask.7w7evu78if.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;TODO: 写这张卡在 Silent 套牌中的定位、抓取优先级、升级优先级、和关键联动。
&lt;/p&gt;
&lt;h3&gt;计算下注 Calculated Gamble&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;Calculated Gamble&apos;
rarity=&apos;Uncommon&apos;
type=&apos;Skill&apos;
cost=&apos;0&apos;
effect=&quot;Discard your hand, then draw that many cards. Exhaust. (Don&apos;t exhaust when upgraded.)&quot;
score={0}
image=&apos;https://pic.hana0721.top//CalculatedGamble.b9hrn0fdm.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;TODO: 写这张卡在 Silent 套牌中的定位、抓取优先级、升级优先级、和关键联动。
&lt;/p&gt;
&lt;h3&gt;铁蒺藜 Caltrops&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;Caltrops&apos;
rarity=&apos;Uncommon&apos;
type=&apos;Power&apos;
cost=&apos;1&apos;
effect=&apos;Whenever you are attacked, deal 3(5) damage back.&apos;
score={0}
image=&apos;https://pic.hana0721.top//Caltrops.3d5dsv1rkr.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;TODO: 写这张卡在 Silent 套牌中的定位、抓取优先级、升级优先级、和关键联动。
&lt;/p&gt;
&lt;h3&gt;催化剂 Catalyst&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;Catalyst&apos;
rarity=&apos;Uncommon&apos;
type=&apos;Skill&apos;
cost=&apos;1&apos;
effect=&quot;Double(Triple) an enemy&apos;s Poison. Exhaust.&quot;
score={0}
image=&apos;https://pic.hana0721.top//Catalyst.5j4semtfbv.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;TODO: 写这张卡在 Silent 套牌中的定位、抓取优先级、升级优先级、和关键联动。
&lt;/p&gt;
&lt;h3&gt;勒脖 Choke&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;Choke&apos;
rarity=&apos;Uncommon&apos;
type=&apos;Attack&apos;
cost=&apos;2&apos;
effect=&apos;Deal 12 damage. Whenever you play a card this turn, the targeted enemy loses 3(5) HP.&apos;
score={0}
image=&apos;https://pic.hana0721.top//Choke.3625xffm58.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;TODO: 写这张卡在 Silent 套牌中的定位、抓取优先级、升级优先级、和关键联动。
&lt;/p&gt;
&lt;h3&gt;全神贯注 Concentrate&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;Concentrate&apos;
rarity=&apos;Uncommon&apos;
type=&apos;Skill&apos;
cost=&apos;0&apos;
effect=&apos;Discard 3(2) cards. Gain 2 Energy.&apos;
score={0}
image=&apos;https://pic.hana0721.top//Concentrate.60uu37uswt.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;TODO: 写这张卡在 Silent 套牌中的定位、抓取优先级、升级优先级、和关键联动。
&lt;/p&gt;
&lt;h3&gt;致残毒云 Crippling Cloud&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;Crippling Cloud&apos;
rarity=&apos;Uncommon&apos;
type=&apos;Skill&apos;
cost=&apos;2&apos;
effect=&apos;Apply 4(7) Poison and 2 Weak to ALL enemies. Exhaust.&apos;
score={0}
image=&apos;https://pic.hana0721.top//CripplingCloud.3gozqkuuan.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;TODO: 写这张卡在 Silent 套牌中的定位、抓取优先级、升级优先级、和关键联动。
&lt;/p&gt;
&lt;h3&gt;冲刺 Dash&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;Dash&apos;
rarity=&apos;Uncommon&apos;
type=&apos;Attack&apos;
cost=&apos;2&apos;
effect=&apos;Gain 10(13) Block. Deal 10(13) damage.&apos;
score={0}
image=&apos;https://pic.hana0721.top//Dash.9ddjxlbd9c.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;TODO: 写这张卡在 Silent 套牌中的定位、抓取优先级、升级优先级、和关键联动。
&lt;/p&gt;
&lt;h3&gt;声东击西 Distraction&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;Distraction&apos;
rarity=&apos;Uncommon&apos;
type=&apos;Skill&apos;
cost=&apos;1(0)&apos;
effect=&apos;Add a random Skill to your hand. It costs 0 this turn. Exhaust.&apos;
score={0}
image=&apos;https://pic.hana0721.top//Distraction.4g533qxlgi.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;TODO: 写这张卡在 Silent 套牌中的定位、抓取优先级、升级优先级、和关键联动。
&lt;/p&gt;
&lt;h3&gt;无尽苦痛 Endless Agony&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;Endless Agony&apos;
rarity=&apos;Uncommon&apos;
type=&apos;Attack&apos;
cost=&apos;0&apos;
effect=&apos;Whenever you draw this card, add a copy of it to your hand. Deal 4(6) damage. Exhaust.&apos;
score={0}
image=&apos;https://pic.hana0721.top//EndlessAgony.2rvq6k7bab.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;TODO: 写这张卡在 Silent 套牌中的定位、抓取优先级、升级优先级、和关键联动。
&lt;/p&gt;
&lt;h3&gt;逃脱计划 Escape Plan&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;Escape Plan&apos;
rarity=&apos;Uncommon&apos;
type=&apos;Skill&apos;
cost=&apos;0&apos;
effect=&apos;Draw 1 card. If you draw a Skill, gain 3(5) Block.&apos;
score={0}
image=&apos;https://pic.hana0721.top//EscapePlan.232gmjjs9w.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;TODO: 写这张卡在 Silent 套牌中的定位、抓取优先级、升级优先级、和关键联动。
&lt;/p&gt;
&lt;h3&gt;内脏切除 Eviscerate&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;Eviscerate&apos;
rarity=&apos;Uncommon&apos;
type=&apos;Attack&apos;
cost=&apos;3&apos;
effect=&apos;Costs 1 less Energy for each card discarded this turn. Deal 7(9) damage three times.&apos;
score={0}
image=&apos;https://pic.hana0721.top//Eviscerate.96ac25p7tw.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;TODO: 写这张卡在 Silent 套牌中的定位、抓取优先级、升级优先级、和关键联动。
&lt;/p&gt;
&lt;h3&gt;独门技术 Expertise&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;Expertise&apos;
rarity=&apos;Uncommon&apos;
type=&apos;Skill&apos;
cost=&apos;1&apos;
effect=&apos;Draw cards until you have 6(7) in your hand.&apos;
score={0}
image=&apos;https://pic.hana0721.top//Expertise.3ns7m0gzqc.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;TODO: 写这张卡在 Silent 套牌中的定位、抓取优先级、升级优先级、和关键联动。
&lt;/p&gt;
&lt;h3&gt;终结技 Finisher&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;Finisher&apos;
rarity=&apos;Uncommon&apos;
type=&apos;Attack&apos;
cost=&apos;1&apos;
effect=&apos;Deal 6(8) damage for each Attack played this turn.&apos;
score={0}
image=&apos;https://pic.hana0721.top//Finisher.5fl6gx0cmc.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;TODO: 写这张卡在 Silent 套牌中的定位、抓取优先级、升级优先级、和关键联动。
&lt;/p&gt;
&lt;h3&gt;飞镖 Flechettes&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;Flechettes&apos;
rarity=&apos;Uncommon&apos;
type=&apos;Attack&apos;
cost=&apos;1&apos;
effect=&apos;Deal 4(6) damage for each Skill in your hand.&apos;
score={0}
image=&apos;https://pic.hana0721.top//Flechettes.175z73a3tx.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;TODO: 写这张卡在 Silent 套牌中的定位、抓取优先级、升级优先级、和关键联动。
&lt;/p&gt;
&lt;h3&gt;灵动步法 Footwork&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;Footwork&apos;
rarity=&apos;Uncommon&apos;
type=&apos;Power&apos;
cost=&apos;1&apos;
effect=&apos;Gain 2(3) Dexterity.&apos;
score={0}
image=&apos;https://pic.hana0721.top//Footwork.3yf1f5w7vp.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;TODO: 写这张卡在 Silent 套牌中的定位、抓取优先级、升级优先级、和关键联动。
&lt;/p&gt;
&lt;h3&gt;足跟勾 Heel Hook&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;Heel Hook&apos;
rarity=&apos;Uncommon&apos;
type=&apos;Attack&apos;
cost=&apos;1&apos;
effect=&apos;Deal 5(8) damage. If the enemy is Weak, gain 1 Energy and draw 1 card.&apos;
score={0}
image=&apos;https://pic.hana0721.top//HeelHook.2a5ohz5xpi.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;TODO: 写这张卡在 Silent 套牌中的定位、抓取优先级、升级优先级、和关键联动。
&lt;/p&gt;
&lt;h3&gt;无限刀刃 Infinite Blades&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;Infinite Blades&apos;
rarity=&apos;Uncommon&apos;
type=&apos;Power&apos;
cost=&apos;1&apos;
effect=&apos;(Innate when upgraded.) At the start of your turn, add a Shiv to your hand.&apos;
score={0}
image=&apos;https://pic.hana0721.top//InfiniteBlades.67y1yngycn.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;TODO: 写这张卡在 Silent 套牌中的定位、抓取优先级、升级优先级、和关键联动。
&lt;/p&gt;
&lt;h3&gt;扫腿 Leg Sweep&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;Leg Sweep&apos;
rarity=&apos;Uncommon&apos;
type=&apos;Skill&apos;
cost=&apos;2&apos;
effect=&apos;Apply 2(3) Weak. Gain 11(14) Block.&apos;
score={0}
image=&apos;https://pic.hana0721.top//LegSweep.83amr9tdyf.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;TODO: 写这张卡在 Silent 套牌中的定位、抓取优先级、升级优先级、和关键联动。
&lt;/p&gt;
&lt;h3&gt;精巧刺击 Masterful Stab&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;Masterful Stab&apos;
rarity=&apos;Uncommon&apos;
type=&apos;Attack&apos;
cost=&apos;0&apos;
effect=&apos;Costs 1 additional Energy for each time you lose HP this combat. Deal 12(16) damage.&apos;
score={0}
image=&apos;https://pic.hana0721.top//MasterfulStab.39lrv58ovb.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;TODO: 写这张卡在 Silent 套牌中的定位、抓取优先级、升级优先级、和关键联动。
&lt;/p&gt;
&lt;h3&gt;毒雾 Noxious Fumes&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;Noxious Fumes&apos;
rarity=&apos;Uncommon&apos;
type=&apos;Power&apos;
cost=&apos;1&apos;
effect=&apos;At the start of your turn, apply 2(3) Poison to ALL enemies.&apos;
score={0}
image=&apos;https://pic.hana0721.top//NoxiousFumes.41yncvpalu.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;TODO: 写这张卡在 Silent 套牌中的定位、抓取优先级、升级优先级、和关键联动。
&lt;/p&gt;
&lt;h3&gt;猎杀者 Predator&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;Predator&apos;
rarity=&apos;Uncommon&apos;
type=&apos;Attack&apos;
cost=&apos;2&apos;
effect=&apos;Deal 15(20) damage. Draw 2 more cards next turn.&apos;
score={0}
image=&apos;https://pic.hana0721.top//Predator.2a5ohz5xpw.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;TODO: 写这张卡在 Silent 套牌中的定位、抓取优先级、升级优先级、和关键联动。
&lt;/p&gt;
&lt;h3&gt;本能反应 Reflex&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;Reflex&apos;
rarity=&apos;Uncommon&apos;
type=&apos;Skill&apos;
cost=&apos;Unplayable&apos;
effect=&apos;If this card is discarded from your hand, draw 2(3) cards.&apos;
score={0}
image=&apos;https://pic.hana0721.top//Reflex.lwbksfnjp.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;TODO: 写这张卡在 Silent 套牌中的定位、抓取优先级、升级优先级、和关键联动。
&lt;/p&gt;
&lt;h3&gt;千穿百刺 Riddle With Holes&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;Riddle With Holes&apos;
rarity=&apos;Uncommon&apos;
type=&apos;Attack&apos;
cost=&apos;2&apos;
effect=&apos;Deal 3(4) damage 5 times.&apos;
score={0}
image=&apos;https://pic.hana0721.top//RiddleWithHoles.73uje3qmt1.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;TODO: 写这张卡在 Silent 套牌中的定位、抓取优先级、升级优先级、和关键联动。
&lt;/p&gt;
&lt;h3&gt;部署 Setup&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;Setup&apos;
rarity=&apos;Uncommon&apos;
type=&apos;Skill&apos;
cost=&apos;1(0)&apos;
effect=&apos;Place a card in your hand on top of your draw pile. It costs 0 until it is played.&apos;
score={0}
image=&apos;https://pic.hana0721.top//Setup.5moeccmi2d.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;TODO: 写这张卡在 Silent 套牌中的定位、抓取优先级、升级优先级、和关键联动。
&lt;/p&gt;
&lt;h3&gt;串刺 Skewer&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;Skewer&apos;
rarity=&apos;Uncommon&apos;
type=&apos;Attack&apos;
cost=&apos;X&apos;
effect=&apos;Deal 7(10) damage X times.&apos;
score={0}
image=&apos;https://pic.hana0721.top//Skewer.1hst08pbzp.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;TODO: 写这张卡在 Silent 套牌中的定位、抓取优先级、升级优先级、和关键联动。
&lt;/p&gt;
&lt;h3&gt;战术大师 Tactician&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;Tactician&apos;
rarity=&apos;Uncommon&apos;
type=&apos;Skill&apos;
cost=&apos;Unplayable&apos;
effect=&apos;If this card is discarded from your hand, gain 1(2) Energy.&apos;
score={0}
image=&apos;https://pic.hana0721.top//Tactician.pfxii8q9j.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;TODO: 写这张卡在 Silent 套牌中的定位、抓取优先级、升级优先级、和关键联动。
&lt;/p&gt;
&lt;h3&gt;恐怖 Terror&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;Terror&apos;
rarity=&apos;Uncommon&apos;
type=&apos;Skill&apos;
cost=&apos;1(0)&apos;
effect=&apos;Apply 99 Vulnerable. Exhaust.&apos;
score={0}
image=&apos;https://pic.hana0721.top//Terror.5fl6gx0cmv.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;TODO: 写这张卡在 Silent 套牌中的定位、抓取优先级、升级优先级、和关键联动。
&lt;/p&gt;
&lt;h3&gt;计划妥当 Well-Laid Plans&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;Well-Laid Plans&apos;
rarity=&apos;Uncommon&apos;
type=&apos;Power&apos;
cost=&apos;1&apos;
effect=&apos;At the end of your turn, Retain up to 1(2) card(s).&apos;
score={0}
image=&apos;https://pic.hana0721.top//Well-LaidPlans.3d5dsv1rlk.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;TODO: 写这张卡在 Silent 套牌中的定位、抓取优先级、升级优先级、和关键联动。
&lt;/p&gt;
&lt;h2&gt;稀有卡 Rare Cards&lt;/h2&gt;
&lt;h3&gt;凌迟 A Thousand Cuts&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;A Thousand Cuts&apos;
rarity=&apos;Rare&apos;
type=&apos;Power&apos;
cost=&apos;2&apos;
effect=&apos;Whenever you play a card, deal 1(2) damage to ALL enemies.&apos;
score={7.5}
image=&apos;https://pic.hana0721.top//AThousandCuts.5trm7s8ngx.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;开局金卡：第三梯队；但如果一层 Boss 是史莱姆老大，抓位仅次于玻璃刀、炼药和余像。
凌迟的问题在于 2 费起手偏重，未升级前数值一般，投资回报不高；升级后出伤就会达到合格甚至超模水平。前期可能因难以下场而增加战损，但随着对局推进，它能稳定应对高压力的精英和 Boss 战，例如三奴隶、地精首领、蛇女等。
打三奴隶时通常不如尸爆术，但在需要顺带清爪牙的战斗（如地精首领和蛇女）里，凌迟的发挥很稳定。
敲位很高，基本默认要敲；不升级很难达到合格输出。
&lt;/p&gt;
&lt;h3&gt;肾上腺素 Adrenaline&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;Adrenaline&apos;
rarity=&apos;Rare&apos;
type=&apos;Skill&apos;
cost=&apos;0&apos;
effect=&apos;Gain 1(2) Energy. Draw 2 cards. Exhaust.&apos;
score={8.5}
image=&apos;https://pic.hana0721.top//Adrenaline.2h8wdes349.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;开局金卡：第二梯队。虽然是第二梯队，但不妨碍肾上腺素是我爹。
肾上腺素同时提供过牌和费用，本质上是启动卡和卡组润滑剂，本身不直接提供数值。
爆发 + 肾上腺素能在当前回合提供大量资源，方便启动与打数值；夜宴 + 肾上腺素则能保证次回合稳定展开。
敲位：一层通常要让位给过渡输出；到二层后，很多输出升级已难再跨攻杀阈值，肾上腺素的敲位会明显上升，既能强化展开，也更利于长线作战。
&lt;/p&gt;
&lt;h3&gt;余像 After Image&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;After Image&apos;
rarity=&apos;Rare&apos;
type=&apos;Power&apos;
cost=&apos;1&apos;
effect=&apos;(Innate when upgraded.) Whenever you play a card, gain 1 Block.&apos;
score={9.5}
image=&apos;https://pic.hana0721.top//AfterImage.7p470el32j.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;开局金卡：第二梯队。虽然是第二梯队，但不妨碍余像是我爹。
开局抓到余像时，能显著降低一层小怪战损；有余像时，刀刃之舞、斗篷与匕首等多动刀牌，以及切割、偏折、逃脱计划等 0 费牌的抓位都会上升。随着层数提高和加费遗物增多，每回合出牌数提升，余像收益也会持续走高。一张余像能过渡，两张基本能接管防御；若能夜宴余像，很多对局的防御终端都能解决。
敲位较高。数值不足时可让位给过渡输出；输出够、或者能稳住防御打长线时，升级余像能稳定降低战损。天鹅绒颈圈限制每回合出牌数，与余像相性较差。&lt;/p&gt;
&lt;h3&gt;炼制药水 Alchemize&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;Alchemize&apos;
rarity=&apos;Rare&apos;
type=&apos;Skill&apos;
cost=&apos;1(0)&apos;
effect=&apos;Obtain a random potion. Exhaust.&apos;
score={9.5}
image=&apos;https://pic.hana0721.top//Alchemize.4n8az6jqvg.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;开局金卡：开局最强金卡之一，不拿通常是治理问题。
这是猎手少有的局外收益卡。药水虽然有随机性，但过渡能力很强，能帮你滚雪球；高质量药水也可以留到关键战斗保命或提速。
炼药作为局外收益卡，虽不能被尼利的宝典或发现复制，但能被夜宴指定；在防御稳、怪物无成长时，可打出双夜宴多炼药的上限玩法。卡组里有爆发时，也可以等两张牌同回合抽到，打出双炼药收益。
&lt;/p&gt;
&lt;h3&gt;子弹时间 Bullet Time&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;Bullet Time&apos;
rarity=&apos;Rare&apos;
type=&apos;Skill&apos;
cost=&apos;3(2)&apos;
effect=&apos;You cannot draw additional cards this turn. Reduce the cost of all cards in your hand to 0 this turn.&apos;
score={7.5}
image=&apos;https://pic.hana0721.top//BulletTime.5q80a2fkrc.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;开局金卡：第三梯队。没有配合时接近“伤口”，有条件可以听高费牌。
没有稳定过牌前，通常先不急着敲；有过牌体系后建议升级，避免过牌后费用不够下子弹时间（确保过牌后仍有费用出牌）。
它能把手牌高费卡统一压成 0 费，配合猎杀者、跳瓶、冲刺、夜宴、扫腿等都能打出很强的当回合资源转换；但和计算下注同回合时可能冲突，也会拮抗 0 费体系。
注意，子弹时间的禁止抽牌可以被人工抵消，也可以被橙色药丸解除。&lt;/p&gt;
&lt;h3&gt;爆发 Burst&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;Burst&apos;
rarity=&apos;Rare&apos;
type=&apos;Skill&apos;
cost=&apos;1&apos;
effect=&apos;This turn, your next 1(2) Skill(s) is(are) played twice.&apos;
score={7.5}
image=&apos;https://pic.hana0721.top//Burst.491v8bbg0p.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;开局金卡：第三梯队，偏防御向，但能有效提高技能牌利用率。
敲位极高：不升级只能复制 1 张技能，升级后可复制 2 张，质变很明显。
可以配合肾上腺素、萎靡、跳瓶、尸爆术、残影、催化剂等高价值技能牌。
本质上是把关键技能的收益翻倍。&lt;/p&gt;
&lt;h3&gt;尸爆术 Corpse Explosion&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;Corpse Explosion&apos;
rarity=&apos;Rare&apos;
type=&apos;Skill&apos;
cost=&apos;2&apos;
effect=&apos;Apply 6(9) Poison. When the enemy dies, deal damage equal to its max HP to ALL enemies.&apos;
score={8.5}
image=&apos;https://pic.hana0721.top//CorpseExplosion.2a5ohz5xpa.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;开局金卡：第二梯队，机制型 AOE，毒贼核心之一。
敲位很高，但通常略低于纯 AOE 数值卡的必敲优先级。
在一层，毒层机制能针对乐加维林和小红，爆炸机制也能处理三柱等群怪场景。
面对群怪时表现极好，同时还能顺带拆部分人工制品。
较早拿到尸爆术时，可以考虑向毒体系构筑，提高催化剂抓位。
后期补入尸爆术，也能显著增强 AOE，尤其针对矛盾、觉醒者以及甜圈八体。
&lt;/p&gt;
&lt;h3&gt;死吧死吧死吧 Die Die Die&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;Die Die Die&apos;
rarity=&apos;Rare&apos;
type=&apos;Attack&apos;
cost=&apos;1&apos;
effect=&apos;Deal 13(17) damage to ALL enemies. Exhaust.&apos;
score={8}
image=&apos;https://pic.hana0721.top//DieDieDie.232gmjjs9u.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;开局金卡：第二梯队，抓位略低于尸爆术。
纯粹的数值卡，通常不急着敲，前期过渡能力很强。
如果畏惧蛇女的诛仙剑阵，可以考虑带一张。
&lt;/p&gt;
&lt;h3&gt;双重存在 Doppelganger&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;Doppelganger&apos;
rarity=&apos;Rare&apos;
type=&apos;Skill&apos;
cost=&apos;X&apos;
effect=&apos;Next turn, draw X(+1) cards and gain X(+1) Energy.&apos;
score={8}
image=&apos;https://pic.hana0721.top//Doppelganger.175z73a3tv.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;开局金卡：第三梯队。
跨回合收益可以利用没花完的费用，但前期费用紧张时，打它往往接近“眩晕”。
面对 Boss 的高压回合时价值会上升，比如勇士的处刑回合以及铜人的爆发回合。
可以配合爆发复制双重存在，做出高费用启动回合。
双重存在敲位较高；有 X 药时可适当下调，一般敲位高于肾上腺素。&lt;/p&gt;
&lt;h3&gt;荼毒 Envenom&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;Envenom&apos;
rarity=&apos;Rare&apos;
type=&apos;Power&apos;
cost=&apos;2(1)&apos;
effect=&apos;Whenever an attack deals unblocked damage, apply 1 Poison.&apos;
score={4}
image=&apos;https://pic.hana0721.top//Envenom.1ziuotqpk3.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;开局金卡：等于开局塞一张诅咒，前期基本打不出；六火环境可定向针对，但多数时候不如毒雾。
敲位极高，不升级经常下不去，除非你有蛇眼。
遗物异蛇头骨可以显著提高这张卡的抓位。
可以配合多段攻击卡，例如飞镖、刀舞、切割、终结技等（即使这样，也不建议为它硬抓低质量攻击牌）。&lt;/p&gt;
&lt;h3&gt;玻璃刀刃 Glass Knife&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;Glass Knife&apos;
rarity=&apos;Rare&apos;
type=&apos;Attack&apos;
cost=&apos;1&apos;
effect=&apos;Deal 8(12) damage twice. Decrease the damage of this card by 2 this combat.&apos;
score={8.5}
image=&apos;https://pic.hana0721.top//GlassKnife.4jop1gqo6e.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;开局金卡：开局第二强金卡，具有极其爆炸的过渡数值，适合打大部分短线战斗。
纯粹的数值卡，敲位极高，升级后直接提升 8 点基础伤害，收益非常扎实。
开局拿到后可以积极冲精英，能显著提高一层攻杀稳定性。
&lt;/p&gt;
&lt;h3&gt;华丽收场 Grand Finale&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;Grand Finale&apos;
rarity=&apos;Rare&apos;
type=&apos;Attack&apos;
cost=&apos;0&apos;
effect=&apos;Can only be played if there are no cards in your draw pile. Deal 50(60) damage to ALL enemies.&apos;
score={1}
image=&apos;https://pic.hana0721.top//GrandFinale.2yyy1ztgpy.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;开局金卡：开局塞一张诅咒。
这张卡只能在抽牌堆空时打出，伤害上限很高，但稳定性很差。
通常只有金字塔，或强运转 + 计划妥当时才考虑带，且更偏小卡组，不然很难稳定打出。
敲位较低，先解决“能稳定打出”再谈升级收益。
&lt;/p&gt;
&lt;h3&gt;萎靡 Malaise&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;Malaise&apos;
rarity=&apos;Rare&apos;
type=&apos;Skill&apos;
cost=&apos;X&apos;
effect=&apos;Enemy loses X(+1) Strength. Apply X(+1) Weak. Exhaust.&apos;
score={9}
image=&apos;https://pic.hana0721.top//Malaise.2yyy1ztgpz.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;开局金卡：第二梯队末端，六火蹲起特攻，对一层小怪精英相对弱势。
对连击怪发挥极佳，同时能稳定覆盖虚弱；道中可显著降低战损，Boss 战能大幅压低输出能力。对小手、地精首领、天罚等特定怪效果尤其好；打觉醒者、老头和心脏也很强。敲位极高（除非你有 X 药）；可以配合爆发打双萎靡，或配合全神贯注、双重存在、抢占先机打高费用萎靡。
&lt;/p&gt;
&lt;h3&gt;夜宴 Nightmare&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;Nightmare&apos;
rarity=&apos;Rare&apos;
type=&apos;Skill&apos;
cost=&apos;3(2)&apos;
effect=&apos;Choose a card. Next turn, add 3 copies of that card into your hand. Exhaust.&apos;
score={7}
image=&apos;https://pic.hana0721.top//Nightmare.1hst08pbzl.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;开局金卡：给你塞诅咒了，但未来可期。
这张卡非常难开，更适合在中后期补上限；若前期过渡已经足够强，也可以提前带一张。
可以配合灵动、幽魂、余像等防御核心，也能配合催化剂、精准等爆发输出；复制偏折、逃脱计划、残影、后空翻也能补防御浓度。
在 3-4 费环境下敲位很高，5 费后可适当下调。它也能配合子弹时间、部署强行下场，或借计划妥当、金字塔配合抢占先机提高稳定性。
&lt;/p&gt;
&lt;h3&gt;幻影杀手 Phantasmal Killer&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;Phantasmal Killer&apos;
rarity=&apos;Rare&apos;
type=&apos;Skill&apos;
cost=&apos;1(0)&apos;
effect=&apos;On your next turn, your Attacks deal double damage.&apos;
score={7}
image=&apos;https://pic.hana0721.top//PhantasmalKiller.3ns7m0gzqr.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;开局金卡：第三梯队，出伤非常不稳定，看你昨晚有没有给发牌员。
敲位极高，升级后更容易保证出手权，但不保证每回合都能吃满收益。
数值上限很高，但稳定性不足；通常需要计划妥当、金字塔，或高运转卡组来确保收益延续。
下回合生效的效果，不利于某些攻杀的环境，当然也不一定是坏事，比如配合猎杀者、双重存在以及抢占先机这些跨回合卡。&lt;/p&gt;
&lt;h3&gt;钢铁风暴 Storm of Steel&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;Storm of Steel&apos;
rarity=&apos;Rare&apos;
type=&apos;Skill&apos;
cost=&apos;1&apos;
effect=&apos;Discard your hand. Add 1 Shiv into your hand for each card discarded.&apos;
score={3}
image=&apos;https://pic.hana0721.top//StormofSteel.8s3wbagwza.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;开局金卡：很弱。
弃掉所有手牌在大多数场景会直接丢失出手权。少数情况下（例如有精准核心并配合金字塔）可以打出接近“绿色恶魔火”的爆发；有绷带时也能转化出很高防御。
它和树枝联动后上限会抬高，但整体还是明显弱于余像。
&lt;/p&gt;
&lt;h3&gt;必备工具 Tools of the Trade&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;Tools of the Trade&apos;
rarity=&apos;Rare&apos;
type=&apos;Power&apos;
cost=&apos;1(0)&apos;
effect=&apos;At the start of your turn, draw 1 card and discard 1 card.&apos;
score={7.5}
image=&apos;https://pic.hana0721.top//ToolsoftheTrade.1lcexyiepj.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;开局金卡：第三梯队。
道中无竞争时可以抓，打出后能稳定触发弃牌特效，配合内切、隐秘、战术等都不错。每回合多看一张牌，但不净增手牌数，会同步弃一张。
与金字塔相性较差，这时必备工具常常只剩卸牌作用。
&lt;/p&gt;
&lt;h3&gt;乾坤一掷 Unload&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;Unload&apos;
rarity=&apos;Rare&apos;
type=&apos;Attack&apos;
cost=&apos;1&apos;
effect=&apos;Deal 14(18) damage. Discard all non-Attack cards in your hand.&apos;
score={7}
image=&apos;https://pic.hana0721.top//Unload.45i9alidbr.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;开局金卡：属于第三梯队。
过渡能力很强，但弃牌副作用偏重。虽然可以配合内切、隐秘等卡提升过渡效率，但后期经常丢失出手权，尤其在计划妥当或金字塔体系里更明显。
&lt;/p&gt;
&lt;h3&gt;幽魂形态 Wraith Form&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;StsCardRating
name=&apos;Wraith Form&apos;
rarity=&apos;Rare&apos;
type=&apos;Power&apos;
cost=&apos;3&apos;
effect=&apos;Gain 2(3) Intangible. At the end of your turn, lose 1 Dexterity.&apos;
score={9}
image=&apos;https://pic.hana0721.top//WraithForm.2rvq6k7baw.webp&apos;&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;开局金卡：属于是第二梯队，比余像弱一点。
道中高优先级抓取，敲位极高，能显著提升短线作战能力，是短线毒体系的重要支点。
&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/125160058_p0_master1200.6ikvtm0o6l.webp"/><enclosure url="https://pic.hana0721.top/125160058_p0_master1200.6ikvtm0o6l.webp"/></item><item><title>Galgame 简评系列 2</title><link>https://agusexp25.top/blog/galgame-2</link><guid isPermaLink="true">https://agusexp25.top/blog/galgame-2</guid><description>小资历玩家的 Galgame 简评，仅代表个人观点。</description><pubDate>Mon, 13 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { GameRating, GameRatingCriteria, ManualTOC } from &apos;@/components/advanced&apos;&lt;/p&gt;
&lt;p&gt;免责说明：以下评分仅代表个人观点，旨在提供参考。每款游戏的体验因人而异，建议根据自己的喜好和需求进行选择。&lt;/p&gt;
&lt;p&gt;&amp;#x3C;ManualTOC
title=&apos;&apos;
categories={[
{
title: &apos;Galgame Rating Patches&apos;,
items: [
{ title: &apos;Patch 1&apos;, href: &apos;/blog/galgame-1&apos;, order: &apos;1&apos; },
{ title: &apos;Patch 2&apos;, href: &apos;/blog/galgame-2&apos;, order: &apos;2&apos; }
]
}
]}
/&gt;&lt;/p&gt;
&lt;h2&gt;美少女万华镜 -勿忘草与永远的少女-&lt;/h2&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;美少女万华镜 -理与迷宫的少女-&lt;/h2&gt;
&lt;h2&gt;友爱俱乐部&lt;/h2&gt;
&lt;h2&gt;命运石之门&lt;/h2&gt;
&lt;h2&gt;命运石之门 0&lt;/h2&gt;
&lt;h2&gt;弹丸论破 希望的学园和绝望高中生&lt;/h2&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;超级弹丸论破2 再见了绝望学园&lt;/h2&gt;
&lt;h2&gt;灰色的果实&lt;/h2&gt;
&lt;h2&gt;灰色的迷宫&lt;/h2&gt;
&lt;h2&gt;灰色的乐园&lt;/h2&gt;</content:encoded><h:img src="https://pic.hana0721.top/124956717_p0_master1200.83amt2xvmx.webp"/><enclosure url="https://pic.hana0721.top/124956717_p0_master1200.83amt2xvmx.webp"/></item><item><title>Galgame 简评系列 1</title><link>https://agusexp25.top/blog/galgame-1</link><guid isPermaLink="true">https://agusexp25.top/blog/galgame-1</guid><description>小资历玩家的 Galgame 简评，仅代表个人观点。</description><pubDate>Mon, 13 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { GameRating, GameRatingCriteria, ManualTOC } from &apos;@/components/advanced&apos;&lt;/p&gt;
&lt;p&gt;&amp;#x3C;ManualTOC
title=&apos;&apos;
categories={[
{
title: &apos;Galgame Rating Patches&apos;,
items: [
{ title: &apos;Patch 1&apos;, href: &apos;/blog/galgame-1&apos;, order: &apos;1&apos; },
{ title: &apos;Patch 2&apos;, href: &apos;/blog/galgame-2&apos;, order: &apos;2&apos; }
]
}
]}
/&gt;&lt;/p&gt;
&lt;p&gt;免责说明：以下评分仅代表个人观点，旨在提供参考。每款游戏的体验因人而异，建议根据自己的喜好和需求进行选择。&lt;/p&gt;
&lt;h2&gt;MUV-LUV EXTRA+UNLIMITED&lt;/h2&gt;
&lt;p&gt;&amp;#x3C;GameRating
title=&apos;MUV-LUV EXTRA+UNLIMITED&apos;
score={8.5}
bangumiId=&apos;4827&apos;
tldr=&apos;EXTRA 为废萌日常，UNLIMITED 就是 ALTERNATIVE 世界的故事了。&apos;
tags={[&apos;科幻&apos;, &apos;日常&apos;, &apos;剧情向&apos;, &apos;重口味&apos;]}&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/muvluvlogo.7pvslv04a.webp&quot; alt=&quot;&quot;&gt;
乍一看是部普通的废萌日常作，男主也是个典型的 Galgame 男主，至少在 EXTRA 部分是这样的。 但到了
UNLIMITED 部分，剧情就完全变了，把男主扔到了 BETA 的世界里。
这男主就特别有意思，看到战术机残骸在家里，第一感觉不是惊恐，而是觉得太几把帅了（笑死）。 UNLIMITED
篇主要也是将 BETA 的世界观介绍了一下，但是留下了许多谜团，是为 ALTERNATIVE 做铺垫的。
整体看下来，有续作加持，博主的评价可能会偏高。
&lt;/p&gt;
&lt;h2&gt;MUV-LUV ALTERNATIVE&lt;/h2&gt;
&lt;p&gt;&amp;#x3C;GameRating
title=&apos;MUV-LUV ALTERNATIVE&apos;
score={10.0}
bangumiId=&apos;4828&apos;
tldr=&apos;史上最燃 Galgame，伟大无需多言。巨人、魔圆以及石头门都有借鉴。&apos;
tags={[&apos;科幻&apos;, &apos;战争&apos;, &apos;剧情向&apos;, &apos;重口味&apos;]}&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/rl-note-3.3yex1xdpri.webp&quot; alt=&quot;&quot;&gt;
这作可以说是博主最喜欢的作品了，讲述了人类与外星生物 BETA 之间的战争故事。
可战争与热血只是这作的表面，真正让人印象深刻的是它对爱情、友情、牺牲和人性的深刻描绘。
角色塑造非常出色，每个角色都有独特的个性和动机，尤其是武爷的成长历程令人动容。
最喜欢的角色是纯夏，宇宙最强青梅，可以说整个故事都是因她而起的。
玩完了 ALTERNATIVE，才懂得 EXTRA 中日常的可贵，真希望大家都能活在没有 BETA 的世界里。&lt;/p&gt;
&lt;h2&gt;樱之诗-在樱花之森上飞舞&lt;/h2&gt;
&lt;p&gt;&amp;#x3C;GameRating
title=&apos;樱之诗-在樱花之森上飞舞&apos;
score={9.5}
bangumiId=&apos;22423&apos;
tldr=&apos;氛围废萌作，日常可能比较无聊，但后续剧情十分上头。&apos;
tags={[&apos;枕社&apos;, &apos;扶她自&apos;, &apos;治愈&apos;, &apos;剧情向&apos;]}&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/Sakura_no_uta.2ksi9r6jpk.webp&quot; alt=&quot;&quot;&gt; 这是博主早期玩的 Galgame
之一，很典型的亚撒西男主救赎系作品。
其实博主在玩的时候，并没有太喜欢这个游戏，因为扶她自的黄段子日常实在是太无聊。
但是呢，第二次游玩这个游戏时，其实早期的日常也埋了许多伏笔。
而且嘛，扶她自其实完全按照了《快乐王子》的剧本去写的，前期疯狂掉书袋，讲一些听不懂的话，但是氛围是不错的。
与女主们相比，男性角色反而会更有魅力，例如直哉、圭以及健一郎。
整体看下来，CG、音乐以及脚本都非常不错，虽然日常部分可能会让人觉得有些无聊，但后续的剧情发展绝对值得一玩。
&lt;/p&gt;
&lt;h2&gt;美好的每一天 ～不连续的存在～&lt;/h2&gt;
&lt;p&gt;&amp;#x3C;GameRating
title=&apos;美好的每一天 ～不连续的存在～&apos;
score={9.0}
bangumiId=&apos;4639&apos;
tldr=&apos;多视角叙事的剧情向作品，但不推荐心智不成熟的人玩。&apos;
tags={[&apos;枕社&apos;, &apos;治愈&apos;, &apos;重口&apos;, &apos;剧情向&apos;]}&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;https://pic.hana0721.top/wonderful.5trm6g6vbw.webp&quot; alt=&quot;&quot;&gt;
素晴日的剧情、音乐以及作画都不错，但是近年过于出圈出现太多哲逼小鬼了，导致路人缘可能不太好。
有人说前期剧情太过于黑暗，但是我认为其内核是最后几章的救赎。
作品采用了多视角叙事，讲述了短短几天发生的事情，采用了许多叙事性诡计，随着游戏进行，会一步步揭开整个事件的真相。
这部的剧情非常紧凑，几乎没有浪费文字的地方，除了扶她自的恶趣味xp。
整体看下来，还是非常推荐的，尤其是喜欢哲学的（呵呵），不过不太推荐心智不成熟的人玩，感觉会变成魔怔小鬼罢。
&lt;/p&gt;
&lt;h2&gt;壳之少女&lt;/h2&gt;
&lt;h2&gt;虚之少女&lt;/h2&gt;
&lt;h2&gt;天之少女&lt;/h2&gt;
&lt;h2&gt;Erewhon&lt;/h2&gt;
&lt;h2&gt;千恋*万花&lt;/h2&gt;
&lt;h2&gt;夏空彼方&lt;/h2&gt;
&lt;h2&gt;樱之刻-于樱花之森下漫步&lt;/h2&gt;
&lt;h2&gt;近月少女的礼仪&lt;/h2&gt;
&lt;h2&gt;少女理论及其周边 -巴黎学园篇-&lt;/h2&gt;
&lt;h2&gt;eden* They were only two, on the planet&lt;/h2&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;魔女的夜宴&lt;/h2&gt;
&lt;h2&gt;少女*领域&lt;/h2&gt;
&lt;h2&gt;RIDDLE JOKER&lt;/h2&gt;
&lt;h2&gt;饿殍：明末千里行&lt;/h2&gt;
&lt;h2&gt;永不枯萎的世界与终结之花&lt;/h2&gt;
&lt;h2&gt;ATRI -My Dear Moment-&lt;/h2&gt;
&lt;h2&gt;Clover Days&lt;/h2&gt;
&lt;h2&gt;逝去的你、于馆中萌生的憎恶&lt;/h2&gt;
&lt;h2&gt;濒死的骑士、于异世界中响彻的绝唱&lt;/h2&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;星光咖啡馆与死神之蝶&lt;/h2&gt;
&lt;h2&gt;美少女万华镜 -被诅咒的传说少女-&lt;/h2&gt;
&lt;p&gt;&lt;/p&gt;</content:encoded><h:img src="https://pic.hana0721.top/71187447_p0_master1200.13mdb6lism.webp"/><enclosure url="https://pic.hana0721.top/71187447_p0_master1200.13mdb6lism.webp"/></item></channel></rss>