Réponse courte
L’ajustement fin de GPT-4o vaut la peine quand vous avez une tâche étroite et répétée, de quelques dizaines à quelques centaines de bons exemples, et un prompt soigné qui rate encore le ton, le format ou les règles du domaine. Si un meilleur prompt ou les Structured Outputs règlent le problème, ou si vous ne pouvez pas mesurer la différence sur un jeu de test, cela n’en vaut pas encore la peine.
Question de suivi Comment mesurer si cela a aidé?
Le 20 août, OpenAI a ouvert l’ajustement fin (fine-tuning) de GPT-4o à tous les développeurs d’un palier d’utilisation payant, et elle offre un million de jetons d’entraînement gratuits par organisation et par jour jusqu’au 23 septembre. Cette échéance rend la question pressante pour bien des équipes : devriez-vous entraîner votre propre version maintenant, pendant que l’essai coûte peu?
Ce guide suppose que vous savez ce qu’est l’ajustement fin (entraîner une copie d’un modèle sur vos propres exemples de conversations) et comment préparer les données. La question ici est plus étroite. Est-ce que ce sera rentable pour votre projet, et comment le saurez-vous?
Ce qu’offre l’ajustement fin de GPT-4o, en chiffres
| Élément | Prix |
|---|---|
| Entraînement | 25 $ US par million de jetons |
| Utilisation de votre GPT-4o ajusté | 3,75 $ US par million de jetons d’entrée, 15 $ US par million de jetons de sortie |
| gpt-4o-2024-08-06 de base, à titre de comparaison | 2,50 $ US par million de jetons d’entrée, 10 $ US par million de jetons de sortie |
Un modèle ajusté coûte donc 1,5 fois plus cher par jeton que le modèle de base. OpenAI affirme que l’ajustement fin peut fixer la structure et le ton des réponses et enseigner au modèle des consignes complexes propres à un domaine, et que quelques dizaines d’exemples peuvent déjà donner de bons résultats. Ses deux témoignages de partenaires portent sur des tâches spécialisées : un assistant de programmation entraîné sur la façon dont travaillent de vrais ingénieurs, et un système qui transforme des questions en requêtes de base de données.
Une décision détaillée
Imaginez un courtier d’assurance régional qui veut des réponses aux courriels des clients dans le style de la maison, en respectant douze règles internes (ne jamais promettre une couverture, toujours donner le format du numéro de réclamation, et ainsi de suite). Passez ces questions en revue dans l’ordre.
1. Avez-vous poussé le prompt aussi loin que possible? Rédigez les meilleures consignes possibles, ajoutez trois ou quatre exemples de réponses et testez-les. Bien des problèmes du type « le modèle n’en est pas capable » sont en réalité des problèmes du type « on ne l’a jamais dit au modèle ».
2. Le problème est-il le format? Si les échecs sont des champs mal formés ou manquants, utilisez plutôt les Structured Outputs, qui font correspondre la réponse à un schéma que vous fournissez. Cela règle la structure sans aucun entraînement.
3. La tâche est-elle étroite et répétée? Des milliers de courriels semblables par mois, oui. Un type de demande différent chaque jour, non. L’ajustement fin enseigne des régularités; il lui faut donc une régularité.
4. Avez-vous de bons exemples? Il vous faut de vraies réponses approuvées, pas des brouillons. Quelques dizaines suffisent pour commencer le test; davantage aidera si les premiers résultats sont prometteurs.
5. Le coût par appel tient-il la route? Ici, un calcul à titre d’illustration aide. Disons que le long prompt, avec les règles et les exemples, utilise 2 000 jetons d’entrée par courriel et que la réponse fait 200 jetons. Un modèle ajusté connaît déjà les règles; le prompt pourrait donc descendre à 800 jetons.
| Par courriel (à titre d’illustration) | Coût d’entrée | Coût de sortie | Total |
|---|---|---|---|
| GPT-4o de base, long prompt | 2 000 × 2,50 $ US/M = 0,0050 $ US | 200 × 10 $ US/M = 0,0020 $ US | 0,0070 $ US |
| GPT-4o ajusté, prompt court | 800 × 3,75 $ US/M = 0,0030 $ US | 200 × 15 $ US/M = 0,0030 $ US | 0,0060 $ US |
Les économies n’apparaissent que si le prompt raccourcit vraiment. Sinon, le modèle ajusté coûte plus cher à chaque appel, et l’argument doit reposer uniquement sur la qualité. L’entraînement est bon marché en comparaison : 300 000 jetons d’exemples entraînés en trois passes font 900 000 jetons, environ 22,50 $ US, et restent sous l’allocation quotidienne gratuite jusqu’au 23 septembre.
Si la réponse à l’une des quatre premières questions est non, arrêtez-vous et réglez d’abord ce point.
Comment mesurer si cela a aidé?
Avec une évaluation (eval) : un ensemble fixe de cas de test que vous faites passer aux deux versions et que vous notez de la même façon. Le cadre à code source ouvert Evals d’OpenAI en décrit l’essentiel. Chaque cas de test comporte une entrée et, si possible, une réponse idéale ou une grille de notation claire; l’ensemble devrait être cohérent sur le plan du thème, exigeant et vérifié par sondage par une personne.
Construisez la vôtre avant l’entraînement :
- Mettez des cas de test de côté. Réservez de 50 à 100 vrais courriels qui ne font pas partie des données d’entraînement. Tester sur des exemples d’entraînement montre seulement que le modèle les a mémorisés.
- Rédigez la règle de notation. Pour le courtier : la réponse respecte-t-elle chacune des douze règles (oui ou non par règle), et un membre du personnel l’enverrait-il sans changement, avec de petites retouches, ou pas du tout?
- Établissez la base de référence. Notez GPT-4o de base avec votre meilleur prompt. C’est le résultat à battre.
- Entraînez, puis faites passer le même test. Mêmes cas, même notation, idéalement sans savoir quel modèle a rédigé quelle réponse.
- Comparez le coût et la qualité ensemble.
Un tableau de résultats, à titre d’illustration, pourrait ressembler à ceci :
| Mesure (à titre d’illustration) | Base + meilleur prompt | Ajusté |
|---|---|---|
| Réponses qui enfreignent au moins une règle | 18 sur 100 | 6 sur 100 |
| Envoyées sans retouche | 52 sur 100 | 71 sur 100 |
| Coût pour 1 000 courriels | 7,00 $ US | 6,00 $ US |
Un gain comme celui-là vaut la peine d’être conservé. Un gain de deux ou trois cas sur 100 se situe dans le bruit d’un petit test; faites passer plus de cas avant de changer de modèle.
À essayer : avant d’entraîner quoi que ce soit, rassemblez 30 vraies entrées de votre projet et notez, pour chacune, ce que doit contenir une réponse parfaite. Notez votre prompt actuel par rapport à ces entrées. Vous avez maintenant une base de référence, et une idée claire de l’existence ou non d’un écart qui justifie l’ajustement fin.
Gardez l’évaluation après le lancement. Refaites-la chaque fois que vous modifiez le prompt, que vous entraînez de nouveau avec de nouveaux exemples ou qu’OpenAI lance un nouveau modèle de base, puisqu’un modèle ajusté est lié à l’instantané sur lequel il a été entraîné. OpenAI affirme que vos données d’entraînement et vos résultats vous appartiennent et ne servent pas à entraîner d’autres modèles, mais c’est toujours à vous de vérifier ce que votre modèle dit à vos clients.
Sources
- Fine-tuning now available for GPT-4o — OpenAI, 20 août 2024
- Introducing Structured Outputs in the API — OpenAI, 6 août 2024
- Building an eval (openai/evals docs) — OpenAI (GitHub), 29 août 2023