60 秒回答模板

测试大模型输出准确度时,我会先定义准确度的口径,因为生成式输出不一定只有一个标准答案。对有明确答案的问题,可以建立黄金答案和事实依据,做 exact match、关键词、结构化字段或数值容差校验;对开放式回答,要设计 rubric,从事实正确、是否回答问题、完整性、指令遵循、格式、拒答合理性和安全性打分。测试集要覆盖高频场景、边界场景、历史 badcase、容易幻觉的问题、无答案问题、长上下文、多轮追问和格式约束。执行上可以分三层:自动规则检查结构、引用、数字和禁止项;模型评审辅助判断语义正确,但要和人工标注校准;人工抽检负责高风险和争议样本。由于 LLM 输出有非确定性,回归测试要固定模型版本、prompt、参数和评测集,记录多次采样结果,用通过率、平均分、失败类型和置信区间看稳定性。上线后还要把用户反馈、投诉、人工纠错和线上 badcase 回流到测试集,形成持续回归。

考点 测试金字塔
难度 真实面经题
回答目标 建立 LLM 准确度测试口径

深入解析

01

先定义准确度 oracle

大模型输出准确度不能只靠肉眼感觉。测试前要定义 oracle:哪些题有唯一标准答案,哪些题允许多种等价表达,哪些题只能按评分 rubric 判断。事实问答、结构化抽取、摘要、客服回答和工具调用的准确口径都不同。

02

评测集要覆盖真实风险

测试集应来自高频真实请求、关键业务路径、历史 badcase、边界输入、无答案输入、长上下文、多轮追问、格式约束和安全拒答。只用少量正常样例会高估准确率,也无法发现幻觉、答非所问、格式错误和上下文丢失。

03

自动化断言和人工评审要结合

可自动化部分包括 JSON schema、必填字段、数值范围、关键词、引用来源、禁止内容和工具参数。语义正确性、完整性和拒答合理性可以用 LLM-as-judge 辅助,但必须用人工标注样本校准,不能把评审模型的分数直接当真值。

04

非确定性输出要用稳定性口径

LLM 同一输入可能多次输出不同答案。回归测试要固定模型版本、prompt、参数、知识库版本和评测集,必要时多次采样,看通过率、平均分、方差和失败类型。不能因为一次通过就认为准确度稳定。

05

线上反馈要回流成回归资产

准确度测试不是上线前一次性工作。线上点踩、投诉、人工纠错、用户追问和安全拦截样本要进入 badcase 池,经清洗标注后加入回归集。每次模型、prompt、知识库或工具链变更,都要跑核心集和增量 badcase 集。

易错点

  • 用字符串完全匹配测试所有生成答案,导致等价正确回答被误判。
  • 只测正常问题,不覆盖无答案、幻觉、长上下文、多轮和安全拒答。
  • 把 LLM-as-judge 分数当成绝对真值,没有人工校准。
  • 没有固定模型、prompt、参数和评测集,回归结果不可复现。

面试官追问

没有唯一标准答案时怎么测准确度?

用 rubric 定义事实正确、相关性、完整性、指令遵循、格式和安全等维度,结合人工标注和评审模型辅助打分。

LLM-as-judge 可以完全替代人工吗?

不建议。它可以提升规模和一致性,但需要人工黄金集校准,尤其是高风险、事实性和争议样本。

同一个用例有时通过有时失败怎么办?

先固定版本、prompt、参数和依赖,再多次采样统计通过率和失败类型。对核心路径要设稳定性阈值,而不是只看单次结果。

测试集应该如何更新?

从线上 badcase、用户反馈、投诉、人工纠错和新功能变更中补充样本,标注后进入核心回归集或专题回归集。