NLP step by step -- 了解Transformer

Transformer模型

Transformer相关历史

首先我们先看一下有关Transformer模型的发展历史,下面的图是基于Transformer架构的一些关键模型节点:

图片来源于Hugging Face

图片来源于Hugging Face

Transformer 架构 于 2017 年 6 月推出。原本研究的重点是翻译任务。随后推出了几个有影响力的模型,包括

  • 2018 年 6 月: GPT, 第一个预训练的 Transformer 模型,用于各种 NLP 任务并获得极好的结果

  • 2018 年 10 月: BERT, 另一个大型预训练模型

  • 2019 年 2 月: GPT-2, GPT 的改进(并且更大)版本

  • 2019 年 10 月: DistilBERT, BERT 的提炼版本,速度提高 60%,内存减轻 40%,但仍保留 BERT 97% 的性能

  • 2019 年 10 月: BART 和 T5, 两个使用与原始 Transformer 模型相同架构的大型预训练模型(第一个这样做)

  • 2020 年 5 月, GPT-3, GPT-2 的更大版本,无需微调即可在各种任务上表现良好(Zero-shot)

Transformer是语言模型

上面提到的所有 Transformer 模型(GPT、BERT、BART、T5 等)都被训练为语言模型。这意味着他们已经以无监督学习的方式接受了大量原始文本的训练。无监督学习是一种训练类型,其中目标是根据模型的输入自动计算的。这意味着不需要人工来标记数据!

这种类型的模型可以对其训练过的语言进行统计理解,但对于特定的实际任务并不是很有用。因此,一般的预训练模型会经历一个称为迁移学习的过程。在此过程中,模型在给定任务上以监督方式(即使用人工注释标签)进行微调。

微调的案例

1. 一个例子是阅读 n 个单词的句子,预测下一个单词。这被称为因果语言建模,因为输出取决于过去和现在的输入。

示例图片来源于Hugging Face

2.第二个案例是mask建模

示例图片来源于Hugging Face

Transformer架构

Transformer模型主要由两个块组成

  • Encoder (左侧): 编码器接收输入并构建其表示(其特征)。

  • Decoder (右侧): 解码器使用编码器的表示(特征)以及其他输入来生成目标序列。

图片来源于Hugging Face

这些部件中的每一个都可以独立使用,具体取决于任务:

  • Encoder-only models: 适用于需要理解输入的任务,如句子分类和命名实体识别。

  • Decoder-only models: 适用于生成任务,如文本生成。

  • Encoder-decoder models 或者 sequence-to-sequence models: 适用于需要根据输入进行生成的任务,如翻译等任务。

Transformer架构最初是为翻译而设计的。在训练期间,Encoder 接收特定语言的输入(句子),而Decoder 需要输出对应语言的翻译。在Encoder中,注意力层可以使用一个句子中的所有单词(正如我们刚才看到的,给定单词的翻译可以取决于它在句子中的其他单词)。然而,Decoder是按顺序工作的,并且只能注意它已经翻译过的句子中的单词。例如,当我们预测了翻译目标的前三个单词时,我们将它们提供给Encoder,然后Decoder使用Encoder的所有输入来尝试预测第四个单词。

为了在训练过程中加快速度(当模型可以访问目标句子时),Decoder会被输入整个目标,但不允许获取到要翻译的单词(如果它在尝试预测位置2的单词时可以访问位置2的单词,Decoder就会偷懒,直接输出那个单词,从而无法学习到正确的语言关系!)。例如,当试图预测第4个单词时,注意力层只能获取位置1到3的单词。

最初的Transformer架构如下所示,Encoder位于左侧,Decoder位于右侧:

图片来源于Hugging Face

注意,解码器块中的第一个注意力层关联到解码器的所有(过去的)输入,但是第二注意力层使用编码器的输出。因此,它可以访问整个输入句子,以最好地预测当前单词。这是非常有用的,因为不同的语言可以有语法规则将单词按不同的顺序排列,或者句子后面提供的一些上下文可能有助于确定给定单词的最佳翻译。

Encoder模型

“编码器”模型指仅使用编码器的Transformer模型。在每个阶段,注意力层都可以获取初始句子中的所有单词。这些模型通常具有“双向”注意力,被称为自编码模型。

这些模型的预训练通常围绕着以某种方式破坏给定的句子(例如:通过随机遮盖其中的单词),并让模型寻找或重建给定的句子。

