AI 文摘

大模型增强检索RAG应用知识库召回率提升





作者: 小邢的春夏秋冬 来源: 小邢的春夏秋冬

一、相关概念

1.RAG

RAG(Retrieval-Augmented Generation), 检索增强生成技术,从已有的数据库中检索信息从而增强生成的效果。

在RAG之前,大模型主要依赖于基于深度学习的生成式技术。传统LLM主要依赖模型内部的参数和已学习的知识,分析输入文本和上下文直接产生相应输出。但是在处理较为复杂的问题和特定领域的问题时,给出的回答会缺乏准确性。

RAG技术使得LLM在生成文本时,能先从数据库、知识图谱等处检索与输入有关的信息,然后再基于这些信息生成文本,让LLM能处理更加专业化的问题。

2.召回率

检索出的文档中相关文档数和文档库中所有的相关文档数的比率,主要用于衡量检索系统的查全率。

如:数据库中有500个文档,其中只有50个文档符合用户输入的问题。假设系统检索到75个文档,但是75个文档中只有45个文档真正符合定义问题,那么召回率就是45/50 = 90%

显然,将上述例子改成“系统检索到100个文档,但是100个文档中只有45个文档真正符合定义问题”,我们会发现,召回率仍然是90%。

实际上,召回率(查全率)和精确度(查准率)之间存在一定的权衡关系。通常,我们会选择牺牲一部分精度来换取较高的召回率。

二、基于RAG的LLM结构

1.数据准备

将私域数据向量化后构建索引存入数据库, 主要包括数据提取、文本分割、向量化、数据入库环节。

1.1数据提取

包括多类型数据的加载,数据的清洗、预处理以及数据关键信息的提取。

1.2文本切割

一般采用固定长度切割,比如将文本块长度chunk size设置为250,但是这样的切分容易造成语义信息的丢失,一般在头尾增加一定的冗余量overlap来缓解。

1.3向量化embedding

将文本数据转化成向量矩阵的过程,通过向量之间的距离来表示语义之间的关系。

可见,chunk size设置与向量化的过程相关。chunk size过长即用一个向量表示一大段文本, 包含的语义有限;chunk size过短,向量数量过多,语义之间的关系复杂。

目前常见的embedding模型基本能满足大部分需求,但对于特殊场景(例如涉及一些罕见专有词或字等)或者想进一步优化效果,则可以选择开源Embedding模型微调或直接训练适合自己场景的Embedding模型。

1.4 数据入库

数据向量化后构建索引,并写入数据库的过程可以概述为数据入库过程

2、应用阶段

2.1 数据检索

根据用户提问,通过高效检索方法,找回与提问最相关的知识,作为大模型回答问题的参考。

2.2注入prompt

prompt是大模型的直接输入,是影响模型输出准确率的关键因素之一。在RAG场景中,Prompt一般包括任务描述、背景知识、任务指令、等,根据任务场景和大模型性能,也可以在Prompt中适当加入其他指令优化大模型的输出。


PROMPT_TEMPLATE = """<指令>根据已知信息,简洁和专业的来回答问题。如果无法从中得到答案,
请说 “根据已知信息无法回答该问题”,不允许在答案中添加编造成分,答案请使用中文。</指令>
  

<已知信息>{{ context }}</已知信息>
  

<问题>{{ question }}</问题>"""

其中context是在数据检索过程中返回的相关知识,作为大模型的参考。question是用户提出的问题。

三、RAG对大模型的提升和面临的新问题

1.RAG带来的提升

1.1 减少大模型的幻觉问题

传统大模型对于回答问题所需的知识不了解或不熟悉的情况下,可能会生成不准确、不相关或虚构的信息。RAG的出现,通过利用外部知识源,可以有效地弥补这一缺陷。

1.2增加可信度

RAG赋予LLM在回答问题时提供信息来源的能力。当用户向机器人提问时,它不仅能给出答案,还能给出答案的来源。这种透明度极大地增加了模型提供的信息的可信度,并帮助用户区分信息的真实性和准确性。

1.3提供专业知识

如果问题涉及特定的专业领域,RAG能够迅速而准确地从数据库中找到与问题最相关的答案,这使得RAG在处理复杂和专业性问题时表现出色。

1.4私有知识的安全

对于企业而言,将长期累积的独有的知识库、敏感的经营数据、合同文件等机密信息上传到互联网上的大型模型可能会带来安全风险。在这种背景下,RAG技术提供了一种有效的解决方案。

2.面临的新问题

2.1提升嵌入质量

将外部知识转换为向量的过程,需要保证嵌入的高质量,即嵌入能够补捕获和保留文本的深层语义特征,以及上下文关系和词汇间的联系。

2.2查找精确知识

随着数据库外部知识的增多,如何在大量数据中定位到正确信息,提高召回率,确保检索结果的相关性和质量是目前RAG面临的一个巨大挑战。

四、如何提升召回率

1.选择更合适的embedding模型并进行优化

使用BERT、RoBERTa等预训练模型生成的文本嵌入向量。这些模型经过大量文本的预训练,能够生成包含丰富语义信息的嵌入向量,有助于更准确地匹配查询和文档,从而提升召回率。

hugging face上的文本嵌入模型的排行榜

在生成对应文本段的向量时,我们也可以在原向量的基础上挂载新的向量来丰富语义。如

提取关键词、语义相近向量的关联等

2.将知识图谱和RAG技术结合

由于知识图谱的结构化特性,将知识图谱和RAG相结合,可以查询提供更多的上下文信息和潜在的相关文档,从而增加召回率

2.1 动态知识融合

将知识图谱视为大型语言模型可访问的动态数据库,用于查询最新的相关信息。这种方法在回答问题等任务中非常有效,在这些任务中,保持最新信息至关重要。这些知识与LLM的集成是通过高级架构实现的,促进了文本标记和KG实体之间的深刻交互。这通过结构化的事实数据丰富了LLM的响应,提高了生成信息的质量。

2.2 KG增强型RAG

使用知识图谱提升RAG技术包括在知识图谱中搜索相关事实,并将其作为上下文信息呈现给LLM。这种方法能够生成精确、多样和真实的内容。例如,当LLM的任务是对最近的事件做出回应时,它可以在制定回复之前先咨询KG了解最新的事实。

3.混合搜索

混合搜索策略结合了不同类型的检索器或搜索策略,旨在从多个角度和层面捕捉相关信息,从而增加找到相关结果的可能性。

混合搜索包括:

基于关键字的搜索:虽然其精确的关键字匹配功能有利于特定术语(例如产品名称或行业术语),但它对拼写错误和同义词很敏感,这会导致它错过重要的上下文。

基于向量或语义搜索:虽然其语义搜索功能允许基于数据语义进行多语言和多模式搜索,并使其对拼写错误具有鲁棒性,但它可能会错过重要的关键字。此外,它取决于生成的向量嵌入的质量,并且对域外术语敏感

基于关键字的搜索和矢量搜索都会返回一组单独的结果,通常是按计算的相关性排序的搜索结果列表。这些单独的搜索结果集必须组合起来。

五、未来知识库的增强检索的发展方向

1.智能化、语义化、个性化

检索系统要更深入地理解用户的查询意图、实现更精准的语义匹配,利用用户反馈和个性化技术、根据用户的偏好和行为来调整和优化检索策略。

  1. 跨模态

文本、图像、音频等多种模态的数据都是用户关心的内容,开发能够处理多种模态数据的处理系统也是知识库未来的重要发展对象。

3.RAG本身与LLM融合

目前RAG和LLM还是处于类似分离的状态,未来RAG’自动地根据LLM进行检索、剔除数据等。

更多AI工具,参考Github-AiBard123国内AiBard123

可关注我们的公众号:每天AI新工具