Construire un modèle de coût par requête
Il faut commencer par des traces capables d'expliquer l'origine de la dépense. Pour chaque requête, je conserve :- le workflow et l'intention ;
- le modèle et le fournisseur sélectionnés ;
- les tokens d'entrée, de cache et de sortie ;
- les appels de recherche documentaire et de reclassement ;
- les appels d'outils et nouvelles tentatives ;
- la latence de chaque étape ;
- le résultat, la solution de repli et l'escalade ;
- le périmètre du client ou du produit lorsqu'il est pertinent.
Supprimer le travail évitable avant de changer de modèle
Les économies les plus sûres viennent souvent du design applicatif :- Supprimer les appels dupliqués. Les nouvelles tentatives suivent une politique explicite et les opérations doivent être idempotentes.
- Réduire le contexte non pertinent. Filtrer par métadonnées, récupérer moins de candidats mais mieux ciblés, puis les reclasser.
- Réutiliser les calculs stables. Mettre en cache les recherches répétées, les résultats d'outils déterministes et les préfixes de prompt lorsque la fraîcheur le permet.
- Sortir la logique déterministe du modèle. Validation, formatage, permissions et routage simple appartiennent souvent au code.
- Contractualiser la longueur de sortie. Demander l'information utile au produit plutôt qu'un texte sans limite.
Router selon les exigences de la tâche
Le routage de modèles devient utile lorsque les familles de tâches ont des besoins différents en raisonnement, contexte, latence ou politique. Un classifieur déterministe ou un état explicite du workflow est souvent plus simple à tester qu'un modèle chargé de choisir un autre modèle. Une politique de routage peut considérer :- la complexité de la tâche et les outils requis ;
- la taille et la modalité du contexte ;
- la qualité des preuves ;
- l'objectif de latence ;
- la résidence des données et la politique du fournisseur ;
- l'historique des solutions de repli ;
- la qualité mesurée sur le même segment de tâches.
Traiter le contexte comme un budget
Les systèmes RAG peuvent accumuler du contexte silencieusement. Ajouter des segments ne garantit pas une meilleure réponse et augmente souvent le coût, la latence et la distraction. J'attribue à chaque workflow un budget de contexte explicite en conservant les preuves les plus susceptibles d'influencer la réponse. Les contrôles utiles incluent la réécriture de requête, les filtres de métadonnées, la recherche hybride, la déduplication, le reclassement, les représentations compactes des sources et la séparation entre instructions de politique et preuves récupérées. Les longues conversations doivent être résumées ou converties en état structuré plutôt que rejouées indéfiniment. Ce budget doit rester observable. On suit les tokens récupérés, les éléments effectivement cités, le comportement du cache et les catégories d'échec. Cela permet de vérifier si la réduction du contexte améliore l'efficacité ou supprime simplement des preuves nécessaires.Protéger la qualité pendant l'optimisation
Chaque optimisation doit être comparée à la version courante sur le même ensemble de tâches représentatives. Il faut mesurer :- l'accomplissement des tâches et la qualité de l'ancrage factuel ;
- la validité des citations et des appels d'outils ;
- le comportement des solutions de repli et escalades ;
- la distribution de latence ;
- le coût par tâche réussie ;
- la performance des segments critiques, pas seulement la moyenne.
Mettre en place des budgets et des responsabilités claires
Les garde-fous de coût fonctionnent à trois niveaux :- requête : empêcher les boucles, le contexte excessif et les sorties sans limite ;
- client ou produit : détecter une consommation inattendue et protéger la capacité partagée ;
- portefeuille : comparer la dépense à l'adoption, à l'accomplissement et à la valeur métier.