← 全部极客知识库

大模型通识 / AI 理论基础

12. 怎样判断 AI 有没有进步:指标、基准与真实任务

原文备份 · 第 13 / 14 篇 · 查看极客时间原知识库 ↗

本篇目录 · 12 节

来源:AI 理论基础

假设你给复习助手换了一个模型。新模型写出的卡片更长,解释更自然,你试了三篇笔记,感觉它进步很大。

第二天,你发现它把一个关键概念讲反了。再检查昨天的结果,旧模型虽然不够会表达,却没有犯这个错误。此时,“哪个模型更好”就不再是看一眼回答能决定的事。

上一篇解释了内容怎样生成。本篇接着回答:怎样知道生成结果值得使用,以及一次改动是否真的带来改善?我们会从可手算的分类指标出发,走到基准测试、人工评价和模型评分,最后为复习助手做一份小型评估方案。

文中的数据、卡片与比较结果都是教学构造,不是实际模型测评。无需安装软件;你只需要能计算比例,并愿意把“好不好”说得具体一点。

一、先明确,你要评估的究竟是什么

“这个 AI 很强”可能指几件不同的事:它在考试题上答对得多,写出的卡片忠实于资料,或者整个助手能把卡片正确保存下来。这些证据不能互相替代。

评估对象 具体问题 不能单独证明什么
模型的某种能力 在指定材料和规则下,答对多少题? 整个应用没有程序错误
一套生成方案 给定笔记与提示词,卡片是否合格? 换一批领域和格式仍然可靠
完整应用 导入、生成、修改、保存后,结果是否可用? 改善一定来自模型本身

假如同时换模型、改提示词、修复了笔记读取,你可以说“新方案表现改善”,但不能只凭这次比较,把全部改善归给模型。

因此,评估的第一步不是寻找指标,而是写下一个可以检查的目标。例如:

给定一段学习笔记,生成一道可回答的复习题;答案忠实于笔记,缺少必要信息时说明不足。

这句话没有“智能”“优秀”等宽泛形容词,却已经告诉我们该准备什么输入、检查什么结果。它是下面所有评分的起点。

二、准确率为什么可能掩盖真正的问题

设想助手还有一个“卡片检查器”:判断生成的卡片是否存在内容问题,把可疑卡片标出来。

先看一批假想的 100 张卡片,其中 90 张正常、10 张有问题。如果检查器一律说“正常”,它的准确率,Accuracy仍有 90%:100 次判断中有 90 次碰巧正确。

但它一张问题卡片也没发现。这个数字没有算错,只是没有充分回答“检查器能不能找到问题”。类别比例悬殊时,仅看整体准确率尤其容易产生这种误解。Google 机器学习课程:准确率、精确率与召回率

现在换一批更小、便于手算的 20 张卡片。我们先按明确标准人工复核,得到参考标签:8 张有问题,12 张正常。检查器的结果如下。这里把“有问题”规定为正类;正类只是我们重点检测的类别,不表示好事。

参考标签\检查器判断 标为有问题 标为正常 合计
实际有问题 6:找对了,TP 2:漏掉了,FN 8
实际正常 4:误报了,FP 8:正确放行,TN 12
合计 10 10 20

这叫混淆矩阵:把正确和错误按实际类别、预测类别拆开。TP、FP、FN、TN 分别是真正例、假正例、假负例、真负例。暂时不记英文缩写也没关系,先抓住“找对、漏掉、误报、正确放行”四种情况。

这里的“实际”指已经核查的参考标签。真实项目中,参考标签也可能标错或有争议,不能因为进入表格就变成不可质疑的真理。

三个指标,分别在数哪一堆卡片

准确率:所有判断里,判断正确的占多少?

准确率 =(找对的问题卡片 + 正确放行的正常卡片)÷ 全部卡片
       =(6 + 8)÷ 20 = 70%

精确率,Precision:被标为有问题的卡片里,真正有问题的占多少?

精确率 = 找对的问题卡片 ÷ 所有被标为有问题的卡片
       = 6 ÷(6 + 4)= 60%

召回率,Recall:所有实际有问题的卡片里,找回了多少?

召回率 = 找对的问题卡片 ÷ 所有实际有问题的卡片
       = 6 ÷(6 + 2)= 75%

最容易记住的区别在分母:精确率看“标出来的那一堆”,召回率看“本来应该找出来的那一堆”。 定义与公式也可对照 scikit-learn 的评估文档。分类指标定义

不要把“精确率”和日常口语里的“准确”混用。检查器说“我有 75% 的召回率”,不是说它发出的每次警报都有 75% 的可能正确;在这批数据中,警报的精确率是 60%。

三、指标之间的取舍,来自错误的代价

问题卡片漏过去,用户可能学错;正常卡片被标出来,用户要多花时间复核。这是两种不同损失。

如果检查器的作用只是提醒你再看一眼,可以接受一定误报,争取少漏问题。如果它会自动删除被标记的卡片,就应更加重视误报带来的损失。指标选择需要结合后续动作。

不少分类器先输出一个分数,再通过阈值决定是否标记。降低标记门槛,会让更多样本进入“有问题”一侧。它可能多找出问题,也可能多制造误报;精确率不保证随着门槛变化而严格单调变化。阈值是在模型预测之外作出的决策选择,应在开发或验证数据上选择,不能反复查看最终测试结果挑最好的门槛。scikit-learn:调整分类阈值

你可能还会见到 F1,它把精确率与召回率组合为调和平均:

F1 = 2 × 精确率 × 召回率 ÷(精确率 + 召回率)
   = 2 × 0.60 × 0.75 ÷(0.60 + 0.75)≈ 0.667

它不是两个百分比的普通平均,也没有包含真负例 TN。因此,F1 可以帮助比较,却不能替你决定“漏一张错误卡片”和“误报一张正常卡片”哪个更严重。

还有两个边界:如果检查器一张卡片也没标出来,精确率的分母是 0,不能擅自宣布它是 100%;如果评估材料里根本没有问题卡片,也无法通过这批材料检验问题卡片的召回能力。软件可能按约定返回数值,报告时仍应说明这个情况。

四、生成内容没有唯一措辞,怎样给分

分类可以核对类别,但复习题可能有很多正确表达。若只要求输出与某份参考答案逐字相同,就可能把合格改写判错。

仍用上一篇的笔记:

训练时根据损失更新参数;普通推理时使用已经学到的参数进行计算。

下面是三个构造的输出:

输出 可以怎样判定
问:普通推理是否通常需要更新参数?答:不需要。 抓住笔记要点,简短但可用
问:模型每回答一次就一定更新参数吗?答:不是。普通推理通常使用已有参数。 表达不同,同样可以合格
问:普通推理是否进行计算?答:完全不进行,只读取现成答案。 句子通顺,但内容错误

要评估它们,可以先定义一份评分规则,Rubric。下面是本教程为这个小任务设计的规则,不是某个通用标准:

维度 检查方法 本例的合格条件
忠实性 对照原文逐条检查结论 不歪曲、不增加无依据的知识结论
可回答性 只看题目与笔记尝试作答 题目清楚,资料足以确定答案
任务遵循 对照用户要求 确实生成一道题,并附答案
复习价值 看它考查什么 考查核心概念,不只问无关字面细节

对这个任务,可以预先规定:内容错误或题目无法回答,就不能算合格;表达风格另外记录。这比“内容 2 分、文采 5 分,平均还不错”更符合复习工具的用途。

人工评价也需要这样的明确标准。关于自然语言生成评估的研究发现,不同论文使用的质量术语与评估设计差异很大,报告不清楚会妨碍比较。写下“忠实性究竟怎样判”,比只给一个“人工评分 4.5 分”更容易复查。人工评价方法与报告研究

若两位检查者意见不同,先定位分歧:是原文含糊、评分规则含糊,还是某人漏看了一条信息?保留分歧和依据,再决定如何裁定。多人评分不会自动消除含糊的标准。

五、程序、人工和模型评分,各自适合做什么

评估生成内容时,不必把所有检查都交给同一种方法。

确定的条件,可以先用程序检查。 有没有问题字段、能否解析为规定格式、输出是否为空,都适合自动检查。但格式检查通过,只能证明对应格式条件成立。

