想象你是一家电影公司的老板,手下有位神奇的“梦中导演”。只需给他一句话剧本,比如“一只橘猫在雨夜的东京街头散步”,他就能在脑海中拍出一段真实、连贯、多机位切换的电影片段。这位导演从不实景拍摄,他的全部创作都发生在“梦境片场”里——一个由数字像素构成的世界。这位导演就是Sora,支撑他做梦的核心技术,正是DiT(Diffusion Transformer,扩散Transformer)视频生成架构。 Sora的片场里有两根顶梁柱。第一位是“分镜师”——Transformer模型,他负责把剧本拆成一个个“镜头单元”(时空Patch),并洞察单元之间微妙的时空关系:猫的尾巴先抬起来,然后爪子落下,镜头随之平移。第二位是“画师”——扩散模型,他拿到一张涂满灰色噪点的空白画布,按照制片主任(噪声调度器)安排的计划,一遍遍擦去噪点、勾勒轮廓、填补细节,几十轮迭代后,一幅幅连贯的画面便从混沌中浮现。 本文将带你零公式压力地走进这位梦中导演的大脑:先看它如何工作,再看其内部结构,随后拆解关键算法、性能优化、当前局限,以及它在影视、游戏和机器人领域的未来图景。

岗位关联

对AI从业者而言,理解Sora DiT架构是打开多模态大模型前沿的钥匙——它教会你如何让模型“想象”连续世界,这是从“会对话”迈向“会理解物理世界”的关键一步。

目录
  1. 可视化演示
  2. 视频生成原理
  3. DiT架构核心
  4. 生成流程
  5. 关键算法
  6. 性能优化
  7. 挑战局限
  8. 应用前景
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

展示DiT视频生成架构三阶段流程(VAE编码→Transformer去噪→VAE解码)、扩散前向加噪与反向去噪过程、U-Net局部卷积与DiT全局注意力的对比。

本节配有交互动效(进入视口后自动加载,约 3KB)。

DiT架构流程 视频经VAE编码到隐空间,Patchify分块后送入DiT DiT使用Transformer全局注意力+AdaLN-Zero调制去噪 去噪后经VAE解码重建视频,支持文生视频生成 Video -> VAE -> Patchify -> DiT(AdaLN) -> VAE -> Video DiT用Transformer替代U-Net实现全局时空建模。

视频生成原理

梦中导演从不凭空变出电影。他的创作方式,像极了一位另类的画家:先在洁白的画布上泼满一大桶毫无章法的灰色颜料,然后拿起刮刀,一层一层刮去表面的混乱,让底下藏着的真实图案慢慢浮出水面。导演说,只有这样诞生的画面,才带着“混沌孕育秩序”的奇妙自然感。

这种“先弄乱、再复原”的思路,正是扩散模型的核心哲学。扩散模型有两套流程:前向过程把真实视频一步步加噪,直到变成纯噪声;反向过程则反过来,让神经网络学习如何一步步去噪。Sora在训练时,把大量真实视频先“加噪打乱”,再让画师(DiT网络)练习“猜出每一层涂掉了什么”,猜得越准,最终生成时还原出的视频就越真实。

要让去噪过程听从剧本指挥,Sora在训练中加入了“文本条件”。通常把一句话剧本通过编码器变成向量,与视频的时间步信息一起喂给DiT网络,相当于告诉画师“现在该画一只橘猫的胡须,而不是背景里的路灯”。此外,Sora不是逐帧独立生成,而是把一整段视频的多个画面同时卷进加噪与去噪流程,保证帧与帧之间的动作连贯。整场训练的“成绩单”,就是下面的损失函数:

回到片场:画师每“猜一次噪声”,都是在为画面刮去一层混乱;损失函数这场随堂测验,则确保他刮掉的每一刀都恰好是真正的噪声层,而非把画布刮破。终于,当所有噪点被移除,一段由文本剧本驱动的连贯视频,便从混沌中浮现——这正是Sora“做梦”的本质。

