2023年除了大语言模型,听到最多的当属RAG(检索增强生成技术了),在实际业务场景落地过程中,由于大模型目前的一定局限和能力现状以及Token限制、训练成本等多种因素的影响下,RAG不得不成为大家选择快速试错、落地的一种选择和方案。
RAG技术通过查询处理、数据检索、文档优化、增强生成、语义理解、文档结构化和自我增强等多步骤,实现了对用户问题的深度理解和高效回答。🔍📈 从自然语言到数据库查询,再到精准答案,RAG技术让AI的每一步都更加智能和人性化,让我们从这一张图来了解RAG技术体系的全貌。#RAG #人工智能 #自然语言处理 #技术前沿"
一、在RAG技术体系中将用户的问题路由到最合适的数据源或处理路径
一般有语义路由和逻辑路由两种方式。语义路由和逻辑路由可能结合使用,以实现更高效和准确的信息检索。语义路由帮助系统理解查询的深层含义,而逻辑路由确保查询按照正确的逻辑被处理。这种结合可以提高系统对复杂查询的处理能力,尤其是在需要理解用户意图和执行复杂逻辑操作的场景中。
-
语义路由(Semantic Routing):
- 语义路由侧重于理解查询的语义内容,即查询的实际含义和意图。
- 在RAG系统中,语义路由可能涉及到自然语言处理(NLP)技术,如语义分析、实体识别和意图识别,以确保系统能够准确理解用户的问题。
- 语义路由的目标是将用户的查询映射到最相关的数据源或处理路径,即使这些路径可能不是直观的或直接的。
- 例如,如果用户询问“最近的天气如何?”,语义路由会识别出这是一个关于天气查询的问题,并将其路由到提供天气信息的服务或数据库。
-
逻辑路由(Logical Routing):
- 逻辑路由则更侧重于查询的结构和形式,它根据查询的逻辑结构来确定处理路径。
- 在RAG系统中,逻辑路由可能涉及到对查询语句的解析,识别出查询中的逻辑关系,如AND、OR、NOT等操作。
- 逻辑路由的目标是确保查询按照既定的规则和顺序被正确处理,以便系统能够生成准确的回答。
- 例如,如果用户提出一个复杂的SQL查询,逻辑路由会确保查询中的各个部分按照正确的逻辑顺序被执行。
二、RAG技术涉及的以下几个关键过程
-
查询处理:
- 用户提出问题后,系统首先需要构建一个有效的查询(Query Construction)。
- 系统将自然语言查询转换为数据库查询语言,如SQL或Cypher(Text-to-SQL, Text-to-Cypher)。
-
数据检索与排名:
- 系统从多种数据源(如关系型数据库、图数据库、向量数据库)检索相关文档(Retrieval)。
- 对检索到的文档进行排名(Ranking),以确定哪些文档最相关。
-
文档处理与优化:
- 对文档进行精炼(Refinement),可能包括重新排名、过滤或压缩,以提高相关性。
- 自动生成元数据(Auto-generate metadata)以辅助检索。
- 对文档进行分块优化(Chunk Optimization),以便于处理和生成回答。
-
检索增强与生成:
- 使用RAG-Fusion等技术将检索到的信息与生成的回答结合起来。
- 主动检索(Active Retrieval)确保在初始检索不相关时能够重新检索或从新数据源获取信息。
-
语义理解和微调:
- 使用语义分割器(Semantic Splitter)来处理文档,提高理解的准确性。
- 对模型进行微调(Fine-tuning),如使用ColBERT等先进的嵌入模型,以提高检索和生成的质量。
-
文档摘要与结构化:
- 构建文档摘要的树状结构(Tree of document summarization),以便于在不同抽象层次上理解和回答。
- 优化文档转换为紧凑形式的工具(如RAPTOR),提高检索效率。
-
自我增强与迭代:
- 自我增强的RAG(Self-RAG)和重复回答检索(RRR)允许系统自我改进其检索和生成过程。