当前位置: 首页 > news >正文

表征对齐在训练DiT模型中的重要性

Diffusion Models专栏文章汇总:入门与实战

前言:训练过DiT模型的读者们肯定有所体会,相比于UNet模型训练难度大了很多,模型不仅很难收敛,而且非常容易训崩,其中一个很重要的原因是没有进行表征对齐!这篇博客详细介绍表征对齐在训练DiT模型中的重要性。

 

目录

训练过程的问题

训练DiT模型为什么慢?

仅仅依赖"渲染"损失是不够的

多层DiT之间表征能力的区别

表征对齐的具体方法

相关资料


训练过程的问题

扩散模型虽然强大,但训练起来却是个噩梦。训练一个DiT/SiT模型需要700万次迭代,要跑好几周才能达到论文里报告的FID分数。

这简直是在考验研究者的耐心和计算资源!

训练DiT模型为什么慢?

  • 扩散transformer 确实能学到不错的表征,而且生成效果越好,表征质量也越高。

  • 但是,这些表征还是比不上像DINOv2、JEPA或MAE这些自监督学习方法得到的表征。

  • 当我们测量扩散模型特征和DINOv2特征的对齐程度时,发现扩散模型在训练过程中确实在慢慢进步,但这个过程实在是太慢了。

仅仅依赖"渲染"损失是不够的

如果你只关注重建漂亮的像素,就无法过滤掉输入中的无关细节——而这恰恰是学习强大表征的关键。

看来,即使你的目标是生成好看的图像,你也需要先学习一个强大的表征,然后才能处理那些让图像看起来漂亮的细节。

多层DiT之间表征能力的区别

仅通过对齐前几个DiT块可以实现足够的表示对齐。反过来,这允许DiT的后续层专注于基于对齐表示捕获高频细节,进一步提高生成性能。

如下图,学习能力有一个峰值,在20层之后显著下降。

表征对齐的具体方法

REPA 通过最大化预训练表示 y∗ 和隐藏状态 ht 之间的补丁相似性来实现对齐:

最终的loss如下:

相关资料

- Paper: https://arxiv.org/abs/2410.06940  

- Project page: https://sihyun.me/REPA/  

- Code: https://github.com/sihyun-yu/REPA  

相关文章:

表征对齐在训练DiT模型中的重要性

Diffusion Models专栏文章汇总:入门与实战 前言:训练过DiT模型的读者们肯定有所体会,相比于UNet模型训练难度大了很多,模型不仅很难收敛,而且非常容易训崩,其中一个很重要的原因是没有进行表征对齐&#xf…...

Qt中CMakeLists.txt解释大全

‌Qt从Qt5.15版本开始正式推荐使用CMake进行项目管理‌。 在Qt 5.15之前,虽然可以使用CMake进行构建,但Qt官方更推荐使用qmake。 然而,从Qt5.15开始,Qt官方正式推荐使用CMake作为主要的构建系统,并在Qt 6中进一步加强了…...

【在 PyTorch 中使用 tqdm 显示训练进度条,并解决常见错误TypeError: ‘module‘ object is not callable】

在 PyTorch 中使用 tqdm 显示训练进度条,并解决常见错误TypeError: module object is not callable 在进行深度学习模型训练时,尤其是在处理大规模数据时,实时了解训练过程中的进展是非常重要的。为了实现这一点,我们可以使用 tq…...

数据结构-堆的实现和应用

目录 1.堆的概念 2.堆的构建 3.堆的实现 4.堆的功能实现 4.1堆的初始化 4.2堆的销毁 4.3堆的插入 4.3.1向上调整 4.4堆的删除 4.4.1向下调整法 ​编辑4.5取堆顶 5. 向上调整法和向下调整法比较 6.堆的应用 6.1TOP-K问题 6.2TOP-K思路 6.2.1用前n个数据来建堆 6.…...

数据分析的尽头是web APP?

数据分析的尽头是web APP? 在做了一些数据分析的项目,也制作了一些数据分析相关的web APP之后,总结自己的一些想法和大家分享。 1.web APP是呈现数据分析结果的另外一种形式。 数据分析常见的结果是数据分析报告,可以是PPT或者…...

YOLO系列论文综述(从YOLOv1到YOLOv11)【第3篇:YOLOv1——YOLO的开山之作】

YOLOv1 1 摘要2 YOLO: You Only Look Once2.1 如何工作2.2 网络架构2.3 训练2.4 优缺点 YOLO系列博文: 【第1篇:概述物体检测算法发展史、YOLO应用领域、评价指标和NMS】【第2篇:YOLO系列论文、代码和主要优缺点汇总】 ——————————…...

容器和它的隔离机制

