distil-labs/distil-qwen3-1.7b-posthog-extractor

🤗 Hugging Face sourcetext-generationapache-2.01.7B params3.4 GBGGUF✓ 5 checksumsupdated today
Submit in one command

Run it next to your model folder. It makes the torrent, checks your files against Hugging Face, and submits it. You just start seeding and paste your key from your account. It only reads your files and never changes them. Read the script first if you like.

curl -fsSL https://pirateface.co/package.sh | bash -s -- --repo distil-labs/distil-qwen3-1.7b-posthog-extractor ./model-folder
Needs a seeder →

distil-qwen3-1.7b-posthog-extractor

A 1.7B specialist that reads a short user-behavior narration and emits product findings (bugs and UX gaps) as strict JSON. One of three tools in the distil-posthog-traffic-analyser harness; trained on the Distil Labs platform.

Task contract

Input:

Narration:
"""
<3-sentence session narration>
"""

Return JSON now.

Output — valid JSON only, matching:

{"findings":[{"kind":"bug|gap","severity":1-5,"title":"...","evidence":"..."}]}
  • bug = something visibly broke or errored; gap = something the user clearly wanted to do but couldn't
  • severity: 1 (cosmetic) to 5 (blocks a core flow)
  • A clean session correctly yields {"findings":[]}
  • No markdown, no commentary, nothing invented beyond the narration

Training

  • Base model: Qwen3-1.7B (Apache 2.0)
  • Teacher: openai.gpt-oss-120b (Apache 2.0)
  • Seed data: 25 hand-authored, schema-validated narration/findings pairs — including 6 clean-session examples with empty findings — committed at examples/seeds/extractor.jsonl (20 train / 5 held-out test)
  • Synthetic expansion: 10,078 examples generated and validated by the Distil Labs platform from the seed set
  • Method: platform-managed fine-tune (task type: question-answering, JSON output)

A 0.6B variant was trained first and scored similarly on the platform judge, but live testing showed it missed low-signal findings (dead-end searches with no error keyword) entirely; the 1.7B student catches them, which is why this size ships.

Evaluation

Held-out test set, scored by the platform's LLM judge:

Untrained Qwen3-1.7B This model
LLM-as-a-Judge 40.00% 80.00%
ROUGE 60.25% 68.88%

Live checks on this GGUF via Ollama match the hosted endpoint: 8/10 on an adversarial suite (held-out narrations plus narrations authored by the narrator SLM). The two misses are bug-vs-gap label confusion on ambiguous "silent failure" cases — the finding is still surfaced with a sensible title and severity; only the kind tag wobbles.

Head-to-head vs a frontier teacher (bun run eval, gpt-5-mini as opponent and judge, 5 demo narrations): 3 ties, 1 win for this model, 1 win for the teacher — with this model running locally at $0 per call.

Usage (Ollama)

ollama create posthog-extractor -f Modelfile   # FROM ./<this gguf>

Then in the harness .env:

TOOL_EXTRACTOR_MODEL=posthog-extractor