GPT-3——更加智能的通用语言模型

如果他们发现一只鹦鹉可以回答一切问题,我会毫不犹豫宣布它存在智能。

Denis Diderot, Pensées philosophiques, Texte établi par J. Assézat et M. Tourneux, Garnier, I (p. 127-155).

人们一直在期待更加智能的程序的问世。早在 1950 年,著名计算机科学家 Alan Turing 就在一篇发表于 Mind 上的论文《计算机器与智能》中阐述一种用于区分与受试者通过文本交互的是另一位人类还是一个机器人的方法——The Imitation Game。可以将这种方法理解为:受试者在一个只有一台计算机的房间内,另外两个房间分别有一台计算机 A 以及一个人类用户 B。受试者在计算机上通过文本沟通的方式与其他房间的 A 和 B 联络,如果受试者能够在这种场景下无法区分 A 和 B 哪一个是人类、哪一个是机器人,此时我们就称计算机 A 通过了图灵测试,它具有相应的智能。

而在这篇论文发表 70 年后的 2020 年,一家名为 OpenAI 的公司发布了新一代通用语言模型 GPT-3。这家在人工智能领域表现优异的公司所带来的最新智能模型,就像一个问答机器人:以文本的形式接收指令,然后将它的响应(或者回答)通过文本的方式反馈给用户。而比以往更吸引人的是,GPT-3 语言模型在回答用户提出的多种问题的时候,表现已经近似于人类

由于 OpenAI 推出了以应用程序开发接口(API)的方式调用 GPT-3 模型的选项,我们得以领略该模型的强大之处。在本文中,我们将通过使用介绍以及大量示例,向读者展示 GPT-3 语言模型的能力。

我们不会在本文中涉及有关 GPT-3 模型本身的原理信息,希望了解更多相关主题的读者,建议先看看原始论文

注册 OpenAI API 服务

OpenAI 的 API 访问服务目前仅在部分地区提供。用户可以在这些受支持的地区通过 SMS 短信验证码等方式注册访问 OpenAI 的 API 服务。

一张低分辨率屏幕截图,展示了打开 OpenAI API 网页的浏览器
用户可以在 https://openai.com/api/ 访问 GPT-3 以及其他 OpenAI API 服务

成功注册后,OpenAI API 为用户提供了两种主要方式使用:

  1. 在 OpenAI API Playground 网页页面中,用户可以直接与 GPT-3 模型进行交互,而无需编写任何代码
  2. 开发者也可以通过社区提供的编程语言 SDK 来进行调用,或者直接请求 API 接口

在不受支持的地区调用 OpenAI API 接口可能导致账户封禁

GPT-3 的强大之处

GPT-3 是一个“通用语言模型”,那么,什么是所谓通用语言模型(Universal Language Model)呢,让我们首先浏览下面的常见问题解答:

Q: Please describe what is Universal Language Model in nature language processing in 500 words? A: In natural language processing (NLP), a universal language model (ULM) is a model of syntactic and semantic dependencies that hold across languages. A ULM is useful for machine translation, parsing, and other linguistic tasks.

Q: Please transalate the pervious answer into Simplified Chinese? A: 在自然语言处理(NLP)中,一个通用语言模型(ULM)是语法和语义依赖关系的模型,这些关系是通用的,在不同的语言之间存在。ULM 在机器翻译、句法分析和其他语言任务中都有用。

写得很连贯、清楚,对吧?恭喜各位读者,刚刚完成了一次图灵测试——事实上,上边这段文字的解答不是由任何人类参与编写的,而是由 GPT-3 自动生成的,你被骗了吗:

一张屏幕截图,展示了上方的问题解答文本是通过机器生成的
上述常见问题解答中的文字事实上是通过 OpenAI API Playground 由 GPT-3 模型自动生成的

GPT-3 模型拥有非常多个领域的先验知识,当用户通过自然语言向语言模型提出问题时,模型能够回答其中的大多数问题。而对于一些要求计算性比较强的问题(如方程求解),模型的表现则不如想象中那么好。

