小白篇:先搞懂"扩散模型用在机器人上"到底在干什么

如果你对扩散模型和机器人的交叉不熟,先读这里。

扩散模型不只是画图的

大多数人对扩散模型的印象是"画图"–从噪声一步步去噪生成图片。但扩散模型的本质是:

从一个混乱的起点,一步步"整形"成目标形状。

这个"形状"可以是图片,也可以是一条机器人动作轨迹。

画机图器:人:随纯机噪动声作轨迹逐步去逐噪步去噪一张图一片条合理的动作轨迹

这就是 RDT(Robotics Diffusion Transformer)的核心思想:用扩散模型生成机器人动作。

为什么机器人需要扩散模型?

机器人动作有两个特点,让传统方法很难处理:

特点一:多模态(同一个任务可能有多种正确做法)

"把杯做做做子法法法放到ABC三架:::种子从从直都上左右接对"边边伸!绕绕过动这过过去作个去去拿分任拿拿布务是:"多峰"的

传统回归模型(如 ACT)会把三种做法"平均"成一条轨迹–结果是一条谁都不像的"鬼影"轨迹。

扩散模型天然擅长建模多模态分布–它可以在采样时"选择"其中一个模式,生成一条清晰、合理的轨迹。

特点二:双臂协调更复杂

单双臂臂::12个个两动末末只作端端手分执执要布行行协更器器调复(杂一,只多手模动动拿态作作杯更空空子明间间,显另~~一71只4手维拧维盖子)

这就是为什么 RDT 选择扩散模型–它是目前唯一能同时解决多模态和高维动作的生成方法。

RDT 系列两篇论文一览

RDT-1BRDT-2
时间2024.10(ICLR 2025)2026.02
核心目标双臂操作基础模型跨具身零样本泛化
基座模型自研 DiT(1.2B)Qwen2.5-VL(7B VLM)+ 动作专家(400M)
生成方法DDPM 扩散Flow Matching(更高效)
训练数据46 个数据集,1M+ 轨迹10,000+ 小时 UMI 人类演示
核心创新统一动作空间 + 大规模预训练RVQ 对齐语言与动作 + 三阶段训练
推理速度5 步去噪1 步蒸馏(UltraFast 版)

RDT-1B:第一个机器人扩散基础模型

要解决什么问题?

双臂机器人操作面临两大难题:

  1. 数据稀缺:特定机器人的数据极少(不像互联网有海量图片/文字)
  2. 多模态动作分布:两只手协调时,同一个任务有多种正确做法

现有方法的困境:

方法做法问题
ACT(回归)直接回归动作均值多模态时"平均"成鬼影轨迹
Octo(离散化)把连续动作离散成 token精度损失,丢失连续性
OpenVLA(VLA)用 LLM 预测离散动作 token动作空间受限,不适用高维双臂

RDT 的解法:用扩散模型建模动作分布 + 用 Transformer 做可扩展的骨干网络。

整体架构:DiT + 多模态编码

输输入出:R语本融去:G言体合噪B指感编过a令知码程1图:,像(关从a(节随23T角D机,5度i噪个-等T声视X)角X(.)L2,8编逐a码M层步6器L,预4SP测i1(g+.未L2来I文FBP本o输6u参出4编tr数码oi)6步器ke4的er动n步作动)作图轨像状迹态totkoeknen

扩散模型在 RDT 中怎么工作?–逐公式拆解

训练时:给动作加噪声,学着去噪

RDT 用的是标准 DDPM(Denoising Diffusion Probabilistic Model):

第一步:加噪(前向过程)

$$a_t^k = \sqrt{\bar\alpha^k} \cdot a_t^0 + \sqrt{1 - \bar\alpha^k} \cdot \varepsilon$$

翻译成人话:

  • $a_t^0$:真实的动作轨迹(64 步 x 维度)
  • $\varepsilon \sim \mathcal{N}(0, I)$:随机噪声
  • $k$:当前加噪到第几步(从 1 到 1000)
  • $\bar\alpha^k$:噪声调度参数,随 $k$ 增大而减小
  • $a_t^k$:加噪后的动作轨迹

直觉:$k$ 小 -> 噪声少,动作还比较清晰;$k$ 大 -> 噪声多,动作接近纯噪声。

第二步:训练网络预测噪声

$$\mathcal{L} = \mathbb{E}\Big[\big\| \varepsilon - f_\theta(\ell, o_t, a_t^k, k) \big\|^2\Big]$$

翻译:

  • $f_\theta$:RDT 网络(DiT),输入是语言 $\ell$、观测 $o_t$、加噪动作 $a_t^k$、时间步 $k$
  • 输出:预测的噪声 $\hat\varepsilon$
  • 正确答案:真实的噪声 $\varepsilon$
  • Loss:MSE(预测噪声 vs 真实噪声)

训练目标:让网络学会"从带噪动作中识别出噪声"。训练完后,它就能从纯噪声中一步步去噪,生成合理动作。

推理时:从噪声出发,5 步去噪

第第第第第第012345步步步步步步::::::aaaaaaₜₜₜₜₜₜ⁵⁴³²¹⁰======随去去去去去机噪噪噪噪噪噪一一一一最声步步步步后(一~网步络N预(测0噪,声,I减)掉)(开(始完有全点(随像最机轨(((终的迹更几非输轨了像乎常出迹)轨是清的)迹一晰动了条的作)轨轨轨迹迹迹了)!))

用 DPM-Solver++ 加速器,只需要 5 步就能从噪声变成高质量动作(比原始 DDPM 的 1000 步快 200 倍)。

为什么用 DiT 而不是普通 Transformer?

RDT 用的是 DiT(Diffusion Transformer),和普通 Transformer 有三个关键区别:

区别一:QKNorm + RMSNorm

# 普通 Transformer
output = softmax(Q @ K.T / sqrt(d)) @ V  # 可能数值爆炸

# RDT 的 DiT
Q = rmsnorm(Q)  # 归一化
K = rmsnorm(K)  # 归一化
output = softmax(Q @ K.T / sqrt(d)) @ V  # 稳定

为什么?机器人动作是时间序列,Token 之间的对称性很重要。普通 LayerNorm 会破坏这种对称性,导致大规模预训练时数值爆炸。RMSNorm 不做中心化,保留了时间序列的对称结构。

