Introduction of ctxl-rerank-v2-instruct-multilingual-1b-fp8
Model Details of ctxl-rerank-v2-instruct-multilingual-1b-fp8
Contextual AI Reranker v2 1B
Highlights
Contextual AI's reranker is the
first instruction-following reranker
capable of handling retrieval conflicts and ranking with custom instructions (e.g., prioritizing recent information). It achieves state-of-the-art performance on BEIR and sits on the cost/performance Pareto frontier across:
Re-rank retrieved documents with custom instructions
Handle conflicting information in retrieval results
Prioritize documents by recency or other criteria
Support multilingual search (100+ languages)
Process long contexts (up to 32K tokens)
Quickstart
Basic Usage
# Choose vLLM (recommended for production) or Transformers (simpler setup)# See full implementation in sections below
model_path = "ContextualAI/ctxl-rerank-v2-instruct-multilingual-1b"
query = "What are the health benefits of exercise?"
instruction = "Prioritize recent medical research"
documents = [
"Regular exercise reduces risk of heart disease and improves mental health.",
"A 2024 study shows exercise enhances cognitive function in older adults.",
"Ancient Greeks valued physical fitness for military training."
]
# Using vLLM (see full code below):
infer_w_vllm(model_path, query, instruction, documents)
# OR using Transformers (see full code below):
infer_w_hf(model_path, query, instruction, documents)
Expected Output:
Query: What are the health benefits of exercise?
Instruction: Prioritize recent medical research
Score: 0.5039 | Doc: A 2024 study shows exercise enhances cognitive function in older adults.
Score: -0.8398 | Doc: Regular exercise reduces risk of heart disease and improves mental health.
Score: -9.3125 | Doc: Ancient Greeks valued physical fitness for military training.
vLLM Usage (Recommended for Production)
Requires
vllm==0.10.0
for NVFP4 or
vllm>=0.8.5
for BF16.
import os
os.environ['VLLM_USE_V1'] = '0'# v1 engine doesn't support logits processor yetimport torch
from vllm import LLM, SamplingParams
deflogits_processor(_, scores):
"""Custom logits processor for vLLM reranking."""
index = scores[0].view(torch.uint16)
scores = torch.full_like(scores, float("-inf"))
scores[index] = 1return scores
defformat_prompts(query: str, instruction: str, documents: list[str]) -> list[str]:
"""Format query and documents into prompts for reranking."""if instruction:
instruction = f" {instruction}"
prompts = []
for doc in documents:
prompt = f"Check whether a given document contains information helpful to answer the query.\n<Document> {doc}\n<Query> {query}{instruction} ??"
prompts.append(prompt)
return prompts
definfer_w_vllm(model_path: str, query: str, instruction: str, documents: list[str]):
model = LLM(
model=model_path,
gpu_memory_utilization=0.85,
max_model_len=8192,
dtype="bfloat16",
max_logprobs=2,
max_num_batched_tokens=262144,
)
sampling_params = SamplingParams(
temperature=0,
max_tokens=1,
logits_processors=[logits_processor]
)
prompts = format_prompts(query, instruction, documents)
outputs = model.generate(prompts, sampling_params, use_tqdm=False)
# Extract scores and create results
results = []
for i, output inenumerate(outputs):
score = (
torch.tensor([output.outputs[0].token_ids[0]], dtype=torch.uint16)
.view(torch.bfloat16)
.item()
)
results.append((score, i, documents[i]))
# Sort by score (descending)
results = sorted(results, key=lambda x: x[0], reverse=True)
print(f"Query: {query}")
print(f"Instruction: {instruction}")
for score, doc_id, doc in results:
print(f"Score: {score:.4f} | Doc: {doc}")
# Example usageif __name__ == "__main__":
model_path = "ContextualAI/ctxl-rerank-v2-instruct-multilingual-1b"
query = "What are the health benefits of exercise?"
instruction = "Prioritize recent medical research"
documents = [
"Regular exercise reduces risk of heart disease and improves mental health.",
"A 2024 study shows exercise enhances cognitive function in older adults.",
"Ancient Greeks valued physical fitness for military training."
]
infer_w_vllm(model_path, query, instruction, documents)
Transformers Usage (Simpler Setup)
Requires
transformers>=4.51.0
for BF16. Not supported for NVFP4.
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
defformat_prompts(query: str, instruction: str, documents: list[str]) -> list[str]:
"""Format query and documents into prompts for reranking."""if instruction:
instruction = f" {instruction}"
prompts = []
for doc in documents:
prompt = f"Check whether a given document contains information helpful to answer the query.\n<Document> {doc}\n<Query> {query}{instruction} ??"
prompts.append(prompt)
return prompts
definfer_w_hf(model_path: str, query: str, instruction: str, documents: list[str]):
device = "cuda"if torch.cuda.is_available() else"cpu"
dtype = torch.bfloat16 if torch.cuda.is_available() else torch.float32
tokenizer = AutoTokenizer.from_pretrained(model_path, use_fast=True)
if tokenizer.pad_token isNone:
tokenizer.pad_token = tokenizer.eos_token
tokenizer.padding_side = "left"# so -1 is the real last token for all prompts
model = AutoModelForCausalLM.from_pretrained(model_path, torch_dtype=dtype).to(device)
model.eval()
prompts = format_prompts(query, instruction, documents)
enc = tokenizer(
prompts,
return_tensors="pt",
padding=True,
truncation=True,
)
input_ids = enc["input_ids"].to(device)
attention_mask = enc["attention_mask"].to(device)
with torch.no_grad():
out = model(input_ids=input_ids, attention_mask=attention_mask)
next_logits = out.logits[:, -1, :] # [batch, vocab]
scores_bf16 = next_logits[:, 0].to(torch.bfloat16)
scores = scores_bf16.float().tolist()
# Sort by score (descending)
results = sorted([(s, i, documents[i]) for i, s inenumerate(scores)], key=lambda x: x[0], reverse=True)
print(f"Query: {query}")
print(f"Instruction: {instruction}")
for score, doc_id, doc in results:
print(f"Score: {score:.4f} | Doc: {doc}")
# Example usageif __name__ == "__main__":
model_path = "ContextualAI/ctxl-rerank-v2-instruct-multilingual-1b"
query = "What are the health benefits of exercise?"
instruction = "Prioritize recent medical research"
documents = [
"Regular exercise reduces risk of heart disease and improves mental health.",
"A 2024 study shows exercise enhances cognitive function in older adults.",
"Ancient Greeks valued physical fitness for military training."
]
infer_w_hf(model_path, query, instruction, documents)
Citation
If you use this model, please cite:
@misc{ctxl_rerank_v2_instruct_multilingual,
title={Contextual AI Reranker v2},
author={Halal, George and Agrawal, Sheshansh},
year={2025},
url={https://contextual.ai/blog/rerank-v2},
}
License
Creative Commons Attribution Non Commercial Share Alike 4.0 (cc-by-nc-sa-4.0)
Contact
For questions or issues, please open an issue on the model repository.
Runs of ContextualAI ctxl-rerank-v2-instruct-multilingual-1b-fp8 on huggingface.co
5.7K
Total runs
-341
24-hour runs
-899
3-day runs
-379
7-day runs
4.9K
30-day runs
More Information About ctxl-rerank-v2-instruct-multilingual-1b-fp8 huggingface.co Model
More ctxl-rerank-v2-instruct-multilingual-1b-fp8 license Visit here:
ctxl-rerank-v2-instruct-multilingual-1b-fp8 huggingface.co is an AI model on huggingface.co that provides ctxl-rerank-v2-instruct-multilingual-1b-fp8's model effect (), which can be used instantly with this ContextualAI ctxl-rerank-v2-instruct-multilingual-1b-fp8 model. huggingface.co supports a free trial of the ctxl-rerank-v2-instruct-multilingual-1b-fp8 model, and also provides paid use of the ctxl-rerank-v2-instruct-multilingual-1b-fp8. Support call ctxl-rerank-v2-instruct-multilingual-1b-fp8 model through api, including Node.js, Python, http.
ctxl-rerank-v2-instruct-multilingual-1b-fp8 huggingface.co is an online trial and call api platform, which integrates ctxl-rerank-v2-instruct-multilingual-1b-fp8's modeling effects, including api services, and provides a free online trial of ctxl-rerank-v2-instruct-multilingual-1b-fp8, you can try ctxl-rerank-v2-instruct-multilingual-1b-fp8 online for free by clicking the link below.
ContextualAI ctxl-rerank-v2-instruct-multilingual-1b-fp8 online free url in huggingface.co:
ctxl-rerank-v2-instruct-multilingual-1b-fp8 is an open source model from GitHub that offers a free installation service, and any user can find ctxl-rerank-v2-instruct-multilingual-1b-fp8 on GitHub to install. At the same time, huggingface.co provides the effect of ctxl-rerank-v2-instruct-multilingual-1b-fp8 install, users can directly use ctxl-rerank-v2-instruct-multilingual-1b-fp8 installed effect in huggingface.co for debugging and trial. It also supports api for free installation.
ctxl-rerank-v2-instruct-multilingual-1b-fp8 install url in huggingface.co: