赵队transformer
时间: 2024-12-27 07:19:42 浏览: 9
### Transformer 架构详解
#### 编码器部分
编码器模块主要由两个子层构成,即多头注意力机制(Multi-Head Self-attention Mechanism, MHSM)和全连接前馈层(Fully Connected Feed-Forward Network)。每个子层之后均加入了层归一化(Layer Normalization, LN)以及残差连接(Residual Connection),这有助于加速训练过程并提高模型稳定性[^3]。
对于输入序列中的每一个位置而言,MHSM允许该位置关注到整个序列里其他所有位置的信息;而不仅仅是相邻的位置或者是固定长度范围内的上下文信息。这种特性使得Transformer能够捕捉更广泛的依赖关系,从而在处理长距离依赖方面表现出色[^1]。
```python
import torch.nn as nn
class MultiHeadAttention(nn.Module):
def __init__(self, d_model, num_heads):
super(MultiHeadAttention, self).__init__()
assert d_model % num_heads == 0
self.d_k = d_model // num_heads
self.num_heads = num_heads
self.linears = clones(nn.Linear(d_model, d_model), 4)
def forward(self, query, key, value, mask=None):
...
```
#### 解码器部分
解码器同样包含了类似的两层设计,不过在此基础上还增加了一个交叉注意机制(Cross Attention),用于接收来自编码器端产生的表示作为额外的背景知识来辅助生成目标序列。此外,为了防止未来时刻的信息泄露给当前正在预测的时间步,在计算过程中会对某些特定区域施加掩蔽操作(masking)[^2]。
```python
def subsequent_mask(size):
"Mask out subsequent positions."
attn_shape = (1, size, size)
subsequent_mask = np.triu(np.ones(attn_shape), k=1).astype('uint8')
return torch.from_numpy(subsequent_mask) == 0
```
#### 应用场景
由于其强大的建模能力,Transformers已经被广泛应用到了各类NLP任务当中,比如机器翻译、文本摘要、问答系统等,并且取得了超越传统RNN/LSTM方法的效果。不仅如此,在计算机视觉领域也开始尝试引入类似的思路来进行特征提取等工作。
阅读全文