Technique
Partie IV. Le cœur SRE : SLO de qualité et budgets d'erreur
Pour : ingénieurs et SRE · architectes · managers d’équipePrérequis : Avoir lu la partie I ; notions de SLO, de budget d'erreur et de burn rate.
C’est la contribution la plus spécifique de la méthode. La discipline SRE des SLO et des budgets d’erreur s’applique, mais la qualité est probabiliste et mesurée par échantillonnage, ce qui change tout.
12. SLI déterministes contre SLI probabilistes
Section intitulée « 12. SLI déterministes contre SLI probabilistes »Trois familles de SLI :
- Service (déterministes) : disponibilité, latence, taux d’erreur. Mesurés sur 100 pour cent du trafic, comme en SRE classique.
- Qualité (probabilistes) : fidélité, hallucination, refus, pertinence. Mesurés sur un échantillon, par un évaluateur lui-même non déterministe.
- Coût : coût moyen par requête, session, tâche et dérive.
La différence fondamentale : un SLI de qualité est une estimation entachée d’incertitude d’échantillonnage. Le traiter comme une mesure exacte est une faute méthodologique fréquente, traitée en anti-pattern (partie VIII, piège 3).
13. Définir un SLO de qualité
Section intitulée « 13. Définir un SLO de qualité »Cette partie est la référence du site pour les SLO de qualité. Les seuils simplifiés présentés ailleurs, par exemple dans les labs ou le guide, sont des SLO pédagogiques qui renvoient ici.
Pourquoi un seuil sur une moyenne n’est pas un SLO de qualité. Une moyenne de scores (« fidélité moyenne supérieure à 0,8 ») ne dit pas combien de réponses sont mauvaises : quelques réponses très mauvaises se cachent derrière beaucoup de bonnes et la moyenne bouge à peine quand la traîne se dégrade. Elle ne fournit pas non plus de budget : on ne sait pas en tirer un budget d’erreur ni un burn rate. Un SLO compte des événements bons parmi des événements valides. Pour la qualité, l’événement bon est une réponse dont le score atteint un seuil, le SLI est donc une proportion et, comme cette proportion est estimée sur un échantillon, on la compare à la cible par sa borne inférieure de confiance.
On définit un seuil de qualité tau (par exemple un score de fidélité minimal), puis :
SLI_qualite = (nombre de réponses échantillonnées avec score >= tau) / (taille de l'échantillon)Comme c’est une proportion estimée sur n observations, on ne compare pas la valeur ponctuelle à la cible mais la borne inférieure de l’intervalle de confiance à 95 pour cent (borne de Wilson, robuste sur petits échantillons) :
SLO respecté <=> borne_inferieure_95(SLI_qualite, n) >= cibleTaille d’échantillon : pour une marge d’erreur e à 95 pour cent autour d’une proportion p, on dimensionne par n ~= (1,96 / e)^2 * p * (1 - p). Exemple : pour estimer un taux de fidélité voisin de 0,95 à plus ou moins 2 points, il faut de l’ordre de 450 à 500 réponses évaluées par fenêtre. Échantillonnage stratifié recommandé : sur-échantillonner les segments à risque (requêtes sensibles, nouveaux flux) plutôt qu’un tirage uniforme.
C’est le nombre de jugements par segment et par fenêtre qui fixe la précision, pas le pourcentage du trafic. Exemple illustratif : 10 pour cent d’un segment de 200 requêtes par jour donnent 20 jugements, bien trop peu pour la marge visée ci-dessus ; 1 pour cent d’un flux de 100 000 requêtes en donnent 1 000. Les pourcentages par palier du guide, 5.7 sont des exemples à convertir ainsi : partir de la marge voulue, en déduire n par segment et par fenêtre, puis le taux d’échantillonnage de chaque segment.
Formulation type d’un SLO de qualité : « au moins 95 pour cent des réponses, estimées sur un échantillon stratifié d’environ 500 par jour, obtiennent un score de fidélité supérieur au seuil, borne inférieure de l’intervalle de confiance à 95 pour cent au-dessus de la cible, sur une fenêtre glissante de 7 jours ».
14. Budget d’erreur et burn rate sur la qualité
Section intitulée « 14. Budget d’erreur et burn rate sur la qualité »Le budget d’erreur s’applique à la qualité, pas seulement à la disponibilité :
budget_erreur_qualite = 1 - cibleburn_rate = (1 - SLI_qualite) / (1 - cible)Un burn_rate de 1 consomme le budget exactement au rythme prévu, au-delà il s’épuise trop vite. Alerting multi-fenêtre, adapté à la dynamique de la qualité :
- fenêtre courte (par exemple 1 h, burn rate élevé) : détecte un effondrement brutal, par exemple après un déploiement de prompt ou un changement de modèle.
- fenêtre longue (par exemple 24 h à 7 j, burn rate modéré) : détecte la dérive lente, qui est la pathologie propre de la qualité.
La latence n’est pas le bon analogue : la qualité bouge lentement, ses fenêtres sont plus longues que celles de la disponibilité.
15. Le problème de l’évaluateur (méta-observabilité)
Section intitulée « 15. Le problème de l’évaluateur (méta-observabilité) »Point aveugle de la plupart des dispositifs : l’évaluateur LLM-as-judge est lui-même un modèle, non déterministe et il dérive. Si le juge dérive, le SLI de qualité est corrompu sans que rien ne l’indique. Il faut donc observer le juge :
- golden set : un jeu de référence annoté par des humains, stable.
- calibration : accord entre le juge et le golden set, de préférence avec un indicateur corrigé du hasard comme le kappa de Cohen (voir le guide, 5.4), mesuré et suivi comme une métrique à part entière. Un accord qui chute invalide les mesures de qualité.
- versionnage du juge : épingler la version du modèle juge et du prompt d’évaluation. Tout changement de juge est un événement à tracer, au même titre qu’un changement de modèle de production.
- recalibration périodique : revalider le juge contre les humains à intervalle régulier et après tout changement de version.
- économie de la vérité terrain : le goulot est l’annotation humaine. Stratégie : constituer le golden set une fois, l’utiliser pour calibrer le juge, laisser le juge passer à l’échelle et ne re-solliciter l’humain que pour la revalidation périodique et les cas à faible confiance.
Opérationnaliser la borne de Wilson. Elle ne se calcule pas en MetricsQL. Elle vit dans un sidecar de SLO qualité qui lit les scores échantillonnés (depuis la plateforme d’éval ou le store de traces), calcule la borne sur une fenêtre glissante et l’expose comme métrique OTel. L’alerte de SLO lit alors cette métrique. Chaîne de bout en bout :
# sidecar de SLO qualité : borne de Wilson exposée comme métrique OTelfrom math import sqrt
def wilson_lower(k, n, z=1.96): if n == 0: return 0.0 p = k / n d = 1 + z*z/n centre = p + z*z/(2*n) margin = z * sqrt(p*(1-p)/n + z*z/(4*n*n)) return (centre - margin) / d
# k = réponses échantillonnées avec score >= tau, n = taille de l'échantillon# émis comme quality_slo.faithfulness.lower_bound (jauge OTel), hors de# l'espace gen_ai.*, réservé aux conventions sémantiquesslo_respecte = wilson_lower(k, n) >= cibleL’alerte se déclenche sur la borne inférieure passant sous la cible, pas sur la valeur ponctuelle. Le lab complet de la méthode, en préparation (partie IX), embarquera ce sidecar : son scénario d’hallucination doit faire chuter la borne sous la cible là où la latence reste verte.
16. SLO composites
Section intitulée « 16. SLO composites »Un RAG a un SLO de recherche et un SLO de génération. Le SLO perçu par l’utilisateur est la conjonction : la réponse n’est bonne que si la recherche a remonté le bon contexte et que la génération l’a respecté. Décomposer permet d’attribuer correctement une dégradation au bon maillon. Un agent a un SLO de succès de tâche, conjonction des SLO des outils et du modèle sur la trajectoire.
17. Gating qualité en intégration continue
Section intitulée « 17. Gating qualité en intégration continue »Le pendant hors ligne des SLO. Tout changement de prompt, de modèle ou de version d’outil passe par une suite d’éval sur un dataset de référence avant déploiement. La règle : bloquer le déploiement si la suite régresse au-delà du budget. Outils : DeepEval, RAGAS, Promptfoo. Principe : une éval légère qui tourne à chaque pull request vaut mieux qu’une éval complète trimestrielle qu’on oublie de lancer.
Révisé le 4 octobre 2026 : la partie devient la référence du site pour les SLO de qualité ; ajout de la raison pour laquelle un seuil sur une moyenne n’est pas un SLO, du principe d’échantillonnage du juge (nombre de jugements par segment et par fenêtre, avec renvoi au guide 5.7) et de l’accord corrigé du hasard pour la calibration.