在Google Cloud 控制台使用 Model Garden 探索、測試、調整及部署模型。您也可以使用 Google Cloud CLI 部署 Model Garden 模型。
傳送測試提示
前往 Google Cloud 控制台的「Model Garden」頁面。
找出要測試的支援模型,然後按一下「查看詳細資料」。
按一下「Open prompt design」(開啟提示設計)。
系統會將您導向「Prompt design」(提示設計) 頁面。
在「Prompt」(提示) 中,輸入要測試的提示。
選用步驟:設定模型參數。
按一下「提交」。
調整模型
前往 Google Cloud 控制台的「Model Garden」頁面。
在「Search models」(搜尋模型) 中輸入 Gemma 3,然後點按放大鏡圖示進行搜尋。
點按「Gemma 3」模型資訊卡上的「查看詳細資料」。
按一下「開啟微調管線」。
系統會將您導向 Agent Platform Pipelines 頁面。
如要開始調整,請按一下「建立執行作業」。
在筆記本中調整
大多數開放原始碼基礎模型和可微調模型的模型資訊卡,都支援在筆記本中調整。
前往 Google Cloud 控制台的「Model Garden」頁面。
找出要調整的支援模型,然後前往該模型的資訊卡。
按一下「開啟筆記本」。
部署開放式模型
您可以透過程式部署模型,或在 Google Cloud 控制台使用模型資訊卡部署模型。
如要進一步瞭解如何設定 Google Gen AI SDK 或 Google Cloud CLI,請參閱 Google Gen AI SDK 總覽或安裝 Google Cloud CLI。
控制台
前往 Google Cloud 控制台的「Model Garden」頁面。
找出要部署的支援模型,然後點選該模型的資訊卡。
按一下「Deploy」(部署),開啟「Deploy model」(部署模型) 窗格。
在「Deploy model」(部署模型) 窗格中,指定部署作業的詳細資料。
- 使用或修改產生的模型和端點名稱。
- 選取要建立模型端點的位置。
- 選取要用於各個部署作業節點的機器類型。
- 如要使用 Compute Engine 預留項目,請在「Deployment settings」(部署設定) 專區下方選取「Advanced」(進階)。
在「Reservation type」(預留項目類型) 欄位中,選取預留項目類型。預留項目必須與您指定的機器規格相符。
- 自動使用建立的預留項目:Gemini Enterprise Agent Platform 會自動選取屬性相符且允許使用的預留項目。如果自動選取的預留項目沒有容量,Gemini Enterprise Agent Platform 會使用一般 Google Cloud 資源集區。
- 選取特定預留項目:Gemini Enterprise Agent Platform 會使用特定預留項目。如果所選預留項目沒有運算資源,系統會擲回錯誤。
- 不使用 (預設):Gemini Enterprise Agent Platform 會使用一般Google Cloud 資源集區。這個值與不指定預留項目的效果相同。
按一下「Deploy」(部署)。
Python
如要瞭解如何安裝或更新 Vertex AI SDK for Python,請參閱「安裝 Vertex AI SDK for Python」。詳情請參閱 Python API 參考文件。
列出可部署的模型,並記錄要部署的模型 ID。您也可以選擇在 Model Garden 中列出支援的 Hugging Face 模型,甚至依模型名稱篩選。輸出內容不含任何調整後的模型。
使用上一步取得的模型 ID,查看模型的 Deployment 規格。您可以查看 Model Garden 為特定模型驗證的機器類型、加速器類型和容器映像檔 URI。
將模型部署至端點。除非您指定其他引數和值,否則 Model Garden 會使用預設部署設定。
REST
列出所有可部署的模型,然後取得要部署的模型 ID。接著,您可以使用預設設定和端點部署模型。您也可以選擇自訂部署作業,例如設定特定機器類型或使用專屬端點。
1. 列出可部署的模型
使用任何要求資料之前,請先修改下列項目的值:
- PROJECT_ID: Google Cloud 專案 ID。
- QUERY_PARAMETERS:如要列出 Model Garden 模型,請新增下列查詢參數
listAllVersions=True&filter=can_deploy(true)。如要列出 Hugging Face 模型,請將篩選器設為alt=json&is_hf_wildcard(true)+AND+labels.VERIFIED_DEPLOYMENT_CONFIG%3DVERIFIED_DEPLOYMENT_SUCCEED&listAllVersions=True。
HTTP 方法和網址:
GET https://us-central1-aiplatform.googleapis.com/v1/publishers/*/models?QUERY_PARAMETERS
如要傳送要求,請選擇以下其中一個選項:
curl
執行下列指令:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: PROJECT_ID" \
"https://us-central1-aiplatform.googleapis.com/v1/publishers/*/models?QUERY_PARAMETERS"
PowerShell
執行下列指令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "PROJECT_ID" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://us-central1-aiplatform.googleapis.com/v1/publishers/*/models?QUERY_PARAMETERS" | Select-Object -Expand Content
您會收到類似下方的 JSON 回覆。
{
"publisherModels": [
{
"name": "publishers/google/models/gemma3",
"versionId": "gemma-3-1b-it",
"openSourceCategory": "GOOGLE_OWNED_OSS_WITH_GOOGLE_CHECKPOINT",
"supportedActions": {
"openNotebook": {
"references": {
"us-central1": {
"uri": "https://colab.research.google.com/github/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/community/model_garden/model_garden_gradio_streaming_chat_completions.ipynb"
}
},
"resourceTitle": "Notebook",
"resourceUseCase": "Chat Completion Playground",
"resourceDescription": "Chat with deployed Gemma 2 endpoints via Gradio UI."
},
"deploy": {
"modelDisplayName": "gemma-3-1b-it",
"containerSpec": {
"imageUri": "us-docker.pkg.dev/vertex-ai/vertex-vision-model-garden-dockers/pytorch-vllm-serve:20250312_0916_RC01",
"args": [
"python",
"-m",
"vllm.entrypoints.api_server",
"--host=0.0.0.0",
"--port=8080",
"--model=gs://vertex-model-garden-restricted-us/gemma3/gemma-3-1b-it",
"--tensor-parallel-size=1",
"--swap-space=16",
"--gpu-memory-utilization=0.95",
"--disable-log-stats"
],
"env": [
{
"name": "MODEL_ID",
"value": "google/gemma-3-1b-it"
},
{
"name": "DEPLOY_SOURCE",
"value": "UI_NATIVE_MODEL"
}
],
"ports": [
{
"containerPort": 8080
}
],
"predictRoute": "/generate",
"healthRoute": "/ping"
},
"dedicatedResources": {
"machineSpec": {
"machineType": "g2-standard-12",
"acceleratorType": "NVIDIA_L4",
"acceleratorCount": 1
}
},
"publicArtifactUri": "gs://vertex-model-garden-restricted-us/gemma3/gemma3.tar.gz",
"deployTaskName": "vLLM 128K context",
"deployMetadata": {
"sampleRequest": "{\n \"instances\": [\n {\n \"@requestFormat\": \"chatCompletions\",\n \"messages\": [\n {\n \"role\": \"user\",\n \"content\": \"What is machine learning?\"\n }\n ],\n \"max_tokens\": 100\n }\n ]\n}\n"
}
},
...
2. 部署模型
部署 Model Garden 或 Hugging Face 中的模型。您也可以指定其他 JSON 欄位,自訂部署作業。
使用預設設定部署模型。
使用任何要求資料之前,請先修改下列項目的值:
- LOCATION:模型部署的區域。
- PROJECT_ID: Google Cloud 專案 ID。
- MODEL_ID:要部署的模型 ID,您可以列出所有可部署的模型來取得。ID 格式如下:publishers/PUBLISHER_NAME/models/MODEL_NAME@MODEL_VERSION。
HTTP 方法和網址:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION:deploy
JSON 要求內文:
{
"publisher_model_name": "MODEL_ID",
"model_config": {
"accept_eula": "true"
}
}
如要傳送要求,請選擇以下其中一個選項:
curl
將要求主體儲存在名為 request.json 的檔案中。
在終端機中執行下列指令,在目前目錄中建立或覆寫這個檔案:
cat > request.json << 'EOF'
{
"publisher_model_name": "MODEL_ID",
"model_config": {
"accept_eula": "true"
}
}
EOF接著執行下列指令,傳送 REST 要求:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION:deploy"
PowerShell
將要求主體儲存在名為 request.json 的檔案中。
在終端機中執行下列指令,在目前目錄中建立或覆寫這個檔案:
@'
{
"publisher_model_name": "MODEL_ID",
"model_config": {
"accept_eula": "true"
}
}
'@ | Out-File -FilePath request.json -Encoding utf8接著執行下列指令,傳送 REST 要求:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION:deploy" | Select-Object -Expand Content
您會收到類似下方的 JSON 回覆。
{
"name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.aiplatform.v1.DeployOperationMetadata",
"genericMetadata": {
"createTime": "2025-03-13T21:44:44.538780Z",
"updateTime": "2025-03-13T21:44:44.538780Z"
},
"publisherModel": "publishers/google/models/gemma3@gemma-3-1b-it",
"destination": "projects/PROJECT_ID/locations/LOCATION",
"projectNumber": "PROJECT_ID"
}
}
部署 Hugging Face 模型
使用任何要求資料之前,請先修改下列項目的值:
- LOCATION:模型部署的區域。
- PROJECT_ID: Google Cloud 專案 ID。
- MODEL_ID:要部署的 Hugging Face 模型 ID,您可以列出所有可部署的模型來取得。ID 格式如下:PUBLISHER_NAME/MODEL_NAME。
- ACCESS_TOKEN:如果模型設有存取限制,請提供存取權杖。
HTTP 方法和網址:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION:deploy
JSON 要求內文:
{
"hugging_face_model_id": "MODEL_ID",
"hugging_face_access_token": "ACCESS_TOKEN",
"model_config": {
"accept_eula": "true"
}
}
如要傳送要求,請選擇以下其中一個選項:
curl
將要求主體儲存在名為 request.json 的檔案中。
在終端機中執行下列指令,在目前目錄中建立或覆寫這個檔案:
cat > request.json << 'EOF'
{
"hugging_face_model_id": "MODEL_ID",
"hugging_face_access_token": "ACCESS_TOKEN",
"model_config": {
"accept_eula": "true"
}
}
EOF接著執行下列指令,傳送 REST 要求:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION:deploy"
PowerShell
將要求主體儲存在名為 request.json 的檔案中。
在終端機中執行下列指令,在目前目錄中建立或覆寫這個檔案:
@'
{
"hugging_face_model_id": "MODEL_ID",
"hugging_face_access_token": "ACCESS_TOKEN",
"model_config": {
"accept_eula": "true"
}
}
'@ | Out-File -FilePath request.json -Encoding utf8接著執行下列指令,傳送 REST 要求:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION:deploy" | Select-Object -Expand Content
您會收到類似下方的 JSON 回覆。
{
"name": "projects/PROJECT_ID/locations/us-central1LOCATION/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.aiplatform.v1.DeployOperationMetadata",
"genericMetadata": {
"createTime": "2025-03-13T21:44:44.538780Z",
"updateTime": "2025-03-13T21:44:44.538780Z"
},
"publisherModel": "publishers/PUBLISHER_NAME/model/MODEL_NAME",
"destination": "projects/PROJECT_ID/locations/LOCATION",
"projectNumber": "PROJECT_ID"
}
}
部署自訂模型
使用任何要求資料之前,請先修改下列項目的值:
- LOCATION:模型部署的區域。
- PROJECT_ID: Google Cloud 專案 ID。
- MODEL_ID:要部署的模型 ID,您可以列出所有可部署的模型來取得。ID 格式如下:publishers/PUBLISHER_NAME/models/MODEL_NAME@MODEL_VERSION,例如
google/gemma@gemma-2b或stabilityai/stable-diffusion-xl-base-1.0。 - MACHINE_TYPE:定義要為模型部署的一組資源,例如
g2-standard-4。 - ACCELERATOR_TYPE:指定要新增至部署作業的加速器,以便在處理密集工作負載時提升效能,例如
NVIDIA_L4 - ACCELERATOR_COUNT:要在部署作業中使用的加速器數量。
reservation_affinity_type:如要使用現有的 Compute Engine 預留項目進行部署,請指定任何預留項目或特定預留項目。如果指定這個值,請勿指定spot。spot:是否要使用 Spot VM 進行部署。- IMAGE_URI:要使用的容器映像檔位置,例如
us-docker.pkg.dev/vertex-ai/vertex-vision-model-garden-dockers/pytorch-vllm-serve:20241016_0916_RC00_maas - CONTAINER_ARGS:部署期間要傳遞至容器的引數。
- CONTAINER_PORT:容器的通訊埠編號。
fast_tryout_enabled:測試模型時,您可以選擇使用更快速的部署作業。這個選項僅適用於特定機器類型的高用量模型。啟用後,您就無法指定模型或部署設定。
HTTP 方法和網址:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION:deploy
JSON 要求內文:
{
"publisher_model_name": "MODEL_ID",
"deploy_config": {
"dedicated_resources": {
"machine_spec": {
"machine_type": "MACHINE_TYPE",
"accelerator_type": "ACCELERATOR_TYPE",
"accelerator_count": ACCELERATOR_COUNT,
"reservation_affinity": {
"reservation_affinity_type": "ANY_RESERVATION"
}
},
"spot": "false"
}
},
"model_config": {
"accept_eula": "true",
"container_spec": {
"image_uri": "IMAGE_URI",
"args": [CONTAINER_ARGS ],
"ports": [
{
"container_port": CONTAINER_PORT
}
]
}
},
"deploy_config": {
"fast_tryout_enabled": false
},
}
如要傳送要求,請選擇以下其中一個選項:
curl
將要求主體儲存在名為 request.json 的檔案中。
在終端機中執行下列指令,在目前目錄中建立或覆寫這個檔案:
cat > request.json << 'EOF'
{
"publisher_model_name": "MODEL_ID",
"deploy_config": {
"dedicated_resources": {
"machine_spec": {
"machine_type": "MACHINE_TYPE",
"accelerator_type": "ACCELERATOR_TYPE",
"accelerator_count": ACCELERATOR_COUNT,
"reservation_affinity": {
"reservation_affinity_type": "ANY_RESERVATION"
}
},
"spot": "false"
}
},
"model_config": {
"accept_eula": "true",
"container_spec": {
"image_uri": "IMAGE_URI",
"args": [CONTAINER_ARGS ],
"ports": [
{
"container_port": CONTAINER_PORT
}
]
}
},
"deploy_config": {
"fast_tryout_enabled": false
},
}
EOF接著執行下列指令,傳送 REST 要求:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION:deploy"
PowerShell
將要求主體儲存在名為 request.json 的檔案中。
在終端機中執行下列指令,在目前目錄中建立或覆寫這個檔案:
@'
{
"publisher_model_name": "MODEL_ID",
"deploy_config": {
"dedicated_resources": {
"machine_spec": {
"machine_type": "MACHINE_TYPE",
"accelerator_type": "ACCELERATOR_TYPE",
"accelerator_count": ACCELERATOR_COUNT,
"reservation_affinity": {
"reservation_affinity_type": "ANY_RESERVATION"
}
},
"spot": "false"
}
},
"model_config": {
"accept_eula": "true",
"container_spec": {
"image_uri": "IMAGE_URI",
"args": [CONTAINER_ARGS ],
"ports": [
{
"container_port": CONTAINER_PORT
}
]
}
},
"deploy_config": {
"fast_tryout_enabled": false
},
}
'@ | Out-File -FilePath request.json -Encoding utf8接著執行下列指令,傳送 REST 要求:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION:deploy" | Select-Object -Expand Content
您會收到類似下方的 JSON 回覆。
{
"name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.aiplatform.v1.DeployOperationMetadata",
"genericMetadata": {
"createTime": "2025-03-13T21:44:44.538780Z",
"updateTime": "2025-03-13T21:44:44.538780Z"
},
"publisherModel": "publishers/google/models/gemma3@gemma-3-1b-it",
"destination": "projects/PROJECT_ID/locations/LOCATION",
"projectNumber": "PROJECT_ID"
}
}
gcloud
開始之前,請先指定配額專案,再執行下列指令。您執行的指令會計入該專案的配額。詳情請參閱「設定配額專案」。
執行
gcloud ai model-garden models list指令,列出可部署的模型。這個指令會列出所有模型 ID,以及可自行部署的模型。gcloud ai model-garden models list在輸出內容中,找出要部署的模型 ID。以下範例顯示縮寫輸出內容。
MODEL_ID CAN_DEPLOY CAN_PREDICT google/gemma2@gemma-2-27b Yes No google/gemma2@gemma-2-27b-it Yes No google/gemma2@gemma-2-2b Yes No google/gemma2@gemma-2-2b-it Yes No google/gemma2@gemma-2-9b Yes No google/gemma2@gemma-2-9b-it Yes No google/gemma3@gemma-3-12b-it Yes No google/gemma3@gemma-3-12b-pt Yes No google/gemma3@gemma-3-1b-it Yes No google/gemma3@gemma-3-1b-pt Yes No google/gemma3@gemma-3-27b-it Yes No google/gemma3@gemma-3-27b-pt Yes No google/gemma3@gemma-3-4b-it Yes No google/gemma3@gemma-3-4b-pt Yes No google/gemma3n@gemma-3n-e2b Yes No google/gemma3n@gemma-3n-e2b-it Yes No google/gemma3n@gemma-3n-e4b Yes No google/gemma3n@gemma-3n-e4b-it Yes No google/gemma@gemma-1.1-2b-it Yes No google/gemma@gemma-1.1-2b-it-gg-hf Yes No google/gemma@gemma-1.1-7b-it Yes No google/gemma@gemma-1.1-7b-it-gg-hf Yes No google/gemma@gemma-2b Yes No google/gemma@gemma-2b-gg-hf Yes No google/gemma@gemma-2b-it Yes No google/gemma@gemma-2b-it-gg-hf Yes No google/gemma@gemma-7b Yes No google/gemma@gemma-7b-gg-hf Yes No google/gemma@gemma-7b-it Yes No google/gemma@gemma-7b-it-gg-hf Yes No輸出內容不含任何調整後的模型或 Hugging Face 模型。如要查看支援哪些 Hugging Face 模型,請新增
--can-deploy-hugging-face-models旗標。如要查看模型的 Deployment 規格,請執行
gcloud ai model-garden models list-deployment-config指令。您可以查看 Model Garden 針對特定模型支援的機器類型、加速器類型和容器映像檔 URI。gcloud ai model-garden models list-deployment-config \ --model=MODEL_ID將 MODEL_ID 替換為先前 list 指令中的模型 ID,例如
google/gemma@gemma-2b或stabilityai/stable-diffusion-xl-base-1.0。執行
gcloud ai model-garden models deploy指令,將模型部署至端點。Model Garden 會為端點產生顯示名稱,並使用預設部署設定,除非您指定其他引數和值。如要以非同步方式執行指令,請加入
--asynchronous旗標。gcloud ai model-garden models deploy \ --model=MODEL_ID \ [--machine-type=MACHINE_TYPE] \ [--accelerator-type=ACCELERATOR_TYPE] \ [--endpoint-display-name=ENDPOINT_NAME] \ [--hugging-face-access-token=HF_ACCESS_TOKEN] \ [--reservation-affinity reservation-affinity-type=any-reservation] \ [--reservation-affinity reservation-affinity-type=specific-reservation, key="compute.googleapis.com/reservation-name", values=RESERVATION_RESOURCE_NAME] \ [--asynchronous]替換下列預留位置:
- MODEL_ID:先前 list 指令傳回的模型 ID。如果是 Hugging Face 模型,請使用 Hugging Face 模型網址格式,例如
stabilityai/stable-diffusion-xl-base-1.0。 - MACHINE_TYPE:定義要為模型部署的資源集,例如
g2-standard-4。 - ACCELERATOR_TYPE:指定要新增至部署作業的加速器,以便在處理密集工作負載時提升效能,例如
NVIDIA_L4。 - ENDPOINT_NAME:已部署 Gemini Enterprise Agent Platform 端點的名稱。
- HF_ACCESS_TOKEN:如果是 Hugging Face 模型,且模型設有存取限制,請提供存取權杖。
- RESERVATION_RESOURCE_NAME:如要使用特定
Compute Engine 預留項目,請指定預留項目名稱。如果指定特定預留項目,就無法指定
any-reservation。
輸出內容包括 Model Garden 使用的部署設定、端點 ID 和部署作業 ID,可用於檢查部署狀態。
Using the default deployment configuration: Machine type: g2-standard-12 Accelerator type: NVIDIA_L4 Accelerator count: 1 The project has enough quota. The current usage of quota for accelerator type NVIDIA_L4 in region us-central1 is 0 out of 28. Deploying the model to the endpoint. To check the deployment status, you can try one of the following methods: 1) Look for endpoint `ENDPOINT_DISPLAY_NAME` at the [Agent Platform] -> [Online prediction] tab in Cloud Console 2) Use `gcloud ai operations describe OPERATION_ID --region=LOCATION` to find the status of the deployment long-running operation- MODEL_ID:先前 list 指令傳回的模型 ID。如果是 Hugging Face 模型,請使用 Hugging Face 模型網址格式,例如
如要查看 Deployment 的詳細資料,請執行
gcloud ai endpoints list --list-model-garden-endpoints-only指令:gcloud ai endpoints list --list-model-garden-endpoints-only \ --region=LOCATION_ID將 LOCATION_ID 替換為模型部署區域。
輸出內容包含從 Model Garden 建立的所有端點,以及端點 ID、端點名稱,以及端點是否與已部署的模型相關聯等資訊。如要找出 Deployment,請尋找上一個指令傳回的端點名稱。
Terraform
如要瞭解如何套用或移除 Terraform 設定,請參閱「基本 Terraform 指令」。詳情請參閱 Terraform 供應商參考文件。
部署模型
下列範例會使用預設設定,將 gemma-3-1b-it 模型部署至 us-central1 的新 Agent Platform 端點。
terraform {
required_providers {
google = {
source = "hashicorp/google"
version = "6.45.0"
}
}
}
provider "google" {
region = "us-central1"
}
resource "google_vertex_ai_endpoint_with_model_garden_deployment" "gemma_deployment" {
publisher_model_name = "publishers/google/models/gemma3@gemma-3-1b-it"
location = "us-central1"
model_config {
accept_eula = True
}
}
如要部署自訂模型,請參閱「透過 Model Garden 部署 Agent Platform 端點」一文。
套用設定
terraform init
terraform plan
terraform apply
套用設定後,Terraform 會佈建新的 Agent Platform 端點,並部署指定的開放原始碼模型。
清除
如要刪除端點和模型部署作業,請執行下列指令:
terraform destroy
部署合作夥伴模型並提出預測要求
前往 Google Cloud 控制台的「Model Garden」頁面,然後使用「Model collections」(模型集合) 篩選器,查看「Self-deploy partner models」(自行部署的合作夥伴模型)。從自行部署的合作夥伴模型清單中選擇,然後按一下「Enable」(啟用) 購買模型。
您必須在合作夥伴要求的機器類型上部署,如 Model Garden 模型資訊卡的「建議的硬體設定」一節所述。部署後,提供模型資源會位於 Google 管理的安全專案中。
控制台
前往 Google Cloud 控制台的「Model Garden」頁面。
如要尋找特定模型,請在 Model Garden 搜尋框中輸入模型名稱。
如要查看所有可自行部署的模型,請在篩選器窗格的「Model collections」(模型集合) 部分,選取「Self-deploy partner models」(自行部署的合作夥伴模型)。產生的清單會包含所有可自行部署的合作夥伴模型。
按一下要部署的模型名稱,開啟模型資訊卡。
按一下「Deploy options」(部署選項)。
在「Deploy on Agent Platform」(在 Agent Platform 部署) 窗格中,設定部署作業,例如位置和機型。
點選「Deploy」(部署)。
部署完成後,您可以使用 SDK 或 API 要求預測。如需其他操作說明,請參閱模型資訊卡上的「說明文件」部分。
Python
如要瞭解如何安裝或更新 Vertex AI SDK for Python,請參閱「安裝 Vertex AI SDK for Python」。詳情請參閱 Python API 參考文件。
一鍵部署模型
您可以一鍵部署合作夥伴模型。
使用上一步取得的模型 ID,查看模型的 Deployment 規格。您可以查看 Model Garden 為特定模型驗證的機器類型、加速器類型和容器映像檔 URI。
import vertexai from vertexai import model_garden vertexai.init(project=PROJECT_ID, location="us-central1") model = model_garden.PartnerModel(model) deploy_options = model.list_deploy_options() print(deploy_options)一鍵部署模型。
from vertexai import model_garden # Deploy model model = model_garden.PartnerModel(f"{PUBLISHER}/{MODEL}@{VERSION}") endpoint = model.deploy( machine_type=MACHINE_TYPE, accelerator_type=ACCELERATOR_TYPE, accelerator_count=ACCELERATOR_COUNT, min_replica_count=1, max_replica_count=1, )
多步驟部署
您也可以上傳合作夥伴模型、建立端點,以及手動部署模型。
在程式碼中,替換下列預留位置:
- LOCATION:您打算部署模型和端點的區域。
- PROJECT_ID:專案 ID。
- DISPLAY_NAME:相關聯資源的說明名稱。
- PUBLISHER_NAME:提供要上傳或部署模型的合作夥伴名稱。
- PUBLISHER_MODEL_NAME:要上傳的模型名稱。
- MACHINE_TYPE:定義要為模型部署的資源集,例如
g2-standard-4。您必須與合作夥伴提供的其中一項設定相符。 - ACCELERATOR_TYPE:指定要新增至部署作業的加速器,協助提升處理密集工作負載時的效能,例如
NVIDIA_L4。您必須與合作夥伴提供的其中一項設定相符。 - ACCELERATOR_COUNT:要使用的加速器數量。您必須與合作夥伴提供的其中一項設定相符。
- REQUEST_PAYLOAD:預測要求中要包含的欄位和值。查看合作夥伴的 Model Garden 模型資訊卡,瞭解可用的欄位。
from google.cloud import aiplatform
aiplatform.init(project=PROJECT_ID, location=LOCATION)
# Upload a model
model = aiplatform.Model.upload(
display_name="DISPLAY_NAME_MODEL",
model_garden_source_model_name = f"publishers/PUBLISHER_NAME/models/PUBLISHER_MODEL_NAME",
)
# Create endpoint
my_endpoint = aiplatform.Endpoint.create(display_name="DISPLAY_NAME_ENDPOINT")
# Deploy model
MACHINE_TYPE = "MACHINE_TYPE" # @param {type: "string"}
ACCELERATOR_TYPE = "ACCELERATOR_TYPE" # @param {type: "string"}
ACCELERATOR_COUNT = ACCELERATOR_COUNT # @param {type: "number"}
model.deploy(
endpoint=my_endpoint,
deployed_model_display_name="DISPLAY_NAME_DEPLOYED_MODEL",
traffic_split={"0": 100},
machine_type=MACHINE_TYPE,
accelerator_type=ACCELERATOR_TYPE,
accelerator_count=ACCELERATOR_COUNT,
min_replica_count=1,
max_replica_count=1,
)
# Unary call for predictions
PAYLOAD = {
REQUEST_PAYLOAD
}
request = json.dumps(PAYLOAD)
response = my_endpoint.raw_predict(
body = request,
headers = {'Content-Type':'application/json'}
)
print(response)
# Streaming call for predictions
PAYLOAD = {
REQUEST_PAYLOAD
}
request = json.dumps(PAYLOAD)
for stream_response in my_endpoint.stream_raw_predict(
body = request,
headers = {'Content-Type':'application/json'}
):
print(stream_response)
REST
列出所有可部署的模型,然後取得要部署的模型 ID。接著,您可以使用預設設定和端點部署模型。您也可以選擇自訂部署作業,例如設定特定機器類型或使用專屬端點。
在 curl 指令範例中,替換下列預留位置:
- LOCATION:您打算部署模型和端點的區域。
- PROJECT_ID:專案 ID。
- DISPLAY_NAME:相關聯資源的說明名稱。
- PUBLISHER_NAME:提供要上傳或部署模型的合作夥伴名稱。
- PUBLISHER_MODEL_NAME:要上傳的模型名稱。
- ENDPOINT_ID:端點 ID。
- MACHINE_TYPE:定義要為模型部署的資源集,例如
g2-standard-4。您必須與合作夥伴提供的其中一項設定相符。 - ACCELERATOR_TYPE:指定要新增至部署作業的加速器,協助提升處理密集工作負載時的效能,例如
NVIDIA_L4。您必須與合作夥伴提供的其中一項設定相符。 - ACCELERATOR_COUNT:要使用的加速器數量。您必須與合作夥伴提供的其中一項設定相符。
- REQUEST_PAYLOAD:預測要求中要包含的欄位和值。查看合作夥伴的 Model Garden 模型資訊卡,瞭解可用的欄位。
上傳模型,將其新增至 Model Registry。
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/models:upload \ -d '{ "model": { "displayName": "DISPLAY_NAME_MODEL", "baseModelSource": { "modelGardenSource": { "publicModelName": f"publishers/PUBLISHER_NAME/models/PUBLISHER_MODEL_NAME", } } } }'建立端點。
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/endpoints \ -d '{ "displayName": "DISPLAY_NAME_ENDPOINT" }'將上傳的模型部署至端點。
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/endpoints/ENDPOINT_ID:deployModel \ -d '{ "deployedModel": { "model": f"projects/PROJECT_ID/locations/LOCATION/models/MODEL_ID", "displayName": "DISPLAY_NAME_DEPLOYED_MODEL", "dedicatedResources": { "machineSpec": { "machineType": "MACHINE_TYPE", "acceleratorType": "ACCELERATOR_TYPE", "acceleratorCount":"ACCELERATOR_COUNT", }, "minReplicaCount": 1, "maxReplicaCount": 1 }, }, "trafficSplit": { "0": 100 } }'模型部署完成後,您就能發出單一或串流呼叫來取得預測結果。查看合作夥伴的 Model Garden 模型資訊卡,瞭解支援哪些 API 方法。
- 一元呼叫範例:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/endpoints/ENDPOINT_ID:rawPredict \ -d 'REQUEST_PAYLOAD'- 串流呼叫範例:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/endpoints/ENDPOINT_ID:streamRawPredict \ -d 'REQUEST_PAYLOAD'
將模型部署至私人端點
您可以將 Model Garden 中的模型部署至 Private Service Connect (PSC) 端點,建立安全且私密的模型連線。如果搭配 PSC 網路端點群組部署,這項設定也能與內部和外部區域性應用程式負載平衡器整合。請按照下列步驟為模型設定 PSC 端點,確保私人連線。
前往 Google Cloud 控制台的「Model Garden」頁面。
找出要部署的模型,然後點選該模型的資訊卡。
按一下「Deploy model」(部署模型)。在「Deploy model」(部署模型) 窗格中,預先定義的部署設定是以公開專用端點為基礎。
選取「編輯設定」,即可啟用更多部署選項,包括私人存取權。
調整部署設定。
- 選取要建立模型端點的位置。
- 接受或修改生成的模型和端點名稱。
- 系統已預先選取建議的設定,因此您可以選擇是否要為部署作業選取機器類型。
- 在「Reservation type」(預留項目類型) 欄位中,選取預留項目類型。預留項目必須符合您指定的機器規格。
- 自動使用建立的預留項目:Gemini Enterprise Agent Platform 會選取屬性相符的可用預留項目。如果所選預留項目沒有可用容量,Gemini Enterprise Agent Platform 會使用一般 Google Cloud 資源集區。
- 選取特定預留項目:Gemini Enterprise Agent Platform 會使用特定預留項目。如果所選預留項目沒有可用容量,部署作業就會失敗。
- 不預留 (預設):Gemini Enterprise Agent Platform 會使用一般Google Cloud 資源集區。
- 設定供應情形政策。
- Standard:適合大多數工作負載。
- Spot:適用於容錯工作負載。
- 彈性啟動:使用動態工作負載排程 (DWS) 功能,管理資源分配要求及排定優先順序
設定私人網路的端點存取權。
- 選取「私人 (Private Service Connect)」
- 選取「專案 ID」。如要授予其他專案的存取權,請在這裡輸入專案 ID。如果留空,則只能從目前專案中存取端點。
按一下 [部署]
如要查看部署項目,請前往「Model Garden」頁面,然後選取「查看我的端點與模型」,即可在「我的端點」部分看到該項目。請務必選取正確的區域,確保端點會顯示。選取端點,狀態會顯示為「Deploying」,完成後會變更為「Ready」。
取得端點 ID,然後開啟 Cloud Shell 並執行下列操作,取得私人服務連結 URI:
gcloud ai endpoints describe ENDPOINT_ID --region=REGION | grep -i serviceAttachment:範例如下:
user@cloudshell:$ gcloud ai endpoints describe 2124795225560842240 --region=europe-west4 | grep -i serviceAttachment: Using endpoint [https://europe-west4-aiplatform.googleapis.com/] serviceAttachment: projects/o9457b320a852208e-tp/regions/europe-west4/serviceAttachments/gkedpm-52065579567eaf39bfe24f25f7981d
取得服務連結後,您可以透過下列方式存取模型:
- 在與獲授權專案相同的虛擬私有雲中部署 PSC 端點。這種做法可讓您透過混合網路和在同一個虛擬私有雲內連線。請注意,無法透過虛擬私有雲對接存取 PSC 端點。
- 部署 Private Service Connect (PSC) 網路端點群組 (NEG):您可以在與許可專案相同的虛擬私有雲中執行這項操作。這樣一來,您就能透過內部或外部負載平衡器公開模型,享有以下優點:
- 透過虛擬私有雲對等互連存取:可透過對等互連的虛擬私有雲網路存取負載平衡器。
- 安全防護功能:支援 Cloud Armor 和 Model Armor,協助保護端點。
- 流量管理:可啟用進階流量轉送功能,例如主機和路徑重寫。
- 集中存取:單一應用程式負載平衡器可使用路徑規則,將流量轉送至模型。
查看或管理端點
如要查看及管理端點,請前往 Agent Platform 的「線上預測」頁面。
Agent Platform 會列出專案中特定區域的所有端點。按一下端點,即可查看詳細資料,例如部署至端點的模型。
取消部署模型並刪除資源
如要停止已部署的模型使用專案中的資源,請從端點取消部署模型。您必須先取消部署模型,才能刪除端點和模型。
可取消部署模型
從端點取消部署模型。
控制台
在 Google Cloud 控制台中,前往「Online prediction」(線上預測) 頁面的「Endpoints」(端點) 分頁。
在「Region」(區域) 下拉式選單中,選擇端點所在的區域。
按一下端點名稱,開啟詳細資料頁面。
在模型所在的資料列中,按一下 「Actions」(動作),然後選取「Undeploy model from endpoint」(從端點取消部署模型)。
在「Undeploy model from endpoint」(取消部署端點的模型) 對話方塊中,按一下「Undeploy」(取消部署)。
Python
如要瞭解如何安裝或更新 Vertex AI SDK for Python,請參閱「安裝 Vertex AI SDK for Python」。詳情請參閱 Python API 參考文件。
在程式碼中,替換下列項目:
- PROJECT_ID:專案 ID
- LOCATION 替換為您的區域,例如「us-central1」
- 將 ENDPOINT_ID 替換為端點 ID
from google.cloud import aiplatform
aiplatform.init(project=PROJECT_ID, location=LOCATION)
# To find out which endpoints are available, un-comment the line below:
# endpoints = aiplatform.Endpoint.list()
endpoint = aiplatform.Endpoint(ENDPOINT_ID)
endpoint.undeploy_all()
gcloud
在這些指令中,請替換下列項目:
- 將 PROJECT_ID 替換成專案名稱
- 將 LOCATION_ID 替換為模型和端點的部署區域
- 將 ENDPOINT_ID 替換成端點 ID
- MODEL_ID:清單模型指令中的模型 ID
- 將 DEPLOYED_MODEL_ID 替換為已部署的模型 ID
執行
gcloud ai endpoints list指令,找出與部署作業相關聯的端點 ID。gcloud ai endpoints list \ --project=PROJECT_ID \ --region=LOCATION_ID執行
gcloud ai models list指令,找出模型 ID。gcloud ai models list \ --project=PROJECT_ID \ --region=LOCATION_ID使用上一個指令的模型 ID,執行
gcloud ai models describe指令,取得已部署的模型 ID。gcloud ai models describe MODEL_ID \ --project=PROJECT_ID \ --region=LOCATION_ID縮寫輸出內容應如下列範例所示。在輸出內容中,ID 稱為
deployedModelId。Using endpoint [https://us-central1-aiplatform.googleapis.com/] artifactUri: [URI removed] baseModelSource: modelGardenSource: publicModelName: publishers/google/models/gemma2 ... deployedModels: - deployedModelId: '1234567891234567891' endpoint: projects/12345678912/locations/us-central1/endpoints/12345678912345 displayName: gemma2-2b-it-12345678912345 etag: [ETag removed] modelSourceInfo: sourceType: MODEL_GARDEN name: projects/123456789123/locations/us-central1/models/gemma2-2b-it-12345678912345 ...執行
gcloud ai endpoints undeploy-model指令,使用先前指令中的端點 ID 和已部署模型 ID,從端點取消部署模型。gcloud ai endpoints undeploy-model ENDPOINT_ID \ --project=PROJECT_ID \ --region=LOCATION_ID \ --deployed-model-id=DEPLOYED_MODEL_ID這個指令不會產生任何輸出內容。
可刪除端點
刪除與模型部署作業相關聯的 Gemini Enterprise Agent Platform 端點。
控制台
在 Google Cloud 控制台中,前往「Online prediction」(線上預測) 頁面的「Endpoints」(端點) 分頁。
在「Region」(區域) 下拉式選單中,選擇端點所在的區域。
在端點資料列的結尾,按一下 「Actions」(動作),然後選取「Delete endpoint」(刪除端點)。
在確認提示中,按一下「Confirm」(確認)。
Python
如要瞭解如何安裝或更新 Vertex AI SDK for Python,請參閱「安裝 Vertex AI SDK for Python」。詳情請參閱 Python API 參考文件。
在程式碼中,替換下列項目:
- PROJECT_ID:專案 ID
- LOCATION 替換為您的區域,例如「us-central1」
- 將 ENDPOINT_ID 替換為端點 ID
from google.cloud import aiplatform
aiplatform.init(project=PROJECT_ID, location=LOCATION)
# To find out which endpoints are available, un-comment the line below:
# endpoints = aiplatform.Endpoint.list()
endpoint = aiplatform.Endpoint(ENDPOINT_ID)
endpoint.delete()
gcloud
在這些指令中,請替換下列項目:- 將 PROJECT_ID 替換成專案名稱
- 將 LOCATION_ID 替換為模型和端點的部署區域
- 將 ENDPOINT_ID 替換成端點 ID
執行
gcloud ai endpoints list指令,取得要刪除的端點 ID。這個指令會列出專案中所有端點的端點 ID。gcloud ai endpoints list \ --project=PROJECT_ID \ --region=LOCATION_ID執行
gcloud ai endpoints delete指令,刪除端點。gcloud ai endpoints delete ENDPOINT_ID \ --project=PROJECT_ID \ --region=LOCATION_ID出現提示時,請輸入
y確認。這個指令不會產生任何輸出內容。
可刪除模型
刪除與模型部署作業相關聯的模型資源。
控制台
前往 Google Cloud 控制台的「Agent Platform」部分,然後前往「Model Registry」頁面。
在「Region」(區域) 下拉式選單中,選擇您部署模型的區域。
在模型所在的資料列中,按一下 「Actions」(動作),然後選取「Delete model」(刪除模型)。
刪除模型後,所有相關聯的模型版本和評估結果都會從 Google Cloud 專案中刪除。
在確認提示中,按一下「刪除」。
Python
如要瞭解如何安裝或更新 Vertex AI SDK for Python,請參閱「安裝 Vertex AI SDK for Python」。詳情請參閱 Python API 參考文件。
在程式碼中,替換下列項目:
- PROJECT_ID:專案 ID
- LOCATION 替換為您的區域,例如「us-central1」
- MODEL_ID 替換成您的模型 ID
from google.cloud import aiplatform
aiplatform.init(project=PROJECT_ID, location=LOCATION)
# To find out which models are available in Model Registry, un-comment the line below:
# models = aiplatform.Model.list()
model = aiplatform.Model(MODEL_ID)
model.delete()
gcloud
在這些指令中,請替換下列項目:- 將 PROJECT_ID 替換成專案名稱
- 將 LOCATION_ID 替換為模型和端點的部署區域
- MODEL_ID:清單模型指令中的模型 ID
執行
gcloud ai models list指令,找出要刪除的模型 ID。gcloud ai models list \ --project=PROJECT_ID \ --region=LOCATION_ID執行
gcloud ai models delete指令,並提供模型 ID 和模型位置,即可刪除模型。gcloud ai models delete MODEL_ID \ --project=PROJECT_ID \ --region=LOCATION_ID
查看程式碼範例
特定工作解決方案模型的大多數模型資訊卡,都包含可複製及測試的程式碼範例。
前往 Google Cloud 控制台的「Model Garden」頁面。
找出要查看程式碼範例的支援模型,然後按一下「Documentation」(說明文件) 分頁標籤。
頁面會捲動至說明文件部分,其中嵌入了程式碼範例。
建立視覺應用程式
適用電腦視覺模型的模型資訊卡支援建立影像應用程式。
前往 Google Cloud 控制台的「Model Garden」頁面。
在「Task specific solutions」(特定工作解決方案) 專區中,找出要用來建立影像應用程式的影像模型,然後按一下「View details」(查看詳細資料)。
點選「建構應用程式」。
系統會將您導向 Vertex AI Vision。
在「Application name」(應用程式名稱) 中,輸入應用程式名稱,然後按一下「Continue」(繼續)。
選取計費方案,然後按一下「Create」(建立)。
系統會將您導向 Vertex AI Vision Studio,您可以在這裡繼續建立電腦視覺應用程式。