
Métriques API des modèles fine-tunés à suivre
Suivez les métriques API essentielles des modèles fine-tunés : latence, débit, taux d'erreur, usage de tokens et coût par requête pour anticiper un rollback.
Un modèle fine-tuné ne vaut la peine d'être conservé que s'il reste assez rapide, assez stable et assez économique sous un trafic API réel.
Si je ne devais suivre que quelques éléments dès le premier jour, je surveillerais la latence, le débit, le taux d'erreur, le taux de timeout, le taux de succès, le taux de fallback, l'usage de tokens, le coût par requête, la profondeur de file d'attente et le taux de complétion des tâches. Pourquoi ? Parce qu'un modèle peut renvoyer 200 OK et échouer quand même la tâche, brûler des tokens supplémentaires ou pousser les utilisateurs à partir.
Voici la version courte :
- Latence : surveillez le TTFT et le p95/p99, pas seulement les moyennes.
- Débit : testez le RPS/TPS sous concurrence de production, pas une requête à la fois.
- Fiabilité : distinguez 4xx, 5xx, 429, 503 et 504 pour repérer facilement les schémas de défaillance.
- Timeouts : des sorties plus longues poussent souvent les modèles fine-tunés au-delà des délais de requête.
- Succès vs fallback : une réponse API qui fonctionne n'est pas la même chose qu'une réponse utilisable.
- Tokens : suivez les tokens d'entrée, de sortie et totaux depuis le champ
usagede l'API. - Coût : mesurez le coût par requête, le coût pour 1 000 tokens et le coût p95, pas seulement la dépense mensuelle.
- Capacité : la profondeur de file d'attente et la pression sur le cache KV révèlent souvent les problèmes avant les graphiques GPU.
- Résultat utilisateur : surveillez le taux de complétion des tâches, la revue humaine et l'abandon.
- Risque de rollback : si le p99 s'emballe, que 5xx + timeouts dépassent 5 %, ou que le taux de victoire face au modèle de base tombe sous 50 %–55 %, je traiterais cela comme une alerte sérieuse.

Le fine-tuning avec des métriques de calcul personnalisées
Comparaison rapide
| Métrique | Ce à quoi je l'utiliserais | Signe d'alerte courant |
|---|---|---|
| Latence de bout en bout | Voir la vitesse totale de réponse | TTFT p95 au-dessus de 3–4 secondes |
| Latence p50/p90/p99 | Repérer la douleur de la queue | p99 très au-dessus de la médiane |
| Débit (RPS/TPS) | Vérifier la capacité de charge | Le débit plafonne pendant que la latence grimpe |
| Taux d'erreur par statut | Repérer les échecs de requête | Pic de 5xx, 503 ou 504 |
| Taux de timeout | Détecter les délais dépassés | Les timeouts augmentent avec la profondeur de file |
| Taux de succès | Vérifier la complétion utilisable des tâches | Plus d'échecs de schéma ou d'appels d'outils |
| Taux de fallback | Voir la fréquence de recours aux modèles de secours | Coût plus élevé et moindre confiance dans le fine-tune |
| Usage de tokens/requête | Repérer la dérive des tokens | Les tokens de sortie augmentent avec le temps |
| Coût/requête | Relier l'usage à la dépense | Le coût p95 par requête bondit |
| Profondeur de file / capacité | Détecter la saturation | La file reste au-dessus de 0 ou dépasse 5 par à-coups |
| Taux de complétion des tâches | Mesurer le résultat métier | Plus de revue humaine ou d'abandon |
En résumé : je ne jugerais pas un modèle fine-tuné sur les seuls scores hors ligne. Je le comparerais au modèle de base en production, fixerais des limites de rollback avant le lancement et garderais un tableau de bord unique qui montre vitesse, échecs, dépense et résultat d'un seul coup d'œil.
Pourquoi les métriques API comptent davantage après le fine-tuning
Le fine-tuning change le comportement d'un modèle en production. Sous trafic réel, la latence, l'usage de tokens et les schémas de défaillance peuvent tous bouger. Dans certains cas, le fine-tuning réduit les tokens d'entrée en remplaçant de longs prompts. Dans d'autres, il augmente les coûts de sortie en allongeant les complétions [6]. C'est pourquoi les gains hors ligne ne signifient pas grand-chose à eux seuls. Vous devez les confronter aux métriques API réelles.
L'écart entre les tests hors ligne et la production est réel. La recherche montre qu'un modèle fine-tuné peut gagner 12 points sur un jeu de test spécifique à une tâche tout en perdant 6 points sur des benchmarks de raisonnement général comme GSM8K [2]. Ce n'est pas un cas particulier étrange. C'est un schéma de défaillance connu appelé oubli catastrophique, où l'amélioration d'une compétence peut en affaiblir d'autres.
La leçon ici est assez simple : un fine-tune peut aider la tâche qui vous importe et nuire quand même à la performance ailleurs. Et ce type de dérive de benchmark ne se voit pas clairement si vous ne regardez que les scores hors ligne. Vous le voyez quand les signaux de production se retrouvent à côté des résultats d'évaluation.
La dérive de qualité n'est pas le seul problème. Le fine-tuning de domaine peut aussi affaiblir le comportement de refus du modèle de base, ce qui le rend plus vulnérable aux jailbreaks et aux injections de prompt [2]. En production, ce genre de glissement se manifeste vite : le taux de succès chute, le taux de fallback monte et des pics d'erreur commencent à apparaître d'une manière qu'un jeu de test statique ne détectera pas. Ces changements apparaissent dans les métriques API qui suivent.
1. Latence de bout en bout
La latence de bout en bout est le temps total entre le moment où un client envoie une requête et celui où la réponse complète arrive. Cela inclut le temps réseau, la mise en file d'attente, l'inférence et la livraison de la réponse [7][9]. Pour les endpoints fine-tunés, c'est l'un des premiers signaux de production à surveiller.
Une façon simple de penser la latence est celle-ci : total time ≈ TTFT + output_tokens × TPOT [9].
Le TTFT mesure la vitesse d'apparition du premier token, ce qui compte beaucoup pour les applications en streaming [9][10]. Le TPOT est le temps moyen entre les tokens générés [9]. Cette décomposition vous aide à voir ce qui a changé après un fine-tune. La vitesse de réponse a-t-elle baissé ? Le streaming a-t-il démarré plus tard ? La génération de tokens a-t-elle ralenti ?
Les modèles fine-tunés tournent souvent 10 %–20 % plus lentement que les modèles de base. Si la latence bondit de plus de 50 %, cela indique généralement des poids LoRA non fusionnés, une quantification manquante, ou une sortie devenue trop longue [7][8]. La comparaison utile se fait par rapport au modèle de base. Cela vous dit si le fine-tune a assez amélioré la qualité de la tâche pour justifier la perte de vitesse.
La latence de queue est ce que les utilisateurs remarquent lors des tours lents, des relances et des pics de file d'attente. Un TTFT p95 au-dessus de 3–4 secondes crée un ralentissement net pour les utilisateurs [3]. En chat interactif, un TTFT p95 sous 500 ms paraît instantané. Une fois qu'il dépasse 3–4 secondes, l'expérience se dégrade vite [12]. Ne fixez donc pas vos SLA sur la seule moyenne. Fixez-les sur la latence de queue.
Une latence de queue élevée indique généralement des problèmes de profondeur de file d'attente ou une surcharge de démarrage à froid, pas une vitesse GPU brute [10]. C'est pourquoi la latence par percentile compte plus que le temps de réponse moyen pris seul.
Avant de mesurer, lancez 2–3 requêtes de chauffe. La latence du premier appel est souvent 30 %–50 % plus élevée [8].
2. Latence p50, p90 et p99
La latence moyenne peut faire paraître les choses meilleures qu'elles ne le sont. Vous pouvez voir un temps de réponse moyen de 1,2 seconde et supposer que l'endpoint se porte bien, alors que le p99 est à 9 secondes [15]. Cela signifie que 1 % des utilisateurs attendent encore près de 10 secondes, même si le tableau de bord affirme que tout semble normal. Les percentiles vous aident à voir si le fine-tune a aidé la plupart des requêtes ou s'il a simplement repoussé le ralentissement dans la queue.
Voici ce que chaque percentile vous dit de votre endpoint fine-tuné :
| Percentile | Ce qu'il mesure | Pourquoi ça compte |
|---|---|---|
| p50 (médiane) | Vitesse typique de requête | Ce que la plupart des utilisateurs ressentent un jour normal [9] |
| p90 | Vitesse de requête haute-normale | Montre l'expérience utilisateur plus large au-delà de la médiane [14][15] |
| p99 (queue) | 1 % des pires requêtes | La queue qui pilote le risque de rollback [13][16] |
Utilisez ces percentiles pour comparer le modèle de base et le modèle fine-tuné sous le même mélange de trafic.
Après le fine-tuning, p50 et p99 peuvent bouger dans des directions différentes. Si votre fine-tune mène à des sorties plus courtes et plus structurées, le p50 peut baisser parce que les requêtes typiques se terminent plus vite. Mais le p99 peut grimper si le modèle devient parfois plus verbeux [7][15]. Cet écart compte. Si le p99 monte alors que le p50 reste stable, c'est le signal qu'il faut creuser, pas le temps de réponse moyen.
Le p99 est votre indicateur de risque de rollback. Fixez des barrières de régression dans votre pipeline CI/CD autour des seuils p99 [15]. Si une mise à jour de modèle pousse la latence de queue au-delà de votre limite, le build devrait échouer avant d'atteindre la production.
La latence vous dit à quel point les requêtes lentes semblent lentes. Ensuite, regardez combien de requêtes l'endpoint peut gérer.
3. Débit et requêtes par seconde (RPS)
La latence vous dit comment une requête se comporte. Le débit vous dit combien de travail l'endpoint peut gérer dans le temps.
Les principaux chiffres à suivre sont les requêtes par seconde (RPS), les tokens par seconde (TPS) et les tokens par minute (TPM) [17][18]. Ensemble, ils montrent si votre endpoint fine-tuné peut suivre le trafic réel, surtout lorsque vous utilisez une API LLM unifiée pour gérer plusieurs fournisseurs.
Voici le piège : un modèle peut sembler rapide dans un test ponctuel et s'effondrer une fois le trafic accumulé. Sous concurrence, vous pouvez atteindre un effondrement du débit, où ajouter plus de requêtes parallèles n'augmente plus la sortie, et la latence commence à s'emballer sérieusement. Ce point d'inflexion - là où le débit cesse de croître - est votre plafond de capacité [15].
L'un des plus grands facteurs derrière le RPS est la longueur de sortie. Si un fine-tune commence à donner des réponses plus longues, le débit baisse et les coûts montent, même si les réponses sont meilleures [6][8].
Il est aussi utile de surveiller le goodput, pas seulement le débit brut. Le goodput est la part des requêtes qui respectent encore les SLO de latence. Si le goodput est faible, l'endpoint peut être occupé tout en manquant sa cible. Ce genre d'écart indique souvent un batching faible ou une saturation du serveur [17].
Ainsi, lorsque vous benchmarkez le RPS et le TPS, testez à la concurrence de production, pas avec des exécutions à requête unique. Les limites liées aux plafonds de débit, à la profondeur de file et à la VRAM restent souvent cachées jusqu'à ce que le système soit sous charge [7][9][15]. Si l'endpoint tient sa capacité là, alors il est temps de vérifier si ces requêtes réussissent.
4. Taux d'erreur par code de statut HTTP
Une fois la charge maîtrisée, la prochaine chose à surveiller est la fiabilité : à quelle fréquence l'endpoint échoue. Le taux d'erreur vous dit si les requêtes se terminent comme elles le devraient. En pratique, cela se répartit en deux catégories : les échecs côté client et les échecs côté serveur.
Une hausse des erreurs 4xx indique souvent des incohérences de prompt ou de schéma, ou des problèmes de fenêtre de contexte introduits par le fine-tune. Une hausse des erreurs 503 ou 504 indique généralement une tension serveur ou une pression de timeout. Quand les erreurs 5xx s'emballent, traitez cela comme un risque de rollback sérieux.
Il y a aussi un enjeu financier ici. Les requêtes échouées consomment quand même des tokens. Pour suivre la dépense gaspillée, additionnez les frais de tokens des requêtes échouées, surtout les erreurs 4xx autres que 429 et toutes les erreurs 5xx [22]. Et si la logique de relance est trop agressive, ces mauvaises relances peuvent multiplier le coût d'inférence par 3 à 5 [21].
Voici une carte simple des codes de statut les plus courants, d'où ils proviennent généralement, et quoi faire ensuite :
| Code de statut | Source probable de la défaillance | Action recommandée |
|---|---|---|
| 400 | Incohérences de prompt/schéma ou dépassement de fenêtre de contexte | Corriger le prompt ou le schéma JSON [3] |
| 401 / 403 | Clé API expirée ou invalide, ou permissions insuffisantes | Renouveler les identifiants ou vérifier l'accès [3][21] |
| 429 | Quota TPM/RPM épuisé | Réduire le rythme et alerter vers 70 % d'usage du quota [3] |
| 503 | Saturation serveur ou panne fournisseur | Suspendre et relancer plus tard ou basculer [21] |
| 504 | File d'inférence trop profonde ou génération trop lente | Augmenter le timeout pour les longues générations [21] |
N'utilisez pas la même logique de relance pour chaque code d'erreur. Relancer un 400 ne fait que brûler plus de calcul parce que la requête est toujours cassée. Le backoff exponentiel s'applique aux erreurs 429 [21]. Si des 503 ou des 504 continuent d'apparaître sur trois vérifications, déclenchez un disjoncteur et routez le trafic vers le modèle de base.
Ensuite, vérifiez si les réponses lentes atteignent leur timeout avant de se terminer.
5. Taux de timeout
Quand les erreurs augmentent sans hausse nette des échecs francs, le taux de timeout est la prochaine chose à vérifier. Un timeout reste une requête échouée : le client n'obtient aucune réponse avant l'échéance. Suivez le taux de timeout comme la part des requêtes qui dépassent cette échéance, ce qui se manifeste souvent par des erreurs de timeout côté serveur.
Les modèles fine-tunés sont plus susceptibles d'atteindre des timeouts parce qu'ils produisent souvent des sorties plus longues. Si les données d'entraînement penchaient vers le verbeux, le modèle peut générer plus de tokens par requête que le modèle de base ne le faisait. C'est fréquent lorsqu'on utilise les modèles Qwen d'Alibaba ou d'autres LLM haute performance qui privilégient des réponses détaillées. Plus de tokens signifie plus de temps de génération, et ce temps supplémentaire est ce qui pousse les requêtes au-delà de l'échéance [8].
Si la profondeur de file reste au-dessus de zéro, le système est déjà à capacité. Quand cela arrive, les taux de timeout grimpent généralement peu après [12]. Traitez la profondeur de file comme le signal d'alerte précoce plutôt que d'attendre l'apparition des timeouts. Si la profondeur de file monte en même temps que les timeouts, vous êtes face à un problème de capacité, et il faut agir tout de suite. Une fois le taux de timeout stabilisé, séparez les vrais succès des réponses de fallback.
6. Taux de succès et taux de fallback
Même quand les timeouts disparaissent, les requêtes peuvent quand même manquer la tâche. Le taux de succès vous dit si le modèle a réellement accompli la tâche, pas seulement s'il a renvoyé HTTP 200. Cela signifie vérifier des choses comme la conformité au schéma, les appels d'outils corrects et l'exactitude factuelle. Un modèle fine-tuné peut afficher une haute précision au niveau des tokens et échouer quand même 15 %–30 % des requêtes de production réelles à cause de régressions au niveau de la tâche [23].
Le taux de fallback vous dit à quelle fréquence le trafic a dû être redirigé ailleurs après que l'endpoint fine-tuné a échoué, dépassé son délai ou été bloqué par des filtres de sécurité [4][5]. C'est pourquoi il devrait être suivi juste à côté du taux de succès. Vous ne mesurez pas seulement des complétions. Vous mesurez une sortie utilisable.
Utilisez ces deux métriques ensemble comme signal principal de la qualité de complétion. Si l'une des deux glisse, c'est le moment de vérifier si le fine-tune tient encore face au modèle de base. Si le taux de victoire face au modèle de base tombe sous 50 %–55 %, c'est un seuil de rollback courant [2][4].
Si le succès reste élevé mais que le coût commence à grimper, vérifiez ensuite l'usage de tokens.
| Métrique | Ce qu'elle signale | Niveau de risque de rollback |
|---|---|---|
| Taux de succès (schéma/tâche) | Dérive de format ou erreurs de quantification | Élevé - casse les intégrations |
| Taux de fallback | Le fine-tune est moins fiable que le modèle de base | Élevé - double le coût d'inférence |
| Taux de victoire vs modèle de base | Le fine-tune est globalement pire que le modèle de base | Critique - signal de rollback immédiat |
Un succès élevé ne veut pas dire grand-chose si chaque requête coûte trop cher à servir.
7. Usage de tokens par requête
Après la fiabilité, l'usage de tokens vous dit si le modèle est assez léger pour tourner à grande échelle. Il montre aussi si le fine-tuning fait son travail en remplaçant la surcharge de prompt par un comportement appris. Un usage de tokens plus faible signifie généralement un coût plus bas et des réponses plus rapides.
Suivez les tokens d'entrée, de sortie et totaux comme des chiffres séparés. Cela facilite le repérage d'une croissance lente avant qu'elle ne devienne un problème de coût. Un nombre élevé de tokens d'entrée indique souvent un prompt gonflé ou un dépassement de contexte. Un nombre élevé de tokens de sortie signifie généralement des complétions verbeuses, des règles d'arrêt faibles ou l'absence de plafond de sortie. Et les tokens de sortie coûtent plus cher que les tokens d'entrée, donc la verbosité est le plus grand risque de coût [15].
Récupérez les décomptes de tokens depuis l'objet usage de l'API à chaque réponse, pas depuis une estimation de tokeniseur local [15][25]. Les estimations locales peuvent s'écarter des décomptes facturés. Si vous voyez un pic de tokens de 3x, supposez un prompt gonflé ou un dépassement de contexte jusqu'à ce que vous trouviez la cause [3]. Il est aussi utile de fixer un plafond de tokens de sortie en CI/CD pour attraper les régressions de verbosité avant qu'elles ne partent en production [15].
Les décomptes de tokens se traduisent directement en dépense, ce qui explique pourquoi la métrique suivante est le coût par requête.
| Type de token | Facteur principal | Impact principal |
|---|---|---|
| Tokens d'entrée | Taille du prompt, contexte RAG, schémas d'outils | Coût de base, Time to First Token |
| Tokens de sortie | Longueur de réponse, étapes de raisonnement | Plus grand facteur de coût |
| Tokens lus en cache | Prompts système stables, contexte répété | Réduction de coût |
| Usage de la fenêtre de contexte | Longueur d'historique, taille des morceaux récupérés | Risque de dépassement, fiabilité |
8. Coût par requête et coût pour 1 000 tokens
Les tokens se transforment en dollars. Mais une facture mensuelle à elle seule ne vous dit pas pourquoi la dépense a augmenté. Pour voir ce qui la pilote, suivez le coût par requête et le coût pour 1 000 tokens. Cela vous donne la couche suivante d'analyse de production.
Le coût par requête montre ce que coûte une seule action utilisateur. Calculez-le à partir des frais facturés de tokens d'entrée, de sortie et en cache pour cette requête [26][28]. Puis suivez à part le tarif facturé pour 1 000 tokens. Lorsque vous surveillez les deux chiffres ensemble, vous pouvez dire si la dépense grimpe parce que vous avez plus de trafic ou parce que les prompts et les complétions s'allongent. Ce schéma est souvent appelé dérive des tokens [15][26].
L'inférence fine-tunée peut coûter 2x–5x plus par token, mais elle peut quand même abaisser le coût par requête lorsqu'elle réduit la longueur du prompt [29][30]. Pourquoi ? Un modèle fine-tuné intègre les définitions de rôle, les garde-fous et les exemples few-shot dans ses poids. Chaque prompt devient donc plus court à chaque appel. Dans un benchmark, un modèle fine-tuné n'a eu besoin que de 42 tokens de complétion là où le modèle de base en nécessitait 85 - une réduction de 50,6 % du coût d'inférence par requête [19]. En clair, le prix unitaire plus élevé peut être compensé par le nombre de tokens plus faible. C'est le gain que vous voulez mesurer dans le trafic API réel.
Étiquetez chaque appel API avec feature_name et user_tier afin de relier la dépense à l'usage produit [27][28]. Cela rend les données bien plus utiles quand les coûts commencent à dériver.
Quelques vérifications comptent le plus :
- Surveillez de près les tokens de sortie. Au tarif des modèles phares, ils peuvent coûter 5x plus que les tokens d'entrée, donc raccourcir une réponse verbeuse économise plus que réduire le même nombre de tokens de prompt [15].
- Fixez un plafond sur le nombre moyen de tokens de sortie dans votre pipeline CI/CD. Cela aide à attraper les régressions de verbosité avant qu'elles n'atteignent la production [15].
- Analysez le coût par fonctionnalité et par palier d'utilisateur, pas seulement en agrégat. Sinon, un usage coûteux peut se cacher dans un total qui semble sain.
Après le coût, regardez si la dépense correspond à une demande réelle ou seulement à une capacité inutilisée.
Ensuite, comparez ces coûts à l'utilisation de l'infrastructure et à la longueur de la file.
9. Utilisation de l'infrastructure et longueur de file d'attente
Si la latence et les timeouts ont augmenté, regardez ensuite la couche de service : files, mémoire et pression sur le cache. La profondeur de file d'attente compte le plus ici. L'utilisation GPU a tendance à suivre la demande, c'est donc un signal retardé. C'est pourquoi l'autoscaling devrait s'appuyer sur la profondeur de file par réplique, pas sur le pourcentage de calcul [10][32].
L'usage du cache KV est une autre métrique souvent négligée par les équipes. Le cache KV stocke le contexte des tokens en mémoire GPU, et quand cette mémoire se resserre, le moteur peut se mettre à mettre en file les nouvelles requêtes même si le calcul GPU semble encore disponible [31][32]. Une bonne règle empirique : traitez un usage du cache KV de 40 %–50 % comme une alerte précoce, et 90 %+ comme une saturation [31][32].
Les modèles fine-tunés ajoutent une subtilité de plus. Les adaptateurs LoRA ont besoin de mémoire en plus des poids du modèle de base, et les charger à la première requête après une montée en échelle crée un délai de démarrage à froid. Dans la plupart des cas, cela ajoute quelques centaines de millisecondes au TTFT [10]. Précharger les adaptateurs au démarrage évite l'essentiel de ce coût. Il est aussi utile de surveiller le CPU à part, car la tokenisation et le prétraitement peuvent ajouter une latence facile à manquer [10].
| Métrique | Seuil de goulot d'étranglement | Ce qu'elle signale |
|---|---|---|
| Profondeur de file | > 0 de façon constante, ou > 5 par à-coups | Indicateur avancé de pics de latence p99 et de tension de capacité [10][12] |
| Usage du cache KV | > 90 % | Point de saturation ; timeouts imminents [32] |
| Mémoire GPU (VRAM) | 80 %–89 % | Marge limitée pour des adaptateurs supplémentaires ou de plus grands batches ; une chute soudaine peut signaler un crash du modèle ou un adaptateur déchargé [31] |
Si ces signaux de capacité semblent encore sains, passez à la qualité de sortie.
10. Satisfaction utilisateur et taux de complétion des tâches
Après la latence, le coût et la fiabilité, la dernière vérification est simple : le modèle termine-t-il la tâche ? Un endpoint fine-tuné peut être rapide, économique et stable, tout en manquant sa cible.
Le taux de complétion des tâches (TCR) est la part des requêtes résolues sans aide humaine. Le taux de revue humaine est la part des sorties qui nécessitent encore des corrections manuelles. Cette différence compte. Un modèle peut renvoyer HTTP 200 et rendre quand même quelque chose qu'une personne doit nettoyer avant que quiconque puisse l'utiliser. Le TCR suit donc le résultat métier, pas seulement le fait que l'API a répondu.
Sur les tâches à sortie structurée, 500 exemples de haute qualité peuvent faire passer la conformité de format de 68 %–74 % à 97 %–99 % [33]. Ce genre de bond réduit la fréquence à laquelle le personnel doit intervenir. Une fois le format correct, comparez directement le modèle fine-tuné au modèle de base.
La vitesse compte encore ici. Une latence p99 au-dessus de 5 secondes entraîne environ 45 % d'abandon [33]. Donc si le fine-tune ralentit l'expérience, les utilisateurs vous le montreront vite - en partant.
Pour une vérification directe de la qualité, utilisez le test en arène par paires. Faites passer 200–500 échantillons de production à travers le modèle de base et le modèle fine-tuné, puis notez les sorties côte à côte avec un LLM-juge. Ensuite, figez le modèle juge et le barème pour que les tests futurs restent cohérents. Si le taux de victoire face au modèle de base tombe sous 50 %–55 %, c'est un seuil de rollback courant [2][4].
Il est aussi utile de surveiller ces signaux ensemble :
- TCR
- Taux de victoire en arène
- Une suite de benchmarks figée
Si le modèle chute de plus de 5 points sur les benchmarks généraux, traitez cela comme un échec net, même quand les scores spécifiques à la tâche augmentent [2].
Utilisez ces vérifications de qualité à côté des métriques API des sections précédentes pour décider si le fine-tune est prêt pour la production.
Tableau comparatif de latence et de débit
Aucune métrique unique ne raconte toute l'histoire d'un endpoint fine-tuné. La latence moyenne, par exemple, peut lisser les variations d'une requête à l'autre, surtout quand la mise en file et le batching côté fournisseur entrent en jeu [9].
C'est pourquoi il est utile de mesurer d'abord la latence et le débit séparément, puis de les comparer côte à côte avant de fixer des SLO.
| Métrique | Ce qu'elle mesure | Pourquoi elle compte pour les modèles fine-tunés | Limitation principale |
|---|---|---|---|
| Latence de bout en bout | Temps total de la soumission de la requête à l'arrivée du dernier token [20] | Révèle des goulots d'étranglement cachés comme la tokenisation et les sauts réseau [14] | Ne montre pas si le délai vient du traitement du prompt (prefill) ou de la génération de tokens (decode) [9] |
| Latence p50 / p90 / p99 | Temps de réponse aux 50e, 90e et 99e percentiles sur toutes les requêtes [34] | Montre si le fine-tune a aidé les requêtes typiques ou juste repoussé la douleur dans la queue | Les petits échantillons peuvent quand même manquer les pics de démarrage à froid [8][34] |
| Débit (RPS / TPS) | Requêtes par seconde ou tokens par seconde traités par le système [20] | Montre la capacité du système sous charge [14] | Un fort débit peut quand même masquer une performance lente sur une requête unique [34] |
Ventilez les résultats par type d'endpoint, version de modèle, région et heure de la journée. Le trafic aux heures de pointe fait souvent remonter des problèmes de latence que les tests hors pointe ne détecteront pas.
Ces découpages facilitent grandement le repérage de l'endroit où un endpoint fine-tuné commence à peiner sous trafic réel.
Métriques de fiabilité qui signalent un risque de rollback
Le signe le plus clair qu'un rollback pourrait être nécessaire est le taux de victoire face au modèle de base. Menez des canaris par paires et du routage fantôme pour pouvoir comparer le modèle fine-tuné au modèle de base côte à côte. Si le taux de victoire tombe sous 50 %, le fine-tune n'apporte plus de valeur en production. Votre couche de routage devrait aussi effectuer un rollback automatique quand la cohorte canari maintient une baisse de 2 points sur n'importe quel score de qualité par barème pendant 30 à 60 minutes [2][4]. Une fois ces comparaisons passées au négatif, l'étape suivante est simple : trouver les groupes de prompts qui cassent.
Quelques autres signaux devraient servir de déclencheurs de rollback : taux de 5xx + timeouts, taux de refus, taux de sortie invalide, pics de 429 et comportement de fallback. Ce sont les chiffres qui comptent quand vous décidez si le fine-tune doit rester en production. Suivez les pics de 429 à part. Ils indiquent souvent un coût de calcul plus élevé ou des files plus profondes [24][5].
Il est aussi utile de séparer le taux de refus du taux de sortie invalide plutôt que de les regrouper. Des refus au-dessus de 2 % indiquent souvent une régression de sécurité ou des filtres fournisseurs en conflit avec vos prompts personnalisés [5][35]. Le taux de sortie invalide indique généralement une dérive de schéma ou un suivi d'instructions affaibli [2][24].
Ventilez chaque métrique par type de prompt, route de workflow et version de modèle. Un modèle peut sembler correct sur les requêtes générales et peiner quand même sur les chemins à sortie structurée ou les prompts spécifiques à un domaine. Ce découpage facilite grandement l'appréciation de la sûreté à laisser le modèle tourner et de la tenue du profil de coût.
| Signal de fiabilité | Seuil de rollback | Ce que cela signifie généralement |
|---|---|---|
| Taux de 5xx + timeouts | > 5 % pendant > 1 minute [5] | Instabilité d'infrastructure ou de modèle |
| Taux de refus | > 2 % des requêtes légitimes [5][35] | Régression de sécurité ou conflit de filtre |
| Taux de victoire vs modèle de base | < 50 % en évaluation par paires [2][4] | Le fine-tune sous-performe l'original |
| Baisse du score de qualité | > baisse de 2 points en moyenne glissante [2][4] | Régression d'hallucination ou de fidélité |
| Taux de schéma/sortie invalide | Pic significatif vs référence [2][24] | Perte de sortie structurée / de suivi d'instructions |
| Erreurs de limite de débit (429) | Pic lié à une nouvelle version de modèle [24][5] | Coût de calcul plus élevé ou profondeur de file |
Métriques de coût, de tokens et de ressources en dollars
Après la latence, le débit et la fiabilité, l'étape suivante est simple : l'endpoint vaut-il l'argent dépensé ? Un trafic régulier n'aide pas beaucoup si chaque requête coûte trop cher. Une fois la fiabilité maîtrisée, vous devez transformer l'usage de tokens en dollars.
Pour GPT-4o, le tarif d'inférence fine-tunée s'accompagne d'une majoration de 1,5x par rapport aux tarifs de base. Cela revient à 3,75 $ par million de tokens d'entrée et 15 $ par million de tokens de sortie [36]. Ce coût supplémentaire n'a de sens que si le fine-tune abaisse le coût pour obtenir un résultat réussi. Une façon courante de réduire la dépense passe par les remises agrégées pour API d'IA et le cascading de modèles : envoyez les requêtes simples à un modèle plus petit et moins cher, et gardez le plus grand modèle pour les tâches plus difficiles [37].
Il est aussi utile de prévoir la dépense selon des cas économe, attendu et forte charge. Puis d'ajouter les relances, l'usage de fallback et les exécutions d'évaluation [26]. Cette étape compte plus que beaucoup d'équipes ne le pensent, car 40 % des équipes dépassent leur budget d'API d'IA au premier trimestre d'utilisation [37]. En plus, suivez le coût p95 par requête, pas seulement la moyenne. Sinon, les prompts à long contexte ou les relances répétées peuvent fausser votre prévision d'une manière que la moyenne ne montrera pas [24]. La dépense brute ne devient utile que lorsque vous la reliez à des résultats réussis.
Cette connexion est le coût par résultat réussi. En pratique, cela peut vouloir dire le coût par ticket de support résolu ou le coût par réponse acceptée. Si un modèle fine-tuné augmente la part des résultats réussis, votre coût par résolution peut baisser même quand le prix par requête monte [26][37].
Pour les déploiements auto-hébergés, l'utilisation du GPU est le principal facteur de coût. Une dépense GPU fixe ne devient rentable qu'une fois que l'usage dépasse un certain seuil. Autrement dit, une utilisation élevée compte quand elle améliore l'efficacité de coût. Vous devriez aussi surveiller la longueur de file à côté de l'utilisation. Si la profondeur de file continue de grimper, c'est généralement un signe de saturation, de coût ajouté et de pression de mise à l'échelle accrue [11][15].
Utilisez ces métriques ensemble pour faire la différence entre une charge saine et un gaspillage coûteux.
| Métrique | Ce qu'il faut suivre | Pourquoi ça compte |
|---|---|---|
| Coût par requête (moyenne + p95) | (Input tokens × rate) + (Output tokens × rate) | Attrape les prompts à long contexte et la dérive de budget [24][37] |
| Mix tokens d'entrée vs sortie | Journaliser les deux séparément par requête | Montre où se concentre la dépense - les tokens de sortie pilotent souvent la plus grande part du coût [15][37] |
| Prévision de dépense mensuelle | (Average daily cost × 30) + retries + fallbacks + eval runs | Aide à éviter les mauvaises surprises budgétaires [26][37] |
| Coût par résultat réussi | Dépense ÷ tickets résolus ou réponses acceptées | Relie le coût API au ROI métier [26][37] |
| Utilisation du GPU | % de la capacité GPU utilisée | Sous 40 %–50 %, l'auto-hébergement peut être moins efficient [11] |
| Longueur de file | Requêtes en attente à un instant donné | Une profondeur croissante signale saturation, coût plus élevé et besoins de mise à l'échelle [11][15] |
Signaux de qualité observables via l'API
Une fois la latence, le débit et le coût en bon état, l'étape suivante est simple : vérifier si le modèle aide réellement les utilisateurs à accomplir leurs tâches. La vitesse compte, bien sûr. Mais une réponse rapide qui ne résout pas le problème reste un échec.
Concentrez-vous d'abord sur le taux de complétion des tâches, le taux d'escalade et le taux de transfert à un humain. Ce sont vos principaux signaux de résultat. Ils vous disent si le modèle fine-tuné a géré la requête tout seul ou si quelqu'un a dû intervenir. Et cela compte plus que les scores de benchmark, car ces métriques proviennent de véritables journaux de requêtes et de sessions.
Vous pouvez aussi suivre les évaluations pouce-en-haut/pouce-en-bas et le taux d'abandon comme signaux de soutien au niveau de la session, liés au trafic API. Même si les retours sont rares, ils peuvent quand même révéler des points de douleur récurrents. L'abandon est particulièrement utile parce qu'il montre où le modèle commence à dériver, perd le contexte ou cesse d'être utile au milieu d'une conversation.
Il est aussi utile d'échantillonner le trafic réel avec un LLM-juge pour estimer les problèmes d'hallucination et de sécurité. Un échantillon de 5 % suffit souvent à attraper les anomalies sans trop faire grimper la dépense d'évaluation [39]. Gardez aussi un œil sur la fréquence de déclenchement des garde-fous. Si plus de 20 % des requêtes sont bloquées, cela peut indiquer une hausse des sorties non sûres ou une inadéquation entre ce que veulent les utilisateurs et ce qu'attend le système [38] [1] [2]. Une forte hausse du taux de refus signifie souvent que les filtres sont devenus trop sensibles ou qu'un modèle de prompt a cassé quelque part dans la pile [39] [2].
Chaque échec en production devrait retourner dans le jeu de test hors ligne comme cas permanent. C'est ainsi que vous empêchez le même problème de se réintroduire plus tard.
Utilisez le tableau ci-dessous pour séparer les signaux de qualité principaux des signaux de soutien.
| Signal | Ce qu'il révèle |
|---|---|
| Taux de complétion des tâches | Si la requête a résolu la tâche sans intervention humaine |
| Taux d'escalade | Incapacité du modèle à résoudre les problèmes ; lacunes dans les données d'entraînement |
| Évaluations pouce-en-haut/pouce-en-bas | Sentiment direct de l'utilisateur et utilité perçue |
| Taux d'abandon | Où le modèle perd le contexte ou devient inutile en cours de conversation |
| Taux d'hallucination | Exactitude factuelle et ancrage dans les systèmes RAG |
| Fréquence de déclenchement des garde-fous | Efficacité des filtres de sécurité ; risques d'injection de prompt |
| Taux de refus | Sur-sensibilité ou érosion des limites de sécurité |
Utilisez ces signaux aux côtés de la latence et du coût dans le tableau de bord d'observabilité.
Tableaux de bord d'observabilité pour endpoints fine-tunés
Suivre des métriques isolées aide. Mais le bénéfice arrive quand vous voyez tout au même endroit.
Une configuration d'observabilité solide pour les endpoints fine-tunés repose sur quatre piliers : les métriques pour les signaux agrégés comme la latence et les taux d'erreur, les traces pour le chemin complet d'une requête, les logs pour des enregistrements structurés de ce qui s'est passé, et les évaluations pour des contrôles de qualité asynchrones [40][42].
Cela compte encore plus avec les modèles fine-tunés. Une requête peut réussir au niveau système et échouer quand même au niveau du sens, même en utilisant une interface d'AI chat. Le tableau de bord doit donc montrer les échecs sémantiques, pas seulement la réussite du transport. L'APM à l'ancienne peut montrer qu'une réponse était saine. Il ne peut pas vous dire si la réponse était fausse. Un 200 OK peut quand même cacher un mauvais résultat.
Construisez le tableau de bord autour de cinq vues : latence, fiabilité, coût, qualité et capacité. Utilisez OpenTelemetry avec les conventions sémantiques GenAI, et échantillonnez les traces par la queue pour conserver toutes les requêtes lentes et échouées tout en n'échantillonnant qu'une petite tranche du trafic normal [40][41]. Cette configuration porte aussi ses fruits lors des incidents : le tracing peut diviser par 3 le temps moyen de rétablissement [42].
Utilisez ces signaux pour créer un tableau de bord unique avec cinq panneaux essentiels : latence, fiabilité, coût, qualité et capacité.
| Composant du tableau de bord | Métriques clés | Objectif |
|---|---|---|
| Histogramme de latence | TTFT, p50, p90, p99 | Repérer les requêtes lentes |
| Économie des tokens | Tokens d'entrée/sortie, coût pour 1 000 tokens, taux de consommation quotidien | Suivre la dérive de dépense |
| Panneau de fiabilité | Taux d'erreur, taux de timeout, taux de fallback | Signaler le risque de rollback |
| Carte de score de qualité | Fidélité, taux d'hallucination, retour utilisateur (pouce en haut/bas) | Détecter les régressions silencieuses de qualité du modèle |
| Moniteur de sécurité | Blocages de garde-fous, détections de PII, scores de toxicité | Surveillance de conformité et éthique |
| Traces de requêtes | Étapes de récupération RAG, appels d'outils, chaînes de raisonnement d'agent | Déboguer les échecs complexes multi-étapes |
| Infrastructure | Longueur de file, utilisation GPU/CPU | Détecter la saturation |
Une bonne façon d'y penser : la latence vous dit à quelle vitesse le système a bougé, la fiabilité montre s'il est resté opérationnel, le coût montre ce que chaque réponse vous coûte, la qualité montre si la réponse était bonne, et la capacité vous dit quand le système commence à chauffer.
Tableau de conception du tableau de bord
Ce tableau relie chaque widget de tableau de bord au type de graphique qui fonctionne le mieux et aux filtres qui le rendent utile lors des incidents et des revues de coût.
Pour que ces filtres fonctionnent dès le premier jour, étiquetez les traces lors de l'instrumentation avec l'ID de modèle, la version de prompt et l'environnement. Les conventions sémantiques GenAI d'OpenTelemetry incluent des attributs comme gen_ai.request.model et gen_ai.usage.input_tokens [40].
Choisissez le graphique qui rend le schéma de défaillance repérable d'un coup d'œil.
| Widget du tableau de bord | Meilleure visualisation | Métrique principale | Filtres à inclure |
|---|---|---|---|
| Latence | Histogramme ou courbe P50/P90/P99 | TTFT et latence totale de génération | ID de modèle, Endpoint, Région, Environnement |
| Erreurs | Graphique en aires empilées | Codes HTTP 4xx/5xx, limites de débit et blocages de sécurité | Version de modèle, Type d'erreur, Environnement, Plage de temps |
| Mix de tokens | Graphique à barres groupées | Nombre de tokens d'entrée vs sortie | Version de modèle, Fonctionnalité, Cohorte d'utilisateurs |
| Coût | Treemap ou camembert | Coût pour 1 000 tokens, dépense quotidienne ($) | Version de modèle, Endpoint, Fonctionnalité, ID utilisateur |
| Qualité | Heatmap ou jauge | Fidélité, pertinence, ancrage | Version de prompt, ID de modèle, Sujet/Intention |
| Taux de hit du cache | Graphique en anneau | % de préfixes de prompt en cache | Endpoint, Modèle de prompt, Plage de temps |
| Sécurité | Courbe temporelle | Score de toxicité, taux de fuite de PII | Région, ID de modèle, Type de violation, Environnement |
| Explorateur de traces | Vue cascade/Gantt | Durée de span, taux de succès des appels d'outils | ID de trace, ID de session, ID utilisateur, Statut |
L'attribution de coût montre quelle version de modèle pilote la dépense. L'explorateur de traces compte le plus pour les workflows RAG et agents parce qu'il montre la latence et les erreurs à travers la récupération, les appels d'outils et l'inférence [43][40].
Après avoir défini chaque widget, fixez les règles de rétention et d'échantillonnage. Stockez toutes les requêtes à haute latence, en erreur et à faible score de qualité dans l'explorateur de traces. Puis échantillonnez les requêtes réussies de routine à 5 %–20 % pour garder les coûts de stockage sous contrôle [40].
Conclusion
L'évaluation d'un fine-tune doit prouver une amélioration, pas seulement un changement. C'est pourquoi la carte de score finale doit examiner les métriques de vitesse, de fiabilité, de coût et de résultat ensemble.
Si vous optimisez une métrique isolément, des problèmes de production peuvent s'installer vite. Un modèle peut devenir plus rapide mais moins stable. Ou il peut réduire le temps de revue tout en faisant grimper les erreurs. L'idée est de suivre le tableau complet, pas une seule tranche.
Commencez par le modèle de base. Sans cette référence, vous ne pouvez pas montrer que le fine-tune a fait quoi que ce soit de mieux. Menez un canari de 5 %–10 % et comparez ces résultats au modèle de base via le routage fantôme. Fixez des alertes quand la latence dépasse 2x la référence ou que le taux d'erreur passe au-delà de 5 % pendant 5 minutes. Une fois ces garde-fous en place, reliez les chiffres aux économies d'exploitation.
Chaque métrique devrait correspondre à un résultat métier. Le taux de revue humaine est un indicateur direct des économies d'exploitation. Si ce chiffre ne bouge pas, le fine-tune ne crée pas de valeur en production.
Les tableaux de bord et les alertes ne sont pas optionnels. Construisez l'observabilité avant le lancement pour que les régressions apparaissent avant que les utilisateurs ne les remarquent.
FAQ
Quelles métriques API devrais-je surveiller en premier ?
Commencez par les métriques d'infrastructure et de fiabilité pour vérifier que le système est stable. Concentrez-vous sur le TTFT au 95e percentile, la latence de bout en bout, les taux d'erreur durs, le taux de refus et le coût par requête.
Une fois ces références en place, surveillez la qualité de sortie avec les scores de LLM-juge et la dérive de capacités. Cela vous aide à repérer si le modèle a commencé à glisser sur des compétences essentielles.
Comment comparer un modèle fine-tuné au modèle de base ?
Faites tourner les deux modèles sur le même jeu de test réservé - des données jamais utilisées à l'entraînement - pour mesurer l'écart proprement. Commencez d'abord par une base de prompting solide sur le modèle de base. Cela vous donne un point de comparaison équitable au lieu de fausser les dés.
Comparez les modèles sur la qualité, la latence et le coût.
Pour la qualité, utilisez des métriques adaptées à la tâche, comme :
- F1 pour les tâches de classification ou d'extraction
- Correspondance exacte pour les tâches à une seule bonne réponse
- Taux d'analyse JSON pour les sorties structurées
Pour la latence, mesurez le temps de réponse de bout en bout, pas seulement le temps d'exécution brut du modèle. Cela signifie chronométrer tout le chemin de la requête, de la soumission du prompt à la sortie finale.
Pour le coût, utilisez le tarif par million de tokens de chaque modèle et calculez ce que vous paieriez en fonction de l'usage réel de tokens d'entrée et de sortie sur le jeu de test.
Quand devrais-je faire un rollback d'un modèle fine-tuné ?
Faites un rollback quand le monitoring de production montre que la qualité a chuté de façon nette. Cela peut indiquer une dérive du modèle ou un échec sur des entrées réelles.
Vous devriez aussi faire un rollback si le modèle glisse sur votre jeu de refus, ouvre de nouvelles faiblesses aux injections de prompt, ou fait pire que la version actuelle lors des tests canaris en production.
Gardez un œil attentif sur la latence p95 et les problèmes de qualité signalés par les utilisateurs afin de repérer les ennuis tôt.
Choisissez le modèle qui vous convient dans le marketplace
Essayez les modèles de chat, image et vidéo sur le marketplace APIMart, puis découvrez rapidement leurs capacités avec une API unifiée.