File size: 3,073 Bytes
5285ed8
 
 
 
 
 
 
 
 
 
4085a5d
5285ed8
24e1578
 
bb9ef87
24e1578
bb9ef87
24e1578
ed60201
 
8e14398
ed60201
8e14398
ed60201
8e14398
ed60201
ecc2258
 
d83c7dc
 
 
 
 
ecc2258
d83c7dc
ecc2258
d83c7dc
 
 
 
ecc2258
d83c7dc
ecc2258
d83c7dc
 
 
 
 
 
 
 
bb9ef87
 
d83c7dc
 
bb9ef87
d83c7dc
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ecc2258
 
 
 
d83c7dc
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ecc2258
d83c7dc
 
 
 
 
 
 
 
 
 
 
ecc2258
d83c7dc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
---
license: mit
language:
- zh
- en
base_model:
- deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B
---

# 介绍
本模型是基于[deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B](https://huggingface.co/deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B)转换成rkllm格式的模型的,已在香橙派5的RK3588S平台上成功运行。

在香橙派5上的部署教程:[RKLLM部署语言大模型教程](https://wiki.vrxiaojie.top/Deepseek-R1-RK3588-OrangePi5/)

|模型|内存占用|模型大小|量化类型|
|---|---|---|---|
|DeepSeek-R1-Distill-Qwen-1.5B-RK3588S-RKLLM1.1.4|2.5GB|1.89GB|w8a8|

# 运行环境
RKNPU Version: 0.9.8

RKNN-Toolkit : 1.1.4

官方镜像版Ubuntu 22.04  5.10.110

Orange Pi5 8G

# 如何部署
## 1. clone RKLLM仓库
本节参考[RKLLM官方GitHub仓库文档](https://github.com/airockchip/rknn-llm/tree/main/doc)的**3.3节** 编译生成llm_demo运行文件

首先在**PC**上clone官方git仓库

```
cd ~ && git clone https://github.com/airockchip/rknn-llm.git
```
请确保PC能正常连接至GitHub!

## 2. 生成llm_demo运行文件
先进入rkllm_api_demo文件夹
```
cd rknn-llm/examples/rkllm_api_demo
```
为了让模型正常工作,需要修改`llm_demo.cpp`的代码

```
vi src/llm_demo.cpp
```

将第24 25行修改为
```c
#define PROMPT_TEXT_PREFIX "<|begin▁of▁sentence|>system 你是一名专业AI助手请遵循:1.用简体中文回答;2.中文翻译成英文时,需使用英文回答;3.展示思考过程 <|User|>"
#define PROMPT_TEXT_POSTFIX "<|Assistant|>"
```

你可以根据自己的需求自定义上面的提示词内容,只要修改PROMPT_TEXT_PREFIX的 `<|begin▁of▁sentence|>system``<|User|>`之间的内容。

将第184行取消注释
```c
text = PROMPT_TEXT_PREFIX + input_str + PROMPT_TEXT_POSTFIX;
```

接着注释第185行
```c
// text = input_str;
```

然后运行脚本文件
```
bash ./build-linux.sh
```**开发板**创建rkllm文件夹

```
mkdir ~/rkllm && cd ~/rkllm
```

使用ADB或SFTP或其他方法将`build/build_linux_aarch64_Release/`下的`llm_demo`上传至开发板的`rkllm`文件夹内。

## 3.上传librkllmrt.so运行库
在开发板新建lib文件夹
```
cd ~/rkllm && mkdir lib
```
使用ADB或SFTP或其他方法将`rknn-llm/rkllm-runtime/Linux/librkllm_api/aarch64`下的`librkllmrt.so`上传至开发板的`rkllm/lib`文件夹内。

## 4. 在PC安装git fls
```
git lfs install
```
## 5. 在PC clone本仓库
```
git clone https://huggingface.co/VRxiaojie/DeepSeek-R1-Distill-Qwen-1.5B-RK3588S-RKLLM1.1.4
```
## 6. 将模型上传到开发板

使用ADB或其他工具将`DeepSeek-R1-Distill-Qwen-1.5B-RK3588S-RKLLM1.1.4`文件夹内的`deepseek-r1-1.5B-rkllm1.1.4.rkllm` 上传至开发板刚刚创建的rkllm文件夹下

## 7.模型推理
首先指定库函数路径
```
export LD_LIBRARY_PATH=./lib
```

运行llm_demo
```
./llm_demo ./deepseek-r1-1.5B-rkllm1.1.4.rkllm 2048 2048
```
用法:`./llm_demo model_path max_new_tokens max_context_len`

等待几秒钟,等模型加载完毕后,在`user:`后输入对话内容即可。