深入理解Transformer架构:从原理到模型应用
1. 注意力权重可视化
注意力权重可视化通过线条连接正在更新嵌入的标记(左侧)和被关注的每个单词(右侧)。线条的强度表示注意力权重的大小,深色线条代表接近1的值,浅色线条代表接近0的值。从可视化中可以看出,属于同一句子的单词之间的注意力权重最强,这表明模型能够关注同一句子中的单词。例如,对于“flies”这个词,模型能识别出在第一个句子中“arrow”很重要,在第二个句子中“fruit”和“banana”很重要,从而根据上下文区分“flies”作为动词或名词的用法。
2. 前馈层
编码器和解码器中的前馈子层是一个简单的两层全连接神经网络,但它独立处理每个嵌入,因此常被称为位置前馈层,也可看作核大小为1的一维卷积。通常,第一层的隐藏大小是嵌入大小的四倍,最常用的激活函数是GELU。以下是前馈层的实现代码:
import torch
import torch.nn as nn
from torch.nn import functional as F
from math import sqrt
class FeedForward(nn.Module):
def __init__(self, config):
super().__init__()
self.linear_1 = nn.Linear(config.hidden_size, config.intermediate_size)
self.linear_2 = nn.Linear(config.intermediate_size, c
超级会员免费看
订阅专栏 解锁全文
1316

被折叠的 条评论
为什么被折叠?



