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)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

代码随想录算法训练营第五十天|123.买卖股票的最佳时机III、188.买卖股票的最佳时机IV

123.买卖股票的最佳时机III 刷题https://leetcode.cn/problems/best-time-to-buy-and-sell-stock-iii/description/文章讲解https://programmercarl.com/0123.%E4%B9%B0%E5%8D%96%E8%82%A1%E7%A5%A8%E7%9A%84%E6%9C%80%E4%BD%B3%E6%97%B6%E6%9C%BAIII.html视频讲解https://www…

Arduino中的map函数

一、案例 val analogRead(dyPin); //读取模拟口的模拟量数值 dyValuemap(val,0,1023,0,500);//这个函数是将电位器调节的模拟量的值按比例转换成对应的电压量 问题,为什么不是0~499呢? 其实也行↓ 当map(val, 0, 1023, 0, 500)被调用时&#xff0…

YiYi-Web项目介绍

YiYi-Web项目介绍 1. 简介2. 使用2.1 后端开发环境2.2 前端开发环境 3. 测试环境:4. 更新日志5. 打包情况6.项目截图 本项目前端是html、css、js、jQuery基础技术。 后端都是最新的SpringBoot技术,不分离版本, 是最基础的项目开发教程&#x…

yolov5训练并生成rknn模型部署在RK3588开发板上,实现NPU加速推理

简介 RK3588是瑞芯微(Rockchip)公司推出的一款高性能、低功耗的集成电路芯片。它采用了先进的28纳米工艺技术,并配备了八核心的ARM Cortex-A76和Cortex-A55处理器,以及ARM Mali-G76 GPU。该芯片支持多种接口和功能,适…

atoi函数详解

atoi函数使用方法 在c官网中是这样介绍atoi函数的 通俗的讲就是把字符串中的字符数字转换为整形数字,遇到空格就跳过,如果在字符串开始遇到不是有效的整数比如说abc就直接返回0,如果遇到像这种情况123abc345这个就只返回123,这个…

申请Github Education获取免费Copilot权限(2024.3.18实测成功)

起因:旧帐户Copilot权限被封 我已经离开Github Copilot就无法独自耐着性子写代码了(懒惰AI成瘾性),这两天Github Copilot不知道为什么在大规模封号,我不幸也被封号了(禁用掉了Github Copilot权限&#xff…

大数据技术原理与应用 01.大数据概述

不可以垂头丧气,会显矮 —— 24.3.24 参考学习:厦门大学 林子雨老师 大数据技术原理与应用 一、大数据时代 大数据概念、影响、应用、关键技术 大数据与云计算、物联网的关系 ①三次信息化浪潮时代 ②第三次信息化浪潮的技术支撑 1>存储设备容量不断…

微服务(基础篇-003-Nacos)

目录 Nacos注册中心(1) 认识和安装Nacos(1.1) Nacos快速入门(1.2) 服务注册到Nacos(1.2.1) Nacos服务分级存储模型(1.3) 配置集群(1.3.1) 根据集群修改…

[ Linux ] git工具的基本使用(仓库的构建,提交)

1.安装git yum install -y git 2.打开Gitee,创建你的远程仓库,根据提示初始化本地仓库(这里以我的仓库为例) 新建好仓库之后跟着网页的提示初始化便可以了 3.add、commit、push三板斧 git add . //add仓库新增(变…

阿里云倚天云服务器怎么样?如何收费?

阿里云倚天云服务器CPU采用倚天710处理器,租用倚天服务器c8y、g8y和r8y可以享受优惠价格,阿里云服务器网aliyunfuwuqi.com整理倚天云服务器详细介绍、倚天710处理器性能测评、CIPU架构优势、倚天服务器使用场景及生态支持: 阿里云倚天云服务…

AI预测福彩3D第17弹【2024年3月24日预测--第1套算法重新开始计算第14次测试】

今天周末,家里事情比较多,回来的比较晚,3D预测的结果只能在今天晚上7点半左右发布了。废话不多说了,直接上结果吧~ 最终,经过研判分析,2024年3月24日福彩3D的七码预测结果如下: 百位&#xff1a…

大宇、德国ODI、希亦超声波清洗机值得买吗?精品轻松分辨

长时间佩戴眼镜不清洗的话上面的细菌堪比马桶这么脏!从佩戴眼镜开始就没有人告诉过我手动清洗眼镜会非常容易刮花镜片,是我自己佩戴眼镜这么长时间观察到的,后面了解到超声波清洗机可以很好的保护到眼镜,于是开始做功课挑选超声波…

对话李喆:Martech在中国需要转化成以客户需求为驱动的模式

关于SaaS模式在中国的发展,网上出现多种声音。Marteker近期采访了一些行业专家,围绕SaaS模式以及Martech在中国的发展提出独特观点。赛诺贝斯副总裁李喆认为,SaaS可以分为场景化的SaaS、一体化的SaaS和功能化的SaaS,三者都有一定规…

MultiArch与Ubuntu/Debian 的交叉编译

返回:OpenCV系列文章目录(持续更新中......) 上一篇:基于ARM 的Linux系统的交叉编译 下一篇:MultiArch与Ubuntu/Debian 的交叉编译 警告: 本教程可能包含过时的信息。 什么是“MultiArch” OpenCV 可能…

Java 面试宝典:什么是大 key 问题?如何解决?

大家好,我是大明哥,一个专注「死磕 Java」系列创作的硬核程序员。 本文已收录到我的技术网站:https://skjava.com。有全网最优质的系列文章、Java 全栈技术文档以及大厂完整面经 回答 Redis 大 key 问题是指某个 key 对应的 value 值很大&am…

智慧农业害虫性诱监测专用设备-稻飞虱测报仪

TH-DF122随着科技的飞速发展和智慧农业的兴起,传统农业正在迎来一场革命性的变革。在这场变革中,智慧农业害虫性诱监测专用设备——稻飞虱测报仪,以其独特的魅力和高效的功能,正成为现代农业的得力助手。它不仅提升了农业生产的智…

Vue2(十):全局事件总线、消息订阅与发布、TodoList的编辑功能、$nextTick、动画

一、全局事件总线!! 任意组件间通信 比如a想收到别的组件的数据,那么就在a里面给x绑定一个demo自定义事件,所以a里面就得有一个回调函数吧,然后我要是想让d组件给a穿数据,那就让d去触发x的自定义事件&…

el-tree 使用按钮切换当前选中的节点(上一节点,下一节点)

<!-- 选择树上下切换 --> <template><div><el-tree:data"treeData":props"defaultProps"node-key "id"ref"tree"node-click"handleNodeClick"></el-tree><div><el-button click&qu…

Github Action Auto build docker Auto deploy

简介 整个流程比较清晰&#xff0c;实现的是基于Github 定向的往ECS做发布 探索 自动化打包发布一般流程&#xff1a; 本地环境打镜像 CI/CD 环境打镜像 以上的流程使用于比较大的项目&#xff0c;受限于环境&#xff0c;打算对上面流程做简化&#xff0c;使用github acti…

SpringBoot3+Vue3项目的阿里云部署--将后端以及前端项目打包

一、后端&#xff1a;在服务器上制作成镜像 1.准备Dockerfile文件 # 基础镜像 FROM openjdk:17-jdk-alpine # 作者 MAINTAINER lixuan # 工作目录 WORKDIR /usr/local/lixuan # 同步docker内部的时间 RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ…