数码之家

 找回密码
 立即注册
搜索
查看: 522|回复: 0

ATK-DLRK3588开发板deepseek-r1-1.5b/7b部署指南(上)

[复制链接]
发表于 2025-2-19 10:33:23 | 显示全部楼层 |阅读模式
本帖最后由 正点原子官方 于 2025-2-19 14:14 编辑

ATK-DLRK3588开发板deepseek-r1-1.5b/7b部署指南


最近deepseek爆火,当DeepSeek这样的国产大模型部署在RK3588上时,由于RK3588的强大性能支持,同样的模型规模可以得到更强大的推理能力、实时性能以及边缘计算能力。在本篇文章中,我们将一口气教大家从下载模型、转换模型到最终部署deepseek-r1-1.5b和deepseek-r1-7b的模型到正点原子的ATK-DLRK3588上面测试。



1、安装anaconda软件环境
      第1小节至第4小节讲解从安装conda环境到转换模型,如果需要想要直接在ATK-DLRK3588开发板体验模型的话请直接移步ATK-DLRK3588开发板deepseek-r1-1.5b/7b部署指南(下)

安装anaconda环境请参考正点原子ATK-DLRK3588资料盘的开发板光盘A盘-基础资料\10、用户手册\01、测试文档目录下《03【正点原子】ATK-DLRK3588_AI例程测试手册V1.1》的1.3章节,如下图。



2、安装rkllm转换环境
2.1、新建conda环境
在ubuntu终端里面打开终端,执行以下命令新建conda环境
  1. conda create -n RKLLM-Toolkit python=3.8
复制代码


2.2、安装rkllm_toolkit工具

首先解压rkllm压缩包,这里在家目录下新建了一个software目录下,并在software目录下面新建了个rkllm目录,将rknn-llm-release-v1.1.4压缩包解压到当前文件夹下,然后在打开终端,执行以下命令进入RKLLM-Toolkit的conda环境。

ubuntu终端下运行
  1. <div align="left"><font face="微软雅黑"><font size="4">conda activate RKLLM-Toolkit</font></font></div><div align="left"><font face="微软雅黑"><font size="4">cd rkllm-toolkit/packages</font></font></div><div align="left"><font face="微软雅黑"><font size="4">pip3 install rkllm_toolkit-1.1.4-cp38-cp38-linux_x86_64.whl</font></font></div>
复制代码


3、下载deepseek模型3.1、安装huggingface-cli工具
ubuntu终端中conda环境下运行
  1. pip3 install huggingface-cli -i <a href="https://mirrors.huaweicloud.com/repository/pypi/simple" target="_blank">https://mirrors.huaweicloud.com/repository/pypi/simple</a>
复制代码


3.2、下载deepseek模型

可以配置加速节点,下载deepseek的huggingface格式模型(有时候也会失效,建议直接官网直接点击下载键来下载模型会更快),网盘中也有提供下载好的原始huggingface格式模型。

在~/software/rkllm/rknn-llm-release-v1.1.4/rkllm-toolkit/examples/下新建一个huggingface文件夹:

  1. mkdir ~/software/rkllm/rknn-llm-release-v1.1.4/rkllm-toolkit/examples/huggingface -p
复制代码

然后执行如下命令:
  1. <div align="left"><font face="微软雅黑"><font size="4">export HF_ENDPOINT=<a href="https://hf-mirror.com" target="_blank">https://hf-mirror.com</a></font></font></div><div align="left"><font face="微软雅黑"><font size="4">cd ~/software/rkllm/rknn-llm-release-v1.1.4/rkllm-toolkit/examples/huggingface/</font></font></div>
复制代码

再新建一个文件夹deepseek-r1-1.5b,进入该文件夹下:
  1. mkdir deepseek-r1-1.5b && cd deepseek-r1-1.5b
复制代码

再执行命令并下载DeepSeek-R1-Distill-Qwen-1.5B模型到对应文件夹中:

  1. huggingface-cli download deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B --local-dir . --local-dir-use-symlinks False
复制代码

我们已经提供了下载好的deepseek-r1 1.5b/7b原始huggingface模型在网盘,想要自己转换的可以自行下载转换模型。


4、deepseek转换rkllm模型4.1、转换deepseek_1.5b版本的脚本

进入到前面解压的rkllm-toolkit工具里的rkllm-toolkit/examples目录,将开发板光盘C盘-大模型资料\1、程序源码\3、导出rkllm脚本里面的三个文件均放在rkllm-toolkit/examples目录下,并在在当前目录打开终端并进入conda环境。


  1. from rkllm.api import RKLLM
  2. import os
  3. #os.environ['CUDA_VISIBLE_DEVICES']='0'

  4. modelpath = './huggingface/deepseek-r1-1.5b'
  5. llm = RKLLM()

  6. # Load model
  7. # Use 'export CUDA_VISIBLE_DEVICES=0' to specify GPU device
  8. # options ['cpu', 'cuda']
  9. ret = llm.load_huggingface(model=modelpath, model_lora = None, device='cpu')
  10. if ret != 0:
  11.     print('Load model failed!')
  12.     exit(ret)

  13. # Build model
  14. dataset = "./data_quant.json"
  15. qparams = None
  16. ret = llm.build(do_quantization=True, optimization_level=1, quantized_dtype='w8a8',
  17.                 quantized_algorithm='normal', target_platform='rk3588', num_npu_core=3,
  18.                 extra_qparams=qparams,dataset=dataset)
  19. if ret != 0:
  20.     print('Build model failed!')
  21.     exit(ret)


  22. # Export rkllm model
  23. ret = llm.export_rkllm(f"./deepseek-1.5b-w8a8-rk3588.rkllm")
  24. if ret != 0:
  25.     print('Export model failed!')
  26.     exit(ret)
复制代码
1、在命令行中执行以下命令,进入conda环境
  1. conda activate RKLLM-Toolkit
复制代码

2、转换deepseek-r1-1.5b模型时,执行以下python脚本进行转换模型。
  1. <div align="left">python3 export_deepseek_1.5b_rkllm.py</div><div align="center"></div>
复制代码


当出现INFO: Model has been saved to ./deepseek-1.5b-w8a8-rk3588.rkllm!,即转换模型成功。

4.2、转换deepseek_7b版本的脚本
  1. from rkllm.api import RKLLM
  2. import os
  3. #os.environ['CUDA_VISIBLE_DEVICES']='0'

  4. modelpath = './huggingface/deepseek-r1-7b'
  5. llm = RKLLM()

  6. # Load model
  7. # Use 'export CUDA_VISIBLE_DEVICES=0' to specify GPU device
  8. # options ['cpu', 'cuda']
  9. ret = llm.load_huggingface(model=modelpath, model_lora = None, device='cpu')
  10. if ret != 0:
  11.     print('Load model failed!')
  12.     exit(ret)

  13. # Build model
  14. dataset = "./data_quant.json"
  15. qparams = None
  16. ret = llm.build(do_quantization=True, optimization_level=1, quantized_dtype='w8a8',
  17.                 quantized_algorithm='normal', target_platform='rk3588', num_npu_core=3,
  18.                 extra_qparams=qparams,dataset=dataset)
  19. if ret != 0:
  20.     print('Build model failed!')
  21.     exit(ret)

  22. # Export rkllm model
  23. ret = llm.export_rkllm(f"./deepseek-7b-w8a8-rk3588.rkllm")
  24. if ret != 0:
  25.     print('Export model failed!')
  26.     exit(ret)
复制代码
1、转换deepseek-r1-7b模型时,执行以下python脚本进行转换模型。
  1. python3 export_deepseek_7b_rkllm.py
复制代码
将模型拷贝到部署模型目录下,编译部署程序。
注意!!!转换deepseek-r1-7b及以上规模(包含7b,8b,14b甚至32b等)rkllm模型对PC设备要求比较高,如果想要自己另外转换更大规模的rkllm模型,请确保虚拟机的运行内存充足,如果内存不足,可以通过使用存储来配置交换内存来作为临时内存使用。

一般我们的电脑的运行内存转换huggingface模型为rkllm模型时都不够用,在转换时很容易出现无法转换直接杀死进程的情况,转换前可以创建交换分区,使用硬盘的空间作为运存,在ubuntu下创建10g的交换分区(可根据实际内存创建更大的swap分区),执行以下命令进行创建。


  1. sudo dd if=/dev/zero of=/tmp/swapfile bs=1M count=10240
  2. 使用chmod权限
  3. sudo chmod 0600 /tmp/swapfile
  4. 创建swap分区文件系统
  5. sudo mkswap /tmp/swapfile
  6. 开启swap分区
  7. sudo swapon /tmp/swapfile
  8. 查看分区情况
  9. swapon -s
复制代码




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-5-2 06:30 , Processed in 0.265200 second(s), 12 queries , Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

快速回复 返回顶部 返回列表