Py学习  »  机器学习算法

彻底搞懂深度学习-Transformer架构(ViT + DiT)(动图讲解)

架构师带你玩转AI • 8 月前 • 227 次点击  

想象你在欣赏一首交响乐。你不会只关注某一个乐器的声音,而是会感受整体的和谐——小提琴的悠扬、大提琴的深沉、长笛的清脆,它们相互呼应,共同编织出动人的旋律。

Transformer就是深度学习中的"指挥家",它让每个"音符"(token)都能倾听并回应序列中所有其他"音符"的声音,创造出前所未有的表达能力。
从自然语言处理起步,Transformer已经征服了计算机视觉(ViT)和图像生成(DiT)领域,成为AI时代最重要的架构创新。
Demystifying Transformers Architecture in Machine Learning

一、Transformer:AI的通用语言

什么是Transformer的核心创新?

传统的神经网络就像流水线工人,只能按顺序逐个处理信息。而Transformer更像是一个圆桌会议——每个位置的信息都能同时与所有其他位置"对话"。

这种"全连接式交流"就是自注意力机制(Self-Attention)的威力。

The need of Attention Mechanism - by Mayank Pratap Singh

(1)自注意力机制是如何工作的?

彻底搞懂深度学习-为什么自注意力如此重要?(动图讲解)

Transformer动画讲解 - 数据处理的四个阶段

Transformer动画讲解 - 注意力机制

想象你在读这句话:"小明把苹果给了小红,她很开心。"

  • 当处理"她"这个词时,人脑会自动回顾前文
  • 发现"她"指代的是"小红",而不是"小明"或"苹果"
  • 这种"回头看"的能力就是注意力

自注意力用数学语言描述这个过程

输入句子:[小明, 把, 苹果, 给了, 小红, ,, 她, 很, 开心]当处理"她"时:Query(查询):"她"想知道自己指代谁Key(键值):每个词都提供自己的"身份标识"  Value(数值):每个词的具体含义信息注意力计算:"她" 对 "小明" 的注意力:0.1"她" 对 "小红" 的注意力:0.8  "她" 对 "苹果" 的注意力:0.05...最终理解:她 = 0.8×小红 + 0.1×小明 + 0.05×苹果 + ...

Introduction of Self-Attention Layer in Transformer | by Neil Wu | LSC PSD  | Medium

(2)多头注意力:为什么要"分身术"?

一文搞懂多头注意力(PyTorch)

单个注意力头就像用一只眼睛看世界,多头注意力让AI长出"复眼":

  • 第1个头关注语法关系:"她"和"小红"在语法上呼应
  • 第2个头关注语义关系:"开心"的情感主体是谁
  • 第3个头关注长距离依赖:"她"可能指代很久之前提到的人物

每个头独立工作,最后汇总结果,就像多个专家从不同角度分析同一个问题。

The need of Attention Mechanism - by Mayank Pratap Singh

(3)位置编码:给每个位置一个"门牌号"

彻底搞懂深度学习-正余弦位置编码(动图讲解)

彻底搞懂深度学习-RoPE旋转位置编码(动图讲解)

彻底搞懂深度学习-多头注意力和位置编码(动图讲解)

Transformer的并行处理能力很强,但也带来一个问题——它天生不知道词语的顺序。

位置编码就像给每个座位标号:

原始输入:[我, 爱, 北京, 天安门]加上位置:[(我,位置1), (爱,位置2), (北京,位置3), (天安门,位置4)]这样AI就知道:"我爱北京""北京爱我"是不同的意思- 词语的先后顺序很重要

Transformers Positional Encodings Explained | by João Lages | Towards AI

(4)Feed-Forward网络:深度思考的过程

Transformer动画讲解 - 多层感知机

注意力机制负责"信息收集",FFN负责"深度加工":

  • 第一层:线性变换,扩展维度,让信息更丰富
  • 激活函数:RELU,引入非线性,让模型能学习复杂模式
  • 第二层:线性变换,压缩维度,提炼关键信息

