Parcours API Developer
D6 · Performance, Latency and Cost
Prompt caching, Batch, Flex processing, fast mode, predicted outputs, décomposition du budget de latence, downshifting de modèle et comptabilité de tokens avec des calculs de coût travaillés.
Ce domaine représente environ 12 % de l’examen blanc OAI-API — à peu près 7 des 60 items — et reflète le cours Academy Optimize AI Application Performance (30 min). Il teste si vous savez rendre une application d’IA rapide, fiable et abordable en production : mettre en cache les prompts stables, batcher le travail non urgent, choisir le bon palier de traitement, décomposer un budget de latence, rétrograder (downshift) le modèle quand la qualité le permet, et faire le calcul de tokens qui décide du coût.
Ce que vous devez savoir
Le travail de performance est un ensemble de leviers que vous actionnez après que l’application fonctionne et qu’une évaluation protège la qualité. Le prompt caching réduit le coût et la latence quand un long préfixe se répète. Batch échange la latence contre une forte remise sur les jobs bulk non urgents. Le Flex processing offre du calcul moins cher pour le travail tolérant à la latence ; le fast mode vise une faible latence pour le travail interactif. Les predicted outputs accélèrent les réponses largement connues à l’avance. Vous décomposez un budget de latence pour trouver le vrai goulot d’étranglement, vous rétrogradez le modèle vers le moins cher qui passe encore l’évaluation, et vous étayez chaque décision par une comptabilité de tokens — le coût égale tokens ÷ 1 000 000 × prix/MTok, par requête et à l’échelle.
Objectifs d’apprentissage
À la fin de cette page, vous devriez être capable de :
- Appliquer le prompt caching et structurer les prompts pour que le cache soit touché.
- Choisir entre Batch, Flex processing et fast mode selon la tolérance à la latence.
- Utiliser les predicted outputs là où une grande partie de la sortie est connue.
- Décomposer un budget de latence pour trouver le vrai goulot d’étranglement.
- Rétrograder le modèle et le reasoning effort sans casser l’évaluation.
- Faire la comptabilité de tokens et calculer le coût à partir des prix réels.
6.1 L’ordre d’optimisation
1. Faire que ça marche (sortie correcte)2. Le protéger avec une éval (pour que l'optimisation ne casse pas silencieusement la qualité)3. ENSUITE optimiser : coût ── caching, downshift modèle/effort, batch, flex vitesse ── stream, fast mode, predicted outputs, réduire les tokens4. Relancer l'éval après chaque changementOptimiser avant d’avoir une évaluation signifie que vous ne pouvez pas dire si un modèle moins cher a discrètement ruiné la qualité. L’ordre compte.
Signal d’évaluation
« Réduire le coût sans perdre la qualité », « l’application est trop lente », « l’option la moins chère qui satisfait encore l’exigence » (MOST cost-effective) sont des items de performance. La bonne réponse nomme généralement un levier spécifique et préserve l’évaluation.
6.2 Prompt caching
Quand de nombreuses requêtes partagent un long préfixe identique (un gros prompt système, un bloc d’instructions fixe, un document stable), le caching vous permet d’éviter de le retraiter — les tokens d’entrée mis en cache sont moins chers et plus rapides.
[ long préfixe stable (mis en cache) ][ entrée utilisateur variable (non mise en cache) ] payer une fois, réutiliser payer par requêteRègle de conception : placez le contenu stable en premier et le contenu variable en dernier, pour que le plus long préfixe possible soit cacheable. Réordonner un prompt pour déplacer le contenu variable en tête détruit le hit de cache.
6.3 Batch, Flex et fast mode
| Palier | Latence | Coût | Utiliser pour |
|---|---|---|---|
| Batch | Heures (asynchrone) | Forte remise | Jobs bulk offline : classification nocturne, backfills, embeddings |
| Flex processing | Plus lent que le standard | Moins cher que le standard | Travail tolérant à la latence que vous voulez tout de même récupérer raisonnablement vite |
| Standard | Normal | Référence | Requêtes interactives typiques |
| Fast mode | La plus basse | Optimisé pour la vitesse | UX interactive où la latence est la priorité |
Le résultat peut-il attendre des heures ? ── oui ──► Batch (le moins cher pour le bulk) │ nonUn certain délai est-il acceptable ? ── oui ──► Flex processing │ nonUn utilisateur attend-il en direct ? ── oui ──► fast mode + streaming6.4 Predicted outputs
Quand vous connaissez déjà l’essentiel de la sortie — éditer un document, régénérer un fichier avec de petits changements, reformater un texte connu — les predicted outputs vous permettent de fournir le contenu attendu pour que le modèle le confirme/l’édite, réduisant substantiellement la latence par rapport à une régénération de zéro.
Usage typique : « appliquer ce petit changement à ce gros fichier », où 95 % de la sortie égale l’entrée.
6.5 Décomposer un budget de latence
« C’est lent » n’est pas actionnable. Décomposez le temps d’horloge en parties et attaquez la plus grande.
| Composant | Cause typique | Levier |
|---|---|---|
| Time-to-first-token | Reasoning effort élevé, cache froid, gros prompt | Baisser l’effort, mettre le préfixe en cache, rogner le prompt |
| Temps de génération | Beaucoup de tokens de sortie, gros modèle | Moins de tokens de sortie, downshift du modèle, predicted outputs |
| Temps d’outil/récupération | Function ou recherche vectorielle lente | Optimiser l’outil, paralléliser, mettre en cache |
| Réseau/file d’attente | Région, palier | Fast mode, région plus proche |
Latence totale = TTFT + génération + outil/récupération + réseau ▲ ▲ ▲ terme le plus grand ? attaquer CELUI-LÀ, puis remesurer.6.6 Downshifting de modèle et d’effort
Le gain fiable le moins cher est généralement le downshifting : passer d’Astra/Sol à Terra/Luna, ou baisser le reasoning effort, et confirmer que l’évaluation passe toujours.
| De | Vers | Quand |
|---|---|---|
gpt-6-astra | gpt-5.6-sol / terra | L’évaluation montre que le modèle moins cher atteint le niveau requis |
gpt-5.6-sol | gpt-5.6-terra | Travail général ; Terra passe |
gpt-5.6-terra | gpt-5.6-luna | Tâches claires, répétables, à fort volume |
effort high | medium / low | Les échecs n’étaient pas des échecs de profondeur de reasoning |
Chaque downshift est un changement → relancer l’évaluation (D3).
6.7 Comptabilité de tokens
Le coût est de l’arithmétique. Prix par million de tokens (septembre 2026) :
| Modèle | Entrée $/MTok | Sortie $/MTok |
|---|---|---|
gpt-6-astra | $10 | $50 |
gpt-5.6-sol | $4 | $20 |
gpt-5.6-terra | $2 | $12 |
gpt-5.6-luna | $0.20 | $1.20 |
Somme travaillée — choisir un modèle pour un résumeur. 200 000 requêtes/jour, 2 000 tokens d’entrée + 300 de sortie chacune.
Par jour : entrée 200 000 × 2 000 = 400 000 000 tok = 400 MTok sortie 200 000 × 300 = 60 000 000 tok = 60 MTok
Terra : 400 × $2 + 60 × $12 = $800 + $720 = $1,520/jour (~$45,600/mois)Luna : 400 × $0.20 + 60 × $1.20 = $80 + $72 = $152/jour (~$4,560/mois)Sol : 400 × $4 + 60 × $20 = $1,600 + $1,200 = $2,800/jour (~$84,000/mois)Si l’évaluation montre que Luna atteint le niveau requis pour le résumé, choisir Luna plutôt que Terra économise $1,368/jour ($41k/mois) pour la même qualité. Ce seul downshift, justifié par une évaluation, est la décision de coût à plus fort levier du domaine.
Cadre de décision
Utilisez le cadre CLIP pour optimiser sans casser la qualité.
| Lettre | Étape | Question |
|---|---|---|
| C | Cache | Y a-t-il un long préfixe stable à placer en premier et à mettre en cache ? |
| L | Latency tier | Batch (heures), Flex (bientôt), ou fast mode (maintenant) ? |
| I | Inference size | Pouvez-vous rétrograder le modèle/l’effort et passer encore l’évaluation ? |
| P | Prove | Le score d’évaluation a-t-il tenu après chaque changement ? |
La règle que le cours souligne : changer un levier, remesurer, ne garder que ce qui tient la qualité.
Erreurs fréquentes
| Erreur | Pourquoi elle survient | Que faire à la place |
|---|---|---|
| Optimiser avant qu’une évaluation existe | Pression de coût | Construire l’évaluation d’abord pour que les coupes ne cachent pas la perte de qualité |
| Mettre le contenu variable en premier dans le prompt | Ordre d’écriture naturel | Préfixe stable en premier pour que le caching touche |
| Utiliser le standard/temps réel pour un arriéré nocturne | Habitude | Utiliser Batch pour le bulk non urgent ; forte remise |
| Prendre le plus gros modèle par défaut | « Le plus sûr » | Rétrograder vers le modèle le moins cher que l’évaluation autorise |
| Deviner le goulot d’étranglement de latence | « C’est juste lent » | Décomposer le budget de latence ; attaquer le plus grand terme |
| Régénérer une grande sortie quasi identique | Ignorer les predicted outputs | Utiliser les predicted outputs quand l’essentiel de la sortie est connu |
| Ignorer le coût jusqu’à l’arrivée de la facture | Les tokens semblent abstraits | Faire tokens × prix/MTok × volume en amont |
| Couper la qualité pour économiser silencieusement | Aucune remesure | Relancer l’évaluation après chaque optimisation |
Défi de mise en situation
Mise en situation. Votre produit a deux fonctionnalités d’IA. La fonctionnalité A est un chat interactif où les utilisateurs attendent les réponses ; elle utilise un prompt système de 6 000 tokens plus un petit message utilisateur, s’exécute sur gpt-5.6-sol à l’effort high, et paraît poussive. La fonctionnalité B classe un arriéré nocturne de 3 M de documents sur gpt-5.6-sol, et la facture mensuelle est alarmante. La direction veut les deux plus rapides et moins chères sans nuire à la qualité, et vous avez des évaluations pour les deux.
Trace de raisonnement d’expert.
- La fonctionnalité A est un problème de latence ; décomposez-le. Le prompt système de 6 000 tokens est un préfixe fixe retraité à chaque tour, gonflant le time-to-first-token. Déplacez le contenu stable en tête et activez le prompt caching pour que le préfixe soit bon marché et rapide après le premier hit. Ensuite questionnez l’effort
high: si l’évaluation passe àmedium, rétrogradez l’effort pour réduire le temps de génération. Streamez la réponse pour qu’elle paraisse instantanée. - La fonctionnalité B est un problème de coût sans besoin de latence. Un arriéré nocturne peut attendre des heures, alors déplacez-le vers la Batch API pour la forte remise. Ensuite testez le downshifting du modèle : si l’évaluation montre que
gpt-5.6-lunaclasse au niveau cible, la baisse de prix de Sol ($4/$20) à Luna ($0.20/$1.20) est de ~20× sur l’entrée et ~17× sur la sortie. - Calcul de tokens sur la fonctionnalité B. Disons 3 M de docs × (800 entrée + 40 sortie). Sol :
2,400 MTok × $4 + 120 MTok × $20 = $9,600 + $2,400 = $12,000par exécution. Luna :2,400 × $0.20 + 120 × $1.20 = $480 + $144 = $624. Batch ajoute une remise supplémentaire par-dessus. Le downshift Sol→Luna à lui seul est l’économie dominante. - Protéger la qualité. Chaque changement — caching, downshift d’effort, downshift de modèle, Batch — est validé en relançant l’évaluation respective. Si Luna manque le niveau requis de classification, s’arrêter à Terra.
- Ne pas confondre les deux fonctionnalités. Batch ruinerait la fonctionnalité A (les utilisateurs attendent en direct) ; le fast mode/caching n’aiderait pas le coût de la fonctionnalité B. Adaptez le levier à la contrainte.
Décision conforme à l’examen : pour A, mettre en cache le préfixe stable, rétrograder l’effort si l’évaluation le permet, et streamer ; pour B, utiliser Batch et rétrograder le modèle vers le moins cher qui passe l’évaluation. Pas un réglage global unique pour les deux, pas de coupe sans relancer l’évaluation.
Pièges d’évaluation
| Piège | Pourquoi il est tentant | Le discriminant |
|---|---|---|
| « Utiliser le plus gros modèle pour être tranquille » | Biais du meilleur modèle | MOST cost-effective = le moins cher qui passe encore l’évaluation |
| « Tout batcher pour économiser » | Batch est bon marché | Batch ajoute des heures de latence ; mauvais pour les fonctionnalités interactives |
| « Le caching n’aidera pas nos prompts variables » | Les prompts semblent uniques | Un long préfixe stable (prompt système/document) est cacheable s’il est placé en premier |
| « C’est lent, mettons à niveau le modèle » | Un plus gros semble plus rapide | Décomposer la latence ; un plus gros modèle ajoute souvent de la latence |
| « Baisser le coût, pas besoin de revérifier la qualité » | Économiser semble sûr | Chaque optimisation est un changement ; relancer l’évaluation |
| « Régénérer tout le fichier pour une petite édition » | Le plus simple à coder | Les predicted outputs réduisent la latence quand l’essentiel de la sortie est connu |
| « Le coût est à peu près le même entre modèles » | Les tokens semblent bon marché | Luna est ~20× moins cher que Sol sur l’entrée ; faire le calcul |
Questions d’entraînement
Chaque item indique combien de réponses sélectionner. Engagez-vous avant de révéler.
Q1 · De nombreuses requêtes partagent un prompt système de 5 000 tokens suivi d’un court message utilisateur. Qu’est-ce qui réduit LE PLUS directement (MOST directly) le coût et la latence ? (Sélectionnez une réponse)
A. Passer à gpt-6-astra.
B. Activer le prompt caching avec le prompt système stable placé en premier pour que le long préfixe soit mis en cache.
C. Ajouter plus de tokens de sortie.
D. Déplacer le message utilisateur en tête du prompt.
Réponse : B. Un long préfixe stable placé en premier est le cas idéal de prompt caching, réduisant le coût et le time-to-first-token. Un plus gros modèle (A) coûte plus, plus de sortie (C) est plus lent, et mettre le message variable en tête (D) détruit le préfixe cacheable.
Q2 · Un job nocturne classe 5 M de documents et la latence n’importe pas. Quel choix de traitement est LE PLUS économique (MOST cost-effective) ? (Sélectionnez une réponse)
A. Des requêtes standard en temps réel. B. La Batch API, qui échange la latence contre une forte remise sur le travail bulk. C. Le fast mode. D. Le streaming.
Réponse : B. Le travail bulk non urgent est le cas d’usage de Batch : des heures de latence pour une forte remise. Le standard (A) et le fast mode (C) paient pour une vitesse dont vous n’avez pas besoin, et le streaming (D) est une fonctionnalité UX, pas un palier de coût.
Q3 · Un résumeur s’exécute 100 000 fois/jour à 1 000 tokens d’entrée et 200 de sortie. Quel est le coût quotidien sur `gpt-5.6-luna` ? (Sélectionnez une réponse)
A. Environ $0.44. B. Environ $4.40. C. Environ $44. D. Environ $440.
Réponse : C. Entrée : 100 000 × 1 000 = 100 MTok × $0.20 = $20.00. Sortie : 100 000 × 200 = 20 MTok × $1.20 = $24.00. Total ≈ $44.00/jour. Le discriminant est de faire MTok × prix/MTok exactement ; A et B sont 100× et 10× trop bas, et D est 10× trop haut.
Q4 · Une fonctionnalité interactive paraît lente. Avant de changer quoi que ce soit, que devriez-vous faire ? (Sélectionnez une réponse)
A. Mettre immédiatement à niveau vers le plus grand modèle. B. Décomposer le budget de latence (time-to-first-token, génération, outil/récupération, réseau) et attaquer le plus grand terme. C. Ajouter plus de tokens de sortie. D. Passer à Batch.
Réponse : B. Vous ne pouvez pas corriger la latence sans savoir quel composant domine, alors décomposez d’abord. Mettre à niveau à l’aveugle (A) ajoute souvent de la latence, plus de sortie (C) est plus lent, et Batch (D) est mauvais pour une fonctionnalité interactive.
Q5 · Vous éditez un grand document où 95 % de la sortie égale l’entrée. Quelle fonctionnalité réduit LE PLUS (MOST) la latence ? (Sélectionnez une réponse)
A. Les predicted outputs, en fournissant le contenu attendu pour que le modèle le confirme/l’édite plutôt que de régénérer. B. Un reasoning effort plus élevé. C. Une fenêtre de contexte plus grande. D. Le traitement Batch.
Réponse : A. Les predicted outputs accélèrent les réponses dont la sortie est en grande partie connue à l’avance, idéal pour de petites éditions de gros fichiers. Un effort plus élevé (B) est plus lent, la taille du contexte (C) ne traite pas le coût de régénération, et Batch (D) ajoute de la latence.
Q6 · Une évaluation montre que `gpt-5.6-luna` classe au niveau cible que `gpt-5.6-sol` atteint actuellement. Quelle est l’action LA PLUS économique (MOST cost-effective) ? (Sélectionnez deux réponses)
A. Rétrograder de Sol à Luna pour cette tâche.
B. Relancer l’évaluation après le changement pour confirmer que la qualité tient.
C. Garder Sol parce qu’un plus gros est plus sûr.
D. Mettre à niveau vers gpt-6-astra.
E. Désactiver l’évaluation pour économiser du calcul.
Réponse : A et B. Si Luna passe l’évaluation, il est bien moins cher, alors rétrogradez et revérifiez. Garder Sol (C) ou monter vers Astra (D) gaspille de l’argent sans gain mesuré, et désactiver l’évaluation (E) retire le garde-fou de qualité.
Q7 · Quel travail est LE MAUVAIS (WRONG) choix pour la Batch API ? (Sélectionnez une réponse)
A. Le ré-embedding nocturne d’un corpus de documents. B. Un chat en direct où l’utilisateur attend chaque réponse. C. Un backfill de classifications le week-end. D. La génération bulk de descriptions produit pendant la nuit.
Réponse : B. Batch introduit des heures de latence, ce qui est inacceptable quand un utilisateur attend en direct. Les embeddings nocturnes (A), un backfill de week-end (C) et la génération bulk nocturne (D) sont tous tolérants à la latence et conviennent bien à Batch.
Q8 · Une équipe baisse le coût en passant à un modèle moins cher mais ne revérifie pas la qualité. Quel est le risque ? (Sélectionnez une réponse)
A. Aucun ; moins cher est toujours bien. B. Le modèle moins cher peut manquer silencieusement le niveau de qualité ; sans relancer l’évaluation, la régression est livrée inaperçue. C. L’API rejettera la requête. D. La latence augmentera toujours.
Réponse : B. Un downshift est un changement qui peut dégrader la qualité ; seule la relance de l’évaluation l’attrape. Moins cher n’est pas toujours bien (A), l’API ne rejette pas un modèle valide (C), et un modèle moins cher baisse souvent, plutôt qu’il n’augmente, la latence (D).
Q9 · Quel est l’ordre correct des opérations quand une fonctionnalité qui fonctionne est trop chère ? (Sélectionnez une réponse)
A. Optimiser d’abord, puis construire une évaluation s’il reste du temps. B. S’assurer qu’une évaluation protège la qualité, puis appliquer les leviers de coût (caching, downshift, batch, flex), en remesurant après chacun. C. Passer immédiatement au modèle le moins cher et livrer. D. Retirer la fonctionnalité.
Réponse : B. L’optimisation doit être gardée par une évaluation pour que les coupes ne cassent pas silencieusement la qualité ; puis appliquer les leviers et remesurer. Optimiser avant l’évaluation (A) ou basculer à l’aveugle (C) risque des régressions inaperçues, et retirer la fonctionnalité (D) n’est pas de l’optimisation.
Q10 · Une charge tolérante à la latence veut un coût plus bas que le standard mais ne peut pas attendre les heures que Batch requiert. Quel palier convient ? (Sélectionnez une réponse)
A. Le fast mode. B. Le Flex processing, moins cher que le standard pour du travail tolérant à la latence renvoyé raisonnablement vite. C. Batch. D. Le streaming.
Réponse : B. Le Flex processing se situe entre le standard et Batch : moins cher que le standard, plus rapide que Batch, pour du travail tolérant à la latence. Le fast mode (A) optimise pour la vitesse à un coût plus élevé, Batch (C) est trop lent ici, et le streaming (D) est une fonctionnalité UX.
Q11 · Le time-to-first-token est le terme de latence dominant pour une fonctionnalité interactive à l’effort `high`. Quels DEUX (TWO) leviers aident directement ? (Sélectionnez deux réponses)
A. Baisser le reasoning effort si l’évaluation passe toujours. B. Mettre en cache le long préfixe de prompt stable pour qu’il ne soit pas retraité à chaque tour. C. Augmenter le max output tokens. D. Passer à un plus gros modèle. E. Ajouter plus de chunks récupérés.
Réponse : A et B. Un effort élevé et le retraitement d’un gros préfixe gonflent tous deux le time-to-first-token, donc baisser l’effort et mettre le préfixe en cache l’attaquent directement. Plus de tokens de sortie (C) affectent le temps de génération, un plus gros modèle (D) ajoute généralement de la latence, et plus de chunks (E) ajoutent des tokens.
Q12 · Une charge de 500 000 requêtes/jour utilise 1 500 tokens d’entrée et 500 de sortie sur `gpt-5.6-terra`. Quel est approximativement le coût quotidien ? (Sélectionnez une réponse)
A. Environ $180. B. Environ $4,500. C. Environ $45,000. D. Environ $450,000.
Réponse : B. Entrée : 500 000 × 1 500 = 750 MTok × $2 = $1,500. Sortie : 500 000 × 500 = 250 MTok × $12 = $3,000. Total ≈ $4,500/jour. L’option A perd un facteur, et C et D sont 10× et 100× trop hautes.
Points clés à retenir
- N’optimisez qu’après qu’une évaluation protège la qualité, et relancez-la après chaque changement.
- Le prompt caching réduit le coût et la latence quand un long préfixe stable est placé en premier.
- Adaptez le palier à la tolérance à la latence : Batch (heures), Flex (bientôt), fast mode (maintenant) ; streamez pour les utilisateurs en attente.
- Les predicted outputs accélèrent les réponses dont la sortie est largement connue, comme de petites éditions de gros fichiers.
- Décomposez le budget de latence et attaquez le plus grand terme plutôt que de deviner.
- Rétrogradez le modèle et le reasoning effort vers l’option la moins chère que l’évaluation autorise.
- Le coût est de l’arithmétique :
tokens ÷ 1 000 000 × prix/MTok × volume— un downshift de modèle justifié est généralement la plus grande économie.
Dernière mise à jour le 18 sept. 2026