RAG应用效果评估和调试指引-Part1
  

新手391257 1424

{{ttag.title}}
本帖最后由 王红伟94 于 2025-4-9 18:44 编辑

RAG应用效果评估和调试指引 Part1


1. 项目概述

1.1. 场景介绍

       XX客户主要提供消防设备的生产、销售和售后服务,设备种类型号繁多,每一种设备的故障排除和维修方案主要都分布在内部的文档中,人工查找非常费时费力。为此,基于AI PAAS搭建了一套消防设备维修知识问答的AI应用,可以帮助维修人员快速准确地找到相关的解决方案。


1.2. 数据情况

       客户原始文档为图文混排的PDF文件,文件存储在本地。PDF文件示例如下:
      


1.3. 预期目标

       通过大模型回答设备维修方案类问题,准确率不低于85%

2. 搭建“消防知识问答助手”应用

        具体过程参照AI PAAS平台 "RAG应用开发指引",以下对于应用的构建过程仅做简要介绍。

2.1. AI PAAS上创建知识库

       知识库数据类型选择文本文档
      

2.1.1. 上传文档

        上传本地准备好的PDF文档。根据本场景的文档实际情况,文档中的文本较少,且有较多的专业名词、型号等,故不开启知识增强。
         

2.1.2. 自动生成分片、向量并存储

       观察文档成功解析完成,并展示出文档分片。
  
      
2.2. AI PAAS上搭建应用-消防知识问答助手

2.2.1. 创建应用

       应用类型选择消防知识问答助手,该应用模板内部已经预置了深信服最佳实践的RAG流程模板,在基础RAG的基础上集成了问题重写、重排序等模块。
      


2.2.2. 关联知识库

        消防知识问答助手应用-知识检索 中,配置已经构建好的维修知识库。
       为了提供更加准确的结果,初始检索参数配置为:召回阈值0.7,召回数量5
      

2.2.3. 应用调试

       在应用-预览调试界面,输入测试问题。观察整个流程都能正确通过(打绿色),并且在调试窗口可以正常回答问题,确保流程跑通。
      

3. 应用效果评估和优化

3.1. 准备测试数据集

3.1.1. 测试数据集的要求

3.1.1.1. 通用要求

        l 测试数据集准备,需要企业真正了解该业务场景的人参与,并对数据质量把关,并及时对测试结果进行反馈,以确保测试数据集的有效性;

        l 测试数据集要能覆盖实际应用场景的各个方面,问题描述符合真实场景要求,确保答案准确无误,并与文档保持一致;

        l 测试数据集应进行人工确认,确保问题、文档和期望输出的答案质量,一定要避免模糊、歧义、错误的信息。

        l 问题类型设计,应满足直接查询(如特定参数值)、模糊语义匹配(同义词/近义词表达)。

3.1.1.2. 高阶要求(根据实际进行选择)

        l 在构建测试数据集时,适当考虑不同主题和文本类型的多样性,这有助于测试应用的泛化能力。测试问题设计应有多样性,包括文档中的各个部分,例如要涵盖抽取文本片段、表格、图表说明等不同内容形式,并包含知识库中特有术语、专有名词、领域概念等。

        l 考虑不同难度级别的问题,从简单的事实性问题到需要推理及归纳、分析的问题。

        l 可以添加一些负向测试数据集,例如,添加超出知识库范围的问题、添加语义冲突问题等。

        l 对于文档中存在表格的,测试数据集应尽量覆盖到表格内部的数据,例如对于下面的表格,应设计相关的测试问题。

        从以下PDF文档表格中抽取测试数据集。示例:工会副主席的住宿费标准是多少?答案:800(普通标间)。
      


3.1.1.3. 测试问题构造方式

        1可以通过人工标注的方式,直接从文档中提取事实数据,转换为问答对;

  原文:
      

  提取的问答对:  
  问题:36V通信板开机不显示怎么处理?
  答案:查看电路板F2保险丝是否存在或是否烧毁。(正常阻值)。N2隔离电源有无电压输出。(5V)。
        
        2也可以使用效果比较好的大模型,来辅助生成QA(一定要经过人工校验)。
  基于大模型生成QA,需要设计提示词并对提取效果进行调试,以下为示例提示词(prompt)。
   
  1. 【QA生成技能】
  2. - Role: 问题生成专家
  3. - Background: 您需要将一段文本内容拆分成两个QA对,以便于后续使用或展示。
  4. - Profile: 擅长内容分析、问题提取和答案整理,能够将复杂的文本内容转化为简洁明了的问答对。要保持输出格式的完整和统一,特别注意Q、A后面的冒号的格式。
  5. - Skills:
  6.   - 内容分析与理解
  7.   - 问题提取与生成
  8.   - 答案整理与优化
  9.   - 结构化输出
  10. - Goals:
  11.   - 将输入内容拆分成若干个问答对
  12.   - 确保问答对的准确性和完整性
  13.   - 生成清晰、简洁的问答对
  14. - Constrains:
  15.   - 必须基于输入内容生成问答对
  16.   - 答案必须准确反映原文内容,不要超出原文的文字范围
  17.   - 每个问题应简洁明了,避免歧义
  18.   - 输出格式必须符合要求
  19. - OutputFormat:
  20.   - 每个问答对单独列出
  21.   - 严格按照格式,特别注意Q、A后面的标点符号,格式要一致:
  22.   **问题**:[问题内容]  
  23.   **答案**:[答案内容]
  24. - Workflow:
  25.   1. 分析输入内容,提取关键信息
  26.   2. 根据关键信息生成相关问题
  27.   3. 从原文中提取或生成对应答案
  28.   4. 整理问答对,确保格式统一
  29.   5. 输出最终结果
  30. - Examples:
  31.   - 输入内容:  
  32.       “2、R2A回路板
  33.    2.1故障现象:通讯故障
  34.    处理方法:用万用表量V38、V39(26CA)二极管。正常阻值上M或无穷大;
  35.    用万用表量电阻R39(120Ω),R40、R41(20Ω);D7(75176芯片)。”
  36.   - 输出问答对:     
  37.     **问题**:R2A回路板通讯故障了怎么办?  
  38.     **答案**:按照以下方法来处理:用万用表量V38、V39(26CA)二极管。正常阻值上M或无穷大;用万用表量电阻R39(120Ω),R40、R41(20Ω);D7(75176芯片)。
复制代码


    以下以deepseek官网对话界面为例,示意基于Deepseek生成QA过程:
    ①定义任务指令:“请将如下的原始文本提取为QA”
    ②定义输入文本:输入需要提取的文本段落。建议把待抽取的文档拆分成多个语义结构相对独立的文本段落,避免一次将整个文档一次性丢进大模型来大规模生成QA,这样反而需要大量的核对工作。
    ③提示词:直接采用上述【QA生成技能】提示词   
    ④将上述组合提示词,输入对话框,得到多个QA结果。
   

          ⑤对得到的QA进行人工核对,选择质量较高的QA。
            

           如果希望一次得到多个QA对,可以按照实际需要,修改【QA生成技能】提示词中的生成QA对的数量。
            
   

3.1.1.4. 测试数据集的数量

       在项目初期启动阶段,为了快速验证应用的可用性水平,测试数据集可以先准备少量(20-100条),先达到一个可发布的基线应用效果。随着后期用户的逐渐增多,用户反馈量的持续积累,测试数据集也能够随着用户反馈不断扩充。

3.1.2. 测试数据集示例

       本项目所用文档以图文为主,不含表格等复杂结构,故按照以下方法来准备测试数据集。

        1) 直接引用原文,内容连续,无章节结构

        文档原文:
      

       问题:36V通信板开机不显示,显示屏蓝屏,怎么处理?
  答案:查看电路板F2保险丝是否存在或是否烧毁。(正常阻值)。N2隔离电源有无电压输出。(5V)。

        2) 引用原文,内容不连续,需要考虑章节结构信息

        原文:
      

        问题:36V通信板通讯故障怎么处理?
      答案:用万用表量V38V39二极管(26CA二极管)。正常阻值上M或无穷大;用万用表量电阻R39120Ω),R40R4120Ω);D775176芯片)。

        3)需要从不同章节的多处内容中引用并进行总结

        原文相关目录:
          

         

        来源1
      

        来源2
      

        来源3
      

        问题:多线联动板通信故障
       答案:
        二、8000S多线联动盘 2.1故障现象:多线盘报通讯故障 处理方法: D1775176芯片)及周边电阻。
        八、8123多线联动盘 8.1故障现象:多线盘报通讯故障 处理方法: D1775176芯片)及周边电阻是正常。D15隔离电源有没有电压输出。
        四、6103N/6103Z多线联动盘 4.1故障现象:多线盘通讯故障 处理方法:D2375176芯片)及和周边电阻。

        4) 引入同义词、近义词、专业词汇等

        如示例3)中,多线联动板(原文为多线联动盘)、通信(通讯),可以考察大模型的泛化能力。
        以下为部分整理出来的测试数据集示例,可以根据实际需要进行数量扩充。  

input
expected_output
控设备最多可带多少火灾监控探测器?
XX-DB8702监控设备单回路可带载200只XX系列电气火灾监控探测器(通道 数1-8个)。每台最多配置2块回路板(4个回路),可以最大带载4*200*8-6400 只剩余电流互感器。EI-DB8702L监控设备可带载64只XX系列电气火灾监控探测器。
电气火灾报警怎么处理?
在装设完剩余电流探测器与互感器后开通调试时,往往会出现因配电线路布设/接线问题造成的探测器检测电流大、报警的问题,这正证明其装设的必要。 探测器安装选点不正确,结合GB50116火规、GB50166-2019验收标准以及 GB51348-2019民标,重新合理选点。
信号线用什么线?最长可以多长?
信号线应参照 GB50166中3.2.21条要求采用ZR-RVS-2*1.5mm2双绞线,通讯距离不超过1000米。

3.2. 导入测试数据集
      
         按照平台提供的示例文件格式,准备好测试数据集,并上传。

      上传文件要满足:单次最多 20 个文件,支持 csv 格式;暂仅支持 UTF-8 编码格式;单个文件大小须在 50 MB 以内,文件最多支持一个 sheet 工作表。示例格式如下:

