RAG 技术实现的原理步骤主要包括以下几个方面:
例如,在医疗领域,RAG 技术可以帮助医疗 AI 助手获取最新的医学知识和临床案例,从而提高其诊断和治疗建议的准确性。但需要注意的是,在将大型文档转换为可检索内容的过程中,如文档解析和文本切分、嵌入向量生成等步骤,每一步都可能导致信息损失,复合损失会显著影响 RAG 响应的效果。
因为利用大模型的能力搭建知识库本身就是一个RAG技术的应用。所以在进行本地知识库的搭建实操之前,我们需要先对RAG有一个大概的了解。以下内容会有些干,我会尽量用通俗易懂的描述进行讲解。我们都知道大模型的训练数据是有截止日期的,那当我们需要依靠不包含在大模型训练集中的数据时,我们该怎么做呢?实现这一点的主要方法就是通过检索增强生成RAG(Retrieval Augmented Generation)。在这个过程中,首先检索外部数据,然后在生成步骤中将这些数据传递给LLM。我们可以将一个RAG的应用抽象为下图的5个过程:文档加载(Document Loading):从多种不同来源加载文档。LangChain提供了100多种不同的文档加载器,包括PDF在内的非结构化的数据、SQL在内的结构化的数据,以及Python、Java之类的代码等文本分割(Splitting):文本分割器把Documents切分为指定大小的块,我把它们称为“文档块”或者“文档片”存储(Storage):存储涉及到两个环节,分别是:将切分好的文档块进行嵌入(Embedding)转换成向量的形式将Embedding后的向量数据存储到向量数据库检索(Retrieval):一旦数据进入向量数据库,我们仍然需要将数据检索出来,我们会通过某种检索算法找到与输入问题相似的嵌入片
为了弥补AI模型自身知识的不足,我们可以为它提供外部知识的支持,就像给学生提供参考书和工具书一样,帮助他们更好地理解和解决问题。检索增强生成(RAG)技术就是一种为AI模型提供“知识外挂”的方法。我们可以将RAG技术的工作原理概括为以下几个步骤:1.理解问题:AI模型首先需要理解用户的提问或指令。2.检索相关知识:AI模型根据对问题的理解,从外部知识库中检索相关的信息。例如,如果用户问“埃菲尔铁塔有多高?”,AI模型就会从知识库中检索关于埃菲尔铁塔的信息。3.整合知识与推理:AI模型将检索到的知识与自身的推理能力相结合,生成最终的答案或内容。RAG技术的优势在于能够将AI模型与外部知识库连接起来,从而扩展AI模型的知识范围,提高其回答问题和生成内容的准确性。例如,在医疗领域,RAG技术可以帮助医疗AI助手获取最新的医学知识和临床案例,从而提高其诊断和治疗建议的准确性。
因此,在RAG之前,我们需要将大型文档转换为可检索内容。转换涉及以下几个步骤,如图2所示:图2将PDF文档转换为可检索内容的过程文档解析和文本切分(Document parsing & chunking)。这一步涉及到提取段落、表格和其他内容块,然后将提取的内容分块以进行后续检索。嵌入向量(Embedding)生成。这一步将文本块转换为实值向量并存储在数据库中。由于这些步骤中的每一步都可能导致信息损失,因此复合损失会显著影响RAG响应的效果。本文主要讨论文档解析和文本切分质量是否会影响RAG系统的效果。我们将探讨与此问题相关的挑战、方法和实际案例。讨论将包括对该领域两种类型方法的考察,即基于规则(Rule-based)的方法和基于深度学习(Deep learning-based)的方法,然后通过实际案例对它们的效果进行实证评估。