需要理解资料的地方,要做内容核对。 个人项目起步时,可以自己对照原文检查一小批结果。如果没有足够背景判断,应引入可信参考材料或熟悉领域的人,而不是用自己的流畅感代替事实核查。

模型也可以帮助评分。 给另一个模型原始笔记、生成结果和评分规则,让它指出不被原文支持的结论,通常比只问“这张卡片好吗”更便于复核。它可以协助处理较多样本,但它给出的理由同样可能有错。

这类方法常称为 LLM-as-a-Judge,即用大语言模型充当评判者。MT-Bench 与 Chatbot Arena 的研究讨论了位置偏差、偏好冗长回答、自我偏好以及推理能力有限等问题:同一份答案,排在前面还是后面,都可能影响某些模型的比较判断。LLM-as-a-Judge 研究

对复习助手,可以采用下面的实际做法:先人工检查一批答案,再看评分模型在同一批材料上是否识别出那些错误;记录分歧,必要时修改评分规则。做两份答案的比较时,可以隐藏模型名称、交换展示顺序,检查结论是否变化。

这些措施降低某些干扰,不保证评分变得客观无误。尤其不能把“生成模型说自己正确”和“另一个模型也说正确”当成两份完全独立的事实证据。模型可能共享相似的盲点,最终仍需回到资料与可检查的结果。

六、基准测试能告诉你什么,不能告诉你什么

基准,Benchmark通常包含一组任务、数据和评测约定,让不同系统在相对一致的条件下比较。它的价值是提供共同参照,减少每个开发者从头出题的负担。

例如 MMLU 的原始设计覆盖 57 个学科任务,可用于观察模型在多种知识与问题上的表现。但学科题表现,并不能直接等价为“能根据我的中文笔记写出适合我的复习题”。MMLU 原始论文

读一项分数时,至少要把下面几个问题连起来看:

  • 题目来自什么语言、领域和难度?与自己的使用场景有多接近?
  • 测的是哪个模型版本,给了什么提示、上下文和工具?
  • 是一次作答,还是多次生成后选择结果?消耗的计算与时间是否可比?
  • 分数怎么汇总?平均数下面是否藏着某类任务的明显失败?

如果两个结果的测试条件不同,分数差不能直接解释为模型能力差。公开题目也可能进入训练或开发过程,材料重合会削弱用它估计“未见任务表现”的证据力度;但不能仅凭高分就断定存在数据污染。

HELM 的研究采用多场景、多指标评估,把准确性之外的校准、鲁棒性、效率等纳入比较,并强调标准化条件。这提示我们:模型表现有多个维度,用一个总榜名次描述全部能力会损失信息。HELM 论文

基准分数适合帮助形成候选范围。最终是否适合你的项目,还要让候选方案处理你真正会遇到的材料。

七、为复习助手准备一份最小评估方案

不必一开始就建庞大平台。先拿纸或表格,为项目设计一份能发现明显问题的检查集。

第一步:把任务和失败条件写下来。 沿用本篇目标:每段笔记生成一道可回答、忠实的题;必要信息不足时指出不足。提前说明哪些情况算失败,避免看完答案后迁就某个模型。

第二步:先设计 12 个案例。 下面是起步用的覆盖安排,不是足以代表所有用户的统计样本:

材料类型 数量 重点检查
内容完整、概念清楚 4 能否出题,并保留关键限定
含“不”“只有”“通常”等限定 3 是否颠倒意思或扩大结论
资料缺少必要条件 2 是否指出缺口,而非编造答案
表达凌乱但信息完整 2 能否整理后保持原意
两段内容相互冲突 1 是否揭示冲突,而非静默选一个说法

还可以选一段材料做配对检查:只改排版而不改含义,题目内容应保持合理;对同一个事实提问,把资料里的“会”改成“不会”,答案则应随含义变化。这属于检查特定行为的思路。CheckList 研究说明,围绕能力和输入变化设计测试,可以发现整体准确率没有暴露的问题。CheckList 论文

第三步:给每个案例记录预期依据。 不强制写一份唯一标准措辞,可以写“必须保留‘通常’”“不得声称推理没有计算”“应指出日期缺失”。这些记录比一句“答案差不多”更容易用于复核。

