Cheon Reranker 0.6B v1

A reranker for legal and administrative document search, built on Qwen3-0.6B.

  • Base: Qwen3-0.6B (Apache-2.0)
  • Params: ~609M total
  • Weights: model.safetensors, fp32

Usage

Loads straight into AutoModel with trust_remote_code=True. The included modeling_cheon_reranker.py is a from-scratch reimplementation of the forward pass (no training code) — checked against the original checkpoint on random inputs, max difference 2.4e-07, i.e. floating-point noise.

import torch
from transformers import AutoModel, AutoTokenizer

repo = "cheonai/cheon-reranker-0.6b-v1"
tok = AutoTokenizer.from_pretrained(repo)
model = AutoModel.from_pretrained(repo, trust_remote_code=True, torch_dtype=torch.float32)
model.eval()

# Query + candidates go into one sequence. Track each candidate's token span
# as you build it instead of hardcoding positions. Candidates don't need to
# share a language - the tokenizer and span logic don't care.
query = "query: 이 사건의 처리 기한은 언제까지인가요?\n"
candidates = [
    "candidate (en): The appeal must be filed within 30 days of the decision.",
    "candidate (ko): 이의신청은 처분을 안 날부터 30일 이내에 제기해야 합니다.",
    "candidate (zh): 上诉必须在裁定后30天内提出。",
    "candidate (ja): 不服申立ては、決定を知った日から30日以内に行う必要があります。",
]

ids = tok(query, add_special_tokens=False)["input_ids"]
doc_spans = []
for text in candidates:
    piece = tok(text, add_special_tokens=False)["input_ids"]
    start = len(ids)
    ids += piece
    doc_spans.append((start, len(ids)))

input_ids = torch.tensor([ids])
attention_mask = torch.ones_like(input_ids)
corpus_ids = [0] * len(candidates)  # optional per-candidate corpus/collection tag

with torch.no_grad():
    scores = model(
        input_ids=input_ids,
        attention_mask=attention_mask,
        doc_spans=doc_spans,
        corpus_ids=corpus_ids,
    )
print(scores)  # higher = more relevant

How you actually build the prompt (query/candidate layout, candidate selection, chunking long documents) is left to you — that's pipeline-specific and not part of this repo. The cheon-reranker cookbook has one way to do it: a small Python package and runnable recipes.

Benchmarks

nDCG@10 on AutoRAGRetrieval from MTEB(kor): 114 questions over finance, public-sector, legal and commerce documents. Every model was run from its public checkpoint under the same evaluation harness, and a score is reported only if it reproduces the model's official number within ±0.003 where one exists.

Model Parameters nDCG@10
jina-reranker-v3.5 0.6B 0.98381
jina-reranker-v3 0.6B 0.97734
Qwen3-Reranker-4B 4B 0.97065
Cheon Reranker 0.6B v1 0.609B 0.96648
bge-reranker-v2-m3 0.568B 0.96627
Qwen3-Reranker-8B 8B 0.95462
mxbai-rerank-large-v2 1.5B 0.95311
zerank-2 4.022B 0.94361

At 0.609B parameters it ranks above Qwen3-Reranker-8B, zerank-2 and mxbai-rerank-large-v2, models 2.5 to 13 times its size.

Limitations

  • Candidate order can change the scores; pass candidates in your first stage's order.
  • Scores rank candidates within one call; they are not probabilities.
  • Weights are fp32 — expect more memory and latency than an fp16/bf16 model this size.
  • Training data, optimization, and prompt-construction details aren't included here — only the weights and the forward pass.

License

CC-BY-NC-4.0 — research and evaluation only. Contact us for commercial use. The base model (Qwen3-0.6B) is Apache-2.0, but this fine-tune (learned weights) is ours and ships under the license above.

Downloads last month
187
Safetensors
Model size
0.6B params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for cheonai/cheon-reranker-0.6b-v1

Finetuned
Qwen/Qwen3-0.6B
Finetuned
(1363)
this model