Menu Close

什么是大语言模型?ChatGPT 到底是如何工作的?

ChatGPT 可以回答问题、编写程序、总结文档、翻译语言、分析图片,还可以借助不同工具完成比较复杂的任务。

什么是大语言模型?ChatGPT 到底是如何工作的?

但在聊天窗口背后,究竟发生了什么?

ChatGPT 的核心是一类被称为“大语言模型”的人工智能模型,英文是 Large Language Model,通常简称为 LLM

大语言模型并不会像人类一样思考,也不是简单地从一个巨大的答案数据库中寻找现成内容。

它会处理用户输入的文字,识别其中的模式和上下文,然后一次生成一个很小的文字单位,逐步组成完整回答。

下面,我们从最基本的概念开始,看看大语言模型ChatGPT 到底是如何工作的。

一、LLM 是什么意思?

LLM 是 Large Language Model 的缩写,中文通常翻译为“大语言模型”。

这个名称可以分成三个部分。

Large:大

这里的“大”,主要是指模型包含数量极其庞大的可调节数值,也就是“参数”。

训练这些参数需要大量数据、计算资源和存储空间。

Language:语言

它的主要任务是处理和生成人类语言。

这里的语言不仅包括日常对话,还包括:

  • 技术文章
  • 程序代码
  • 数学表达
  • 文档格式
  • 不同语言之间的翻译

Model:模型

模型是一个经过训练的数学系统。

它通过训练数据学习文字、短语、事实、代码、写作风格和不同概念之间的关系。

正因为学习了这些关系,大语言模型才能完成问答、写作、翻译、编程和内容分析等任务。

二、LLM 本质上是一个神经网络

大语言模型的核心,是一个规模非常庞大的人工神经网络。

神经网络由很多层数学运算组成。

每一层都会接收上一层传来的数据,对数据进行变换,再把结果传递给下一层。

传统程序通常依赖明确的规则,例如:

如果用户提出这个问题,就返回这个答案。

大语言模型并不是这样工作的。

它不会为每个问题预先保存一条固定规则,而是在训练过程中学习大量统计关系。

例如,模型可能发现下面这些词经常出现在相同的技术语境中:

  • CPU
  • 指令
  • 寄存器
  • 缓存
  • 内存

模型并不只是记住这些单词,而是学习它们之间可能存在的关系。

这使它能够回答以前没有以完全相同形式见过的问题。

三、文字首先会被转换成 Token

大语言模型不能直接处理完整的自然语言句子。

在进入模型之前,文字需要先被切分成更小的单位,这些单位叫作 Token。

Token 可以是:

  • 一个完整单词
  • 单词的一部分
  • 一个数字
  • 一个标点符号
  • 一小段字符

例如下面这句话:

The GPU renders an image.

可能会被切分成:

The|GPU|renders|an|image|.

这里的每一部分都可以成为一个 Token。

英文中的一个单词可能对应一个 Token,也可能被拆分成多个 Token。

中文的一个汉字、词语或标点,也可能分别成为不同的 Token。

因此,Token 并不完全等于“单词”。

Token 是大语言模型读取和生成文字时使用的基本单位。

四、Token 会被转换成数字

计算机不能直接理解“CPU”“处理器”或“香蕉”这些词的含义。

因此,每一个 Token 都需要被转换成一组数字。

这组数字通常称为:

  • 向量
  • 词向量
  • Embedding
  • 嵌入表示

这些数字用来表示模型在训练中学到的关系。

例如,“CPU”和“处理器”的含义比较接近,它们对应的数值表示也可能比较接近。

而“CPU”和“香蕉”之间的含义差别较大,它们在向量空间中的距离通常也会更远。

模型还需要知道 Token 的排列顺序。

例如:

狗追赶猫。

和:

猫追赶狗。

这两个句子包含几乎相同的词,但因为顺序不同,意思也完全不同。

因此,模型不仅需要表示 Token 本身,还需要表示每个 Token 在句子中的位置。

五、Transformer 架构

大多数现代大语言模型都建立在一种叫作 Transformer 的神经网络架构之上。

Transformer 在2017年的论文《Attention Is All You Need》中被正式提出。

早期的一些语言模型主要按照顺序逐步处理文字。

Transformer 则大量使用注意力机制,可以同时处理和比较句子中的多个位置,因此更适合并行计算。

Transformer 通常由很多重复的处理模块组成。