第四步:在相同条件下比较。 若要比较模型,就尽量固定材料、提示、工具权限和输出要求,并记录版本与生成设置。若输出有随机性,可以预先安排每个案例重复几次,保存全部结果,不只挑最好的一次。重复结果仍来自同一案例,不能假装成同等数量的独立任务。

第五步:看失败分布,再看总体比例。 记录每类问题、内容合格率、必要时的等待时间与调用成本。如果卡片内容正确却没有保存,完整应用仍然失败,应检查保存链路。

这 12 个案例一旦被你反复用来修改提示词,就属于开发检查集。最终再准备一批未参与这些决定的新材料,才能获得相对独立的检验。这里直接承接第 09 篇的数据分工,不是给文件夹换个“测试”名字就能实现独立。

八、一次提高,究竟说明多大范围的进步

假设在上述 12 个构造案例中,旧方案合格 8 个,新方案合格 9 个。

你可以准确地报告:在这次检查中,合格数从 8/12 变为 9/12,合格率从约 66.7% 变为 75%,提高约 8.3 个百分点。不能直接宣布“面对所有笔记都提高了 8.3 个百分点”。案例太少、覆盖有限,生成与评分也可能波动。

还要看是哪一个变好了、有没有别的变差。总数增加 1,既可能是修复 1 个,也可能是修复 3 个、同时弄坏 2 个。后者可能暴露值得重视的退步。

如果你的实际资料九成是技术笔记,评估集却九成是诗歌,即使样本很多,也不见得回答了实际问题。反过来,专门搜集困难反例很适合排错,但它们的失败比例也不能直接当作日常用户的失败率。

因此,一份有用的评估结论应说明:在什么材料、什么规则和什么条件下,哪方面改善了,哪方面还不确定。 小评估仍然有价值,只要不把它的结论扩张到证据之外。

九、五道理解检查

  1. 在本篇 20 张卡片的矩阵中,准确率、精确率、召回率分别是多少?若你最关心减少漏检,应重点观察哪个指标,同时留意什么代价?
  2. 检查器一张卡片也没标为有问题,能否说“它从未误报,因此精确率 100%”?
  3. 两份复习题措辞不同,但都忠实于资料、可回答且符合要求,是否一定要把其中一份判错?
  4. 某模型基准分数更高,评分模型也更喜欢它的长回答,是否足以证明它更适合你的复习助手?
  5. 在 12 个案例上反复修改提示,最终从 8 个合格变成 9 个。你可以报告什么,还需要做什么?

参考答案

  1. 分别为 70%、60%、75%。少漏检要重点看召回率,同时留意误报数量和额外复核负担,不能只追求一个数值。
  2. 不能。它没有正类预测,精确率分母为 0;应说明这一情况,而不是按直觉填 100%。若实际存在问题卡片,其召回率为 0。
  3. 不一定。开放生成任务可以有多个合格答案,应按预先规定的内容与任务标准判断,而非一律逐字匹配。
  4. 不足。还需检查基准与场景的关系,以及评分模型是否偏好长度。用自己的材料对照事实与任务要求,才能得到更贴近项目的证据。
  5. 可以报告开发检查集上的 8/12 与 9/12,并列出修复与退步。不能当成独立测试结论;还应使用未参与调整的新材料,并记录波动和评估范围。

从 AI 基础,走向大模型原理

第一部分到这里结束。我们从“模型怎样从数据中学习”出发,经过表示、概率、神经网络、训练、泛化、反馈与生成,最后学会检查它是否真的完成了任务。

回到最初的个人复习助手,你现在应该能把问题说得更清楚:是输入缺信息、训练目标与需求不一致,还是生成过程出错?是模型内容能力不足,还是应用保存失败?哪种证据能支持改进,哪种只是一次好看的演示?

第二部分会把这些基础放进大语言模型的具体机制中。第一篇从最靠近输入的地方开始:《文字怎样进入模型:Token、分词与文本表示》。先弄清模型实际上收到了哪些单元,再逐步理解它怎样利用上下文、生成回答和参与任务。


上一篇:生成式 AI:模型怎样从识别内容走向生成内容 · 第一部分大纲 · 第二部分大纲

资料观察基准:2026 年 10 月 3 日。本文的检查集与评分规则为教学设计,未经实际模型实验验证。