使用 vLLM 和 Cloud GPU 提供純文字和多模態語言模型

摘要

這個教學課程會逐步引導您使用 Gemini Enterprise Agent Platform 中的 vLLM,部署及提供 Llama 3.1 和 3.2 模型。使用時,請搭配另外兩個筆記本:「透過 vLLM 提供 Llama 3.1」來部署純文字 Llama 3.1 模型,以及「透過 vLLM 提供多模態 Llama 3.2」來部署多模態 Llama 3.2 模型,以便處理輸入的文字和圖像。這個頁面列出的步驟可引導您在 GPU 有效率地處理模型推論工作,並為不同的應用程式自訂模型,讓您運用工具將進階語言模型整合到專案。

完成本指南後,您將瞭解如何:

  • 透過 vLLM 容器從 Hugging Face 下載預先建構的 Llama 模型。
  • 透過 vLLM 在 Google CloudGemini Enterprise Agent Platform Model Garden 中的 GPU 執行個體部署這些模型。
  • 以高效率方式提供模型,大規模處理推論要求。
  • 針對純文字要求和文字加圖像的要求執行推論工作。
  • 清除所用資源。
  • 偵測 Deployment 錯誤。

vLLM 主要功能

功能 說明
PagedAttention 最佳化的注意力機制,可在推論期間有效管理記憶體。動態分配記憶體資源,支援高處理量文字生成,可擴充以處理多項並行要求。
連續批次處理 將多個輸入要求合併為單一批次,以便平行處理,盡可能提高 GPU 使用率和處理量。
詞元串流 在生成文字時,即時輸出一個個詞元。適合需要低延遲的應用程式,例如聊天機器人或互動式 AI 系統。
模型相容性 支援多種預先訓練模型,涵蓋 Hugging Face Transformers 等熱門架構。更輕鬆地整合及測試不同的 LLM。
多 GPU 和多主機 將工作負載分散至單一機器中的多個 GPU,以及叢集中的多部機器,大幅提高處理量和擴充性,有效率地提供模型。
高效率部署 與 OpenAI Chat Completions 等 API 完美整合,可輕鬆部署至正式環境。
與 Hugging Face 模型完美整合 vLLM 與 Hugging Face 模型構件格式相容,並支援從 HF 載入,因此能輕鬆在最佳化設定中部署 Llama 模型,以及 Gemma、Phi 和 Qwen 等其他熱門模型。
社群導向的開放原始碼專案 vLLM 是開放原始碼,鼓勵社群貢獻,促進 LLM 服務效率持續提升。

表 1:vLLM 功能摘要

Google Gemini Enterprise Agent Platform vLLM 自訂:提升效能與整合

Google Gemini Enterprise Agent Platform Model Garden 中的 vLLM 實作,並非直接整合開放原始碼程式庫。Gemini Enterprise Agent Platform 會維護自訂且最佳化的 vLLM 版本,專門用於提升效能、可靠性,並與 Google Cloud完美整合。

  • 效能最佳化:
    • 從 Cloud Storage 平行下載:從 Cloud Storage 平行擷取資料,大幅加快模型載入和部署速度,縮短延遲時間並提高啟動速度。
  • 功能強化:
    • 動態 LoRA 搭配強化快取和 Cloud Storage 支援: 透過本機磁碟快取機制和強大的錯誤處理功能,擴充動態 LoRA 功能,並支援直接從 Cloud Storage 路徑和經簽署的網址載入 LoRA 權重。這可簡化自訂模型的管理和部署作業。
    • Llama 3.1/3.2 函式呼叫剖析:針對 Llama 3.1/3.2 函式呼叫實作專門剖析,提升剖析穩定性。
    • 主機記憶體前置字元快取:外部 vLLM 僅支援 GPU 記憶體前置字元快取。
    • 推測解碼:這是現有的 vLLM 功能,但 Gemini Enterprise Agent Platform 透過實驗,找出高效能的模型設定。

這些 Gemini Enterprise Agent Platform 專屬的自訂設定,通常不會對使用者造成影響,但可讓您在 Gemini Enterprise Agent Platform Model Garden 上,充分發揮 Llama 3.1 部署作業的效能和效率。

  • Gemini Enterprise Agent Platform 生態系統整合:
    • 支援 Gemini Enterprise Agent Platform 預測輸入/輸出格式:確保與 Gemini Enterprise Agent Platform 預測輸入和輸出格式完美相容,簡化資料處理作業,並與其他 Gemini Enterprise Agent Platform 服務整合。
    • Vertex 環境變數感知:遵循並運用 Gemini Enterprise Agent Platform 環境變數 (AIP_*) 進行設定和資源管理,簡化部署作業,並確保 Gemini Enterprise Agent Platform 環境中的行為一致。
    • 強化錯誤處理和穩定性:實作全面的錯誤處理、輸入/輸出驗證和伺服器終止機制,確保在代管 Gemini Enterprise Agent Platform 環境中穩定、可靠且順暢運作。
    • Nginx 伺服器功能:在 vLLM 伺服器上整合 Nginx 伺服器,方便部署多個副本,並提高服務基礎架構的可擴充性和高可用性。

vLLM 的其他優點

  • 基準效能:在處理量和延遲時間方面,vLLM 的效能與其他服務系統 (例如 Hugging Face text-generation-inference 和 NVIDIA 的 FasterTransformer) 相比,具有競爭力。
  • 易於使用:這個程式庫提供簡單明瞭的 API,可與現有工作流程整合,讓您只需進行最少設定,即可部署 Llama 3.1 和 3.2 模型。
  • 進階功能:vLLM 支援串流輸出 (逐一生成回覆詞元),並能有效處理長度不一的提示詞,提升應用程式的互動性和回應速度。

如需 vLLM 系統總覽,請參閱論文。

支援的模型

vLLM 支援多種最先進模型,您可以選擇最符合需求的模型。下表列出部分模型。不過,如要查看支援模型的完整清單,包括純文字和多模態推論模型,請參閱 vLLM 官方網站。

類別 模型
Meta AI Llama 3.3、Llama 3.2、Llama 3.1、Llama 3、Llama 2、Code Llama
Mistral AI Mistral 7B、Mixtral 8x7B、Mixtral 8x22B 及其變體 (Instruct、Chat)、Mistral-tiny、Mistral-small、Mistral-medium
DeepSeek AI DeepSeek-V3、DeepSeek-R1、DeepSeek-R1-Distill-Qwen-1.5B、DeepSeek-R1-Distill-Qwen-7B、DeepSeek-R1-Distill-Llama-8B、DeepSeek-R1-Distill-Qwen-14B、DeepSeek-R1-Distill-Qwen-32B、DeepSeek-R1-Distill-Llama-70B、Deepseek-vl2-tiny、Deepseek-vl2-small、Deepseek-vl2
MosaicML MPT (7B、30B) 和變體 (Instruct、Chat)、MPT-7B-StoryWriter-65k
OpenAI GPT-2、GPT-3、GPT-4、GPT-NeoX
Together AI RedPajama、Pythia
Stability AI StableLM (3B、7B)、StableLM-Alpha-3B、StableLM-Base-Alpha-7B、StableLM-Instruct-Alpha-7B
TII (科技創新研究所) Falcon 7B、Falcon 40B 和變體 (Instruct、Chat)、Falcon-RW-1B、Falcon-RW-7B
BigScience BLOOM、BLOOMZ
Google FLAN-T5、UL2、Gemma (2B、7B)、PaLM 2、
Salesforce CodeT5、CodeT5+
LightOn Persimmon-8B-base、Persimmon-8B-chat
EleutherAI GPT-Neo、Pythia
AI21 Labs Jamba
Cerebras Cerebras-GPT
Intel Intel-NeuralChat-7B
其他重要模型 StarCoder、OPT、百川、Aquila、千問、InternLM、XGen、OpenLLaMA、Phi-2、Yi、OpenCodeInterpreter、Nous-Hermes、Gemma-it、Mistral-Instruct-v0.2-7B-Zeus、

表 2:vLLM 支援的部分模型

開始使用 Model Garden

vLLM Cloud GPU 服務容器已整合至 Model Garden 測試環境、一鍵部署和 Colab Enterprise 筆記本範例。本教學課程以 Meta AI 的 Llama 模型系列為例。

使用 Colab Enterprise 筆記本

您也可以使用 Playground 和一鍵部署,但本教學課程不會介紹這些功能。

  1. 前往模型資訊卡頁面,然後按一下「Open notebook」(開啟筆記本)。
  2. 選取 Vertex Serving 筆記本。筆記本會在 Colab Enterprise 中開啟。
  3. 執行筆記本,使用 vLLM 部署模型,並將預測要求傳送至端點。

設定和需求

本節將說明設定 Google Cloud專案的必要步驟,並確保您具備部署及提供 vLLM 模型所需的資源。

1. 帳單

2. GPU 供應情形和配額

機型 加速器類型 建議區域
a2-ultragpu-1g 1 NVIDIA_A100_80GB us-central1、us-east4、europe-west4、asia-southeast1
a3-highgpu-8g 8 個 NVIDIA_H100_80GB us-central1、us-west1、europe-west4、asia-southeast1

3. 設定 Google Cloud 專案

執行下列程式碼範例,確認 Google Cloud 環境設定正確。這個步驟會安裝必要的 Python 程式庫,並設定 Google Cloud 資源的存取權。可執行的動作包括:

  • 安裝:升級 google-cloud-aiplatform 程式庫,並複製含有公用函式的存放區。
  • 環境設定:定義 Google Cloud 專案 ID、區域和專屬 Cloud Storage bucket 的變數,用於儲存模型構件。
  • 啟用 API:啟用 Gemini Enterprise Agent Platform 和 Compute Engine API,這些 API 是部署及管理 AI 模型不可或缺的工具。
  • Bucket 設定:建立新的 Cloud Storage bucket,或檢查現有 bucket,確保位於正確的區域。
  • Gemini Enterprise Agent Platform 初始化:使用專案、位置和暫存 bucket 設定,初始化 Gemini Enterprise Agent Platform 用戶端程式庫。
  • 設定服務帳戶:找出用於執行 Gemini Enterprise Agent Platform 工作的預設服務帳戶,並授予必要權限。
BUCKET_URI = "gs://"

REGION = ""

! pip3 install --upgrade --quiet 'google-cloud-aiplatform>=1.64.0'
! git clone https://github.com/GoogleCloudPlatform/vertex-ai-samples.git

import datetime
import importlib
import os
import uuid
from typing import Tuple

import requests
from google.cloud import aiplatform

common_util = importlib.import_module(
    "vertex-ai-samples.community-content.vertex_model_garden.model_oss.notebook_util.common_util"
)

models, endpoints = {}, {}

PROJECT_ID = os.environ["GOOGLE_CLOUD_PROJECT"]

if not REGION:
    REGION = os.environ["GOOGLE_CLOUD_REGION"]

print("Enabling Agent Platform API and Compute Engine API.")
! gcloud services enable aiplatform.googleapis.com compute.googleapis.com

now = datetime.datetime.now().strftime("%Y%m%d%H%M%S")
BUCKET_NAME = "/".join(BUCKET_URI.split("/")[:3])

if BUCKET_URI is None or BUCKET_URI.strip() == "" or BUCKET_URI == "gs://":
    BUCKET_URI = f"gs://{PROJECT_ID}-tmp-{now}-{str(uuid.uuid4())[:4]}"
    BUCKET_NAME = "/".join(BUCKET_URI.split("/")[:3])
    ! gsutil mb -l {REGION} {BUCKET_URI}
else:
    assert BUCKET_URI.startswith("gs://"), "BUCKET_URI must start with `gs://`."
    shell_output = ! gsutil ls -Lb {BUCKET_NAME} | grep "Location constraint:" | sed "s/Location constraint://"
    bucket_region = shell_output[0].strip().lower()
    if bucket_region != REGION:
        raise ValueError(
            "Bucket region %s is different from notebook region %s"
            % (bucket_region, REGION)
        )
print(f"Using this Bucket: {BUCKET_URI}")

STAGING_BUCKET = os.path.join(BUCKET_URI, "temporal")
MODEL_BUCKET = os.path.join(BUCKET_URI, "llama3_1")

print("Initializing Agent Platform API.")
aiplatform.init(project=PROJECT_ID, location=REGION, staging_bucket=STAGING_BUCKET)

shell_output = ! gcloud projects describe $PROJECT_ID
project_number = shell_output[-1].split(":")[1].strip().replace("'", "")
SERVICE_ACCOUNT = "your service account email"
print("Using this default Service Account:", SERVICE_ACCOUNT)

! gsutil iam ch serviceAccount:{SERVICE_ACCOUNT}:roles/storage.admin $BUCKET_NAME

! gcloud config set project $PROJECT_ID
! gcloud projects add-iam-policy-binding --no-user-output-enabled {PROJECT_ID} --member=serviceAccount:{SERVICE_ACCOUNT} --role="roles/storage.admin"
! gcloud projects add-iam-policy-binding --no-user-output-enabled {PROJECT_ID} --member=serviceAccount:{SERVICE_ACCOUNT} --role="roles/aiplatform.user"

搭配使用 Hugging Face 與 Meta Llama 3.1、3.2 和 vLLM

Meta 的 Llama 3.1 和 3.2 集合提供一系列多語言大型語言模型 (LLM),專為各種用途的高品質文字生成而設計。這些模型經過預先訓練和指令微調,擅長多語言對話、摘要和代理式檢索等工作。使用 Llama 3.1 和 3.2 模型前,請務必同意使用條款,如螢幕截圖所示。vLLM 程式庫提供開放原始碼的簡化服務環境,並針對延遲時間、記憶體效率和擴充性進行最佳化。

Meta LLama 3 社群授權協議 圖 1:Meta LLama 3 社群授權協議

Meta Llama 3.1 和 3.2 集合總覽

Llama 3.1 和 3.2 系列分別適用於不同的部署規模和模型大小,提供彈性選項,可用於多語言對話工作等。詳情請參閱 Llama 總覽頁面。

  • 純文字:Llama 3.2 多語言大型語言模型 (LLM) 系列包含預先訓練和指令調整的生成式模型,大小為 1B 和 3B (文字輸入,文字輸出)。
  • Vision 和 Vision Instruct:Llama 3.2-Vision 多模態大型語言模型 (LLM) 系列,包含預先訓練和指令調整的圖像推理生成模型,大小為 11B 和 90B (輸入文字 + 圖像,輸出文字)。最佳化:與 Llama 3.1 相同,3.2 模型專為多語言對話設計,在檢索和摘要任務中表現出色,在標準基準測試中取得頂尖成績。
  • 模型架構:Llama 3.2 也採用自動迴歸 Transformer 架構,並套用 SFT 和 RLHF,確保模型實用且安全。

Hugging Face 使用者存取權杖

本教學課程需要 Hugging Face Hub 的讀取存取權杖,才能存取必要資源。請按照下列步驟設定驗證:

Hugging Face 存取權杖設定 圖 2:Hugging Face 存取權杖設定
  1. 產生存取權杖:

  2. 使用權杖:

    • 使用產生的權杖進行驗證,並視教學課程需要存取公開或私人存放區。
管理 Hugging Face 存取權杖 圖 3:管理 Hugging Face 存取權杖

這項設定可確保您具備適當的存取層級,不會取得不必要的權限。這些做法可強化安全性,並防止權杖意外曝光。如要進一步瞭解如何設定存取權杖,請參閱 Hugging Face 存取權杖頁面。

請勿公開或在網路上分享或揭露權杖。在部署期間將權杖設為環境變數時,權杖仍會保持私密狀態,只有您的專案可以存取。Gemini Enterprise Agent Platform 會防止其他使用者存取您的模型和端點,確保安全性。

如要進一步瞭解如何保護存取權杖,請參閱「Hugging Face 存取權杖 - 最佳做法」。

使用 vLLM 部署純文字 Llama 3.1 模型

如要部署正式環境等級的大型語言模型,vLLM 提供高效率的服務解決方案,可最佳化記憶體用量、降低延遲時間,並提高處理量。因此特別適合處理較大的 Llama 3.1 模型,以及多模態 Llama 3.2 模型。

步驟 1:選擇要部署的模型

選擇要部署的 Llama 3.1 模型變體。可用選項包括各種大小和指令調整版本:

base_model_name = "Meta-Llama-3.1-8B"  # @param ["Meta-Llama-3.1-8B", "Meta-Llama-3.1-8B-Instruct", "Meta-Llama-3.1-70B", "Meta-Llama-3.1-70B-Instruct", "Meta-Llama-3.1-405B-FP8", "Meta-Llama-3.1-405B-Instruct-FP8"]
hf_model_id = "meta-Llama/" + base_model_name

步驟 2:檢查部署硬體和配額

部署函式會根據模型大小設定適當的 GPU 和機器類型,並檢查特定專案在該區域的配額:

if "8b" in base_model_name.lower():
    accelerator_type = "NVIDIA_L4"
    machine_type = "g2-standard-12"
    accelerator_count = 1
elif "70b" in base_model_name.lower():
    accelerator_type = "NVIDIA_L4"
    machine_type = "g2-standard-96"
    accelerator_count = 8
elif "405b" in base_model_name.lower():
    accelerator_type = "NVIDIA_H100_80GB"
    machine_type = "a3-highgpu-8g"
    accelerator_count = 8
else:
    raise ValueError(f"Recommended GPU setting not found for: {accelerator_type} and {base_model_name}.")

確認指定區域是否有 GPU 配額:

common_util.check_quota(
    project_id=PROJECT_ID,
    region=REGION,
    accelerator_type=accelerator_type,
    accelerator_count=accelerator_count,
    is_for_training=False,
)

步驟 3:使用 vLLM 檢查模型

下列函式會將模型上傳至 Gemini Enterprise Agent Platform、配置部署設定,並使用 vLLM 將模型部署至端點。

  1. Docker 映像檔:部署作業會使用預先建構的 vLLM Docker 映像檔,提高服務效率。
  2. 設定:設定記憶體使用率、模型長度和其他 vLLM 設定。如要進一步瞭解伺服器支援的引數,請參閱官方 vLLM 說明文件頁面。
  3. 環境變數:設定驗證和部署來源的環境變數。
def deploy_model_vllm(
    model_name: str,
    model_id: str,
    service_account: str,
    base_model_id: str = None,
    machine_type: str = "g2-standard-8",
    accelerator_type: str = "NVIDIA_L4",
    accelerator_count: int = 1,
    gpu_memory_utilization: float = 0.9,
    max_model_len: int = 4096,
    dtype: str = "auto",
    enable_trust_remote_code: bool = False,
    enforce_eager: bool = False,
    enable_lora: bool = False,
    max_loras: int = 1,
    max_cpu_loras: int = 8,
    use_dedicated_endpoint: bool = False,
    max_num_seqs: int = 256,
) -> Tuple[aiplatform.Model, aiplatform.Endpoint]:
    """Deploys trained models with vLLM into Agent Platform."""
    endpoint = aiplatform.Endpoint.create(
        display_name=f"{model_name}-endpoint",
        dedicated_endpoint_enabled=use_dedicated_endpoint,
    )

    if "8b" in base_model_name.lower():
        accelerator_type = "NVIDIA_L4"
        machine_type = "g2-standard-12"
        accelerator_count = 1
    elif "70b" in base_model_name.lower():
        accelerator_type = "NVIDIA_L4"
        machine_type = "g2-standard-96"
        accelerator_count = 8
    elif "405b" in base_model_name.lower():
        accelerator_type = "NVIDIA_H100_80GB"
        machine_type = "a3-highgpu-8g"
        accelerator_count = 8
    else:
        raise ValueError(f"Recommended GPU setting not found for: {accelerator_type} and {base_model_name}.")

    common_util.check_quota(
        project_id=PROJECT_ID,
        region=REGION,
        accelerator_type=accelerator_type,
        accelerator_count=accelerator_count,
        is_for_training=False,
    )

    vllm_args = [
        "python", "-m", "vllm.entrypoints.api_server",
        "--host=0.0.0.0",
        "--port=8080",
        f"--model={model_id}",
        f"--tensor-parallel-size={accelerator_count}",
        "--swap-space=16",
        f"--gpu-memory-utilization={gpu_memory_utilization}",
        f"--max-model-len={max_model_len}", f"--dtype={dtype}",
        f"--max-loras={max_loras}", f"--max-cpu-loras={max_cpu_loras}",
        f"--max-num-seqs={max_num_seqs}", "--disable-log-stats"
    ]

    if enable_trust_remote_code:
        vllm_args.append("--trust-remote-code")
    if enforce_eager:
        vllm_args.append("--enforce-eager")
    if enable_lora:
        vllm_args.append("--enable-lora")
    if model_type:
        vllm_args.append(f"--model-type={model_type}")

    env_vars = {
        "MODEL_ID": model_id,
        "DEPLOY_SOURCE": "notebook",
        "HF_TOKEN": HF_TOKEN
    }

    model = aiplatform.Model.upload(
        display_name=model_name,
        serving_container_image_uri=VLLM_DOCKER_URI,
        serving_container_args=vllm_args,
        serving_container_ports=[8080],
        serving_container_predict_route="/generate",
        serving_container_health_route="/ping",
        serving_container_environment_variables=env_vars,
        serving_container_shared_memory_size_mb=(16 * 1024),
        serving_container_deployment_timeout=7200,
    )
    print(f"Deploying {model_name} on {machine_type} with {accelerator_count} {accelerator_type} GPU(s).")

    model.deploy(
        endpoint=endpoint,
        machine_type=machine_type,
        accelerator_type=accelerator_type,
        accelerator_count=accelerator_count,
        deploy_request_timeout=1800,
        service_account=service_account,
    )
    print("endpoint_name:", endpoint.name)

    return model, endpoint

步驟 4:執行部署作業

使用所選模型和設定執行部署函式。這個步驟會部署模型,並傳回模型和端點執行個體:

HF_TOKEN = ""

VLLM_DOCKER_URI = "us-docker.pkg.dev/vertex-ai/vertex-vision-model-garden-dockers/pytorch-vllm-serve:20241001_0916_RC00"

model_name = common_util.get_job_name_with_datetime(prefix=f"{base_model_name}-serve-vllm")
gpu_memory_utilization = 0.9
max_model_len = 4096
max_loras = 1

models["vllm_gpu"], endpoints["vllm_gpu"] = deploy_model_vllm(
    model_name=common_util.get_job_name_with_datetime(prefix=f"{base_model_name}-serve"),
    model_id=hf_model_id,
    service_account=SERVICE_ACCOUNT,
    machine_type=machine_type,
    accelerator_type=accelerator_type,
    accelerator_count=accelerator_count,
    gpu_memory_utilization=gpu_memory_utilization,
    max_model_len=max_model_len,
    max_loras=max_loras,
    enforce_eager=True,
    enable_lora=True,
    use_dedicated_endpoint=use_dedicated_endpoint,
)

執行這段程式碼範例後,Llama 3.1 模型就會部署至 Gemini Enterprise Agent Platform,並可透過指定端點存取。您可以與模型互動,執行文字生成、摘要和對話等推論工作。視模型大小而定,新模型部署作業最多可能需要一小時。您可以在線上預測頁面查看進度。

Vertex 資訊主頁中的 Llama 3.1 部署端點 圖 4:Vertex 資訊主頁中的 Llama 3.1 部署端點

在 Gemini Enterprise Agent Platform 使用 Llama 3.1 進行預測

成功將 Llama 3.1 模型部署至 Gemini Enterprise Agent Platform 後,即可傳送文字提示詞至端點,開始進行預測。本節提供範例,說明如何使用各種可自訂的參數生成回覆,以控制輸出內容。

步驟 1:定義提示詞和參數

首先,請設定文字提示詞和取樣參數,引導模型生成回覆。以下是主要參數:

  • prompt:您希望模型生成回覆的輸入文字。例如,提示 =「什麼是汽車?」。
  • max_tokens:生成輸出內容中的詞元數量上限。降低這個值有助於避免逾時問題。
  • temperature:控制預測結果的隨機程度。值越高 (例如 1.0),多樣性越高;值越低 (例如 0.5),輸出內容越集中。
  • top_p:將取樣集區限制在累積機率最高的部分。舉例來說,如果將 top_p 設為 0.9,系統只會考慮機率總和達到前 90% 的詞元。
  • top_k:限制只從最可能出現的前 k 個詞元中取樣。舉例來說,如果將 top_k 設為 50,系統只會從前 50 個詞元中取樣。
  • raw_response:如果設為 True,則會傳回原始模型輸出內容。如果為 False,請使用「Prompt:\n{prompt}\nOutput:\n{output}」結構套用其他格式。
  • lora_id (選用):LoRA 權重檔案的路徑,用於套用低秩調整 (LoRA) 權重。可以是 Cloud Storage bucket 或 Hugging Face 存放區網址。請注意,只有在部署引數中設定 --enable-lora 時,這項功能才會運作。多模態模型不支援動態 LoRA。
prompt = "What is a car?"
max_tokens = 50
temperature = 1.0
top_p = 1.0
top_k = 1
raw_response = False
lora_id = ""

步驟 2:傳送預測要求

執行個體設定完成後,即可將預測要求傳送至已部署的 Gemini Enterprise Agent Platform 端點。以下範例說明如何進行預測並輸出結果:

response = endpoints["vllm_gpu"].predict(
    instances=instances, use_dedicated_endpoint=use_dedicated_endpoint
)

for prediction in response.predictions:
    print(prediction)

輸出範例

以下是模型對「什麼是車子?」提示詞的回覆範例:

Human: What is a car?
Assistant: A car, or a motor car, is a road-connected human-transportation system
used to move people or goods from one place to another.

