AIGC实战——Transformer模型

AIGC实战——Transformer模型

    • 0. 前言
    • 1. T5
    • 2. GPT-3 和 GPT-4
    • 3. ChatGPT
    • 小结
    • 系列链接

0. 前言

我们在 GPT (Generative Pre-trained Transformer) 一节所构建的 GPT 模型是一个解码器 Transformer,它逐字符地生成文本字符串,并使用因果掩码只关注输入字符串中的前一个单词。另一些编码器 Transformer,不使用因果掩码,而是关注整个输入字符串以提取有意义的上下文表示。对于一些其他任务,如语言翻译,可以使用编码器-解码器 Transformer,将一个文本字符串翻译为另一个文本字符串,这类模型包含编码器 Transformer 块和解码器 Transformer 块。下表总结了三种类型的 Transformer 模型,其中列出了每种架构的典型模型和用途。

类型典型模型应用
EncoderBERT文本分类,命名实体识别,抽取式问答
Encoder-DecoderT5翻译,问答
DecoderGPT-3文本生成

编码器 Transformer 的一个经典模型是 Google 开发的双向编码器自注意力转换 (Bidirectional Encoder Representations from Transformers, BERT)模型,该模型在所有层中使用给定缺失单词前后上下文,来预测文本中的缺失单词。
编码器 Transformer 通常用于需要全面理解输入的任务,例如文本分类和命名实体识别等。
接下来,我们将介绍编码器-解码器 Transformer 的工作原理,并介绍 OpenAI 发布的专门为对话应用设计的 ChatGPT 模型。

1. T5

T5 模型是 Google 提出的使用编码器-解码器结构的 Transformer 模型。该模型将一系列任务重构为文本到文本的框架,包括翻译、句子相似性和文档摘要等。

T5

T5 模型的架构与原始 Transformer 论文中使用的编码器-解码器架构非常相似,如下图所示。主要区别在于 T5 模型是在大规模(包括大约 750G 的数据量)的文本语料库 (Colossal Clean Crawled CorpusC4) 上进行训练,而原始 Transformer 论文仅专注于语言翻译,因此只使用了 1.4GB 的英汉对应文本对进行训练。

Transformer

在上图中,可以看到通过堆叠 Transformer 块和位置嵌入来捕捉输入序列的顺序。此模型与 GPT 模型之间的关键区别如下:

  • 左侧是为一组编码器 Transformer 块,用于对待翻译的序列进行编码。需要注意的是,注意力层上没有应用因果掩码,这是因为我们不需要生成文本来扩展待翻译的序列,只需要学习整个序列的特征表示,以供解码器使用。因此,编码器中的注意力层可以完全不受掩码限制,以捕捉单词之间的所有交叉依赖关系,无论其顺序如何
  • 右侧是一组解码器 Transformer 块,用于生成翻译文本。初始的注意力层的键、值和查询来自同一输入(称为自引用),并且使用因果掩码来确保将来的符号信息不泄漏到当前要预测的词中。然后,后续的注意力层从编码器中提取键和值,只传递解码器本身的查询,这称为交叉引用注意力,意味着解码器可以关注需要翻译的输入序列的编码器表示

交叉引用注意力如下图所示。解码器层中的两个注意力头能够共同提供正确的德语翻译,以表示 the 这个词在街道上下文中的含义。在德语中,根据名词的性别有三个定冠词 (derdiedas),但 Transformer 之所以能够选择 die,是因为一个注意力头能够关注到街道这个词,而另一个注意力头关注的是要翻译的词 (the)。

交叉引用注意力

2. GPT-3 和 GPT-4

2018 年发布 GPT 以来,OpenAI 已经发布了多个对原始模型进行改进的更新版本。

模型时间网络层数注意力头数单词嵌入长度上下文窗口大小参数量训练数据集
GPT20181212768512120000000BookCorpus (4.85GB)
GPT-220194848160010241500000000WebText (40GB)
GPT-320209696128882048175000000000CommonCrawl, WebText, English Wikipedia, book corpora (570GB)
GPT-42023------

GPT-3 的模型架构与原始 GPT 模型相似,只是规模更大,训练数据更多。关于 GPT-4OpenAI 尚未公开发布有关该模型结构和规模的详细信息,但它能够接受图像作为输入,因此是一个多模态模型。GPT-3GPT-4 的模型权重并未开源,但可以通过商业工具或 API 使用这些模型。
GPT-3 还可以针对自己的训练数据进行微调,可以通过提供多个样本,以更新网络的权重,适应特定类型的输入。在多数情况下,这并不必要,因为 GPT-3 只需在输入提示 (prompt) 中提供一些样本就可以告诉它如何对特定类型的输入提示做出反应(称为少样本学习,few-shot learning)。微调的优势是无需每次输入提示时都提供这些样本,从长远来看可以节省成本。
GPT 等语言模型的规模非常易于扩展,包括模型权重数量和数据集大小。目前仍然尚未达到大型语言模型性能的上限,可以通过尝试使用更大的模型和数据集来实现更多可能性。

3. ChatGPT

GPT-4 发布的前几个月,OpenAI 推出了 ChatGPT,此工具允许用户通过对话界面与大型语言模型进行互动交流。下图展示了一个 ChatGPT 示例对话,可以看到,机器能够记住对话的上下文信息,并理解第二个问题中提到的"注意力机制"是指 Transformer 中的注意力机制,而不是指人的注意力。

ChatGPT

虽然,ChatGPT 并未开源,但在 ChatGPT 的官方博客文章中了解到,它使用了人类反馈强化学习 (Reinforcement Learning From Human Feedback, RLHF)的技术来微调 GPT-3.5 模型。
ChatGPT 的训练过程如下:

  1. 监督微调 (Supervised Fine-tuning):收集人类的对话输入(提示)和期望输出的示例数据集。使用监督学习来微调底层语言模型 (GPT-3.5)
  2. 奖励模型 (Reward Modeling):向标注人员展示一些提示示例和模型生成的多个输出,并要求他们对输出从最佳到最差进行排序。训练奖励模型,该模型可以根据给定对话历史预测每个输出的得分
  3. 强化学习 (Reinforcement Learning):将对话视为强化学习环境,其中策略是底层语言模型,从第一步微调模型开始初始化。给定当前状态(对话历史),策略输出一个动作(一系列符号),该动作由在第二步训练的奖励模型评分。然后,通过调整语言模型的权重,使用强化学习算法——近似策略优化算法 (Proximal Policy Optimization, PPO),以最大化奖励

RLHF 的过程如下图所示。

在这里插入图片描述

虽然 ChatGPT 仍然有许多限制,但展示了 Transformer 如何构建生成模型,生成复杂、新颖的输出。类似 ChatGPT 这样的模型充分证明了人工智能的强大潜力以及其变革性影响。
基于 AI 的通信和交互将继续快速发展,类似 Visual ChatGPT 这样的项目正在将 ChatGPT 的语言能力与 Stable Diffusion 等视觉模型相结合,使用户不仅可以通过文本与 ChatGPT 的交互,还可以使用图像进行交互,融合语言和视觉功能的人工智能模型,有望开启人机交互新时代。

小结

本节中,介绍了三类 Transformer 模型(编码器、解码器和编码器-解码器)及其应用,最后,还介绍了其他大型语言模型(如 GoogleT5OpenAIChatGPT )的结构和训练过程。

系列链接