区别二:MLP 解码器

# 普通 DiT:最后用线性层
output = linear(latent)  # 线性投影

# RDT:最后用 MLP
output = mlp(latent)     # 非线性投影

为什么?机器人动力学是非线性的(关节角度 -> 末端位置不是线性关系)。线性层无法捕捉这种非线性,MLP 可以。消融实验显示:去掉 MLP 解码器,灵巧操作任务成功率暴跌。

区别三:交替条件注入(ACI)

# 普通 DiT:所有条件一起注入
tokens = concat([image_tokens, text_tokens, noisy_action])

# RDT:交替注入
for layer in layers:
    if layer % 2 == 0:
        tokens = cross_attention(tokens, image_tokens)  # 偶数层注入图像
    else:
        tokens = cross_attention(tokens, text_tokens)   # 奇数层注入文本

为什么?图像 token 远多于文本 token(3 张图 x 196 patch = 588 token vs 文本 ~20 token)。如果同时注入,图像会"淹没"文本信息。交替注入让每种模态都有独立的交互窗口。

统一动作空间(PIUAS):让不同机器人"说同一种语言"

这是 RDT 最巧妙的设计之一。

问题:46 个数据集来自不同机器人–有的是 6 自由度机械臂,有的是 7 自由度,有的是双臂,有的是单臂。它们的动作格式完全不同。

解法:设计一个 128 维的统一向量,每个维度有固定的物理含义:

[[[[[[[[[[[01123335611,0550390000,,,,,,,,031,,012333466)5503920511))))))))0238))右右右右右右右左左底预臂夹臂夹末末末臂夹座留关爪关爪端端端关爪线节关节关执执执节关速位节速节行行行位节度置位度速器器器置位/(置度位速置角1置6度速0D度(个x姿关,态节y),z)

每个机器人把自己的动作"映射"到这个统一空间:

  • 7 自由度双臂:填满左右臂各 7 个关节位置
  • 6 自由度单臂:填右臂前 6 个位置,其余补零
  • 移动机器人:额外填底座速度

好处:

  1. 不同机器人可以共享同一个模型
  2. 每个维度有物理含义–模型能学到"关节角度变化 -> 末端移动"这种可迁移的物理规律
  3. 未使用的维度补零,不引入噪声

训练:预训练 + 微调两阶段

预训练(大规模多机器人数据)

项目内容
数据46 个数据集,1M+ 轨迹,21 TB
来源RT-1, DROID, RH20T, Mobile ALOHA, BridgeData V2, Open X-Embodiment 等
硬件48 x H100 80GB GPU
时间~1 个月
步数1,000,000 步
批大小32 x 48 = 1,536

微调(目标任务)

项目内容
数据自建双臂数据集:300+ 任务,6K+ 轨迹
时间~3 天
步数130,000 步
数据增强颜色抖动、图像损坏、高斯噪声、GPT-4 扩展语言指令

实验结果

零样本泛化(Zero-Shot):

任务ACTRDT
未见物体25%50%
未见场景0%62.5%
语言指令跟随50%100%

消融实验–扩散模型的贡献有多大?

变体未见物体未见场景指令跟随
不用扩散(直接回归)12.5%50%12.5%
小模型(166M 参数)37.5%62.5%25%
不预训练(从零开始)0%25%62.5%
RDT(完整版)50%62.5%100%

关键发现:扩散建模、大规模预训练、大模型规模三个因素缺一不可。


RDT-2:从"会操作"到"跨具身零样本"

RDT-1B 的局限

RDT-1B 虽然强,但有三个问题:

  1. 推理太慢:5 步去噪对实时控制(如打乒乓球)来说还是太慢
  2. 不能跨具身:训练时用的机器人和部署时必须一样
  3. 语言理解有限:用冻结的 T5 编码语言,不能理解复杂指令

RDT-2 的解法:用 7B VLM 替换自研骨干 + Flow Matching 替换 DDPM + 三阶段训练。

架构:7B VLM + 400M 动作专家

RRDDTT--12B::自Q研w+两e个Dn动模i2作型T.专分(5家工1-(明.V4确2L0B(0)7M=B))=感=知动感作+知生成理+(解可理训+解练()动冻作结生)成(全在一个模型里)
RDT-1BRDT-2
骨干自研 DiT 1.2BQwen2.5-VL 7B(冻结)
动作生成DiT 自己做独立动作专家 400M
语言理解T5-XXL(冻结)Qwen2.5-VL 原生(强得多)
注意力Multi-Head AttentionGQA(Grouped Query Attention,更快)

核心创新一:RVQ–把连续动作变成离散 token

这是 RDT-2 最关键的设计–用残差向量量化(RVQ)桥接语言和动作。

问题:VLM(如 Qwen)处理的是离散 token(文字),扩散模型处理的是连续向量(动作)。两者格式不兼容。

解法:用 RVQ 把连续动作编码成离散 token,让 VLM 能"看懂"动作。

RVQ 的工作原理

连潜每离续在一散动向级第第第作量用t||一12mAz个k_1₁多级级级输etD,级c:::出n量o找对对i时z化d最残残序n序₂(e近差差列,mb的再再:RC=o码量量{^N8o字化化k{Nk,16.级(e找,4编,)码1最x码本(近k1器z)k的24ₙ量1码,}化)字(i:,6n算e4残2.R差(,步^kCr2kx1)ₘ,}1=算(4残每z差个维潜)-r在2向e量1=(mkr11个)-toek2e(nk)2)

为什么用 RVQ 而不是普通 VQ?

方法同等量化误差需要的 token 数效率
均匀量化很多(效率低)低
RVQ1x(最少)高

RVQ 通过"残差逐级细化",用最少的 token 达到最低的量化误差。

RVQ 如何桥接语言和动作?

SStta语aVg言gLe指eM令V动1L2输作:tM:出专训o训的家练k学练特学e会动征会Vn了作了L"专"M+给家从定生理图语成动V解像言动作L动和作专M作t图家o像的k,理e动解n作中F生+tl成oo精Rkw确Ve的QnM连a续动应t动作该c作是h"t什io么nk"gen连续V动L作M下一个token预测(CEloss)

