迈向行为驱动的人工智能发展

234 阅读13分钟

image.png 图1:行为驱动的人工智能开发将模型迭代集中在评估和改进特定的真实世界的使用案例上。

构建人工智能驱动的系统原型从未如此简单。只要有一点编程知识和几个小时,你就可以为你的笔记建立一个聊天机器人,一个基于文本的图像编辑器,或者一个总结客户反馈的工具。但是,在玩了一会儿你的原型后,你可能会发现它并不像你最初预期的那样好用。你的系统可能会编造事实,或者用种族主义的建议来回应。你将如何评估你的模型并预测它在部署中的表现?

对人工智能系统进行基准测试的典型过程是围绕着以模型为中心的指标进行的。计算一个指标(F1分数,精度等),如果它增加了,你就会朝着正确的方向发展。但是,这些指标是过度简化的目标,将模型行为的复杂性打磨掉了,不能完全代表一个模型的性能。一个指标可能会告诉你,你的模型能在多大程度上预测句子中的下一个词,但它不会告诉你,你的模型在不同的、真实世界的使用案例中的事实准确性、逻辑性或公平性如何。生成式人工智能系统,如ChatGPT稳定扩散,使评估更具挑战性,因为没有明确的指标可以总结其性能。

在创建已部署的人工智能产品时,从业人员反而关注他们客户的具体用例,以及他们的模型是否能满足这些用例。在与18位人工智能从业者的访谈中,我们发现他们不断收集用户反馈,并开发出他们期望部署的模型具有的行为的 "黄金测试集"。我们把这种行为驱动的 人工智能开发,这种开发过程专注于评估和更新模型,以提高真实世界用例的性能。虽然聊天机器人A可能听起来更像人类,但如果聊天机器人B能产生客户喜欢的简洁而准确的答案,从业者就会部署它。

人工智能评估工具的格局主要围绕着以模型为中心的指标,而这些指标并没有捕捉到重要的行为,比如这些聊天机器人的特征。虽然有一些专门用于行为驱动开发的工具,如公平性 工具包稳健性 分析 ,但从业者最终还是把不同的工具拼凑成难以维护和复制的临时脚本或计算笔记本。

我相信,有一组抽象概念可以根据实践中的模型用例来统一人工智能评估。这一理念围绕着模型行为:总结实例子群的输出模式的指标。这个简单的概念可以编码任何模型评估或分析,从公平性审计到语言模型的幻觉。我们用**Zeno展示了这一点,Zeno**是我们为行为驱动的开发建立的一个互动平台,支持互动的数据探索、切片和报告。通过使用Zeno调查他们自己的模型,从业人员已经能够确定重大和可操作的问题,如偏见和系统故障。

什么是模型行为?

字典将行为描述为一个有机体所做的涉及行动和对刺激的反应的任何事情。 在人工智能系统的情况下,模型行为 是对输入数据(刺激)的一个有语义的子组的特定输出模式。我所说的有语义的,是指可以用人类可理解的概念来描述的子组,如 "背景有噪音的音频 "或 "认同为女性的人"。同样,输出的模式可以是 "高音频转录错误 "或 "低贷款批准率"。

行为可以被量化为数据子群的指标,通常使用与以模型为中心的评估所使用的相同指标。但与整个数据集的汇总指标不同,以行为为中心的开发中的指标是对特定的 的行为模式,比如一个图像生成模型产生无法理解的文本的频率。对模型行为的测试就像特定科目的考试,而总结性指标则类似于智商测试。

image.png

图2. 模型行为是如何从数据集中定义的。行为是数据的子组(通常由元数据的组合来定义),由一个特定的指标来量化。对于来自文本到图像模型的 "模糊的文本 "这一行为例子,"有文本的图像 "的元数据列可以用来创建一个子组,在这个子组上可以计算出衡量文本清晰度的指标。

