在2024年2月,OpenAI的Sora技术以其从简单文本提示生成高清视频的惊人能力震撼了世界。这项技术引领了生成式AI的发展,其核心是名为Diffusion Transformer(DiT)的强大架构。本文将深入探讨Sora背后的这项神奇技术——DiT。
目录
- 引言
- Diffusion Transformer(DiT)= 扩散模型 + 变换器
- 扩散模型
- 变换器
- 扩散模型与变换器的集成
- DiT在Sora中的工作原理
- DiT在Sora中的优势
- 结论
Diffusion Transformer(DiT)= 扩散模型 + 变换器
Sora的核心是Diffusion Transformer(DiT)架构,这是一种新颖的生成建模方法。DiT结合了扩散模型和变换器的优势,以实现在图像生成中取得显著成果。让分解DiT的关键组成部分:
扩散模型是一类生成模型,它们学习逐步去噪一个嘈杂的输入信号以生成一个清晰的输出。在图像生成的背景下,扩散模型从一个嘈杂的图像开始,逐步通过去除噪声来细化它,直到一个清晰且连贯的图像出现。这个过程允许生成高度详细和逼真的图像。
变换器是一种神经网络架构,它已经彻底改变了自然语言处理任务。它们擅长捕捉长距离依赖关系,并理解数据序列中的上下文。在Sora中,变换器被用来处理和理解作为输入提供的文本描述,使模型能够生成准确反映给定提示的图像。
Diffusion Transformer(DiT)架构无缝集成了扩散模型和变换器,以利用它们各自的优势。变换器组件处理文本输入并生成一个潜在表示,捕获描述的语义含义。这个潜在表示随后被用来指导扩散过程,确保生成的图像与提供的文本一致。
假设要使用文本提示和一系列扩散步骤来生成视频。以下是上述过程中发生的简化分解:
- 设置舞台:有一个视频剪辑作为输入,并且有一个描述视频内容的提示,例如“天空中的Sora”。处于训练过程中的一个特定扩散步骤(t = 3)。
- 准备数据:视频被划分成称为patch的小方块(想象一个覆盖在视频上的网格)。在这种情况下,每个patch覆盖了空间和时间上的4个连续像素(水平2像素,垂直2像素,考虑多个帧)。
- 特征提取(理解视频):每个patch由视觉编码器(显示为黄色框)处理。将其视为从图像数据中提取关键特征。编码器使用权重和偏置(可调参数)以及ReLU激活函数将原始像素值转换为称为潜在向量的低维表示(显示为绿色框)。这减少了复杂性并允许更好地处理噪声。
- 添加噪声(训练模型):基于当前的扩散步骤(t),有意识地向潜在特征中添加噪声。更高的步骤噪声更少。这类似于语言模型可能通过从句子中移除单词并要求它预测缺失的单词来训练。通过添加噪声,模型学会了去除它并恢复原始信息。
- 条件噪声数据(指导模型):条件化有助于模型生成与提示相关的视频。提示“天空中的Sora”被转换为文本嵌入向量(数值表示)。扩散步骤(t)也被编码为二进制向量。这些被组合成一个单一向量。这个组合向量用于估计“比例”和“偏移”值(也是可调参数)。最后,估计的比例和偏移被应用于噪声潜在特征,创建一个“条件化”的噪声潜在。这将提示中的信息注入以指导模型生成包含“天空”中的“Sora”的视频。
- 细化条件噪声(关注重要特征):条件化噪声潜在被输入到变换器块中,这是一种强大的深度学习架构。变换器使用称为“自注意力”的技术来识别数据中最重要的关系。然后使用这种注意力来强调条件化噪声潜在中的相关信息。最后,逐点前馈网络进一步处理数据以提取额外的特征。
- 训练(微调模型):模型根据条件化噪声潜在预测原始噪声。预测噪声与实际噪声(真实值)之间的差异被计算为损失。这个损失通过反向传播用于调整模型中的权重和偏置(红边框),使其更擅长预测噪声,最终生成逼真的视频。重要的是要注意,在训练步骤中,视觉编码器和解码器的权重和偏置(蓝边框)保持固定。这些是预先训练的,以实现有效的特征提取和生成。
- 生成视频(回报):一旦训练完成,模型就可以用来生成。从条件化噪声潜在中减去预测的噪声以获得无噪声的潜在。这个潜在表示通过视觉解码器(另一个黄色框)传递,它逆转了编码器的操作。解码器输出一系列patch。最后,patch被重新排列回原始视频格式,给最终生成的视频内容。
- 提高表达力:通过将隐藏状态视为连续的扩散过程,DiT允许Sora学习输入数据的更具表现力和灵活性的表示。这使得Sora能够捕捉微妙的细微差别,并生成更连贯和上下文相关的输出。
- 增强泛化能力:扩散过程有助于Sora更好地泛化到未见过的数据。通过学习去噪隐藏状态,Sora可以更有效地处理嘈杂和不完整的输入。
- 增加鲁棒性:DiT的去噪能力使Sora对扰动和对抗性攻击更具鲁棒性。即使在噪声或对抗性示例存在的情况下,模型也可以生成稳定和一致的输出。
- 可扩展性:DiT架构具有很高的可扩展性,可以应用于像Sora这样的大规模语言模型。它允许在大规模数据集上进行高效的训练和推理。