关键洞察:VLM 不直接生成动作,而是提供"理解";动作专家不理解语义,只负责"执行"。分工明确。

核心创新二:Flow Matching 替换 DDPM

RDT-2 用 Flow Matching 替换了 RDT-1B 的 DDPM,效率大幅提升。

为什么 Flow Matching 更好?

DDPM(RDT-1B)Flow Matching(RDT-2)
训练目标预测噪声预测速度场 u = A_t - epsilon
路径弯路(逐步加噪再去噪)直线(从噪声直走到动作)
推理步数5 步(DPM-Solver++)5 步(Euler 积分)
训练收敛较慢更快(更直接的梯度信号)
与 VLM 兼容需要额外适配天然兼容(线性插值更简单)

Flow Matching 在 RDT-2 中的具体实现

训练时:

$$A_t^\tau = (1-\tau)\varepsilon + \tau \cdot A_t$$$$\mathcal{L}_{\text{expert}} = \mathbb{E}\Big[\big\| v_\theta(\tau, A_t^\tau, \text{VLA}(\ell, o_t)) - (A_t - \varepsilon) \big\|^2\Big]$$

翻译:

  • $\tau \in [0, 1]$:流时间($\tau=0$ 是噪声,$\tau=1$ 是真实动作)
  • $A_t^\tau$:在 $\tau$ 时刻的插值动作
  • $v_\theta$:动作专家网络,预测速度场
  • 正确答案:$A_t - \varepsilon$(从噪声指向真实动作的方向)

推理时:

AfA_o_trt^^0tvA1a_~u=t=^Ni{最(n_t终0ta输,[hu出0e+的I,t0动)a.作0(2轨.t}迹2a,u=,0A.A_4_t,t^^t0ta(.au纯6u噪,,+声)0V0.L.8A2](:lx,v_t))(走一(步预)测速度)

VLA 骨干只算一次:在整个 5 步积分过程中,Qwen2.5-VL 的输出不变–只需要编码一次图像和语言,5 步积分只跑轻量的动作专家(400M),非常快。

核心创新三:三阶段训练配方

