掘金 人工智能 07月06日 19:29
从零搭建企业级RAG知识库问答系统
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

RAG(检索增强生成)是一种融合信息检索与大模型生成能力的技术架构,旨在通过检索相关信息增强大模型的回答质量。该技术的核心流程包括检索、增强和生成三个步骤,企业可利用RAG技术构建知识库问答系统,解决信息检索、问答准确性等问题。文章详细介绍了RAG系统的搭建过程,包括数据准备、向量生成与存储、文档检索和上下文构建等关键环节,并提供了多种检索方案和优化建议。

🔍 **数据准备是基础:** 构建RAG知识库的首要任务,包括文档整理、格式清洗、文本切分和去重脱敏,确保数据的质量和安全性,为后续的检索和生成奠定基础。

💡 **向量生成与存储:** 将文本片段转换为高维向量,便于语义检索。选择合适的嵌入模型,如text-embedding-v3等,并将其存储到向量数据库,例如Milvus,为后续的检索提供技术支持。

📚 **多样化的文档检索方案:** 包括关键词检索、语义检索、混合检索、多向量检索和多模态检索。其中,混合检索是通用场景的推荐方案,它结合了关键词的精确性和语义理解的模糊性,以提升召回率和相关性。

📝 **上下文构建与答案生成:** 构建高质量的Prompt,并将其输入语言模型,生成准确、有依据的回答。需要控制上下文长度,结构化文档内容,设置角色与任务指令,并增强可解释性,以提升回答的质量。

⚙️ **持续优化是关键:** RAG系统需要不断优化,包括数据质量、向量模型、推理性能、索引结构、上下文构建和Prompt优化等,从而提升系统的稳定性和长期价值。

RAG 是什么

RAG(Retrieval-Augmented Generation,检索增强生成) 是一种融合信息检索与大模型生成能力的技术架构。其核心逻辑分三步:

RAG 能为企业解决哪些问题?

如何搭建 RAG 知识库问答系统

实现过程

1. 数据准备

数据准备是构建 RAG 知识库的基础,影响检索与生成质量,主要包括如下步骤:

2. 向量生成与存储

文本切分完成后,需调用文本嵌入模型将每个文本片段转换为高维向量表示,便于后续的语义检索和匹配。

2.1 选择嵌入模型

选择嵌入模型时,主要考虑以下因素:

推荐模型:text-embedding-v3paraphrase-multilingual-MiniLM-L12-v2BAAI/bge-small-zh-v1.5

2.2 向量生成

文本切分后,需要使用嵌入模型将每个文本片段转换为向量表示,以支持后续的语义检索。常见调用方式如下:

注意:本地模型推理时,默认使用 CPU 推理时速度较慢,建议配备 GPU 和批量推理机制提升速度。

2.3 将向量入库(以Milvus为例)

向量入库主要分为以下步骤:

    连接数据库:初始化 Milvus 客户端;创建集合(Collection):定义包含向量字段的 Schema;插入数据:将生成的密集/稀疏向量连同元数据一并写入;创建索引:为向量字段构建索引,提升检索效率(如 IVF_FLAT)。
🔍 向量索引说明

当数据量超过 10,000 条时,建议为向量字段显式创建索引,以加快查询速度。
如未指定索引类型,Milvus 默认采用 FLAT(全量暴力比对)方式,准确但效率低。

📌 提示:索引通常会引入近似搜索机制,提升速度的同时可能带来轻微的精度损失。实际应用中,可根据数据规模和业务需求灵活选择是否建立索引。


📘 IVF_FLAT 索引原理简述

    聚类划分:使用 KMeans 算法将所有向量划分为 nlist 个簇,每个簇对应一个中心向量;粗筛阶段:查询时,先将查询向量与所有簇中心比对,选出最相关的 nprobe 个簇;精比阶段:只在选中的簇中进行精确比对,大幅缩小搜索范围、提升性能。

3. 文档检索

文档检索在实际应用中有多种方案,需要根据不同的数据类型与业务需求选择。以下是常见的几种检索方式:

3.1 关键词检索(Keyword Search)

📌 例如:

    查询:“这是一只猫”文档包含:“这是一只英短”

在关键词检索中,由于“猫”与“英短”字面不同,即使“英短”是一种猫,系统也无法识别两者之间的关系,因此这条文档可能无法被检索出来

3.2 语义检索(Semantic Search)

📌 例如:

    查询:“这是一只猫”文档包含:“这是一只英短”

在语义检索中,模型能够理解“英短”是“英短蓝猫”的简称,是“猫”的一种,因此即使没有出现“猫”这个字,也可以通过向量相似度成功召回该文档

3.3 混合检索(Hybrid Search)

💡 示例:查询语句为 这是一只猫,待检索内容为 这是一只英短

    稀疏向量部分(关键词匹配):无法命中“猫”这个关键词,匹配失败;稠密向量部分(语义匹配):理解“英短”是“英短蓝猫”的简称,与“猫”语义接近,匹配成功;混合策略:结合两者结果,系统可通过语义匹配部分召回该文档,并综合打分排序,提升整体相关性。

3.4 多向量检索(Multi-Vector Search)

3.5 多模态检索(Multimodal Search)


💡 提示:在大多数文本场景中,建议采用 混合检索 作为基础方案,结合业务需求逐步扩展为多向量或多模态检索。

4. 上下文构建与答案生成

在 RAG 流程中,构建高质量的 Prompt,并将其输入语言模型生成准确、有依据的回答,是智能问答的核心。


4.1 构建 Prompt


4.2 输入模型并生成回答

后续优化

以上介绍了基础的 RAG 检索流程,但实际应用中还有多方面细节需要持续优化:

    数据质量与文本切分
    合理设计文本切分策略,确保语义完整且检索粒度适中,提升检索准确性和效果。

    向量模型、推理性能与多模态策略
    根据业务场景选择或微调合适的文本和多模态向量模型,结合 IVF、HNSW 等索引结构,保证检索效率与精度。

    向量库索引与存储管理
    针对数据规模和响应需求,选择合适的索引结构和存储方案,确保检索速度和系统稳定性。

    上下文构建与 Prompt 优化
    合理控制上下文长度,设计清晰Prompt,提升生成回答的准确性和可读性。

    系统稳定性与持续优化
    完善接口重试与降级机制,结合用户反馈定期评估和优化检索及生成效果,保障系统的可用性和长期价值。

参考

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

RAG 检索增强生成 知识库问答 向量检索
相关文章