什么是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文本和相关的候选文档进行评分的重计算。重排序分为逐点重排和列表重排。