| | --- |
| | license: mit |
| | language: |
| | - zh |
| | - en |
| | base_model: |
| | - deepseek-ai/DeepSeek-R1-Distill-Qwen-7B |
| | --- |
| | |
| | # 介绍 |
| | 本模型是基于[deepseek-ai/DeepSeek-R1-Distill-Qwen-7B](https://huggingface.co/deepseek-ai/DeepSeek-R1-Distill-Qwen-7B)转换成rkllm格式的模型的。 |
| |
|
| |
|
| | 在香橙派5上的部署教程:[RKLLM部署语言大模型教程](https://wiki.vrxiaojie.top/Deepseek-R1-RK3588-OrangePi5/) |
| |
|
| | |模型|内存占用|模型大小|量化类型| |
| | |---|---|---|---| |
| | |DeepSeek-R1-Distill-Qwen-7B-RK3588S-RKLLM1.1.4|>8GB,无法测试|7.63GB|w8a8| |
| |
|
| | **因手上的开发板只有8G内存,无法完整加载模型运行,该模型的可用性有待验证。欢迎持有16GB开发板的同学验证反馈~** |
| |
|
| | # 运行环境 |
| | RKNPU Version: 0.9.8 |
| |
|
| | RKNN-Toolkit : 1.1.4 |
| |
|
| | 官方镜像版Ubuntu 22.04 5.10.110 |
| |
|
| | Orange Pi5 16G |
| |
|
| | # 如何部署 |
| | ## 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-7B-RK3588S-RKLLM1.1.4 |
| | ``` |
| | ## 6. 将模型上传到开发板 |
| |
|
| | 使用ADB或其他工具将`DeepSeek-R1-Distill-Qwen-7B-RK3588S-RKLLM1.1.4`文件夹内的`deepseek-r1-7B-rkllm1.1.4.rkllm` 上传至开发板刚刚创建的rkllm文件夹下 |
| |
|
| | ## 7.模型推理 |
| | 首先指定库函数路径 |
| | ``` |
| | export LD_LIBRARY_PATH=./lib |
| | ``` |
| |
|
| | 运行llm_demo |
| | ``` |
| | ./llm_demo ./deepseek-r1-7B-rkllm1.1.4.rkllm 2048 2048 |
| | ``` |
| | 用法:`./llm_demo model_path max_new_tokens max_context_len` |
| | |
| | 等待片刻,等模型加载完毕后,在`user:`后输入对话内容即可。 |