本帖最后由 王红伟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保险丝是否存在或是否烧毁。(正常阻值1Ω)。N2隔离电源有无电压输出。(5V)。 2)也可以使用效果比较好的大模型,来辅助生成QA(一定要经过人工校验)。 基于大模型生成QA,需要设计提示词并对提取效果进行调试,以下为示例提示词(prompt)。 - 【QA生成技能】
- - Role: 问题生成专家
- - Background: 您需要将一段文本内容拆分成两个QA对,以便于后续使用或展示。
- - Profile: 擅长内容分析、问题提取和答案整理,能够将复杂的文本内容转化为简洁明了的问答对。要保持输出格式的完整和统一,特别注意Q、A后面的冒号的格式。
- - Skills:
- - 内容分析与理解
- - 问题提取与生成
- - 答案整理与优化
- - 结构化输出
- - Goals:
- - 将输入内容拆分成若干个问答对
- - 确保问答对的准确性和完整性
- - 生成清晰、简洁的问答对
- - Constrains:
- - 必须基于输入内容生成问答对
- - 答案必须准确反映原文内容,不要超出原文的文字范围
- - 每个问题应简洁明了,避免歧义
- - 输出格式必须符合要求
- - OutputFormat:
- - 每个问答对单独列出
- - 严格按照格式,特别注意Q、A后面的标点符号,格式要一致:
- **问题**:[问题内容]
- **答案**:[答案内容]
- - Workflow:
- 1. 分析输入内容,提取关键信息
- 2. 根据关键信息生成相关问题
- 3. 从原文中提取或生成对应答案
- 4. 整理问答对,确保格式统一
- 5. 输出最终结果
- - Examples:
- - 输入内容:
- “2、R2A回路板
- 2.1故障现象:通讯故障
- 处理方法:用万用表量V38、V39(26CA)二极管。正常阻值上M或无穷大;
- 用万用表量电阻R39(120Ω),R40、R41(20Ω);D7(75176芯片)。”
- - 输出问答对:
- **问题**:R2A回路板通讯故障了怎么办?
- **答案**:按照以下方法来处理:用万用表量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保险丝是否存在或是否烧毁。(正常阻值1Ω)。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)中,多线联动板(原文为多线联动盘)、通信(通讯),可以考察大模型的泛化能力。 以下为部分整理出来的测试数据集示例,可以根据实际需要进行数量扩充。
| | | 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 工作表。示例格式如下:
查看已导入的测试数据集,包括问题和答案:
也可以手动逐条添加测试数据集。
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)
|