另外,GPT-3 语言模型能够支持的语言不仅包括英语,在我们的上述示例中,我们要求 GPT-3 将先前一个回答翻译成简体中文,GPT-3 也能很好地完成任务。通用语言模型的“通用性”也体现在在多种语言环境中对相同概念的理解映射。

GPT-3 模型相比以往模型(如 BERT)的另外优势,则是对于大多数常规任务,在使用模型之前无需对其进行微调(Fine-tuning)操作:

一张描述 fine_tuning 操作是什么的示意图,在图片中,针对特定翻译任务,为模型提供了一些示例,然后通过梯度下降方法修改模型本身
Fine-tuning,即微调,是使用许多语言模型之前推荐进行的操作,这是来自 GPT-3 原始论文中一张插图的重制版

微调操作在做什么?它是一种梯度更新(gradient update)的过程,在使用大多数语言模型完成特定任务(比如翻译)之前,我们需要为模型提供一些示例(如 English => 英语),然后模型会通过一种名为“梯度更新”的操作来微调模型(本身),从而使其“学习”如何适应这种翻译任务。

经过梯度更新后的模型的表现一般会比原始模型更好,但代价在于对于每一种具体任务(比如翻译、总结大意、猜谜语或者生成宣传文案)来说,都需要单独微调一个模型出来。如果你只是希望偶尔使用语言模型帮助来完成一些基础任务的话,这样做的成本显然也非常高。

GPT-3 模型的优势在于,用户在使用该模型时,只需要“告诉” GPT-3 “我想做什么”即可,而不需要预先为想要完成的任务先微调一遍模型,比如:

Translate this into French: Where can I find a bookstore? Où puis-je trouver un magasin de livres?

就是一个简单的例子。如果想要 GPT-3 做得更好,可以在交代具体任务之前为 GPT-3 提供几个例子(example,又称 shot):

Suggest three names for an animal that is a superhero.
Animal: Cat
Names: Captain Sharpclaw, Agent Fluffball, The Incredible Feline
Animal: Dog
Names: Ruff the Protector, Wonder Canine, Sir Barks-a-Lot
Animal: Horse

Names:

GPT-3 模型的原始论文中就将其模型本身描述为“Few-Shot Learners”,即在为 GPT-3 语言模型输入任务时,如果能够指定一些先前示例(shot),则该模型本身的表现会更好,参考 GPT-3 模型在一个名为 LAMBADA 数据集上的测试结果:

一张折线图,描述了 GPT-3 通用语言模型在 LAMBADA 数据集上的表现结果,可以看到在 13B 及以上规格的模型中,GPT-3 本身的表现要比先前的 Zero-shot 最好模型(State of the art, SOTA)要更强
横轴:不同参数大小的 GPT-3 语言模型 纵轴:在 LAMBADA 数据集上的准确率(越高越好)

该图中的三条不同颜色的折线分别代表在不提供任何先前示例(Zero-Shot)、仅提供一个先前示例(One-Shot)以及提供 15 个先前示例(Few-Shot, K=15)情况下 GPT-3 通用语言模型在 LAMBADA 数据集上的表现情况。最上方的“Human”虚线代表一个以英语为母语的人类受试者在 LAMBADA 数据集上的表现,以供对比。

展示了一系列开放式完形填空题目,比如第一个问题的原文是:"Yes, I thought I was going to lose the baby" "I was scared too," he stated, sincerity flooding his eyes. "You were?" "Yes, of course. Why do you even ask?" "This baby wasn't exactly planned for.",要填充的句子是“Do you honestly think that I would want you to have a ____?”,答案应为 miscarriage
LAMBADA 数据集中的问题示例,所有问题均为开放式完形填空题目

LAMBADA 数据集本身是一系列开放式完形填空题目,要求受试者(人类或者计算机程序)根据上下文推断文章中空缺的单词是什么。不像我们在学校练习的完形填空题目,LAMBADA 数据集中的题目不会给出类似 A、B、C、D 的选项,而要求受试者根据上下文推定任意单词进行填空,因此比传统试题中的完形填空要更难。我们注意到在 GPT-3 比较大的模型中,无论是否提供先前示例的情况下,GPT-3 模型的表现都比先前模型要更好,并且接近人类水平。