SSSttta目方冻关a目方冻关a目方损关g标法结键g标法结键g标法失键e::::e::::e::::让连无保让冻VV把教学实1续(留2动结LL3师生时:V动V了:作MM:5输推RL作LF专V蒸=出理VMMVl家L骨的馏步成QLo学M干理(去5v为学和Mw会,解单噪s可预会"训能步蒸步能训"RR预M生练力生馏教(练理VV训a成动不成成F师打(解QQ练t"作被)l输乒1"的c连专破1o出乓2动编编离h续家坏w的球8作码码散i动(,步等K器概n作4动生MM高都率g0作成aS速步训知0专tE任)练识微M家c务离)调)只h)散(用学i6"nt6F执goKl行,ko"学e步w生n)M=at1cVh步Li直Mn接g生下成一个token预测(CEloss)

为什么需要三阶段?直接端到端不行吗?

如果直接在 VLM 上做扩散:扩散过程的噪声会破坏 VLM 预训练的离散知识–VLM 被训练来处理清晰的离散 token,给它加噪声会让它"忘记"语言理解能力。

三阶段的精妙之处:

  1. Stage 1 用 RVQ 把动作变成离散 token -> VLM 用它熟悉的方式(CE loss)学习动作
  2. Stage 2 冻结 VLM -> 扩散过程只影响动作专家,不破坏 VLM
  3. Stage 3 蒸馏 -> 把多步采样压缩成单步,不改变模型能力

跨具身零样本泛化:4U 设置

RDT-2 实现了四个维度同时零样本泛化:

维度含义怎么做到的
Unseen Embodiment从未见过的机器人UMI 是具身无关的–记录的是末端执行器位姿,不是关节角度
Unseen Scene从未见过的场景大规模数据覆盖 100+ 家庭环境
Unseen Object从未见过的物体VLM 的开放词汇理解能力
Unseen Instruction从未见过的指令VLM 的语言泛化能力

UMI 的关键作用:UMI(Universal Manipulation Interface)是一个手持设备,记录 6-DoF 末端执行器位姿 + 夹爪宽度。它不记录机器人关节角度–所以用 UMI 数据训练的策略,可以部署到任何机器人上(只要装了同款相机和夹爪)。

实验结果

零样本泛化(4U 设置):

RDT-2 是第一个在开放词汇任务上同时实现四个维度零样本泛化的模型。

下游任务表现:

任务RDT-1BRDT-2提升
拾取物体62.5%100%+37.5%
拾取放置50%87.5%+37.5%
擦桌子25%75%+50%
按按钮37.5%87.5%+50%
摇晃物体12.5%62.5%+50%

打乒乓球(高速动态任务):

RDT-2-UltraFast(1 步蒸馏版)在打乒乓球任务上超越了所有基线,包括比它小得多的模型–证明单步蒸馏既快又准。


RDT -> RDT-2 的技术演进总结

维度RDT-1B(2024)RDT-2(2026)为什么改
骨干网络自研 DiT 1.2BQwen2.5-VL 7B + 动作专家 400MVLM 的语言/视觉理解远强于自研编码器
生成方法DDPM(5 步)Flow Matching(5 步->1 步蒸馏)FM 训练更快,蒸馏后推理更快
动作编码连接直接输入RVQ 离散化桥接 VLM 的离散 token 空间和动作的连续空间
训练方式单阶段扩散训练三阶段(RVQ->FM->蒸馏)保护 VLM 知识不被扩散破坏
数据46 数据集 1M 轨迹10,000+ 小时 UMI更大规模 + 具身无关数据
泛化能力同具身零样本跨具身零样本(4U)UMI + VLM 的开放词汇能力
推理速度5 步去噪1 步生成蒸馏压缩,实时控制

一句话总结

RDT 证明了"扩散模型 + 大规模预训练"是机器人基础模型的有效路径;RDT-2 在此基础上用 VLM 替换自研骨干、用 Flow Matching 替换 DDPM、用 RVQ 桥接语言与动作,实现了跨具身的零样本泛化–从"会操作一个机器人"进化到"理解任务后在任何机器人上操作"。


个人解读与思考

1. 扩散模型在机器人领域的独特优势

扩散模型在图像生成领域被 Flow Matching 追赶(后者更快),但在机器人动作生成领域仍有独特优势:

  • 多模态建模:双臂协调天然多模态,扩散模型能自然建模
  • 动作平滑性:去噪过程天然产生平滑轨迹(不像离散 token 可能有跳变)
  • 采样可控:可以通过调整去噪步数在质量和速度间权衡

RDT-2 的 Flow Matching 进一步说明:只要底层是生成式模型,具体用 DDPM 还是 FM 不重要,重要的是大规模数据 + 可扩展架构。

2. RVQ 是连接语言和动作的关键桥梁

RDT-2 最有启发性的设计是 RVQ–它解决了一个根本问题:VLM 处理离散 token,动作是连续向量,两者格式不兼容。

RVQ 不是唯一解法(pi0 用的是直接在连续空间做 Flow Matching),但它有一个独特优势:让 VLM 用它最熟悉的方式(下一个 token 预测)来理解动作。这保留了 VLM 预训练的全部知识。

3. UMI 数据是跨具身泛化的关键

RDT-2 的跨具身能力不是来自模型架构,而是来自数据–UMI 记录的是末端执行器位姿(具身无关),不是关节角度(具身相关)。这意味着:

数据格式的统一比模型架构的统一更重要。

4. 蒸馏让实时控制成为可能

RDT-2-UltraFast 的 1 步蒸馏证明:多步去噪的知识可以压缩到单步。这对高速任务(打乒乓球、接球)至关重要–5 步去噪的延迟可能让机器人错过最佳击球时机。


一句话总结

RDT = 扩散模型生成机器人动作(DiT 骨干 + DDPM + 统一动作空间,1.2B 参数,1M+ 轨迹预训练)。RDT-2 = VLM 理解 + Flow Matching 生成(7B VLM + RVQ 桥接 + 三阶段训练 + 1 步蒸馏,10K+ 小时 UMI 数据,跨具身零样本泛化)。


深度拆解:RVQ、DiT、GQA、PIUAS、π0 对比等核心概念全讲透

这一节专门回答常见困惑,每个概念都从"它到底是什么"讲起,配合流程图和伪代码。

一、RVQ 到底在干嘛?–为什么 Flow Matching 能直接输出连续动作,还要搞离散 token?

这是最核心的困惑。先说结论:

Flow Matching 确实能直接输出连续动作序列。RVQ 不是给 Flow Matching 用的,而是给 VLM 用的。

问题的根源:VLM 和动作专家"说不同的语言"

V动问L作题M输它专输它:V离(入天家入需VL散Q:生(:要LMw离只A连的Mte散会c续是输on处t向连的出k2t理i量续输e.o和o特出n5k生n征怎-e成,么Vn离E不喂?L(散x输是给?)文p出离动??:字te:散作?)or连专?-kt续t家>e)动o?n:作k动输序e作出列n专连:家续离输向散入量token(下一个词的概率分布)

RVQ 就是这个"翻译官"–它让 VLM 能"理解"动作,同时让动作专家能"接收" VLM 的理解。

RVQ 的完整工作流程

=连1潜多第第第输重=续D在级出建=动向残1码找量残2码找量残8码找::=作时量差本化差本化差本离z=序量级z结:级r结:重级r散̂=Az化量C果r量C1果r复量C7=_C(化1最:1化2:2化8t==tNim:近z:最z8:最o=Nn==的_==近_=近kz=i8码h的h级的e_n编R{字az{码ar码nh编码^级e:te字t1字a码R器C,1k1-2:2:序t阶^((每¹1¹k-k列1段{把C级,=z,2=8(6时=一=_z{+训4间5个eehe=e_=k练x序1码1a1a22h1z时1列2本²rᵏt²aᵏaa,_4压,,g¹1,r²trh+}缩一cmg2gka(成个oimm2t推6单紧dnii,2理4个凑e._.nn时向的b,k,__+)个量连okk=时)续oee.=间向k1|2,=步量)^z||=)KKrrk=x}-}178+=(}=1Ke--(z=4=18_=1ᵏeeh=维0|28个a动2|ᵏᵏ整t作4||数8)||)个≈码字z)(8级残差累加接近原始向量)

为什么用 RVQ 而不是普通 VQ?

普通 VQ(向量量化):

z问题i:n一个R码或^5本者51需量12要化2超误维级差的大超向(级量K大码用(本要K1非C常不个大够=码才大字能时{表覆,e示盖z¹?所,有和可最e能近²的码,字z差)距很.大,)e^K}找最近的码字输出1个token

RVQ(残差向量量化):

z效果i:n8R个量每^小化级5码精只1本度增2(极加每高个1K个第=1t10o2k级4e量)n化级,联总,共等只效用残一差个8超r大个1码本t(oKk^e第8n2=级1量0化24^8残≈差1r02^24个组合)第8级

类比:

普R每通V一Q级V:都Q用在:修用8正上1个一数级个字的数描"字述误描差述"一个人"的身身高高175c要m么很+粗(体1重707c0mk、g18+0cm.两"档)描述更精确

RVQ vs 普通 VQ

普通 VQRVQ(RDT-2)
量化方式1 级量化8 级残差量化
每个时间步需要的 token 数1 个8 个
量化精度低(码本要很大才够用)高(残差累积逼近原值)
码本大小K(如 1024)8 x K = 8K(但等效 K^8 的表达能力)
为什么选 RVQ-token 少 + 精度高

为什么不用 Flow Matching 直接输出连续动作,非要加 RVQ?

核心原因:VLM 需要离散 token 才能"理解"动作。

方方案案V问1234连优1234AL题....B续点....:M::动:不V强V训用作VV训V用输L行L练LL练L出M加M不RMM稳MR线稳V定V是性预定Q用预,理Q用层训,(R它训收解,下输练效RV最练敛动直线一出的果DQ熟的快作接性个连离差T悉离后让层续散-编的散,t向知2码方概输Vo量识式率出Lk全的(知的Me部做C识特连n浪法E完征输续费)离整向出向预V散l保量连量测Lo留语续(Mts义向Cos丰量E无k富法e动l用nv作o它e专s熟r家s悉)的离训V散练CL的EMt,o输l用k出oe是sCn概sE)率学分学l习布习o动s作sve学r习离散词表VLM输出特征动作专家FM连续动作

