A implantação de modelos com pesos personalizados é uma oferta em prévia. É possível ajustar modelos com base em um conjunto predefinido de modelos de base e implantar os modelos personalizados no Model Garden da Vertex AI. É possível implantar seus modelos personalizados usando a importação de ponderações personalizadas. Para isso, faça upload dos artefatos do modelo para um bucket do Cloud Storage no seu projeto. Essa é uma experiência de um clique na Vertex AI.
Modelos compatíveis
O pré-lançamento público de Implantar modelos com ponderações personalizadas é compatível com os seguintes modelos de base:
| Nome do modelo | Versão | 
|---|---|
| Llama | 
 | 
| Gemma | 
 | 
| Qwen | 
 | 
| Deepseek | 
 | 
| Mistral e Mixtral | 
 | 
| Phi-4 | 
 | 
| OSS da OpenAI | 
 | 
Limitações
As ponderações personalizadas não são compatíveis com a importação de modelos quantizados.
Arquivos de modelo
Você precisa fornecer os arquivos do modelo no formato de pesos do Hugging Face. Para mais informações sobre o formato de pesos do Hugging Face, consulte Usar modelos do Hugging Face.
Se os arquivos necessários não forem fornecidos, a implantação do modelo poderá falhar.
Esta tabela lista os tipos de arquivos de modelo, que dependem da arquitetura do modelo:
| Conteúdo do arquivo do modelo | Tipo de arquivo | 
|---|---|
| Configuração do modelo | 
 | 
| Pesos do modelo | 
 | 
| Índice de pesos | 
 | 
| Arquivos do tokenizador | 
 | 
Locais
É possível implantar modelos personalizados em todas as regiões usando os serviços do Model Garden.
Pré-requisitos
Esta seção demonstra como implantar seu modelo personalizado.
Antes de começar
- 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.createpermission. 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.enablepermission. 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.createpermission. 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.enablepermission. Learn how to grant roles.
- 
    
    In the Google Cloud console, activate Cloud Shell. At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize. 
- 
      Install the Google Cloud CLI. 
- 
          If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity. 
- 
        To initialize the gcloud CLI, run the following command: gcloud init
- REGION: sua região. Por exemplo, uscentral1.
- MODEL_GCS: seu modelo Google Cloud . Por exemplo, gs://custom-weights-fishfooding/meta-llama/Llama-3.2-1B-Instruct.
- PROJECT_ID: o ID do projeto.
- MODEL_ID: o ID do modelo.
- MACHINE_TYPE: o tipo de máquina. Por exemplo, g2-standard-12.
- ACCELERATOR_TYPE: o tipo de acelerador. Por exemplo, NVIDIA_L4.
- ACCELERATOR_COUNT: a contagem de aceleradores.
- PROMPT: seu comando de texto. 
- No console Google Cloud , acesse a página Model Garden. 
- Clique em Implantar modelo com ponderações personalizadas. O painel Implantar um modelo com pesos personalizados na Vertex AI vai aparecer. 
- Na seção Origem do modelo, faça o seguinte: - Clique em Procurar, escolha o bucket em que o modelo está armazenado e clique em Selecionar. 
- Opcional: insira o nome do modelo no campo Nome do modelo. 
 
- Na seção Configurações de implantação, faça o seguinte: - No campo Região, selecione sua região e clique em OK. 
- No campo Especificação da máquina, selecione a especificação da máquina, que é usada para implantar o modelo. 
- Opcional: no campo Nome do endpoint, o endpoint do modelo aparece por padrão. No entanto, é possível inserir um nome de endpoint diferente no campo. 
 
- Clique em Implantar modelo com ponderações personalizadas. 
- No console Google Cloud , acesse a página Model Garden. 
- Clique em Mostrar meus endpoints e modelos. 
- Selecione sua região na lista Região. 
- Para acessar o ID e o URL do endpoint, clique no endpoint na seção Meus endpoints. - O ID do endpoint é exibido no campo ID do endpoint. - O URL do endpoint público é exibido no campo Endpoint dedicado. 
- Para receber o ID do modelo, encontre seu modelo na seção Modelos implantados e siga estas etapas: - Clique no nome do modelo implantado no campo Modelo.
- Clique em Detalhes da versão. O ID do modelo aparece no campo ID do modelo.
 
