当前位置:   article > 正文

bge论文阅读_c-pack bge

c-pack bge

bge论文阅读

之前参加RAG+LLM比赛的时候,根据自身经验以及之前参加的比赛Top方案。主要采用以下Embedding模型进行向量召回: BGE,M3E, GTE。全部都是基于对比学习的方式。所以仔细的阅读了下关于BGE的这篇文章。 希望能够找到一些方法提升一下模型的效果吧。
C-Pack: Packaged Resources To Advance General Chinese Embedding(BAAI)
[图片]

摘要

作者推出C-Pack资源集合。该资源包包含三大核心组件:
C-MTEB提供了一个全面的评测基准,它整合了6项任务与35个数据集
C-MTP是一个精选的大规模中文文本嵌入数据集,来源于有标注和无标注的语料库。
C-TEM是一系列多样化规模的文本嵌入模型。
在这里插入图片描述
在这里插入图片描述

总体介绍

评估基准:C-MTEB

总共收集了35个公开数据集,所有这些数据 集都可用于评估中文text embedding。评估的任务有6个:检索、重排序、文本语义相 似度(STS)、分类、对分类和聚类。

训练数据:C-MTP(中文海量文本对,100亿)

包含unlabeled数据和labeled数据。

未标记数据:

数据来源:主要来源于开放的网络数据,最具有代表性的是Wudao corpus (Yuan et al., 2021),它是最大的用于预训练汉语语言模型的格式良好的数据集。 对于每篇文章,提取(标题,段落)以形成文本对。按照同样的方法,也从其他类 似的网页内容中收集这样的文本对,包括知乎、 百科、新闻网站等。除了开放的网络内容, 还探索了其他公开的中文数据集来抽取 文本对,如CSL(科学文献)、Amazon-ReviewZh(评论)、Wiki原子编辑(释义)、CMRC(机器
阅读理解)、XLSUM-Zh(摘要)等。
数据过滤:来自网络和其他公共资源的文本对不能保证密切相关。因此,数据质量是一个主要问
题。论文使用Text2Vec-Chinese过滤掉了阈值低于0.43的文本对

标记数据(83w对):

数据来源:收集了一些开源的标记数据集:T 2 - Ranking (Xie et al., 2023)、DuReader (He et al.,
2017; Qiu et al., 2022)、mMARCO (Bonifacio et al., 2021)、CMedQA-v2 (Zhang et al., 2018a)、
cpr (Long et al., 2022)、NLI-Zh 3、cmnli (Xu et al., 2020a)和ocnli (Xu et al., 2020a)。覆盖了text embedding的各种场景,检索、排序、相似度比较等。

模型类: C-TEM

模型有三种不同的尺度:large(具有326M参数),base(具有102M参数)和small(具有24M参数)。模型大小:参数量*4字节。
后面可以考虑做下量化。https://github.com/PrithivirajDamodaran/blitz-embed 这个项目主要是对text embedding模型的一些量化

训练过程

预训练

在大量纯文本上进行训练。利用RetroMAE (Liu and Shao, 2022; Xiao et al., 2023)中提出 的mae风格的方法,这种方法简单但非常有 效。mask的文本被encoder编码,把encoder的编码结果和原始文本的aggresive掩码一起输入到一个只有transformer一层的解码器上中解码,由于解码器非常简单,解码任务的难度会增加,这使得编码器需要比较高的性能。
在这里插入图片描述

通用微调

在C-MTP (unlabeled) 上通过contrastive learning的方式进行微调。损失函数: InfoNCE (一般的对比学习中都用的这个,看见GTE里面对这个损失函数进行了一些改进)。
两者的区别主要是底下的归一化的因子不同, bge的只考虑了query和postive doc以及 query和negetive doc的联系,gte还考虑了query和neg query,negative doc,postive doc,以及postive doc和negative doc之间的相似性。感觉更好一些。
图1. BGE-Loss

图2. GTE-Loss
在这里插入图片描述

特定任务微调

使用C-MTP (labeled)数据进行微调。标记的数据集 更小,但质量更高。然而,所包含的任务类型
不同,其影响可能相互矛盾。采用两种方式来处理。

  1. instruction tuning, 对于每个文本对(p, q),一个特定于任 务的指令It附加到查询端:q ′ ← q + It。指令 是一个口头提示,它指定了任务的性质,例如,“为查询搜索相关段落”
  2. 挖掘hard negative样本,从任务的原始语料库中挖掘硬负样本,遵循(Xiong et al., 2020)中的ann风格的采样策略。(粗略看了下介绍ann的论文:ANN是一种经典的负样本采样的训练方式,它是在训练过程中不断根据当前更新的模型对全文档库进行重新编码,然后选取与query相似度很高但不是正样本的doc作为负例。这种方法用的挺多的。)
实验结果
  1. batchsize越大,最后表现的性能越好,文中说的是为了能够将neg样本充分利用,所以batch_size越大,性能会越好。实际上自己在做实验的时候并没有得到这个结论,可能是由于数据量的问题。
  2. bge在benchmark上比其他很多模型表现的更加优越。
    在这里插入图片描述
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/663878
推荐阅读
相关标签
  

闽ICP备14008679号