--- license: apache-2.0 base_model: unsloth/Qwen2.5-3B-Instruct-bnb-4bit tags: [claim-extraction, fact-checking, misinformation, contradiction-detection, json, qlora, unsloth] language: [en] --- # Claim Extractor (Qwen2.5-3B, QLoRA, distilled from 7B) Fine-tuned to read English text and emit **strict JSON**: a summary, publication date (if present), keywords, typed/categorized **claims** with verbatim **evidence spans**, and **contradictions** between claims. Built for rumor / fact-checking pipelines. ## Output schema ```json {"summary": "...", "publication_date": "ISO date or null", "keywords": ["..."], "claims": [{"id": 0, "claim": "...", "claim_type": "fact|statistic|opinion|prediction|speculation|rhetoric|other", "category": "...", "importance": "high|medium|low", "stance": "asserted|denied|hedged|attributed", "evidence_span": "verbatim", "confidence": 0.0}], "contradictions": [{"claim_a": 0, "claim_b": 1, "relation": "contradiction|tension", "explanation": "..."}]} ``` ## Files - `merged_16bit/` — full fp16 model (HF format) - `Qwen2.5-3B-Instruct.Q4_K_M.gguf` — Q4_K_M GGUF for llama.cpp (runs on a 4 GB GPU) - `lora_adapter/` — LoRA adapter only - `claim.gbnf` + `prompt.txt` — grammar + instruction for **guaranteed-valid** JSON via llama-cpp-python ## Quick use (llama.cpp, grammar-constrained → always valid JSON) ```bash pip install llama-cpp-python # load Qwen2.5-3B-Instruct.Q4_K_M.gguf with claim.gbnf as the grammar and prompt.txt prepended to your text ``` ## Training Distilled from `unsloth/Qwen2.5-7B-Instruct-bnb-4bit`. Data: ag_news (teacher-labeled) + SNLI (contradiction pairs) + LIAR (misinformation) + teacher-synthesized adversarial passages. QLoRA r=32, 3 epochs. ## Benchmarks ```json { "contradiction_recall": 0.75, "evidence_verbatim_rate": 1.0, "date_extraction_rate": 1.0 } held_out_validity = 1.0, unseen_validity = 1.0 ```