使用 AidGen 部署 LLM
介绍
端侧部署大语言模型 (Large Language Model, LLM) 指将原本在云端运行的大模型压缩、量化并部署到本地设备上,实现离线、低时延的自然语言理解与生成。本章节以 AidGen 推理引擎为基础,演示如何在边缘设备上完成大语言模型的部署、加载与对话流程。
在本案例中,大语言模型推理运行在设备端,通过 C++ 代码调用相关接口接收用户输入并实时返回对话结果。
- 设备:Rhino Pi-X1
- 系统:Ubuntu 22.04
- 模型:Qwen2.5-0.5B-Instruct
支持平台
| 平台 | 运行方式 |
|---|---|
| Rhino Pi-X1 | Ubuntu 22.04, AidLux |
准备工作
Rhino Pi-X1 硬件
Ubuntu 22.04 系统或 AidLux 系统
准备模型文件
访问 Model Farm: Qwen2.5-0.5B-Instruct 下载模型资源文件
💡注意
选择 QCS8550 芯片
案例部署
步骤一:安装 AidGen SDK
bash
# 安装 AidGen SDK
sudo aid-pkg update
sudo aid-pkg -i aidgen-sdk
sudo aid-pkg -i aidgen-qnn236
sudo aid-pkg -i aidgen-qnn240
# 拷贝测试代码
cd /home/aidlux/aidllm
cp -r /usr/local/share/aidgen/examples/ ./步骤二:模型资源获取
bash
# 登录
mms login
# 查找模型
mms list Qwen2.5-0.5B-Instruct
# 下载模型
mms get -m Qwen2.5-0.5B-Instruct -p w4a16 -c qcs8550 -b qnn2.29 -d /home/aidlux/aidllm/qwen2.5-0.5b-instruct
cd /home/aidlux/aidllm/qwen2.5-0.5b-instruct
unzip qnn229_qcs8550_cl4096.zip
mv qnn229_qcs8550_cl4096/* /home/aidlux/aidllm/步骤三:资源文件确认
文件分布如下:
bash
/home/aidlux/aidllm
├── 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
├── examples步骤四:对话模板设置
💡注意
对话模板请参考模型资源包中的aidgen_chat_template.txt 文件
根据大模型的模板修改 test_aidgen_text.cpp 文件:
cpp
// ========================================================================
// 5. 构建提示词模板 (Qwen2 格式)
// ========================================================================
std::string system_prompt =
"<|im_start|>system\n"
"You are Qwen, created by Alibaba Cloud. You are a helpful assistant.<|im_end|>\n";
auto make_user_turn = [](const std::string& text) -> std::string {
return "<|im_start|>user\n" + text + "<|im_end|>\n<|im_start|>assistant\n";
};步骤五:编译运行
bash
cd /home/aidlux/aidllm/examples
# 编译
mkdir build && cd build
cmake .. && make
mv test_text_only /home/aidlux/aidllm/
cd /home/aidlux/aidllm/
./test_text_only qwen2.5-0.5b-instruct-htp.json "hi"