借助 Vertex AI 上的生成式 AI(也称为生成式 AI 或生成式 AI),您可以访问 适用于多种模态(文本、代码、图片、 语音)。您可以测试和调优这些大型语言模型 (LLM),然后将其部署到依托 AI 技术的应用中使用。如需了解详情,请参阅 Vertex AI 上的生成式 AI 概览。
Vertex AI 具有可通过 API 访问的各种生成式 AI 基础模型,包括以下示例中使用的模型:
- Gemini Pro 旨在处理自然语言任务、多轮文本和代码聊天以及代码生成。
- Gemini Pro Vision 支持多模态提示。您可以在提示请求中包含文本、图片和视频,并获取文本或代码回答。
- 适用于文本的 Pathways Language Model 2 (PaLM 2) 针对分类、汇总和实体提取等语言任务进行了微调。
每个模型都通过特定于您的 Google Cloud 项目的发布端点公开,因此您无需部署基础模型,除非您需要针对特定应用场景进行调优。您可以向发布商端点发送提示。提示是发送给 LLM 的自然语言请求,用于 。
本教程演示了通过使用 Workflows 连接器或 HTTP POST
请求向发布商端点发送文本提示,从 Vertex AI 模型生成回答的工作流。如需了解详情,请参阅 Vertex AI API 连接器概览和发出 HTTP 请求。
请注意,您可以单独部署和运行每个工作流。
目标
在本教程中,您将执行以下操作:
- 启用 Vertex AI 和 Workflows API,并向您的服务账号授予 Vertex AI User (
roles/aiplatform.user
) 角色。此角色可访问大多数 Vertex AI 功能。如需详细了解如何设置 Vertex AI,请参阅在 Google Cloud 上进行设置。 - 部署并运行提示 Vertex AI 模型的工作流 (Gemini Pro Vision) 来描述公开的图片 Cloud Storage如需了解详情,请参阅 公开数据。
- 部署并运行一个工作流,以并行遍历一系列国家/地区 并提示 Vertex AI 模型 (Gemini Pro) 来生成并返回国家/地区的历史。通过使用并行分支,您可以同时启动对 LLM 的调用,并等待所有调用完成,然后再合并结果,从而缩短总执行时间。如需了解详情,请参阅并行执行工作流步骤。
- 部署与上一个工作流类似的工作流;不过,请提示 Vertex AI 模型(适用于文本的 PaLM 2)生成并返回各个国家/地区的历史记录。如需详细了解如何选择模型,请参阅模型信息。
- 部署一个可以为大型文档生成摘要的工作流。由于上下文窗口(用于设置模型在训练期间的回溯时间)存在限制,因此该工作流会将文档拆分成较小的部分,然后提示 Vertex AI 模型 (Gemini Pro) 并行总结每个部分。如需了解详情,请参阅总结提示和预测范围、上下文窗口和预测窗口。
费用
在本文档中,您将使用 Google Cloud 的以下收费组件:
您可使用价格计算器根据您的预计使用情况来估算费用。
完成本文档中描述的任务后,您可以通过删除所创建的资源来避免继续计费。如需了解详情,请参阅清理。
准备工作
在试用本教程中的示例之前,请确保您已完成以下操作。
控制台
- 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 and Workflows APIs.
-
Create a service account:
-
In the Google Cloud console, go to the Create service account page.
Go to Create service account - Select your project.
-
In the Service account name field, enter a name. The Google Cloud console fills in the Service account ID field based on this name.
In the Service account description field, enter a description. For example,
Service account for quickstart
. - Click Create and continue.
-
Grant the Vertex AI > Vertex AI User role to the service account.
To grant the role, find the Select a role list, then select Vertex AI > Vertex AI User.
- Click Continue.
-
Click Done to finish creating the service account.
-
-
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 and Workflows APIs.
-
Create a service account:
-
In the Google Cloud console, go to the Create service account page.
Go to Create service account - Select your project.
-
In the Service account name field, enter a name. The Google Cloud console fills in the Service account ID field based on this name.
In the Service account description field, enter a description. For example,
Service account for quickstart
. - Click Create and continue.
-
Grant the Vertex AI > Vertex AI User role to the service account.
To grant the role, find the Select a role list, then select Vertex AI > Vertex AI User.
- Click Continue.
-
Click Done to finish creating the service account.
-
gcloud
- 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.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Vertex AI and Workflows APIs:
gcloud services enable aiplatform.googleapis.com
workflows.googleapis.com -
Set up authentication:
-
Create the service account:
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
Replace
SERVICE_ACCOUNT_NAME
with a name for the service account. -
Grant the
roles/aiplatform.user
IAM role to the service account:gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" --role=roles/aiplatform.user
Replace the following:
SERVICE_ACCOUNT_NAME
: the name of the service accountPROJECT_ID
: the project ID where you created the service account
-
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Vertex AI and Workflows APIs:
gcloud services enable aiplatform.googleapis.com
workflows.googleapis.com -
Set up authentication:
-
Create the service account:
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
Replace
SERVICE_ACCOUNT_NAME
with a name for the service account. -
Grant the
roles/aiplatform.user
IAM role to the service account:gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" --role=roles/aiplatform.user
Replace the following:
SERVICE_ACCOUNT_NAME
: the name of the service accountPROJECT_ID
: the project ID where you created the service account
-
部署描述图像的工作流 (Gemini Pro Vision)
部署使用连接器方法的工作流
(generateContent
) 向 Gemini Pro Vision 发出请求
发布方端点。该方法支持使用多模态输入生成内容。
该工作流会提供文本提示和 Cloud Storage 存储桶中公开图片的 URI。您可以查看图片,还可以在 Google Cloud 控制台中查看对象详情。
工作流会根据模型生成的回答返回图片的说明。
如需详细了解提示 LLM 时使用的 HTTP 请求正文参数和响应正文元素,请参阅 Gemini API 参考文档。
控制台
在 Google Cloud 控制台中,前往工作流页面。
点击
创建。输入新工作流的名称:
describe-image
。在区域列表中,选择 us-central1(爱荷华)。
对于服务账号,选择您之前使用的服务账号 创建。
点击下一步。
在工作流编辑器中,输入工作流的定义:
点击部署。
gcloud
为您的工作流创建源代码文件:
touch describe-image.yaml
在文本编辑器中,将以下工作流复制到源代码文件中:
输入以下命令以部署工作流:
gcloud workflows deploy describe-image \ --source=describe-image.yaml \ --location=us-central1 \ --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
执行工作流
执行某个工作流会运行与该工作流关联的当前工作流定义。
控制台
在 Google Cloud 控制台中,前往工作流页面。
在 Workflows 页面上,选择 describe-image 工作流以转到其详情页面。
在工作流详情页面上,点击 play_arrow 执行。
对于输入,请输入以下内容:
{"image_url":"gs://generativeai-downloads/images/scones.jpg"}
再次点击执行。
在输出窗格中查看工作流的结果。
输出应类似如下所示:
{ "image_description": "There are three pink peony flowers on the right side of the picture[]...]There is a white napkin on the table.", "image_url": "gs://generativeai-downloads/images/scones.jpg" }
gcloud
打开终端。
执行工作流:
gcloud workflows run describe-image \ --data='{"image_url":"gs://generativeai-downloads/images/scones.jpg"}'
执行结果应类似如下所示:
Waiting for execution [258b530e-a093-46d7-a4ff-cbf5392273c0] to complete...done. argument: '{"image_url":"gs://generativeai-downloads/images/scones.jpg"}' createTime: '2024-02-09T13:59:32.166409938Z' duration: 4.174708484s endTime: '2024-02-09T13:59:36.341118422Z' name: projects/1051295516635/locations/us-central1/workflows/describe-image/executions/258b530e-a093-46d7-a4ff-cbf5392273c0 result: "{\"image_description\":\"The picture shows a rustic table with a white surface,\ \ on which there are several scones with blueberries, as well as two cups of coffee\ [...] \ on the table. The background of the table is a dark blue color.\",\"image_url\"\ :\"gs://generativeai-downloads/images/scones.jpg\"}" startTime: '2024-02-09T13:59:32.166409938Z' state: SUCCEEDED
部署可生成国家/地区历史记录的工作流 (Gemini Pro)
部署一个工作流,以并行方式循环遍历国家/地区输入列表,并使用连接器方法 (generateContent
) 向 Gemini Pro 发布商端点发出请求。该方法支持使用多模态输入生成内容。
该工作流会返回模型生成的国家/地区历史记录, 以地图形式呈现它们。
如需详细了解在发送提示时使用的 HTTP 请求正文参数 LLM 和响应正文元素,请参阅 Gemini API 参考文档。
控制台
在 Google Cloud 控制台中,前往工作流页面。
点击
创建。输入新工作流的名称:
gemini-pro-country-histories
。在区域列表中,选择 us-central1(爱荷华)。
对于服务账号,选择您之前使用的服务账号 创建。
点击下一步。
在工作流编辑器中,输入工作流的定义:
点击部署。
gcloud
为您的工作流创建源代码文件:
touch gemini-pro-country-histories.yaml
在文本编辑器中,将以下工作流复制到源代码文件中:
输入以下命令以部署工作流:
gcloud workflows deploy gemini-pro-country-histories \ --source=gemini-pro-country-histories.yaml \ --location=us-central1 \ --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
执行工作流
执行某个工作流会运行与该工作流关联的当前工作流定义。
控制台
在 Google Cloud 控制台中,前往工作流页面。
在 Workflows 页面上,选择 gemini-pro-country-histories 工作流以转到其详情页面。
在工作流详情页面上,选择 play_arrow 执行。
对于输入,请输入以下内容:
{"countries":["Argentina", "Bhutan", "Cyprus", "Denmark", "Ethiopia"]}
再次点击执行。
在输出窗格中查看工作流的结果。
输出应类似如下所示:
{ "Argentina": "The history of Argentina is a complex and fascinating one, marked by periods of prosperity and decline, political [...] "Bhutan": "The history of Bhutan is a rich and fascinating one, dating back to the 7th century AD. Here is a brief overview: [...] "Cyprus": "The history of Cyprus is a long and complex one, spanning over 10,000 years. The island has been ruled by a succession [...] "Denmark": "1. **Prehistory and Early History (c. 12,000 BC - 800 AD)**\\n - The earliest evidence of human habitation in Denmark [...] "Ethiopia": "The history of Ethiopia is a long and complex one, stretching back to the earliest human civilizations. The country is [...] }
gcloud
打开终端。
执行工作流:
gcloud workflows run gemini-pro-country-histories \ --data='{"countries":["Argentina", "Bhutan", "Cyprus", "Denmark", "Ethiopia"]}' \ --location=us-central1
执行结果应类似如下所示:
Waiting for execution [7ae1ccf1-29b7-4c2c-99ec-7a12ae289391] to complete...done. argument: '{"countries":["Argentina","Bhutan","Cyprus","Denmark","Ethiopia"]}' createTime: '2024-02-09T16:25:16.742349156Z' duration: 12.075968673s endTime: '2024-02-09T16:25:28.818317829Z' name: projects/1051295516635/locations/us-central1/workflows/gemini-pro-country-histories/executions/7ae1ccf1-29b7-4c2c-99ec-7a12ae289391 result: "{\"Argentina\":\"The history of Argentina can be traced back to the arrival\ [...] n* 2015: Argentina elects Mauricio Macri as president.\",\"Bhutan\":\"The history\ [...] \ natural beauty, ancient monasteries, and friendly people.\",\"Cyprus\":\"The history\ [...] ,\"Denmark\":\"The history of Denmark can be traced back to the Stone Age, with\ [...] \ a high standard of living.\",\"Ethiopia\":\"The history of Ethiopia is long and\ [...] startTime: '2024-02-09T16:25:16.742349156Z' state: SUCCEEDED
部署用于生成国家/地区历史记录的工作流 (PaLM 2 for Text)
您可能不想将 Gemini Pro 用作模型。以下示例使用与上一个示例类似的工作流;不过,它使用连接器方法 (predict
) 向 PaLM 2 发出文本发布商端点请求。该方法会执行在线预测。
如需详细了解在发送提示时使用的 HTTP 请求正文参数 LLM 和响应正文元素,请参阅 PaLM 2 for Text API 参考文档。
控制台
在 Google Cloud 控制台中,前往工作流页面。
点击
创建。输入新工作流的名称:
text-bison-country-histories
。在区域列表中,选择 us-central1(爱荷华)。
对于服务账号,选择您之前使用的服务账号 创建。
点击下一步。
在工作流编辑器中,为工作流输入以下定义:
请注意,根据所使用的模型,您可能需要从响应中移除所有不必要的空格。
点击部署。
gcloud
为您的工作流创建源代码文件:
touch text-bison-country-histories.yaml
在文本编辑器中,将以下工作流复制到源代码文件中:
请注意,根据所使用的模型,您可能需要从响应中移除所有不必要的空格。
输入以下命令以部署工作流:
gcloud workflows deploy text-bison-country-histories \ --source=text-bison-country-histories.yaml \ --location=us-central1 \ --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
部署汇总大型文档的工作流 (Gemini Pro)
部署一个工作流,将大型文档划分为较小的部分,并并行向 Gemini Pro 发布商端点发出 http.post
请求,以便模型可以同时对每个部分进行总结。工作流终于
将所有部分摘要合并成一个完整的摘要。
如需详细了解提示 LLM 时使用的 HTTP 请求正文参数和响应正文元素,请参阅 Gemini API 参考文档。
工作流定义假定您已创建 Cloud Storage
您可以向其上传文本文件更多信息
Workflows 连接器简介 (googleapis.storage.v1.objects.get
)
用于从 Cloud Storage 存储桶检索对象,请参阅
连接器参考信息。
部署工作流后,您可以通过创建适当的
Eventarc 触发器,然后将文件上传到存储桶。对于
请参阅
将 Cloud Storage 事件路由到 Workflows。
请注意,必须启用其他 API,还必须启用其他角色
包括向服务账号授予 Storage Object User 角色
(roles/storage.objectUser
) 角色,支持使用 Cloud Storage
对象的操作。有关详情,请参阅
准备创建触发器部分。
控制台
在 Google Cloud 控制台中,前往工作流页面。
点击
创建。输入新工作流的名称:
gemini-pro-summaries
。在区域列表中,选择 us-central1(爱荷华)。
对于服务账号,选择您之前使用的服务账号 创建。
点击下一步。
在工作流编辑器中,输入工作流的定义:
点击部署。
gcloud
为您的工作流创建源代码文件:
touch gemini-pro-summaries.yaml
在文本编辑器中,将以下工作流复制到源代码文件中:
输入以下命令以部署工作流:
gcloud workflows deploy gemini-pro-summaries \ --source=gemini-pro-summaries.yaml \ --location=us-central1 \ --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
清理
为避免因本教程中使用的资源导致您的 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.
gcloud
Delete a Google Cloud project:
gcloud projects delete PROJECT_ID
删除各个资源
删除工作流 创建 Deployment 清单
后续步骤
- 详细了解 Workflows 连接器。
- 详细了解 Vertex AI
generateContent
方法。 - 详细了解 Vertex AI
predict
方法。