郭震 AI公众号:郭震AI

6 ChatGPT原理:转化器(Transformer)架构

发布日期:

最近更新:

分类: ChatGPT原理

预计阅读: 5 分钟

阅读次数: 0

预计阅读5 分钟
结构重点8 个
图文要点6 张
正文规模2.1k 字

整理说明

这篇内容怎么整理

郭震 · 2026-06-04

独立整理围绕 8 个结构重点拆成环境、步骤、验证点和常见误区,尽量让读者能照着复现。
图文对照保留 6 张和配置、流程、判断结果有关的图片,方便快速定位正文重点。
持续校对工具、模型和命令变化较快,后续优先修正入口、参数和风险提醒。

阅读路线

先按这条路线读

先抓住主线,再回到代码、配置和图文细节,读起来会更稳。

图文要点

先看本文图文节点

按图先建立主线,再跳回正文核对步骤、配置和判断标准。

Transformer 架构图解查看大图
Transformer 架构图解

我理解 Transformer 的入口不是公式,而是“每个词该看谁”。Q、K、V 的名字很抽象,但它们合起来解决的是同一个问题:当前这个位置生成或理解时,应该把注意力放到哪些上下文上。

这里不用急着背公式。先拿一句话做实验:比如“苹果发布了新手机,它的价格上涨了”,问自己“它”应该关注前面的哪个词。把这种关系画出来,再看多头注意力,就会自然很多。

注意力先看谁查看大图
注意力先看谁

在上一篇文章中,我们讨论了自然语言处理的基础知识,这为我们理解转化器架构奠定了基础。现在,我们将深入探索转化器(Transformer)模型,这是现代自然语言处理技术的核心。

什么是转化器(Transformer)?

转化器架构由谷歌在2017年提出的,主要用于处理序列数据,尤其是自然语言。这种架构的提出标志着序列到序列学习(S2S)的一个新纪元。相较于传统的循环神经网络(RNN)和长短时记忆网络(LSTM),转化器具有更强的并行处理能力和更好的长距离依赖建模能力。

Transformer架构判断卡查看大图
Transformer架构判断卡

理解 Transformer 时,先看 token 如何互相参考,再看多头注意力、前馈层和位置编码如何共同形成上下文表示。

转化器架构主要由两个部分组成:编码器解码器。在许多应用中,特别是机器翻译中,编码器处理输入序列,解码器生成输出序列。

编码器和解码器

转化器的编码器由多个相同的层叠加而成。每个编码器层包括两个子层:

  1. 多头自注意力机制 (Multi-head Self-Attention)
  2. 前馈神经网络 (Feed-Forward Neural Network)

解码器的结构与编码器相似,但有一个额外的子层,其作用是利用编码器的输出生成目标序列。解码器层的结构如下:

  1. Masked Multi-head Self-Attention:通过掩蔽机制防止模型查看未来标记。
  2. 多头自注意力机制:使用编码器的输出。
  3. 前馈神经网络

自注意力机制

自注意力机制是转化器中的核心概念。它允许模型在处理输入的某一个部分时,考虑输入的所有其他部分。

