香橙派 RK3588 部署 DeepSeek
演示视频
香橙派 RK3588 部署 DeepSeek
一、前期准备
1. 检查 NPU 内核版本
-
要求:需确保 NPU 内核版本为 v0.9.8
-
查询与更新方法:参考链接
https://blog.csdn.net/lajuchenghui/article/details/150034410
2. 相关工具与模型
-
rkllm 工具库:
官方仓库链接:https://github.com/airockchip/rknn-llm
-
模型准备:
-
转模型对 PC 配置要求较高,需安装对应工具,建议直接使用转好的模型。
-
转好的模型链接:https://console.box.lenovo.com/l/l0tXb8
-
提取码:rkllm
-
模型路径(下载后):
rkllm_model_zoo/1.1.4/RK3588/DeepSeek_R1_Distill/DeepSeek-R1-Distill-Qwen-1.5B_W8A8_RK3588.rkllm
-
二、关键脚本说明
以下脚本位于 rknn-llm/scripts/
目录下:
-
eval_perf_watch_cpu.sh
:用于读取 CPU 峰值性能 -
eval_perf_watch_npu.sh
:用于读取 NPU 峰值性能 -
fix_freq_rk3588.sh
:用于将 CPU、NPU、GPU、DDR 的参数调至最高(提升运行效率)
三、源码编译
1. 修改编译脚本
编译脚本路径:rknn-llm/examples/DeepSeek-R1-Distill-Qwen-1.5B_Demo/deploy/``build-linux.sh
- 原脚本为交叉编译,需改成本机编译,修改后内容如下:
cmake .. -DCMAKE\_CXX\_COMPILER=/usr/bin/g++ \-DCMAKE\_C\_COMPILER=/usr/bin/gcc \-DCMAKE\_BUILD\_TYPE=Release \-DCMAKE\_SYSTEM\_NAME=Linux \-DCMAKE\_SYSTEM\_PROCESSOR=aarch64 \
2. 编译结果路径
-
编译输出路径:
rknn-llm/examples/DeepSeek-R1-Distill-Qwen-1.5B_Demo/deploy/install/demo_Linux_aarch64
-
生成的可执行程序:
llm_demo
四、执行程序
1. 前置操作
执行程序前,需先将各核心频率调至最高,运行脚本:
./fix\_freq\_rk3588.sh
2. 运行命令
在编译输出路径下,执行以下命令启动程序:
./llm\_demo ./DeepSeek-R1-Distill-Qwen-1.5B\_W8A8\_RK3588.rkllm 2048 4096
五、输出信息与示例交互
1. 启动输出信息
程序启动后,会显示初始化日志,示例如下:
rkllm init startI rkllm: rkllm-runtime version: 1.2.1, rknpu driver version: 0.9.8, platform: RK3588I rkllm: loading rkllm model from ./DeepSeek-R1-Distill-Qwen-1.5B\_W8A8\_RK3588.rkllmI rkllm: rkllm-toolkit version: unknown, max\_context\_limit: 4096, npu\_core\_num: 3, target\_platform: RK3588, model\_dtype: W8A8I rkllm: Enabled cpus: \[4, 5, 6, 7]I rkllm: Enabled cpus num: 4rkllm init success
2. 交互示例
程序启动后可输入问题序号或自定义内容,示例如下:
\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*可输入以下问题对应序号获取回答/或自定义输入\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\[0] 现有一笼子,里面有鸡和兔子若干只,数一数,共有头14个,腿38条,求鸡和兔子各有多少只?\[1] 有28位小朋友排成一行,从左边开始数第10位是学豆,从右边开始数他是第几位?\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*user: 0
现有一笼子,里面有鸡和兔子若干只,数一数,共有头14个,腿38条,求鸡和兔子各有多少只?
robot: <think>
首先,设鸡的数量为x,兔子的数量为y。根据题目中的条件,我们知道头的总数是14,因此可以列出第一个方程:
x + y = 14接下来,考虑腿的总数。每只鸡有2条腿,每只兔子有4条腿,所以腿的总数可以表示为:
2x + 4y = 38现在我们有两个方程:
1. x + y = 14
2. 2x + 4y = 38为了简化计算,我们可以将第二个方程两边同时除以2,得到:
x + 2y = 19接下来,用第一个方程减去这个简化后的方程:
(x + y) - (x + 2y) = 14 - 19
这可以简化为:
-y = -5解得:
y = 5然后,将y的值代入第一个方程:
x + 5 = 14
解得:
x = 9因此,鸡的数量是9只,兔子的数量是5只。
</think>要解决这个问题,我们可以使用代数的方法。设:- 鸡的数量为 \( x \) 只
- 兔子的数量为 \( y \) 只根据题目给出的条件,可以列出以下两个方程:1. **头的总数**:\[x + y = 14\]2. **腿的总数**:\[2x + 4y = 38\]接下来,我们可以通过解这两个方程来找到 \( x \) 和 \( y \) 的值。首先,简化第二个方程:
\[
2x + 4y = 38 \quad \Rightarrow \quad x + 2y = 19
\]现在,我们有两个方程:
\[
\begin{cases}
x + y = 14 \\
x + 2y = 19
\end{cases}
\]用第二个方程减去第一个方程:
\[
(x + 2y) - (x + y) = 19 - 14 \\
y = 5
\]将 \( y = 5 \) 代入第一个方程:
\[
x + 5 = 14 \\
x = 9
\]因此,鸡的数量是 **9只**,兔子的数量是 **5只**。\[
\boxed{鸡有9只,兔有5只}
\]user: 1
有28位小朋友排成一行,从左边开始数第10位是学豆,从右边开始数他是第几位?
robot: <think>
首先,总共有28位小朋友。从左边开始数,第10位是学豆的位置。从右边开始数时,我们需要计算剩下的位置数。总人数减去已知的10位,得到28 - 10 = 18位。因此,从右边开始数,学豆的位置是第19位。
</think>要解决这个问题,我们可以按照以下步骤进行:**已知条件:**
- 总共有 **28** 位小朋友排成一行。
- 从左边开始数,第 **10** 位是学豆。**问题:**
从右边开始数时,学豆的位置是第几位?**解答过程:**1. **计算剩余位置数:**- 总人数为28人。- 已知的学豆在左边第10位,因此剩下的位置数为:\[28 - 10 = 18\]2. **确定从右边开始数的位置:**- 剩下的18位小朋友从右边开始数时,学豆的位置就是第18位。**最终答案:**\boxed{19}