L=Et,ϵ[∥ϵ−ϵθ(xt,t,c)∥2]\mathcal{L} = \mathbb{E}_{t, \epsilon}\left[\left\| \epsilon - \epsilon_\theta(\mathbf{x}_t, t, \mathbf{c}) \right\|^2\right]
这个公式衡量画师“猜噪声”的准确度:误差越小,生成的视频越清晰、越贴合剧本。
  1. 期望与采样\(\mathbb{E}_{t, \epsilon}\) 表示在所有时间步 \(t\) 和所有随机噪声 \(\epsilon\) 上取平均,相当于导演让画师在片场随机挑选各种“作画阶段”反复练习。
    Et,ϵ\mathbb{E}_{t, \epsilon}
  2. 带噪视频\(\mathbf{x}_t\) 是第 \(t\) 时刻加了噪声的视频画面,噪声多寡由制片主任的调度计划决定。
    xt\mathbf{x}_t
  3. 噪声预测网络\(\epsilon_\theta(\mathbf{x}_t, t, \mathbf{c})\) 是DiT网络根据带噪画面、时间步与文本条件,预测出的“这层颜料的噪点分布”。
    ϵθ(xt,t,c)\epsilon_\theta(\mathbf{x}_t, t, \mathbf{c})
  4. MSE误差\(\left\| \epsilon - \epsilon_\theta \right\|^2\) 计算真实噪点与预测噪点的平方距离,距离越小说明画师刮得越准。
    ∥ϵ−ϵθ(xt,t,c)∥2\left\| \epsilon - \epsilon_\theta(\mathbf{x}_t, t, \mathbf{c}) \right\|^2

DiT架构核心

片场里最忙碌的角色是分镜师。导演一句“雨夜追车”,他要立刻把剧本拆成上百个镜头:车轮溅水的特写、后视镜里街灯的拖影、镜头跟随车辆移动的弧线……每一个镜头单元他都记在小本上,并努力理解“这个镜头和下一个镜头之间,是谁在动、往哪动、多快动”。这位分镜师,就是Transformer。

Transformer不是普通神经网络:它把输入切分成一个个token(词元),并让每个token通过注意力机制“观察”所有其他token。Sora的DiT采用同样的逻辑,只不过它处理的不是文字token,而是“时空Patch”。

视频本质上是一串连续的帧,每帧是 \(H \times W\) 像素的画面。DiT先把每帧切成小块(比如16×16像素),再把连续几帧中空间位置相近的小块沿时间轴合并,形成一个既含空间信息、又含时间信息的“时空Patch”。所有Patch变成长度为 \(N\) 的序列进入Transformer,自注意力让每个Patch都能“看向”其他所有Patch——左边的猫胡子能注意到右边爪子的运动,第3帧的窗户反光能关联第5帧的镜头移动。文本条件与时间步信息则通过“条件注入”嵌入每一层,让注意力计算时刻记得剧本要求。其数学核心是:

分镜师的“小本”上,每个镜头单元都在注意力网络中记录着与其他所有镜头的关联度:谁在推动剧情(高权重)、谁是背景板(低权重)。正是这种全局视野,让Sora生成的视频不只是局部逼真,而是整场戏浑然一体。

Attention(Q,K,V)=softmax(QK⊤dk)V\text{Attention}(\mathbf{Q}, \mathbf{K}, \mathbf{V}) = \text{softmax}\left(\frac{\mathbf{Q}\mathbf{K}^\top}{\sqrt{d_k}}\right)\mathbf{V}
注意力机制就是分镜师的“关系图”:每两个镜头单元之间都有一条关联线,权重越大,牵动越强。
  1. 查询矩阵 \(\mathbf{Q}\)每个时空Patch向其他Patch发出的提问——“我该关注什么才有助剧情推进?”
    Q\mathbf{Q}
  2. 键矩阵 \(\mathbf{K}\)每个Patch展示的“名片”——“我是谁,我携带什么时空信息?”
    K⊤\mathbf{K}^\top
  3. 缩放点积与归一化\(\frac{\mathbf{Q}\mathbf{K}^\top}{\sqrt{d_k}}\) 计算两两匹配度并除以维度平方根防止数值失控,再经 \(\text{softmax}\) 变成总和为1的注意力权重。
    QK⊤dk\frac{\mathbf{Q}\mathbf{K}^\top}{\sqrt{d_k}}
  4. 加权聚合 \(\mathbf{V}\)用权重把各Patch的值向量混合,得到融合全局信息的新表示。
    V\mathbf{V}

