MicroDiffusion——采用新的掩码方法和改进的 Transformer 架构,实现了低预算的扩散模型
介绍
论文地址:https://arxiv.org/abs/2407.15811
现代图像生成模型擅长创建自然、高质量的内容,每年生成的图像超过十亿幅。然而,从头开始训练这些模型极其昂贵和耗时。文本到图像(T2I)扩散模型降低了部分计算成本,但仍需要大量资源。
目前最先进的技术需要大约 18 000 个 A100 GPU 小时,而使用 8 个 H100 GPU 进行训练则需要一个多月的时间。此外,该技术通常依赖于大型或专有数据集,因此难以普及。
在这篇评论性论文中,我们开发了一种低成本、端到端文本到图像扩散建模管道,目的是在没有大型数据集的情况下显著降低成本。它侧重于基于视觉变换器的潜在扩散模型,利用其简单的设计和广泛的适用性。为了降低计算成本,可通过随机屏蔽输入标记来减少每幅图像需要处理的斑块数量。本文克服了现有遮蔽方法在高遮蔽率下性能下降的难题。
为了克服文本到图像扩散模型性能不佳的问题,本文提出了一种 "延迟掩蔽 "策略。通过在轻量级补丁混合器中处理补丁,然后将其输入扩散变换器,可以低成本实现可靠的训练,同时即使在高掩蔽率下也能保留语义信息。它还结合了变压器架构的最新发展,以提高大规模训练的性能。
该实验训练了一个 1.16 亿参数的稀疏扩散变换器,预算仅为 1,890 美元、3,700 万张图像和 75% 的屏蔽率。结果,在 COCO 数据集上零镜头生成的 FID 达到了 12.7。在一台 8×H100 GPU 机器上的训练时间仅为 2.6 天,与目前最先进的方法(37.6 天,GPU 成本 28,400 美元)相比缩短了 14 倍。
建议方法
延迟掩蔽
由于变换器的计算复杂度与序列的长度成正比,降低训练成本的一种方法是通过使用大尺寸补丁来减少序列,如图 1-b 所示。使用大尺寸补丁可使每幅图像的补丁数量呈二次方减少,但由于图像的大区域会被主动压缩成单个补丁,因此会显著降低性能。
一种方法是使用遮罩去除变换器输入层中的一些斑块,如图 1-c 所示,同时保持斑块大小。这种方法类似于卷积网络中的随机裁剪训练,但遮蔽补丁可以在图像的非连续区域进行训练。这种方法被广泛应用于视觉和语言领域。
图 1-d 中的MaskDiT还增加了补充自编码损失,以鼓励从遮蔽的斑块中学习表示法,从而促进遮蔽斑块的重建。这种方法屏蔽了 75% 的输入图像,大大降低了计算成本。
图 1.压缩补丁序列以降低计算成本。
然而,高遮罩率会大大降低转换器的整体性能:即使使用 MaskDiT,也只能看到与简单遮罩相比的微弱改进。这是因为即使采用这种方法,大部分图像斑块也会在输入层被去除。
本文引入了一个名为 "补丁混合器 "的预处理模块,用于在屏蔽之前处理补丁嵌入。这可确保未屏蔽的补丁保留整个图像的信息,从而提高学习效率。这种方法有可能提高性能,同时在计算上与现有的 MaskDiT 策略相当。
补丁混合器和学习障碍
补片混合器指的是任何能够融合单个补片嵌入的神经架构。在变换器模型中,这一目标自然可以通过注意机制和前馈层的结合来实现。因此,本文使用轻量级变压器(只有几层)作为补片混合器。输入序列标记经补丁混合器处理后,将被屏蔽(图 2e)。假定掩码为二进制 m,则使用以下损失函数对模型进行训练。
引入专家混合(MoE)和分层缩放的变换器架构
论文采用了先进变压器结构的创新技术,在计算受限的情况下提高了模型性能。
- 专家混合物(MoE,Zhou 等人,2022 年):使用 MoE 层扩展模型的参数和表现力,同时避免训练成本的显著增加 简化的 MoE 层与专家选择路由允许额外的辅助损失函数无需调整负载。
- 分层缩放 (Mehta 等人,2024 年 ):这种方法已被证明能提高大型语言模型的性能,其中变换器块的宽度(隐藏层的维度)随深度线性增加。更多的参数被分配给更深的层,以学习更复杂的特征。
整体架构如图 2 所示。
图 2:拟议方法的总体概览。
试验
验证延迟遮蔽和补丁混合器的有效性
当许多补丁被遮蔽时,遮蔽性能会下降;Zheng 等人(2024 年)指出,当遮蔽率超过 50%,MaskDiT 的性能会显著下降。本文评估了遮蔽率高达 87.5% 时的性能,并将其与不使用补丁混合器的传统天真遮蔽方法进行了比较。本文中的 "延迟掩蔽 "使用了一个四层变压器块贴片混合器,其参数小于主干变压器参数的 10%。两者都使用了设置完全相同的 AdamW 优化器。
图 3 对结果进行了总结。延迟掩蔽在所有指标上都明显优于天真掩蔽和MaskDiT,表明随着掩蔽率的增加,性能差异也在扩大。例如,在屏蔽率为 75% 时,原始屏蔽的 FID 得分为 80,MaskDiT 的FID 得分为16.5,而拟议方法的 FID 得分为 5.03,优于未屏蔽时的 3.79。
图 3:验证延迟屏蔽和贴片混频器的有效性。
验证 "专家混合 "和 "分层缩放 "的有效性
分层缩放: 使用 DiT-Tiny 架构进行的实验比较了分层缩放和恒宽变换器与天真屏蔽。两个模型都在相同的计算负荷下进行了相同时间的训练。在所有性能指标上,逐层缩放方法始终优于恒定宽度模型,而且在屏蔽训练中更为有效。
专家混合物(MoE): 测试了在交替区块中具有 MoE 层的 DiT-Tiny/2 变压器。总体性能与无 MoE 层的基线模型相似,Clip-score 略有提高(从 28.11 到 28.66),FID 分数有所下降(从 6.92 到 6.98)。改进幅度有限的原因是 60K 步的训练和每位专家看到的样本量较小。
与以往研究的比较
COCO 数据集(表 1)上的零镜头图像生成: 根据标题生成 30 000 幅图像,并使用 FID-30K 比较其与真实图像的分布情况。拟议方法的FID-30K 得分为 12.66,与之前的低成本训练方法相比,计算成本降低了 14 倍,而且不依赖于专有数据集。该方法的计算成本也比 Würstchen 低 19 倍(Pernias et al.)
表 1:在 COCO 数据集上生成零镜头图像
详细图像生成比较**(表 2)****:**GenEval(Ghosh 等人,2024 年)用于评估生成物体位置、共现、数量和颜色的能力。与 Stable-DiffusionXL-turbo 和 PixArt-α 模型相比,拟议方法在单个物体生成方面的准确性接近完美,与 Stable-Diffusion 变体相当,优于 Stable-Diffusion-1.5。在以下方面也表现出卓越的性能
表 2.详细图像生成对比
总结
本评论文章重点讨论了旨在降低扩散变换器训练计算成本的补丁掩蔽策略。本文提出了一种 "延迟掩蔽 "策略,以缓解现有掩蔽方法的不足,并显示了所有掩蔽比率下的显著性能改进。
特别是使用了 75% 的延迟掩蔽率,并在真实和合成图像数据集上进行了大规模训练。尽管与最先进的技术相比成本大大降低,但还是取得了具有竞争力的零镜头图像生成性能结果。希望这种低成本的训练机制能鼓励更多研究人员参与大规模扩散模型的训练和开发。
相关文章:

