找回密码
 立即注册
查看: 677|回复: 5

能详细讲一下ChatGPT的道理吗?

[复制链接]

3

主题

0

回帖

19

积分

新手上路

积分
19
发表于 2024-1-20 10:07:52 | 显示全部楼层 |阅读模式
了解模型
回复

使用道具 举报

0

主题

4

回帖

0

积分

新手上路

积分
0
发表于 2024-1-20 10:08:39 | 显示全部楼层
介绍

大家好,我想给大家普及一下你们可能经常接触,但又不太了解的一个话题——聊天机器人,特别是ChatGPT。说到底,它到底是怎么工作的呢?下面,我们就来探究一下。


本文将从介绍大型语言模型的引入开始,深入探讨使 GPT-3 能够被训练的革命性的自注意力机制,然后详细讨论“从人类反馈中进行强化学习”(Reinforcement Learning From Human Feedback)这一创新技术,该技术使 ChatGPT 脱颖而出。


大型语言模型

ChatGPT 是大型语言模型(LLMs, Large Language Models)这一类机器学习自然语言处理模型的扩展。LLMs 通过消化大量的文本数据,推断文本中单词之间的关系。随着计算能力的不断提升,这些模型在过去几年里有所增长。LLMs随着其输入数据集和参数空间的增大而增强其能力。
最基础的语言模型训练涉及预测一个单词在一系列单词中的位置。这最常见的形式为下一个标记预测(next-token-prediction)和遮蔽语言建模(masked-language-modeling)。



"遮蔽语言建模"(Masked Language Modeling)是一种自然语言处理(NLP)的预训练技术,通常在BERT(Bidirectional Encoder Representations from Transformers)等模型中使用。这种方法的基本思想是在一个句子中随机遮蔽(或隐藏)一些词,然后让模型预测这些被遮蔽的词是什么。通过这样的训练,模型可以更好地学习上下文信息和词之间的关系。
在这种基础的序列化技术中,通常通过长短时记忆(LSTM, Long-Short-Term-Memory)模型来实施,模型会根据周围的上下文用统计上最可能的单词来填充空白。这种顺序建模结构有两个主要局限性
1. 模型无法对周围的某些词赋予比其他词更高的价值。在上面的例子中,虽然“阅读”最常与“讨厌”相关联,但在数据库中“Jacob”可能是如此热衷于阅读,以至于模型应该给予“Jacob”比“阅读”更高的权重,并选择“爱”而非“讨厌”
2. 输入数据是单独和顺序地处理的,而不是作为一个整体语料库来处理。这意味着当一个LSTM(长短时记忆网络)被训练时,上下文的窗口是固定的,仅在单个输入的序列中延伸几步。这限制了词之间关系的复杂性和可以推导出的含义。
为了应对这个问题,2017年Google Brain的一个团队推出了Transformer模型。与LSTM不同,Transformer能够同时处理所有输入数据。通过使用自注意力机制,该模型可以针对语言序列的任何位置,给输入数据的不同部分赋予不同的权重。这一特性极大地提高了向LLM(语言模型)注入意义的能力,并使其能够处理更大的数据集。

GPT与自注意力机制

生成预训练Transformer(GPT)模型最初由OpenAI在2018年推出,名为GPT-1。这些模型在2019年继续发展为GPT-2,在2020年进化为GPT-3,并在最近的2022年推出了InstructGPT和ChatGPT。在将人类反馈整合到系统之前,GPT模型发展中的最大进步是由计算效率的提高驱动的,这使得GPT-3能够在比GPT-2更大的数据集上进行训练,赋予它更为多样化的知识库和执行更广泛任务的能力。


所有的GPT模型都利用了Transformer架构,这意味着它们都有一个编码器来处理输入序列和一个解码器来生成输出序列。编码器和解码器都有一个多头自注意力机制,允许模型区分地给序列中的各个部分赋予权重,以推断意义和上下文。此外,编码器利用遮蔽语言模型(Masked Language Modeling)来理解词语之间的关系,并生成更易于理解的响应。

驱动GPT的自注意力机制通过将标记(文本的片段,可以是一个词、一个句子或其他文本组合)转换为向量来工作,这些向量代表了标记在输入序列中的重要性。为了实现这一点,模型。

