NV-Embed: 不装了,NVIDIA亲自下场,发布自家embedding模型并成功登顶MTEB

火山方舟向量数据库视频服务

提纲

1 简介‍‍‍‍

2 NV-Embed

2.1 模型结构

2.2 模型训练

3 实验结果

4 讨论

参考文献

‍ ‍

1 简介

上个月MTEB的榜首再次又换人了,NVIDIA亲自下场,发布了自己的embedding模型NV-Embed,成功占据榜首之位。芯片公司不好好做芯片,亲自下场做模型了,来给大家压力了。‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

NV-Embed移除了Decoder-only模型结构中的单向mask机制,并添加了一个后置模块latent attention layer用于进一步提升embedding的表征能力,加上其特有的训练流程设计,最终在诸多评测任务上表现出色。

‍‍‍‍‍‍‍‍‍‍

picture.image

图1:MTEB榜单截图 ‍ ‍

2 NV-Embed‍‍‍‍‍‍‍‍

2.1 模型结构

相比于传统的Decoder-only语言模型,NV-Embed做了以下几个调整。

a) 移除了单向mask机制,改单向注意力机制为双向注意力机制。因为研究人员认为单向注意力机制限制了模型的表征能力,而这也跟NLU任务中同等参数规模的GPT效果不及BERT或T5的现象相符。‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍




b) 引入Latent Attention Layer。目前语言模型生成文本embedding的两种常见方式分别为,其一是mean pooling,直接对所有token embedding求平均,但是有可能忽略掉关键片段的重要信息(如果每个词都一视同仁,那么每个词就都不是很重要了),其二是利用最后位置<EOS>的token embedding,但是很可能会严重依赖于最后一个token的信息。基于此,研究人员提出了一个新的embedding获取方式,将语言模型最后一层的表征作为Q,再利用训练好的的Latent Array获取对应K,V,通过attention机制得到更具表征能力的文本embedding。可以理解为,额外引入了一个attention模块,并且这个模块的V跟K是通过训练得到的,跟具体的Q无关。‍‍‍‍‍‍‍‍‍‍‍‍

picture.image

图2: NV-Embed流程示意

‍ ‍ ‍ ‍ ‍‍

2.2 模型训练‍‍‍‍‍‍‍

  **NV-Embed采用了两阶段的Instruction-Tuning,第一阶段是在检索数据上进行对比学习,利用了in-batch的负样本以及挖掘出了各种hard negative,第二阶段则是混合了诸多检索跟非检索数据,但不再使用in-batch的负样本。** 这种训练设计的目的在于研究人员认为检索任务比其他任务更难,所以训练策略一开始需要先聚集在提升模型在检索任务上的性能。此外,NV—Embed两个阶段使用的都是数据都来源于开源的公共数据集。






模型输入中,query的输入格式为"Instruct:task\_definition Queer:q",取embedding的时候会掩蔽掉相关的指令文本,而document端则不插入多余的指令前缀。‍‍‍‍

3 模型结果

研究人员在Mistral-7B基础上,利用LoRA的高效参数更新技巧,finetune得到了NV-Embed。‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍




a) 在MTEB benchmark上,NV-Embed取得最佳效果。跟e5-mistral-7b-instruct, google-gecko这种单阶段训练模型相比,NV-Embed这种两阶段训练策略,让模型现针对检索任务进行训练,然后再针对instruction- tuning继续训练的方式,在最终性能取得明显提升。跟其他decoder-only模型相比,NV-Embed所提出模型结构上的优化带来了明显提升。

picture.image

b) 通过进一步实验,可以发现两阶段训练策略,注意力机制优化以及embedding输出策略不同设置对于最终效果的影响。‍‍‍‍‍‍‍

picture.image

4 讨论‍‍‍‍‍‍‍‍‍‍‍‍‍

又是一个Decoder-only LLM改embedding模型的尝试,其中有两点变动需要关注下,其一是利用Latent attention模块来输出最终的文本embedding,这是之前其他模型所不涉及的,而且看起来这个设计是可以被其他embedding模型所采纳的。其二是两阶段的训练策略,以往的分阶段训练,都是先在通用语料上训练学习通用能力,然后再针对性的提升类似于检索相关的能力,这跟NV-Embed的做法恰好相反,文中虽然也正是这种分阶段训练的提升,但是将这两个阶段换下顺序会有多大的变化呢?‍‍‍‍‍‍‍

参考文献

1 NV-Embed: Improved Techniques for Training LLMs as Generalist Embedding Models

https://arxiv.org/pdf/2405.17428

0
0
0
0
关于作者

文章

0

获赞

0

收藏

0

相关资源
字节跳动云原生降本增效实践
本次分享主要介绍字节跳动如何利用云原生技术不断提升资源利用效率,降低基础设施成本;并重点分享字节跳动云原生团队在构建超大规模云原生系统过程中遇到的问题和相关解决方案,以及过程中回馈社区和客户的一系列开源项目和产品。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论