Visual Autoregressive Modeling (VAR)
探索视觉自回归建模(VAR)。了解下一尺度预测如何超越传统方法和扩散模型,提升图像生成的速度与质量。
视觉自回归建模(VAR)是一种先进的计算机视觉范式,它将大型语言模型(LLMs)推广的自回归学习策略应用于图像生成任务。传统视觉自回归方法将图像编码为一维序列,并按照光栅扫描顺序逐个预测 token,这种做法计算成本高昂,也忽略了视觉数据天然的二维结构。与之不同,VAR 引入了由粗到细的“下一尺度预测”方法。它通过逐步预测更高分辨率的特征图或尺度来生成图像,而不是逐行预测单个 token。这种方法在保持结构完整性的同时,显著提升了图像质量和推理速度。
视觉自回归建模的工作原理#
VAR 的核心是用下一尺度预测取代传统的下一 token 预测。首先,使用类似于向量量化变分自编码器(VQ-VAE)的架构,将图像压缩为多尺度离散 token 图。在生成阶段,Transformer 模型按顺序预测这些 token 图,从最小分辨率(例如 1x1 网格)开始,逐步扩展到目标分辨率(例如 16x16 或 32x32 网格)。由于 VAR 在每个尺度上同时处理空间结构,因此能够有效保留二维图像固有的双向相关性。
这种新方法让 VAR 模型能够建立可预测的缩放定律,媲美OpenAI GPT-4等基于文本的架构。随着研究人员扩大模型参数规模,性能会持续提升。根据NeurIPS 2024 关于视觉自回归建模的论文,VAR 在要求严苛的ImageNet 基准测试中成功超越了竞争架构。它在弗雷歇 Inception 距离(FID)和 Inception 分数方面都取得更好的指标,同时运行速度也快得多。
VAR 与扩散模型#
区分 VAR 与基于扩散的生成式 AI非常重要。扩散模型通过从初始画布中迭代移除连续噪声来学习生成图像。而 VAR 则处理离散 token,不进行去噪,而是通过自回归方式逐级构建图像分辨率。尽管扩散 Transformer(DiT)一直是视觉合成领域的主流标准,VAR 的基于 token 的方法可以直接受益于 Transformer 模型的优化研究,因此在可扩展性和数据效率方面都能胜过 DiT。
实际应用#
视觉自回归建模结合了 LLMs 的推理能力与高保真视觉能力,解锁了多种实用功能:
- 零样本图像编辑与修补: VAR 原生支持零样本操作。通过遮罩特定尺度或区域,开发者可以无缝编辑或扩展图像,无需重新训练或微调基础架构。
- 零售业的可扩展素材生成: VAR 极高的推理速度支持实时、高质量的图像合成,可大规模动态生成产品背景和个性化营销素材。
实现自回归工作流程#
VAR 模型专注于内容生成,但也可以与Ultralytics YOLO26等强大的感知模型配合使用,构建完整的多模态流水线。例如,你可以使用 YOLO26 执行精确的目标检测来分离目标,然后将这些特定区域传递给自回归模型进行增强或重新设计风格。
下面的PyTorch代码片段演示了多尺度自回归循环如何迭代预测 token 图的下一个尺度,并使用标准的PyTorch Transformer 模块模拟 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提供了自动标注、跟踪和云端部署的强大工具。无论你是在优化视觉语言模型(VLM),还是在试验下一尺度预测,统一的视觉智能生态系统都能加速真实场景中的创新。









