Jeu de données

Deux garde-fous de détection d'erreur sur 368 fusions de contacts proposées

96 passes de dédoublonnage déjà publiées ici, cinq garde-fous appliqués à chaque fusion proposée, et les 96 réponses brutes de celui qui a demandé des appels. Test conduit le 2026-09-12.

Cette page décrit un jeu de données, publié en entier. C'est la matière brute de notre test de deux garde-fous sur une tâche sans arithmétique : 96 passes de dédoublonnage déjà publiées ici, cinq garde-fous appliqués à chaque fusion qu'elles ont proposée, et les 96 réponses brutes du garde-fou qui a demandé des appels.

Tout ce qui est sur cette page vient de cette seule exécution. Rien n'est estimé.

Ce qu'il mesure, et ce qu'il ne prouve pas

Il ne mesure aucun modèle. Il mesure les contrôles qu'on poserait autour d'un modèle pour attraper une fusion fausse avant que deux personnes ne deviennent une seule ligne.

La question pour laquelle il a été constitué est étroite et c'est tout l'objet : le 2026-09-04, nous avons mesuré quatre garde-fous sur des extractions de factures, où il existe une identité arithmétique gratuite. Un carnet de contacts n'en a aucune. Ce jeu de données rejoue les deux garde-fous qui tenaient là-bas, sur une tâche où rien ne se recalcule, et les note de la même façon.

Chaque garde-fou porte deux grandeurs qui ne se lisent jamais l'une sans l'autre : le taux de rattrapage, la part des fusions fausses qu'il signale, et le taux de fausse alerte, la part des fusions justes qu'il signale. Un garde-fou qui signale tout affiche 100 % sur la première et ne sert à rien. Un garde-fou qui ne signale rien affiche 0 % sur la seconde et ne sert à rien non plus.

Ce qu'il ne prouve pas, dit franchement, parce qu'un jeu de données cité sans ses limites fait plus de mal que pas de jeu de données du tout :

  • Les 0 % de fausse alerte de la règle des clés sont vrais par construction. Le corpus source impose à toute paire de doublons de partager un courriel ou un téléphone. Dans un carnet réel, une personne ayant changé des deux verrait sa fusion bloquée. C'est le chiffre le plus flatteur du fichier et c'est celui dont il faut se méfier en premier.
  • Les partitions ont 26 jours. Elles ont été produites le 2026-08-17. Rien ici ne dit que les mêmes modèles font les mêmes fusions aujourd'hui.
  • 97 fusions fausses. Tous les taux de rattrapage reposent là-dessus. Un pourcentage sur 97 éléments a une marge large : des ordres de grandeur, pas des constantes.
  • 2 des 96 réponses ne sont pas du JSON valide, et 7 des 366 groupes soumis sont revenus sans verdict. Ces 7 fusions sortent de la population de l'auto-vérification, notée sur 96 fausses et 265 justes au lieu de 97 et 271. Déclaré, pas réparé.
  • Un seul corpus, 96 lignes construites par script, graine fixe, déclaré comme construit dans son propre protocole. Aucune personne réelle, aucune société réelle. Les familles de pièges sont des propriétés voulues de ce corpus et leur fréquence ici n'est pas celle d'un CRM.
  • Des carnets de 12 lignes, entièrement dans la fenêtre du modèle : le cas le plus favorable. Un carnet de 5000 lignes est un problème différent, non mesuré ici.
  • La consigne d'auto-vérification est UNE consigne. Une autre donnerait d'autres chiffres. Celle qui a été passée est publiée dans verifications.json, plutôt qu'une variante flatteuse trouvée après coup.
  • La comparaison avec le test des factures met en regard deux tâches ET deux corpus. Ce qui change n'est pas seulement la présence d'une arithmétique, et ce jeu de données ne sait pas séparer les deux.

Les partitions sont réemployées, et voici ce que cela veut dire

Rien n'a été dédoublonné pour ce test. Les 96 partitions jugées ici sont exactement celles publiées le 2026-08-18 sous le jeu de données de dédoublonnage de contacts : 8 carnets de 12 lignes générés par script à partir de la graine 20260817, quatre niveaux de désordre de présentation, trois modèles économiques, et une partition de vérité terrain tranchée à ce moment-là.

C'est un échange délibéré et il coupe des deux côtés. Ce qu'il achète : les cinq garde-fous jugent un ensemble de fusions identique, donc la comparaison isole les garde-fous et rien d'autre. Ce qu'il coûte : rejouer les modèles le 2026-09-12 aurait mêlé leur effet à 26 jours de dérive, et ce jeu de données ne dit rien des modèles tels qu'ils sont aujourd'hui.

Ce jeu de données ne génère aucun corpus propre. Sa reproductibilité tient à la graine du corpus source, 20260817. Régénérez-le et vous tenez les mêmes 8 carnets.

