SFT、RAG 调优效率翻倍!垂直领域大模型评估实战指南

本期视频教程:www.bilibili.com/video/BV1CR...


  • 如何评估模型在垂直领域下的表现?
  • 如何评估模型微调前后的效果?
  • 如何量化 RAG 系统的召回率?
  • 如何从领域知识创建模型评估数据集?

大家好,欢迎来到 code秘密花园,我是花园老师(ConardLi)。

现在大家都在搞大模型落地,不管是做 RAG(检索增强生成)还是 SFT(监督微调),最让开发者头秃的其实不是 "怎么训练",而是 "怎么知道训练得好不好"。

在上一期教程:《世界最顶级的大模型,都在 PK 些啥? (大模型评估完全指南)》 中,我们主要介绍了大模型评估的核心流程和业界主流的一些通用 Benchmark(基准测试)。

这些基准一般都用于通用大模型的能力测试,榜单(像 MMLU、ARC )分数再高,一旦用到具体的业务场景,比如法律合同审核、医疗报告分析、或者公司内部的维修手册,这些通用分数的参考意义就非常有限了。

今天我们就来聊聊,在垂直领域,我们具体应该怎么评估模型的表现?

第一部分:理论篇

1. 为什么通用评估不够用?

通用模型往往在公开互联网语料上表现良好,但对于企业内部文档、未公开的行业规范等"长尾知识"表现不佳,必须进行专项评估。

我们在实际业务中,评估模型通常是为了解决三个很具体的问题:

  • 选型心里没底: 开源模型那么多(Qwen, DeepSeek, MiniMax...),在没微调之前,谁对我的业务文档理解能力更强?如果不跑一遍自己的数据,盲选很容易踩坑。

  • 微调效果验证(SFT): 你花钱花时间微调了一个模型,Loss 曲线看着挺好,但模型真的变聪明了吗?还是说它只是记住了训练集?更糟糕的是,它会不会学会了专业知识,却把通用的对话能力搞丢了(灾难性遗忘)?这需要对比测试才知道。

  • RAG 系统的"甩锅"依据: 在检索增强生成(RAG)架构中,模型是否准确利用了检索到的上下文?是否存在幻觉?这需要针对性的评估指标。

2. 主流的评估方法

传统的垂直领域评估通常需要 "懂行的人" 来阅卷。但是,行业专家的工作时间是极其昂贵的,几十条数据还能看,成千上万条数据靠纯人工就不太现实了。

而且人的主观标准变动很大,例如,一个文案是"准确"还是"生动"?这种主观性会导致评估结果波动大,难以作为模型对比的硬指标。

在真实的业务场景中,模型在特定领域表现的评估通常靠以下几类评估方法:

方案一:确定性评估

标准答案和模型回答的完全匹配是最直接、成本最低的方式。

这类评估只能限制在某些特定的题目类型上,就像我们在考试的时候做的判断题、单选题、多选题。

它们的答案是固定的,非黑即白,是否得分还是很好评估的。

但是,此类数据集的制定还是有一定成本的,通用评估集(如 MMLU)涵盖面广但深度不足。针对特定业务的、包含标准答案的高质量题库非常稀缺,往往需要资深专家手工编写,效率极低。

方案二:基于统计的文本相似度

比如我们经常听到的 BLEUROUGEMETEOR 这些指标是自然语言处理(NLP)领域最常用的自动文本生成评估指标,核心作用是量化机器生成文本(如翻译、摘要、对话回复)与人工标注的参考文本之间的相似度,判断生成结果的质量。

这类指标计算的本质上都是生成文本与参考文本的词汇重叠度。在 LLM 时代,意思相同但表达方式不同的情况是非常普遍的(标准答案是 "利率上调",模型回答 "加息"。字面上没重合,得分很低,但意思完全一样。),所以参考价值不大了。

在垂直领域知识评估中,这类指标的权重正在被大幅降低,因为它们很容易误杀好模型。

方案三:基于模型的语义评估

也就是我们上期教程中提到的 LLM as a Judge

这是目前搞开放式问答的最优解。

核心逻辑:用一个更强、更聪明的模型(比如 GPT-5)当裁判,去给业务模型(比如 Qwen3-7B 的小模型)打分。

此类评估的关键不在流程,而是评分细则(Prompt),不同类型的数据集通常需要制定特定的评估标准。

3. 真实工作中面临的痛点

