标签:
- 句子转换器
- 句子相似度
- 句子转换模型
语言:
- 英文
许可证: mit
E5基础无监督模型
此模型与e5-base类似,但未经过监督微调。
通过弱监督对比预训练获取文本嵌入。
王亮、杨楠、黄晓龙、焦彬星、杨林军、蒋大新、Rangan Majumder、韦福如,arXiv 2022
该模型包含12层,嵌入维度为768。
使用方法
以下示例展示如何为MS-MARCO段落排序数据集中的查询和段落生成编码。
import torch.nn.functional as F
from torch import Tensor
from transformers import AutoTokenizer, AutoModel
def average_pool(last_hidden_states: Tensor,
attention_mask: Tensor) -> Tensor:
last_hidden = last_hidden_states.masked_fill(~attention_mask[..., None].bool(), 0.0)
return last_hidden.sum(dim=1) / attention_mask.sum(dim=1)[..., None]
input_texts = ['query: 女性每日应摄入多少蛋白质',
'query: 峰会定义',
"passage: 根据CDC的普遍建议,19至70岁女性每日平均蛋白质需求量为46克。但如图所示,若处于孕期或马拉松训练期则需增量。参考下方图表了解每日蛋白质摄入量。",
"passage: 峰会定义(英语学习者版):1 山脉最高点;2 最高级别;3 政府首脑间的系列会议"]
tokenizer = AutoTokenizer.from_pretrained('intfloat/e5-base-unsupervised')
model = AutoModel.from_pretrained('intfloat/e5-base-unsupervised')
batch_dict = tokenizer(input_texts, max_length=512, padding=True, truncation=True, return_tensors='pt')
outputs = model(**batch_dict)
embeddings = average_pool(outputs.last_hidden_state, batch_dict['attention_mask'])
embeddings = F.normalize(embeddings, p=2, dim=1)
scores = (embeddings[:2] @ embeddings[2:].T) * 100
print(scores.tolist())
训练细节
详见论文https://arxiv.org/pdf/2212.03533.pdf。
基准评估
访问unilm/e5复现BEIR和MTEB基准的评估结果。
对Sentence Transformers的支持
以下是使用sentence_transformers的示例:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer('intfloat/e5-base-unsupervised')
input_texts = [
'query: 女性每日应摄入多少蛋白质',
'query: 峰会定义',
"passage: 根据CDC的普遍建议,19至70岁女性每日平均蛋白质需求量为46克...(略)",
"passage: 峰会定义(英语学习者版):1 山脉最高点...(略)"
]
embeddings = model.encode(input_texts, normalize_embeddings=True)
安装要求:
pip install sentence_transformers~=2.2.2
贡献者:michaelfeil
常见问题
1. 是否必须在输入文本前添加"query: "和"passage: "前缀?
是的,这是模型的训练方式,否则会导致性能下降。
使用建议:
- 非对称任务(如开放QA中的段落检索)对应使用"query: "和"passage: "
- 对称任务(如语义相似度)统一使用"query: "
- 特征提取场景(如线性分类)统一使用"query: "
2. 复现结果与模型卡报告存在细微差异?
不同版本的transformers
和pytorch
可能造成微小差异。
引用
若论文或模型对您有帮助,请引用:
@article{wang2022text,
title={Text Embeddings by Weakly-Supervised Contrastive Pre-training},
author={Wang, Liang and Yang, Nan and Huang, Xiaolong and Jiao, Binxing and Yang, Linjun and Jiang, Daxin and Majumder, Rangan and Wei, Furu},
journal={arXiv preprint arXiv:2212.03533},
year={2022}
}
局限性
本模型仅适用于英文文本。长文本会被截断至最多512个标记。