درس 10 — Boucle d'amélioration continue

A/B, détection de dérive et revue des erreurs

6 دقائق قراءة

هذا المحتوى غير مترجم بعد. تُعرض النسخة الأصلية.

Hors ligne et en ligne : deux regards complémentaires

Évaluation hors ligne (CI)Évaluation en ligne (production)
DonnéesJeu doré, fixe et validéVraies questions, qui évoluent
Vérité de référenceOui (réponse attendue)Rarement (signaux indirects)
RôleBloquer les régressions connuesDécouvrir l'inconnu, confirmer un gain
Coût d'une erreurNul (rien n'est déployé)Des utilisateurs touchés
flowchart LR
  A["Jeu doré"] --> B["CI hors ligne"]
  B --> C["Déploiement progressif / A-B"]
  C --> D["Signaux en ligne : replis, pouces, escalades"]
  D --> E["Revue des erreurs hebdomadaire"]
  E -- "nouveaux cas validés" --> A
  E -- "correctifs" --> B

A/B : comparer deux versions sur du vrai trafic

Une fois la CI passée, la version B est servie à une fraction des utilisateurs (par exemple 10 %), la version A au reste. On compare des indicateurs définis à l'avance :

  • taux de pouces vers le bas, taux de repli, taux d'escalade vers un humain (support client) ;
  • coût et latence par requête ;
  • sur un échantillon de chaque bras : score du LLM-juge (fidélité) sans référence.
affectation.py
import hashlib

def bras(utilisateur_id, part_b=0.10, experience="prompt-v8"):
    """Affectation stable : un utilisateur reste dans le même bras."""
    h = int(hashlib.sha256(f"{experience}:{utilisateur_id}".encode()).hexdigest(), 16)
    return "B" if (h % 10_000) / 10_000 < part_b else "A"

assert bras("u-1") == bras("u-1")  # stable

Pourquoi affecter les utilisateurs par hash de leur identifiant plutôt qu'au hasard à chaque requête ?

Détecter la dérive

Deux dérives à surveiller :

DériveExempleSignal simple
Des entréesNouvelle réforme : les salariés posent soudain beaucoup de questions sur un sujet absent de la basePart des questions avec un score de recherche top-1 bas ; nouveaux thèmes dans les questions
De la qualitéLe fournisseur met à jour le modèle derrière un aliasTaux de repli, pouces vers le bas, score du juge sur échantillon quotidien
derive.py
from statistics import mean

def alerte_derive(scores_reference, scores_semaine, seuil_bas=0.55, ecart_max=0.10):
    """Compare la part de questions « mal couvertes » (score top-1 < seuil_bas)."""
    part = lambda s: mean(x < seuil_bas for x in s)
    ecart = part(scores_semaine) - part(scores_reference)
    return ecart > ecart_max, round(ecart, 3)

ref = [0.82, 0.77, 0.91, 0.60, 0.85, 0.79, 0.88, 0.73]
semaine = [0.81, 0.42, 0.50, 0.86, 0.47, 0.79, 0.52, 0.90]
print(alerte_derive(ref, semaine))  # (True, 0.5) : 4 questions sur 8 mal couvertes contre 0

La revue des erreurs

Une séance courte et régulière (par exemple 45 minutes par semaine) avec un développeur et un expert métier :

  1. Échantillonner : tous les pouces vers le bas, une partie des replis, un échantillon aléatoire de réponses « OK ».
  2. Classer chaque erreur avec la typologie du module 1 (hallucination, mauvaise recherche, obsolète…).
  3. Compter par type : on corrige d'abord la catégorie la plus fréquente.
  4. Convertir chaque erreur confirmée en cas du jeu doré, avec la bonne réponse validée par l'expert.
  5. Décider du correctif (index, prompt, garde-fou) et le faire passer par la CI.

Lors de la revue, 12 erreurs sur 20 sont des « mauvaises recherches ». Quelle action est la plus pertinente en premier ?

Exercice : préparer une revue des erreurs

Voici six retours négatifs de la semaine sur l'assistant RH fictif. Classez-les, comptez par type, et proposez les deux premières actions.

  1. Réponse sur le télétravail fondée sur la charte 2024.
  2. « Je ne trouve pas » pour une question sur la mutuelle, alors que le document existe.
  3. Invente un délai de prévenance de 15 jours.
  4. Charte télétravail 2024 citée à nouveau, autre formulation.
  5. « Je ne trouve pas » sur la prévoyance : document présent mais intitulé « régime de protection sociale ».
  6. Réponse juste mais sans citation.
Voir la solution
TypeRetoursNombre
Information obsolète1, 42
Mauvaise recherche (vocabulaire)2, 52
Hallucination31
Format (citation manquante)61

Actions prioritaires :

  1. Index : retirer ou marquer comme périmée la charte télétravail 2024 (filtre de validité), et ajouter 2 cas au jeu doré avec interdit sur la règle 2024.
  2. Recherche : enrichir les documents de synonymes ou de métadonnées (mutuelle, prévoyance, protection sociale), ou passer à une recherche hybride mots-clés + vecteurs ; ajouter les questions 2 et 5 au jeu doré pour suivre le rappel.

L'hallucination (3) et la citation manquante (6) deviennent aussi des cas, traités ensuite par la consigne de fidélité et la validation de sortie.

Je sais faire

  • Expliquer la complémentarité entre évaluation hors ligne et en ligne.
  • Mettre en place une affectation A/B stable et définir les indicateurs à l'avance.
  • Détecter une dérive des entrées ou de la qualité avec des signaux simples.
  • Animer une revue des erreurs qui produit des correctifs et de nouveaux cas.
التالي