Skip to main content
Qualcomm 创建了一个容器化服务,它提供兼容 OpenAI 的 API,便于部署并与任何兼容 OpenAI API 的框架集成,例如 LangChainOpenWeb

主要特性

  • 兼容 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 EVKIQ-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 deploy 目录下载适用于您设备的 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. 将请求体替换为:
  1. 点击 ‘Execute’ 发送请求。您应该会在下方页面上看到响应。 LLM 响应图片
9

验证 VLM 是否正常工作

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

停止容器

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