其他注意事項

  • 文字管理:為確保內容安全,您可以使用 Agent Platform 的文字管理功能,管理生成的文字。
  • 處理逾時:如果遇到 ServiceUnavailable: 503 等問題,請嘗試減少 max_tokens 參數。

這種方法可讓您靈活地使用不同的取樣技術和 LoRA 轉接器,與 Llama 3.1 模型互動,因此適用於各種用途,從一般用途的文字生成到特定任務的回覆,都能輕鬆應對。

使用 vLLM 部署多模態 Llama 3.2 模型

本節將逐步引導您將預先建構的 Llama 3.2 模型上傳至 Model Registry,並部署至 Gemini Enterprise Agent Platform 端點。部署時間最多可能需要一小時,具體取決於模型大小。Llama 3.2 模型有多模態版本,可支援文字和圖片輸入。vLLM 支援:

  • 純文字格式
  • 單一圖片 + 文字格式

這些格式讓 Llama 3.2 適用於需要處理影像和文字的應用程式。

步驟 1:選擇要部署的模型

指定要部署的 Llama 3.2 模型變體。以下範例使用 Llama-3.2-11B-Vision 做為所選模型,但您可依需求選擇其他可用選項。

base_model_name = "Llama-3.2-11B-Vision"  # @param ["Llama-3.2-1B", "Llama-3.2-1B-Instruct", "Llama-3.2-3B", "Llama-3.2-3B-Instruct", "Llama-3.2-11B-Vision", "Llama-3.2-11B-Vision-Instruct", "Llama-3.2-90B-Vision", "Llama-3.2-90B-Vision-Instruct"]
hf_model_id = "meta-Llama/" + base_model_name

步驟 2:設定硬體和資源

根據模型大小選取合適的硬體。vLLM 可依據模型的運算需求,使用不同的 GPU:

  • 1B 和 3B 模型:使用 NVIDIA L4 GPU。
  • 11B 模型:使用 NVIDIA A100 GPU。
  • 90B 模型:使用 NVIDIA H100 GPU。

這個範例會根據所選模型設定部署作業:

if "3.2-1B" in base_model_name or "3.2-3B" in base_model_name:
    accelerator_type = "NVIDIA_L4"
    machine_type = "g2-standard-8"
    accelerator_count = 1
elif "3.2-11B" in base_model_name:
    accelerator_type = "NVIDIA_TESLA_A100"
    machine_type = "a2-highgpu-1g"
    accelerator_count = 1
elif "3.2-90B" in base_model_name:
    accelerator_type = "NVIDIA_H100_80GB"
    machine_type = "a3-highgpu-8g"
    accelerator_count = 8
else:
    raise ValueError(f"Recommended GPU setting not found for: {base_model_name}.")

確認您有必要的 GPU 配額:

common_util.check_quota(
    project_id=PROJECT_ID,
    region=REGION,
    accelerator_type=accelerator_type,
    accelerator_count=accelerator_count,
    is_for_training=False,
)

步驟 3:使用 vLLM 部署模型

下列函式會處理 Gemini Enterprise Agent Platform 上的 Llama 3.2 模型部署作業。設定模型的環境、記憶體使用率和 vLLM 設定,確保服務效率。

def deploy_model_vllm(
    model_name: str,
    model_id: str,
    service_account: str,
    base_model_id: str = None,
    machine_type: str = "g2-standard-8",
    accelerator_type: str = "NVIDIA_L4",
    accelerator_count: int = 1,
    gpu_memory_utilization: float = 0.9,
    max_model_len: int = 4096,
    dtype: str = "auto",
    enable_trust_remote_code: bool = False,
    enforce_eager: bool = False,
    enable_lora: bool = False,
    max_loras: int = 1,
    max_cpu_loras: int = 8,
    use_dedicated_endpoint: bool = False,
    max_num_seqs: int = 12,
    model_type: str = None,
) -> Tuple[aiplatform.Model, aiplatform.Endpoint]:
    """Deploys trained models with vLLM into Agent Platform."""
    endpoint = aiplatform.Endpoint.create(
        display_name=f"{model_name}-endpoint",
        dedicated_endpoint_enabled=use_dedicated_endpoint,
    )

    if not base_model_id:
        base_model_id = model_id

    vllm_args = [
        "python",
        "-m",
        "vllm.entrypoints.api_server",
        "--host=0.0.0.0",
        "--port=8080",
        f"--model={model_id}",
        f"--tensor-parallel-size={accelerator_count}",
        "--swap-space=16",
        f"--gpu-memory-utilization={gpu_memory_utilization}",
        f"--max-model-len={max_model_len}",
        f"--dtype={dtype}",
        f"--max-loras={max_loras}",
        f"--max-cpu-loras={max_cpu_loras}",
        f"--max-num-seqs={max_num_seqs}",
        "--disable-log-stats",
    ]

    if enable_trust_remote_code:
        vllm_args.append("--trust-remote-code")
    if enforce_eager:
        vllm_args.append("--enforce-eager")
    if enable_lora:
        vllm_args.append("--enable-lora")
    if model_type:
        vllm_args.append(f"--model-type={model_type}")

    env_vars = {
        "MODEL_ID": base_model_id,
        "DEPLOY_SOURCE": "notebook",
    }

    # HF_TOKEN is not a compulsory field and may not be defined.
    try:
        if HF_TOKEN:
            env_vars["HF_TOKEN"] = HF_TOKEN
    except NameError:
        pass

    model = aiplatform.Model.upload(
        display_name=model_name,
        serving_container_image_uri=VLLM_DOCKER_URI,
        serving_container_args=vllm_args,
        serving_container_ports=[8080],
        serving_container_predict_route="/generate",
        serving_container_health_route="/ping",
        serving_container_environment_variables=env_vars,
        serving_container_shared_memory_size_mb=(16 * 1024),
        serving_container_deployment_timeout=7200,
    )
    print(f"Deploying {model_name} on {machine_type} with {accelerator_count} {accelerator_type} GPU(s).")

    model.deploy(
        endpoint=endpoint,
        machine_type=machine_type,
        accelerator_type=accelerator_type,
        accelerator_count=accelerator_count,
        deploy_request_timeout=1800,
        service_account=service_account,
    )
    print("endpoint_name:", endpoint.name)

    return model, endpoint

步驟 4:執行部署作業

使用設定的模型和設定執行部署函式。函式會傳回模型和端點執行個體,可用於推論。

