什么是RAG?
RAG,即检索增强式生成(Retrieval Augmented Generation),是一种结合了检索和生成两种方 法的自然语言处理技术。它利用检索技术从大量数据中快速找到相关信息,然后使用生成技术对这 些信息进行整合和创造,生成高质量的文本。
RAG的作用
-
提高生成文本的质量和准确性:通过检索技术,RAG可以确保生成的内容基于可靠的信息源,从而提高文本的准确性和质量,减少模型的生成幻觉。
-
增强生成文本的多样性:RAG可以从多个信息源中检索信息,使得生成文本的内容更加丰富和多样化。
-
提高生成速度:检索技术可以快速定位到相关信息,从而加快生成过程。
-
实现长文本生成:RAG可以处理长文本生成任务,因为它可以从多个信息源中检索和整合信息,生成连贯且内容丰富的长文本。
RAG每步难点和要解决的问题
1、首先是数据提取。
这一步的核心是要把各种结构化,非结构化数据能提取出来,用于后面的处理。这里的复杂度主要是:
1.1 文件格式复杂,以 pdf 为例子,不光有文字,还夹杂有图表,图片里面又有文字。
1.2 文件有上下文,要把上文相关的元信息提取出来,后面就更容易处理。如果不提取元信息,那下一步数据分块,就容易切分错误。
2、其次数据索引。
这一步做好文档的切分, embedding 模型,把文件 embedding 成向量,才可以把向量存到向量数据库里面去。这里的难点又有两个:
2.1 数据切分,过大,过小都会有问题