一些示例

餐后甜点时刻!我们特意准备了一些小示例,来向各位读者展示 GPT-3 通用语言模型的能力。注意下列加粗字体是人类用户(也就是我)输入的内容。

GPT-3 写文案

在该示例中,我们只为 GPT-3 提供一段简短的指示,要求其完成一个窗帘的宣传稿,来观察该语言模型对于“窗帘”这个实体与其他物件的关系,以及对引导性语言本身的运用有多强:

为一款售价比较便宜的窗帘写一个不多于 300 字的宣传稿:

大家有没有发现,现在家里装修的很流行窗帘配电视墙,其实这也是非常不错的选择。除了可以起到遮光的作用之外,还可以让窗户看起来更有品位。而且价格也比较便宜,所以如果你正在装修房子,建议你也考虑一下这个选择。

Window curtains are becoming a popular way to decorate with televisions walls. They not only provide shades but also give a window a more polished appearance. They are also less expensive than other window treatments, so if you are remodeling your home, consider this option.

GPT-3 高考英语作文

我们以中国首都北京市教育部门在 2015 年编撰的英语高考作文(题目一)作为示例,来观察 GPT-3 语言模型在阅读题目要求,构造回复信件方面的能力:

假如你是红星中学高三李华,请给你的美国朋友 Jim 写一封信,告诉他你打算参加龙舟训练营,希望他一起参加,邮件的内容包括:

  1. 介绍训练营的相关内容(例如;时间,地点,参加者等) ;
  2. 说明你打算参加的原因 ;
  3. 询问对方的意向。

注意: 1.词数不少于50; 2.开头和结尾已给出,不计入总词数。

提示词: 龙舟训练营 Dragon Boat Training Camp

Dear Jim,

I’m writing to tell you that I’m going to attend the Dragon Boat Training Camp.

I hope you can join me. The camp will last for ten days and will be held in Shanghai. Participants will learn how to paddle and race dragon boats.

I’m excited about the camp and I hope you can come too. Please let me know your thoughts.

Best, Li Hua

GPT-3 回复客户邮件

我们其实更关注像 GPT-3 这样的语言模型可以用在我们哪些实际业务中,在这个示例中,我们模拟客服收到的一封邮件,要求 GPT-3 撰写为该客户回信的模版:

Try to reply this customer email:

I’m wondering if you could provide me with information about your cloud services for companies. I’m CTO for Moon Door, a movie production company and want to know if it can help us manage our different projects that are in production.

Hello,

Thank you for reaching out to us. Yes, our cloud services for companies can definitely help you manage your different projects that are in production. In fact, our cloud services are perfect for companies of all sizes. We have a variety of plans and pricing options to choose from, so you can find the perfect plan for your needs. We also offer a free trial so you can try our services before you buy.

If you would like more information, please visit our website or contact us directly. We would be happy to answer any questions you have.

Thank you,

Moon Door

总结与思考

在试用 GPT-3 语言模型的过程中,我感受到了近几年基于深度学习的通用(语言)模型的强大之处。模型对生活中的常见概念的建模、多种语言之间概念的理解,以及丰富的先验知识的储备,让我们对它在更多实际领域的应用充满信心。同时,有关人工智能与伦理道德的课题一直是我们思考的范围之一:将人工智能程序进行怎么样的应用是可被接受的,哪些又是不道德的?如果将自动生成的文本用于地震读报,是可被接受的吗?那么创建一个推特账号,然后每天在随机时间点发布数条自动生成的 Tweet,来假装该账号由人类用户操控,这样的行为也是可被接受的吗?

影响自动程序产生的效果的最大变数来自于人类行为本身。使智能程序变得更“智能”的过程更像是打开了一个“潘多拉魔盒”,它也许会让未来我们过得更好,但也许会更烂。人们需要更加积极地探索如何使用、治理和发展相关技术。

参考资料