L'ajustement d'un modèle d'intelligence artificielle (IA) générative tel que Gemma modifie le comportement du modèle. Vous affinez généralement Gemma dans le but d'améliorer ses performances sur une tâche ou un domaine spécifiques, ou pour mieux remplir un rôle, comme le service client. Les modèles Gemma sont publiés avec des pondérations ouvertes, ce qui signifie que vous pouvez les modifier, ce qui modifie ensuite le comportement du modèle. Voici les étapes générales pour affiner un modèle Gemma :
Choisir un framework
Les modèles Gemma sont compatibles avec différents frameworks de réglage de l'IA. Chaque framework offre différents avantages et est généralement limité à un format de modèle spécifique. Voici des guides pour ajuster les modèles Gemma avec différents frameworks :
- Keras avec LoRA
- Bibliothèque Gemma pour JAX
- Hugging Face
- Google Cloud GKE (GPU multiples avec HF Transformers)
- Google Cloud Vertex AI
- Unsloth
- Axolotl
- Keras utilisant le réglage distribué
Assurez-vous que le format de modèle de déploiement souhaité, tel que le format Keras, Safetensors ou GGUF, est pris en charge en tant que sortie par le framework choisi.
Collecter des données
Le réglage du modèle nécessite des données. Les données de réglage se composent généralement de paires de données d'entrée avec la réponse attendue. De nombreux ensembles de données publics sont disponibles en ligne pour l'entraînement sur différentes tâches ou sorties. Par exemple, si vous souhaitez entraîner un modèle Gemma à traduire des descriptions de pièces automobiles en numéros de pièces, votre ensemble de données peut inclure les éléments suivants :
training_data = [
{"input_text": "Part number for A4 brake caliper", "output_text": "4M0615107BS"},
{"input_text": "Part number for Beetle fuel pump", "output_text": "6A127026H"},
{"input_text": "Part number for Camaro cylinder head", "output_text": "12711770"},
]
Si vous souhaitez qu'un modèle Gemma effectue un ensemble spécifique de tâches ou de rôles, vous devez généralement compiler un ensemble de données présentant plusieurs variantes de cette tâche. La quantité de données dont vous avez besoin pour ajuster un modèle dépend de vos objectifs, en particulier de l'ampleur du changement de comportement que vous souhaitez obtenir du modèle et de la qualité de ses performances en fonction de la tâche à accomplir et du niveau de variation des données d'entrée.
En général, vous devez commencer par un petit ensemble de données pour l'ajustement de votre tâche, ajuster les paramètres d'entraînement et ajouter des données jusqu'à ce que vous obteniez les performances de tâche qui répondent à vos besoins. Certaines de nos applications exemples montrent que vous pouvez influencer le comportement d'un modèle Gemma avec seulement 20 paires de requêtes et de réponses. Pour en savoir plus, consultez Créer un assistant d'IA pour les e-mails professionnels avec Gemma et Effectuer des tâches dans des langues parlées avec Gemma.
Régler et tester le modèle
Une fois que vous disposez d'un framework et de données de réglage, vous pouvez commencer le processus de réglage du modèle Gemma. Lorsque vous effectuez un réglage, vous disposez de plusieurs options qui ont une incidence sur les ressources dont vous avez besoin pour le réaliser. Vous devez également disposer d'un plan de test pour votre modèle réglé afin d'évaluer s'il fonctionne comme vous le souhaitez après le réglage.
Affinage d'un sous-ensemble de paramètres (PEFT)
Lorsque vous affinez un modèle à poids ouverts tel que Gemma, vous avez la possibilité d'ajuster tous les paramètres du modèle ou d'utiliser une technique d'ajustement efficace en termes de paramètres et moins gourmande en ressources, qui met à jour un sous-ensemble de ces paramètres. Une approche de réglage complet signifie que lorsque vous appliquez vos données de réglage, vous calculez de nouvelles pondérations pour tous les paramètres du modèle. Cette approche nécessite beaucoup de calculs et de mémoire, car vous effectuez ces calculs pour des milliards de paramètres. L'utilisation d'approches de réglage moins gourmandes en ressources, appelées optimisation du réglage des paramètres (PEFT), y compris des techniques comme le réglage de l'adaptateur de rang faible (LoRA), peut produire des résultats similaires avec moins de ressources de calcul. Pour savoir comment effectuer des réglages avec moins de ressources à l'aide de LoRA, consultez Affiner les modèles Gemma dans Keras à l'aide de LoRA et Affiner les modèles Gemma dans Hugging Face.
Tester les modèles réglés
Une fois que vous avez ajusté un modèle pour une tâche spécifique, vous devez tester ses performances par rapport à l'ensemble des tâches que vous souhaitez qu'il effectue. Vous devez tester votre modèle avec des tâches ou des requêtes pour lesquelles il n'a pas été spécifiquement entraîné. La façon dont vous testez votre modèle réglé dépend de la tâche que vous souhaitez qu'il exécute et de la précision avec laquelle vous gérez les entrées et les sorties du modèle. Une méthode courante pour gérer les tests de modèles génératifs consiste à utiliser des cas de réussite, d'échec et limites :
- Tests de réussite : requêtes que le modèle ajusté doit toujours pouvoir exécuter avec succès.
- Tests d'échec : requêtes que le modèle ajusté ne doit jamais pouvoir effectuer ou qu'il doit refuser explicitement d'effectuer, le cas échéant.
- Tests limites : requêtes que le modèle affiné doit pouvoir exécuter si elles se situent dans une limite ou un ensemble de limites définies de comportement de sortie acceptable.
Lorsque vous testez les conditions de défaillance ou limites de votre application d'IA générative, vous devez également appliquer les approches, techniques et outils de sécurité de l'IA générative décrits dans le kit d'outils pour une IA générative responsable.
Déployer le modèle
Une fois le réglage et les tests terminés, il est temps de déployer votre modèle. Vous pouvez généralement consulter la documentation du framework de votre choix pour savoir comment déployer un modèle ajusté.
Si vous déployez un modèle avec des pondérations ajustées LoRA, notez qu'avec cette technique, vous déployez généralement à la fois le modèle d'origine et ses pondérations avec les pondérations LoRA comme couche de calcul supplémentaire pour le modèle.