模型行为是一个相对简单的概念,但是对行为进行编码在实践中可能是一个挑战。实践者可能没有足够的数据来验证或修复重要的模型行为,不得不收集或产生更多的数据。如果他们有大量的数据,他们需要有办法将其细分为有意义的实例组--我怎样才能找到所有有文字的图片?最后,对于每个子组,从业者必须得出适当的指标来量化行为的普遍性--我如何检测模糊的文字?简而言之,行为驱动的开发需要足够的 数据 能够代表预期的行为 和 元数据 来定义和量化这些行为。

行为驱动的人工智能开发平台

基于行为的人工智能开发框架的优点是,它仍然是 数据和模型不可知。 虽然每个ML任务的具体行为会有很大的不同,但数据和指标的子群是普遍的概念。

为了测试这一理论,我们建立了一个名为Zeno的行为驱动的人工智能开发平台。Zeno是一个平台,使用户能够探索数据和模型输出,互动地创建数据子群,并计算和量化模型行为。 Zeno由Python API和用户界面组成,前者用于提供分析所需的数据,后者用于交互式地创建子群和评估行为。

image.png

**图3.**Zeno的界面显示了Imagenette数据集和图像分类。右边是显示输入图像和模型输出的实例视图。左侧显示了数据集元数据的分布,该数据集已被交互过滤以显示英国斯普林格犬的图像。

Python API是一组装饰函数(对用户定义的函数的包装),可以用来插入ML模型并从输入数据中导出元数据特征和指标。由于装饰器是通用的包装器,Zeno支持任何基于Python的模型、处理函数或度量。Zeno用这些函数对输入数据进行预处理,并将其传递给用户界面进行分析。

Zeno的用户界面 ,是行为驱动评估的主要界面。它允许用户互动地探索和过滤他们的数据,创建切片,计算指标,并创建可导出的可视化。在用户界面的右侧是Zeno的实例视图,用户可以在这里探索模型正在被评估的原始数据。除了标准的列表视图外,用户还可以在表格或二维散点图中看到数据。界面的左侧是元数据面板。所有的元数据列,无论是数据集附带的还是用Python API生成的,其分布都显示在面板上。用户可以交互式地过滤分布,以更新实例视图并创建命名的子组。

该用户界面还有一个报告页面,用于创建行为的交互式摘要可视化。例如,用户可以创建一个条形图,比较三个模型在十个不同片区的性能。或者他们可以创建一个线图,显示一个模型在每一天的数据片上的表现。这些可视化信息可以被导出或直接与其他利益相关者分享。

***图4:*通过Zeno,用户可以交互式地过滤他们的数据以创建切片并计算子组指标。他们还可以使用二维投影来寻找其模型表现不佳的新的数据区域。在这个例子中,一个用户正在探索CIFAR-10分类模型。他们首先过滤数据集,比较低亮度和高亮度的图像,发现这两组图像的准确度有很大的差别。然后,他们发现在投影视图中,有一组实例的误差很高,这主要是由天空中的鸟类被错误地归类为飞机构成的。

案例研究

我们与不同的ML从业者合作,将Zeno应用到他们工作的模型和任务中。使用Zeno,从业人员发现了重大的模型问题和需要改进的地方,包括性别偏见和区域模型差异。

音频转录。 这第一个案例研究是我在听说OpenAI发布了一个新的语音到文本模型Whisper后自己进行的,该模型具有最先进的性能。我很好奇这个模型与一些现有的现成的转录模型相比如何。我没有看综合指标,而是在语音口音档案数据集上运行了这些模型,该数据集有世界各地的说话者说同样的短语。通过过滤数据集的大量元数据,我发现这些模型对于那些晚期学习英语的人和来自英语不是母语的国家的人来说表现较差。

image.png

图5. (左)两个模型在参与者开始学习英语时不同年龄段的平均单词错误率(WER)。 (右)Silero和Whisper转录模型在来自不同大洲的说话者中的平均误码率。
图表直接从Zeno报告用户界面导出。

癌症分类。 在另一个案例研究中,我们与一位研究人员合作,他想改进乳房X光片图像的乳腺癌分类器。由于数据是匿名的,缺乏有意义的元数据,该从业者使用Python库写了几十个函数来提取有意义的元数据特征。通过探索分布,他们发现,与乳腺组织密度相关的 "熵 "较高的图像,其错误率明显高于熵较低或组织密度较低的图像。这一发现与人类放射学家的表现差异相吻合,他们对密度大的乳腺组织图像的表现也更差,因为它使检测病变更难。

