当前位置:首页|资讯|微软|ChatGPT

万字长文太多,微软首席研究员带你10分钟理清ChatGPT的核心逻辑

作者:Web3天空之城发布时间:2023-04-13

编者导语:近期,关于大模型的讨论非常多,想必你已经被各种信息砸晕,为了让你更清晰地理解最近所发生的一切,我们找到一条在近日内在YTB上取得60W播放的视频:

这条视频来自于微软研究院高级首席研究员Ahmed Awadallah(2020年获得英国电脑学会最高奖),他做了约30分钟的主题为“Foundation Models and Next Era of AI(基础大模型和AI的下一个时代)”的分享。这个分享简明清晰又深入浅出的梳理了近年来大模型和AI的发展脉络,同时提供了详实的图例。

对此,我们进行了深度编译,并划好重点,便于你更好的理解(重点:同时可以增加谈资,让你在各种饭局上更系统性地和朋友们展现你“渊博的知识”)

《AI未来指北》栏目由腾讯新闻推出,邀约全球业内专家、创业者、投资人,探讨AI领域的技术发展、商业模式、应用场景、伦理及版权争议。此为第十一期,系统性梳理了ChatGPT的技术演进和底层核心。

划重点:

  • 1让GPT模型能如此成功的技术三板斧:1)采用了Transformer架构让它变成了啥都能做的多面手;2)增长的模型规模让它的能力发生了跃迁式的进步,并且涌现出了各种看起来像“理解”的能力;3)点出了上下文学习的技能点让AI在没有经过人为打标调教的情况下,只通过吃基础数据就能有逻辑的解决一系列分类问题。
  • 2从GPT到ChatGPT,模型经过了三层锤炼:1)加入代码预训练,这似乎比语言训练让它更快的掌握了逻辑能力;2)指令调整,就是用一些人为范例去让模型去掌握一些人类问答的套路技巧;3)RLFH,让模型对一些问题自己输出多个回答,通过人工反馈打分,模型再调整回答权重。
  • 3大模型的下一步:与外部知识源(比如搜索)和工具(比如编程)结合,将带来可靠性和产能效率的真正提升。比如用GithubCopilot(一个基于GPT的编程助手)的程序员平均效率提升了55%;而结合搜索引擎,模型10秒钟就能完成对旅行规划等需要重复搜索,复杂信息综合的任务。

序言

大家好,我叫艾哈迈德,我是微软研究院的一名研究员。今天,我将谈论基础模型以及它们对当前AI时代的影响。

回顾过去5到10年,AI在许多感知任务方面取得了显著的影响,如图像和物体识别、语音识别,最近还包括语言理解任务。我们看到了不同的AI模型在这些领域取得了优越的性能,在许多情况下达到了与人类标注者在相同任务上的同等表现。

过去几年,AI的前沿已经转向生成式AI。

我们已经有了一些非常好的文本生成模型。实际上,您可以提示一个模型来描述一个想象中的场景,它会生成一个非常好的描述。

然后,我们在图像生成方面也取得了很多进展,比如DALL-E 2、Imagen等模型,以及像MidJourney和Stability AI这样的初创公司推出的模型,使得我们在图像生成方面达到了前所未有的质量水平;同时,受到图像生成模型的启发,还出现了很多关于图像生成动画甚至从零生成视频的工作。

生成模型的另一个前沿领域是代码生成,不仅可以根据文本提示生成代码,还可以解释代码,甚至在某些情况下调试代码。

我还听过NPR早间新闻节目的一个小故事,他们试图用一堆AI模型为火箭制作一个原理设计,并为火箭设计提供一些方程式。当然,恐怕这个设计会失败,但我不禁想到,AI已经变得如此之好,以至到了我们试图用它在火箭科学这样复杂的领域来应用的程度。

Transformer架构,规模化和上下文学习是近期基础模型进步的关键组成部分

回顾过去,我们发现有三个主要部分导致了我们目前从AI模型中看到的性能:Transformer架构、规模化和上下文学习。

