本交付包包含 SmolVLA(SmolVLM2-500M 视觉-语言-动作策略)在昇腾 NPU 上的离线推理交付物。 SmolVLA 是一个视觉-语言-动作(Vision-Language-Action)策略,输入多路摄像头图像、机器人本体状态与一条自然语言指令,输出一段连续动作块,用于机器人操作任务的闭环控制。
SmolVLAPolicy = SmolVLM2-500M 视觉语言骨干(16 层 VLM + 交叉注意力专家层)+ 动作专家头(flow matching)。camera1/camera2/camera3,各 3×256×256)、6 维机器人状态、语言指令 token(最长 48)。policy_outputs(原始流匹配动作采样,形状 (1, chunk_size, max_action_dim))与 actions(裁剪到真实动作维度的动作块)。put the red block in the blue bowl。model.safetensors 中内嵌视觉语言骨干权重;policy_preprocessor.json / policy_postprocessor.json 描述归一化与反归一化映射。torch_npu 可用),逻辑设备 npu:0。HF_HUB_OFFLINE=1、TRANSFORMERS_OFFLINE=1)。requirements.txt;torch 与 torch_npu 由昇腾工作镜像提供,不在此处固定。安装依赖(在已具备 torch/torch_npu 的环境中):
pip install --ignore-installed --no-deps -r requirements.txt在任务根目录下执行:
python delivery/inference.py [--output-dir PATH]脚本会按以下步骤执行:
HF_HUB_OFFLINE=1、TRANSFORMERS_OFFLINE=1、TOKENIZERS_PARALLELISM=false),并加载本地 delivery/common.py 中的加载器。model/ 加载策略:PreTrainedConfig.from_pretrained("model") 读取配置,SmolVLAPolicy.from_pretrained("model") 构建策略(视觉语言骨干权重内嵌于 model.safetensors,使用本地 base_model/smolvlm2_500m_local 目录构建 VLM 骨架)。3×256×256 随机图像、6 维状态、指令 token。npu:0,以 torch.inference_mode() 运行一次确定性前向。PROMPT=put the red block in the blue bowl
INPUT_DEVICE=npu:0
MODEL_DEVICE=npu:0
OUTPUT_DEVICE=npu:0
CPU_FALLBACK=false
EXIT_CODE=0若指定 --output-dir,还会将 policy_outputs.npy 与 actions.npy 保存到该目录。
| 用例 | 输入 | 预期输出 | 验收方式 |
|---|---|---|---|
| 固定种子推理 | 3 路随机图像 + 6 维状态 + 固定指令 | policy_outputs 形状 (1, chunk_size, max_action_dim),actions 形状 (1, chunk_size, action_dim) | 检查形状、dtype、NaN/Inf,两次前向一致 |
| 设备归属 | 同上 | 全部张量驻留 npu:0,无 CPU 回退 | 检查 INPUT_DEVICE / MODEL_DEVICE / OUTPUT_DEVICE 标记 |
| 输出 | 形状 | 说明 |
|---|---|---|
policy_outputs | (1, chunk_size, max_action_dim) | 原始流匹配动作采样(float32) |
actions | (1, chunk_size, action_dim) | 裁剪后的真实动作块(float32) |
assets/ 目录存放交付包随附的静态资源。
以下图片由真实 Model Agent 对话记录、npu-smi 设备日志和最终 NPU 推理日志
以无头浏览器渲染生成;每张 PNG 均有同名 .provenance.json,记录源证据哈希。



npu:0 上进行,不读取或修改 ASCEND_RT_VISIBLE_DEVICES,不启用 CPU 回退。已评估 11 组 NPU 精度配置;最佳方案将连续误差控制在 max_abs_error=0.009187,但 10 个样本仍残留 1 个动作离散翻转,未达到零翻转门槛。仓库按最大适配努力发布,不声明精度 PASSED,后续由社区继续研究临界 argmax 数值稳定性。