Il deployment di modelli con pesi personalizzati è un'offerta in anteprima. Puoi ottimizzare i modelli in base a un insieme predefinito di modelli di base ed eseguire il deployment dei modelli personalizzati su Vertex AI Model Garden. Puoi eseguire il deployment dei tuoi modelli personalizzati utilizzando l'importazione di pesi personalizzati caricando gli artefatti del modello in un bucket Cloud Storage nel tuo progetto, un'esperienza con un solo clic in Vertex AI.
Modelli supportati
L'anteprima pubblica di Esegui il deployment di modelli con pesi personalizzati è supportata dai seguenti modelli di base:
Nome modello | Versione |
---|---|
Llama |
|
Gemma |
|
Qwen |
|
Deepseek |
|
Mistral e Mixtral |
|
Phi-4 |
|
OpenAI OSS |
|
Limitazioni
I pesi personalizzati non supportano l'importazione di modelli quantizzati.
File del modello
Devi fornire i file del modello nel formato dei pesi di Hugging Face. Per ulteriori informazioni sul formato dei pesi di Hugging Face, consulta Utilizzare i modelli Hugging Face.
Se i file richiesti non vengono forniti, il deployment del modello potrebbe non riuscire.
Questa tabella elenca i tipi di file del modello, che dipendono dall'architettura del modello:
Contenuti del file modello | Tipo di file |
---|---|
Configurazione del modello |
|
Pesi del modello |
|
Indice di peso |
|
File del tokenizzatore |
|
Località
Puoi eseguire il deployment di modelli personalizzati in tutte le regioni dai servizi Model Garden.
Prerequisiti
Questa sezione mostra come eseguire il deployment del modello personalizzato.
Prima di iniziare
- 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: la tua regione. Ad esempio:
uscentral1
. - MODEL_GCS: il tuo modello Google Cloud . Ad esempio:
gs://custom-weights-fishfooding/meta-llama/Llama-3.2-1B-Instruct
. - PROJECT_ID: il tuo ID progetto.
- MODEL_ID: il tuo ID modello.
- MACHINE_TYPE: il tipo di macchina. Ad esempio
g2-standard-12
. - ACCELERATOR_TYPE: il tipo di acceleratore. Ad esempio
NVIDIA_L4
. - ACCELERATOR_COUNT: il numero di acceleratori.
PROMPT: il prompt di testo.
Nella console Google Cloud , vai alla pagina Model Garden.
Fai clic su Esegui il deployment del modello con pesi personalizzati. Viene visualizzato il riquadro Esegui il deployment di un modello con pesi personalizzati su Vertex AI.
Nella sezione Origine modello, segui questi passaggi:
Fai clic su Sfoglia, scegli il bucket in cui è memorizzato il modello e fai clic su Seleziona.
(Facoltativo) Inserisci il nome del modello nel campo Nome modello.
Nella sezione Impostazioni di deployment, segui questi passaggi:
Nel campo Regione, seleziona la tua regione e fai clic su Ok.
Nel campo Specifica macchina, seleziona la specifica della macchina, che viene utilizzata per il deployment del modello.
(Facoltativo) Nel campo Nome endpoint, l'endpoint del modello viene visualizzato per impostazione predefinita. Tuttavia, puoi inserire un nome endpoint diverso nel campo.
Fai clic su Esegui il deployment del modello con pesi personalizzati.
Nella console Google Cloud , vai alla pagina Model Garden.
Fai clic su Visualizza i miei endpoint e i miei modelli.
Seleziona la tua regione dall'elenco Regione.
Per ottenere l'ID endpoint e l'URL endpoint, fai clic sull'endpoint nella sezione I miei endpoint.
L'ID endpoint viene visualizzato nel campo ID endpoint.
L'URL dell'endpoint pubblico viene visualizzato nel campo Endpoint dedicato.
Per ottenere l'ID modello, trova il tuo modello elencato nella sezione Modelli di cui è stato eseguito il deployment e segui questi passaggi:
- Fai clic sul nome del modello di cui è stato eseguito il deployment nel campo Modello.
- Fai clic su Dettagli della versione. L'ID modello viene visualizzato nel campo ID modello.
- Per saperne di più sui modelli con deployment automatico, consulta Panoramica dei modelli con deployment automatico.
- Per ulteriori informazioni su Model Garden, consulta la panoramica di Model Garden.
- Per ulteriori informazioni sul deployment dei modelli, consulta Utilizzare i modelli in Model Garden.
- Utilizzare i modelli Open di Gemma
- Utilizzare modelli Open Llama
- Usare i modelli Open di Hugging Face
Questo tutorial presuppone che tu stia utilizzando Cloud Shell per interagire con Google Cloud. Se vuoi utilizzare una shell diversa da Cloud Shell, esegui la seguente configurazione aggiuntiva:
Esegui il deployment del modello personalizzato
Questa sezione mostra come eseguire il deployment del modello personalizzato.
Se utilizzi l'interfaccia a riga di comando (CLI), Python o JavaScript, sostituisci le seguenti variabili con un valore per far funzionare gli esempi di codice:
Console
I seguenti passaggi mostrano come utilizzare la console Google Cloud per eseguire il deployment del modello con pesi personalizzati.
Interfaccia a riga di comando gcloud
Questo comando mostra come eseguire il deployment del modello in una regione specifica.
gcloud ai model-garden models deploy --model=${MODEL_GCS} --region ${REGION}
Questo comando mostra come eseguire il deployment del modello in una regione specifica con il tipo di macchina, il tipo di acceleratore e il numero di acceleratori. Se vuoi selezionare una configurazione specifica della macchina, devi impostare tutti e tre i campi.
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)
In alternativa, non devi passare un parametro al metodo
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}"'",
},
}'
In alternativa, puoi utilizzare l'API per impostare esplicitamente il tipo di macchina.
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
}
}
}'
Eseguire una query
Una volta eseguito il deployment del modello, i pesi personalizzati supportano l'endpoint pubblico dedicato. Puoi inviare query utilizzando l'API o l'SDK.
Prima di inviare query, devi ottenere l'URL dell'endpoint, l'ID endpoint e l'ID modello, disponibili nella console Google Cloud .
Per ottenere le informazioni, segui questi passaggi:
Dopo aver ottenuto le informazioni sull'endpoint e sul modello di cui è stato eseguito il deployment, consulta i seguenti esempi di codice per scoprire come inviare una richiesta di inferenza oppure consulta Invia una richiesta di inferenza online a un endpoint pubblico dedicato.
API
I seguenti esempi di codice mostrano diversi modi di utilizzare l'API in base al tuo caso d'uso.
Completamento della chat (unario)
Questa richiesta di esempio invia un messaggio di chat completo al modello e riceve una risposta in un unico blocco dopo che l'intera risposta è stata generata. È simile all'invio di un messaggio e alla ricezione di una singola risposta 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?"
}
]
}'
Completamento della chat (streaming)
Questa richiesta è la versione di streaming della richiesta di completamento della chat unaria. Se
aggiungi "stream": true
alla richiesta, il modello invia la risposta pezzo per
pezzo man mano che viene generata. Ciò è utile per creare un effetto in tempo reale,
simile a quello di una macchina da scrivere in un'applicazione di 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?"
}
]
}'
Previsione
Questa richiesta invia un prompt diretto per ottenere un'inferenza da un modello. Viene spesso utilizzato per attività che non sono necessariamente conversazionali, come il riepilogo o la classificazione del testo.
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
}
]
}'
Raw predict
Questa richiesta è una versione di streaming della richiesta Predict. Utilizzando l'endpoint
:streamRawPredict
e includendo "stream": true
, questa richiesta
invia un prompt diretto e riceve l'output del modello come flusso continuo
di dati man mano che vengono generati, in modo simile alla richiesta
di completamento della chat in 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
Questo esempio di codice utilizza l'SDK per inviare una query a un modello e ricevere una risposta da quel modello.
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)
Per un altro esempio di utilizzo dell'API, consulta il notebook Importa pesi personalizzati.