NLP step by step -- 了解Transformer

news2024/11/17 4:45:51

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.coloradmin.cn/o/1625412.html

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

相关文章

GITEE 基于OAuth2的API V5版本

为了构建更好的码云生态环境,我们推出了基于OAuth2的API V5版本。 API V5接口使用方式以及Url都参照GitHub,为了各位开发者更好的兼容已经存在的第三方应用。 API 使用条款 OSCHINA 用户是资源的拥有者,需尊重和保护用户的权益。不能在应用…

信创需求激增,国产服务器操作系统赋能数字化转型

信创,即信息技术应用创新,是指在关键领域和环节推进信息技术的自主创新,构建安全可控的信息技术体系。随着数字化转型的加速,信创需求激增,国产服务器操作系统在其中扮演着至关重要的角色。国产服务器操作系统如何赋能…

TikTok营销攻略:如何精准测试与优化品牌营销策略

在当今数字营销的世界中,社交媒体平台已成为吸引目标受众的重要工具。而TikTok,作为一个快速崛起的视频分享平台,在年轻人中享有巨大的流行度。对于那些希望利用这一平台进行营销的品牌和营销人员来说,了解如何在TikTok上测试营销…

[Rust开发]在Rust中使用geos的空间索引编码实例

geos的空间索引用的是STRTree,这是一种基于STR算法的四叉树索引,有如下特点: 使用Sort-Tile-Recursive (STR) 算法创建的仅查询的R-tree空间索引 STR(Sort-Tile-Recursive,递归网格排序) 基本思想是将所有的矩形以“tile”的方式分配到r/n&a…

使用Azure AI Search和LlamaIndex构建高级RAG应用

RAG 是一种将公司信息合并到基于大型语言模型 (LLM) 的应用程序中的常用方法。借助 RAG,AI 应用程序可以近乎实时地访问最新信息,团队可以保持对其数据的控制。 在 RAG 中,您可以评估和修改各个阶段以改进结果&#x…

大型企业高效内部协同,向日葵SDK私有化部署案例解析

大型集团企业的内部,沟通协作的重要性不言而喻,我们时常能听到关于所谓“大企业病”的吐槽,多数也是源于企业内部沟通协作效率低,进而导致内耗加重。甚至我们可以这么说,越是发展壮大的集团企业,其内部的沟…

力扣刷题学习(跟随视频学着刷)

使用入门 视频链接 【手把手带你刷Leetcode力扣|各个击破数据结构和算法|大厂面试必备技能【已完结】-哔哩哔哩】 https://b23.tv/vIcRT61 时空复杂度 时间: 空间:主要有O(1)和O(n)两种,只用计算开辟的内存&#xff…

3月份牛奶线上市场数据分析:销售额累计近18亿元

随着消费者健康意识的提升,牛奶作为日常营养补充品,其市场需求逐年增加。线上市场具有购买便捷性、价格透明性等优势,越来越多的消费者倾向于线上购买。 今年3月份,牛奶乳品市场呈现稳定发展状态。根据鲸参谋数据显示&#xff0c…

深度解析1688关键字搜索API接口:技术实现与应用探索

1688关键字搜索API接口的技术实现主要依赖于阿里巴巴开放平台提供的API服务。商家和开发者通过调用这些API接口,可以实现商品的搜索、排序、筛选、分页等功能。具体来说,技术实现主要包括以下几个步骤: 注册并获取API密钥:首先&am…

python爬虫插件XPath的安装

概要 XPath Helper是一款专用于chrome内核浏览器的实用型爬虫网页解析工具。XPath可以轻松快捷地找到目标信息对应的Xpath节点,获取xpath规则,并提取目标信息,并进行校对测试;可对查询出的xpath进行编辑,正确编辑的结…

一文解析golang中的协程与GMP模型

文章目录 前言1、线程实现模型1.1、用户级线程与内核级线程1.2、内核级线程模型1.3、用户级线程模型1.3、两级线程模型 2、GMP模型2.1、GMP模型概述2.1、GMP v1版本 - GM模型2.2、GMP v2版本 - GMP模型2.3、GMP相关源码2.4 调度流程2.5 设计思想 3.总结 前言 并发(并行&#x…

Golang-Gin 框架写的免杀平台,内置分离、捆绑等多种BypassAV方式

Golang-Gin 框架写的免杀平台,内置分离、捆绑等多种BypassAV方式 Golang-Gin 框架写的免杀平台,内置分离、捆绑等多种BypassAV方式。 cool 时间线: Golang Gin 框架写的免杀平台- (2021.11.12)Golang Gin 框架写的免杀平台,更…

CVPR往年论文查看

这个就是查看论文的网站:https://openaccess.thecvf.com/ 先别急, 看完再操作,听话!! 如果你要查看CVPR2022年的论文那么就在网站后加上CVPR2022 例如:https://openaccess.thecvf.com/CVPR2022 如果是2023年的那么…

赋能智慧校园!A3D数字孪生可视化,轻量又高效!

放假之后,学生们会逐步返学,大量人员出入校园,安全更是不容忽视,如何在短时间内对大批人员及设施进行智能监管?数字化转型是关键手段,我们可以融合线上线下数据,搭建3D立体的智慧校园&#xff0…

RoadBEV:鸟瞰图中的道路表面重建

1. 代码地址 GitHub - ztsrxh/RoadBEV: Codes for RoadBEV: road surface reconstruction in Birds Eye View 2. 摘要 本文介绍了RoadBEV:鸟瞰图中的道路表面重建。道路表面条件(特别是几何形状)极大地影响了自动驾驶汽车的驾驶性能。基于…

【C#】Stopwatch计时器

使用Stopwatch检查C#中代码块的执行时间,比如歌曲,图片的下载时间问题 首先,我们可看到Stopwatch 类内部的函数。 根据需求,我们具体可使用到 Start() 开始计时,Stop() 停止计时等 //创建 Stopwatch 实例 Stopwatch …

ELK 日志分析系统(二)

一、ELK Kibana 部署 1.1 安装Kibana软件包 #上传软件包 kibana-5.5.1-x86_64.rpm 到/opt目录 cd /opt rpm -ivh kibana-5.5.1-x86_64.rpm 1.2 设置 Kibana 的主配置文件 vim /etc/kibana/kibana.yml --2--取消注释,Kiabana 服务的默认监听端口为5601 server.po…

AWR报告采集

一、windows下采集 自动负载信息库(Automatic Workload Repository,AWR)是在Oracle 10g中被引入的,缺省地被安装到Oracle10g数据库中,用于收集关于该特定数据库的操作统计信息和其他统计信息。AWR的采样工作由后台进程…

2018.3SDK工具融合bit文件不成功_microblaze加载程序不成功

2018.3SDK工具融合bit文件不成功_microblaze加载程序不成功 描述: 正常开发流程是vivado端把PL端开发好了,导出HDF平台文件,然后SDK根据HDF文件创建工程,完成PS端的开发工作,这时候就要下载调试了,发现SDK的做法是把vivado导出的bit文件和SDK编译谁生成的elf文件进行了融…

Idea:通义千问插件

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 一、通义千问大模型 二、程序编写助手 三、Idea安装通义千问插件 总结 提示:以下是本篇文章正文内容,下面案例可供参考 一、通义千问大模型…