在本教程中,您将使用 Model Garden 将 Gemma 2B 开放模型部署到由 GPU 支持的 Vertex AI 端点。您必须先将模型部署到端点,然后才能使用该模型执行在线预测。部署模型会将物理资源与模型相关联,以便以低延迟方式执行在线预测。
部署 Gemma 2B 模型后,您可以使用 PredictionServiceClient
获取在线预测,从而推理训练好的模型。在线预测是指向部署到端点的模型发出同步请求。
目标
本教程介绍了如何执行以下任务:
- 使用 Model Garden 将 Gemma 2B 开放模型部署到 GPU 支持的端点
- 使用
PredictionServiceClient
获取在线预测结果
费用
在本文档中,您将使用 Google Cloud 的以下收费组件:
您可使用价格计算器根据您的预计使用情况来估算费用。
完成本文档中描述的任务后,您可以通过删除所创建的资源来避免继续计费。如需了解详情,请参阅清理。
准备工作
本教程需要您具备以下条件:
- 设置 Google Cloud 项目并启用 Vertex AI API
- 在本地机器上:
- 安装、初始化和使用 Google Cloud CLI 进行身份验证
- 安装适用于您所用语言的 SDK
设置 Google Cloud 项目
设置您的 Google Cloud 项目并启用 Vertex AI API。
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Vertex AI API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Vertex AI API.
设置 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 和 Protocol Buffers 库。这些代码示例使用 Protocol Buffers 库中的函数将输入字典转换为 API 预期的 JSON 格式。
在本地机器上,点击以下任一标签页,以安装适用于您的编程语言的 SDK。
Python
在本地机器上,点击以下任一标签页,以安装适用于您的编程语言的 SDK。
运行以下命令,安装并更新 Python 版 Vertex AI SDK。
pip3 install --upgrade "google-cloud-aiplatform>=1.64"
运行以下命令,安装适用于 Python 的 Protocol Buffers 库。
pip3 install --upgrade "profobuf>=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
您将 Gemma 2B 模型部署到 g2-standard-12
Compute Engine 加速器优化机器类型。此机器挂接了一个 NVIDIA L4 GPU 加速器。
在本教程中,您将使用 Model Garden 中的模型卡片部署经过指令调优的 Gemma 2B 开放模型。具体模型版本为 gemma2-2b-it
- -it
表示按指令进行调整。
Gemma 2B 模型的参数大小较小,这意味着资源要求更低,部署灵活性更高。
在 Google Cloud 控制台中,转到 Model Garden 页面。
点击 Gemma 2 模型卡片。
点击部署以打开部署模型窗格。
在部署模型窗格中,指定这些详细信息。
对于部署环境,请点击 Vertex AI。
在部署模型部分中:
在资源 ID 部分,选择
gemma-2b-it
。对于模型名称和端点名称,接受默认值。例如:
- 模型名称:
gemma2-2b-it-1234567891234
- 端点名称:
gemma2-2b-it-mg-one-click-deploy
记下端点名称。您需要它才能找到代码示例中使用的端点 ID。
- 模型名称:
在部署设置部分中:
接受基本设置的默认选项。
对于区域,接受默认值或从列表中选择一个区域。记下该区域。您将需要它来使用代码示例。
对于机器规格,选择由 GPU 支持的实例:
1 NVIDIA_L4 g2-standard-12
。
点击部署。部署完成后,您会收到一封电子邮件,其中包含有关新端点的详细信息。您还可以依次点击在线预测 > 端点,然后选择您的区域,查看端点详细信息。
使用 PredictionServiceClient 推理 Gemma 2B
部署 Gemma 2B 后,您可以使用 PredictionServiceClient
针对问题“为什么天空是蓝色的?”获取在线预测结果。
代码参数
PredictionServiceClient
代码示例要求您更新以下内容。
PROJECT_ID
:如需查找项目 ID,请按以下步骤操作。前往 Google Cloud 控制台中的欢迎页面。
从页面顶部的项目选择器中,选择您的项目。
项目名称、项目编号和项目 ID 显示在欢迎标题后面。
ENDPOINT_REGION
:这是您部署端点的区域。ENDPOINT_ID
:如需查找端点 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 账号产生费用,请删除包含这些资源的项目,或者保留项目但删除各个资源。
删除项目
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
删除各个资源
如果您要保留项目,请删除本教程中使用的资源:
- 取消部署模型并删除端点
- 从 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。
- 详细了解
PredictionServiceClient
的首选语言版本:Python、Node.js、Java 或 Go。