1. 为输入序列中的每个标记创建一个查询向量、一个键向量和一个值向量。
2. 通过取两个向量的点积,计算第一步中查询向量与其他每个标记的键向量之间的相似性。
3. 通过将第二步的输出输入到一个 [softmax](3Blue1Brown的个人空间-3Blue1Brown个人主页-哔哩哔哩视频) 函数中,生成归一化的权重。
4. 通过将第三步生成的权重与每个标记的值向量相乘,生成一个最终向量,该向量代表了标记在序列中的重要性。

GPT 使用的“多头”注意力机制是自注意力的演变。而不是仅执行步骤1-4一次,模型并行地多次迭代这一机制,每次都生成查询、键和值向量的新的线性投影。通过这种方式扩展自注意力,模型能够把握输入数据中的次级含义和更复杂的关系


尽管 GPT-3 在自然语言处理方面引入了显著的进步,但它在与用户需求匹配存在限制。例如,GPT-3 可能会产生如下输出:

- 缺乏实用性,意味着它们不遵循用户的明确指示。 包含反映不存在或不正确事实的幻觉。
- 缺乏可解释性,使人们难以理解模型是如何得出特定决策或预测的。
- 包括有害或冒犯性的、传播错误信息的有毒或偏见内容。

为了对抗标准LLM(大型语言模型)的这些固有问题,ChatGPT引入了创新的训练方法。

ChatGPT


ChatGPT 是 InstructGPT 的一个分支,InstructGPT 引入了一种新颖的方法,将人类反馈融入训练过程中,以更好地使模型输出与用户意图一致。从人类反馈中进行强化学习(RLHF, Reinforcement Learning from Human Feedback)在 OpenAI 的 2022 年论文《使用人类反馈训练语言模型以遵循指示》(Training language models to follow instructions with human feedback)中有详细描述,并在下面进行了简化。

步骤1:有监督微调(SFT, Supervised Fine Tuning)模型

第一项开发包括通过雇佣40名承包商来创建一个有监督的训练数据集,以对GPT-3模型进行微调。在这个数据集中,输入具有模型可以从中学习的已知输出。这些输入或提示来自用户实际在Open API中的输入。然后,标签者为这个提示写下了一个合适的响应,从而为每个输入创建了一个已知的输出。GPT-3模型随后使用这个新的有监督数据集进行了微调,从而创建了GPT-3.5,也被称为SFT模型。
为了最大化提示数据集的多样性,任何给定用户ID只能提供最多200个提示,而所有具有长共同前缀的提示都会被移除。最后,所有包含个人可识别信息(PII)的提示都被删除了。
在从 OpenAI API 中聚合提示后,标注者还被要求创建样本提示以填补只有最少实际样本数据的类别。感兴趣的类别包括:

- 纯提示(Plain prompts):任何任意的请求。
- 少量提示(Few-shot prompts):包含多个查询/响应对的指令。
- 基于用户的提示(User-based prompts):对应于针对 OpenAI API 请求的特定用例。

在生成响应时,标签者被要求尽力推断用户的指令是什么。该论文描述了提示请求信息的三种主要方式。

- 直接型:“告诉我关于……”
- 少次示例型:给出两个关于某个主题的故事示例,写一个关于同一主题的另一个故事。
- 延续型:给出一个故事的开头,然后完成它

来自OpenAI API和标签者手写的提示的汇编共产生了13,000个输入/输出样本,以供有监督模型使用。






步骤2:奖励模型


在第一步中训练了 SFT 模型后,该模型会生成与用户提示更好地匹配回应。下一步的优化是以训练一个奖励模型的形式出现,其中模型输入是一系列的提示和回应,输出是一个标量值,称为奖励。为了利用强化学习(在该学习中,模型学习生成输出以最大化其奖励,见步骤3),需要奖励模型。

为了训练奖励模型,标注者会针对单一输入提示呈现4到9个 SFT 模型输出。他们被要求将这些输出从最好到最差进行排名,从而生成如下的输出排名组合。




将每个组合作为一个单独的数据点包含在模型中会导致过拟合(无法推广到看不见的数据之外)。为了解决这个问题,模型是通过将每一组排名作为一个单一批次数据点来构建的。


步骤3:强化学习模型


