使用 AidGen 部署 LLM
介绍
端侧部署大语言模型 (Large Language Model, LLM) 指将原本在云端运行的大模型压缩、量化并部署到本地设备上,实现离线、低时延的自然语言理解与生成。本章节以 AidGen 推理引擎为基础,演示如何在边缘设备上完成大语言模型的部署、加载与对话流程。
在本案例中,大语言模型推理运行在设备端,通过 C++ 代码调用相关接口接收用户输入并实时返回对话结果。
- 设备:IQ9075
- 系统:Ubuntu 24.04
- 模型:Qwen2.5-0.5B-Instruct
支持平台
| 平台 | 运行方式 |
|---|---|
| IQ9075 | Ubuntu 24.04 |
准备工作
IQ9075 硬件
Ubuntu 24.04 系统
准备模型文件
访问 Model Farm: Qwen2.5-0.5B-Instruct 下载模型资源文件
💡注意
选择 QCS8550 芯片
系统依赖配置
配置 AidLux 依赖源
bash
# 下载正确的公钥
sudo wget -O- https://archive.aidlux.com/ubuntu24/public.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/private-aidlux.gpg > /dev/null
# 编辑源文件
sudo vim /etc/apt/sources.list.d/private-aidlux.list
#在源文件中填入AidLux 提供的私钥
deb [arch=arm64 signed-by=/etc/apt/trusted.gpg.d/private-aidlux.gpg] https://archive.aidlux.com/ubuntu24 noble main
# 更新缓存
sudo apt update更新完成后,可以通过如下命令获取到AidLux 官方的SDK 依赖
bash
sudo apt list | grep aid | grep unknownbash
# 安装软件
# 必须先安装的,系统不自带
sudo apt install python3 python3-pip libopencv-dev python3-opencv net-tools
# 安装 aidlite 之前必须安装的
sudo apt install aidlux-aistack-base aidrtcm
# 安装 aidlite 及依赖
sudo apt install aid-lms aidlms-sdk aidlite-sdk cmake
sudo apt-get install libfmt-dev nlohmann-json3-dev
sudo apt install aidlite-*
# 支持DSP
sudo apt-get install qcom-fastrpc1
sudo apt-get install qcom-fastrpc-dev
# 安装 aidgen-sdk
sudo apt install aidgen-sdk
# 安装 mms 服务
sudo apt install aid-mms
# 支持 GPU
sudo add-apt-repository ppa:ubuntu-qcom-iot/qcom-noble-ppa
sudo apt install qcom-adreno-cl1
sudo ln -s /usr/lib/aarch64-linux-gnu/libOpenCL.so.1 /usr/lib/aarch64-linux-gnu/libOpenCL.so安装完成后检查系统 /usr/local/share 新增 aidlite 和 aidgen 目录

设备授权
获取设备 SN 码
bash
cat /sys/devices/soc0/serial_number获取授权文件
提供SN号给阿加犀技术人员,生成设备指定 License 文件,放入路径 /etc/opt/aidlux/license/AidLuxLics 下
案例部署
步骤一:AidGen SDK 代码例子拷贝
bash
# 拷贝测试代码
cd /home/ubuntu
cp -r /usr/local/share/aidgen/examples/cpp/aidllm .步骤二:模型资源上传 & 解压
将下载好的模型资源上传至端侧设备中。
解压模型资源至
/home/ubuntu/aidllm目录下
bash
cd /home/ubuntu/aidllm
unzip Qwen2.5-0.5B-Instruct_Qualcomm\ QCS8550_QNN2.29_W4A16.zip -d .步骤三:资源文件确认
文件分布如下:
bash
/home/ubuntu/aidllm
├── CMakeLists.txt
├── test_prompt_abort.cpp
├── test_prompt_serial.cpp
├── aidgen_chat_template.txt
├── chat.txt
├── htp_backend_ext_config.json
├── qwen2.5-0.5b-instruct-htp.json
├── qwen2.5-0.5b-instruct-tokenizer.json
├── qwen2.5-0.5b-instruct_qnn229_qcs8550_4096_1_of_2.serialized.bin
├── qwen2.5-0.5b-instruct_qnn229_qcs8550_4096_2_of_2.serialized.bin步骤四:对话模板设置
💡注意
对话模板请参考模型资源包中的aidgen_chat_template.txt 文件
根据大模型的模板修改 test_prompt_serial.cpp 文件:
cpp
if(prompt_template_type == "qwen2"){
prompt_template = "<|im_start|>system\nYou are Qwen, created by Alibaba Cloud. You are a helpful assistant.<|im_end|>\n<|im_start|>user\n{0}<|im_end|>\n<|im_start|>assistant\n";
}步骤五:编译运行
bash
# 安装依赖
sudo apt update
sudo apt install libfmt-dev
# 编译
mkdir build && cd build
cmake .. && make
# 编译成功后运行
# 第一个参数 1 表示开启 profiler 统计
# 第二个参数 1 表示 推理循环次数
mv test_prompt_serial /home/ubuntu/aidllm/
cd /home/ubuntu/aidllm/
./test_prompt_serial qwen2.5-0.5b-instruct-htp.json 1 1- 在终端输入对话内容
