AidGen SDK 开发者文档
简介
AidGen 是基于 AidLite 构建的专门针对生成式 Transformer 模型的推理框架,旨在充分调用硬件的各计算单元(CPU、GPU、NPU)实现大模型在端侧的推理加速。
AidGen 是SDK级别的开发套件,提供原子级别的大模型推理接口,适用于开发者将大模型推理集成到自己的应用中。
AidGen 支持多种类型的生成式 AI 模型:
- 语言类大模型 -> AidLLM 推理
- 多模态大模型 -> AidMLM 推理
其结构如下图所示:

💡注意
Model Farm 支持的大模型均通过 AidGen 实现在高通芯片NPU上的推理加速。
支持情况
模型种类支持情况
| AidLLM | AidMLM | |
|---|---|---|
| 文字 | ✅ | / |
| 图片 | / | ✅ |
| 音频 | / | 🚧 |
✅:已支持 🚧:计划支持
操作系统支持情况
| Linux | AidLux | Android | |
|---|---|---|---|
| C++ | ✅ | ✅ | / |
| Python | 🚧 | 🚧 | / |
| Java | / | / | 🚧 |
✅:已支持 🚧:计划支持
大语言模型 AidLLM SDK
安装
bash
sudo aid-pkg update
sudo aid-pkg -i aidgen-sdk模型文件获取
- 通过 Model Farm 大模型分区可以直接下载对应的模型文件及默认配置文件
- 通过命令直接获取并下载模型
bash
# 查看已支持的模型
aidllm remote-list api
# 下载模型
aidllm pull api [Url]
# 查看已下载模型
aidllm list api
# 删除已下载模型
sudo aidllm rm api [Name]示例应用
在高通 QCS8550 上部署 Qwen2.5-0.5B-Instruct
步骤一:安装 AidGen SDK
bash
# 安装 AidGen SDK
sudo aid-pkg update
sudo aid-pkg -i aidgen-sdk
# 拷贝测试代码
cd /home/aidlux
cp -r /usr/local/share/aidgen/examples/cpp/aidllm .步骤二:模型资源上传 & 解压
将下载好的模型资源上传至端侧设备中。
解压模型资源至
/home/aidlux/aidllm目录下
bash
cd /home/aidlux/aidllm
unzip Qwen2.5-0.5B-Instruct_Qualcomm\ QCS8550_QNN2.29_W4A16.zip -d .步骤三:资源文件确认
文件分布如下:
bash
/home/aidlux/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
mv test_qwen25vl /home/aidlux/aidmlm/
# 编译成功后运行
cd /home/aidlux/aidmlm/
./build/test_prompt_serial qwen2.5-0.5b-instruct-htp.json- 在终端输入对话内容

多模态视觉模型 AidMLM SDK
模型种类支持情况
| 模型 | 支持情况 |
|---|---|
| Qwen2.5-VL-3B-Instruct | ✅ |
| Qwen2.5-VL-7B-Instruct | ✅ |
| InternVL3-2B | 🚧 |
| Qwen3-VL-4b | 🚧 |
| Qwen3-VL-2b | 🚧 |
安装
bash
sudo aid-pkg update
sudo aid-pkg -i aidgen-sdk模型文件获取
通过命令直接获取并下载模型
bash
sudo aid-pkg -i aidgense
# 查看已支持的模型
aidllm remote-list api
# 下载模型
aidllm pull api [Url]
# 查看已下载模型
aidllm list api
# 删除已下载模型
sudo aidllm rm api [Name]示例应用
在高通 QCS8550 上部署 Qwen2.5-VL-3B-Instruct (392x392)
- 安装 AidGen SDK
bash
# 安装 AidGen SDK
sudo aid-pkg update
sudo aid-pkg -i aidgen-sdk
# 拷贝测试代码
cd /home/aidlux
cp -r /usr/local/share/aidgen/examples/cpp/aidmlm ./- 模型获取
bash
# 安装 aidllm 工具
sudo aid-pkg -i aidgense
# 下载模型
aidllm pull api aplux/Qwen2.5-VL-3B-392x392-8550
# 将模型资源移动至目录下
mv -r /opt/aidlux/app/aid-openai-api/res/models/Qwen2.5-VL-3B-392x392-8550 /home/aidlux/aidmlm- 配置文件创建
bash
cd /home/aidlux/aidmlm
vim config3b_392.json创建如下 json 配置文件
json
{
"vision_model_path":"veg.serialized.bin.aidem",
"pos_embed_cos_path":"position_ids_cos.raw",
"pos_embed_sin_path":"position_ids_sin.raw",
"vocab_embed_path":"embedding_weights_151936x2048.raw",
"window_attention_mask_path":"window_attention_mask.raw",
"full_attention_mask_path":"full_attention_mask.raw",
"llm_path_list":[
"qwen2p5-vl-3b-qnn231-qcs8550-cl2048_1_of_6.serialized.bin.aidem",
"qwen2p5-vl-3b-qnn231-qcs8550-cl2048_2_of_6.serialized.bin.aidem",
"qwen2p5-vl-3b-qnn231-qcs8550-cl2048_3_of_6.serialized.bin.aidem",
"qwen2p5-vl-3b-qnn231-qcs8550-cl2048_4_of_6.serialized.bin.aidem",
"qwen2p5-vl-3b-qnn231-qcs8550-cl2048_5_of_6.serialized.bin.aidem",
"qwen2p5-vl-3b-qnn231-qcs8550-cl2048_6_of_6.serialized.bin.aidem"
]
}文件分布如下:
bash
/home/aidlux/aidmlm
├── CMakeLists.txt
├── test_qwen25vl_abort.cpp
├── test_qwen25vl.cpp
├── demo.jpg
├── embedding_weights_151936x2048.raw
├── full_attention_mask.raw
├── position_ids_cos.raw
├── position_ids_sin.raw
├── qwen2p5-vl-3b-qnn231-qcs8550-cl2048_1_of_6.serialized.bin.aidem
├── qwen2p5-vl-3b-qnn231-qcs8550-cl2048_2_of_6.serialized.bin.aidem
├── qwen2p5-vl-3b-qnn231-qcs8550-cl2048_3_of_6.serialized.bin.aidem
├── qwen2p5-vl-3b-qnn231-qcs8550-cl2048_4_of_6.serialized.bin.aidem
├── qwen2p5-vl-3b-qnn231-qcs8550-cl2048_5_of_6.serialized.bin.aidem
├── qwen2p5-vl-3b-qnn231-qcs8550-cl2048_6_of_6.serialized.bin.aidem
├── veg.serialized.bin.aidem
├── window_attention_mask.raw- 编译运行
bash
sudo apt update
sudo apt-get install libfmt-dev nlohmann-json3-dev
mkdir build && cd build
cmake .. && make
#编译成功后运行 test_qwen25vl
./test_qwen25vl "qwen25vl3b392" "config3b_392.json" "demo.jpg" "请描述一下图中场景"test_qwen25vl.cpp 测试代码中针对不同类型模型定义了 model_type 用于执行文件的第一个参数。目前支持以下类型模型:
| Model | Type |
|---|---|
| Qwen2.5-VL-3B (392X392) | qwen25vl3b392 |
| Qwen2.5-VL-3B (672X672) | qwen25vl3b672 |
| Qwen2.5-VL-7B (392X392) | qwen25vl7b392 |
| Qwen2.5-VL-7B (672X672) | qwen25vl7b672 |
- 运行结果如下
