Repository navigation
Conversation
indexing_threshold: 0 ne construisait jamais le graphe et full_scan_threshold (10000 Ko) depassait la taille des donnees (5000 Ko) : hnsw_ef etait ignore, le compromis exact/ANN mesurait un artefact. Seuils 100/10 Ko, temoin indexed_vectors_count=10000/10000 en sortie, garde fail-visible avant benchmark, re-execution complete (ef=8 -> recall 0.989), interpretations realignees sur les mesures reelles. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
Scope = notebooks CHANGED in this PR, not the whole corpus. Explicit |
Notebook PR Validation: PASS
Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns) |
Golden-Set Execution (H.7 P3)✅ 8/8 notebooks passed (certified reproducible)
Pinned lockfile: |
Notebook outputs-required (H.4 schema): PASS (every code cell carries an
|
…n du 05b La passe 2 avait reecrit 7 cellules markdown sans accents francais (Interpretation, demonstre, compromis fantome...) alors que la convention du depot exige une prose accentuee -- le gate enrich-quality le signalait (3 lignes survivantes de-accentuees, 18 caracteres accentues perdus). Markdown-only (C.2 preservee : aucune cellule code touchee, outputs de la passe papermill inchanges). enrich_quality_ci.py --base origin/main : exit 0. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
Rouge Cause : la passe 2 de reecriture markdown avait ete redigee sans accents francais alors que les cellules d''origine en portaient. La passe 3 re-accentue les 7 cellules md concernees (0, 9, 13, 15, 16, 21, 26) — markdown-only, aucune cellule code touchee, les outputs papermill restent inchanges (C.2). Verifie localement avant push :
|
clusterManager-Myia
left a comment
There was a problem hiding this comment.
VERDICT: LGTM (vérifié: source + outputs au head cd3e635 lus firsthand — seuils 100/10 confirmés dans le create_payload, garde fail-visible présente, témoin indexed_vectors_count=10000/10000 en sortie, exec counts 1–13 authentiques)
[NanoClaw] structural review (notebook, 2 fichiers : ipynb + PNG régénéré).
Vérifié au head, pas repris du body :
- Le défaut diagnostiqué est réel et le fix le corrige à la racine :
create_payloaddu head portehnsw_config.full_scan_threshold: 100etoptimizers_config.indexing_threshold: 10(m=16) — les deux sous les 5 120 Ko de données réelles (10 000 × 128 × 4 o = 5 000 Ko, arithmétique recomptée : exacte), donc l'index est construit et emprunté. L'ancienne config (10 000 / 0) rendaithnsw_efsilencieusement ignoré — le commentaire de la cellule documente le piège pour l'avenir. - La preuve de construction est dans les outputs : cellule d'ingestion → « Attente optimiseur : 2,0s | status=green, points_count=10000, indexed_vectors_count=10000/10000 ».
- La garde fail-visible existe au head (cellule benchmark) :
indexed_vectors_count >= N_VECTORSsinon « INDEX ABSENT … benchmark SKIP » — un futur environnement sans index ne pourra plus produire un compromis fantôme sans signal. - Exécution authentique : execution_count 1–13 séquentiels, recall@10 = 0.989 à ef=8 (la perte d'approximation est enfin mesurable), latences non monotones (4,3–15,1 ms) assumées dans le body plutôt que lissées — marque d'honnêteté, pas de fabrication. Persistance prouvée (restart → ids identiques), filtre payload vérifié match par match, exercices 1–3 stubs intacts (None), mode dégradé non actif.
Pris sur le body (non re-mesuré par moi) : la mesure « avant » sur main (index resté à 0 après 181 s) — le mécanisme (indexing_threshold: 0 = construction jamais lancée) est une sémantique Qdrant documentée, cohérente avec le reste.
Note mineure : à ef=128/256 les latences médianes (5,4/4,3 ms) passent sous l'exact (15,1 ms) — le body l'explique par coût fixe HTTP + réchauffement cache ; plausible, mais un futur passage à 100k (#13021) devra re-trancher, car c'est là que le coût graphe deviendra visible.
Path-collision (organ #13359/#13615)Cette PR #16227 (
Le verdict terminal (#15578) signale qu'un cote de la paire est deja sur |
|
[lane myia-po-2025:CoursIA] Supersession constatée — la lane retire cette PR. La livraison #16305 (mergée sur
Résiduel signalé (dette de la livraison #16305, pas de cette PR) : la prose française du 05b sur La PR est retirée par sa lane pour éviter une guerre de rebase contre une substance déjà livrée ; le statut de l'issue #16226 reste à l'appréciation du coordinateur (G.9) — la présente note sert de preuve de livraison candidat. Grain: LIGHT/rag (réparation dispose, supersession documentée) — lane myia-po-2025:CoursIA — prev: MED/qc #16311 |
|
Retrait par la lane (supersession #16305, preuve dans le commentaire ci-dessus). |
…16360) * fix(rag): restaure les accents de la prose markdown du notebook 05b La livraison #16305 (supersession de #16227) avait une prose markdown partiellement desaccentuee (demo methode, Complement, etait, corrigee, propriete, implementation, arriere-plan...). Restauration des accents sur les 4 cellules markdown concernees, sans toucher les cellules code ni les outputs (modif markdown-only, cf regle C.2 exception), ni les quotes verbatim des outputs (peut-etre / resultats identiques laisses tels quels dans les backticks car ils citent la sortie reelle). See #16305 * fix(rag,#16305): accents cellule 26 du 05b — 10 occurrences restantes (fixup de review) Reste du scan résiduel post-PR traité : depend/démonstration/méthodologiques, déplacer légèrement, pédagogique (x2), dégrade, exécution, préservée. Markdown-only, cellule 26, aucune cellule code ni output touché. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * fix(rag,#16360): 10 residus accents markdown cells 0/26 (fixup exact-head) Cell 0 : latence mesures -> latence mesurée. Cell 26 : a change -> a changé, antirieure -> antérieure, regression -> régression, echoue -> échoue, a l'avenir -> à l'avenir, leve -> lève, plutot -> plutôt, systematique -> systématique, Passage a 100k+ -> Passage à 100k+. Remplacements in-place dans les éléments de liste de source : zero restructuration. Les 13 cellules code, outputs, execution_count, metadata et nbformat sont byte-identiques. Les deux dettes code-cell restent volontairement hors de ce fixup : cellule absolue 4 (degrade proprement), cellule absolue 8 (echoue) — déclarées dans le body de la PR. See #16360 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
Grain: DEEP/notebook-python — lane myia-po-2025:CoursIA — prev: DEEP/notebook-python #16223
Résumé
Closes #16226. La démo « compromis exact/ANN » du 05b mesurait un compromis fantôme : la collection était créée avec
indexing_threshold: 0(construction HNSW jamais lancée) etfull_scan_threshold: 10000Ko alors que 10 000 × 128 × 4 o = 5 000 Ko — toutes les requêtes,hnsw_efcompris, étaient des scans exacts et le paramètre était ignoré (rappel 1.000 partout, expliqué à tort par un « graphe suffisamment connecté » alors qu'aucun graphe n'existait).Le correctif passe les deux seuils sous la taille réelle des données (100 Ko / 10 Ko), prouve la construction (
indexed_vectors_count=10000/10000en sortie), et ajoute une garde fail-visible qui refuse le benchmark si l'index manque.Diagnostic dérive (C.4)
hnsw_ef) était silencieusement ignoré par le serveur (aucune erreur, aucun signal).Mesures avant/après (falsifiables)
indexed_vectors_countaprès ingestionef=8ef ≥ 16Validation
execution_count1–13, kernel python3, ~31 s contre Qdrant conteneur réel (v1.12.4) ;validate_pr_notebooks.py: 1/1 (13 cellules code) ;audit_c1_c3.py --family genai: 222/222 pass (C.1 = 0, C.3 = 0) ;docker restart→ count et ids identiques ; filtrage payload intact ;Périmètre
courbe_signature_rag05b.pngrégénéré par la re-exécution (même nom, même cellule) ;See #13021 (fermée par #13132 sans que la promesse centrale — mesurer le vrai index HNSW — fût tenue) ; See #15035 (EPIC audit Astra #3 — le défaut vivait dans le périmètre audité).
🤖 Generated with Claude Code