🚀 ReasonIR-8B模型
ReasonIR-8B是首個專門為通用推理任務訓練的檢索器,在BRIGHT(推理密集型檢索)上實現了最先進的檢索性能。在用於檢索增強生成(RAG)時,ReasonIR-8B還能在MMLU和GPQA上帶來顯著提升。
🚀 快速開始
使用該模型前,請確保先安裝 transformers>=4.47.0
!
✨ 主要特性
- ReasonIR-8B是首個專門針對通用推理任務訓練的檢索器,在推理密集型檢索任務BRIGHT上達到了當前最優的檢索性能。
- 在檢索增強生成(RAG)任務中,能在MMLU和GPQA上帶來顯著的性能提升。
📦 安裝指南
使用前請確保安裝 transformers>=4.47.0
。
💻 使用示例
基礎用法
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
使用 AutoModel
時,需要注意:
- 包含
trust_remote_code=True
以確保使用自定義的雙向編碼架構。
- 使用
torch_dtype="auto"
以激活 bf16
(默認情況下torch將使用 fp32
)。
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)
同樣需要包含 trust_remote_code=True
和 torch_dtype="auto"
。
高級用法
使用 SentenceTransformer
調用模型時,由於模型轉換為 bfloat16
數據類型的方式,可能會存在一些非常細微的浮點差異,但一般不會影響結果。
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)
📚 詳細文檔
- 論文:https://arxiv.org/abs/2504.20595
- 代碼倉庫:https://github.com/facebookresearch/ReasonIR
- 數據:https://huggingface.co/datasets/reasonir/reasonir-data
📄 許可證
本模型遵循CC BY-NC 4.0許可證。
🔧 技術細節
屬性 |
詳情 |
基礎模型 |
meta-llama/Llama-3.1-8B |
語言 |
英文 |
許可證 |
CC BY-NC 4.0 |
任務類型 |
特徵提取 |
庫名稱 |
transformers |
標籤 |
sentence-transformers |
📚 引用
@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},
}