一篇文章讲清楚”人工智能”和”大语言模型”的前世今生

本文将为您梳理人工智能大语言模型发展的历史脉络,让您从对人工智能和大型语言模型一无所知,到对这些革命性技术的工作原理有一个坚实的基础。

在过去的一年里,人工智能彻底改变了世界,像 ChatGPT 这样的产品可能会应用到每一个行业,以及人们与技术的交互方式。在本文中,我将重点介绍 LLM、它们的工作原理、道德考量、应用等。

LLM和神经网络

什么是LLM?

首先,什么是 LLM?它和人工智能有区别吗?ChatGPT 和这些有什么关系?

LLM (Large Language Model)代表大型语言模型,它是一种在海量文本数据上进行训练的神经网络。它通常是在网上可以找到的数据上进行训练。任何基于文本的数据都可以训练成大型语言模型。

什么是神经网络?

神经网络本质上是一系列试图识别数据模式的算法。而 LLM 是神经网络的一种特殊类型,专注于理解自然语言。如前所述,LLMs 通过阅读大量的书籍、文章和网络文本来学习,而且没有任何限制。

那么,LLM 与传统编程有何不同?

传统编程以指令为基础,也就是说,如果X,那么Y。你要给它一系列指令去执行。

但使用 LLM,情况就完全不同了。你不是在教计算机如何做事,而是在教它如何学习如何做事。

这是一种更加灵活的方法,非常适合许多不同的应用,而以前的传统编程无法实现这些应用。

图像识别就是一个很好的例子。对于图像识别,传统编程需要你硬编码每一条规则,比如说识别不同的字母。但如果你手写这些字母,每个人手写的字母看起来都不一样。那么,如何使用传统编程来识别每一种可能的变化呢?

这就是人工智能方法的用武之地。与其给计算机明确指示如何识别手写字母,不如给它一堆手写字母的示例,然后它就能根据自己掌握的所有示例推断出新的手写字母是什么样的。

机器学习和大型语言模型与这种新的编程方法的不同之处还在于,它们更加灵活,适应性更强,这意味着它们可以从自己的错误和不准确中学习,因此比传统编程的可扩展性要强得多。

LLM 在摘要、文本生成、创意写作、问答、编程等一系列任务中都非常强大,而且它们只会越来越好。随着我们在互联网上生成更多的数据,随着我们使用合成数据,也就是其他大型语言模型创建的数据,这些模型会迅速变得更好。

想想未来会发生什么,真是令人兴奋。

大型语言模型的历史和演变

现在,让我们来谈谈大型语言模型的历史和演变。

大型语言模型的历史可以追溯到 1966 年的 ELISA 模型,这是第一个真正意义上的语言模型。它根据关键词预设了答案,对英语的理解非常有限,而且和许多早期的语言模型一样,在对话中来回几次之后,你就会发现它的逻辑漏洞百出。

此后,语言模型在很长一段时间内都没有得到发展。

虽然从技术上讲,第一个递归神经网络(RNN)诞生于 1924 年,但它们直到 1972 年才真正具备学习能力。新的语言学习模型是一系列神经网络,具有层、权重和一大堆我在本文中不会涉及的东西。

RNN 是第一种能够预测句子中下一个单词的技术,而不是将所有东西都预先编程好。这也是目前大型语言模型工作的基础。

即使在此之后,在本世纪初深度学习出现的时候,人工智能领域的发展也非常缓慢,语言模型远远落后于我们今天所看到的。

这一切在 2017 年发生了改变,谷歌 DeepMind 团队发布了一篇关于一项名为Transformers的新技术的研究论文。

这篇论文被称为 “注意力就是你所需要的一切”。

顺便说一句,我认为谷歌当时甚至都不知道他们发表了什么。

但就是这篇论文,让 OpenAI 开发出了 ChatGPT。显然,其他计算机科学家也看到了Transformers架构的潜力。

