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 Vertex AI Model Garden. Pode implementar os seus modelos personalizados usando a importação de pesos personalizados 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.
O suporte dos VPC Service Controls para ponderações personalizadas está disponível.
Modelos suportados
A pré-visualização pública da funcionalidade Implementar 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 os ficheiros necessários não forem fornecidos, 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 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 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 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 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 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.
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 modelo é apresentado por predefinição. No entanto, pode introduzir um nome de ponto final diferente no campo.
Se o seu projeto aplicar o VPC-SC ou se preferir o acesso privado, selecione Privado (Private Service Connect) no campo Acesso ao ponto final. Caso contrário, selecione Público.
Se usar um Private Service Connect, introduza os IDs dos projetos no campo IDs dos projetos, que são os projetos onde os clientes de consultas são executados, ou clique em Selecionar IDs dos projetos para apresentar uma caixa de diálogo com IDs dos projetos.
Se clicar em Selecionar IDs dos projetos, faça o seguinte:
- Encontre o seu projeto que contém o código que está a tentar aceder ao modelo.
- Clique na caixa de verificação do seu projeto.
- Clique em Selecionar.
Clique em Implementar.
Na Google Cloud consola, aceda à página Model Garden.
Clique em Ver os meus pontos finais e modelos.
Na tabela Os meus pontos finais, verifique o ponto final que acabou de implementar na coluna Nome. É apresentada a página Detalhes.
Clique no modelo na tabela Modelos implementados.
Selecione a página Detalhes da versão. O ID do modelo é apresentado na linha Variáveis de ambiente da tabela.
- Os clientes em redes ligadas à rede VPC do ponto final através de conetividade híbrida podem aceder ao ponto final. Para mais informações, consulte o artigo Aceda às Google APIs através de pontos finais.
- Os clientes em redes VPCs com intercâmbio não podem aceder ao ponto final.
Na Google Cloud consola, aceda à página Private Service Connect. É apresentada a página Pontos finais ligados.
Clique em + Associar ponto final. É apresentada a página Ponto final de ligação.
Selecione uma opção no campo Destino. Pode escolher APIs Google que fornecem acesso à maioria das Google APIs e serviços ou Serviço publicado que fornece acesso a um serviço publicado.
Na secção Detalhes do alvo, selecione um valor na lista Âmbito e selecione um valor na lista Tipo de pacote.
Na secção Detalhes do ponto final, faça o seguinte:
- Introduza um nome no campo Nome do ponto final.
- Selecione um valor na lista Rede. Selecione uma rede de VPC localizada no seu projeto. Se tiver de criar um ponto final do PSC num projeto de serviço que use uma rede de VPC partilhada num projeto anfitrião, use a Google Cloud CLI ou envie um pedido de API.
- Selecione um valor na lista Endereço IP.
Expanda a secção Diretório de serviços.
Selecione uma região na lista Região.
Selecione um espaço de nomes na lista Espaço de nomes.
Clique em Adicionar ponto final. A tabela Pontos finais é atualizada com uma linha para o seu novo ponto final.
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 pontos finais privados dedicados da previsão online do Vertex AI, consulte o artigo Use pontos finais privados dedicados baseados no Private Service Connect para inferência online.
- Para mais informações sobre os modelos implementados automaticamente, consulte o artigo Vista geral dos modelos implementados automaticamente.
- 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 a implementação através da API
Os VPC Service Controls só funcionam com o ponto final dedicado privado.
Por conseguinte, tem de definir o private_service_connect_config no seguinte exemplo de código, que demonstra como implementar através da API:
curl
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
"https://us-central1-aiplatform.googleapis.com/v1beta1/projects/YOUR_PROJECT/locations/us-central1:deploy" \
-d '{
"custom_model": {
"model_id": "test-mg-deploy-092301",
"gcs_uri": "gs://YOUR_GCS_BUCKET"
},
"destination": "projects/YOUR_PROJECT/locations/us-central1",
"endpoint_config": {
"endpoint_display_name": "psc-ep1",
"private_service_connect_config": {
"enablePrivateServiceConnect": true,
"projectAllowlist": ["YOUR_PROJECT"]
}
},
"deploy_config": {
"dedicated_resources": {
"machine_spec": {
"machine_type": "g2-standard-24",
"accelerator_type": "NVIDIA_L4",
"accelerator_count": 2
},
"min_replica_count": 1,
"max_replica_count": 1
}
}
}'
Obtenha o ID do ponto final e o ID do modelo através da Google Cloud consola
Após a conclusão da implementação, siga estes passos:
Configure um Private Service Connect
Está a adicionar um novo ponto final para aceder às Google APIs. Este ponto final pode ser usado em todas as regiões da rede de VPC que selecionar. Além disso, considere o seguinte:
Ponto final da lista para obter a associação de serviços
Este exemplo de código demonstra como listar um ponto final para obter uma associação de serviço.
curl
$ curl \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
"https://us-central1-aiplatform.googleapis.com/v1beta1/projects/YOUR_PROJECT/locations/us-central1/endpoints/YOUR_ENDPOINT_ID"
Esta é a resposta do ponto final da lista.
{
"name": "projects/440968033208/locations/us-central1/endpoints/mg-endpoint-2c6ae2be-1491-43fe-b179-cb5a63e2c955",
"displayName": "psc-ep1",
"deployedModels": [
{
"id": "4026753529031950336",
"model": "projects/440968033208/locations/us-central1/models/mg-custom-1758645924",
"displayName": "null-null-null-1758645933",
"createTime": "2025-09-23T16:45:45.169195Z",
"dedicatedResources": {
"machineSpec": {
"machineType": "g2-standard-24",
"acceleratorType": "NVIDIA_L4",
"acceleratorCount": 2
},
"minReplicaCount": 1,
"maxReplicaCount": 1
},
"enableContainerLogging": true,
"privateEndpoints": {
"serviceAttachment": "projects/qdb392d34e2a11149p-tp/regions/us-central1/serviceAttachments/gkedpm-fbbc4061323c91c14ab4d961a2f8b0"
},
"modelVersionId": "1",
"status": {
"lastUpdateTime": "2025-09-23T17:26:10.031652Z",
"availableReplicaCount": 1
}
}
],
"trafficSplit": {
"4026753529031950336": 100
},
"etag": "AMEw9yPIWQYdbpHu6g6Mhpu1_10J062_oR9Jw9txrp8dFFbel7odLgSK8CGIogAUkR_r",
"createTime": "2025-09-23T16:45:45.169195Z",
"updateTime": "2025-09-23T17:13:36.320873Z",
"privateServiceConnectConfig": {
"enablePrivateServiceConnect": true,
"projectAllowlist": [
"ucaip-vpc-s-1605069239-dut-24"
]
}
}
Crie um Private Service Connect
Para criar uma ligação do Private Service Connect (PSC), siga estes passos:
Faça uma consulta
Esta secção explica como criar um ponto final público e um ponto final privado.
Faça uma consulta a um ponto final público
Após a implementação do modelo, os pesos personalizados 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.
Conclusão de chat (unária)
Este pedido de amostra 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 do 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 em tempo real semelhante a uma máquina de escrever 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)
Faça uma consulta para um ponto final privado
Pode testar a sua consulta usando um bloco de notas ou uma VM no projeto permitido.
Esta consulta de exemplo permite-lhe substituir as variáveis pelo seu IP, projeto, ID do ponto final e ID do modelo (obtido no passo de implementação acima)
curl
Conclusão de chat
curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" 'https://YOUR_IP/v1beta1/projects/YOUR_PROJECT_ID/locations/YOUR_LOCATION/endpoints/YOUR_ENDPOINT_ID/chat/completions' -d '{ "model": "YOUR_MODEL_ID", "max_tokens": 300, "messages": [{ "role": "user", "content": "how to tell the time by looking at sky?" }]}'
Prever
$ curl -k -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" 'https:/YOUR_IP/v1beta1/projects/YOUR_PROJECT_ID/locations/YOUR_LOCATION/endpoints/YOUR_ENDPOINT_ID:predict' -d '{
"instances": [
{
"prompt": "Summarize Goog stock performance",
"temperature": 0,
"top_p": 1,
"max_tokens": 154,
"ignore_eos": true
}
]
}'
Para ver outro exemplo de como usar a API, consulte o bloco de notas Import Custom Weights.