Le déploiement de modèles avec des pondérations personnalisées est une offre en version Preview. Vous pouvez affiner des modèles en fonction d'un ensemble prédéfini de modèles de base et déployer vos modèles personnalisés sur Vertex AI Model Garden. Vous pouvez déployer vos modèles personnalisés à l'aide de l'importation de poids personnalisés en important vos artefacts de modèle dans un bucket Cloud Storage de votre projet. Cette opération s'effectue en un clic dans Vertex AI.
La compatibilité de VPC Service Controls avec les pondérations personnalisées est disponible.
Modèles compatibles
La version bêta publique de la fonctionnalité Déployer des modèles avec des pondérations personnalisées est compatible avec les modèles de base suivants :
| Nom du modèle | Version |
|---|---|
| Llama |
|
| Gemma |
|
| Qwen |
|
| Deepseek |
|
| Mistral et Mixtral |
|
| Phi-4 |
|
| OpenAI OSS |
|
Limites
Les pondérations personnalisées ne sont pas compatibles avec l'importation de modèles quantifiés.
Fichiers de modèle
Vous devez fournir les fichiers de modèle au format de pondérations Hugging Face. Pour en savoir plus sur le format des poids Hugging Face, consultez Utiliser des modèles Hugging Face.
Si les fichiers requis ne sont pas fournis, le déploiement du modèle peut échouer.
Ce tableau liste les types de fichiers de modèle, qui dépendent de l'architecture du modèle :
| Contenu du fichier modèle | Type de fichier |
|---|---|
| Configuration du modèle |
|
| Pondérations de modèle |
|
| Indice de pondération |
|
| Fichier(s) du tokenizer |
|
Emplacements
Vous pouvez déployer des modèles personnalisés dans toutes les régions à partir des services Model Garden.
Prérequis
Cette section explique comment déployer votre modèle personnalisé.
Avant de commencer
- 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 : votre région. Par exemple,
uscentral1. - MODEL_GCS : votre modèle Google Cloud . Par exemple,
gs://custom-weights-fishfooding/meta-llama/Llama-3.2-1B-Instruct. - PROJECT_ID : ID de votre projet.
- MODEL_ID : ID de votre modèle.
- MACHINE_TYPE : type de votre machine. Exemple :
g2-standard-12. - ACCELERATOR_TYPE : type d'accélérateur. Exemple :
NVIDIA_L4. - ACCELERATOR_COUNT : nombre d'accélérateurs.
PROMPT : votre requête textuelle.
Dans la console Google Cloud , accédez à la page Model Garden.
Cliquez sur Déployer un modèle avec des pondérations personnalisées. Le volet Déployer un modèle avec des pondérations personnalisées s'affiche.
Dans la section Source du modèle, procédez comme suit :
Cliquez sur Parcourir, puis sélectionnez le bucket dans lequel votre modèle est stocké et cliquez sur Sélectionner.
Facultatif : Saisissez le nom de votre modèle dans le champ Nom du modèle.
Dans la section Paramètres de déploiement, procédez comme suit :
Dans le champ Région, sélectionnez votre région, puis cliquez sur OK.
Dans le champ Spécifications de la machine, sélectionnez les spécifications de la machine qui seront utilisées pour déployer votre modèle.
Facultatif : Dans le champ Nom du point de terminaison, le point de terminaison de votre modèle s'affiche par défaut. Toutefois, vous pouvez saisir un autre nom de point de terminaison dans le champ.
Si votre projet applique VPC-SC ou si vous préférez un accès privé, sélectionnez Privé (Private Service Connect) dans le champ Accès au point de terminaison. Sinon, sélectionnez Public.
Si vous utilisez Private Service Connect, saisissez les ID des projets dans lesquels vos clients de requête s'exécutent dans le champ ID des projets, ou cliquez sur Sélectionner des ID de projet pour afficher une boîte de dialogue contenant les ID de projet.
Si vous cliquez sur Sélectionner des ID de projet, procédez comme suit :
- Recherchez le projet contenant le code qui tente d'accéder au modèle.
- Cochez la case de votre projet.
- Cliquez sur Sélectionner.
Cliquez sur Déployer.
Dans la console Google Cloud , accédez à la page Model Garden.
Cliquez sur Afficher mes points de terminaison et modèles.
Dans le tableau Mes points de terminaison, cochez le point de terminaison que vous venez de déployer dans la colonne Nom. La page Détails s'affiche.
Cliquez sur le modèle dans le tableau Modèles déployés.
Sélectionnez la page Détails de la version. L'ID du modèle s'affiche dans la ligne Variables d'environnement du tableau.
- Les clients sur des réseaux connectés au réseau VPC du point de terminaison à l'aide de la connectivité hybride peuvent accéder au point de terminaison. Pour en savoir plus, consultez Accéder aux API Google via des points de terminaison.
- Les clients sur des réseaux VPC appairés ne peuvent pas accéder au point de terminaison.
Dans la console Google Cloud , accédez à la page Private Service Connect. La page Points de terminaison connectés s'affiche.
Cliquez sur + Connecter un point de terminaison. La page Connecter un point de terminaison s'affiche.
Sélectionnez une option dans le champ Cible. Vous pouvez choisir API Google qui donne accès à la plupart des API et services Google , ou Service publié qui donne accès à un service publié.
Dans la section Détails de la cible, sélectionnez une valeur dans la liste Champ d'application et une valeur dans la liste Type de bundle.
Dans la section Détails du point de terminaison, procédez comme suit :
- Saisissez un nom dans le champ Nom du point de terminaison.
- Sélectionnez une valeur dans la liste Réseau. Sélectionnez un réseau VPC situé dans votre projet. Si vous devez créer un point de terminaison PSC dans un projet de service qui utilise un réseau VPC partagé dans un projet hôte, utilisez Google Cloud CLI ou envoyez une requête API.
- Sélectionnez une valeur dans la liste Adresse IP.
Développez la section Annuaire des services.
Sélectionnez une région dans la liste Région.
Sélectionnez un espace de noms dans la liste Espace de noms.
Cliquez sur Ajouter un point de terminaison. Le tableau Points de terminaison est mis à jour avec une ligne pour votre nouveau point de terminaison.
Dans la console Google Cloud , accédez à la page Model Garden.
Cliquez sur Afficher mes points de terminaison et modèles.
Sélectionnez votre région dans la liste Région.
Pour obtenir l'ID et l'URL du point de terminaison, cliquez sur votre point de terminaison dans la section Mes points de terminaison.
L'ID de votre point de terminaison s'affiche dans le champ ID du point de terminaison.
L'URL de votre point de terminaison public s'affiche dans le champ Point de terminaison dédié.
Pour obtenir l'ID du modèle, recherchez votre modèle dans la section Modèles déployés, puis procédez comme suit :
- Cliquez sur le nom de votre modèle déployé dans le champ Modèle.
- Cliquez sur Détails de la version. L'ID de votre modèle s'affiche dans le champ ID du modèle.
- Pour en savoir plus sur les points de terminaison privés dédiés à la prédiction en ligne Vertex AI, consultez Utiliser des points de terminaison privés dédiés basés sur Private Service Connect pour l'inférence en ligne.
- Pour en savoir plus sur les modèles déployés par vous-même, consultez Présentation des modèles déployés par vous-même.
- Pour en savoir plus sur Model Garden, consultez Présentation de Model Garden.
- Pour en savoir plus sur le déploiement de modèles, consultez Utiliser des modèles dans Model Garden.
- Utiliser les modèles ouverts Gemma
- Utiliser les modèles ouverts Llama
- Utiliser les modèles ouverts Hugging Face
Ce tutoriel suppose que vous utilisez Cloud Shell pour interagir avec Google Cloud. Si vous souhaitez utiliser un autre shell au lieu de Cloud Shell, exécutez la configuration supplémentaire suivante :
Déployer le modèle personnalisé
Cette section explique comment déployer votre modèle personnalisé.
Si vous utilisez l'interface de ligne de commande (CLI), Python ou JavaScript, remplacez les variables suivantes par une valeur pour que vos exemples de code fonctionnent :
Console
Les étapes suivantes vous expliquent comment utiliser la console Google Cloud pour déployer votre modèle avec des pondérations personnalisées.
CLI gcloud
Cette commande montre comment déployer le modèle dans une région spécifique.
gcloud ai model-garden models deploy --model=${MODEL_GCS} --region ${REGION}
Cette commande montre comment déployer le modèle dans une région spécifique avec son type de machine, son type d'accélérateur et son nombre d'accélérateurs. Si vous souhaitez sélectionner une configuration de machine spécifique, vous devez définir les trois champs.
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)
Vous pouvez également ne pas transmettre de paramètre à la méthode 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}"'",
},
}'
Vous pouvez également utiliser l'API pour définir explicitement le type de machine.
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
}
}
}'
Déployer à l'aide de l'API
VPC Service Controls ne fonctionne qu'avec le point de terminaison privé dédié.
Vous devez donc définir private_service_connect_config dans l'exemple de code suivant, qui montre comment effectuer un déploiement à l'aide de l'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
}
}
}'
Obtenir l'ID du point de terminaison et l'ID du modèle à l'aide de la console Google Cloud
Une fois le déploiement terminé, procédez comme suit :
Configurer un point de terminaison Private Service Connect
Vous êtes en train d'ajouter un point de terminaison pour accéder aux API Google . Ce point de terminaison peut être utilisé dans toutes les régions du réseau VPC que vous sélectionnez. Tenez également compte des points suivants :
Répertorier le point de terminaison pour obtenir le rattachement de service
Cet exemple de code montre comment lister un point de terminaison pour obtenir une pièce jointe de service.
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"
Il s'agit de la réponse du point de terminaison de la liste.
{
"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"
]
}
}
Créer un point de terminaison Private Service Connect
Pour créer un Private Service Connect (PSC), procédez comme suit :
Effectuer une requête
Cette section explique comment créer un point de terminaison public et un point de terminaison privé.
Envoyer une requête à un point de terminaison public
Une fois votre modèle déployé, les pondérations personnalisées sont compatibles avec le point de terminaison public dédié. Vous pouvez envoyer des requêtes à l'aide de l'API ou du SDK.
Avant d'envoyer des requêtes, vous devez obtenir l'URL, l'ID et l'ID de modèle de votre point de terminaison, qui sont disponibles dans la console Google Cloud .
Pour obtenir ces informations, procédez comme suit :
Une fois que vous avez obtenu les informations sur votre point de terminaison et votre modèle déployé, consultez les exemples de code suivants pour savoir comment envoyer une requête d'inférence ou consultez Envoyer une requête d'inférence en ligne à un point de terminaison public dédié.
API
Les exemples de code suivants montrent différentes façons d'utiliser l'API en fonction de votre cas d'utilisation.
Complétion de chat (unaire)
Cet exemple de requête envoie un message de chat complet au modèle et obtient une réponse en un seul bloc une fois la réponse entière générée. Cela revient à envoyer un message et à recevoir une réponse complète unique.
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?"
}
]
}'
Complétion de chat (streaming)
Cette requête est la version de streaming de la requête de complétion de conversation unaire. En ajoutant "stream": true à la requête, le modèle envoie sa réponse fragment par fragment à mesure qu'elle est générée. Cette fonctionnalité est utile pour créer un effet de machine à écrire en temps réel dans une application 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?"
}
]
}'
Prédire
Cette requête envoie un prompt direct pour obtenir une inférence à partir d'un modèle. Il est souvent utilisé pour des tâches qui ne sont pas nécessairement conversationnelles, comme la synthèse ou la classification de texte.
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
}
]
}'
Prédiction brute
Cette requête est une version de flux de la requête Predict. En utilisant le point de terminaison :streamRawPredict et en incluant "stream": true, cette requête envoie une requête directe et reçoit la sortie du modèle sous forme de flux continu de données à mesure qu'elles sont générées, ce qui est semblable à la requête de streaming pour la finalisation de la discussion.
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
Cet exemple de code utilise le SDK pour envoyer une requête à un modèle et obtenir une réponse de ce modèle.
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)
Envoyer une requête à un point de terminaison privé
Vous pouvez tester votre requête à l'aide d'un notebook ou d'une VM dans le projet autorisé.
Cet exemple de requête vous permet de remplacer les variables par votre adresse IP, votre projet, votre ID de point de terminaison et votre ID de modèle (obtenu à l'étape de déploiement ci-dessus).
curl
Complétion 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?" }]}'
Prédiction
$ 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
}
]
}'
Pour obtenir un autre exemple d'utilisation de l'API, consultez le notebook d'importation de pondérations personnalisées.