Affiner avec l'API Gemini

Les stratégies de conception de requête, telles que les requêtes few-shot, ne produisent pas toujours les résultats dont vous avez besoin. Le réglage est un processus qui peut améliorer les performances de votre modèle sur des tâches spécifiques ou l'aider à respecter des exigences de sortie spécifiques lorsque les instructions ne sont pas suffisantes et que vous disposez d'un ensemble d'exemples illustrant les résultats souhaités.

Cette page explique comment affiner le modèle de texte utilisé par le service textuel de l'API Gemini.

Fonctionnement de l'affinage

L'objectif de l'affinage est d'améliorer encore les performances du modèle pour votre tâche spécifique. L'affinage consiste à fournir au modèle un ensemble de données d'entraînement contenant de nombreux exemples de la tâche. Pour les tâches de niche, vous pouvez obtenir des améliorations significatives des performances du modèle en ajustant le modèle sur un petit nombre d'exemples.

Vos données d'entraînement doivent être structurées sous la forme d'exemples avec des entrées de requête et des sorties de réponse attendues. Vous pouvez aussi régler des modèles à l'aide d'exemples de données directement dans Google AI Studio. L'objectif est d'apprendre au modèle à imiter le comportement ou la tâche voulus, en lui donnant de nombreux exemples illustrant ce comportement ou cette tâche.

Lorsque vous exécutez une tâche de réglage, le modèle apprend des paramètres supplémentaires qui l'aident à encoder les informations nécessaires pour effectuer la tâche souhaitée ou apprendre le comportement souhaité. Ces paramètres peuvent ensuite être utilisés au moment de l'inférence. Le résultat de la tâche de réglage est un nouveau modèle, qui est en fait une combinaison des nouveaux paramètres appris et du modèle d'origine.

Préparer votre ensemble de données

Avant de commencer l'affinage, vous avez besoin d'un ensemble de données avec lequel régler le modèle. Pour des performances optimales, les exemples de l'ensemble de données doivent être de haute qualité, variés et représentatifs des entrées et sorties réelles.

Format

Les exemples de votre ensemble de données doivent correspondre au trafic de production attendu. Si votre ensemble de données contient une mise en forme, des mots clés, des instructions ou des informations spécifiques, les données de production doivent utiliser le même format et contenir les mêmes instructions.

Par exemple, si les exemples de votre ensemble de données incluent "question:" et "context:", le trafic de production doit également être mis en forme de manière à inclure "question:" et "context:" dans le même ordre que les exemples de l'ensembles de données. Si vous excluez le contexte, le modèle ne peut pas reconnaître le modèle, même si la question exacte se trouvait dans un exemple de l'ensemble de données.

L'ajout d'une requête ou d'un préambule à chaque exemple de votre ensemble de données peut également contribuer à améliorer les performances du modèle réglé. Notez que si une requête ou un préambule sont inclus dans votre ensemble de données, ils doivent également l'être également dans l'invite du modèle réglé au moment de l'inférence.

Taille des données d'entraînement

Vous pouvez affiner un modèle avec seulement 20 exemples. Les données supplémentaires améliorent généralement la qualité des réponses. Vous devez cibler entre 100 et 500 exemples, en fonction de votre application. Le tableau suivant présente les tailles d'ensemble de données recommandées pour affiner un modèle de texte pour diverses tâches courantes:

Tâche Nombre d'exemples dans l'ensemble de données
Classification + de 100
Synthèse 100-500+
Rechercher des documents + de 100

Importer votre ensemble de données de réglage

Les données sont transmises de manière intégrée à l'aide de l'API ou via des fichiers importés dans Google AI Studio.

Cliquez sur le bouton Import (Importer) et suivez les instructions de la boîte de dialogue pour importer des données à partir d'un fichier, ou choisissez une requête structurée contenant des exemples à importer en tant qu'ensemble de données de réglage.

Bibliothèque cliente

Pour utiliser la bibliothèque cliente, fournissez le fichier de données dans l'appel createTunedModel. La taille du fichier ne doit pas dépasser 4 Mo. Consultez le guide de démarrage rapide pour l'optimisation des performances avec Python pour commencer.

