Accéder au contenu
IA et machine learning

Lancement de Gemma 3 sur Vertex AI

27 juin 2025
Erwin Huizenga

AI engineering and evangelism manager

Ivan Nardini

Developer Relations Engineer

Le nouveau modèle Gemma 3 est désormais disponible dans le « Model Garden » de Vertex AI. Vous pouvez donc dès maintenant le personnaliser et le déployer. Grâce aux conteneurs préconfigurés et aux outils de déploiement intégrés à Vertex AI, vous pouvez rapidement adapter Gemma 3 à vos cas d’usage spécifiques.

Dans cet article, nous vous proposons de découvrir comment affiner Gemma 3 avec Vertex AI, puis le déployer facilement en production.

Gemma 3 sur Vertex AI : PEFT et déploiement avec vLLM

L'entraînement et le déploiement de LLM peuvent s’avérer coûteux en ressources et en temps. C’est pourquoi nous sommes ravis d’annoncer que Gemma 3 prend en charge la technique PEFT (Parameter-Efficient Fine-Tuning) et qu’il peut être déployé de manière optimisée via vLLM dans le Model Garden de Vertex AI.

Le fine-tuning PEFT de Gemma 3 permet d’obtenir d’importants gains de précision et de performances tout en mobilisant bien moins de ressources informatiques qu’un entraînement complet. Le déploiement via vLLM est à la fois rapide et simple à mettre en œuvre. Grâce à son moteur d’inférence optimisé, vLLM maximise le débit tout en réduisant la latence, garantissant à vos applications IA un accès réactif et hautement évolutif à votre modèle personnalisé.

Voyons maintenant comment affiner et déployer votre modèle Gemma 3 sur Vertex AI.

Fine-tuning de Gemma 3 sur Vertex AI

Dans le Model Garden (jardin de modèles) de Vertex AI, vous pouvez affiner et déployer Gemma 3 en utilisant la méthode PEFT (LoRA) de Hugging Face, en seulement quelques étapes.
Avant d’exécuter le notebook, assurez-vous d’avoir bien suivi toutes les étapes préliminaires indiquées dans celui-ci.

Pour adapter Gemma 3 à votre cas d’usage, vous aurez besoin d’un jeu de données personnalisé. Le format recommandé est un fichier JSONL, dans lequel chaque ligne correspond à une chaîne JSON valide. Voici un exemple inspiré du jeu de données timdettmers/openassistant-guanaco :

Chargement en cours...

Chaque objet JSON doit contenir une clé text, qui doit correspondre au paramètre train_column. Sa valeur doit être une entrée d’entraînement unique, typiquement une chaîne de caractères. Vous pouvez importer votre jeu de données dans Google Cloud Storage (option recommandée) ou dans les datasets de Hugging Face.

Choisissez ensuite la variante de Gemma 3 la mieux adaptée à vos besoins. Par exemple, pour utiliser le modèle avec 1 milliard de paramètres :

Chargement en cours...

Vous pouvez personnaliser les paramètres du modèle ainsi que les paramètres du « job » (batch). Passons en revue quelques réglages clés.
LoRA (Low-Rank Adaptation) est une technique PEFT qui permet de réduire considérablement le nombre de paramètres à entraîner. Les paramètres suivants contrôlent le comportement de LoRA :

  • lora_rank : définit la dimension des matrices de mise à jour (un rang plus faible = moins de paramètres),
  • lora_alpha : applique un facteur d’échelle aux mises à jour LoRA,
  • lora_dropout : ajoute une régularisation pour éviter le surapprentissage.

Les valeurs ci-dessous constituent une bonne base pour commencer :

Chargement en cours...

Lors du fine-tuning de modèles de langage de grande taille (LLM), la précision est un facteur clé, qui influence à la fois la consommation mémoire et les performances. Un fine-tuning en basse précision, comme la quantification en 4 bits, permet de réduire l’empreinte mémoire du modèle final. En revanche, cela peut entraîner une légère perte de précision dans les contenus générés par rapport à des quantifications 8 bits ou float16.
Le paramètre train_precision permet de définir la précision numérique utilisée pendant le processus même d’entraînement.
Le choix de la bonne précision dépend de l’équilibre souhaité entre les contraintes en ressources et le niveau de précision attendu du modèle.

Chargement en cours...

L’optimisation des performances du modèle repose sur l’ajustement de plusieurs paramètres d’entraînement ayant un impact sur la vitesse, la stabilité et les capacités du modèle. Voici quelques-uns des paramètres essentiels à prendre en compte :

  • per_device_train_batch_size : définit la taille des batchs par GPU — des valeurs plus élevées accélèrent l’entraînement, mais nécessitent davantage de mémoire.
  • gradient_accumulation_steps : permet de simuler des batchs plus larges en accumulant les gradients sur plusieurs batchs plus petits — une solution plus économe en mémoire, au prix d’un temps d’entraînement plus long.
  • learning_rate : contrôle la taille des étapes d’optimisation — une valeur trop élevée peut provoquer une divergence du modèle, tandis qu’une valeur trop faible ralentit la convergence.
  • lr_scheduler_type : ajuste dynamiquement le taux d’apprentissage au cours de l’entraînement (par exemple via une décroissance linéaire), ce qui favorise une meilleure convergence et une plus grande précision.
  • La durée totale de l’entraînement peut être définie via max_steps (nombre total d’étapes d’entraînement) ou num_train_epochs (nombre d’époques). Si vous définissez à la fois max_steps et num_train_epochs, c’est la valeur de max_steps qui sera prioritaire : l’entraînement s’arrêtera une fois ce nombre d’étapes atteint, même si toutes les époques ne sont pas encore complètes.

