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

(ICML-2025) RIFLEx:视频扩散Transformer中长度外推的“免费午餐”

RIFLEx:视频扩散Transformer中长度外推的“免费午餐”

paper title:RIFLEx: A Free Lunch for Length Extrapolation in Video Diffusion Transformers

paper是THU发表在ICML 2025的工作

Code:链接

Abstract

近期视频生成的进展使模型能够合成高质量的分钟级视频。然而,生成更长时间的视频并保持时间一致性仍是一大挑战,现有的长度外推方法通常会导致时间重复或运动减缓。在本工作中,我们系统性地分析了位置嵌入中的频率成分作用,并识别出一种主要决定外推行为的“内在频率”。基于这一见解,我们提出了RIFLEx,一种简洁而有效的方法,通过降低内在频率来抑制重复,同时保持运动一致性,无需任何额外修改。RIFLEx是真正意义上的“免费午餐”——在最先进的视频扩散Transformer上实现了完全无训练的高质量2倍长度外推。此外,通过最小量的微调且无需使用长视频,RIFLEx还能进一步提升质量并实现3倍外推。项目主页及代码:https://riflex-video.github.io/

1. Introduction

视频生成的最新进展(Brooks 等,2024;Bao 等,2024;Yang 等,2024;Team,2024b;Kong 等,2024)使模型能够合成高保真且连贯的分钟级视频序列。这一进步的关键在于扩散Transformer的出现(Peebles & Xie,2023;Bao 等,2023),它结合了扩散模型的可扩展性(Sohl-Dickstein 等,2015;Ho 等,2020;Song 等,2021)与Transformer的强大表达能力(Vaswani,2017)。

尽管取得了这些进展,生成更长时间且具有高质量和时间一致性的视频仍是一项根本性挑战。由于计算限制和训练数据规模巨大,现有模型通常以固定的最大序列长度进行训练,限制了内容扩展能力。因此,业界越来越关注长度外推技术,以便模型能够在未经长视频训练的情况下生成新的、时间连贯的内容,使其随时间平滑演化。

然而,现有的外推策略(Chen 等,2023b;bloc97,2023;Peng 等,2023;Lu 等,2024b;Zhuo 等,2024)最初是为文本和图像生成开发的,在应用于视频长度外推时表现失败。

我们的实验表明,这些方法会出现明显的失败模式:时间重复和运动减缓。这些局限表明我们对位置编码在视频外推中作用的理解仍存在根本差距。

为了解决这个问题,我们通过将其他频率分量置零并微调目标视频模型,来隔离单个频率成分。我们发现,高频成分捕捉短期依赖,并引起时间重复,而低频成分编码长期依赖,但导致运动减速。令人惊讶的是,我们在同一模型生成的不同视频中识别出一致的“内在频率”成分,该频率在所有成分中主要决定了外推时的重复模式。

基于这一见解,我们提出了RIFLEx(Reducing Intrinsic Frequency for Length Extrapolation),一个简洁而有效的解决方案,通过降低内在频率以确保其在外推后仍保持在单个周期内。

该方法无需任何额外修改,即可抑制时间重复,同时保持运动一致性。作为附带成果,RIFLEx为现有方法的失败模式提供了合理解释,并自然延伸至图像的空间外推。

在最先进的视频扩散Transformer(包括CogVideoX-5B(Yang 等,2024)和HunyuanVideo(Kong 等,2024))上的大量实验验证了RIFLEx的有效性(见图1)。令人瞩目的是,在2倍外推中,RIFLEx在完全无需训练的条件下实现了高质量且自然的视频生成。而在仅使用2万条原始长度视频进行微调的情况下——所需预训练计算仅为1/50000——生成质量进一步提升,并可实现3倍外推。此外,RIFLEx还可同时应用于空间域,从而同时扩展视频时长和空间分辨率。

图1

图1. RIFLEx在2倍时间、空间及时间-空间联合外推上的可视化效果。我们的基础模型为:(a) HunyuanVideo(Kong 等,2024)和 (b-c) CogVideoX-5B(Yang 等,2024),在所有实验中我们未使用比预训练时更长或更大的视频数据。更多演示结果及本文中使用的全部提示语分别列于附录B和补充材料中。

我们的主要贡献总结如下:

  • 我们通过分析现有方法的失败模式,并揭示位置嵌入中各频率成分的作用,系统性地理解了视频长度外推机制。

  • 我们提出了RIFLEx,一个简洁而有效的解决方案,通过合理降低内在频率以缓解重复问题,无需任何额外修改。

  • RIFLEx是真正意义上的“免费午餐”——在最先进的视频扩散Transformer上实现了完全无训练的高质量2倍外推。此外,通过最小微调且无需长视频的条件下,它还能提升生成质量并支持3倍外推。

2. Background

2.1. Video Generation with Diffusion Transformers


给定一个数据分布 p data p_\text{data} pdata,扩散模型(Sohl-Dickstein et al., 2015;Ho et al., 2020;Song et al., 2021)通过一个转移核 q t ∣ 0 ( x t ∣ x 0 ) = N ( α t x 0 , σ t 2 I ) q_{t|0}(x_t | x_0) = \mathcal{N}(\alpha_t x_0, \sigma_t^2 \mathbf{I}) qt∣0(xtx0)=N(αtx0,σt2I),逐步扰动干净数据 x 0 ∼ p data x_0 \sim p_\text{data} x0pdata,即 x t = α t x 0 + σ t ϵ x_t = \alpha_t x_0 + \sigma_t \epsilon xt=αtx0+σtϵ,其中 t ∈ [ 0 , T ] t \in [0, T] t[0,T] α t , σ t \alpha_t, \sigma_t αt,σt 是预定义的噪声计划, ϵ ∼ N ( 0 , I ) \epsilon \sim \mathcal{N}(0, \mathbf{I}) ϵN(0,I) 是高斯噪声。在合理设计 α t , σ t \alpha_t, \sigma_t αt,σt 的情况下, x T x_T xT 的分布是可解析的,例如为标准高斯分布。

生成模型通过将该过程从 t = T t = T t=T 0 0 0 逆转来获得,其动态由 score 函数 ∇ x t log ⁡ q t ( x t ) \nabla_{x_t} \log q_t(x_t) xtlogqt(xt) 表征。score 函数通常由神经网络 s θ ( x t , t ) s_\theta(x_t, t) sθ(xt,t) 参数化,并通过去噪 score 匹配(Vincent, 2011)进行学习:

E t , x 0 , ϵ [ w ( t ) ∥ s θ ( x t , t ) − ∇ x t log ⁡ q t ∣ 0 ( x t ∣ x 0 ) ∥ 2 ] , \mathbb{E}_{t, x_0, \epsilon} [w(t) \| s_\theta(x_t, t) - \nabla_{x_t} \log q_{t|0}(x_t | x_0) \|^2], Et,x0,ϵ[w(t)sθ(xt,t)xtlogqt∣0(xtx0)2],

其中 w ( t ) w(t) w(t) 是一个权重函数。当前对视频数据使用扩散模型的事实标准方法是:首先将视频裁剪为潜在空间的图像帧序列,然后使用基于Transformer的模型执行扩散建模(Peebles & Xie, 2023;Bao et al., 2023)。

2.2. Position Embedding in Diffusion Transformers


位置嵌入是一种固定或可学习的向量值函数 f f f,它将一个 n n n 轴的位置向量 p ∈ N + n p \in \mathbb{N}_+^n pN+n 映射到某个表示空间中。这种位置信息可以通过多种机制融入到Transformer中,例如通过加法操作(Vaswani, 2017;Raffel et al., 2020;Press et al., 2021)或乘法操作(Su et al., 2021)与其他输入或隐藏嵌入进行结合。

