官方示例Qwen3_Embedding执行失败

固件类型:官方提供的固件
固件文件名称:AIO-GS1N2-3588SJD4-AI-RK182X_Debian12-Xfce-r1255_d
固件下载地址:百度网盘
Log日志:RK1820.LOG

本帖最后由 Shatemon 于 2026-2-28 10:53 编辑

问题日志(部分):
→ init qwen3 llm model
W RKNNAPI(17401): MSG_MEM_SYNC_ACK fail, ack = ACK_UNKNOWN, expect = ACK_SUCC! Please check logs!
E RKNNAPI(17401): sync_data_to_device: copy command to device failed! Please check device side log!
E RKNNAPI(17401): rknn3_model_init: sync command data to device failed!
E NPUTransfer(17401): recv TransferClient recv failed, client fd: -1, ret = 0
E RKNNAPI(17401): __pthread_recv_msg, recv(MsgHeader) fail, -9(ERROR_PIPE) < 128!
terminate called without an active exception
Aborted

复现步骤:
#1. 下载toolkit3
#2. 下载Miniforge3
#3. 创建toolkit3开发环境
conda create -n toolkit3 python=3.10
conda activate toolkit3
cd rknn3-toolkit-1.0.0/rknn3-toolkit/packages
pip3 install -r requirements_cp310-1.0.0.txt
cd rknn3-toolkit-1.0.0/rknn3-toolkit/packages
pip3 install -r requirements_cp310-1.0.0.txt
#4. 下载交叉编译
tar xf gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu.tar.xz
export GCC_COMPILER=${}/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu
#5. 为Qwen3_Embedding下载rknn3-model-zoo
cd rknn3-model-zoo-1.0.0 && pip3 install -r requirements.txt
cd rknn3-model-zoo-1.0.0/examples/Qwen3_Embedding/python
python3 export_llm.py
python3 export_rknn.py
#6. 编译demo
cd rknn3-model-zoo-1.0.0
./build-linux.sh -t rk3588 -a aarch64 -b Release -d Qwen3_Embedding
#7. 复制demo和模型到开发板上执行
./rknn_qwen3_embedding_demo
model/Qwen3-Embedding-0.6B.rknn
model/Qwen3-Embedding-0.6B.weight
model/Qwen3-Embedding-0.6B.tokenizer.gguf
model/Qwen3-Embedding-0.6B.embed.bin 0xff
‘Who are you?’

tchip_askquestions
RK1820.LOG (8.18 KB)

从当前日志来看,报错主要集中在:

sync_data_to_device: copy command to device failed
MSG_MEM_SYNC_ACK fail
NPUTransfer recv failed
recv(MsgHeader) fail, -9(ERROR_PIPE)

这说明问题大概率不是模型本身导出失败,而是 RK3588 主控与 RK1820 协处理器之间的通信通道异常。在执行 rknn3_model_init 时,RKNN3 客户端需要把模型数据同步到 RK1820 侧,但协处理器侧的 Transfer 服务没有正常响应,导致管道断开。

建议先按以下步骤排查:

  1. 确认板端服务是否正常运行
ps -ef | grep rknn
ps -ef | grep transfer

重点检查是否有 rknn3_transfer_proxy、rknn3-server 或 rknn3_startup 相关进程。如果没有,可以尝试执行:

sudo /usr/bin/rknn3_startup start
  1. 确认 RK1820 是否被正确识别
lspci | grep -i 182
dmesg | grep -iE "pcie|rknn|transfer|rk182"
ls -l /dev/pcie-rkep*

如果看不到 RK1820 设备,需要检查 RK1820 模块是否插紧、独立供电是否正常、上电时序是否正确。

  1. 确认固件与 SDK 版本是否匹配

当前使用的固件为:

AIO-GS1N2-3588SJD4-AI-RK182X_Debian12-Xfce-r1255_d

PC 端使用的是 rknn3-toolkit-1.0.0 和 rknn3-model-zoo-1.0.0。请确认该固件是否已经内置与 RKNN3 SDK 1.0.0 对应的板端 Runtime、rknn3-server 和 rknn3_transfer_proxy。版本不一致也可能导致初始化失败。

  1. 确认模型文件是否完整

请检查以下文件是否都已拷贝到板端,且大小正常:

model/Qwen3-Embedding-0.6B.rknn
model/Qwen3-Embedding-0.6B.weight
model/Qwen3-Embedding-0.6B.tokenizer.gguf
model/Qwen3-Embedding-0.6B.embed.bin
  1. 打开详细日志后重新测试
export RKNN_LOG_LEVEL=4
./rknn_qwen3_embedding_demo \
  model/Qwen3-Embedding-0.6B.rknn \
  model/Qwen3-Embedding-0.6B.weight \
  model/Qwen3-Embedding-0.6B.tokenizer.gguf \
  model/Qwen3-Embedding-0.6B.embed.bin 0xff

同时收集完整日志:

dmesg -H | grep -iE "rknn|npu|pcie|transfer|rk182"