又有人将Transformer可视化了,可交互、有源码

文摘   2024-08-15 10:32   辽宁  
【LLM】终于有人将大模型可视化了
为什么说“又”呢?因为前面已经分享过一个可视化工具了,与那个工具相比,今天分享的Transformer Explainer更直观交互性更强。

在线地址:https://poloclub.github.io/transformer-explainer/
源码:https://github.com/poloclub/transformer-explainer
论文:https://arxiv.org/pdf/2408.04619

为什么人们热衷于可视化Transformer?
一是因为它太重要了,现如今几乎所有的大模型都是以Transformer为基础,而且不光是在NLP领域,在CV中也开始崭露头角。
二是因为它的结构比较复杂,传统的模型构成比较单一,多由重复的卷积层或者MLP层构成,而Transformer则是由Encoder或者Decoder组成,每个der又由多个Block级联而成,每个Block又包括Embedding、自注意力、多头注意力、交叉注意力层归一化残差链接MLP或者MoE层。
通过可视化技术不仅可以清晰了解模型构成,还可以直观可视化数据流经过程,这对于理解Transformer至关重要。

直观性
直观性不仅体现在能够直观描述模型整体架构,还要能把模型中的细节都体现出来,例如,鼠标悬停后都会显示该节点的数据维度信息。
Transformer主要由三部分构成:
1.Embedding
2.Transformer Block
    Attention Mechanism
    MLP (Multilayer Perceptron) Layer
3.Output Probabilities

1.Embedding

鼠标点击Embedding就可展示详细过程。

对于输入“Data visualization empowers users to”,Embedding层经过(1) Tokenization, (2) Token Embedding, (3) Positional Encoding生成最终的(4) Final Embedding。

2.Transformer Block

Multi-Head Self-Attention
Step 1: Query, Key, and Value Matrices
鼠标悬停到蓝色区域弹出动画展示QKV计算过程。

Step 2: Masked Self-Attention

鼠标点击紫色圆点弹出动画展示自注意力分数矩阵计算过程。

Step 3: Output


MLP: Multi-Layer Perceptron

MLP针对注意力层输出的特征进行非线性变换,进一步丰富和加工特征表示,以增强模型的表达能力。

3.Output Probabilities

输出层会为词表中的每一个token赋一个概率值。
交互性
除了上面鼠标交互外,还可以输入自己的文本,也可以更改temperature值。

Transformer Explainer是如何实现的?
Transformer Explainer在浏览器中直接运行一个实时的GPT-2(小型)模型。该模型源自Andrej Karpathy的nanoGPT项目的PyTorch实现,并已转换为ONNX Runtime,以实现无缝的浏览器内执行。界面使用JavaScript构建,前端框架为Svelte,动态可视化由D3.js创建。数值会根据用户输入实时更新。
Transformer Explainer是谁开发的?
Transformer Explainer由佐治亚理工学院的Aeree Cho、Grace C. Kim、Alexander Karpekov、Alec Helbling、Jay Wang、Seongmin Lee、Benjamin Hoover和Polo Chau开发。

人工智能大讲堂
专注人工智能数学原理和应用
 最新文章