Skip to main content
Qualcomm 创建了一个容器化服务,暴露与 OpenAI 兼容的 API,便于轻松部署并与任何兼容 OpenAI API 的框架集成,例如 LangChain 和 OpenWeb。

主要特性

  • 兼容 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 模型列表——可使用左侧的筛选器选择您感兴趣的芯片组和模型类型。
直接下载:
4

安装 LLM/VLM 模型

在下载了 zip 文件后,将其复制到设备并解压。此示例假设您在 ~/models 创建了一个模型目录。
您的模型目录现在应类似于:
~/models/qwen3_4b_instruct_2507-genie-w4a16-qualcomm_qcs9075/
~/models/qwen2_5_vl_7b_instruct-genie-w4a16-qualcomm_qcs9075/
您的模型目录现在应类似于:
~/models/qwen3_4b_instruct_2507-genie-w4a16-qualcomm_qcs8275/
~/models/qwen2_5_vl_7b_instruct-genie-w4a16-qualcomm_qcs8275/
5

将 docker compose 文件安装到您的设备上

从 CodeLinaro 部署目录下载适用于您设备的 Docker Compose 文件。
后续步骤使用 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 中:
1

选择 'Try it out'

2

将请求正文替换为

3

点击 'Execute' 发送请求

您应该会在下方页面看到响应。LLM 响应示意图
9

验证 VLM 是否正常工作

打开浏览器并访问 http://<Device IP address>:<port>/docs 以打开 API 浏览器。 在 /v1/chat/completions/ API 中:
1

选择 'Try it out'

2

将请求正文替换为

3

点击 'Execute' 发送请求

您应该会在下方页面看到响应。请注意,VLM 可能需要几秒钟才能运行。VLM 响应示意图
在此前调用 LLM 之后首次调用 VLM(或反之),响应会有轻微延迟,因为容器需要卸载之前的 LLM 并加载 VLM。后续调用将执行得快得多。
10

停止容器

完成后,您可以使用以下命令停止容器: