当前位置: 首页 > news >正文

GPT-0: Attention+Transformer+可视化

本文介绍GPT组件: Attention+Transformer,及其可视化

原文 《Visualizing Attention in Transformer-Based Language Representation Models》, 2019

  • link:https://arxiv.org/pdf/1904.02679
  • code: https://github.com/jessevig/bertviz, 《Visualize Attention in NLP Models》

1.Attention原文

原文核心就1个公式和2个图

1.1 公式

在这里插入图片描述

1.2 多头注意力

图2展示attention的计算方法,即点积,输出标量,即注意力值(得分)

以及多头注意力的结构:
在这里插入图片描述

1.3 Transformer结构

图1以自编码器(auto-encoder)的方式展示Transformer结构。

左边是解码器(decoder),右边是编码器(encoder)。

在这里插入图片描述
当前大模型更多不用自编码器,仅用解码器部分(decoder-only)

另外Feed-Forward Network (FFN)通常是普通的全链接网络:线性层+激活函数

2.Attention可视化

层级学到的主要信息注意力特征
低层(1–4)表层语言特征:字形、位置、词序强位置依赖,捕捉局部顺序关系
中层(5–8)句法结构、词类依赖(POS patterns)出现明确句法或搭配规律,如介词↔宾语
高层(9–12)语义与实体层次规律关注跨词组或概念性关联(缩写、命名实体等)

2.1 图1-多头注意力可视化(GPT-2 Attention Head View)

Attention 可视化是解释大模型内部机制的关键手段。

图1展示GPT2的 多头注意力(attention heads)在文本处理时“注意力”关系的内部工作方式

图1输入的文本是:“The quick, brown fox jumps over the lazy”,模型还未看到“dog”这个词(它只看到到 lazy)。

图1内容含义
左图第四层橘色head 注意力分布显示此 head 学到的语法/语义依赖
中图第一层蓝色head 注意力分布显示此 head 学到的语法/语义依赖
右图中图同一个 head, 但选定“lazy”词展示形容词-名词修饰关系
  • 每一个不同颜色小格区分不同的 attention head。

  • 线条粗细表示注意力强度(score 大→粗/深)。

  • 左侧(横轴)表示 token在看谁(query),右侧 (纵轴)是关注的目标词(key)。
    在这里插入图片描述
    总结

    • 每个 head 学习一种“关系模式”或“依赖模式”
    • 有的 head 专注于 句法结构(如主语-动词配对);
    • 有的 head 专注于 语义一致性(如形容词-名词);
    • 有的 head 专注于 上下文衔接(如句首与句尾联系)。

2.1.1 左图(Left Figure)

第4层 橘色 attention head 注意力可视化。

例如,第 5 个 token(例如 “jumps”)时,模型对 “fox” 有很高的注意力权重,就说明这个 head 认为“jumps”应该参考“fox”的信息。

2.1.2 中图(Center Figure)

第一层蓝色 attention head 的注意力可视化。

例如:

  • “fox” → “brown” 可能线条较粗,表示该 head 把“fox”的意义与“brown”联系起来。
  • “lazy” → “the” 可能线条较细或无连接。

2.1.3 右图(Right Figure)

与中图相同的层 / head,但固定选中了 token “lazy”。

展示该 head 在处理“lazy”这个词时,注意力主要集中在什么地方。

可以观察到,“lazy”这个词会强烈地指向 “the”(定冠词),表明模型学会了 形容词-名词短语(adjective phrase) 的语法结构规律。
即“形容词通常修饰紧随其后的名词”。

不同层的 heads 学到不同层次的信息:

  • 底层 head 更多是局部依赖(如词法、短距离语法);
  • 高层 head 更多是全局语义(如句意、上下文衔接)。
  • 每个 head 形成了特定的功能化角色(functional specialization);

2.2 图2 BERT 的 Attention Head View

输入:Sentence A: “The cat sat on the mat.” ;Sentence B: “The cat lay on the rug.”

BERT 的encoder-only 可以同时看前后文(双向 attention),处理句子对任务。

部分内容说明
左图第0层蓝色 head表现 句内 attention pattern:比如“cat”→“the”,或“sat”→“cat”,代表句法结构内部关系。
中图第十层蓝色head表现 句间 attention pattern:部分词(如“cat”)在 Sentence A 与 Sentence B 中建立语义对齐关系,表示模型识别出两个句子的语义相似性。
右图相同的层/head,但开启 “Sentence A → Sentence B filter”只显示 Sentence A 中词对 Sentence B 中词的注意力连接,清晰地看到跨句对齐关系(例如“cat”↔“cat”,“mat”↔“rug”)。

在这里插入图片描述
总结

  • Head 的“独立性”:各 head 参数独立,因此能学习互补模式(句法、词汇、对齐、语义等)。
  • 功能特化:有的 head 学到 punctuation、named entity、subject-verb pair 等特定语言规律。
