RAG:Retrieval(检索)- Augmented(增强)- Generation(生成)
RAG 技术原理简单来说:从大模型外的知识库(如私有的向量数据库、联网的实时数据等)中检索与查询相关的信息,然后结合这些信息以及原始查询,一起给到大语言模型,从而生成包含专业领域(大模型外的知识)的内容
整体流程:
- 准备部分(提问前):
- 分片:将知识库的文本按照规则分为n 个片段(例如 x 个字为一个片段)
- 索引:遍历每个片段,将每个片段计算出对应文本的向量,并存储 向量+原始文本到向量数据库当中
- 回答部分(提问后)
- 召回:计算相似度(用户问题文本向量,每个片段向量),取例如 x 个相似度最高的片段(有点像简历筛选,量大,成本低,精确度低)
- 重拍:在这 x 个片段中计算 y 个(y < x) 片段与用户问题的相似度最高的片段
- 把这 y 个片段 + 用户问题 一起交给大模型回答