[EAI-028] Diffusion-VLA,能够进行多模态推理和机器人动作预测的VLA模型
Paper Card
论文标题:Diffusion-VLA: Scaling Robot Foundation Models via Unified Diffusion and Autoregression
论文作者:Junjie Wen, Minjie Zhu, Yichen Zhu, Zhibin Tang, Jinming Li, Zhongyi Zhou, Chengmeng Li, Xiaoyu Liu, Yaxin Peng, Chaomin Shen, Feifei Feng
论文链接:https://arxiv.org/abs/2412.03293
项目主页:https://diffusion-vla.github.io/
论文出处:/
论文被引:/
Abstract
本文提出了 DiVLA,它将自回归模型与扩散模型结合,用于学习视觉运动策略(visuomotor policy)。目标是 next token prediction,使模型能够有效地根据当前观测结果进行推理。随后,连接一个扩散模型来生成动作。为了通过 self-reasoning 增强策略学习,引入了推理注入模块,将推理句子直接集成到策略学习过程中。使用多个真实机器人进行了大量的实验,以验证DiVLA的有效性。包括一个工厂分拣任务,其中DiVLA成功地对物体进行了分类,包括那些在训练期间未见过的物体。推理模块增强了解释性,能够理解模型的思维过程并识别策略失败的潜在原因。此外,在零样本抓取任务上测试了DiVLA,在102个未见物体上实现了63.7%的准确率。证明了对视觉变化(例如干扰物和新的背景)的鲁棒性,并且易于适应新的机器人本体。DiVLA可以遵从新的指令并保持对话能力。DiVLA的数据效率高,推理速度快;DiVLA-2B在单个A6000 GPU上运行速度达到82Hz,并且可以从<50个演示中学习一个复杂任务。 最后,将模型从20亿参数扩展到720亿参数,展示了随着模型规模的增加而改进的泛化能力。
Summary