新的Transformers架构要先进得多。它所需的训练时间更短,而且还具有许多其他功能,比如自我关注。

Transformers 允许预训练大型语言模型,比如 2018 年由 OpenAI 开发的 GPT-1。它有 1.17 亿个参数,完全是革命性的,但很快就被其他 LLM 所超越。

之后,2018 年发布了 BERT,即 B-E-R-T。它拥有 3.4 亿个参数,并且具有双向性,这意味着它能够双向处理文本,这有助于它更好地理解上下文。

而相比之下,单向模型只能理解目标文本之前的单词。在此之后,LLM 并没有开发出很多新技术,但它们的规模确实大大增加了。

GPT-2 于 2019 年初发布,拥有 25 亿个参数。

然后在 2020 年 6 月发布了 GPT-3,拥有 1750 亿个参数。

此时,公众开始注意到大型语言模型。

GPT 对自然语言的理解比其任何前辈都要好得多。这就是为 ChatGPT 提供动力的模型类型,而 ChatGPT 可能是大家最熟悉的模型。

ChatGPT 之所以如此受欢迎,是因为它比以前的任何工具都要准确得多。这确实是因为它的规模,也因为它现在已经内置于这种聊天机器人格式中,任何人都可以跳进去,真正了解如何与这个模型互动。

ChatGPT 3.5 于 2022 年 12 月发布,开启了我们今天看到的人工智能浪潮。

然后在 2023 年 3 月,GPT-4 发布,它令人难以置信,直到今天仍然令人难以置信。据报道,它拥有高达 1.76 万亿个参数,而且使用的可能是专家混合方法,这意味着它拥有多个模型,这些模型都针对特定用例进行了微调。当有人向它提问时,它会选择使用其中的哪个模型。

然后,他们又增加了多模态和其他一些功能。这就是我们今天的成果。

大型语言模型的工作原理

好了,现在让我们来详细谈谈大型语言模型的工作原理。大型语言模型的工作过程可以分为三个步骤。

标记

第一个步骤叫做标记化。经过训练的神经网络可将长文本分割成单个标记。一个标记基本上是一个单词的四分之三。因此,如果是一个较短的词,如 hi、that 或 there,它可能只是一个标记,但如果是一个较长的词,如 summarization,它将被分割成多个片段。

实际上,每个模型的标记化方式都不一样。有些模型会将前缀和后缀分开。

我们来看一个例子:

“what is the tallest building(什么是最高的建筑)?”

其中,what is the tallest building 都是独立的标记。因此,这就将后缀从 tallest(最高)中分离出来,而不是从 building(建筑)中分离出来,因为它考虑到了上下文。

这一步是为了让模型能够单独理解每个单词,就像人类一样,我们单独理解每个单词,也理解单词的组合。

嵌入

然后,大语言模型的第二步就是所谓的嵌入。

大语言模型将这些词组转化为嵌入向量,将这些词组转化为这些词组数字的数字表示。

这使得计算机更容易阅读和理解每个单词,以及不同单词之间的关系。这些数字都与嵌入向量数据库中的位置相对应。

转换器

最后一步是转换器,我们稍后会讲到。首先,我们来谈谈向量数据库。我将交替使用单词和标记这两个术语。请记住这一点,因为它们几乎是一回事,不完全是,但几乎是。

因此,我一直在谈论的这些单词嵌入会被放入一个叫做向量数据库的东西中。这些数据库是针对向量进行了高度优化的存储和检索机制。同样,这些只是一长串数字。因为它们被转换成了这些向量,所以它们可以很容易地看到哪些词与其他词有关联 基于它们的相似度,基于它们的嵌入度,它们有多接近。这就是大型语言模型能够根据前一个词预测下一个词的原因。

矢量数据库将数据之间的关系捕捉为多维空间中的矢量。我知道这听起来很复杂,但其实就是很多数字。矢量是具有大小和方向的对象,两者都会影响一个矢量与另一个矢量的相似程度。