AIGC实战——生成模型简介
AIGC实战——深度学习 (Deep Learning, DL)
AIGC实战——卷积神经网络(Convolutional Neural Network, CNN)
AIGC实战——自编码器(Autoencoder)
AIGC实战——变分自编码器(Variational Autoencoder, VAE)
AIGC实战——使用变分自编码器生成面部图像
AIGC实战——生成对抗网络(Generative Adversarial Network, GAN)
AIGC实战——WGAN(Wasserstein GAN)
AIGC实战——条件生成对抗网络(Conditional Generative Adversarial Net, CGAN)
AIGC实战——自回归模型(Autoregressive Model)
AIGC实战——改进循环神经网络
AIGC实战——像素卷积神经网络(PixelCNN)
AIGC实战——归一化流模型(Normalizing Flow Model)
AIGC实战——能量模型(Energy-Based Model)
AIGC实战——扩散模型(Diffusion Model)
AIGC实战——GPT(Generative Pre-trained Transformer)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/768818.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

面试问题——redis——缓存穿透、击穿、雪崩

HR:你在项目中的那些场景用到了redis? 1. 缓存穿透问题 (项目中使用的方法) 2. 缓存击穿 解决办法1:加互斥锁。大量并发时,先让一个人去查,其他人等着。这样剩下人就可在缓存直接获取值。&#…

Web实现名言生成器:JavaScript DOM基础与实例教程

🌟 前言 欢迎来到我的技术小宇宙!🌌 这里不仅是我记录技术点滴的后花园,也是我分享学习心得和项目经验的乐园。📚 无论你是技术小白还是资深大牛,这里总有一些内容能触动你的好奇心。🔍 &#x…

Linux-安装redis

安装指令 sudo apt-get install redis-server 启动服务 sudo systemctl start redis 查找redis路径 find / -name "filename" linux redis修改密码 sudo nano /etc/redis/redis.conf 找到 "requirepass" 这一行,取消注释并设置新的密码&…

跳蚱蜢(蓝桥杯)

文章目录 跳蚱蜢题目描述答案:20bfs 跳蚱蜢 题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。 如下图所示: 有 9 只盘子,排成 1 个圆圈。 其中 8 只盘子内装着 8 只蚱蜢&#xff…

包含多个段的程序

文章目录 包含多个段的程序在代码段中使用数据在代码段中使用栈将数据、代码、栈放入不同的段 包含多个段的程序 在代码段中使用数据 考虑这样一个问题,编程计算以下8个数据的和,结果存在ax 寄存器中:0123H,0456H,07…

自动驾驶技术中大模型的应用与挑战分析

自动驾驶技术中大模型的应用与挑战分析 1. 背景介绍 自动驾驶技术是近年来人工智能领域的研究热点,它通过计算机视觉、传感器融合、决策规划等技术的综合应用,实现车辆的自主驾驶。随着深度学习技术的快速发展,大模型在自动驾驶领域得到了广…

电机无感算法采集电流的作用

电机无感算法中采集电流的作用是通过测量电机终端的电流,从中获得电机的状态信息,进而实现对电机旋转位置的估算。 采集电流的作用有以下几个方面: 电机模型建立:通过测量电流,可以获得电机的输入量和输出量之间的关系…

ctfshow web入门 反序列化

254 分析代码: 如果用户名和密码参数都存在,脚本会创建一个 ctfShowUser 类的实例 $user。 接着,调用 $user->login($username, $password) 方法尝试登录。如果登录成功(即用户名和密码与类中的默认值匹配)&#…

甲方信息安全建设经验