model_name = common_util.get_job_name_with_datetime(prefix=f"{base_model_name}-serve-vllm")
models["vllm_gpu"], endpoints["vllm_gpu"] = deploy_model_vllm(
    model_name=model_name
    model_id=hf_model_id,
    base_model_id=hf_model_id,
    service_account=SERVICE_ACCOUNT,
    machine_type=machine_type,
    accelerator_type=accelerator_type,
    accelerator_count=accelerator_count,
    gpu_memory_utilization=gpu_memory_utilization,
    max_model_len=max_model_len,
    enforce_eager=True,
    use_dedicated_endpoint=use_dedicated_endpoint,
    max_num_seqs=max_num_seqs,
)
Vertex 資訊主頁中的 Llama 3.2 部署端點 圖 5:Vertex 資訊主頁中的 Llama 3.2 部署端點

視模型大小而定,新模型部署作業最多可能需要一小時才能完成。您可以在線上預測頁面查看進度。

在 Gemini Enterprise Agent Platform 使用預設預測路徑,透過 vLLM 執行推論

本節將引導您使用預設預測路徑,在 Gemini Enterprise Agent Platform 設定 Llama 3.2 Vision 模型的推論。您將使用 vLLM 程式庫有效率地提供服務,並透過傳送視覺提示和文字與模型互動。

首先,請確認模型端點已部署完成,可進行預測。

步驟 1:定義提示詞和參數

這個範例提供圖片網址和文字提示詞,模型會處理這些內容並生成回覆。

提示 Llama 3.2 的範例圖片輸入 圖 6:Llama 3.2 提示的圖片輸入範例
image_url = "https://images.pexels.com/photos/1254140/pexels-photo-1254140.jpeg"

raw_prompt = "This is a picture of"

# Reference prompt formatting guidelines here: https://www.Llama.com/docs/model-cards-and-prompt-formats/Llama3_2/#-base-model-prompt
prompt = f"<|begin_of_text|><|image|>{raw_prompt}"

步驟 2:設定預測參數

調整下列參數,控制模型的回覆:

max_tokens = 64

temperature = 0.5

top_p = 0.95

步驟 3:準備預測要求

使用圖片網址、提示和其他參數設定預測要求。

instances = [
    {
        "prompt": prompt,
        "multi_modal_data": {"image": image_url},
        "max_tokens": max_tokens,
        "temperature": temperature,
        "top_p": top_p,
    },
]

步驟 4:進行預測

將要求傳送至 Gemini Enterprise Agent Platform 端點,並處理回覆:

response = endpoints["vllm_gpu"].predict(instances=instances)

for raw_prediction in response.predictions:
    prediction = raw_prediction.split("Output:")
    print(prediction[1])

如果遇到逾時問題 (例如 ServiceUnavailable: 503 Took too long to respond when processing),請嘗試將 max_tokens 值調低 (例如 20),縮短回應時間。

在 Gemini Enterprise Agent Platform 使用 OpenAI Chat Completion 搭配 vLLM 執行推論

本節說明如何在 Gemini Enterprise Agent Platform,使用 OpenAI Chat Completions API 對 Llama 3.2 Vision 模型執行推論。這種做法可讓您同時傳送圖片和文字提示詞給模型,運用多模態功能取得更具互動性的回覆。

步驟 1:執行 Llama 3.2 Vision Instruct 模型的部署作業

使用設定的模型和設定執行部署函式。函式會傳回模型和端點執行個體,可用於推論。

base_model_name = "Llama-3.2-11B-Vision-Instruct"
hf_model_id = f"meta-llama/{base_model_name}"
model_name = common_util.get_job_name_with_datetime(prefix=f"{base_model_name}-serve-vllm")
model, endpoint = deploy_model_vllm(
    model_name=model_name
    model_id=hf_model_id,
    base_model_id=hf_model_id,
    service_account=SERVICE_ACCOUNT,
    machine_type="a2-highgpu-1g",
    accelerator_type="NVIDIA_TESLA_A100",
    accelerator_count=1,
    gpu_memory_utilization=0.9,
    max_model_len=4096,
    enforce_eager=True,
    max_num_seqs=12,
)

步驟 2:設定端點資源

首先,請為 Gemini Enterprise Agent Platform 部署作業設定端點資源名稱。

ENDPOINT_RESOURCE_NAME = "projects/{}/locations/{}/endpoints/{}".format(
    PROJECT_ID, REGION, endpoint.name
)

步驟 3:安裝 OpenAI SDK 和驗證程式庫

如要使用 OpenAI 的 SDK 傳送要求,請務必安裝必要的程式庫:

!pip install -qU openai google-auth requests

步驟 4:定義對話完成的輸入參數

設定要傳送至模型的圖片網址和文字提示詞。調整 max_tokens 和 temperature,分別控制回覆長度和隨機性。

user_image = "https://images.freeimages.com/images/large-previews/ab3/puppy-2-1404644.jpg"
user_message = "Describe this image?"
max_tokens = 50
temperature = 1.0

步驟 5:設定驗證和基準網址

擷取憑證,並設定 API 要求的基準網址。

import google.auth
import openai

creds, project = google.auth.default()
auth_req = google.auth.transport.requests.Request()
creds.refresh(auth_req)

BASE_URL = (
    f"https://{REGION}-aiplatform.googleapis.com/v1beta1/{ENDPOINT_RESOURCE_NAME}"
)
try:
    if use_dedicated_endpoint:
        BASE_URL = f"https://{DEDICATED_ENDPOINT_DNS}/v1beta1/{ENDPOINT_RESOURCE_NAME}"
except NameError:
    pass

步驟 6:傳送 Chat Completion 要求

使用 OpenAI 的 Chat Completions API,將圖片和文字提示詞傳送至 Gemini Enterprise Agent Platform 端點:

client = openai.OpenAI(base_url=BASE_URL, api_key=creds.token)

model_response = client.chat.completions.create(
    model="",
    messages=[
        {
            "role": "user",
            "content": [
                {"type": "image_url", "image_url": {"url": user_image}},
                {"type": "text", "text": user_message},
            ],
        }
    ],
    temperature=temperature,
    max_tokens=max_tokens,
)

print(model_response)

(選用) 步驟 7:重新連線至現有端點

如要重新連線至先前建立的端點,請使用端點 ID。如要重複使用端點,而非建立新端點,這個步驟就很有用。

endpoint_name = ""
aip_endpoint_name = (
     f"projects/{PROJECT_ID}/locations/{REGION}/endpoints/{endpoint_name}"
)
endpoint = aiplatform.Endpoint(aip_endpoint_name)

這種設定可讓您視需要彈性切換新建立和現有的端點,簡化測試和部署作業。

清除所用資源

為避免持續產生費用並釋出資源,請務必刪除已部署的模型、端點,以及用於這項實驗的儲存空間 bucket (選用)。

