|专访ACL2020最佳论文二作:全新NLP模型评测方法论,思路也适用于CV( 二 )



图1
3、What is CheckList
CheckList包括一个通用语言能力和测试类型的矩阵 , 有助于全面的测试构思 , 以及一个快速生成大量不同测试用例的软件工具 。 从概念上讲 , 用户通过填写矩阵中的单元格来“检查”模型(图1) , 每个单元格可能包含多个测试 。 CheckList应用了“测试与实现脱钩”的行为测试原则 , 即将模型视为一个黑盒 , 允许对不同数据上训练的不同模型进行比较 , 或者对不允许访问训练数据或模型结构的第三方模型进行比较 。
4、What to test:capabilities
CheckList通过提供适用于大多数任务的语言能力列表 , 指导用户测试什么 。 CheckList引入了不同的测试类型 , 比如在某些干扰下的预测不变性 , 或者一组“健全性检查”的性能 。
虽然测试单个组件是软件工程中的常见实践 , 但现代NLP模型很少一次只构建一个组件 。 相反 , CheckList鼓励用户考虑如何在手头的任务上表现出不同的自然语言能力 , 并创建测试来评估这些能力的模型 。 例如 , 词汇+POS能力取决于一个模型是否具有必要的词汇 , 以及它是否能够恰当地处理具有不同词性的单词对任务的影响 。 对于情绪 , 我们可能需要检查模型是否能够识别带有积极、消极或中性情绪的单词 , 方法是验证它在“这是一次很好的飞行”等示例上的行为 。
基于此 , 作者建议用户至少考虑以下性能(capabilities):

  1. 词汇+POS(任务的重要单词或单词类型)
  2. Taxonomy(同义词、反义词等)
  3. 健壮性(对拼写错误、无关更改等)
  4. NER(正确理解命名实体)
  5. 公平性
  6. 时态(理解事件顺序)
  7. 否定
  8. 共指(Coreference) ,
  9. 语义角色标记(理解诸如agent、object等角色)
  10. 逻辑(处理对称性、一致性和连词的能力) 。
通过以上 , CheckList实现包括多个抽象 , 帮助用户轻松生成大量测试用例 , 例如模板、词典、通用扰动、可视化和上下文感知建议 。 然而此功能列表并非详尽无遗 , 而是用户的一个起点 , 用户还应提供特定于其任务或域的附加功能 。
5、How to test
作者提示用户使用三种不同的测试类型来评估每个功能:最小功能测试、不变性和定向期望测试(矩阵中的列) 。
1)最小功能测试(MFT):它是受软件工程中单元测试的启发的一组简单的示例(和标签)的集合 , 用于检查功能中的行为 。 MFT类似于创建小而集中的测试数据集 , 尤其适用于在模型使用快捷方式处理复杂输入而不实际掌握功能的情况下进行检测 。
|专访ACL2020最佳论文二作:全新NLP模型评测方法论,思路也适用于CV
本文插图

2)不变性测试(INV):当对输入应用保留标签的扰动并期望模型预测保持不变时 。 不同的功能需要不同的扰动函数 , 例如 , 更改NER情感功能的位置名称 , 或者引入输入错误来测试健壮性能力 。
|专访ACL2020最佳论文二作:全新NLP模型评测方法论,思路也适用于CV
本文插图

3)定向期望测试(DIR):与不变性测试类似 , 只是标签会以某种方式发生变化 。 例如 , 我们预计 , 如果我们在针对某家航空公司的推文末尾添加“You are lame.”(图1C) , 情绪不会变得更积极 。
|专访ACL2020最佳论文二作:全新NLP模型评测方法论,思路也适用于CV
本文插图

6、可视化效果
调用test.visual_summary
|专访ACL2020最佳论文二作:全新NLP模型评测方法论,思路也适用于CV
本文插图

在代码中调用suite.summary(与test.summary相同)或suite.visual_summary_table 显示测试结果如下:


推荐阅读