Skip to content

AidGen SDK 开发者文档

简介

AidGen 是基于 AidLite 构建的专门针对生成式 Transformer 模型的推理框架,旨在充分调用硬件的各计算单元(CPU、GPU、NPU)实现大模型在端侧的推理加速。

AidGen 是SDK级别的开发套件,提供原子级别的大模型推理接口,适用于开发者将大模型推理集成到自己的应用中。

AidGen 支持多种类型的生成式 AI 模型:

  • 语言类大模型 -> AidLLM 推理
  • 多模态大模型 -> AidMLM 推理

其结构如下图所示:

aidgen结构

💡注意

Model Farm 支持的大模型均通过 AidGen 实现在高通芯片NPU上的推理加速。

支持情况

模型种类支持情况

AidLLMAidMLM
文字
图片
音频🚧

✅:已支持 🚧:计划支持

操作系统支持情况

LinuxAidLuxAndroid
C++
Python🚧🚧
Java🚧

✅:已支持 🚧:计划支持

大语言模型 AidLLM SDK

安装

bash
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/ ./

模型文件获取

  1. 通过 Model Farm 大模型分区可以直接下载对应的模型文件及默认配置文件
  2. 通过命令直接获取并下载模型,以 Qwen2.5-0.5B-Instruct 举例
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/

模型性能查看方式

💡注意

请确保示例应用能够完整执行成功

以示例在高通 QCS8550 上部署 Qwen2.5-0.5B-Instruct 为例子

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"
  • 在终端输入对话内容后会看到如下日志信息:

日志信息

示例应用

多模态视觉模型 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
sudo aid-pkg -i aidgen-qnn236
sudo aid-pkg -i aidgen-qnn240

# 拷贝测试代码
mkdir /home/aidlux/aidmlm
cd /home/aidlux/aidmlm
cp -r /usr/local/share/aidgen/examples/ ./

模型文件获取

由于 Qwen2.5-VL-3B (392x392) 目前位于 Model Farm 预览板块中,需要通过 mms 命令获取

bash
# 登录
mms login

# 查找模型
mms list Qwen2.5-VL-3B

# 下载模型
mms get -m 'Qwen2.5-VL-3B-Instruct (392x392)' -p w4a16 -c qcs8550 -b qnn2.36 -d /home/aidlux/aidmlm/qwen2.5-vl-3b-392

cd /home/aidlux/aidmlm/qwen2.5-vl-3b-392
unzip qnn236_qcs8550_cl2048.zip
mv qnn236_qcs8550_cl2048/* /home/aidlux/aidmlm/

配置文件创建

bash
cd /home/aidlux/aidmlm
vim config3b_392.json

创建如下 json 配置文件

json
{
    "backend_type": "genie",
    "model": {},
    "vlm_model":{
        "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_qnn236_qcs8550_cl2048_1_of_1.serialized.bin.aidem"
        ]
    }
}

文件分布如下:

bash
/home/aidlux/aidmlm
├── embedding_weights_151936x2048.raw
├── full_attention_mask.raw
├── position_ids_cos.raw
├── position_ids_sin.raw
├── qwen2p5-vl-3b_qnn236_qcs8550_cl2048_1_of_1.serialized.bin.aidem
├── veg.serialized.bin.aidem
├── window_attention_mask.raw
├── examples

模型性能查看方式

💡注意

请确保示例应用能够完整执行成功

以示例在高通 QCS8550 上部署 Qwen2.5-VL-3B-Instruct (392x392) 为例子

bash
cd /home/aidlux/aidmlm/examples

mkdir build && cd build
cmake .. && make

mv test_multimodal /home/aidlux/aidmlm/
cd /home/aidlux/aidmlm/

# 手动上传一张图片到 /home/aidlux/aidmlm/ 目录
./test_multimodal config3b_392.json test-1.jpg "请描述这张图片"
  • 在终端输入对话内容后会看到如下日志信息:

日志信息

示例应用

推理参数修改

AidGen 支持动态模型推理相关参数修改,目前已支持的参数如下:

  • temp
  • top-k
  • top-p
  • stream

参考 test_aidgen_text.cpp 文件中以下代码修改参数:

cpp
    // 设置生成器属性
    std::cout << "[API] Generator::set_property(\"stream\", \"1\")" << std::endl;
    generator->set_property("stream", "1");