Qwen3-Reranker#
The Qwen3-Reranker series is a family of reranking models built on the Qwen3 dense transformer backbone. Given a query and a set of candidate documents, they produce relevance scores used to reorder retrieval results — a common second stage in retrieval-augmented generation (RAG) and search pipelines.
FuriosaAI publishes the Qwen3-Reranker models under the
furiosa-ai organization on the Hugging Face Hub,
each shipping a Furiosa Executable Bundle (FXB) for running it on
FuriosaAI RNGD with Furiosa-LLM. The same upstream weights
also run on other frameworks (such as Sentence Transformers, vLLM, and
Transformers); for usage with those, see the upstream model cards linked below.
For the related embedding model see Qwen3-Embedding; for the dense Qwen3 chat models see Qwen3 (dense).
Available Models#
Model |
Quantization |
RNGD cards |
Notes |
|---|---|---|---|
None (BF16) |
1 |
0.6B reranker |
|
None (BF16) |
1 |
4B reranker |
|
None (BF16) |
1 |
8B reranker |
Architecture: Qwen3 (dense),
Qwen3ForSequenceClassificationTask: Reranking
Input / Output: Text (query-document pairs) / Relevance score
Quantization: No quantization — the models run in their native BF16 precision.
Usage#
To run these models with Furiosa-LLM, follow the examples below after installing Furiosa-LLM and its prerequisites. You can use a model either online through the OpenAI-compatible server or offline through the Furiosa-LLM Python API. Select a variant tab below; the choice is kept in sync across all the examples on this page.
Launch the server#
Serve a model by passing its furiosa-ai/<repo> identifier:
# Launch the server, listening on port 8000 by default
furiosa-llm serve furiosa-ai/Qwen3-Reranker-0.6B
# Launch the server, listening on port 8000 by default
furiosa-llm serve furiosa-ai/Qwen3-Reranker-4B
# Launch the server, listening on port 8000 by default
furiosa-llm serve furiosa-ai/Qwen3-Reranker-8B
When the server is ready, you will see:
INFO: Started server process [27507]
INFO: Waiting for application startup.
INFO: Application startup complete.
INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)
Basic Usage#
The server exposes a /v1/rerank endpoint (compatible with the Cohere/Jina
rerank API, also used by vLLM). Send a query and the candidate documents with
curl; the server returns the documents reordered by relevance_score:
curl http://localhost:8000/v1/rerank \
-H "Content-Type: application/json" \
-d '{
"model": "furiosa-ai/Qwen3-Reranker-0.6B",
"query": "What is deep learning?",
"documents": [
"Deep learning is a subset of machine learning using neural networks.",
"Python is a popular programming language for data science.",
"Neural networks are inspired by biological neural networks."
]
}' \
| python -m json.tool
curl http://localhost:8000/v1/rerank \
-H "Content-Type: application/json" \
-d '{
"model": "furiosa-ai/Qwen3-Reranker-4B",
"query": "What is deep learning?",
"documents": [
"Deep learning is a subset of machine learning using neural networks.",
"Python is a popular programming language for data science.",
"Neural networks are inspired by biological neural networks."
]
}' \
| python -m json.tool
curl http://localhost:8000/v1/rerank \
-H "Content-Type: application/json" \
-d '{
"model": "furiosa-ai/Qwen3-Reranker-8B",
"query": "What is deep learning?",
"documents": [
"Deep learning is a subset of machine learning using neural networks.",
"Python is a popular programming language for data science.",
"Neural networks are inspired by biological neural networks."
]
}' \
| python -m json.tool
You can do the same from Python with the requests library, and pass top_n to
keep only the most relevant documents:
import requests
response = requests.post(
"http://localhost:8000/v1/rerank",
json={
"model": "furiosa-ai/Qwen3-Reranker-0.6B",
"query": "What is deep learning?",
"documents": [
"Deep learning is a subset of machine learning using neural networks.",
"Python is a popular programming language for data science.",
"Neural networks are inspired by biological neural networks.",
],
"top_n": 2,
},
)
for result in response.json()["results"]:
print(f"score={result['relevance_score']:.4f} {result['document']['text']}")
import requests
response = requests.post(
"http://localhost:8000/v1/rerank",
json={
"model": "furiosa-ai/Qwen3-Reranker-4B",
"query": "What is deep learning?",
"documents": [
"Deep learning is a subset of machine learning using neural networks.",
"Python is a popular programming language for data science.",
"Neural networks are inspired by biological neural networks.",
],
"top_n": 2,
},
)
for result in response.json()["results"]:
print(f"score={result['relevance_score']:.4f} {result['document']['text']}")
import requests
response = requests.post(
"http://localhost:8000/v1/rerank",
json={
"model": "furiosa-ai/Qwen3-Reranker-8B",
"query": "What is deep learning?",
"documents": [
"Deep learning is a subset of machine learning using neural networks.",
"Python is a popular programming language for data science.",
"Neural networks are inspired by biological neural networks.",
],
"top_n": 2,
},
)
for result in response.json()["results"]:
print(f"score={result['relevance_score']:.4f} {result['document']['text']}")
To score query-document pairs directly instead of reranking, the server also
exposes a /v1/score endpoint.
Advanced Usage#
For offline use, load the model with the LLM constructor (the FXB shipped in
the repo is discovered automatically) and call score with a query and the
candidate documents to obtain relevance scores:
from furiosa_llm import LLM
with LLM("furiosa-ai/Qwen3-Reranker-0.6B") as llm:
query = "What is deep learning?"
documents = [
"Deep learning is a subset of machine learning using neural networks.",
"Python is a popular programming language for data science.",
]
outputs = llm.score(query, documents)
for document, output in zip(documents, outputs):
print(f"score={output.outputs.score:.4f} {document}")
from furiosa_llm import LLM
with LLM("furiosa-ai/Qwen3-Reranker-4B") as llm:
query = "What is deep learning?"
documents = [
"Deep learning is a subset of machine learning using neural networks.",
"Python is a popular programming language for data science.",
]
outputs = llm.score(query, documents)
for document, output in zip(documents, outputs):
print(f"score={output.outputs.score:.4f} {document}")
from furiosa_llm import LLM
with LLM("furiosa-ai/Qwen3-Reranker-8B") as llm:
query = "What is deep learning?"
documents = [
"Deep learning is a subset of machine learning using neural networks.",
"Python is a popular programming language for data science.",
]
outputs = llm.score(query, documents)
for document, output in zip(documents, outputs):
print(f"score={output.outputs.score:.4f} {document}")
Learn more#
Furiosa-LLM Server (
furiosa-llm serve) — full OpenAI-compatible API reference, including the Rerank and Score APIsFuriosa-LLM — Furiosa-LLM documentation and API reference
Upstream model cards: Qwen/Qwen3-Reranker-0.6B, Qwen/Qwen3-Reranker-4B, Qwen/Qwen3-Reranker-8B