在真实的评估工作中,我们往往面临着以下痛点:

  • 测试集难构造:和模型微调训练面临的问题一样,企业里有海量的 PDF 手册、Markdown 技术文档,但没有现成的 QA 对(问答对)。要评估模型,首先得把非结构化的文档变成结构化的测试集。

  • 定性容易,定量难:大家常说"这个模型感觉比那个好"。但在工程上,"感觉"是不值钱的。我们需要具体的指标 --- 是召回率提升了?还是幻觉率下降了?所以我们需要一套可量化的指标,并且可以直观的观测。

  • 自动化与人工的割裂:完全靠人工测,测不动;完全靠脚本测,不准(尤其是长文本生成)。如何把 "自动化的规模" 和 "人工的精准" 结合起来,是一个普遍性难题。

第二部分:实战篇

在实战章节,我们将使用一款工具(Easy Dataset)解决以上痛点。

Easy Dataset 是一个专为创建大型语言模型数据集而设计的应用程序。通过 Easy Dataset,你可以将领域知识转化为结构化数据集,兼容所有遵循 OpenAI 格式的 LLM API,使数据集构造过程变得简单高效:github.com/ConardLi/ea...

在,Easy Dataset 的 1.7.0 版本,支持了全新的 "评估" 模块,能够做到 自动化生成测试集 + 低成本的创建评估任务 + 可视化的评估结果

1.评估数据集(测试集)生成

评估数据集是什么?

  • 评估数据集(测试集)是一组"题目 + 标准答案/参考答案 + 评分规则/选项"的集合。你可以用它来:做不同模型的对比评估,长期追踪效果变化。

题目类型

一个好的模型评估数据集(测试集)是衡量模型真实能力的基石。在 Easy Dataset 中,评估集不仅仅是问题的集合,更是包含标准答案、考点标签和业务逻辑的综合知识库。

为了全面考察模型能力,我们设计了五种题型:

  • 判断题: 这是最直接的。考察模型对核心事实是否搞混。比如文档里说"温度不能超过 100 度",题目问"温度是否可以达到 105 度?",能有效检测幻觉。
  • 单选题: 4个选项(A-D),单选答案 | 考察模型在干扰项下的知识提取和辨析能力。
  • 多选题: 多个选项,答案为字母数组(如 ["A", "C"]) | 极具挑战性,漏掉一个信息点就选不对。
  • 简答题(短答案): 提供标准短答案(20字以内),可测试模型获取核心知识点并精简表达的能力。如:2025 年美团的营收是多少亿?
  • 开放题(长答案): 考察推理和总结能力。比如"根据文档描述,分析一下为什么会出现设备异响?"。这种题没有标准死答案,最考验模型的逻辑。

并且,在任务配置中 支持配置各题目类型生成的比例(比如:我要 30% 的判断题用于测幻觉,70% 的简答题测理解):

Easy Dataset 中,你可以通过多种方式生成和配置评估数据集(测试集):

  • 从领域文献中提取测试集
  • 从训练集添加或生成测试集变体
  • 导入自定义/平台内置测试集

从领域文献生成测试集

不管是 PDF 还是 Docx 格式的领域文献,系统支持直接导入。后台会把这些长文本切分成小块(Chunk),然后通过提示词工程,让大模型基于这些文本块自动生成题目。

我们首先来到【数据源-文献处理】模块,导入一份小米 2025 Q3 季度的财报文档:

系统解析完成后,会对文档进行自动切块,为了保证后续在文本块上生成的测试集更符合主题,我们批量编辑文本块:

在每个文本块的开头增加全局摘要信息:

全局摘要:当前文本为 小米集团 2025 Q3 季度的财报文档的一部分。

然后,我们可以选择基于单个文本块生成测试集,或自动生成测试集(后台自动读取并处理未生成测试集的文本块),系统将根据我们前面在项目设置中设置的几种题目类型的比例自动生成测试题目(默认的题目类型判断题、单选题、多选题、简答题、开放题为 1:1:1:1:1)。

建议:

  • 先用 "单个生成" 跑通流程,确认题型质量与期望一致,在执行自动生成任务。
  • 比例配置先从保守开始:开放题比例不要太高(后续教师模型评估成本更高)

测试题管理

点击每个文本块上的 已生成测试题 标签,我们将跳转至【评估-评估数据集】模块,在这里你可以看到已经生成的所有数据集,你可以根据题目类型、题目内容和标签进行筛选:

