Implemente modelos com ponderações personalizadas

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
  • Llama-2: 7B e 13B
  • Llama-3.1: 8B e 70B
  • Llama-3.2: 1B, 3B
  • Llama-4: Scout-17B, Maverick-17B
  • CodeLlama-13B
Gemma
  • Gemma-2: 27B
  • Gemma-3: 1B, 4B, 3-12B, 27B
  • Medgemma: 4B, 27B-text
Qwen
  • Qwen2: 1,5 mil milhões
  • Qwen2.5: 0,5 mil milhões, 1,5 mil milhões, 7 mil milhões e 32 mil milhões
  • Qwen3: 0,6 B, 1,7 B, 8 B, 32 B, Qwen3-Coder-480B-A35B-Instruct, Qwen3-Next-80B-A3B-Instruct, Qwen3-Next-80B-A3B-Thinking
Deepseek
  • Deepseek-R1
  • Deepseek-V3
  • DeepSeek-V3.1
Mistral e Mixtral
  • Mistral-7B-v0.1
  • Mixtral-8x7B-v0.1
  • Mistral-Nemo-Base-2407
Phi-4
  • Phi-4-reasoning
OpenAI OSS
  • gpt-oss: 20B, 120B

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
  • config.json
Pesos do modelo
  • *.safetensors
  • *.bin
Índice de pesos
  • *.index.json
Ficheiros do tokenizador
  • tokenizer.model
  • tokenizer.json
  • tokenizer_config.json

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

  1. 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.
  2. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. 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 the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  5. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. 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 the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  8. In the Google Cloud console, activate Cloud Shell.

    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.

  9. 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:

    1. Install the Google Cloud CLI.

    2. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    3. To initialize the gcloud CLI, run the following command:

      gcloud init

    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:

    • 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.

    Consola

    Os passos seguintes mostram como usar a Google Cloud consola para implementar o seu modelo com ponderações personalizadas.

    1. Na Google Cloud consola, aceda à página Model Garden.

      Aceda ao Model Garden

    2. Clique em Implementar modelo com ponderações personalizadas. É apresentado o painel Implemente um modelo com ponderações personalizadas no Vertex AI.

    3. Na secção Origem do modelo, faça o seguinte:

      1. Clique em Procurar, escolha o contentor onde o modelo está armazenado e clique em Selecionar.

      2. Opcional: introduza o nome do modelo no campo Nome do modelo.

    4. Na secção Definições de implementação, faça o seguinte:

      1. No campo Região, selecione a sua região e clique em OK.

      2. No campo Especificação da máquina, selecione a especificação da máquina que é usada para implementar o seu modelo.

      3. 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.

    5. Clique em Implementar 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:

    1. Na Google Cloud consola, aceda à página Model Garden.

      Model Garden

    2. Clique em Ver os meus pontos finais e modelos.

    3. Selecione a sua região na lista Região.

    4. 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.

    5. Para obter o ID do modelo, encontre o seu modelo na secção Modelos implementados e siga estes passos:

      1. Clique no nome do modelo implementado no campo Modelo.
      2. Clique em Detalhes da versão. O ID do modelo é apresentado no campo ID do modelo.

    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.

    Saiba mais sobre os modelos implementados autonomamente na Vertex AI