关于前端:ChatGPT-的工作原理深入探究

4次阅读

共计 2449 个字符,预计需要花费 7 分钟才能阅读完成。

本文首发于微信公众号:大迁世界, 我的微信:qq449245884,我会第一工夫和你分享前端行业趋势,学习路径等等。
更多开源作品请看 GitHub https://github.com/qq449245884/xiaozhi,蕴含一线大厂面试残缺考点、材料以及我的系列文章。

快来收费体验 ChatGpt plus 版本的,咱们出的钱
体验地址:https://chat.waixingyun.cn
能够退出网站底部技术群,一起找 bug.

这篇文章次要探讨了 ChatGPT 的工作原理。ChatGPT 是基于 OpenAI 开发的 GPT- 4 架构的大型语言模型。首先,文章介绍了 GPT 的基本概念,即生成 预测性网络模型。GPT 模型利用大量的文本数据进行训练,从而学会在各种情境中生成连贯的文本。

接着,文章具体论述了训练过程,分为 预训练 微调 两个阶段。在预训练阶段,模型学习了解文本数据,包含词汇、语法、事实等;在微调阶段,模型应用具备限制性工作的数据集来调整,以取得更精确的输入。作者还提到了训练数据的起源,强调了在大量网络文本数据中获取常识的重要性。

在解释输入生成时,文章提到了一个关键技术:集束搜寻(Beam Search)。这是一种启发式搜寻策略,用于抉择最优文本序列。此外,作者强调了解决生成内容问题的策略,包含设置过滤器和调整温度参数。

最初,文章探讨了 ChatGPT 的局限性,例如解决输出数据时可能会产生偏见,或无法回答一些问题。尽管如此,作者指出 ChatGPT 是一个弱小的工具,可能在各种工作中提供有价值的帮忙。


像 ChatGPT 这样的大型语言模型实际上是如何工作的?嗯,它们既非常简单又极其简单。

你能够将模型视为依据某些输出计算输入概率的工具。在语言模型中,这意味着给定一系列单词,它们会计算出序列中下一个单词的概率,就像高级主动实现一样。

要了解这些概率的起源,咱们须要议论一些叫做 神经网络 的货色。这是一个相似网络的构造,数字被输出到一侧,概率被输入到另一侧。它们比你设想的要简略。

设想一下,咱们想要训练一台计算机来解决在 3x3 像素显示器上辨认符号的简略问题。咱们须要像这样的神经网络:

  • 一个输出层
  • 两个暗藏层
  • 一个输入层。

咱们的输出层由 9 个称为神经元的节点组成,每个像素一个。每个神经元将保留从 1(红色)到 -1(彩色)的数字。咱们的输入层由 4 个神经元组成,每个神经元代表可能的符号之一。它们的值最终将是 0 到 1 之间的概率。

在这些之间,咱们有一些神经元的排列,称为 “暗藏”层。对于咱们简略的用例,咱们只须要两个。每个神经元都通过一个权重与相邻层中的神经元相连,该权重的值能够在- 1 和1 之间。

当一个值从输出神经元传递到下一层时,它会乘以权重。而后,该神经元简略地将其接管到的所有值相加,将该值压缩在 - 1 和 1 之间,并将其传递给下一层中的每个神经元。

最初一个暗藏层中的神经元执行雷同的操作,但将值压缩在 0 和 1 之间,并将其传递到输入层。输入层中的每个神经元都保留一个概率,最高的数字是最可能的后果。

当咱们训练这个网络时,咱们向它提供一个咱们晓得答案的图像,并计算答案与网络计算的概率之间的差别。而后咱们调整权重以靠近预期后果。然而咱们如何晓得如何调整权重呢?

咱们应用称为 梯度降落 反向流传 的奇妙数学技术来确定每个权重的哪个值会给咱们最低的误差。咱们一直反复这个过程,直到咱们对模型的准确性感到称心。

这被称为 前馈神经网络 – 但这种简略的构造不足以解决自然语言解决的问题。相同,LLM 偏向于应用一种称为Transformer 的构造,它具备一些要害概念,能够开释出很多后劲。

首先,让咱们谈谈单词。咱们能够将单词合成为 token,这些 token 能够是单词、子单词、字符或符号,而不是将每个单词作为输出。请留神,它们甚至包含空格。

就像咱们的模型中将像素值示意为 0 到 1 之间的数字一样,这些 token 也须要示意为数字。咱们能够为每个标记调配一个惟一的数字并称之为一天,但还有另一种示意它们的形式,能够增加更多上下文。

咱们能够将每个 token 存储在一个多维向量中,批示它与其余标记的关系。为简略起见,设想一下在二维立体上绘制单词地位。咱们心愿具备类似含意的单词彼此凑近。这被称为 embedding 嵌入

embedding 有助于创立类似单词之间的关系,但它们也捕获类比。例如,单词“dog”和“puppy”之间的间隔应该与“cat”和“kitten”之间的间隔雷同。咱们还能够为整个句子创立 embedding。

transformer 的第一局部是将咱们的输出单词编码为这些 embedding。而后将这些嵌入馈送到下一个过程,称为 attention,它为 embedding 增加了更多的上下文。attention 在自然语言解决中十分重要。

Embedding 难以捕获具备多重含意的单词。思考 bank 这个词的两个含意。人类依据句子的上下文推断出正确的含意。MoneyRiver 在每个句子中都是与 bank相干的重要上下文。

attention 的过程会回顾整个句子,寻找提供词汇背景的单词。而后从新调整 embedding 权重,使得单词“river”或“money”在语义上更靠近于“word bank”。

这个 attention 过程会屡次产生,以捕获句子在多个维度上的上下文。在所有这些过程之后,上下文 embedding 最终被传递到神经网络中,就像咱们之前提到的简略神经网络一样,产生概率。

这是一个大大简化了的 LLM(像 ChatGPT 这样的语言模型)工作原理的版本。为了简洁起见,本文省略或略过了很多内容。

编辑中可能存在的 bug 没法实时晓得,预先为了解决这些 bug, 花了大量的工夫进行 log 调试,这边顺便给大家举荐一个好用的 BUG 监控工具 Fundebug。

交换

有幻想,有干货,微信搜寻 【大迁世界】 关注这个在凌晨还在刷碗的刷碗智。

本文 GitHub https://github.com/qq449245884/xiaozhi 已收录,有一线大厂面试残缺考点、材料以及我的系列文章。

正文完
 0