方案 C:π₀ 原版的做法(不用 RVQ,也不用 FAST)

π注₀意V动特1234:原L作点....π版M专:₀的(家V动架但-做P(L作构动F和法a3M专最作A:l0家简专Sπi0不自单家T₀GM需己,学e)要从端习是原m-"到难另版m>理V端度一的a解L训更个)通"M练大变F-过动(体l>作的需,oc,原要用w内r只始自部o需特己FMs要征从Aass提中原Ste-供提始Tcla图取特hft像有征ti-t/用中onae语信"kgtn言息挖ett语掘n架ei义"i构no动z完tn作e全i信r不o直息同n接)做。读自取回归V解输L码出M,K的VKcVacchaecheFlowMatching连续动作

RVQ 在 RDT-2 完整 pipeline 中的位置

=输训效=输训效=输第第输注推=入练果=入练果=入出意理=:图语连目VVL:V=:图连目动动L:动=:1图2Af::时=像言续标LLoL=像续标作作o作=图像_oA推=指动:MMsM=动:专专s专=像步步tr_理V=令作sV=作家家s家=:+:^t时L=_输输:学L=_输输:学=+VF0tvA^完M=tlA入出C会M=tA入出M会=L语la_1全=_::r了=_::S了=语M言o~u=t不直=t[预o""=t(预E"=言w^=需接图测s给理(h测(从指编Ni动{要输训像s定解训真_速v推令码M(n作t最出练QQR-图"练冻实t度_V理a0专a终R特wwtVE像了结值,场tL时Qt,[家u的V征SeeRoQn和动S的)hMwc0(+连Q向tnnVkt语作tAe=ehI,t0续!量a22Qe动r言的aQ__t的=ni)a.动Rg..n作o,语gwtta理=2n0u2作Vhe55编,p动义ee^h,解=.g.,}序Q_--码ty作nte中=52列t1VV语o(的22atA生=-采,A=(只,:LL言kV:.ua_成=V样_6在动ReLRF5,t精=L(0tA4训作V编编tnMVl-确=5.^_练专Q码码离o8QoVt-的=4tt步家散k(预wLa连步,a^S直预e下测tue续或utxt接训tn一的oM)p动特0,aa从练o,个kas作征1.u1g图语kteti"向6h4eh=像言eRtonc特l量步,_+_=nVokh征o蒸t维1t=ttQke应i向nh馏0)0)=oo{en该n量V)_)..用生=kkk动n是gLt82。成=ee1作分什hM(]连=nn,预布么=_只:x续=t测"=t的算动=ko)v=特一v作=2ks=征次。,e=)n真=+1实=,=加.t=噪,o=动k作k.e8,n+})R时V间Q步动作token7]

一句话总结 RVQ 的作用

RVQ 是训练时的"桥梁":把连续动作变成离散 token,让 VLM 用它熟悉的方式(CE loss)学会理解动作。推理时不需要 RVQ–VLM 直接输出特征向量,动作专家直接生成连续动作。


二、DiT vs 普通 Transformer:架构到底有什么区别?

DiT(Diffusion Transformer)不是"发明了一种新 Transformer",而是在标准 Transformer 基础上做了三处关键修改,让它特别适合做扩散模型的骨干网络。

完整架构对比

=输TL特=输DM特=入ra点=入iL点=aLLy:---=TQQP:----=tnaae=tKK=osyyr用线位=oBNNA解用QMA=kfeeN性置=klood码KLd=eorroL层编=eorra器RNPa=nrNNra输码=ncmmp(Mop=moomy出通=(ktLSr解t=erre常=含++iiNm码irmmr是噪xvno(器v普N固D声RReer对(e通EBo定i动2MMam非mlLr的T作8SSnr(Q线nTboim正()NNo不性orecMFn(弦R-层oor做和投radkuFe做编D>:rrm中影mndlNa中码Tmma心K,asixtr心或-PlS化不lfni(化可1aii,做是iogN-L:学BtzL只归线zr:Hi减习caU做一性amen均的用hMFt缩化层teae输值的iuFi放,)irda出除)flNo)防o(位r标=ytn止n如置Sl准=i((L注(编eo差=+-L时i意把G码lg)=Hi间n力时Pfi=Een步e分间T-Gt=maea数步-AEs=bda+r爆和2tL=er炸条)tU=dS条)件=e=de件信=nil注息=tnf入L注=ig-S)i入=oLAin每=nitLe一=ntUa层=eer)=a位n)=r置t-残)编i>差码oL连ni输接n出e噪残a声差r预连残)测接差连接残差连接

三处关键修改的详细解释

修改一:RMSNorm 替换 LayerNorm

# LayerNorm(普通 Transformer)
def layer_norm(x):
    mean = x.mean(dim=-1, keepdim=True)
    std = x.std(dim=-1, keepdim=True)
    return (x - mean) / (std + eps)  # 中心化 + 缩放

# RMSNorm(DiT)
def rms_norm(x):
    rms = x.pow(2).mean(dim=-1, keepdim=True).sqrt()
    return x / (rms + eps)  # 只缩放,不中心化

为什么?机器人动作是时间序列,token 之间的相对位置关系很重要。LayerNorm 会把每个 token 的均值减掉,破坏了"这个 token 比那个 token 大多少"的相对关系。RMSNorm 不减均值,保留了这种对称性。

修改二:QKNorm(Query-Key Normalization)

# 普通 Transformer 的注意力
Q = x @ W_Q  # 可能值很大
K = x @ W_K  # 可能值很大
attn = softmax(Q @ K.T / sqrt(d))  # Q @ K.T 可能爆炸 -> softmax 饱和 -> 梯度消失

# DiT 的注意力
Q = rms_norm(x @ W_Q)  # 归一化到合理范围
K = rms_norm(x @ W_K)  # 归一化到合理范围
attn = softmax(Q @ K.T / sqrt(d))  # 数值稳定

为什么?扩散模型在去噪过程中,噪声大小从 0 到 1 变化很大。如果不做 QKNorm,注意力分数会随噪声大小剧烈波动,训练不稳定。QKNorm 保证注意力分数始终在合理范围内。

