大模型RAG经验面来自:AiGC面试宝典宁静致远2024年01月28日10:12一、LLMs已经具备了较强能力了,存在哪些不足点?在LLM已经具备了较强能力的基础上,仍然存在以下问题:二、什么是RAG?•RAG(Retrieval-AugmentedGeneration)面•一、LLMs已经具备了较强能力了,存在哪些不足点?•二、什么是RAG?•2.1R:检索器模块•2.1.1如何获得准确的语义表示?•2.1.2如何协调查询和文档的语义空间?•2.1.3如何对齐检索模型的输出和大语言模型的偏好?•2.2G:生成器模块•2.2.1生成器介绍•2.2.2如何通过后检索处理提升检索结果?•2.2.3如何优化生成器应对输入数据?•三、使用RAG的好处?•四、RAGV.S.SFT•五、介绍一下RAG典型实现方法?•5.1如何构建数据索引?•5.2如何对数据进行检索(Retrieval)?•5.3对于检索到的文本,如果生成正确回复?•六、介绍一下RAG典型案例?•6.1ChatPDF及其复刻版•6.2Baichuan•6.3Multi-modalretrieval-basedLMs•七、RAG存在什么问题?•致谢•幻觉问题:LLM文本生成的底层原理是基于概率的tokenbytoken的形式,因此会不可避免地产生“一本正经的胡说八道”的情况;•时效性问题:LLM的规模越大,大模型训练的成本越高,周期也就越长。那么具有时效性的数据也就无法参与训练,所以也就无法直接回答时效性相关的问题,例如“帮我推荐几部热映的电影?”;•数据安全问题:通用的LLM没有企业内部数据和用户数据,那么企业想要在保证安全的前提下使用LLM,最好的方式就是把数据全部放在本地,企业数据的业务计算全部在本地完成。而在线的大模型仅仅完成一个归纳的功能;扫码加查看更多RAG(RetrievalAugmentedGeneration,检索增强生成),即LLM在回答问题或生成文本时,先会从大量文档中检索出相关的信息,然后基于这些信息生成回答或文本,从而提高预测质量。RAGforLLMs2.1R:检索器模块在RAG技术中,“R”代表检索,其作用是从大量知识库中检索出最相关的前k个文档。然而,构建一个高质量的检索器是一项挑战。研究探讨了三个关键问题:2.1.1如何获得准确的语义表示?在RAG中,语义空间指的是查询和文档被映射的多维空间。以下是两种构建准确语义空间的方法。处理外部文档的第一步是分块,以获得更细致的特征。接着,这些文档块被嵌入。选择分块策略时,需要考虑被索引内容的特点、使用的嵌入模型及其最适块大小、用户查询的预期长度和复杂度、以及检索结果在特定应用中的使用方式。实际上,准确的查询结果是通过灵活应用多种分块策略来实现的,并没有最佳策略,只有最适合的策略。在确定了Chunk的适当大小之后,我们需要通过一个嵌入模型将Chunk和查询嵌入到语义空间中。如今,一些出色的嵌入模型已经问世,例如UAE、Voyage、BGE等,它们在大规模语料库上预训练过2.1.2如何协调查询和文档的语义空间?在RAG应用中,有些检索器用同一个嵌入模型来处理查询和文档,而有些则使用两个不同的模型。此外,用户的原始查询可能表达不清晰或缺少必要的语义信息。因此,协调用户的查询与文档的语义空间显得尤为重要。研究介绍了两种关键技术:一种直接的方式是对查询进行重写。可以利用大语言模型的能力生成一个指导性的伪文档,然后将原始查询与这个伪文档结合,形成一个新的查询。也可以通过文本标识符来建立查询向量,利用这些标识符生成一个相关但可能并不存在的“假想”文档,它的目的是捕捉到相关的模式。1.块优化1.微调嵌入模型1.查询重写此外,多查询检索方法让大语言模型能够同时产生多个搜索查询。这些查询可以同时运行,它们的结果一起被处理,特别适用于那些需要多个小问题共同解决的复杂问题。在Liu于2023年提出的LlamaIndex中,研究者们通过在查询编码器后加入一个特殊的适配器,并对其进行微调,从而优化查询的嵌入表示,使之更适合特定的任务。Li团队在2023年提出的SANTA方法,就是为了让检索系统能够理解并处理结构化的信息。他们提出了两种预训练方法:一是利用结构化与非结构化数据之间的自然对应关系进行对比学习;二是采用了一种围绕实体设计的掩码策略,让语言模型来预测和填补这些被掩盖的实体信息。2.1.3如何对齐检索模型的输出和大语言...
发表评论取消回复