每个模块主要包括两个部分:

  • 注意力机制
  • 前馈神经网络

文字信息会不断经过这些模块。

随着处理层数增加,模型会逐渐形成更加丰富的上下文表示。

例如,模型最开始可能只识别单词本身,后面的层则可能逐渐识别:

  • 语法关系
  • 主语和宾语
  • 前后文联系
  • 技术概念
  • 整段文字的含义

六、什么是注意力机制?

注意力机制帮助模型判断:在处理当前 Token 时,前面哪些 Token 更重要。

例如:

服务器无法启动,因为它失去了电源。

为了理解“它”指的是什么,模型需要判断“它”很可能指前面的“服务器”。

注意力机制会比较句子中的不同 Token,并为它们分配不同的重要程度。

模型并不是只查看距离最近的词。

它可以在更长的句子甚至更长的文章中寻找相关信息。

现代 Transformer 通常使用 多头注意力机制。

所谓“多头”,就是让多组注意力计算同时分析同一段文字。

不同的注意力头可能分别关注:

  • 语法结构
  • 主语和代词的关系
  • 时间关系
  • 技术上下文
  • 前后句之间的联系

通过这些并行的分析,模型可以建立更加完整的上下文理解。

七、什么是参数?

大语言模型内部包含大量可以调整的数值。

这些数值被称为:

  • 参数
  • 权重
  • Weights

参数控制信息如何在神经网络中流动。

在训练刚开始时,这些参数通常没有什么实际意义,模型的预测可能接近随机。

随着训练不断进行,系统会反复调整这些参数。

如果模型的预测不够准确,训练算法就会计算误差,然后稍微修改模型中的参数。

经过大量重复训练后,模型预测文字的能力会逐渐提高。

因此,模型的知识并不是存放在一个简单的文件夹、文章库或者问答表中。

它分散在大量参数形成的数值关系里。

大语言模型并不是这样存储答案的:

问题一对应答案一。
问题二对应答案二。
问题三对应答案三。

训练主要是改变模型的参数,让参数能够表示训练数据中存在的各种模式和关系。

八、大语言模型是如何训练的?

大语言模型的第一个重要训练阶段通常叫作 预训练。

在预训练过程中,模型会接收一段由 Token 组成的文字,并尝试预测缺失的 Token 或下一个 Token。

例如:

操作系统负责管理计算机的……

后面可能出现:

  • 硬件
  • 内存
  • 资源
  • 设备
  • 软件

模型会为每一个候选 Token 计算一个概率。

例如:

  • 硬件:40%
  • 资源:30%
  • 内存:20%
  • 软件:7%
  • 其他:3%

训练系统知道原始文本中的正确答案。

如果模型给正确答案的概率太低,系统就会计算误差,并稍微调整模型参数。

然后再进行下一次预测。

这个过程会在海量训练数据上不断重复。

随着训练进行,模型会逐渐学会:

  • 语法
  • 句子结构
  • 写作风格
  • 程序代码模式
  • 不同概念之间的关系
  • 如何生成合理的后续内容

表面上看,训练目标似乎非常简单:

预测下一个 Token。

但想要准确预测下一个 Token,模型往往需要学习大量关于语言、知识、逻辑和上下文的模式。

九、模型如何学会听从指令?

只经过预训练的语言模型,可能很擅长续写文字,但不一定是一个好用的聊天助手。

例如,用户提出一个问题时,未经专门训练的模型可能只是继续补全问题,而不是认真回答问题。

因此,模型还需要学习如何听从指令。

一种常见方法叫作 监督微调。

人类会编写大量示例,告诉模型:

  • 用户提出了什么要求
  • 一个有帮助的助手应该怎样回答
  • 哪些回答更加清楚
  • 哪些回答不够准确
  • 哪些回答存在风险

人类评估者还可以比较多个不同回答,并指出哪个回答更好。

一些模型训练方法还会使用:

  • 人工示范
  • 回答排序
  • 奖励模型
  • 基于人类反馈的强化学习
  • 其他偏好优化方法

经过这些训练,模型会更加擅长:

  • 回答问题
  • 遵循格式
  • 按要求改写内容
  • 减少无关回答
  • 生成更有帮助的结果

需要注意的是,当前商业模型的完整训练流程通常不会全部公开。

不同公司和不同模型使用的方法也可能不同。

