在此教程中,您将使用 Model Garden 将 Gemma 3 1B 开放模型部署到受 GPU 支持的 Vertex AI 端点。您必须先将模型部署到端点,然后才能使用该模型执行在线预测。部署模型会将物理资源与模型相关联,以便以低延迟方式执行在线预测。
部署 Gemma 3 1B 模型后,您可以使用 PredictionServiceClient 获取在线预测结果,以通过经过训练的模型进行推理。在线预测是指向部署到端点的模型发出的同步请求。
目标
本教程介绍了如何执行以下任务:
- 使用 Model Garden 将 Gemma 3 1B 开放模型部署到受 GPU 支持的端点
- 使用
PredictionServiceClient获取在线预测结果
费用
在本文档中,您将使用 Google Cloud的以下收费组件:
如需根据您的预计使用情况来估算费用,请使用价格计算器。
完成本文档中描述的任务后,您可以通过删除所创建的资源来避免继续计费。如需了解详情,请参阅清理。
准备工作
本教程要求您执行以下操作:
- 设置 Google Cloud 项目并启用 Vertex AI API
- 在您的本地机器上:
- 安装、初始化 Google Cloud CLI 并向其进行身份验证
- 安装相应编程语言的 SDK
设置 Google Cloud 项目
设置 Google Cloud 项目并启用 Vertex AI API。
- 登录您的 Google Cloud 账号。如果您是 Google Cloud新手,请 创建一个账号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Vertex AI API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Vertex AI API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.
设置 Google Cloud CLI
在您的本地机器上,设置 Google Cloud CLI。
-
安装并初始化 Google Cloud CLI。
-
如果您之前安装了 gcloud CLI,请确保通过运行此命令更新您的
gcloud组件。gcloud components update
-
如要向 gcloud CLI 进行身份验证,请通过运行此命令生成本地应用默认凭证 (ADC) 文件。该命令启动的 Web 流程用于提供您的用户凭证。
gcloud auth application-default login
如需了解详情,请参阅 gcloud CLI 身份验证配置和 ADC 配置。
设置相应编程语言的 SDK
如需设置本教程中使用的环境,请安装相应编程语言的 Vertex AI SDK 及协议缓冲区库。代码示例会使用协议缓冲区库中的函数将输入字典转换为 API 所需的 JSON 格式。
在您的本地机器上,点击以下标签页之一,安装相应编程语言的 SDK。
Python
在您的本地机器上,点击以下标签页之一,安装相应编程语言的 SDK。
运行以下命令,安装并更新 Vertex AI SDK for Python。
pip3 install --upgrade "google-cloud-aiplatform>=1.64"
运行以下命令,安装 Python 版协议缓冲区库。
pip3 install --upgrade "protobuf>=5.28"
Node.js
运行以下命令,安装或更新 Node.js 版 aiplatform SDK。
npm install @google-cloud/aiplatform
Java
如需将 google-cloud-aiplatform 添加为依赖项,请为您的环境添加相应的代码。
带有 BOM 的 Maven
将以下 HTML 添加到 pom.xml 中:
<dependencyManagement> <dependencies> <dependency> <artifactId>libraries-bom</artifactId> <groupId>com.google.cloud</groupId> <scope>import</scope> <type>pom</type> <version>26.34.0</version> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>com.google.cloud</groupId> <artifactId>google-cloud-aiplatform</artifactId> </dependency> <dependency> <groupId>com.google.protobuf</groupId> <artifactId>protobuf-java-util</artifactId> </dependency> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> </dependency> </dependencies>
不带 BOM 的 Maven
将以下内容添加到 pom.xml 中:
<dependency> <groupId>com.google.cloud</groupId> <artifactId>google-cloud-aiplatform</artifactId> <version>1.1.0</version> </dependency> <dependency> <groupId>com.google.protobuf</groupId> <artifactId>protobuf-java-util</artifactId> <version>5.28</version> </dependency> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.11.0</version> </dependency>
不带 BOM 的 Gradle
将以下内容添加到 build.gradle 中:
implementation 'com.google.cloud:google-cloud-aiplatform:1.1.0'
Go
运行以下命令,安装下面的 Go 软件包。
go get cloud.google.com/go/aiplatform go get google.golang.org/protobuf go get github.com/googleapis/gax-go/v2
使用 Model Garden 部署 Gemma
您可以使用 Google Cloud 控制台中的模型卡片或以编程方式部署 Gemma 3 1B。
如需详细了解如何设置 Google Gen AI SDK 或 Google Cloud CLI,请参阅 Google Gen AI SDK 概览或安装 Google Cloud CLI。
Python
如需了解如何安装或更新 Vertex AI SDK for Python,请参阅安装 Vertex AI SDK for Python。 如需了解详情,请参阅 Python API 参考文档。
列出可部署的模型,并记录要部署的模型的 ID。您可以选择列出 Model Garden 中支持的 Hugging Face 模型,甚至可以按模型名称过滤这些模型。输出不包含任何经过调优的模型。
使用上一步中的模型 ID 查看模型的部署规范。您可以查看 Model Garden 针对特定模型验证过的机器类型、加速器类型和容器映像 URI。
将模型部署到端点。除非您指定其他参数和值,否则 Model Garden 会使用默认部署配置。
gcloud
在开始之前,请指定一个配额项目来运行以下命令。您运行的命令会计入相应项目的配额。如需了解详情,请参阅设置配额项目。
运行
gcloud ai model-garden models list命令,列出可部署的模型。此命令会列出所有模型 ID 以及您可以自行部署的模型的 ID。gcloud ai model-garden models list --model-filter=gemma在输出中,找到要部署的模型的 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标志。如需查看模型的部署规范,请运行
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:已部署的 Vertex AI 端点的名称。
- 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 [Vertex AI] -> [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 模型网址格式,例如
如需查看有关部署的详细信息,请运行
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、端点名称、端点是否与所部署模型相关联等信息。如需查找您的部署,请查找上一个命令返回的端点名称。
REST
列出所有可部署的模型,然后获取要部署的模型的 ID。然后,您可以使用默认配置和端点部署模型。或者,您也可以选择自定义部署,例如设置特定的机器类型或使用专用端点。
列出可部署的模型
在使用任何请求数据之前,请先进行以下替换:
- 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"
}
},
...
部署模型
部署 Model Garden 中的模型或 Hugging Face 中的模型。您还可以通过指定其他 JSON 字段来自定义部署。
使用默认配置部署模型。
在使用任何请求数据之前,请先进行以下替换:
- LOCATION:将在其中部署模型的区域。
- PROJECT_ID:您的 Google Cloud 项目 ID。
- MODEL_ID:要部署的模型的 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。该 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。该 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 虚拟机。- 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"
}
}
控制台
在 Google Cloud 控制台中,前往 Model Garden 页面。
找到要部署的受支持模型,然后点击其模型卡片。
点击部署以打开部署模型窗格。
在部署模型窗格中,指定部署的详细信息。
- 使用或修改生成的模型和端点名称。
- 选择要在其中创建模型端点的位置。
- 为部署的每个节点选择要使用的机器类型。
如需使用 Compute Engine 预留,请在部署设置部分下选择高级。
在预留类型字段中,选择预留类型。预留必须符合您指定的机器规格。
- 自动使用已创建的预留:Vertex AI 会自动选择具有匹配属性的允许预留。如果自动选择的预留中没有容量,Vertex AI 会使用常规 Google Cloud资源池。
- 选择特定预留:Vertex AI 会使用特定预留。如果所选预留没有空位,系统会抛出错误。
- 不使用(默认):Vertex AI 会使用常规Google Cloud 资源池。此值的效果与不指定预留相同。
点击部署。
Terraform
如需了解如何应用或移除 Terraform 配置,请参阅基本 Terraform 命令。 如需了解详情,请参阅 Terraform 提供程序参考文档。
部署模型
以下示例使用默认配置将 gemma-3-1b-it 模型部署到 us-central1 中的新 Vertex AI 端点。
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
}
}
如需部署包含自定义设置的模型,请参阅 Vertex AI 端点与 Model Garden 部署了解详情。
应用配置
terraform init
terraform plan
terraform apply
应用配置后,Terraform 会预配新的 Vertex AI 端点并部署指定的开放模型。
清理
如需删除端点和模型部署,请运行以下命令:
terraform destroy
使用 PredictionServiceClient 推断 Gemma 3 1B
部署 Gemma 3 1B 后,您可以使用 PredictionServiceClient 获取以下提示的在线预测结果:“为什么天空是蓝色的?”。
代码参数
PredictionServiceClient 代码示例需要您更新以下内容。
PROJECT_ID:如需查找项目 ID,请按以下步骤操作。前往 Google Cloud 控制台中的欢迎页面。
从页面顶部的项目选择器中,选择您的项目。
项目名称、项目编号和项目 ID 会显示在欢迎标头后面。
ENDPOINT_REGION:这是您在其中部署端点的区域。ENDPOINT_ID:如要查找端点 ID,您可以在控制台中查看,或者运行gcloud ai endpoints list命令。您需要记下部署模型窗格中的端点名称和区域。控制台
您可以通过依次点击在线预测 > 端点并选择相应区域,来查看端点详细信息。请注意
ID列中显示的数字。gcloud
您可以运行
gcloud ai endpoints list命令来查看端点详细信息。gcloud ai endpoints list \ --region=ENDPOINT_REGION \ --filter=display_name=ENDPOINT_NAME输出类似于以下内容。
Using endpoint [https://us-central1-aiplatform.googleapis.com/] ENDPOINT_ID: 1234567891234567891 DISPLAY_NAME: gemma2-2b-it-mg-one-click-deploy
示例代码
在相应编程语言的示例代码中,更新 PROJECT_ID、ENDPOINT_REGION 和 ENDPOINT_ID。然后运行代码。
Python
如需了解如何安装或更新 Vertex AI SDK for Python,请参阅安装 Vertex AI SDK for Python。 如需了解详情,请参阅 Python API 参考文档。
Node.js
在尝试此示例之前,请按照《Vertex AI 快速入门:使用客户端库》中的 Node.js 设置说明执行操作。 如需了解详情,请参阅 Vertex AI Node.js API 参考文档。
如需向 Vertex AI 进行身份验证,请设置应用默认凭证。 如需了解详情,请参阅为本地开发环境设置身份验证。
Java
在尝试此示例之前,请按照《Vertex AI 快速入门:使用客户端库》中的 Java 设置说明执行操作。 如需了解详情,请参阅 Vertex AI Java API 参考文档。
如需向 Vertex AI 进行身份验证,请设置应用默认凭证。 如需了解详情,请参阅为本地开发环境设置身份验证。
Go
在尝试此示例之前,请按照《Vertex AI 快速入门:使用客户端库》中的 Go 设置说明执行操作。 如需了解详情,请参阅 Vertex AI Go API 参考文档。
如需向 Vertex AI 进行身份验证,请设置应用默认凭证。 如需了解详情,请参阅为本地开发环境设置身份验证。
清理
为避免因本教程中使用的资源导致您的 Google Cloud 账号产生费用,请删除包含这些资源的项目,或者保留项目但删除各个资源。
删除项目
- 在 Google Cloud 控制台中,前往管理资源页面。
- 在项目列表中,选择要删除的项目,然后点击删除。
- 在对话框中输入项目 ID,然后点击关闭以删除项目。
删除各个资源
如果您想保留项目,则删除本教程中使用的资源即可:
- 取消部署模型并删除端点
- 从 Model Registry 中删除模型
取消部署模型并删除端点
请使用以下方法之一取消部署模型并删除端点。
控制台
gcloud
如需使用 Google Cloud CLI 取消部署模型并删除端点,请按以下步骤操作。
在这些命令中,替换以下内容:
- 将 PROJECT_ID 替换为您的项目名称
- 将 LOCATION_ID 替换为您在其中部署了模型和端点的区域
- 将 ENDPOINT_ID 替换为端点 ID
- 将 DEPLOYED_MODEL_NAME 替换为模型的显示名称
- 将 DEPLOYED_MODEL_ID 替换为模型 ID
运行
gcloud ai endpoints list命令获取端点 ID。此命令会列出项目中所有端点的 ID。记下本教程中使用的端点的 ID。gcloud ai endpoints list \ --project=PROJECT_ID \ --region=LOCATION_ID输出类似于以下内容。在输出中,该 ID 称为
ENDPOINT_ID。Using endpoint [https://us-central1-aiplatform.googleapis.com/] ENDPOINT_ID: 1234567891234567891 DISPLAY_NAME: gemma2-2b-it-mg-one-click-deploy运行
gcloud ai models describe命令获取模型 ID。记下本教程中部署的模型的 ID。gcloud ai models describe DEPLOYED_MODEL_NAME \ --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 ...从端点取消部署模型。您需要用到通过运行上述命令获得的端点 ID 和模型 ID。
gcloud ai endpoints undeploy-model ENDPOINT_ID \ --project=PROJECT_ID \ --region=LOCATION_ID \ --deployed-model-id=DEPLOYED_MODEL_ID此命令没有任何输出。
运行
gcloud ai endpoints delete命令以删除端点。gcloud ai endpoints delete ENDPOINT_ID \ --project=PROJECT_ID \ --region=LOCATION_ID出现提示时,输入
y以确认。此命令没有任何输出。
删除模型
控制台
在 Google Cloud 控制台中,从 Vertex AI 部分进入 Model Registry 页面。
在区域下拉列表中,选择您在其中部署了模型的区域。
在
gemma2-2b-it-1234567891234行末尾,点击 操作。选择删除模型。
删除模型时,所有关联的模型版本和评估都会从 Google Cloud 项目中一并删除。
在确认提示中,点击删除。
gcloud
如需使用 Google Cloud CLI 删除模型,请向 gcloud ai models delete 命令提供模型的显示名称和区域。
gcloud ai models delete DEPLOYED_MODEL_NAME \
--project=PROJECT_ID \
--region=LOCATION_ID
将 DEPLOYED_MODEL_NAME 替换为模型的显示名称。将 PROJECT_ID 替换为您的项目名称。将 LOCATION_ID 替换为您在其中部署了模型的区域。
后续步骤
- 详细了解 Gemma 开放模型。
- 阅读 Gemma 使用条款。
- 详细了解开放模型。
- 了解如何部署调优后的模型。
- 了解如何使用 HuggingFace Textgen Inference (TGI) 将 Gemma 2 部署到 Google Kubernetes Engine。
- 详细了解您偏好的编程语言(Python、Node.js、Java 或 Go)版的
PredictionServiceClient。