生成流程

电影从开拍到成片,要走一条标准流水线。梦中导演的流水线更奇特:先把拍好的素材送进“压缩车间”,把庞大的原始胶片打包成小体积;再把打包好的胶卷浸入噪声药水,直到画面完全花白;随后画师从花白中一格格复原;最后把成品送去“解码车间”还原成可以播出的完整视频。

这条流水线对应Sora的数据处理流程:视频压缩器(Video Compressor)把高分辨率长视频编码成紧凑的低维潜在表示,大幅降低计算量;在潜在表示上执行加噪与去噪;最终用解码器把潜在表示还原为像素画面。扩散过程中每一时刻的画面状态,都遵循“重参数化”这个加噪配比公式:

训练时随机取 \(t\),让网络看到各种“损坏程度”的画面并练习修复;生成时则从纯噪声出发,沿 \(t\) 递减的方向一步步修复,直到 \(t=0\) 得到干净视频。这条“压缩—加噪—去噪—解码”的流水线,就是梦中导演从一片混沌中抢救出电影成片的完整路径。

xt=αˉt x0+1−αˉt ϵ\mathbf{x}_t = \sqrt{\bar{\alpha}_t}\,\mathbf{x}_0 + \sqrt{1 - \bar{\alpha}_t}\,\epsilon
它描述“原片和噪声的混合程度”:时间步 \(t\) 越接近0,画面越接近原始视频;越接近1,画面越接近纯噪声。
  1. 原始视频\(\mathbf{x}_0\) 是尚未被噪声污染的真实视频帧,相当于导演刚拍好的母带。
    x0\mathbf{x}_0
  2. 信号保留比例\(\sqrt{\bar{\alpha}_t}\) 表示原片信号的保留比例,随 \(t\) 增大而递减。
    αˉt\sqrt{\bar{\alpha}_t}
  3. 噪声混合比例\(\sqrt{1 - \bar{\alpha}_t}\) 表示混入噪声的权重,随 \(t\) 增大而递增。
    1−αˉt\sqrt{1 - \bar{\alpha}_t}
  4. 线性混合带噪视频 = 原片信号×保留比例 + 随机噪声×噪声比例,构成完整加噪公式。
    xt=αˉt x0+1−αˉt ϵ\mathbf{x}_t = \sqrt{\bar{\alpha}_t}\,\mathbf{x}_0 + \sqrt{1 - \bar{\alpha}_t}\,\epsilon

关键算法

制片主任手里握着一份“噪声调度计划表”。他规定了每个拍摄时刻 \(t\) 该倒多少噪声药水:太猛,画师看不清轮廓;太轻,又练不出抗干扰能力。这份计划表在文献中被称为“噪声调度”(noise schedule),常见的有线性、余弦等曲线,直接决定训练效果与生成质量的“手感”。

画师干活时有个毛病:不给他剧本,他就自由发挥,画面虽美但容易跑题;给他剧本,他又过于死板,连背景细节都会被带歪。剪辑师(CFG引导)想到一个聪明的办法:同时让画师画“有剧本版”和“无剧本版”两张草图,两张相减,就分离出剧本带来的“方向差”,再把这个方向差放大 \(w\) 倍叠加回去。这就是Classifier-Free Guidance(无分类器引导)的思想。

