语言:
库名称: sentence-transformers
标签:
评估指标:
- 皮尔逊余弦相似度
- 斯皮尔曼余弦相似度
- 皮尔逊曼哈顿距离
- 斯皮尔曼曼哈顿距离
- 皮尔逊欧几里得距离
- 斯皮尔曼欧几里得距离
- 皮尔逊点积
- 斯皮尔曼点积
- 皮尔逊最大值
- 斯皮尔曼最大值
小部件: []
管道标签: 句子相似度
数据集:
- hpprc/emb
- hpprc/mqa-ja
- google-research-datasets/paws-x
基础模型: pkshatech/GLuCoSE-base-ja
许可证: apache-2.0
GLuCoSE v2
该模型是一款通用日语文本嵌入模型,在检索任务中表现优异。可在CPU上运行,专为测量句子间语义相似度设计,同时可作为基于查询的段落检索系统使用。
核心特性:
- 专精检索任务,在MIRACL等任务中展现同尺寸模型中的最高性能
- 针对日语文本处理优化
- 支持CPU运行
推理时需添加"query: "或"passage: "前缀。具体用法请参阅使用说明章节。
模型说明
本模型基于GLuCoSE,通过多个大规模嵌入模型的蒸馏和多阶段对比学习进行微调。
- 最大序列长度: 512个标记
- 输出维度: 768维
- 相似度计算: 余弦相似度
使用方法
直接使用(Sentence Transformers)
可通过以下代码使用SentenceTransformer进行推理:
from sentence_transformers import SentenceTransformer
import torch.nn.functional as F
model = SentenceTransformer("pkshatech/GLuCoSE-base-ja-v2")
sentences = [
'query: PKSHA是怎样的公司?',
'passage: 我们将研发的算法引入众多企业的软件运营中。',
'query: 日本最高山峰是?',
'passage: 富士山(海拔3776.12米)是日本最高峰(剑峰),其优美山姿作为日本象征广为人知。',
]
embeddings = model.encode(sentences,convert_to_tensor=True)
print(embeddings.shape)
similarities = F.cosine_similarity(embeddings.unsqueeze(0), embeddings.unsqueeze(1), dim=2)
print(similarities)
直接使用(Transformers)
可通过以下代码使用Transformers进行推理:
import torch.nn.functional as F
from torch import Tensor
from transformers import AutoTokenizer, AutoModel
def mean_pooling(last_hidden_states: Tensor,attention_mask: Tensor) -> Tensor:
emb = last_hidden_states * attention_mask.unsqueeze(-1)
emb = emb.sum(dim=1) / attention_mask.sum(dim=1).unsqueeze(-1)
return emb
tokenizer = AutoTokenizer.from_pretrained("pkshatech/GLuCoSE-base-ja-v2")
model = AutoModel.from_pretrained("pkshatech/GLuCoSE-base-ja-v2")
sentences = [
'query: PKSHA是怎样的公司?',
'passage: 我们将研发的算法引入众多企业的软件运营中。',
'query: 日本最高山峰是?',
'passage: 富士山(海拔3776.12米)是日本最高峰(剑峰),其优美山姿作为日本象征广为人知。',
]
batch_dict = tokenizer(sentences, max_length=512, padding=True, truncation=True, return_tensors='pt')
outputs = model(**batch_dict)
embeddings = mean_pooling(outputs.last_hidden_state, batch_dict['attention_mask'])
print(embeddings.shape)
similarities = F.cosine_similarity(embeddings.unsqueeze(0), embeddings.unsqueeze(1), dim=2)
print(similarities)
训练细节
GLuCoSE v2通过以下步骤进行微调:
第一阶段:集成蒸馏
第二阶段:对比学习
第三阶段:检索专用对比学习
基准测试
检索性能
在MIRACL-ja、JQARA、JaCWIR和MLDR-ja上的评估结果:
模型 |
参数量 |
MIRACL Recall@5 |
JQaRA nDCG@10 |
JaCWIR MAP@10 |
MLDR nDCG@10 |
[intfloat/multilingual-e5-large] |
0.6B |
89.2 |
55.4 |
87.6 |
29.8 |
[cl-nagoya/ruri-large] |
0.3B |
78.7 |
62.4 |
85.0 |
37.5 |
|
|
|
|
|
|
[intfloat/multilingual-e5-base] |
0.3B |
84.2 |
47.2 |
85.3 |
25.4 |
[cl-nagoya/ruri-base] |
0.1B |
74.3 |
58.1 |
84.6 |
35.3 |
[pkshatech/GLuCoSE-base-ja] |
0.1B |
53.3 |
30.8 |
68.6 |
25.2 |
GLuCoSE v2 |
0.1B |
85.5 |
60.6 |
85.3 |
33.8 |
注:JQARA和JaCWIR中OpenAI小模型结果引自原始数据集说明。
JMTEB评估
在JMTEB基准测试结果(宏观平均):
模型 |
参数量 |
平均 |
检索 |
STS |
分类 |
重排序 |
聚类 |
配对分类 |
OpenAI/text-embedding-3-small |
- |
69.18 |
66.39 |
79.46 |
73.06 |
92.92 |
51.06 |
62.27 |
OpenAI/text-embedding-3-large |
- |
74.05 |
74.48 |
82.52 |
77.58 |
93.58 |
53.32 |
62.35 |
|
|
|
|
|
|
|
|
|
[intfloat/multilingual-e5-large] |
0.6B |
70.90 |
70.98 |
79.70 |
72.89 |
92.96 |
51.24 |
62.15 |
[cl-nagoya/ruri-large] |
0.3B |
73.31 |
73.02 |
83.13 |
77.43 |
92.99 |
51.82 |
62.29 |
|
|
|
|
|
|
|
|
|
[intfloat/multilingual-e5-base] |
0.3B |
68.61 |
68.21 |
79.84 |
69.30 |
92.85 |
48.26 |
62.26 |
[cl-nagoya/ruri-base] |
0.1B |
71.91 |
69.82 |
82.87 |
75.58 |
92.91 |
54.16 |
62.38 |
[pkshatech/GLuCoSE-base-ja] |
0.1B |
67.29 |
59.02 |
78.71 |
76.82 |
91.90 |
49.78 |
66.39 |
GLuCoSE v2 |
0.1B |
72.23 |
73.36 |
82.96 |
74.21 |
93.01 |
48.65 |
62.37 |
注:OpenAI和multilingual-e5模型结果引自JMTEB排行榜,ruri结果引自其模型卡。
作者
矢野千尋、呉望舒、立花英之、竹川大翔、渡辺洋太郎
许可
本模型基于Apache 2.0许可证发布。