【LLM论文日更】| BGE-M3E embedding模型

news2024/12/23 17:34:38

  • 论文:https://arxiv.org/pdf/2402.03216
  • 代码:GitHub - FlagOpen/FlagEmbedding: Retrieval and Retrieval-augmented LLMs
  • 机构:BAAI
  • 领域:embedding model
  • 发表

研究背景

  1. 研究问题:这篇文章要解决的问题是如何设计一种多语言、多功能、多粒度的文本嵌入模型,以支持超过100种工作语言的语义检索,并能同时完成密集检索、多向量检索和稀疏检索等多种检索功能。
  2. 研究难点:该问题的研究难点包括:现有方法在多语言支持、多功能集成和长文档处理方面的局限性;如何在训练过程中有效地整合不同检索功能的相关性分数;如何优化批处理策略以提高嵌入的判别力。
  3. 相关工作:该问题的研究相关工作包括预训练语言模型的发展、对比学习的进步以及多功能嵌入模型的探索,如Contriever、LLM-Embedder、E5、BGE、SGPT和Open Text Embedding等。

研究方法

这篇论文提出了M3-Embedding模型,用于解决多语言、多功能、多粒度文本嵌入的问题。具体来说,

  1. 数据收集与预处理:首先,从大规模的多语言语料库中提取无监督数据,并从标注语料库中收集相对较小但多样且高质量的微调数据。此外,通过合成稀缺的长文档检索任务数据来补充数据集。
  2. 混合检索:M3-Embedding统一了文本嵌入模型的常见检索功能,包括密集检索、词汇(稀疏)检索和多向量检索。其公式如下:
    • 密集检索:使用特殊标记"[CLS]"的隐藏状态表示查询,计算查询和段落嵌入的内积。
    • 词汇检索:计算查询中每个词的重要性权重,基于共现词的重要性计算查询和段落的相关性分数。
    • 多向量检索:利用整个输出嵌入表示查询和段落,使用晚期交互计算细粒度的相关性分数。
    • 最终的综合相关性分数:

      w1,w2,w3 的值取决于下游场景。
  3. 自知识蒸馏:提出了一种新的自知识蒸馏框架,将不同检索功能的相关性分数作为教师信号,增强学习过程。具体公式如下:
    • 原始损失函数:
    • 综合损失函数:
    • 最终的自知识蒸馏损失函数:
  4. 高效批处理:通过优化批处理策略,实现大批量和高效训练。具体方法包括按序列长度分组数据、使用梯度检查点技术以及跨GPU广播。

实验设计

  1. 数据收集:从多个来源收集大规模的多语言数据,包括无监督数据、标注数据和合成数据。无监督数据来自维基百科、S2ORC、xP3、mC4和CC-News等语料库;标注数据来自HotpotQA、TriviaQA、NQ、MS MARCO、COL-IEE、PubMedQA、SQuAD和SimCSE等数据集;合成数据通过采样维基百科、Wudao和mC4中的长篇文章并生成问题。
  2. 实验设置:采用XLM-RoBERTa作为基础模型,扩展最大位置到8192,并通过RetroMAE方法进行预训练。预训练数据包括Pile、Wudao和mC4数据集,共覆盖105种语言。微调阶段使用7个负样本进行训练,初始阶段进行约6000步的预热训练,随后进行统一的自知识蒸馏训练。

结果与分析

  1. 多语言检索:在MIRACL数据集上的实验结果表明,M3-Embedding在仅使用密集检索功能时,已经优于其他基线方法。稀疏检索和多向量检索进一步提升了性能,最终的综合检索方法(All)表现最佳。

  2. 跨语言检索:在Mrowka数据集上的实验结果显示,M3-Embedding在仅使用密集检索功能时,也显著优于其他基线方法。不同检索方法的结合进一步提升了跨语言检索的性能。

  3. 多语言长文档检索:在MLDR和NarrativeQA数据集上的实验结果表明,M3-Embedding在长文档检索任务中表现出色,尤其是稀疏检索方法(Sparse)和多向量检索方法(Multi-vec)。

  4. 消融研究:自知识蒸馏和多阶段训练的消融实验表明,自知识蒸馏显著提高了稀疏检索的性能,多阶段训练则进一步提升了整体检索质量。

