赛事: 昇腾 Model Agent 模型适配大赛(第二季) 引擎: torch_npu + Florence2(trust_remote_code) 硬件: Ascend 910B 系列(实测 Ascend910B4) 标签:
npuascendpytorchtransformers
| 属性 | 值 |
|---|---|
| 原始模型 | 2toINF/X-VLA-WidowX |
| 架构 | XVLA(Florence-2 视觉语言编码器 + 扩散动作 transformer) |
| 参数量 | 932M |
| 任务类型 | 机器人 VLA(Vision-Language-Action) |
| 输入格式 | 图像 + 语言指令 |
| 输出格式 | 动作序列 [num_actions, dim_action](ee6d,30×20) |
⚠️ 本仓库不包含模型权重(交付件仅
inference.py/readme.md/requirements.txt/assets/), 推理前必须先从原始模型仓单独下载权重(含modeling_xvla.py等自定义代码)。
依赖清单(requirements.txt):
torch / torch_npu(昇腾 NPU 环境)transformers、huggingface_hubjson-numpy、opencv-python、pillow、numpy代码获取:inference.py 首次运行会自动对本地 configuration_florence2.py / modeling_florence2.py / modeling_xvla.py
注入 transformers 5.x / NPU 兼容补丁(forced_bos_token_id、_supports_sdpa、_tied_weights_keys)。
# 1. 安装依赖
pip install -r requirements.txt -i https://repo.huaweicloud.com/repository/pypi/simple/
# 2. 下载模型权重(仓库不含权重,必须单独下载)
git clone https://gitcode.com/hf_mirrors/2toINF/X-VLA-WidowX.git .
git lfs pull
# 3. 运行 NPU 推理(合成图像 + 指令)
python3 inference.py --model_path . --device npu:0python3 inference.py --model_path . --device npu:0预期输出:
[Model Agent] ✅ 模型加载完成 → npu:0
[Model Agent] 📊 输入: 图像 + 指令 'pick up the object'
[Model Agent] ✅ 推理完成 → 动作 30 步 x 20 维, 耗时 7725 ms
[Model Agent] 📈 动作[0]前5: [0.028, -0.01, 0.007, 0.179, 0.071]
[Model Agent] ✅ 结果已保存 → inference_result.json.
├── inference.py # NPU 推理脚本
├── readme.md # 本文件
├── requirements.txt # 依赖清单
└── assets/ # 截图素材本模型由 昇腾 Model Agent 自动完成 NPU 适配。
X-VLA(Florence-2 视觉语言 + 扩散动作)迁移至昇腾 NPU:
inference.py 注入 3 个 transformers 5.x 兼容补丁(forced_bos_token_id / _supports_sdpa / _tied_weights_keys);pad_token;proprio 按 action_space 的 dim_proprio(20)构造(缺失会导致扩散 transformer 维度不匹配);torch_npu,generate_actions 扩散采样生成 30 步 × 20 维动作。