网络系统安全建设 安全域划分 内部网络系统:主要指OA办公网内部、生产网内部、测试开发网内部、以及其他内部网络系统。 外部网络系统:主要指OA办公网互联网边界、生产网互联网边界、测试开发网互联网边界、互联网上相关所属的网络系统(不…

地图爬虫工具 百度高德腾讯地图商家电话采集软件使用指南

使用地图爬虫工具可以方便地从百度、高德、腾讯地图等地图服务中获取商家的电话号码。下面是使用指南,并附带代码示例。 使用地图爬虫工具之前,我们需要安装相关的依赖库。建议使用Python作为开发语言,因为Python有一些非常好用的爬虫库可供…

详解机器学习概念、算法

目录 前言 一、常见的机器学习算法 二、监督学习和非监督学习 三、常见的机器学习概念解释 四、深度学习与机器学习的区别 基于Python 和 TensorFlow 深度学习框架实现简单的多层感知机(MLP)神经网络的示例代码: 欢迎三连哦! 前言…

Spark Map 和 FlatMap 的比较

Spark Map 和 FlatMap 的比较 本节将介绍Spark中map(func)和flatMap(func)两个函数的区别和基本使用。 函数原型 map(func) 将原数据的每个元素传给函数func进行格式化,返回一个新的分布式数据集。 flatMap(func) 跟map(func)类似,但是每个输入项和…

JUC(二)

1、wait notify Owner 线程发现条件不满足,调用 wait 方法,即可进入 WaitSet 变为 WAITING 状态 BLOCKED 和 WAITING 的线程都处于阻塞状态,不占用 CPU 时间片 BLOCKED 线程会在 Owner 线程释放锁时唤醒 WAITING 线程会在 Owner 线程调用 …

Gelato Network的创始人HILMAR ORTH确认出席HackSummit2024区块链开发者大会

随着Web3技术的日新月异,区块链领域正以前所未有的速度席卷全球。在这一变革的浪潮中,备受瞩目的区块链盛会——Hack.Summit() 2024区块链开发者大会,将于2024年4月9日至10日,在香港数码港隆重登场。这一里程碑式的大会不仅标志着…

#Linux系统编程(read,open,close,write综合练习)

&#xff08;一&#xff09;发行版&#xff1a;Ubuntu16.04.7 &#xff08;二&#xff09;记录&#xff1a; &#xff08;1&#xff09;不传参&#xff0c;指定拷贝文件&#xff0c;指定复制到文件 #include <stdio.h> #include <stdlib.h> #include <sys/typ…

大厂校招,已经在「这些平台」里卷起来了!

如今的校招卷内容&#xff0c;更卷渠道。传统的渠道已然无法满足企业的野心&#xff0c;于是他们将目光投向了主流社交平台。无论是在「微信公众号」、「B站」还是「小红书」&#xff0c;我们都不难发现大厂们「开卷」的身影。那么&#xff0c;参考它们的思路&#xff0c;企业该…

设计模式面试专题

文章目录 请列举出在 JDK 中几个常用的设计模式&#xff1f;什么是设计模式&#xff1f;Java 中什么叫单例设计模式&#xff1f;请用 Java 写出线程安全的单例模式在 Java 中&#xff0c;什么叫观察者设计模式&#xff08;observer design pattern&#xff09;&#xff1f;使用…

富格林:可信要领戒备虚假套路

富格林指出&#xff0c;为避免遭遇虚假套路而造成巨大亏损&#xff0c;投资者需灵活地采用一些可信的交易技巧作为抵抗风险的重要手段。投资者进入市场后&#xff0c;需要的系统学习正规做单技巧&#xff0c;树立正规做单的意识规避虚假套路&#xff0c;提高做单盈利。接下来总…

位运算符与位移运算符

按位与& 两个二进制数字都是1 取1否则取0 按位或I 两个二进制数字都是0取0否则取1 按位取反~如果该位为0则1 &#xff0c;为1取0 按位异或 ^ 相同为零相反为1 移位运算符 有三个: <<, >> ,>>>&#xff0c;都是二元运算符&#xff0c;且都是按…

iPhone 15 Pro LiDAR Module模组逆向(2024.3.23)

iPhone15 Pro出来后,基本上国内所有的模组厂包括舜宇,丘钛等都已经逆向了LiDAR模组,并同时测试了电学,光学,BOM成本等一系列测试。当然市面上最具备影响力的是YOLE的商业评估报告,我这边同时具有这些报告,也有一些自己的见解,当然本篇讲解可能会同时涉及到几个模组厂和…