在最后阶段,模型会接收一个随机的提示并返回一个回应。这个回应是根据模型在第二步中学到的“策略”生成的。这里的策略代表了机器学习到的用于实现其目标的策略;在这个情况下,就是最大化其奖励。基于在第二步中开发的奖励模型,然后会为提示和回应对确定一个标量奖励值。这个奖励随后会反馈到模型中,以进一步发展这个策略。

在2017年,Schulman等人介绍了接近策略优化(PPO,Proximal Policy Optimization),这是一种用于更新模型策略的方法,用于生成每个回应。PPO包括一个来自SFT模型的逐令牌(per-token)的 Kullback–Leibler(KL)惩罚。KL散度测量两个分布函数的相似性,并对极端距离进行惩罚。在这种情况下,使用KL惩罚减少了回应与在第一步中训练的SFT模型输出之间的距离,以避免对奖励模型进行过度优化,并过于大幅度地偏离人类意图数据集。


该过程的第2步和第3步可以反复迭代,尽管在实践中这并没有被广泛地执行。



模型评估


模型的评估是通过在训练过程中留出一个模型未见过的测试集来进行的。在测试集上,进行了一系列评估以确定模型是否比其前身GPT-3更加准确。

有用性:模型能够推断并遵循用户指令的能力。标签器(Labelers)85±3%的时间里更喜欢InstructGPT比GPT-3的输出。

真实性:模型产生错误观念(hallucinations)的倾向。使用TruthfulQA数据集进行评估时,PPO模型产生的输出在真实性和信息性方面都有轻微的提升。

无害性:模型避免不当、贬低和诋毁内容的能力。无害性是使用RealToxicityPrompts数据集进行测试的。测试在三个条件下进行。

被指示提供尊重的回应:导致有毒回应显著减少。
被指示提供回应,没有任何尊重性设置:毒性没有显著变化。
被指示提供有毒的回应:事实上,回应比GPT-3模型显著更有毒。


原论文链接
点赞发你呀嘻嘻 学习快乐

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

0

主题

2

回帖

3

积分

新手上路

积分
3
发表于 2024-1-20 10:09:32 | 显示全部楼层
写在前面
上一期,我们讲到ChatGPT的本质是对下一个词汇进行合理的延续,当我们想让生成的文字看起来更像一篇文章,我们需要使用足够长的n-gram词汇,而2-gram的数量已经有16亿个,因此我们需要大模型算法来很好地估计这些概率。那么什么是模型呢,本期让我们逐步介绍。
一、什么是模型
假设你想知道(就像伽利略在16世纪后期所做的那样)从比萨斜塔的每一层扔下一颗炮弹需要多长时间才能落地。你可以测量每一种情况,然后把结果做成表格。或者你也可以通过理论科学的方式,建立一个模型,给出某种计算答案的程序,而不仅仅是测量和记住每种情况。
让我们想象一下理想情况,我们有炮弹从不同楼层落下所需时间的数据:


我们如何计算同样的物体从没有明确数据的地板上掉下来需要多长时间? 在这种特殊情况下,我们可以用已知的物理定律来计算。但是假设我们得到的只是数据,我们不知道是什么潜在的规律支配着它。此时我们可以做一个数学上的猜测,比如也许我们可以用一条直线作为模型:


我们可以选择不同的直线。但平均来说,这是最接近我们给出的数据的。从这条直线我们可以估计掉到任何楼层的时间。
我们怎么知道这里应该用直线呢?它只是一些数学上简单的思考方式,我们已经习惯了我们测量的许多数据最终被数学上简单的东西很好地拟合。我们可以尝试一些数学上更复杂的东西,比如a + b x + c x2,在这种情况下我们可以得到更加拟合的曲线:


不过使用曲线a + b/x + csin (x)时,可能会发现没有那么拟合。


值得理解的是,永远不存在“无模型模型”。你使用的任何模型都有一些特定的底层结构——然后是一组特定的“旋钮”(即你可以设置的参数)来适应你的数据。在ChatGPT的例子中,使用了很多这样的“旋钮”——实际上有1750亿个。
但值得注意的是,chatgtp的底层结构——“仅仅”有那么多参数——足以建立一个模型计算下一个单词的概率,并且“足够好”地为我们提供合理的短文长度的文本片段。
二、像人一样思考的模型的建立
我们上面给出的例子是数值数据建立的一个模型,这个模型基本上来自于简单的物理学——几个世纪以来我们都知道“简单的数学适用”。但是对于ChatGPT,我们必须制作一个由人类大脑产生的人类语言文本模型。对于这样的东西,我们(至少现在)还没有任何类似“简单数学”的东西。那么它的模型会是什么样的呢?
在我们谈论语言之前,我们可以先看另一个类似人类的任务:识别图像。作为一个简单的例子,让我们考虑一下数字图像(一个经典的机器学习例子):


