这是 2018 年的英文文章,以下是笔者对他的简单理解(不是翻译)。
原文在:https://huddle.eurostarsoftwaretesting.com/10-things-to-think-about-when-you-test-artificial-intelligence/
原文标题为:10 things to think about when you test artificial intelligence
1. 总结
因为在笔者看来原文内容有一些重复,所以稍微做了一些整理:
- 当前的AI基本都属于“狭义AI”,仅能解决一个范围足够小、目的足够明确的问题——原文第1条
- 构建 AI 的核心要素是数据,没有明确的数据定义就无法测试 AI,没有带代表性的数据就无法准确的测试 AI——原文第5条、第7条
- AI 无法做到真正意义上的 100%正确——原文第6条
- AI 对伦理、法律和社会影响是测试工作中不可忽视的部分——原文第8条、第10条
- 部分算法有自学习能力,针对这类算法,我们需要注意:测试的过程会逐步影响模型效果——原文第2条、第3条、第4条、第9条
2.原文中的十条
2.1 避免将生产环境中各种琐碎情况作为 Case 引入到 AI 的回归测试
原文:Your regression testing pack does not need to include a TrivialPursuits set
原因:能够处理复杂场景问题的 AI(Genral AI、Strong AI)问世可能还要等到几十年之后,当前大多数 AI 都属于狭义 AI (Narrow AI)的范畴——它们可以解决一个范围足够小、目的足够明确的问题。所以我们在测试 AI 时应该基于它所针对的场景和问题来设计回归用例。
2.2 AI 处理相同的输入可能会输出不同的结果
原文:Repeating the same test with the same inputs may not produce the same results
原因:某些 AI 算法(例如:强化学习),前序的推理过程会影响后续推理结果。
2.3 测试越多,越能保障 AI (在遇到类似场景/数据时)的准确性
原文:The more you test something, the more it is going to work
原因:部分算法会基于前序的推理过程会影响后续推理结果,所以测的更多会让他更“聪明”。
2.4 管理好 AI 的最终产物是至关重要的
原文:Managing the outputs is critical
原因:正如上一条说的类似强化学习这样的算法,可以被调教出来,那么调教的过程是否有记录?除此之外,各种配置参数等如何记录也需要进行考虑。
2.5 没有明确的数据需求,就无法构建和测试出可信的 AI
原文:There’s no AI without architecture and design
原因:构建 AI 的核心要素是数据,因此设计 AI 最关键的就是设计信息架构(information architecture)
2.6 不要指望 AI 做到真正意义上的 100%正确
原文:Don’t expect 100%
原因:人也做不到。
2.7 要考虑测试数据是否有代表性
原文:Is your test data REALLY representative?
原因:构建 AI 的核心要素是数据,更明确的来说,AI 能力会受到训练数据(测试集、验证集)的影响,判断AI能力也主要靠测试数据(测试集)的影响。
2.8 要考虑 AI 的伦理/法律/社会影响
原文:What’s the ethical / legal / societal impact?
原因:作为测试者,我们需要把法律和道德要求视为“不成文的要求”
2.9 你的测试会如何影响到最终的结果
原文:Where are the outputs of your testing?
原因:在 AI系统中,测试可能会影响到最终模型的效果。所以我们需要了解我们的测试将会如何影响和改变模型,从而判断是否应该将这些模型推向生产环境。
2.10 测试是唯一可以在 AI 投入生产环境前的对产品研发产生影响的角色,一定要更多的去考虑产品会产生怎样的社会、法律和道德影响
原文:Why do I care about all of these things? I’m a tester?
原因:略