Évaluer contre l'existant, et décider
Le seul benchmark qui compte : contre l'existant
Un reranker à 0.91 de match@1 ne veut rien dire dans l'absolu. La seule question : bat-il ce qui tourne déjà ? Le protocole, directement branché sur le harness d'éval du cours Stack IA :
même corpus, même split par groupe, trois scoreurs comparés :
A. poids manuels actuels (id 0.40, text 0.35…) ← le champion en place
B. rerank Cohere ← le champion externe
C. ton reranker appris ← le challenger
→ match@1, MRR sur le TEST — à contrat égal (les mêmes candidats en entrée)
Le « à contrat égal » est vital (leçon de la méthode eval-driven) : les trois reçoivent exactement les mêmes candidats, seul l'ordre final diffère. Sinon on compare des recalls, pas des rankers.
Lire les résultats avec honnêteté
- le challenger perd → résultat parfaitement valide : les poids manuels d'un expert métier sont durs à battre avec peu de données. Livrable : « pas encore, continuer à collecter le feedback » ;
- le challenger gagne de peu → attention au coût de la complexité : un modèle à maintenir, entraîner, monitorer vaut-il +1 pt de match@1 ? Souvent non ;
- le challenger gagne nettement → candidat au déploiement, mais avec les précautions ci-dessous ;
- regarder OÙ il gagne/perd : gagne-t-il sur les cas durs et perd-il sur les faciles ? Un ranker qui régresse sur les évidences est dangereux même s'il gagne en moyenne (revois les cas, cours ML).
Le piège du sur-ajustement (rappel du cours ML)
Avec quelques centaines de groupes, un boosting peut mémoriser le train et briller… en test aussi si le test est petit. Les gardes : cross-validation par groupe, intervalle de confiance sur le match@1 (un écart de 0.87 vs 0.89 sur 80 requêtes de test n'est peut-être pas significatif), et surtout le test ultime — une vraie mesure en ligne (shadow/A-B) avant de faire confiance à l'offline (leçon monitoring : l'offline ne prédit qu'imparfaitement le réel).
La décision, formalisée
Déployer un reranker appris = ajouter une dépendance à maintenir (dataset qui doit rester frais, réentraînement, monitoring du drift des features). La grille de décision honnête : gain net et significatif en offline et confirmé en shadow et le coût de maintenance accepté. Trois oui sur quatre = « on garde l'existant, on documente pourquoi ». C'est le même arbitrage que « framework vs SDK » : le plus sophistiqué n'est pas le plus sage par défaut.
Un reranker à 0.91 de match@1 est-il bon ?