向量数据库在 RAG 检索增强生成中的应用
所属分类 AI
浏览量 11
RAG 简介
RAG (Retrieval-Augmented Generation, 检索增强生成)
是一种结合信息检索与生成模型的技术,通过外部知识库提升生成内容的准确性和相关性
其流程分为三个阶段:
检索(Retrieval):基于向量相似度匹配本地知识;
增强(Augmented):将本地知识库信息注入提示词;
生成(Generation):大模型整合提示词输出结果
RAG 具有动态知识更新(无需重新训练模型,通过更新本地知识库即可适应新领域数据或实时数据)
和 可解释性增强(生成结果可追溯至检索内容,便于验证来源可信度)等积极意义,
适用于问答系统、客服对话、长文本生成(如报告撰写)等需结合外部知识的任务 。
RAG 各阶段实现
检索(Retrieval)
从本地知识库中快速定位与用户查询最相关的信息片段,涉及技术如下:
文本向量转化:使用嵌入模型(如 BERT、Sentence-BERT)将本地知识转换为高维向量;
文本向量相似度计算:通过余弦距离或欧氏距离衡量查询向量与文档向量间的相关性;
向量高效检索:
借助近似最近邻算法(如 FAISS、HNSW)或 搜索引擎(如 Elasticsearch)加速大规模向量匹配,推荐使用向量数据库
此阶段关键技术问题是平衡检索速度与准确性,处理不同语言的语义多样性(如同义词、多义词) 。
增强(Augmented)
将检索到的关键信息整合到生成模型的输入(Prompt 提示词)中,引导大语言模型生成更可靠的回答
实现方式有:
提示工程:在输入提示中拼接检索到的文本,如 “基于以下内容回答:(检索结果)+ 用户问题”;
注意力增强:通过模型架构设计(如 Fusion-in-Decoder),使生成过程更聚焦于检索内容;
减少幻觉:减少生成模型的 “幻觉”(虚构事实),提升回答的可信度
关键问题是过滤噪声信息,避免信息过载对生成质量的影响
生成(Generation)
基于检索信息和模型内部知识,生成自然、连贯且准确的最终回答
具体如下:
模型选择:通常采用大语言模型(如 GPT-4、Llama、PaLM),利用其强大的语言理解和生成能力;
生成策略:
根据场景选择束搜索(保证连贯性)或采样(增加多样性),并可能加入后处理(如去重、引用标注)
关键技术点在于回答的准确性、与检索内容的一致性,以及逻辑流畅性
以 ChromaDB 向量数据库为例,
在工程根目录创建 chroma_db 数据库,并在其中创建 news_articles 集合作为本地知识库载体
使用 RAG 服务时,先从 chroma_db 向量数据库的 news_articles 集合中搜索指定个数的相似结果,
将这些相似文本拼接到提示词中,再输入到 LLM 大语言模型中得到输出结果
向量数据库的其他应用场景
智能推荐系统
以 “电影智能推荐系统” 为例,
用户输入 “我想看类似《盗梦空间》的电影”,
系统能快速推荐《星际穿越》《致命魔术》等剧情、导演、风格相似的电影
实现工具链包括 Python 3.8+、OpenAI(生成电影向量)、Milvus(向量数据库,开源且性能强)
具体步骤为:
用 OpenAI 的 text-embedding-ada-002 模型(免费额度适用于小项目)
将每部电影的简介转化为 1536 维向量
将向量存入 Milvus 数据库,需先创建集合(类似表),定义向量字段维度
用户输入需求后,将输入文本转化为向量,在 Milvus 中检索最相似的5个向量,实现推荐
智能客服
企业可将产品说明、常见问题解答等知识文档通过向量化存入向量数据库
当用户咨询问题时,智能客服利用大模型理解用户问题并转化为向量,
在向量数据库中检索相似问题及答案,结合大模型生成准确、自然的回答,提升客服效率和质量
图像搜索
手机中的 “照片搜索” 功能,
AI 将每张照片转化为向量(记录颜色、形状、物体等特征),
向量数据库依据向量相似度,实现输入 “宠物狗” 能快速找到所有狗狗照片的功能
在安防监控领域,通过对监控视频中的人物、物体等进行特征提取并向量化,存入向量数据库,
可实现基于特定目标(如特定人脸、车辆)的快速检索,助力安防事件排查
上一篇
下一篇
向量数据库 基本概念 技术原理 选型指南
python3 实用代码
Python3 列表(list) 元组(tuple)字典(dict)集合(set)使用
向量数据库相关的核心概念和术语
向量数据库选型
大模型基础笔记