说明文档
jina-reranker-v1-turbo-en
此模型专为极致速度的重排序而设计,同时保持卓越的性能。更重要的是,它以我们的 JinaBERT 模型为基础。JinaBERT 是 BERT 架构的独特变体,支持 ALiBi 的对称双向变体。这使得 jina-reranker-v1-turbo-en 能够处理比其他重排序模型更长的文本序列,最高可达令人印象深刻的 8,192 个 token。
为了实现惊人的速度,jina-reranker-v1-turbo-en 采用了一种称为知识蒸馏的技术。在这里,一个复杂但较慢的模型(如我们最初的 jina-reranker-v1-base-en)充当教师,将其知识浓缩到一个更小、更快的学生模型中。这个学生保留了教师的大部分知识,使其能够在很短的时间内达到相似的精度。
以下是我们提供的重排序模型概览:
| 模型名称 | 层数 | 隐藏层大小 | 参数量(百万) |
|---|---|---|---|
| jina-reranker-v1-base-en | 12 | 768 | 137.0 |
| jina-reranker-v1-turbo-en | 6 | 384 | 37.8 |
| jina-reranker-v1-tiny-en | 4 | 384 | 33.0 |
目前,
jina-reranker-v1-base-en模型不在 Hugging Face 上提供。您可以通过 Jina AI Reranker API 访问它。
如您所见,jina-reranker-v1-turbo-en 提供了平衡的方案,包含 6 层 和 3780 万 参数。这转化为快速搜索和重排序,同时保持高度准确性。jina-reranker-v1-tiny-en 更加注重速度,通过其 4 层、3300 万 参数的架构实现了最快的推理速度。这使其成为绝对最高准确性不那么关键的场景的理想选择。
使用方法
- 开始使用
jina-reranker-v1-turbo-en最简单的方法是使用 Jina AI 的 Reranker API。
curl https://api.jina.ai/v1/rerank \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"model": "jina-reranker-v1-turbo-en",
"query": "Organic skincare products for sensitive skin",
"documents": [
"Eco-friendly kitchenware for modern homes",
"Biodegradable cleaning supplies for eco-conscious consumers",
"Organic cotton baby clothes for sensitive skin",
"Natural organic skincare range for sensitive skin",
"Tech gadgets for smart homes: 2024 edition",
"Sustainable gardening tools and compost solutions",
"Sensitive skin-friendly facial cleansers and toners",
"Organic food wraps and storage solutions",
"All-natural pet food for dogs with allergies",
"Yoga mats made from recycled materials"
],
"top_n": 3
}'
- 或者,您可以使用最新版本的
sentence-transformers>=0.27.0库。您可以通过 pip 安装:
pip install -U sentence-transformers
然后,您可以使用以下代码与模型交互:
from sentence_transformers import CrossEncoder
# 加载模型,这里我们使用 turbo 规格的模型
model = CrossEncoder("jinaai/jina-reranker-v1-turbo-en", trust_remote_code=True)
# 示例查询和文档
query = "Organic skincare products for sensitive skin"
documents = [
"Eco-friendly kitchenware for modern homes",
"Biodegradable cleaning supplies for eco-conscious consumers",
"Organic cotton baby clothes for sensitive skin",
"Natural organic skincare range for sensitive skin",
"Tech gadgets for smart homes: 2024 edition",
"Sustainable gardening tools and compost solutions",
"Sensitive skin-friendly facial cleansers and toners",
"Organic food wraps and storage solutions",
"All-natural pet food for dogs with allergies",
"Yoga mats made from recycled materials"
]
results = model.rank(query, documents, return_documents=True, top_k=3)
- 您还可以使用
transformers库以编程方式与模型交互。
!pip install transformers
from transformers import AutoModelForSequenceClassification
model = AutoModelForSequenceClassification.from_pretrained(
'jinaai/jina-reranker-v1-turbo-en', num_labels=1, trust_remote_code=True
)
# 示例查询和文档
query = "Organic skincare products for sensitive skin"
documents = [
"Eco-friendly kitchenware for modern homes",
"Biodegradable cleaning supplies for eco-conscious consumers",
"Organic cotton baby clothes for sensitive skin",
"Natural organic skincare range for sensitive skin",
"Tech gadgets for smart homes: 2024 edition",
"Sustainable gardening tools and compost solutions",
"Sensitive skin-friendly facial cleansers and toners",
"Organic food wraps and storage solutions",
"All-natural pet food for dogs with allergies",
"Yoga mats made from recycled materials"
]
# 构建句子对
sentence_pairs = [[query, doc] for doc in documents]
scores = model.compute_score(sentence_pairs)
- 您还可以使用
transformers.js库直接在 JavaScript 中运行模型(浏览器、Node.js、Deno 等)!
如果您还没有安装,可以从 NPM 安装 Transformers.js JavaScript 库:
npm i @xenova/transformers
然后,您可以使用以下代码与模型交互:
import { AutoTokenizer, AutoModelForSequenceClassification } from '@xenova/transformers';
const model_id = 'jinaai/jina-reranker-v1-turbo-en';
const model = await AutoModelForSequenceClassification.from_pretrained(model_id, { quantized: false });
const tokenizer = await AutoTokenizer.from_pretrained(model_id);
/**
* 使用 CrossEncoder 对给定查询和文档进行排序。返回排序后的列表,包含文档索引和分数。
* @param {string} query 单个查询
* @param {string[]} documents 文档列表
* @param {Object} options 排序选项
* @param {number} [options.top_k=undefined] 返回前 k 个文档。如果未定义,则返回所有文档。
* @param {number} [options.return_documents=false] 如果为 true,则同时返回文档。如果为 false,则只返回索引和分数。
*/
async function rank(query, documents, {
top_k = undefined,
return_documents = false,
} = {}) {
const inputs = tokenizer(
new Array(documents.length).fill(query),
{ text_pair: documents, padding: true, truncation: true }
)
const { logits } = await model(inputs);
return logits.sigmoid().tolist()
.map(([score], i) => ({
corpus_id: i,
score,
...(return_documents ? { text: documents[i] } : {})
})).sort((a, b) => b.score - a.score).slice(0, top_k);
}
// 示例用法:
const query = "Organic skincare products for sensitive skin"
const documents = [
"Eco-friendly kitchenware for modern homes",
"Biodegradable cleaning supplies for eco-conscious consumers",
"Organic cotton baby clothes for sensitive skin",
"Natural organic skincare range for sensitive skin",
"Tech gadgets for smart homes: 2024 edition",
"Sustainable gardening tools and compost solutions",
"Sensitive skin-friendly facial cleansers and toners",
"Organic food wraps and storage solutions",
"All-natural pet food for dogs with allergies",
"Yoga mats made from recycled materials",
]
const results = await rank(query, documents, { return_documents: true, top_k: 3 });
console.log(results);
就这样!您现在可以在项目中使用 jina-reranker-v1-turbo-en 模型了。
评估
我们评估了 Jina Reranker 在 3 个关键基准上的表现,以确保顶级的性能和搜索相关性。
| 模型名称 | NDCG@10(17 个 BEIR 数据集) | NDCG@10(5 个 LoCo 数据集) | Hit Rate(LlamaIndex RAG) |
|---|---|---|---|
jina-reranker-v1-base-en |
52.45 | 87.31 | 85.53 |
jina-reranker-v1-turbo-en(您正在使用的) |
49.60 | 69.21 | 85.13 |
jina-reranker-v1-tiny-en |
48.54 | 70.29 | 85.00 |
mxbai-rerank-base-v1 |
49.19 | - | 82.50 |
mxbai-rerank-xsmall-v1 |
48.80 | - | 83.69 |
ms-marco-MiniLM-L-6-v2 |
48.64 | - | 82.63 |
ms-marco-MiniLM-L-4-v2 |
47.81 | - | 83.82 |
bge-reranker-base |
47.89 | - | 83.03 |
注意:
NDCG@10是排序质量指标,分数越高表示搜索结果越好。Hit Rate衡量在 top 10 搜索结果中出现相关文档的百分比。- 其他模型在 LoCo 数据集上的结果不可用,因为它们不支持超过 512 个 token 的长文档。
有关更多详细信息,请参阅我们的基准测试表格。
联系方式
加入我们的 Discord 社区,与其他社区成员交流关于想法的想法。
jinaai/jina-reranker-v1-turbo-en
作者 jinaai
创建时间: 2024-04-15 05:45:01+00:00
更新时间: 2025-09-10 09:50:56+00:00
在 Hugging Face 上查看