input
expected_output
世界上最高的山峰是什么?
珠穆朗玛峰。



         

        查看已导入的测试数据集,包括问题和答案:
      


        也可以手动逐条添加测试数据集。
      

3.3. 应用评估

        创建评估任务,选择已经配置好的的消防知识问答助手应用和配置版本,选择已经创建的测试数据集。点击确定,发起评估任务。
      

        由于应用评估过程中,需要多次调用大模型服务,对回答结果和标注的答案以及中间的检索结果进行多次对比和分析,评估过程耗时较长。一般任务可以按照每1条评估数据集耗费0.5-2分钟来估算。
待评估任务完成后,可查看评估任务详情。
      


        在评估详情中展示了问题总数,包括检索噪声、检索不到、检索不全等问题,每一类问题下列出了具体的问题。           
        


       点击问题详情,可查看该问题的生成结果。
      


        进一步点击工作流,查看工作流各个模块的输入输出,以便定位问题。
      

3.4. 应用效果优化

3.4.1. 配置调优

       按照优化指引,进行配置调优。点击优化,可跳转到应用配置界面,进一步更改配置,对效果进行优化。
      


        根据系统提供的优化指引,进一步优化配置。如,对于检索不到类问题,本场景下,通过调小召回阈值来提升检索召回率,验证是否最终生成效果有提升。
      


        按照优化指引,把召回阈值从0.7调小为0.6
      

3.4.2. 重新评估

        配置更改完成后,将应用保存为V2
      


       保存后,重启发起评估任务。
      


       评估完成后,观察新应用的准确率变化(从79%提升到89%)。
      

3.4.3. 对比效果

        选择对比,对比两次的评估结果变化。
      


       对比页面展示了优化前V1版与优化后V2版的详细差别,包括问题数、准确率、应用配置、详细问题。在本场景中,通过调小了召回阈值,减少了检索不到的问题。
      

       通过一次优化后,在测试数据集上的准确率可以达到预期目标85%以上。可根据需要再进一步做配置优化。  

4. 应用发布

        对应用发布后,可打开单独的体验页面,进行问题测试,并对回答结果点赞或反馈错误。
      

      
      

5. 消防知识问答助手场景-问题测试

           Q1:R2A蓝屏了怎么办?
   结果正确。
         

        原文:
      


  Q2: 232转485不能通讯,怎么处理?
          结果正确。
        

        原文:
      


  Q3:多线盘输出短路
        结果正确。
        

        原文:
      


  Q4:传感器回路连接线的规格
         结果正确
        

       原文:
      


Q5: 剩余电流互感器的安装图
         结果正确。
        

       原文:
      

附件:
1.消防设备知识库
消防设备知识库.zip (18.32 MB, 下载次数: 6)
2.消防知识问答助手-测试数据集
消防知识问答助手-测试数据集.zip (4.37 KB, 下载次数: 4)
3.消防设备知识问答助手应用-验证问题
消防设备知识问答助手应用-验证问题.xlsx (10.11 KB, 下载次数: 4)

打赏鼓励作者,期待更多好文!

打赏
2人已打赏

水之蓝色 发表于 2025-4-8 22:29
  
很牛,点赞!!!!!!!!!
王老师 发表于 2025-4-11 08:20
  
  具体过程参照AI PAAS平台 "RAG应用开发指引",以下对于应用的构建过程仅做简要介绍。
发表新帖
热门标签
全部标签>
安全效果
新版本体验
每日一问
技术咨询
标准化排查
功能体验
GIF动图学习
技术笔记
纪元平台
干货满满
【 社区to talk】
产品连连看
自助服务平台操作指引
信服课堂视频
高手请过招
社区新周刊
问题分析处理
社区帮助指南
技术晨报
华北区交付直播
云化安全能力
sangfor周刊
2023技术争霸赛专题
畅聊IT
答题自测
专家问答
技术圆桌
在线直播
MVP
网络基础知识
安装部署配置
升级
安全攻防
上网策略
测试报告
日志审计
流量管理
每日一记
运维工具
云计算知识
用户认证
原创分享
解决方案
VPN 对接
项目案例
SANGFOR资讯
专家分享
技术顾问
信服故事
SDP百科
功能咨询
终端接入
授权
设备维护
资源访问
地址转换
虚拟机
存储
迁移
加速技术
排障笔记本
产品预警公告
玩转零信任
信服圈儿
S豆商城资讯
技术争霸赛
「智能机器人」
追光者计划
深信服技术支持平台
答题榜单公布
通用技术
卧龙计划
华北区拉练
天逸直播
以战代练
秒懂零信任
技术盲盒
山东区技术晨报
文档捉虫活动
齐鲁TV
每周精选
2024年技术争霸赛
北京区每日一练
场景专题
故障笔记
排障那些事
西北区每日一问
升级&主动服务
高频问题集锦
POC测试案例
全能先锋系列
故障案例库

本版版主

3
2
0

发帖

粉丝

关注

0
0
0

发帖

粉丝

关注

本版达人