对比项GPT-2 (Fig. 1)BERT (Fig. 2)
架构Decoder-onlyEncoder-only
Attention方向单向(仅看前文)双向(看前后文)
输入单句文本句对输入
Head功能顺序预测、局部依赖句内关系、句间语义对齐
可视化过滤可按词过滤可按词或句对过滤

2.3 图3 词汇模式-lexical pattern

“Lexical” 在语言学中指与具体单词(word forms)及其用法相关的语言现象。

不同于 “syntactic pattern(句法模式)” 那种抽象的结构规则(如主谓宾顺序),

lexical pattern 关注:

  • 词与词之间的具体搭配;
  • 某类词(如介词、缩略词、专有名词)的行为规律;
  • 词形或词汇层面的相似性。

Transformer 的注意力机制不只是机械地关注相邻词,而是能自动学习到:

  • 某些词是列表的一部分;
  • 某些词有语义配对;
  • 某些符号(如括号、引号)标记结构边界。

Figure 3 通过选取第 3、8、10 层的注意力头,展示了 GPT-2 如何在不同网络深度逐步从局部词汇依附 → 结构化列表关系 → 语义映射。
这些层级差异正是“lexical patterns”跨层演化的体现,也说明 Transformer 内部具备某种语言结构的自组织分化。

具体层数/Head的注意力如下:

在这里插入图片描述

  • 空注意力

右图中,常看到许多线指向句子第一个 token。 即模型在没有强注意力目标时,会默认分配一点权重给起始 token(即“空注意力”)。

因此,指向第一个词的注意力常被视为 “null attention”,不代表真实语言依赖。

  • 总结
层号模式类型说明所处语言层次
左图Layer 8List items pattern(列表项模式)模型在中层学会识别文本中带有序列结构的规律(如分号或编号项),表明这一层的 head 能抓到“局部语法+格式”特征。中层结构级特征
中图Layer 3Prepositions(介词模式)第 3 层相对较浅,注意力集中于局部词组(介词→宾语),属于典型的词类依附关系。低层词汇句法特征
右图Layer 10Acronyms(缩略词模式)第 10 层较高,模型注意力跨越较大范围,将“NASA”与“National Aeronautics and Space Administration”等词关联,代表了语义层或命名层级的映射。高层语义特征

2.4 图4 指代消解 (coreference resolution)

在第五层, 指代消解 对 she和he在性别,名字,职业的注意力
在这里插入图片描述

2.5 图5 概览层与头的分布

输入 The quick, brown fox jumps over the lazy

这里包括0-5层的layers和heads(还有6-11的layers与heads)

  • 行(rows) → 不同的 Transformer 层(layer)
  • 列(columns) → 每层中的不同 注意力头(head)
  • 每个格子(thumbnail) → 一个小型的注意力模式图,显示该 head 的总体“形状”或“倾向”
    在这里插入图片描述
  • 初始层(Layer 0–2)
    主要是 位置驱动(position-based)模式
    • Layer 0, Head 1:注意力集中在同一个 token(自我注意 self token)
    • Layer 2, Head 2:每个词主要关注前一个词(previous token)

这说明潜层的注意力更偏向 句法结构与序列依赖(syntax/position patterns),

例如语言的顺序规则(如“形容词→名词”、“主语→谓语”)。

  • 中层(Layer 3-5)
    模式更多样化、语义化(虽然部分层在图中未展示),attention heads 开始关注:

    • 主谓搭配(subject–verb)
    • 语义相似词
    • 段落主语、上下文主干等更高级语义关系
      这些往往对应模型理解上下文与语义一致性的能力。
  • 现象提示:

    1. 某些注意力头可能是在特定语境下才激活(例如需要特定语义结构时)。
    2. 当输入文本没有触发该语义模式时,head 就“闲置”,其注意力退化成“全指向第一个 token”。

因此作者提出,或许模型可以显式设计一个 “null token” 或 “padding attention sink”,专门接收这种“空注意力(null attention)”。
这样做的潜在好处:

  • 提高模型可解释性(区分真实语义关注 vs 空关注)
  • 结构更清晰(减少混淆第一个词与空注意力)
    不过这是个可解释性优化的启示,不一定带来性能收益。

2.6 图6 神经元(Neuron View )

这是Transformer 中“Query–Key–Dot Product–Softmax”的全过程。

GPT-2 的多头注意力机制参数如下:

参数含义维度(GPT-2 small)备注
( d_{\text{model}} )Transformer 层的隐藏维度768每个 token 的向量表示长度
( h )注意力头数量12多头并行计算
( d_k = d_v )每个 head 的维度64( 768 / 12 = 64 )

在每一层的 self-attention 中:

  • Query, Key, Value 都是 [sequence_len,64](针对单个 head)
  • 多个 head 拼接后回到 [sequence_len,768]

Neuron View 展示第8层第6Head 的 q/k/v(每个 64 维),在一个 attention head 内部的细节。

选中一个 token (这里是最后一个标点)的 Query (64) → 与每个 token 的 Key (64) 逐元素相乘 → 求点积 → Softmax 得到注意力分布:
在这里插入图片描述

蓝=正值,橙=负值;代表该 token 的“关注特征”方向 |

  • 数据视角
阶段张量维度说明
输入嵌入 ( X )[8, 768]每个词是一个 768 维向量
线性映射到 Q, K, V[8, 12, 64]每个 head 拿到自己的一份 64 维表示
选中一个 head[8, 64]只看单个 head
Query = 当前 token[64]选中的 token
Key = 所有 token[8, 64]所有 token 的 keys
q · kᵗ → scores[8]每个 token 的注意力打分
Softmax(scores)[8]归一化权重
加权求和 ( \sum \alpha_i v_i )[64]输出该 head 的结果向量
  • 计算视角
视图列数学表达式维度含义
① Query q( q_i = x_i W_Q )[64]当前选中 token(例如 “,”)的 query 向量
② Key k( k_j = x_j W_K )[64] per token序列中每个 token 的 key 向量
③ q ⊙ kelement-wise product[64]q 与 k 的逐元素乘积(每个 neuron 的匹配贡献)
④ q·k( \sum_{m=1}^{64} q_m k_m )scalar per tokenq ⊙ k 的求和,得到未缩放打分
⑤ Softmax( \text{softmax}\big(\frac{q·k}{\sqrt{64}}\big) )[sequence_len]归一化注意力权重(最终各 token 被关注程度-总注意力打分)
⑥ (隐含的) Value v( v_j = x_j W_V )[64] per token注意力加权后用于生成输出的值向量(在图中未展示)

2.7 图7 距离与注意力

图7中蓝色箭头指出一些神经元的注意力值(以last token 为例):
在这里插入图片描述

规律如下:

  • 离last token 越远,q⊙k 的值越低;在可视化中表现为:颜色逐渐变深橙或浅蓝;说明这个头编码了“距离衰减”的机制。

  • 所有的 query 向量几乎一样(除了第一个 token)。说明这个头的注意力对 输入文本内容(词义)几乎不敏感。

  • 这个头的计算分布值,体现出其不关心单词意义,它对各个token的注意力值仅关注其相对位置。

Ref

  • 《attention is all your need》 https://arxiv.org/pdf/1706.03762
http://www.dtcms.com/a/549084.html

相关文章:

  • 告别“人眼扫描”:EasyGBS智能搜索功能助力重塑海量视频监控管理效率
  • 【ubuntu】ubuntu系统如何快速删除当前用户的配置
  • dz地方门户网站制作南昌seo招聘信息
  • 灵犀科技网站开发湖南网站建设的公司排名
  • 沈阳装修公司网站建设做网站只用前端知识可以吗
  • ELK es+logstash
  • Java 大视界 -- Java 大数据在智能医疗远程康复数据管理与康复方案个性化定制实战(430)
  • 【C#】XtraMessageBox(DevExpress)与MessageBox(WinForms 标准库)的区别
  • 石家庄物流网站建设北京公司网站建设价格
  • 网络编程入门
  • 每日一个C语言知识:C 错误处理
  • 基础建设的网站有哪些内容网页制作基础教程费
  • 建站工具哪个好用深圳网站建设定制平台
  • 2048游戏笔记3 游戏开始与结束 cocos3.8.7
  • 【AI WorkFow】n8n 源码分析-核心结构体设计思考(六)
  • 网站诊断内容工程建设教育培训
  • Opencv(四):自适应二值化
  • GitHub 热榜项目 - 日榜(2025-10-30)
  • 网络:4.应用层自定义协议与序列化
  • Word崩溃打不开?实测三款Word文档修复工具!
  • 哪个网站做签约插画师好网站域名过期后续费多长时间生效
  • 《R for Data Science (2e)》免费中文翻译 (第11章) --- Communication(2)
  • 扩展阅读:CSV格式的目标检测(Object Detection)标注文件示例
  • 行政单位门户网站建设规定久久建筑网20g三维图集下载
  • Kotlin Multiplatform Mobile(KMM):实现 iOS 与 Android 共享业务逻辑
  • 利用Selenium和PhantomJS提升网页内容抓取与分析的效率
  • QML学习笔记(四十七)QML与C++交互:上下文对象
  • 农业物联网实践:基于 ESP8266 与土壤传感器的智能灌溉系统开发与部署
  • 【Windows 10 企业版 LSTC】下安装【英特尔® 显卡控制中心】
  • Linux常用操作命令详解