“编码器”模型最适合于需要理解完整句子的任务,例如:句子分类、命名实体识别(以及更普遍的单词分类)和阅读理解后回答问题。

该系列模型的典型代表有:

  • ALBERT

  • BERT

  • DistilBERT

  • ELECTRA

  • RoBERTa

Decoder模型

“解码器”模型通常指仅使用解码器的Transformer模型。在每个阶段,对于给定的单词,注意力层只能获取到句子中位于将要预测单词前面的单词。这些模型通常被称为自回归模型。

“解码器”模型的预训练通常围绕预测句子中的下一个单词进行。

这些模型最适合于涉及文本生成的任务。

该系列模型的典型代表有:

  • CTRL

  • GPT

  • GPT-2

  • Transformer XL

Encoder-Decoder模型

编码器-解码器模型(也称为序列到序列模型)同时使用Transformer架构的编码器和解码器两个部分。在每个阶段,编码器的注意力层可以访问初始句子中的所有单词,而解码器的注意力层只能访问位于输入中将要预测单词前面的单词。

这些模型的预训练可以使用训练编码器或解码器模型的方式来完成,但通常涉及更复杂的内容。例如,T5通过将文本的随机跨度(可以包含多个单词)替换为单个特殊单词来进行预训练,然后目标是预测该掩码单词替换的文本。

序列到序列模型最适合于围绕根据给定输入生成新句子的任务,如摘要、翻译或生成性问答。

该系列模型的典型代表有:

  • BART

  • mBART

  • Marian

  • T5

参考文章:

本章简介 - Hugging Face NLP Course

知乎原文链接:

NLP step by step -- 了解Transformer - 知乎 (zhihu.com)

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

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

相关文章

Java面试八股之Java中为什么没有全局变量

Java中为什么没有全局变量 Java中没有传统意义上的全局变量,这是因为Java语言设计遵循面向对象的原则,强调封装性和模块化,以及避免全局状态带来的副作用。 封装性: 全局变量违反了面向对象编程中的封装原则,即隐藏对…

Spring Boot集成RabbitMQ快速入门Demo

1.什么是RabbitMQ? RabbitMQ是一款使用Erlang语言开发的,基于AMQP协议的消息中间件,作为一款优秀的消息系统,RabbitMQ有高并发、可扩展等优势,并适用于大型系统中各个模块之间的通信。 RabbitMQ的特点为: 持…

【白盒测试】单元测试的理论基础及用例设计技术(6种)详解

目录 🌞前言 🏞️1. 单元测试的理论基础 🌊1.1 单元测试是什么 🌊1.2 单元测试的好处 🌊1.3 单元测试的要求 🌊1.4 测试框架-Junit4的介绍 🌊1.5 单元测试为什么要mock 🏞️…

《前端面试题》- React - 如何区分函数组件和类组件