MicroDiffusion——采用新的掩码方法和改进的 Transformer 架构,实现了低预算的扩散模型
介绍 论文地址:https://arxiv.org/abs/2407.15811 现代图像生成模型擅长创建自然、高质量的内容,每年生成的图像超过十亿幅。然而,从头开始训练这些模型极其昂贵和耗时。文本到图像(T2I)扩散模型降低了部分计算成本&a…...
QWT 之 QwtPlotDirectPainter直接绘制
QwtPlotDirectPainter 是 Qwt 库中用于直接在 QwtPlot 的画布上绘制图形的一个类。它提供了一种高效的方法来实时更新图表,特别适合需要频繁更新的数据可视化应用,例如实时数据流的显示。 使用 QwtPlotDirectPainter 的主要优势在于它可以绕过 QwtPlot 的…...

埃斯顿机器人程序案例多个点位使用变量
多个点位使用变量取放...
【数据分析】贝叶斯定理
文章目录 一、贝叶斯定理的基本形式二、贝叶斯定理的推导三、贝叶斯定理的应用四、贝叶斯定理的优势与挑战 贝叶斯定理(Bayes Theorem)是概率论中的一个重要公式,它提供了一种根据已有信息更新事件发生概率的方式。贝叶斯定理的核心思想是通过…...

