ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

VAR 视觉自回归建模实战指南:Next-Scale 预测范式下的图像生成、训练与零样本推理

VAR 视觉自回归建模实战指南:Next-Scale 预测范式下的图像生成、训练与零样本推理 计算机视觉媒体生成深度学习大模型【免费下载链接】VAR[NeurIPS 2024 Best Paper Award][GPT beats diffusion] [scaling laws in visual generation] Official impl. of Visual Autoregressive Modeling: Scalable Image Generation via Next-Scale Prediction. An *ultra-simple, user-friendly yet state-of-the-art* codebase for autoregressive image generation!项目地址https://gitcode.com/GitHub_Trending/va/VAR点击查看免费下载本文以 Visual Autoregressive ModelingVAR官方开源仓库NeurIPS 2024 收录论文Visual Autoregressive Modeling: Scalable Image Generation via Next-Scale Prediction的官方实现为对象系统讲解其核心思想、模型配置、环境安装、ImageNet 全量训练脚本与零样本采样推理流程。读者将掌握 VAR 的 next-scale prediction 生成范式、各尺寸模型d16–d36的选择与部署方法以及从数据准备、分布式训练到 FID 评测的完整实操路径。VAR 核心范式从 next-token 到 next-scaleVisual Autoregressive ModelingVAR重新定义了图像上的自回归学习方式把图像生成建模为coarse-to-fine从粗到细的 next-scale prediction下一尺度预测或 next-resolution prediction下一分辨率预测而不是传统光栅扫描式的 next-token prediction下一 token 预测。在实现层面VAR 将一张图像编码为K 级多尺度 token 金字塔每级尺度对应的 patch 数量由patch_nums决定。官方默认配置为(1, 2, 3, 4, 5, 6, 8, 10, 13, 16)即 10 个尺度每个尺度的 token 数为pn × pn如第 1 级为1×1第 10 级为16×16。全部 token 总数L sum(pn²) 680该数值在 models/var.py 中通过self.L sum(pn ** 2 for pn in self.patch_nums)计算得到。训练时 Transformer 按尺度顺序依次预测每一级的 token 分布推理时则逐级采样、逐级叠加最终解码出完整图像。256 分辨率对应patch_size16因此第 10 级16×16 × 16px 256×256512 分辨率对应的 patch 序列见下文训练参数一节。与扩散模型相比VAR 证明了 GPT 风格的自回归模型可以在视觉生成任务上达到超越扩散模型的水平同时论文观察到 VAR Transformer 中存在可预测的power-law幂律scaling laws为视觉生成模型的规模扩展提供了可量化的规律。这些结论详见论文原文arXiv: 2404.02905本文聚焦仓库内可直接运行、可复现的工程细节。VAR zoo预训练模型清单与权重准备仓库提供如下已发布的 VAR 模型权重分辨率、FID、相对推理成本与参数量见下表可直接用于生成与推理模型分辨率FID相对成本参数量权重文件VAR-d162563.550.4310Mvar_d16.pthVAR-d202562.950.5600Mvar_d20.pthVAR-d242562.330.61.0Bvar_d24.pthVAR-d302561.9712.0Bvar_d30.pthVAR-d30-re2561.8012.0Bvar_d30.pthVAR-d365122.63—2.3Bvar_d36.pth使用前提加载上述任意 VAR 模型前必须先下载配套的 VQVAE 权重vae_ch160v4096z32.pth。该 VQVAE 承担图像与离散 token 之间的编解码词表大小V4096、潜在通道Cvae32、通道基数ch160这些超参数在 train.py 的build_vae_var(V4096, Cvae32, ch160, share_quant_resi4, ...)调用中被硬编码并在训练启动时自动下载缺失的 VQVAE 权重train.py。从源码结构看models/init.pybuild_vae_var会先构建VQVAEtest_modeTrue参数冻结、置为 eval 态再构建VAR主干embed_dim depth*64、num_heads depth、drop_path_rate 0.1*depth/24并调用init_weights完成初始化。VARHF类models/var.py通过PyTorchModelHubMixin提供 Hugging Face Hub 加载兼容入口便于在 HF 生态中直接加载权重。环境安装与数据集准备按 README 的官方步骤环境搭建分三步安装 PyTorchtorch2.0.0torch.compile、scaled_dot_product_attention等特性依赖 2.0 及以上版本。安装其余依赖pip3 install -r requirements.txt。准备 ImageNet 数据集目录结构必须与官方约定一致/path/to/imagenet/: train/: n01440764: many_images.JPEG ... n01443537: many_images.JPEG ... val/: n01440764: ILSVRC2012_val_00000293.JPEG ... n01443537: ILSVRC2012_val_00000236.JPEG ...训练时务必通过--data_path/path/to/imagenet传入数据集根路径若未指定utils/arg_util.py 会直接抛出ValueError提示。可选加速强烈建议生产环境启用安装并编译flash-attn与xformers以加速注意力计算。代码会自动探测并启用已安装的算子——models/basic_var.py 中依次尝试导入flash_attn的dropout_add_layer_norm/fused_mlp_func/flash_attn_func、xformers.ops.memory_efficient_attention最后回退到 PyTorch 原生scaled_dot_product_attention。SelfAttention会依据导入结果自动设置using_flash/using_xform标志models/basic_var.py因此无需修改代码即可自动加速。训练脚本与超参数全解使用torchrun以 8 卡分布式方式在 ImageNet 256×256 或 512×512 上训练 VAR-{d16, d20, d24, d30, d36-s}# d16, 256x256 torchrun --nproc_per_node8 --nnodes... --node_rank... --master_addr... --master_port... train.py \ --depth16 --bs768 --ep200 --fp161 --alng1e-3 --wpe0.1 # d20, 256x256 torchrun --nproc_per_node8 --nnodes... --node_rank... --master_addr... --master_port... train.py \ --depth20 --bs768 --ep250 --fp161 --alng1e-3 --wpe0.1 # d24, 256x256 torchrun --nproc_per_node8 --nnodes... --node_rank... --master_addr... --master_port... train.py \ --depth24 --bs768 --ep350 --tblr8e-5 --fp161 --alng1e-4 --wpe0.01 # d30, 256x256 torchrun --nproc_per_node8 --nnodes... --node_rank... --master_addr... --master_port... train.py \ --depth30 --bs1024 --ep350 --tblr8e-5 --fp161 --alng1e-5 --wpe0.01 --twde0.08 # d36-s, 512x512 (-s 表示 saln1即 shared AdaLN) torchrun --nproc_per_node8 --nnodes... --node_rank... --master_addr... --master_port... train.py \ --depth36 --saln1 --pn512 --bs768 --ep350 --tblr8e-5 --fp161 --alng5e-6 --wpe0.01 --twde0.08以上命令中各核心参数的含义与默认值取自 utils/arg_util.py 的Args类如下参数默认值含义与说明--depth16VAR Transformer 的层数build_vae_var中同时决定embed_dimdepth*64、num_headsdepth--bs768全局 batch size每卡 batch 自动计算为round(bs/ac/world_size)的倍数utils/arg_util.py--ep250训练总 epoch 数--fp1601使用 fp16 混合精度2使用 bf16--tblr1e-4基础学习率实际tlr ac × tblr × glb_batch_size / 256utils/arg_util.py即随全局 batch 线性缩放--alng1e-5AdaLN 中 gamma 通道初始化的乘子对应init_adaln_gammamodels/var.py--wpe0.01训练结束时学习率衰减到的比例LR warmup 起点为--wp0默认 0.005--twde0训练结束时的权重衰减默认沿用--twd默认 0.05--salnFalse是否使用共享 AdaLNSharedAdaLind36-s 需设为 1--pn1_2_3_4_5_6_8_10_13_16patch 序列256→10 级默认序列512→1_2_3_4_6_9_13_18_24_321024→14 级序列utils/arg_util.py--ac1梯度累积步数--tclip2.0梯度裁剪阈值≤0 表示不裁剪--optadamw优化器adam/adamw均为 AdamWbetas(0.9, 0.95)见 train.py--ls0.0标签平滑对应CrossEntropyLoss(label_smoothing...)见 trainer.py--vfast/--tfast0是否对 VAE / VAR 使用torch.compile1→reduce-overhead2→max-autotuneutils/arg_util.py其他可选参数还包括--anorm注意力 L2 归一化默认 True、--fuse是否使用 fused 算子默认 True、--hflip水平翻转增强、--mid_reso先放大到 1.125 倍再裁剪、--pg/--pg0/--pgwp渐进式训练默认关闭pg0.0、--seed、--tf32默认 True。此外--data_path为必填项--exp_name用于标识实验。训练产出与监控训练会创建local_output目录保存 checkpoint 与日志。可通过local_output/log.txt与local_output/stdout.txt查看进度或运行tensorboard --logdirlocal_output/可视化 loss、acc 与学习率曲线TensorBoard 日志目录按tb-VARd{depth}__pn{...}__b{bs}ep{ep}...命名见 utils/arg_util.py。每个 epoch 结束后训练循环会打印Lm/Lt/Accm/Acct整体与最后一级尺度的 loss 与准确率每 10 个 epoch或最终 epoch还会执行一次验证集评估并保存 checkpointtrain.py。自动断点续训若实验被中断直接重跑相同命令即可自动从local_output/ckpt*.pth中最新 checkpoint 恢复。该逻辑由auto_resume实现utils/misc.py它按修改时间倒序查找ar-ckpt*.pth读取其中的epoch、iter、trainer与args状态从而无缝衔接训练。零样本推理采样、CFG 与 FID 评测仓库核心推理接口是 models/var.py 中的VAR.autoregressive_infer_cfg它以(B, 3, H, W)的[0,1]图像张量形式返回生成结果。官方推荐的 FID 评测采样配置为var.autoregressive_infer_cfg(..., cfg1.5, top_p0.96, top_k900, more_smoothFalse)关键参数对应 models/var.py 的 docstringBbatch sizelabel_BImageNet 类别标签传None时按均匀分布随机采样g_seed随机种子便于可复现采样cfgClassifier-Free Guidance无分类器引导强度默认 1.5top_k/top_ptop-k / top-p 截断采样参数0 表示不启用对应截断more_smooth是否用 Gumbel Softmax 平滑预测仅用于可视化不用于 FID/IS 基准评测。渐进式 CFG 的源码实现VAR 的引导强度随尺度推进而增强。在 models/var.py 中当前尺度进度ratio si / num_stages_minus_1条件分支与无条件分支batch 翻倍类别嵌入中混入num_classes作为无类别 token的 logits 按logits (1 t)·logits[:B] - t·logits[B:]融合其中t cfg · ratio。这正是 README 所说使用相对较小的cfg1.5在图像质量与多样性之间折中的原因。采样策略建议README 原文要点可将cfg调至5.0或使用autoregressive_infer_cfg(..., more_smoothTrue)Gumbel Softmax 温度tau max(0.27·(1 - ratio·0.95), 0.005)见 models/var.py以获得更好的视觉质量但 FID/IS/Precision/Recall 等指标评测必须保持more_smoothFalse的默认路径直接查表取 embeddingmodels/var.py。逐尺度自回归生成流程从源码推断推理开始时对所有 block 开启 KV cachemodels/var.py先以类别嵌入与pos_start/lvl_pos初始化第 1 尺度输入随后对每个尺度si前向全部 block 得到 logits经 CFG 融合与sample_with_top_k_top_p_采样实现见 models/helpers.py先 top-k 屏蔽再 top-p 累积概率截断最后torch.multinomial采样再由 VQVAE 量化器get_next_autoregressive_input将当前尺度 token 上采样叠加进f_hat插值出下一尺度的输入models/var.py、models/quant.py完成后关闭 KV cache 并调用fhat_to_img解码为图像models/var.py。FID 评测流水线用上述配置采样 50,000 张图像每个类别 50 张以PNG而非 JPEG格式保存到指定文件夹调用create_npz_from_sample_folder(sample_folder)将文件夹打包为.npzutils/misc.py内部严格校验 PNG 数量恰为 50,000否则报错使用 OpenAI 官方 FID 评测工具包guided-diffusion 的 evaluations 模块配合 ImageNet 256×256VIRTUAL_imagenet256_labeled.npz或 512×512VIRTUAL_imagenet512.npz的参考真实分布 npz计算 FID、IS、Precision 与 Recall。从源码理解 VAR 的模型骨架VAR 的完整前向/推理链路分布在 models/var.py、models/basic_var.py、models/vqvae.py 与 models/quant.py 中关键构成如下VAR 主干models/var.pyword_embedLinear(Cvae, C)把 VQVAE 的 token embedding 映射为 Transformer 维度class_embEmbedding(num_classes1, C)类别嵌入额外第num_classes位用作 CFG 无条件 token训练时以cond_drop_rate0.1的概率随机替换为无条件类别models/var.py这是 CFG 得以生效的根基pos_1LC绝对位置嵌入lvl_embed尺度级嵌入类似 GPT 的 segment embedding用于区分 token 金字塔的不同层级blocksdepth个AdaLNSelfAttn块models/basic_var.py每个块由 AdaLN 条件化的自注意力与 FFN 组成支持shared_aln共享 AdaLN参数ada_gss与条件相加与非共享两种模式并线性递增的 stochastic depthdrop_path_ratehead_nmAdaLNBeforeHeadheadLinear(C, V)输出词表V4096的 logits。训练注意力掩码训练阶段使用逐尺度因果掩码attn_bias_for_masking——低尺度 token 可以关注同尺度及之前所有 token高尺度 token 只能看到过去models/var.py推理阶段因 KV cache 存在而不使用该掩码注释与调用均表明attn_biasNone。VQVAE 多尺度残差量化models/quant.pyVectorQuantizer2沿v_patch_nums从粗到细逐级执行最近邻量化每级先在area模式下插值到该尺度查找最近词表向量得到 token 序列idx_Bhw再经残差模块Phiφ(x) (1-resi_ratio)·x resi_ratio·conv(x)重建f_hat并累加、从残差中扣除f_rest - h_BChw。quant_resi0.5与share_quant_resi44 个部分共享的 φ 层决定了残差重建的权重分配。这套逐尺度残差叠加机制正是 next-scale 预测能跨尺度传播信息、并实现零样本泛化的关键组件。训练循环与评估逻辑补充训练入口 train.py 的主流程为init_dist_and_get_args初始化分布式环境与参数 →build_everything自动续训、构建数据与模型、下载 VQVAE、组装AmpOptimizerfp16/bf16 混合精度 梯度裁剪与VARTrainer→ 逐 epoch 训练与评估。VARTrainer.train_steptrainer.py通过img_to_idxBl把 GT 图像转为多尺度 token 序列、idxBl_to_var_input构造 teacher-forcing 输入再以带标签平滑的交叉熵计算 losseval_ep则在验证集上报告整体与尾部最后一级尺度的 loss 与准确率trainer.py。扩展与衍生生态自 2024-04 发布以来VAR 已被 NeurIPS 2024 收录Oral并获 Best Paper Award官方后续在 2025 年陆续发布了基于 VAR 的文本到图像InfinityCVPR 2025 Oral与文本到视频InfinityStarNeurIPS 2025 Oral工作。社区亦涌现了大量基于 VAR 的衍生研究如高效解码、免引导生成、图像编辑、超分与 3D 生成等README 的 Third-party Usage and Research 一节按时间线汇总了这些工作及其链接读者可自行查阅并对照复现。License 与引用本项目采用 MIT License详见 LICENSE。若 VAR 对你的研究有所帮助可按如下 BibTeX 引用Article{VAR, title{Visual Autoregressive Modeling: Scalable Image Generation via Next-Scale Prediction}, author{Keyu Tian and Yi Jiang and Zehuan Yuan and Bingyue Peng and Liwei Wang}, year{2024}, eprint{2404.02905}, archivePrefix{arXiv}, primaryClass{cs.CV} }结语VAR 用 next-scale prediction 一举将 GPT 风格自回归模型带入超越扩散模型的行列并在 ImageNet 256/512 上以极简、用户友好的代码库提供了端到端可复现的完整链路从多尺度 VQVAE 编码、10 级 token 金字塔的因果 Transformer 训练到渐进式 CFG 采样与 FID 评测。无论你是想复现论文结果、微调新类别还是将其作为自回归视觉生成研究的起点本仓库的 train.py、models/、utils/ 都值得逐行细读。赞分享计算机视觉媒体生成深度学习大模型【免费下载链接】VAR[NeurIPS 2024 Best Paper Award][GPT beats diffusion] [scaling laws in visual generation] Official impl. of Visual Autoregressive Modeling: Scalable Image Generation via Next-Scale Prediction. An *ultra-simple, user-friendly yet state-of-the-art* codebase for autoregressive image generation!项目地址https://gitcode.com/GitHub_Trending/va/VAR点击查看免费下载相关推荐VAR视觉自回归模型重新定义图像生成的新范式VAR视觉自回归模型重新定义图像生成的新范式 在视觉生成领域一项革命性技术正悄然改变游戏规则。VARVisual Autoregressive Model计算机视觉媒体生成深度学习大模型VAR视觉自回归模型颠覆传统图像生成的全新范式VAR视觉自回归模型颠覆传统图像生成的全新范式 视觉自回归模型VAR正在重新定义图像生成的技术边界通过创新的Next Scale预测机制首次实现了GP计算机视觉媒体生成深度学习大模型终极指南VAR视觉自回归模型如何通过尺度预测革新AI图像生成终极指南VAR视觉自回归模型如何通过尺度预测革新AI图像生成 VARVisual Autoregressive Modeling是GitHub推荐的革命性计算机视觉媒体生成深度学习大模型上一篇NoFences如何免费把 Windows 桌面分成整齐的图标分区下一篇DeepSeek Harness 会话标题架构TUI 标题统一收归 session-title 服务的单一管线设计创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表