修改三:MLP 解码器替换线性层

# 普通 DiT / Transformer:最后用线性层
output = linear(transformer_output)  # 线性投影:y = Wx + b

# RDT 的 DiT:最后用 MLP
h = silu(linear1(transformer_output))  # 第一层:y₁ = SiLU(W₁x + b₁)
output = linear2(h)                     # 第二层:y₂ = W₂y₁ + b₂

为什么?机器人动力学是高度非线性的:

关这线M节不性L角是ttt层P度线hhh学(性eee不带t关ttt了h系aaa这Se!种it===非La线U091性°08映激°0射活°。函末数端)位末可置端末以在端末。(在端x(在,0(.0y5,-,,00.z0,5),,00.0.8,3))0.3)

消融实验验证:去掉 MLP 解码器,换成线性层,灵巧操作(如拧瓶盖)的成功率从 62.5% 暴跌到 25%。

DiT 的 Adaptive Normalization:条件注入的机制

DiT 有一个普通 Transformer 没有的东西–Adaptive Normalization(自适应归一化):

# 普通 Transformer:条件信息通过注意力注入
# 所有条件(图像、文本、时间步)都 concat 成 token 序列

# DiT:条件信息通过归一化层注入
def adaptive_norm(x, condition):
    # condition 包含时间步 t 和语言/图像信息
    gamma, beta = mlp(condition).chunk(2, dim=-1)  # 从条件生成缩放和偏移
    return rms_norm(x) * (1 + gamma) + beta  # 缩放 + 偏移

# 在每个 DiT Block 中:
x = x + self_attn(adaptive_norm(x, condition))
x = x + ffn(adaptive_norm(x, condition))

为什么?扩散模型需要知道"当前在去噪的第几步"。这个时间步信息通过 Adaptive Normalization 注入每一层,而不是通过注意力。这样时间步信息能直接影响每一层的特征分布,而不仅仅是"参与计算"。


三、GQA vs MHA:注意力机制的区别

这是 RDT-1B 和 RDT-2 在骨干网络层面的核心区别之一。

MHA(Multi-Head Attention)– RDT-1B 用的

输QKV每所参入个有数===头h头o量W总x独e拼u:_共xxx立a接tQi做d:p,4n@@@注_u意itWxRWWW力_^___:==Kd{QKV,_sscmeooWoqfn_d_tcVelma,leat²n(同同x(Ws上上(h_个xeQeO参q_a数d_id各_l_me@1(on,dd,K_e_mldio}_..dmT,eold/heexlsa)qddr__thm()odd_@ekl拆)W)成)_Oh@个V头_i每个头(seq_len,d_k)

GQA(Grouped Query Attention)– RDT-2 用的

输QKV关例参入键如数===区QQ量WWWW总x别h:____共xxx:=头头QKVO大iQ每3::::约n@@@204有g,,,((((4RWWW/15dddd^___hhg,,____x{QKV=26mmmms个个8,,oooode头:37dddd_q,Qeeeem_但共共llllol头享享deK共xxxxen(((享KKlsss和一dddd²xeee组头头____qqqVmkvmxd___K01oo_lll只、dxxd(meee有V和和ee1onnnlggld,,,g头VV))))-elddd个头头h}___头/mkv01go))dg同的e上比l<例)减h少,)所以更小拆拆拆成成成hgg个个个头头头(g<h)

直观理解