问题 如何区分函数组件和类组件? 答案 可以使用instanceof 或者Component.prototype.isReactComponent。 示例 函数组件 export default function FunctionComonent() {if(FunctionComonent.prototype.isReactComponent){console.log(FunctionComonent是类组件…

prompt提示词:AI英语词典优化版Pro,让AI教你学英语,通过AI实现一个网易有道英语词典

目录 一、前言二、效果对比三、优化《AI英语词典》提示词四、其他获奖作品链接 一、前言 不可思议!我的AI有道英语字典助手竟然与百度千帆AI应用创意挑战赛K12教育主题赛榜首作品差之毫厘 ,真的是高手都是惺惺相惜的,哈哈,自恋一…

docker 集群管理实战mesos+zookeeper+marathon(一)

一 实验环境 1.1 系统版本,本实验使用cnetos7.9版本镜像 1.2 准备5台虚拟机,其中3台master,两台slave,使用克隆的方式 1.3 使用远程连接工具登录 1.4 修改主机名 1.5 设置域名映射 每个虚拟机都配置一下,这里就演示一…

SN74LV1T125DBVR SN74LV1T125单电源单缓冲门,带三态输出CMOS逻辑电平转换器

SN74LV1T125DBVR 规格信息: 制造商:Texas Instruments 产品品种:转换 - 电压电平 RoHS:是 电源电压-最大:5.5 V 电源电压-最小:1.6 V 最小作业温度:- 40 C 最大作业温度: 125 C 安装风格:SMD/SMT 封装 / 箱体:SOT-23-5 封装:Cut Tape 封装:MouseReel 封装…

分类算法——ROC曲线与AUC指标(九)

知道TPR与FPR TPRTP/(TP FN) 所有真实类别为1的样本中,预测类别为1的比例 FPR FP/(FP TN) 所有真实类别为0的样本中,预测类别为1的比例 ROC曲线 ROC曲线的横轴就是FPRate,纵轴就是TPRate,当二者相等时,表示的意义…

使用API有效率地管理Dynadot域名,查询账户余额

关于Dynadot Dynadot是通过ICANN认证的域名注册商,自2002年成立以来,服务于全球108个国家和地区的客户,为数以万计的客户提供简洁,优惠,安全的域名注册以及管理服务。 Dynadot平台操作教程索引(包括域名邮…

无人机+遥控器:遥控数传链路二合一远距离传输遥控器技术详解

无人机遥控器是无人机飞行控制的重要组成部分,用于向无人机发送控制指令和接收无人机的状态信息。无人机遥控器通常具备多种功能,如开关机、起飞降落、飞行方向控制、摄像头控制等。 无人机遥控器大多数都具备以下基本特点: 无线传输&#x…

Qt | 窗口的显示及可见性|标题、透明度、启用/禁用|窗口标志、设置其他属性|获取窗口部件、设置父部件|鼠标光标

​显示事件:QEvent::show,处理函数为 showEvent(QShowEvent*) 隐藏事件:QEvent::hide,处理函数为 hideEvent(QHideEvent* ) 01 QWidget 类中与可见性有关的属性 visible:bool 访问函数: bool isVisible() const; virtual void setVisible(bool visible); 02 QWid…

3.搭建增长模型-数据洞察

用分享内容举例 分享一个内容出去,有很大概率会带来新的用户,会带来下载量 提升分享就是一个拉活用户数的方法 拆解【提升分享拉新\拉活用户数】: 【提升分享量】 【每次分享拉新\拉活用户数】 [谁在分享] 分享用户画像 分享高转化用户 …

【C 数据结构】图

文章目录 【 1. 基本原理 】1.1 无向图1.2 有向图1.3 基本知识 【 2. 图的存储结构 】2.1 完全图2.2 稀疏图和稠密图2.3 连通图2.3.1 (普通)连通图连通图 - 无向图非连通图 的 连通分量 2.3.2 强连通图强连通图 - 有向图非强连通有向图 的 强连通分量 2.3.3 生成树 - 连通图2.3…

Jenkins构建实用场景指南

1 总体说明 本文主要介绍在研发实战时,通过Jenkins解决企业级软件构建打包一些实用场景。通常是在打包构建前,通过命令和工具进行预处理,避免修改源码,可按需配置构建任务,自动持续集成。 2 Jenkins简介 2.1 复制任务 研发实战创建构建任务,推荐从已有的构建任务进行…

windows查看xxx的版本号

node -v python --version redis-server --version java -version go version mvn -version git --version

商标申请注册交费就一定会下注册证?

近日遇到一个网友说普推知产老杨说,他以为商标交钱就一定会下商标注册证,这个不管找哪家也做不到的。商标申请注册时要给商标局交费用,交完费用商标才有商标的形式审查,通过后下受理书,才有后面商标实质审查&#xff0…

基础SQL 函数

在MySQL中内置了很多函数,我们可以通过一段程序或者代码直接调用这个函数 一、字符串函数 下面通过例子来验证这些函数 -- 字符串函数-- concat函数 select concat("hello ","world");-- lower函数 select lower("HELLO");-- upper函…

C#基础|构造方法相关

哈喽,你好,我是雷工。 以下为C#方法相关的学习笔记。 01 方法的概述 概念:方法表示这个对象能够做什么,也就是封装了这个对象行为。 类型:实例方法—>静态方法(抽象方法、虚方法)—>特殊…

CSS画一条虚线,并且灵活设置虚线的宽度和虚线之间的间隔和虚线的颜色

CSS画一条虚线,并且灵活设置虚线的宽度和虚线之间的间隔和虚线的颜色。 先看效果图: 在CSS中,你可以使用border属性或者background属性来画一条虚线。以下是两种常见的方法: 方法一:使用border属性 你可以设置一个元素的border…

别再把ERP吹上天了,在中国根本没几家企业用得起来

ERP系统无疑具有诸多优势,然而,其在中国多年的应用实效如何,各界看法不一,尚无定论。 历经长达20余年的信息化探索,华为直至2016年才达成了“流程基本顺畅,账目与实际相符”的目标(详见华为轮值…