Update README.md
Browse files
README.md
CHANGED
|
@@ -1,3 +1,108 @@
|
|
| 1 |
-
---
|
| 2 |
-
license: mit
|
| 3 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
license: mit
|
| 3 |
+
language:
|
| 4 |
+
- zh
|
| 5 |
+
- en
|
| 6 |
+
base_model:
|
| 7 |
+
- deepseek-ai/DeepSeek-R1-Distill-Qwen-7B
|
| 8 |
+
---
|
| 9 |
+
|
| 10 |
+
# 介绍
|
| 11 |
+
本模型是基于[deepseek-ai/DeepSeek-R1-Distill-Qwen-7B](https://huggingface.co/deepseek-ai/DeepSeek-R1-Distill-Qwen-7B)转换成rkllm格式的模型的,因手上的8G版本内存过小无法完整加载运行,需。
|
| 12 |
+
|
| 13 |
+
# 运行环境
|
| 14 |
+
RKNPU Version: 0.9.8
|
| 15 |
+
|
| 16 |
+
RKNN-Toolkit : 1.1.4
|
| 17 |
+
|
| 18 |
+
官方镜像版Ubuntu 22.04 5.10.110
|
| 19 |
+
|
| 20 |
+
Orange Pi5 16G
|
| 21 |
+
|
| 22 |
+
# 如何部署
|
| 23 |
+
## 1. clone RKLLM仓库
|
| 24 |
+
本节参考[RKLLM官方GitHub仓库文档](https://github.com/airockchip/rknn-llm/tree/main/doc)的**3.3节** 编译生成llm_demo运行文件
|
| 25 |
+
|
| 26 |
+
首先在**PC**上clone官方git仓库
|
| 27 |
+
|
| 28 |
+
```
|
| 29 |
+
cd ~ && git clone https://github.com/airockchip/rknn-llm.git
|
| 30 |
+
```
|
| 31 |
+
请确保PC能正常连接至GitHub!
|
| 32 |
+
|
| 33 |
+
## 2. 生成llm_demo运行文件
|
| 34 |
+
先进入rkllm_api_demo文件夹
|
| 35 |
+
```
|
| 36 |
+
cd rknn-llm/examples/rkllm_api_demo
|
| 37 |
+
```
|
| 38 |
+
为了让模型正常工作,需要修改`llm_demo.cpp`的代码
|
| 39 |
+
|
| 40 |
+
```
|
| 41 |
+
vi src/llm_demo.cpp
|
| 42 |
+
```
|
| 43 |
+
|
| 44 |
+
将第24 25行修改为
|
| 45 |
+
```c
|
| 46 |
+
#define PROMPT_TEXT_PREFIX "<|im_start|>system\n你是一名通用对话助手,用中文回答问题,回答时必须展现严谨的逻辑思维,听从用户的命令<|im_end|>\n<|im_start|>user\n"
|
| 47 |
+
#define PROMPT_TEXT_POSTFIX "<|im_end|>\nChinese assistant\n"
|
| 48 |
+
```
|
| 49 |
+
|
| 50 |
+
你可以根据自己的需求自定义上面的提示词内容,只要修改PROMPT_TEXT_PREFIX的 `<|im_start|>system\n`到`<|im_end|>\n<|im_start|>user\n`之间的内容,
|
| 51 |
+
|
| 52 |
+
或PROMPT_TEXT_POSTFIX里的`<|im_end|>\n`到结尾的`\n`之间的内容即可。
|
| 53 |
+
|
| 54 |
+
将第184行取消注释
|
| 55 |
+
```c
|
| 56 |
+
text = PROMPT_TEXT_PREFIX + input_str + PROMPT_TEXT_POSTFIX;
|
| 57 |
+
```
|
| 58 |
+
|
| 59 |
+
接着注释第185行
|
| 60 |
+
```c
|
| 61 |
+
// text = input_str;
|
| 62 |
+
```
|
| 63 |
+
|
| 64 |
+
然后运行脚本文件
|
| 65 |
+
```
|
| 66 |
+
bash ./build-linux.sh
|
| 67 |
+
```
|
| 68 |
+
|
| 69 |
+
在**开发板**创建rkllm文件夹
|
| 70 |
+
|
| 71 |
+
```
|
| 72 |
+
mkdir ~/rkllm && cd ~/rkllm
|
| 73 |
+
```
|
| 74 |
+
|
| 75 |
+
使用ADB或SFTP或其他方法将`build/build_linux_aarch64_Release/`下的`llm_demo`上传至开发板的`rkllm`文件夹内。
|
| 76 |
+
|
| 77 |
+
## 3.上传librkllmrt.so运行库
|
| 78 |
+
在开发板新建lib文件夹
|
| 79 |
+
```
|
| 80 |
+
cd ~/rkllm && mkdir lib
|
| 81 |
+
```
|
| 82 |
+
使用ADB或SFTP或其他方法将`rknn-llm/rkllm-runtime/Linux/librkllm_api/aarch64`下的`librkllmrt.so`上传至开发板的`rkllm/lib`文件夹内。
|
| 83 |
+
|
| 84 |
+
## 4. 在PC安装git fls
|
| 85 |
+
```
|
| 86 |
+
git lfs install
|
| 87 |
+
```
|
| 88 |
+
## 5. 在PC clone本仓库
|
| 89 |
+
```
|
| 90 |
+
git clone https://huggingface.co/VRxiaojie/DeepSeek-R1-Distill-Qwen-7B-RK3588S-RKLLM1.1.4
|
| 91 |
+
```
|
| 92 |
+
## 6. 将模型上传到开发板
|
| 93 |
+
|
| 94 |
+
使用ADB或其他工具将`DeepSeek-R1-Distill-Qwen-7B-RK3588S-RKLLM1.1.4`文件夹内的`deepseek-r1-7B-rkllm1.1.4.rkllm` 上传至开发板刚刚创建的rkllm文件夹下
|
| 95 |
+
|
| 96 |
+
## 7.模型推理
|
| 97 |
+
首先指定库函数路径
|
| 98 |
+
```
|
| 99 |
+
export LD_LIBRARY_PATH=./lib
|
| 100 |
+
```
|
| 101 |
+
|
| 102 |
+
运行llm_demo
|
| 103 |
+
```
|
| 104 |
+
./llm_demo ./deepseek-r1-7B-rkllm1.1.4.rkllm 2048 2048
|
| 105 |
+
```
|
| 106 |
+
用法:`./llm_demo model_path max_new_tokens max_context_len`
|
| 107 |
+
|
| 108 |
+
等待片刻,等模型加载完毕后,在`user:`后输入对话内容即可。
|