采样加速方面,完整去噪往往需要上千步,计算量巨大。研究员引入DDIM等确定性采样器,把去噪步数压缩到几十步,并利用“跳步”思想让画师一步跨更大台阶。三者配合,让Sora在可控性与速度之间取得平衡,其核心公式是:

制片计划表让训练稳扎稳打,剪辑师的“双草稿相减”让成品紧贴剧本,而跳步采样则让制作周期从“年”缩短到“月”。三者协同,正是Sora在开放世界视频生成上既稳又准的秘诀。

ϵθcfg(zt,t,c)=ϵθ(zt,t,∅)+w×[ϵθ(zt,t,c)−ϵθ(zt,t,∅)]\epsilon_\theta^{cfg}(\mathbf{z}_t, t, \mathbf{c}) = \epsilon_\theta(\mathbf{z}_t, t, \varnothing) + w \times \left[\epsilon_\theta(\mathbf{z}_t, t, \mathbf{c}) - \epsilon_\theta(\mathbf{z}_t, t, \varnothing)\right]
这条公式像“剧本对画师的加持”:把有剧本与无剧本的差异放大 \(w\) 倍,让结果更贴题。
  1. 无条件预测\(\epsilon_\theta(\mathbf{z}_t, t, \varnothing)\) 是没有文本指引时画师凭本能的发挥,记作基准线。
    ϵθ(zt,t,∅)\epsilon_\theta(\mathbf{z}_t, t, \varnothing)
  2. 有条件预测\(\epsilon_\theta(\mathbf{z}_t, t, \mathbf{c})\) 是画师盯着剧本时的发挥,比基准线更贴合文本。
    ϵθ(zt,t,c)\epsilon_\theta(\mathbf{z}_t, t, \mathbf{c})
  3. 方向差两者相减即“剧本拉动方向”,表示文本条件带来的修正。
    ϵθ(zt,t,c)−ϵθ(zt,t,∅)\epsilon_\theta(\mathbf{z}_t, t, \mathbf{c}) - \epsilon_\theta(\mathbf{z}_t, t, \varnothing)
  4. 放大叠加方向差乘以权重 \(w\) 再加回无条件预测,得到最终带强引导的去噪方向 \(\epsilon_\theta^{cfg}\)。
    w×[⋅]+ϵθ(zt,t,∅)w \times \left[\cdot\right] + \epsilon_\theta(\mathbf{z}_t, t, \varnothing)

性能优化

拍摄一部电影,单机位永远不够。梦中导演也用“多机位并行”缩短制作周期:把一整段视频按时间轴切成几段,交给不同摄影组同时拍摄;每一组的内部,再让多个化妆师同时处理不同Patch的细节。这种方式对应深度学习里的“数据并行+张量并行”。

显存是片场最贵的资源。激活重计算(activation checkpointing)相当于“拍完先不存原片,只在这格画面需要重放时重新演一遍”,能省下海量显存;混合精度训练则像是“用草图代替精修图做快速排练,最终定稿时再上高精度”,让训练吞吐直接翻倍。

推理阶段的KV缓存技术也别有巧思——相邻Patch的键值向量高度相似,缓存后不必重复计算,让逐帧生成更流畅。DiT所有优化策略,归根结底都源于注意力的高计算量,其复杂度如下:

理解了这“平方爆炸”的根源,就明白了为什么工程师们不遗余力地做并行切分、显存折叠和缓存复用。片场的每一分钱,都要花在刀刃上。

计算量=O(n2×d)\text{计算量} = O(n^2 \times d)
想象 \(n\) 个镜头单元要两两互相打量:人数翻倍,打量次数翻四倍,这就是注意力高成本的来源。
  1. Patch数量 \(n\)视频切分出的全部时空Patch总数,是决定计算量的核心规模。
    nn
  2. 特征维度 \(d\)每个Patch向量的长度,即“小本”上每格写笔记的详细程度。
    dd
  3. 两两关系 \(n^2\)每个Patch都要与所有Patch计算注意力,关系对数随 \(n\) 平方增长。
    n2n^2
  4. 乘积复杂度\(n^2 \times d\) 表示每对关系都要做一次 \(d\) 维的点积运算,总计算量随Patch数量平方上升。
    O(n2×d)O(n^2 \times d)

