feat(halacha): #81.7 — תיוג gold-set בקונצנזוס תלת-מודלי (Opus+DeepSeek+Gemini), κ + אנונימיזציה #188

Merged
chaim merged 1 commits from worktree-goldset-tri-model-consensus into main 2026-06-11 16:04:04 +00:00
Owner

מה

מבטל את ה-man-in-the-loop בתיוג ה-gold-set של איכות-חילוץ-ההלכות (הנחיית-יו"ר 2026-06-11). במקום תיוג ידני (חיים/דפנה) שמעולם לא מולא (0/150), אמת-המידה נקבעת בקונצנזוס שלוש שושלות-מודל עצמאיות — אותו פאנל שמערכת-האישור החיה כבר מפעילה (halacha_panel_approve), עם 92% הסכמה חוצת-מודלים על הציר הגס.

למה זה לא מעגלי

הוולידטורים הנמדדים ב-#81.8 (compute_quality_flags/is_fact_dependent/is_quote_truncated/is_thin_restatement) הם היוריסטיקות rule-based — משפחת-שיטה שונה מה-LLM-judges. שני שומרי-יושר:

  1. פיצול-קולות (אין רוב 2/3) → לא נכתב לייבל; הפריט נשאר NULL ומוסלם ליו"ר (INV-G10).
  2. מבחן-אנונימיזציה — שיפוט-מחדש עם מזהה-התיק ממוסך; flip בקונצנזוס = שינון ולא הנמקה (arXiv:2505.02172). מדווח כאחוז-יציבות.

איך

  • db.py — עמודות per-lineage (ds_*/gm_*; ai_*=claude כבר קיים) + panel_agreement/anon_* + goldset_set_panel_label() שכותב רוב-2/3 ל-is_holding/correct_type (tagged_by='panel:…', לא דורס 'chair'). goldset_score ללא שינוי — קורא is_holding (G2, אין מסלול-ניקוד מקביל). עודכנה הערת-הסכמה (בוטלה דרישת "MUST be human").
  • scripts/goldset_panel_label.py — 3 שופטים (מיובאים מ-halacha_panel_approve) + prompt עשיר (מיובא מ-goldset_ai_recommend) + Fleiss κ + מבחן-אנונימיזציה. דוח→data/audit/.
  • SCRIPTS.md — סקריפט חדש; הקודמים מסומנים single-model נבלעים.

Invariants

  • G2 — שופטים+prompt מיובאים (אין כפילות-קוד); ניקוד יחיד (is_holding).
  • INV-G10 — פיצול-קולות מוסלם ליו"ר; human tag עוקף תמיד.
  • INV-LRN2/LRN3 — איכות-במקור, לכידה מובנית בעמודות.

בדיקות

  • 18 offline: tests/test_goldset_panel_consensus.py (consensus / consensus_type / Fleiss-κ / anonymize). מודול+DB נטענים נקי, py_compile OK.
  • תיוג חי של 150 הרשומות (~900 קריאות-מודל עם anon) = צעד תפעולי מקומי אחרי deploy (claude_session דורש CLI מקומי), ואז halacha_goldset.py score → קלט ל-#81.8.

הקשר

משימה #121 (מחוץ ללופ) תמפה את שאר שערי-האנוש ותכריע פר-מקום אם להחליפם בקונצנזוס — לא החלפה גורפת (INV-G10/LRN1 הם חוקתיים).

מקורות: PoLL · Trust-or-Escalate (ICLR 2025) · arXiv:2505.02172 · Fleiss 1971.

🤖 Generated with Claude Code

## מה מבטל את ה-**man-in-the-loop** בתיוג ה-gold-set של איכות-חילוץ-ההלכות (הנחיית-יו"ר 2026-06-11). במקום תיוג ידני (חיים/דפנה) שמעולם לא מולא (0/150), אמת-המידה נקבעת ב**קונצנזוס שלוש שושלות-מודל עצמאיות** — אותו פאנל שמערכת-האישור החיה כבר מפעילה (`halacha_panel_approve`), עם 92% הסכמה חוצת-מודלים על הציר הגס. ## למה זה לא מעגלי הוולידטורים הנמדדים ב-#81.8 (`compute_quality_flags`/`is_fact_dependent`/`is_quote_truncated`/`is_thin_restatement`) הם היוריסטיקות **rule-based** — משפחת-שיטה שונה מה-LLM-judges. שני שומרי-יושר: 1. **פיצול-קולות** (אין רוב 2/3) → לא נכתב לייבל; הפריט נשאר `NULL` ומוסלם ליו"ר (**INV-G10**). 2. **מבחן-אנונימיזציה** — שיפוט-מחדש עם מזהה-התיק ממוסך; flip בקונצנזוס = שינון ולא הנמקה (arXiv:2505.02172). מדווח כאחוז-יציבות. ## איך - **db.py** — עמודות per-lineage (`ds_*`/`gm_*`; `ai_*`=claude כבר קיים) + `panel_agreement`/`anon_*` + `goldset_set_panel_label()` שכותב רוב-2/3 ל-`is_holding`/`correct_type` (`tagged_by='panel:…'`, לא דורס `'chair'`). `goldset_score` **ללא שינוי** — קורא `is_holding` (G2, אין מסלול-ניקוד מקביל). עודכנה הערת-הסכמה (בוטלה דרישת "MUST be human"). - **scripts/goldset_panel_label.py** — 3 שופטים (מיובאים מ-`halacha_panel_approve`) + prompt עשיר (מיובא מ-`goldset_ai_recommend`) + Fleiss κ + מבחן-אנונימיזציה. דוח→`data/audit/`. - **SCRIPTS.md** — סקריפט חדש; הקודמים מסומנים single-model נבלעים. ## Invariants - **G2** — שופטים+prompt מיובאים (אין כפילות-קוד); ניקוד יחיד (`is_holding`). - **INV-G10** — פיצול-קולות מוסלם ליו"ר; human tag עוקף תמיד. - **INV-LRN2/LRN3** — איכות-במקור, לכידה מובנית בעמודות. ## בדיקות - 18 offline: `tests/test_goldset_panel_consensus.py` (consensus / consensus_type / Fleiss-κ / anonymize). מודול+DB נטענים נקי, py_compile OK. - **תיוג חי** של 150 הרשומות (~900 קריאות-מודל עם anon) = **צעד תפעולי מקומי אחרי deploy** (claude_session דורש CLI מקומי), ואז `halacha_goldset.py score` → קלט ל-#81.8. ## הקשר משימה **#121** (מחוץ ללופ) תמפה את **שאר** שערי-האנוש ותכריע פר-מקום אם להחליפם בקונצנזוס — לא החלפה גורפת (INV-G10/LRN1 הם חוקתיים). מקורות: PoLL · Trust-or-Escalate (ICLR 2025) · arXiv:2505.02172 · Fleiss 1971. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
chaim added 1 commit 2026-06-11 16:03:58 +00:00
feat(halacha): #81.7 — gold-set labeled by tri-model consensus (Opus+DeepSeek+Gemini)
All checks were successful
G12 Leak-Guard / leak-guard (pull_request) Successful in 6s
5b001bbd9d
מבטל את ה-man-in-the-loop בתיוג ה-gold-set (הנחיית-יו"ר 2026-06-11): במקום תיוג ידני
של חיים/דפנה, אמת-המידה נקבעת בקונצנזוס שלוש שושלות-מודל עצמאיות — אותו פאנל שמערכת
האישור החיה כבר משתמשת בו (halacha_panel_approve), עם 92% הסכמה חוצת-מודלים על הציר הגס.

למה לא מעגלי: הוולידטורים הנמדדים ב-#81.8 (compute_quality_flags / is_fact_dependent /
is_quote_truncated / is_thin_restatement) הם היוריסטיקות **rule-based** — משפחת-שיטה שונה
מה-LLM-judges. שני שומרי-יושר: (1) פיצול-קולות (אין רוב 2/3) לא כותב לייבל — הפריט נשאר
NULL ומוסלם ליו"ר (INV-G10); (2) מבחן-אנונימיזציה — שיפוט-מחדש עם מזהה-התיק ממוסך, flip
בקונצנזוס = שינון ולא הנמקה (arXiv:2505.02172).

- db.py: עמודות per-lineage (ds_*/gm_*; ai_*=claude קיים) + consensus/agreement/anon +
  goldset_set_panel_label() שכותב רוב-2/3 ל-is_holding/correct_type (tagged_by='panel:…',
  לא דורס tagged_by='chair'). goldset_score נשאר ללא שינוי — קורא is_holding (G2, אין מסלול
  ניקוד מקביל). עדכון הערת-הסכמה (בוטלה דרישת "MUST be human").
- scripts/goldset_panel_label.py: 3 שופטים (מיובאים מ-halacha_panel_approve, מקור-אמת יחיד)
  + prompt עשיר (מיובא מ-goldset_ai_recommend) + Fleiss κ + מבחן-אנונימיזציה. דוח→data/audit/.
- SCRIPTS.md: סקריפט חדש; goldset_ai_recommend/independent_judge מסומנים single-model נבלעים.

invariants: G2 (שופטים+prompt מיובאים, אין כפילות; ניקוד יחיד) · INV-G10 (פיצול→יו"ר) ·
INV-LRN2/LRN3 (איכות-במקור, לכידה מובנית). מקור: PoLL · Trust-or-Escalate (ICLR 2025) · arXiv:2505.02172.
tests: 18 offline (consensus/type/Fleiss-κ/anonymize). live labeling = צעד תפעולי אחרי deploy.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
chaim merged commit e6c6237ef6 into main 2026-06-11 16:04:04 +00:00
chaim deleted branch worktree-goldset-tri-model-consensus 2026-06-11 16:04:04 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: ezer-mishpati/legal-ai#188