AI RAG开发 要点
所属分类 AI
浏览量 7
RAG(Retrieval-Augmented Generation,检索增强生成)
是结合信息检索与生成式 AI 的核心技术,旨在通过引入外部知识提升大模型回答的准确性、时效性和可靠性 ;
其开发的核心技术围绕 “检索质量” “知识利用效率” 和 “生成效果” 三个核心目标展开,
RAG 开发的核心是 “检索精准性” 与 “生成有效性” 的平衡,
需围绕数据预处理、向量表示、检索策略、生成优化四大环节,
结合评估迭代持续打磨,最终实现 “大模型 + 外部知识” 的高效协同 ;
一、数据获取与预处理技术
数据是 RAG 的基础,高质量的预处理直接决定后续检索与生成效果,核心技术包括:
多源数据集成
支持多样化数据源接入:
文本(TXT/Word)、结构化数据(Excel / 数据库)、半结构化数据(PDF/Markdown/ 网页)、甚至多模态数据(图像中的文字、音频转写文本) ;
关键工具:爬虫(Scrapy/BeautifulSoup)、文档解析库(PyPDF2/Unstructured)、API 接口集成(数据库 JDBC/RESTful) ;
数据清洗与标准化
去重:通过哈希值比对(如 MD5)或语义相似度(如 Sentence-BERT)去除重复内容,避免冗余检索 ;
降噪:过滤无关信息(如广告、页眉页脚)、修正格式错误(如乱码、特殊符号) ;
结构化转换:将非结构化文本(如 PDF 中的表格)转化为统一格式(如 JSON),便于后续分割与检索 ;
文本分割(Chunking)
核心目标:将长文本拆分为适合大模型处理的 “知识块”(Chunk),平衡 “上下文完整性” 与 “检索精准性” ;
常见策略:
固定长度分割:按字符 / Token 数(如 500Token)拆分(简单但可能割裂语义) ;
语义分割:基于标点(句号、段落)、语义边界(如 NLTK 分句、spaCy 语义角色标注)或主题变化(如 LDA 主题模型)拆分,保留完整语义单元 ;
动态分割:结合文档结构(如章节标题、小节),为不同类型文档(论文 / 手册)定制分割规则(如论文按 “摘要 - 引言 - 实验” 拆分) ;
二、知识存储与向量表示技术
检索的本质是 “相似性匹配”,需将文本转化为机器可计算的向量,并高效存储,核心技术包括:
向量嵌入(Embedding)
作用:将文本(或 Chunk)转化为低维稠密向量,捕捉语义信息,使 “语义相似的文本向量距离更近” ;
模型选择:
通用模型:Sentence-BERT、BGE、MiniLM(平衡性能与效率) ;
领域适配模型:针对垂直领域(如医疗、法律)微调的嵌入模型(如 BioBERT、Legal-BERT),提升领域内语义捕捉能力 ;
多语言模型:XLM-R、mBERT,支持跨语言检索 ;
向量数据库
功能:高效存储向量并支持快速相似性检索(毫秒级响应),解决传统数据库无法处理向量相似度计算的问题 ;
核心能力:
近似最近邻(ANN)搜索:通过索引(如 IVF、HNSW)加速检索(牺牲少量精度换取效率) ;
元数据过滤:支持按 Chunk 来源、时间、标签等元数据筛选,缩小检索范围 ;
主流数据库:Milvus(开源、高扩展性)、Pinecone(云原生、易用)、FAISS(轻量、适合本地部署)、Weaviate(支持 GraphQL 查询) ;
三、检索策略优化技术
检索是 RAG 的 “引擎”,直接决定生成的知识质量,核心技术包括:
基础检索:相似性匹配
核心方法:通过向量数据库计算查询向量与 Chunk 向量的相似度(如余弦相似度、欧氏距离),返回 Top-K 结果 ;
局限:仅依赖语义相似,可能漏检关键词匹配但语义表述差异大的内容 ;
高级检索策略
混合检索(Hybrid Search):
结合向量检索(语义匹配)与关键词检索(如 Elasticsearch 的 BM25 算法),
兼顾 “语义相关性” 与 “关键词精确匹配”,适合专业术语密集场景(如法律条文) ;
多向量检索(Multi-Vector Retrieval):
为单个 Chunk 生成多个向量(如核心句向量 + 整体语义向量),
避免因单一向量丢失关键信息(例如,一个 Chunk 同时包含 “病因” 和 “治疗”,多向量可分别捕捉) ;
重排序(Reranking):
先用向量数据库召回候选 Chunk(如 Top-100),
再用交叉编码器(如 CrossEncoder)对候选结果重新打分,保留最相关的 Top-5~10,提升检索精度(弥补 ANN 索引的精度损失) ;
上下文感知检索:
检索时不仅考虑 Chunk 本身,还关联其上下文(如文档标题、相邻 Chunk),避免 “断章取义”
例如,一个 Chunk 提到 “该药物有效”,需结合上下文确认是否针对特定病症
四、生成优化技术
即使检索到高质量知识,若大模型无法有效利用,仍会导致回答错误,核心技术包括:
提示词工程(Prompt Engineering)
作用:将检索到的 Chunk 合理组织为提示词,引导大模型 “基于知识回答” 而非 “幻觉生成” ;
关键策略:
明确指令:“基于以下参考信息,回答问题,不编造内容:[检索结果]” ;
知识结构化:用编号、标题等格式梳理检索结果,降低大模型理解成本(如 “参考 1:[病因];参考 2:[治疗方案]”) ;
上下文窗口管理
问题:大模型上下文窗口有限(如 GPT-4 为 8k/128k Token),检索结果过多时需筛选 ;
策略:按相似度排序截断、合并重复信息、优先保留最新 / 最相关 Chunk(如时间敏感的财经问答) ;
引用与溯源
要求生成内容标注知识来源(如 “参考文档 3,第 2 章”),既提升可信度,又便于用户验证,尤其适合学术、法律等严谨场景 ;
五、评估与迭代技术
RAG 系统需持续优化,依赖科学评估与迭代,核心技术包括:
评估指标
检索质量:召回率(Recall,是否检索到所有相关知识)、精确率(Precision,检索结果中相关知识占比) ;
生成质量:
忠实度(Faithfulness):生成内容是否完全基于检索知识(无幻觉) ;
相关性(Relevance):回答是否紧扣问题,信息完整 ;
工具:RAGAS(开源 RAG 评估库)、Hugging Face Evaluate、人工标注(针对复杂场景) ;
迭代优化
基于评估结果调整 Chunking 策略(如缩短 / 延长 Chunk 长度)、
更换更优嵌入模型、优化检索算法(如增加 Reranking 权重)、扩展数据源(补充缺失知识) ;
六、进阶技术方向
动态检索(Dynamic Retrieval):
生成过程中实时判断是否需要补充检索(如大模型回答时发现知识不足,自动触发二次检索) ;
多模态 RAG:
支持图像、音频等非文本知识的检索(如将图像中的文字 OCR 后嵌入,或直接用多模态嵌入模型处理) ;
领域自适应 RAG:
通过微调嵌入模型、定制检索规则(如法律领域优先匹配法条编号),提升垂直场景效果 ;
上一篇
下一篇
Elasticsearch与向量数据库比较
langchain 和 llamaindex
提示词工程要点
AI agent开发要点
python3 面向对象示例代码