论文题目:Generative Representational Instruction Tuning
论文链接:https://arxiv.org/pdf/2402.09906.pdf
Github:https://github.com/ContextualAI/gritlm
可以使用大型语言模型(LLM)同时进行嵌入检索和文本生成吗?ContextualAI的新研究通过 生成式表示指令微调(GRIT) 探索了这一点,
在生成和嵌入任务上都取得了最先进的性能
。论文还开源了GritLM7-B和GritLM-8x7B模型,它们可以生成嵌入和文本!
GRIT包含以下几个关键部分:
- 任务区分 :对于表示任务,指令可能包含目标领域、意图和单位,而生成任务则需要模型根据指令生成文本。
- 模型处理 :GRIT模型接收到指令后,会根据任务类型执行相应的处理。对于表示任务,模型会使用双向注意力机制来处理输入文本,然后通过平均池化(Mean Pooling)来生成最终的表示(一个数值张量)。对于生成任务,模型则使用因果注意力机制来生成文本。
- 指令区分 : GRITLM的输入格式通过特定的指令来区分任务类型。例如,嵌入任务可能以“<|embed|>”开头,而生成任务可能以“<|user|>”开头。
- 任务执行 :在接收到指令后,GRIT模型会执行相应的任务。对于表示任务,模型会输出一个数值张量,这个张量可以用于后续的比较或分类任务。对于生成任务,模型会输出一段文本,如博客文章或故事。
- 统一训练 :GRIT的关键特点是能够通过统一的训练过程来同时优化生成和表示任务。这意味着模型在训练过程中会同时学习如何生成文本和如何表示文本,而不需要分别训练两个模型。
GritLM特点:
🏆 GritLM 7B在MTEB上得分第一,得分为66.8,并保持了MMLU得分57.6
模型在文本表示(嵌入)任务上的性能表现
模型在文本生成任务上的性能表现
🐌 与S-BERT模型相比,嵌入创建应该较慢
🔍 RAG可以通过缓存查询或注意力的键值状态来加速
传统的RAG:一个复杂的管道,需要将查询/文档传递给嵌入和生成模型
使用GRIT:阅读器=检索器 / 生成器=嵌入器,只需传递一次查询/文档并重用键值状态
🥇 GritLM也可以用于重排序
可以使用同一个模型作为嵌入器和重新排名器,因为它具有统一的能力,在15/16个检索数据集上提升了性能
🤗 模型开源在huggingface上:
推荐阅读
- • TinyGPT-V:小而强大,轻量级骨架打造高效多模态大语言模型
- • 2024:ToB、Agent、多模态
- • TA们的RAG真正投产了吗?(上)
- • 2023年最新LLM发展时间线一览(ChatGPT、LLaMA等)
欢迎关注我的公众号“ PaperAgent ”, 每天一篇大模型(LLM)文章来锻炼我们的思维,简单的例子,不简单的方法,提升自己。