预训练模型语义相似性计算(十一) - M3E和BGE

M3E

m3e由MokaAI 训练,开源和评测。

m3e的详细介绍可以看官方的github介绍。本文简要摘录其中一些点,以便后续的应用。

1.千万级 (2200w+) 的中文句对数据(开源)。

2.支持同质相似句计算(s2s)和异质检索(s2p),后续支持代码检索。

3.m3e基座模型为roberta,支持微调。

C-Pack

bge由北京智源人工智能研究院发布。

论文:C-Pack: Packed Resources For General Chinese Embeddings

论文推出了一个中文的嵌入资源包c-pack。

其中包括了:

1.C-MTP,一个大型的文本嵌入训练集,包括了大量的非监督语料库和高质量标注的有监督语料库。

2.C-MTEB,一个涵盖6个任务和35个数据的中文文本嵌入基准。

3.BGE,多尺寸的文本嵌入模型。

所有资源:GitHub - FlagOpen/FlagEmbedding: Retrieval and Retrieval-augmented LLMs

C-MTEB和C-MTP的数据组成和BGE的三阶段训练流程如下图所示:

BGE

1,预训练,在大规模高质量中文语料上进行预训练,预训练方法为MAE风格的**RetroMAE** 。

2.通用微调,在C-MTP无监督语料下进行对比学习,没有特意挖掘负样本,而是以来批次内负样本,并通过增大批次从而增加嵌入的判别性。

3.特定任务微调,在C-MTP有监督语料下训练,有监督语料量少但是质量高,为了缓解语料任务之间的矛盾,微调使用指令微调。另外,除了批内负样本外,还为每个文本对挖掘一个硬负样本(ANCE)

BGE-m3

论文:BGE M3-Embedding: Multi-Lingual, Multi-Functionality, Multi-Granularity Text Embeddings Through Self-Knowledge Distillation

模型特点:

1.多语言:支持超过100种语言

2.多粒度:不同粒度的输入,最多8192个token

3.多功能:密集检索,多向量检索,稀疏检索

技术贡献:

1.自我知识蒸馏方法,其中来自不同检索功能的相关性分数可以集成为教师信号以提高训练质量。2.优化了批处理策略,实现了大批量和高训练吞吐量,以确保嵌入的判别性。

混合检索

密集检索

使用[cls]表示query向量,内积表示相关性

词汇(稀疏)检索

使用公共token的权重表示相关性

多向量检索

query和passage token之间计算相关性 colBERT https://www.bilibili.com/read/cv33838680/

自我知识蒸馏

训练过程

第一步 使用密集检索的损失在无监督数据上进行对比学习。

第二部 在有监督语料上使用自我知识蒸馏训练。

自我知识蒸馏过程:

1.混合检索损失 = 密集检索损失 + 稀疏检索损失 + 多向量检索

2.使用混合检索的损失作为教师模型监督信号,其中任何一个检索方式的得分作为学生模型。

3.最后将蒸馏损失和混合检索损失作为最后的损失。

训练流程优化

根据文本长度采样,确保一个batch内文本长度相对相似,从而减少填充。

将一批数据分成多个小批。对于每个小批,我们利用模型编码文本,收集输出的向量同时丢弃所有前向传播中的中间状态,最后汇总向量计算损失。

长文本优化

MCLS(Multiple CLS):为每个固定数量的token插入一个cls token,每个cls token可以从相邻的token获取语义信息。最后,通过对所有cls token的最后隐藏状态求平均值来获得最终的文本嵌入。

注:BGE中其他的方法(RetroMAE、ANCE等)在BGE-M3中仍然使用。

相关推荐
网安-搬运工41 分钟前
RAG再总结之如何使大模型更好使用外部数据:四个不同层级及查询-文档对齐策略
人工智能·自然语言处理·大模型·llm·大语言模型·ai大模型·rag
大模型八哥42 分钟前
大模型扫盲系列——大模型实用技术介绍(上)
人工智能·程序人生·ai·大模型·llm·llama·ai大模型
被制作时长两年半的个人练习生1 小时前
【pytorch】权重为0的情况
人工智能·pytorch·深度学习
xiandong208 小时前
240929-CGAN条件生成对抗网络
图像处理·人工智能·深度学习·神经网络·生成对抗网络·计算机视觉
innutritious9 小时前
车辆重识别(2020NIPS去噪扩散概率模型)论文阅读2024/9/27
人工智能·深度学习·计算机视觉
醒了就刷牙10 小时前
56 门控循环单元(GRU)_by《李沐:动手学深度学习v2》pytorch版
pytorch·深度学习·gru
橙子小哥的代码世界10 小时前
【深度学习】05-RNN循环神经网络-02- RNN循环神经网络的发展历史与演化趋势/LSTM/GRU/Transformer
人工智能·pytorch·rnn·深度学习·神经网络·lstm·transformer
985小水博一枚呀11 小时前
【深度学习基础模型】神经图灵机(Neural Turing Machines, NTM)详细理解并附实现代码。
人工智能·python·rnn·深度学习·lstm·ntm
SEU-WYL12 小时前
基于深度学习的任务序列中的快速适应
人工智能·深度学习
OCR_wintone42113 小时前
中安未来 OCR—— 开启文字识别新时代
人工智能·深度学习·ocr