我们可以做的一件事是为每个数字获取一堆样本图像:


然后,为了找出我们输入的图像是否对应于一个特定的数字,我们可以用我们已有的样本做一个明确的逐像素比较。但作为人类,我们似乎在某些方面做得更好——因为我们仍然可以识别数字,即使它们是手写的,并且有各种各样的修改和扭曲:


当我们为上面的数值数据建立一个模型时,我们可以取一个给定的数值x,然后计算特定的a和b的a + bx,所以如果我们把这里每个像素的灰度值看作某个变量xi有没有一个所有这些变量的函数,当求值时,告诉我们图像的数字是多少?事实证明,构造这样一个函数是可能的。毫不奇怪,这并不是特别简单,一个典型的例子可能涉及50万个数学运算。
但最终的结果是,如果我们将图像的像素值集合输入到这个函数中,将会得到指定图像的数字。稍后,我们将讨论如何构建这样的函数,以及神经网络的思想。但是现在,让我们把这个函数当作一个黑盒,在这里我们输入图像,比如手写数字(作为像素值数组),然后我们得到这些数字对应的数字:


但这里到底发生了什么?假设我们逐渐模糊一个数字。在一段时间内,我们的函数仍然“识别”它,这里是“2”。但很快它就“失去理智”,开始给出“错误”的结果:


但为什么我们说这是“错误”的结果呢?在这个例子中,我们知道我们通过模糊“2”得到了所有的图像。但如果我们的目标是建立一个人类识别图像的模型,真正要问的问题是,如果一个人看到这些模糊的图像,而不知道它来自哪里,他会怎么做。
如果我们从函数中得到的结果通常与人类所说的一致,我们就有了一个“好模型”。重要的科学事实是,对于像这样的图像识别任务,我们现在基本上知道如何构造函数来完成它。
我们能“从数学上证明”它们是有效的吗?嗯,没有。因为要做到这一点,我们必须有一个关于人类行为的数学理论。以“2”为例,改变几个像素。我们可以想象,只有几个像素“错位”,我们仍然应该认为图像是“2”。但模糊到什么程度我们仍然可以识别出来呢? 这是一个人类视觉感知的问题。对于蜜蜂或章鱼来说,答案可能会不同。
三、神经网络
那么典型的图像识别模型是如何工作的呢?目前最流行也是最成功的方法是使用神经网络。神经网络是在20世纪40年代发明的,其形式与今天的使用非常接近,可以被认为是对大脑工作方式的简单理想化。
在人类的大脑中,大约有1000亿个神经元(神经细胞),每个神经元都能产生每秒1000次的电脉冲。神经元连接在一个复杂的网络中,每个神经元都有树状的分支,使其能够将电信号传递给数千个其他神经元。粗略地说,给定的神经元是否在给定的时刻产生电脉冲取决于它从其他神经元接收到什么脉冲——不同的连接产生不同的“权重”。
当我们“看到图像”时,所发生的事情是,当图像中的光子落在我们眼睛后部的(“感光细胞”)细胞上时,它们在神经细胞中产生电信号。这些神经细胞与其他神经细胞相连,最终信号通过整个神经元层的序列。正是在这个过程中,我们“识别”了这个图像,最终“形成了一个想法”,我们“看到了一个2”(也许最后会做一些事情,比如大声说出“2”这个词)。
上一节的“黑盒”函数是这种神经网络的“数学化”版本。它恰好有11层(尽管只有4个“核心层”):


这个神经网络没有什么特别的“理论推导”;它只是在1998年作为一项工程而建造的东西,并且发现它起作用了。(当然,这与我们描述大脑是在生物进化过程中产生的方式没有太大区别。)
但是像这样的神经网络是如何“识别事物”的呢?关键是“吸引”的概念。假设我们有1和2的手写图像:


