跳到正文
原文
蚂蚁 inclusionAI:GitHub 新仓库· inclusionAI·· 2025-10-10精选AI 评分66

Ming-VideoMAR:基于连续令牌的自回归视频生成模型

inclusionAI/Ming-VideoMAR

AI 导读

Ming-VideoMAR 是一款仅解码器的自回归图像到视频生成模型,采用连续令牌统一视觉表征。它首次将时间因果性与空间双向性作为视频自回归核心原则,并提出了整合掩码生成的下一帧扩散损失。该模型首次实现了视频生成的零样本分辨率缩放,能灵活生成远超训练分辨率的视频。其在训练与推理效率上表现突出,参数量、训练数据量和GPU消耗仅为之前最佳模型Cosmos的极小比例(9.3%、0.5%和0.2%),同时在定量与定性评估中均实现超越。模型代码与检查点已开源,论文已被NeurIPS 2025接收。

推荐理由

蚂蚁把自回归视频生成的训练成本砍到 Cosmos 的 0.2% 还能赢,这个效率信号比分数本身更值得关注,做视频生成的团队该认真看看它的课程学习和渐进分辨率策略。

正文 · AI 翻译

Ming-VideoMAR:基于连续 token 的自回归视频生成

🤗 Hugging Face |📄 论文(NeurIPS 2025)

🌍 简介

  • 🌐 首个采用连续统一视觉表征的 NTP MLLM: Ming-VideoMAR 是一个简洁高效的仅解码器自回归图像到视频模型,采用连续 token,融合了时间维度逐帧生成与空间维度掩码生成。Ming-VideoMAR 将时间因果性与空间双向性确立为视频自回归模型的第一性原理,并提出下一帧扩散损失,以实现掩码生成与视频生成的融合。
  • 🖼️ 首个面向视频生成的零样本分辨率扩展: Ming-VideoMAR 将语言模型独有的序列外推能力复现到视频生成中。它支持生成空间与时间分辨率灵活可变的视频,远超训练时的分辨率。这是通过解决训练与推理之间的差距并采用 3D 旋转嵌入实现的。
  • ⚡ 极高的训练效率: Ming-VideoMAR 提出了时间维度从短到长的课程学习以及空间维度渐进式分辨率训练。无论在定量还是定性上,它都超越了此前的最先进水平(Cosmos I2V),同时所需的参数量(9.3%)、训练数据(0.5%)和 GPU 资源(0.2%)都显著更少。
  • ⚡ 极高的推理效率: Ming-VideoMAR 由于同时采用时间维度的 KV cache 和空间维度的并行生成,天然具备高效率,显著超越 NTP 对应方案。
  • 🔗 累积误差解决方案: Ming-VideoMAR 在推理时采用渐进式温度策略来缓解累积误差。

📌 更新

  • [2025.10.17] 🔥 代码与 Checkpoint!
    我们非常高兴地宣布 Ming-VideoMAR 的代码与 Checkpoint 正式发布!
  • [2025 09.19] 🎉 我们的论文被 NeurIPS 2025 接收。
  • [2025.06.18] 📄 技术报告发布!
    完整技术报告现已在 arXiv 上线:
    👉 VideoMAR: Autoregressive Video Generation with Continuous Tokens

📊 评估

Ming-VideoMAR 以极小的训练和推理成本,实现了 SOTA 级别的自回归图像到视频生成性能。

定量对比

Ming-VideoMAR 在逐 token 自回归视频生成模型中实现了 SOTA 性能,同时训练成本显著降低。

定性对比

即使在更低分辨率下(Ming-VideoMAR:480x768 对比 Cosmos:640x1024),Ming-VideoMAR 的质量和细节也比 Cosmos 基线更优。

定性对比

Ming-VideoMAR 首次解锁了分辨率缩放能力,可以灵活生成超出训练范围的高分辨率或低分辨率视频。

📥 模型下载

模型 Hugging Face ModelScope
Stage1(25x256x256) 下载 下载
Stage2(49x480x768) 下载 下载

🔗 两个模型均已公开供研究使用。请访问各自的页面,查看模型详情、推理示例和集成指南。

🚀 使用示例