Test conduit le 2026-09-12. Les appels ont été passés par la chaîne de test automatisée de ce site : la passe d'auto-vérification et l'analyse sont des scripts, et les deux sont dans l'archive ci-dessous.

L'unité qui est notée

Ni un carnet ni un appel : une fusion proposée, c'est-à-dire une paire de lignes qu'un modèle a mises dans un même groupe.

Nombre
Fusions proposées sur les 96 passes 368
Justes : deux lignes, une personne 271
Fausses : deux personnes, une ligne détruite 97

Les garde-fous

Ce qu'il fait Coût
A0 le champ notes du modèle, rempli pendant le dédoublonnage : nomme-t-il les deux lignes ? aucun
A1 clés fortes : refuser toute fusion dont les lignes ne partagent ni courriel ni téléphone aucun
A3 auto-vérification : un appel de plus au même modèle, avec le carnet et ses propres groupes un appel par passe
A4 accord des trois modèles : signaler toute fusion que les deux autres n'ont pas proposée deux passes de plus
A5 accord avec un seul autre modèle, calculé pour les trois témoins une passe de plus

La consigne d'A3 ne laisse jamais entendre qu'une erreur a été trouvée et ne donne aucune vérité terrain, et le verdict est demandé groupe par groupe plutôt que sur la partition entière.

Les chiffres bruts

368 fusions jugées, 97 fausses, 271 justes.

Garde-fou Rattrapage Fausse alerte Précision Fusions fausses manquées
A0 note spontanée 73,2 % 55,4 % 32,1 % 26
A1 clés fortes 72,2 % 0,0 % 100,0 % 27
A3 auto-vérification 76,0 % 20,8 % 57,0 % 23
A4 accord des trois modèles 62,9 % 9,2 % 70,9 % 36
A5 avec gpt-4o-mini seul 25,5 % 8,7 % 44,8 % 38
A5 avec gemini-2.5-flash-lite seul 40,0 % 3,9 % 78,8 % 39
A5 avec claude-haiku-4.5 seul 65,4 % 2,8 % 91,1 % 27
A1 et A4 ensemble 90,7 % 9,2 % 77,9 % 9
A1 et A3 ensemble 92,7 % 20,8 % 61,8 % 7
A3 et A4 ensemble 87,6 % 27,4 % 53,8 % 12

Les mêmes garde-fous sur la tâche des factures

Garde-fou Factures, 2026-09-04 Contacts, 2026-09-12
Auto-vérification 97,6 % rattrapés / 39,0 % de fausses 76,0 % rattrapés / 20,8 % de fausses
Accord des trois modèles 92,9 % rattrapés / 11,0 % de fausses 62,9 % rattrapés / 9,2 % de fausses
La règle mécanique gratuite 59,5 % rattrapés / 22,0 % de fausses 72,2 % rattrapés / 0,0 % de fausses

Par modèle, sur le garde-fou d'accord

Modèle Fusions fausses proposées Rattrapage A4 Précision A4
openai/gpt-4o-mini 46 sur 133 73,9 % 87,2 %
google/gemini-2.5-flash-lite 32 sur 124 62,5 % 66,7 %
anthropic/claude-haiku-4.5 19 sur 111 36,8 % 41,2 %

Par niveau de désordre

Niveau Fusions proposées Fausses A1 rattrape A3 rattrape A4 rattrape Fausse alerte A4
N1 propre 82 18 66,7 % 88,2 % 83,3 % 10,9 %
N2 casse et espaces 95 26 69,2 % 65,4 % 53,8 % 8,7 %
N3 formats de téléphone mélangés 104 33 72,7 % 78,8 % 63,6 % 2,8 %
N4 colonnes fusionnées 87 20 80,0 % 75,0 % 55,0 % 14,9 %

Charge de relecture pour 1000 fusions proposées

Dans une population où 264 d'entre elles sont fausses, ce qui est la proportion de ce corpus et non celle d'un carnet réel.

Garde-fou À relire Fusions fausses trouvées Manquées Lectures par fusion trouvée
A1 190 190 73 1,0
A3 355 202 64 1,8
A4 234 166 98 1,4
A1 et A4 307 239 25 1,3

Coûts

La passe d'auto-vérification, 96 appels : 0,07469 USD, 96 lus, 94 JSON valides, 359 verdicts rendus pour 366 groupes soumis. Pour 1000 appels d'auto-vérification : gpt-4o-mini 0,196 USD, gemini-2.5-flash-lite 0,161 USD, claude-haiku-4.5 1,977 USD.

Chaque verdict a été apparié à son groupe par égalité des ensembles de lignes, 359 fois sur 359, et jamais par le rang. Un appariement par rang aurait été une hypothèse ; il est compté à part dans chiffres.json et il vaut zéro.