cURL

Pour appeler l'API REST à l'aide de cURL, fournissez des exemples d'entraînement au format JSON à l'argument training_data. Consultez le guide de démarrage rapide pour le réglage avec cURL pour commencer.

Paramètres de réglage avancés

Lors de la création d'un job de réglage, vous pouvez spécifier les paramètres avancés suivants:

  • Époques:passe d'entraînement complet sur l'ensemble de l'ensemble d'entraînement de sorte que chaque exemple ait été traité une fois.
  • Taille de lot:ensemble d'exemples utilisés dans une itération d'entraînement. La taille de lot détermine le nombre d'exemples dans un lot.
  • Taux d'apprentissage:nombre à virgule flottante qui indique à l'algorithme la force d'ajustement des paramètres du modèle à chaque itération. Par exemple, un taux d'apprentissage de 0,3 ajusterait les pondérations et les biais trois fois plus efficacement qu'un taux d'apprentissage de 0,1. Les taux d'apprentissage élevés et faibles présentent des inconvénients qui leur sont propres et doivent être ajustés en fonction de votre cas d'utilisation.
  • Multiplicateur du taux d'apprentissage:le multiplicateur de taux modifie le taux d'apprentissage d'origine du modèle. Une valeur de 1 utilise le taux d'apprentissage d'origine du modèle. Les valeurs supérieures à 1 augmentent le taux d'apprentissage, tandis que les valeurs comprises entre 1 et 0 le réduisent.

Le tableau suivant présente les configurations recommandées pour affiner un modèle de fondation:

Hyperparamètre Valeur par défaut Ajustements recommandés
Époque 5

Si la perte commence à stagner avant cinq époques, utilisez une valeur plus faible.

Si la perte converge et ne semble pas se stabiliser, utilisez une valeur plus élevée.

Taille de lot 4
Taux d'apprentissage 0,001 Utilisez une valeur inférieure pour les ensembles de données plus petits.

La courbe de fonction de perte montre dans quelle mesure la prédiction du modèle s'écarte des prédictions idéales des exemples d'entraînement après chaque époque. Idéalement, vous devez arrêter l'entraînement au point le plus bas de la courbe, juste avant de stagner. Par exemple, le graphique ci-dessous montre que la courbe de fonction de perte se stabilise aux alentours de l'epoch 4 à 6, ce qui signifie que vous pouvez définir le paramètre Epoch sur 4 et obtenir les mêmes performances.

Graphique en courbes représentant la courbe de fonction de perte du modèle. La ligne présente un pic entre la première et la deuxième époque, puis diminue brusquement jusqu'à presque 0 et se stabilise après trois époques.

Vérifier l'état du job de réglage

Vous pouvez vérifier l'état de votre job de réglage dans l'onglet Ma bibliothèque de Google AI Studio ou en utilisant la propriété metadata du modèle réglé dans l'API Gemini.

Résoudre les erreurs

Cette section inclut des conseils sur la résolution des erreurs que vous pouvez rencontrer lors de la création du modèle réglé.

Authentification

Le réglage à l'aide de l'API et de la bibliothèque cliente nécessite une authentification de l'utilisateur. Une clé API seule ne suffit pas. Si une erreur 'PermissionDenied: 403 Request had insufficient authentication scopes' s'affiche, vous devez configurer l'authentification des utilisateurs.

Pour configurer les identifiants OAuth pour Python, consultez le tutoriel de configuration OAuth.

Modèles annulés

Vous pouvez annuler une tâche d'ajustement à tout moment avant qu'elle ne soit terminée. Cependant, les performances d'inférence d'un modèle annulé sont imprévisibles, en particulier si la tâche de réglage est annulée au début de l'entraînement. Si vous avez annulé l'entraînement parce que vous souhaitez arrêter l'entraînement à une époque antérieure, vous devez créer une tâche de réglage et définir l'époque sur une valeur inférieure.

Étapes suivantes