如今,人工智能在全球范围内掀起浪潮之时,无论是具备写作与绘画能力的GPT,还是豆包、千问等形形色色的大模型,它们背后都共同拥有一项称作“Transformer”的关键技术。自2017年此项技术问世以来,鉴于其具有革命性的设计理念,它将机器处理信息的方式进行了彻底变革,进而成为大模型时代的根基所在。若要理解它,那便是理解当下AI热潮的起始点。
Transformer诞生以前,循环神经网络也就是RNN,是处理文本这类序列数据的主流模型,其处理方式如同我们读文章那般,得逐字按顺序开展,这样的串行计算模式致使训练效率极低,处理长句子时,RNN极易忘掉前文关键信息,好比我们读完文章后很难记起开头细节那样,这便是所谓的“长距离依赖”问题。
更具致命性的是,RNN的串行结构致使其难以运用现代GPU的并行计算能力,随着模型规模的扩大,训练时间会急剧增长,成为限制人工智能发展的关键瓶颈,正是为了化解这些根本性的缺陷,研究者们才提出了Transformer架构,它完全摒弃了循环结构,开创了全新的计算范式。
Transformer的整体架构好似一个由编码器以及解码器构成的“双塔” ,编码器会负责去接收并且理解我们所输入的原始信息 ,像是一句中文或者一张图片的像素序列 ,它会把输入内容转变为深层语义表示 ,这一过程依靠多层结构的反复提炼 ,致力于不遗漏任何重要细节。
语义表示由编码器提供,解码器依据此一步步生成那我们渴望的输出,比如说在机器翻译任务里,解码器依照顺序逐个词生成对应的外文句子,二者均是运用多个相同的层堆叠构建而成,这样的模块化设计致使模型规模能够灵活地进行扩展,这般分工清晰明确的设计使模型能够高效地去处理从输入直至输出的复杂映射任务。
class MultiHeadAttention(nn.Module):
def __init__(self, d_model, n_heads):
self.w_q = nn.Linear(d_model, d_model)
self.w_k = nn.Linear(d_model, d_model)
self.w_v = nn.Linear(d_model, d_model)
self.attention = ScaledDotProductAttention()
对于Transformer而言,极关键主要发明是自注意力机制,它能让序列里每个词都和序列内的但凡所有词直接交流,在具体实现时,模型会给每个词弄出三个向量,分别是查询、键以及值,借助计算查询跟所有键的匹配程度,模型便能够判定当前词该去关注哪些别的词,接着把相应的值加权求和,进而得到该词的全新表示。
class PositionwiseFFN(nn.Module):
def forward(self, x):
return self.fc2(self.dropout(F.relu(self.fc1(x))))
比如说,在句子“它很甜,因为它吃了很多糖”里头,“它”要留意“糖”才可以明白甜的缘由,然而自注意力机制能够让这两个词就算隔得很远也能够构建起直接的关联。这样的全局建模能力致使Transformer在处理长文本之际,信息传递几乎不会受到距离的影响,完全解决了RNN的记忆瓶颈。
class EncoderLayer(nn.Module):
def forward(self, x, mask):
attn_out, _ = self.attn(x, x, x, mask)
x = self.norm1(x + self.dropout1(attn_out)) # Add & Norm
ff_out = self.feed_forward(x)
x = self.norm2(x + self.dropout2(ff_out)) # Add & Norm
return x
即使单个自注意力头具备强大实力,然而其能力存在局限,仅能捕捉某一种类型的关系。进而Transformer引入了多头注意力机制,该机制把查询、键、值向量拆分成多个“头”,各个头于不同的子空间里独立开展注意力计算。这恰如一个医疗专家团队,其中有擅长查看影像的,有擅长剖析病历的,大家从各自的专业角度进行协同会诊。
模型会把所有头的输出进行拼接,之后再经由一次线性变换获得最终结果,这种设计极大地强化了模型捕捉复杂模式的能力,比如,有的注意力头或许聚焦于语法结构,用以识别句子里的主谓宾,然而有的头却关注语义关联,去发现词与词之间的逻辑关系,多头机制实则正是大模型能够“理解”复杂语义的关键之处。
Transformer里,除了注意力机制外,前馈网络也是不可缺少的组成部分,它处在每个注意力层的后面,起着特征加工的作用。前馈网络一般是由两个全连接层以及一个非线性激活函数构成的,它针对每个位置的信息单独去处理,给模型带来非线性变换,进而提高模型的表达能力。
一个称得上标准的编码器层,涵盖着两个主要构成为子层形态的部分,分别是多头自注意力层以及前馈网络层,而且每一个子层的周围都运用了残差连接这种方式,之后再开展层归一化。这样的一种结构,切实保障了深层网络在进行训练期间的稳定性。解码器层是在上述基础之上,于其中间部位插入了一个交叉注意力层,使得解码器在生成内容的时候能够实时去查询编码器所拥有的信息,与此同时,首个自注意力层还采用了掩码机制,以此来防止模型在生成处于当前位置的词时出现偷看面向未来的词的情况。
Transformer的成功不是偶然发生的,它的核心优势与大数据、大算力这个时代的需求完美地契合在了一起。首先,它完全摆脱了循环依赖,还支持并行计算,这就使得在海量数据上训练超大规模模型变成了可能,训练效率跟RNN相比提升了好几个量级。其次,它具备强大的全局建模能力,能让信息在长距离之间毫无损失地传递。
恰是由于Transformer具备模块化以及可扩展性,后续的BERT、GPT等系列模型才能够借助堆叠更高层数、纳入更多参数,持续刷新各项任务的纪录。从最开始的机器翻译起,直至如今覆盖自然语言处理、计算机视觉甚至于多模态领域,Transformer已然转变为一种通用的序列处理范式。能够说,它切实开启了人工智能的大模型时代,使得智能助手、AI绘画等应用得以走入千家万户。
如今,当你于手机之上运用智能助手之际,可曾有过好奇之感,你所键入的此番语句,于Transformer模型当中会历经怎样的“思索”进程呢?欢迎于评论区域分享你的看法,或者进行点赞转发,以使更多友人一同探究AI的神秘之处。
相关标签: # Transformer # 大模型 # AI # 人工智能 # 自然语言处理