LLM 就是这样根据这些数字来表示单词的。每个单词都会变成一个向量,用来捕捉语义及其与其他单词的关系。

举个例子,”书”(book)和 “虫”(worm)这两个词,单独看它们可能并不相关,但它们是相关的概念,因为它们经常一起出现,”书虫”(bookworm)是指喜欢阅读的人。

正因为如此,它们的嵌入看起来很接近。因此,模型可以利用这些嵌入建立对自然语言的理解,并寻找不同词语、术语、词组的相似性,以及所有这些细微的关系。

与其他格式相比,向量格式能帮助模型更好地理解自然语言。你可以把这一切想象成一张地图。如果你的地图上有两个相距很近的地标,它们的坐标很可能非常相似。所以这就有点像地图。

矩阵表示法可以用我们刚才提到的矢量来表示。矩阵表示的方法是从数字中提取一些信息,然后通过一种叫做多头注意力的算法将所有信息放入矩阵中。

多头注意力算法的输出是一组数字,它告诉模型单词及其顺序对整个句子的贡献程度。我们将输入矩阵转换为输出矩阵,输出矩阵将与具有与输出矩阵相同值的单词相对应。因此,我们基本上是将输入矩阵转换为输出矩阵,然后将其转换为自然语言。而单词就是整个过程的最终输出。这种转换是由训练过程中创建的算法完成的。

因此,模型对如何进行转换的理解是基于它所训练的所有知识,即来自互联网、书籍、文章等的所有文本数据。根据训练过程中确定的权重,它可以学习到哪些词序是连在一起的,以及它们对应的下一个词。

转换器使用注意力机制来理解句子中单词的上下文。它涉及点积计算,点积本质上是一个数字,代表单词对句子的贡献程度。它会找出单词点积之间的差值,并给出相应的较大注意力值。

如果单词的关注度较高,它就会更多地考虑这个单词。

大型语言模型是如何训练的

现在让我们来谈谈大型语言模型究竟是如何训练的。

收集数据

训练大型语言模型的第一步是收集数据。你需要大量的数据。当我说数十亿个参数时,这只是一个衡量实际用于训练这些模型的数据量的标准。你需要找到一个非常好的数据集。如果你有非常糟糕的数据进入模型,那么你就会有一个非常糟糕的模型。垃圾进,垃圾出。

因此,如果数据集不完整或有偏差,那么大语言模型也将如此。

数据集是巨大的。我们说的是海量数据。他们从网页、书籍、对话、Reddit 帖子、X 帖子、YouTube 转录中获取数据。

基本上,只要我们能获得一些文本数据,这些数据就会变得非常有价值。

让我来介绍一下我们所说的数据集到底有多庞大。这里有一小段文本,包含 276 个tokens。就是这样。现在,如果我们把它放大,一个像素就是这么多标记。现在,这里呈现的是 2.85 亿个词块,这只是一些大型语言模型需要训练的 1.3 万亿个词块的 0.02%。

数据预处理

数据预处理是数据训练模型的准备工作,从数据质量到标签一致性、数据清理、数据转换和数据缩减,数据预处理背后蕴含着一整套科学。

不过,我不会在这方面说得太深。这种预处理可能需要很长时间。这取决于所使用的机器类型、处理能力、数据集的大小、预处理步骤的数量,以及其他一系列因素,因此很难准确知道预处理需要多长时间。

训练

但我们知道,实际训练需要很长时间。像 Nvidia 这样的公司正在为大型语言模型背后的数学运算专门定制硬件。这些硬件正在不断改进。用于处理这些模型的软件也在不断改进。因此,处理模型的总时间在缩短,但模型的规模却在增大。

训练这些模型的成本非常昂贵,因为你需要大量的处理能力和电力,而这些芯片并不便宜。这就是为什么 Nvidia 的股价一飞冲天,其收入增长非同寻常。因此,在训练过程中,我们将前面提到的经过预处理的文本数据输入到模型中。然后使用转换器或模型所基于的任何技术,但最有可能的是转换器,它将根据数据的上下文尝试预测下一个单词。它将调整模型的权重,以获得最佳输出。这个过程会重复数百万次,直到达到最佳质量。

