A IA generativa na Vertex AI (também conhecida como genAI ou gen AI) oferece acesso aos modelos de IA generativa do Google para várias modalidades (texto, código, imagens, fala). É possível testar e ajustar esses modelos de linguagem grandes (LLMs) e, em seguida, implantá-los para uso em aplicativos com tecnologia de IA. Para mais informações, consulte a Visão geral da IA generativa na Vertex AI.
A Vertex AI tem vários modelos de base de IA generativa que podem ser acessados por uma API, incluindo os modelos usados nos exemplos a seguir:
- O Gemini Pro foi projetado para lidar com tarefas de linguagem natural, chat de código e texto com vários turnos e geração de código.
- O Gemini Pro Vision oferece suporte a comandos multimodais. É possível incluir texto, imagens e vídeo nas solicitações e receber respostas de texto ou código.
- O Pathways Language Model 2 (PaLM 2) para texto é ajustado para tarefas de linguagem, como classificação, resumo e extração de entidades.
Cada modelo é exposto por meio de um endpoint do editor específico para seu projeto do Google Cloud. Por isso, não é necessário implantar o modelo de fundação, a menos que você precise ajustá-lo para um caso de uso específico. Você pode enviar uma solicitação para o endpoint do editor. Um comando é uma solicitação de linguagem natural enviada a um LLM para receber uma resposta.
Este tutorial demonstra fluxos de trabalho que geram respostas de
modelos da Vertex AI enviando comandos de texto para os endpoints
do editor usando um conector de fluxos de trabalho ou uma solicitação HTTP
POST
. Para mais informações, consulte a
Visão geral do conector da API Vertex AI
e Fazer uma solicitação HTTP.
É possível implantar e executar cada fluxo de trabalho de forma independente.
Objetivos
Neste tutorial, você vai:
- Ative as APIs Vertex AI e Workflows e
conceda o papel de usuário da Vertex AI (
roles/aiplatform.user
) à sua conta de serviço. Esse papel permite o acesso à maioria dos recursos da Vertex AI. Para mais informações sobre a configuração da Vertex AI, consulte Configurar a Google Cloud. - Implante e execute um fluxo de trabalho que solicita que um modelo da Vertex AI (Gemini Pro Vision) descreva uma imagem disponível publicamente no Cloud Storage. Para mais informações, consulte Tornar os dados públicos.
- Implante e execute um fluxo de trabalho que percorre uma lista de países em paralelo e solicita que um modelo da Vertex AI (Gemini Pro) gere e retorne os históricos dos países. O uso de ramos paralelos permite reduzir o tempo total de execução iniciando as chamadas para o LLM ao mesmo tempo e aguardando a conclusão de todas elas antes de combinar os resultados. Para mais informações, consulte Executar etapas do fluxo de trabalho em paralelo.
- Implante um fluxo de trabalho semelhante ao anterior. No entanto, solicite um modelo da Vertex AI (PaLM 2 para texto) para gerar e retornar os históricos dos países. Para mais informações sobre como escolher um modelo, consulte Informações do modelo.
- Implante um fluxo de trabalho que possa resumir um documento grande. Como há um limite para a janela de contexto, que define o período de deslocamento do modelo durante o treinamento (e as previsões), o fluxo de trabalho divide o documento em partes menores e solicita que um modelo da Vertex AI (Gemini Pro) resuma cada parte em paralelo. Para mais informações, consulte Instruções de resumo e Horizonte de previsão, janela de contexto e janela de previsão.
Custos
Neste documento, você usará os seguintes componentes faturáveis do Google Cloud:
Para gerar uma estimativa de custo baseada na projeção de uso deste tutorial, use a calculadora de preços.
Ao concluir as tarefas descritas neste documento, é possível evitar o faturamento contínuo excluindo os recursos criados. Saiba mais em Limpeza.
Antes de começar
Antes de testar os exemplos neste tutorial, verifique se você concluiu as seguintes etapas.
Console
- 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
-
Implantar um fluxo de trabalho que descreve uma imagem (Gemini Pro Vision)
Implante um fluxo de trabalho que use um método de conector
(generateContent
) para fazer uma solicitação a um endpoint de editor
do Gemini Pro Vision. O método oferece suporte à geração de conteúdo com
entradas multimodais.
O fluxo de trabalho fornece um comando de texto e o URI de uma imagem disponível publicamente em um bucket do Cloud Storage. É possível visualizar a imagem e, no console do Google Cloud, ver os detalhes do objeto.
O fluxo de trabalho retorna uma descrição da imagem da resposta gerada pelo modelo.
Para mais informações sobre os parâmetros do corpo da solicitação HTTP usados ao solicitar o LLM e os elementos do corpo da resposta, consulte a referência da API Gemini.
Console
No console do Google Cloud, abra a página Workflows.
Clique em
Criar.Insira um nome para o novo fluxo de trabalho:
describe-image
.Na lista Região, selecione us-central1 (Iowa).
Em Conta de serviço, selecione a conta de serviço que você criou anteriormente.
Clique em Próxima.
No editor de fluxo de trabalho, insira a seguinte definição:
Clique em Implantar.
gcloud
Crie um arquivo de código-fonte para seu fluxo de trabalho:
touch describe-image.yaml
Em um editor de texto, copie o seguinte fluxo de trabalho para o arquivo de código-fonte:
Implante o fluxo de trabalho digitando o seguinte comando:
gcloud workflows deploy describe-image \ --source=describe-image.yaml \ --location=us-central1 \ --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
Executar o fluxo de trabalho
Quando um fluxo de trabalho é executado, a definição atual associada a ele também é.
Console
No console do Google Cloud, abra a página Workflows.
Na página Fluxos de trabalho, selecione o fluxo de trabalho describe-image para acessar a página de detalhes dele.
Na página Detalhes do fluxo de trabalho, clique em play_arrow Executar.
Em Entrada, insira o seguinte:
{"image_url":"gs://generativeai-downloads/images/scones.jpg"}
Clique em Executar novamente.
Confira os resultados do fluxo de trabalho no painel Saída.
A saída será semelhante a esta:
{ "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
Abra um terminal.
Execute o fluxo de trabalho:
gcloud workflows run describe-image \ --data='{"image_url":"gs://generativeai-downloads/images/scones.jpg"}'
Os resultados da execução serão semelhantes a estes:
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
Implantar um fluxo de trabalho que gera históricos de países (Gemini Pro)
Implante um fluxo de trabalho que percorre uma lista de entrada de países em
paralelo
e usa um método de conector
(generateContent
) para fazer uma solicitação a um endpoint de editor
do Gemini Pro. O método oferece suporte para a geração de conteúdo com
entradas multimodais.
O fluxo de trabalho retorna os históricos de países gerados pelo modelo, combinando-os em um mapa.
Para mais informações sobre os parâmetros do corpo da solicitação HTTP usados ao solicitar o LLM e os elementos do corpo da resposta, consulte a referência da API Gemini.
Console
No console do Google Cloud, abra a página Workflows.
Clique em
Criar.Insira um nome para o novo fluxo de trabalho:
gemini-pro-country-histories
.Na lista Região, selecione us-central1 (Iowa).
Em Conta de serviço, selecione a conta de serviço que você criou anteriormente.
Clique em Próxima.
No editor de fluxo de trabalho, insira a seguinte definição:
Clique em Implantar.
gcloud
Crie um arquivo de código-fonte para seu fluxo de trabalho:
touch gemini-pro-country-histories.yaml
Em um editor de texto, copie o seguinte fluxo de trabalho para o arquivo de código-fonte:
Implante o fluxo de trabalho digitando o seguinte comando:
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
Executar o fluxo de trabalho
Quando um fluxo de trabalho é executado, a definição atual associada a ele também é.
Console
No console do Google Cloud, abra a página Workflows.
Na página Fluxos de trabalho, selecione o fluxo de trabalho gemini-pro-country-histories para acessar a página de detalhes dele.
Na página Detalhes do fluxo de trabalho, clique em play_arrow Executar.
Em Entrada, insira o seguinte:
{"countries":["Argentina", "Bhutan", "Cyprus", "Denmark", "Ethiopia"]}
Clique em Executar novamente.
Confira os resultados do fluxo de trabalho no painel Saída.
A saída será semelhante a esta:
{ "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
Abra um terminal.
Execute o fluxo de trabalho:
gcloud workflows run gemini-pro-country-histories \ --data='{"countries":["Argentina", "Bhutan", "Cyprus", "Denmark", "Ethiopia"]}' \ --location=us-central1
Os resultados da execução serão semelhantes a estes:
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
Implantar um fluxo de trabalho que gera históricos de países (PaLM 2 para texto)
Talvez você não queira usar o Gemini Pro como modelo. O
exemplo a seguir usa um fluxo de trabalho semelhante ao anterior. No entanto, ele usa
um método de conector
(predict
) para fazer uma solicitação a um endpoint do editor de texto
do PaLM 2. O método realiza uma previsão on-line.
Para mais informações sobre os parâmetros do corpo da solicitação HTTP usados ao solicitar o LLM e os elementos do corpo da resposta, consulte a referência da API PaLM 2 para texto.
Console
No console do Google Cloud, abra a página Workflows.
Clique em
Criar.Insira um nome para o novo fluxo de trabalho:
text-bison-country-histories
.Na lista Região, selecione us-central1 (Iowa).
Em Conta de serviço, selecione a conta de serviço que você criou anteriormente.
Clique em Próxima.
No editor de fluxo de trabalho, insira a seguinte definição:
Dependendo do modelo usado, talvez seja necessário remover espaços em branco desnecessários da resposta.
Clique em Implantar.
gcloud
Crie um arquivo de código-fonte para seu fluxo de trabalho:
touch text-bison-country-histories.yaml
Em um editor de texto, copie o seguinte fluxo de trabalho para o arquivo de código-fonte:
Dependendo do modelo usado, talvez seja necessário remover espaços em branco desnecessários da resposta.
Implante o fluxo de trabalho digitando o seguinte comando:
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
Implantar um fluxo de trabalho que resuma um documento grande (Gemini Pro)
Implante um fluxo de trabalho que divida um documento grande em partes menores, fazendo
solicitações de http.post
para um endpoint de editor do Gemini Pro em
paralelo para que o modelo possa resumir cada parte simultaneamente. O fluxo de trabalho, por fim,
combina todos os resumos parciais em um resumo completo.
Para mais informações sobre os parâmetros do corpo da solicitação HTTP usados ao solicitar o LLM e os elementos do corpo da resposta, consulte a referência da API Gemini.
A definição do fluxo de trabalho pressupõe que você criou um bucket do Cloud Storage para fazer upload de um arquivo de texto. Para mais informações
sobre o conector do Workflows (googleapis.storage.v1.objects.get
)
usado para extrair objetos do bucket do Cloud Storage, consulte a
Referência de conectores.
Depois de implantar o fluxo de trabalho, você pode executá-lo criando um acionador do Eventarc adequado e fazendo upload de um arquivo para o bucket. Para
mais informações, consulte
Encaminhar eventos do Cloud Storage para o Workflows.
Outras APIs precisam ser ativadas e outros papéis precisam ser concedidos, incluindo o papel de usuário do objeto de armazenamento (roles/storage.objectUser
) que oferece suporte ao uso de objetos do Cloud Storage. Para mais informações, consulte a seção
Preparar-se para criar um gatilho.
Console
No console do Google Cloud, abra a página Workflows.
Clique em
Criar.Insira um nome para o novo fluxo de trabalho:
gemini-pro-summaries
.Na lista Região, selecione us-central1 (Iowa).
Em Conta de serviço, selecione a conta de serviço que você criou anteriormente.
Clique em Próxima.
No editor de fluxo de trabalho, insira a seguinte definição:
Clique em Implantar.
gcloud
Crie um arquivo de código-fonte para seu fluxo de trabalho:
touch gemini-pro-summaries.yaml
Em um editor de texto, copie o seguinte fluxo de trabalho para o arquivo de código-fonte:
Implante o fluxo de trabalho digitando o seguinte comando:
gcloud workflows deploy gemini-pro-summaries \ --source=gemini-pro-summaries.yaml \ --location=us-central1 \ --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
Limpar
Para evitar cobranças na sua conta do Google Cloud pelos recursos usados no tutorial, exclua o projeto que os contém ou mantenha o projeto e exclua os recursos individuais.
Excluir o projeto
Console
- 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
Excluir recursos individuais
Exclua os fluxos de trabalho criados neste tutorial.
A seguir
- Saiba mais sobre os conectores do Workflows.
- Saiba mais sobre o método
generateContent
da Vertex AI. - Saiba mais sobre o método
predict
da Vertex AI.