点击单个题目,可以查看题目详情:

问题、选项、答案都可以自由编辑,你也可以对题目进行打标签、备注、删除等等:

从数据集添加

在以前的项目中,你可能已经使用 Easy Dataset 生成过数据集(训练集),我们也支持直接从已有数据集上标注和生成测试集。

下面我们来到【数据集-单论问答数据集】模块,可以看到之前生成过的数据集:

进入数据集详情页,我们可以直接将当前数据集添加到评估数据集(测试集),同时,系统给原数据集打上 Eval 标签(用于后续筛选/识别):

如果训练集太少或多样性不足,模型有时候会 "死记硬背"。我们也可以把一道现有的数据集题目自动改写生成评估集变体(比如换个问法,或者把选择题改成判断题),看看模型是不是真的理解了。

点击:【生成评估集变体】可以选择要生成的题目类型和数量:

在常规的思路中,一般我们要从所有数据集中划分出一定比例(如 15%)作为测试集。

但是,在小规模的数据集上,如果直接划分出一定比例的测试集可能会导致原有的训练集数量和多样性不足,导致模型训练效果差。

如果使用 Easy Dataset 生成的数据集,我们可以全部用于训练集,另外一部分测试集我们可以直接在现有的数据集上生成变体,或重新从文本块提取。这样既能保证训练集的多样性不会受到损失,还能保证有足够丰富的测试集来支撑最终模型效果的评估。

导入导出测试集

如果你已经有准备好的测试集,只是想使用 Easy Dataset 来做评估任务,可以到【评估-评估数据集】模块直接进行导入:

目前支持从 JSON、XLS、XLSX 几种类型的文件进行导入,需要将文件处理成规定格式:

你可以直接下载对应题型和文件类型的模版,然后按照模版进行补充:

另外,平台还内置了丰富的领域知识数据集,如果你想测试模型在特定领域下的表现,可以直接选择【导入内置数据集】并选择对应学科进行导入:

每个学科下都内置了几百道不同难度的题目(大部分为单选或多选题):

测试集处理完成后,我们也可以直接进行导出(支持自定义导出范围和格式),你可用于其他评估系统:

2. 怎么打分?(自动评估任务)

题出好了,接下来就是让业务模型来做题,系统来判卷。系统支持两种阅卷模式:

模式一:直接计算得分(针对客观题)

对于判断题、单选题、多选题,答案是唯一的。 系统不需要调用大模型,直接用规则代码比对。

我们来到【评估-自动评估任务】模块,点击创建任务,您可以同时勾选多个模型,系统会并发执行多个任务:

就像要真实要对模型进行一场考试一样,我们可以配置本次 "考卷" 的具体题目范围:

  • 题型筛选:比如本次之考察选择题和判断题。
  • 标签筛选 :比如只考查标签为 医疗知识 的题目。
  • 动态采样:如果您想快速获得结果,可以从 1000 道题中随机抽样 50 道。

进入评估任务详情,你可以看到模型在不同题目上的具体得分情况,我们可以根据题目回答结果(正确/错误)以及题目类型(判断、单选、多选)进行筛选:

模式二:教师模型评估(针对主观题)

对于客观题(选择、判断),系统可以自动对齐答案。但对于 简答题开放题,答案往往是多样化的。我们可以选择一个更智慧的 "教师模型"(就像判断老师一样) 对测试模型的回答进行深度评测,给出量化的分数和定性的评语。

系统内置了一份评分标准,不过通用的标准比较宽泛,不一定适用于所有场景,如果你想得到更准确的评估结果,建议根据实际业务场景和数据集的特点定制具体的评分规则:

在评估报告详情中,你可以看到每个题目的具体得分,教师模型的打分以及具体的打分理由:

建议:

  • 同一套评估长期对比时,尽量固定教师模型与评分配置,否则分数不可直接横向对比
  • 先在小样本(如 20 题)跑通,确认裁判标准符合预期,再扩大规模

3. 人工盲测:回归真实直觉的 "竞技场"

虽然自动化评估很方便,但在模型上线的最后阶段,或者两个模型分数咬得很死的时候,还是需要人来看一眼。

盲测任务是什么?

  • 盲测任务 = 把多个模型的回答"匿名化",让评审者只看回答质量做选择/打分
  • 适合:
    • 你希望排除"模型名偏见"
    • 你更在意主观体验(可读性、风格、说服力、完整性等)
    • 开放题/对话型内容的最终质量评估