学AI编程的Prompt工程,marscode
利用marscode做个创意应用 Datawhale-AI活动 首先把自己的创意告诉marscode,marscode会针对你的创意开始写代码。如果在把创意给marscode前有更好的梳理,会有更好的结果。 对于一个新开始的项目,只需要点击apply进行应用 由于ai的效果不稳定…...
python中的与时间相关的模块
python中的与时间相关的模块 1. time 模块2. datetime 模块3. calendar 模块4. timeit 模块5. pytz 模块6. dateutil 模块参考资料 1. time 模块 time 模块提供了时间相关的函数,主要用于测量时间间隔、获取当前时间、格式化时间等 主要功能 获取当前时间ÿ…...
【Python运维】构建基于Python的自动化运维平台:用Flask和Celery
《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 在现代IT运维中,自动化运维平台扮演着至关重要的角色,它能够显著提高运维效率,减少人为错误,并且增强系统的可维护性。本文将引导读者如…...

Qt 12.28 day3
作业: 1】 思维导图 2】 在登录界面的登录取消按钮进行以下设置: 使用手动连接,将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中,在自定义的槽函数中调用关闭函数 将登录按钮使用qt5版本的连接到自定义的槽函数中&a…...
Java爬虫获取速卖通(AliExpress)商品详情
1. 环境准备 在开始编写爬虫之前,需要准备以下环境和工具: Java开发环境:确保你的计算机上安装了Java开发工具包(JDK)。IDE:选择一个Java集成开发环境,如IntelliJ IDEA、Eclipse等。第三方库&…...

Learning Multi-Scale Photo Exposure Correction
Abstract 用错误的曝光捕捉照片仍然是相机成像的主要错误来源。曝光问题可分为以下两类:(i)曝光过度,即相机曝光时间过长,导致图像区域明亮和褪色;(ii)曝光不足,即曝光时间过短,导致图像区域变暗。曝光不足和曝光过度都会大大降低…...
【Rust自学】7.4. use关键字 Pt.1:use的使用与as关键字
喜欢的话别忘了点赞、收藏加关注哦,对接下来的教程有兴趣的可以关注专栏。谢谢喵!(・ω・) 7.4.1. use的作用 use的作用是将路径导入到当前作用域内。而引入的内容仍然是遵守私有性原则,也就是只有公共的部分引入进来才…...
C++ 设计模式:门面模式(Facade Pattern)
链接:C 设计模式 链接:C 设计模式 - 代理模式 链接:C 设计模式 - 中介者 链接:C 设计模式 - 适配器 门面模式(Facade Pattern)是一种结构型设计模式,它为子系统中的一组接口提供一个一致&#…...

从0到100:基于Java的大学选修课选课小程序开发笔记(上)
背景 为学生提供便捷的课程选择方式,并帮助学校进行课程管理和资源调配;主要功能包括:课程展示,自主选课,取消选课,后台录入课程,统计每门课程报名情况,导出数据,用户管…...
【算法题解】B. President‘s Office - Python实现
题目描述 Berland的总统办公室内设有多个办公桌,其中总统和其属下各自拥有独特颜色的办公桌。总统希望统计哪些属下的办公桌紧邻他的办公桌,但不记得确切的数量。 输入描述: 第一行包含三个值 n, m, c,分别是办公室的长度、宽度…...
【Spring Boot 】详解
Spring Boot 详解 一、Spring Boot 概述 (一)产生背景 随着 Java 应用的日益复杂,传统 Spring 框架在项目搭建与配置方面愈发繁琐,大量的 XML 配置、依赖管理等工作耗费开发者诸多精力。为解决这些痛点,Spring Boot …...
Redisson 框架详解
目录 一.为什么要使用分布式锁? 二.Redisson 的基本使用: 1.添加 Redisson 依赖: 2.在 application.yml 配置 Redis: 3. 创建 Redisson 客户端: (1)单节点模式: (…...
正确导入MapStruct并避免与Lombok编译冲突的深入分析
正确导入MapStruct并避免与Lombok编译冲突的深入分析 一、MapStruct与Lombok概述 1.1 MapStruct简介 MapStruct是一个代码生成器,它基于约定优于配置的原则,通过注解处理器在编译时自动生成源代码,实现对象之间的属性映射。MapStruct的优势在于减少样板代码,提高开发效率…...
K8S 黑魔法之如何从 Pod 拿到节点的命令行
搞 K8S 运维的时候,偶尔会遇到一个难题,定位到问题出在某个节点上,而由于权限审批,错误配置等等各种原因,没有办法拿到节点的 SSH 权限,无法进入节点命令行进一步排障。 这个时候,就可以用这个…...
【bluedroid】A2dp Source播放流程源码分析(4)
接上集分析:【bluedroid】A2dp Source播放流程源码分析(3)-CSDN博客 蓝牙和AUDIO之间的接口 蓝牙和audio之间的通信是通过socket,管理socket中的文件是UIPC,UIPC管理两条socket。 A2DP_CTRL_PATH /data/misc/bluedroid/.a2dp_ctrl A2DP_DATA_PATH /data/misc/bluedroid…...

计算机网络 (9)数据链路层
前言 计算机网络中的数据链路层(Data Link Layer)是OSI(开放系统互连)参考模型中的第二层,位于物理层和网络层之间。它在物理层提供的服务基础上,负责在相邻节点之间建立、维护和终止链路,确保数…...

业务系统对接大模型的基础方案:架构设计与关键步骤
业务系统对接大模型:架构设计与关键步骤 在当今数字化转型的浪潮中,大语言模型(LLM)已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中,不仅可以优化用户体验,还能为业务决策提供…...

label-studio的使用教程(导入本地路径)
文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...
脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)
一、数据处理与分析实战 (一)实时滤波与参数调整 基础滤波操作 60Hz 工频滤波:勾选界面右侧 “60Hz” 复选框,可有效抑制电网干扰(适用于北美地区,欧洲用户可调整为 50Hz)。 平滑处理&…...

【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器
一.自适应梯度算法Adagrad概述 Adagrad(Adaptive Gradient Algorithm)是一种自适应学习率的优化算法,由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率,适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...

安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件
在选煤厂、化工厂、钢铁厂等过程生产型企业,其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进,需提前预防假检、错检、漏检,推动智慧生产运维系统数据的流动和现场赋能应用。同时,…...
深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法
深入浅出:JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中,随机数的生成看似简单,却隐藏着许多玄机。无论是生成密码、加密密钥,还是创建安全令牌,随机数的质量直接关系到系统的安全性。Jav…...
1688商品列表API与其他数据源的对接思路
将1688商品列表API与其他数据源对接时,需结合业务场景设计数据流转链路,重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点: 一、核心对接场景与目标 商品数据同步 场景:将1688商品信息…...
大语言模型如何处理长文本?常用文本分割技术详解
为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...

智能在线客服平台:数字化时代企业连接用户的 AI 中枢
随着互联网技术的飞速发展,消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁,不仅优化了客户体验,还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用,并…...
Linux云原生安全:零信任架构与机密计算
Linux云原生安全:零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言:云原生安全的范式革命 随着云原生技术的普及,安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测,到2025年,零信任架构将成为超…...