由 Jina AI 的 Finetuner 团队训练的文本嵌入模型。
jina-embedding-s-en-v1 是一款基于 Jina AI 的 Linnaeus-Clean 数据集训练的语言模型。
该数据集包含 3.8 亿个句子对,其中包括查询-文档对。
这些句子对来源于多个领域,并经过严格的清洗流程精心筛选。
Linnaeus-Clean 数据集源自 Linnaeus-Full 数据集,后者最初包含 16 亿个句子对。
该模型具有广泛的应用场景,包括信息检索、语义文本相似度计算、文本重排序等。
凭借仅 3500 万参数的紧凑规模, 该模型实现了闪电般的推理速度,同时仍能提供令人印象深刻的性能。 此外,我们还提供以下选项:
jina-embedding-1b-en-v1:12 亿参数,规模为 bert-base 的 10 倍(即将发布)。jina-embedding-6b-en-v1:60 亿参数,规模为 bert-base 的 30 倍(即将发布)。详情请查阅我们的 技术博客。
我们将该模型与 sbert 的 all-minilm-l6-v2/all-mpnet-base-v2 以及 OpenAI 的 text-embeddings-ada-002 进行了对比:
| 名称 | 参数数量 | 维度 |
|---|---|---|
| all-minilm-l6-v2 | 2300 万 | 384 |
| all-mpnet-base-v2 | 1.1 亿 | 768 |
| ada-embedding-002 | 未知/OpenAI API | 1536 |
| jina-embedding-t-en-v1 | 1400 万 | 312 |
| jina-embedding-s-en-v1 | 3500 万 | 512 |
| jina-embedding-b-en-v1 | 1.1 亿 | 768 |
| jina-embedding-l-en-v1 | 3.3 亿 | 1024 |
| 名称 | STS12 | STS13 | STS14 | STS15 | STS16 | STS17 | TRECOVID | Quora | SciFact |
|---|---|---|---|---|---|---|---|---|---|
| all-minilm-l6-v2 | 0.724 | 0.806 | 0.756 | 0.854 | 0.79 | 0.876 | 0.473 | 0.876 | 0.645 |
| all-mpnet-base-v2 | 0.726 | 0.835 | 0.78 | 0.857 | 0.8 | 0.906 | 0.513 | 0.875 | 0.656 |
| ada-embedding-002 | 0.698 | 0.833 | 0.761 | 0.861 | 0.86 | 0.903 | 0.685 | 0.876 | 0.726 |
| jina-embedding-t-en-v1 | 0.717 | 0.773 | 0.731 | 0.829 | 0.777 | 0.860 | 0.482 | 0.840 | 0.522 |
| jina-embedding-s-en-v1 | 0.743 | 0.786 | 0.738 | 0.837 | 0.80 | 0.875 | 0.523 | 0.857 | 0.524 |
| jina-embedding-b-en-v1 | 0.751 | 0.809 | 0.761 | 0.856 | 0.812 | 0.890 | 0.606 | 0.876 | 0.594 |
| jina-embedding-l-en-v1 | 0.745 | 0.832 | 0.781 | 0.869 | 0.837 | 0.902 | 0.573 | 0.881 | 0.598 |
与 Jina AI Finetuner 配合使用
!pip install finetuner
# coding = utf-8
import os
import torch
import torch_npu
from sentence_transformers import SentenceTransformer
from sentence_transformers.util import cos_sim
import argparse
from openmind import pipeline, is_torch_npu_available
parser = argparse.ArgumentParser(description='manual to this script')
parser.add_argument("--model_name_or_path", type=str, default="./")
args = parser.parse_args()
device None
if is_torch_npu_available():
device = "npu:0"
else:
device = "cpu"
# load tokenizer
sentences_1 = ['how is the weather today']
sentences_2 = [ 'What is the current weather like today?']
model = SentenceTransformer(args.model_path)
model = model.to(device)
embeddings = model.encode(['how is the weather today', 'What is the current weather like today?'])
cosine_scores = cos_sim(embeddings[0], embeddings[1])
print(f"cosine_scores: {cosine_scores}")请考虑使用 Finetuner。
jina-embedding-s-en-v2 的开发工作目前正在进行中,主要有两个目标:提升性能和增加最大序列长度。jina-embedding-s/b/l-de-v1。加入我们的 Discord 社区,与其他社区成员交流想法。
如果您在研究中发现 Jina Embeddings 有用,请引用以下论文:
@misc{günther2023jina,
title={Jina Embeddings: A Novel Set of High-Performance Sentence Embedding Models},
author={Michael Günther and Louis Milliken and Jonathan Geuter and Georgios Mastrapas and Bo Wang and Han Xiao},
year={2023},
eprint={2307.11224},
archivePrefix={arXiv},
primaryClass={cs.CL}
}