量化模型
1、一些与RK的NPU相关的命令
# 查看npu驱动的版本号
cat /sys/kernel/debug/rknpu/version
# 查看rk芯片的npu的占用率
cat /sys/kernel/debug/rknpu/load
#实时显示该监控过程
watch -d "cat /sys/kernel/debug/rknpu/load"
# 为rk3588的npu设置定频(高性能)
echo performance | tee $(find /sys/ -name *governor)
# 将npu提供给docker使用
docker run --privileged -v /dev:/dev --name deepseek -d deepseek-r1-1.5b:1.3
2、安装git lfs并拉取deepseek模型
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
apt-get install git-lfs
systemctl restart unattended-upgrades.service
git lfs install
#1.5b
git lfs clone https://www.modelscope.cn/deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B.git
#7b
git lfs clone https://www.modelscope.cn/deepseek-ai/DeepSeek-R1-Distill-Qwen-7B.git
3、创建rkllm的python虚拟环境
conda create --prefix /data/new_rk3588/python3/python=3.10
conda activate /data/new_rk3588/python3/
# 安装转换模型需要的一些基础环境
pip install torch torchvision torchaudio transformers -i https://pypi.tuna.tsinghua.edu.cn/simple
# 克隆rknn-的项目,并安装tools及runtime环境(已备份: apps/files/files/32746?dir=/中国移动/大模型/量化)
cd /data/new_rk3588/rknn-llm
git clone https://github.com/airockchip/rknn-llm.git
# 进入rknn-llm的目录,安装rkllm-toolkit
pip install rkllm-toolkit/rkllm_toolkit-1.1.4-cp310-cp310-linux_x86_64.whl -i https://pypi.tuna.tsinghua.edu.cn/simple
# 安装rkllm
pip install rkllm -i https://pypi.tuna.tsinghua.edu.cn/simple
cd /data/new_rk3588/rknn-llm/examples/DeepSeek-R1-Distill-Qwen-1.5B_Demo/export
# 产生llm量化需要的数据
python generate_data_quant.py -m /data/new_rk3588/models/DeepSeek-R1-Distill-Qwen-7B
# ============转换模型===========
# 需要修改模型路径
vim export_rkllm.py
modelpath = '/data/new_rk3588/models/DeepSeek-R1-Distill-Qwen-7B'
#执行量化,会输出到当前目录下
python export_rkllm.py
- 将量化后的模型拷贝到开发板即可
编译示例服务
1、使用C语言编译二进制示例程序
安装gcc交叉编译工具链
# 程序默认是/opt的目录,如果存在变化需要更改代码
cd /opt
wget https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu-a/10.2-2020.11/binrel/gcc-arm-10.2-2020.11-x86_64-aarch64-none-linux-gnu.tar.xz
tar xvf gcc-arm-10.2-2020.11-x86_64-aarch64-none-linux-gnu.tar.xz -C /opt
设置环境变量
# vim /etc/profile
PATH=$PATH:/data/soft/gcc-arm-10.2-2020.11-x86_64-aarch64-none-linux-gnu/bin
export PATH
编译
cd /data/new_rk3588/rknn-llm/examples/DeepSeek-R1-Distill-Qwen-1.5B_Demo/deploy
vim build-linux.sh
做如下变更:
GCC_COMPILER_PATH=/opt/gcc-arm-10.2-2020.11-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu
chmod u+x build-linux.sh
./build-linux.sh
- 在当前目录下产生一个名为install的文件夹
- 将install拷贝到开发板上运行样例即可
运行
cd install/demo_Linux_aarch64
# 设置环境变量
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:lib
export RKLLM_LOG_LEVEL=1
# 使用客户端样例代码运行上面量化的模型即可
./llm_demo ~/models/DeepSeek-R1-Distill-Qwen-7B_W8A8_RK3588.rkllm 10000 10000
2、使用flask运行http服务
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:lib
export RKLLM_LOG_LEVEL=1
pip install flask