1.Transformer主导的有趣案例

Transformer在过去几年主导了AI领域。

一开始,这个架构在自然语言处理领域取得了很大的成功,用了很短的时间就占领了整个自然语言处理领域。Transformer是一种非常高效的架构,易于扩展、并行化,核心是基于注意力机制的技术,这种技术可以建立起输入和输出数据的不同组成部分之间的依赖关系。

Transformer起初主要应用于自然语言处理,但渐渐地,它们在几乎所有的领域都发挥了作用。现在,我们看到在图像、视频、音频等多种领域的模型也在使用Transformer。

从Transformer的诞生之后过了五年,它们相对于最初的版本变化很小。尽管有很多企图更好更高效的Transformer变体的尝试,但这些改进可能仅限于某些用例,或者在扩展时无法保持优势。

另一个可能的原因是,这可能使得该架构的通用性降低,而通用性一直是Transformer最大的优势之一

2.规模化

接下来谈规模化。当我们谈论规模化时,我们实际上是指用于训练模型的计算量。这可以转化为训练越来越大的模型,具有越来越多的参数。

在过去的几年里,我们一直在看到这种规模化的稳步增长。但规模化也可能意味着使用更多的数据来训练模型。在过去几年里,我们看到了不同的模型在决定数据量和模型大小时采取了不同的方法。但一致的趋势是,我们一直在扩大规模,使用越来越多的计算资源

规模也导致了所谓的涌现能力(emerging capabilities)。这是过去一年里规模化的最有趣的特性之一。

所谓涌现能力,我们是指模型在达到某个临界点时开始表现出某种能力。在此之前,模型根本无法展示这种能力。例如,从算术到音译到多任务学习等任务,我们观察到,在某个临界点之前,我们根本无法解决问题,性能也不会比随机好。但是在某个临界点之后,我们开始看到性能的改善,而且这种改善越来越明显。

3.上下文学习:使用模型的新范式

也许最近语言模型最令人兴奋的涌现能力之一是在上下文中学习(in-context learning)的能力,这引入了一种新的范式来使用这些模型。

回顾一下我们如何进行深度学习的机器学习实践。首先,您需要选择一个架构,如Transformer,或者在此之前RNN或CNN。然后您需要使用大量标记数据进行全监督训练。

进入预训练模型时代,我们从一个预训练模型开始,然后根据任务进行微调,依然使用大量全监督标签数据。

(左: zero-shot零样本学习,  右: few-shot 小样本学习)

随着上下文学习的出现,我们突然可以直接使用预训练的模型。

我们可以使用一个提示来学习新任务,而无需进行任何学习。我们可以在零样本设置(zero-shot)中完成这一点,这意味着我们不提供任何示例,只提供任务的说明或描述;或者,在少样本设置(few-shot)中,我们只提供少量示例。

例如,如果我们想进行文本分类,比如情感分析,我们只需向模型提供文本,并要求将文本分类为正面或负面。如果任务更难,我们可以提供少量示例,告诉模型如何将事物分类为正面、负面或中性,然后要求模型推理新的文本。实际上,它做得很好。

(左:概要任务,右:算术任务)

不仅仅是像文本分类这样简单的任务,我们还可以进行翻译、摘要等更复杂的任务。我们甚至可以尝试让模型做文字算术题,并给出答案。

在(上图右边)这个例子中,我们给模型提供了一个样本来展示我们如何解决问题,然后让它解决另一个问题。

不过,在这个例子里,模型失败了。它确实给出了一个答案,但答案是错误的。

然后,就出现了所谓的“思维链提示”的概念。

我们不仅向模型展示输入和输出,还向模型展示从特定输入到输出所需的步骤。在这种情况下,我们逐步解决文字算术问题,并向模型展示一个示例。

这样做后,模型不仅能够产生正确的答案,而且还能够逐步告诉我们如何得出这个答案。

这种机制被称为“思维链提示”,在许多任务中表现出非常优越的性能。