挑战局限

再厉害的梦中导演也有穿帮时刻。Sora生成的视频里,杯子可能悬空、人走过墙角可能消失、猫的腿可能突然多出一条。这不是导演粗心,而是他的“物理直觉”只来自看过的无数视频,而非真实的物理定律。

Sora的训练目标是“像素长得像真视频”,而不是“物理规则必须正确”。它学到的是统计学意义上的物理:多数视频里苹果会往下掉,所以它也让苹果往下掉;但它没见过“杯子被推动后必然沿桌面滑动且水不洒”这类精细因果,只能在概率上打赌。长视频的一致性更棘手:生成第100帧时,模型可能已经“忘记”第1帧的主角发型——因为视频生成通常逐段条件式生成,靠概率连乘推导整段画面。

此外,训练Sora的成本极高:数万块GPU、海量视频数据、数十天的训练时长,令普通团队望而却步。梦醒时刻,导演仍有很长的路要走——他得学会真正的物理,记住更久远的剧情,还要把片场租金降下来。

P(x1,x2,…,xT)=∏t=1TP(xt∣x<t)P(\mathbf{x}_1, \mathbf{x}_2, \ldots, \mathbf{x}_T) = \prod_{t=1}^{T} P(\mathbf{x}_t \mid \mathbf{x}_{<t})
这段视频是一连串“每帧只看前文”的推断结果,每步小误差在连乘中不断滚雪球,最终变成穿帮。
  1. 帧序列\(\mathbf{x}_1\) 到 \(\mathbf{x}_T\) 表示一段视频的 \(T\) 帧画面。
    x1,x2,…,xT\mathbf{x}_1, \mathbf{x}_2, \ldots, \mathbf{x}_T
  2. 条件概率\(P(\mathbf{x}_t \mid \mathbf{x}_{<t})\) 表示生成当前帧时只依赖前面所有帧的信息。
    P(xt∣x<t)P(\mathbf{x}_t \mid \mathbf{x}_{<t})
  3. 连乘展开\(\prod_{t=1}^{T}\) 把从第1帧到第 \(T\) 帧的每步条件概率相乘,构成整段视频的联合概率。
    ∏t=1T\prod_{t=1}^{T}
  4. 误差累积每步预测都携带微小偏差,随着 \(T\) 增大,偏差在概率链中被不断放大。
    TT

应用前景

虽有穿帮,但梦中导演的才华已让影视行业为之震动。传统的分镜预览需要手绘或3D建模,往往耗费数周;如今把一句文字描述丢给Sora,几分钟就能得到动态分镜草稿。导演、摄影指导、美术可以在实拍前就“亲眼看到”成片的大致质感,提前捕捉问题。

游戏行业同样兴奋。开放世界游戏的场景资产通常需要大量人工建模,而Sora这类世界模型有望根据剧情文本直接生成“可用的场景基准画面”,供美术在此基础上精修。更深远的影响落在具身智能:机器人可以在Sora搭建的“虚拟片场”里反复练习开冰箱、抓杯子,而不必在现实世界中冒着撞坏机械臂的风险。

研究者们真正向往的,是让DiT成为通用“世界模型”——它不只生成画面,还在内部维护对世界状态的理解向量,并学习世界如何随动作推进而变化。这个理想可以用一个简洁的状态转移方程描述:

从一句话剧本到一段动态世界,Sora证明了“想象物理世界”可以完全由数据驱动习得。未来的梦中导演,或许不只是拍电影,而是成为每个行业手中的“世界模拟器”——让汽车在虚拟道路上试驾,让医生在虚拟手术台上练习,让机器人在虚拟厨房里学习。

