考那么多试,拿那么高分,大模型们真的懂语言了吗?

开发 开发工具 机器学习
GPT-3 这样在大量网络文本上训练的模型真的超越了 Watson 吗?它真的理解它生成的语言和推理吗?这是 AI 研究界存在明显分歧的话题。

十年前,IBM 的 Watson 获得了答题节目《Jeopardy!》的冠军,当时 IBM 宣称:「Watson 能够理解自然语言的所有歧义和复杂性。」然而,正如我们所看到的,Watson 随后在试图「用人工智能彻底改变医学」的过程中失败了,智能体所具备的语言能力与实际理解人类语言并不能完全划等号。

[[441624]]

自然语言理解一直是人工智能研究的主要目标之一。起初,研究人员试图手动编程,让机器理解新闻故事、小说或人类可能创作的任何其他内容。结果就像 Watson 一样,这种方法是徒劳的,人们不可能归纳出理解文本所需的所有事实、规则和假设。

近年来一种 AI 领域建立起一种新的范式:我们不建立显性知识,而是让机器学习自己理解语言——摄取大量书面文本并学习预测单词。这种新范式现在被称作语言模型,GPT-3 等基于大型神经网络的模型可以生成令人难以置信的人类散文和诗歌,并且能够执行复杂的语言推理。

但是 GPT-3 这样在大量网络文本上训练的模型真的超越了 Watson 吗?它真的理解它生成的语言和推理吗?这是 AI 研究界存在明显分歧的话题。

此类讨论曾经是哲学的范畴,但在过去十年中,人工智能已经从学术泡沫中迸发出来,进入了现实世界,它们对现实世界缺乏了解可能会产生非常严重的后果。一项研究发现 IBM 的 Watson 曾提出了「不安全和不正确的治疗建议」。另一项研究表明:谷歌的机器翻译系统在为非英语患者翻译医疗说明时出现了重大错误。

那么我们如何确定机器是否可以理解现实?1950 年,计算机科学先驱艾伦 · 图灵试图用「图灵测试」来回答这个问题。然而,图灵低估了人类被机器愚弄的可能。早在上世纪 60 年代,Joseph Weizenbaum 就构建了一个简单的聊天机器人 Eliza,试图通过解释句子让 Eliza 模仿心理治疗师讲话。结果发现 Eliza 会让人们相信他们正在与理解自己的人交谈,即使他们知道和自己对话的是一台机器。

在 2012 年的一篇论文中,计算机科学家 Hector Levesque、Ernest Davis 和 Leora Morgenstern 提出了一个更客观的测试——Winograd 模式挑战。这种测试方法已被 AI 语言社区采用,是当前评估机器理解的最佳方式之一。

Winograd 模式挑战中包含一对句子,两个句子仅相差一个词,每个句子后面跟一个问题,例如:

Sentence 1: I poured water from the bottle into the cup until it was full.

Question: What was full, the bottle or the cup?

Sentence 2: I poured water from the bottle into the cup until it was empty.

Question: What was empty, the bottle or the cup?

 

Sentence 1: Joe’s uncle can still beat him at tennis, even though he is 30 years older.

Question: Who is older, Joe or Joe’s uncle?

Sentence 2: Joe’s uncle can still beat him at tennis, even though he is 30 years younger.

Question: Who is younger, Joe or Joe’s uncle?

Winograd 模式在 2016 年被用作一场比赛的主题,其中获胜程序仅在 58% 的句子上给出了正确答案,这几乎和简单猜测的准确率差不多。句子中一个词的差异可以改变代词所指的人或事,正确回答这些问题需要常识性的理解。Winograd 模式正是为了测试这种理解而设计的,减轻了图灵测试对人类判断和聊天机器人技巧的不可靠性。特别是,Winograd 的作者设计了数百个被称为「Google-proof」的模式:机器不应该使用谷歌搜索(或类似搜索)来正确回答问题。

然而,大型神经网络语言模型的出现让人工智能程序解决 Winograd 模式的能力迅速提高。OpenAI 2020 年的一篇论文称 GPT-3 在 Winograd 模式基准集中近 90% 的句子上都是正确的。在专门针对这些任务进行训练后,语言模型的表现甚至会更好。一些神经网络在特定任务上甚至能达到 97% 的准确率,这种准确性和人类的表现已经大致相当。这是否意味着神经网络语言模型已经达到了人类的理解水平?

并非如此。尽管创作者尽了最大努力,但 Winograd 模式实际上并没有完全经过「Google-proof」。Winograd 模式中的挑战就和许多其他 AI 语言理解测试一样,有时允许使用快捷方式 ,让神经网络在不理解的情况下也能表现良好。例如:

  • 跑车超过了邮车因为它开得更快。
  • 跑车超过了邮车因为它开得更慢。

在庞大的语料库上训练的语言模型将吸收「跑车」和「快」之间以及「邮车」和「慢」之间的相关性,因此语言模型可以仅根据这些相关性来正确回答这些问题,而不存在真正的理解。事实证明,SuperGLUE 比赛中的许多 Winograd 模式都可以使用这类统计相关性。

