2toINF/X-VLA-WidowX 是视觉-语言-动作(VLA)跨具身策略(1138M,WidowX BridgeDataV2 微调), 基于 Florence-2 视觉编码器 + SoftPromptedTransformer 流匹配动作头, 输入语言指令 + 3 视图图像 + 本体状态,输出 30 步 × 20 维动作块。
本项目完成其在**华为昇腾 NPU(Ascend 910B)**上的推理适配与验证。
| 项目 | 说明 |
|---|---|
| 模型架构 | XVLA(Florence-2 + SoftPromptedTransformer 流匹配动作头) |
| 参数量 | 1138M |
| 输入 | 语言 token[1,50] + 3 视图图像[1,3,3,224,224] + domain_id + proprio[1,20] |
| 输出 | 动作块 [1, 30, 20](30 步 × 20 维) |
| 权重格式 | model.safetensors(3.52GB) |
# 必须 transformers 4.57.6(5.15 对 Florence2 远程代码不兼容)
/workspace/tf4venv/bin/pip install "transformers==4.57.6"cd /workspace/X-VLA-WidowX
/workspace/tf4venv/bin/python inference.py \
--model_path /workspace/2toINF_X-VLA-WidowX_src --device npu:0| 参数 | 说明 | 默认值 |
|---|---|---|
--model_path | 权重目录 | /workspace/2toINF_X-VLA-WidowX_src |
--device | 推理设备(npu:0 / cpu) | npu:0 |
--output | 输出动作块 npy | stdout |
输入:语言指令 + 3 视图图像 + 本体状态(确定性合成输入,参考实现方案)
[info] model loaded: XVLA (1137.8M)
[info] 输入: 语言[1,50] + 3视图图像[1,3,3,224,224] + proprio[1,20]
============================================================
[info] 输出动作块形状: (1, 30, 20)
[info] finite=True | 范围: min=... max=...
============================================================X-VLA-WidowX 在 NPU 上完成动作块预测(输出 (1,30,20)、全 finite), NPU 确定性前向链路完整跑通。
FLORENCE2_ATTENTION_CLASSES[None] KeyError)。__init__ 直接 del lm_head/decoder
会令 transformers 4.57.6 的 tie_weights()/get_output_embeddings() 崩溃,
已改为加载后保留(参考实现做法)。model.forward_vlm(input_ids, image_input, image_mask)。resolve_device():NPU 可用性检测,失败自动回退 CPU。*.safetensors 已加入 .gitignore。.
├── README.md # 模型卡片(本文件)
├── inference.py # NPU 推理脚本
└── assets/ # 适配过程截图素材