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

描述


 

前言:

           在RK3588上部署Deepseek有两种方法,分别是使用Ollama工具部署和使用瑞芯微官方的 RKLLM量化部署。Ollama 是一个开源的大模型服务工具,调用的是CPU进行的运算,如果要将RK3588强悍的NPU性能发挥出来,可以重点了解一下RKLLM量化部署。

 

一、RKLLM介绍

 

        为了使用RK NPU,用户需要先在计算机上安装RKLLM-Toolkit工具。RKLLM-Toolkit 是为用户提供在计算机上进行大语言模型的量化、转换的开发套件。通过该 工具提供的接口可以便捷地完成模型转换和模型量化。

DeepSeek

         RKLLM的整体开发步骤主要分为:模型转换和板端部署运行。

 

 

模型转换是使用RKLLM-Toolkit将预训练的大语言模型转换为RKLLM格式。

板端部署运行是调用RKLLM Runtime库加载RKLLM模型到Rockchip NPU平台,然后进行推理等操作。


 

二、DeepSeek-R1介绍

    `DeepSeek-R1是深度求索(DeepSeek)公司推出的开源多模态大语言模型,专为长上下文理解和多模态交互优化。DeepSeek-R1基于开源模型进行了微调,提供了1.5B、7B等参数版本的DeepSeek-R1-Distill模型,适合部署到边缘设备。


 

DeepSeek
 

三、部署过程

 3.1  获取模型

        从 deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B 获取模型文件;

  •  
  •  

# 获取DeepSeek-R1-Distill-Qwen-1.5Bgit clone https://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 复制到板端,并导入环境变量

  •  

export LD_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.rkllm 10000 10000

DeepSeek

四、测试效果

 4.1  环境说明

 

DeepSeek

        使用眺望电子EVM-RK3588开发套件,搭载8GB内存配置,板载运行Ubuntu20.04系统。通过SSH登入主板运行模型,Debug调试口用于监测运行器件资源消耗。

DeepSeek

DeepSeek

 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

        总而言之,DeepSeek-R1模型的强力有目共睹,同时也验证了眺望电子对RK3588系列处理器的深度优化与强大可靠。如果您对部署过程感兴趣,欢迎随时与我们联系,我们可以为您提供专业的技术支持,期待与您合作!

 

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分