艾伦人工智能研究所的一组研究人员尝试解决 Winograd 模式的一些问题。2019 年,他们创建了一个更庞大的 Winograd 模式——WinoGrande。

WinoGrande 包含多达 44000 个句子,而不是数百个示例。这些句子是借助 Amazon Mechanical Turk 平台获得的,由真人编写——每人被要求写几个句子对,这些句子包含多个主题,但每对句子可能相差不止一个单词。

然后,研究人员通过用相对简单的 AI 方法测试每个句子,将太容易解决的句子丢弃,以消除可能允许统计相关性捷径的句子。与研究人员预期的一样,与原始的 Winograd 模式相比,剩余的句子对机器提出了更困难的挑战,在 Winograd 模式上与人类表现相当的神经网络语言模型在 WinoGrande 集合上得分要低得多。

然而,另一个惊喜很快接踵而至。在 WinoGrande 集合问世之后的两年里,神经网络语言模型变得越来越大。而且,模型越大,它们在这项新挑战上的得分似乎就越高。在本文撰写之时,当前最好的模型(在几 TB 的数据和数千个 WinoGrande 实例上训练)已经达到了接近 90% 的准确率(人类是 94%)。这种性能的增益几乎全部来自于神经网络语言模型规模的增大和训练数据体量的增加。

这些大模型真的获得了像人类一样的常识理解能力吗?看起来并没有。WinoGrande 反映出的结果有几点需要注意。例如,由于那些句子依赖于 Amazon Mechanical Turk 平台上的兼职人员,句子的质量和流畅度是非常不均衡的。同时,用来剔除「non-Google-proof」句子的 AI 方法可能过于简单,无法发现一个庞大的神经网络可能使用的所有统计捷径。而且,该方法只适用于单个的句子,很多句子最后都会失去自己的「双胞胎」兄弟姐妹。一项后续研究表明,神经网络语言模型只在两个「双胞」句子上进行测试,而且两个测试都要正确,它们比人类的准确率要低得多,这表明早前 90% 的结果没那么重要。

那么,从 Winograd 的失败中我们能得出什么教训呢?那就是:我们通常很难根据 AI 系统在某项特定挑战中的表现来判断它们是否真的理解了自己所处理的语言。我们知道,神经网络经常会使用统计方面的捷径来获取高分,而不是真正像人类一样去理解。

在我看来,问题的关键在于,理解语言就需要理解世界,而只接触语言的机器就无法获取这种理解能力。举个例子,「跑车超过了邮车,因为它开得慢一些」,理解这句话需要什么前提?首先,你要知道跑车和邮车分别是什么、车是可以互相「超过」的,甚至你还要知道更基本的常识:交通工具是存在于这个世界并与之交互的对象,由人类根据自己的行程驱动。

以上这些都是我们人类认为理所当然的知识,但这些知识并没有内嵌在机器中,也不可能被明确地写在任何语言模型的训练文本中。一些认知科学家认为,在学习和理解语言方面,人类依赖于先天的、前语言的关于时空以及世界上其他基本属性的核心知识。如果我们想让机器像人类一样掌握语言,我们首先需要赋予它们人类与生俱来的原始原则(primordial principle)。要评估机器的理解能力,我们应该首先评估它们对上述原则的掌握程度,有人将其称为「婴儿形而上学(infant metaphysics)」。

与 GPT-3 等成就辉煌的 AI 系统相比,训练并评估一个婴儿水平的机器看起来似乎倒退了一大步。但如果目标是真实可信的理解,那这可能是唯一一条让机器理解「它」是什么以及获取理解「它」所需要的一切的途径。

原文链接:https://www.quantamagazine.org/what-does-it-mean-for-ai-to-understand-20211216/

【本文是51CTO专栏机构“机器之心”的原创译文,微信公众号“机器之心( id: almosthuman2014)”】  

戳这里,看该作者更多好文 

 

责任编辑:赵宁宁 来源: 51CTO专栏
相关推荐

2020-03-31 10:58:38

2019-12-18 15:11:42

数组集合数据

2010-01-26 09:24:53

C++语言

2010-01-15 16:45:35

C++语言

2015-09-29 10:12:10

2013-06-17 10:45:34

2020-07-13 08:40:21

BAT模具设计

2017-01-21 14:57:43

Linuxsystemd

2018-03-27 08:46:01

数据库NoSQLredis

2023-01-24 16:13:22

编程语言JavaIT

2017-09-07 16:32:05

华为

2020-08-26 17:03:52

同型号显卡产品

2010-02-07 13:45:12

Android操作系统

2010-03-02 10:26:32

Android系统平台

2020-04-24 08:15:51

代码 if else数组

2019-10-08 14:40:53

Java线程

2024-03-18 10:24:12

优化模型

2021-02-21 08:48:19

技术升职程序员

2019-12-02 14:22:01

浪费云计算支出

2011-12-31 14:47:10

Web App
点赞
收藏

51CTO技术栈公众号