库名称:transformers
许可证:apache-2.0
支持语言:
- 英语
标签:
- 重排序器
- 交叉编码器
- transformers.js
- 句子转换器
任务类型:文本排序
jina-reranker-v1-tiny-en-GGUF
模型创建者:Jina AI
原始模型:jina-reranker-v1-tiny-en
GGUF量化:基于llama.cpp版本f4d2b
由Jina AI训练。
jina-reranker-v1-tiny-en
该模型专为极速重排序而设计,同时保持竞争力强的性能。更重要的是,它以我们的JinaBERT模型为基础。JinaBERT
本身是BERT架构的一个独特变体,支持ALiBi的对称双向变体。这使得jina-reranker-v1-tiny-en
能够处理比其他重排序模型更长的文本序列,最高可达8,192个令牌。
为了实现惊人的速度,jina-reranker-v1-tiny-en
采用了一种称为知识蒸馏的技术。在这里,一个复杂但较慢的模型(如我们原始的jina-reranker-v1-base-en)充当教师,将其知识浓缩到一个更小、更快的学生模型中。这个学生模型保留了教师的大部分知识,使其能够在更短的时间内提供相似的准确性。
以下是我们提供的重排序模型的分类:
目前,jina-reranker-v1-base-en
模型在Hugging Face上不可用。您可以通过Jina AI重排序API访问它。
如您所见,jina-reranker-v1-turbo-en
提供了一种平衡的方法,具有6层和37.8百万参数。这意味着在保持高准确性的同时实现快速搜索和重排序。jina-reranker-v1-tiny-en
进一步优先考虑速度,通过其4层、33.0百万参数架构实现最快的推理速度。这使其非常适合在绝对最高准确性不那么关键的场景中使用。
使用方法
- 开始使用
jina-reranker-v1-tiny-en
的最简单方法是使用Jina AI的重排序API。
curl https://api.jina.ai/v1/rerank \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"model": "jina-reranker-v1-tiny-en",
"query": "敏感肌肤的有机护肤品",
"documents": [
"现代家庭的环保厨具",
"环保消费者的可生物降解清洁用品",
"敏感肌肤的有机棉婴儿服装",
"敏感肌肤的天然有机护肤品系列",
"智能家居的科技小工具:2024版",
"可持续园艺工具和堆肥解决方案",
"敏感肌肤友好的洁面乳和爽肤水",
"有机食品包装和储存解决方案",
"针对过敏狗狗的全天然宠物食品",
"由回收材料制成的瑜伽垫"
],
"top_n": 3
}'
- 或者,您可以使用最新版本的
sentence-transformers>=0.27.0
库。您可以通过pip安装它:
pip install -U sentence-transformers
然后,您可以使用以下代码与模型交互:
from sentence_transformers import CrossEncoder
model = CrossEncoder("jinaai/jina-reranker-v1-tiny-en", trust_remote_code=True)
query = "敏感肌肤的有机护肤品"
documents = [
"现代家庭的环保厨具",
"环保消费者的可生物降解清洁用品",
"敏感肌肤的有机棉婴儿服装",
"敏感肌肤的天然有机护肤品系列",
"智能家居的科技小工具:2024版",
"可持续园艺工具和堆肥解决方案",
"敏感肌肤友好的洁面乳和爽肤水",
"有机食品包装和储存解决方案",
"针对过敏狗狗的全天然宠物食品",
"由回收材料制成的瑜伽垫"
]
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-tiny-en', num_labels=1, trust_remote_code=True
)
query = "敏感肌肤的有机护肤品"
documents = [
"现代家庭的环保厨具",
"环保消费者的可生物降解清洁用品",
"敏感肌肤的有机棉婴儿服装",
"敏感肌肤的天然有机护肤品系列",
"智能家居的科技小工具:2024版",
"可持续园艺工具和堆肥解决方案",
"敏感肌肤友好的洁面乳和爽肤水",
"有机食品包装和储存解决方案",
"针对过敏狗狗的全天然宠物食品",
"由回收材料制成的瑜伽垫"
]
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-tiny-en';
const model = await AutoModelForSequenceClassification.from_pretrained(model_id, { quantized: false });
const tokenizer = await AutoTokenizer.from_pretrained(model_id);
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 = "敏感肌肤的有机护肤品"
const documents = [
"现代家庭的环保厨具",
"环保消费者的可生物降解清洁用品",
"敏感肌肤的有机棉婴儿服装",
"敏感肌肤的天然有机护肤品系列",
"智能家居的科技小工具:2024版",
"可持续园艺工具和堆肥解决方案",
"敏感肌肤友好的洁面乳和爽肤水",
"有机食品包装和储存解决方案",
"针对过敏狗狗的全天然宠物食品",
"由回收材料制成的瑜伽垫",
]
const results = await rank(query, documents, { return_documents: true, top_k: 3 });
console.log(results);
就是这样!您现在可以在项目中使用jina-reranker-v1-tiny-en
模型了。
评估
我们在3个关键基准上评估了Jina Reranker,以确保顶级性能和搜索相关性。
模型名称 |
NDCG@10(17个BEIR数据集) |
NDCG@10(5个LoCo数据集) |
命中率(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
是衡量排序质量的指标,分数越高表示搜索结果越好。命中率
衡量相关文档出现在前10个搜索结果中的百分比。
- 其他模型在LoCo数据集上的结果不可用,因为它们不支持超过512个令牌的长文档。
更多详情,请参阅我们的基准测试表。
联系方式
加入我们的Discord社区,与其他社区成员交流想法。