(ICLR=2025)生成的表征对齐:训练扩散Transformer比你想象的更简单
生成的表征对齐:训练扩散Transformer比你想象的更简单
paper是KAIST发表在ICLR 2025的工作
paper title:REPRESENTATION ALIGNMENT FOR GENERATION: TRAINING DIFFUSION TRANSFORMERS IS EASIER THAN YOU THINK
Code:链接
ABSTRACT
最近的研究表明,扩散模型中的去噪过程能够在模型内部产生有意义的(判别性)表示,尽管这些表示的质量仍然落后于通过最近的自监督学习方法学习的表示。我们认为,训练大规模扩散模型以进行生成的主要瓶颈之一在于如何有效地学习这些表示。此外,通过引入高质量的外部视觉表示,而不是仅依赖扩散模型独立学习这些表示,训练可以变得更加容易。我们通过引入一种简单的正则化方法——表示对齐(REPA),来研究这一点,该方法将去噪网络中噪声输入隐藏状态的投影与从外部预训练视觉编码器获得的干净图像表示对齐。结果非常显著:当应用于流行的扩散和基于流的Transformer模型(如DiTs和SiTs)时,我们的简单策略在训练效率和生成质量上都取得了显著的提升。例如,我们的方法可以将SiT训练速度提高超过17.5倍,并且在不到40万个步骤的训练中,达到与经过700万步骤训练的SiT-XL模型(无需分类器引导)的相同性能。在最终生成质量方面,我们的方法通过使用分类器引导和引导间隔,达到了FID=1.42的最新成果。
图1:表示对齐使扩散变压器训练变得明显容易。我们的框架REPA明确地将扩散模型表示与通过简单的正则化的强大预验证的视觉表示一致。值得注意的是,模型训练变得更加高效,高效,并且比vanilla模型的收敛速度> 17.5倍。
1 INTRODUCTION
基于去噪的生成模型,如扩散模型(Ho et al., 2020; Song et al., 2021)和基于流的模型(Albergo & Vanden-Eijnden, 2023; Lipman et al., 2022; Liu et al., 2023),已成为生成高维视觉数据的一种可扩展方法。它们在诸如零样本文本到图像(Podell et al., 2023; Saharia et al., 2022; Esser et al., 2024)或文本到视频(Polyak et al., 2024; Brooks et al., 2024)生成等具有挑战性的任务中取得了显著成功。
近期的研究探讨了将扩散模型用作表示学习方法(Li et al., 2023a; Xiang et al., 2023; Chen et al., 2024c; Mukhopadhyay et al., 2021),并表明这些模型能够在其隐藏状态中学习到判别性特征,同时更优的扩散模型能够学习到更好的表示(Xiang et al., 2023)。实际上,这一观察结果与早期采用去噪分数匹配(denoising score matching)(Vincent, 2011)的方法密切相关,该方法是一种自监督学习方法(Bengio et al., 2013),其隐式地学习一个表示 h h h,作为去噪自编码器 s θ ( x ~ ) s_{\theta}(\tilde{x}) sθ(x~) 的隐藏状态,通过从被破坏的输入 $ \tilde{x}$ 中重建 x x x(Yang & Wang, 2023)。然而,重建任务可能并不适用于学习优良的表示,因为它无法消除 x x x 中不必要的细节以用于表示学习(LeCun, 2022; Assran et al., 2023)。
我们的方法。 在本研究中,我们确定了训练扩散模型的主要挑战在于需要学习一个高质量的内部表示 h h h。我们表明,对于生成型扩散模型而言,训练过程在借助外部表示 y ∗ y_* y∗ 进行支持时会变得显著更简单且更高效。具体而言,我们提出了一种简单的正则化技术,该技术利用了自监督视觉表示的最新进展,以 y ∗ y_* y∗ 作为辅助,从而在训练效率和扩散变换器的生成质量方面实现了显著提升。
我们首先对近期的扩散变换器(Peebles & Xie, 2023; Ma et al., 2024a)以及最先进的自监督视觉模型 DINOv2(Oquab et al., 2024)进行实证分析。与以往研究(Xiang et al., 2023)类似,我们首先观察到预训练的扩散模型确实能够学习有意义的判别性表示(如线性探测实验所示,见图 2a)。然而,这些表示明显逊色于 DINOv2 生成的表示。
随后,我们发现扩散模型所学习的表示与 DINOv2 的表示仍然较为不对齐(图 2b),我们通过测量表示对齐(representation alignment)(Huh et al., 2024)对此进行研究。最终,我们观察到扩散模型和 DINOv2 之间的这种对齐性在训练时间延长以及模型规模增大时会持续提升(图 2c)。
图2:预验证的SIT模型的比对行为。我们经验研究了Dinov2-G和原始的SIT-XL/2检查点之间的特征对齐,该检查点训练了7M迭代。 (a)虽然SIT学习了语义上有意义的表示,但与Dinov2相比,仍然存在显着的差距。 (b)使用cknna(Huh等,2024),我们观察到SIT已经显示出与Dinov2的一致性,尽管与其他视觉编码器相比,其绝对值较低。 (c)通过更大的模型和更长的训练来改善对齐方式,但是进度仍然缓慢且不足。
这些见解启发我们通过引入外部自监督表示来增强生成模型。然而,在使用现成的自监督视觉编码器(例如,通过微调编码器以适应生成任务)时,这种方法并不直观。第一个挑战是输入不匹配:扩散模型处理的是带有噪声的输入 x ~ \tilde{x} x~,而大多数自监督学习编码器是在干净的图像 x x x 上进行训练的。这一问题在现代**潜变量扩散模型(latent diffusion models)中更加明显,因为它们以经过预训练的 VAE 编码器(Rombach et al., 2022)压缩后的潜变量图像 z = E ( x ) z = E(x) z=E(x) 作为输入。此外,这些现成的视觉编码器并非专为重建或生成任务而设计。为了解决这些技术难题,我们引导扩散模型的特征学习,采用正则化(regularization)**技术,将预训练的自监督表示蒸馏到扩散表示中,从而提供了一种灵活的方式来整合高质量表示。
图3:桥接表示差距:(a)我们的方法,repa显着降低了扩散变压器和dinov2之间的“语义差距”,如成像网分类的线性探测结果所证明。 (b)使用REPA,即使仅几层(例如8)层,扩散变压器和DINOV2之间的比对也大大改善。 (c)值得注意的是,随着对齐方式的改善,我们可以推动SIT模型的一代代表性信封:在相同数量的训练迭代次数中,它既可以提供更好的生成质量,又提供更强的线性探测结果。我们使用一个在第8层训练了REPA的单个网络,并在不同层进行评估。
具体而言,我们提出了表示对齐(REPresentation Alignment, REPA),这是一种基于最新扩散变换器架构(Peebles & Xie, 2023)的简单正则化技术。本质上,REPA 通过蒸馏预训练的自监督视觉表示 y ∗ y_* y∗(源自干净图像 x x x),将其融入扩散变换器的表示 h h h,用于去噪过程中处理带噪输入 x ~ \tilde{x} x~。该正则化减少了表示 h h h 和自监督目标表示 y ∗ y_* y∗ 之间的语义差距(如图 3a 所示),并使其更好地对齐(如图 3b 所示)。值得注意的是,这种增强的对齐显著提升了扩散变换器的生成性能(如图 3c 所示)。有趣的是,我们观察到,使用 REPA 时,仅需对齐前几个 Transformer 块即可实现充分的表示对齐。这使得扩散变换器的后续层可以专注于捕捉基于对齐表示的高频细节,从而进一步提高生成性能。
基于我们的分析,我们进行了系统级比较,以验证所提出方案的有效性,并将其应用于两个最新的扩散变换器:DiTs(Peebles & Xie, 2023)和 SiTs(Ma et al., 2024a)。在 SiT 训练中,我们的模型在类别条件的 ImageNet 生成任务(Deng et al., 2009)上,仅用 40 万次训练迭代(无需分类器引导)即可达到 FID=7.9(Ho & Salimans, 2022),训练速度比标准 SiTs 快 17.5 倍。此外,在使用分类器引导的情况下,我们的方法将最终的 FID 从 2.06 降至 1.80,并在使用引导区间(Kynkäänniemi et al., 2024)时达到了最新的最优结果 FID=1.42。
我们在本文中总结的主要贡献如下:
- 我们假设,在扩散变换器中学习高质量表示对于提高其生成性能至关重要。
- 我们提出了 REPA,这是一种用于对齐扩散变换器表示和强自监督视觉表示的简单正则化方法。
- 我们的框架提高了扩散变换器的生成性能,例如,在 SiTs 任务中,我们实现了 17.5 倍加速训练,并在 ImageNet 生成任务上提升了 FID 评分。
2 PRELIMINARIES
我们通过随机插值(stochastic interpolants)(Albergo et al., 2023; Ma et al., 2024a)的统一视角,对基于流(flow)和扩散(diffusion)的模型进行了简要概述;更多详细信息请参见附录 A。
我们考虑一个连续的时间相关过程,该过程的数据 x ∗ \mathbf{x}_* x∗ 服从分布 p ( x ) p(\mathbf{x}) p(x),并且高斯噪声 ϵ ∼ N ( 0 , I ) \boldsymbol{\epsilon} \sim \mathcal{N}(\mathbf{0}, \mathbf{I}) ϵ∼N(0,I),其中 t ∈ [ 0 , T ] t \in [0,T] t∈[0,T]:
x t = α t x ∗ + σ t ϵ , α 0 = σ T = 1 , α T = σ 0 = 0 , \mathbf{x}_t = \alpha_t \mathbf{x}_* + \sigma_t \boldsymbol{\epsilon}, \quad \alpha_0 = \sigma_T = 1, \quad \alpha_T = \sigma_0 = 0, xt=αtx∗+σtϵ,α0=σT=1,αT=σ0=0,
其中 α t \alpha_t αt 和 σ t \sigma_t σt 分别是随时间 t t t 递减和递增的函数。在这样的过程中,存在一个概率流常微分方程(probability flow ordinary differential equation, PF ODE),其速度场表示为:
x ˙ t = v ( x t , t ) 。 \dot{\mathbf{x}}_t = \mathbf{v}(\mathbf{x}_t, t)。 x˙t=v(xt,t)。
其中,该 ODE 在 t t t 时刻的分布等于边际分布 p t ( x ) p_t(\mathbf{x}) pt(x)。因此,可以通过求解方程 (2) 中的概率流 ODE(PF ODE),利用现有的 ODE 采样器(例如 Euler 采样器)从随机高斯噪声 ϵ ∼ N ( 0 , I ) \boldsymbol{\epsilon} \sim \mathcal{N}(\mathbf{0}, \mathbf{I}) ϵ∼N(0,I) 进行数据采样(Lipman et al., 2022; Ma et al., 2024a)。
该速度场 v ( x , t ) \mathbf{v}(\mathbf{x}, t) v(x,t) 由以下两个条件期望的和表示:
v ( x , t ) = E [ x ˙ t ∣ x t = x ] = α ˙ t E [ x ∗ ∣ x t = x ] + σ ˙ t E [ ϵ ∣ x t = x ] , \mathbf{v}(\mathbf{x}, t) = \mathbb{E}[\dot{\mathbf{x}}_t | \mathbf{x}_t = \mathbf{x}] = \dot{\alpha}_t \mathbb{E}[\mathbf{x}_* | \mathbf{x}_t = \mathbf{x}] + \dot{\sigma}_t \mathbb{E}[\boldsymbol{\epsilon} | \mathbf{x}_t = \mathbf{x}], v(x,t)=E[x˙t∣xt=x]=α˙tE[x∗∣xt=x]+σ˙tE[ϵ∣xt=x],
其中 v θ ( x t , t ) \mathbf{v}_{\theta}(\mathbf{x}_t, t) vθ(xt,t) 可用于近似该表达式,并通过最小化以下训练目标进行优化:
L velocity ( θ ) : = E x ∗ , ϵ , t [ ∥ v θ ( x t , t ) − α ˙ t x ∗ − σ ˙ t ϵ ∥ 2 ] 。 \mathcal{L}_{\text{velocity}}(\theta) := \mathbb{E}_{\mathbf{x}_*, \boldsymbol{\epsilon}, t} \left[ \| \mathbf{v}_{\theta}(\mathbf{x}_t, t) - \dot{\alpha}_t \mathbf{x}_* - \dot{\sigma}_t \boldsymbol{\epsilon} \|^2 \right] 。 Lvelocity(θ):=Ex∗,ϵ,t[∥vθ(xt,t)−α˙tx∗−σ˙tϵ∥2]。
此外,存在一个逆向随机微分方程(stochastic differential equation, SDE),该 SDE 的边际分布 p t ( x ) p_t(\mathbf{x}) pt(x) 与方程 (2) 中的 PF ODE 的边际分布一致,扩散系数为 w t w_t wt(Ma et al., 2024a):
d x t = v ( x t , t ) d t − 1 2 w t s ( x t , t ) d t + w t d w ˉ t , d\mathbf{x}_t = \mathbf{v}(\mathbf{x}_t, t) dt - \frac{1}{2} w_t \mathbf{s}(\mathbf{x}_t, t) dt + \sqrt{w_t} d\bar{\mathbf{w}}_t, dxt=v(xt,t)dt−21wts(xt,t)dt+wtdwˉt,
其中分数 s ( x , t ) \mathbf{s}(\mathbf{x}, t) s(x,t) 为以下条件期望:
s ( x , t ) = − σ t − 1 E [ ϵ ∣ x t = x ] 。 \mathbf{s}(\mathbf{x}, t) = -\sigma_t^{-1} \mathbb{E}[\boldsymbol{\epsilon} | \mathbf{x}_t = \mathbf{x}]。 s(x,t)=−σt−1E[ϵ∣xt=x]。
它可以通过 v ( x , t ) \mathbf{v}(\mathbf{x}, t) v(x,t) 直接计算得到,对于 t > 0 t > 0 t>0:
s ( x , t ) = σ t − 1 ⋅ α t v ( x , t ) − α ˙ t x α ˙ t σ t − α t σ ˙ t 。 \mathbf{s}(\mathbf{x}, t) = \sigma_t^{-1} \cdot \frac{\alpha_t \mathbf{v}(\mathbf{x}, t) - \dot{\alpha}_t \mathbf{x}}{\dot{\alpha}_t \sigma_t - \alpha_t \dot{\sigma}_t}。 s(x,t)=σt−1⋅α˙tσt−αtσ˙tαtv(x,t)−α˙tx。
这意味着数据可以通过方程 (5) 使用 SDE 求解器生成。
根据 Ma et al. (2024a),我们主要考虑一个简单的线性插值方案,并限制 T = 1 T = 1 T=1: α t = 1 − t \alpha_t = 1 - t αt=1−t, σ t = t \sigma_t = t σt=t。然而,我们的方法同样适用于类似的变体(例如 DDPM; Ho et al. 2020),其采用离散化过程并使用不同的 α t \alpha_t αt 和 σ t \sigma_t σt,其中 N ( 0 , I ) \mathcal{N}(\mathbf{0}, \mathbf{I}) N(0,I) 作为平衡分布(即如果 t → ∞ t \to \infty t→∞,则 x t \mathbf{x}_t xt 收敛到 N ( 0 , I ) \mathcal{N}(\mathbf{0}, \mathbf{I}) N(0,I))。
3 REPA: REGULARIZATION FOR REPRESENTATION ALIGNMENT
3.1 OVERVIEW
设 p ( x ) p(\mathbf{x}) p(x) 为数据 x ∈ X \mathbf{x} \in \mathcal{X} x∈X 的未知目标分布。我们的目标是通过从 p ( x ) p(\mathbf{x}) p(x) 采样的数据集来近似 p ( x ) p(\mathbf{x}) p(x)。为了降低计算成本,我们采用了当前流行的潜变量扩散模型(latent diffusion)(Rombach et al., 2022)。这涉及学习一个潜变量分布 p ( z ) p(\mathbf{z}) p(z),其中 z = E ( x ) \mathbf{z} = E(\mathbf{x}) z=E(x) 是通过预训练自编码器(例如 KL-VAE;Rombach et al., 2022)进行压缩得到的潜变量,而 x ∼ p data ( x ) \mathbf{x} \sim p_{\text{data}}(\mathbf{x}) x∼pdata(x)。
我们的目标是通过训练扩散模型 v θ ( z t , t ) \mathbf{v}_{\theta}(\mathbf{z}_t, t) vθ(zt,t) 来学习该分布,使用的目标函数包括速度预测等(详见第 2 节)。在此,我们从自监督表示学习(Bengio et al., 2013)的角度重新审视去噪得分匹配(denoising score matching)。从这一视角来看,可以将扩散模型 v θ ( z t , t ) \mathbf{v}_{\theta}(\mathbf{z}_t, t) vθ(zt,t) 视为两个函数的组合 g θ ∘ f θ g_{\theta} \circ f_{\theta} gθ∘fθ,其中 f θ : Z → H f_{\theta}: \mathcal{Z} \to \mathcal{H} fθ:Z→H 是编码器,使得 f θ ( z t ) = h t f_{\theta}(\mathbf{z}_t) = \mathbf{h}_t fθ(zt)=ht,而 g θ : H → Z g_{\theta}: \mathcal{H} \to \mathcal{Z} gθ:H→Z 是解码器,使得 g θ ( h t ) = v t g_{\theta}(\mathbf{h}_t) = \mathbf{v}_t gθ(ht)=vt,即编码器 f θ f_{\theta} fθ 隐式地学习了一个表示 h t \mathbf{h}_t ht,用于重构目标 v t \mathbf{v}_t vt。
然而,通过预测输入空间(例如生成像素)来学习一个良好的表示可能是具有挑战性的,因为模型通常无法有效地去除无关细节,而这些细节的去除对于学习强大的表示至关重要(LeCun, 2022; Assran et al., 2023)。我们认为,大规模扩散模型在生成任务上的训练瓶颈之一就在于表示学习,这是当前扩散模型的弱点。此外,我们假设,通过高质量的外部视觉表示来引导模型,而不是单纯依靠扩散模型自行学习表示,可以使训练过程更加容易。
为了解决这一挑战,我们提出了一种简单的正则化方法,称为 表示对齐(REPresentation Alignment, REPA),该方法基于最新的扩散变换器架构(Peebles & Xie, 2023; Ma et al., 2024a)(详见附录 B 进行说明)。简而言之,我们的正则化方法能够将预训练的自监督视觉表示有效地蒸馏到扩散变换器中。这使得扩散模型能够利用这些具有丰富语义信息的外部表示来进行生成,从而显著提升性能。
3.2 OBSERVATIONS
为了更深入地研究这一问题,我们首先分析了预训练 SiT 模型(Ma et al., 2024a)在 ImageNet(Deng et al., 2009)上的逐层行为,该模型使用线性插值和速度预测进行训练。特别地,我们关注扩散变换器与当前最先进的自监督视觉模型 DINOv2(Oquab et al., 2024)之间的表示差距(representation gap)。我们从三个角度来研究这一问题:语义差距(semantic gap)、特征对齐的变化(feature alignment progression)及最终的特征对齐结果。
对于 语义差距(semantic gap),我们使用 DINOv2 的特征,并对其进行线性探测,与训练 700 万步的 SiT 模型进行对比,遵循 Xiang et al. (2023) 中相同的协议,即对扩散变换器隐藏状态进行全局池化后进行线性探测。接着,为了衡量 特征对齐(feature alignments),我们采用 CKRNA(Huh et al., 2024),这是一种基于最近邻匹配的核对齐度量方法,相关工作可参考 CKA(Kornblith et al., 2019)。这使得我们可以定量评估不同表示之间的对齐情况。具体结果见图 2,更多细节(例如 CKRNA 的定义)可见附录 C.1。
扩散变换器在最先进视觉编码器面前表现出显著的语义差距
如图 2a 所示,我们观察到预训练扩散变换器的隐藏状态表示在 layer 20 处达到了相对较高的线性探测峰值,这与先前研究(Xiang et al., 2023; Chen et al., 2024c)一致。然而,其表现仍然远低于 DINOv2,表明这两种表示之间存在显著的语义差距。此外,我们发现,在达到这一峰值后,线性探测性能迅速下降,这表明扩散变换器必须从单纯学习语义丰富的表示转变为生成包含高频细节的图像。
扩散模型的表示已经(较弱地)与其他视觉表示对齐
在图 2b 中,我们报告了 SiT 与 DINOv2 之间的表示对齐情况,使用了 CKNNA 进行评估。特别是,SiT 模型的表示已经比 MAE(He et al., 2022)表现出更好的对齐性,后者也是一种基于掩码补全的自监督学习方法。然而,其绝对对齐分数仍然低于其他自监督学习方法(例如 MoCov3(Chen et al., 2021)与 DINOv2 之间的对齐)。这些结果表明,尽管扩散变换器的表示在某种程度上与自监督视觉表示对齐,但这种对齐仍然较弱。
更大的模型和更长时间的训练能够改善对齐
我们还测量了不同模型规模和训练迭代次数下的 CKNNA 值。如图 2c 所示,我们观察到随着模型规模的增大和训练时间的延长,对齐性有所改善。然而,其绝对对齐分数仍然较低,甚至在经历了 700 万次迭代的长期训练后,仍未达到其他自监督视觉编码器(例如 MoCov3 和 DINOv2)之间的对齐水平。
这些发现并不是SIT模型独有的,而是在其他基于Denoising的生成变压器中观察到的。例如,在图2中,我们使用DIT模型(Peebles&XIE,2023)提出了类似的分析,该模型在Imagenet上以DDPM物镜预测(Ho等,2020; Nichol&Dhariwal,2021)。有关更多详细信息,请参见附录C.2。
3.3 REPRESENTATION ALIGNMENT WITH SELF-SUPERVISED REPRESENTATIONS
REPA 通过对齐模型隐藏状态的 patch 级投影与预训练的自监督视觉表示来进行优化。具体而言,我们使用干净图像的表示作为目标,并探索其影响。这种正则化的目标是让扩散变换器的隐藏状态能够预测无噪声的视觉表示,从而提取包含有用语义信息的噪声输入。这为后续层重构目标提供了有意义的指导。
形式化地,设 f f f 是一个预训练编码器,并考虑一个干净图像 x ∗ x_* x∗。令 y ∗ = f ( x ∗ ) ∈ R N × D y_* = f(x_*) \in \mathbb{R}^{N \times D} y∗=f(x∗)∈RN×D,其中 N , D > 0 N, D > 0 N,D>0 分别表示 patch 的数量和 f f f 的嵌入维度。REPA 通过 h ϕ ( h t ) ∈ R N × D h_{\phi}(h_t) \in \mathbb{R}^{N \times D} hϕ(ht)∈RN×D 与 y ∗ y_* y∗ 对齐,其中 h ϕ ( h t ) h_{\phi}(h_t) hϕ(ht) 是扩散变换器编码器输出 h t = f θ ( z t ) h_t = f_{\theta}(z_t) ht=fθ(zt) 通过可训练投影头 h ϕ h_{\phi} hϕ 进行投影后的结果。在实践中,我们通常使用多层感知机(MLP)来参数化 h ϕ h_{\phi} hϕ。
特别地,REPA 通过最大化预训练表示 y ∗ y_* y∗ 和隐藏状态 h t h_t ht 之间的 patch 级相似度来实现对齐:
L REPA ( θ , ϕ ) : = − E x ∗ , ϵ , t [ 1 N ∑ n = 1 N sim ( y ∗ [ n ] , h ϕ ( h t [ m , n ] ) ) ] , \mathcal{L}_{\text{REPA}}(\theta, \phi) := -\mathbb{E}_{x_*, \epsilon, t} \left[ \frac{1}{N} \sum_{n=1}^{N} \text{sim}(y_*^{[n]}, h_{\phi}(h_t^{[m,n]})) \right], LREPA(θ,ϕ):=−Ex∗,ϵ,t[N1n=1∑Nsim(y∗[n],hϕ(ht[m,n]))],
其中 n n n 表示 patch 索引, m m m 是 f θ f_{\theta} fθ 的深度, sim ( ⋅ , ⋅ ) \text{sim}(\cdot, \cdot) sim(⋅,⋅) 是一个预定义的相似性函数。
在实践中,我们将该项添加到扩散模型的目标函数中,如第 2 节和附录 A 所述。例如,对于 Eq. (4) 所描述的速度模型训练,优化目标变为:
L : = L velocity + λ L REPA \mathcal{L} := \mathcal{L}_{\text{velocity}} + \lambda \mathcal{L}_{\text{REPA}} L:=Lvelocity+λLREPA
其中 λ > 0 \lambda > 0 λ>0 是一个超参数,用于控制去噪和表示对齐之间的权衡。我们主要研究了这种正则化在两个流行目标上的影响:改进的 DDPM(Nichol & Dhariwal, 2021)用于 DiT(Peebles & Xie, 2023)和线性随机插值用于 SiT(Ma et al., 2024a),但其他目标也可以考虑。
相关文章:
(ICLR=2025)生成的表征对齐:训练扩散Transformer比你想象的更简单
生成的表征对齐:训练扩散Transformer比你想象的更简单 paper是KAIST发表在ICLR 2025的工作 paper title:REPRESENTATION ALIGNMENT FOR GENERATION: TRAINING DIFFUSION TRANSFORMERS IS EASIER THAN YOU THINK Code:链接 ABSTRACT 最近的研究表明&…...
保姆级教程--DeepSeek部署
以DeepSeek-R1或其他类似模型为例,涵盖环境配置、代码部署和运行测试的全流程: 准备工作 1. 注册 Cloud Studio - 访问 [Cloud Studio 官网](https://cloudstudio.net/),使用腾讯云账号登录。 - 完成实名认证(如需长期使用…...
[css] 黑白主题切换
link动态引入 类名切换 css滤镜 var 类名切换 v-bind css预处理器mixin类名切换 【前端知识分享】CSS主题切换方案...
C语言练习题
文章目录 1. 递归实现将字符串str中的元素逆序2. 对数组arr进行冒泡排序(升序)3. 对数组从下标low到下标hihg区间内的元素进行快速排序(升序)4. 在数组中利用二分查找(折半查找)目标关键字5. 求n的阶乘6. 判断year是否为闰年7. 求…...
Lambda 表达式
一、Lambda 表达式简介 Lambda 表达式是一种简洁的函数式编程方式,用于实现只有一个方法的接口(例如函数式接口)。 基本语法 (parameters) -> expression (parameters) -> { statements; } 参数:可以有零个或多个参数。…...
Vue 鼠标事件合集,关于鼠标右键的处理方法(改写鼠标右键方法、自定义鼠标右键)
鼠标事件使用 mousedown"canvasDown($event)"按下事件合集 click 点击某个对象时触发 mousedown 鼠标按钮被按下时触发 mouseup 鼠标按钮被松开时触发 mouseleave 当鼠标指针移出元素时触发 dblclick 双击时触发 mousemove 鼠标移动时触发,…...
go语言中的接口
接口简介 现实生活中的接口 现实生活中手机、相机、U 盘都可以和电脑的 USB 接口建立连接。我们不需要关注 usb 卡槽大小是否一样,因为所有的 USB 接口都是按照统一的标准来设计的。 Golang 中的接口(interface) Golang 中的接口是一种抽象…...
如何在Android Studio中开发一个简单的Android应用?
Android Studio是开发Android应用的官方集成开发环境(IDE),它提供了许多强大的功能,使得开发者能够高效地创建Android应用。如果你是Android开发的初学者,本文将引导你如何在Android Studio中开发一个简单的Android应用…...
启明星辰发布MAF大模型应用防火墙产品,提升DeepSeek类企业用户安全
2月7日,启明星辰面向DeepSeek等企业级大模型业务服务者提供的安全防护产品——天清MAF(Model Application Firewall)大模型应用防火墙产品正式发布。 一个新赛道将被开启…… DeepSeek的低成本引爆赛道规模 随着DeepSeek成为当前最热的现象级…...
开箱即用的.NET MAUI组件库 V-Control 发布了!
之前写过挺多的MAUI Sample,其中有很多代码可以打包成组件,当组件完善到一定程度,我会把控件封装起来放到控件库中。 今天,在这个仓库建立一年零八个月后,我觉得可以考虑将其作为开源库发布。 有很多网友在观望.NET …...
android skia渲染介绍
Android AOSP 的渲染系统主要使用 Skia 图形库。Skia 是一个开源的 2D 图形库,它被广泛应用于 Android 的图形渲染中,负责绘制 UI 元素、文本、图像以及其他 2D 图形内容。 以下是 Android AOSP 中 Skia 的作用和它在渲染系统中的位置: 1. 什…...
MySQL的底层原理与架构
前言 了解MySQL的架构和原理对于很多的后续很多的操作会有很大的帮助与理解。并且很多知识都与底层架构相关联。 了解MySQL架构 通过上面的架构图可以得知,Server层中主要由 连接器、查询缓存、解析器/分析器、优化器、执行器 几部分组成的,下面将主要…...
GB/T 43698-2024 《网络安全技术 软件供应链安全要求》标准解读
一、43698-2024标准图解 https://mmbiz.qpic.cn/sz_mmbiz_png/rwcfRwCticvgeBPR8TWIPywUP8nGp4IMFwwrxAHMZ9Enfp3wibNxnfichT5zs7rh2FxTZWMxz0je9TZSqQ0lNZ7lQ/640?wx_fmtpng&fromappmsg 标准在线预览: 国家标准|GB/T 43698-2024 相关标准: &a…...
Vue(4)
一.组件的三大组成部分-注意点说明 (1)scoped样式冲突 默认情况:写在组件中的样式会全局生效 → 因此很容易造成多个组件之间的样式冲突 ①全局样式:默认组件中的样式会作用到全局 ②局部样式:可以给组件加上scoped属…...
实验3 词法分析(二)
实验3 词法分析(二) [实验目的]: 1 . 熟悉给定的词法分析程序; 2 . 改进词法分析程序。 [实验内容]: 1.尝试多方面改进TEST语言的文法,参考教材附录B词法分析程序TESTscan.c,在此词法分析程序的基础上改进程序&#x…...
MYSQL第四次
目录 题目分析 代码实现 一、修改 Student 表中年龄(sage)字段属性,数据类型由 int 改变为 smallint 二、为 Course 表中 Cno 字段设置索引,并查看索引 三、为 SC 表建立按学号(sno)和课程号ÿ…...
CentOS 7配置samba服务设置文件共享
CentOS 7配置samba服务设置文件共享 一、生成另一个Linux系统,名为Linux-client,作为测试系统。 [rootliunx-client ~]# hostnamectl set-hostname Liunx-client二、如果没有则安装Samba服务,如果已经安装则省略此步。 yum install samba…...
分布式微服务系统架构第91集:系统性能指标总结
加群联系作者vx:xiaoda0423 仓库地址:https://webvueblog.github.io/JavaPlusDoc/ 系统性能指标总结 系统性能指标包括哪些? 业务指标、资源指标、中间件指标、数据库指标、前端指标、稳定性指标、批量处理指标、可扩展性指标、可靠性指标。 …...
【算法】动态规划专题⑦ —— 多重背包问题 + 二进制分解优化 python
目录 前置知识进入正题优化方法:二进制分解实战演练 前置知识 【算法】动态规划专题⑤ —— 0-1背包问题 滚动数组优化 python 【算法】动态规划专题⑥ —— 完全背包问题 python 进入正题 多重背包问题I https://www.acwing.com/problem/content/4/ 题目描述 有…...
Node.js学习指南
一、模块化规范 nodejs使用的模块化规范 叫做 common.js 规范: 每一个模块都有独立的作用域 代码在各自模块中执行 不会造成全局污染 每一个模块都是一个独立的文件(module对象) 模块可以被多次加载(module.exports 属性) 但是仅…...
Mybatis篇
1,什么是Mybatis ( 1 )Mybatis 是一个半 ORM(对象关系映射)框架,它内部封装了 JDBC,开发时只需要关注 SQL 语句本身,不需要花费精力去处理加载驱动、创建连接、创建 statement 等繁…...
微信小程序案例1——制作猫眼电影底部标签导航栏
文章目录 一、项目步骤1 新建一个无AppID的movie项目2将准备好的底部标签导航图标拷贝到movie项目下面(将图标文件夹image放到项目文件夹里)3 打开App.json配置文件,在pages数组里添加4个页面路径:电影“pages/movie/movie”、影院“pages/cinema/cinema…...
Docker 数据卷(Volume)详细介绍
Docker 数据卷(Volume)详细介绍 1. 什么是 Docker 数据卷? Docker 数据卷(Volume)是一种用于 持久化数据 和 容器间数据共享 的机制。由于容器的存储是临时的,容器删除后其中的数据会丢失,因此…...
Redis --- 使用Feed流实现社交平台的新闻流
要实现一个 Feed 流(类似于社交媒体中的新闻流),通常涉及以下几个要素: 内容发布:用户发布内容(例如文章、状态更新、图片等)。内容订阅:用户可以订阅其他用户的内容,获…...
WPF 在后台使TextBox失去焦点的方法
在软件设计开发的时候,偶尔会遇到在后台xaml.cs后台中,要将TextBox控件的焦点取消或者使TextBox控件获取焦点,下面介绍讲述一种简单的“只让特定的 TextBox 失去焦点”方法: 前端xaml代码示例: <StackPanel Orientation"…...
自动化测试、压力测试、持续集成
因为项目的原因,前段时间研究并使用了 SoapUI 测试工具进行自测开发的 api。下面将研究的成果展示给大家,希望对需要的人有所帮助。 SoapUI 是什么? SoapUI 是一个开源测试工具,通过 soap/http 来检查、调用、实现 Web Service 的…...
Mac电脑上好用的压缩软件
在Mac电脑上,有许多优秀的压缩软件可供选择,这些软件不仅支持多种压缩格式,还提供了便捷的操作体验和强大的功能。以下是几款被广泛推荐的压缩软件: BetterZip 功能特点:BetterZip 是一款功能强大的压缩和解压缩工具&a…...
C++ 使用CURL开源库实现Http/Https的get/post请求进行字串和文件传输
CURL开源库介绍 CURL 是一个功能强大的开源库,用于在各种平台上进行网络数据传输。它支持众多的网络协议,像 HTTP、HTTPS、FTP、SMTP 等,能让开发者方便地在程序里实现与远程服务器的通信。 CURL 可以在 Windows、Linux、macOS 等多种操作系…...
[创业之路-276]:从燃油汽车到智能汽车:工业革命下的价值变迁
目录 前言: 从燃油汽车到智能汽车:工业革命下的价值变迁 前言: 燃油汽车,第一次、第二次工业革命,机械化、电气化时代的产物,以机械和电气自动化为核心价值。 智能汽车,第三次、第四次工业革…...
DeepSeek服务器繁忙问题的原因分析与解决方案
一、引言 随着人工智能技术的飞速发展,DeepSeek 等语言模型在众多领域得到了广泛应用。然而,在春节这段时间的使用过程中,用户常常遭遇服务器繁忙的问题,这不仅影响了用户的使用体验,也在一定程度上限制了模型的推广和…...
【python】简单的flask做页面。一组字母组成的所有单词。这里的输入是一组字母,而输出是所有可能得字母组成的单词列表
目录结构如下: . ├── static │ ├── css │ │ └── styles.css │ └── js │ └── scripts.js ├── templates │ ├── base.html │ ├── case_converter.html │ ├── index.html │ └── word_finder.html ├── app.py ├── tree.py…...
【华为OD-E卷 - 114 找最小数 100分(python、java、c++、js、c)】
【华为OD-E卷 - 找最小数 100分(python、java、c、js、c)】 题目 给一个正整数NUM1,计算出新正整数NUM2,NUM2为NUM1中移除N位数字后的结果,需要使得NUM2的值最小 输入描述 输入的第一行为一个字符串,字…...
Maven 依赖管理全面解析
目录 1. Maven 简介 2. 依赖的基本概念 依赖坐标 依赖范围 3. Maven 仓库 本地仓库 远程仓库 4. 依赖传递 5. 依赖冲突 6. 在 pom.xml 文件中管理依赖 基本依赖配置 依赖范围配置 依赖排除配置 依赖管理配置() 1. Maven 简介 Maven 是一个…...
基于C#语言的海康威视智能车牌识别系统
基于C#语言的海康威视智能车牌识别系统,通过布控对来往车辆进行检测抓拍 资源文件列表 AICar.sln , 984 AICar.sln.GhostDoc.xml , 1306 AICar.v12.suo , 72704 AICar/AICar.csproj , 3573 AICar/AICar.csproj.user , 228 AICar/bin/Debug/AICar.exe , 220672 AIC…...
RabbitMQ 从入门到精通:从工作模式到集群部署实战(五)
#作者:闫乾苓 系列前几篇: 《RabbitMQ 从入门到精通:从工作模式到集群部署实战(一)》:link 《RabbitMQ 从入门到精通:从工作模式到集群部署实战(二)》: lin…...
清理服务器/docker容器
清理服务器 服务器或docker容器清理空间。 清理conda环境 删除不用的conda虚拟环境: conda env remove --name python38 conda env remove --name python310清理临时目录:/tmp du -sh /tmp # 查看/tmp目录的大小/tmp 目录下的文件通常是可以直接删除…...
【专题】2024-2025人工智能代理深度剖析:GenAI 前沿、LangChain 现状及演进影响与发展趋势报告汇总PDF洞察(附原数据表)
原文链接:https://tecdat.cn/?p39630 在科技飞速发展的当下,人工智能代理正经历着深刻的变革,其能力演变已然成为重塑各行业格局的关键力量。从早期简单的规则执行,到如今复杂的自主决策与多智能体协作,人工智能代理…...
广度优先搜索(BFS)算法详解——以走迷宫问题为例
引言:当算法遇见迷宫 想象你置身于一个复杂的迷宫,如何在最短时间内找到出口?这个问题不仅存在于童话故事中,更是计算机科学中经典的路径搜索问题。本文将带你通过走迷宫问题,深入理解广度优先搜索(BFS&am…...
【大数据技术】用户行为日志分析(python+hadoop+mapreduce+yarn+hive)
用户行为日志分析(python+hadoop+mapreduce+yarn+hive) 搭建完全分布式高可用大数据集群(VMware+CentOS+FinalShell) 搭建完全分布式高可用大数据集群(Hadoop+MapReduce+Yarn) 本机PyCharm远程连接虚拟机Python 搭建完全分布式高可用大数据集群(MySQL+Hive)...
C语言基础之【数组和字符串】(上)
C语言基础之【数组和字符串】(上) 概述一维数组一维数组的定义一维数组的初始化一维数组的访问一维数组的遍历数组名一维数组的常用数据强化训练一维数组的最值一维数组的逆置一维数组的排序(冒泡排序) 二维数组二维数组的定义二维…...
Maven插件—flatten-maven-plugin:工程模块统一版本依赖
文章目录 前言一、认识flatten-maven-plugin插件二、如何使用flatten-maven-plugin插件?未使用flatten-maven-plugin插件之前的情况描述配置flatten-maven-plugin插件步骤1:最外层父模块安装插件&配置版本变量步骤2:各个自模块使用版本使…...
Linux系统 环境变量
环境变量 写在前面概念查看环境变量main函数的参数argc & argvenv bash环境变量 写在前面 对于环境变量,本篇主要介绍基本概念及三四个环境变量 —— PATH、HOME、PWD。其中 PATH 作为 “ 敲门砖 ”,我们会更详细讲解;理解环境变量的全局…...
TAPEX:通过神经SQL执行器学习的表格预训练
摘要 近年来,语言模型预训练的进展通过利用大规模非结构化文本数据取得了巨大成功。然而,由于缺乏大规模高质量的表格数据,在结构化表格数据上应用预训练仍然是一个挑战。本文提出了TAPEX,通过在一个合成语料库上学习神经SQL执行…...
Ruby:从宝石到编程语言的奇妙联系(中英双语)
Ruby:从宝石到编程语言的奇妙联系 在珠宝世界中,红宝石(Ruby)是一种象征热情、力量和高贵的珍贵宝石;而在编程世界中,Ruby则是一门灵活、优雅且富有创造力的编程语言。那么,这两者究竟有何联系…...
RLHF中的on-policy和off-policy的区别
在LLM(大语言模型)和RLHF(基于人类反馈的强化学习)中,on-policy和off-policy的主要区别在于数据的来源和策略更新的方式。以下是两者的详细对比以及各自的典型算法: On-policy 和 Off-policy 的区别 特性…...
计算机考研复试上机02
目录 3、排序 1)排序(华中科技大学复试上机题) 2)成绩排序(清华大学复试上机题) 3)特殊排序(华中科技大学复试上机题) 4)整数奇偶排序(北京大学复试上机题) 5)小白鼠排队(北京大学复试上机题) 4、查找 1)找 x(哈尔滨工业大学复试上机题) 2)查找(北…...
利用ETL工具进行数据挖掘
ETL的基本概念 数据抽取(Extraction):从不同源头系统中获取所需数据的步骤。比如从mysql中拿取数据就是一种简单的抽取动作,从API接口拿取数据也是。 数据转换(Transformation):清洗、整合和转…...
02DevOps基础环境准备
准备两台Linux的操作系统,最简单的方式就是在本机上使用虚拟机搭建两个操作系统(实际生产环境是两台服务器,虚拟机的方式用于学习使用) 我搭建的两台服务器的ip分别是192.168.1.10、192.168.1.11 192.168.1.10服务器用于安装doc…...
Kafka 入门与实战
一、Kafka 基础 1.1 创建topic kafka-topics.bat --bootstrap-server localhost:9092 --topic test --create 1.2 查看消费者偏移量位置 kafka-consumer-groups.bat --bootstrap-server localhost:9092 --describe --group test 1.3 消息的生产与发送 #生产者 kafka-cons…...
VM虚拟机安装群晖系统
下载群晖系统 https://download.csdn.net/download/hmxm6/90351935 安装群晖连接软件 synology-assistant-6.2-24922(在上面的压缩包里面) 准备好VM虚拟机 创建群晖虚拟机 打开下载下来的虚拟机 添加硬盘 选择类型 创建新的磁盘 指定容量 指定存储文件 完成硬盘添加…...