ht+1=f(ht,at)\mathbf{h}_{t+1} = f(\mathbf{h}_t, \mathbf{a}_t)
世界模型的一生都在做同一件事:根据当前对世界的理解与此刻的动作,推演下一秒的世界。
  1. 隐状态 \(\mathbf{h}_t\)模型对世界当前状态的内部理解,相当于导演脑中的“剧情快照”。
    ht\mathbf{h}_t
  2. 动作信号 \(\mathbf{a}_t\)环境中的事件或智能体发出的控制信号,如“推动杯子”“镜头左转”。
    at\mathbf{a}_t
  3. 转移函数 \(f\)由DiT学到的世界动态规律,接收当前状态与动作,输出下一状态。
    ff
  4. 下一状态 \(\mathbf{h}_{t+1}\)综合两者后得到的新世界快照,可继续作为下一轮推演的输入。
    ht+1\mathbf{h}_{t+1}

AI 应用场景

影视前期视觉预演

阶段:内容创作 / 资产预生成

解决的问题:传统影视分镜依赖手绘故事板或3D预演软件,制作周期长、修改成本高。Sora让导演用自然语言直接生成动态预览视频,快速验证镜头调度、光影氛围与叙事节奏。

具体案例:某广告团队为一条30秒汽车广告,先用Sora生成“晨雾山路飞驰”的多角度预览视频,仅用一天就确定了3套调色和运镜方案,而传统方式需要两周。

游戏世界场景快速生成

阶段:资产生成 / 场景构建

解决的问题:开放世界游戏需要海量场景资产,手工建模成本极高。DiT类模型用文本直接生成场景视频或动效素材,作为美术精修的高质量底稿,显著缩短场景搭建周期。

具体案例:某独立游戏团队用文本生成“废弃地铁站暴风雨”的背景视频,再转成风格化贴图,将场景搭建周期从三周压缩到三天。

具身智能仿真训练

阶段:数据增广 / 仿真环境

解决的问题:机器人强化学习需要海量交互数据,真实采集成本高、风险大。世界模型生成的视频可提供多样化的初始状态与场景变化,辅助策略预训练,减少真实试错次数。

具体案例:研究团队用视频生成模型合成“机械臂从不同角度抓取水杯”的训练片段,显著提升了策略在真实环境中的成功率。

Python 演示

python50 行
import torchimport torch.nn as nnimport math class MiniDiT(nn.Module):    """极简DiT:用一层注意力模拟视频patch去噪"""    def __init__(self, dim=16, num_patches=16):        super().__init__()        self.q_proj = nn.Linear(dim, dim)        self.k_proj = nn.Linear(dim, dim)        self.v_proj = nn.Linear(dim, dim)        self.time_mlp = nn.Linear(1, dim)        self.out = nn.Linear(dim, dim)        self.dim = dim     def forward(self, x, t):        # x: [batch, num_patches, dim]        B, N, D = x.shape        t_emb = self.time_mlp(t).unsqueeze(1)        h = x + t_emb        Q = self.q_proj(h)        K = self.k_proj(h)        V = self.v_proj(h)        attn = torch.softmax(Q @ K.transpose(-2, -1) / math.sqrt(D), dim=-1)        h = attn @ V        return self.out(h) def make_video_patches(batch=4, num_patches=16, dim=16):    base = torch.linspace(-1, 1, num_patches).unsqueeze(1).expand(num_patches, dim)    return base.unsqueeze(0).expand(batch, num_patches, dim) def train_step():    model = MiniDiT()    opt = torch.optim.Adam(model.parameters(), lr=1e-2)    for step in range(200):        x0 = make_video_patches()        t = torch.rand(x0.size(0), 1) * 0.5 + 0.5        alpha = t        noise = torch.randn_like(x0) * 0.3        xt = alpha * x0 + (1 - alpha) * noise        pred = model(xt, t)        loss = nn.functional.mse_loss(pred, x0)        opt.zero_grad()        loss.backward()        opt.step()        if step % 50 == 0:            print("step %d: loss = %.4f" % (step, loss.item())) if __name__ == "__main__":    train_step()
目的:用一个极简的“单层注意力+时间步嵌入”网络,演示DiT的核心思想——在带噪声的Patch序列上,用注意力机制融合全局信息并预测干净信号。
  1. class MiniDiT(nn.Module):定义一个极简扩散Transformer,仅保留一个注意力层来模拟“分镜师的全局观察”。
  2. t_emb = self.time_mlp(t).unsqueeze(1)把去噪时间步编码成向量,让模型知道当前该“刮多厚的噪声层”。
  3. attn = torch.softmax(Q @ K.transpose(-2, -1) / math.sqrt(D), dim=-1)所有Patch两两计算相关权重,正是注意力公式的核心。
  4. xt = alpha * x0 + (1 - alpha) * noise简化的前向加噪过程,对应重参数化公式。
  5. loss = nn.functional.mse_loss(pred, x0)让网络直接预测原信号,等价于扩散模型的降噪目标。