我们希望所有的1“被吸引到一个地方”,所有的2“被吸引到另一个地方”。或者,换一种方式,如果一个图像在某种程度上“更接近于1”而不是2,我们希望它最终在“1位”,反之亦然。
作为一个简单的类比,假设我们在平面上有特定的位置,用点表示(在现实生活中,它们可能是咖啡店的位置)。然后我们可以想象,从平面上的任何一点出发,我们总是希望在最近的点结束(例如,我们总是去最近的咖啡店)。我们可以通过将平面划分为由理想的“分水岭”分隔的区域(“吸引子盆地”)来表示这一点:


我们可以把它看作是实现一种“识别任务”,在这个任务中,我们不是在做像识别给定图像中哪个数字“看起来最像”这样的事情,而是直接地看到一个给定点离哪个点最近。(我们在这里展示的“Voronoi图”设置分隔了二维欧几里德空间中的点;数字识别任务可以被认为是在做非常类似的事情——但是是在由每个图像中所有像素的灰度级别组成的784维空间中。)
那么我们如何让神经网络“完成识别任务”呢?让我们考虑这个非常简单的例子:


我们的目标是获取与位置{x,y}对应的“输入”,然后将其“识别”为最接近的三个点中的任何一个。或者,换句话说,我们希望神经网络计算一个{x,y}的函数,如下所示:


那么我们如何用神经网络做到这一点呢?最终,神经网络是理想化的“神经元”的连接集合——通常分层排列——一个简单的例子是:


每个“神经元”被有效地设置为评估一个简单的数值函数。为了“使用”这个网络,我们只需在顶部输入数字(比如我们的坐标x和y),然后让每一层的神经元“评估它们的功能”,并将结果通过网络向前传递——最终在底部产生最终结果:


在传统的(受生物学启发的)设置中,每个神经元都有效地拥有一组来自前一层神经元的“传入连接”,每个连接被赋予一定的“权重”(可以是正数或负数)。给定神经元的值是通过将“前一个神经元”的值乘以它们对应的权重来确定的,然后将它们相加并添加一个常数,最后应用一个“阈值”(或“激活”)函数。用数学术语来说,如果一个神经元有输入x = {x1, x2…},那么我们计算f[w]。X + b],其中权重w和常数b通常对网络中的每个神经元的选择不同;函数f通常是一样的。
计算w。X + b只是矩阵的乘法和加法。“激活函数”f引入非线性(并最终导致非平凡行为)。常用的各种激活函数;这里我们只使用Ramp(或ReLU):


对于我们希望神经网络执行的每个任务(或者,等价地,对于我们希望它评估的每个整体函数),我们将有不同的权重选择。(正如我们稍后将讨论的那样,这些权重通常是通过从我们想要的输出示例中使用机器学习来“训练”神经网络来确定的。)
最终,每个神经网络都对应于一些整体的数学函数——尽管写出来可能会很混乱。对于上面的例子,它将是:


ChatGPT的神经网络也只是对应于这样一个数学函数——但是有效地包含了数十亿个术语。
让我们回到单个神经元。这里有一些函数的例子,一个神经元有两个输入(代表坐标x和y)可以用各种选择的权重和常数(和Ramp作为激活函数)来计算:


但是从上面的更大的网络呢?好吧,这是它的计算结果:


它不是很“正确”,但它接近于我们上面展示的“最近点”函数。
让我们看看其他神经网络会发生什么。在每种情况下,我们将在后面解释,我们使用机器学习来找到权重的最佳选择。然后我们在这里展示了具有这些权重的神经网络的计算结果:


较大的网络通常能更好地逼近我们的目标函数。在“每个吸引子盆地的中间”,我们通常会得到我们想要的答案。但在边界——神经网络“很难下定决心”的地方——事情可能会更混乱。
有了这个简单的数学风格的“识别任务”,“正确答案”就很清楚了。但在识别手写数字的问题上,就不那么清楚了。如果有人把“2”写得很糟糕,看起来像“7”,等等?尽管如此,我们还是可以问神经网络是如何区分数字的——这给了我们一个提示:


我们能说“数学上”网络是如何区分的吗?不是真的。它只是“做神经网络做的事”。但事实证明,这似乎与我们人类所做的区分相当吻合。
让我们举一个更详细的例子。假设我们有猫和狗的图像。我们有一个经过训练的神经网络来区分它们。下面是它在一些例子中的用法:


