【焦点热闻】编码器-解码器 | 基于 Transformers 的编码器-解码器模型

2023-06-02 11:18:03 来源:哔哩哔哩 分享到:

基于 transformer 的编码器-解码器模型是 表征学习 和 模型架构 这两个领域多年研究成果的结晶。本文简要介绍了神经编码器-解码器模型的历史,更多背景知识,建议读者阅读由 Sebastion Ruder 撰写的这篇精彩 博文。此外,建议读者对 自注意力 (self-attention) 架构 有一个基本了解,可以阅读 Jay Alammar 的 这篇博文 复习一下原始 transformer 模型。


(资料图)

本文分 4 个部分:

背景 - 简要回顾了神经编码器-解码器模型的历史,重点关注基于 RNN 的模型。

编码器-解码器 - 阐述基于 transformer 的编码器-解码器模型,并阐述如何使用该模型进行推理。

编码器 - 阐述模型的编码器部分。

解码器 - 阐述模型的解码器部分。

每个部分都建立在前一部分的基础上,但也可以单独阅读。这篇分享是第二部分 编码器-解码器。

编码器-解码器

2017 年,Vaswani 等人引入了 transformer 架构,从而催生了 基于 transformer 的编码器-解码器模型。

与基于 RNN 的编码器-解码器模型类似,基于 transformer 的编码器-解码器模型由一个编码器和一个解码器组成,且其编码器和解码器均由 残差注意力模块 (residual attention blocks) 堆叠而成。基于 transformer 的编码器-解码器模型的关键创新在于: 残差注意力模块无需使用循环结构即可处理长度 n 可变的输入序列 X1:n。不依赖循环结构使得基于 transformer 的编码器-解码器可以高度并行化,这使得模型在现代硬件上的计算效率比基于 RNN 的编码器-解码器模型高出几个数量级。

回忆一下,要解决 序列到序列 问题,我们需要找到输入序列 X1:n 到变长输出序列 Y1:m 的映射。我们看看如何使用基于 transformer 的编码器-解码器模型来找到这样的映射。

与基于 RNN 的编码器-解码器模型类似,基于 transformer 的编码器-解码器模型定义了在给定输入序列 X1:n 条件下目标序列 Y1:m 的条件分布:

pθenc,θdec(Y1:m∣X1:n)

基于 transformer 的编码器部分将输入序列 X1:n 编码为 隐含状态序列 X1:n,即:

fθenc:X1:n→X1:n

然后,基于 transformer 的解码器负责建模在给定隐含状态序列 X1:n 的条件下目标向量序列 Y1:m 的概率分布:

pθdec(Y1:m∣X1:n)

根据贝叶斯法则,该序列分布可被分解为每个目标向量 yi 在给定隐含状态 X1:n 和其所有前驱目标向量 Y0:i−1 时的条件概率之积:

pθdec(Y1:m∣X1:n)=i=1∏mpθdec(yi∣Y0:i−1,X1:n)

因此,在生成 yi 时,基于 transformer 的解码器将隐含状态序列 X1:n 及其所有前驱目标向量 Y0:i−1 映射到 logit 向量 li。 然后经由 softmax 运算对 logit 向量 li 进行处理,从而生成条件分布 pθdec(yi∣Y0:i−1,X1:n)。这个流程跟基于 RNN 的解码器是一样的。然而,与基于 RNN 的解码器不同的是,在这里,目标向量 yi 的分布是 显式 (或直接) 地以其所有前驱目标向量 y0,…,yi−1 为条件的,稍后我们将详细介绍。此处第 0 个目标向量 y0 仍表示为 BOS 向量。有了条件分布 pθdec(yi∣Y0:i−1,X1:n),我们就可以 自回归 生成输出了。至此,我们定义了可用于推理的从输入序列 X1:n 到输出序列 Y1:m 的映射。

我们可视化一下使用 基于 transformer 的编码器-解码器模型 _自回归_地生成序列的完整过程。

上图中,绿色为基于 transformer 的编码器,红色为基于 transformer 的解码器。与上一节一样,我们展示了如何将表示为 (x1=I,x2=want,x3=to,x4=buy,x5=a,x6=car,x7=EOS) 的英语句子 “I want to buy a car” 翻译成表示为 (y0=BOS,y1=Ich,y2=will,y3=ein,y4=Auto,y5=kaufen,y6=EOS) 的德语句子 “Ich will ein Auto kaufen”。

首先,编码器将完整的输入序列 X1:7 = “I want to buy a car” (由浅绿色向量表示) 处理为上下文相关的编码序列 X1:7。这里上下文相关的意思是, 举个例子 ,x4 的编码不仅取决于输入 x4 = “buy”,还与所有其他词 “I”、“want”、“to”、“a”、“car” 及 “EOS” 相关,这些词即该词的 上下文 。

接下来,输入编码 X1:7 与 BOS 向量 ( 即 y0) 被一起馈送到解码器。解码器将输入 X1:7 和 y0 变换为第一个 logit l1 (图中以深红色显示),从而得到第一个目标向量 y1 的条件分布:

pθenc,dec(yy0,X1:7)=pθenc,dec(y∣BOS,I want to buy a car EOS)=pθdec(y∣BOS,X1:7)

然后,从该分布中采样出第一个目标向量 y1 = Ich (由灰色箭头表示),得到第一个输出后,我们会并将其继续馈送到解码器。现在,解码器开始以 y0 = “BOS” 和 y1 = “Ich” 为条件来定义第二个目标向量的条件分布 y2:

pθdec(y∣BOS Ich,X1:7)

再采样一次,生成目标向量 y2 = “will”。重复该自回归过程,直到第 6 步从条件分布中采样到 EOS:

EOS∼pθdec(y∣BOS Ich will ein Auto kaufen,X1:7)

这里有一点比较重要,我们仅在第一次前向传播时用编码器将 X1:n 映射到 X1:n。从第二次前向传播开始,解码器可以直接使用之前算得的编码 X1:n。为清楚起见,下图画出了上例中第一次和第二次前向传播所需要做的操作。

可以看出,仅在步骤 i=1 时,我们才需要将 “I want to buy a car EOS” 编码为 X1:7。从 i=2 开始,解码器只是简单地复用了已生成的编码。

在 transformers 库中,这一自回归生成过程是在调用 .generate()方法时在后台完成的。我们用一个翻译模型来实际体验一下。

python

fromtransformers importMarianMTModel, MarianTokenizertokenizer = MarianTokenizer.from_pretrained("Helsinki-NLP/opus-mt-en-de")model = MarianMTModel.from_pretrained("Helsinki-NLP/opus-mt-en-de")# create ids of encoded input vectorsinput_ids = tokenizer("I want to buy a car", return_tensors="pt").input_ids# translate exampleoutput_ids = model.generate(input_ids)[0]# decode and printprint(tokenizer.decode(output_ids))

输出:

<pad> Ich will ein Auto kaufen

.generate()接口做了很多事情。首先,它将 input_ids传递给编码器。然后,它将一个预定义的标记连同已编码的 input_ids一起传递给解码器 (在使用 MarianMTModel的情况下,该预定义标记为 \text{&lt;pad&gt;} )。接着,它使用波束搜索解码机制根据最新的解码器输出的概率分布 1 自回归地采样下一个输出词。更多有关波束搜索解码工作原理的详细信息,建议阅读 这篇博文。

我们在附录中加入了一个代码片段,展示了如何“从头开始”实现一个简单的生成方法。如果你想要完全了解 自回归 生成的幕后工作原理,强烈建议阅读附录。

总结一下:

基于 transformer 的编码器实现了从输入序列 X1:n 到上下文相关的编码序列 X1:n 之间的映射。

基于 transformer 的解码器定义了条件分布 pθdec(yi∣Y0:i−1,X1:n)。

给定适当的解码机制,可以自回归地从 pθdec(yi∣Y0:i−1,X1:n),∀i∈1,…,m 中采样出输出序列 Y1:m。

太好了,现在我们已经大致了解了 基于 transformer 的 编码器-解码器模型的工作原理。下面的部分,我们将更深入地研究模型的编码器和解码器部分。更具体地说,我们将确切地看到编码器如何利用自注意力层来产生一系列上下文相关的向量编码,以及自注意力层如何实现高效并行化。然后,我们将详细解释自注意力层在解码器模型中的工作原理,以及解码器如何通过 交叉注意力 层以编码器输出为条件来定义分布 pθdec(yi∣Y0:i−1,X1:n)。在此过程中,基于 transformer 的编码器-解码器模型如何解决基于 RNN 的编码器-解码器模型的长程依赖问题的答案将变得显而易见。