总体结论

这篇论文提出的M3-Embedding模型在多语言检索、跨语言检索和多语言长文档检索任务中表现出色,展现了前所未有的多功能性和高效性。通过自知识蒸馏、高效批处理和高质数据预处理,M3-Embedding实现了优越的检索性能,并为未来的文本嵌入研究和应用提供了重要的资源。

论文评价

优点与创新

  1. 多语言支持:M3-Embedding能够支持超过100种工作语言,实现了跨语言的多语言检索和跨语言的检索。
  2. 多功能性:该模型不仅支持密集检索,还能进行稀疏检索和多向量检索,满足了不同的检索需求。
  3. 多粒度处理:M3-Embedding能够处理从短句子到长达8192个词的文档,适应了不同长度的输入数据。
  4. 自知识蒸馏:提出了一种新的自知识蒸馏方法,通过将不同检索功能的相关性分数作为教师信号来增强训练质量。
  5. 高效的批处理策略:优化了批处理策略,实现了大批次和高吞吐量训练,提高了嵌入的判别力。
  6. 高质量的数据集:进行了广泛且高质量的数据收集和整理,包括无监督数据、标注数据的微调和合成数据的生成。
  7. 实验验证:在多个多语言、跨语言和长文档检索基准上取得了最新的实验结果。

不足与反思

  1. 泛化能力:尽管在MIRACL和 MKVQA等流行的多语言和跨语言基准上取得了最新的实验结果,但该方法在不同数据集和实际场景中的泛化能力需要进一步研究。
  2. 长文档处理:虽然M3-Embedding能够处理长达8192个词的文档,但在处理极长文档时可能会面临计算资源和模型效率的挑战。对于超过指定标记限制的长文档或文档的性能需要进一步研究。
  3. 语言性能差异:虽然M3-Embedding声称支持超过100种工作语言,但对不同语言性能的潜在变化没有进行深入的讨论。需要在更广泛的范围内对更多语言进行分析和评估,以理解模型在不同语言家族和语言特征下的鲁棒性和有效性。

关键问题及回答

问题1:M3-Embedding模型在数据收集与预处理方面有哪些具体的策略?

  1. 无监督数据:从大规模的多语言语料库中提取无监督数据,包括维基百科、S2ORC、xP3、mC4和CC-News等语料库。这些数据被用来提取丰富的语义结构,如标题-正文、标题-摘要、指令-输出等。
  2. 标注数据:从多个标注数据集中收集相对较小但多样且高质量的微调数据。对于英语,使用了HotpotQA、TriviaQA、NQ、MS MARCO、COL-IEE、PubMedQA、SQuAD和SimCSE等数据集;对于中文,使用了DuReader、mMARCO-ZH、T2-Ranking、LawGPT、CMedQAv2、NLI-zh2和LeCaRDv2等数据集;对于其他语言,使用了Mr.TyDi和MIRACL等数据集。
  3. 合成数据:通过采样维基百科、Wudao和mC4中的长篇文章并生成问题,以补充长文档检索任务的稀缺数据。具体方法是随机选择段落并使用GPT-3.5生成问题,生成的问题和采样的文章构成新的文本对用于微调数据。

问题2:M3-Embedding模型如何实现混合检索功能,并且如何计算最终的综合相关性分数?

M3-Embedding模型实现了三种常见的检索功能:密集检索、词汇(稀疏)检索和多向量检索。具体实现方式如下:

  1. 密集检索:使用特殊标记"[CLS]"的隐藏状态表示查询,计算查询和段落嵌入的内积。公式如下:
  2. 词汇检索:计算查询中每个词的重要性权重,基于共现词的重要性计算查询和段落的相关性分数。公式如下:
  3. 多向量检索:利用整个输出嵌入表示查询和段落,使用晚期交互计算细粒度的相关性分数。公式如下:

问题3:M3-Embedding模型在自知识蒸馏方面有哪些创新,这些创新如何提高模型的性能?