旋转位置嵌入(RoPE)(Su et al., 2021)已经成为Transformer中的主流方法。RoPE通过在注意力机制中交互两个绝对位置嵌入来编码相对位置信息。具体地,对于由单轴索引的序列(即 n = 1 n=1 n=1),给定输入 x ∈ R d x \in \mathbb{R}^d xRd,其位置为 p ∈ N + p \in \mathbb{N}_+ pN+,RoPE 将其映射到绝对位置编码的嵌入空间 R d ′ \mathbb{R}^{d'} Rd 中,满足 d ′ ≤ d d' \leq d dd,即:

f RoPE ( x , p , θ ) j = [ cos ⁡ p θ j − sin ⁡ p θ j sin ⁡ p θ j cos ⁡ p θ j ] [ x 2 j x 2 j + 1 ] , (1) f_{\text{RoPE}}(x, p, \boldsymbol{\theta})_j = \begin{bmatrix} \cos p\theta_j & -\sin p\theta_j \\ \sin p\theta_j & \cos p\theta_j \end{bmatrix} \begin{bmatrix} x_{2j} \\ x_{2j+1} \end{bmatrix}, \tag{1} fRoPE(x,p,θ)j=[cospθjsinpθjsinpθjcospθj][x2jx2j+1],(1)

其中 θ ∈ R d ′ / 2 \boldsymbol{\theta} \in \mathbb{R}^{d'/2} θRd/2,且 θ j = b − 2 ( j − 1 ) / d ′ \theta_j = b^{-2(j-1)/d'} θj=b2(j1)/d j = 1 , … , d ′ / 2 j = 1, \ldots, d'/2 j=1,,d/2。这里, θ \boldsymbol{\theta} θ 表示RoPE嵌入所有维度的频率, b b b 是一个调整基础频率的超参数。可以验证,两组经过RoPE嵌入的向量之间的点积编码了它们之间的相对位置信息。

在实际应用中,RoPE被应用于注意力机制中的query和key向量中,因此点积操作所得的注意力矩阵能够编码相对位置信息。

多轴RoPE。RoPE可以扩展到多轴位置向量 p ∈ N + n p \in \mathbb{N}_+^n pN+n,其中 n > 1 n > 1 n>1。一种常用的方法是分别对每个轴进行编码。例如,考虑一个视频输入 x ∈ R d x \in \mathbb{R}^d xRd,其具有三维坐标 ( t , h , w ) (t, h, w) (t,h,w),则对应三个轴分别有三个特定参数: θ t , θ h , θ w \boldsymbol{\theta}^t, \boldsymbol{\theta}^h, \boldsymbol{\theta}^w θt,θh,θw。按照公式(1)中定义的单轴RoPE,分别对这三个轴在特征维度上独立应用。最终的多轴RoPE通过将这三个单轴RoPE嵌入拼接在一起得到。

2.3. Length Extrapolation with RoPE


在本节中,我们简要回顾了在文本和图像中采用RoPE进行长度外推的技术。

最直接的方法是位置外推(Position Extrapolation, PE),它在不修改位置编码的情况下扩展输入序列长度,完全依赖于网络的泛化能力和位置编码本身的表达能力。而位置插值(Position Interpolation, PI)(Chen 等,2023b)则通过统一缩小RoPE嵌入中的所有频率来匹配训练时的序列长度。具体而言,新的RoPE频率通过以下公式计算:$
\boldsymbol{\theta}^{\text{PI}} = \boldsymbol{\theta} / s,
$其中 s = L ′ / L s = L' / L s=L/L L L L L ′ L' L 分别是训练和推理时的序列长度。

PE 和 PI 的一个主要局限性在于它们依赖于在目标序列长度上的训练,否则性能会急剧下降。为了解决这一问题,NTK感知缩放RoPE(NTK-Aware Scaled RoPE,简称 NTK)(bloc97, 2023)结合了位置外推和插值的思想。具体地,NTK 对所有维度的基础频率 b b b 进行如下调整:

θ j NTK = ( λ b ) − 2 ( j − 1 ) / d ′ , λ = s d ′ / ( d ′ − 2 ) , j = 1 , … , d ′ / 2 , (2) \theta_j^{\text{NTK}} = (\lambda b)^{-2(j - 1)/d'},\quad \lambda = s^{d' / (d' - 2)},\quad j = 1, \ldots, d'/2, \tag{2} θjNTK=(λb)2(j1)/d,λ=sd/(d2),j=1,,d/2,(2)

其中 s = L ′ / L s = L' / L s=L/L。NTK 对高频率等效地应用 PE,对低频率等效地应用 PI,从而实现无训练外推。(bloc97, 2023;Zhuo et al., 2024)

YaRN(Peng et al., 2023)引入了更精细的基础频率调整策略。它首先根据在训练长度上经过的周期数将所有频率分为三组,该周期数定义为:

r j = ( 2 π ) − 1 L θ j . r_j = (2\pi)^{-1}L \theta_j. rj=(2π)1Lθj.

给定两个预设阈值 α \alpha α β \beta β,满足 d ′ / 2 ≤ α < β ≤ r 1 d'/2 \leq \alpha < \beta \leq r_1 d/2α<βr1,YaRN 按如下方式调整 RoPE 频率:

θ j YaRN = γ ( r j ) θ j + ( 1 − γ ( r j ) ) θ j s , j = 1 , … , d ′ / 2 , (3) \theta_j^{\text{YaRN}} = \gamma(r_j)\theta_j + (1 - \gamma(r_j))\frac{\theta_j}{s},\quad j = 1, \ldots, d'/2, \tag{3} θjYaRN=γ(rj)θj+(1γ(rj))sθj,j=1,,d/2,(3)

其中:

γ ( r j ) = { 1 , if  r j > β , 0 , if  r j < α , r j − α β − α , otherwise . \gamma(r_j) = \begin{cases} 1, & \text{if } r_j > \beta, \\ 0, & \text{if } r_j < \alpha, \\ \frac{r_j - \alpha}{\beta - \alpha}, & \text{otherwise}. \end{cases} γ(rj)= 1,0,βαrjα,if rj>β,if rj<α,otherwise.

在实践中,YaRN 相比 NTK 表现出更好的无训练外推能力,并且在目标长度上用相对较少的微调预算也能取得优异性能(Peng et al., 2023)。

图像扩散Transformer中的长度外推。图像扩散Transformer在RoPE相关方面具有两个关键特性:(1) 图像数据表示为一个具有高度和宽度轴的序列;(2) 采用迭代式扩散采样过程。这些特性决定了图像扩散模型中适用的长度外推技术。对于多轴序列,RoPE会独立地应用于每个轴,使得类似NTK和YaRN的长度外推技术可以分别用于高度轴和宽度轴,此类变体被称为Vision NTKVision YaRN(Lu et al., 2024b)。在采样阶段,不同的RoPE调整可以在不同的扩散时间步上应用。例如,时间感知缩放RoPE(Time-aware Scaled RoPE, TASR)(Zhuo et al., 2024)在较大的时间步上使用PI以保留全局结构,同时在较小时间步使用NTK以提升视觉质量。

3. Method

我们的目标是全面理解并解决视频长度外推问题。我们首先指出现有方法中引人注目的失败模式,分析位置嵌入中不同频率成分的作用,并识别出一种“内在频率”。基于此,我们提出了一个简洁的外推解决方案:降低该内在频率。作为附带成果,我们的方法不仅为现有视频外推方法的失败提供了理论解释,还为图像中的空间外推提供了可借鉴的思路。

3.1. Failure Patterns of Existing Methods


图2

图2. 现有方法在视频与图像生成中进行2倍外推的可视化效果。基础模型为 CogVideoX-5B(Yang 等,2024)和 Lumina-Next(Zhuo 等,2024),分别训练用于生成最多49帧的视频和最高1K分辨率的图像。现有方法在视频外推中会导致时间重复或动作减缓,在图像外推中则会出现空间重复或内容模糊的问题。更多结果与细节请参见附录C。

尽管“外推”这一术语在不同领域被广泛使用,但它在视频生成中的作用与文本和图像领域有着根本性区别。在视频生成中,目标是创造新的、时间连贯的内容,使其随时间平滑演化。而在文本外推中,主要是扩展上下文窗口;图像外推则通常是补充高分辨率细节,而非生成具有意义的新内容。

因此,为文本和图像设计的外推策略在视频长度外推中表现失败,并展现出一些有趣的失败模式,如图2所示。为了更好理解这些模式,我们还对图像的空间外推进行了对照实验,揭示了其与视频外推的相似性。

PE(位置外推)直接将位置编码延伸至训练范围之外,会导致时间上的重复,使得生成视频出现循环,而非自然推进(图2a)。在图像生成中也出现类似现象,表现为空间内容重复,而非生成新内容。

相比之下,PI(Chen 等,2023b)将位置编码压缩到训练范围之内,在时间上拉长帧间间隔,从而导致慢动作(图2b)。虽然这种方法保留了结构连贯性,但缺乏时间上的新颖性。在图像生成中,这种方式通常会导致图像细节模糊,而不是新增内容(图2e)。

如图2c所示,NTK(bloc97, 2023)同样会引发时间重复,无法生成有意义的动作进展。在图像生成中,它则表现为空间内容重复(图2f)。尽管其他方法(Peng 等,2023;Lu 等,2024b;Zhuo 等,2024)在实现细节上与 NTK 不同,但它们几乎无一例外地会出现这两类失败模式之一或两者兼有:要么是动作减速,要么是内容重复(详见附录C的进一步分析)。

除了揭示这些局限性外,我们的研究也为理解位置嵌入如何从根本上塑造时间运动提供了直观认识,并为接下来的频率成分深入分析提供了动机。

3.2. Frequency Component Analysis in RoPE


我们从分析 RoPE(Su et al., 2021)中各个频率成分的作用开始。我们遵循第 2.2 节中的记号,但聚焦于时间轴,并为简洁起见省略下标 t t t。我们通过将其余频率置零并微调目标模型(Yang et al., 2024)的训练长度,使其适应修改后的 RoPE,从而实现特定频率成分的隔离。

这一分析带来了两个关键洞见:

首先,不同的频率成分 θ j \theta_j θj 捕捉不同尺度上的时间依赖关系,其尺度由周期决定:

N j = 2 π θ j . (4) N_j = \frac{2\pi}{\theta_j}. \tag{4} Nj=θj2π.(4)

如图3所示,当帧间距超过 N j N_j Nj 时,余弦函数的周期性使位置编码(进而生成的视频内容)产生重复。对于训练长度 L L L,重复次数可以量化为:

r j = L N j = L θ j 2 π . (5) r_j = \frac{L}{N_j} = \frac{L\theta_j}{2\pi}. \tag{5} rj=NjL=2πLθj.(5)

图3显示,当高频成分 r j = 2 r_j = 2 rj=2 时,视频在训练长度内完成两个周期,在 2 × 2\times 2× 外推中完成四个周期。相比之下,低频成分如 r j = 0.5 r_j = 0.5 rj=0.5 即使在外推中也保持在一个周期内。

其次,频率成分会影响视频生成中感知到的运动速度。这种影响与位置编码在连续帧之间的变化率相关,例如第 p p p 帧与第 p + 1 p+1 p+1 帧之间:

Δ j = cos ⁡ ( ( p + 1 ) θ j ) − cos ⁡ ( p θ j ) . (6) \Delta_j = \cos((p+1)\theta_j) - \cos(p\theta_j). \tag{6} Δj=cos((p+1)θj)cos(pθj).(6)

较高的频率(即更大的 θ j \theta_j θj)通常带来更大的 Δ j \Delta_j Δj,使得模型对快速运动更加敏感。

相反,较低频率成分在相邻帧间导致的位置编码变化最小,更偏向于慢动作动态,这与图3中的结果一致。

由于每个频率成分都有其周期 N j N_j Nj,一个关键问题随之而来:哪个频率主要决定了外推中观察到的重复模式?

我们将**内在频率成分(intrinsic frequency component)**定义为其周期 N j N_j Nj 最接近首次观察到的视频重复帧数 N N N 的成分,因为它主导整体行为:

k = arg ⁡ min ⁡ j ∣ N j − N ∣ . (7) k = \arg\min_j |N_j - N|. \tag{7} k=argjminNjN∣.(7)

令人惊讶的是,这一内在频率在同一模型生成的不同视频中保持一致,尽管 N N N 有轻微变化。例如,CogVideoX-5B(Yang et al., 2024)对应的 k = 2 k=2 k=2,HunyuanVideo(Kong et al., 2024)对应 k = 4 k=4 k=4,详见附录E。

在极少数情况下,如果模型在不同视频中表现出不一致的内在频率,我们建议将所有此类频率都视作“内在”。我们的初步实验进一步验证了这一假设,表明将所有低频成分纳入我们的方法后,仍能保持强大的性能,详见附录E。

图3

图3. 频率成分及其在视频生成中作用的可视化。高频成分捕捉快速运动和短期依赖,容易引发时间重复;而低频成分编码长期依赖,表现为慢动作。

3.3. Reducing Intrinsic Frequency: A Minimal Solution


设想一个视频扩散Transformer在长度为 L L L 的序列上进行训练。我们的目标是通过扩展因子 s s s(我们假设 s s s 足够大,以满足 N k < L s N_k < Ls Nk<Ls。否则,通过 PE 生成长视频是微不足道的。
),生成长度为 s L sL sL 的视频。

基于前面的发现,我们提出一个自然且简洁的解决方案:RIFLEx(Reducing Intrinsic Frequency for Length Extrapolation)。RIFLEx 通过降低内在频率,使其在外推后仍处于一个周期内:

N k ′ ≥ L s ⇒ θ k ′ ≤ 2 π L s . (8) N_k' \geq Ls \Rightarrow \theta_k' \leq \frac{2\pi}{Ls}. \tag{8} NkLsθkLs2π.(8)

通过设置 θ k ′ = 2 π L s \theta_k' = \frac{2\pi}{Ls} θk=Ls2π,我们实现了最小修改。对其他频率的消融实验(附录E)确认,仅调整内在频率即可:调整高频成分会破坏快速运动,而改变低频成分几乎没有影响。我们在算法1中正式给出RIFLEx的定义。

我们进一步探讨RIFLEx是否需要微调。令人惊讶的是,在进行 2 × 2\times 2× 外推时,RIFLEx 能够在无需训练的情况下生成高质量视频,如图4所示。即使仅用 20,000 个原始长度的视频和预训练计算量的 1/50,000 进行微调,也能显著提升动态表现和视觉质量。

对于 3 × 3\times 3× 外推,内在频率的偏移变得过大,导致无训练版 RIFLEx 失败。然而,微调过程仍然有效,如图4所示。

图4

图4. 探索微调的必要性。在 2× 外推中,RIFLEx 无需微调即可生成高质量视频。而在 3× 外推中,由于内在频率偏移较大,需要通过微调来提升动态效果和视觉质量。

算法1

3.4. Principled Explanation for Existing Methods


我们的研究结果为第3.1节中观察到的失败模式提供了理论上的解释。PE 和 NTK(bloc97, 2023;Lu 等,2024b)中出现的重复现象,源于它们的内在频率成分违反了公式(8)中的“非重复条件”。因此,生成的视频内容会循环播放,而不是自然推进。PI(Chen 等,2023b)和 YaRN(Peng 等,2023)通过对高频成分进行插值来实现外推,而这些高频成分对于快速运动至关重要。由于在这些方法中被 s s s 除,频率被压缩,从而无法产生快速运动,导致慢动作。TASR(Zhuo 等,2024)结合了上述两类方法,最终导致时间重复与动作缓慢的混合现象。更多细节与实验结果见附录C。

http://www.xdnf.cn/news/9839.html

相关文章:

  • NVIDIA英伟达AI图片视频内容描述总结软件describe-anything整合包
  • 十二、FTP服务器配置与应用
  • 【博客系统】博客系统第十一弹:从零开始在 Linux 系统上搭建 Java 部署环境并部署 Web 项目
  • 扫地机产品异物进入吸尘口堵塞异常检测方案
  • 软考-系统架构设计师-第十六章 层次式架构设计理论与实践
  • Dif-Fusion:第一个基于扩散模型实现的红外光与可见光图像融合的论文
  • 【Linux系统移植】Cortex-A8 Linux系统移植(超详细)
  • [250529] CrateDB 5.10.7 发布:一系列重要修复与升级注意事项
  • 实战指南:步进电机规格书参数解析——以28BYJ48为例(不聊原理,只讲应用)
  • 【HarmonyOS 5】UIAbility上下文切换途中造成的Toast提示展示错窗口的解决方案
  • PyTorch中 torch.utils.data.DataLoader 的详细解析和读取点云数据示例
  • 机动车结构化检测算法AI智能分析网关V4打造全场景应用解决方案
  • 从数据持久化到网络通信与OpenCV:Qt应用程序开发的深度探索与实战
  • 从 API 调用到智能 Agent:面向未来产品的插件化 AI 中台设计
  • Android bindservice绑定服务,并同步返回service对象的两个方法
  • 易经六十四卦象解释数据集分享!智能体知识库收集~
  • PostgreSQL 修改表结构卡住不动
  • MySQL索引与事务
  • 华为防火墙NAPT配置
  • 大模型是什么?
  • 金额高精度计算-BigDecimal
  • CSformer:结合通道独立性和混合的稳健多变量时间序列预测
  • 【QQ音乐】sign签名| data参数加密 | AES-GCM加密 | webpack (下)
  • 理解教材意图轻松积累常见数列
  • 外贸邮件营销推广怎么做才有效果?
  • 浏览器本地存储
  • 计算机图形学:(六)渲染管线
  • java24
  • 信创改造选择C86,相比于ARM架构有什么优势?
  • HOW - 简历和求职面试宝典(八)