NLI: Hypothese-Template-A/B (Folge zu #251) #253

Closed
opened 2026-05-14 15:21:57 +02:00 by admin-mrrm · 1 comment
Owner

Kontext

Nach Kalibrierung in #251 erreichen korrekte NLI-Top-Scores nur 0.30–0.44. Threshold sitzt jetzt bei 0.30 — Spielraum nach oben begrenzt. Hypothese-Template ist mutmaßlich zu generisch (#251, Ursache 2).

Aktuell:

export const NLI_HYPOTHESIS_TEMPLATE = 'Diese E-Mail handelt von ${label}.';

Ziel

A/B-Test zwei (oder mehr) Templates parallel, max-Score pro Label nehmen. Wenn signifikant höher → Default switchen.

Kandidaten

  • Diese E-Mail ist eine ${label}-Mail.
  • Die Kategorie dieser E-Mail ist ${label}.
  • Hierbei handelt es sich um eine ${label}.
  • Pro-Label-spezialisiert (Diese E-Mail enthält eine Rechnung / Diese E-Mail kündigt eine Lieferung an) — eigene PR-Phase

Vorgehen (TDD)

  1. nliClassifier.classifyWithTemplates(text, labels, templates[]) — gibt max-Score pro Label zurück
  2. Test mit gespeicherten Kalibrierungs-Snippets (~34 Mails in apps/api/.tmp/nli-debug.jsonl): vergleiche Top-Score-Verteilung Template-A vs B vs max-A-B
  3. Wenn max-A-B im Schnitt ≥ +0.05 Top-Score bei gleicher Top1-Label-Korrektheit → switch oder dual-template

Out of Scope

  • Multi-Template im Produktiv-Pfad permanent (erst nach Messung — könnte 2x Forward-Pass = 2x Latenz)

Abhängigkeit

Gehört zu #251 (geschlossen). Daten liegen in apps/api/.tmp/nli-debug.jsonl.

## Kontext Nach Kalibrierung in #251 erreichen korrekte NLI-Top-Scores nur 0.30–0.44. Threshold sitzt jetzt bei 0.30 — Spielraum nach oben begrenzt. Hypothese-Template ist mutmaßlich zu generisch (#251, Ursache 2). Aktuell: ```ts export const NLI_HYPOTHESIS_TEMPLATE = 'Diese E-Mail handelt von ${label}.'; ``` ## Ziel A/B-Test zwei (oder mehr) Templates parallel, max-Score pro Label nehmen. Wenn signifikant höher → Default switchen. ## Kandidaten - `Diese E-Mail ist eine ${label}-Mail.` - `Die Kategorie dieser E-Mail ist ${label}.` - `Hierbei handelt es sich um eine ${label}.` - Pro-Label-spezialisiert (`Diese E-Mail enthält eine Rechnung` / `Diese E-Mail kündigt eine Lieferung an`) — eigene PR-Phase ## Vorgehen (TDD) 1. `nliClassifier.classifyWithTemplates(text, labels, templates[])` — gibt max-Score pro Label zurück 2. Test mit gespeicherten Kalibrierungs-Snippets (~34 Mails in `apps/api/.tmp/nli-debug.jsonl`): vergleiche Top-Score-Verteilung Template-A vs B vs max-A-B 3. Wenn max-A-B im Schnitt ≥ +0.05 Top-Score bei gleicher Top1-Label-Korrektheit → switch oder dual-template ## Out of Scope - Multi-Template im Produktiv-Pfad permanent (erst nach Messung — könnte 2x Forward-Pass = 2x Latenz) ## Abhängigkeit Gehört zu #251 (geschlossen). Daten liegen in `apps/api/.tmp/nli-debug.jsonl`.
Collaborator

PM-Housekeeping (Convention-Falle): Fix wurde am 2026-05-20 via PR #359 (Merge e1d1869) auf main gemerged. Das Issue blieb offen weil der Merge-Title nur feat(#253): / fix(253): enthielt, nicht Closes #253.

NLI Template-A/B (classifyWithTemplates) implementiert.

Schließe manuell als verifiziert-implementiert. Konvention ist dokumentiert in convention_commit_close_keywords.md; CI-Guard ist als arch-question #406 in Bearbeitung.

**PM-Housekeeping (Convention-Falle):** Fix wurde am 2026-05-20 via PR #359 (Merge `e1d1869`) auf `main` gemerged. Das Issue blieb offen weil der Merge-Title nur `feat(#253):` / `fix(253):` enthielt, nicht `Closes #253`. NLI Template-A/B (classifyWithTemplates) implementiert. Schließe manuell als verifiziert-implementiert. Konvention ist dokumentiert in `convention_commit_close_keywords.md`; CI-Guard ist als arch-question #406 in Bearbeitung.
Sign in to join this conversation.
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
admin-mrrm/mrrmlabapp#253
No description provided.