【Deepseek部署教程】iTOP-RK3588-deepseek部署测试手册
最近,AI界新星DeepSeek(中文名:深度求索)迅速崛起,凭借低成本、高性能的AI模型火爆全网。RK3588作为一款高性能AI芯片,采用了8nm LP 制程,搭载八核处理器,四核GPU以及6TOPS算力的NPU,依靠强大的性能和低功耗特性,非常适合边缘计算场景。本次部署deepseek-r1-1.5b/7b大模型使用的就是RK3588开发板。
【部署测试视频】: 分享 | 基于RK3588开发板部署测试DeepSeek模型_哔哩哔哩_bilibili
【迅为粉丝交流群】258811263
目录
第 1章 DeepSeek大预言模型部署测试
1.1 RKLLM-Toolkit介绍
RKLLM-Toolkit 是为用户提供在计算机上进行大语言模型的量化、转换的开发套件。通过该 工具提供的 Python 接口可以便捷地完成以下功能:
1. 模型转换:支持将 Hugging Face 格式的大语言模型(Large Language Model, LLM)转换为RKLLM 模型,目前支持的模型包括 LLaMA、Qwen/Qwen2、Phi2 等,转换后的 RKLLM 模型能够在 Rockchip NPU 平台上加载使用。
2. 量化功能:支持将浮点模型量化为定点模型,目前支持的量化类型包括 w4a16 和 w8a8。
1.2 RKLLM-Toolkit环境搭建
1.2.1 安装Miniconda
Conda是一个开源的软件包管理系统和环境管理系统,它可以用于安装、管理和升级软件包和依赖项,我们这里使用conda的目的只是构建一个虚拟环境,所以选择轻量话的miniconda。miniconda的官方链接如下所示:
https://docs.conda.io/en/latest/miniconda.html
进入miniconda的网址后如下所示
可以看到下方有各个系统的安装包,我们选择Miniconda3 Linux 64-bit和Miniconda3 Linux-aarch64 64-bit两个版本的安装包进行下载,如下图所示:
为了方便,已经将两个安装包存放到了“iTOP-3588开发板\02_【iTOP-RK3588开发板】开发资料\12_NPU使用配套资料\07_安装包\01_miniconda”目录下,如下图所示:
本章节要用到的是Miniconda3-latest-Linux-x86_64.sh安装包,而 Miniconda3-latest-Linux-aarch64.sh安装包会用在之后RKNN Toolkit lite2环境搭建中。
首先将Miniconda3-latest-Linux-x86_64.sh安装包拷贝到虚拟机ubuntu上,拷贝完成如下图所示:
随后使用“./Miniconda3-latest-Linux-x86_64.sh”命令进行安装,根据提示,输入回车和“yes”,等待安装完成,安装完成如下图所示:
安装完成之后会自动设置环境变量,打开新的终端,发现用户名前出现(base),就代表安装成功了,如下图所示:
1.2.2 创建RKLLM虚拟环境
为了避免环境后续学习中环境的冲突问题,这里使用conda创建RKNN虚拟环境,使用命令如下所示:
conda create -n rkllm python=3.8
命令执行之后,首先会要求安装一些列软件包,输入y确认即可,如下图所示:
等待一些列依赖安装完成,安装完成如下图所示:
然后使用“ conda activate rkllm”激活相应得rkllm环境,如下图所示:
可以看到,标识符由“base”变成了“rkllm”,然后将“iTOP-3588开发板\02_【iTOP-RK3588开发板】开发资料\13_NPU使用配套资料\11_Deepseek部署测试\01_rkllm-1.1.4\rknn-llm-main\rkllm-toolkit\”路径下的rkllm_toolkit-1.1.4-cp38-cp38-linux_x86_64.whl文件拷贝到虚拟机ubuntu上,拷贝完成如下图所示:
然后使用以下命令安装瑞芯微提供的rkllm_toolkit-1.0.0版本的软件包,安装完成如下图所示:
pip install rkllm_toolkit-1.1.4-cp38-cp38-linux_x86_64.whl -i Simple Index
至此,RKLLM的虚拟环境就创建完成了,具体的虚拟环境使用之后会进行讲解。
1.3 DeepSeek大语言模型转换
DeepSeek模型下载地址为:https://huggingface.co/deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B,需要下载该网址全部的文件和模型:
方便起见迅为已经将文件和模型下载了下来,具体存放路径为“iTOP-3588开发板\02_【iTOP-RK3588开发板】开发资料\13_NPU使用配套资料\11_Deepseek部署测试\02_DeepSeek1.5b官方模型”如下图所示:
然后将上述文件全部拷贝到虚拟机ubuntu,拷贝完成如下图所示:
然后将 “iTOP-3588开发板\02_【iTOP-RK3588开发板】开发资料\13_NPU使用配套资料\11_Deepseek部署测试\01_rkllm-1.1.4\rknn-llm-main\examples\DeepSeek-R1-Distill-Qwen-1.5B_Demo\export”路径下的三个文件拷贝到上一级目录,拷贝完成如下图所示:
然后在终端中输入以下命令生成量化校准数据,过程如如下所示:
python3 generate_data_quant.py -m deepseek_1.5b
然后修改export_rkllm.py文件,将modelpath修改为自己模型存放的路径,修改完成如下图所示:
然后使用以下命令进行模型的转换,转换过程如下所示:
python3 export_rkllm.py
转换完成之后会在模型目录下生成一个名为qwen.rkllm的模型,如下图所示:
为了方便,迅为也提供好了转换完成的模型,具体路径为“iTOP-3588开发板\02_【iTOP-RK3588开发板】开发资料\13_NPU使用配套资料\11_Deepseek部署测试\03_转换好的模型”,如下图所示:
至此,测试要用的DeepSeek大语言RKLLM大预言模型就转换完成了。
1.4 推理程序编译
首先拷贝“iTOP-3588开发板\02_【iTOP-RK3588开发板】开发资料\12_NPU使用配套资料\03_编译所需工具\Linux”目录下的交叉编译器到虚拟机ubuntu上并解压,解压完成如下图所示:
而瑞芯微提供了一个用于DeekSeek推理的C++应用程序,存放路径为“iTOP-3588开发板\02_【iTOP-RK3588开发板】开发资料\13_NPU使用配套资料\11_Deepseek部署测试\01_rkllm-1.1.4\rknn-llm-main\examples\DeepSeek-R1-Distill-Qwen-1.5B_Demo\deploy”,如下图所示:
由于要编译该可执行程序需要用到runtime目录下的动态库,所以这里直接将“iTOP-3588开发板\02_【iTOP-RK3588开发板】开发资料\13_NPU使用配套资料\11_Deepseek部署测试\01_rkllm-1.1.4”目录下的rknn-llm-main.zip拷贝到开发板上,拷贝并解压完成如下图所示:
然后修改rknn-llm-main/examples/DeepSeek-R1-Distill-Qwen-1.5B_Demo/deploy/目录下的build-linux.sh编译脚本,将交叉编译器路径修改为前面解压的路径,修改完成如下所示:
保存退出之后,使用“./build-linux.sh”运行脚本,运行成功如下图所示:
编译完成的可执行为存放路径为install/demo_Linux_aarch64/,如下图所示:
迅为也提供了编译好的可执行程序,具体路径为“iTOP-3588开发板\02_【iTOP-RK3588开发板】开发资料\12_NPU使用配套资料\10_转换完成的模型和可执行程序”如下图所示:
1.5 开发板运行测试
迅为在最新的镜像中,已经将NPU驱动升级到了0.9.8的版本,所以要想进行本小节的测试,需要确保下载的是迅为最新网盘提供的Ubuntu或者Debian镜像。本小节的测试镜像为ubuntu22_xfce。
烧写最新的ubuntu22镜像,启动之后如下所示:
然后将前面两个小节转换得到的大语言RKNN模型和编译得到的可执行文件拷贝到开发板上,拷贝完成如下图所示:
由于加载大语言模型会打开很多的文件,默认情况每个进程可以同时打开的文件数是有限制的,所以需要在终端输入以下命令,允许当前用户在一个会话中打开最多 102400 个文件描述符。
ulimit -HSn 102400
然后使用以下命令,运行可执行程序,并加载RKLLM大语言模型,运行成功如下图所示:
export LD_LIBRARY_PATH=./lib
./llm_demo deepseek_1.5b_W8A8_RK3588.rkllm 10000 10000
现在就可以提出问题了,问题1:你是什么大语言模型?
问题2:帮我写一个最简单的helloworld C语言程序:
可以看到DeepSeek大语言模型给出了非常准确的回答,大家可以自行提问,至此,关于DeepSeek大语言模型测试就完成了。
更多推荐
所有评论(0)