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.create
permission. 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.enable
permission. 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.create
permission. 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.enable
permission. 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.