RAG实际上第一步都是先做Retrieval,关于Retrieval的思路有很多,持续更新:
RetroMAE (论文RetroMAE: Pre-Training Retrieval-oriented Language Models Via Masked Auto-Encoder)
RetraoMAE包括两个模块,其一是一个类似于BERT的编码器,用于生成句向量,其二是一个一层transformer的解码器,用于重修句子。
在解码器部分接纳了及其简朴的网络结构跟非常激进的mask比例,从而使得解码任务变得极具挑战性,迫使encoder去生成高质量的句向量才气最终准确地完成原文本重修。
Bert解码计谋有一种缺陷,就是练习信号只来源于被mask掉的token,而且每个mask掉的token都是基于同一个上下文重修的。于是研究职员提出了一种新的解码方法,Enhanced Decoding,具体做法如下。
- 首先生成两个不同的输入流H1(query)跟H2(context)
- 通过attention机制得到新的输出A,这里的M是一个mask矩阵,第i个token所能看得到的其他token是通过抽样的方式决定的(当然要确保看不到自身token,而且都要看得见第一个token,也就是encoder所产出CLS句向量的信息)
- 最终利用A跟H1去重修原文本,这里重修的目标不仅仅是被mask掉的token,而是全部token。
BGE (论文C-Pack: Packed Resources For General Chinese Embeddings)
这篇和数据相干比较多,核心的练习方法就是RetroMAE
M3-Embedding: Multi-Linguality, Multi-Functionality, Multi-Granularity Text Embeddings Through Self-Knowledge Distillation
M3-Embedding团结了3种常用的检索方式,对应三种不同的文本相似度计算方法,具体如下。
- Dense retrieval: 给定一个文本,获取语言模型末了一层上[CLS]位置的隐状态,颠末尺度化作为文本的稠密向量表征。通过计算query跟doc的向量表征之间的内积就知道文本之间的稠密检索相似度。这是目前主流text embedding模型用的比较多的一种检索方式,这部分表征更注意文本整体的语义信息。
- Lexical Retrieval:给定一个文本,获取语言模型末了一层上全部位置的隐状态,每个位置对应原始文本中的一个token,依次将每个位置的隐状态通过一个全连接层+Relu函数得到该token的权重,将全部每个token的隐状态*对应的权重再求和作为文本的希罕表征(假如文本包含两个以上相同的token,则该token的权重取此中最大的权重值)。很认识的感觉吧,很像tfidf,也跟RetroMAE-V2的第二部分特征很相似,这部分特征更在意文本中各个token的信息,重要的token就赋予更高的权重。
- Multi-Vec Retrieval: 给定一个文本,获取语言模型末了一层上全部位置的隐状态,颠末一个全连接矩阵跟尺度化后得到文本的多向量表征(文本的多向量表征维度为n*d,此中n是文本长度,d是隐状态维度)。给定query,query上第i个位置跟doc的相似度的计算方式为依次计算query第i个位置的多向量表征跟doc各个位置上的多向量表征之间的内积,取此中最大值作为其得分,将query上全部位置跟doc的相似度平均求和就得到对应的多向量表征相似度。实在这就是稠密检索的一个引申版本。
M3-Embedding的练习丧失也相对复杂,包括两部分丧失。首先第一部分是对比学习丧失,沿用InfoNCE的方式,盼望拉近query跟相干文档之间的间隔,同时疏远query跟不相干文档之间的间隔,但是由于M3-Embedding提供了三种相似度计算方式,所以这里实在是包含了3个对比学习丧失的。第二部分蒸馏丧失,研究职员将三种不同方式的相似度得分进行加权求和作为teacher分数,然后让三种相似度得分去学习teacher得分的信息,由此得到3个蒸馏丧失。模型练习总体丧失就是由这2*3个丧失通过加权求和得到的。
MemoRAG: Moving Towards Next-Gen RAG via Memory-Inspired Knowledge Discovery
MemoRAG 的核心是一个记忆模块,它可以或许构建数据库的全局记忆,并生成与上下文相干的线索,从而有效地将知识数据库与准确答案所需的信息接洽起来。
MemoRAG 的主要组件包括:
- 记忆模块 (Memory Module): 它通过逐步压缩原始输入标志到一组更小的记忆标志,同时保留重要的语义信息。
- 线索生成 (Clue Generation): 记忆模块根据输入查询生成草稿答案或线索,这些线索显现了对当前任务潜在的信息需求,并引导检索工具在数据库中定位相干信息。
- 检索 (Retrieval): 基于记忆模块生成的线索,MemoRAG 利用检索工具从数据库中检索最相干的信息。
- 生成 (Generation): LLM的工作了
附录(摘录整理自以下文章):
- 知乎对BGE的解读:
- 对M3的解读: https://zhuanlan.zhihu.com/p/681259219
- BGE登顶MTEB的神器–RetroMAE|一种基于主动编码的检索模型预练习方法: https://mp.weixin.qq.com/s?__biz=Mzk0NzMwNjU5Nw==&mid=2247484913&idx=1&sn=ddf8ecaf8c8ff7dac9acc37acd1dc938&chksm=c379acfbf40e25ed26fa743b9c3e85d748c90e9a097881b323de97efb4372720d7306c86330e&scene=21#wechat_redirect
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |