RKLLM大模型部署,没有输出的问题
RKLLM大模型部署,没有输出的问题
一、问题
开发板为香橙派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 驱动去了,应该是个硬骨头。
更多推荐
所有评论(0)