现在,“正确答案”是什么就更不清楚了。一只狗穿着猫的衣服怎么样?等。无论输入什么,神经网络都会产生一个答案,并且以一种与人类相当一致的方式。正如我上面所说的,这不是一个我们可以“从第一原理推导出来”的事实。它只是经验上被发现是正确的,至少在某些领域是正确的。但这是神经网络有用的一个关键原因:它们以某种方式捕捉到一种“类似人类”的做事方式。
给自己看一张猫的照片,然后问:“为什么那是猫?”也许你会说:“嗯,我看到了它的尖耳朵等等。”但要解释你是如何把这张照片识别为猫并不容易。只是你的大脑不知怎么就明白了。但对于大脑来说,还没有办法(至少现在)“进入”内部,看看它是如何计算出来的。那么(人工)神经网络呢?嗯,当你展示一张猫的照片时,很容易看到每个“神经元”在做什么。但即使是获得一个基本的可视化通常也是非常困难的。
在我们用于“最近点”问题的最终网络中,有17个神经元。在网络上用于识别手写数字的有2190种。在我们用来识别猫和狗的网络中有60650个。通常来说,想象60650维的空间是相当困难的。但因为这是一个用来处理图像的网络,它的许多神经元层都被组织成数组,就像它正在观察的像素数组一样。
如果我们取一张典型的猫的照片


然后,我们可以通过一系列衍生图像来表示第一层神经元的状态——其中许多我们可以很容易地解释为“没有背景的猫”或“猫的轮廓”:


到了第10层,就很难解释发生了什么了


但总的来说,我们可以说神经网络“挑选出某些特征”(也许尖耳朵是其中之一),并使用这些特征来确定图像是什么。但这些特征是我们有名字的特征吗——比如“尖耳朵”?主要是没有。
我们的大脑是否也在使用类似的特征?大多数情况下我们不知道。但值得注意的是,像我们在这里展示的神经网络的前几层似乎可以挑选出图像的某些方面(比如物体的边缘),这些方面似乎与我们所知道的由大脑视觉处理的第一层挑选出来的图像相似。
但假设我们想在神经网络中建立一个“猫识别理论”。我们可以说:“看,这个特殊的网络做到了”——这立即让我们感觉到“这个问题有多难”(例如,可能需要多少神经元或层)。但至少到目前为止,我们还没有一种方法来“描述”该网络正在做什么。也许这是因为它确实是计算上不可约的,而且除了显式地跟踪每一步,没有一般的方法可以找到它的作用。或者,也许只是我们还没有“搞清楚科学”,没有发现让我们总结正在发生的事情的“自然法则”。
在讨论使用ChatGPT生成语言时,我们也会遇到同样的问题。同样,我们也不清楚是否有办法“总结它在做什么”。但是语言的丰富性和细节(以及我们对它的体验)可能会让我们比图像走得更远。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

0

主题

5

回帖

17

积分

新手上路

积分
17
发表于 2024-1-20 10:09:51 | 显示全部楼层
ChatGPT的原理,其实说白了就是一个基于transformer的语言生成模型。它通过大量人工标注的数据,学习来预测人类语言的概率分布,从而可以生成连贯的语句和对话。
能大致讲一下ChatGPT的原理吗?ChatGPT使用的transformer模型,核心就是self-attention机制。这个机制可以让模型自动学习文本序列中每个词与其他词之间的关系,捕捉上下文语义,预测下一个最可能出现的词。而 transformers 相比 RNN 等其他网络结构也有一定的计算效率优势,所以效果上会更好一些。

在数据方面,ChatGPT使用了开放域问答数据OpenWebText,它包含海量的匿名网络文本和笔记,可以让 ChatGPT 学到很丰富的知识和表达方式。而对于人工标注数据, ChatGPT采用了教师强制方式,让模型学习人类编辑者删减、修改、重构的文本,所以在生成文本时更贴近人类风格。

在训练过程中,ChatGPT的损失函数采用的是交叉熵损失。简单来说,就是输入文本序列,让模型最大限度地预测每一个词的概率分布,如果预测不准确,就调整模型的参数,逐渐提高预测准确度。这样经过大量文本的数据训练,ChatGPT就可以较好地理解语言上下文,进行语言表达。

