什么是RAG

153 阅读2分钟

什么是RAG

检索增强生成技术(Retrieval-Augmented Generation),通过为大模型接入外部知识库,旨在提升大模型问答准确率,解决大模型幻觉和实效性问题,是提升大模型“最后一公里“应用落地的关键技术。

01

RAG技术演进

Naive RAG:朴素rag是一种最基础的,是最基础的一类rag技术,通常召回率较低,导致检索出错误或不相关的信息,进而导致大模型生成答案错误。

Advanced RAG:高级rag新增了检索预处理(Pre- Retrieval)和检索后处理(Post-Retrieval)两个模块,以提升rag的召回率和大模型的生成质量。

Modular RAG:朴素RAG和高级RAG的运行流程是固定的,难以灵活适配不同客户的业务场景。为此,模块RAG将RAG功能抽象成多个独立的模块,让用户可以用乐高的方式自由组合拼接RAG流程。模块化RAG能够更好地适应多样化的场景和需求,已成为rag领域的技术趋势。

02

RAG的主流应用

RAG for text:使能智能问答,机器翻译等场景

RAG for code:增强代码生成

RAG for knowledge:增强知识库问答的效果

RAG for image:使能图强生产

RAG for video:音频生成

RAG for science:药物生成

03

推理阶段的RAG技术

RAG Embedding:将文档切分成文本块,通过embedding模型提取特征,形成向量表达,再存到向量库里,支持多模态数据,如图像视频语音的向量表示。

主流的embedding模型如bge和text2vector基于transformer结构,具有强大的特征提取能力。但是知识库里有千万级甚至上亿级向量,业界的主流方案是构建高性能向量索引(RAG Index)。

RAG Index:当接到用户的查询请求时,会把用户的查询用rag embedding转化成向量,与知识库里的向量进行比对,从知识库里找到与查询向量相似的向量。目前业界主流的索引有HNSW图索引和IVFPQ倒排索引。

RAG Rerank:重排序,在召回模块之后,对检索召回的query文本和相关的候选文档进行评分的重计算。重排序分为逐点重排和列表重排。