首页   

通义万相,开源!

阿里研究院  · 电商  · 昨天

正文


本次开源的 Wan2.1 在处理复杂运动还原真实物理规律提升影视质感以及优化指令遵循方面具有显著的优势,无论是创作者、开发者还是企业用户,都可以根据自己的需求选择合适的模型和功能,轻松实现高质量的视频生成。
同时,万相还支持业内领先的中英文文字特效生成,满足广告、短视频等领域的创意需求。
在权威评测集VBench中,万相以总分86.22%的成绩登上榜首位置,大幅领先了Sora、Minimax、Luma、Gen3、Pika等国内外视频生成模型。
VBench榜单
基于主流的DiT和线性噪声轨迹Flow Matching范式,万相大模型通过一系列技术创新实现了生成能力的重大进步。包括自研高效的3D因果VAE可扩展的预训练策略大规模数据链路构建以及自动化评估指标,这些创新共同提升了模型的最终性能表现。

自研高效的3D因果VAE

Wan2.1基于3D因果VAE模块,实现了256倍无损视频隐空间压缩。为高效支持任意长度视频的编码与解码,我们在3D VAE的因果卷积模块中引入了特征缓存机制。该机制通过分块处理视频并缓存每块尾帧特征,避免了直接对长视频进行端到端的编解码,从而实现无限长1080P视频的高效编解码。
此外,Wan2.1通过将空间降采样压缩提前,在不损失性能的情况下进一步减少了29%的推理时内存占用。


通义万相大模型视频VAE
实验结果表明,通义万相的视频VAE在视频质量和处理效率上均表现出色。在相同硬件环境(单个A800 GPU)下,通义万相视频VAE重建速度比现有最先进方法快2.5倍,且在较小模型参数下实现业内领先的压缩重构质量。得益于小尺寸设计和特征缓存机制,高分辨率下的性能优势更为显著。

通义万相视频 VAE同其他VAE对比

视频Diffusion Transformer

Wan2.1基于主流的视频DiT结构,通过Full Attention机制有效建模长时程时空依赖,生成时空一致的高质量视频。在噪声采样策略上,采用Flow Matching方法,不仅确保模型快速收敛,还提升了训练效率。
模型首先利用多语言umT5编码器对输入文本进行语义编码,并通过逐层交叉注意力层将文本特征注入每个Transformer Block,实现细粒度语义对齐。此外,通过共享参数的MLP模块将时间步特征映射为可学习参数,显著降低了计算量和参数规模。

通义万相视频架构图
在训练策略上,我们采用6阶段分步训练法:从256P图像数据的初始预训练,到逐步引入低分辨率、高时长视频数据,再到480P、720P的高分辨率数据训练,最后通过Post-training阶段使用高质量标注数据进行微调,进一步提升生成效果。这种渐进式训练策略让模型在不同分辨率和复杂场景下都能表现出色。

数据处理

Wan2.1 的训练依赖于大规模、高质量的数据集,在预训练阶段,我们的目标是从庞大但嘈杂的初始数据集中选取高质量且多样化的数据,以促进有效的训练。
如下图所示,我们设计了一个四步数据清洗流程,重点关注基础维度、视觉质量和运动质量。对应的整个预训练过程也分为四个阶段,每个阶段逐渐增加分辨率和视频时长,让模型在一定算力限制下得到更充分的训练。最终的SFT阶段,我们进行了更严格的数据过滤,保障模型稳定收敛到高质量视频输出。

数据清洗流程

模型训练和推理效率优化

训练阶段,对于文本、视频编码模块,我们使用DP和FSDP组合的分布式策略;DiT模块,我们采用DP、FSDP、RingAttention、Ulysses混合的并行策略。基于万相2.1模型参数量较小和长序列带来的计算量较大的特征,结合集群计算性能和通信带宽,我们采用FSDP切分模型,并在FSDP外嵌套DP提升多机拓展性,FSDP和DP的通信均能够完全被计算掩盖。为了切分长序列训练下的activation,DiT部分使用了Context Parallelism(CP)对sequence维度进行切分,并使用外层RingAttention、内层Ulysses的2DCP的方案减少CP通信开销。此外,为了提升端到端整体效率,我们在文本、视频编码和DiT模块间进行高效策略切换,避免计算冗余。具体来说,文本、视频编码模块每个device读不同数据,在进入DiT之前,通过循环广播不同device上的数据来保证CP组里的数据一样。

DiT并行策略
显存优化方面,我们采用分层的显存优化策略,选择一些层进行offload,其他层根据不同算子计算量和显存占用的分析使用细粒度Gradient Checkpointing(GC)进一步优化activation显存。最后我们也利用PyTorch显存管理机制,解决显存碎片问题。
训练稳定性方面借助于阿里云训练集群的智能化调度、慢机检测以及自愈能力,在训练过程中自动识别故障节点并快速重启任务,平均重启时间为39秒,重启成功率超过98.23%。
推理阶段,为了使用多卡减少生成单个视频的延迟,我们需要选择CP来进行分布式加速。此外,当模型较大时,还需要进行模型切分。
  • 模型切分策略:单卡显存不足时必须考虑模型切分。鉴于序列长度通常较长,与张量并行(TP)相比,FSDP的通信开销更小,并且可以被计算掩盖。因此,我们选择FSDP方法进行模型切分(注意:这里仅做切分权重,而不做数据并行)。
  • 序列并行策略:采用与训练阶段相同的2D CP方法,外层(跨机器) 使用RingAttention,内层(机器内)使用Ulysses。
在万相2.1 140亿参数模型上,使用FSDP和2D CP的组合方法,在多卡上具有如下图所示的近线性加速。

模型推理多卡扩展性
为了减少DiT实际计算量,我们使用了效果无损的step间cache和CFG cache的方法,仅对若干关键去噪步骤进行实际计算并缓存结果,其他步骤则复用这些缓存,最终性能提升约61%。
在推理过程中,我们也使用了量化方法,我们在部分层(qkvo projection和FFN)使用fp8gemm,同时实现了FlashAttention3 INT8和FP8混合算子进行attention部分的8bit 量化,在保证效果无损的情况下,端到端性能提升30%以上。
通义万相(Wan2.1)已经在GitHubHugging Face魔搭社区等平台开源,支持多种主流框架。无论是开发者还是研究者,都可以通过Gradio快速体验,或利用 xDiT 并行加速推理提升效率。同时,我们正在加速接入Diffusers和ComfyUI ,进一步简化一键推理与部署流程。

不仅大幅降低了开发门槛,还为大家提供了灵活的选择——无论是快速原型开发,还是高效生产部署,都能轻松实现。



-END-

图片



© 2024 精读
删除内容请联系邮箱 2879853325@qq.com