Ce que contient l'archive

Huit fichiers, 492862 octets décompressés. L'inventaire est ici pour que vous sachiez ce que vous téléchargez avant de le télécharger.

Fichier Ce qu'il contient Taille
corpus.json les 8 carnets, la vérité terrain et l'explication de chaque paire, graine 20260817 40,6 Kio
degrader.py les quatre niveaux de présentation, nécessaires pour redonner au modèle le carnet exact qu'il a vu 3,6 Kio
resultats-bruts.json les 96 partitions jugées, publiées le 2026-08-18 213,3 Kio
auto-verifier.py la passe d'auto-vérification, un appel par partition 7,5 Kio
verifications.json les 96 réponses brutes d'auto-vérification, avec la consigne employée 172,8 Kio
analyser.py les cinq garde-fous, leurs combinaisons et la charge de relecture 15,6 Kio
chiffres.json tous les chiffres calculés 14,4 Kio
PROTOCOLE.md le protocole, la lecture des chiffres et les limites 13,5 Kio

corpus.json, degrader.py et resultats-bruts.json sont recopiés sans modification du jeu de données du 2026-08-18, pour que cette archive tienne seule sans aller en chercher une autre.

Les scripts et leurs commentaires sont en français, qui est la langue de travail derrière ce site. La clé d'API est lue dans une variable d'environnement et n'apparaît dans aucun de ces fichiers.

Rejouez-le

L'analyse n'appelle aucun modèle : elle rejoue à coût nul sur les réponses brutes livrées dans l'archive. Seul auto-verifier.py dépense quelque chose.

bash
unzip 2026-09-deduplication-guardrails.zip
python3 auto-verifier.py --resultats resultats-bruts.json --corpus corpus.json \
    --sortie verifications.json
python3 analyser.py --resultats resultats-bruts.json \
    --verifications verifications.json --sortie chiffres.json

Une règle de garde-fou que vous contestez peut être changée dans analyser.py puis rejouée sur les mêmes 96 réponses sans payer un seul appel.

Chaque réponse brute est une entrée de verifications.json, exactement telle que le modèle l'a rendue, avant toute notation. Celle-ci porte les deux sens de l'échec dans une seule réponse : la fusion de deux personnes différentes est confirmée, et la fusion de deux lignes qui partagent une adresse de courriel est rejetée.

json
{"modele": "openai/gpt-4o-mini", "carnet": "carnet-01", "niveau": 1,
 "lu": true, "json_valide": true,
 "groupes_soumis": [[4, 5], [3, 8], [6, 9], [1, 10]],
 "verdicts": [{"rows": [4, 5], "same_person": true},
              {"rows": [3, 8], "same_person": true},
              {"rows": [6, 9], "same_person": false},
              {"rows": [1, 10], "same_person": false}]}

Vérifiez ce que vous avez téléchargé avant de lui faire confiance :

bash
shasum -a 256 2026-09-deduplication-guardrails.zip
# 245aa5fb0be4b00f99793ec677118123d56c9a8669695f4e1d4f98cf0c9c407b

Comment citer ce jeu de données

Copiez l'une des deux formes ci-dessous. La référence pointe vers cette page, qui est l'adresse stable de ce jeu de données ; l'archive est ce que cette adresse sert.

citation
Think AI First (2026). Deux garde-fous de détection d'erreur sur 368 fusions de contacts proposées, 96 réponses brutes d'auto-vérification.
Think AI First. Test conduit le 2026-09-12, publié le 2026-09-12.
https://think-ai-first.com/fr/donnees/garde-fous-dedoublonnage-2026-09. Sous licence CC BY 4.0.
bibtex
@dataset{thinkaifirst2026garde,
  author    = {{Think AI First}},
  title     = {Deux garde-fous de detection d'erreur sur 368 fusions de contacts proposees, 96 reponses brutes d'auto-verification},
  year      = {2026},
  publisher = {Think AI First},
  url       = {https://think-ai-first.com/fr/donnees/garde-fous-dedoublonnage-2026-09},
  note      = {Test conduit le 2026-09-12. Sous licence CC BY 4.0. Archive SHA-256 245aa5fb0be4b00f99793ec677118123d56c9a8669695f4e1d4f98cf0c9c407b}
}

Licence et réutilisation

Publié sous CC BY 4.0. Servez-vous en, citez-le, contredisez-le. Si vous rejouez ce test et trouvez autre chose, dites-le nous par le formulaire de contact : les corrections sont publiées sur l'article lui-même, datées.

Télécharger le jeu de données (zip, 48,3 Kio, 8 fichiers)

Les autres jeux de données publiés ici

Chacun est un test distinct, avec son corpus, ses réponses brutes et son archive. Celui-ci juge les fusions du deuxième.