主要特性
- 兼容 OpenAI 的 API:可直接替代 OpenAI Chat Completions API
- 模型完全在 NPU 上运行,性能出色,同时释放 CPU/GPU 用于其他任务。
- 多模型支持:支持 qwen3-4b-instruct 和 llama3.1-8b 等 LLM,以及 qwen3-4b-VL 等 VLM。可以轻松地从 AI Hub 添加更多 LLM/VLM。
- 自动上下文管理:在对话变长时进行智能摘要
- 基于线程的会话:在请求之间保持对话上下文,允许您在同一容器实例中在 LLM 和 VLM 调用之间切换。
设置
以下步骤假设您已完成设备设置(IQ-9075 EVK 或 IQ-8275 EVK)。设备设置完成后,请按照以下步骤安装并运行 LLM/VLM 微服务容器。在此示例中,我们将把一个 LLM 模型和一个 VLM 模型复制到设备上,并使用单个容器实例来运行两者。1
安装所需软件包
2
设置 Docker
3
下载 LLM/VLM 模型
我们先从 Hugging Face 下载针对 QCS9075 优化的 qwen3-4b-instruct 模型来开始。您可以在 Qualcomm 的 AI Hub 页面上找到可用的 LLM 和 VLM 模型列表 — 可以使用左侧的筛选器选择您感兴趣的芯片组和模型类型。
直接下载:
直接下载:
IQ-8275 EVK
IQ-8275 EVK
IQ-9075 EVK
IQ-9075 EVK
4
安装 LLM/VLM 模型
下载 zip 文件后,将其复制到设备上并解压。本示例假设您已在
您的模型目录现在应如下所示:
您的模型目录现在应如下所示:
~/models 创建了模型目录。IQ-9075 EVK
IQ-9075 EVK
~/models/qwen3_4b_instruct_2507-genie-w4a16-qualcomm_qcs9075/~/models/qwen2_5_vl_7b_instruct-genie-w4a16-qualcomm_qcs9075/IQ-8275 EVK
IQ-8275 EVK
~/models/qwen3_4b_instruct_2507-genie-w4a16-qualcomm_qcs8275/~/models/qwen2_5_vl_7b_instruct-genie-w4a16-qualcomm_qcs8275/5
将 docker compose 文件安装到设备上
从 CodeLinaro deploy 目录下载适用于您设备的 Docker Compose 文件。
IQ-9075 EVK
IQ-9075 EVK
IQ-8275 EVK
IQ-8275 EVK
后续步骤使用
docker-compose-qcs9100-ubuntu.yaml。如果您使用的是 IQ-8275,请在每条命令中替换为 docker-compose-qcs8300-ubuntu.yaml。6
配置您的 LLM/VLM 容器
编辑复制到设备上的 Docker Compose 文件以进行配置:
在
在
environment: 下:- GENAI_PORT:更改为您希望服务公开的端口号(默认:9001)
- MAX_ACTIVE_MODELS:服务同时保持加载的不同模型的最大数量。当请求新模型且已达到上限时,最近最少使用的模型会被卸载以腾出空间。每个已加载的模型都会占用 DSP/NPU 资源和内存。(默认:2)
- GENAI_CONTEXT_CAPPING:对每个模型允许使用的上下文窗口的安全上限。设置后,每个模型的原生上下文大小会被缩减为 min(original_size, cap)。这可以限制内存使用,并有助于防止在资源受限的设备上出现内存不足的情况。(默认:2048)
volumes: 下:- GENAI_MODEL_DIR:更改为指向您的模型目录。在此示例中,我们使用 ~/models,因此改为:
${GENAI_MODEL_DIR:-~/models}:/mnt/work/models/
7
启动容器
如果设备上没有该容器,docker compose 文件会自动将其下载到设备,并使用您配置的设置运行。
8
验证 LLM 是否正常工作
打开浏览器并访问
http://<Device IP address>:<port>/docs 打开 API 浏览器。
在 /v1/chat/completions/ API 中:- 选择 ‘Try it out’
- 将请求体替换为:
- 点击 ‘Execute’ 发送请求。您应该会在下方页面上看到响应。

9
验证 VLM 是否正常工作
打开浏览器并访问
http://<Device IP address>:<port>/docs 打开 API 浏览器。
在 /v1/chat/completions/ API 中:- 选择 ‘Try it out’
- 将请求体替换为:
- 点击 ‘Execute’ 发送请求。您应该会在下方页面上看到响应。请注意,VLM 可能需要几秒钟才能运行完成。
当您在之前调用过 LLM 之后首次调用 VLM(或反之)时,响应会有轻微延迟,因为容器正在卸载之前的 LLM 并加载 VLM。后续调用的执行速度会快得多。
10
停止容器
完成后,您可以使用以下命令停止容器:

