一文通透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与CogACT的比较

OpenVLA和CogACT在动作预测模块的实现上存在显著差异。CogACT通过引入Diffusion Transformer(DiT)来提升动作预测的精度和效率,接近π0的设计思路。这种架构的变化可能会影响模型在实际应用中的表现,尤其是在复杂场景下的动作生成能力。

ActionTokenizer的功能解析

ActionTokenizer类的设计旨在将连续的机器人动作离散化为多个区间,并映射到最少使用的token上。这种离散化方法不仅提高了动作处理的效率,还为后续的模型训练提供了更为清晰的输入格式。理解这一过程对于优化机器人动作生成至关重要。

Diffusion Transformer的优势

Diffusion Transformer(DiT)在动作预测中的应用,利用了其强大的建模能力来处理复杂的时间相关动作。通过多次去噪步骤,DiT能够生成更平滑的动作序列,这在实际任务执行中可能提高成功率。关注这一模型的细节将有助于开发更高效的机器人控制系统。

延伸问答

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类用于将标量时间步嵌入到向量表示中,以便在模型中使用。

🏷️

标签

➡️

继续阅读