论文归纳-LLM缺陷发现
Beyond Accuracy: Behavioral Testing of NLP Models with CheckList
ACL 2020 best paper, Microsoft
https://github.com/marcotcr/checklist
https://www.alphaxiv.org/zh/abs/2005.04118
held-out accuracy 是评估模型泛化能力的主要方式,但是由于测试集往往不全面,并且包含与训练集相同的偏差,因此可能高估NLP模型的性能。此外,将模型性能总结为一个聚合指标,难以发现模型在哪里失败,以及如何修复它。
CheckList 通过将软件工程中的行为测试(behavioral testing)应用于NLP模型评估来解决上述局限。其核心理念是将模型视为黑盒模型,系统测试模型在不同能力下的输入-输出行为。
CheckList 构建了一个 capabiliity * test type 的矩阵,行为模型的语言能力(capabilities),列为不同的测试类型(test types)。

- 语言能力包含语言理解的基本方面,例如:词汇和词性、命名实体识别 NER、否定等等。
- 测试类型有以下三种:
- 最小功能测试 MFT:作为单元测试。一般是简单的示例,旨在验证模型是否具有特定语言现象的基本理解。即,对于已知标签 y 的输入 x,期望 \(f(x) = y\)
- 不变性测试 INV:在保持标签不变的前提下,对输入进行扰动。例如在情感预测中将“飞往芝加哥”修改为“飞往达拉斯”。即,对于输入 x 和保持标签的扰动 t,期望 \(f(x) = f(t(x))\)
- 方向性期望测试 DIR:对输入进行可预测方向的扰动。例如在积极句子中添加明显消极的短语,使得情感预测为负面。即,对于输入 x 和方向性扰动 d,期望 \(f(x) ≠ f(d(x))\) 且方向可预测
此外,CheckList 还指出可以通过模板和扰动批量构造测试。实验结果显示,CheckList能够发现之前评测方法忽略的模型失败场景。
CheckList的价值在于揭示了两个重要的问题:
- 聚合准确率无法揭示细粒度模型行为;
- 可以通过受控输入变换主动测试某种模型能力。
EVALTREE: Profiling Language Model Weaknesses via Hierarchical Capability Trees
COLM 2025
https://github.com/Zhiyuan-Zeng/EvalTree
https://zhiyuan-zeng.github.io/EvalTree
benchmark: MATH, WildChat
传统评测通常使用整体准确率或预定义类别上的性能描述模型,但这类指标难以回答模型具体在哪些能力上表现较差。EvalTree 的目标是从已有 benchmark 的实例级评测结果中,自动生成人类可理解、粒度合适的 弱点分析 (weakness profile)。
文中弱点分析是一段对模型能力的自然语言描述,例如“使用三角法则分析几何关系”。理想的弱点分析 (W) 需要满足三个要求:
- 低性能识别:模型在该 weakness 对应的样本上性能表现较差;
- 全面性:尽可能覆盖模型在目标数据分布中的不同弱点;
- 粒度合适:不能过于宽泛,也不能具体到单个样本。


