Le problème
Une équipe intègre un retrieval dans son produit : un corpus, un découpage, un modèle d'embedding, parfois un reranker. Et puis vient la question du « est-ce que ça marche ? ». Sans qrels, on observe trois comportements - et aucun ne tient.
- Ne rien mesurer. Taille des chunks,
top_k, modèle d'embedding : tout est réglé à l'œil. C'est comme avancer dans le brouillard sans boussole. - Mesurer de bout en bout. Une évaluation automatique de la réponse finale montre une dégradation. Mais elle ne distingue pas une recherche qui n'a pas trouvé le bon chunk d'une génération qui l'a mal exploité. Et on finit par optimiser le mauvais étage.
- Annoter à la main. Trier une cinquantaine de candidats, ça prend huit à dix minutes à un expert. Cent questions, et c'est quelques jours de son temps. Le vrai problème, là encore, c'est qu'on ne le trouve pas : l'annotation passe après le reste, met des semaines à aboutir, et personne ne la refait quand le corpus bouge. C'est le point que tout le monde sous-estime.
Le référentiel a, par ailleurs, une propriété que les composants qu'il sert à évaluer n'ont pas : il reste valide quand on change de modèle d'embedding, de découpage ou de reranker. C'est un actif qui dure - là où le retrieveur qu'il mesure, lui, sera remplacé.
Le livrable
Le livrable comprend trois parties :
- les fichiers fournis ;
- une application interactive d'évaluation par vos experts ;
- sur option, des modèles fine-tunés.
Les fichiers fournis
Une archive, envoyée par lien de téléchargement. Pas d'intégration, pas de kit de développement, pas d'environnement à préparer - Simple, basique.
qrels.csv - le référentiel
Une ligne par couple (question, chunk candidat évalué) - y compris les candidats jugés non pertinents. Leur présence prouve que le pool a bien été examiné, et ils font de bons négatifs pour l'entraînement d'un reranker.
| Colonne | Type | Description |
|---|---|---|
query_id | str | Identifiant repris de questions.csv |
chunk_id | str | Identifiant repris de chunks.csv |
rank | int | Rang du chunk pour cette question, à partir de 1 |
grade | int | Degré de pertinence : 2 très pertinent, 1 pertinent, 0 non pertinent |
score | float | Score continu de pertinence, pour départager finement |
confidence | float | Indice de fiabilité du score de ce chunk, dans [0,1] |
qrels.trec
Le même contenu au format standard query_id 0 chunk_id grade,
directement consommable par ir_measures et pytrec_eval.
uncertain.csv
Les questions sur lesquelles le système n'a pas convergé, ou dont le meilleur candidat fait un score faible - typiquement une question ambiguë, ou une question sans réponse dans le corpus. On préfère circonscrire l'incertitude et vous la dire, plutôt qu'afficher une certitude uniforme qui n'existe pas.1
report.html et metrics.json
Un indice de fiabilité global et par question ; la distribution du nombre de chunks
pertinents par question ; la couverture estimée du pool de candidats2 ;
et la ligne de commande exacte pour recalculer vos propres métriques. Les mêmes valeurs
se retrouvent dans metrics.json, sous forme structurée, pour suivre l'évolution
d'un traitement à l'autre.
fulldata.jsonl
Le contenu de qrels.csv, enrichi du texte des questions, du contenu
des chunks et de l'indice de fiabilité de chaque score. Tout est dans un seul fichier : c'est celui que lit l'application de
validation, sans avoir besoin de vos fichiers d'origine.
Sur option : pas de questions ? Nous les générons
Vous n'avez pas de questions constituées ? Sur option, dès la formule Découverte, nous générons des questions synthétiques à partir de votre corpus, en couvrant plusieurs axes : type de tâche, complexité, style de formulation. La méthode de génération est à l'état de l'art, et vous recevez avec les questions un rapport qui évalue la qualité de chacune : vous savez lesquelles garder, revoir ou écarter.
Une application interactive d'évaluation par vos experts
Incluse dans la formule Starter, sans surcoût. Une application web locale qui présente le référentiel à vos experts métier pour qu'ils valident les jugements, ou les corrigent au besoin. Le traitement étant fiable, il y a normalement peu à reprendre : il s'agit de valider, pas de refaire l'annotation.
Elle est fournie sous forme d'image Docker, à déployer sur votre infrastructure et à ouvrir aux experts de votre choix. Elle est facultative : le référentiel s'utilise sans elle.
Pour la lancer sur votre fichier fulldata.jsonl :
docker pull goldset-verification:latest
docker run --rm -p 8080:8080 \
-v /path/to/fulldata.jsonl:/data/fulldata.jsonl:ro \
goldset-verification:latest /data/fulldata.jsonl
Sur option : des modèles fine-tunés
Le référentiel ne sert pas qu'à mesurer : c'est aussi un très bon jeu d'entraînement. Sur option, nous fine-tunons sur votre corpus trois modèles : un modèle d'embedding, un reranker et un modèle à interaction tardive (late interaction, comme ColBERT). Nous nous occupons de l'augmentation de données, pour garantir des performances qui se généralisent au-delà des questions du référentiel.
Chaque livraison s'accompagne d'une comparaison du gain de performance face à un retriever standard (hybride BM25 + embedding), mesurée sur votre référentiel.
Deux modes de livraison, au choix ou ensemble :
- les poids des modèles, que vous déployez où vous voulez, y compris hors ligne ;
- les modèles fine-tunés hébergés et leur API, par nos soins, sur une infrastructure souveraine dans l'Union européenne, sans aucun log ni rétention des requêtes, avec un engagement d'un an et un ré-entraînement par an inclus. Au bout de 15 mois d'abonnement (l'année d'engagement, plus 3 mois), les poids des modèles vous sont acquis : nous vous les livrons. Une formule sans engagement, résiliable chaque mois, existe aussi, sans acquisition des poids (voir Tarifs).
Disponible à partir de la formule Starter. Ré-entraînement possible après évolution du corpus, inclus une fois par an avec l'API hébergée. Prix : voir Tarifs.
Fiabilité mesurée
Un référentiel de vérité n'a de valeur que si sa fiabilité est mesurée. Nous distinguons trois affirmations, établies séparément.
| Affirmation | Protocole | Résultat |
|---|---|---|
| Les labels reproduisent le jugement humain | Benchmarks publics disposant de qrels humaines (BEIR, mMARCO fr), à pool de candidats identique à celui de production | Classement issu de nos labels, évalué contre les qrels humaines : nDCG@10 = X %, contre X % pour le meilleur retrieveur de l'état de l'art sur le même pool |
| La propriété se conserve sur un corpus métier | Échantillon tiré à l'aveugle, annoté indépendamment par deux experts du domaine | Accord avec l'expert : X %, deux experts s'accordant entre eux à X % |
| Le référentiel classe correctement les systèmes | Huit configurations de retrieval ordonnées avec les qrels humaines, puis avec les nôtres | τ de Kendall = X : les deux classements coïncident |
La troisième affirmation est la plus importante en pratique. L'usage réel d'un référentiel n'est pas de statuer sur un document isolé, mais de décider si une configuration est préférable à une autre ; c'est aussi le niveau auquel ce type de jugement est le plus fiable. Aucune méthode d'annotation, humaine comprise, ne garantit l'exactitude de chaque label pris isolément.
Traitement des données
Rien n'est conservé au-delà de la livraison. Chaque traitement s'exécute sur une infrastructure dédiée, hébergée dans l'Union européenne, créée pour ce seul travail et détruite dès les résultats livrés. Corpus, questions, représentations intermédiaires et fichiers de travail disparaissent avec elle. C'est voulu et vérifiable.
- Accord de confidentialité signé avant tout transfert, sur simple demande.
- Vos données ne servent qu'à produire votre livrable. Elles ne sont utilisées pour entraîner ou adapter aucun modèle - sauf, sur option et à votre demande, le modèle fine-tuné qui vous est livré. Il n'est réutilisé pour aucun autre client.
- Les modèles de langue employés sont, sans exception, exécutés par nos soins dans l'Union européenne. Aucune API de modèle tierce n'intervient. Ce n'est pas une option activable sur demande : c'est la seule configuration dans laquelle nous exploitons le service. Ils tournent sur l'infrastructure de l'un de nos fournisseurs : Verda (Helsinki, Finlande), OVHcloud (Roubaix, France), Scaleway (Paris, France) ou Hetzner (Gunzenhausen, Allemagne). Aucun de vos contenus n'est soumis à un modèle exploité hors de l'Union, et donc à aucun fournisseur relevant du CLOUD Act.
- Exécution sur votre propre infrastructure dans la formule Enterprise, y compris hors ligne (voir Tarifs).
- Seul le livrable subsiste, le temps du lien de téléchargement (X jours), puis il est supprimé. Donc toute reprise ultérieure part d'un nouveau dépôt - c'est le prix à payer pour ne rien garder.
- Exception, si vous choisissez l'API hébergée : nous conservons le modèle fine-tuné qui la fait tourner, et rien d'autre. Les requêtes ne sont ni journalisées ni conservées.
Pourquoi Goldset ?
Comparaison avec les alternatives
La question n'est pas de savoir s'il existe des solutions gratuites - il en existe - mais ce qu'elles produisent réellement. Un générateur ouvert invite un modèle à écrire une question à partir de chaque chunk : la paire obtenue est pertinente par construction, mais elle ne comporte qu'un seul chunk pertinent par question, alors que plusieurs y répondent dans un corpus réel. Toute mesure de rappel en devient faussée : retrouver le seul chunk source suffit à un rappel parfait, tandis qu'un autre chunk pertinent remonté compte comme une erreur.3
| Générateur ouvert | Annotation humaine | Goldset | |
|---|---|---|---|
| Chunks pertinents par question | 1, par construction | tous ceux du pool | tous ceux du pool |
Rappel (recall@k) | première estimation, approximative | oui | oui |
Métriques fines (nDCG@k) | non : un seul chunk, pertinence binaire | oui, si l'annotation est graduée | oui, pertinence graduée de 0 à 2 |
| Fiabilité mesurée | aucune | accord inter-annotateurs | indice de fiabilité par chunk ; application locale (image Docker) pour faire valider par vos experts les chunks remontés pour chaque question |
| Coût pour 100 questions | quelques jours de data scientist, sans validation des questions | quelques jours d'expert métier, selon sa disponibilité | sans mobiliser vos équipes ; voir Tarifs |
| Reconduction à l'évolution du corpus | en théorie | en pratique, jamais | oui ; en abonnement, 4 traitements par an pour le prix de 3 |
Panorama du marché
Le tableau précédent oppose des catégories de méthodes ; celui-ci nomme des outils réels. La plupart relèvent de la même famille que « générateur ouvert » - un jeu de questions généré depuis le corpus, avec au plus un chunk pertinent par question - et quelques-uns automatisent l'évaluation de pertinence sans construire eux-mêmes ce jeu de questions. Aucun ne couvre les deux étapes avec une garantie de fiabilité chiffrée.
| Outil | Nature | Couvre | Ne couvre pas |
|---|---|---|---|
| RAGAS | open source | Génère un jeu de questions à partir d'un graphe de connaissances du corpus | Un seul chunk pertinent par question, par construction ; validation humaine publiée limitée à une étude |
| Giskard / RAGET | open source | Génère des types de questions variés, puis évalue par modèle de langue | Même limite de rappel ; aucune corrélation humaine publiée |
| LlamaIndex / DeepEval | open source | Génère des paires question/contexte directement depuis l'index | Un seul chunk pertinent par question, par construction |
| UMBRELA | open source | Évaluateur de pertinence de référence, reproduction publiée d'un protocole d'assesseur | Une brique de recherche : ni pool, ni pipeline, ni livrable |
| RAGELO | open source | Classe des systèmes RAG entre eux par comparaison de leurs réponses | Ne construit pas les qrels d'un corpus ; compare des systèmes, pas des documents |
| ARES | open source (recherche) | Évaluateurs affinés, avec intervalles de confiance statistiques | Travail d'ingénierie à internaliser ; ce n'est pas un service livré |
| Bedrock / Vectara / Galileo / Patronus | managé, propriétaire | Évaluation de réponses générées par modèle de langue | Évalue une réponse, ne construit pas un référentiel de retrieval ; éditeurs soumis au CLOUD Act |
| Toloka / Scale AI | managé, annotation humaine | Annotation manuelle à grande échelle | Coûteux et lent sur un corpus confidentiel et spécialisé ; jamais reconduit |
Chacun de ces outils couvre une partie du besoin ; aucun ne le couvre tout entier. Ce qui fait la différence chez Goldset :
- Chaque question est évaluée sur plusieurs chunks candidats de votre corpus, pas sur un seul. C'est ce qui donne un sens au rappel mesuré.
- Chaque chunk reçoit un degré de pertinence et un indice de fiabilité.
- Les labels reproduisent le jugement humain (nDCG@10 = X % sur des benchmarks publics), sans mobiliser vos experts.
- Le livrable est prêt à l'emploi, sans intégration.
- Le traitement est hébergé dans l'Union européenne.
La différence, c'est la réunion de ces cinq points - pas l'un d'eux isolément.
Tarifs
* Phase bêta : les délais sont donnés à titre indicatif. Nous revenons vers vous avec un délai ajusté après la commande.
| Formule | Prix | Questions | Corpus | Contenu | Délai* |
|---|---|---|---|---|---|
| Découverte | 900 | 20 | 2 000 | top-10 gradué, rapport résumé. Les 900 € sont déduits de la formule que vous commandez ensuite sous trente jours (Starter : 1 600 € au lieu de 2 500 €) | 72 h |
| + Génération de questions | 10/question | questions synthétiques générées depuis votre corpus par une méthode à l'état de l'art, avec un rapport évaluant la qualité de chaque question ; elles comptent dans le volume de la formule | |||
| Starter | 2 500 | 100 | 20 000 | top-10 gradué, rapport de fiabilité complet, cas incertains signalés, application de validation experte (image Docker) | 5 j |
| + Modèles fine-tunés | 5 000 | embedding, reranker et late interaction fine-tunés sur votre corpus, poids livrés, avec comparaison face à un retriever hybride BM25 + embedding (voir Le livrable) | |||
| + Modèles fine-tunés hébergés et API | 300/mois | hébergés sur une infrastructure souveraine dans l'UE, sans log ni rétention ; engagement d'un an ; un ré-entraînement par an inclus ; poids des modèles acquis après 15 mois (l'année d'engagement + 3 mois) | |||
| + Modèles hébergés et API, sans engagement | 400/mois | mêmes conditions d'hébergement, résiliable chaque mois ; sans ré-entraînement inclus ni acquisition des poids | |||
| + Ré-entraînement des modèles | 5 000 | après évolution du corpus, entraînement complet ; inclus une fois par an avec l'API hébergée | |||
| + Actualisation du référentiel | prix formule | après évolution du corpus, traitement complet au prix de la formule ; en abonnement annuel, 4 traitements (le référentiel initial et 3 actualisations) pour le prix de 3 | |||
| Standard | 5 000 | 500 | 100 000 | top-20 gradué, évaluation de votre retrieveur contre le référentiel5, écart à l'état de l'art, restitution d'une heure | 10 j |
| + Questions supplémentaires | 10/question | au-delà de 500, au tarif de la Standard ; corpus au-delà de 100 000 chunks sur devis | |||
| + Retrieveur supplémentaire | 750 | évaluation d'un retrieveur de plus contre le référentiel | |||
| Enterprise | dès 25 000/an | sur devis | sur devis | exécution sur votre infrastructure, actualisation trimestrielle, engagement de service contractuel | contractuel |
Quelques scénarios d'achat
- Tester avant de s'engager. La démonstration gratuite, puis la Découverte sur
20 questions (900 €). Convaincu, vous passez à la Starter dans les trente jours :
1 600 € de plus. Total : 2 500 € HT pour 100 questions - le prix de la
Starter, avec un essai en plus.
Ce que vous y gagnez : vous savez, avant d'engager un budget, si le livrable tient sur vos propres documents. Ensuite, vous avez de quoi mesurer votre assistant et juger chaque changement sur des chiffres. - Un assistant interne, pas encore de questions. Corpus de 8 000 chunks,
aucune question constituée : Starter (2 500 €) + génération de 100 questions
à 10 € (1 000 €). Total : 3 500 € HT.
Ce que vous y gagnez : partir de zéro sans mobiliser vos experts, et pouvoir mesurer la qualité de votre assistant dès sa mise en service. - Choisir entre deux architectures. 300 questions tirées de vos tickets, corpus
de 60 000 chunks, votre retriever actuel et un candidat à comparer : Standard
(5 000 €) + un retriever supplémentaire (750 €). Total : 5 750 € HT.
Ce que vous y gagnez : une décision d'architecture prise sur des chiffres mesurés sur vos données, pas sur une intuition ou un benchmark public qui ne ressemble pas à votre corpus. - Améliorer le retrieval sans gérer d'infrastructure. Starter (2 500 €) +
modèles fine-tunés hébergés et API (300 €/mois). Première année : 6 100 €
HT, un ré-entraînement compris ; les poids vous sont acquis au 15e mois.
Ce que vous y gagnez : un assistant qui s'appuie sur des modèles adaptés à votre corpus, avec le gain chiffré face à un retriever standard, sans équipe ML à recruter ni infrastructure à maintenir - et des modèles qui finissent par vous appartenir. - Un corpus qui bouge tous les trimestres. Standard en abonnement
annuel : le référentiel initial et trois actualisations, soit 4 traitements pour le prix
de 3 (3 × 5 000 €). Total annuel : 15 000 € HT.
S'il faut tout exécuter chez vous, c'est la formule Enterprise, sur devis.
Ce que vous y gagnez : chaque trimestre, vous savez si la qualité de votre assistant tient malgré l'évolution des documents, et vous repérez une dégradation avant vos utilisateurs.
Questions fréquentes
- Comment savoir si votre référentiel est juste ?
Nos labels sont validés sur des benchmarks publics disposant de jugements humains - et sur un corpus métier annoté par des experts du domaine, avec la même performance. Ça veut dire que la méthode généralise au-delà des benchmarks. Vous pouvez le vérifier sur votre propre corpus si vous le voulez, sans que ce soit nécessaire, avec l'application de validation fournie dès la formule Starter : cinquante annotations d'un de vos experts suffisent, et nous vous rendons le taux d'accord entre lui et nous. Et le livrable n'est pas binaire : chaque chunk porte un degré de pertinence et un indice de fiabilité, et les questions qui ne convergent pas sont isolées dans un fichier à part.
- Une évaluation par modèle de langue n'est-elle pas biaisée ?
Prise naïvement, oui - et c'est documenté. C'est précisément le problème que notre protocole traite, et la raison pour laquelle un simple appel à un modèle ne suffit pas. Le choix des modèles n'est pas réglé au cas par cas ; il vise systématiquement la meilleure qualité disponible, répartie entre plusieurs familles indépendantes, ce qui limite mécaniquement le risque qu'un jugement favorise un système en particulier. Ce qu'on vous montre, ce sont les effets mesurés : l'indice de fiabilité, les cas litigieux signalés et, si vous le souhaitez, l'accord avec vos propres experts.
- Combien de questions sont nécessaires ?
Cinquante pour un premier signal. Cent à deux cents pour comparer deux configurations avec un écart interprétable. Cinq cents et au-delà pour segmenter par type de question et localiser les défaillances - c'est généralement là que se trouve l'information utile.
- Nous n'avons pas de questions constituées.
Commencez par vos questions réelles, même en petit nombre : journaux d'utilisation, tickets, demandes de support. Ce sont les meilleures - les questions générées automatiquement sont toujours trop bien formées par rapport à ce que font vraiment les utilisateurs. À défaut, on peut en générer, en couvrant explicitement plusieurs axes : type de tâche, complexité, style de formulation - en option dès la formule Découverte, avec un rapport qui évalue la qualité de chaque question générée.
- Que se passe-t-il lorsque le corpus évolue ?
Le référentiel reste valide pour la partie inchangée. Pour le remettre à jour, nous relançons le traitement complet sur votre corpus actuel : comme nous ne conservons rien, c'est ce qui garantit un résultat à jour. Au prix de la formule, ou en abonnement annuel : 4 traitements par an pour le prix de 3.
- Quel format de fichiers ?
Deux fichiers CSV encodés en UTF-8.
questions.csvcomportant les colonnesidetquestion;chunks.csvcomportantid,textet, facultativement,source. En cas de non-conformité, vous recevez sous 24 heures ouvrées le détail des lignes en cause.
Notes
- La proportion de questions signalées est faible en pratique, mais elle n'est pas nulle et nous ne cherchons pas à la masquer : une question ambiguë, ou dont la réponse est absente du corpus, doit être identifiée comme telle plutôt que de recevoir un label arbitraire qui faussera silencieusement vos métriques.
- La couverture du pool de candidats borne mécaniquement le rappel mesurable : un chunk pertinent absent du pool n'est pas étiqueté, et ne peut donc pas être compté. C'est la limite structurelle de l'exercice ; elle est affichée dans chaque livraison.
- C'est une limite reconnue de cette famille de méthodes, et non un défaut d'implémentation d'un outil particulier.
- Description fondée sur la documentation publique de chaque outil à la date de rédaction ; ces projets évoluent rapidement.
- En phase bêta, l'évaluation se fait sur des données que vous nous envoyez par e-mail ; nous vous renvoyons un rapport de résultats en HTML et en JSON.