MG类HQ比AA:MG::HQ每多AA个表但个表但注达计达计==意能算Q能算力力量力快33头强大头略很22都(共弱多有每享((个个自个KK人人己头K、、各分的都、VV自要V独8Q算的只立、多算做组KK样,、、性gP每VV减减P组)少少次T共)而,用K不每一、是人套每V做个h一P头的套P能计次T"算),独量各立自关做注自"己不的同演的讲模式

为什么 RDT-2 选 GQA?

MHA(RDT-1B)GQA(RDT-2)
KV 缓存大(每个头一组 KV)小(g 组 KV)
推理速度慢快 30-50%
显存占用高低
表达能力强略弱,但够用
适用场景模型小(1.2B),不需要极致优化模型大(7B),需要控制计算量

RDT-2 用 7B 的 Qwen2.5-VL,如果用 MHA,KV 缓存会非常大。GQA 把 KV 头从 32 个减到 8 个,推理时省了 75% 的 KV 缓存,速度提升明显。


四、统一动作空间(PIUAS):到底是什么?

你说得对–PIUAS 本质上就是**“动作分桶分区间”**。但它的设计比简单的分桶更巧妙。

简单分桶 vs PIUAS

简P单I分把动问123U不每每桶每作题...A是个个(个值:S分维维维维维机76如动不桶跨(桶度度度度度器--作0同编机R,有人D维维其D维维其O维.机号器D而固0133把o度度余o度度余c度5器没人T是定01自F维F维t的人有迁-定的==己[[度[[度o值的物移1义物==的双05补单03补)域动理时B一理右右动臂,0零臂,0零:分作含,)个含臂臂右右作机7,机6,成桶维义桶:义关关末末"器)5器)3编度(编1:节节端端翻人7人32号含1号2执执译:):)5义2对812行行"61不8不器器成2同上维的的这填填个8(代的角角xy个右右桶一表"度度通臂填臂填个什通(坐坐用左末机么用弧标标语7臂6端器?语度言执人不言):个7个行的知"关关器"道节个节位关)角关角置节度节度角1度"和另一个的"关节1"不一样)

PIUAS 的完整维度定义

维维维维维维维维维维维维维维维维维维维维度度度度度度度度度度度度度度度度度度度度[[[[[[[[[[[[[[[[[[[[01123334456678889911,0550392500550392500,,,,,,,,,,,,,,,,,031,,012333445667888991)5503925005503925011))))))))))))))))002)38))右右右右右右右右预左左左左左左左左预臂夹臂夹末末末末留臂夹臂夹末末末末留底预关爪关爪端端端端关爪关爪端端端端座留节关节关执执执执节关节关执执执执线位节速节行行行行位节速节行行行行速置位度速器器器器置位度速器器器器度(置度位线角置度位线角最置6速速置6速速多D度度D度度v(x1x姿姿,0,态v态(xv个y轴,y关,角)节或v)z四y+)元,数角)v速z度)(ωz)

为什么 PIUAS 比简单分桶好?

简单分桶PIUAS
维度含义无(桶编号 128 是什么?)有(维度 30 = 右末端 x 坐标)
跨机器人桶编号对不上,不能共享模型维度对齐,可以共享模型
物理规律模型需要重新学习模型能学到"维度 0 变化 -> 维度 30 变化"的物理规律
未使用维度不确定填什么补零,明确无歧义

核心insight:PIUAS 让不同机器人的动作"说同一种语言"。模型在预训练时学到了"关节角度变化 -> 末端位置变化"这种可迁移的物理规律,而不是"这个机器人的编号 128 对应那个机器人的编号 256"这种不可迁移的映射。


五、UMI 和 4U 到底是什么?

UMI(Universal Manipulation Interface)

UMI 是斯坦福 Qiuyuan(Chi)团队在 2024 年提出的一个数据采集接口,核心思想是:

不记录机器人的关节角度,而是记录末端执行器的位姿。

传U为统M什数机问I人么末关据器题手?端节采人:数持执角集执不据记不行度:行同采U录记器是任机集M录位"务器:I6任姿具人-何是身的设D关"相关备o节具关节(F角身"记角带度无的录度相末关-每含机端"-个义执的不时不+行-同刻同器-机的,I位不器关数M姿管人节据U用的角不)(什关度能执x么节跨行,机定t机任器义h器务y人不e人,,同t复末a用z端₁,执,行r器tx的h,位e置tr和ay姿₂,态,是r同z一)个.物,+理量t夹h爪e宽t度a₇

UMI 硬件

U采M集I1234流人....程手设:持备相I夹手相I夹保组机M爪持U机M爪存成:U:支M记U记::I:平架I录录(n惯行:视+开视t性夹人觉合觉e测爪手观视宽帧l量(握测觉度,单记住在里R元录执真程末e(开行实计端a追合任环追执l踪宽务境踪行S手度中末器e持)执端位n设行执姿s备任行序e的务器列位(位,D姿如姿4)抓夹0杯爪5子宽(、度R拧序G瓶列B盖)-)D)

4U(四个 Unseen)

RDT-2 实现了四个维度同时零样本泛化:

1234....U训部U训测U训测U训测n练署n练试n练试n练试s时时s数时s时时s时时e用用因e据在大e没让Ve没用Ve为e覆全规e见机Le见这LnUFn盖新模n过器Mn过些MMrU的数的人的新EIaMS1环据O物操的I指指的mnIc0境带b体作开n令令语b采ke0中来j(这放s表言o集a数n+运的e如些词t述泛d的据e行场c新新汇r(化i数机是(家景t品物理u如能m据械具从庭泛(牌体解c"力e(臂身未环化从的能t请n手、无见境未杯力i帮t持U关过(见子(o我(设R的的厨过)"n把从备5,场房的这(那未)策景、物是从个见机略)客体一未红过械可厅)个见色的臂以、杯过的机、直办子的杯器甚接公"语子人至迁室-言放)自移.>指到制.令微机.知)波器)道炉人怎旁么边操"作))

为什么 4U 很厉害?

以R前D的训训训训T训训VV方练练练练-练练LL法时时时时2时时MM:用在见用用覆厨过"的盖理理F房马拿U多解解r采克起4M种语语a数杯杯UI环义言n据子:境k"手a持采机换集新新器在个新物指人客纸说环体令厅杯"境也也可可帮也能能能能我部能识理不不取署工别解部行行一时作署下可时那以必个用须杯任用子何"机F可器r能人a不n行ka

六、π₀ vs RDT-2:到底有什么区别?

很多人觉得 π₀ 和 RDT-2 很像(都是 VLM + 动作专家),但它们在动作专家如何获取 VLM 信息这个关键设计上有本质区别。

先搞清楚:π₀ 有两个版本

Physical Intelligence 发布了两个模型,很多人搞混:

π₀(原版)π₀-FAST(变体)
动作生成Flow Matching(连续输出)自回归 token 预测(离散输出)
动作编码不需要(直接 cross-attention 读 VLM)FAST tokenizer(DCT + BPE 压缩)
推理速度快(10 步去噪,~100ms)慢(30-60 个 token 逐个生成,~750ms)
动作专家300M 参数的独立 action expert用整个 2B VLM 做自回归解码

关键:π₀ 原版没有 FAST。π₀ 原版的动作专家通过 cross-attention 直接读取 VLM 的 KV cache,不需要任何离散化。π₀-FAST 才用 FAST tokenizer 做自回归解码。

架构对比:cross-attention vs RVQ

这是两个模型最核心的区别–动作专家如何获取 VLM 的语义信息:

π₀V动关原L作键版M├├└专├├│└:((───家───动PP───(───作ha3专yl输内输0输通输家不不Vsi入部出0入过出直需需LiG:::M:Q:接要要Mce图sK,噪c_去任am像eV独声ra噪cV何和lml立动oc后rL离动atfc权作st的oM散作Io-a重si连s化专n3kac)t-o续s"家tBethoan动-理可e)ntekt作a解以le(et@t"端l+n所net动到it有nKe作端g语it_n训e言otivt练nnoolictknmoeo处e.n)k理n读T:e所取读n有的VVtKLLoeMaMkyte的t的n和eKnKVVdValctcuaoaecc)hVheLeM的特征
RDTSS关-tt键2a连VVaVV动:(g续LLgLL作R清e动MMeMM专V华作V家FQ)1输用L2冻输通lS但:入M结出过o只t训:C训特w在aV练[E学练征c训gL:R图会:rM练eMV像l了oaQo"stS2已ts理sct经编os解动-ha和被码k"作aig推e学动专tne理Rn习作家tg时V,预的(e1,Q测语4n生动离语下义0t成用作"散言一0i连,专教个Mo续让家会tt)n动也"ooR作V是了kkV读L理eeQ取Mc解nnr动,tV学o作oL会s,RkM理s所Ve解-以Qn特动a输征作t出动t的作e特n征tt更oi有ko语en义n]读VLM特征

核心区别:cross-attention 的起点不同

πR₀D:V动V动TV动V动L作L作-L作L作M专M专2M专M专家家:家家没通的需在通的收有过要过特到被K自S征的专cV己tc已是门r从ar经"训oc这go包有练sa些es含动来sc特s了作理-h征1-动语解ae中a作义动t"被t语"作t包提t义的e含取Re(特n了"Vn因征t图有Qt为,i像用i更o和信"oS容n语息教nt易言会a学直的"读g习接语了取e读义理,解V1V但动LL没作M的M有训动特练的作征)原语始义KVcache

类比:

πR₀DT=-2你去但你=图没(书有动先然你馆一作在后((本专图你动V专家书去作L门)馆图专M讲需里书家)"要放馆),怎自一,更图么己本直容书做从"接易馆动所动翻找里作有作那到有"书指本相很的中南指关多书找"南信书到(就息(相R行图关V了像信Q/息语S言t知a识g)e1训练)

核心区别对比表

维度π₀ 原版π₀-FASTRDT-2
VLMPaliGemma 3BPaliGemma 3BQwen2.5-VL 7B
动作生成Flow Matching自回归 tokenFlow Matching
动作专家如何读 VLMcross-attention 读 KV cacheVLM 直接解码 tokencross-attention 读 VLM 特征
是否需要离散化不需要需要(FAST tokenizer)Stage 1 需要(RVQ),推理时不需要
VLM 是否需要理解动作不需要需要(学预测动作 token)需要(RVQ Stage 1 训练)
训练阶段2 阶段2 阶段3 阶段(多一步蒸馏)
推理步数5-10 步30-60 token1 步(蒸馏后)
模型大小3B + 300M 动作专家3B(全模型解码)7B + 400M
跨具身弱弱强(UMI + 4U)

为什么 RDT-2 要用 RVQ 而不是直接 cross-attention?

这是最核心的问题。既然 π₀ 直接 cross-attention 就能工作,为什么 RDT-2 还要搞 RVQ?

原原原因因因π它但动RV动R这相如可R1₀知它作DL作2V迫当3果能D:道不专TM专:Q使于:直破TV的"知家-家S给S保接坏-VL这道需2的更tSVt护端2LMV是"要特容atLVa到VML杯把自的征易gaMLgV端L的的M子杯己已学egMeL训M三知原"子从V经习e的M练阶识始是"拿原L包1特做2(预段完特在那起始M含1征了预像训训整征互是来特了的空一的训练练保不联桌"征在"让间次练π的:留一网子这中动C对"F知₀语S定图"个提S作EV齐动l识言t包文动取t长L动作o那/a含数作动a什lM作相w样视g动据具作g么o语关)觉e作上体信e样s用义的M,知语预是息"s预aV识1义训什1的C训tL练么信是E练cM用的样被息一"h的种li的C学R有on参E习V效sg数难Q的s会l度正训被o大"则预练s教化测更Fs会动稳l("作定o温了、w和动t收)作o敛M,k更aSe快ttncahgieng2的冻梯结度更V新LM

一句话总结

π₀ 和 RDT-2 的根本区别不在于"用不用离散化",而在于"VLM 是否需要理解动作"。π₀ 的 VLM 不需要理解动作,动作专家自己从原始特征中提取信息;RDT-2 的 VLM 被 RVQ “教会"了理解动作,输出的特征更有语义,动作专家更容易学习。


七、为什么 Flow Matching 能直接输出连续动作,还要 RVQ?–最核心的困惑解答

这个问题值得单独回答,因为它是理解 RDT-2 架构的关键。

先澄清一个误解

RVQ 不是在推理时把 Flow Matching 的输出离散化。RVQ 是在训练时让 VLM “理解"动作的工具。

推理时图噪全的像声程流动连程+作续(,没语+没有言有h离R_散Vt化Q!!V)L:MFlow特征M向a量tchh_itng动作专家连续动作A_t

那 RVQ 在哪用?

RSS推Vtt理Qa连VVaVV时完g续LLgLL:全只e动MMeMM不在作V需训1输输L2冻输要练A入出M结出训_::训,特RS练t[预学练不征Vt时图测会时再Qa:像了:需gR"要etV动RoQ作R动1Vk的V作Qet离Q专用no散家:编,k表码e示语n"言8(FtCl离oEo散kweltnoMo,saksteR)cnVhQi{nktg1o,ken1连.,续,动作k8.},RVQtoken7]

为什么不能跳过 Stage 1,直接训练动作专家?

方用案:V问1234RVS不L题....VLt用M:QMa(V动需Vg少R随L作要L的用e量V机M专海M它数Q初家量S熟2据,始的收数预t悉就直化输到据训a的冻能接输出的重练g方结训出层是新的e式练S层是"训语(V好t)随乱练言1CLa-机码/:EMg>的"V视e,特L觉l连输征M知o2续出,识s特的学的被s动征特不输破)作征到出坏学专向有层习家量意动收没义作到动有的的作语东是专义西"家有输语出义的"特的F征特l有征o语w义Matching

一句话总结

RVQ 是训练时的"脚手架”:帮助 VLM 理解动作。房子盖好后(训练完成),脚手架拆掉(推理时不用 RVQ),房子照样站得住(VLM 输出的特征已经有语义了)。


参考

  • RDT-1B:Liu S, Wu L, Li B, et al. RDT-1B: a Diffusion Foundation Model for Bimanual Manipulation (ICLR 2025)
  • RDT-2:Liu S, Li B, Ma K, et al. RDT2: Exploring the Scaling Limit of UMI Data Towards Zero-Shot Cross-Embodiment Generalization (arXiv:2602.03310)
  • 代码库:https://github.com/thu-ml/RoboticsDiffusionTransformer
  • 模型:https://huggingface.co/robotics-diffusion-transformer/rdt-1b
  • DiT:Peebles & Xie, Scalable Diffusion Models with Transformers (ICCV 2023)
  • DDPM:Ho et al., Denoising Diffusion Probabilistic Models (NeurIPS 2020)
  • Flow Matching:Lipman et al., Flow Matching for Generative Modeling (ICLR 2023)
  • UMI:Chi et al., Universal Manipulation Interface (RSS 2024)
  • π₀:Black K, et al. π₀: A Vision-Language-Action Flow Model for General Robot Control (2024)