AUTOBUY購物中心

在 Intel Arc Pro 執行 vLLM——intel/llm-scaler-vllm

  • 2026-06-09 11:24:56

    先前我們已經介紹過 Ollama 與 llama.cpp 在 Intel Arc Pro B70 上的部署與應用,這次則將焦點放在另一個熱門的大型語言模型推論框架——vLLM。

    不過要特別注意的是,原版 vLLM 並不支援 Intel GPU,因此若要在 Intel Arc Pro B70 上使用 vLLM,必須改採 Intel 官方提供的特製版本:intel/llm-scaler-vllm

    什麼是 llm-scaler-vllm?

    llm-scaler-vllm 是 Intel 基於 vLLM 所開發的專屬版本,透過整合 Intel GPU 所需的運算支援與最佳化,使 Intel 顯示卡也能順利執行 vLLM 模型服務。相關專案與文件可於 Intel GitHub 專區取得:

    https://github.com/intel/llm-scaler

    本次測試環境採用 Ubuntu 24.04。關於 Intel GPU 驅動程式與相關執行環境的安裝設定,我們已於先前介紹 llama.cpp 的文章中說明,因此本文將直接進入部署階段。

    Docker Compose 部署

    本次使用 Docker Compose 同時部署:

    • Intel llm-scaler-vllm
    • Open WebUI

    模型則選用 Qwen/Qwen3.6-35B-A3B

    由於 vLLM 本身並不支援 GGUF 格式,因此可選擇的量化模型相對有限。此外,目前 llm-scaler-vllm 對部分量化格式(例如 AWQ)的支援仍在持續完善中,因此本次示範選擇直接使用未量化版本模型,以避免不必要的相容性問題。

    啟動線上量化功能

    不過,這並不代表 Intel Arc Pro B70 只能運行未量化模型。事實上,intel/llm-scaler-vllm 內建了線上量化(On-the-fly Quantization)功能,可在模型載入時直接進行量化處理,藉此大幅降低顯示記憶體占用,進一步部署參數規模更大的模型。

    若要啟用線上量化功能,只需在啟動參數中加入:

    --quantization sym_int4

    上述參數會在模型載入時自動套用對稱式 INT4 量化(Symmetric INT4 Quantization),有效降低模型所需的 VRAM 容量。對於顯示記憶體較有限的環境而言,可藉此提升大型模型的部署彈性,甚至讓原本無法載入的模型順利運行於單張顯示卡之上。llm-scaler-vllm目前支援的線上量化格式表列如下:

    量化方式 --quantization 參數值 概述 適用模型
    MXFP4 mxfp4 微尺度 FP4 量化 僅支援 gpt-oss-20b、gpt-oss-120b 此兩模型
    線上FP8 fp8 運行時動態 FP8 量化 所有支援的模型
    線上FP4 sym_int4 運行時動態對稱 INT4 量化 所有支援的模型

    另外有個實測時發現的重點值得提醒。雖然透過 sym_int4 線上量化後,Arc Pro B70 已經能夠成功載入 35B 等級模型,但在模型初始化與量化的過程中,系統記憶體用量會瞬間暴增。我們測試時最高曾看到接近 96GB 的 RAM 使用量,不過這些記憶體大多只會在載入階段使用,模型完成初始化後便會陸續釋出。

    因此,建議部署大型模型前先確認系統擁有足夠的記憶體容量,並適度增加 Ubuntu 的 Swap 空間。如此一來,即使載入期間出現短暫的記憶體需求高峰,也能避免因 OOM(Out of Memory)而造成模型載入失敗的情況。

    Docker Compose 設定檔如下:

    services:
      vllm:
        image: intel/llm-scaler-vllm:latest
        container_name: llm-scaler-vllm
        privileged: true
        network_mode: host
        ipc: host
        shm_size: 32g
    
        devices:
          - /dev/dri:/dev/dri
    
        volumes:
          - ./llm:/workspace
    
        environment:
          HF_HOME: /workspace/cache
          HUGGING_FACE_HUB_TOKEN: ${HF_TOKEN}
          HF_TOKEN: ${HF_TOKEN}
          VLLM_WORKER_MULTIPROC_METHOD: spawn
    
        entrypoint: ["vllm", "serve"]
    
        command:
          - Qwen/Qwen3.6-35B-A3B
          - --host
          - 0.0.0.0
          - --port
          - "8000"
          - --served-model-name
          - qwen3.6-35b
          - --quantization
          - sym_int4
          - --dtype
          - float16
          - --gpu-memory-utilization
          - "0.95"
          - --max-model-len
          - "4096"
          - --max-num-seqs
          - "1"
          - --enforce-eager
    
        restart: unless-stopped
    
      open-webui:
        image: ghcr.io/open-webui/open-webui:main
        container_name: open-webui
        ports:
          - "3000:8080"
        volumes:
          - ./open-webui:/app/backend/data
        environment:
          ENABLE_OPENAI_API: "true"
          OPENAI_API_BASE_URL: "http://host.docker.internal:8000/v1"
          OPENAI_API_KEY: "dummy-key"
        extra_hosts:
          - "host.docker.internal:host-gateway"
        depends_on:
          - vllm
        restart: unless-stopped

    設定完成後,在 docker-compose.yml 所在目錄執行:

    sudo docker compose up -d

    若一切正常,系統將會陸續建立並啟動:

    • llm-scaler-vllm
    • open-webui

    兩個容器。

    確認 vLLM 是否啟動成功

    由於模型載入需要一些時間,因此建議透過以下指令觀察 vLLM 容器的執行狀態:

    sudo docker logs -f llm-scaler-vllm

    當 Log 中出現以下訊息時,即表示 vLLM 已成功完成初始化並開始提供 API 服務:

    INFO: Started server process [1]
    INFO: Waiting for application startup.
    INFO: Application startup complete.

    使用 Open WebUI 存取本地模型

    待 vLLM 啟動完成後,即可透過瀏覽器開啟:

    http://localhost:3000

    進入 Open WebUI 介面,並透過圖形化操作方式與本地部署的 Qwen3.6-35B 模型進行互動。

    相較於 Ollama,vLLM 在高併發請求、Token 吞吐量以及 OpenAI API 相容性方面具有明顯優勢,因此相當適合作為本地 AI 伺服器的核心推論引擎。雖然目前 Intel GPU 在 vLLM 生態系中的支援度仍不及 NVIDIA CUDA 平台成熟,但透過 Intel 官方提供的 llm-scaler-vllm,已經能夠在 Arc Pro B70 上順利運行中大型模型,為 Intel 顯示卡使用者提供另一種值得嘗試的部署方案。