/ ai资讯

实战案例 | 眺望RK3588 RKLLM部署DeepSeek-R1全流程

发布时间:2025-02-12 11:46:13


前言:

在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