TurboSkillSlug / EVAL_REPORT.md
legendarydragontamer's picture
deploy
51a9974
|
Raw
History Blame Contribute Delete
3.66 kB

A newer version of the Gradio SDK is available: 6.20.0

Upgrade

Groundedness Eval: does the fine-tuned 1.5B hallucinate more than the 7B it replaces?

TurboSkillSlug's whole promise is a witness that only says what it saw. So the extraction model has one job above all others: do not invent facts. This eval measures exactly that, comparing the shipped fine-tuned 1.5B LoRA against the Qwen-7B it replaced and against its own un-tuned 1.5B base, on 25 held-out transcripts the LoRA never saw in training.

Setup

  • 25 held-out transcripts (never in the 167-pair training set).
  • Three systems, same prompt, same decoding (temp 0.3, top-p 0.9, 768 tokens): prompted Qwen-7B, prompted Qwen-1.5B base, fine-tuned 1.5B LoRA.
  • Two groundedness metrics per extracted fact (approaches, dead ends, breakthroughs, gotchas):
    • Lexical: fraction of the fact's content words present in the transcript.
    • Semantic: max cosine similarity of the fact's embedding to any sentence window of the transcript (all-MiniLM-L6-v2), grounded if >= 0.55.
  • Raw generations saved before scoring, so the metric can be revised without re-running the models.

Results

system semantic lexical mean sim parse facts
prompted 7B 0.716 0.576 0.640 24/25 272
prompted 1.5B 0.565 0.390 0.567 21/25 140
LoRA 1.5B 0.762 0.378 0.649 21/25 195

What this shows

The fine-tuned 1.5B matches and slightly exceeds the 7B on semantic groundedness (0.76 vs 0.72), at roughly a third of the active parameters. The mean per-fact similarity agrees (0.649 vs 0.640).

The lexical and semantic metrics disagree sharply for the LoRA: it has the lowest lexical overlap (0.378) but the highest semantic groundedness (0.762). That gap is the point. The fine-tune taught the model to restate the transcript's meaning in its own words rather than copy spans. Word-overlap scoring punishes that; embedding scoring credits it. The LoRA paraphrases faithfully, which is what a good extractor should do.

What this does NOT show, and the caveats we are not hiding

  • The LoRA is less reliable at producing valid JSON: 21/25 vs the 7B's 24/25. That is a real cost of the smaller model. In the live app a brace-walking parser and field validators recover most malformed output, but the raw parse rate is what the table reports, unsoftened.
  • The semantic threshold is imperfect. A calibration block of six hand-labeled cases (run before scoring, printed in the logs) passed 5/6: one true paraphrase fell just under the 0.55 line. The single miss is a false negative (a grounded fact scored ungrounded), which means the LoRA's real groundedness is if anything underestimated here, not inflated. We report the number the fixed threshold produced rather than tuning it after seeing results.
  • 25 transcripts is a small sample. Treat the gaps as directional, not precise. The LoRA-vs-7B semantic difference is small enough that the honest claim is "matches or slightly exceeds," not "beats."

Honest one-line summary

A 1.5B LoRA fine-tune reaches 7B-level semantic groundedness on held-out sessions at a third the active size, by learning to paraphrase rather than copy; it pays for this with a lower valid-JSON rate (21/25 vs 24/25), and the metric itself is calibrated to within 5/6 on known cases.


Reproduce: modal run semantic_eval.py. Raw generations, per-fact scores, calibration outcome, threshold, and embedding model are all saved in eval_results_semantic.json and eval_raw_outputs.json.