本文主要是介绍文本向量评测MTEB和C-MTEB,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 简介
- MTEB
- C-MTEB
- 参考资料
简介
MTEB(Massive Text Embedding Benchmark)是目前评测文本向量很重要的一个参考,其榜单也是各大文本向量模型用来展示与其他向量模型强弱的一个竞技台。
C-MTEB则是专门针对中文文本向量的评测基准。
MTEB
MTEB的目的是为了评估向量模型在不同向量任务上的表现,希望作为寻找适用于不同任务的通用文本向量的入口。在论文里说包括涵盖112种语言的58个数据集,针对如下8种任务:
- Bitext mining
- classification
- clustering
- pair classification
- reranking
- retrieval
- STS
- summarization
在记录的此刻,MTEB的榜单上写的支持的数据集是150个、语言是113种
在论文里作者们说在评测了30多个模型后,发现没有任何一个模型能够在全部任务上占据优势,即使在记录的2024年3月榜单上也没有一个模型能在所有任务上都排名第一。
MTEB基于如下需求构建:
- 多样性Diversity,涵盖不同的任务、不同的语言、句子级别和篇章级别的数据集
- 简单易用Simpilicity, 提供一个API可以应用于不同的模型
- 可扩展性Extensibility,新数据集很容易加入到基准中
- 可复现性Reproducibility,给数据集和软件添加版本使得很容易复现评测结果
上图展示了基准中包括的8类任务对应的数据集。任务描述详情如下:
- Bitext mining,输入是来自两种不同语言的两个句子集,对于来自第一个句子集的句子,找到在第二个子集中最匹配的句子。模型将句子编码成向量后用余弦相似度来寻找最相似的句子对。F1是主要的评估指标、Accuracy、precision、recall也一并计算了。
- classification,训练集和测试集通过给定模型编码,测试集向量被用来训练一个LR分类器(最多100次迭代),然后使用测试集来打分,主要评估指标是accuracy with average precision,同时包括F1。
- clustering,给定句子集或段落集,将其分组为有意义的簇。在编码后的文档上训练一个 mini-batch k-means 模型(batch size为32, k是不同标签的个数),然后使用v-meature为模型打分。
- pair classification,输入是一对带标签的文本,两个文本被编码后计算多种距离:cosine similarity, dot product, euclidean distance, manhattan distance。接着使用最佳阈值来计算accuracy, average precision, f1, precision, recall。基于余弦相似度的平均精度是主要指标。
- reranking,输入是一个查询语句以及一个包含相关和不相关文本的列表。模型编码文本后比较与查询语句的余弦相似性。每个查询语句的分数都被计算并平均所有查询语句的分数。指标有平均 M R R @ k MRR@k MRR@k和MAP(主要指标)
- retrieval,每个数据集包括一个语料集,查询语句及其与语料中的相关文档的映射。模型编码所有查询语句和语料文档之后计算余弦相似度,对每一个查询语句的结果排序后计算k的多个取值所对应的nDCG@k, MRR@k, MAP@k, precision@k , recall@k。使用BEIR相同的设置,nDCG@10是主要指标。
- STS ,给定句子对计算它们的相似度,标签是连续得分(越大相似度越高)。模型编码句子后计算使用不同的距离指标计算它们的相似性,计算好的距离与标签相似度基准比较Pearson和Spearman相关性。主要指标是基于余弦相似度的Spearman相关性。
- summarization,包括一个手写摘要和机器生成摘要数据集,目标是给机器生成摘要打分。模型编码所有摘要,然后对于每一个机器生成摘要向量,计算其与所有手写摘要向量的距离,将相似度最大的分数作为单个机器生成摘要的分数,接下来与基准比较计算Pearson和Spearman相关性。主要指标是基于余弦相似度的Spearman相关性。
MTEB中的数据集可以归为三类:
- Sentence to sentence(S2S)
- Paragraph to paragraph (P2P)
- Sentence to paragraph (S2P)
C-MTEB
C-MTEB是为了评估中文文本向量,共收集了如上图所示的35个公共数据集,一共分为6类的评估任务:
- retrieval,包括查询语句和语料库,对于每个查询,从语料库中查询最相似的top-k个文档,使用BEIR相同的设置,nDCG@10是主要指标。
- re-ranking,包括查询语句和候选文档集(一个正样本和N个负样本),基于向量相似性来重排序,MAP是主要指标。
- STS (semantic textual similarity),基于向量相似度比较两个句子的相关性,计算了Spearman 相关性并作为主要指标。
- classification,与MTEB一样。
- pair classification,比较一对句子的相似性,使用平均精度作为主要指标。
- clustering,评测方法与MTEB一样。
向量在每个任务上的表现是对应任务下所有数据集的平均指标来决定,而向量整体性能是所有数据集的平均值决定的。
参考资料
- MTEB github 和 MTEB huggingface 榜单 和MTEB对应的论文)
- C-MTEB 对应的论文
这篇关于文本向量评测MTEB和C-MTEB的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!