Transformer小结

26 篇文章 0 订阅
23 篇文章 0 订阅

Attention is all you need

Transformer

在这里插入图片描述

LayerNorm(x + Sublayer(x))

整理的Transformer 伪代码
输入 Inputs 输出 Outputs

X = Positional_Encoding(Input_Embedding(Inputs))
X = LayerNorm(X + Multi-Head_Attention(X))
X = LayerNorm(X + Feed_Forward(X))

Y = Positional_Encoding(Output_Embedding(Outputs))
Y = LayerNorm(Y + Masked_Multi-Head_Attention(Y))
Y = LayerNorm(Y + Multi-Head_Attention( X Q X_Q XQ, X K X_K XK, Y V Y_V YV))
Y = LayerNorm(Y + Feed_Forward(Y))

Y = Linear(Y)
Output Probabilities = Softmax(Y)

在这里插入图片描述

Scaled Dot-Product Attention

Attention(Q, K, V) = softmax( Q K T d k \frac{QK^T}{\sqrt{d_k}} dk QKT)V

Multi-Head Attention

MultiHead(Q,K,V) = Concat( h e a d 1 head_1 head1,…, h e a d h head_h headh) W O W^O WO

where h e a d i head_i headi = Attention( Q W i Q QW_i^Q QWiQ, K W i K KW_i^K KWiK, V W i V VW_i^V VWiV)

W i Q ∈ R d m o d e l ∗ d k W_i^Q ∈ R^{d_{model} \quad * \quad d_k} WiQRdmodeldk
W i K ∈ R d m o d e l ∗ d k W_i^K ∈ R^{d_{model} \quad * \quad d_k} WiKRdmodeldk
W i V ∈ R d m o d e l ∗ d v W_i^V ∈ R^{d_{model} \quad * \quad d_v} WiVRdmodeldv
W i O ∈ R h d v ∗ d m o d e l W_i^O ∈ R^{hd_v \quad * \quad d_{model}} WiORhdvdmodel

In this work we employ h = 8 parallel attention layers, or heads.
For each of these we use d k d_k dk = d v d_v dv = d m o d e l d_{model} dmodel/h = 64
Due to the reduced dimention of each head, the total computational cost
is similar to that of single-head attention with full dimensionality.

Position-wise Feead-Forward Networks

FFN(x) = max(0, x W 1 xW_1 xW1 + b 1 b_1 b1) W 2 W_2 W2 + b 2 b_2 b2

Positional Encoding

$PE_{(pos, 2i)} = sin(pos/10000^{2i/d_{model}}) $

$PE_{(pos, 2i+1)} = cos(pos/10000^{2i/d_{model}}) $

where pos is the position and i is the dimension.

重新写Transformer的伪代码

输入 Inputs 输出 Outputs

X = Positional_Encoding(Input_Embedding(Inputs))

Q X Q_X QX, K X K_X KX, V X V_X VX = X

X = LayerNorm(X + Multi-Head_Attention( Q X Q_X QX, K X K_X KX, V X V_X VX))

X = LayerNorm(X + Feed_Forward(X))

Q X Q_X QX, K X K_X KX, V X V_X VX = X

Y = Positional_Encoding(Output_Embedding(Outputs))

Q Y Q_Y QY, K Y K_Y KY, V Y V_Y VY = Y

Y = LayerNorm(Y + Masked_Multi-Head_Attention( Q Y Q_Y QY, K Y K_Y KY, V Y V_Y VY))

Q Y Q_Y QY, K Y K_Y KY, V Y V_Y VY = Y

Y = LayerNorm(Y + Multi-Head_Attention( Q X Q_X QX, K X K_X KX, V Y V_Y VY))

Y = LayerNorm(Y + Feed_Forward(Y))

Y = Linear(Y)
Output Probabilities = Softmax(Y)

Hardware and Schedule

We trained our models on one machine with 8 NVIDIA P100 GPUs.
We trained the base models for a total of 100,000 steps or 12 hours.
The big models were trained for 300,000 steps(3.5days)

Optimizer

We used the Adam optimizer with with β 1 β_1 β1 = 0.9, β 2 β_2 β2 = 0.98 and ϵ \epsilon ϵ= 10^{−9}$

Regularization

Residual Dropout
Label Smoothing

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用:Transformer是一种近年来非常火热的模型,它的结构非常巧妙。简单来说,Transformer是一个由多个编码器和解码器组成的模型。编码器负责将输入序列转换成抽象的特征表示,解码器则根据编码器的输出和之前的输出来生成目标序列。Transformer主要的特点是使用了自注意力机制,这使得模型能够在处理长文本时也能保持较好的效果。 对于小白来说,理解Transformer的结构可能需要花费一些功夫。但是可以通过以下几个步骤来逐渐掌握Transformer的概念: 1. 首先,了解Transformer的整体结构。它由编码器和解码器组成,编码器负责将输入序列转换为特征表示,解码器根据编码器的输出和之前的输出生成目标序列。 2. 其次,研究Transformer的细节。其中一个关键的概念是自注意力机制,它允许模型在处理时对输入序列中的不同位置进行关注。这种机制有助于模型捕捉输入序列的上下文信息。 3. 最后,了解Transformer的优缺点。Transformer的优点是它在处理长文本时能够保持较好的效果,并且由于使用了自注意力机制,它能够捕捉全局上下文信息。然而,Transformer的缺点是它需要大量的计算资源和时间来训练,并且对于小样本数据可能不够鲁棒。 希望这些解释能帮助你对Transformer有一个初步的了解!<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [史上最小白之Transformer详解](https://blog.csdn.net/Tink1995/article/details/105080033)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值