(随记)商业落地实施RAG工程的核心步骤
一、商业落地实施RAG工程的核心步骤
- 需求分析
(1)明确业务场景 :确定企业中适合 RAG 应用的场景,如客服自动回答、文档智能检索、知识社区问答增强等,了解用户在这些场景下的具体需求和痛点。
(2)设定目标与指标 :根据业务场景,设定 RAG 系统的目标,如提高问答准确率、缩短响应时间等,并确定相应的评估指标,如平均倒数排名(MRR)、折损累计增益(DCG)等,以量化系统性能
-  数据集的准备(语料) - 文档结构化处理:采用现代的智能文档技术 - 数据清洗(去噪、去重、隐私处理)、多模态数据提取(如PDF/PPT转文本)、文本规范化(拼写统一、格式标准化)以及分块策略(固定大小/语义分块)。
- 关键细节:分块需平衡上下文完整性与检索效率,常用方法包括递归分割与语义边界识别。
 
 
- 文档结构化处理:采用现代的智能文档技术 
-  测试集的准备(QA对) - 使用主流的 LLM 模型来根据文档来生成 QA 对 - 验证:用户提到使用大模型生成QA对,但实践中需通过结构化流程生成测试样本,包括:
- Test Sample Agent:自动生成QA对(如基于上下文生成事实性问题)。
- Critique Agent:评估问题质量(如清晰度、无二义性),过滤低质量样本。
- Evaluation Agent:量化评估检索与生成性能(如相关性、可靠性)。
 
 
- 使用主流的 LLM 模型来根据文档来生成 QA 对 
-  技术选型 - NativeRAG:标准检索-生成架构,适合实时响应(如客服、法律问答)。
- GraphRAG:结合知识图谱,适合关系推理(如金融分析、医疗诊断)。neo4j
- AgenticRAG:引入智能代理,适合复杂任务规划(如政策研究、竞争情报)。
- LlamaIndex:作为中间件,提供数据连接、检索、缓存等核心能力
 
-  构建知识库 
数据预处理:向量化(选择向量化模型,比如SentenceTransformer)与索引构建(向量数据库如FAISS/Milvus)。
 动态更新:支持知识库实时更新以保持时效性。
 实践建议:向量数据库需优化存储(如HNSW索引)以支持高效检索。
-  测试和优化 -  根据不同的阶段来进行优化处理 - 检索前优化:Query改写、分块策略调整。 - 检索中优化:混合检索(向量+关键词)、动态嵌入。
- 检索后优化:提示压缩、重排序(如使用ML模型)。
- 生成阶段优化:微调模型、引入事实核查(如医疗领域)。
 
 
- 检索前优化:Query改写、分块策略调整。 
-  数据预处理,结构化处理 
-  切片策略 
-  召回策略 
-  重排序 
-  RAFT 
 
-  
-  最终效果评估 - Ragas 来进行 RAG 性能的评估
 
-  生产环境部署 - 本地模型部署 vLLM
 
二、构建知识图谱的详细步骤和最佳实践
1. 数据收集与预处理
步骤说明:
-  确定数据来源: - 结构化数据:如数据库中的表格数据。
- 半结构化数据:如XML、JSON、HTML等格式的数据。
- 非结构化数据:如文本、图像、音频等,需通过自然语言处理(NLP)技术提取信息。
 
-  数据清洗: - 去除噪声:删除无关字符、纠正拼写错误等。
- 处理缺失值:填充或删除缺失数据。
- 统一格式:将数据转换为统一的格式,便于后续处理。
 
-  实体抽取: - 使用命名实体识别(NER)技术,如BERT、CRF等模型,从文本中识别出具有独立意义的实体,如人名、地名、组织机构名等。
 
2. 实体识别与链接
步骤说明:
-  实体识别: - 利用NER模型从文本中抽取实体,并标注其实体类型。
 
-  实体链接: - 将抽取的实体链接到知识图谱中的现有实体或创建新实体。
- 使用实体消歧技术,解决同名实体或不同名实体的链接问题。
 
3. 关系抽取
步骤说明:
-  关系抽取方法: - 基于规则的方法:定义规则模板,从文本中匹配关系。
- 监督学习方法:使用标注数据训练关系抽取模型。
- 远程监督方法:利用现有知识库自动生成标注数据,训练关系抽取模型。
 
-  关系分类: - 将抽取的关系归类到预定义的关系类型中,如“出生于”、“工作于”等。
 
4. 知识融合
步骤说明:
-  实体对齐: - 识别不同数据源中表示同一实体的不同描述,如“北京”和“北京市”。
- 使用相似度计算、聚类等方法进行实体对齐。
 
-  关系融合: - 合并不同数据源中关于同一实体对的关系,解决关系冲突和冗余问题。
 
5. 知识图谱构建
步骤说明:
-  选择图数据库: - 根据需求选择合适的图数据库,如Neo4j、JanusGraph等。
 
-  定义模式层: - 设计实体类型、关系类型和属性,形成知识图谱的模式层。
 
-  数据导入: - 将清洗、融合后的数据导入图数据库,构建知识图谱的数据层。
 
6. 知识图谱应用
步骤说明:
-  查询与推理: - 使用Cypher等查询语言进行图遍历和复杂查询。
- 利用图算法进行推理,如最短路径、社区发现等。
 
-  可视化: - 使用Gephi、D3.js等工具进行知识图谱的可视化展示,便于用户理解和交互。
 
7. 维护与更新
步骤说明:
-  定期更新: - 根据新知识、新数据定期更新知识图谱,保持其时效性和准确性。
 
-  质量监控: - 监控知识图谱的质量,包括准确性、完整性和一致性。
- 建立反馈机制,收集用户反馈,持续改进知识图谱的质量。
 
最佳实践
-  增量式构建: - 采用增量式构建方法,逐步完善知识图谱,避免一次性构建带来的巨大工作量。
 
-  自动化工具: - 利用自动化工具提高构建效率,如使用NLP库进行实体抽取和关系抽取。
 
-  反馈机制: - 建立反馈机制,收集用户反馈,持续改进知识图谱的质量和用户体验。
 
