RECOMP论文阅读笔记
该模块可作为开发物件之一 0 概念澄清 RAG指的是一系列方法论,其概念更加抽象。检索强化语言模型(Retrieval-Augmented LM) 则是经外部知识强化后的语言模型,其概念具体到可以指定物件。 其中,在该文章语境下,RALM的检索功能被定义为语言模型的一部分,而RAG则允许检索功能被放置在任何位置,包括但不限于语言模型内部和外部挂载模块。为作区分,之后的部分将明确标注检索强化生成技术的作用位置,即模型内和模型外 1 文献目标 1.1 概览 问题 模型外的RAG技术会消耗更多token,长文本效果更明显 难以提取长文本上下文 无关文本干扰模型 解决方案: 在预置和模型之间插入信息压缩模块。该文献提出了两种信息压缩模块。 “预置”是指整合查询和文本块并准备输入LLM的步骤,它被定义在Naive RAG架构中的Generation操作开端。 2 具体实现 两个模块都可以用LoRA微调,推荐应用于编码-解码结构 2.1 问题定义 给定输入序列$x$,目标输出$y$和一组检索到的文档$D = [d_1, d_2, \cdots, d_n]$,压缩器的任务是: 生成一个摘要$s$,使得: $s$比$D$短得多 当$s$被预置到$x$前输入语言模型$M$时,模型生成$y$的概率最大化 $s$的内容应该能被$D$所蕴含 压缩器的任务与花书中定义的序列生成定义相对接近,其本身超越传统的监督学习任务框架。 该文献的方法将语言模型视为黑盒并不作更改。 2.2 Extractive Compressor 原论文模型参数量110M,考虑量化后体积还能进一步缩小 Extractive Compressor将问题定义为ranking问题,即直接将句子排序、拼接并预置。Extractive Compressor使用双编码器结构,通过嵌入句子,计算相似度来衡量语料对回答问题的有用程度。 推理过程如下: flowchart LR subgraph A [输入预处理与编码] A1[“文档集D<br>(多篇文档)”] --> A2[“分句”] A2 --> A3[“句子集合S<br>(s₁, s₂, …, sₙ)”] A4[“用户查询 x”] end subgraph B [句子评分与选择] A3 -- “句子编码器<br>enc_θ(sᵢ)” --> B1[“句子向量”] A4 -- “查询编码器<br>enc_θ(x)” --> B2[“查询向量”] B1 --> B3(“点积/余弦相似度<br>计算得分”) B2 --> B3 B3 --> B4[“按得分排序<br>选出Top K个句子”] end subgraph C [输出拼接] B4 --> C1[“压缩后的摘要 s<br>(Top K 句子的直接拼接)”] end A --> B --> C 训练流程大概如下: ...