十、发送一个 Prompt 后发生了什么?

当用户在 ChatGPT 中发送一条消息时,系统首先会准备模型需要的信息。

简化后的流程大致如下:

用户输入

Token 化

Token 向量

Transformer 层

候选 Token 概率

选择下一个 Token

重复

模型处理的不一定只有用户刚刚输入的这一句话。

根据具体功能和设置,上下文还可能包括:

  • 当前对话中的早期消息
  • 指导助手行为的系统指令
  • 用户上传的文件
  • 搜索或工具返回的信息
  • 已启用的相关记忆
  • 图片、代码或其他输入

模型把这些内容组合成上下文,然后计算下一个 Token 的概率。

它会选择一个 Token,把它加入回答,再重新计算下一个 Token。

例如,模型可能先生成:

CPU

然后继续生成:

CPU

再继续生成:

CPU 是计算机

接下来逐步形成完整句子。

虽然用户看到的结果像是一整段同时生成的文字,但实际上,回答通常是逐个 Token 生成的。

十一、为什么大语言模型会产生幻觉?

大语言模型的主要任务,是根据上下文生成概率较高的后续内容。

它不会自动把每一句话都拿到权威资料中进行验证。

因此,它有时会生成一种看起来非常流畅、非常自信,但内容实际上错误甚至完全虚构的回答。

这种现象通常被称为 幻觉。

大语言模型产生幻觉的原因可能包括:

  • 训练数据不完整
  • 用户的问题存在歧义
  • 模型错误组合了几个相关概念
  • 问题涉及训练之后的新信息
  • 上下文提供的信息不足
  • 模型生成了听起来合理但缺少证据的文字

例如,模型可能知道某个人、某家公司和某项技术都是真实存在的,却错误地把它们组合成一个并不存在的事件。

因此,在处理重要信息时,不能只看回答是否流畅。

还需要检查:

  • 原始资料
  • 官方文档
  • 权威媒体
  • 研究论文
  • 真实数据
  • 可靠数据库

让模型使用网页搜索、文件、数据库、计算器和专业工具,可以提高准确性。

但工具也不能保证每一个结论都绝对正确。

重要信息仍然需要核实。

十二、ChatGPT 不只是一个大语言模型

大语言模型是语言处理引擎。

ChatGPT 则是建立在一个或多个人工智能模型之上的完整产品。

可以把它们理解为:

大语言模型是发动机,ChatGPT 是整辆汽车。

一辆汽车不仅需要发动机,还需要方向盘、刹车、仪表、车身和控制系统。

同样,ChatGPT 也不只是一个孤立的大语言模型

根据任务和功能,它还可能把模型与下面这些组件组合起来:

  • 系统指令
  • 安全机制
  • 对话历史
  • 记忆
  • 网页搜索
  • 文件分析
  • 图片理解
  • 代码执行
  • 外部工具

因此,用户看到的 ChatGPT 能力,是模型和产品系统共同工作的结果。

不过,当前版本 ChatGPT 的完整内部架构、模型选择方式和任务路由系统属于专有技术。

外界无法准确知道其中的每一个内部步骤。

但最基本的工作流程仍然可以理解:

把输入转换成 Token。
让 Token 通过神经网络层。
使用注意力机制分析上下文。
计算不同输出 Token 的概率。
逐个 Token 生成回答。

这些过程需要进行大量矩阵计算。

这也是为什么 GPU人工智能加速器如此重要。

GPU 拥有大量并行计算单元和高带宽显存,能够高效完成大语言模型训练和推理所需的大规模矩阵运算。

结语

大语言模型不是一个普通数据库,也不是传统搜索引擎,更不是人类大脑。

它是一个经过海量数据训练的数学模型。

它通过参数、向量、Transformer 和注意力机制,学习文字与概念之间的复杂模式,然后根据上下文逐个 Token 生成内容。

理解下面这些基本概念,是进一步学习人工智能大语言模型的基础:

  • Token
  • 向量和 Embedding
  • 参数
  • Transformer
  • 注意力机制
  • 预训练
  • 微调
  • 推理
  • 幻觉

下一篇文章,我们将更加详细地介绍 Token,看看 Token 化如何影响大语言模型的上下文长度、运行速度、性能和使用成本。

除教程外,本网站大部分文章来自互联网,如果有内容冒犯到你,请联系我们删除!
Posted in 人工智能