multilingual-e5-large
intfloat
feature-extraction
sentence-transformers
multilingual
af
am
intfloat/multilingual-e5-large
7,220,932
下载量
1188
收藏数
21
浏览量
mit
许可
简介
多语言E5文本嵌入:技术报告。 王亮、杨楠、黄小龙、杨林军、Rangan Majumder、韦福如,arXiv 2024
模型卡片
许可协议
mit
语言
multilingual
af
am
ar
as
az
be
bg
bn
br
bs
ca
cs
cy
da
de
el
en
eo
es
et
eu
fa
fi
fr
fy
ga
gd
gl
gu
ha
he
hi
hr
hu
hy
id
is
it
ja
jv
ka
kk
km
kn
ko
ku
ky
la
lo
lt
lv
mg
mk
ml
mn
mr
ms
my
ne
nl
no
om
or
pa
pl
ps
pt
ro
ru
sa
sd
si
sk
sl
so
sq
sr
su
sv
sw
ta
te
th
tl
tr
ug
uk
ur
uz
vi
xh
yi
zh
mteb
Sentence Transformers
sentence-similarity
feature-extraction
sentence-transformers
模型配置
模型类型
xlm-roberta
架构
XLMRobertaModel
模型详情
已翻译Multilingual-E5-large
Multilingual E5 Text Embeddings: A Technical Report
Liang Wang, Nan Yang, Xiaolong Huang, Linjun Yang, Rangan Majumder, Furu Wei, arXiv 2024
该模型包含 24 层,embedding 大小为 1024。
使用方法
以下是一个示例,展示如何对 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]
# Each input text should start with "query: " or "passage: ", even for non-English texts.
# For tasks other than retrieval, you can simply use the "query: " prefix.
input_texts = ['query: how much protein should a female eat',
'query: 南瓜的家常做法',
"passage: As a general guideline, the CDC's average requirement of protein for women ages 19 to 70 is 46 grams per day. But, as you can see from this chart, you'll need to increase that if you're expecting or training for a marathon. Check out the chart below to see how much protein you should be eating each day.",
"passage: 1.清炒南瓜丝 原料:嫩南瓜半个 调料:葱、盐、白糖、鸡精 做法: 1、南瓜用刀薄薄的削去表面一层皮,用勺子刮去瓤 2、擦成细丝(没有擦菜板就用刀慢慢切成细丝) 3、锅烧热放油,入葱花煸出香味 4、入南瓜丝快速翻炒一分钟左右,放盐、一点白糖和鸡精调味出锅 2.香葱炒南瓜 原料:南瓜1只 调料:香葱、蒜末、橄榄油、盐 做法: 1、将南瓜去皮,切成片 2、油锅8成热后,将蒜末放入爆香 3、爆香后,将南瓜片放入,翻炒 4、在翻炒的同时,可以不时地往锅里加水,但不要太多 5、放入盐,炒匀 6、南瓜差不多软和绵了之后,就可以关火 7、撒入香葱,即可出锅"]
tokenizer = AutoTokenizer.from_pretrained('intfloat/multilingual-e5-large')
model = AutoModel.from_pretrained('intfloat/multilingual-e5-large')
# Tokenize the input texts
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'])
# normalize embeddings
embeddings = F.normalize(embeddings, p=2, dim=1)
scores = (embeddings[:2] @ embeddings[2:].T) * 100
print(scores.tolist())
支持的语言
该模型基于 xlm-roberta-large 初始化,
并在多语言数据集的混合数据上持续训练。
它支持 xlm-roberta 中的 100 种语言,
但低资源语言可能会出现性能下降。
训练细节
第一阶段:弱监督对比预训练
| 数据集 | 弱监督方式 | 文本对数量 |
|---|---|---|
| 过滤后的 mC4 | (标题, 页面内容) | 1B |
| CC News | (标题, 新闻内容) | 400M |
| NLLB | 翻译对 | 2.4B |
| Wikipedia | (层级章节标题, 段落) | 150M |
| 过滤后的 Reddit | (评论, 回复) | 800M |
| S2ORC | (标题, 摘要) 和引用对 | 100M |
| Stackexchange | (问题, 回答) | 50M |
| xP3 | (输入提示, 回复) | 80M |
| 其他无监督 SBERT 数据 | - | 10M |
第二阶段:有监督微调
| 数据集 | 语言 | 文本对数量 |
|---|---|---|
| MS MARCO | 英语 | 500k |
| NQ | 英语 | 70k |
| Trivia QA | 英语 | 60k |
| 来自 SimCSE 的 NLI | 英语 | <300k |
| ELI5 | 英语 | 500k |
| DuReader Retrieval | 中文 | 86k |
| KILT Fever | 英语 | 70k |
| KILT HotpotQA | 英语 | 70k |
| SQuAD | 英语 | 87k |
| Quora | 英语 | 150k |
| Mr. TyDi | 11 种语言 | 50k |
| MIRACL | 16 种语言 | 40k |
对于所有带标签的数据集,我们仅使用其训练集进行微调。
关于其他训练细节,请参考我们的论文:https://arxiv.org/pdf/2402.05672
Mr. TyDi 上的基准测试结果
| 模型 | 平均 MRR@10 | | ar | bn | en | fi | id | ja | ko | ru | sw | te | th |
|-----------------------|------------|-------|------| --- | --- | --- | --- | --- | --- |
正在翻译中,请稍候...
标签
onnx
openvino
xlm-roberta
mteb
Sentence Transformers
sentence-similarity
multilingual
af
操作
详细信息
- 厂商
- intfloat
- 任务
- feature-extraction
- 框架
- sentence-transformers
- 模型类型
- xlm-roberta
- 许可(HF)
- mit
- 语言
- multilingual, af, am, ar, as, az, be, bg, bn, br, bs, ca, cs, cy, da, de, el, en, eo, es, et, eu, fa, fi, fr, fy, ga, gd, gl, gu, ha, he, hi, hr, hu, hy, id, is, it, ja, jv, ka, kk, km, kn, ko, ku, ky, la, lo, lt, lv, mg, mk, ml, mn, mr, ms, my, ne, nl, no, om, or, pa, pl, ps, pt, ro, ru, sa, sd, si, sk, sl, so, sq, sr, su, sv, sw, ta, te, th, tl, tr, ug, uk, ur, uz, vi, xh, yi, zh