这些创新使得不同检索功能的相关性分数可以相互补充,增强了模型的泛化能力和学习效果,特别是在稀疏检索方面表现尤为显著。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AI时代大厂AI项目管理学习路线

AI时代避免被裁员,大厂AI项目管理学习路线主要包括: 1、AI项目管理基础技能。 2、项目管理AI技术知识。 3、数据分析与决策。 4、AI项目管理工具。 5、AI项目管理知识扩展。 01 AI项目管理基础技能。 AI项目管理基础技能构成了项目管理的骨架&…

SQL 干货 | 使用 EXISTS 编写 SELECT 查询

基于 SQL 中的 EXISTS 运算符为我们提供了一种基于其他数据是否存在(或不存在)来检索数据的简便方法。更具体地说,它是一个逻辑运算符,用于评估子查询的结果,并返回一个布尔值,该值指示是否返回了行。尽管 …

《用comfyUI挑战全网AI图片产品实践案例》之comfyUI抠图工作流,用免费打败收费,实现素材自由

近段时间AI非常的火。目前有很多软件已经拥抱了AI,加入了AI的一些功能。像AI绘画的功能,基本上是每个大厂的软件产品都会配备。但是呢,这些功能都是要付费的。而且是按月收费或者是按年收费。整体算下来十分的不划算。所以我尝试用stable dif…

基础岛 第3关 :浦语提示词工程实践

作业 基础任务 (完成此任务即完成闯关) 背景问题&#xff1a;近期相关研究发现&#xff0c;LLM在对比浮点数字时表现不佳&#xff0c;经验证&#xff0c;internlm2-chat-1.8b (internlm2-chat-7b)也存在这一问题&#xff0c;例如认为13.8<13.11。 任务要求&#xff1a;利用…

嵌入式面试——FreeRTOS篇(五) 事件标志组

本篇为&#xff1a;FreeRTOS事件标志组篇 1、事件标志组介绍 答&#xff1a; 事件标志位&#xff1a;用一个位&#xff0c;来表示事件是否发生。 事件标志组是一组事件标志位的合集&#xff0c;可以简单的理解事件标志组&#xff0c;就是一个整数。 2、事件标志组的特点 答&am…

R包:APAlyzer从RNA-seq数据计算APA表达丰度

文章目录 介绍教程实战案例数据脚本运行 介绍 今天安利APAlyzer工具&#xff0c;它是通过RNA-seq数据获取3′UTR APA, intronic APA等表达谱的R包。 APAlyzer将bam文件比对到PolyA-DB数据库识别APA。 Most eukaryotic genes produce alternative polyadenylation (APA) isofo…

App推广新利器:Xinstall带你直达指定页面

在移动互联网时代&#xff0c;App的推广与运营对于企业的发展至关重要。然而&#xff0c;如何让用户在推广过程中更便捷地访问到App内的指定页面&#xff0c;一直是困扰开发者和运营者的难题。今天&#xff0c;我们就来介绍一款名为Xinstall的SDK&#xff0c;它能帮助你轻松实现…

Python中10个让你代码更安全的网络请求处理技巧

对Python感兴趣&#xff0c;想要有更深入了解的朋友可以试试我的这份学习方法和资料&#xff0c;​​​​​点这里免费获取 引言 在 Python 网络编程中&#xff0c;使用 requests 库进行 HTTP 请求是一种常见且高效的方式。该库不仅提供了简洁易用的 API&#xff0c;还支持多…

3分钟理清QPS、TPS、RT 以及它们之间的关系

在评估系统性能的时候&#xff0c;我们经常会听到 QPS、TPS、RT、吞吐量等等一些概念&#xff0c;包括在一些面试场景下可能也会遇到这些概念&#xff0c;我们来稍微梳理一下。 做一个简单的概念扫盲。 一 QPS QPS&#xff08;Queries Per Second&#xff09; 是每秒的查询率…

上市四天暴涨又暴跌,扫描全能王背后公司坐上“过山车”