步驟 1:刪除端點和模型

下列程式碼會取消部署各個模型,並刪除相關聯的端點:

# Undeploy model and delete endpoint
for endpoint in endpoints.values():
    endpoint.delete(force=True)

# Delete models
for model in models.values():
    model.delete()

步驟 2:(選用) 刪除 Cloud Storage bucket

如果您特地為這項實驗建立 Cloud Storage bucket,可以將 delete_bucket 設為 True 來刪除 bucket。如果不再需要 bucket,建議您執行這個步驟 (非必要)。

delete_bucket = False
if delete_bucket:
    ! gsutil -m rm -r $BUCKET_NAME

按照這些步驟操作,即可確保本教學課程使用的所有資源都已清除,減少與實驗相關的不必要費用。

排解常見問題

本節提供相關指引,協助您找出並解決在 Gemini Enterprise Agent Platform 部署及推論 vLLM 模型時,可能遇到的常見問題。

檢查記錄

查看記錄,找出部署作業失敗或行為異常的根本原因:

  1. 前往 Gemini Enterprise Agent Platform Prediction 控制台:在 Google Cloud 控制台中,前往 Gemini Enterprise Agent Platform Prediction 控制台。
  2. 選取端點:按一下發生問題的端點。狀態應會指出部署作業是否失敗。
  3. 查看記錄:按一下端點,然後前往「Logs」(記錄) 分頁,或按一下「View logs」(查看記錄)。系統會將您導向 Cloud Logging,並篩選出該端點和模型部署作業的特定記錄。您也可以直接透過 Cloud Logging 服務存取記錄。
  4. 分析記錄:查看記錄項目,找出錯誤訊息、警告和其他相關資訊。查看時間戳記,將記錄項目與特定動作建立關聯。請留意資源限制 (記憶體和 CPU)、驗證問題或設定錯誤。

常見問題 1:部署期間 CUDA 記憶體不足 (OOM)

如果模型的記憶體用量超過可用的 GPU 容量,就會發生 CUDA 記憶體不足 (OOM) 錯誤。

如果是純文字模型,我們使用下列引擎引數:

base_model_name = "Meta-Llama-3.1-8B"
hf_model_id = f"meta-llama/{base_model_name}"
accelerator_type = "NVIDIA_L4"
accelerator_count = 1
machine_type = "g2-standard-12"
accelerator_count: int = 1
gpu_memory_utilization = 0.9
max_model_len = 4096
dtype = "auto"
max_num_seqs = 256

如果是多模態模型,我們會使用下列引擎引數:

base_model_name = "Llama-3.2-11B-Vision-Instruct"
hf_model_id = f"meta-llama/{base_model_name}"
accelerator_type = "NVIDIA_L4"
accelerator_count = 1
machine_type = "g2-standard-12"
accelerator_count: int = 1
gpu_memory_utilization = 0.9
max_model_len = 4096
dtype = "auto"
max_num_seqs = 12

如果像部署純文字模型時一樣,將多模態模型的 max_num_seqs 設為 256,可能會發生下列錯誤:

