又有人将Transformer可视化了,可交互、有源码
文摘
2024-08-15 10:32
辽宁
为什么说“又”呢?因为前面已经分享过一个可视化工具了,与那个工具相比,今天分享的Transformer Explainer更直观、交互性更强。在线地址:https://poloclub.github.io/transformer-explainer/源码:https://github.com/poloclub/transformer-explainer论文:https://arxiv.org/pdf/2408.04619一是因为它太重要了,现如今几乎所有的大模型都是以Transformer为基础,而且不光是在NLP领域,在CV中也开始崭露头角。二是因为它的结构比较复杂,传统的模型构成比较单一,多由重复的卷积层或者MLP层构成,而Transformer则是由Encoder或者Decoder组成,每个der又由多个Block级联而成,每个Block又包括Embedding、自注意力、多头注意力、交叉注意力、层归一化、残差链接、MLP或者MoE层。通过可视化技术不仅可以清晰了解模型构成,还可以直观可视化数据流经过程,这对于理解Transformer至关重要。直观性不仅体现在能够直观描述模型整体架构,还要能把模型中的细节都体现出来,例如,鼠标悬停后都会显示该节点的数据维度信息。 MLP (Multilayer Perceptron) Layer1.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
Step 2: Masked Self-Attention
鼠标点击紫色圆点弹出动画展示自注意力分数矩阵计算过程。Step 3: Output
MLP: Multi-Layer Perceptron
MLP针对注意力层输出的特征进行非线性变换,进一步丰富和加工特征表示,以增强模型的表达能力。3.Output Probabilities
除了上面鼠标交互外,还可以输入自己的文本,也可以更改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开发。