常见误区

误区“Sora能生成符合物理的视频,说明它内部一定有个物理仿真器在做精确的碰撞计算。”

正解Sora的训练目标是让画面看起来足够真实,而非让物理定律精确成立。它通过海量视频学到的是“统计物理规律”——苹果大多数会下落,是因为见过的视频里苹果都在下落。遇到罕见或精细的因果关系,它就会“猜错”,于是出现悬空、穿模等穿帮。它是在“像真”,不是在“算真”。

为何常见:因为AI输出的形式太过逼真,用户很容易把“看起来像物理仿真”误认为“内部真的在仿真实体”。

误区“DiT是纯Transformer方案,扩散模型是另一套老方案,Sora只是把它们拼接在一起。”

正解DiT的全称是Diffusion Transformer,前缀“Diffusion“正说明它仍属于扩散框架——训练目标与生成过程都是加噪/去噪;”Transformer“只是替换了去噪网络的骨架。二者是”扩散的思路+Transformer的骨架”深度融合,不是两套东西拼凑。

为何常见:只看缩写望文生义,忽略了DiT中Diffusion这个关键词缀才是它的生成主干。

误区“Patch就是把每帧画面切成16×16的小方块,跟图像ViT一模一样。”

正解时空Patch同时在空间轴和时间轴上切分:把连续几帧中空间位置邻近的小块合并成一个单元,因此一个Patch里既包含“一小块空间”又包含“它在几个时间点上的变化”。这正是视频生成与图像生成的关键差异——它天然携带运动信息。

为何常见:受图像Transformer的先入为主影响,忽略了“时空”二字才是视频patch化的精髓。

误区“CFG的放大倍数 \(w\) 应该尽量调大,这样生成的内容才最贴合文本。”

正解\(w\) 过大会让样本过度拥挤在条件模式附近,画面反而失真、色彩饱和甚至结构崩坏。实践通常在3到8之间取平衡,既贴合剧本又保有多样性。就像导演反复让演员逐字复述剧本,表演反而会僵硬刻意。

为何常见:直觉上“信号放大=更听话”,但忽略了生成模型对过度条件化的脆弱性,适度引导才是最优解。

面试题

Q1. DiT这个缩写中的"T"代表什么?

单选题 · easy

  • A.Transformer架构← 正确答案
  • B.时间维度概念
  • C.词元序列结构
  • D.文本输入内容

答案:A。DiT全称Diffusion Transformer,前缀Diffusion指加噪/去噪的扩散框架,后缀Transformer指其网络骨架。选项B的“时间”是视频的特性而非命名来源,C和D是Transformer中的子概念,均不符。

Q2. 扩散模型生成视频的过程属于以下哪种?

单选题 · easy

  • A.从噪声逐步去噪← 正确答案
  • B.从文本直接映射
  • C.从图像直接复制
  • D.从数据库检索

答案:A。扩散模型的核心是在训练时给真实视频加噪,生成时从纯噪声出发逐步去噪还原画面,相当于画师从混沌画布一步步刮出成片。B忽略了中间的多步迭代,C和D更是对生成机制的误解。