🔧 安装

下载代码:

git clone https://github.com/inclusionAI/Ming-VideoMAR.git
cd Ming-VideoMAR

合适的conda环境(命名为videomar)可以通过以下方式创建并激活:

conda env create -f environment.yaml
conda activate videomar

🖼️ 训练

运行以下命令,其中包含 VideoMAR 的训练脚本。

bash train.sh

具体来说,以 stage2 的默认训练脚本为例:

torchrun --standalone --nnodes 1 --nproc_per_node 8   main_videomar.py    \
--img_size_h 480  --img_size_w 768 --vae_embed_dim 16 --vae_spatial_stride 16 --vae_tempotal_stride 8 --patch_size 1  \
--model videomar --diffloss_d 3 --diffloss_w 1280  --save_last_freq 100  --num_workers 2  --file_type video  \
--epochs 800 --warmup_epochs 200 --batch_size 1 --blr 2.0e-4 --diffusion_batch_mul 4  --ema --ema_rate 0.995  --num_frames 49    \
--online_eval  --eval_freq 100  --eval_bsz 1  --cfg 3.0   --num_iter 32  \
--Cosmos_VAE  --vae_path $Cosmos-Tokenizer-CV8x16x16$ \
--output_dir logs  \
--text_model_path $Qwen2-VL-1.5B-Instruct$ \
--data_path $your_data_path$ \

注意!
该模型是使用我们的内部数据训练的,因此原始 dataloader 代码是针对内部 oss 文件系统定制的。如果你想用自己的数据训练该模型,应将下面的 Your_DataReader(main_videomar.py 第 219 行)替换为你自己的 dataloader 代码。

######################### Load Dataset #########################
    dataset_train = Your_DataReader(data_path=args.data_path, img_size=[args.img_size_h, args.img_size_w], num_frames=args.num_frames, file_type=args.file_type)   # Replace this with your data reader file
    sampler_train = DistributedSampler(dataset_train, num_replicas=num_tasks, rank=global_rank, shuffle=True)
    data_loader_train = DataLoader(
        dataset_train,
        sampler=sampler_train,
        batch_size=args.batch_size,
        num_workers=args.num_workers,
        pin_memory=args.pin_mem,
        drop_last=True,
    )

🖼️ 推理

运行以下命令,其中包含 VideoMAR 的推理脚本。

bash samle.sh

具体来说,以 stage2 的默认推理脚本为例:

CUDA_VISIBLE_DEVICES='0'    torchrun --standalone --nnodes 1 --nproc_per_node 1  main_videomar.py  \
--model videomar --diffloss_d 3 --diffloss_w 1280  --eval_bsz 1  --evaluate  \
--img_size_h 480  --img_size_w 768 --vae_embed_dim 16 --vae_spatial_stride 16 --vae_tempotal_stride 8   \
--i2v  --cond_frame 1  --cfg 3.0  --temperature 1.0  --num_frames 49  --num_sampling_steps 100  --num_iter 64  \
--Cosmos_VAE  --vae_path $Cosmos-Tokenizer-CV8x16x16$ \
--output_dir logs  \
--text_model_path $Qwen2-VL-1.5B-Instruct$ \
--resume ./ckpt/checkpoint-736.pth \

📌 提示:

  • $Cosmos-Tokenizer-CV8\times 16\times 16$:下载 Cosmos-CV8x16x16,并将其替换为你下载的路径。
  • $Qwen2-VL-1.5B-Instruct$:下载 Qwen2-VL-1.5B,并可选地在本地加载。
  • VideoMAR checkpoint:下载该 checkpoint 并将其放置在 ./ckpt/ 目录下。

✍️ 引用

如果您在研究或应用中发现我们的工作有用,请考虑引用:

@article{yu2025videomar,,
  title={VideoMAR: Autoregressive Video Generatio with Continuous Tokens},
  author={Hu Yu, Biao Gong, Hangjie Yuan, DanDan Zheng, Weilong Chai, Jingdong Chen, Kecheng Zheng, Feng Zhao},
  journal={Advances in neural information processing systems},
  year={2025}
}

来源:蚂蚁 inclusionAI:GitHub 新仓库 · github.com