
本教程提供用于部署 VLA 模型的优化量化和推理方法,以及针对新机器人、任务和环境的参考微调流程。在一个自包含的仿真环境中,结合场景生成和领域随机化(MimicGen)对性能和准确性进行严格验证。
- ✅ 针对 VLA 模型的量化和推理优化
- ✅ 原始 OpenVLA-7B 权重的准确性验证
- ✅ 基于合成数据生成的参考微调工作流程
- ✅ 在 Jetson AGX Orin 上使用 LoRA 进行设备端训练,以及在 A100/H100 实例上进行完全微调
- ✅ 在示例积木堆叠任务中通过领域随机化达到 85% 的准确率
- ✅ 提供用于复现结果的示例数据集和测试模型

1. 量化

已在 NanoLLM 的流式 VLM 管道中添加对 OpenVLA 的支持,使用 MLC 在 INT4/FP8 量化下运行,并利用 TensorRT 以 FP16 精度执行视觉编码器。
首先,我们将在 BridgeData V2 数据集上测试模型。该数据集也是模型的训练集,用于在部署时验证量化和推理是否正确。
下面的命令会启动容器、下载数据集和模型(如有必要)、在首次运行时进行量化,并使用归一化均方误差(NRMSE)来衡量模型预测动作值与数据集真实值之间的准确度。
INT4:
jetson-containers run $(autotag nano_llm) \
python3 -m nano_llm.vision.vla --api mlc \
--model openvla/openvla-7b \
--quantization q4f16_ft \
--dataset dusty-nv/bridge_orig_ep100 \
--dataset-type rlds \
--max-episodes 10 \
--save-stats /data/benchmarks/openvla_bridge_int4.json
FP8:
jetson-containers run $(autotag nano_llm) \
python3 -m nano_llm.vision.vla --api mlc \
--model openvla/openvla-7b \
--quantization q8f16_ft \
--dataset dusty-nv/bridge_orig_ep100 \
--dataset-type rlds \
--max-episodes 10 \
--save-stats /data/benchmarks/openvla_bridge_fp8.json
FP16:
jetson-containers run $(autotag nano_llm) \
python3 -m nano_llm.vision.vla --api hf \
--model openvla/openvla-7b \
--dataset dusty-nv/bridge_orig_ep100 \
--dataset-type rlds \
--max-episodes 10 \
--save-stats /data/benchmarks/openvla_bridge_fp16.json
- 使用
--save-stats可以将逐帧指标和平均值保存到文件; - 使用
--max-episodes可以限制处理的 episode 数量。





