一、问题

        开发板为香橙派RK3588,4G内存,可选的模型比较少。目前香橙派给的最新镜像包,rknpu驱动为0.9.6,rkllm-runtime 为1.0.1。

        我下载的git克隆的rkllm是最新的,huggingface 转换后的 rkllm 模型无法运行,报错:

GGML_ASSERT:0 <= info->type && info->type < GGML_TYPE_COUNT

二、调试过程

        找客服说我板子内存小,跑不起来,有够水的。

        后来换了香橙派百度网盘里已经转换好的 rkllm ,测试过 Tiny_Llama 和 Qwen2,都可以初始化成功并打开,但是模型回复为空,在app里调试打印:

发现text的长度都是0,token_id 一直是一个固定值-360009216:

       瑞芯微的开发手册一直在强调版本对应的问题,于是准备对比一下各个库的版本。

        突然想起来最近瑞芯微官方似乎更新了挺多仓库的版本,像是rknn-toolkit2已经支持arm64平台了,目前是2.3.0。rkllm的runtime库也更新到了1.1.2。而我克隆的rkllm是最新的,所以我的llm_demo这个app也是最新的,按理说app的版本应该没什么影响。

        大模型的推理需要 runtime 实时运行库 librkllmrt.so,我本地打印的版本是1.0.1。尝试更新这个库,于是把最新的 librkllmrt.so 运行库放到板端,这个库在

rknn-llm/rkllm-runtime/runtime/Linux/librkllm_api/aarch64

目录下,放到板端要运行的大模型当前目录下,/usr/lib和/lib下都有旧版本的运行库,建议不要覆盖,万一别的软件需要旧的库呢?

        然后指定

export LD_LIBRARY_PATH=./
或者
export LD_LIBRARY_PATH=./:$LD_LIBRARY_PATH

此时按照官方的流程设置文件描述符上限:

ulimit -HSn 102400

突然可以愉快的执行大模型了,此时会警告 rknpu 版本低:

不过已经可以推理了:

三、总结

        版本对应一直都是长期更新所带来的问题,对于开发者来说需要适应这个问题。又给自己提了个醒,不能死板的看Wiki呀!

        不说了,更新 rknpu 驱动去了,应该是个硬骨头。

Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