受到 pi0 启发,跟进的挺快的。把 PaliGemma-3B 的骨干换成了 Qwen2-VL 系列的 2B/7B/72B,同时增加了一个细粒度的特征提取模块,来更好的注入到扩散部分。并且实现了多模态推理,能够做 VQA,原始的pi0是没有的。利用预训练VLM作为VLA的骨干,提供了对视觉概念的强大先验理解,可以显著增强复杂任务中的下游性能。用了SigLIP编码器,又用了Qwen2-VL骨干,看起来像是用了两次视觉编码器?另外就是,微调阶段用的数据太少,看起来像是单任务,扩散+VLM构建VLA的实现长周期任务和复杂灵巧类双臂操作任务的优势没有发挥出来,可能是先占坑,期待后续工作~
研究背景
基于离散token自回归预测建模的方式实现的VLA模型,例如 RT-2、OpenVLA 面临的问题是:将连续的机器人动作离散化为固定大小的 token 破坏了动作的连续性和精确性。其次,NTP 的方式推理频率很低,难以满足端侧高频动作推理需求,限制了模型的应用。
近两年,基于扩散的视觉运动策略模型取得了较大的进展。通过将动作序列生成建模为去噪过程,很多方法表现出不错的性能。这种方法能够更好地捕获机器人动作的多模态性质,并能够更快的生成动作序列。但问题是基于扩散的模型缺乏推理能力,因为没有LLM。
所以能不能结合二者的优势构建一个VLA,融合自回归模型的推理能力和扩散模型的高频动作生成能力?
方法介绍
本文提出了 DiffusionVLA(DiVLA),结合了多模态理解模型和扩散模型。其中,多模态理解模型VLM具备良好的基于文本的推理能力,扩散模型能够通过去噪过程学习机器人的动作分布。这使得 DiVLA可以做多模态推理也可以做动作生成。但是有一点需要注意,逻辑推理和可操作的机器人策略之间存在gap,因此引入了推理注入模块,该模块重用了VLM的推理输出并将其直接应用于扩散策略,从而使用显式的推理信号丰富策略学习过程。DiVLA具备的优势:
- 快速的推理速度:DiVLA-2B 在单个 A6000 GPU 上的推理速率达到 82Hz,DiVLA-7B 的推理速率为 42Hz。
- 增强的视觉泛化能力:DiVLA不受视觉干扰或新背景的影响,在视觉动态环境中表现出鲁棒性。
- 可泛化的推理能力:DiVLA能够准确识别和分类未见的物体,展示其跨新输入泛化推理的能力。
- 对新指令的适应性和对话能力:可以解释和执行复杂的新指令,同时保持对话流畅性,在交互场景中提供多样的响应范围。
- 对其他机器人本体的泛化能力:DiVLA可以轻松微调以部署在双臂机器人上,只需少量微调即可实现高性能,证明其在各种机器人本体上的适应性。
- 可扩展性:提供了可扩展的模型系列——DiVLA-2B、7B 和 72B——证明泛化能力和性能随着模型大小的增加而提高,符合 Scaling Law。
模型架构
最终目标是创建一个统一的框架,将擅长预测语言序列以进行推理的自回归模型与擅长生成机器人动作的扩散模型结合起来。 开发这样一个集成模型面临着巨大的挑战:(i)设计一个能够无缝且高效地集成自回归和扩散机制的架构;(ii)利用自生成的推理来增强动作生成,而不会增加推理计算开销。
视觉编码器:SigLIP,将视觉输入转换为固定数量的 token。每个视角的图像单独编码,之后对 token 做拼接,各个视图是共享的。有个疑问,过了两遍视觉编码器?VLM还有自带的 ViT,论文貌似也没说清楚。通过View- adaptive tokenization 方法,将腕部相机视角的图像输入的token数量减少到 16,降低计算量。
VLM骨干:Qwen2-VL-2B/7B/72B
动作解码器:将 LLM 输出的 token 作为condition输入到扩散模型中以进行动作解码,采用标准的 Diffusion Policy 设计,权重随机出实话。之后接多层 MLP 用于解码动作,预测机器人的关节空间,如果用于不同设置的机器人本体,会随机初始化 MLP 的部分,而不是直接复用训练好的。
推理注入模块:目的是将显式的推理注入到VLA模型,避免了迭代输入-输出循环的计算和操作复杂性。使用 RT-1 和 YAY 使用的 FiLM 将其注入到扩散模型部分。
损失函数:两部分,一部分为扩散损失,一部分是 token prediction 损失,其中后者用了超参数,以平衡不同损失的贡献。实验发现,后者比前者小10倍。
训练策略:参考 pi0,使用 lora 微调 VLM,预训练学习率为 2e-5。
数据构建
预训练数据:2B/7B模型使用 Droid 数据,72B模型使用 OXE和Droid数据。使用 GPT-4o 将Droid数据语言注释部分转换为包含推理的形式。
微调数据:四种实验设置 sorting,(500 episodes) bin picking(未采集,评估零样本泛化能力), multi-task learning(580 episodes), and table bussing(400 episodes)。前三种使用 Franka 单机械臂,后者使用双臂 AgileX 机器人。

消融实验
Real-World Multi-Task Learning
设计了 5 个任务:
- object selection
- flip the vertically placed pot
- placing a cube into a designated box
- placing a cup onto a plate
- placing a cube inside a box
对视觉变化的泛化能力:评估模型在多样化、动态环境中的鲁棒性和适应性。三个场景:1) 在周围添加额外的干扰物以增加视觉杂乱和复杂性;2) 改变背景以测试对场景上下文变化的适应能力;3) 实现多彩的灯光效果以引入不同的照明和色彩色调。图 4 显示了这些场景,以说明每次变化对视觉环境的影响,实验结果如表1所示。