股价四天涨五倍&#xff0c;遇到回调跌一半&#xff0c;扫描全能王母公司——合合信息&#xff0c;一上市就坐上了“过山车”。 合合信息其实早在2021年就向科创板申请上市&#xff0c;并在2023年成功过会&#xff0c;但直到9月13日才开启申购&#xff0c;IPO之路一走就是三年…

使用DBeaver(通用数据库管理工具)连接人大金仓数据库

下载安装DBeaver 下载地址&#xff1a; Download | DBeaver Community 官方甚至提供了&#xff08;解压即可用的&#xff09;免安装绿色版 3、下载人大金仓数据库的JDBC驱动 下载地址&#xff1a;电科金仓-成为世界卓越的数据库产品与服务提供商 数据库驱动管理 创建新驱动 配…

【Vue3 + TS + Vite】从0到1搭建项目框架

前言 没搭建过Vue3的项目&#xff0c;从0开始搭建一下&#xff0c;记录一下自己的步骤。 技术栈&#xff1a; vue3 ts scss pinia vite 我尽量写的详细一些&#xff0c;后续也会记录我在项目过程中&#xff0c;遇到的一些问题。 文章目录 前言环境搭建一、创建项目1. 使用…

JUC-线程池

阻塞队列 概述和架构 分类和核心方法 这里是在讲 为了区分在不同场景下 调用的不同组实现方法 核心方法演示 package com.example.juc.queue;import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.BlockingQueue; import java.util.concurrent.Tim…

数据结构哈夫曼树-哈夫曼树代码构造实现(C语言)

#define _CRT_SECURE_NO_WARNINGS 1 #include<stdlib.h> #include<stdio.h> #define N 30 //叶子结点的最大值 #define M 2*N-1 // 结点总数 typedef struct HTNode {int weight;int parent;int Lchild;int Rchild;int flag; }HTNode,HuffmanTree[M1];//Huffman…

2024年腾讯外包面试题(微创公司)

笔试&#xff1a; 1、判断异步执行顺序console.log(1);setTimeout(()>{Promise.resolve().then(()>{console.log(2);})console.log(3);},0);new Promise ((resolve)>{for(let i0; i<1000;i ){if(i1000){resolve();}}console.log(4);}).then(()>{console.log(5);…

不用PS!patchwork快速解决多子图组合问题~~

如果现在你还是将自己制作的图表放在PS或者PPT中进行随意组合的化&#xff0c;那么这篇文章你就得好好看看了&#xff0c;今天小编就给大家安利一个超强的突变自由组合包-patchwork&#xff0c;让你轻松实现多图的自由组合。 更多详细的数据可视化教程&#xff0c;可订阅我们的…

粗糙表面仿真和处理软件

首款基于粗糙表面的仿真和处理软件&#xff0c;该软件具有三种方法&#xff0c;主要是二维数字滤波法&#xff0c;相位频谱法和共轭梯度法。可以分别仿真具有高斯和非高斯分布的粗糙表面&#xff0c;其中非高斯表面利用Johnson转换系统进行变换给定偏度和峰度。对生成的粗糙表面…

怎么把视频转换成音频?深受大家喜欢的6个转换方法

怎么把视频转换成音频&#xff1f;在这个数字化迅速发展的时代&#xff0c;视频和音频已经成为我们生活中不可或缺的一部分。我们通过各种平台观看电影、听音乐、学习知识&#xff0c;视频内容承载着丰富的信息和情感。然而&#xff0c;有时候我们并不需要画面&#xff0c;而仅…

SpringBoot美发门店系统:智能库存管理

3系统分析 3.1可行性分析 通过对本美发门店管理系统实行的目的初步调查和分析&#xff0c;提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本美发门店管理系统采用SSM框架&#xff0c;JAVA作为开发语…

JavaScript 常量/数据类型/类型转换 简单学习

目录 1. 常量 1.1 常量概述 1.2 案例 1.3 总结 2. 数据类型 2.1 概述 2.2 分类 2.2.1 基本数据类型 2.2.1 基本数据类型——number (数值/字型) 2.2.1 数字型——算术运算符 2.2.1 基本数据类型——String (字符串类型) 2.2.1 字符串拼接 2.2.1 模板字符串 2.2.1…