文本向量评测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一样。

向量在每个任务上的表现是对应任务下所有数据集的平均指标来决定,而向量整体性能是所有数据集的平均值决定的。

参考资料

  1. MTEB github 和 MTEB huggingface 榜单 和MTEB对应的论文)
  2. C-MTEB 对应的论文

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/274089.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OKLink2月安全月报| 2起典型漏洞攻击案例分析

在本月初我们发布的2024年2月安全月报中提到,2月全网累计造成损失约1.03亿美元。其中钓鱼诈骗事件损失占比11.76%。 OKLink提醒大家,在参与Web3项目时,应当仔细调研项目的真实性、可靠性,提升对钓鱼网站和风险项目的甄别能力&…

C语言从入门到熟悉------第二阶段

printf的用法 printf的格式有四种: (1)printf("字符串\n"); 其中\n表示换行的意思。其中n是“new line”的缩写,即“新的一行”。此外需要注意的是,printf中的双引号和后面的分号必须是在英文输入法下。双引…

portainer管理远程docker和docker-swarm集群

使用前请先安装docker和docker-compose,同时完成docker-swarm集群初始化 一、portainer-ce部署 部署portainer-ce实时管理本机docker,使用docker-compose一键拉起 docker-compose.yml version: 3 services:portainer:container_name: portainer#imag…

[机器视觉]halcon应用实例 找圆

[机器视觉]halcon应用实例 找圆 代码 *清空屏幕,显示控制图像 dev_close_window () dev_update_off () read_image (Image, 形状模板图) dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle) dev_display (Image) *创建测量模型 create_metrology_mod…

AD20新建工程步骤

1 新建工程 2 创建 3 新建原理图 4 新建PCB图 5 对原理图贺PCB都进行保存 6 新建原理图库贺PCB库,以及保存 最后在保存位置上都可以看到 打开的时候直接打开工程,它自己就会把这些链接在一起

UVa11595 Crossing Streets EXTREME

题目链接 UVa11595 - Crossing Streets EXTREME 题意 平面上有 n(n≤35)条直线,各代表一条街道。街道相互交叉,形成一些路段(对应于几何上的线段)。你的任务是设计一条从A到B的路线,使得穿过路…

c++: 引用能否替代指针? 详解引用与指针的区别.

文章目录 前言1. 引用和指针的最大区别:引用不能改变指向2. 引用和指针在底层上面是一样的3. 引用和指针在sizeof面前大小不同4. 有多级指针,没有多级引用5.引用是引用的实体,指针会向后偏移同一个类型的大小 总结 前言 新来的小伙伴如果不知道引用是什么?可以看我的上一篇文…

AI新工具(20240312) Midjourney官方发布角色一致性功能;免费且开源的简历制作工具;精确克隆语调、控制声音风格

1: Midjourney角色一致性功能 使人物画像在多方面高度一致成为可能。 Midjourney的角色一致性功能的使用方法如下: ⭐在你的输入指令后面加上 --cref URL,其中URL是你选择的角色图像的链接。 ⭐你可以通过 --cw 参数来调整参照的强度,范围…

spring boot 使用 webservice

spring boot 使用 webservice 使用 java 自带的 jax-ws 依赖 如果是jdk1.8,不需要引入任何依赖&#xff0c;如果大于1.8 <dependency><groupId>javax.jws</groupId><artifactId>javax.jws-api</artifactId><version>1.1</version&g…

【Linux】文件缓冲区|理解文件系统

目录 预备知识 观察现象 第一&#xff1a;携带\n&#xff0c;不使用fork()&#xff0c;打印到显示器 第二&#xff1a;携带\n&#xff0c;使用fork()&#xff0c;打印到显示器 第三&#xff1a;携带\n&#xff0c;使用fork()&#xff0c;打印到文件里 第四&#xff1a;不携…

案例分析篇03:一篇文章搞定软考设计模式考点(2024年软考高级系统架构设计师冲刺知识点总结系列文章)

专栏系列文章推荐: 2024高级系统架构设计师备考资料(高频考点&真题&经验)https://blog.csdn.net/seeker1994/category_12593400.html 【历年案例分析真题考点汇总】与【专栏文章案例分析高频考点目录】(2024年软考高级系统架构设计师冲刺知识点总结-案例分析篇-…

IPSec NAT穿越原理

一、IPSec VPN在NAT场景中存在的问题 当某些组网中&#xff0c;有的分支连动态的公网IP地址也没有&#xff0c;只能由网络中的NAT设备进行地址转换&#xff0c;才能访问互联网&#xff0c;然而IPsec是用来保护报文不被修改的&#xff0c;而NAT需要修改报文的IP地址&#xff0c…

十大排序算法(冒泡排序、插入排序、选择排序、希尔排序、堆排序、快排、归并排序、桶排序、计数排序、基数排序)

目录 一、冒泡排序&#xff1a; 二、插入排序&#xff1a; 三、选择排序&#xff1a; 四、希尔排序&#xff1a; 五、堆排序&#xff1a; 六、快速排序&#xff1a; 6.1挖坑法&#xff1a; 6.2左右指针法 6.3前后指针法&#xff1a; 七、归并排序&#xff1a; 八、桶…

力扣hot100:240.搜索二维矩阵II(脑子)

吉大21级算法分析与设计的一道大题&#xff0c;由于每一行都是排好序的直接逐行二分 可以达到&#xff1a;O(mlogn)。但是这里追求更广的思路可以使用其他方法。 矩阵四分&#xff1a; 在矩阵中用中心点比较&#xff0c;如果target大于中心点的值&#xff0c;则由于升序排列&am…

vue学习笔记23-组件事件⭐

组件事件 在组件的模板表达式中&#xff0c;可以直接使用$emit方法触发自定义事件&#xff1b;触发自定义事件的目的是组件之间传递数据 好好好今天又碰到问题了&#xff0c;来吧来吧 测试发现其他项目都可以 正常的run ,就它不行 搜索发现新建项目并进入以后&#xff0c;用指…

C语言--- 指针运算笔试题详解

目录 题目1&#xff1a; 题目2&#xff1a; 题目3&#xff1a; 题目4&#xff1a; 题目5&#xff1a; 题目6&#xff1a; 题目7&#xff1a; 题目1&#xff1a; #include <stdio.h> int main() {int a[5] { 1, 2, 3, 4, 5 };int *ptr (int *)(&a 1);print…

新书推荐|职业教育赛教一体化课程改革系列教材之spark大数据分析

由武汉唯众智创科技有限公司统一规划并参与编写的“职业教育赛教一体化课程改革系列教材”-《spark大数据分析》正式出版上线&#xff0c;(其它八本为《云计算技术与应用》《大数据技术与应用Ⅰ》《网络综合布线》《物联网.NET开发》《物联网嵌入式开发》《物联网移动应用开发》…

Cloud-Eureka服务治理-Ribbon负载均衡

构建Cloud父工程 父工程只做依赖版本管理 不引入依赖 pom.xml <packaging>pom</packaging><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.9.RELEA…

Request和Response对象

Request和Response都是Servlet的service方法的参数&#xff0c;Request负责获取请求数据&#xff0c;而Response负责设置相应数据~ 一.Request 1.继承体系 Tomcat负责解析数据&#xff0c;因此由Tomcat来提供实现类~ 2.获取请求数据 请求行 请求头 请求体 需要注意的是只有…

day1-C++

1>提示并输入一个字符串&#xff0c;统计该字符中大写、小写字母个数、数字个数、空格个数以及其他字符个数要求使用C风格字符串完成。 代码&#xff1a; #include <iostream> #include <string.h> using namespace std;int main() {string str ;int low 0, …