fix(retrieval): סף מכויל-קוסינוס סינן פלט RRF — דף אימות-הפסיקה הציג אפס תקדימים #463

Merged
chaim merged 1 commits from worktree-relevance-scale into main 2026-08-05 13:31:48 +00:00
Owner

_merge_sem_lex דורס את score בערך RRF (~0.008–0.02) כשה-leg הלקסיקלי מחזיר שורות, ואילו _SUGGEST_FLOOR=0.45 כויל לקוסינוס. כל שאילתה במונחים נפוצים סוננה עד האחרונה, והדף הציג "אין תקדים תומך" לכל טיעון בכל תיק.

שאילתה leg לקסיקלי ציון
"המונח חזית הבניין יפורש..." ריק 0.63–0.71 (קוסינוס)
"סמכות ועדה מקומית לפי 62א" מלא 0.016 (RRF)

התיקון: עוגן relevance במקור הסמנטי (G1), נשמר דרך הפיוז׳ן, והצרכן מסנן לפיו. שורה לקסיקלית-בלבד → relevance=None ("לא נמדד" ≠ "לא רלוונטי") ונשמרת במודע — היא הגיעה לצמרת בדירוג BM25, וסינונה היה מחביא התאמות ביטוי/מספר-תיק. הדירוג לא השתנה — RRF עדיין קובע סדר.

אימות מול DB חי:

  • 8124-09-24: 0 → 32/32 טיעונים עם תקדים תומך
  • 1069-04-26: 0 → 29/69
  • שורה סמנטית: score=0.0082 · relevance=0.7297

היומונים לא נפגעו — search_digests_semantic הוא סמנטי טהור.

invariants: G1 · G2 · INV-AH

6 טסטים חדשים; 531 עוברים; 3 שערים ירוקים.

`_merge_sem_lex` דורס את `score` בערך RRF (~0.008–0.02) כשה-leg הלקסיקלי מחזיר שורות, ואילו `_SUGGEST_FLOOR=0.45` כויל לקוסינוס. כל שאילתה במונחים נפוצים סוננה עד האחרונה, והדף הציג "אין תקדים תומך" לכל טיעון בכל תיק. | שאילתה | leg לקסיקלי | ציון | |---|---|---| | "המונח חזית הבניין יפורש..." | ריק | 0.63–0.71 (קוסינוס) | | "סמכות ועדה מקומית לפי 62א" | מלא | **0.016** (RRF) | **התיקון:** עוגן `relevance` במקור הסמנטי (G1), נשמר דרך הפיוז׳ן, והצרכן מסנן לפיו. שורה לקסיקלית-בלבד → `relevance=None` ("לא נמדד" ≠ "לא רלוונטי") ונשמרת במודע — היא הגיעה לצמרת בדירוג BM25, וסינונה היה מחביא התאמות ביטוי/מספר-תיק. **הדירוג לא השתנה** — RRF עדיין קובע סדר. **אימות מול DB חי:** - 8124-09-24: **0 → 32/32** טיעונים עם תקדים תומך - 1069-04-26: **0 → 29/69** - שורה סמנטית: `score=0.0082` · `relevance=0.7297` היומונים לא נפגעו — `search_digests_semantic` הוא סמנטי טהור. **invariants:** G1 · G2 · INV-AH 6 טסטים חדשים; 531 עוברים; 3 שערים ירוקים.
chaim added 1 commit 2026-08-05 13:31:34 +00:00
fix(retrieval): סף מכויל-קוסינוס סינן פלט RRF — דף אימות-הפסיקה הציג אפס תקדימים
All checks were successful
INV-AG3 Agent Tool Grants / agent-tool-grants (pull_request) Successful in 5s
G12 Leak-Guard / leak-guard (pull_request) Successful in 4s
Lint — undefined names / undefined-names (pull_request) Successful in 11s
5a2a989e9b
`hybrid_search._merge_sem_lex` דורס את `score` בערך RRF (~0.008–0.02) ברגע
שה-leg הלקסיקלי מחזיר שורות. `score` הוא אות-דירוג לגיטימי, אבל הוא מפסיק
להיות קוסינוס — ואילו `case_citation_verification._SUGGEST_FLOOR = 0.45`
כויל לקוסינוס. התוצאה: **כל שאילתה במונחים משפטיים נפוצים סוננה עד
האחרונה**, והדף הציג "אין תקדים תומך" לכל טיעון בכל תיק.

אותה פונקציה החזירה שתי סקאלות, תלוי בשאילתה:

    "המונח חזית הבניין יפורש..."   leg לקסיקלי ריק   →  0.63–0.71  (קוסינוס)
    "סמכות ועדה מקומית לפי 62א"    leg לקסיקלי מלא   →  0.016      (RRF)

מה שונה
- **עוגן קוסינוס במקור (G1):** `db.search_precedent_library_semantic` מסמן
  `relevance` לצד `score`. **לא** בפונקציה הלקסיקלית — שם `ts_rank_cd`,
  ולסמן אותו כ-relevance היה חוזר על אותה טעות בדיוק.
- **הפיוז'ן משמר:** `_merge_sem_lex` מעביר את הקוסינוס הלאה. שורה
  לקסיקלית-בלבד מקבלת `relevance = None` — "לא נמדד" אינו "נמדד כלא-רלוונטי".
- **הצרכן קורא `relevance`:** `_passes_floor()` במקום השוואה ל-`score`.
  שורות לקסיקליות-בלבד **נשמרות במודע** — הן הגיעו לצמרת בדירוג BM25 בתוך
  top-k זעיר, וסינונן היה מחביא בדיוק את התאמות-הביטוי ומספרי-התיק שהיו"ר
  מחפש בשם.

הדירוג לא השתנה: RRF ממשיך לקבוע סדר. רק הסינון עבר לסקאלה יציבה.

אימות מול הקורפוס החי:
  8124-09-24:  0 → **32 מתוך 32** טיעונים עם תקדים תומך (21.5 שנ', שלם)
  1069-04-26:  0 → **29 מתוך 69** (24.1 שנ', חלקי — תקציב הזמן)
  שורה סמנטית: score=0.0082 · relevance=0.7297

היומונים לא נפגעו ולא נגעתי בהם: `case_digest_radar` עובר דרך
`search_digests_semantic` — סמנטי טהור, בלי RRF, ולכן `min_score=0.45` שלו
מכויל נכון.

invariants: G1 (עוגן במקור, לא תיקון-סף בקריאה) · G2 (הגדרה אחת ל-relevance
לכל הצרכנים) · INV-AH (היעדר-מדידה אינו היעדר-רלוונטיות)

טסטים: 6 חדשים (tests/test_relevance_scale.py) — אחד מהם מוכיח את הבאג
ואת התיקון באותה שורה. 531 עוברים.
chaim merged commit ff3a2f398c into main 2026-08-05 13:31:47 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: ezer-mishpati/legal-ai#463