NOVA:AutoRegressive Video Generation Without Vector Quantization——自回归视频生成无需向量量化
这篇文章介绍了一种名为NOVA的新型自回归模型,用于高效的文本到图像和文本到视频生成。以下是文章的主要内容总结:
1. 研究背景与问题
-
自回归大语言模型(LLMs)在自然语言处理(NLP)中表现出色,但在视觉生成领域,现有的自回归模型通常依赖于向量量化(VQ),这在高保真度和高压缩率之间难以平衡。
-
扩散模型在视觉生成中取得了显著进展,但它们通常只能生成固定长度的视频,且缺乏自回归模型的上下文能力。
2. NOVA的核心创新
-
无量化自回归建模:NOVA通过无量化的自回归建模,将视频生成问题重新表述为时间上的逐帧预测和空间上的逐集预测。
-
因果性与双向建模:NOVA保持了GPT风格模型的因果性,同时在单个帧内利用双向建模来提高效率。
-
高效训练与推理:NOVA在数据效率、推理速度、视觉保真度和视频流畅性方面超越了现有的自回归视频模型,且模型容量更小(0.6B参数)。
3. 方法论
-
时间自回归建模:NOVA按因果顺序逐帧预测视频帧,并通过光流和文本提示来控制视频动态。
-
空间自回归建模:NOVA在每帧内按随机顺序预测标记集,利用双向建模来提高推理效率。
-
扩散过程去噪:NOVA在训练中使用扩散损失来估计逐标记概率,并在推理时通过逐步去噪生成高质量图像和视频。
4. 实验与结果
-
数据集与训练:NOVA使用了多个高质量的数据集进行训练,包括文本到图像和文本到视频任务。
-
性能评估:NOVA在文本到图像生成任务中超越了现有的扩散模型,并在文本到视频生成任务中与最先进的扩散模型性能相当,且推理速度更快。
-
零样本泛化:NOVA在扩展视频时长和跨上下文任务中表现出良好的泛化能力。
5. 结论
-
NOVA为下一代视频生成和世界模型铺平了道路,提供了超越现有视频扩散模型的实时和无限视频生成的可能性。
-
未来的工作将继续探索更大模型和数据扩展,以进一步挖掘NOVA的潜力。
NOVA通过无量化自回归建模和高效的训练与推理方法,在文本到图像和文本到视频生成任务中取得了显著的性能提升,展示了其在多模态生成领域的强大潜力。这里是自己的论文阅读记录,感兴趣的话可以参考一下,如果需要阅读原文的话可以看这里,如下所示:
官方项目地址在这里,如下所示:
官方发布的文生图预训练模型如下:
Model | Parameters | Resolution | Data | Weight | GenEval | DPGBench |
---|---|---|---|---|---|---|
NOVA-0.6B | 0.6B | 512x512 | 16M | 🤗 HF link | 0.75 | 81.76 |
NOVA-0.3B | 0.3B | 1024x1024 | 600M | 🤗 HF link | 0.67 | 80.60 |
NOVA-0.6B | 0.6B | 1024x1024 | 600M | 🤗 HF link | 0.69 | 82.25 |
NOVA-1.4B | 1.4B | 1024x1024 | 600M | 🤗 HF link | 0.71 | 83.01 |
文生视频预训练模型如下:
Model | Parameters | Resolution | Data | Weight | VBench |
---|---|---|---|---|---|
NOVA-0.6B | 0.6B | 33x768x480 | 20M | 🤗 HF link | 80.12 |
摘要
本文提出了一种新颖的方法,能够高效地进行自回归视频生成。我们将视频生成问题重新表述为无量化的自回归建模,包括时间上的逐帧预测和空间上的逐集预测。与之前自回归模型中的光栅扫描预测或扩散模型中固定长度标记的联合分布建模不同,我们的方法保持了GPT风格模型的因果特性,以实现灵活的上下文能力,同时在单个帧内利用双向建模来提高效率。通过所提出的方法,我们训练了一个无需向量量化的新型视频自回归模型,称为NOVA。实验结果表明,NOVA在数据效率、推理速度、视觉保真度和视频流畅性方面超越了之前的自回归视频模型,即使模型容量小得多(即0.6B参数)。NOVA在文本到图像生成任务中也优于最先进的图像扩散模型,且训练成本显著降低。此外,NOVA在扩展视频时长上表现出良好的泛化能力,并在一个统一模型中实现了多样化的零样本应用。
1 引言
自回归大语言模型(LLMs)(Brown et al. (2020); Touvron et al. (2023))已成为自然语言处理(NLP)中的基础架构,展示了在上下文学习和长上下文推理中的新兴能力。在自回归(AR)视觉生成领域,之前的方法(Ramesh et al. (2021); Ding et al. (2021); Yu et al. (2022); Yan et al. (2021); Villegas et al. (2022); Kondratyuk et al. (2023); Wang et al. (2024))通常通过向量量化(Van Den Oord et al. (2017); Esser et al. (2021))将图像或视频片段转换为离散值标记空间,然后将其展平为序列以进行逐标记预测。然而,向量量化标记器在同时实现高保真度和高压缩率方面具有挑战性。高质量需要更多的标记,因此随着图像分辨率或视频序列长度的增加,成本显著增加。
相比之下,视频扩散模型(Brooks et al. (2024); Kuaishou (2024); Blattmann et al. (2023))在紧凑的连续潜在空间中学习高度压缩的视频序列。然而,大多数模型仅学习固定长度帧的联合分布,缺乏生成不同长度视频的灵活性。更重要的是,它们不具备自回归模型的上下文能力,例如像GPT那样在上下文中解决多样化任务。
在这项工作中,我们提出了NOVA,解决了上述问题,并实现了高效的自回归视频生成。我们提出将视频生成问题重新表述为无量化的自回归建模,包括时间上的逐帧预测和空间上的逐集预测。NOVA受到Emu3(Wang et al. (2024))自回归视频和多模态生成的启发,以及MAR(Li et al. ())无量化自回归图像生成的影响,后者使用无量化向量作为视觉标记并执行逐集自回归预测。虽然两者都是无量化自回归方法,但从MAR到NOVA并非易事:1) NOVA解决了包括效率、可扩展性和掩码调度在内的挑战,尤其是在学习更复杂的文本到图像生成而不是类别到图像生成时。2) NOVA首先按时间顺序预测帧,然后在每个帧内预测空间集。NOVA是第一个实现无量化自回归视频生成的模型。
具体来说,NOVA在时间上按因果顺序预测每一帧,在空间上按随机顺序预测每个标记集。通过这种方式,文本到视频生成可以被视为一个基本任务,隐式且全面地涵盖了各种生成任务(见图1),包括文本到图像、图像到视频、文本&图像到视频等。通过无量化标记器和灵活的自回归框架,NOVA同时利用了1) 高保真度和紧凑的视觉压缩,降低了训练和推理成本,以及2) 上下文能力,将多个视觉生成任务集成到一个统一模型中。
在文本到视频生成方面,NOVA在数据效率、推理速度和视频流畅性方面超越了自回归模型,同时与类似规模的扩散模型性能相当,例如在A100-40G上仅训练342 GPU天,实现了VBench(Huang et al. (2024))得分80.1,处理速度为2.75 FPS1。在文本到图像生成方面,NOVA实现了GenEval(Ghosh et al. (2024))得分0.75,超越了之前的扩散模型,且训练成本显著降低,仅需127 GPU天即可训练这个最先进的0.6B模型。此外,NOVA在各种上下文中也表现出强大的零样本泛化能力。我们相信,NOVA为下一代视频生成铺平了道路,提供了超越Sora-like视频扩散模型的实时和无限视频生成的可能性。
2 相关工作
扩散模型在视觉生成中的应用
扩散模型(Ho et al. (2020); Song et al. (2020))在视觉生成领域取得了显著进展,包括文本到图像任务(Esser et al. (); Betker et al. (); Baldridge et al. (2024))和文本到视频任务(Brooks et al. (2024); Lin et al. (2024); Blattmann et al. (2023))。图像扩散模型通常在像素(Ho et al. (2020); Nichol et al. (2021); Hoogeboom et al. (2023))或潜在空间(Rombach et al. (); Esser et al. (); Betker et al. (); Chen et al. (2023))中建模固定长度标记的联合分布。此外,视频扩散模型进一步引入了时间层来捕捉固定数量视频帧之间的关系。训练后,通过额外的推理技巧(Meng et al. (2021))、结构调节(Blattmann et al. (2023); Esser et al. (); Liew et al. (2023))和适配器层(Zhang et al. (); Guo et al. (2023))添加了额外的任务和模态。尽管这些策略可以是可组合的,但它们与自回归方法(Kondratyuk et al. (2023); Hong et al. (2022); Radford (2018); Touvron et al. (2023))形成对比,后者训练一个端到端的单一模型进行多任务学习,提供了显著的上下文可扩展性和跨多样化应用场景的零样本泛化能力,特别是在扩展视频生成时长方面。
自回归模型在视觉生成中的应用
光栅扫描自回归模型通常在离散值的RGB像素(Kalchbrenner et al. (2017); Reed et al. (2017))或潜在空间(Esser et al. (2021); Van Den Oord et al. (2017))中实现,类似于其语言对应物(Radford et al. (2019); Anil et al. (2023))。最近的研究涉及可扩展的自回归变压器,以光栅扫描顺序生成标记序列用于图像生成(Ramesh et al. (2021); Ding et al. (2021, 2022); Yu et al. (2022); Sun et al. (), 和视频生成(Yan et al. (2021); Kondratyuk et al. (2023); Nash et al. (2022))。具体来说,VAR(Tian et al. (2024))引入了下一尺度预测,逐步处理跨多个分辨率的逐标记序列,从而提高了图像质量。
掩码自回归模型进一步发展了掩码生成模型(Chang et al. (2022)),引入了广义自回归概念。它们引入了双向变压器,并通过关注未掩码条件来预测随机掩码的标记。这弥补了逐行策略的次优建模和低效推理,激发了文本到图像(Chang et al. (2023))和文本到视频生成(Hong et al. (2022); Yu et al. (2023); Villegas et al. (2022))的一系列后续工作。特别是,MAR(Li et al. ())将离散标记器与自回归模型解耦,并利用扩散过程进行逐标记概率分布。它在类别到图像领域得到了充分验证,在文本到图像领域具有巨大潜力。然而,将其应用于文本到视频生成直观上需要跨整个视频帧的掩码自回归过程,这对多上下文学习和训练效率提出了挑战。相比之下,我们的NOVA模型将视频生成分解为逐帧时间预测与空间逐集预测相结合。这使得每一帧作为一个元因果单元,实现了扩展视频时长和跨各种上下文的零样本泛化能力。此外,随后的空间标记集预测释放了双向建模模式的力量,在保持视觉质量和保真度的同时提高了推理效率。
3 方法论
我们首先在第3.1节回顾了两类自回归视频生成。在第3.2-3.4节中,我们介绍了NOVA的框架管道和实现细节,如图2所示。
图2:NOVA框架及推理过程。在输入文本后,NOVA通过时间上的逐帧预测和空间上的逐集预测进行自回归生成。最后,我们在连续值空间中进行扩散去噪
重新思考自回归模型用于视频生成
如上所述,我们将文本到视频生成和自回归(AR)模型分别视为基本任务和手段。我们简要回顾了相关的技术背景。存在两种类型的AR视频生成方法:(1) 通过光栅扫描顺序逐标记生成。 这些研究在视频帧序列内执行因果逐标记预测(Kondratyuk et al. (2023)),并按照光栅扫描顺序解码视觉标记(Wang et al. (2024)),定义如下:
其中C表示各种条件上下文,例如标签、文本、图像等。注意,xn表示N个视频光栅尺度标记中的第n个标记。相比之下,(2) 随机顺序中的掩码逐集生成 将每个视频帧内的所有标记视为平等,使用双向变压器解码器进行逐集预测(Yu et al. (2023))。然而,这种广义自回归(AR)模型在大型固定长度视频帧上使用同步建模进行训练,这可能导致上下文可扩展性差和较长视频时长上的连贯性问题。因此,NOVA提出了一种新颖的解决方案,将单个视频帧内的逐集生成与整个视频序列的逐帧预测解耦。这使得NOVA能够更好地处理时间因果关系和空间关系,提供了一个更灵活和可扩展的AR框架。
通过逐帧预测进行时间自回归建模
受(Zhuo et al. (2024))启发,我们使用预训练的语言模型(Javalneriqi et al. (2023))将文本提示编码为特征。为了更好地控制视频动态,我们使用OpenCV(cv2)(Bradski (2000))计算采样视频帧的光流。平均流幅度用作运动得分并与提示集成。此外,我们采用开源的3D变分自编码器(VAE)(Lin et al. (2024)),时间步长为4,空间步长为8,将视频帧编码到潜在空间。我们添加了一个额外的可学习补丁嵌入层,空间步长为4,以将潜在视频通道与后续变压器对齐。值得注意的是,早期AR模型中的下一标记预测对于单个图像内的无方向视觉补丁似乎违反直觉,并且在推理期间遭受高延迟。相比之下,视频帧自然可以被视为因果序列,每一帧作为AR生成的元单元。因此,我们实现了块状因果掩码注意力,如图3(a)所示,确保每一帧只能关注文本提示、视频流及其前面的帧,同时允许所有当前帧标记彼此可见,如下所示:
通过逐集预测进行空间自回归建模
受(Chang et al. (2022); Li et al. ())启发,我们将每个标记集定义为来自随机方向的多个标记作为元因果标记,如图3(b)所示,促进了具有高效并行解码的广义AR过程。值得注意的是,我们尝试利用时间层的输出作为指示特征来辅助空间层,逐步解码相应图像内的所有随机掩码标记集。然而,这种方法导致了图像结构崩溃和随着帧数增加视频流畅性不一致。我们假设这是因为来自相邻帧的指示特征相似,使得在没有显式建模的情况下难以准确学习连续且不可察觉的运动变化。此外,训练期间从地面真实上下文帧派生的指示特征导致空间AR层对累积推理误差的鲁棒性和稳定性较弱。
图3:我们块状时间和空间广义自回归注意力的概述。与逐标记生成不同,NOVA在时间尺度上按因果顺序逐帧预测,并在空间尺度上按随机顺序逐集预测标记集
通过扩散过程去噪进行逐标记预测
4 实验
实验设置
数据集。 我们涉及了几个多样化、精选和高质量的数据集,以促进NOVA的训练。对于文本到图像训练,我们最初策划了16M图像-文本对,来源于DataComp(Gadre et al. (2024))、COYO(Byeon et al. (2022))、Unsplash(UnsplashTeam (2020))和JourneyDB(Sun et al. ())。为了探索NOVA的扩展特性,我们通过从LAION(Schuhmann et al. (2022))、DataComp和COYO中选择更多具有最低美学分数5.0的图像,将数据集扩展到大约600M图像-文本对。对于文本到视频训练,我们在Panda-70M(Chen et al. ())的子集(Lin et al. (2024))和内部视频-文本对上选择了19M视频-文本对。我们进一步从Pexels(PexelsTeam (2014))收集了1M高分辨率视频-文本对,以微调我们的最终视频生成模型。遵循(Diao et al. (2024)),我们基于Emu2-17B(Sun et al. (2023))模型训练了一个标题引擎,为我们的图像和视频数据集创建高质量描述。最大文本长度设置为256。
架构。 我们主要遵循(Li et al. ())构建NOVA的空间AR层和去噪MLP块,包括LayerNorm(Lei Ba et al. (2016))、AdaLN(Huang & Belongie (), 线性层、SiLU激活(Elfwing et al. (2018))和另一个线性层的层序列。我们配置时间编码器、空间编码器和解码器各有16层,维度为768(0.3B)、1024(0.6B)或1536(1.4B)。去噪MLP由3个块组成,维度为1280。空间层采用MAR(Li et al. ())的编码器-解码器架构,类似于MAE(He et al. (2022))。具体来说,编码器处理可见补丁以进行重建。解码器进一步处理可见和掩码补丁以进行生成。为了捕捉图像潜在特征,我们采用了预训练和冻结的VAE(Lin et al. (2024)),它在时间维度上实现了4倍压缩,在空间维度上实现了8×8压缩。我们采用了(Li et al. (); Nichol & Dhariwal (2021))的掩码和扩散调度器,在训练期间使用0.7到1.0之间的掩码比率,并在推理期间按照余弦调度(Chang et al. (2023))从1.0逐渐减少到0。与常见做法(Ho et al. (2020))一致,我们使用1000步噪声调度进行训练,但在推理中默认为100步。
训练细节。 NOVA使用16个A100(40G)节点进行训练。我们使用AdamW优化器(Loshchilov et al. (2017))(β1=0.9,β2=0.95),权重衰减为0.02,所有实验中的基础学习率为1e-4。峰值学习率根据训练期间的不同批量大小进行调整,使用缩放规则(Goyal (2017)):Ir = base_lr × batchsize/256。我们从零开始训练文本到图像模型,然后加载这些权重来训练文本到视频模型。
评估。 我们使用T2I-CompBench(Huang et al. (2023))、GenEval(Ghosh et al. (2024))和DPG-Bench(Hu et al. (2024))来评估生成图像与文本条件之间的对齐。我们为每个原始或重写(Wang et al. (2024))文本提示生成图像样本。每个图像样本的分辨率为512×512或1024×1024。我们使用VBench(Huang et al. (2024))来评估文本到视频生成的能力,涵盖16个维度。对于给定的文本提示,我们随机生成5个样本,每个样本的视频大小为33×768×480。我们在所有评估实验中使用分类器自由指导(Ho & Salimans (2022)),值为7.0,以及128个自回归步骤,以增强生成的图像和视频的质量。
主要结果
NOVA在文本到图像模型中表现出色,具有卓越的性能和效率。 在表2中,我们将NOVA与几个最近的文本到图像模型进行了比较,包括PixArt-α(Chen et al. (2023))、SD v1/v2(Rombach et al. (), SDXL(Podell et al. (2023))、DALL-E2(Ramesh et al. (2022))、DALL-E3(Betker et al. (), SD3(Esser et al. ()))、LlamaGen(Sun et al. ()和Emu3(Wang et al. (2024))。在文本到图像训练后,NOVA在GenEval基准测试中实现了最先进的性能,特别是在生成指定数量的目标方面。值得注意的是,NOVA在T2I-CompBench和DPG-Bench上也取得了领先的结果,在小模型规模和数据规模上表现出色(仅需最佳竞争对手PixArt-α的16%训练开销)。_最后但同样重要的是,我们的文本到视频模型优于大多数专门的文本到图像模型,例如SD v1/v2、SDXL和DALL-E2。这突显了我们的模型在多上下文场景中的鲁棒性和多功能性,以文本到视频生成为基础训练任务。
NOVA与扩散文本到视频模型相媲美,并显著抑制了AR对应物。 我们强调,当前版本的NOVA设计用于生成33帧的视频,并可以通过预填充最近生成的帧来扩展视频长度。我们进行了定量分析,将NOVA与开源和专有的文本到视频模型进行比较。如表3所示,尽管其规模显著较小(0.6B vs. 9B),NOVA在各种文本到视频评估指标上显著优于CogVideo(Hong et al. (2022))。它还匹配了最新SOTA模型Emu3(Wang et al. (2024))的性能(80.12 vs. 80.96),且规模显著较小(0.6B vs. 8B)。此外,我们将NOVA与最先进的扩散模型进行了比较。这包括闭源模型如Gen-2(Runway (2023))、Kling(Kuaishou (2024))和Gen-3(Runway (2024)),以及开源替代品如LaVie(Wang et al. (2023))、Show-1(Zhang et al. (2023a))、AnimateDiff-v2(Guo et al. (2024))、VideoCrafter-v2.0(Chen et al. (2024a))、T2V-Turbo( Li et al. (2024b))、OpenSora-v1.1(Zheng et al. (2024))、OpenSoraPlan-v1.1/v1.2(Lin et al. (2024))和CogVideoX(Yang et al. (2024))。结果强调了文本到图像预训练在我们广义因果过程中的有效性。值得注意的是,我们缩小了自回归和扩散方法在建模大规模视频-文本对之间的差距,增强了视频生成的质量和指令跟随能力。此外,NOVA在推理延迟方面表现出显著的速度优势。
定性结果
高保真图像和高流畅视频。 我们在图4中展示了当前领先图像生成方法的定性比较。NOVA在一系列提示风格中表现出强大的视觉质量和保真度,并在颜色属性绑定和空间对象关系方面表现出色。我们在图5中展示了文本到视频的可视化,突出了NOVA根据提供的文本提示捕捉多视角、平滑对象运动和稳定场景转换的能力。
视频外推的零样本泛化。 通过预填充生成的帧,NOVA可以生成超过训练长度的视频。例如,通过同时移动文本和BOV嵌入,我们生成了长达原始长度两倍的5秒视频,如图6所示。我们观察到,在视频外推过程中,NOVA始终保留帧间主题的时间一致性。例如,当提示描述一个圆顶和一个灯笼房间时,模型准确地表示了房子内的灯光,并捕捉到了日落的过渡。这进一步强调了因果建模在长上下文视频生成任务中的优势。
消融研究
时间自回归建模的有效性。 为了突出时间自回归建模的优势,我们促进了空间自回归完成视频生成任务。具体来说,我们将时间层的注意力掩码修改为双向注意力,并使用逐集预测随机预测整个视频序列。我们观察到在相同训练迭代次数下视频中的主题移动较少(图8)。此外,在各种上下文或视频外推的零样本泛化中,网络输出表现出更多的伪影和时间不一致性。此外,这种方法在推理期间与kv-cache加速不兼容,导致延迟随着视频帧数的增加而线性增加。这进一步证明了因果建模在视频生成中优于多任务方法。
缩放和移位层的有效性。 为了捕捉跨帧运动变化,我们采用了一个简单但有效的缩放和移位层,以显式建模来自BOV关注特征空间的相对分布。在图9(a)中,我们展示了这种方法显著减少了文本到图像和图像到视频生成损失之间的漂移。随着我们逐渐降低MLP的内部秩,训练难度增加,导致网络的学习过程更加全面和鲁棒。然而,极低的秩值对运动建模提出了挑战,因为它们显著限制了层的表示能力(图10)。在所有文本到视频实验中,默认秩设置为24,从而实现了更准确的运动预测。
后归一化层的有效性。 训练大规模图像和视频生成模型(Ding et al. (2021); ChameleonTeam ())从零开始通常面临混合精度的重大挑战,这也在其他视觉识别方法中观察到(Liu et al. (2022))。如图9(b)所示,使用预归一化(Dosovitskiy et al. (2021))的训练过程遭受数值溢出和方差不稳定性。我们尝试了各种正则化技术,如随机深度(Huang et al. (2016))和残差丢弃(Vaswani et al. (2017)),但发现它们效果较差。受(Liu et al. (2022))启发,我们引入了后归一化,并经验性地发现,与预归一化相比,它可以有效缓解输出嵌入的残差积累,从而实现更稳定的训练过程。
5 结论
在本文中,我们提出了NOVA,一种新颖的自回归模型,设计用于文本到图像和文本到视频生成。NOVA在显著减少训练和推理开销的同时,提供了卓越的图像质量和视频流畅性。我们的关键设计包括时间逐帧预测、空间逐集生成以及跨各种上下文的连续空间自回归建模。大量实验表明,NOVA在图像生成中实现了接近商业质量,同时在视频生成中展示了有希望的保真度和流畅性。NOVA为下一代视频生成和世界模型铺平了道路。它提供了超越Sora-like视频扩散模型的实时和无限视频生成的宝贵见解和可能性。作为第一步,我们将继续进行更大模型和数据扩展的可扩展实验,以探索NOVA在未来的极限。
相关文章:
NOVA:AutoRegressive Video Generation Without Vector Quantization——自回归视频生成无需向量量化
这篇文章介绍了一种名为NOVA的新型自回归模型,用于高效的文本到图像和文本到视频生成。以下是文章的主要内容总结: 1. 研究背景与问题 自回归大语言模型(LLMs)在自然语言处理(NLP)中表现出色,但…...
79 Openssl3.0 RSA公钥加密数据
1 引言 最近不小心用到了openssl3.0,项目中需要使用rsa非对称加解密算法,所以把openssl3.0使用公钥加密数据的函数调用摸了一遍。 之所以记录此篇文章,是因为网络上大多数是openssl3.0以前的版本的函数接口,而openssl3.0之后已经丢…...
基于单片机的数字电子秒表设计
此文章谨为课设记录 一、实验要求 题目六 数字电子时钟 基本要求: (1) 设计一个单片机电子时钟,设计的电子时钟通过数码管显示; (2) 具有能通过按键实现设置时间的功能; (3) 显示格式为小时十位、小时个位,分…...
rust学习——环境搭建
rust安装:https://kaisery.github.io/trpl-zh-cn/ch01-01-installation.html 1、vscode装插件: toml语法支持 依赖管理 rust语法支持 2、创建demo 3、查看目录 4、执行文件的几种方式: rust安装:https://www.rust-lang.org/z…...
解读若依框架中的 @Xss 注解
文章目录 1. 背景与问题定义什么是 XSS 攻击?XSS 的常见类型传统解决方案的局限性 2. Xss 注解详解Xss 注解源码解析注解核心要素 XssValidator 实现解析核心逻辑 3. 应用场景场景一:表单输入校验示例代码 场景二:API 接口参数校验示例代码 4…...
ADO.NET知识总结4---SqlParameter参数
目录 5.1 SqlParameter介绍 5.2 SqlParameter创建参数方式 5.3 添加命令参数 5.4 参数使用 5.1 SqlParameter介绍 SqlParameter: 表示SqlCommand对象的参数,或与DataSet中列的映射。 常用属性 DbType 参数的SqlDbType(即 数据库的类型而言&#x…...
分布式主键ID生成方式-snowflake雪花算法
这里写自定义目录标题 一、业务场景二、技术选型1、UUID方案2、Leaf方案-美团(基于数据库自增id)3、Snowflake雪花算法方案 总结 一、业务场景 大量的业务数据需要保存到数据库中,原来的单库单表的方式扛不住大数据量、高并发,需…...
【顶刊TPAMI 2025】多头编码(MHE)之极限分类 Part 4:MHE表示能力
目录 1 MHE的表示能力2 基于Frobenius-范数的低秩逼近3 基于CE的低秩近似 论文:Multi-Head Encoding for Extreme Label Classification 作者:Daojun Liang, Haixia Zhang, Dongfeng Yuan and Minggao Zhang 单位:山东大学 代码:h…...
Spring Boot 项目启动报 NoClassDefFoundError 异常的原因分析与解决方案 - jackson 版本不一致
目录 报错: 问题分析: 解决方案: 方案 1:对 Jackson 版本进行统一 方案 2:升级 Springfox 版本 方案 3:替换 Springfox 为 springdoc-openapi(推荐) 方案 4:排除冲突的 Jack…...
Ubuntu网络连接问题(笔记本更换wifi后,虚拟机连不上网络)
1、笔记本更换wifi后,虚拟机的IP地址变了,然后就连不上网络了(主机笔记本连接wifi正常上网) 2、修改子网地址(按照ubutun的ip设置子网掩码) 3、Ubuntu已经显示网络连接正常了,但是就是无法上网&…...
vue3中el-table实现多表头并表格合并行或列
1、el-table中添加事件 :span-method"genderSpanCity" <el-table :span-method"genderSpanCity":data"data.tableData":fit"true" table-layout"fixed" header-align"center" stripestyle"width:100%;he…...
Selenium 八大元素定位方法及场景扩展
Selenium 提供了八种常见的元素定位方法,用于在网页中准确找到需要操作的元素。以下是详细介绍以及一些特殊场景的解决方案。 1. ID 定位 用法: 通过元素的唯一 id 属性进行定位。 element driver.find_element(By.ID, "element_id")使用场…...
计算机网络之---网络拓扑
什么是网络拓扑 为什么需要网络拓扑 网络拓扑有哪些 什么是网络拓扑 网络拓扑 是指网络中各设备(如计算机、路由器、交换机等)如何连接以及它们之间数据流动的结构和布局。它是网络设计的一个关键方面,决定了网络的性能、可扩展性、可靠性…...
YOLO11新王登基!实战改进版,杀穿顶会!
众所周知,YOLO一直是发论文的大热门!而YOLO11做为其的最新版本,必然会在2025成为各大顶会的“宠儿”! 主要在于:一方面,YOLO其他系列的改进早已卷成“红海”,而YOLO11提出才几个月,…...
【《游戏编程模式》实战04】状态模式实现敌人AI
目录 1、状态模式 2、使用工具 3、状态模式适用范围 4、实现内容 5、代码及思路 Enemy.cs EnemyState.cs 6、unity里的设置 7、运行效果展示 1、状态模式 “允许一个对象在其内部状态改变时改变自身的行为。对象看起来好像是在修改自身类。” 就是一个对象能随着自己…...
Linux 环境(Ubuntu)部署 Hadoop 环境
前置准备 准备三台机器 cat /etc/hosts 192.168.1.7 hadoop-master 192.168.1.11 hadoop-slave01 192.168.1.12 hadoop-slave02Linux 环境 cat /etc/os-release PRETTY_NAME"Ubuntu 24.10" NAME"Ubuntu" VERSION_ID"24.10" VERSION"24.…...
裸机器搭建k8s部署 1.28.10版本
问了搭建k8s集群踩了很多坑,问题主要出现在网络插件处,因此主要是master节点操作问题。重新走一下流程整理一下笔记。 目录 虚拟机准备 虚拟机 系统版本信息 修改镜像地址 配置静态ip 关闭防火前和交换分区 转发 IPv4 并让 iptables 看到桥接流量…...
np.ndarray 是 NumPy 库中的核心数据结构
np.ndarray 是 NumPy 库中的核心数据结构,代表一个多维数组(或称为矩阵)。它是一个高效的容器,用于存储和操作数据,可以包含任意类型的数据(整数、浮点数、布尔值等)。 主要特点: …...
全新免押租赁系统打造便捷安全的租赁体验
内容概要 全新免押租赁系统的推出,标志着租赁行业的一次重大变革。这个系统的最大特点就是“免押金”,大大减轻了用户在租赁过程中的经济负担。从此,不再需要为一部手机或其他商品支付高昂的押金,用户只需通过简单的信用评估&…...
C语言——结构体,位段,枚举和联合
目录 前言 结构体 1含义 2语法 3匿名结构体 4结构体自引用 5结构体的定义与初始化 6内存对齐 7修改对齐数 8结构体传参 位段 1含义 2位段的内存分配 编辑3位段的问题 4位段的应用 枚举 1含义 2定义 3枚举优点 4枚举使用 联合 1含义 2定义 3特点 4计…...
现场展示deepseek VS openAI o1模型大对比
DeepSeek-V3 模型的发布在 AI 领域引起了广泛关注。作为一款拥有 6850 亿参数的混合专家(MoE)语言模型,DeepSeek-V3 在多个基准测试中表现出色,甚至超越了一些闭源模型。其在 Aider 代码能力排行榜上的正确率达到 48.4%࿰…...
深度解析 tanh tanh 激活函数
1. 引言 在现代深度学习中,激活函数(Activation Function)是神经网络的核心组件之一。它的主要作用是引入非线性,从而使神经网络能够学习和表示复杂的非线性关系。如果没有激活函数,神经网络的输出将只是输入的线性组…...
【Golang 面试题】每日 3 题(二十五)
✍个人博客:Pandaconda-CSDN博客 📣专栏地址:http://t.csdnimg.cn/UWz06 📚专栏简介:在这个专栏中,我将会分享 Golang 面试中常见的面试题给大家~ ❤️如果有收获的话,欢迎点赞👍收藏…...
Unity Canvas中显示粒子特效
首先在场景中新建一个粒子特效 修改一下参数 1.改变粒子特效的渲染层级,层级修改为UI层,由UI相机渲染 使用粒子特效的Sorting Layer ID和Order In Layer,Sorting Layer ID设置为UI(如果没有UI层则新建就好了),对UI进行排序 对于要显示在前的UI组件添加Canvas组件,设置O…...
excel精简使用工具
1.获取sheet1的行填充到sheet2的列 希望在 Excel 中使用 INDEX 函数从不同的列中提取数据,并且每一行都引用不同的列。为了实现这个目标,你可以使用 COLUMN 函数来动态获取列的偏移量。 为了避免手动输入每个单元格的公式,你可以使用以下公…...
上手体验微软全新整合的王炸平台Fabric
体验确实不错,微软强大的生态能力。 把可视化,数仓,数据胡,数据工厂,机器学习,数据监控等技术都整合到一个平台了。所有数据全都存储在统一的one lake数据中心,消除数据孤岛问题。而且不同角色可…...
Linux 下 Vim 环境安装踩坑问题汇总及解决方法(重置版)
导航 安装教程导航 Mamba 及 Vim 安装问题参看本人博客:Mamba 环境安装踩坑问题汇总及解决方法(初版)Linux 下Mamba 及 Vim 安装问题参看本人博客:Mamba 环境安装踩坑问题汇总及解决方法(重置版)Windows …...
RabbitMQ 可观测性最佳实践
RabbitMQ 简介 RabbitMQ 是一个开源的消息代理和队列服务器,用 Erlang 语言编写,支持多种客户端。它通过使用交换机(Exchanges)、队列(Queues)和绑定(Bindings)来路由消息ÿ…...
束搜索、组束搜索介绍、异同及相关参数
束搜索(Beam Search)与组束搜索(Group Beam Search)介绍 束搜索(Beam Search) 束搜索是一种用于序列生成任务的解码算法,广泛应用于自然语言处理领域,如机器翻译、语音识别等。它的…...
深度学习与计算机视觉 (博士)
文章目录 零、计算机视觉概述一、深度学习相关概念1.学习率η2.batchsize和epoch3.端到端(End-to-End)、序列到序列(Seq-to-Seq)4.消融实验5.学习方式6.监督学习的方式(1)有监督学习(2)强监督学习(3)弱监督学习(4)半监督学习(5)自监督学习(6)无监督学习(7)总结:不同…...
新时期下k8s 网络插件calico 安装
1、k8s master节点初始化完毕以后一直处于notreadey状态,一直怀疑是安装有问题或者是初始化有问题(当然,如果真有问题要先解决这些问题),经过不断探索才发现是网络插件没有安装导致的,根据建议安装calico插…...
14:00面试,15:00就出来了,问的问题过于变态了。。。
从小厂出来,没想到在另一家公司又寄了。 到这家公司开始上班,加班是每天必不可少的,看在钱给的比较多的份上,就不太计较了。没想到2月一纸通知,所有人不准加班,加班费不仅没有了,薪资还要降40%…...
Improving Language Understanding by Generative Pre-Training GPT-1详细讲解
Improving Language Understanding by Generative Pre-Training 2018.06 GPT-1 0.有监督、半监督、无监督 CV:ImageNet pre-trained model NLP:pre-trained model? 在计算机视觉中任务包含分类、检测、分割,任务类别数少,对应…...
Docker: 现代开发的利器,从入门到实践
引言 在现代软件开发中,开发人员面对的环境多种多样,不同操作系统、依赖、库版本等都会影响应用程序的正常运行。传统的开发和部署流程复杂且易错,"在我机器上可以跑"的困扰让许多开发者头疼。而 Docker,一个容器化技术…...
nuxt3 env环境变量
加载env文件 在package.json中指定运行某个env文件:nuxt build --dotenv .env.production 具体如下: "scripts": {"build-dev": "nuxt build --dotenv .env.test","build-prd": "nuxt build --dotenv .e…...
Vue3 自定义插件(plugin)
文章目录 Vue3 自定义插件(plugin)概述用法 Vue3 自定义插件(plugin) 概述 插件 (Plugins) 是一种能为 Vue 添加全局功能的工具代码。 用法 Vue3 插件有2种定义方式: 对象形式。对象中有install方法。函数形式。函数本身就是安装方法,其中ÿ…...
HTB:Bank[WriteUP]
目录 连接至HTB服务器并启动靶机 信息收集 使用rustscan对靶机TCP端口进行开放扫描 提取出靶机TCP开放端口 使用nmap对靶机TCP开放端口进行脚本、服务扫描 使用nmap对靶机TCP开放端口进行漏洞、系统扫描 使用nmap对靶机常用UDP端口进行开放扫描 使用curl对域名进行访问…...
Elastic-Job相关
文档参考视频:09_SpringBoot案例演示_哔哩哔哩_bilibili 一、Elastic-Job介绍 Elastic-Job 是一个轻量级、分布式的任务调度框架,旨在解决分布式环境下的定时任务调度问题。 1.1. Elastic-Job 的核心组件 Elastic-Job 是由多个核心组件构成的&#x…...
Ruby语言的正则表达式
Ruby语言的正则表达式详解 正则表达式(Regular Expressions,简称Regex)是一种强大的文本处理工具,它可以用来匹配、搜索、替换字符串中的模式。在Ruby语言中,正则表达式的使用非常灵活,并且具有良好的可读…...
“深入浅出”系列之QT:(5)Json数据格式处理详解
一、JSON数据结构 JSON主要有两种数据结构:JSON对象和JSON数组。 JSON对象:由键值对组成,每个键(key)是字符串,值(value)可以是字符串、数字、布尔值、null、JSON数组或JSON对象。对…...
cursor试用出现:Too many free trial accounts used on this machine 的解决方法
文章精选推荐 1 JetBrains Ai assistant 编程工具让你的工作效率翻倍 2 Extra Icons:JetBrains IDE的图标增强神器 3 IDEA插件推荐-SequenceDiagram,自动生成时序图 4 BashSupport Pro 这个ides插件主要是用来干嘛的 ? 5 IDEA必装的插件&…...
Calico BGP网络问题
Calico BGP网络问题 文章目录 Calico BGP网络问题排除步骤calico-node 正常运行,但在 describe 中有警告信息错误现象 ip route 路由表中删除 blackhole后又会自动生成网卡选择无效导致 calico 的 pod 内容器未就绪问题现象原因分析问题解决方式一:直接修…...
Jenkins-部署-windows
Jenkins-部署-windows 一: Jenkins 资料 一: Jenkins 资料...
benchANT 性能榜单技术解读 Part 1:写入吞吐
近期,国际权威数据库性能测试榜单 benchANT 更新了 Time Series: Devops(时序数据库)场景排名,KaiwuDB 数据库在 xsmall 和 small 两类规格下的时序数据写入吞吐、查询吞吐、查询延迟、成本效益等多项指标刷新榜单原有数据纪录。在…...
【 算法设计与分析-回顾算法知识点】福建师范大学数学与计算机科学学院 2006 — 2007学年第二学期考试 A 卷
一.填空题(每空2分,共30分) 1.算法的时间复杂性指算法中 元运算 的执行次数。 2.在忽略常数因子的情况下,O、和三个符号中, O 提供了算法运行时间的一个上界。 3.设Dn…...
【25考研】川大计算机复试情况,重点是啥?怎么准备?
24年进入复试的同学中,有10位同学的复试成绩为0分。具体是个人原因还是校方原因,还尚不明确。但是C哥提醒,一定要认真复习!复试完后不要跟任何人讨论有关复试的题目及细节! 一、复试内容 四川大学复试内容较多…...
设计模式-结构型-适配器模式
在软件开发中,随着系统的不断扩展和模块的不断增加,往往会遇到不同模块之间接口不兼容的情况。此时,如果我们能通过某种方式将一个接口转化为另一个接口,那么开发工作将变得更加灵活和高效。适配器模式(Adapter Patter…...
el-table表格合并某一列
需求:按照下图完成单元格合并,数据展示 可以看到科室列是需要合并的 并加背景色展示;具体代码如下: <el-tableref"tableA":data"tableDataList":header-cell-style"{ backgroundColor: #f2dcdb, col…...
分布式Id方案选择
分布式 ID 方案选择 在当今分布式系统日益盛行的背景下,分布式 ID 生成方案的选择成为了众多开发者关注的焦点。一个优秀的分布式 ID 方案,不仅能够确保生成的 ID 全局唯一,避免数据冲突,还能在高并发、大规模的分布式环境中保持…...
uni app 写的 小游戏,文字拼图?文字拼写?不知道叫啥
从下方的偏旁部首中选在1--3个组成上面文章中的文字,完成的文字标红 不喜勿喷 《满江红》 其中用到了两个文件 strdata.json parameters.json 这两个文件太大 放到资源中了 资源文件 <template><view class"wenzi_page_main"><view c…...