- Para mais informações sobre modelos autônomos, consulte Visão geral dos modelos autônomos.
- Para mais informações sobre o Model Garden, consulte Visão geral do Model Garden.
- Para mais informações sobre a implantação de modelos, consulte Usar modelos no Model Garden.
- Usar modelos abertos do Gemma
- Usar modelos abertos de Llama
- Usar modelos abertos do Hugging Face
Neste tutorial, presumimos que você esteja usando o Cloud Shell para interagir com Google Cloud. Se você quiser usar um shell diferente em vez do Cloud Shell, execute a seguinte configuração extra:
Implantar o modelo personalizado
Esta seção demonstra como implantar seu modelo personalizado.
Se você estiver usando a interface de linha de comando (CLI), Python ou JavaScript, substitua as seguintes variáveis por um valor para que os exemplos de código funcionem:
Console
As etapas a seguir mostram como usar o console do Google Cloud para implantar seu modelo com ponderações personalizadas.
CLI da gcloud
Este comando demonstra como implantar o modelo em uma região específica.
gcloud ai model-garden models deploy --model=${MODEL_GCS} --region ${REGION}
Esse comando demonstra como implantar o modelo em uma região específica com o tipo de máquina, o tipo de acelerador e a contagem de aceleradores. Se quiser selecionar uma configuração de máquina específica, defina todos os três campos.
gcloud ai model-garden models deploy --model=${MODEL_GCS} --machine-type=${MACHINE_TYE} --accelerator-type=${ACCELERATOR_TYPE} --accelerator-count=${ACCELERATOR_COUNT} --region ${REGION}
Python
import vertexai
from google.cloud import aiplatform
from vertexai.preview import model_garden
vertexai.init(project=${PROJECT_ID}, location=${REGION})
custom_model = model_garden.CustomModel(
  gcs_uri=GCS_URI,
)
endpoint = custom_model.deploy(
  machine_type="${MACHINE_TYPE}",
  accelerator_type="${ACCELERATOR_TYPE}",
  accelerator_count="${ACCELERATOR_COUNT}",
  model_display_name="custom-model",
  endpoint_display_name="custom-model-endpoint")
endpoint.predict(instances=[{"prompt": "${PROMPT}"}], use_dedicated_endpoint=True)
Como alternativa, não é necessário transmitir um parâmetro para o método
custom_model.deploy().
import vertexai
from google.cloud import aiplatform
from vertexai.preview import model_garden
vertexai.init(project=${PROJECT_ID}, location=${REGION})
custom_model = model_garden.CustomModel(
  gcs_uri=GCS_URI,
)
endpoint = custom_model.deploy()
endpoint.predict(instances=[{"prompt": "${PROMPT}"}], use_dedicated_endpoint=True)
curl
curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  "https://${REGION}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/${REGION}:deploy" \
  -d '{
    "custom_model": {
    "gcs_uri": "'"${MODEL_GCS}"'"
  },
  "destination": "projects/'"${PROJECT_ID}"'/locations/'"${REGION}"'",
  "model_config": {
     "model_user_id": "'"${MODEL_ID}"'",
  },
}'
Como alternativa, use a API para definir explicitamente o tipo de máquina.
curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  "https://${REGION}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/${REGION}:deploy" \
  -d '{
    "custom_model": {
    "gcs_uri": "'"${MODEL_GCS}"'"
  },
  "destination": "projects/'"${PROJECT_ID}"'/locations/'"${REGION}"'",
  "model_config": {
     "model_user_id": "'"${MODEL_ID}"'",
  },
  "deploy_config": {
    "dedicated_resources": {
      "machine_spec": {
        "machine_type": "'"${MACHINE_TYPE}"'",
        "accelerator_type": "'"${ACCELERATOR_TYPE}"'",
        "accelerator_count": '"${ACCELERATOR_COUNT}"'
      },
      "min_replica_count": 1
    }
  }
}'
Fazer uma consulta
Depois que o modelo for implantado, os pesos personalizados vão oferecer suporte ao endpoint público dedicado. É possível enviar consultas usando a API ou o SDK.
Antes de enviar consultas, você precisa receber o URL do endpoint, o ID do endpoint e o ID do modelo, que estão disponíveis no console do Google Cloud .
Siga estas etapas para acessar as informações:
Depois de receber as informações do endpoint e do modelo implantado, consulte os exemplos de código a seguir para saber como enviar uma solicitação de inferência ou consulte Enviar uma solicitação de inferência on-line para um endpoint público dedicado.
API
Os exemplos de código a seguir demonstram diferentes maneiras de usar a API com base no seu caso de uso.
Conclusão de chat (unária)
Esta solicitação de amostra envia uma mensagem de chat completa ao modelo e recebe uma resposta em um único bloco depois que toda a resposta é gerada. É semelhante a enviar uma mensagem de texto e receber uma única resposta completa.
  curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://${ENDPOINT_URL}/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/endpoints/${ENDPOINT_ID}/chat/completions" \
    -d '{
    "model": "'"${MODEL_ID}"'",
    "temperature": 0,
    "top_p": 1,
    "max_tokens": 154,
    "ignore_eos": true,
    "messages": [
      {
        "role": "user",
        "content": "How to tell the time by looking at the sky?"
      }
    ]
  }'