1 可以从 此处 获取 "Helsinki-NLP/opus-mt-en-de"的解码参数。可以看到,其使用了 num_beams=6的波束搜索。

敬请关注其余部分的文章。

英文原文: https://hf.co/blog/encoder-decoder

原文作者: Patrick von Platen

译者: Matrix Yao (姚伟峰),英特尔深度学习工程师,工作方向为 transformer-family 模型在各模态数据上的应用及大规模模型的训练推理。

审校/排版: zhongdongy (阿东)

标签:

【焦点热闻】编码器-解码器 | 基于 Transformers 的编码器-解码器模型

来源:哔哩哔哩 2023-06-02 11:18:03

极芝养生茶_关于极芝养生茶概略

来源:互联网 2023-06-02 10:27:51

沙特扩大锂加工能力以向宝马汽车供应 环球滚动

来源:界面新闻 2023-06-02 09:46:27

周运平任湖南省人民政府研究室主任_世界热头条

来源:湖南日报 2023-06-02 08:44:37

共谋数字经济高质量发展|快消息

来源:人民网-人民日报 2023-06-02 08:17:52

东风着陆场准备就绪迎接航天员回家_今日热门

来源:山西日报 2023-06-02 07:21:24

散户申购新股的条件

来源:财梯网 2023-06-02 07:01:05

反义词的四字成语表_反义词的四字成语-重点聚焦

来源:互联网 2023-06-02 05:59:16

环球观点:林更新和王思聪_林更新 左耳

来源:互联网 2023-06-02 04:37:22

天天快资讯:打算炖山药鸡汤,这个汤里还可以放榴莲吗?

来源:南方养生网 2023-06-02 04:27:40

比亚迪:比亚迪汽车工业有限公司未被列入经营异常名录 全球快看点

来源:IT之家 2023-06-02 03:09:14

acer4745g装win7还是win10(acer4745g) 焦点滚动

来源:互联网 2023-06-02 02:35:00

得力人脸指纹混合识别考勤机说明书 得力3960考勤机说明书 每日快报

来源:互联网 2023-06-02 01:44:10

【视频】高速公路上一名孩子突发疾病,危急时刻,他们出手了

来源:扬子晚报 2023-06-02 01:32:09

世界通讯!【土拍日历】昆明6月供地仅2宗 总面积约72亩

来源:搜狐焦点 2023-06-02 00:38:13

盈利性幼儿园有哪些成本项目(盈利性幼儿园有哪些成本)_当前最新

来源:互联网 2023-06-02 00:10:16

江苏发布“新时代江苏园博三十六景”

来源:金台资讯 2023-06-01 22:48:39

美国女子驾车开上拖车坡道后起飞:飞出约36米 落在另一辆车上

来源:海外网 2023-06-01 21:38:38

盘点那些解放家长的“带娃”专利 世界球精选

来源:环球网 2023-06-01 21:01:29

【聚看点】暴雨凌晨袭粤 暂缓广东“高烧”

来源:北青网 2023-06-01 20:21:19

【世界新视野】实益达选举方冰玉为第七届监事会职工代表监事

来源:OFweek半导体照明网 2023-06-01 19:15:29

焦点简讯:金海高科(603311):金海高科关于召开2022年度业绩说明会

来源:中财网 2023-06-01 19:00:21

全球播报:发现目标,实弹打击!

来源:看看新闻 2023-06-01 18:08:10

异动快报:ST目药 6006718月19日10点39分封涨停板

来源:互联网 2023-06-01 17:05:10

旺店通ERP跨境版嵌入ChatGPT 支持AI自由会话_环球今日讯

来源:站长之家 2023-06-01 16:24:06

电脑温度过高教您几招降温

来源:北方网 2023-06-01 15:30:01

中国石化于天津成立新公司,注册资本1亿元

来源:证券时报·e公司 2023-06-01 14:52:17

2023年4月俄罗斯经济同比增长3.3%

来源:新华丝路 2023-06-01 14:36:48

当前焦点!借呗怎么延期还款?延期还款影响信用吗?

来源:金融啦 2023-06-01 13:27:46

将体育作为礼物送给孩子(体坛观澜)

来源:海口网 2023-06-01 12:28:29

Copyright   2015-2023 今日知识产权网 版权所有  备案号:沪ICP备2023005074号-40   联系邮箱:5 85 59 73 @qq.com