【VLA与模仿学习】RynnBrain 1.1 概念深讲
本文专门回答3D grounding、WildDet3D、FoundationPose、DiT、Flow Matching含代码、81 维、架构与训练、MoE、DeepStack、Interleaved MRoPE、MLLM、AgibotWorld/OXE/Galaxea-G0、MMSI/MindCube、跨形态共享 affordance。目录3D Grounding 是什么意思WildDet3D 是什么FoundationPose 是怎么合成的DiT 是什么意思Flow Matching 是什么代码怎么实现81 维指什么架构和训练骨架详细版MoE 是什么DeepStack 是什么Interleaved MRoPE 是什么MLLM 是什么AgibotWorld、OXE、Galaxea-G0 是什么MMSI、MindCube 是什么「不同形态共享 affordance」是什么意思1. 3D Grounding 是什么意思先分清2D vs 3D2D Grounding3D Grounding问题「红杯子在哪」「红杯子在三维空间里在哪、多大、朝哪」输出像素框 / 点立体框位置 尺寸 朝向坐标系图片平面通常是相机坐标系以相机为原点的真实米制空间生活类比2D在照片上用记号笔画一个框。3D告诉机器人「杯子中心离相机 0.8 米宽 0.1 米杯口朝上」——这才接近可操作。RynnBrain 里具体怎么做输入一张 RGB 图自然语言如 “the chair near the window”相机内参焦距、主点等用来理解「像素 ↔ 真实尺度」输出相机坐标系下的9 个数中心cx,cy,czc_x,c_y,c_zcx,cy,cz米尺寸w,l,hw,l,hw,l,h米姿态pitch,yaw,roll\mathrm{pitch},\mathrm{yaw},\mathrm{roll}pitch,yaw,roll弧度这些连续数会被离散成整数 token和文字一样用自回归方式预测和预测「下一个词」同一套接口。「原生」Native 的含义不是另接一个独立 3D 检测头而是语言模型自己吐出 3D 参数。好处和指令理解绑在一起代价精度受离散化与语言建模限制。目前论文主要在2B/9B上做了这种 3D 预览训练。2. WildDet3D 是什么两样东西常被一起叫WildDet3D模型Ai2 开源的「野外」单目开放词汇 3D 检测器——给一张图 文本/点/框提示预测 3D 框。WildDet3D-Data数据大规模把 2D 标注「抬」成 3D 的数据集。数据怎么来的直觉现实里很难人工给一百万张图标精确 3D 框。WildDet3D-Data 的路线大致是已有大规模 2D 检测数据COCO / LVIS / Objects365 / V3Det ↓ 多种方法生成「候选 3D 框」 ↓ 几何/语义过滤 VLM 筛选 人工核验 ↓ 得到海量但有噪声的 3D 监督RynnBrain 用了其中两个子集论文数字子集规模直觉特点Essential~10 万图人工核验较多更干净Synthetic~90 万图自动筛覆盖广噪声更多RynnBrain 还用 Qwen-VL 根据 2D 框生成指代表达「左边红色的……」把检测数据变成「语言 → 3D 框」的 grounding 训练样本。为什么要和 FoundationPose 混着训WildDet3D类别多、场景真但 3D 是「抬」出来的深度/姿态可能偏。FoundationPose 合成类别少但几何几乎无噪声。两者互补。项目页https://allenai.github.io/WildDet3D/数据https://huggingface.co/datasets/allenai/WildDet3D-Data3. FoundationPose 是怎么合成的FoundationPose 本身是 NVIDIA 的6D 物体位姿基础模型RynnBrain 借用的是它配套的大规模合成训练数据思路/产物。合成流水线白话① 准备 3D 资产 主要来自 Google Scanned ObjectsGSO真实扫描的家居物体 CAD/网格 原论文还会用 Objaverse 等 ② 在仿真器里摆场景 使用 NVIDIA Isaac Sim - 打开重力/物理让物体「合理落地」 - 随机摆物体、材质、光照、相机轨迹 - 高保真路径追踪渲染看起来像照片 ③ 自动得到完美标注 因为一切都是仿真器算出来的 - RGB 图 - 深度 - 物体相对相机的精确位姿 - → 可直接算出无噪声的 3D 包围盒 ④ RynnBrain 侧再加工 用 Qwen-VL 给资产起自然语言类别名 得到「语言 图 → 精确 3D 框」样本约 184.9 万图量级论文所述为什么「合成」对 3D 特别香真实照片里深度和朝向很难标准仿真里这些是数学真相。用它当「几何老师」再混真实/抬升数据模型既见过世面又学到正确的深度/朝向归纳。原项目https://nvlabs.github.io/FoundationPose/4. DiT 是什么意思DiT Diffusion Transformer扩散 Transformer拆开理解Diffusion / 扩散模型家族从噪声一步步生成干净数据图、动作……。Transformer用注意力处理序列的神经网络骨干。合起来不用 U-Net而用 Transformer 当「去噪网络」。在 RynnBrain-VLA 里的特殊说法论文写RynnBrain底座本身当作single-stream DiT。意思是不是「旁边再挂一个小动作网络」而是把语言 多相机图像 机器人状态 带噪声的动作块打包成一条序列每一层 Transformer 里视觉、语言、动作密交互迭代「去噪」最终吐出干净的action chunk类比像一间会议室视觉、指令、当前姿态、半成品动作计划坐在同一张长桌旁反复讨论讨论多轮后动作计划变清晰。这就是「单流 DiT 去噪」。5. Flow Matching 是什么代码怎么实现5.1 直觉先丢掉公式恐惧目标学会一条路——从「纯噪声动作」走到「专家演示动作」。定义一条直线插值最常见的简化设定xtt⋅noise(1−t)⋅actions x_t t \cdot \text{noise} (1-t) \cdot \text{actions}xtt⋅noise(1−t)⋅actionst0t0t0干净动作演示t1t1t1纯噪声中间半噪声半动作真实速度场沿直线从动作走向噪声的方向utnoise−actions u_t \text{noise} - \text{actions}utnoise−actions模型预测v^t\hat{v}_tv^t训练损失就是L∥v^t−ut∥2 \mathcal{L} \left\| \hat{v}_t - u_t \right\|^2L∥v^t−ut∥2推理时从噪声出发按模型预测的速度往回积分若干步得到动作。生活类比你有一张正确地图专家动作和一张乱涂鸦噪声。训练时随机拿「半糊的图」让模型说出「应该往哪个方向擦才能变成正确地图」。推理时从一张白噪声开始按指示擦十几步就得到可用动作。5.2 和 Diffusion 的关系够用版同属「从噪声生成」家族。Flow Matching 常用直线路径 回归速度场在机器人 VLAπ0 / openpi 一脉RynnBrain-VLA 也采用里很常见。新人阶段记住用来生成动作块不是用来聊天。5.3 真实代码openpi / π0PyTorch# 训练构造插值状态 x_t监督速度场 u_ttime_expandedtime[:,None,None]x_ttime_expanded*noise(1-time_expanded)*actions u_tnoise-actions# ... 把图像/语言/状态/x_t 送进 Transformer ...v_tself.action_out_proj(suffix_out)# 模型预测的速度lossF.mse_loss(u_t,v_t,reductionnone)推理从noise开始循环x ← x dt * v_θ(x, t)openpi 里t从 1 降到 0。5.4 极简可运行伪代码帮助建立肌肉记忆importtorchimporttorch.nnasnnclassTinyFlowPolicy(nn.Module):def__init__(self,action_dim7,horizon16,hidden128):super().__init__()self.netnn.Sequential(nn.Linear(action_dim*horizon1,hidden),nn.SiLU(),nn.Linear(hidden,action_dim*horizon),)self.horizon,self.action_dimhorizon,action_dimdefforward(self,x_t,t):# x_t: [B, H, D], t: [B]flatx_t.reshape(x_t.size(0),-1)inptorch.cat([flat,t[:,None]],dim-1)returnself.net(inp).reshape_as(x_t)deftrain_step(model,actions,opt):B,H,Dactions.shape noisetorch.randn_like(actions)ttorch.rand(B,deviceactions.device)# in (0,1)x_tt[:,None,None]*noise(1-t)[:,None,None]*actions u_tnoise-actions v_tmodel(x_t,t)loss((v_t-u_t)**2).mean()opt.zero_grad();loss.backward();opt.step()returnloss.item()torch.no_grad()defsample(model,shape,steps10):xtorch.randn(shape)dt-1.0/steps t1.0for_inrange(steps):tttorch.full((shape[0],),t)vmodel(x,tt)xxdt*v ttdtreturnx# ≈ clean actionsRynnBrain-VLA 额外工程点输入用对话模板包起来INSTRUCTION / OBSERVATION / STATE动作放在序列末尾方便KV cacheRTCReal-Time Chunking不等整段 32 步跑完就重新推理用未执行部分引导新 chunk保证边看边动、动作连续6. 81 维指什么指统一动作空间里一条动作向量有81 个数字按「身体部位语义」分组组维度含义直觉Arm-Joint14左右臂关节角每臂最多 7Arm-EEF18左右臂末端位姿类控制每臂最多 9Gripper2左右平行夹爪开合Hand40灵巧手关节每手最多 20Torso4躯干Head3头部合计81关键不是每台机器人都用满 81 维用embodiment-specific mask形态掩码机器人大约激活哪些Astribot S1Arm-Joint 14 Gripper 2 Head 3 Torso 4夹爪双臂机天机-无极Arm-Joint 14 Hand 40 54 维Unitree G1统一空间里 Hand 用 14 维三指/手相关另外预测 64 维 SONIC 潜变量全身控制不在81 维里类比81 维像「万能遥控器面板」。Astribot 只点亮夹爪相关按钮灵巧手点亮手指按钮没有的按钮在训练时 mask 掉不算 loss。这样不同机器人的数据可以进同一个 batch、同一个策略网络联合训练。7. 架构和训练骨架详细版把 RynnBrain 想成两段人生阶段 A具身基础模型预训练会看、会指、会规划 阶段 BVLA 后训练会动手7.1 阶段 A — 基础模型架构┌─────────────────────────────────────────────┐ │ 输入文字指令 Omni 视觉 │ │ 单图 / 多视角 / 视频 │ └──────────────────┬──────────────────────────┘ ↓ Vision EncoderViT 看图 ↓ Projector / Merger对齐到语言维度 ↓ ┌──────── DeepStack多层视觉特征灌进 LLM 浅层 ────────┐ │ │ ▼ ▼ Dense Decoder 或 MoE DecoderQwen3.5 骨干 │ Interleaved MRoPE时空位置编码 ▼ 自回归输出混合 token 文字 | 2D框/点/轨迹 | 接触点(x,y,θ) | 2B/9B3D九元组三个规格同一套能力定义与训练框架方便看缩放2B、9BDense122B-A10BMoE总参大每次激活约 10B 量级7.2 阶段 A — 训练在优化什么统一目标对混合序列做因果语言建模预测下一个 tokenL−∑ilogP(yi∣y1:i−1,V) \mathcal{L} -\sum_i \log P(y_i \mid y_{1:i-1}, V)L−i∑logP(yi∣y1:i−1,V)其中yyy既可以是词也可以是坐标离散 tokeny1:i−1y_{1:i-1}y1:i−1表示已经生成的前缀。两大原则时空记忆把图和视频都当成有序帧序列带时间位置学物体持续性、运动、长程依赖。物理落地逼模型用显式空间输出表达理解而不是只会空口白话。数据混合物能力导向大类教什么General MLLM别把通用看图说话能力丢掉Cognition物体/空间/计数/OCR/第一人称任务理解Localization框、区域、affordance、轨迹、接触点3D Grounding语言条件 3D 框主要 2B/9BPlanning带物体/区域/affordance 的分步计划优化AdamW视觉与语言可设不同学习率大 batch122B 用专家并行等基础设施。7.3 阶段 B — VLA 后训练骨架遥操作演示数据多相机 状态 动作轨迹 指令 ↓ 把动作映射进 81 维统一空间 mask ↓ Flow Matching 训练预测 action chunk如 32 步 ↓ 部署Model 层 → Control 层(30Hz/200Hz) → Embodiment 层 ↓ RTC 实时重规划保证平滑对照实验的干净点同一数据、同一后训练配方只换底座RynnBrain vs Qwen→ 证明「具身预训练有没有用」。8. MoE 是什么Mixture of Experts 混合专家白话模型里有很多「专家」子网络像很多专科医生。每次输入只激活少数几个专家计算其它专家休眠。总参数可以很大知识容量大单次推理激活参数相对小算力可控RynnBrain 最大号122B-A10B名字里通常解读为总参约 122B、激活约 10B 一类设定以官方模型卡为准。类比医院不是每次全院大会诊而是分诊后找 2–3 个专科。医院「编制」可以很大但每个病人消耗的医生时间有限。9. DeepStack 是什么来自 2024 的 LMM 架构技巧Qwen3-VL / Qwen3.5 系也采用类似思想。问题传统做法视觉 encoder 最后一层特征 → 变成一串 visual tokens →只塞进 LLM 的第 1 层。浅层细节边缘、纹理容易丢对 grounding / OCR 不友好。做法从 Vision Transformer 的多个中间层取出特征经轻量 merger残差加到 LLM 前几层的隐藏状态里。ViT 浅层特征 ──► 加到 LLM 第 1 层 ViT 中层特征 ──► 加到 LLM 第 2 层 ViT 深层特征 ──► 加到 LLM 第 3 层 具体层号以实现为准如 [8,16,24]类比不只把「总结摘要」给语文老师还把「草稿、提纲、终稿」分层交给老师——细节和语义都保留。这对 RynnBrain 这种重度依赖空间定位的模型特别有用。10. Interleaved MRoPE 是什么先懂RoPERotary Position Embedding给 token 加「位置感」的旋转位置编码。MRoPE Multimodal RoPE不仅编码「第几个词」还要编码图像的宽/高、视频的时间。Interleaved交错把时间、宽、高三个维度的频率分量交错分配频谱更均衡有利于长视频 / 长上下文时空建模多图、多视角相对位置原生超长上下文Qwen3-VL 一脉常见类比普通 RoPE 像给书页编号。MRoPE 像同时标第几秒、画面第几行、第几列。Interleaved 像把三种编号的「刻度」均匀揉进同一套编码避免某一种维度的位置信息太弱。11. MLLM 是什么MLLM Multimodal Large Language Model多模态大语言模型 能处理多种模态文本 图像/视频/……的大语言模型。和 VLM 视觉语言模型 在口语里经常混用细一点VLM强调视觉语言MLLM更广的多模态大模型说法有时还包括音频等论文表里的General MLLM Data就是普通「看图/视频问答、指令跟随」数据防止具身专项训练把通用能力训废。12. AgibotWorld、OXE、Galaxea-G0 是什么三者都是机器人操作相关的大规模数据/项目RynnBrain 用它们做planning规划类预训练把高层任务拆成带 grounding 的子步骤。名字是什么新人一句话Agibot World智元相关的大规模双臂操作数据与平台百万级轨迹量级「超大真人遥操作题库」OXEOpen X-EmbodimentGoogle DeepMind 等联合的跨机器人、跨实验室开放数据集「多机构、多机器人的数据大杂烩」Galaxea-G0 / Galaxea Open-World银河通用开源的真实世界移动操作数据 G0 双系统 VLARynnBrain 用其规划标注「统一本体、开放场景、带子任务语言标注」RynnBrain 对 Galaxea-G0原标注偏离子任务缺少全局任务描述时用 Gemini 根据子任务序列补全高层指令再转成统一 planning 格式。13. MMSI、MindCube 是什么都是考空间智能的基准不是训练数据集名字那么简单——用来测模型行不行。MMSI-BenchMulti-Image Spatial Intelligence多图空间智力问答不是只看一张图题来自真实场景驾驶、机器人、场景扫描等很难早期很多模型接近乱猜人类却接近满分考多视角对齐、场景重建、视角变换、空间逻辑等类比给你客厅两张不同角度照片问「沙发相对于门在哪」。MindCube测模型能不能像人一样从有限几个视角在脑子里形成「空间心智模型」子能力大致包括认知地图东西在哪、视角采择换个角度看、心智模拟如果我走过去会怎样大量多视角问答论文报告两万 题规模类比只看房间两个角落的照片想像整个房间布局。RynnBrain 在这两项上随规模上升很明显而纯 Qwen 在这类「强空间推理」上甚至出现负缩放——这是全文最重要的实验叙事之一。14. 「不同形态共享 affordance」是什么意思先回顾 Affordance 可供性物体「能怎么被用」把手可抓、抽屉可拉。不同形态 人形、双臂夹爪机、灵巧手……外观和控制完全不同。论文观察把多机器人数据放进同一 VLA 81 维 mask联合训练平均成功率不降反升。作者解释直觉版共享的可互相教 - 杯子把手是可抓区域 - 任务做到哪一步了倒酒是否对准杯口 - 伸手 → 抓 → 操作 → 放 的交互节奏 不共享的用 mask 隔开 - 具体关节怎么转 - 夹爪开合 vs 手指弯曲的低层指令所以「共享 affordance」共享「物理世界怎么被交互」的知识而不是共享同一套电机指令。新人易错点不是说 Astribot 和 G1 的动作数字可以直接对拷。而是说它们在视觉上看到的「可抓、可倒、可推」模式可以一起强化同一个视觉–交互表征。建议阅读顺序零背景MLLM 多模态大语言模型 → VLM 视觉语言模型 → 具身智能 Embodied AIGrounding 视觉语言落地 → 3D Grounding → Affordance 可供性MoE 混合专家 · DeepStack · Interleaved MRoPE架构零件DiT Diffusion Transformer → Flow Matching → 统一动作空间 81维回到 《RynnBrain 1.1》 看实验数字