前言:
在RK3588上部署Deepseek有两种方法,分别是使用Ollama工具部署和使用瑞芯微官方的 RKLLM量化部署。Ollama 是一个开源的大模型服务工具,调用的是CPU进行的运算,如果要将RK3588强悍的NPU性能发挥出来,可以重点了解一下RKLLM量化部署。
一、RKLLM介绍
为了使用RK NPU,用户需要先在计算机上安装RKLLM-Toolkit工具。RKLLM-Toolkit 是为用户提供在计算机上进行大语言模型的量化、转换的开发套件。通过该 工具提供的接口可以便捷地完成模型转换和模型量化。
RKLLM的整体开发步骤主要分为:模型转换和板端部署运行。
模型转换是使用RKLLM-Toolkit将预训练的大语言模型转换为RKLLM格式。
板端部署运行是调用RKLLM Runtime库加载RKLLM模型到Rockchip NPU平台,然后进行推理等操作。
二、DeepSeek-R1介绍
`DeepSeek-R1是深度求索(DeepSeek)公司推出的开源多模态大语言模型,专为长上下文理解和多模态交互优化。DeepSeek-R1基于开源模型进行了微调,提供了1.5B、7B等参数版本的DeepSeek-R1-Distill模型,适合部署到边缘设备。
三、部署过程
3.1获取模型
从 deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B 获取模型文件;
# 获取DeepSeek-R1-Distill-Qwen-1.5Bgitclonehttps://huggingface.co/deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B
3.2安装转换工具
在Ubuntu虚拟机安装RKLLM-Toolkit,以便将DeepSeek-R1大语言模型转换为RKLLM模型格式和编译板端推理的可执行程序,具体RKLLM-Toolkit环境安装步骤不在此详述;
3.3安装转换工具
使用RKLLM-Toolkit对模型进行转换。运行模型转换脚本;
cd rknn-llm/examples/rkllm_api_demo/bash build-linux.sh
生成的可执行文件在:
build/build_linux_aarch64_Release/llm_demo
3.4板端部署
将转换成功后的 DeepSeek-R1-Distill-Qwen-1.5B.rkllm 模型与编译后的二进制文件 llm_demo 复制到板端,并导入环境变量
exportLD_LIBRARY_PATH=$LD_LIBRARY_PATH:rknn-llm/rkllm-runtime/Linux/librkllm_api/aarch64
3.5运行测试
运行 llm_demo
./demo_Linux_aarch64/llm_demo./Deepseek-R1-Disti11-Qwen-1.5B.rkllm1000010000
四、测试效果
4.1环境说明
使用眺望电子EVM-RK3588开发套件,搭载8GB内存配置,板载运行Ubuntu20.04系统。通过SSH登入主板运行模型,Debug调试口用于监测运行器件资源消耗。
4.2推理过程
Connecting to 192.168.0.37:22...Connection established.To escape to local shell, press 'Ctrl Alt ]'.WARNING! The remote SSH server rejected X11 forwarding request._____ _ |_ _| __ _ | | ___ __ __ ___| | / _` | | | / _ \ \ \ /\ / / / _ \| | | (_| | | | | (_) | \ V V / | __/|_| \__,_| |_| \___/ \_/\_/ \___|
Welcome to Ubuntu 20.04.6 LTS (GNU/Linux 6.1.84 aarch64)* Documentation: https://help.ubuntu.com* Management: https://landscape.canonical.com* Support: https://ubuntu.com/proLast login: Tue Feb 11 1425 2025-bash: /opt/ros/noetic/setup.bash: No such file or directory-bash: /opt/ros/noetic/setup.bash: No such file or directoryroot@talowe-rk3588:~#root@talowe-rk3588:~# lsDeepseek-R1-Disti11-Qwen-1.5B.rkllm demo_Linux_aarch64root@talowe-rk3588:~# ./demo_Linux_aarch64/llm_demo ./Deepseek-R1-Disti11-Qwen-1.5B.rkllm 10000 10000rkllm init startI rkllm: rkllm-runtime version: 1.1.4, rknpu driver version: 0.9.8, platform: RK3588rkllm init success**********************可输入以下问题对应序号获取回答/或自定义输入********************[0] 现有一笼子,里面有鸡和兔子若干只,数一数,共有头14个,腿38条,求鸡和兔子各有多少只?[1] 有28位小朋友排成一行,从左边开始数第10位是学豆,从右边开始数他是第几位?*************************************************************************user: 0现有一笼子,里面有鸡和兔子若干只,数一数,共有头14个,腿38条,求鸡和兔子各有多少只?robot: 首先,设鸡的数量为x只,兔子的数量为y只。根据题意,我们知道每只鸡有1个头和2条腿,每只兔子也有1个头但有4条腿。因此,总共有14个头,可以列出方程:x y = 14同时,总腿数是38条,所以:2x 4y = 38接下来,可以通过解这个方程组来找到x和y的值。首先,从第一个方程中解出x:x = 14 - y然后将x代入第二个方程:2(14 - y) 4y = 38展开并简化:28 - 2y 4y = 38合并同类项:2y = 10解得:y = 5最后,代入x = 14 - y:x = 14 - 5 = 9因此,鸡有9只,兔子有5只。think>要解决这个问题,我们可以设鸡的数量为 \( x \) 只,兔子的数量为 \( y \) 只。根据题意,我们知道:- 每只鸡和兔子都有1个头,所以总共有14个头,可以列出方程:\[x y = 14\]- 鸡有2条腿,兔子有4条腿,总腿数为38条,可以列出另一个方程:\[2x 4y = 38\]接下来,我们可以通过解这个方程组来找到 \( x \) 和 \( y \) 的值。**步骤一:从第一个方程中解出 \( x \)**\[x = 14 - y\]**步骤二:将 \( x \) 代入第二个方程**\[2(14 - y) 4y = 38\]展开并简化:\[28 - 2y 4y = 38 \\2y = 10 \\y = 5\]**步骤三:代入 \( y \) 的值求出 \( x \)**\[x = 14 - 5 = 9\]因此,鸡有 \(\boxed{9}\) 只,兔子有 \(\boxed{5}\) 只。
4.3资源消耗
DeepSeek-R1模型输出的回答结果清晰流畅,内存资源占用797MB,NPU负载约为64%,在无风扇环境下,温升约10℃。
总而言之,DeepSeek-R1模型的强力有目共睹,同时也验证了眺望电子对RK3588系列处理器的深度优化与强大可靠。如果您对部署过程感兴趣,欢迎随时与我们联系,我们可以为您提供专业的技术支持,期待与您合作!
免责声明:本文为转载,非本网原创内容,不代表本网观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
如有疑问请发送邮件至:bangqikeconnect@gmail.com