Intern-Decision-RKNN

0 downloads 0 likes on ModelScope updated

Model card

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-toolkit 1.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) 视觉部分(.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 所有,不在本仓库许可范围内。