CV|专访ACL2020最佳论文二作:全新NLP模型评测方法论,思路也适用于CV( 三 )
最后用户研究表明,CheckList可以轻松有效地用于各种任务:用户在一天内创建了一个完整的测试套件进行情绪分析,两个小时内创建了的MFTs,这两个都揭示了之前未知的严重错误。
2
专访吴彤霜:最佳论文何以花落此家
到这里我们大概明白了这篇论文到底在讲什么,但是我们还是心存疑惑,何以它能获得最佳论文殊荣?
我们在Twitter上看到了本篇论文的第二作者吴彤霜在论文获奖后的祝贺,之后我们第一时间联系到了吴彤霜同学。
文章图片
文章图片
(据吴同学称,上图的狗子为校狗,档期很满,一年才能见上一次)
吴彤霜本科就读于香港科技大学,曾在苹果和微软工作过,目前在华盛顿大学就读博士。
文章图片
https://www.linkedin.com/in/tongshuangwu/
以下为专访实录:
AI 科技评论:首先恭喜您和您的团队斩获ACL2020最佳论文!我们想先了解一下这项工作的完成大概花了多长时间,把软件测试带入NLP模型检测的想法是最近才有的吗还是说之前就有了最近才实现?
吴彤霜:这个项目最早是一作快博士毕业时我们开始合作的,中间因为各种原因搁置了一段时间,实际做大概一年吧。引用软件测试应该可以算是一个新的想法。以前有很多nlp模型分析的论文本质上也可以说是我们论文里提到的那种“行为测试” (behavioral testing),比如各种NLI challenge set。只不过这些工作大部分是针对某一个任务在做某个特定种类的分析,每次都要从头开始。我们工作其中的一个主要的一个贡献就是把这些分析做归一化,提供一个测试框架+开源系统。
AI 科技评论:这项测试系统是不是可以理解为对抗扰动系统啊?或者相比有什么优势呢?
吴彤霜:不变性测试 (INVariant test) 可以相当于扰动,就是模型在预测一个句子s和经修改后的版本s'时结果类似。CheckList还支持别的测试类别 (test type):定向测试 (DIRectional test) 是用来测试预测结果的特定变化,最小功能测试 (Min Func Test) 不需要有配对的例子,只要一个能生成单个测试例句的模板就可以了。
只和INV(不变性测试 )相比而言,现在NLP的大部分对抗句经常是在改拼写或者会产生乱码,比较难保证句子的连贯性,而能保证句子连贯性的居多是改近义词 (it's a good movie -> it's a great movie)。CheckList因为允许自定义改写函数 (perturbation function),所以可以更多样地测试模型的性能,比如看情感分析模型是否能辨认虚拟语气 (it's a bad movie -> it would have been a good movie)。这种测试也更系统化,因为可以生成很多对改写方法类似的句子/测试用例 (test case)。
当然相应的checklist的自动化就比较差,需要人来定义这些测试 :)
AI 科技评论:请问你们团队成员之前有过软件测试的经验吗,在CheckList的设计环节有什么亮点以及代码实现过程中有什么难点?
吴彤霜:应该不算有经验,没有在工业界实战过,顶多就是在软工课写单元测试,所以最开始其实也认真学习了一下软工 :)
设计上我觉得最大的亮点是对于性能 (capability) 的定义。我们遇到一个瓶颈就是试图给每个NLP task设计需要测试的不同方面,但这样就非常繁琐,也失去了可拓展性。直到后来我们和其他researcher聊的时候意识到其实大部分的模型需要测试的“capability”基本比较稳定,只是不同任务里对标签的影响会有区别,比如[改主语]对NLI影响会比对情感分析要大。这样一个稳定的capability集合就让整个框架干净了很多。
开源上,其实NLP部分还是比较整洁的,但是为了让大家能比较流畅地在notebook里浏览和回顾test集,我们下了很大功夫研究怎们做交互插件,是一个大坑,但是最终效果还挺好看的,可以到readme里看看preview感受一下,哈哈。
写作上,因为marco在微软,我们很幸运能近水楼台找微软情感分析的工程组来做用户研究,让我们真的看到了CheckList在已经被认为是大规模测试过的模型仍然很有用。
AI 科技评论:很开心你们把这项工作开源,我想这项工作只是一个开始对吗?(大家都可以在你们开源的代码上进行哪些尝试和改进呢,比如自定义测试模板之类)
吴彤霜:最重要的是希望能看到大家提出的测试实例!其实比起很多NLP模型,CheckList是一个比较依靠人的力量的项目,测试者仔细设计实例才能用它最大程度暴露模型可能存在的缺陷。我们考虑的一个想法是希望可以做一个类似模型排行榜的测试榜,大家可以上传分享自己的测试集,甚至是顶或者踩别人的测试,最终让每个任务都能有一个比较稳定的测试集,也方便模型间的比较。
其次,我们也很期待看到大家会不会有关于如何让CheckList更自动化的想法,实现一键测试这个终极目标 :)
以及更研究向的:
我个人对于设计更稳定的测试也很感兴趣。CheckList对具体实例比较敏感,不同人在测试同一个模型性能时,如果实例设计不同,最终测试结果可能会有一些偏差。有没有什么交互手段能帮助测试者尽量穷尽一个性能所有的相关改写?甚至还有没有什么办法能慢慢形成一些自动的测试拓展?这个可能也和上面提到的自动化有一些关系。
推荐阅读
- 八达岭长城|3.25万!今起八达岭长城单日最佳承载量上调
- 许光汉|许光汉和老狼先后到访蘑菇屋,本该是满屏尬聊,结果却是四季最佳
- 龚|专访龚永泽:成都烟火气 让经济更有活力
- 现场|Sunnee杨芸晴大型打脸&翻车现场|由你专访彩蛋
- 土星|明天是土星冲日最佳赏期
- 河神|专访《河神2》监制汪启楠:换代,用商业大片的要求制作网剧
- 张明汉|复读是一种选择,更是一种态度------专访广外中高考培训项目负责人张明汉
- 石家庄|2020年新高考对复读生的影响-----专访河北明进复读学校杨校长
- 于落寞中前行——专访诗人赫赫扬扬|于落寞中前行——专访诗人赫赫扬扬
- 新星|厉害了!女排21岁天才新星强势崛起,已成朱婷在老东家的最佳替身