设定一个输入序列 X=[x1,x2,...,xn]X = [x_1, x_2, ..., x_n],在自注意力机制中,每个输入 xix_i 的表示可以通过以下步骤计算:

  1. 计算查询(Q)键(K)值(V)Q=WQXQ = W_Q \cdot X K=WKXK = W_K \cdot X V=WVXV = W_V \cdot X

  • 计算注意力权重

    Attention(Q,K,V)=softmax(QKTdk)V\text{Attention}(Q, K, V) = \text{softmax}\left(\frac{Q K^T}{\sqrt{d_k}}\right) V

    其中,dkd_k 是键向量的维度,用于缩放,以防止在计算 softmax 时数值过大。

  • 合并多头注意力: 为了让模型学习到不同的关注点,使用多个注意力头,公式为:

    MultiHead(Q,K,V)=Concat(head1,,headh)WO\text{MultiHead}(Q, K, V) = \text{Concat}(\text{head}_1, \ldots, \text{head}_h) W_O
  • 编码器结构

    编码器由多个相同的层叠加而成,每層包含上述提到的自注意力和前馈神经网络。每个子层后连接一个残差连接和层归一化(Layer Normalization):

    Output=LayerNorm(X+Sublayer(X))\text{Output} = \text{LayerNorm}(X + \text{Sublayer}(X))

    在这里,Sublayer表示自注意力或前馈神经网络。

    解码器结构

    与编码器相似,解码器也是由多个层组成。每个解码器层包含三个子层,并在最后连接了残差连接和层归一化。解码器通过使用编码器的输出及其自身的输入生成下一个字词。

    使用案例

    让我们分析一个简单的例子——机器翻译。

    ChatGPT 原理阅读地图卡查看大图
    ChatGPT 原理阅读地图卡

    《ChatGPT原理:转化器(Transformer)架构》可以按“场景、概念、动作、结果”来读。先把这四件事对齐,再回到正文里的参数、代码或流程。

    假设我们希望将一句英语翻译成法语。我们会将英语句子输入模型,在编码器中处理后,生成一个上下文表示。然后,解码器通过生成法语单词一步步构建翻译。这个过程会持续进行,直到遇到特殊的“结束”标记。

    Python 示例代码

    下面是一个简化的示例,展示如何使用TensorFlow构建一个简单的转化器模型。

    import tensorflow as tf
    from tensorflow.keras import layers
    
    # 定义编码器
    def create_encoder(input_shape, num_heads, ff_dim):
        inputs = tf.keras.Input(shape=input_shape)
        
        # 自注意力层
        attention = layers.MultiHeadAttention(num_heads=num_heads, key_dim=ff_dim)(inputs, inputs)
        attention = layers.LayerNormalization(epsilon=1e-6)(attention + inputs)
        
        # 前馈网络
        ff = layers.Dense(ff_dim, activation='relu')(attention)
        outputs = layers.Dense(input_shape[-1])(ff)
        
        return tf.keras.Model(inputs, outputs)
    
    # 定义解码器
    def create_decoder(input_shape, num_heads, ff_dim):
        inputs = tf.keras.Input(shape=input_shape)
        
        # 自注意力层
        attention1 = layers.MultiHeadAttention(num_heads=num_heads, key_dim=ff_dim)(inputs, inputs)
        attention1 = layers.LayerNormalization(epsilon=1e-6)(attention1 + inputs)
        
        # 与编码器输出的注意力层
        attention2 = layers.MultiHeadAttention(num_heads=num_heads, key_dim=ff_dim)(attention1, encoded_output)
        attention2 = layers.LayerNormalization(epsilon=1e-6)(attention2 + attention1)
        
        # 前馈网络
        ff = layers.Dense(ff_dim, activation='relu')(attention2)
        outputs = layers.Dense(input_shape[-1])(ff)
        
        return tf.keras.Model(inputs, outputs)
    
    # 实例化模型
    encoder = create_encoder((None, 256), 8, 512)
    decoder = create_decoder((None, 256), 8, 512)
    
    ChatGPT原理:转化器(Transformer)架构应用复盘卡查看大图
    ChatGPT原理:转化器(Transformer)架构应用复盘卡

    学完《ChatGPT原理:转化器(Transformer)架构》后,不妨换一个自己的场景试一次,重点观察输入、处理和输出是否能对应起来。

    ChatGPT原理:转化器(Transformer)架构应用检查卡查看大图
    ChatGPT原理:转化器(Transformer)架构应用检查卡

    如果想把《ChatGPT原理:转化器(Transformer)架构》用到自己的任务里,可以先缩小场景,只验证一个最关键的判断点。

    总结

    转化器架构的引入极大地推动了自然语言处理的进步。通过使用自注意力机制以及编码器-解码器的结构,模型能够更好地理解和生成语言。在下一篇文章中,我们将深入探讨如何获取训练数据,为模型训练做好准备。

    通过本篇教程,相信您对转化器(Transformer)架构有了一个清晰的认识,并且了解了其在自然语言处理中的重要性。接下来,我们将继续探索模型训练的数据获取策略,帮助您全方位掌握这项技术。

    继续阅读

    从这篇继续找到相关教程

    AI 教程总索引

    常见问题

    读前先确认这三点

    ChatGPT原理:转化器(Transformer)架构适合谁读?

    这是 ChatGPT 原理入门 系列第 6 / 18 篇,适合正在学习ChatGPT 原理入门,并且需要把概念落到操作步骤或判断标准里的读者。

    读这篇ChatGPT 原理入门教程要多久?

    按中文技术文章阅读速度估算,通读大约 5 分钟;如果要跟着复现,建议把命令、配置和结果检查分开做。

    这篇文章里的图文节点怎么用?

    正文里有 6 个图文节点,可以先用它们抓住流程、配置和判断点,再回到对应段落细读。

    分享文章

    转发到常用平台

    微信/朋友圈可先复制链接

    相关教程

    AI 教程总索引

    继续阅读

    继续找到相关 AI 教程

    返回栏目

    Reader Messages

    读者留言

    有问题、补充资料或实测结果,可以直接留下。这里不需要登录。

    最多 800 字

    为了防刷,每条留言会做长度、链接数量和提交频率限制。

    0/800

    留言列表

    0
    正在加载留言...