Text Classification
Transformers
Safetensors
English
modernbert
fact-verification
claim-verification
reward-model
llm-as-a-judge
distillation
decomposition
faithfulness
answer-verification
text-embeddings-inference
Instructions to use dipta007/answer-judge-balanced with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use dipta007/answer-judge-balanced with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-classification", model="dipta007/answer-judge-balanced")# Load model directly from transformers import AutoTokenizer, AutoModelForSequenceClassification tokenizer = AutoTokenizer.from_pretrained("dipta007/answer-judge-balanced") model = AutoModelForSequenceClassification.from_pretrained("dipta007/answer-judge-balanced") - Notebooks
- Google Colab
- Kaggle
| library_name: transformers | |
| license: apache-2.0 | |
| base_model: answerdotai/ModernBERT-large | |
| pipeline_tag: text-classification | |
| language: | |
| - en | |
| datasets: | |
| - dipta007/decomposeRL-tiny-judge | |
| tags: | |
| - fact-verification | |
| - claim-verification | |
| - reward-model | |
| - llm-as-a-judge | |
| - distillation | |
| - modernbert | |
| - text-classification | |
| - decomposition | |
| - faithfulness | |
| - answer-verification | |
| # DecomposeRL Tiny-Judge: Answer Correctness Judge | |
| <p align="center"> | |
| <a href="https://arxiv.org/abs/2605.27858v1"> | |
| <img src="https://img.shields.io/badge/%F0%9F%93%84_Paper-arXiv-b12a00?style=for-the-badge&labelColor=ffb300" alt="Paper"> | |
| </a> | |
| </p> | |
| [](https://arxiv.org/abs/2605.27858v1) | |
| [](https://dipta007.github.io/DecomposeRL/) | |
| [](https://huggingface.co/datasets/dipta007/decomposeRL-tiny-judge) | |
| [](https://huggingface.co/collections/dipta007/decomposerl) | |
| [](https://github.com/dipta007/DecomposeRL) | |
| A ModernBERT-large classifier that scores whether an answer is **faithful to the evidence document** (no contradictions, no extrinsic information) — the **answer correctness** sub-signal of DecomposeRL's joint multiplicative quality reward. | |
| It is part of the **DecomposeRL tiny-judge stack** — eight task-specific LoRA classifier heads on a shared `ModernBERT-large` backbone that *distill* a `Qwen3-32B` LLM judge into small, fast reward models. Swapping the 32B judge for this ~400M-parameter stack cuts GRPO judge compute by ~80% (240 → 48 GPU-hours) while retaining ~99% of in-domain accuracy. | |
| ## Model Overview | |
| | Property | Value | | |
| |----------|-------| | |
| | **Model Type** | `ModernBertForSequenceClassification` (sequence classification) | | |
| | **Base Model** | `answerdotai/ModernBERT-large` (~400M params) | | |
| | **Training** | LoRA (r=64, α=128), merged into the base before release | | |
| | **Labels** | 2-way: `no` / `yes` | | |
| | **Distilled from** | `Qwen/Qwen3-32B` judge labels | | |
| | **Dataset / config** | [`dipta007/decomposeRL-tiny-judge`](https://huggingface.co/datasets/dipta007/decomposeRL-tiny-judge) · `answer_correctness` | | |
| | **Train split** | `train_balanced` (class-balanced); selected on macro-F1 | | |
| | **Language** | English | | |
| ## What it judges | |
| Provides the **answer correctness** sub-signal (`R_corr`) of the joint multiplicative quality reward. For honest abstentions (*"I don't know"*) this factor is dropped so the question is scored on answerability and atomicity alone. | |
| ### Input format | |
| Evidence document + sub-question + the policy's answer: | |
| ``` | |
| Document: {document} | |
| Question: {question} | |
| Answer: {answer} | |
| ``` | |
| ### Label space | |
| | Label | Name | Meaning | | |
| |------:|------|---------| | |
| | `0` | `no` | the answer contradicts the document or adds information not grounded in it | | |
| | `1` | `yes` | the answer is faithful to the document | | |
| ## Quickstart | |
| ```python | |
| import torch | |
| from transformers import AutoModelForSequenceClassification, AutoTokenizer | |
| repo = "dipta007/answer-judge-balanced" | |
| tokenizer = AutoTokenizer.from_pretrained(repo) | |
| model = AutoModelForSequenceClassification.from_pretrained(repo).eval() | |
| text = ( | |
| 'Document: ## Managerial career\\n' | |
| 'He brought along Rube Foster and a number of American black players, but the team lost five of its first six games, and White and most of his players were released...\\n' | |
| 'Question: How many of its first six games did the team lose?\\n' | |
| 'Answer: The team won five of its first six games.' | |
| ) | |
| inputs = tokenizer(text, return_tensors="pt", truncation=True, max_length=8192) | |
| with torch.no_grad(): | |
| logits = model(**inputs).logits | |
| pred = int(logits.argmax(-1)) | |
| print(pred, model.config.id2label[pred]) | |
| # expected: 0 -> no | |
| ``` | |
| ## Training Data | |
| Trained on the `answer_correctness` config of [`dipta007/decomposeRL-tiny-judge`](https://huggingface.co/datasets/dipta007/decomposeRL-tiny-judge), whose labels are distilled from `Qwen3-32B` judge calls made during DecomposeRL reward computation. The model is fine-tuned with LoRA on the class-balanced `train_balanced` split, validated on the natural `validation` split, and the best checkpoint is chosen by macro-F1. LoRA adapters are merged into the backbone before release, so the model loads with a plain `from_pretrained` (no PEFT required). | |
| ## Role in DecomposeRL | |
| DecomposeRL trains a claim-verification policy with GRPO over a seven-reward ensemble. Five of those rewards are scored by an LLM judge, which dominates training-time GPU cost. The tiny-judge stack replaces that 32B judge with eight small distilled heads so reward scoring runs on the same single GPU as training. See the [paper](https://arxiv.org/abs/2605.27858v1) (tiny-judge ablation) and the [DecomposeRL-7B model](https://huggingface.co/dipta007/decomposeRL-7b) for the full reward design. | |
| ## Intended Use | |
| - **In-scope**: serving as a fast reward / scoring model inside the DecomposeRL training loop, or as a standalone classifier for the specific judgment above on claim-decomposition traces. | |
| - **Out-of-scope**: general-purpose fact-checking, use on inputs that do not follow the input format above, or as a standalone end-to-end claim verifier (use [DecomposeRL-7B](https://huggingface.co/dipta007/decomposeRL-7b) for that). | |
| ## Citation | |
| ```bibtex | |
| @article{dipta2025decomposerl, | |
| title={DecomposeRL: Learning to Ask Useful, Informative, and Diverse Questions for Semi-Supervised, Traceable Claim Verification}, | |
| author={Shubhashis Roy Dipta and Ankur Padia and Francis Ferraro}, | |
| year={2025}, | |
| eprint={2605.27858}, | |
| archivePrefix={arXiv}, | |
| primaryClass={cs.CL}, | |
| url={https://arxiv.org/abs/2605.27858v1}, | |
| } | |
| ``` | |
| ## License | |
| Released under the Apache 2.0 License. | |