FluxVLA 是一个面向机器人视觉-语言-动作(VLA)模型的统一训练、评测与部署平台。本项目聚焦于机器人学习领域,
致力于为不同 VLA 架构(如 OpenVLA、LlaVA-VLA、GR00T、Pi0.5 等)及前沿的视觉/语言/多模态模型(LLaMA、QwenVL、Gemma、DinoSigLIP 等)提供模块化、可扩展、高效的深度学习解决方案。FluxVLA 兼容主流数据集格式(如 Parquet、RLDS),支持分布式训练、闭环仿真与一体化评估,实现训练、测试到部署的全流程无缝衔接。其 All-in-One 配置和自动化工具,为研究者和工程师简化了模型开发、实验管理和真实机器人部署的流程。
一、核心特性
- 统一配置管理: 采用 All-in-One 配置设计,训练、数据、模型、评估、部署等所有配置统一管理,简化工作流程
- 低迁移成本: 通过修改配置文件的特定模块即可快速切换训练流程、模型架构、数据集、仿真环境以及真实机器人部署,实现无缝迁移
- 低部署成本: 在相同环境下,仅需下载保存的
work_dir工作目录即可完成真实机器人部署,无需额外配置,额外下载 - 高效训练与测试: 支持 FSDP 多机分布式训练,支持 LIBERO 多机并行闭环仿真,大幅提升训练和测试效率
- 训练评估一体化: 内置 LIBERO 仿真评估功能,支持训练完成后自动进行闭环仿真评测,实现训练与评估的无缝衔接
二、项目简介
2.1 支持的 VLA 模型架构
- OpenVLA: 基于 Transformer 的开放视觉-语言-动作模型
- LlavaVLA: 基于 LLaVA 架构的 VLA 变体
- Gr00t: 支持多种视觉和语言backbone的 VLA 模型
- Pi0: 基于 Flow Matching 的动作预测模型
- Pi0.5: Pi0 的改进版本
2.2 支持的Backbone网络
语言模型(LLM)backbone:
- LLaMA 系列
- Gemma 系列
- Qwen 系列
视觉骨干:
- DinoSigLIP(结合 DINO 和 SigLIP 的视觉编码器)
视觉-语言模型(VLM)backbone:
- PaliGemma
- QwenVL
2.3 数据集支持
- Parquet 数据集: 支持高效的 Parquet 格式数据加载
- RLDS 数据集: 支持 TensorFlow RLDS 格式的数据集
- 多数据集混合训练: 支持同时使用多个数据集进行训练
2.4 训练特性
- 分布式训练: 支持 FSDP(Fully Sharded Data Parallel)和 DDP(Distributed Data Parallel)
- 参数高效微调: 支持 LoRA(Low-Rank Adaptation)训练模式
- 混合精度训练: 支持自动混合精度(AMP)训练,提高训练效率
- 检查点恢复: 支持从检查点恢复训练
- 训练后评估: 支持训练完成后自动进行评估
2.5 评估与推理
- 多 GPU 评估: 支持分布式评估,加速评估过程
- LIBERO 基准测试: 专门支持 LIBERO 机器人学习基准测试,包括在无光线追踪设备(如 A100)上的评估
- 真实机器人推理: 提供真实机器人环境下的推理脚本
- 推理模式: 支持推理时避免加载预训练权重,减少内存占用
三、项目结构
fluxvla/
├── fluxvla/ # 核心代码包
│ ├── models/ # 模型定义
│ │ ├── vlas/ # VLA 模型实现
│ │ ├── backbones/ # backbone 网络
│ │ ├── heads/ # 预测头
│ │ └── projectors/ # 投影层
│ ├── datasets/ # 数据集加载器
│ ├── transforms/ # 数据转换和预处理
│ ├── tokenizers/ # 分词器和动作编码器
│ ├── engines/ # 训练引擎和运行器
│ ├── optimizers/ # 优化器和调度器
│ └── collators/ # 数据整理器
├── configs/ # 配置文件
│ ├── openvla/ # OpenVLA 配置
│ ├── llava/ # LlavaVLA 配置
│ ├── gr00t/ # Gr00t 配置
│ ├── pi0/ # Pi0 配置
│ └── pi05/ # Pi0.5 配置
├── scripts/ # 训练和评估脚本
│ ├── train.py # 训练脚本
│ ├── eval.py # 评估脚本
│ └── inference_real_robot.py # 真实机器人推理
└── test/ # 测试代码
四、技术架构
4.1 模型架构
所有 VLA 模型都继承自 BaseVLA 基类,采用模块化设计:
- 视觉编码器: 处理多视角图像输入
- 语言编码器: 处理自然语言指令
- 投影层: 将视觉特征投影到语言模型空间
- 动作预测头: 将语言模型输出转换为机器人动作
4.2 数据流程
- 数据加载: 从Parquet或RLDS格式加载轨迹数据
- 数据转换: 应用图像变换、动作归一化等预处理
- 批处理: 使用自定义的 collator 进行批处理
- 模型前向: 通过 VLA 模型进行前向传播
- 损失计算: 计算动作预测损失
- 反向传播: 更新模型参数
4.3 训练流程
- 支持多种训练运行器(FSDP/DDP)
- 灵活的优化器和学习率调度策略
- 完整的日志记录和检查点保存机制
4.4 使用场景
- 机器人操作任务: 训练机器人执行复杂的操作任务,如抓取、放置、折叠等
- 多任务学习: 在多个任务上同时训练,提高模型的泛化能力
- 迁移学习: 从预训练模型微调到特定任务
- 研究实验: 为 VLA 研究提供统一的实验平台
4.5 数据集格式
项目支持标准化的数据集格式,包括:
- Parquet 格式: 高效的列式存储格式,适合大规模数据
- 视频文件: 支持多视角视频数据
- 元数据: 包含任务描述、统计信息等
4.6 未来规划
根据项目路线图,未来将支持:
- 更多视觉backbone网络
- 更多 VLM backbone网络
- 更多 VLA 方法
- VLM 数据或 Chain-of-Thought (CoT) 数据训练
- Isaac Sim 仿真环境支持
- 完整的日志功能实现
4.7 技术栈
- 深度学习框架: PyTorch 2.6.0
- Transformers: Hugging Face Transformers 4.53.2
- 注意力优化: Flash Attention 2.5.5
- 分布式训练: PyTorch FSDP/DDP
- 数据处理: TensorFlow (用于 RLDS), Parquet
- 机器人仿真: LIBERO
五、总结
FluxVLA 是一个功能完整、设计灵活的 VLA 模型训练框架,为机器人学习研究提供了强大的工具支持。通过模块化的架构设计和丰富的配置选项,
用户可以轻松地实验不同的模型架构、训练策略和数据集,推动视觉-语言-动作模型在机器人领域的应用和发展。