评估表明,虽然所有方法的性能都因这些视觉变化而下降,但DiVLA在五个不同的任务中始终保持最高的平均成功率。说明了模型固有的鲁棒性和适应性,尽管在训练过程中没有任何特定的数据增强技术。
End-to-End Sorting on Real Robot
在工业环境中评估了DiVLA的能力:将物品分为四类:1)玩具汽车,2)针织手套,3)毛绒玩具和 4)内六角扳手。语言指令是“将所有物品分类到相应的区域”。总共收集了500条轨迹作为训练数据。只有当机器人成功抓取物体并将其放置到正确的区域时,才认为任务成功。实验装置如图1所示。
在两种难度设置下评估:简单和困难。简单模式——桌子上放置的物品少于5件;困难模式——6到11件物品被随机排列。 此外,已见物体和未见物体在这两种场景中混合在一起。 在杂乱的场景中,物品可能会重叠或随机分布在桌面上,增加了排序任务的复杂性。
实验结果如图2所示。DiVLA在所有实验设置下的平均成功率为66.2%。 当场景复杂度增加(即物体数量和杂乱程度增加)时,其他方法的性能会显著下降(例如,在高度杂乱的混合场景中,DP的成功率急剧下降到9.2%),而DiVLA保持了60%的成功率。这种持续的性能突显了DiVLA有效处理复杂和动态的现实世界场景的能力。
通过检查推理结果来诊断策略模型。因为模型使用自然语言推理生成输出,所以可以通过观察其推理短语来了解模型的“思考”过程。如图5所示,模型识别出一辆玩具车并决定将其拾起。如果放一个内六角扳手来进行干预,推理短语就会从“抓取玩具车”转变为“抓取内六角扳手”,从而使模型能够适应并准确地对物品进行排序。这种动态推理使模型的决策过程更加透明和可解释。推理注入模块也受益于推理自我校正,从而使机器人动作更加鲁棒。
Zero-Shot Bin Picking of Unseen Objects
评估DiVLA的实例泛化能力,重点关注 Bin Picking 任务——这是评估机器人模型性能的基准。使用102个独特的物体,都没有包含在训练数据中。图6显示了其中一些物体。任务指令“将右侧面板上的任何物体移到左侧篮筐中”。图1(右)展示了实验设置。此次评估的挑战在于物体之间存在显著差异,这不仅包括尺寸差异,还包括不同的颜色图案、纹理和可变形程度。图7是该实验的五个不同尺寸物体的示例。

实验结果如图3所示,DiVLA 达到了 63.7% 的成功率。相比之下,扩散策略、Octo、TinyVLA 和 OpenVLA 的成功率分别为 8.9%、19.6%、23.5% 和 28.4%。这些结果表明,DiVLA 可以理解各种物体形状和尺寸,而其他模型往往由于依赖于可能无法很好地泛化到新实例的特定于物体的特征而失败。这突出了其在动态、非结构化环境中的应用潜力,在这些环境中,机器人会遇到不熟悉的物体,并且必须在最少人工干预的情况下执行任务。

Adapt to Real-World Bimanual Robot
研究 DiVLA 对双臂机器人的适应性。 受π0的启发,设计了一个桌子整理任务,该任务涉及清理带有各种物体的桌子。 此任务已针对双臂机器人设置进行了调整:所有餐具都应放置在左侧的面板上,而垃圾则应丢入右侧的垃圾箱。 与工厂分拣任务类似,使用可见物体和可见物体与未见物体的组合来评估模型的性能。图8显示了环境设置以及用于训练和评估的所有物体。 评估包括十二次试验,每次试验在桌子上随机放置3到5个物体。成功率由正确放置的物体数量计算得出。


实验结果表明,当物体出现在训练数据中时,在可见物体上的平均成功率达到72.9%。相比之下,Diffusion Policy和OpenVLA的成功率分别为45.8%和0%。 对于涉及可见物体和不可见物体的任务,DiVLA的成功率高达70.8%,与可见物体相比略有下降,这表明其对不同颜色和形状的物体的泛化能力显著。最后,DiVLA展示了识别未见物体的能力,特别是通过对物体颜色做出敏感的反应。例如,它将雪碧罐分类为“绿色罐”,并将其正确地放入垃圾箱。 这一观察结果进一步支持了推理有助于泛化的观点。
Following Novel Instruction
评估模型遵循新指令的能力,特别关注其对未见指令的泛化能力。引入新的指令来提示模型:
对四个物体进行了测试:1)西瓜,2)柠檬水,3)蓝色纸垃圾,4)红辣椒。 这是一项极具挑战性的任务,因为这些新指令在Droid数据集和我们收集的数据中都不存在。评估了四个新的指令,结果总结在表2中。