Q3. 以下哪些是Sora的潜在应用场景?

单选题 · easy

  • A.影视分镜快速预览← 正确答案
  • B.游戏场景自动生成← 正确答案
  • C.彻底替代所有数据库
  • D.机器人技能仿真训练← 正确答案

答案:ABD。影视预演、游戏场景生成、机器人仿真训练都是DiT作为世界模型的实际落地方向。C“彻底替代所有数据库”是夸张说法,视频生成模型并不负责数据存储与管理。

Q4. 时空Patch中的“时空”指的是什么?

单选题 · mid

  • A.同时切分空间和时间← 正确答案
  • B.仅切分帧内空间区域
  • C.仅切分帧间时间轴
  • D.不切分直接整体输入

答案:A。时空Patch同时考虑空间(画面中的一小块)与时间(连续几帧的变化),把多帧邻域合并成一个token。B和C只覆盖单一维度,D则否定了patch化本身。

Q5. CFG引导(无分类器引导)的主要作用是什么?

单选题 · mid

  • A.增强文本条件控制力← 正确答案
  • B.加速视频压缩过程
  • C.减少网络参数量
  • D.提升画面分辨率

答案:A。CFG通过对比“有文本条件”与“无文本条件”的预测差异,并放大该差异,让生成结果更贴合文本。它与压缩、参数量、分辨率没有直接关系,后三者是工程优化问题。

Q6. 扩散模型训练时的核心学习目标是什么?

单选题 · mid

  • A.准确预测所添加的噪声← 正确答案
  • B.直接输出语义文本
  • C.压缩视频文件大小
  • D.识别视频中的物体

答案:A。训练时给真实视频加特定噪声,让网络预测“这一层噪声是什么”,预测越准,去噪还原越干净。B是文本模型的目标,C是编解码器目标,D是视觉理解任务,均与扩散训练目标无关。

Q7. 以下哪些属于Sora DiT的常见性能优化手段?

单选题 · mid

  • A.并行计算优化← 正确答案
  • B.激活重计算← 正确答案
  • C.减少训练数据量
  • D.混合精度训练← 正确答案

答案:ABD。并行计算拆分大模型计算、激活重计算用时间换显存、混合精度训练用低精度加速运算,都是经典优化手段。C“减少数据量”会损害生成质量,并非性能优化策略。

Q8. 注意力公式中除以 \(\sqrt{d_k}\) 的主要目的是什么?

单选题 · hard

  • A.防止点积过大导致饱和← 正确答案
  • B.加快矩阵乘法的速度
  • C.减少模型的整体参数量
  • D.增加网络层的隐藏深度

答案:A。当维度 \(d_k\) 较大时,点积数值会随之变大,使softmax进入饱和区、梯度极小。除以 \(\sqrt{d_k}\) 能稳定数值分布。B、C、D均与数值稳定性无关。

Q9. 以下哪些是Sora当前面临的主要挑战?

单选题 · hard

  • A.物理规律建模不准确← 正确答案
  • B.长视频出现一致性崩坏← 正确答案
  • C.完全无法生成静态图像
  • D.训练推理成本较为高昂← 正确答案

答案:ABD。Sora依靠统计学习而非真实物理仿真,所以物理细节会崩;长视频逐帧条件连乘导致误差累积;大规模训练需要大量GPU与数据。C错误,Sora并非完全无法生成静态图像。

Q10. 关于视频生成中的误差累积,以下哪个理解正确?

单选题 · extreme

  • A.误差随生成步数不断累积← 正确答案
  • B.误差仅在首帧产生的
  • C.注意力机制完全消除误差
  • D.噪声调度能彻底避免误差

答案:A。视频逐段生成时,每步预测都依赖前文,微小偏差会代入后续计算不断放大,这正是长视频一致性的核心难题。B否认误差的传播性,C和D都夸大了机制的能力,噪声调度只能控制加噪比例而无法根除累积误差。