A implementação de modelos com ponderações personalizadas é uma oferta de pré-visualização. Pode otimizar os modelos com base num conjunto predefinido de modelos base e implementar os seus modelos personalizados no Model Garden do Vertex AI. Pode implementar os seus modelos personalizados usando a importação de ponderações personalizadas carregando os artefactos do modelo para um contentor do Cloud Storage no seu projeto, o que é uma experiência de um clique na Vertex AI.
Modelos suportados
A pré-visualização pública da funcionalidade Implemente modelos com ponderações personalizadas é suportada pelos seguintes modelos base:
| Nome do modelo | Versão | 
|---|---|
| Llama | 
 | 
| Gemma | 
 | 
| Qwen | 
 | 
| Deepseek | 
 | 
| Mistral e Mixtral | 
 | 
| Phi-4 | 
 | 
| OpenAI OSS | 
 | 
Limitações
As ponderações personalizadas não suportam a importação de modelos quantizados.
Ficheiros do modelo
Tem de fornecer os ficheiros do modelo no formato de pesos do Hugging Face. Para mais informações sobre o formato de ponderações do Hugging Face, consulte o artigo Use modelos do Hugging Face.
Se não forem fornecidos os ficheiros necessários, a implementação do modelo pode falhar.
Esta tabela apresenta os tipos de ficheiros de modelos, que dependem da arquitetura do modelo:
| Conteúdo do ficheiro de modelo | Tipo de ficheiro | 
|---|---|
| Configuração do modelo | 
 | 
| Pesos do modelo | 
 | 
| Índice de pesos | 
 | 
| Ficheiros do tokenizador | 
 | 
Localizações
Pode implementar modelos personalizados em todas as regiões a partir dos serviços do Model Garden.
Pré-requisitos
Esta secção demonstra como implementar o 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: a sua região. Por exemplo, uscentral1.
- MODEL_GCS: o seu modelo Google Cloud . Por exemplo, gs://custom-weights-fishfooding/meta-llama/Llama-3.2-1B-Instruct.
- PROJECT_ID: o ID do seu projeto.
- MODEL_ID: o ID do seu 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 quantidade de aceleradores.
- PROMPT: o seu comando de texto. 
- Na Google Cloud consola, aceda à página Model Garden. 
- Clique em Implementar modelo com ponderações personalizadas. É apresentado o painel Implemente um modelo com ponderações personalizadas no Vertex AI. 
- Na secção Origem do modelo, faça o seguinte: - Clique em Procurar, escolha o contentor onde o modelo está armazenado e clique em Selecionar. 
- Opcional: introduza o nome do modelo no campo Nome do modelo. 
 
- Na secção Definições de implementação, faça o seguinte: - No campo Região, selecione a sua região e clique em OK. 
- No campo Especificação da máquina, selecione a especificação da máquina que é usada para implementar o seu modelo. 
- Opcional: no campo Nome do ponto final, o ponto final do seu modelo é apresentado por predefinição. No entanto, pode introduzir um nome de ponto final diferente no campo. 
 
- Clique em Implementar modelo com ponderações personalizadas. 
- Na Google Cloud consola, aceda à página Model Garden. 
- Clique em Ver os meus pontos finais e modelos. 
- Selecione a sua região na lista Região. 
- Para obter o ID do ponto final e o URL do ponto final, clique no ponto final na secção Os meus pontos finais. - O ID do ponto final é apresentado no campo ID do ponto final. - O URL do seu ponto final público é apresentado no campo Ponto final dedicado. 
- Para obter o ID do modelo, encontre o seu modelo na secção Modelos implementados e siga estes passos: - Clique no nome do modelo implementado no campo Modelo.
- Clique em Detalhes da versão. O ID do modelo é apresentado no campo ID do modelo.
 
- Para mais informações sobre os modelos implementados autonomamente, consulte o artigo Vista geral dos modelos implementados autonomamente.
- Para mais informações sobre o Model Garden, consulte o artigo Vista geral do Model Garden.
- Para mais informações sobre a implementação de modelos, consulte o artigo Use modelos no Model Garden.
- Use modelos abertos Gemma
- Use modelos abertos do Llama
- Use modelos abertos da Hugging Face
Este tutorial pressupõe que está a usar a Cloud Shell para interagir com o Google Cloud. Se quiser usar uma shell diferente da Cloud Shell, faça a seguinte configuração adicional:
Implemente o modelo personalizado
Esta secção demonstra como implementar o seu modelo personalizado.
Se estiver a usar a interface de linhas de comando (CLI), o Python ou o JavaScript, substitua as seguintes variáveis por um valor para que os exemplos de código funcionem:
Consola
Os passos seguintes mostram como usar a Google Cloud consola para implementar o seu modelo com ponderações personalizadas.
CLI gcloud
Este comando demonstra como implementar o modelo numa região específica.
gcloud ai model-garden models deploy --model=${MODEL_GCS} --region ${REGION}
Este comando demonstra como implementar o modelo numa região específica com o respetivo tipo de máquina, tipo de acelerador e número de aceleradores. Se quiser selecionar uma configuração de máquina específica, tem de definir 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)
Em alternativa, não tem de transmitir um parâmetro ao 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}"'",
  },
}'
Em alternativa, pode usar 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
    }
  }
}'
Faça uma consulta
Após a implementação do modelo, as ponderações personalizadas suportam o ponto final dedicado público. Pode enviar consultas através da API ou do SDK.
Antes de enviar consultas, tem de obter o URL do ponto final, o ID do ponto final e o ID do modelo, que estão disponíveis na Google Cloud consola.
Siga estes passos para obter as informações:
Depois de obter as informações do ponto final e do modelo implementado, consulte os seguintes exemplos de código para saber como enviar um pedido de inferência ou consulte o artigo Envie um pedido de inferência online para um ponto final público dedicado.
API
Os exemplos de código seguintes demonstram diferentes formas de usar a API com base no seu exemplo de utilização.
Chat completion (unary)
Este pedido de exemplo envia uma mensagem de chat completa para o modelo e recebe uma resposta num único bloco após a geração da resposta completa. Isto é 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)
Este pedido é a versão de streaming do pedido de conclusão de chat unário. Ao adicionar "stream": true ao pedido, o modelo envia a respetiva resposta parte por parte à medida que é gerada. Isto é útil para criar um efeito de máquina de escrever em tempo real numa aplicação 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?"
      }
    ]
  }'
Prever
Este pedido envia um comando direto para obter uma inferência de um modelo. Isto é usado frequentemente para tarefas que não são necessariamente conversacionais, como a classificação ou o resumo 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 não processada
Este pedido é uma versão de streaming do pedido Predict. Ao usar o ponto final :streamRawPredict e incluir "stream": true, este pedido envia um comando direto e recebe a saída do modelo como um fluxo contínuo de dados à medida que são gerados, o que é semelhante ao pedido de conclusão de chat com 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 desse modelo.
  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 ver outro exemplo de como usar a API, consulte o bloco de notas Import Custom Weights.