在发布的 RKLLM 工具链压缩文件中,包含了 RKLLM-Toolkit 的 whl 安装包、RKLLM Runtime 库的相关文件以及参考示例代码,github链接如下:https://github.com/airockchip/rknn-llm
由于提供的rkllm_toolkit包为python3.8版本的,因此需要确保本地的python环境为3.8,否则需要新建python3.8的虚拟环境。
首先进入到rkllm-toolkit``/packages
目录下,使用 pip 工具直接安装所提供的工具链 whl 包
pip install rkllm_toolkit-1.0.1-cp38-cp38-linux_x86_64.whl -i https://pypi.tuna.tsinghua.edu.cn/simple
安装完成后,我们可以使用如下命令测试是否安装成功
python
from rkllm.api import RKLLM
在rkllm-runtime的rumtime目录下,分别包含Linux和Android下RKLLM Runtime 的全部文件:
在通过 RKLLM 工具链构建OK3576板端的部署推理代码时,为保证编译的正确性,需要包含对以上头文件及函数库的链接。当代码在开发板上运行的过程中,同样需要确保库文件也成功推送至板端,并正确设置环境变量
export LD_LIBRARY_PATH=/path/to/your/lib
在板端使用 RKLLM Runtime 进行模型推理前,首先需要确认板端的 NPU 内核是否为 v0.9.6 版本,具体的查询命令如下:
板端执行以下命令,查询 NPU 内核版本
cat /sys/kernel/debug/rknpu/version
确认命令输出是否为:
RKNPU driver: v0.9.6
若所查询的 NPU 内核版本低于 v0.9.6,则需要更新npu驱动并且重新编译进内核。
在rkllm-toolkit``/``examples``/huggingface
目录下提供了huggingface模型转换的示例。整体流程如下图:
首先导入rkllm库
from rkllm.api import RKLLM
读取我们的huggingface格式的模型,需要把其中的modelpath修改为自己的模型文件夹
modelpath = '/tmp/code/models/qwen2_0_5B'
llm = RKLLM()
# Load model
ret = llm.load_huggingface(model = modelpath)
if ret != 0:
print('Load model failed!')
exit(ret)
# Build model
ret = llm.build(do_quantization=True, optimization_level=1, quantized_dtype='w8a8', target_platform='rk3576')
if ret != 0:
print('Build model failed!')
exit(ret)
各参数说明如下:
在通过 rkllm.build()函数构建了 RKLLM 模型后,可以通过rkllm.export_rkllm()函数将RKNN 模型保存为一个.rkllm 文件,以便后续模型的部署。
# Export rknn model
ret = llm.export_rkllm("/tmp/code/models/qwen.rkllm")
if ret != 0:
print('Export model failed!')
exit(ret)
更多回帖