建议使用Chrome浏览器访问!
技术支持
互动社区
学习培训
深信服官网
合作伙伴

AIPaaS应用开发平台

关注
AIPaaS应用开发平台是一款深信服的RAG方案,通过白盒化RAG,让用户透明化对应用进行效果评估和调优,并提供更全面的评估指标,辅助定位问题,让用户真正用上AI、用好AI

RAG应用效果评估和调试最佳实践
  • 阅读权限:游客
  • 下载
  • 分享
  • 收藏

更新时间:2025-04-12
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保险丝是否存在或是否烧毁。(正常阻值1Ω)。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通信板通讯故障怎么处理?
答案:用万用表量V38、V39二极管(26CA二极管)。正常阻值上M或无穷大;用万用表量电阻R39(120Ω),R40、R41(20Ω);D7(75176芯片)。
 
3)需要从不同章节的多处内容中引用并进行总结
 
原文相关目录:

         

来源1

来源2

来源3

问题:多线联动板通信故障
答案:
“二、8000S多线联动盘2.1故障现象:多线盘报通讯故障 处理方法: D17(75176芯片)及周边电阻。
八、8123多线联动盘8.1故障现象:多线盘报通讯故障 处理方法: D17(75176芯片)及周边电阻是正常。D15隔离电源有没有电压输出。
四、6103N/6103Z多线联动盘4.1故障现象:多线盘通讯故障 处理方法:D23(75176芯片)及和周边电阻。”
 
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: 剩余电流互感器的安装图
  结果正确。
        

原文:
 
 
 
 
 
 
 
 
文档让我的问题处理变得简单了
选择标签:
更多意见:
手机号码:
如果未能解决您的问题,您可以使用 在线客服 寻求帮助
在线客服
您当前处于未登录状态,资料搜索或查找可能会不全面,请登录后以查找更全面的内容注册登录