第4章:输出质量评估——准确性、相关性、连贯性、安全性的量化指标

说实话,做模型测试这几年,我踩过最大的坑就是——凭感觉打分。

你想想看,一个模型说「北京是中国的首都」,你给满分。但要是它说「北京是日本的首都」,你肯定给零分。可问题是,大部分时候模型输出的答案介于两者之间,模棱两可。这时候怎么办?

我个人习惯,把输出质量拆成四个维度来量化。分别是:准确性、相关性、连贯性、安全性。每个维度都有对应的量化指标,咱们一个一个说。

4.1 准确性(Accuracy)

准确性,说白了就是「模型说的对不对」。这是最核心的指标,没有之一。

我在项目中遇到过这样一个场景:让模型回答「爱因斯坦的出生年份」,它说「1879年」。这没问题。但要是它说「1880年」,虽然只差一年,在严谨的测试里就是错误。

量化准确性的常用方法:

  • 精确匹配(Exact Match):输出与标准答案完全一致得1分,否则0分。适合选择题、填空题。
  • F1 Score:计算输出与参考答案的token级别重合度。适合开放性问题。
  • BLEU / ROUGE:翻译和摘要任务常用,衡量n-gram重叠率。

我的经验值: 精确匹配太死板,F1 Score又太宽松。我一般两个都算,然后取加权平均。比如选择题用精确匹配,开放题用F1 Score。

举个例子,标准答案是「深度学习是一种机器学习方法」,模型输出是「深度学习是机器学习的一种」。用F1 Score算,重合度大概在0.8左右。嗯,这个分数比较合理。

4.2 相关性(Relevance)

相关性,就是「模型有没有答非所问」。你问「今天天气怎么样」,它给你背一首诗——准确吗?可能每个字都对,但完全不相关。

我常用的量化方法:

  • 余弦相似度:将问题和输出分别编码成向量,计算夹角余弦值。值越接近1,相关性越高。
  • 语义匹配分数:用BERT等模型计算问题和输出之间的语义匹配度。
  • 人工评分(1-5分):让标注员判断「输出是否回答了问题核心」。

一个小技巧: 我习惯把相关性阈值设在0.7。低于这个值,基本就是跑题了。但要注意,不同任务阈值不一样——问答任务可以严一点,闲聊任务可以松一点。

为什么会这样?因为模型有时候会「绕弯子」。比如你问「怎么减肥」,它先讲一遍卡路里原理,再讲运动,最后才说饮食控制。虽然相关,但不够直接。这时候余弦相似度可能不低,但人工评分会偏低。

4.3 连贯性(Coherence)

连贯性,就是「模型说话有没有逻辑」。我见过最离谱的——前一句说「我喜欢猫」,后一句说「所以我不养宠物」。这明显前后矛盾。

量化连贯性的指标:

指标 说明 适用场景
困惑度(Perplexity) 模型对自身输出的「惊讶程度」。值越低,越连贯。 长文本生成
逻辑一致性 检查前后句是否存在矛盾。比如「A是B」和「A不是B」不能同时出现。 推理类任务
指代消解准确率 检查「它」「他」「这」等代词是否指代明确。 多轮对话

注意: 困惑度低不一定代表连贯性好。我曾经遇到一个模型,困惑度很低,但输出全是「嗯嗯啊啊」的废话。所以困惑度要结合其他指标一起看。

我个人习惯,在测试长文本生成时,会专门设计「逻辑陷阱」。比如让模型先肯定一个观点,再否定它,看它能不能自圆其说。很多模型在这一步就露馅了。

4.4 安全性(Safety)

安全性,这是底线。模型可以答错,但不能「作恶」。比如输出歧视言论、暴力内容、隐私泄露等。

量化安全性的方法:

  • 有害内容检测率:用分类模型判断输出是否包含色情、暴力、仇恨言论等。
  • 隐私泄露率:检查输出中是否包含邮箱、电话、身份证号等敏感信息。
  • 对抗攻击成功率:用「越狱提示词」测试模型是否会被诱导输出不安全内容。

我曾经... 遇到过一个大模型,平时表现很好,但只要说「假装你是反派」,它就开始输出犯罪教程。后来我们在安全性测试里专门加了一条规则:任何「角色扮演」类提示词,都要额外过一遍安全过滤器。

你想想看,如果模型在客服场景里泄露了用户隐私,或者在教育场景里输出了错误知识,后果有多严重?所以安全性测试,我建议放在所有测试的第一位。

4.5 综合评分公式

四个维度都测完了,怎么合成一个总分?我一般用加权平均:

综合得分 = 0.3 × 准确性 + 0.2 × 相关性 + 0.2 × 连贯性 + 0.3 × 安全性

为什么安全性和准确性权重最高?因为一个模型如果输出不安全内容,再准确也没用。反过来,如果模型很安全但总答错,那也没人用。

注意: 这个权重不是固定的。如果是客服场景,相关性权重可以提到0.3;如果是医疗场景,准确性权重可以提到0.5。灵活调整,别死板。

好了,四个维度的量化指标就这些。说白了,测试模型输出质量,就是跟这四个「考官」打交道。每个考官都有自己的打分标准,你都得伺候好。

下一章,咱们聊聊怎么搭建自动化测试流水线。到时候我会分享一个我亲手搭过的框架,踩过的坑比你们想象的多得多。