欢迎关注我的公众号“ NLP前沿 ”,日更最新论文/博客速读,周更AI领域近一周发生的那些事儿 。欢迎投稿! 行文仓促,有理解错误,欢迎指正 !
https://arxiv.org/html/2404.05961v1
相比于e5-llm的方法,这个文章稍微复杂一丢丢,主要是3步。
- 将decoder结构的大模型,还原成双向注意力
- 做类似于masked language model的任务,跟bert之类的有一点点区别,Bert预测mask是使用当前位置的logits,这个工作里边用的前一个token的输出logits,在文章中,这个称呼为 MNTP (masked next token prediction)
- 对比学习
3步分别对应下面的左中右3图,LLM2VEC = Bi + MNTP + SIMCSE
- 训练数据,使用英文维基百科来完成2,3步的无监督步骤
- 7B模型,使用lora训练,80g A100,batch size=32,训练时长90分钟
- simcse,正样本dropout 2次,负样本批内负采样
一些结果与发现:
- 用了双向注意力,对单词级别的编码有提升吗? 文章通过冻结训练后的模型,然后借一个分类头去完成ner、pos之类的任务。
如下图,这个图的第一个发现是,只用了bi之后,对于llama效果是下降的,但是mistral 7b效果是变好的
w/o simcse 应该是表示只做了mntp的任务,效果基本都是正向的,但是这个也算是预训练了更多的数据
至于为啥使用了双向注意力之后,mistral 7b相比于llama比较另类,作者简单测试了下修改前后的token表示的cosine sim, mistral 基本具有很高的相似度,就是没咋变。
- 到了句子级了,首选的数据集必须得是mteb,需要注意的是,到这里都是纯粹得无监督得到的模型
有监督使用e5公开的大概150w样本,还是使用lora训练,得到一份有监督的结果:虽然不是得分最高的,但是作者表示,这是使用公开数据训练得到的最优模型。