香橙派 RK3588 部署 DeepSeek

演示视频

https://www.bilibili.com/video/BV1yvbwzMEp1

一、前期准备

1. 检查 NPU 内核版本

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 start

I rkllm: rkllm-runtime version: 1.2.1, rknpu driver version: 0.9.8, platform: RK3588

I rkllm: loading rkllm model from ./DeepSeek-R1-Distill-Qwen-1.5B\_W8A8\_RK3588.rkllm

I rkllm: rkllm-toolkit version: unknown, max\_context\_limit: 4096, npu\_core\_num: 3, target\_platform: RK3588, model\_dtype: W8A8

I rkllm: Enabled cpus: \[4, 5, 6, 7]

I rkllm: Enabled cpus num: 4

rkllm 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}

posted @ 2025-08-10 14:26  逸俊晨晖  阅读(324)  评论(0)    收藏  举报