【论文阅读】AsyncDiff: Parallelizing Diffusion Models by Asynchronous Denoising

news2024/12/26 10:25:23

论文:2406.06911 (arxiv.org)

代码:czg1225/AsyncDiff: Official implementation of "AsyncDiff: Parallelizing Diffusion Models by Asynchronous Denoising" (github.com)

简介

异步去噪并行化扩散模型。提出了一种新的扩散模型分布式加速方法,该方法在对生成质量影响最小的情况下显著降低了推理延迟。

原理:用异步过程取代顺序去噪过程,允许去噪模型的每个组件在不同的设备上独立运行。

动机:扩散模型的多步顺序去噪特性导致了高累积延迟,无法并行计算。AsyncDiff是一个通用的即插即用加速方案,可以跨多个设备实现模型并行,将噪声预测模型分成多个组件,并将每个组件分配给不同的设备。为了打破组件之间的依赖链,它利用连续扩散步骤中隐藏状态之间的高度相似性,将传统的顺序去噪转换为异步过程。因此,每个组件都便于在单独的设备上并行计算。该策略显著降低了推理延迟,同时对生成质量的影响小。AsyncDiff还可以应用于视频扩散模型。

原理

先验知识

异步扩散模型

为了解决扩散模型中高延迟的局限性,利用多GPU进行分布式推理是一个有前途的解决方案。通过将顺序去噪近似为异步过程,实现了噪声预测模型的并行推理,有效地减少了延迟并打破了顺序执行的限制。

异步去噪。

对于由T步组成的去噪过程,初始w步被指定为预热阶段。在此阶段,去噪模型ϵθ使用标准顺序推理进行操作。在热身步骤之后,不再分割输入图像,而是将去噪模型ϵθ划分为N个顺序分量,表示为。每个组件被划分以处理可比较的计算负载,并分配给不同的设备。

这种划分旨在将每个组件的时间成本均衡到大约,从而减少总体最大延迟。xt的原始噪声预测可以表示为通过这些子模型的级联操作,定义为:

如图2所示,根据计算负荷,将重量级去噪模型ϵθ依次划分为多个分量,并将每个分量分配给单独的设备。核心思想在于通过利用 连续扩散步骤中隐藏状态的高相似性 来解耦 这些级联组件之间的依赖关系

每个组件将前一个组件的前一个步骤的输出作为其原始输出的近似值。这将传统的顺序去噪转换为异步过程,允许组件并行预测不同时间步长的噪声。此外,结合跨步去噪,以跳过冗余计算和减少设备之间的通信频率,进一步提高效率。

尽管每个设备都可以独立地计算其分配的组件,但依赖链仍然存在,因为每个组件的输入ϵθ,n派生自其前一个组件的输出ϵθ,n−1。因此,尽管模型组件分布在多个设备上,但完全并行化受到这些顺序依赖关系的约束。

我们的主要创新是通过利用前面步骤中的隐藏特性来打破级联组件之间的依赖关系。观察结果表明,去噪模型中每个块的隐藏状态在相邻的时间步长上总是表现出很大的相似性。利用这一点,时间步长为t的每个分量都可以将前一个分量在时间步长为t - 1的输出作为其原始输入的近似值。具体来说,第n-th个分量接收输出。对xt的噪声预测表示如下:

在这个新框架中,噪声预测ϵt是从跨N个前时间步执行的组件派生的。这将去噪过程从顺序转换为异步,因为在步骤t + 1完成去噪之前,噪声ϵt的预测已经开始。在每个时间步,N个分量作为下一个N步的噪声预测模型的一部分运行。具体来说,在时间t并行计算的n-th个分量有助于对未来时间步t - N + n的噪声预测。图3使用n设为4的U-net模型描述了这个异步过程。连续扩散步骤之间隐藏状态的强相似性使得异步过程能够很好地模拟原始顺序过程的去噪结果。

并行模型。通过转换到异步去噪策略,消除了同一时间步长内组件之间的依赖关系。这种调整允许提前准备时间步长t的每个组件的输入,从而使N个分裂组件能够跨多个设备并发处理。一旦计算出来,每个组件的输出必须被存储,然后广播到其他设备,以方便后续时间步骤的并行处理。

相比之下,在传统的顺序去噪过程中,每一步的时间成本累积如下:

图3:异步去噪过程概述。将去噪模型ϵθ分为四个分量。在预热阶段之后,提前准备好每个组件的输入,打破依赖链并促进并行处理。

使用

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

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

相关文章

J024_打印电影的全部信息

一、需求描述 展示多部电影的信息。 电影信息包括:电影名称、电影得分、电影票价格。 二、代码实现 2.1 Movie类 package com.itheima.collection;public class Movie {//电影名称private String name;//电影得分private int score;//电影票价格private double…

前端面试题(CSS篇五)

一、设备像素、css 像素、设备独立像素、dpr、ppi 之间的区别? 设备像素指的是物理像素,一般手机的分辨率指的就是设备像素,一个设备的设备像素是不可变的。 css像素和设备独立像素是等价的,不管在何种分辨率的设备上,…

LLaMA2模型开源商用:实力比肩ChatGPT,探索AI新高度

【大模型】可商用且更强的 LLaMA2 来了 LLaMA2 简介 论文 GitHubhuggingface模型列表训练数据训练信息模型信息 许可证参考 LLaMA2 简介 2023年7月19日:Meta 发布开源可商用模型 Llama 2。 Llama 2是一个预训练和微调的生成文本模型的集合,其规模从…

java中反射(Reflection)的4个作用

java中反射(Reflection)的4个作用 作用1、在运行时判断任意一个对象所属的类作用2、在运行时构造任意一个类的对象作用3、在运行时判断任意一个类所具有的成员变量和方法作用4、在运行时调用任意一个对象的方法总结 💖The Begin💖…

shared_ptr 线程安全

为什么 shared_ptr 可以安全地在多个线程中共享? 循环引用 因为shared_ptr std::shared_ptr 的引用计数是线程安全的。这意味着你可以在多个线程中安全地拷贝、赋值和销毁 std::shared_ptr。然而,访问或修改 shared_ptr 所指向的对象时,需要…

SpringBoot彩蛋之定制启动画面

写在前面 在日常开发中,我们经常会看到各种各样的启动画面。例如以下几种 ① spring项目启动画面 ② mybatisplus启动画面 ③若依项目启动画面 还有很多各式各样好看的启动画面,那么怎么定制这些启动画面呢? 一、小试牛刀 ① 新建一个Spr…

聊聊数据库变更管控的白屏化

在前文中介绍了当涉及到数据库相关的变更如数据更新或者误删表等误操作时,通过延迟库或者闪回等功能来恢复业务,这些已经属于事后的故障处理了。当故障发生后,所要面临的是故障影响的不可控,所面临的损失也是不可预估的。就像最近…

【Excel】求和带文字的数据

目录标题 1. 给出样例2. CtrlE3. CtrlH → A替换为 → 全部替换 1. 给出样例 2. CtrlE 3. CtrlH → A替换为 → 全部替换

从零开始的python学习生活

pycharm部分好用快捷键 变量名的定义 与之前学习过的语言有所不同的是,python中变量名的定义更加的简洁 such as 整形。浮点型和字符串的定义 money50 haha13.14 gaga"hello"字符串的定义依然是需要加上引号,也不需要写;了 字符…

重温express

前言 很久之前囫囵吞枣的学过一点node,最近决定用nodevue写个博客项目,所以重新学习了express的相关内容。 初始搭建 创建项目 npm init给项目命名创建项目终端进入项目,安装express依赖,npm i expressjs文件中引入express使用…

「C++系列」C++ 常量知识点-细致讲解

文章目录 一、C 常量定义1. 使用#define预处理指令2. 使用const关键字3. 局部常量4. 全局常量5. 指针常量6. 枚举(Enumerations)7. constexpr(C11及以后) 二、C 整数常量1. 十进制整数常量2. 八进制整数常量3. 十六进制整数常量4.…

RAG理论:ES混合搜索BM25+kNN(cosine)以及归一化

接前一篇:RAG实践:ES混合搜索BM25+kNN(cosine) https://blog.csdn.net/Xin_101/article/details/140230948 本文主要讲解混合搜索相关理论以及计算推导过程, 包括BM25、kNN以及ES中使用混合搜索分数计算过程。 详细讲解: (1)ES中如何通过BM25计算关键词搜索分数; (2)…

Postman使用指南①网页版使用

postman官网地址:Postman API Platform 进入后点击右上角免费注册,注册后登录 登录之后即可在网页使用,无需下载

static的理论学习

在说到static之前,需要先明确变量类型: 而在聊到变量类型之前我们可以将变量的两个属性好好学一学 变量的两个属性 作用域(scope): 从内存的角度来看,就是变量存放在栈(stack)中&…

最新版Python安装教程

一、安装Python 1.下载Python 访问Python官网: https:/www.oython.orgl 点击downloads按钮,在下拉框中选择系统类型(windows/Mac OS./Linux等) 选择下载最新稳定版本的Python 以下内容以演示安装Windows操作系统64位的python 左边是稳定发布版本Stabl…

6000字以上论文参考:基于Java+SpringMvc+Vue技术的实验室管理系统设计与实现

可参考:基于JavaSpringMvcVue技术的实验室管理系统设计与实现(6000字以上论文参考)-CSDN博客 论文参考:

算法day03 桶排序 数据结构分类 时间复杂度 异或运算

学数据结构之前 必看_哔哩哔哩_bilibili 1.认识复杂度和简单排序算法_哔哩哔哩_bilibili 桶排序(Bucket sort)------时间复杂度为O(n)的排序方法(一)_多桶排序时间复杂度-CSDN博客 桶排序 测试场景:数组中有10000个随…

【Excel】输入内容自动添加边框线

1. 选中表格区域 → 新建条件规则 2. 设置公式 3. 设置格式 测试生效

[激光原理与应用-100]:南京科耐激光-激光焊接-焊中检测-智能制程监测系统IPM介绍 - 4 - 3C电池行业应用 - 不同的电池类型、焊接方式类型

目录 前言: 一、激光在3C行业的应用概述 1.1 概述 1.2 激光焊接在3C-电池行业的应用 1.3 动力电池的激光焊接工艺 1.3.1 概述 1.3.2 动力电池常见的焊接应用 1.电池壳体与盖板焊接 2.电池防爆阀密封 焊接 二、不同的电池的外形 2.1 软包锂电池 2.1.1 概述…

数字传输系统的演变与应用

引言 在现代通信网络中,数字传输系统扮演着至关重要的角色。本文将用简单易懂的语言,向初学者介绍PCM速率体制、SONET/SDH以及光网络,让大家更好地理解这些技术。 2.5.1 PCM速率体制 数字传输系统简介 在早期电话网络中,用户电话…