研究结果表明,OpenVLA和DiVLA-2B都可以识别这些未见过的物体并执行基本的拾取和放置任务。 然而,当涉及到复杂的顺序任务时,OpenVLA无法准确解释指令;相反,它会随机选择项目。 相比之下,DiVLA 正确地遵循了指令,按指定的顺序拾取物体。通过学习将长期任务分解成子任务,DiVLA获得了理解复杂的多步骤指令的泛化能力。 虽然OpenVLA可以执行更简单的命令,例如“拿起西瓜”,但它难以处理需要按特定顺序选择项目的更高级指令。当模型处理新指令时抓取精度下降,这表明指令的新颖性给任务执行带来了进一步的复杂性。
实验结论
这项工作提出了视觉-语言-动作模型 DiVLA,它在模拟和现实场景中都具有强大的性能,包括单臂和双臂机器人。核心在于结合下一个 token 预测目标和扩散模型:前者用于任务推理,后者用于动作预测。 引入了一个推理重用模块来增强动作生成,并实现自适应视图的符元化以降低计算成本。 通过在模拟和多个真实世界实现中的广泛评估,DiVLA 优于几种 SOTA 机器人模型。 此外,DiVLA 具有强大的泛化能力,能够有效地适应新的指令、任务和环境。
相关文章:
[EAI-028] Diffusion-VLA,能够进行多模态推理和机器人动作预测的VLA模型
Paper Card 论文标题:Diffusion-VLA: Scaling Robot Foundation Models via Unified Diffusion and Autoregression 论文作者:Junjie Wen, Minjie Zhu, Yichen Zhu, Zhibin Tang, Jinming Li, Zhongyi Zhou, Chengmeng Li, Xiaoyu Liu, Yaxin Peng, Chao…...
AIP-134 标准方法:Update
编号134原文链接AIP-134: Standard methods: Update状态批准创建日期2019-01-24更新日期2022-06-02 REST API通常向资源URI(如 /v1/publishers/{publisher}/books/{book} )发出 PATCH 或 PUT 请求,更新资源。 面向资源设计(AIP-…...
计算机网络一点事(24)
TCP可靠传输,流量控制 可靠传输:每字节对应一个序号 累计确认:收到ack则正确接收 返回ack推迟确认(不超过0.5s) 两种ack:专门确认(只有首部无数据) 捎带确认(带数据…...
DIFY源码解析
偶然发现Github上某位大佬开源的DIFY源码注释和解析,目前还处于陆续不断更新地更新过程中,为大佬的专业和开源贡献精神点赞。先收藏链接,后续慢慢学习。 相关链接如下: DIFY源码解析...
Kafka SSL(TLS)安全协议
文章目录 Kafka SSL(TLS)安全协议1. Kafka SSL 的作用1.1 数据加密1.2 身份认证1.3 数据完整性1.4 防止中间人攻击1.5 确保安全的分布式环境1.6 防止拒绝服务(DoS)攻击 2. Kafka SSL 配置步骤(1)创建 SSL 证…...
hexo部署到github page时,hexo d后page里面绑定的个人域名消失的问题
Hexo 部署博客到 GitHub page 后,可以在 setting 中的 page 中绑定自己的域名,但是我发现更新博客后绑定的域名消失,恢复原始的 githubio 的域名。 后面搜索发现需要在 repo 里面添加 CNAME 文件,内容为 page 里面绑定的域名&…...
【Block总结】MAB,多尺度注意力块|即插即用
文章目录 一、论文信息二、创新点三、方法MAB模块解读1、MAB模块概述2、MAB模块组成3、MAB模块的优势 四、效果五、实验结果六、总结代码 一、论文信息 标题: Multi-scale Attention Network for Single Image Super-Resolution作者: Yan Wang, Yusen Li, Gang Wang, Xiaoguan…...
移动互联网用户行为习惯哪些变化,对小程序的发展有哪些积极影响
一、碎片化时间利用增加 随着生活节奏的加快,移动互联网用户的碎片化时间越来越多。在等公交、排队、乘坐地铁等间隙,用户更倾向于使用便捷、快速启动的应用来满足即时需求。小程序正好满足了这一需求,无需下载安装,随时可用&…...
使用UpdateCursor删除行
UpdateCursor除了可以编辑表或要素类的行外,还可以删除行.但要记住,在编辑会话外删除行时,更改是永久性的. 操作方法: 1.打开IDLE,新建一个脚本 2.导入arcpy和os模块 import arcpy import os 3.设置工作空间 arcpy.env.workspace "<>" 4.在with语句中新…...
使用 Tauri 2 + Next.js 开发跨平台桌面应用实践:Singbox GUI 实践
Singbox GUI 实践 最近用 Tauri Next.js 做了个项目 - Singbox GUI,是个给 sing-box 用的图形界面工具。支持 Windows、Linux 和 macOS。作为第一次接触这两个框架的新手,感觉收获还蛮多的,今天来分享下开发过程中的一些经验~ 为啥要做这个…...
1.4 Go 数组
一、数组 1、简介 数组是切片的基础 数组是一个固定长度、由相同类型元素组成的集合。在 Go 语言中,数组的长度是类型的一部分,因此 [5]int 和 [10]int 是两种不同的类型。数组的大小在声明时确定,且不可更改。 简单来说,数组…...
攻防世界_simple_php
同类型题(更难版->)攻防世界_Web(easyphp)(php代码审计/json格式/php弱类型匹配) php代码审计 show_source(__FILE__):show_source() 函数用于显示指定文件的源代码,并进行语法高亮显示。__FILE__ 是魔…...
如何使用C#的using语句释放资源?什么是IDisposable接口?与垃圾回收有什么关系?
在 C# 中,using语句用于自动释放实现了IDisposable接口的对象所占用的非托管资源,如文件句柄、数据库连接、图形句柄等。其使用方式如下: 基础用法 声明并初始化资源对象:在using关键字后的括号内声明并初始化一个实现了IDisposable接口的对象。使用资源:在using语句块内…...
C++哈希(链地址法)(二)详解
文章目录 1.开放地址法1.1key不能取模的问题1.1.1将字符串转为整型1.1.2将日期类转为整型 2.哈希函数2.1乘法散列法(了解)2.2全域散列法(了解) 3.处理哈希冲突3.1线性探测(挨着找)3.2二次探测(跳…...
Solon Cloud Gateway 开发:导引
Solon Cloud Gateway 是 Solon Cloud 体系提供的分布式网关实现(轻量级实现)。 分布式网关的特点(相对于本地网关): 提供服务路由能力提供各种拦截支持 1、分布式网关推荐 建议使用专业的分布式网关产品࿰…...
科技快讯 | OpenAI首次向免费用户开放推理模型;特朗普与黄仁勋会面;雷军回应“10后小学生深情表白小米SU7”
不用开口:谷歌 AI 帮你致电商家,价格、预约一键搞定 谷歌在1月30日推出Search Labs中的“Ask for Me”实验性功能,用户可利用AI代替自己致电商家咨询价格和服务。该功能已与美汽车修理厂和美甲沙龙店合作,用户需加入Search Labs并…...
dmfldr实战
dmfldr实战 本文使用达梦的快速装载工具,对测试表进行数据导入导出。 新建测试表 create table “BENCHMARK”.“TEST_FLDR” ( “uid” INTEGER identity(1, 1) not null , “name” VARCHAR(24), “begin_date” TIMESTAMP(0), “amount” DECIMAL(6, 2), prim…...
谷歌收购HTC Vive部分软件团队:为VR/AR生态注入新活力
虚拟现实(VR)和增强现实(AR)技术的快速发展,正在重新定义我们与数字世界互动的方式。然而,尽管这些技术具有巨大的潜力,初创公司进入平台层面的竞争却异常艰难。Meta凭借其既有实力和先发优势占据了市场的主导地位,而苹果则似乎更倾向于专注于AR领域的发展。在这种背景…...
Spring AOP 入门教程:基础概念与实现
目录 第一章:AOP概念的引入 第二章:AOP相关的概念 1. AOP概述 2. AOP的优势 3. AOP的底层原理 第三章:Spring的AOP技术 - 配置文件方式 1. AOP相关的术语 2. AOP配置文件方式入门 3. 切入点的表达式 4. AOP的通知类型 第四章&#x…...
ElasticSearch view
基础知识类 elasticsearch和数据库之间区别? elasticsearch:面向文档,数据以文档的形式存储,即JSON格式的对象。更强调数据的搜索、索引和分析。 数据库:更侧重于事务处理、数据的严格结构化和完整性,适用于…...
一文读懂Python之random模块(31)
random模块是Python的内置标准库,用于生成各类随机数,可以用作生成网站初始登录密码和随机验证码。 一、random模块简介 random模块可以生成随机数,包括随机整数、浮点数、随机元素等。 二、random模块相关概念 随机数: 是指在…...
12.udp
12.udp **1. UDP特性****2. UDP编程框架(C/S模式)****3. UDP发送接收函数****4. UDP编程练习** 1. UDP特性 连接特性:无链接,通信前无需像TCP那样建立连接。可靠性:不可靠,不保证数据按序到达、不保证数据…...
Upscayl-官方开源免费图像AI增强软件
upscayl 链接:https://pan.xunlei.com/s/VOI0Szqe0fCwSSUSS8zRqKf7A1?pwdhefi#...
【Super Tilemap Editor使用详解】(十七):常见问题解答(FAQ)
1.问题:我更新了 Unity 版本后,资源无法正常工作或代码出现错误。 解答:当你使用不同版本的 Unity 打开项目时,应该删除项目根目录下的 Library 文件夹。此外,如果遇到窗口问题,可以将窗口布局重置为默认布局。 2.问题:我在 SceneView 中看不到工具栏,也无法在图块地图…...
SpringBoot Web开发(SpringMVC)
SpringBoot Web开发(SpringMVC) MVC 核心组件和调用流程 Spring MVC与许多其他Web框架一样,是围绕前端控制器模式设计的,其中中央 Servlet DispatcherServlet 做整体请求处理调度! . 除了DispatcherServletSpringMVC还会提供其他…...
苍穹外卖第一天
角色分工 技术选型 pojo子模块 nginx反向代理 MD5密码加密...
C# Winform enter键怎么去关联button
1.关联按钮上的Key事件按钮上的keypress,keydown,keyup事件随便一个即可private void textBox1_KeyDown(object sender, KeyEventArgs e){if (e.KeyCode Keys.Enter){this.textBox2.Focus();}}2.窗体上的事件private void textBox2_KeyPress(object sen…...
LeGO LOAM坐标系问题的自我思考
LeGO LOAM坐标系问题的自我思考 IMU坐标系LeGO LOAM代码分析代码 对于IMU输出测量值的integration积分过程欧拉角的旋转矩阵VeloToStartIMU()函数TransformToStartIMU(PointType *p) IMU坐标系 在LeGO LOAM中IMU坐标系的形式采用前(x)-左(y)-上(z)的形式,IMU坐标系…...
vim交换文件的作用
1.数据恢复:因为vim异常的退出,使用交换文件可以恢复之前的修改内容。 2.防止多人同时编辑:vim检测到交换文件的存在,会给出提示,以避免一个文件同时被多人编辑。 (vim交换文件的工作原理:vim交换文件的工作…...
PHP实现混合加密方式,提高加密的安全性(代码解密)
代码1: <?php // 需要加密的内容 $plaintext 授权服务器拒绝连接;// 1. AES加密部分 $aesKey openssl_random_pseudo_bytes(32); // 生成256位AES密钥 $iv openssl_random_pseudo_bytes(16); // 生成128位IV// AES加密(CBC模式)…...
