Instructions to use Ethosoft/Qwen3-1.7B-ResearchReasoning-JSON-RL with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use Ethosoft/Qwen3-1.7B-ResearchReasoning-JSON-RL with PEFT:
from peft import PeftModel from transformers import AutoModelForCausalLM base_model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen3-1.7B") model = PeftModel.from_pretrained(base_model, "Ethosoft/Qwen3-1.7B-ResearchReasoning-JSON-RL") - Notebooks
- Google Colab
- Kaggle
Qwen3-1.7B ResearchReasoning JSON RL
Ethosoft/Qwen3-1.7B-ResearchReasoning-JSON-RL is a PEFT/LoRA adapter for Qwen/Qwen3-1.7B, fine-tuned for evidence-grounded research reasoning, source-aware question answering, claim verification, uncertainty handling, and strict JSON schema generation.
The project calls the final stage RL-lite. More precisely, it is a verifier-guided rejection-sampling and supervised fine-tuning stage initialized from a schema-focused adapter. It is not a full online policy-gradient RL run.
- Base model:
Qwen/Qwen3-1.7B - Adapter type: LoRA / PEFT
- Languages represented in the project: English and Turkish
- Fine-tuning context length: 4,096 tokens
- Primary output mode: non-thinking, minified structured JSON
- Source code and reproducibility files: https://github.com/Ahmet2001/QA-research-SLM
- GGUF release:
Ethosoft/Qwen3-1.7B-ResearchReasoning-JSON-RL-GGUF
Intended behavior
The model is trained to return a structured research state rather than only a free-form answer:
{
"task_type": "multi_hop_document_qa",
"research_plan": ["identify relevant sources", "connect evidence", "answer concisely"],
"evidence_needed": ["supporting facts"],
"selected_sources": ["src_001", "src_002"],
"claims": [
{
"claim": "The answer is supported by the supplied documents.",
"status": "supported",
"confidence": 0.86,
"evidence": ["src_001", "src_002"],
"importance": "high"
}
],
"conflicts": [],
"uncertainties": [],
"answer": "Concise evidence-grounded answer"
}
The model is especially sensitive to the requested schema and performs best when the system prompt explicitly requires valid JSON, names all required fields, and restricts evidence values to supplied source IDs.
Usage with Transformers and PEFT
import torch
from peft import PeftModel
from transformers import AutoModelForCausalLM, AutoTokenizer
adapter_id = "Ethosoft/Qwen3-1.7B-ResearchReasoning-JSON-RL"
base_id = "Qwen/Qwen3-1.7B"
tokenizer = AutoTokenizer.from_pretrained(adapter_id, trust_remote_code=True)
base_model = AutoModelForCausalLM.from_pretrained(
base_id,
torch_dtype="auto",
device_map="auto",
trust_remote_code=True,
)
model = PeftModel.from_pretrained(base_model, adapter_id)
model.eval()
system = (
"You are ResearchReasoner. Output ONLY valid minified JSON. No markdown. "
"Required fields: task_type, research_plan, evidence_needed, selected_sources, "
"claims, conflicts, uncertainties, answer. Use only supplied source IDs."
)
user = """Question: Which source supports the claim?
SOURCES:
[src_001] The official report states that the system uses a 32K context window.
[src_002] An unverified repost claims 128K without an official reference."""
messages = [
{"role": "system", "content": system},
{"role": "user", "content": user},
]
prompt = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True,
enable_thinking=False,
)
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
with torch.no_grad():
output = model.generate(
**inputs,
max_new_tokens=768,
do_sample=False,
repetition_penalty=1.05,
pad_token_id=tokenizer.eos_token_id,
eos_token_id=tokenizer.eos_token_id,
)
completion = tokenizer.decode(
output[0, inputs["input_ids"].shape[-1]:],
skip_special_tokens=True,
)
print(completion)
For reliability-sensitive JSON workflows, validate the generated object against research_output_schema.json and retry or repair invalid generations in the application layer.
Training details
The released adapter was initialized from the project's schema-hard SFT adapter and trained for one additional epoch on verifier-filtered rejection-sampling data.
| Setting | Value |
|---|---|
| Base model | Qwen/Qwen3-1.7B |
| LoRA rank | 32 |
| LoRA alpha | 64 |
| LoRA dropout | 0.05 |
| Target modules | q/k/v/o projections and gate/up/down projections |
| Learning rate | 5e-6 |
| Scheduler | cosine |
| Optimizer | paged AdamW 8-bit |
| Effective batch size | 4 |
| Fine-tuning epochs | 1 |
| Maximum sequence length | 4,096 |
The base model advertises a longer context window, but this adapter was fine-tuned and evaluated primarily at 4,096 tokens. Long-context quality beyond that range is not established by this release.
Benchmark diagnostics
These are fixed-seed diagnostic evaluations, not official leaderboard submissions. The prompts require the project's strict research JSON schema, so results are not directly comparable with standard zero-shot leaderboard numbers.
PubMedQA PQA-L — 80-example diagnostic
The 1,000-example labeled train split was shuffled with seed 2026; the first 80 generated examples were evaluated.
| Model | Label accuracy | Label attempt rate | Mean verifier reward |
|---|---|---|---|
| Qwen3-1.7B base | 1.25% | 16.25% | -0.1900 |
| ResearchReasoning JSON RL | 52.50% | 85.00% | 0.7750 |
HotpotQA Distractor validation — 200-example diagnostic
The validation split was shuffled with seed 2026. Evidence is scored at source-document level, not with the official supporting-sentence metric.
| Model | Answer EM | Answer F1 | Evidence-source F1 | JSON valid | Verifier reward |
|---|---|---|---|---|---|
| Qwen3-1.7B base | 0.50% | 15.25% | 64.85% | 93.50% | 0.6756 |
| ResearchReasoning JSON RL | 27.00% | 36.91% | 55.61% | 95.50% | 0.8757 |
SciFact claims-dev — 200-example diagnostic
Evidence is measured at abstract/source-document level rather than official sentence-rationale level.
| Model | Label accuracy | Macro-F1 | Evidence-source F1* | JSON valid | Verifier reward |
|---|---|---|---|---|---|
| Qwen3-1.7B base | 53.50% | 41.46% | 58.79% | 89.00% | 0.6045 |
| ResearchReasoning JSON RL | 40.00% | 26.21% | 45.07% | 92.00% | 0.7870 |
* Evidence-source F1 for examples labeled SUPPORT or CONTRADICT.
The SciFact result shows an important limitation: the adapter improves schema compliance and verifier reward but does not consistently improve scientific claim classification over the base model.
Full diagnostic reports and evaluator scripts are available in the GitHub repository.
Limitations
- This is an experimental research adapter, not a production fact-checking system.
- Generated citations are source IDs from the prompt; the model does not browse or verify external URLs by itself.
- High verifier reward does not guarantee factual correctness.
- The model can over-specialize to the requested schema and may underperform the base model on some out-of-domain classifications.
- PubMedQA, HotpotQA, and SciFact numbers above are custom fixed-sample diagnostics rather than official leaderboard scores.
- JSON can still be malformed or truncated, especially with insufficient generation length or aggressive quantization.
- Lower-bit GGUF quantization may reduce schema adherence. Prefer Q5_K_M or Q8_0 for reliability-sensitive use.
VibeThinker inspiration and attribution
This project is conceptually inspired by the VibeThinker line of work on eliciting verifiable reasoning in compact language models. The released adapter was developed independently for evidence-grounded research reasoning and strict JSON generation. It does not reuse VibeThinker weights, training data, or code.
Related work:
- Sen Xu et al., Tiny Model, Big Logic: Diversity-Driven Optimization Elicits Large-Model Reasoning Ability in VibeThinker-1.5B, arXiv:2511.06221, 2025. https://arxiv.org/abs/2511.06221
- Sen Xu et al., VibeThinker-3B: Exploring the Frontier of Verifiable Reasoning in Small Language Models, arXiv:2606.16140, 2026. https://arxiv.org/abs/2606.16140
Citation
@software{ethosoft_research_reasoner_2026,
title = {Qwen3-1.7B ResearchReasoning JSON RL},
author = {Ethosoft and QA-Research-SLM contributors},
year = {2026},
url = {https://huggingface.co/Ethosoft/Qwen3-1.7B-ResearchReasoning-JSON-RL},
base_model = {Qwen/Qwen3-1.7B}
}
Please also cite the Qwen3 technical report and the original benchmark datasets when using this model in research.
- Downloads last month
- 19