思维链还以多种方式使用,包括在微调和训练一些预训练模型。

预训练和微调范式已经确立了多年,可能要追溯到BERT和类似预训练语言模型诞生的时候。

但现在,您会发现越来越多的模型通过提示而不是微调来使用。这在模型的实际应用中得到了验证,甚至在一些使用自然语言处理任务的机器学习领域的应用场景中,也开始转向使用提示而不是微调。

4.为什么上下文学习和提示范式非常重要

上下文学习和提示非常重要,因为它们实际上改变了我们将模型应用于新任务的方式。让我们在没有收集额外数据、没有进行任何额外训练的情况下,拥有了惊人的将模型应用于新任务的能力,增加了模型可以应用的任务数量,同时减少了构建这些任务模型所需的努力。

因为仅提供了少量示例,因此模型的性能也非常出色。在这种情况下,我们是让任务来适应模型,而不是模型适应任务

如果你考虑微调范式,我们所做的是已经有一个预训练模型,然后微调它以适应任务。现在我们试图以一种更适合模型训练方式的方式来构建任务,以便模型即使没有进行微调也能在任务上表现良好。

最后,这使得人们可以用自然语言与模型进行互动。我们可以只给出任务的指示和描述,模型就会执行任务。这使得机器学习用户和机器学习开发者之间的界限变得模糊,因为现在任何人都可以向语言模型提示并描述不同的任务,让语言模型完成大量任务,而无需进行任何培训或开发。

从GPT-3到ChatGPT:发生了什么

回顾过去三个月左右,我们看到该领域发生了很大的变化,围绕着ChatGPT模型的发布产生了巨大的热情。

如果我们把ChatGPT模型看作是一种生成模型,我们会发现GPT家族中还有其他生成模型,以及其他一些在文本生成方面做得不错的模型。

你可以拿GPT-3模型来回答问题,询问基础语言模型是什么意思,它会给你一个相当不错的答案。你可以问同样的问题给ChatGPT,你会发现它能提供更好的答案,答案更长、更详尽、更有结构。

你可以要求它以不同的方式进行风格化,以不同的方式进行简化,这些都是前一代模型无法真正做到的。

我们来看看OpenAI官方如何描述ChatGPT,描述中列举了不同的事物,但它主要是为对话优化,让人们能够用自然语言进行互动,更好地遵循指令等等。

如果我们逐步了解这在训练过程中是如何体现的,我们会从描述中看到,ChatGPT是建立在基础模型和其他模型之上的,这些模型在ChatGPT之前进行了自我监督的语言模型训练,采用了大量无监督的网络规模语言。

对于ChatGPT这种例子,模型是用自回归的下一个单词预测方法进行训练的,我们输入上下文,即一个句子或句子的一部分,并尝试预测下一个单词。

然后,在过去一年左右的时间里,我们看到了一个变化,模型不仅在文本上进行训练,还在代码上进行训练。

例如,GPT-3.5模型是在文本和代码上进行训练的。令人惊讶的是,在文本和代码上训练模型可以提高它们在许多与代码无关的任务上的表现。

在我们现在看到的图表上,我们看到了在代码上训练的模型和没有在代码上训练的模型之间的比较,我们发现,和只进行文本训练的模型相比,同时使用文本和代码进行训练的模型在遵循任务指令和推理方面的表现要好得多。

代码训练似乎以不同的方式为模型奠定了基础,使它们能够更多地了解如何进行推理,如何查看文本的不同部分之间的结构关系

第二个主要区别是指令调整的概念。

这个概念在过去的一年里在不同的模型中越来越受欢迎,或许从InstructGPT开始,它引入了在人类生成的数据上训练模型的概念,这是对传统自监督方法的一种突破

我们一直在无监督的非结构化文本上训练模型。现在,在训练过程中还有一个额外的步骤,即在人类生成的数据上训练模型。人类生成的数据采用提示和响应的形式,试图教会模型在给定问题下以特定方式回应。

这种指令调整的步骤实际上帮助模型在零样本zero-shot性能上变得更好,我们看到,经过指令调整的模型在zero-shot环境中的表现要优于没有经过指令调整的对应模型。

训练过程的最后一步引入了另一种人类生成的数据(即RLFH,从人类反馈中强化学习)。

在这种情况下,我们实际上有模型生成的多个响应,有一个人对这些响应进行偏好排序。换句话说,对响应进行排序并选择哪个响应优于其他响应。这些数据被用来训练一个奖励模型,然后可以用来用强化学习实际训练主模型。这种方法进一步使模型与人类提供反馈数据的方式保持一致。

这种用人类反馈数据训练模型的概念非常有趣,吸引了很多人关注如何最好地利用人类反馈数据进行训练,收集哪种形式的人类反馈以训练模型,并可能在不久的将来帮助我们进一步改进模型。

创新的速度使得基准测试变得过时

现在,随着所有这些进步,创新的基础和进步的加速正在如此迅速地发展,以至于在很多方面都面临着巨大的挑战。但也许最深刻的挑战之一是基准测试。

传统上,机器学习研究非常依赖于使用非常稳定的基准来衡量不同方法的进步,但最近的创新速度确实对此提出了挑战。

要了解进步有多快,让我们看一下来自Hypermind的数据,这是一家使用群体预测并一直在跟踪一些AI基准的预测公司。

首个基准测试是大规模多任务语言理解基准,这是一个涵盖了大量语言理解任务的集合。在 2021 年 6 月的时候,我们预测在此后一年内,就是 到2022 年 6 月的时候,模型在这个任务上将达到约 57% 的性能。但实际上,到 了2022 年 6 月,我们已经达到 67% 的水平,几个月后达到了 75%,此后我们不断看到更快的进步。

第二个任务是数学测试,它包括了一系列中学和高中的数学问题。在这里,预测是在一年内我们将达到约 13% 的水平,但实际上,我们在一年内取得了比预测更大的成绩,我们看到了AI以前所未有的速度在进步。

这种改进速度实际上导致许多基准测试迅速饱和。回顾像 MNest 和 Switchboard 这样的基准测试,社区花了 20 多年的时间才完全饱和这些基准。而现在,我们看到, 这种加速的趋势使得基准测试将在一年或更短的时间内饱和。

事实上,许多基准测试已经过时,只有 66% 的机器学习基准测试在不同时间点获得了超过三个结果,许多基准测试在发布后不久就被解决或饱和了。

实际上,这激发了社区为了挑战大型语言模型而共同努力尝试设计针对性的基准测试。

在这种情况下,Big-Bench 的诞生,超过 400 位作者来自 100 多个机构共同创造了这个基准测试。但即使如此精心的努力,我们也看到了非常快速的进展。基于在我们之前讨论过的大型语言模型和思维链提示,我们发现在 Big-Bench 中最困难的任务上取得了非常快速的进步,许多任务中,模型已经比人类表现得更好。

基础模型已经在改变我们每天使用的产品

基础模型不仅在基准测试上越来越好,而且实际上改变了我们每天使用的许多产品。

我们之前提到了代码生成,那么让我们稍微谈谈 Copilot。GitHub Copilot 是一种新的体验,帮助开发人员编写代码。Copilot 在很多方面都很有趣,一方面是它从一个模型研究到成为一个编译器中可用产品的速度,另一方面是它为用户创造了多少价值。

GitHub Copilot 团队进行了一项研究,试图量化这些模型为开发者带来的价值。在研究的第一部分,他们向开发者提出了不同的问题,试图评估模型有多实用。我们发现,88% 的参与者表示,在使用 Copilot 时,他们的工作效率比以前高得多,他们还报告了许多关于生产力的积极影响。

更有趣的是,研究进行了一项对照研究,两组开发人员试图完成相同的任务。其中一组可以使用 Copilot,另一组不能。可以使用 Copilot 的组不仅完成任务的成功率更高,而且整体效率更高。