这就像人的思维过程:先发散思考(扩展),再收敛总结(压缩)。

Transformers — Let's Dive Deeeep! | by Sukanya Bag | Analytics Vidhya |  Medium

二、ViT:图像的"文字化"革命

为什么要把Transformer用于图像(Vision Transformer)?

神经网络算法 - 一文搞懂ViT(Vision Transformer)

传统CNN就像用放大镜看画,只能看到局部细节;而人眼看画时会"环顾整幅作品",这就是全局视野的价值。

ViT的创新在于:把图像当作"视觉语言"来处理。

(1)图像分块:化整为零的艺术

想象你要向朋友描述一幅画:

  • "画的左上角有一棵大树"
  • "中间有一个小女孩在奔跑"
  • "右下角是一片花海"

ViT做的事情类似——把整张图片切成小块(patch):

输入图像:224×224×3(宽×高×颜色通道)切分策略:每16×16像素为一块  结果:14×14 = 196个图像块每个块就像一个"视觉单词"1:[像素值矩阵] → 线性投影 → [768维向量]2:[像素值矩阵] → 线性投影 → [768维向量]  ...196:[像素值矩阵] → 线性投影 → [768维向量]

这样,一张图片就变成了196个"视觉单词"组成的"句子"。

(2)分类标记:给图像一个"总结者"

在所有图像块前面,ViT加入一个特殊的[CLS] token:

完整输入序列:[CLS] [patch1] [patch2] [patch3] ... [patch196]  ↑      ↑        ↑        ↑            ↑ 分类器  左上角   左上角+1  左上角+2     右下角

[CLS] token就像班长,负责"收集"和"总结"所有图像块的信息,最后输出分类结果。

Coding a Vision Transformer (almost) from scratch

(3)位置编码:告诉AI"哪块在哪里"

图像不像文字有天然的先后顺序,但有空间位置关系:

位置编码设计:1行:[pos_1_1] [pos_1_2] [pos_1_3] ... [pos_1_14]2行:[pos_2_1] [pos_2_2] [pos_2_3] ... [pos_2_14]...14行:[pos_14_1] [pos_14_2] [pos_14_3] ... [pos_14_14]这样AI就知道:- 相邻的块应该有相关性(比如都是同一个物体的一部分)- 距离很远的块可能属于不同物体

(4)ViT的注意力机制:全局感知的力量

当ViT看一只猫的图片时:

  • 头部的patch会注意到眼睛、鼻子、嘴巴的patch
  • 身体的patch会注意到腿部、尾巴的patch
  • 背景的patch会相互注意,但对猫的patch注意力较低
注意力权重示例(处理猫头部patch时):猫头部 → 猫眼睛:0.25(强相关)猫头部 → 猫身体:0.15(相关)猫头部 → 草地背景:0.02(弱相关)猫头部 → 天空背景:0.01(几乎无关)

CNN的哲学:"先看细节,再看整体"

  • 从边缘、纹理等低级特征开始
  • 逐层组合成复杂的高级特征
  • 感受野逐渐扩大,但受限于卷积核大小

ViT的哲学:"一开始就看全局"

  • 每个patch从一开始就能"看到"整张图
  • 通过注意力机制动态关注重要区域
  • 不受物理距离限制,能捕捉任意远的关系

三、DiT:生成艺术的新引擎

什么是扩散模型?为什么需要DiT(Diffusion Transformer)?

神经网络算法 - 一文搞懂DiT(Diffusion Transformer)

神经网络算法 - 一文搞懂扩散模型Diffusion Models

想象你是一位雕刻家,面前有一块完全随机的大理石。扩散模型就像是"逆向雕刻"——从噪声开始,逐步"去除"不需要的部分,最终雕琢出精美的艺术品。

传统的扩散模型使用UNet架构,就像用固定的雕刻工具。而DiT提出用Transformer作为"智能雕刻刀",能够根据需要动态调整"雕刻策略"。

扩散过程:从艺术品到噪声,再从噪声到艺术品

