当前位置: 首页 > news >正文

(随记)商业落地实施RAG工程的核心步骤

一、商业落地实施RAG工程的核心步骤

  1. 需求分析

(1)明确业务场景 :确定企业中适合 RAG 应用的场景,如客服自动回答、文档智能检索、知识社区问答增强等,了解用户在这些场景下的具体需求和痛点。

(2)设定目标与指标 :根据业务场景,设定 RAG 系统的目标,如提高问答准确率、缩短响应时间等,并确定相应的评估指标,如平均倒数排名(MRR)、折损累计增益(DCG)等,以量化系统性能

  1. 数据集的准备(语料)

    • 文档结构化处理:采用现代的智能文档技术
      • 数据清洗(去噪、去重、隐私处理)、多模态数据提取(如PDF/PPT转文本)、文本规范化(拼写统一、格式标准化)以及分块策略(固定大小/语义分块)。
      • 关键细节:分块需平衡上下文完整性与检索效率,常用方法包括递归分割与语义边界识别。
  2. 测试集的准备(QA对)

    • 使用主流的 LLM 模型来根据文档来生成 QA 对
      • 验证:用户提到使用大模型生成QA对,但实践中需通过结构化流程生成测试样本,包括:
      • Test Sample Agent:自动生成QA对(如基于上下文生成事实性问题)。
      • Critique Agent:评估问题质量(如清晰度、无二义性),过滤低质量样本。
      • Evaluation Agent:量化评估检索与生成性能(如相关性、可靠性)。
  3. 技术选型

    • NativeRAG:标准检索-生成架构,适合实时响应(如客服、法律问答)。
    • GraphRAG:结合知识图谱,适合关系推理(如金融分析、医疗诊断)。neo4j
    • AgenticRAG:引入智能代理,适合复杂任务规划(如政策研究、竞争情报)。
    • LlamaIndex:作为中间件,提供数据连接、检索、缓存等核心能力
  4. 构建知识库

数据预处理:向量化(选择向量化模型,比如SentenceTransformer)与索引构建(向量数据库如FAISS/Milvus)。
动态更新:支持知识库实时更新以保持时效性。
实践建议:向量数据库需优化存储(如HNSW索引)以支持高效检索。

  1. 测试和优化

    • 根据不同的阶段来进行优化处理

      • 检索前优化:Query改写、分块策略调整。
        • 检索中优化:混合检索(向量+关键词)、动态嵌入。
        • 检索后优化:提示压缩、重排序(如使用ML模型)。
        • 生成阶段优化:微调模型、引入事实核查(如医疗领域)。
    • 数据预处理,结构化处理

    • 切片策略

    • 召回策略

    • 重排序

    • RAFT

  2. 最终效果评估

    • Ragas 来进行 RAG 性能的评估
  3. 生产环境部署

    • 本地模型部署 vLLM

二、构建知识图谱的详细步骤和最佳实践

1. 数据收集与预处理

步骤说明

  • 确定数据来源

    • 结构化数据:如数据库中的表格数据。
    • 半结构化数据:如XML、JSON、HTML等格式的数据。
    • 非结构化数据:如文本、图像、音频等,需通过自然语言处理(NLP)技术提取信息。
  • 数据清洗

    • 去除噪声:删除无关字符、纠正拼写错误等。
    • 处理缺失值:填充或删除缺失数据。
    • 统一格式:将数据转换为统一的格式,便于后续处理。
  • 实体抽取

    • 使用命名实体识别(NER)技术,如BERT、CRF等模型,从文本中识别出具有独立意义的实体,如人名、地名、组织机构名等。
2. 实体识别与链接

步骤说明

  • 实体识别

    • 利用NER模型从文本中抽取实体,并标注其实体类型。
  • 实体链接

    • 将抽取的实体链接到知识图谱中的现有实体或创建新实体。
    • 使用实体消歧技术,解决同名实体或不同名实体的链接问题。
3. 关系抽取