EvalTree 的核心方法是构建一个层次化能力树(capability tree)。分为以下四个步骤:
- 使用 LLM 为每个测试样本生成其所需能力的自然语言描述
- 使用 sentence-embedding 将第1步中的能力描述映射为向量
- 递归使用 K-Means 聚类将能力表示向量组织成层级结构,聚类数由轮廓系数自动决定。
- 自底向上地总结每个节点对应的能力,并为每个父节点命名。
从而得到:
然后根据能力树生成弱点分析。具体来说:
- 统计检验(Statistical Test):对遍历到的每个节点进行二项检验,判断该节点对应样本的准确率是否显著低于预设性能阈值 \(\tau\)。同时,对其直接子节点进行相同检验。
- 弱点节点提取(Node Extraction):若当前节点的性能显著低于阈值,并且所有样本数足够的直接子节点也均表现较差,则将该节点提取为 weakness。该条件用于控制弱点描述的粒度,避免将实际只存在于某个细粒度子能力中的问题过度概括为高层能力缺陷。
- 停止条件(Stopping Criteria):当节点包含的样本数量低于预设阈值,或该节点已经被提取为 weakness 时,停止继续向下遍历。
因此,EvalTree 的核心流程可以概括为:
EvalTree主要回答的是“模型在哪些能力上表现较差”,属于对已有失败结果的结构化归纳,而不是weakness discovery。
Dynamic Evaluation of Large Language Models by Meta Probing Agents (DyVal 2)
ICML 2024, Microsoft
https://github.com/microsoftarchive/promptbench
https://zhuanlan.zhihu.com/p/702543751
benchmark: MMLU, GSM8K, BBH partial, ARC-C
models: GPT-4-Turbo, GPT-3.5-Turbo, Gemini-Pro, Llama2-70b-chat, Yi-34b-chat, Mixtral-8x7b-Instruct
尽管现有研究提出了很多benchmark,但是数据污染导致公开benchmark中的评测结果存在“虚假成分”。文章提出了一种基于代理的动态评估协议,称为元探测代理 (Meta Probing Agent, MPA),能够将现有benchmark转化为更加灵活多样的新问题,用于评估和分析LLM。
文章设计了几种原则 (principle) 用于动态生成新问题。这些原则对应于心理测量学中的三类基本能力:语言理解 Language Understanding、问题求解 Problem Solving 和 领域知识 Domain Knowledge。
文章采用了一种对抗式的方式来生成新问题。分为两种Agent:
- Probing Agent:确保新问题在保持原问题核心本质的同时,提供不同的视角
- Judge Agent:确保新问题和原问题语义不变,且符合修改principle,只输出Yes/No。



通过实验,文章得出了以下 insights:
- LLM在动态基准测试上的表现显著下降,意味着之前的benchmark可能存在数据污染的情况。提示词工程只能带来边际提升。
- 多方面分析显示,三种能力存在强关联性,其中语言理解和问题求解相关性最强
- LLM在不同三种基本能力上表现出不同的错误模式(error pattern)
- MPA可用作数据增强方法来提升LLM的性能。
实验的形式很丰富,值得借鉴:混淆矩阵、不同探测原则的消融与组合、提示词工程对评测的影响、使用弱模型作为agent的效果、三种能力间的相关性分析、细粒度错误类型分析、MPA作为数据增强方法。
不足:将probing/judge agent替换为弱模型后效果会下降。
AutoDetect: Towards a Unified Framework for Automated Weakness Detection in Large Language Models
EMNLP 2024 findings, 清华 智谱
https://github.com/thu-coai/AutoDetect
https://zhuanlan.zhihu.com/p/706023553
benchmark: IFEval, GSM8K, MATH, HumanEval
models: Llama2-chat 7b, 13b, 70b, Llama3-Instruct, Mistral-7b-Instruct
benchmark分为静态和动态,存在以下不足之处:
- benchmark是用于对一系列模型进行评估和排名,属于模型无关的。因此,无法有效识别单个模型的固有缺陷、个性化弱点。
- benchmark还存在更新频率低、数据泄露/污染、排行榜泛滥等问题。


文章设计了一个包含3个Agent的框架:
- 主考官 Examiner:建立包含不同考点的分类体系,并针对目标模型的表现动态优化
- 出题者 Questioner:针对每个考点上次生成具有挑战性的问题
- 评估者 Assessor:分析目标模型的回答(尤其是表现不佳的情况),识别出新的潜在弱点
该方法具有较高的弱点检测成功率 ISR。且采用迭代搜索的方式,每一轮中为各知识点生成5个问题,并基于GPT-4生成的参考答案进行打分,得分低表示性能不佳。实验结果显示,随着迭代轮次的增加,模型得分会逐渐下降。
实验中发现的一些LLM的缺陷形式:
- 在统一任务的不同子类上表现出不同的性能,例如在数学应用题上表现良好,但是处理几何相关问题(例如角度计算)时存在困难。
- 大模型可能在复杂任务上表现优异,但仍在简单任务上也可能出错,例如可以完成复杂的算法题,但是在基础的概念上可能出错。
- 大模型在处理复杂指令和多步推理时存在困难,会出现遗漏指令中的部分内容或在多步推理的后期步骤中出错。
不足:
- 仍可能生成不可解的问题,可以通过校验进一步提升流程的鲁棒型。
- Agent依赖能力较强的模型

浙公网安备 33010602011771号