Intern-Decision-0.8B · RK3588 部署权重(RKLLM + RKNN)
本仓库提供 Intern-Decision-0.8B 面向 RK3588 / RK3588S 平台的转换产物, 按"视觉编码器 + 语言骨干"拆分部署:
- 语言模型:
rk3588/intern-decision-0.8b_w8a8_rk3588.rkllm(RKLLM,W8A8 量化,1.30 GB) - 视觉编码器 + projector:
rk3588/intern-decision-vision_448_rk3588.rknn(RKNN,FP16,218.8 MB)
语言权重在 x86_64 转换机上由
rkllm-toolkit1.3.1 导出;视觉权重在本机 RK3588 上由 RKNN-Toolkit2 2.3.2 从 ONNX 转换。两者均已在 RK3588 真机 NPU 上完成验证。
文件清单
README.md
LICENSE 项目许可证
LICENSE-QWEN 基座模型(Qwen 系列)许可证
checksums.txt MD5 / SHA-256 校验值
rk3588/
intern-decision-0.8b_w8a8_rk3588.rkllm 1,300,331,476 B MD5 654030b7f213ea1ed012e409e325e076
intern-decision-vision_448_rk3588.rknn 218,787,569 B SHA-256 c241856e4037e8a5de786e5e80206c334ba59e5cc3931753b1af314b247dffda
scripts/rkllm/ 语言转换 / 校准 / 校验脚本(复现用)
scripts/rknn/ 视觉导出 / 转换 / 验证脚本(复现用)
下载后请用 checksums.txt 核对文件完整性。
环境要求
| 组件 | 版本 |
|---|---|
| 目标平台 | RK3588 / RK3588S(3 NPU 核) |
| RKLLM Runtime | 1.3.1(或兼容版本,配合同版 rkllm.h) |
| RKNN Runtime(librknnrt) | 2.3.2 |
| NPU 驱动 | 0.9.8 |
| 语言模型上下文 | max_context_len = 4096 |
运行时库与头文件不随本仓库分发,请从 Rockchip 官方仓库获取:
- RKLLM:https://github.com/airockchip/rknn-llm
- RKNN:https://github.com/airockchip/rknn-toolkit2(runtime 与
rknn_model_zoo)
模型说明
| 项 | 语言部分(.rkllm) | 视觉部分(.rknn) |
|---|---|---|
| 结构 | Qwen3.5 语言骨干(24 层混合 linear/full attention + mRoPE),仅导出 CausalLM | ViT 编码器 + projector |
| 量化 | W8A8(含本项目自建校准数据) | FP16(非量化) |
| 输入 | token ID 或字符串(prompt / 多模态) | 固定 448×448 RGB 图像 |
| 输出 | 词表 logits(GET_LOGITS 支持读取全部位置) |
(196, 1024) FP32 视觉特征 |
多模态使用时,将 .rknn 提取的视觉特征(n_image_tokens=196)与语言解码器
的 RKLLM_INPUT_MULTIMODAL 接口配合;图像占位标记为 <image>,
展开为 <|vision_start|> + 196×<|image_pad|> + <|vision_end|>。
部署样例可参考官方 rknn-llm/examples/multimodal_model_demo。
验证结果
- 语言部分(真机 NPU):生成模式输出正确决策符号;
GET_LOGITS与 HF 原始模型 候选 logits 对比最大误差 < 0.36,argmax 一致。 - 视觉部分(真机 NPU):NPU 输出与 ONNX / PyTorch 参考逐元素对比通过
(详见
scripts/rknn/verify_*.py)。 - 端到端决策一致性(纯文本决策路径,232 条 jevbench 样本对照 HF CPU fp32 参考): argmax 一致率 90.5%;正确率 64.9%(HF)vs 65.8%(板端),无显著差异; 22 条不一致样本全部出现在 HF 自身置信度 < 0.9 的接近平局样本上。
使用注意
- 语言模型为决策型模型:推荐使用
RKLLM_INFER_GET_LOGITS读取候选符号位置的 分数(如 A/B/C… 单词 token),而不是依赖生成模式。 - 多模态
GET_LOGITS返回的是图像结束位置起至序列末尾的区间(行数与输入分词 相关,随模板不同而变化);按"尾部结构"(<decision>占位符前的完整 JSON skeleton)定位决策行可获得与 HF 一致的读数。 - SDK 内部分词与 HuggingFace tokenizer 存在少量差异(普通文字 BPE 合并细节), 坐标换算时请以序列尾部结构为锚点,不要假设"文本 token 数 = HF token 数"。
许可证与致谢
- 基座模型及其词表来自 Qwen 系列(见
LICENSE-QWEN),请同时遵守其许可证。 - 本仓库转换产物与脚本沿用项目
LICENSE。 - 转换与运行依赖 Rockchip
rknn-llm(RKLLM)与rknn-toolkit2工具链; 相关代码与库版权归 Rockchip 所有,不在本仓库许可范围内。