就像在上个章节中我们讲到到 LMArena,人工盲测对于垂直领域的模型评估同等重要,在实际测试中,系统会隐藏两个模型的回答结果,评判者仅根据回答的质量、逻辑、语气进行主观判断,彻底消除对特定品牌的固有偏见。

我们来到【评估-人工盲测任务】模块,然后点击创建任务,然后配置:

  • 两两对比:从模型库中选择两个你最想对比的模型。
  • 题目范围:选择简答题或开放题并设置抽样数量。

任务开启后,您将进入一个类似 Chatbot Arena 的沉浸式的对比界面:

  • 左右对照:左边展示候选 A 的回答,右边展示候选 B 的回答,但不告诉标注人员具体是哪个模型。
  • 流式加载:系统支持流式输出,您可以实时看到模型的生成过程。
  • 四选一投票 :标注人员只需要根据直观感受,选择"左边好"、"右边好"或者"平局"。
    • 👈 左边更好:左侧回答在准确性、流畅度或安全性上更优。
    • 👉 右边更好:右侧回答更符合你的预期。
    • 🤝 平局:两者难分伯仲,或都存在明显的严重错误。

这种 Side-by-Side 的比较数据,是目前公认最符合人类真实体感的评估方式。

当所有题目投票完成后,系统会 "揭晓谜底" 并生成胜率统计,系统将展示每个模型在对比中获胜的百分比。如果平局较多,说明这两个模型在当前题库下的表现非常接近。

你还可以回顾具体某个题目的回答结果:

回到任务列表,我们能清晰的看到每次盲测任务的结果:

4. 高级用法:自定义评估

如果你有更定制化的模型评估需求(如需要定制处理的风格和侧重点、希望教师模型更关注某些特定维度),可以到【更多-项目设置-提示词配置模型】对模型评估的提示词进行更改,系统全面开放了评估系统的全套提示词,包括:

  • 从领域文献生成测试集的提示词:判断题、单选题、多选题、简答题、开放问题的生成
  • 不同题目执行测评的提示词:从原始题目获取答案
  • LLM 评估提示词:包括简答题和开放问题的评估

具体的评分细则在创建任务中是可以配置的,实际影响的就是提示词中的 {{scoreAnchors}} 变量,在这里的设置可以直接覆盖这个变量,自由度更高。

最后

希望阅读完本期教程,你将学会以下内容:

  1. 理解通用基准在垂直领域的局限性,明确评估的三大核心目标(选型验证、微调效果、RAG优化)
  2. 掌握三类垂直领域评估方法的适用场景(确定性评估、文本相似度评估、LLM as Judge)
  3. 学会多方式构建垂直领域评估测试集(文献提取、训练集转化、自定义导入)
  4. 掌握客观题规则判分、主观题教师模型打分的自动化评估方法
  5. 能设计并执行人工盲测任务,获取贴合实际体感的模型对比结果
  6. 可通过自定义提示词适配不同垂直领域的评估需求
  7. 建立"测试集构建---自动化评估---人工验证"的评估闭环,实现模型效果量化判断

关注《code秘密花园》从此学习 AI 不迷路,相关链接:

如果本期对你有所帮助,希望得到一个免费的三连,感谢大家支持

相关推荐
涡能增压发动积1 天前
同样的代码循环 10次正常 循环 100次就抛异常?自定义 Comparator 的 bug 让我丢尽颜面
后端
Wenweno0o1 天前
0基础Go语言Eino框架智能体实战-chatModel
开发语言·后端·golang
于慨1 天前
Lambda 表达式、方法引用(Method Reference)语法
java·前端·servlet
石小石Orz1 天前
油猴脚本实现生产环境加载本地qiankun子应用
前端·架构
swg3213211 天前
Spring Boot 3.X Oauth2 认证服务与资源服务
java·spring boot·后端
从前慢丶1 天前
前端交互规范(Web 端)
前端
tyung1 天前
一个 main.go 搞定协作白板:你画一笔,全世界都看见
后端·go
gelald1 天前
SpringBoot - 自动配置原理
java·spring boot·后端
@yanyu6661 天前
07-引入element布局及spring boot完善后端
javascript·vue.js·spring boot
CHU7290351 天前
便捷约玩,沉浸推理:线上剧本杀APP功能版块设计详解
前端·小程序