前向过程(加噪):

原始图像:一只可爱的小猫第1步:添加微量噪声 → 稍微模糊的小猫第100步:添加更多噪声 → 勉强能看出是猫第500步:添加大量噪声 → 完全的随机噪声第1000步:纯噪声 → 看不出任何物体

反向过程(去噪):

输入:纯噪声 + 条件信息("一只橘色的猫在花园里"1步:去除一点噪声 → 隐约有些形状100步:继续去噪 → 能看出是动物轮廓500步:更精细去噪 → 明显是一只猫1000步:最终输出 → 高清的橘色猫咪图片

DiT(Diffusion Transformer)架构是什么?

DiT架构:Transformer加持的智能去噪器

(1)DiT Block的核心设计:

Scalable Diffusion Models with Transformers

输入处理:噪声图像 → 切分patch → [patch1, patch2, ..., patch256]时间步 t → 时间编码 → [time_emb]  条件信息 → 文本编码 → [condition_emb]DiT Block结构:1. Layer Norm → 归一化处理2. Self-Attention → patch之间相互"对话"3. Cross-Attention → patch与条件信息"对话"  4. Feed-Forward → 深度信息处理5. Residual Connection → 保持信息流动

时间步条件注入:告诉AI"现在进行到哪一步了"

每个去噪步骤都需要不同的策略:

  • 早期步骤(t=1000→500):大刀阔斧去除粗糙噪声
  • 中期步骤(t=500→100):精雕细琢塑造形状
  • 晚期步骤(t=100→0):精工细作添加细节
时间步 t=800(早期) → 生成缩放参数 → 强调大尺度特征去噪时间步 t=200(中期) → 生成缩放参数 → 平衡各尺度特征时间步 t=50(晚期) → 生成缩放参数 → 强调细节特征完善

(2)多条件融合:让AI理解复杂需求

现代图像生成需要满足多种条件:

用户需求:"在日落时分的海滩上,一只金毛犬在追逐海浪"条件分解:- 场景条件:海滩、日落- 主体条件:金毛犬  - 动作条件:追逐、奔跑- 氛围条件:温暖、动感DiT处理:文本编码器 → [beach_emb, sunset_emb, golden_dog_emb, running_emb]Cross-Attention → 让每个patch都能参考这些条件Self-Attention → 让patches协调生成一致的画面

(3)DiT的注意力机制:跨模态的智能协调

当生成"海滩金毛犬"时,DiT内部发生的事情:

第1层注意力:建立基础关联- 天空patch关注"日落"条件- 地面patch关注"海滩"条件- 中央patch关注"金毛犬"条件第6层注意力:精细化协调- 狗的头部patch与身体patch协调- 海浪patch与狗的动作patch协调- 光影patch与日落氛围patch协调第12层注意力:最终统一- 所有patch协调生成风格统一的画面- 确保物理合理性(狗站在沙滩上,不是漂浮在空中)- 保持艺术美感(构图平衡,色彩和谐)
Sora's Diffusion Transformer (DiT) by Hand ✍️

Transformer架构的统一性让AI具备了前所未有的跨领域理解能力,其技术核心围绕"注意力即一切"的设计哲学展开。

从语言到视觉再到生成,Transformer的成功证明了统一架构的强大潜力。ViT将图像"语言化",让视觉理解获得了全局感知能力;DiT将生成过程"智能化",让图像创作具备了精确的条件控制能力。

这种统一建模的思路不仅简化了模型设计,更重要的是为多模态AI的发展奠定了坚实基础。当视觉、语言、生成任务都使用相同的架构语言时,它们之间的融合变得自然而高效。

从技术演进看,Transformer正在从"一种新架构"向"AI的通用语言"转变,统一建模已成为人工智能发展的重要趋势。在这个过程中,注意力机制不再只是一种技术手段,而是成为了AI理解和创造世界的基本方式。

日拱一卒,让大脑不断构建深度学习和大模型的神经网络连接。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/186824