Visual Autoregressive Modeling (VAR)
探索视觉自回归建模 (VAR)。了解下一尺度预测如何相比传统方法和扩散模型提高图像生成的速度和质量。
Visual Autoregressive Modeling (VAR) 是一种先进的 computer vision 范式,它将 Large Language Models (LLMs) 普及的自回归学习策略适配到 image generation 任务中。传统的视觉自回归方法将图像编码为 1D 序列,并以 raster-scan order 逐个 token 进行预测,这在计算上成本高昂,且忽略了视觉数据的自然 2D 结构。相比之下,VAR 引入了一种从粗到精的“下一尺度预测”方法。它通过逐步预测更高分辨率的 feature maps 或尺度来生成图像,而不是逐行预测单个 token。这种方法在显著提升图像质量和 inference speed 的同时,保持了结构完整性。
视觉自回归建模的工作原理#
在其核心,VAR 用下一尺度预测代替了传统的下一个 token 预测。首先使用类似于 Vector Quantized Variational AutoEncoder (VQ-VAE) 的架构将图像压缩为多尺度离散 token 映射。在生成阶段,transformer 模型从最小分辨率(如 1x1 网格)开始到目标分辨率(如 16x16 或 32x32 网格)顺序预测这些 token 映射。由于它在每个尺度上同时处理空间结构,VAR 成功地保留了 2D 图像中固有的双向相关性。
这种新颖的方法使 VAR 模型能够建立可预测的 scaling laws,其可与诸如 OpenAI GPT-4 等基于文本的架构相媲美。随着研究人员扩大模型参数,性能会持续提升。根据 NeurIPS 2024 paper on Visual Autoregressive Modeling,VAR 在严苛的 ImageNet benchmark 上成功超越了竞争架构。它在 Frechet Inception Distance (FID) 和 inception 分数上均取得了更好的指标,同时执行速度快得多。
VAR 与扩散模型#
区分 VAR 与基于扩散的 Generative AI 非常重要。Diffusion models 通过从起始画布中迭代去除连续噪声来学习生成图像。然而,VAR 操作的是离散 token。它不进行去噪,而是按分辨率自回归地构建图像。虽然 Diffusion Transformer (DiT) 一直是视觉合成的主流标准,但 VAR 基于 token 的方法直接受益于投入 transformer 模型的优化研究,使其在可扩展性和数据效率方面均优于 DiT。
实际应用#
通过将 LLM 的推理能力与高保真视觉相结合,视觉自回归建模解锁了多项实用功能:
- Zero-Shot Image Editing and In-painting: VAR 原生支持零样本操作。通过屏蔽某些尺度或区域,开发者无需重新训练或微调基础架构即可无缝编辑或扩展图像。
- Scalable Asset Generation for Retail: VAR 极高的推理速度允许进行实时、高质量的图像合成,从而能够大规模动态生成产品背景和个性化营销资产。
实现自回归工作流#
虽然 VAR 模型专注于生成内容,但它们可以与诸如 Ultralytics YOLO26 等强大的感知模型配对,以创建全面的多模态流水线。例如,你可以使用 YOLO26 进行精准的 object detection 来隔离主体,然后将这些特定区域传递给自回归模型以进行增强或重新风格化。
以下是一个概念性的 PyTorch 片段,展示了多尺度自回归循环如何迭代预测 token 映射的下一个尺度,并使用标准的 PyTorch Transformer modules 模拟 VAR 的底层逻辑:
import torch
import torch.nn as nn
# Conceptual VAR Next-Scale Prediction Loop
class SimpleVARGenerator(nn.Module):
def __init__(self):
super().__init__()
# Simulated transformer to predict next resolution token map
self.transformer = nn.TransformerEncoderLayer(d_model=256, nhead=8)
def forward(self, initial_scale_token):
current_tokens = initial_scale_token
# Iteratively generate next scales (e.g., 1x1 -> 2x2 -> 4x4)
for scale in [1, 2, 4]:
# Model predicts the structural layout for the higher resolution
next_scale_tokens = self.transformer(current_tokens)
# Expand and update tokens for the next iteration
current_tokens = torch.cat((current_tokens, next_scale_tokens), dim=1)
return current_tokens
model = SimpleVARGenerator()
seed_token = torch.randn(1, 1, 256) # 1x1 starting scale
final_output = model(seed_token)
print(f"Generated multi-scale tokens shape: {final_output.shape}")对于希望构建端到端视觉流水线(从策划数据集到评估复杂架构)的研究人员而言,Ultralytics Platform 提供了用于自动标注、跟踪和云端部署的强大工具。无论是优化 Vision Language Model (VLM) 还是试验下一尺度预测,统一的视觉智能生态系统都能加速现实用例中的创新。