评估

最后一步是评估。我们会留出少量数据用于评估。在这个数据集上测试模型的性能。然后在必要时对模型进行调整。用于确定模型有效性的指标称为复杂度(perplexity)。它将根据两个词的相似度对其进行比较。如果两个词有关联,它就会给出一个好分数;如果没有关联,它就会给出一个坏分数。

然后,我们还使用 RLHF,即通过人类反馈进行强化学习。这时,用户或测试者会实际测试模型,并根据输出结果给出正面或负面的分数。然后再一次对模型进行必要的调整。

微调

好了,现在让我们来谈谈微调,我想很多人都会对此感兴趣,因为这是普通人很容易就能掌握的东西。我们有这些流行的大型语言模型,它们是在大量数据集上训练出来的,用于构建通用语言能力。与从头开始训练模型相比,这些预先训练好的模型(如 BERT 和 GPT)为开发人员提供了一个良好的开端,但接下来就是微调,它允许我们使用这些原始模型、基础模型,并针对我们的特定用例进行微调。

让我们举个例子。比方说,你想微调一个模型,使其能够接受披萨订单,能够进行对话,回答有关披萨的问题,最后能够让顾客购买披萨。你可以利用一组比萨店和顾客之间已有的对话,将其加载到模型中,然后对模型进行微调,这样,该模型在比萨订购对话方面的表现就会突然好很多。模型更新后,就能更好地理解某些披萨术语、问题、回应、语气等一切。

微调比全面训练快得多,而且准确率也高得多。微调允许对预先训练好的模型进行微调,以适应真实世界的用例。最后,你可以利用一个基础模型,针对各种用例进行多次微调。有很多很棒的服务可以让你做到这一点。同样,这也与数据质量有关。因此,如果你有一个非常好的数据集,并在此基础上对模型进行微调,那么这个模型就会非常非常好。反之,如果你的数据集质量很差,那么它的表现也不会很好。

大语言模型的局限性和挑战

现在让我们来谈谈大语言模型的局限性和挑战。尽管 LLM 的能力很强,但它们仍然有很多局限性。最近的模型不断改进,但仍然存在缺陷。

逻辑与推理的缺陷

它们在某些方面的价值和知识令人难以置信,但在数学、逻辑和推理等其他方面也有很大缺陷。

与人类相比,它们在很多时候仍然很吃力,而人类却很容易理解这些概念。

偏见和安全性缺陷

此外,偏见和安全性仍然是个大问题。大型语言模型是在人类创建的数据基础上训练出来的,自然存在缺陷。人类对任何事物都有自己的看法,而这些看法会渗透到这些模型中。

这些数据集可能会包含有害或有偏见的信息,有些公司会对它们的模型更进一步,对这些模型进行一定程度的审查,至于审查是否值得,这本身就是一个完整的讨论。

从历史上看,大语言模型的另一大局限性在于,他们只掌握了在接受培训之前的知识。不过,随着 ChatGPT 能够浏览网页,例如 x.ai 的 Grok 能够访问实时推文,这个问题已经开始得到解决,但仍有很多问题需要解决。

幻觉问题

此外,大型语言模型面临的另一大挑战是幻觉,这意味着它们有时会胡编乱造或明显弄错。它们也会对自己的错误充满自信。它们会非常自信地陈述事情,但却会完全错了。

请看这个例子。字符串中有多少个字母,然后我们给它一串随机字符,然后答案是字符串有 16 个字母,尽管它只有 15 个字母。

训练和使用成本问题

另一个问题是,大型语言模型对硬件的要求极高。它们的训练和微调成本很高,因为这需要大量的处理能力。

版权和伦理问题

很多人工智能公司都说他们不会在受版权保护的材料上训练模型,但事实证明这是撒谎的。目前,法院正在审理大量关于这个问题的诉讼。