Conclusão de chat (streaming)
Essa solicitação é a versão de streaming da solicitação de conclusão de chat unária. Ao
adicionar "stream": true à solicitação, o modelo envia a resposta parte por
parte à medida que ela é gerada. Isso é útil para criar um efeito de máquina de escrever em tempo real em um aplicativo de chat.
  curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \  "https://${ENDPOINT_URL}/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/endpoints/${ENDPOINT_ID}/chat/completions" \
    -d '{
    "model": "'"${MODEL_ID}"'",
    "stream": true,
    "temperature": 0,
    "top_p": 1,
    "max_tokens": 154,
    "ignore_eos": true,
    "messages": [
      {
        "role": "user",
        "content": "How to tell the time by looking at the sky?"
      }
    ]
  }'
Previsão
Essa solicitação envia um comando direto para receber uma inferência de um modelo. Isso é usado com frequência para tarefas que não são necessariamente conversacionais, como resumo ou classificação de texto.
  curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
  "https://${ENDPOINT_URL}/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/endpoints/${ENDPOINT_ID}:predict" \
    -d '{
    "instances": [
      {
        "prompt": "How to tell the time by looking at the sky?",
        "temperature": 0,
        "top_p": 1,
        "max_tokens": 154,
        "ignore_eos": true
      }
    ]
  }'
Previsão bruta
Essa solicitação é uma versão de streaming da solicitação Predict. Ao usar o endpoint
:streamRawPredict e incluir "stream": true, essa solicitação
envia um comando direto e recebe a saída do modelo como um fluxo contínuo
de dados à medida que eles são gerados, o que é semelhante à solicitação
de conclusão de chat por streaming.
  curl -X POST \
    -N \
    --output - \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://${ENDPOINT_URL}/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/endpoints/${ENDPOINT_ID}:streamRawPredict" \
    -d '{
    "instances": [
      {
        "prompt": "How to tell the time by looking at the sky?",
        "temperature": 0,
        "top_p": 1,
        "max_tokens": 154,
        "ignore_eos": true,
        "stream": true
      }
    ]
  }'
SDK
Este exemplo de código usa o SDK para enviar uma consulta a um modelo e receber uma resposta dele.
  from google.cloud import aiplatform
  project_id = ""
  location = ""
  endpoint_id = "" # Use the short ID here
  aiplatform.init(project=project_id, location=location)
  endpoint = aiplatform.Endpoint(endpoint_id)
  prompt = "How to tell the time by looking at the sky?"
  instances=[{"text": prompt}]
  response = endpoint.predict(instances=instances, use_dedicated_endpoint=True)
  print(response.predictions)
Para outro exemplo de como usar a API, consulte o notebook Importar ponderações personalizadas.