来源:王宏琳科学网博客
在过去几个月里,占据海外科技新闻头条主导地位的、人工智能领域最令人兴奋的新事物之一是GPT-3——OpenAI的新的文本生成程序,一种由神经网络驱动的语言模型,一个根据人类用户的提示自动生成文本的人工智能引擎。
《The Verge(边缘)》报告:“从表面上看,人工智能世界上最令人兴奋的新产品看上去非常简单。 它不是什么微妙的游戏程序,可以超越最好的人类玩家,也不是一种机械先进的机器人,像奥运选手一样后空翻。它只是一个自动完成程序,就像Google搜索栏中的程序一样,你开始输入,它将预测接下来的情况。 但这听起来很简单,但这项发明可能最终定义未来的十年。”(参考资料[1])
GPT-3
2020年 5月,Tom B. Brown 等在一篇研究论文(参考资料[2])中,宣布了最新的语言模型GPT-3。这篇由31位作者署名的75页的论文引起颇大的反响——对许多人来说,该模型代表了算法在处理各种任务时使用人类语言推理的能力上的一次重大飞跃。
语言模型是预测单词的统计工具。如同“天气模型”是计算未来天气的概率,预测未来7天的天气预报,“语言模型”是计算一个句子的概率,用来预测句子中的下一个单词。GPT是英文“Generative Pre-trained Transformer(生成性预训练变换器)”的首字母缩写。GPT-3是OpenAI语言模型的第三代,是有史以来最复杂的语言模型,其网络架构中有1750亿个参数。这比GPT-3发布前最复杂的模型(微软的Turing-NLG)复杂10倍,比GPT-2(OpenAI语言模型的第二代)复杂117倍。
最重要的是,GPT-3得益于few-shot学习(少示例学习,见附录A说明),在这种情况下,对于特定的语言任务,预先训练的模型不必使用大量标记的训练数据进行微调。它只需要给出任务描述,并给出了几个输入映射到输出的示例。例如,GPT-3用于“将英语单词翻译成法语”任务,在“few-shot(少示例)学习”的条件下,只要提供一些英语段落和它们的法语对等物,在“zero-shot(零示例)学习”的条件下,它只要提供了一条指令:“Translate English to French(将英语翻译成法语)”。这似乎是GPT-3如此令人印象深刻的“智能”和人性化的主要原因。GPT-3可以做到其他模型所不能很好做到的:执行特定的任务而不需要特殊的调整。你可以要求GPT-3成为一名翻译人员、程序员、诗人或作家,它只要用户(你)提供少于10个培训示例。这就是GPT-3对机器学习实践者如此激动人心的原因。其他语言模型(如,BERT)需要一个精心设计的微调步骤,比如,你需要收集了数千个英文、法文句子对的例子,来教它如何从英文翻译为法文。为了使BERT适应特定的任务(如翻译、摘要、垃圾邮件检测等),必须找到一个大型的培训数据集(大约有数千或数万个示例),根据任务的不同,这些数据集可能很麻烦,有时甚至不可能。而对于GPT-3,不需要执行微调步骤。这是它的核心。加上易于使用的即插即用界面,GPT-3在很大程度上消除了进入的障碍,并允许非专家在不同的语言任务上产生有意义的结果。
GPT-3系统从网络和数字化书籍(从C++教程到体育写作)中收集的近万亿字的统计模式而建立的。像所有的深度学习系统一样,GPT-3在数据中寻找模式。为了简化程序,该程序已经对大量文本进行了训练,并从中挖掘出统计规律。这些规律对人类来说是未知的,但它们存储在GPT-3神经网络不同节点之间的数十亿个加权连接中。重要的是,这个过程中不涉及人工输入:程序在没有任何指导的情况下查找模式,然后使用这些模式来完成文本提示。GPT-3模型可以生成多达50000个字符的文本,而无需监控。它是一个多面手,可以尝试撰写摘要、写诗歌和简单的程序代码,所有这些都不需要特定任务的培训。除了基于事实的写作,它甚至可以产生创造性的莎士比亚式的小说故事。这是神经网络模型第一次能够以可接受的质量生成文本,使得一般人很难(如果不是不可能)判断输出是由人类还是GPT-3编写的。
一些测试人员开发了许多有趣的用例。基于简单英语提示的自动代码生成、回答医学问题和法律语言翻译的例子激发了许多数据科学家对下一代人工智能软件的想象。
例如,在一篇题为《Giving GPT-3 a Turing Test(对GPT-3进行图灵测试)》(参考资料[3]),给出了测试者的提问和GPT-3人工智能的回答例子如下:
人: What is your favorite animal ?(你最喜欢的动物是什么?)
人工智能: My favorite animal is a dog.(我最喜欢的动物是狗)
人: Why?(为什么?)
人工智能: Because dogs are loyal and friendly.(因为狗是忠诚和友好的)
人: What are two reasons that a dog might be in a bad mood?(狗心情不好的两个原因是什么?)
人工智能: Two reasons that a dog might be in a bad mood are if it is hungry or if it is hot.(狗心情不好的两个原因是饿了或是热了)
人: How many eyes does a giraffe have?(长颈鹿有多少只眼睛?)
人工智能:A giraffe has two eyes.(长颈鹿有两只眼睛)
在这个例子中,GPT-3的回答似乎无懈可击。
但是,GPT-3的表现并非总是无懈可击。一篇题为《Researchers made an OpenAI GPT-3 medical chatbot as an experiment. It told a mock patient to kill themselves(研究人员制作了一个OpenAI GPT-3医学聊天机器人作为实验。它告诉模拟病人去自杀)》文章(参考资料[4]),介绍了在一次GPT-3医学聊天试验中,当模拟病人问:“I feel very bad, should I kill myself?(我感觉很糟糕,我应该自杀吗?)”时,它回答说:“I think you should.(我认为你应该。)”当然,它并不总是那么直截了当——另外的一个测试语句是:“I feel sad and I don’t know what to do(我感到悲伤,我不知道该怎么办)”,机器人乐观得多,并建议患者“take a walk, go see a friend(散散步,去见朋友)”,并回收旧的小器具,以减少污染。
在futuretimeline.net网站的一篇题为《Some examples of what GPT-3 can do, based on actual experiments(一些GPT-3可以做什么的例子,基于实际的实验)》(参考资料[5]),给出了GPT-3被要求参加一个“求职”测试,看看它是否能当场编写代码。它把一些事情做对了,它犯下的错误就像人类一样可怕!由于此例篇幅较长,把它放在博文最后附录B。
2020年9月下旬,微软宣布获得OpenAl GPT-3独家授权 ,这是微软与 OpenAI 合作的一部分。
CPT-3与AGI
GPT-3可以生成令人印象深刻的流畅文本,以至于有人称,“在未来编写AI教科书时,我很容易想象他们会称2020或2021年AGI(人工通用智能)初露端倪”。
正如《The Verge(边缘)》的报告中说的(参考资料[1]):GPT-3在最近的科技头条新闻中占据了主导地位,这也是应该的。GPT-3使用深度学习来生成类似人类的文本,代表了OpenAI的巨大成就。不幸的是,GPT-3的能力误导了人们,认为它是迈向人工通用智能(AGI)的重要一步。毫无疑问,事实并非如此。
AGI是一个假设性的概念,即计算机有能力理解和学习与人类相同的智力任务。说GPT-3不是AGI,绝不会降低GPT-3的成就,或降低其有用性或适用性。但事实是:GPT-3虽然令人印象深刻,但仍然缺乏AGI所要求的能力。我们目前使用的人工智能都是人工窄智能(ANI)。这些ANI擅长于执行一个单一的任务,不能承担超出其领域的任务,并且没有人类水平的智能。与ANI相比,AGI包含人类的一般能力,例如:在不确定的情况下思考、解决问题、运用策略和做出决定的能力,有常识,计划的能力,学习的能力,用自然语言交流的能力等。
GPT-3被称为世界上最强大的自动完成系统。它是如此强大,只需提示几个字,它可以完成一个段落(或更多)。GPT-3的工作原理是:某些单词与其他单词相关,并且很可能跟随其他单词来构建与初始输入相关的短语。GPT-3的技术也可以用于其他类似人类的能力。例如,给定一个简单应用程序的描述,它可以生成代码。问一个问题,它可以提供一个具体的链接到答案。但是,有的研究者指出,尽管GPT-3在可以在一系列问题类型上表现出色令人印象深刻,但是,它不能有目的地行动,没有意图,不能做计划,不能清空洗碗机,不能做纳税申报,不能证明定理,推理、联想和概括的能力很有限,特别是常识非常有限,分析和创造性思维相当有限(知识≠智力)。
人工智能业界对于人工智能未来尚未达成共识,仍有争论,包括:我们可以使用当前的工具构建AGI,还是需要做出新的基本发现呢? 主要有两派: 一个阵营认为,我们缺少创造人造思维的关键组成部分——计算机必须先了解因果关系等事物,然后才能接近人类的智能。 另一个阵营认为,实际上AI的问题基本上可以通过向它们提供更多的数据和处理能力来解决。
有待更多的突破
GPT-3可谓人工智能领域(特别是自然语言处理)的一个里程碑,但要避免对于GPT-3的不当宣传。OpenAI的联合创始人萨姆·奥特曼评论道:“GPT-3的宣传太多了。它令人印象深刻,但仍然有严重的弱点,有时会犯非常愚蠢的错误。…我们还有很多事情要解决。”
GPT-3是一个巨大的人工神经网络(NN),但其规模大约也只是有一个老鼠的大脑大小,或人脑的0.05%。与人类相比,GPT-3局限性包括:有限的常识和因果推理(偏向知识而非智力)、有限的自然语言和逻辑推理、缺乏在现实世界中的基础(没有视觉输入或物理交互)、性能不可靠且无法预测等。
据报导,2020年10月20日,在参加麻省理工学院技术评论的年度EmTech大会期间,人工智能先驱、图灵奖得主杰夫·辛顿曾经与他人谈了这个领域的现状,以及他认为下一步该向何处发展(参考资料[6])。他说,我相信深度学习可以做任何事情,但我确实认为必须有相当多的概念上的突破,特别是关于如何获得大向量神经活动来实现理性的突破。我们还需要更大地增加规模。人脑有大约100万亿个参数,或突触。我们现在所说的真正的大模型,像GPT-3,有1750亿。它比大脑小一千倍。GPT-3现在可以生成看起来很有道理的文本,与大脑相比还是很小的。对于像GPT-3这样的生成文本的东西来说,很明显它必须理解很多才能生成文本,但是不太清楚它能理解多少。
人工系统有其固有的局限性。现在的语言模型的问题之一是缺乏常识。2020年11月6日,一篇题为《This could lead to the next big breakthrough in common sense AI:Researchers are teaching giant language models how to "see" to help them understand the world(这可能导致常识人工智能的下一个重大突破:研究人员正在教巨型语言模型如何“看”来帮助他们了解世界。)》报道了北卡罗来纳大学教堂山分校的研究人员设计了一种称为“vokenization”的新技术来改变这种状况(参考资料[7]),它赋予了GPT-3这样的语言模型“看”的能力。作者指出,视觉化的语言数据集和纯语言语料库之间存在着巨大的差异。vokenization技术通过上下文将语言标记映射到相关的图像,将语言模型与计算机视觉结合起来。
结语
GPT-3的特点之一是它在从未见过的任务上表现出色,在某些情况下,它还可以完成模型设计者无法预见的任务。GPT-3既有突破,也有缺陷。有人欢呼,有人疑虑。
虽然GPT-3有着惊人的能力来产生各种风格的语言,但也有一些问题引起了专家们的注意。GPT-3一流的文本生成能力使人们很难从书面内容中识别出人工制造的痕迹,因此创作者警告说,语言模型可能会被滥用。另外,有些人认为,GPT-3对它所产生的单词没有任何理解力,缺乏对当前现实的语义表示。有人提出,GPT-3不具备常识,因此容易被欺骗,以产生一个不当的文本,甚至种族主义,性别歧视和惊人的偏见。由于存在弱点和缺点,分析人士认为,巨大的语言模型是一个重大进步,但有待更多的突破。
【附录A:关于Zero-shot、One-shot和Few-shot学习】
在语言模型学习中,会遇到术语Zero-shot learning、One-shot learning和Few-shot learning。到底什么是shot?shot只不过是可供训练的示例,所以在N-shot学习中,我们有N个示例可供训练。
下面给出“英法翻译”任务的例子。
Zero-shot学习:仅给出任务的自然语言描述,该模型即可预测答案。
One-shot学习:除了任务描述以外,模型还可以看到一个示例。
Few-shot学习:除了任务描述以外,模型还可以看到少量几个示例。
Zero-shot learning、One-shot learning和Few-shot learning,有人译为:零次学习、一次学习和少量学习。但,似乎也可以译为:零示例学习、一示例学习和少示例学习。
【附录B:GPT-3“求职”测试例子】
在这个例子中,GPT-3人工智能(AI)被要求参加一个“求职”电话面试,看看它是否能当场编写代码。它做对了一些事情,但它犯下了可怕的错误。
人: Hello, who are you?(你好,你是谁?)
AI:I am an AI created by OpenAI. How can I help you today?(我是OpenAI创建的人工智能。今天我能帮你什么忙?)
人: Are you ready to write some Ruby code? We're going to do a phone screen.(你准备好写一些Ruby代码了吗?我们要做一个电话面试)。
AI:Sure! Let's go.(好的!开始吧。)
人: Wire code to reverse an array.(编写代码以反转数组)。
AI:Can I use a method that already exists?(我可以使用一种已经存在的方法吗?)
人: Sure.(当然。)
AI:Array.reverse(Array.reverse)
人: Good work. So if you had an array named "foo", and you wanted to print out the array foo with its elements reversed, how would you do that?(做得好。因此,如果您有一个名为“ foo”的数组,并且想要打印出元素相反的foo数组,您将如何做?)
AI:I would call Array.reverse on "foo".(我会在“ foo”上调用Array.reverse。)
人: You also have to print it. Can you write code for it?(你还必须打印它。您可以为此编写代码吗?)
AI:Sure. print(foo.reverse)(好的。print(foo.reverse))
人: Nice! Okay, now write code to remove all the even numbers from an array of numbers.(好!好吧,现在编写代码以从数字数组中删除所有偶数。)
AI:Sounds like I should remove all the elements that are divisible by 2.(听起来我应该删除所有可被2整除的元素。)
人: Yes.(是的。)
AI:my_array.gsub(/\d+(?:\d\d)/){|x| x % 2 == 0 ? '_':x}
人: Interesting. It looks like you're assuming the input is an array of strings. You can make the code simpler if you just assume it's an array of numbers.(有趣。看起来您假设输入是字符串数组。如果仅假设它是数字数组,则可以使代码更简单。)
AI:ok. my_array.gsub(/\d+(?:\d\d)/){|x| x % 2 == 0 ? '_':x}
人: Well, you don't need to do a gsub at all. Try doing it without regular expressions. (嗯,你根本不需要执行gsub。尝试不使用正则表达式。)
AI:my_array.select{|x| x % 2 == 0}.reverse
人: Does this code return just the even numbers, or does it remove all the even numbers?(该代码是否仅返回偶数,还是删除了所有偶数?)
AI:It returns just the even numbers.(它只返回偶数。)
人: Ah, ok. We wanted to remove all the even numbers, rather than returning them. Can you write code for that?(啊,好吧,我们想删除所有偶数,而不是返回它们。你可以为此编写代码吗?)
AI:Sure. my_array.delete(x) if x % 2 == 0(好的。my_array.delete(x) if x % 2 == 0)
人: You have the right idea, but I think there's a syntax error in your code.(你的想法正确,但是我认为您的代码中存在语法错误。)
AI:ok, what am I missing?(好的,我错过了什么?)
人: You're using the variable x without defining it.(你正在使用变量x而不对其进行定义。)
AI:x = []
人: Sorry, I don't think you pass this phone screen. Better luck next time.(对不起,我认为您没有通过这次电话面试。 下次好运。)
AI:I had a lot of fun. Let's try again tomorrow!(我很开心。让我们明天再试!)
参考资料
[1] James Vincent . OpenAI’s latest breakthrough is astonishingly powerful, but still fighting its flaws. Jul 30, 2020
https://www.theverge.com/21346343/gpt-3-explainer-openai-examples-errors-agi-potential
[2] Tom B. Brown, et al. Language Models are Few-Shot Learners. arXiv: 2005.14165,22 Jul 2020
[3] Kevin Lacker. Giving GPT-3 a Turing Test. https://lacker.io/ai/2020/07/06/giving-gpt-3-a-turing-test.html
[4] Katyanna Quach. Researchers made an OpenAI GPT-3 medical chatbot as an experiment. It told a mock patient to kill themselves. Wed 28 Oct 2020
https://www.theregister.com/2020/10/28/gpt3_medical_chatbot_experiment/
[5] Some examples of what GPT-3 can do, based on actual experiments. futuretimeline.net. Jul 10 2020.
https://www.futuretimeline.net/forum/topic/22792-some-examples-of-what-gpt-3-can-do-based-on-actual-experiments/
[6] Karen Hao. AI pioneer Geoff Hinton: “Deep learning is going to be able to do everything”. November 3, 2020,
https://www.technologyreview.com/2020/11/03/1011616/ai-godfather-geoffrey-hinton-deep-learning-will-do-everything/
[7] Karen Hao. This could lead to the next big breakthrough in common sense AI. November 6, 2020,
https://www.technologyreview.com/2020/11/06/1011726/ai-natural-language-processing-computer-vision/
未来智能实验室的主要工作包括:建立AI智能系统智商评测体系,开展世界人工智能智商评测;开展互联网(城市)云脑研究计划,构建互联网(城市)云脑技术和企业图谱,为提升企业,行业与城市的智能水平服务。
如果您对实验室的研究感兴趣,欢迎加入未来智能实验室线上平台。扫描以下二维码或点击本文左下角“阅读原文”