现在我们来谈谈伦理方面的考虑。这里有很多需要考虑的问题。我只谈一些主要的话题。

首先,我们已经谈到,这些模型可能是在受版权保护的材料上训练出来的。如果是这样,这算是合理使用吗?可能不是。

其次,这些模型可能会被用于有害行为。这是无法避免的。大型语言模型可以被用来欺骗他人,制造大量错误信息和虚假信息,包括假图片、假文本、假观点,几乎可以肯定的是,整个白领队伍都将被大型语言模型所扰乱。正如我提到的,任何人在电脑前能做的事情,人工智能可能也能做。因此,律师、作家、程序员等众多不同职业都将被人工智能彻底颠覆。

AGI

最后是 AGI。当人工智能变得如此聪明,甚至开始独立思考时会发生什么?这时,我们必须要有一种叫做 “对齐 “的东西,这意味着人工智能要与人类的激励机制和结果保持一致。

大语言模型在现实世界中的应用

接下来,让我们谈谈大语言模型在现实世界中的应用。

为什么它们如此有价值?为什么它们如此受人关注?为什么它们能在我们眼前改变世界?

大型语言模型可用于多种任务,而不仅仅是聊天机器人。它们可以用于语言翻译。它们可以用于编码。它们可以用作编程助手。它们可以用于总结、问题解答、论文写作、翻译,甚至图像和视频创作。

基本上,人类可以用计算机解决的任何类型的思维问题,大型语言模型都有可能做到。即使今天做不到,未来也会很快做到。

当前的进展和研究

现在让我们来谈谈当前的进展和研究。

知识提炼

目前,有很多关于知识提炼的讨论,这基本上意味着将关键知识从非常庞大、尖端的模型转移到更小、更高效的模型中。想想看,这就像教授将教科书中数十年的经验浓缩成学生可以理解的东西。这样,较小的语言模型也能受益于从这些大型语言模型中获得的知识,但仍能高效地运行日常消费硬件。这使得大型语言模型的运行更加方便实用,甚至可以在手机或其他终端设备上运行。

RAG(检索增强生成)

此外,RAG(即检索增强生成)也得到了大量的研究和重视,这基本上意味着你要赋予大型语言模型在其训练数据之外查找信息的能力。你使用向量数据库的方式与大型语言模型的训练方式相同,但你可以存储大量的额外数据,供大型语言模型查询。

专家混合技术

然后,我们还提到了专家混合技术,这是一项令人难以置信的新技术,它可以将多个模型合并在一起,并对所有模型进行微调,使其成为特定领域的专家。然后,当实际提示出现时,它会选择使用其中哪些专家。因此,这些庞大的模型运行起来非常高效。在多模态方面也做了很多工作。因此,从语音、图像、视频等所有可能的输入源获取输入,并从中获得单一输出。

提高推理能力

在提高推理能力方面,我们也做了很多工作。让模型慢慢思考是我在 ORCA 2 等论文中看到的一个新趋势,它基本上只是迫使大型语言模型一步一步地思考问题,而不是试图立即跳到最终结论。

更大的语境规模

还有更大的语境规模。如果你想让大型语言模型处理大量数据,它就必须有一个非常大的上下文窗口。而上下文窗口就是你能给提示多少信息,就能得到多少输出。而实现这一点的方法之一,就是通过 memgpt 等项目为大语言模型提供内存,给模型提供外部内存,这些内存来自它们训练的核心数据集。

原创文章,作者:朋远方,如若转载,请注明出处:https://caovan.com/yipianwenzhangjiangqingchurengongzhinenghedayuyanmoxingdeqianshijinsheng/.html

Like (0)
Donate 微信扫一扫 微信扫一扫
朋远方的头像朋远方
Previous 2024年3月7日 上午9:56
Next 2024年3月9日 下午5:53

相关推荐

发表回复

Please Login to Comment