[rank0]: torch.OutOfMemoryError: CUDA out of memory. Tried to allocate 3.91 GiB. GPU 0 has a total capacity of 39.38 GiB of which 3.76 GiB is free. Including non-PyTorch memory, this process has 0 bytes memory in use. Of the allocated memory 34.94 GiB is allocated by PyTorch, and 175.15 MiB is reserved by PyTorch but unallocated. If reserved but unallocated memory is large try setting PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True to avoid fragmentation.  See documentation for Memory Management  (https://pytorch.org/docs/stable/notes/cuda.html#environment-variables)
記憶體不足 (OOM) GPU 錯誤記錄 圖 7:記憶體不足 (OOM) GPU 錯誤記錄

瞭解 max_num_seqs 和 GPU 記憶體:

  • max_num_seqs 參數定義模型可處理的並行要求數量上限。
  • 模型處理的每個序列都會耗用 GPU 記憶體。記憶體用量總量與每個序列的記憶體用量乘以 max_num_seqs 成正比。
  • 純文字模型 (例如 Meta-Llama-3.1-8B) 每個序列消耗的記憶體,通常少於多模態模型 (例如 Llama-3.2-11B-Vision-Instruct),因為後者會同時處理文字和圖片。

查看錯誤記錄 (圖 8):

  • 嘗試在 GPU 上分配記憶體時,記錄會顯示 torch.OutOfMemoryError。
  • 原因是模型的記憶體用量超過可用的 GPU 容量。NVIDIA L4 GPU 具有 24 GB,如果為多模態模型設定過高的 max_num_seqs 參數,會導致溢位。
  • 記錄建議設定 PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True 以改善記憶體管理,但這裡的主要問題是記憶體用量過高。
錯誤訊息,指出 Llama 3.2 部署失敗 圖 8:Llama 3.2 部署作業失敗
模型版本詳細資料面板 圖 9:模型版本詳細資料面板

如要解決這個問題,請前往 Gemini Enterprise Agent Platform Prediction 控制台,然後按一下端點。狀態應會顯示部署作業失敗。按一下即可查看記錄。確認 max-num-seqs = 256。這個值對 Llama-3.2-11B-Vision-Instruct 來說過高。較適當的值應為 12。

常見問題 2:需要 Hugging Face 權杖

如果模型設有存取限制,需要適當的驗證憑證才能存取,就會發生 Hugging Face 權杖錯誤。

以下螢幕截圖顯示 Google CloudLogs Explorer 中的記錄項目,其中包含與存取 Hugging Face 代管 Meta LLaMA-3.2-11B-Vision 模型相關的錯誤訊息。這項錯誤表示模型存取權受限,必須先驗證才能繼續。訊息會明確指出「無法存取網址的受管制存放區」,強調模型受到管制,必須提供適當的驗證憑證才能存取。在外部存放區中使用受限資源時,這項記錄項目有助於排解驗證問題。

錯誤訊息,說明需要 HuggingFace 權杖才能存取模型 圖 10:Hugging Face 權杖錯誤

如要解決這個問題,請驗證 Hugging Face 存取權杖的權限。複製最新權杖並部署新端點。

常見問題 3:需要聊天範本

如果不再允許使用預設對話範本,且權杖化工具未定義自訂對話範本,就會發生對話範本錯誤。

這張螢幕截圖顯示 Google CloudLogs Explorer 中的記錄項目,其中因 transformers 程式庫 4.44 版缺少對話範本,而發生 ValueError。錯誤訊息指出,系統不再允許預設對話範本,如果 tokenizer 未定義,則必須提供自訂對話範本。這項錯誤指出程式庫最近有所變更,必須明確定義對話範本,有助於在部署對話式應用程式時偵錯。

錯誤訊息,說明必須提供對話範本才能存取模型 圖 11:需要聊天範本

如要略過這項限制,請務必在部署期間使用 --chat-template 輸入引數提供對話範本。如需範本範例,請前往 vLLM 範例存放區。

常見問題 4:模型最大序列長度

如果模型的序列長度上限 (4096) 大於 KV 快取可儲存的詞元數量上限 (2256),就會發生模型序列長度上限錯誤。

模型序列長度上限 圖 12:Max Seq Length 過大

ValueError: The model's max seq len (4096) is larger than the maximum number of tokens that can be stored in KV cache (2256). 初始化引擎時,請嘗試提高 gpu_memory_utilization 或降低 max_model_len。

如要解決這個問題,請將 max_model_len 設為 2048 (小於 2256)。另一個解決方法是使用更多或更大的 GPU。如果選擇使用更多 GPU,則須適當設定 tensor-parallel-size。

Model Garden vLLM 容器版本資訊

主要版本

標準版 vLLM


發布日期

架構

vLLM 版本

容器 URI
2025 年 7 月 17 日
ARM

v0.9.2

us-docker.pkg.dev/vertex-ai/vertex-vision-model-garden-dockers/pytorch-vllm-serve:20250717_0916_arm_RC01
2025 年 7 月 10 日
x86

v0.9.2

us-docker.pkg.dev/vertex-ai/vertex-vision-model-garden-dockers/pytorch-vllm-serve:20250710_0916_RC01
2025 年 6 月 20 日
x86

0.9.1 版之後,commit

us-docker.pkg.dev/vertex-ai/vertex-vision-model-garden-dockers/pytorch-vllm-serve:20250620_0916_RC01
2025 年 6 月 11 日
x86

v0.9.1

us-docker.pkg.dev/vertex-ai/vertex-vision-model-garden-dockers/pytorch-vllm-serve:20250611_0916_RC01
2025 年 6 月 2 日
x86

v0.9.0

us-docker.pkg.dev/vertex-ai/vertex-vision-model-garden-dockers/pytorch-vllm-serve:20250601_0916_RC01
2025 年 5 月 6 日
x86

v0.8.5.post1

us-docker.pkg.dev/vertex-ai/vertex-vision-model-garden-dockers/pytorch-vllm-serve:20250506_0916_RC01
2025 年 4 月 29 日
x86

v0.8.4

us-docker.pkg.dev/vertex-ai/vertex-vision-model-garden-dockers/pytorch-vllm-serve:20250429_0916_RC01, 20250430_0916_RC00_maas
2025 年 4 月 17 日
x86

v0.8.4

us-docker.pkg.dev/vertex-ai/vertex-vision-model-garden-dockers/pytorch-vllm-serve:20250417_0916_RC01
Apr 10, 2025
x86

0.8.3 以上版本:commit

us-docker.pkg.dev/vertex-ai/vertex-vision-model-garden-dockers/pytorch-vllm-serve:20250410_0917_RC01
2025 年 4 月 7 日
x86

v0.8.3

us-docker.pkg.dev/vertex-ai/vertex-vision-model-garden-dockers/pytorch-vllm-serve:20250407_0917_RC01, 20250407_0917_RC0120250429_0916_RC00_maas
2025 年 4 月 7 日
x86

v0.8.1

us-docker.pkg.dev/vertex-ai/vertex-vision-model-garden-dockers/pytorch-vllm-serve:20250404_0916_RC01
2025 年 4 月 5 日
x86

v0.8.2 之後,commit

us-docker.pkg.dev/vertex-ai/vertex-vision-model-garden-dockers/pytorch-vllm-serve:20250405_1205_RC01
2025 年 3 月 31 日
x86

v0.8.1

us-docker.pkg.dev/vertex-ai/vertex-vision-model-garden-dockers/pytorch-vllm-serve:20250401_0916_RC01
2025 年 3 月 26 日
x86

v0.8.1

us-docker.pkg.dev/vertex-ai/vertex-vision-model-garden-dockers/pytorch-vllm-serve:20250327_0916_RC01
2025 年 3 月 23 日
x86

v0.8.1

us-docker.pkg.dev/vertex-ai/vertex-vision-model-garden-dockers/pytorch-vllm-serve:20250324_0916_RC01
2025 年 3 月 21 日
x86

v0.8.1

us-docker.pkg.dev/vertex-ai/vertex-vision-model-garden-dockers/pytorch-vllm-serve:20250321_0916_RC01
2025 年 3 月 11 日
x86

v0.7.3 之後,commit

us-docker.pkg.dev/vertex-ai/vertex-vision-model-garden-dockers/pytorch-vllm-serve:20250312_0916_RC01
2025 年 3 月 3 日
x86

v0.7.2

us-docker.pkg.dev/vertex-ai/vertex-vision-model-garden-dockers/pytorch-vllm-serve:20250304_0916_RC01
2025 年 1 月 14 日
x86

v0.6.4.post1

us-docker.pkg.dev/vertex-ai/vertex-vision-model-garden-dockers/pytorch-vllm-serve:20250114_0916_RC00_maas
2024 年 12 月 2 日
x86

v0.6.4.post1

us-docker.pkg.dev/vertex-ai/vertex-vision-model-garden-dockers/pytorch-vllm-serve:20241202_0916_RC00_maas
2024 年 11 月 12 日
x86

v0.6.2

us-docker.pkg.dev/vertex-ai/vertex-vision-model-garden-dockers/pytorch-vllm-serve:20241112_0916_RC00_maas
2024 年 10 月 16 日
x86

v0.6.2

us-docker.pkg.dev/vertex-ai/vertex-vision-model-garden-dockers/pytorch-vllm-serve:20241016_0916_RC00_maas

最佳化 vLLM


推出日期

架構

容器 URI
Jan 21, 2025
x86

us-docker.pkg.dev/vertex-ai-restricted/vertex-vision-model-garden-dockers/pytorch-vllm-optimized-serve:20250121_0835_RC00
2024 年 10 月 29 日
x86

us-docker.pkg.dev/vertex-ai-restricted/vertex-vision-model-garden-dockers/pytorch-vllm-optimized-serve:20241029_0835_RC00

其他版本

如要查看 VMG 標準 vLLM 容器版本的完整清單,請前往 Artifact Registry 頁面。

實驗狀態的 vLLM-TPU 版本會標記為 <yyyymmdd_hhmm_tpu_experimental_RC00>。