image.png

image.png

低密度 (4937)
熵<2.75&&。
灰度等级方差< 2.5
高密度 (656)
熵>2.75 &&
灰度等级方差>2.5
AUC0.860.76

***图6.*与低密度图像相比,乳腺癌分类模型对高密度图像(由高熵和灰度级方差元数据水平描述)的表现明显较差。(左为低密度,右为高密度)。

图像生成。 具有复杂输出的模型通常没有明确定义的指标,包括文本到图像生成模型,如DALL*E和稳定扩散。我们倒是可以看看衡量具体行为的指标。在这个例子中,与我们合作的一位从业者正在探索DiffusionDB数据集,其中有超过200万个来自稳定扩散模型的提示-图像对。该数据集也有元数据,说明提示和图片的NSFW或不恰当程度。这些数据被用来得出一个 "平均NSFW "指标,它可以向我们展示模型中有趣的潜在偏差。例如,参与者比较了使用 "男孩 "和 "女孩 "的提示所生成的图像,发现 "女孩 "的提示所生成的图像的NSFW级别明显高于 "男孩 "的提示,这表明模型所创建的图像类型存在潜在的偏差。

image.png

***图7.*在类似或不太合适的提示下,用稳定扩散法生成的图像中,"女孩 "或 "女人 "的提示比 "男孩 "或 "男人 "的提示更不合适(NSFW)。
从Zeno报告用户界面直接导出的图表。

讨论和机会

模型迭代仍然是一个主要是反应性的 在模型部署后,客户的投诉开始滚滚而来时,寻找和定义行为的过程。这个过程仍有很大的改进空间,从使模型行为的构思更容易到跟踪模型随时间的变化。

发现行为。 虽然从业人员经常需要一个模型来发现模型应该有的行为,但在部署前定义预期模型行为的方法可以防止现实世界中严重的模型问题。 例如,引出潜在边缘案例的众包技术可以预先捕捉到模型的错误。找到高误差的数据集群的算法方法也显示出浮现问题行为的前景。

数据发现和生成。 拥有高质量、有代表性的数据仍然是行为评估的一个持续障碍。在一些有充足数据的领域,例如自然图像,像稳定扩散这样的方法已经显示出为评估或训练生成新数据的前景。在数据不太丰富的领域,通过大型无标签数据集进行搜索的技术,如基于文本的图像搜索,可以为评估和再训练提供有价值的数据。从实例中获取元数据以创建子群和计算指标也是一种挑战。虽然为简单的概念如 "图像亮度 "生成元数据很容易,但许多行为是由复杂的元数据定义的,如 "戴透明眼镜的人的图像",这不能用简单的函数来编码。基础模型在使用基于文本的描述来生成复杂的元数据和度量方面已经显示出一定的前景。

**模型比较。**模型几乎不是一次性的工作,可以每天或每周更新。虽然比较总体指标很容易,但在行为驱动的开发中,比较模型的性能可能是一个挑战。为了在模型之间进行挑选,用户可能需要比较几十个行为和定性的见解。改进的视觉编码或模型差异的智能建议可以帮助用户做出明智的决定并部署正确的模型。

**修复行为。**发现和编码行为是一件事,但修复 行为是另一个巨大的挑战。修复问题的常见方法是收集更多的数据并重新训练模型,但这个过程可能导致灾难性的遗忘和回归。最近有一些技术与行为驱动的开发相吻合,比如基于切片的学习,它可以在没有新数据的情况下选择性地修复模型行为。

总结

人们对这个人工智能系统的新时代感到非常兴奋。但随着它们能力的不断增强,其行为的复杂性也在不断增加。我们需要强大的工具来授权行为驱动的开发,确保我们建立的智能系统与人类的价值观相一致。

blog.ml.cmu.edu/2023/03/24/…