Visão geral
A Gemini Enterprise Agent Platform oferece suporte à implantação de GPU em vários hosts para disponibilizar modelos que excedem a capacidade de memória de um único nó de GPU, como DeepSeek-V3, DeepSeek-R1 e Meta LLama 3.1 405B (versão não quantizada).
Este guia descreve como disponibilizar um modelo DeepSeek-V3 usando unidades de processamento gráfico (GPUs) multihost na Gemini Enterprise Agent Platform com vLLM. A configuração para outros modelos é semelhante. Para mais informações, consulte Disponibilização de vLLM para modelos de linguagem de texto e multimodal.
Antes de começar, confira se você conhece o seguinte:
- Disponibilidade da versão da GPU por região
- Preços de GPU por região
- Preços do Cloud Storage
- Preços da plataforma de agentes do Gemini Enterprise
Use a calculadora de preços para gerar uma estimativa de custo com base no uso previsto.
Contêineres
Para oferecer suporte a implantações de vários hosts, este guia usa uma imagem de contêiner vLLM pré-criada com integração do Ray do Model Garden. O Ray permite o processamento distribuído necessário para executar modelos em vários nós de GPU.
Se quiser, você pode criar sua própria imagem multinó de vLLM. Essa imagem de contêiner personalizada precisa ser compatível com a Gemini Enterprise Agent Platform.
Antes de começar
Antes de começar a implantação do modelo, atenda aos pré-requisitos listados nesta seção.
Configurar um projeto do Google Cloud
- Faça login na sua conta do Google Cloud . Se você começou a usar o Google Cloudagora, crie uma conta para avaliar o desempenho dos nossos produtos em situações reais. Clientes novos também recebem US $300 em créditos para executar, testar e implantar cargas de trabalho.
-
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 Agent Platform API, if it is not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). 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 Agent Platform API, if it is not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
No console do Google Cloud , ative o Cloud Shell.
Na parte de baixo do console Google Cloud , uma sessão do Cloud Shell é iniciada e exibe um prompt de linha de comando. O Cloud Shell é um ambiente shell com a CLI do Google Cloud já instalada e com valores já definidos para o projeto atual. A inicialização da sessão pode levar alguns segundos.
Solicitar cota de GPU
Para implantar o DeepSeek-V3, você precisa de duas VMs a3-highgpu-8g com oito GPUs H100 cada, totalizando 16 GPUs H100. É provável que você precise solicitar um aumento na cota de GPU H100, já que o valor padrão é menor que 16.
Para conferir a cota de GPU H100, acesse a página Cotas e limites do sistema do console Google Cloud .
Faça o upload do modelo
Para fazer upload do modelo como um recurso
Modelna Gemini Enterprise Agent Platform, execute o comandogcloud ai models uploadda seguinte maneira:gcloud ai models upload \ --region=LOCATION \ --project=PROJECT_ID \ --display-name=MODEL_DISPLAY_NAME \ --container-image-uri=us-docker.pkg.dev/vertex-ai/vertex-vision-model-garden-dockers/pytorch-vllm-serve:20250312_0916_RC01 \ --container-args='^;^/vllm-workspace/ray_launcher.sh;python;-m;vllm.entrypoints.api_server;--host=0.0.0.0;--port=7080;--model=deepseek-ai/DeepSeek-V3;--tensor-parallel-size=8;--pipeline-parallel-size=2;--gpu-memory-utilization=0.82;--max-model-len=163840;--max-num-seqs=64;--enable-chunked-prefill;--kv-cache-dtype=auto;--trust-remote-code;--disable-log-requests' \ --container-deployment-timeout-seconds=7200 \ --container-ports=7080 \ --container-env-vars=MODEL_ID=deepseek-ai/DeepSeek-V3Faça as seguintes substituições:
LOCATION: a região em que você está usando a Gemini Enterprise Agent PlatformPROJECT_ID: o ID do seu projeto Google CloudMODEL_DISPLAY_NAME: o nome de exibição que você quer para o modelo
Criar um endpoint dedicado de inferência on-line
Para oferecer suporte a solicitações de conclusão de chat, o contêiner do Model Garden exige um endpoint dedicado. Os endpoints dedicados estão em prévia e não são compatíveis com a Google Cloud CLI. Portanto, use a API REST para criar o endpoint.
Para criar o endpoint dedicado, execute o seguinte comando:
PROJECT_ID=PROJECT_ID REGION=LOCATION ENDPOINT="${REGION}-aiplatform.googleapis.com" curl \ -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://${ENDPOINT}/v1/projects/${PROJECT_ID}/locations/${REGION}/endpoints \ -d '{ "displayName": "ENDPOINT_DISPLAY_NAME", "dedicatedEndpointEnabled": true }'Faça as seguintes substituições:
ENDPOINT_DISPLAY_NAME: o nome de exibição do endpoint
Implantar o modelo
Para receber o ID do endpoint de inferência on-line, execute o comando
gcloud ai endpoints list:ENDPOINT_ID=$(gcloud ai endpoints list \ --project=PROJECT_ID \ --region=LOCATION \ --filter=display_name~'ENDPOINT_DISPLAY_NAME' \ --format="value(name)")Para receber o ID do modelo, execute o comando
gcloud ai models list:MODEL_ID=$(gcloud ai models list \ --project=PROJECT_ID \ --region=LOCATION \ --filter=display_name~'MODEL_DISPLAY_NAME' \ --format="value(name)")Implante o modelo no endpoint executando o comando
gcloud ai deploy-model:gcloud alpha ai endpoints deploy-model $ENDPOINT_ID \ --project=PROJECT_ID \ --region=LOCATION \ --model=$MODEL_ID \ --display-name="DEPLOYED_MODEL_NAME" \ --machine-type=a3-highgpu-8g \ --traffic-split=0=100 \ --accelerator=type=nvidia-h100-80gb,count=8 \ --multihost-gpu-node-count=2Substitua DEPLOYED_MODEL_NAME por um nome para o modelo implantado. Pode ser igual ao nome de exibição do modelo (MODEL_DISPLAY_NAME).
A implantação de modelos grandes, como o DeepSeek-V3, pode levar mais tempo do que o tempo limite de implantação padrão. Se o comando
deploy-modelexpirar, o processo de implantação vai continuar sendo executado em segundo plano.O comando
deploy-modelretorna um ID de operação que pode ser usado para verificar quando a operação for concluída. Pesquise o status da operação até que a resposta inclua"done": true. Use o seguinte comando para consultar o status:gcloud ai operations describe \ --region=LOCATION \ OPERATION_IDSubstitua OPERATION_ID pelo ID da operação retornado. pelo comando anterior.
Receber inferências on-line do modelo implantado
Nesta seção, descrevemos como enviar uma solicitação de inferência on-line ao endpoint público dedicado em que o modelo DeepSeek-V3 está implantado.
Execute o comando
gcloud projects describepara receber o número do projeto:PROJECT_NUMBER=$(gcloud projects describe PROJECT_ID --format="value(projectNumber)")Envie uma solicitação de previsão bruta:
curl \ -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://${ENDPOINT_ID}.${REGION}-${PROJECT_NUMBER}.prediction.vertexai.goog/v1/projects/${PROJECT_NUMBER}/locations/${REGION}/endpoints/${ENDPOINT_ID}:rawPredict \ -d '{ "prompt": "Write a short story about a robot.", "stream": false, "max_tokens": 50, "temperature": 0.7 }'Envie uma solicitação de conclusão de chat:
curl \ -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://${ENDPOINT_ID}.${REGION}-${PROJECT_NUMBER}.prediction.vertexai.goog/v1/projects/${PROJECT_NUMBER}/locations/${REGION}/endpoints/${ENDPOINT_ID}/chat/completions \ -d '{"stream":false, "messages":[{"role": "user", "content": "Summer travel plan to Paris"}], "max_tokens": 40,"temperature":0.4,"top_k":10,"top_p":0.95, "n":1}'Para ativar o streaming, mude o valor de
"stream"defalseparatrue.
Limpar
Para evitar outras cobranças da Gemini Enterprise Agent Platform, exclua os recursos Google Cloud criados durante este tutorial:
Para desfazer a implantação do modelo e excluir o endpoint, execute os seguintes comandos:
ENDPOINT_ID=$(gcloud ai endpoints list \ --region=LOCATION \ --filter=display_name=ENDPOINT_DISPLAY_NAME \ --format="value(name)") DEPLOYED_MODEL_ID=$(gcloud ai endpoints describe $ENDPOINT_ID \ --region=LOCATION \ --format="value(deployedModels.id)") gcloud ai endpoints undeploy-model $ENDPOINT_ID \ --region=LOCATION \ --deployed-model-id=$DEPLOYED_MODEL_ID gcloud ai endpoints delete $ENDPOINT_ID \ --region=LOCATION \ --quietPara excluir o modelo, execute os seguintes comandos:
MODEL_ID=$(gcloud ai models list \ --region=LOCATION \ --filter=display_name=DEPLOYED_MODEL_NAME \ --format="value(name)") gcloud ai models delete $MODEL_ID \ --region=LOCATION \ --quiet
A seguir
- Para informações de referência abrangentes sobre a implantação de GPU em vários hosts na Gemini Enterprise Agent Platform com vLLM, consulte Disponibilização de vLLM para modelos de linguagem de texto e multimodal.
- Saiba como criar sua própria imagem de vários nós do vLLM. Sua imagem de contêiner personalizada precisa ser compatível com a Gemini Enterprise Agent Platform.