在自然语言处理问题中,可从互联网上下载大量无标注数据,而针对具体问题的有标注数据却非常少,GPT 是一种半监督学习方法,它致力于用大量无标注数据让模型学习 “常识”,以缓解标注信息不足的问题。其具体方法是在针对有标签数据训练 Fine-tune 之前,用无标签数据预训练模型 Pretrain,并保证两种训练具有同样的网络结构。 GPT 底层也基于 Transformer 模型,与针对翻译任务的 Transformer 模型不同的是:它只使用了多个 Deocder 层。
下图展示了 GPT 模型结构和在不修改模型主体结构的情况下,如何使用模型适配多分类、文本蕴含、相似度、多项选择这几类问题。
其左侧展示了 12 层的 Transformer Decoder 模型,与 Transformer 基础模型一致。右侧展示了在 Fine-Tune 时,先将不同任务通过数据组合,代入 Transformer 模型,然后在基础模型输出的数据后加全连接层(Linear)以适配标注数据的格式。
例如其中最简单的分类任务,如对于句子的感情色彩识别问题,只涉及单个句子,结果是二分类。因此,只需要代入句子,其在最后加一个全连接层即可;而判断相似度问题,由于两句之间没有相互关系,则需要将两句用加入定界符按不同前后顺序连接,分别输入模型,生成不同的隐藏层数据再代入最终的全连接层。
在预训练 Pretrain 部分,用 u 表示每一个 token(词),当设置窗口长度为 k,预测句中的第 i 个词时,则使用第 i 个词之前的 k 个词,同时也根据超参数Θ,来预测第 i 个词最可能是什么。简言之,用前面的词预测后面的词。
具体方法是代入 Transformer 模型,下式中的模型由 L 组隐藏层组成,最初输入隐藏层的数据是词编码 U 乘词嵌入参数 We 加上位置参数 Wp;后面经过 L 个层(如上图左侧的 Transformer 组)处理。
在有监督训练 Fine-tune 部分,比如判断句子感情色彩 (二分类问题) 的句子中包含 m 个词 x1…xm,在 pretain 训练好的模型之加后再加一个全连接层,用于学习描述输入信息 x 与目标 y 关系的参数 Wy,最终预测目标 y。
兼顾上式中的 L1 和 L2,加入权重参数λ控制其比例计算出 L3,作为优化的依据。
GPT 与基本的 Transformer 相比,还进行了以下修改:
GPT 基于 Transformer 修改,在一个 8 亿单词的语料库上训练,12 个 Decoder 层,12 个 attention 头,隐藏层维度为 768。
GPT 在自然语言推理、分类、问答、对比相似度的多种测评中均超越了之前的模型。且从小数据集如 STS-B(约 5.7k 训练数据实例)到大数据集(550k 训练数据)都表现优异。甚至通过预训练,也能实现一些 Zero-Shot 任务。但由于无标签数据与具体问题的契合度低,因此,学起来更慢,需要的算力也更多。
GPT 模型可以用于生成自然语言文本。在实际应用中,GPT 模型可以应用于多个场景,下面是一些常见的应用场景:
总之,GPT 模型可以应用于多个领域,包括自然语言生成、自然语言理解、对话系统、语言模型等。随着人工智能技术的不断发展和应用,GPT 模型的应用场景也将不断扩展和深化。
GPT2 是 Open AI 发布的一个预训练语言模型,在文本生成上有着惊艳的表现,其生成的文本在上下文连贯性和情感表达上都超过了人们的预期。仅从模型架构而言,GPT-2 并没有特别新颖的架构,GPT-2 继续沿用了原来在 GPT 中使用的单向 Transformer 模型,而 GPT-2 的目的就是尽可能利用单向 Transformer 的优势,做出 BERT 使用的双向 Transformer 所无法实现的功能,即通过上文生成下文文本。
GPT-2 的结构类似于 GPT 模型,仍然使用单向的 Transformer 模型,只做了一些局部修改:如将归一化层移到 Block 的输入位置;在最后一个自注意力块之后加了一层归一化;增大词汇量等等,GPT2 模型结构图:
其中 Transformer 解码器结构如下图:
GPT-2 模型由多层单向 Transformer 的解码器部分构成,本质上是自回归模型,即每次产生新单词后,将新单词加到原输入句后面,作为新的输入句。
GPT-2 将 Transformer 堆叠的层数增加到 48 层,隐层的维度为 1600,参数量更是达到了 15 亿 (Bert large 是 3.4 亿)。「小号」12 层,「中号」24 层,「大号」36 层,「特大号」48 层。GPT-2 训练了 4 组不同的层数和词向量的长度的模型,如图:
GPT-2 去掉了 fine-tuning 训练:只有无监督的 pre-training 阶段,不再针对不同任务分别进行微调建模,而是不定义这个模型应该做什么任务,模型会自动识别出来需要做什么任务。收集了更加广泛、数量更多的语料组成数据集。数据集包含 800 万个网页,大小为 40G,GPT2 需要的是带有任务信息的数据。提出了新的 NLP 范式,强调通过更多的高质量训练数据训练高容量语言模型从而无监督完成下游多任务。尝试以一种通用的语言模型的方法,去解决现有的大部分 NLP 任务。
GPT-2 模型主要用于自然语言处理任务,例如:
GPT3(Generative Pre-trained Transformer 3)是由 OpenAI 开发的自然语言处理模型,是目前公认的大语言模型的开山鼻祖。在 GPT 系列中,第一代 GPT 发布于 2018 年,包含 1.17 亿个参数。2019 年发布的 GPT2 包含 15 亿个参数。而 GPT3 拥有 1750 亿个参数,是其前身的 100 多倍,是同类程序的 10 多倍。GPT3 使用了深度学习中的 Transformer 神经网络结构,并利用了无监督预训练技术,可以自动处理各种自然语言任务,如文本生成、问答、翻译等。
GPT3 延续自己的单向语言模型训练方式,不仅大量增加模型参数,而且 GPT3 主要聚焦于更通用的 NLP 模型,GPT3 模型在一系列基准测试和特定领域的自然语言处理任务(从语言翻译到生成新闻)中达到最新的 SOTA 结果。对于所有任务,GPT3 没有进行任何微调,仅通过文本与模型进行交互。与 GPT2 模型架构一样,如下图所示:
但与 GPT-2 相比,GPT-3 的图像生成功能更成熟,不需经过微调,就可以在不完整的图像样本基础上补全完整的图像。GPT-3 意味着从一代到三代的跨越实现了两个转向:
GPT3 在下游任务中采用 in-context learning 进行训练。情境学习(in-context learning):在被给定的几个任务示例或一个任务说明的情况下,模型应该能通过简单预测以补全任务中其他的实例。以下是三种情景学习方法:
![](https://course.openi.org.cn/api/attachments/5797342?type=image/png)
![](https://course.openi.org.cn/api/attachments/5797343?type=image/png)
![](https://course.openi.org.cn/api/attachments/5797344?type=image/png)
GPT-3 在 few-shot / zero-shot 设置下比 LAMBADA 和 Penn Tree Bank 这样的语言建模数据集表现得更好。对于其他数据集,它无法击败最先进的技术,但提高了 zero-shot 的最先进的性能。
GPT-3 在 NLP 的任务中也表现得相当好,比如回答闭书的问题、模式解析、翻译等,通常优于最先进的技术,或者与经过微调的模型相当。对于大多数任务,该模型在 few-shot 设置比 one-shot 和 zero-shot 更好。
GPT-3 除了在传统的 NLP 任务中进行评估外,还在算术加法、单词解读、新闻生成、学习和使用新单词等综合任务中进行评估。对于这些任务,性能也随着参数数量的增加而增加,并且模型在 few shot 设置中比 one-shot 和 zero-shot 设置中表现得更好。
下图解释了如何将 GPT-3 理解为元学习(meta learning),模型学习了很多不同的任务,可以类比成元学习的过程,因此具有更好的泛化性。
虽然 GPT-3 能够生成高质量的文本,但有时它在形成长句子和反复重复文本序列时开始失去连贯性。
GPT-3 的限制包括复杂和昂贵的模型推理,这是由于其沉重的架构,语言和模型产生的结果的可解释性较低,以及关于帮助模型实现其少量的学习行为的不确定性。
GPT-3 是一个非常强大的语言模型,可以用于许多不同的应用和领域:
这些只是 GPT-3 应用领域的一小部分。随着技术的发展,GPT-3 将在越来越多的领域得到应用。
GPT3.5 是一款由 OpenAI 开发的聊天机器人模型,它能够模拟人类的语言行为,与用户进行自然的交互。它的名称来源于它所使用的技术—— GPT-3 架构,即生成式语言模型的第 3 代,同时,基于 GPT3.5 开发出 ChatGPT 智能聊天机器人模型。 GPT3.5 通过使用大量的训练数据来模拟人类的语言行为,并通过语法和语义分析,生成人类可以理解的文本。它可以根据上下文和语境,提供准确和恰当的回答,并模拟多种情绪和语气。这样,就可以让用户在与机器交互时,感受到更加真实和自然的对话体验。
GPT3.5 模型上和之前 GPT-3 都没有太大变化,主要变化的是训练策略变了,用上了强化学习。如下图为 GPT3.5 模型结构图:
GPT3.5 训练策略采用奖励模型进行训练,一个奖励模型(RM)的目标是刻画模型的输出是否在人类看来表现不错。即,输入 提示 (prompt),模型生成的文本 ,输出一个刻画文本质量的标量数字。
奖励模型可以看做一个判别式的语言模型,因此可以用一个预训练语言模型热启,而后在 [x=prompt,模型回答, y = 人类满意度] 构成的标注语料上去微调,也可以直接随机初始化,在语料上直接训练。
GPT3.5 将初始语言模型的微调任务建模为强化学习(RL)问题,因此需要定义策略(policy)、动作空间(action space)和奖励函数(reward function)等基本要素。
策略就是基于该语言模型,接收 prompt 作为输入,然后输出一系列文本(或文本的概率分布);而动作空间就是词表所有 token 在所有输出位置的排列组合(单个位置通常有 50k 左右的 token 候选);观察空间则是可能的输入 token 序列(即 prompt),为词表所有 token 在所有输入位置的排列组合;而奖励函数则是基于奖励模型训练好的 RM 模型,配合一些策略层面的约束进行的奖励计算。
计算奖励(reward):
GPT3.5 作为自然语言处理领域的重要技术之一,具有非常广泛的应用前景和发展潜力。通过对话生成技术,可以实现智能客服、知识问答系统、自然语言生成等多种应用场景,大大提高了人机交互的效率和便利性。随着计算机技术的不断发展和深度学习算法的不断进步,GPT3.5 的应用领域也将不断扩展和深化,为人们提供更加先进、高效、智能的自然语言处理服务。下图为两个提示的 GPT3.5 输出。
1. 多功能性:GPT3.5 可以回答各种问题,提供创意灵感,支持语音识别等多种功能,可以应用于多个领域,如技术支持、智能客服、文本生成等。
2. 自然语言处理能力:GPT3.5 具备较强的自然语言处理能力,可以模拟人类对话,表达思想和感情,提供更加自然流畅的回答。
3. 多语种支持:GPT3.5 支持多种语言,可以满足不同国家和地区的语言需求。
4. 智能学习:GPT3.5 可以通过对大量数据进行学习,不断提高自身的表达能力和回答准确率,具备一定的智能学习能力。
5. 便捷性:GPT3.5 可以通过第三方的应用程序或者网站、OpenAI 提供的 API 或者在 OpenAI 官方网站上使用,使用起来非常便捷。
1. 可能存在偏见:由于 GPT3.5 是通过对大量数据进行学习得到的,可能存在数据偏见的问题。这可能导致 GPT3.5 对某些群体或某些观点的回答存在偏见。
2. 缺乏人情味:尽管 GPT3.5 可以模拟人类对话,但它仍然缺乏真正的情感和人性化,无法像真正的人类一样进行复杂的思考和情感表达。
3. 需要大量数据:为了让 GPT3.5 具备较高的回答准确率和表达能力,需要训练大量的数据,这需要消耗大量的时间和资源。
4. 可能存在安全隐患:在使用 GPT3.5 模型时,需要输入一定的文本或语音数据,这可能会导致个人隐私泄露的风险。
GPT-4(第 4 代生成式预训练变换模型 Generative Pre-trained Transformer 4)是一个大型多模态模型,能够接受图像和文本输入,并输出文本。GPT4 依旧采用 Transformer 模型结构,具有处理图片的能力,模型结构不再是 Decoder-only,而是具有 Encoder 完成图像的编码。如下图所示,GPT4 指出这幅图把一个大而过时的 VGA 接口插入一个小而现代的智能手机充电端口是荒谬的。
GPT4 模型比 GPT3 模型参数量增大数倍,模型参数量或接近万亿级别,为了训练 GPT4,OpenAI 使用了 Microsoft 的 Azure 云计算服务,其中包括连接在一起的数千个 Nvidia A100 图形处理单元或 GPU。GPT4 在训练策略中提出 RBRMS(基于规则的奖励模型)来处理安全性问题。
GPT-4 做了大量的工作来保证模型的安全性,首先聘请了 50 余位不同方向的领域专家进行对抗测试和红队测试,二是训练了一个基于规则的奖励模型(Rule-Based Reward Models, RBRMs)+RLHF 来辅助模型的训练。
RBRMS(Rule-Based Reward Models):目的是通过正确的奖励引导模型的训练,来拒绝生成有害的请求以及不拒绝无害的请求。
RLHF(Reinforcement Learning from Human Feedback):即用强化学习的方法,利用人类反馈信号直接优化语言模型。训练过程如下图所示,可以分解为三个核心步骤:
GPT-4 比以前的模型表现出更多的常识性,如下图案例所示:
多模式和跨学科构成:GPT-4 不仅在文学、医学、法律、数学、物理科学和编程等不同领域表现出高度的熟练程度,而且还能流畅地结合多个领域的技能和概念,显示出对复杂思想的理解能力令人印象深刻。下图为 GPT-4 和 ChatGPT 在跨学科任务上的比较案例:
代码生成:GPT-4 能够在非常高的水平上进行编码,无论是从指令编写代码还是理解现有代码,能够处理广泛的编码任务,从编码挑战到现实世界的应用,从低级汇编到高级框架,从简单的数据结构到复杂的程序,还可以对代码的执行进行推理,模拟指令的效果,并以自然语言解释结果,甚至可以执行伪代码,这需要解释在任何编程语言中都无效的非正式和模糊的表达。如下图为 GPT-4 执行 Python 代码案例:
GPT4 在各个领域的应用场景给人类带来了革新力量,除了上述的应用领域外,还有以下应用领域:
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。