【AI论文】扩散对抗后训练用于一步视频生成总结
摘要:扩散模型被广泛应用于图像和视频生成,但其迭代生成过程缓慢且资源消耗大。尽管现有的蒸馏方法已显示出在图像领域实现一步生成的潜力,但它们仍存在显著的质量退化问题。在本研究中,我们提出了一种在扩散预训练后针对真实数据进行的对抗后训练(APT)方法,用于一步视频生成。为了提高训练稳定性和质量,我们对模型架构和训练过程进行了多项改进,并引入了一种近似R1正则化目标。实验表明,我们的对抗后训练模型Seaweed-APT能够使用单个前向评估步骤实时生成2秒、1280x720分辨率、24帧每秒的视频。此外,我们的模型还能够在一步内生成1024px分辨率的图像,质量可与最先进的方法相媲美。Huggingface链接:Paper page 论文链接:2501.08316
一、引言
随着生成对抗网络(GANs)和扩散模型(Diffusion Models)的兴起,图像和视频生成领域取得了显著进展。然而,传统的扩散模型由于其迭代生成过程,导致生成成本高且耗时。尽管现有的蒸馏方法已经展示了在图像领域实现一步生成的可能性,但这些方法往往伴随着显著的质量下降。为了解决这个问题,本文提出了一种新的方法,即对抗后训练(Adversarial Post-Training, APT),通过对抗训练来加速扩散模型,实现图像和视频的一步生成。
二、背景与相关工作
1. 扩散模型加速
扩散模型已成为学习大规模图像和视频生成的标准方法。为了减少生成成本,研究者们提出了多种方法,其中扩散步长蒸馏(Diffusion Step Distillation)是一种有效的方法。这种方法通过预训练的扩散模型作为教师模型,生成目标,然后使用知识蒸馏技术训练学生模型,使学生模型能够使用更少的扩散步长复制教师模型的输出。尽管这些方法在减少推理步长方面取得了进展,但一步生成仍然面临巨大挑战,特别是在实现细粒度细节、最小化伪影和保持结构完整性方面。
2. 一步视频生成
一步视频生成的工作可以追溯到使用GANs的方法,如DVD-GAN、MoCoGAN-HD和StyleGAN-V等。然而,这些方法通常只能在受限的数据域上生成低质量的视频。最近,一些研究尝试将图像扩散模型蒸馏为一步视频生成模型,但这些方法生成的视频分辨率较低,且存在显著的质量下降。
3. 稳定对抗训练
在GANs中,R1正则化已被证明对于促进收敛是有效的。然而,在大规模对抗工作中,由于高阶梯度计算的计算成本高昂,且不被现代深度学习软件栈支持,因此R1正则化的使用受到限制。本文提出了一种近似R1正则化方法,以解决这一问题。
三、方法
1. 概述
本文的目标是将一个文本到视频的扩散模型转换为一步生成器。为此,我们采用对抗后训练(APT)方法,通过对抗优化来实现这一目标。整个训练过程遵循一个最小-最大游戏,其中判别器D尝试区分真实样本和生成样本,而生成器G则试图生成能够欺骗判别器的样本。
2. 生成器
直接对抗训练扩散模型会导致训练崩溃。为了解决这个问题,我们首先使用确定性蒸馏方法初始化生成器。具体来说,我们采用离散时间一致性蒸馏方法,通过均方误差损失进行简单蒸馏。蒸馏后的模型虽然生成的样本很模糊,但为后续的对抗训练提供了一个有效的初始化。
在后续的训练中,我们主要关注一步生成能力,并始终将最终时间步长T传递给基础模型。生成器的损失函数定义为:
其中,gG(x)=log(1−σ(x)),σ(x)是sigmoid函数。
3. 判别器
判别器被训练为产生一个标量对数,以有效区分真实样本x和生成样本x^。为了实现稳定训练和提高质量,我们对判别器进行了多项改进:
- 初始化:判别器骨干网络使用预训练的扩散模型进行初始化,并直接在潜在空间中操作。
- 架构修改:在判别器的第16、26和36层引入新的仅交叉注意力变换器块,每个块使用一个可学习令牌作为查询,以交叉注意力到所有视觉令牌。
- 输入处理:直接为判别器提供原始样本x和x^,避免引入伪影。由于判别器骨干网络是从扩散模型初始化的,且扩散预训练目标在t=0时没有意义,因此我们使用不同时间步长的集合作为输入。
判别器的损失函数定义为:
其中,,λ是正则化项的权重,σ是高斯噪声的方差。
4. 近似R1正则化
由于高阶梯度计算的计算成本高昂,且不被现代深度学习软件栈支持,因此我们提出了一种近似R1正则化方法。具体来说,我们通过对真实数据添加高斯噪声来扰动真实数据,并鼓励判别器对真实数据和其扰动之间的预测保持接近。这种方法减少了判别器在真实数据上的梯度,从而实现了与原始R1正则化一致的目标。
四、实验结果
1. 定性评估
我们首先在图像生成方面比较了我们的APT模型与原始扩散模型。实验结果显示,APT模型在保持细节和真实感方面表现更好。此外,我们还与其他一步图像生成方法进行了比较,结果显示我们的方法在细节保持和结构完整性方面表现优异。
在视频生成方面,APT模型在视觉细节和真实感方面也有所提升,但在结构完整性和文本对齐方面仍然存在一定的降解。然而,即使如此,APT模型生成的视频在1280×720分辨率下仍然保持了相当的质量。
2. 用户研究
我们进行了一系列用户研究,以评估生成样本的视觉保真度、结构完整性和文本对齐性。实验结果显示,我们的APT模型在视觉保真度方面表现优于其他一步生成方法,但在结构完整性和文本对齐性方面仍存在一定的不足。尽管如此,我们的模型仍然达到了与当前最先进方法相当的性能。
3. 消融研究
我们进行了一系列消融研究,以评估不同组件对模型性能的影响。实验结果显示,近似R1正则化对于维持稳定训练至关重要,没有它训练会迅速崩溃。此外,使用更深的判别器网络和多层特征可以显著提高图像质量。我们还发现,指数移动平均(EMA)和较大的批量大小对于稳定训练和提高模型性能也是有益的。
五、结论与局限
本文提出了一种新的对抗后训练方法(APT),用于加速扩散模型的一步生成。通过引入近似R1正则化和对判别器进行多项改进,我们成功训练了一个能够实时生成高分辨率视频和图像的模型。尽管我们的模型在视觉保真度方面表现优异,但在结构完整性和文本对齐性方面仍存在一定的不足。未来的工作将致力于进一步提高模型的结构完整性和文本对齐性,并探索生成更长时间视频的可能性。
六、局限性与未来工作
尽管我们的方法在一步生成高分辨率视频方面取得了显著进展,但仍存在一些局限性。首先,由于计算资源的限制,我们目前只能训练模型生成最多两秒的视频。未来的工作将探索使用更多的计算资源来生成更长时间的视频。其次,我们观察到APT可能会对文本对齐产生负面影响,这将是未来工作中的一个重要研究方向。最后,我们将继续探索如何进一步提高模型的结构完整性和生成质量。
本文通过引入对抗后训练方法(APT),成功实现了扩散模型的一步生成,显著提高了生成速度和效率。尽管仍存在一些局限性,但本文的研究为未来的工作提供了有价值的参考和启示。
相关文章:

【AI论文】扩散对抗后训练用于一步视频生成总结
摘要:扩散模型被广泛应用于图像和视频生成,但其迭代生成过程缓慢且资源消耗大。尽管现有的蒸馏方法已显示出在图像领域实现一步生成的潜力,但它们仍存在显著的质量退化问题。在本研究中,我们提出了一种在扩散预训练后针对真实数据…...

重回C语言之老兵重装上阵(十六)C语言可变参数
C语言可变参数 在C语言中,标准库提供了一些函数允许接收可变数量的参数。最典型的例子就是 printf 和 scanf,它们能够处理不确定数量的参数。为了实现这一功能,C语言提供了可变参数函数的概念。 1. 可变参数函数的概念 可变参数函数是指函数…...

深拷贝、浅拷贝、移动语义
C 中的拷贝方式 1. 深拷贝(Deep Copy) 定义 深拷贝会复制对象的全部内容,包括对象中动态分配的资源。新对象与原对象完全独立,任何对新对象的修改都不会影响原对象。 实现 通常通过显式的拷贝构造函数或拷贝赋值运算符&#…...

双向链表在系统调度、游戏、文本编辑及组态方面的应用
在编程的奇妙世界里,数据结构就像是一把把神奇的钥匙(前面我们介绍过单向链表的基础了,这里我们更进一步),能帮我们打开解决各种问题的大门。今天,咱们就来聊聊其中一把特别的钥匙——双向链表。双向链表和…...

实践网络安全:常见威胁与应对策略详解
📝个人主页🌹:一ge科研小菜鸡-CSDN博客 🌹🌹期待您的关注 🌹🌹 引言 在数字化转型的浪潮中,网络安全的重要性已达到前所未有的高度。无论是个人用户、企业,还是政府机构…...

关于2024年
关于2024年 十分钟前我从床上爬起来,坐在电脑面前先后听了《黄金时代》——声音碎片和《Song F》——达达两首歌,我觉得躺着有些无聊,又或者除夕夜的晚上躺着让我觉得有些不适,我觉得自己应该爬起来,爬起来记录一下我…...

Hive:Hive Shell技巧
在终端命令窗口不能直接执行select,creat等HQL命令,需要先进入hive之后才能执行,比较麻烦,但是如果使用Hive Shell就可以直接执行 在终端只执行一次Hive命令 -e 参数, "execute"(执行),使用-e参数后会在执行完Hive的命令后退出Hive 使用场景:…...

Markdown Viewer 浏览器, vscode
使用VS Code插件打造完美的MarkDown编辑器(插件安装、插件配置、markdown语法)_vscode markdown-CSDN博客 右键 .md 文件,选择打开 方式 (安装一些markdown的插件) vscode如何预览markdown文件 | Fromidea GitCode - 全球开发者…...

快速分析LabVIEW主要特征进行判断
在LabVIEW中,快速分析程序特征进行判断是提升开发效率和减少调试时间的重要技巧。本文将介绍如何高效地识别和分析程序的关键特征,从而帮助开发者在编写和优化程序时做出及时的判断,避免不必要的错误。 数据流和并行性分析 LabVIEW的图形…...

【Super Tilemap Editor使用详解】(十五):从 TMX 文件导入地图(Importing from TMX files)
Super Tilemap Editor 支持从 TMX 文件(Tiled Map Editor 的文件格式)导入图块地图。通过导入 TMX 文件,你可以将 Tiled 中设计的地图快速转换为 Unity 中的图块地图,并自动创建图块地图组(Tilemap Group)。以下是详细的导入步骤和准备工作。 一、导入前的准备工作 在导…...

JavaScript系列(45)--响应式编程实现详解
JavaScript响应式编程实现详解 🔄 今天,让我们深入探讨JavaScript的响应式编程实现。响应式编程是一种基于数据流和变化传播的编程范式,它使我们能够以声明式的方式处理异步数据流。 响应式编程基础概念 🌟 💡 小知识…...

Lustre Core 语法 - 布尔表达式
Lustre v6 中的 Lustre Core 部分支持的表达式种类中,支持布尔表达式。相关的表达式包括and, or, xor, not, #, nor。 相应的文法定义为 Expression :: not Expression| Expression and Expression| Expression or Expression | Expression xor Expression | # (…...

python学opencv|读取图像(四十六)使用cv2.bitwise_or()函数实现图像按位或运算
【0】基础定义 按位与运算:全1取1,其余取0。按位或运算:全0取0,其余取1。 【1】引言 前序学习进程中,已经对图像按位与计算进行了详细探究,相关文章链接如下: python学opencv|读取图像&…...

C# 添加、替换、提取、或删除Excel中的图片
在Excel中插入与数据相关的图片,能将关键数据或信息以更直观的方式呈现出来,使文档更加美观。此外,对于已有图片,你有事可能需要更新图片以确保信息的准确性,或者将Excel 中的图片单独保存,用于资料归档、备…...

工作总结:压测篇
前言 压测是测试需要会的一项技能,作为开发,有点时候也要会一点压测。也是被逼着现学现卖的。 一、压测是什么,以及压测工具的选择 压测,即压力测试,是一种性能测试手段,通过模拟大量用户同时访问系统&am…...

11JavaWeb——SpringBootWeb案例02
前面我们已经实现了员工信息的条件分页查询以及删除操作。 关于员工管理的功能,还有两个需要实现: 新增员工 修改员工 首先我们先完成"新增员工"的功能开发,再完成"修改员工"的功能开发。而在"新增员工"中…...

vs2022+tesseract ocr识别中英文 编译好的库下载
测试图片 效果 编译其实挺麻烦的,可参考:在Windows上用Visual Studio编译Tesseract_windows编译tesseract-CSDN博客 #include "baseapi.h" #include "allheaders.h" #include <iostream> #include <fstream> // 用于文…...

状态模式——C++实现
目录 1. 状态模式简介 2. 代码示例 3. 单例状态对象 4. 状态模式与策略模式的辨析 1. 状态模式简介 状态模式是一种行为型模式。 状态模式的定义:状态模式允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类。 通俗的说就是一个对象…...

3.观察者模式(Observer)
组件协作模式 现代软件专业分工之后的第一个结果是 “框架与应用程序的划分”,“组件协作” 模式通过晚期绑定,来实现框架与应用程序直接的松耦合,是二者之间协作时常用的模式 典型模式 Template Method Strategy Observer /Event 动机(M…...

Kotlin判空辅助工具
1)?.操作符 //执行逻辑 if (person ! null) {person.doSomething() } //表达式 person?.doSomething() 2)?:操作符 //执行逻辑 val c if (a ! null) {a } else {b } //表达式 val c a ?: b 3)!!表达式 var message: String? &qu…...

Electron学习笔记,安装环境(1)
1、支持win7的Electron 的版本是18,这里node.js用的是14版本(node-v14.21.3-x86.msi)云盘有安装包 Electron 18.x (截至2023年仍在维护中): Chromium: 96 Node.js: 14.17.0 2、安装node环境,node-v14.21.3-x86.msi双击运行选择安…...

将 OneLake 数据索引到 Elasticsearch - 第 1 部分
作者:来自 Elastic Gustavo Llermaly 学习配置 OneLake,使用 Python 消费数据并在 Elasticsearch 中索引文档,然后运行语义搜索。 OneLake 是一款工具,可让你连接到不同的 Microsoft 数据源,例如 Power BI、Data Activ…...

【C++】STL介绍 + string类使用介绍 + 模拟实现string类
目录 前言 一、STL简介 二、string类 1.为什么学习string类 2.标准库中的string类 3.auto和范围for 4.迭代器 5.string类的常用接口说明 三、模拟实现 string类 前言 本文带大家入坑STL,学习第一个容器string。 一、STL简介 在学习C数据结构和算法前,我…...

Hive:基本查询语法
和oracle一致的部分 和oracle不一样的部分 排序 oracle中,在升序排序中,NULL 值被视为最大的值;在降序排序中,NULL 值被视为最小的值。 在MySQL中,NULL 被视为小于任何非空值。 在Hive中, NULL是最小的; Hive除了可以用order…...

日志收集Day008
1.zk集群优化 修改zookeeper的堆内存大小,一般情况下,生产环境给到2G足以,如果规模较大可以适当调大到4G。 (1)配置ZK的堆内存 vim /app/softwares/zk/conf/java.env export JAVA_HOME/sortwares/jdk1.8.0_291 export JVMFLAGS"-Xms2…...

【解决方案】VMware虚拟机adb连接宿主机夜神模拟器
1、本机(宿主机,系统windows10)ip为192.168.31.108 2、运行模拟器后本机cmd查看端口为62026 3、VMware虚拟机(系统,kali)adb连接192.168.31.108:62026报错 failed to connect to 192.168.31.108:16416: Co…...

基于金融新闻的大型语言模型强化学习在投资组合管理中的应用
“Financial News-Driven LLM Reinforcement Learning for Portfolio Management” 论文地址:https://arxiv.org/pdf/2411.11059 摘要 本研究探索了如何通过将大语言模型(LLM)支持的情感分析融入强化学习(RL)中&#…...

脚本运行禁止:npm 无法加载文件,因为在此系统上禁止运行脚本
问题与处理策略 1、问题描述 npm install -D tailwindcss执行上述指令,报如下错误 npm : 无法加载文件 D:\nodejs\npm.ps1,因为在此系统上禁止运行脚本。 有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID135170 中的 about_…...

借DeepSeek-R1东风,开启创业新机遇
DeepSeek-R1的崛起 DeepSeek-R1的推出引发了广泛关注,在AI领域引起了一阵旋风。作为新一代的智能模型,它在多项任务中表现出了卓越的能力。普通人可以借助这个强大的工具,开启属于自己的创业之路,抓住时代带来的机遇。 内容创作…...

C# lock使用详解
总目录 前言 在 C# 多线程编程中,lock 关键字是一种非常重要的同步机制,用于确保同一时间只有一个线程可以访问特定的代码块,从而避免多个线程同时操作共享资源时可能出现的数据竞争和不一致问题。以下是关于 lock 关键字的详细使用介绍。 一…...