在编码场景中,他们的生产力提高了 55%,这是一个惊人的进步,许多人会对像 Copilot 这样的模型如此迅速地产生如此大的价值感到惊讶。

与外部知识源和工具结合的大型语言模型(LLMs)

除了代码生成和文本生成之外,当我们开始将这些模型与外部知识源和外部工具连接时,这是这些模型开始大放光彩的另一个领域。

针对对话进行过优化的语言模型具有很好的语言能力,非常擅长理解语言和遵循指示。它们在合成和生成答案方面表现也很好。这些模型在性质上是对话式的,从训练数据中存储了知识,但在可靠性、准确性、静态性、访问训练数据之外的最近信息出处等方面还存在许多局限性。这就是为什么将这些模型与外部知识源和工具连接起来会非常令人兴奋。

举个例子,让我们谈谈将语言模型与搜索相连接,就像我们最近看到的新版必应一样。

回顾几年前,有很多研究研究网络搜索,研究我们尝试在网络搜索场景中完成的任务。许多这些任务被认为是复杂的搜索任务,这些任务既不是导航式的,也不是简单的信息任务,而是涉及多个查询的复杂任务,如规划陷阱或尝试购买产品,并在研究过程中查看多方面的查询。

关于这类任务,已经有很多关于用户行为的研究,以了解它们的普及程度以及人们为完成这些任务所花费的时间和精力。这些任务通常涉及在搜索引擎上花费大量时间阅读和整合来自不同来源的信息。

但是,通过像必应这样的新体验,我们实际上可以向搜索引擎提供更复杂的长查询,搜索引擎利用语言模型的能力生成多个查询,获取所有这些查询的结果,然后将详细答案发送回搜索者。

不仅如此,它还可以其他搜索,以及和与搜索引擎进行交互的方式了解更多信息。这可以为许多搜索节省大量时间和精力,并以更好的方式支持这些复杂的搜索任务。

有些复杂的搜索任务是多步骤的,会从一个查询开始,然后根据从第一个查询中获得的信息进行后续查询。

假设在超级碗前进行搜索,试图了解两位即将面对的四分卫之间的比较数据,我从这个查询开始。在这种情况下,搜索引擎实际上首先尝试确定谁将在超级碗中担任四分卫。如果我是人类,我会找到两支球队和两位四分卫,然后进行另一个查询,查找我询问的两位四分卫的数据,从不同的结果中整合信息,然后得出我想要的答案。

但是通过使用新的必应体验,我可以只发布查询,所有这些都在后台进行,生成不同的搜索查询,提交给搜索引擎,收集最近的结果,并生成一个综合答案。

说在最后

大型语言模型与搜索和其他工具集成的潜力非常巨大,可以为许多场景增加更多价值。

但是,还有许多挑战和机会,以及需要解决的许多局限性。可靠性和安全性是其中之一;还有提高模型准确性,可信度、出处和(避免)偏见;用户体验和行为,以及新体验如何影响用户与搜索引擎的互动;此外,还有个性化和用户偏好、搜索历史等方面的管理。

然而,总的来说,我们已经看到 AI 在过去几年取得了令人难以置信的进步。进步的速度不断加快,超出了很多方面的预期。这些进步不仅体现在学术基准和论文出版方面,而且我们还看到了越来越多的应用,这些应用正在改变我们每天使用的产品。

我们现在更接近AI 新时代的开始,而不是 AI 能力的终点。未来还有很多机会,我们可能会在未来几个月和几年内看到更多的进步和更快的进展。还有许多挑战和机会。

现在,因为这些模型,很多新机会变得可能。对于 AI 来说,这是一个非常令人兴奋的时刻,我们非常期待未来的进步以及由这些进步带来的应用,以及它们如何影响我们每天使用的产品。

非常感谢!


Copyright © 2024 aigcdaily.cn  北京智识时代科技有限公司  版权所有  京ICP备2023006237号-1