[具身智能-655]:X5能够同时支持bin和hbm格式的模型文件吗?
·
核心结论(RDK X5,地瓜机器人产品线,区分车载地平线 J5/J6)
✅ RDK X5 仅支持【X5 工具链编译生成的 .bin】;原生不支持车载平台的 .hbm 不能同时加载 bin + hbm 两类模型,二者分属两条完全隔离的技术路线:
.bin→ Bayes-e(RDK X5) 机器人产品线格式.hbm→ Nash-e/Nash-m(征程 5/J5、征程 6/J6、RDK S100) 车载产品线格式
极易混淆的概念澄清:
地平线集团内部两套独立工具链、两套 Runtime、两套模型封装规范,互不互通。
- 机器人端:D-Robotics(地瓜)OpenExplorer OE Toolchain →
.bin- 车载端:Horizon Auto 天工开物 HBDK →
.hbm
一、底层隔离原因
-
BPU 指令集完全不同
- RDK X5:Bayes-e
- J5/J6 hbm 目标架构:Nash-e/Nash-m 微指令编码、硬件流水线不兼容,没有任何办法直接转换。
-
Runtime 推理库割裂
- X5 板端:
libdnn.so/hbm_runtime(Python),接口只解析.bin - J5/S100:
libhbucp.so,专门加载.hbm
注意:X5 Python 包名叫
hbm_runtime,只是包名,不代表支持 hbm 文件!大量开发者踩这个坑。 - X5 板端:
-
编译链路互相独立
- X5:
hb_mapper makertbin一步输出.bin - J5:
compile → .hbo → link → .hbm两段式编译链接
- X5:
二、一张表理清边界
表格
| 文件 | 目标架构 | 能否在 RDK X5 加载 | 归属产品线 |
|---|---|---|---|
| X3 旧版 xxx.bin | bernoulli2 | ❌ 失败 | 旧机器人 RDK X3 |
| X5 OE 工具链生成 xxx.bin | bayes-e | ✅ 正常运行 | RDK X5 机器人 |
| J5/J6 工具链输出 xxx.hbm | nash-e/nash-m | ❌ 解析失败 | 车载征程 5/6、S100 |
三、高频工程误区
误区 1:hbm_runtime 名字带 hbm,就能加载 hbm 文件
重大陷阱! RDK X5 Python API 包名称为hbm_runtime仅仅是命名传承,底层仍然只接收.bin模型; .hbm只能在 RDK S100(Nash 架构)使用。
误区 2:把 X5 bin 改名 hbm、hbm 改名 bin 即可运行
二进制文件头、指令集、元数据全部不一样,修改后缀直接报模型校验错误。
误区 3:同一套 ONNX 既能编译 X5 bin,又能编译 hbm
可以用同一 ONNX 源文件,但必须使用两套独立工具链分别编译,产物不能跨板复用。
四、工程实操建议
- RDK X5 项目:全程只用
.binyaml 必须配置march: 'bayes-e',使用 OpenExplorer (OE) 工具链。 校验命令:
bash
运行
hrt_model_exec model_info --model_file xxx.bin
正常打印张量信息 = X5 合法模型。
-
如果你手上只有.hbm 模型(源自 J5/S100) 无法移植到 X5;解决方案:原始 ONNX 模型,用 X5 OE 工具链重新 PTQ 编译生成
.bin。 -
如果你想要 “多模型打包、权重共享” 能力 RDK X5 当前没有官方 hbm 方案;只能加载多个独立
.bin,多模型并发时权重无法自动共享。
多任务方案优化方向:手动把多分支网络合并进单个 ONNX,编译为单
.bin间接实现权重复用。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)