所以,ChatGPT的原理实际上没有什么神秘的,主要还是典型的NLP任务中使用的transformer结构和语言生成模型。关键是它有较为海量的人工标注数据作为支持,以及比较先进的模型结构,所以在人机对话这一任务上可以达到比较高的生成质量,显得比较智能。但它的理解和知识还是有限的,无法真正达到用语言进行思维的程度。它更像是一个根据语境生成最佳语句的语言模型,而非真正意义上的AI。
回复

使用道具 举报

0

主题

1

回帖

0

积分

新手上路

积分
0
发表于 2024-1-20 10:10:02 | 显示全部楼层
当然可以。ChatGPT(Chatbot based on Generative Pre-trained Transformer)是一种基于GPT(Generative Pre-trained Transformer)技术的聊天机器人。GPT是一种自然语言处理(NLP)模型,主要用于理解和生成自然语言。以下是关于ChatGPT原理的概述:

1. Transformer模型:ChatGPT基于Transformer模型,该模型在自然语言处理任务中取得了显著的成功。Transformer模型使用了自注意力机制(Self-Attention Mechanism)和位置编码(Positional Encoding)来捕捉输入序列中的词与词之间的关系。

2. 预训练:GPT模型的预训练分为两个阶段。第一阶段是无监督的预训练,这意味着模型在大量的文本数据上进行训练,学习语言的统计规律。通过预训练,GPT模型能够学习到词汇、语法、句子结构等自然语言基本知识。

3. 微调:预训练完成后,GPT模型会在特定任务的有标签数据集上进行微调。这意味着模型将根据特定聊天场景调整权重,以生成更符合任务需求的语言。

4. 自回归生成:GPT使用自回归(Autoregressive)方式生成文本。这意味着模型会根据已经生成的文本逐个单词地生成新的文本。通过计算概率分布,GPT模型会选择最有可能的下一个词,从而生成连贯的文本。

5. 标记化:为了输入到模型中,文本需要被分解成标记(Token)。标记可以是单词、字符或子词。将文本转换为标记序列后,模型会根据这些标记生成输出。

6. 编码器-解码器架构:虽然GPT模型主要是一个编码器(Encoder)模型,但它可以通过一些技巧来实现类似编码器-解码器(Encoder-Decoder)的功能。这使得在进行对话任务时,可以将先前的文本作为上下文输入到模型中,从而生成与上下文相关的响应。

总之,ChatGPT通过使用基于Transformer的预训练GPT模型,学习自然语言的结构和规律,为特定任务进行微调,最后以自回归的方式生成人类般的文本输出。这使得ChatGPT能够在各种对话场景中与用户进行自然的交流。
回复

使用道具 举报

0

主题

2

回帖

0

积分

新手上路

积分
0
发表于 2024-1-20 10:10:42 | 显示全部楼层
ChatGPT 是一个生成式 AI 软件,即内容生成器,
无法凭空生成或制造产品,它是通过人类向它提供的材料、信息、文献、文体等进行深度学习,模拟人类做出回答。
因此,本质上,它是一个自然语言处理流程,每次处理用户的需求都有如下基本的步聚:

首先,ChatGPT 会进行语言识别。
先识别用户使用的语言;
随后,要进行情感分析处理;
最后,ChatGPT 会提取提问的信息。
举个栗子:ChatGPT 会很多国语言,他要先判断你说中文还是英文,然后你的情绪是乐观的,还是悲观的,最后看你在问啥?

接下来,要进行修正和文本分类。
先对用户输入的信息进行审核和纠错;
再对用户输入的信息进行分类,根据分类,使用搜索软件获取信息;
最后,全文搜索处理。
这一步真的很关键:给它正确的信息,它才能抓取到关键特征,在搜索库里找到答案。

最后,ChatGPT 会生成文本。
它会从搜索得到的多种结果中选择最符合用户需求的那个,生成对应的文本内容。
当然,这个文本内容的答案还要进一步转换成适合问答的形式,比如用户熟悉的自然对话形式。
如果用户需要论文或代码,PPT等其他文本,ChatGPT 则会转换为该类文本的格式和风格,甚至会列出参考文献和致谢。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|T9AI - 深度人工智能平台 ( 沪ICP备2023010006号 )

GMT+8, 2024-11-23 21:29 , Processed in 0.061292 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表