C-Pack论文解读

最近在工作有用到关于BGE(From C-Pack),下面的内容仅作笔记。

主要贡献

针对中文文本表征,做出了三大贡献,覆盖数据,模型,benchmark三大方面。

C-MTEB:中文文本表征benchmark,包含6个任务,35个数据集

C-MTP:大规模文本表征训练数据集

C-TEM:不同规模(small,base,large)的中文文本表征模型,超出SOTA 10%左右性能

技术细节

C-MTEB


C-MTEB的35个数据集全部来源于public,覆盖文本召回(NDCG@10),排序(MAP),分类(average precision),相似度匹配(Spearman’s correlation),聚类(average precision),文本对分类(average precision)共六个方向,最终模型表现由6大任务指标取平均值得到。

C-MTP


C-MTP主要由unlabeled和labeled两部分组成,值得注意的是unlabeled的pair主要由(title,passage)组成,并且为了保证title和passage之间的相关性,采用了第三方模型text2VecChinese来对pair相关性进行打分,通过删除相关性低于0.43的方式删除部分噪声数据

C-TEM


C-TEM是类bert架构,以最后一层隐藏层下[CLS] token的作为文本的embedding。

训练方式


训练过程主要分为三个阶段

  • pretrain:该阶段使用wudao数据(完形填空),基于RetroMAE训练所得的encoder

RetroMAE:一种全尺寸编码器和单层解码器组合的面向检索的预训练语言模型,核心在使用encoder-decoder的结构,以及非对称掩码率(encoder的中等掩码率和decoder的高演码率)来增强encoder能力。

  •  General purpose fine-tuning:使用C-MTP(unlabeled)数据进行finetune,采用in-batch negotiate sample的方式训练,拉近正样本embedding距离,并且使负样本远离
  •  Task-specific fine-tuning:使用C-MTP(labeled)数据进行finetune,区别与上面的general fine-tune,task-specific数据质量更高,为了统一文本表征,作者by task设计了对应的prompt与原始的query结合,并且为每一对pair样本引入了难负样本(从task原始语料中通过ANN-style[一种异步更新全局索引寻找难样本的方法]采样方式得到)

实验结论

中文表现不错,如果有中文文本任务需求的同学不妨一试

huggingface地址:https://huggingface.co/BAAI/bge-reranker-base

github地址:GitHub - FlagOpen/FlagEmbedding: Open-source Embedding Models and Ranking Models 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值