步骤说明

  • 关系抽取方法

    • 基于规则的方法:定义规则模板,从文本中匹配关系。
    • 监督学习方法:使用标注数据训练关系抽取模型。
    • 远程监督方法:利用现有知识库自动生成标注数据,训练关系抽取模型。
  • 关系分类

    • 将抽取的关系归类到预定义的关系类型中,如“出生于”、“工作于”等。
4. 知识融合

步骤说明

  • 实体对齐

    • 识别不同数据源中表示同一实体的不同描述,如“北京”和“北京市”。
    • 使用相似度计算、聚类等方法进行实体对齐。
  • 关系融合

    • 合并不同数据源中关于同一实体对的关系,解决关系冲突和冗余问题。
5. 知识图谱构建

步骤说明

  • 选择图数据库

    • 根据需求选择合适的图数据库,如Neo4j、JanusGraph等。
  • 定义模式层

    • 设计实体类型、关系类型和属性,形成知识图谱的模式层。
  • 数据导入

    • 将清洗、融合后的数据导入图数据库,构建知识图谱的数据层。
6. 知识图谱应用

步骤说明

  • 查询与推理

    • 使用Cypher等查询语言进行图遍历和复杂查询。
    • 利用图算法进行推理,如最短路径、社区发现等。
  • 可视化

    • 使用Gephi、D3.js等工具进行知识图谱的可视化展示,便于用户理解和交互。
7. 维护与更新

步骤说明

  • 定期更新

    • 根据新知识、新数据定期更新知识图谱,保持其时效性和准确性。
  • 质量监控

    • 监控知识图谱的质量,包括准确性、完整性和一致性。
    • 建立反馈机制,收集用户反馈,持续改进知识图谱的质量。
最佳实践
  • 增量式构建

    • 采用增量式构建方法,逐步完善知识图谱,避免一次性构建带来的巨大工作量。
  • 自动化工具

    • 利用自动化工具提高构建效率,如使用NLP库进行实体抽取和关系抽取。
  • 反馈机制

    • 建立反馈机制,收集用户反馈,持续改进知识图谱的质量和用户体验。
http://www.xdnf.cn/news/602533.html

相关文章:

  • 项目管理的流程与核心细节全解析
  • 如何使用 WebStorm 编写第一个 Node.js 项目
  • 《P3375 【模板】KMP》
  • 9大开源AI智能体概况
  • Python爬虫(34)Python爬虫高阶:动态页面处理与Playwright增强控制深度解析
  • c语言文件操作详解
  • 实验-设计一个应用系统(计算机组成原理)
  • Web攻防-SQL注入数据库类型用户权限架构分层符号干扰利用过程发现思路
  • Docker 与 Kubernetes 部署 RabbitMQ 集群(一)
  • 数据共享中的库表交换怎么做?
  • 【生成模型】【基础知识】CFG与CFG蒸馏
  • 深度解析:SQLynx 如何筑牢数据库安全防线​
  • 邻近标记技术(PL)在癌症研究中的应用
  • 动态规划中的 求“最长”、“最大收益”、“最多区间”、“最优策略” 双重 for + 状态转移
  • 视觉语言模型(Vision-Language Model, VLM)的简单介绍
  • 文章记单词 | 第105篇(六级)
  • Python、PyTorch、TensorFlow和飞桨(PaddlePaddle)的核心介绍及对比
  • Flutter遇到的问题
  • 安装 tensorflow-2.10.0 支持 gpu
  • 【Go-4】函数
  • Android Studio 开发环境兼容性检索(AGP / Gradle / Kotlin / JDK)
  • 音频AAC编码与RV1126的AENC模块的讲解
  • 什么是VR场景?VR与3D漫游到底有什么区别
  • [Windows] 格式工厂 FormatFactory v5.20.便携版 ——多功能媒体文件转换工具
  • Ansible快速入门指南
  • A服务器备份rabbitmq持久化目录到B服务器,不显示mq队列消息
  • 智警杯备赛--数据应用技术1
  • Spyglass:CDC官方Hands-on Training(三)
  • Oracle Apps R12——报表入门2:单表——报表开发流程
  • 常见的gittee开源项目推荐