reasonir/ReasonIR-8B

Model

57

stars

32

commits

10

repos using this model

1

linked in READMEs

May 13, 2025

updated

custom_code
endpoints_compatible
feature-extraction
llama
safetensors
sentence-transformers
text-embeddings-inference
transformers

README

Model Summary

ReasonIR-8B is the first retriever specifically trained for general reasoning tasks, achieving the state-of-the-art retrieval performance on BRIGHT (reasoning-intensive retrieval). When employed for retrieval-augmented generation (RAG), ReasonIR-8B also brings substantial gains on MMLU and GPQA.

Usage

Make sure to install transformers>=4.47.0 first!

Transformers

from transformers import AutoModel

model = AutoModel.from_pretrained("reasonir/ReasonIR-8B", torch_dtype="auto", trust_remote_code=True)
model = model.to("cuda")
model.eval()

query = "The quick brown fox jumps over the lazy dog."
document = "The quick brown fox jumps over the lazy dog."
query_instruction = ""
doc_instruction = ""

query_emb = model.encode(query, instruction=query_instruction)
doc_emb = model.encode(document, instruction=doc_instruction)

sim = query_emb @ doc_emb.T

When using AutoModel, it is important to:

  1. Include trust_remote_code=True to make sure our custom bidirectional encoding architecture is used.
  2. Use torch_dtype="auto" so that bf16 is activated (by default torch will use fp32).

Sentence Transformers

In addition to Transformers, you can also use this model with Sentence Transformers

# pip install sentence-transformers
from sentence_transformers import SentenceTransformer

model_kwargs = {"torch_dtype": "auto"}
model = SentenceTransformer("reasonir/ReasonIR-8B", trust_remote_code=True, model_kwargs=model_kwargs)

query = "The quick brown fox jumps over the lazy dog."
document = "The quick brown fox jumps over the lazy dog."
query_instruction = ""
doc_instruction = ""

query_emb = model.encode(query, prompt=query_instruction)
doc_emb = model.encode(document, prompt=doc_instruction)

sim = model.similarity(query_emb, doc_emb)

It is important to also include trust_remote_code=True and torch_dtype="auto" as discussed earlier.

[!NOTE] There are some very slight floating point discrepancies when using the model via SentenceTransformer caused by how the models are cast to the bfloat16 dtype, though it should not affect the results in general.

We thank @tomaarsen for improving the SentenceTransformer integration and analyzing the cause of the floating point discrepancies!

Citation

@article{shao2025reasonir,
      title={ReasonIR: Training Retrievers for Reasoning Tasks}, 
      author={Rulin Shao and Rui Qiao and Varsha Kishore and Niklas Muennighoff and Xi Victoria Lin and Daniela Rus and Bryan Kian Hsiang Low and Sewon Min and Wen-tau Yih and Pang Wei Koh and Luke Zettlemoyer},
      year={2025},
      journal={arXiv preprint arXiv:2504.20595},
      url={https://arxiv.org/abs/2504.20595}, 
}

Contributors

qiaoruiyt

29 commits

rulins

2 commits

nielsr

1 commits

reasonir/ReasonIR-8B

Model

57

stars

32

commits

10

repos using this model

1

linked in READMEs

May 13, 2025

updated

custom_code
endpoints_compatible
feature-extraction
llama
safetensors
sentence-transformers
text-embeddings-inference
transformers

README

Model Summary

ReasonIR-8B is the first retriever specifically trained for general reasoning tasks, achieving the state-of-the-art retrieval performance on BRIGHT (reasoning-intensive retrieval). When employed for retrieval-augmented generation (RAG), ReasonIR-8B also brings substantial gains on MMLU and GPQA.

Usage

Make sure to install transformers>=4.47.0 first!

Transformers

from transformers import AutoModel

model = AutoModel.from_pretrained("reasonir/ReasonIR-8B", torch_dtype="auto", trust_remote_code=True)
model = model.to("cuda")
model.eval()

query = "The quick brown fox jumps over the lazy dog."
document = "The quick brown fox jumps over the lazy dog."
query_instruction = ""
doc_instruction = ""

query_emb = model.encode(query, instruction=query_instruction)
doc_emb = model.encode(document, instruction=doc_instruction)

sim = query_emb @ doc_emb.T

When using AutoModel, it is important to:

  1. Include trust_remote_code=True to make sure our custom bidirectional encoding architecture is used.
  2. Use torch_dtype="auto" so that bf16 is activated (by default torch will use fp32).

Sentence Transformers

In addition to Transformers, you can also use this model with Sentence Transformers

# pip install sentence-transformers
from sentence_transformers import SentenceTransformer

model_kwargs = {"torch_dtype": "auto"}
model = SentenceTransformer("reasonir/ReasonIR-8B", trust_remote_code=True, model_kwargs=model_kwargs)

query = "The quick brown fox jumps over the lazy dog."
document = "The quick brown fox jumps over the lazy dog."
query_instruction = ""
doc_instruction = ""

query_emb = model.encode(query, prompt=query_instruction)
doc_emb = model.encode(document, prompt=doc_instruction)

sim = model.similarity(query_emb, doc_emb)

It is important to also include trust_remote_code=True and torch_dtype="auto" as discussed earlier.

[!NOTE] There are some very slight floating point discrepancies when using the model via SentenceTransformer caused by how the models are cast to the bfloat16 dtype, though it should not affect the results in general.

We thank @tomaarsen for improving the SentenceTransformer integration and analyzing the cause of the floating point discrepancies!

Citation

@article{shao2025reasonir,
      title={ReasonIR: Training Retrievers for Reasoning Tasks}, 
      author={Rulin Shao and Rui Qiao and Varsha Kishore and Niklas Muennighoff and Xi Victoria Lin and Daniela Rus and Bryan Kian Hsiang Low and Sewon Min and Wen-tau Yih and Pang Wei Koh and Luke Zettlemoyer},
      year={2025},
      journal={arXiv preprint arXiv:2504.20595},
      url={https://arxiv.org/abs/2504.20595}, 
}

Contributors

qiaoruiyt

29 commits

rulins

2 commits

nielsr

1 commits