什么是容器和它的隔离机制? 容器 是一种轻量化的虚拟化技术,它允许多个应用程序共享同一个操作系统(OS)内核,同时为每个应用程序提供自己的运行环境。容器通过利用 Linux 的内核功能(如 Namespaces 和 Cgr…...

【数据结构与算法】排序算法总结:冒泡 / 快排 / 直接插入 / 希尔 / 简单选择 / 堆排序 / 归并排序

1 排序 1.1 冒泡 内排序的交换排序类别 1.1.1 普通实现 public class BubbleSort {/*** 基本的 冒泡排序*/public static void bubbleSort(int[] srcArray) {int i,j; // 用于存放数组下标int temp 0; // 用于交换数值时临时存放值for(i0;i<srcArray.length-1;i){// j …...

Windows Serv 2019 虚拟机 安装Oracle19c,图文详情(超详细)

1、下载安装文件 Oracle官网下载直链&#xff1a;https://www.oracle.com/database/technologies/oracle-database-software-downloads.html#db_ee 夸克网盘下载&#xff1a;https://pan.quark.cn/s/1460a663ee83 2、新建 Windows Server 2019 虚拟机 &#xff08;超详细&a…...

数字孪生开发之 Three.js 插件资源库(2)

在当今数字化快速发展的时代&#xff0c;数字孪生技术正逐渐成为各个领域的关键技术之一。它通过创建物理实体的虚拟副本&#xff0c;实现对实体的实时监测、模拟和优化&#xff0c;为企业和组织带来了诸多好处&#xff0c;如提高生产效率、降低成本、改进产品质量等。然而&…...

小米C++ 面试题及参考答案下(120道面试题覆盖各种类型八股文)

指针和引用的区别?怎么实现的? 指针和引用有以下一些主要区别。 从概念上来说,指针是一个变量,它存储的是另一个变量的地址。可以通过指针来间接访问所指向的变量。例如,我们定义一个整型指针int *p;,它可以指向一个整型变量的内存地址。而引用是一个别名,它必须在定义的…...

OpenOCD之J-Link下载

NOTE&#xff1a;此篇文章由笔者的 VSCode编辑GCC for ARM交叉编译工具链Makefile构建OpenOCD调试&#xff08;基于STM32的标准库&#xff09;派生而来。 1.下载USB Dirver Tool.exe&#xff0c;选择J-Link dirver&#xff0c;替换成WinUSB驱动。&#xff08;⭐USB Dirver Tool…...

华为云云连接+squid进行正向代理上网冲浪

1 概述 ‌Squid‌是一个高性能的代理缓存服务器&#xff0c;主要用于缓冲Internet数据。它支持多种协议&#xff0c;包括FTP、gopher、HTTPS和HTTP。Squid通过一个单独的、非模块化的、I/O驱动的进程来处理所有的客户端请求&#xff0c;这使得它在处理请求时具有较高的效率‌。…...

情绪识别项目

文章目录 1、mp4s文件转mp3文件2、Audition下载3、Audition安装4、Audition使用&#xff1a; 1、mp4s文件转mp3文件 在线转&#xff1a;Convert audio to MP3&#xff08;https://audio.online-convert.com/convert-to-mp3&#xff09; 2、Audition下载 Audition CC2019/64位…...

【RISC-V CPU debug 专栏 2.2 -- Hart DM States】

文章目录 Hart DM StatesHart 的 DM 状态1. 不存在(Non-existent)2. 不可用(Unavailable)3. 运行(Running)4. 暂停(Halted)状态转换与复位行为状态指示信号Hart DM States 在 RISC-V 调试架构中,每个可以被选择的硬件线程(hart)处于以下四种调试模块(DM)状态之一…...

从零样本到少样本学习:一文读懂 Zero-shot、One-shot 和 Few-shot 的核心原理与应用!

爆款标题&#xff1a; 《从零样本到少样本学习&#xff1a;一文读懂 Zero-shot、One-shot 和 Few-shot 的核心原理与应用&#xff01;》 正文&#xff1a; 在自然语言处理&#xff08;NLP&#xff09;领域&#xff0c;Zero-shot、One-shot 和 Few-shot 学习已经成为衡量大语言…...

【LC】3101. 交替子数组计数

题目描述&#xff1a; 给你一个二进制数组nums 。如果一个子数组中 不存在 两个 相邻 元素的值 相同 的情况&#xff0c;我们称这样的子数组为 交替子数组 。返回数组 nums 中交替子数组的数量。 示例 1&#xff1a; 输入&#xff1a; nums [0,1,1,1] 输出&#xff1a; 5 …...

如何构建SAAS项目

在后台使用JDBC方式动态创建用户输入的数据库信息&#xff08;库名、地址、用户名、密码&#xff09; 执行预先写好的sql文件&#xff08;如mybatis的scriptRunner)执行建表语句及插入基础数据&#xff08;管理员用户、普通用户&#xff09;...

树莓派搭建NextCloud:给数据一个安全的家

前言 NAS有很多方案&#xff0c;常见的有 Nextcloud、Seafile、iStoreOS、Synology、ownCloud 和 OpenMediaVault &#xff0c;以下是他们的特点&#xff1a; 1. Nextcloud 优势&#xff1a; 功能全面&#xff1a;支持文件同步、共享、在线文档编辑、视频会议、日历、联系人…...

深入解读 MongoDB 查询耗时:Execution 和 Fetching 阶段详解

在使用 MongoDB 时&#xff0c;查询性能的分析与优化是开发者关注的重点。MongoDB 的查询过程通常分为两个主要阶段&#xff1a;Execution&#xff08;执行阶段&#xff09;和Fetching&#xff08;拉取阶段&#xff09;。每个阶段的耗时代表不同的性能瓶颈&#xff0c;优化思路…...

LayerDivider:如何用3步将单张插画自动分层为可编辑PSD文件?

LayerDivider&#xff1a;如何用3步将单张插画自动分层为可编辑PSD文件&#xff1f; 【免费下载链接】layerdivider A tool to divide a single illustration into a layered structure. 项目地址: https://gitcode.com/gh_mirrors/la/layerdivider 你是否曾经面对一张精…...

如何零成本测试ZPL标签?Virtual ZPL Printer终极解决方案揭秘

如何零成本测试ZPL标签&#xff1f;Virtual ZPL Printer终极解决方案揭秘 【免费下载链接】Virtual-ZPL-Printer An ethernet based virtual Zebra Label Printer that can be used to test applications that produce bar code labels. 项目地址: https://gitcode.com/gh_mi…...

告别手动建造:TEdit免费地图编辑器如何10倍提升泰拉瑞亚创作效率

告别手动建造&#xff1a;TEdit免费地图编辑器如何10倍提升泰拉瑞亚创作效率 【免费下载链接】Terraria-Map-Editor TEdit - Terraria Map Editor - TEdit is a stand alone, open source map editor for Terraria. It lets you edit maps just like (almost) paint! It also l…...

独立开发者如何利用 Taotoken 的模型广场为不同产品功能匹配合适模型

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 独立开发者如何利用 Taotoken 的模型广场为不同产品功能匹配合适模型 对于独立开发者而言&#xff0c;运营多个小型产品是常态。这…...

从零构建Simscape自定义物理模块:核心语法与实战指南

1. 为什么需要自定义Simscape模块&#xff1f; 在工程仿真领域&#xff0c;Simscape作为MATLAB/Simulink生态系统中的物理建模利器&#xff0c;已经内置了大量基础模块。但真实工程问题往往需要处理特殊结构——比如非标齿轮箱的振动分析、微型热管的热传导模拟&#xff0c;或是…...

5分钟快速上手:XUnity.AutoTranslator游戏实时翻译插件终极指南

5分钟快速上手&#xff1a;XUnity.AutoTranslator游戏实时翻译插件终极指南 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 还在为语言障碍而无法畅玩海外Unity游戏吗&#xff1f;XUnity.AutoTranslator正…...

手把手复现:在MATLAB/Simulink里搭建PMSM的两种解耦模型(附模型下载)

在MATLAB/Simulink中构建永磁同步电机解耦控制模型的实战指南 永磁同步电机&#xff08;PMSM&#xff09;因其高效率和高功率密度&#xff0c;已成为工业驱动和电动汽车领域的核心部件。但对于刚接触电机控制的工程师和学生来说&#xff0c;如何将教科书中的解耦控制理论转化为…...

ScrollNice:用虚拟滚动区域替代鼠标滚轮的Windows效率工具

1. 项目概述&#xff1a;当鼠标滚轮失灵时&#xff0c;我们如何优雅地“滚动”&#xff1f;作为一名长期与代码和文档打交道的开发者&#xff0c;我深知一个顺手的鼠标滚轮有多重要。但现实往往很骨感——无论是用了多年的老鼠标滚轮开始“打滑”&#xff0c;还是在某些需要单手…...

Instill Core:一站式AI应用构建平台,从数据处理到模型部署全流程实战

1. 项目概述&#xff1a;一站式AI应用构建平台如果你正在为如何将一堆杂乱无章的文档、图片、音频视频数据&#xff0c;转化为可供AI模型直接“食用”的格式而头疼&#xff0c;或者厌倦了在模型部署、API编排和数据处理工具之间反复横跳&#xff0c;那么Instill Core的出现&…...

苍穹外卖 项目记录 第四天

第四天任务 完成套餐管理模块所有业务功能&#xff0c;包括&#xff1a;新增套餐套餐分页查询删除套餐修改套餐起售停售套餐每个功能的实现都要按照一般开发流程&#xff1a;需求分析和设计(结合产品原型,接口设计,数据库设计) -> 代码实现 -> 功能测试(成功后提交代码)套…...