Neste tutorial, vai usar o Model Garden para implementar o modelo aberto Gemma 1B num ponto final do Vertex AI com tecnologia de GPU. Tem de implementar um modelo num ponto final antes de poder usar esse modelo para publicar previsões online. A implementação de um modelo associa recursos físicos ao modelo para que possa publicar previsões online com baixa latência.
Depois de implementar o modelo Gemma 1B, infere o modelo preparado usando o PredictionServiceClient
para obter previsões online. As previsões online são pedidos síncronos feitos a um modelo implementado num ponto final.
Objetivos
Este tutorial mostra como realizar as seguintes tarefas:
- Implemente o modelo aberto Gemma 1B num ponto final suportado por GPU através do Model Garden
- Use o
PredictionServiceClient
para receber previsões online
Custos
Neste documento, usa os seguintes componentes faturáveis do Google Cloud:
Para gerar uma estimativa de custos com base na sua utilização projetada,
use a calculadora de preços.
Quando terminar as tarefas descritas neste documento, pode evitar a faturação contínua eliminando os recursos que criou. Para mais informações, consulte o artigo Limpe.
Antes de começar
Este tutorial requer que:
- Configure um Google Cloud projeto e ative a API Vertex AI
- Na sua máquina local:
- Instale, inicialize e faça a autenticação com a CLI Google Cloud
- Instale o SDK para o seu idioma
Configure um Google Cloud projeto
Configure o seu Google Cloud projeto e ative a API Vertex AI.
- 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.
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
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. 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.enable
permission. 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
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. 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.enable
permission. Learn how to grant roles. -
Instale e inicialize a CLI Google Cloud.
-
Se instalou anteriormente a CLI gcloud, certifique-se de que os componentes
gcloud
estão atualizados executando este comando.gcloud components update
-
Para se autenticar com a CLI gcloud, execute este comando para gerar um ficheiro de Credenciais padrão da aplicação (ADC) local. O fluxo da Web iniciado pelo comando é usado para fornecer as suas credenciais de utilizador.
gcloud auth application-default login
Para mais informações, consulte a configuração de autenticação da CLI gcloud e a configuração do ADC.
Instale e atualize o SDK Vertex AI para Python executando este comando.
pip3 install --upgrade "google-cloud-aiplatform>=1.64"
Instale a biblioteca Protocol Buffers para Python executando este comando.
pip3 install --upgrade "protobuf>=5.28"
- A
aiplatform
biblioteca cliente Go - Suporte do Go para buffers de protocolo
- Extensões da API Google para Go (gax-go)
Liste os modelos que pode implementar e registe o ID do modelo a implementar. Opcionalmente, pode listar os modelos do Hugging Face suportados no Model Garden e até filtrá-los por nomes de modelos. O resultado não inclui modelos otimizados.
Veja as especificações de implementação de um modelo através do ID do modelo do passo anterior. Pode ver o tipo de máquina, o tipo de acelerador e o URI da imagem do contentor que o Model Garden validou para um modelo específico.
Implemente um modelo num ponto final. O Model Garden usa a configuração de implementação predefinida, a menos que especifique argumentos e valores adicionais.
Liste os modelos que pode implementar executando o comando
gcloud ai model-garden models list
. Este comando lista todos os IDs dos modelos e quais pode implementar autonomamente.gcloud ai model-garden models list --model-filter=gemma
Na saída, encontre o ID do modelo a implementar. O exemplo seguinte mostra um resultado abreviado.
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
O resultado não inclui modelos otimizados nem modelos do Hugging Face. Para ver que modelos do Hugging Face são suportados, adicione a flag
--can-deploy-hugging-face-models
.Para ver as especificações de implementação de um modelo, execute o comando
gcloud ai model-garden models list-deployment-config
. Pode ver o tipo de máquina, o tipo de acelerador e o URI da imagem do contentor que o Model Garden suporta para um modelo específico.gcloud ai model-garden models list-deployment-config \ --model=MODEL_ID
Substitua MODEL_ID pelo ID do modelo do comando da lista anterior, como
google/gemma@gemma-2b
oustabilityai/stable-diffusion-xl-base-1.0
.Implemente um modelo num ponto final executando o comando
gcloud ai model-garden models deploy
. O Model Garden gera um nome a apresentar para o seu ponto final e usa a configuração de implementação predefinida, a menos que especifique argumentos e valores adicionais.Para executar o comando de forma assíncrona, inclua a flag
--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]
Substitua os seguintes marcadores de posição:
- MODEL_ID: o ID do modelo do comando de lista anterior. Para os modelos da Hugging Face, use o formato de URL do modelo da Hugging Face, como
stabilityai/stable-diffusion-xl-base-1.0
. - MACHINE_TYPE: define o conjunto de recursos a implementar para o seu modelo, como
g2-standard-4
. - ACCELERATOR_TYPE: especifica os aceleradores a adicionar à sua implementação para ajudar a melhorar o desempenho quando trabalha com cargas de trabalho intensivas, como
NVIDIA_L4
. - ENDPOINT_NAME: um nome para o ponto final do Vertex AI implementado.
- HF_ACCESS_TOKEN: para modelos do Hugging Face, se o modelo for restrito, faculte um token de acesso.
- RESERVATION_RESOURCE_NAME: Para usar uma reserva do Compute Engine específica, especifique o nome da sua reserva. Se especificar uma reserva específica, não pode especificar
any-reservation
.
O resultado inclui a configuração de implementação usada pelo Model Garden, o ID do ponto final e o ID da operação de implementação, que pode usar para verificar o estado da implementação.
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: o ID do modelo do comando de lista anterior. Para os modelos da Hugging Face, use o formato de URL do modelo da Hugging Face, como
Para ver detalhes sobre a sua implementação, execute o comando
gcloud ai endpoints list --list-model-garden-endpoints-only
:gcloud ai endpoints list --list-model-garden-endpoints-only \ --region=LOCATION_ID
Substitua LOCATION_ID pela região onde implementou o modelo.
A saída inclui todos os pontos finais criados a partir do Model Garden e inclui informações como o ID do ponto final, o nome do ponto final e se o ponto final está associado a um modelo implementado. Para encontrar a sua implementação, procure o nome do ponto final devolvido pelo comando anterior.
- PROJECT_ID: o ID do seu Google Cloud projeto.
- QUERY_PARAMETERS: para listar os modelos do Model Garden, adicione os seguintes parâmetros de consulta:
listAllVersions=True&filter=is_deployable(true)
. Para listar os modelos do Hugging Face, defina o filtro comoalt=json&is_hf_wildcard(true)+AND+labels.VERIFIED_DEPLOYMENT_CONFIG%3DVERIFIED_DEPLOYMENT_SUCCEED&listAllVersions=True
. - LOCATION: uma região onde o modelo é implementado.
- PROJECT_ID: o ID do seu Google Cloud projeto.
- MODEL_ID: o ID do modelo a implementar, que pode obter ao listar todos os modelos implementáveis. O ID usa o seguinte formato: publishers/PUBLISHER_NAME/models/ MODEL_NAME@MODEL_VERSION.
- LOCATION: uma região onde o modelo é implementado.
- PROJECT_ID: o ID do seu Google Cloud projeto.
- MODEL_ID: o modelo Hugging Face ID do modelo a implementar, que pode obter a partir da listagem de todos os modelos implementáveis. O ID usa o seguinte formato: PUBLISHER_NAME/MODEL_NAME.
- ACCESS_TOKEN: se o modelo for restrito, forneça um token de acesso.
- LOCATION: uma região onde o modelo é implementado.
- PROJECT_ID: o ID do seu Google Cloud projeto.
- MODEL_ID: o ID do modelo a implementar, que pode obter ao listar todos os modelos implementáveis. O ID
usa o seguinte formato: publishers/PUBLISHER_NAME/models/
MODEL_NAME@MODEL_VERSION, como
google/gemma@gemma-2b
oustabilityai/stable-diffusion-xl-base-1.0
. - MACHINE_TYPE: define o conjunto de recursos a implementar para o seu modelo, como
g2-standard-4
. - ACCELERATOR_TYPE:
Especifica aceleradores a adicionar à sua implementação para ajudar a melhorar o desempenho
quando trabalha com cargas de trabalho intensivas, como
NVIDIA_L4
- ACCELERATOR_COUNT: o número de aceleradores a usar na sua implementação.
reservation_affinity_type
: Para usar uma reserva do Compute Engine existente para a sua implementação, especifique qualquer reserva ou uma específica. Se especificar este valor, não especifiquespot
.spot
: se deve usar VMs do Spot para a sua implementação.- IMAGE_URI: a localização da imagem do contentor a usar, como
us-docker.pkg.dev/vertex-ai/vertex-vision-model-garden-dockers/pytorch-vllm-serve:20241016_0916_RC00_maas
- CONTAINER_ARGS: argumentos a transmitir ao contentor durante a implementação.
- CONTAINER_PORT: um número de porta para o seu contentor.
fast_tryout_enabled
: Quando testa um modelo, pode optar por usar uma implementação mais rápida. Esta opção só está disponível para os modelos muito usados com determinados tipos de máquinas. Se estiver ativado, não pode especificar configurações de modelos nem de implementação.Na Google Cloud consola, aceda à página Model Garden.
Encontre um modelo suportado que quer implementar e clique no respetivo cartão de modelo.
Clique em Implementar para abrir o painel Implementar modelo.
No painel Implementar modelo, especifique os detalhes da implementação.
- Usar ou modificar os nomes do modelo e do ponto final gerados.
- Selecione uma localização para criar o seu ponto final do modelo.
- Selecione um tipo de máquina a usar para cada nó da sua implementação.
Para usar uma reserva do Compute Engine, na secção Definições de implementação, selecione Avançadas.
No campo Tipo de reserva, selecione um tipo de reserva. A reserva tem de corresponder às especificações da máquina indicadas.
- Usar automaticamente a reserva criada: a Vertex AI seleciona automaticamente uma reserva permitida com propriedades correspondentes. Se não houver capacidade na reserva selecionada automaticamente, o Vertex AI usa o conjunto de recursos Google Cloudgeral.
- Selecionar reservas específicas: a Vertex AI usa uma reserva específica. Se não houver capacidade para a reserva selecionada, é apresentado um erro.
- Não usar (predefinição): o Vertex AI usa o conjunto de recursosGoogle Cloud geral. Este valor tem o mesmo efeito que não especificar uma reserva.
Clique em Implementar.
PROJECT_ID
: para encontrar o ID do projeto, siga estes passos.Aceda à página Boas-vindas na Google Cloud consola.
No seletor de projetos na parte superior da página, selecione o seu projeto.
O nome do projeto, o número do projeto e o ID do projeto aparecem após o cabeçalho Bem-vindo.
ENDPOINT_REGION
: esta é a região onde implementou o ponto final.ENDPOINT_ID
: para encontrar o ID do ponto final, veja-o na consola ou execute o comandogcloud ai endpoints list
. Precisa do nome do ponto final e da região do painel Implementar modelo.Consola
Pode ver os detalhes do ponto final clicando em Previsão online > Pontos finais e selecionando a sua região. Tenha em atenção o número apresentado na coluna
ID
.gcloud
Pode ver os detalhes do ponto final executando o comando
gcloud ai endpoints list
.gcloud ai endpoints list \ --region=ENDPOINT_REGION \ --filter=display_name=ENDPOINT_NAME
O resultado tem o seguinte aspeto.
Using endpoint [https://us-central1-aiplatform.googleapis.com/] ENDPOINT_ID: 1234567891234567891 DISPLAY_NAME: gemma2-2b-it-mg-one-click-deploy
- 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.
- Anule a implementação do modelo e elimine o ponto final
- Elimine o modelo do registo de modelos
Na Google Cloud consola, clique em Previsão online e, de seguida, clique em Pontos finais.
Na lista pendente Região, escolha a região onde implementou o seu ponto final.
Clique no nome do ponto final para abrir a página de detalhes. Por exemplo:
gemma2-2b-it-mg-one-click-deploy
.Na linha do modelo
Gemma 2 (Version 1)
, clique em Ações e, de seguida, clique em Anular implementação do modelo a partir do ponto final.Na caixa de diálogo Anular implementação do modelo a partir do ponto final, clique em Anular implementação.
Clique no botão Anterior para voltar à página Pontos finais.
No final da linha
gemma2-2b-it-mg-one-click-deploy
, clique em Ações e, de seguida, selecione Eliminar ponto final.No comando de confirmação, clique em Confirmar.
- PROJECT_ID com o nome do seu projeto
- LOCATION_ID com a região onde implementou o modelo e o ponto final
- ENDPOINT_ID com o ID de ponto final
- DEPLOYED_MODEL_NAME com o nome a apresentar do modelo
- DEPLOYED_MODEL_ID com o ID do modelo
Execute o comando
gcloud ai endpoints list
para obter o ID do ponto final. Este comando lista os IDs dos pontos finais de todos os pontos finais no seu projeto. Tome nota do ID do ponto final usado neste tutorial.gcloud ai endpoints list \ --project=PROJECT_ID \ --region=LOCATION_ID
O resultado tem o seguinte aspeto. Na saída, o ID é denominado
ENDPOINT_ID
.Using endpoint [https://us-central1-aiplatform.googleapis.com/] ENDPOINT_ID: 1234567891234567891 DISPLAY_NAME: gemma2-2b-it-mg-one-click-deploy
Execute o comando
gcloud ai models describe
para obter o ID do modelo. Tome nota do ID do modelo que implementou neste tutorial.gcloud ai models describe DEPLOYED_MODEL_NAME \ --project=PROJECT_ID \ --region=LOCATION_ID
O resultado abreviado tem o seguinte aspeto. Na saída, o ID é denominado
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 ...
Anule a implementação do modelo no ponto final. Precisa do ID do ponto final e do ID do modelo dos comandos anteriores.
gcloud ai endpoints undeploy-model ENDPOINT_ID \ --project=PROJECT_ID \ --region=LOCATION_ID \ --deployed-model-id=DEPLOYED_MODEL_ID
Este comando não produz qualquer resultado.
Execute o comando
gcloud ai endpoints delete
para eliminar o ponto final.gcloud ai endpoints delete ENDPOINT_ID \ --project=PROJECT_ID \ --region=LOCATION_ID
Quando lhe for pedido, escreva
y
para confirmar. Este comando não produz qualquer resultado.Aceda à página Registo de modelos na secção Vertex AI da Google Cloud consola.
Na lista pendente Região, escolha a região onde implementou o modelo.
No final da linha
gemma2-2b-it-1234567891234
, clique em Ações.Selecione Eliminar modelo.
Quando elimina o modelo, todas as versões e avaliações do modelo associadas são eliminadas do seu Google Cloud projeto.
Na mensagem de confirmação, clique em Eliminar.
- Saiba mais acerca dos modelos abertos Gemma.
- Leia os Termos de Utilização do Gemma.
- Saiba mais acerca dos modelos abertos.
- Saiba como implementar um modelo otimizado.
- Saiba como implementar o Gemma 2 no Google Kubernetes Engine através da HuggingFace Textgen Inference (TGI).
- Saiba mais sobre a
PredictionServiceClient
na sua linguagem preferida: Python, Node.js, Java ou Go.
Configure a CLI Google Cloud
Na sua máquina local, configure a CLI Google Cloud.
Configure o SDK para a sua linguagem de programação
Para configurar o ambiente usado neste tutorial, instala o SDK do Vertex AI para o seu idioma e a biblioteca Protocol Buffers. Os exemplos de código usam funções da biblioteca de buffers de protocolo para converter o dicionário de entrada no formato JSON esperado pela API.
Na sua máquina local, clique num dos seguintes separadores para instalar o SDK para o seu idioma de programação.
Python
Na sua máquina local, clique num dos seguintes separadores para instalar o SDK para a sua linguagem de programação.
Node.js
Instale ou atualize o SDK aiplatform
para Node.js executando o seguinte comando.
npm install @google-cloud/aiplatform
Java
Para adicionar google-cloud-aiplatform
como uma dependência, adicione o código adequado para o seu ambiente.
Maven com BOM
Adicione o seguinte HTML ao seu 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>
Maven sem BOM
Adicione o seguinte ao seu
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>
Gradle sem BOM
Adicione o seguinte ao seu build.gradle
:
implementation 'com.google.cloud:google-cloud-aiplatform:1.1.0'
Go
Instale estes pacotes Go executando os seguintes comandos.
go get cloud.google.com/go/aiplatform go get google.golang.org/protobuf go get github.com/googleapis/gax-go/v2
Implemente o Gemma através do Model Garden
Pode implementar o Gemma 1B através do respetivo cartão de modelo na Google Cloud consola ou por programação.
Para mais informações sobre a configuração do SDK de IA gen da Google ou da CLI do Google Cloud, consulte a vista geral do SDK de IA gen da Google ou instale a CLI do Google Cloud.
Python
Para saber como instalar ou atualizar o SDK Vertex AI para Python, consulte o artigo Instale o SDK Vertex AI para Python. Para mais informações, consulte a Python documentação de referência da API.
gcloud
Antes de começar, especifique um projeto de quota para executar os seguintes comandos. Os comandos que executa são contabilizados nas quotas desse projeto. Para mais informações, consulte o artigo Defina o projeto de quota.
REST
Apresente todos os modelos implementáveis e, em seguida, obtenha o ID do modelo a implementar. Em seguida, pode implementar o modelo com a respetiva configuração e ponto final predefinidos. Em alternativa, pode optar por personalizar a implementação, como definir um tipo de máquina específico ou usar um ponto final dedicado.
Apresente os modelos que pode implementar
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
Método HTTP e URL:
GET https://us-central1-aiplatform.googleapis.com/v1/publishers/*/models?QUERY_PARAMETERS
Para enviar o seu pedido, escolha uma destas opções:
curl
Execute o seguinte comando:
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
Execute o seguinte comando:
$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
Recebe uma resposta JSON semelhante à seguinte.
{ "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" } }, ...
Implemente um modelo
Implemente um modelo do Model Garden ou um modelo do Hugging Face. Também pode personalizar a implementação especificando campos JSON adicionais.
Implemente um modelo com a respetiva configuração predefinida.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
Método HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION:deploy
Corpo JSON do pedido:
{ "publisher_model_name": "MODEL_ID", "model_config": { "accept_eula": "true" } }
Para enviar o seu pedido, escolha uma destas opções:
curl
Guarde o corpo do pedido num ficheiro denominado request.json
.
Execute o seguinte comando no terminal para criar ou substituir
este ficheiro no diretório atual:
cat > request.json << 'EOF' { "publisher_model_name": "MODEL_ID", "model_config": { "accept_eula": "true" } } EOF
Em seguida, execute o seguinte comando para enviar o seu pedido 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
Guarde o corpo do pedido num ficheiro denominado request.json
.
Execute o seguinte comando no terminal para criar ou substituir
este ficheiro no diretório atual:
@' { "publisher_model_name": "MODEL_ID", "model_config": { "accept_eula": "true" } } '@ | Out-File -FilePath request.json -Encoding utf8
Em seguida, execute o seguinte comando para enviar o seu pedido 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
Recebe uma resposta JSON semelhante à seguinte.
{ "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" } }
Implemente um modelo do Hugging Face
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
Método HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION:deploy
Corpo JSON do pedido:
{ "hugging_face_model_id": "MODEL_ID", "hugging_face_access_token": "ACCESS_TOKEN", "model_config": { "accept_eula": "true" } }
Para enviar o seu pedido, escolha uma destas opções:
curl
Guarde o corpo do pedido num ficheiro denominado request.json
.
Execute o seguinte comando no terminal para criar ou substituir
este ficheiro no diretório atual:
cat > request.json << 'EOF' { "hugging_face_model_id": "MODEL_ID", "hugging_face_access_token": "ACCESS_TOKEN", "model_config": { "accept_eula": "true" } } EOF
Em seguida, execute o seguinte comando para enviar o seu pedido 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
Guarde o corpo do pedido num ficheiro denominado request.json
.
Execute o seguinte comando no terminal para criar ou substituir
este ficheiro no diretório atual:
@' { "hugging_face_model_id": "MODEL_ID", "hugging_face_access_token": "ACCESS_TOKEN", "model_config": { "accept_eula": "true" } } '@ | Out-File -FilePath request.json -Encoding utf8
Em seguida, execute o seguinte comando para enviar o seu pedido 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
Recebe uma resposta JSON semelhante à seguinte.
{ "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" } }
Implemente um modelo com personalizações
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
Método HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION:deploy
Corpo JSON do pedido:
{ "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 }, }
Para enviar o seu pedido, escolha uma destas opções:
curl
Guarde o corpo do pedido num ficheiro denominado request.json
.
Execute o seguinte comando no terminal para criar ou substituir
este ficheiro no diretório atual:
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
Em seguida, execute o seguinte comando para enviar o seu pedido 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
Guarde o corpo do pedido num ficheiro denominado request.json
.
Execute o seguinte comando no terminal para criar ou substituir
este ficheiro no diretório atual:
@' { "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
Em seguida, execute o seguinte comando para enviar o seu pedido 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
Recebe uma resposta JSON semelhante à seguinte.
{ "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" } }
Consola
Terraform
Para saber como aplicar ou remover uma configuração do Terraform, consulte os comandos básicos do Terraform. Para mais informações, consulte a Terraform documentação de referência do fornecedor.
Implemente um modelo
O exemplo seguinte implementa o modelo gemma-3-1b-it
num novo ponto final da Vertex AI
em us-central1
através das configurações predefinidas.
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
}
}
Para implementar um modelo com personalização, consulte o artigo Ponto final da Vertex AI com implementação do Model Garden para ver detalhes.
Aplique a configuração
terraform init
terraform plan
terraform apply
Depois de aplicar a configuração, o Terraform aprovisiona um novo ponto final da Vertex AI e implementa o modelo aberto especificado.
Limpar
Para eliminar o ponto final e a implementação do modelo, execute o seguinte comando:
terraform destroy
Faça inferência do Gemma 1B com o PredictionServiceClient
Depois de implementar o Gemma 1B, usa a PredictionServiceClient
para obter previsões online para o comando: "Porque é que o céu é azul?"
Parâmetros de código
Os PredictionServiceClient
exemplos de código requerem que atualize o seguinte.
Exemplo de código
No exemplo de código para o seu idioma, atualize os valores PROJECT_ID
, ENDPOINT_REGION
e ENDPOINT_ID
. Em seguida, execute o código.
Python
Para saber como instalar ou atualizar o SDK Vertex AI para Python, consulte o artigo Instale o SDK Vertex AI para Python. Para mais informações, consulte a Python documentação de referência da API.
Node.js
Antes de experimentar este exemplo, siga as Node.jsinstruções de configuração no início rápido do Vertex AI com bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Node.js Vertex AI.
Para se autenticar no Vertex AI, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Java
Antes de experimentar este exemplo, siga as Javainstruções de configuração no início rápido do Vertex AI com bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Java Vertex AI.
Para se autenticar no Vertex AI, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Go
Antes de experimentar este exemplo, siga as Goinstruções de configuração no início rápido do Vertex AI com bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Go Vertex AI.
Para se autenticar no Vertex AI, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Limpar
Para evitar incorrer em custos na sua conta do Google Cloud pelos recursos usados neste tutorial, elimine o projeto que contém os recursos ou mantenha o projeto e elimine os recursos individuais.
Elimine o projeto
Elimine recursos individuais
Se vai manter o projeto, elimine os recursos usados neste tutorial:
Anule a implementação do modelo e elimine o ponto final
Use um dos seguintes métodos para anular a implementação de um modelo e eliminar o ponto final.
Consola
gcloud
Para anular a implementação do modelo e eliminar o ponto final através da Google Cloud CLI, siga estes passos.
Nestes comandos, substitua:
Elimine o modelo
Consola
gcloud
Para eliminar o modelo através da CLI Google Cloud, indique o nome a apresentar e a região do modelo no comando gcloud ai models delete
.
gcloud ai models delete DEPLOYED_MODEL_NAME \
--project=PROJECT_ID \
--region=LOCATION_ID
Substitua DEPLOYED_MODEL_NAME pelo nome a apresentar do modelo. Substitua PROJECT_ID pelo nome do seu projeto. Substitua LOCATION_ID pela região onde implementou o modelo.