扩散模型对抗蒸馏:ADD 和 Latent-ADD

news2024/10/21 18:32:35

扩散模型对抗蒸馏:ADD 和 Latent-ADD

ADD(Adversarial Diffusion Distillation)和 Latent-ADD 是 StabilityAI 公司提出的一系列针对 Stable Diffusion 的扩散模型对抗蒸馏方法,通过对抗训练和蒸馏训练来提高扩散模型的采样速度,并保持较高的生图质量。

Adversarial Diffusion Distillation

Adversarial Diffusion Distillation,扩散模型对抗蒸馏,顾名思义,是结合对抗训练和蒸馏训练两种方式来对扩散模型的生图进行加速的方法。

整个 ADD 方法在训练过程中有三个模型参与:参数为 ψ \psi ψ 的教师扩散模型,参数为 ϕ \phi ϕ 的判别器模型,以及参数为 θ \theta θ 的学生模型,其中学生模型和判别器模型的(部分)参数是可训练的,教师模型的参数 ψ \psi ψ 则是固定的。训练过程概览如下图所示。教师模型采样时间步 { 1 , … , 1000 } \{1,\dots,1000\} {1,,1000},学生模型采样时间步 { τ 1 , … , τ N } \{\tau_1,\dots,\tau_N\} {τ1,,τN} N N N 为学生模型的总步数。本文取 N = 4 N=4 N=4 即学生模型通过四步采样即可完成生图,并取 τ N = 1000 \tau_N=1000 τN=1000 从而保证初始步是零信噪比的纯噪声,与预训练时分布保持一致。

在这里插入图片描述

ADD 由对抗损失和蒸馏损失两部分驱动训练。首先从数据集中随机采样一张干净图片 x 0 x_0 x0 后对其进行加噪得到 x s = α s x 0 + σ s ϵ x_s=\alpha_s x_0+\sigma_s\epsilon xs=αsx0+σsϵ,然后送入到学生模型进行去噪,得到 x ^ θ ( x s , s ) \hat{x}_\theta(x_s,s) x^θ(xs,s),将 x 0 x_0 x0 x s x_s xs 送入判别器,计算对抗损失 L adv G \mathcal{L}^G_\text{adv} LadvG。在按照教师模型的 schedule 对学生模型的输出 x ^ θ \hat{x}_\theta x^θ 进行加噪,得到 x ^ θ , t = α t x ^ θ + σ t ϵ ′ \hat{x}_{\theta,t}=\alpha_t\hat{x}_\theta+\sigma_t\epsilon' x^θ,t=αtx^θ+σtϵ,送入到教师模型进行去噪得到 x ^ ψ ( x ^ θ , t , t ) \hat{x}_\psi(\hat{x}_{\theta,t},t) x^ψ(x^θ,t,t),对 x ^ θ \hat{x}_\theta x^θ x ^ ψ \hat{x}_\psi x^ψ 计算蒸馏损失 L distill \mathcal{L}_\text{distill} Ldistill。最终的总损失为:
L = L adv G ( x ^ θ ( x s , s ) , ϕ ) + λ L distill ( x ^ θ ( x s , s ) , ψ ) \mathcal{L}=\mathcal{L}^G_{\text{adv}}(\hat{x}_\theta(x_s,s),\phi)+\lambda\mathcal{L}_\text{distill}(\hat{x}_\theta(x_s,s),\psi) L=LadvG(x^θ(xs,s),ϕ)+λLdistill(x^θ(xs,s),ψ)
以下分别详细介绍对抗损失和蒸馏损失。

对抗损失

在对抗损失的计算中,本文参考 StyleGAN-T 的做法。使用一个预训练的网络 F F F(DINO/CLIP 等 ViT 模型,最后发现 DINO v2 效果较好),冻结其参数,作为特征提取模型,在其每一层接一个参数可训练的判别器头 D ϕ , k \mathcal{D}_{\phi,k} Dϕ,k。为了进一步提升性能,还可以通过 projection 引入额外的条件信息,一般文生图模型就是引入文本条件 embedding c text c_\text{text} ctext。本文方法还支持了引入图像条件 c img c_\text{img} cimg

本文采用 hinge loss 作为目标函数。学生网络(生成器)的优化目标为:
L adv G ( x ^ θ ( x s , s ) , ϕ ) = − E s , ϵ , x 0 [ ∑ k D ϕ , k ( F k ( x ^ θ ( x s , s ) ) ) ] \mathcal{L}^G_\text{adv}(\hat{x}_\theta(x_s,s),\phi)=-\mathbb{E}_{s,\epsilon,x_0}[\sum_k\mathcal{D}_{\phi,k}(F_k(\hat{x}_\theta(x_s,s)))] LadvG(x^θ(xs,s),ϕ)=Es,ϵ,x0[kDϕ,k(Fk(x^θ(xs,s)))]
判别器的优化目标为:
L adv D ( x ^ θ ( x s , s ) , ϕ ) = E x 0 [ ∑ k max ⁡ ( 0 , 1 − D ϕ , k ( F k ( x 0 ) ) ) + γ R 1 ( ϕ ) ] + E x ^ θ [ ∑ k max ⁡ ( 0 , 1 + D ϕ , k ( F k ( x ^ θ ) ) ) ] \mathcal{L}_\text{adv}^D(\hat{x}_\theta(x_s,s),\phi)=\mathbb{E}_{x_0}[\sum_k\max(0,1-\mathcal{D}_{\phi,k}(F_k(x_0)))+\gamma R1(\phi)] +\mathbb{E}_{\hat{x}_\theta}[\sum_k\max(0,1+\mathcal{D}_{\phi,k}(F_k(\hat{x}_\theta)))] LadvD(x^θ(xs,s),ϕ)=Ex0[kmax(0,1Dϕ,k(Fk(x0)))+γR1(ϕ)]+Ex^θ[kmax(0,1+Dϕ,k(Fk(x^θ)))]

蒸馏损失

ADD 的蒸馏损失为:
L distill ( x ^ θ ( x s , s ) , ψ ) = E t , ϵ ′ [ c ( t ) d ( x ^ θ , x ^ ψ ( sg ( x ^ θ , t ) ; t ) ) ] \mathcal{L}_\text{distill}(\hat{x}_\theta(x_s,s),\psi)=\mathbb{E}_{t,\epsilon'}[c(t)d(\hat{x}_\theta,\hat{x}_\psi(\text{sg}(\hat{x}_{\theta,t});t))] Ldistill(x^θ(xs,s),ψ)=Et,ϵ[c(t)d(x^θ,x^ψ(sg(x^θ,t);t))]
就是用某种距离 d d d 去计算学生模型的去噪结果 x ^ θ \hat{x}_\theta x^θ 和教师模型的去噪结果 x ^ ψ \hat{x}_\psi x^ψ 之间的差异。ADD 中采用的距离度量方式为欧式距离, c ( t ) c(t) c(t) 是一个关于时间 t t t 的加权函数。

Latent Adversarial Diffusion Distillation

ADD 通过对抗和蒸馏训练取得了不错的加速效果,但仍存在几个问题。首先,ADD 使用的是固定参数的预训练 DINOv2 模型作为判别器的特征提取器,其输入分辨率是固定的;第二,没办法直接控制判别器反馈的层级,比如是全局特征还是局部特征;第三,由于判别器没有在隐层空间上训练过,因此蒸馏 LDM 时,必须要先解码回像素空间,这使得在高分辨率图像上的蒸馏训练成本极高。另外,GAN 的训练很不稳定且未观察到 LLM/DM 中出现的 scaling law。

本文中提出的 LADD,可以在超高分辨率图像上对预训练的 DiT 模型进行稳定的、可扩展的对抗蒸馏训练。在对抗训练中,LADD 没有采用常用的判别式特征(比如自监督训练的 DINOv2 特征),而是采用了教师扩散模型本身的生成式特征,这使得模型能够进行多长宽比图像的训练,并可以通过采样对应的噪声层级来提取更全局(噪声层级更高)或者更局部(噪声层级更低)的判别器特征。此外,LADD 不需要解码回像素空间,可以在隐层空间进行蒸馏训练,从而可以在更高分辨率的图像上训练更大的学生模型。最终,LADD 的训练流程比 ADD 要简化得多,并且达到了更好的效果。

下图对比了 ADD 和 LADD 的训练流程。LADD 对 ADD 的核心改进就是使用教师扩散模型同时作为判别器。

在这里插入图片描述

在 ADD 中,采用 Projected GAN 的范式,使用一个预训练的判别式模型(DINOv2)提取图像的特征,然后在不同层各自接判别头来对输入图像的真假进行判别。LADD 则是采用了生成式特征,将教师扩散模型同时作为特征提取器,提取教师模型去噪过程中各层的 token sequence 作为图像特征,再接判别头,并且这些判别头需要同时接收噪声水平和文本提示词作为条件。

使用生成式特征相比于判别式特征有四点优势:一是简单高效,LADD 的训练过程完全在隐层空间上,不需要再解码回像素空间,更高效节省训练资源;二是可以提取不同噪声层级对应的特征,通过调整加噪的输入层级,可以选择更全局或更细节的特征;三是支持不同长宽比的图像训练,因为本来教师模型就是在不同长宽比的图像上进行训练的;四是更接近人类偏好,判别式特征会更聚焦于纹理细节而非全局特征,而生成式特征则与人类偏好更相似,

在判别头的网络结构上,LADD 还是基本延续了 ADD 中的选择。但是没有选择了 1D 的卷积,而是将 token sequence reshape 回原图的空间排布后,再使用 2D 卷积进行处理,更好地支持多长宽比输入。

总结

ADD 和 LADD 是 SD 系列同步推出的模型加速方法,结合对抗训练和蒸馏训练,提高模型的生图速度的同时兼顾生成质量,分别训练出了 SDXL-Turbo、SD3-Turbo 等模型,在开源加速模型中有比较大的影响力。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2220215.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python基于图片内容识别的微信自动发送信息(对其中逻辑修改一些可以改为自动化回复)

1.内容基于python日常生活问题帮助 2.主要框架 import time from datetime import datetimeimport pyperclip import win32api import win32con import os import refrom Image_Content_Text_Recognition import ICTR from screenshot import img 上面是逻辑部分主要框架 i…

【开源免费】基于SpringBoot+Vue.JS在线视频教育平台(JAVA毕业设计)

本文项目编号 T 027 ,文末自助获取源码 \color{red}{T027,文末自助获取源码} T027,文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析 六、核心代码6.1 新…

解析 Vue 模板的本质:从语法糖到渲染过程

大家耳熟能详的表述如下:Vue 模板的本质其实是一种 声明式渲染 的形式,它在开发过程中提供了将组件的结构与逻辑分离的便利。 也就是说,模板 template 的存在只是为了让我们以更直观的方式描述界面的结构,然而在运行时&#xff0…

Android Framework AMS(09)service组件分析-3(bindService和unbindService关键流程分析)

该系列文章总纲链接:专题总纲目录 Android Framework 总纲 本章关键点总结 & 说明: 说明:上上一章节主要解读应用层service组件启动的2种方式startService和bindService,以及从APP层到AMS调用之间的打通。上一章节我们关注了s…

北京大学冯惠:与卓越者同行,方能更快的成长 | OceanBase数据库大赛获奖选手访谈

本文邀请2022 OceanBase 数据库大赛的季军,来自北京大学的冯惠同学,与我们分享如何寻找自己的兴趣;在一番经历后,对于产品与研发的职业方向观察;以及如何在学生时期提升个人专业能力,和参加数据库大赛的个人…

【Python技术】利用akshare定时获取股票实时价,低于5日线钉钉通知报警

今天看了下大盘,临时有个想法,我想知道某个股票回踩5日线的价格,如果实时价格低于5日线通过钉钉报警通知我。 说干就干,临时撸了下简单的代码,仅做演示。 1、计算5日线思路 很多券商软件的MA5价格是近5个交易日收盘…

Java项目-基于springboot框架的医患档案管理系统项目实战(附源码+文档)

作者:计算机学长阿伟 开发技术:SpringBoot、SSM、Vue、MySQL、ElementUI等,“文末源码”。 开发运行环境 开发语言:Java数据库:MySQL技术:SpringBoot、Vue、Mybaits Plus、ELementUI工具:IDEA/…

Hi3061M——VL53L0X激光测距(IIC)(同样适用于其他MCU)2

目录 前言资源下载移植基本使用IO配置调用测量 总结 前言 昨晚太晚了,草草结束了上一篇,今天更新下半部分。 昨天已经讲了VL53L0X的使用流程,无非就是进行6步的效准初始化,然后配置下模式和时间,开始采样,…

LDAP 部署手册

Centos 1. 安装openldap软件 # 安装openldap yum -y install openldap compat-openldap openldap-clients openldap-servers openldap-servers-sql openldap-devel migrationtoolscp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG chown ldap:ldap…

Leetcode 跳跃游戏 二

核心任务是找出从数组的起点跳到终点所需的最小跳跃次数。 这段代码解决的是“跳跃游戏 II”(Leetcode第45题),其核心任务是找出从数组的起点跳到终点所需的最小跳跃次数。 class Solution {public int jump(int[] nums) {//首先处理特殊情…

“智驭医疗·未来已来“:医疗保健知识中台的搭建与应用

前言 随着科技的飞速发展,医疗保健领域正在经历深刻的变革。知识中台作为促进医疗行业应用智能化升级的关键底座,正在逐渐成为提高医疗服务质量和效率的重要工具。本文将探讨医疗保健知识中台的内容构成、应用案例以及更新与维护机制。 一、医疗保健知识…

基于ASP.NET的小型超市商品管理系统

文章目录 前言项目介绍技术介绍功能介绍核心代码数据库参考 系统效果图 前言 示 文章底部名片,获取项目的完整演示视频,免费解答技术疑问 项目介绍 小型超市商品管理系统是一款针对小型超市日常运营需求设计的软件解决方案。该系统主要内容有商品类别…

【JS】无法阻止屏幕滚动

监听滚轮事件,阻止默认行为,但未生效,且控制台报错。 window.addEventListener(wheel, (e) > {e.preventDefault(); })这是因为现代浏览器使用 Passive 事件监听器,默认启用了 passive 模式以确保性能,不会调用 pr…

【软件安装与配置】Redis for Windows

1. 下载 Redis Redis 官方没有直接支持 Windows 的安装程序,但可以使用第三方的 Windows 版本。推荐使用 Memurai 或从 Microsoft archive 提供的 Redis for Windows 下载。 2. 安装 Redis 下载适合 Windows 的安装包,本文以Microsoft archive安装包为…

Git_IDEA集成Git

Git_IDEA集成Git 配置 Git 忽略文件 创建忽略规则文件 引用忽略配置文件 定位 Git 程序 初始化本地库 添加到暂存区 提交到本地库 切换版本 创建分支 切换分支 合并分支 解决冲突 配置 Git 忽略文件 创建忽略规则文件 引用忽略配置文件 在 .gitconfig 文件中进行&…

[Git]一文速通

概述 Git是一个分布式版本控制工具,主要用于管理开发过程中的源代码文件(Java类、xml文件、html页面等, )在软件开发过程中被广泛使用 Git的作用 代码回溯版本切换多人协作远程备份 通过Git 仓库来存储和管理代码 文件,Git 仓库分为两种: 本地仓库: 开…

C++和OpenGL实现3D游戏编程【连载15】——着色器初步

🔥C和OpenGL实现3D游戏编程【目录】 1、本节实现的内容 上一节我们介绍了通过VBO、VAO和EBO怎样将顶点发送到GPU显存,利用GPU与显存之间的高效处理速度,来提高我们的图形渲染效率。那么在此过程中,我们又可以通过着色器&#xff…

webstorm 编辑器配置及配置迁移

1.下载地址 WebStorm:JetBrains 出品的 JavaScript 和 TypeScript IDE 其他版本下载地址 2.安装 点击下一步安装,可根据需要是否删除已有版本 注意: 完成安装后需要激活 3.设置快捷键 以下为个人常用可跳过或根据需要设置 如&#xff1a…

字幕怎么自动生成?教你5种视频加字幕方法

在这个短视频时代,视频内容已成为传播信息、娱乐大众的重要载体。而字幕作为视频不可或缺的一部分,不仅能够提升观众的观看体验,还能跨越语言障碍,让所有观众都能享受视频的魅力。但怎么给视频加上字幕呢?下面给大家分…

vulnhub靶场之JOY

一.环境搭建 1.靶场描述 Does penetration testing spark joy? If it does, this machine is for you. This machine is full of services, full of fun, but how many ways are there to align the stars? Perhaps, just like the child in all of us, we may find joy in …