一文通透OpenVLA及其源码剖析——基于Prismatic VLM(SigLIP、DinoV2、Llama 2)及离散化动作预测
💡
原文中文,约14200字,阅读约需34分钟。
📝
内容提要
文章讨论了对π0开源项目的期待与遗憾,分析了OpenVLA和CogACT的源码,重点介绍了动作预测模块的实现,包括ActionTokenizer类的功能和Diffusion Transformer的架构。通过对比不同模型,探讨如何改进VLA以接近π0的思路。
🎯
关键要点
- 文章讨论了对π0开源项目的期待与遗憾。
- 分析了OpenVLA和CogACT的源码,重点介绍了动作预测模块的实现。
- ActionTokenizer类将连续的机器人动作离散化为多个维度上的N个区间,并映射到最少使用的token上。
- CogACT将OpenVLA的动作预测换成了Diffusion Transformer,逼近了π0的思路。
- Diffusion Transformer的架构用于视频生成与机器人动作预测。
- TimestepEmbedder类将标量时间步嵌入到向量表示中。
- LabelEmbedder类处理条件嵌入并进行分类器自由引导的标签丢弃。
- ActionEmbedder类将动作嵌入到向量表示中。
- DiTBlock类和FinalLayer类用于构建Diffusion Transformer的结构。
- DiT类是一个带有Transformer骨干的扩散模型,处理输入动作和时间步。
- 文章探讨了如何改进VLA以接近π0的思路。
❓
延伸问答
OpenVLA的动作预测模块是如何实现的?
OpenVLA的动作预测模块通过ActionTokenizer类将连续的机器人动作离散化为多个维度上的N个区间,并映射到最少使用的token上。
CogACT与OpenVLA的主要区别是什么?
CogACT将OpenVLA的动作预测换成了Diffusion Transformer,从而在模型架构层面上更接近π0的思路。
ActionTokenizer类的主要功能是什么?
ActionTokenizer类的主要功能是将连续的机器人动作离散化为多个维度上的N个区间,并将其映射到最少使用的token上。
Diffusion Transformer在动作预测中有什么应用?
Diffusion Transformer用于视频生成与机器人动作预测,通过多个去噪步骤预测最终动作。
如何改进VLA以接近π0的思路?
可以借鉴π0的思路,改造现有的VLA模型,结合不同的VLM模块和动作预测方法。
TimestepEmbedder类的作用是什么?
TimestepEmbedder类用于将标量时间步嵌入到向量表示中,以便在模型中使用。
➡️