Vous trouverez ci-dessous la configuration complète de l’entraînement, telle qu’elle apparaît dans le notebook officiel.

Chargement en cours...

Créez et exécutez ensuite un CustomContainerTrainingJob pour lancer le job de fine-tuning.

Chargement en cours...

Vous pouvez suivre la progression du fine-tuning via Tensorboard. Une fois le travail terminé, vous pouvez importer le modèle affiné dans le registre de modèles Vertex AI, puis le déployer sous forme de point d’accès d’inférence. Ce point d’accès – ou « endpoint » – sera utilisé par vos applications IA pour accéder à votre modèle personnalisé, Vertex AI se chargeant d’assurer la réactivité et la montée en charge de l’inférence pour assurer le bon fonctionnement de vos applications.

Déploiement de Gemma 3 sur Vertex AI

Le déploiement de Gemma 3 sur Vertex AI se fait en trois étapes seulement, en suivant la procédure décrite dans le notebook.

La première consiste à provisionner un endpoint dédié pour votre modèle Gemma 3. Cela vous permet de bénéficier d’un environnement managé et évolutif pour l’hébergement de votre modèle.
Utilisez la fonction create() pour définir le nom du endpoint (display_name) et allouez des ressources dédiées au modèle (dedicated_endpoint_enabled).

Chargement en cours...

Ensuite, enregistrez le modèle Gemma 3 dans le registre de modèles de Vertex AI.
Considérez ce registre comme un point central de gestion de vos modèles : il permet de suivre les différentes versions de votre modèle Gemma 3 (utile si vous l'améliorez par la suite) et constitue le point de départ pour tous vos déploiements.

Chargement en cours...

Cette étape comprend plusieurs paramètres de configuration importants, notamment la configuration du conteneur pour le déploiement de Gemma 3.

Pour mettre Gemma 3 à disposition sur Vertex AI, utilisez l’image Docker préconfigurée du vLLM (présente dans le Model Garden), qui permet une exécution rapide et efficace du modèle pour l’inférence. La configuration vLLM (vLLM recipe) permet de définir le comportement du serveur vLLM Gemma 3, à travers plusieurs paramètres :

  • tensor-parallel-size : permet de répartir le modèle sur plusieurs GPU si vous avez besoin de ressources de calcul supplémentaires,
  • gpu-memory-utilization : contrôle la quantité de mémoire GPU que vous souhaitez utiliser,
  • max-model-len : définit la longueur maximale de texte que le modèle peut traiter en une seule fois.

Des options avancées comme --enable-chunked-prefill et --enable-prefix-caching permettent d’optimiser les performances, notamment pour le traitement de textes longs.

D'autres paramètres de configuration requis par Vertex AI doivent également être définis pour le déploiement, tels que :

  • le port d’écoute du conteneur (8080 dans notre cas),
  • le chemin d’URL pour les requêtes de prédiction (ex. : "/generate"),
  • le chemin d’URL pour les vérifications d’état (ex. : "/ping"), ce qui permet à Vertex AI de surveiller l’état du modèle en temps réel.

Enfin, utilisez upload() pour regrouper cette configuration — le conteneur vLLM, les paramètres spécifiques au modèle et les instructions d’exécution — en une unité unique et centralisée au sein du registre de modèles Vertex AI. Cela facilitera grandement le déploiement et la gestion des versions.

Vous êtes maintenant prêt à déployer le modèle. Pour déployer le modèle enregistré sur le point d’accès, utilisez la méthode deploy() comme indiqué ci-dessous.

Chargement en cours...

Arrivé à cette étape, vous devez définir la configuration de calcul pour le déploiement, dont :

  • le type de machine virtuelle (par exemple "a3-highgpu-2g", via le paramètre machine_type) ;
  • le type d’accélérateur (comme les GPU "NVIDIA_L4", via accelerator_type) ;
  • le nombre d’accélérateurs à allouer, défini par accelerator_count.

Le déploiement du modèle peut prendre quelques minutes : vous pouvez en suivre l’état d’avancement en temps réel via Cloud Logging. Une fois le point d’accès opérationnel, le modèle peut être appelé via l’API ChatCompletion et intégré à vos applications comme indiqué ci-dessous.

Chargement en cours...

Selon la version de Gemma que vous déployez, l’API ChatCompletion permet également d’interroger le modèle avec des entrées multimodales (par exemple des images). Pour plus de détails, consultez la section « Deploy Gemma 3 4B, 12B and 27B multimodal models with vLLM on GPU » dans le notebook de la fiche du modèle (model card).

Prêt à vous lancer ?

Consultez dès maintenant la documentation Gemma 3 model card dans le Model Garden de Vertex AI pour commencer à l’utiliser.
Pour approfondir votre compréhension de l’architecture et des performances du modèle, référez-vous au guide développeur dédié à Gemma 3.

Publié dans