LlamaGen
用 LLaMA 架构的自回归模型做图像生成,无需扩散模型归纳偏置,刷新 ImageNet SOTA
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
用 LLaMA 架构的自回归模型做图像生成,无需扩散模型归纳偏置,刷新 ImageNet SOTA
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。

图1:LlamaGen 核心成果——自回归模型与扩散模型的生成质量对比
2024年6月,当大多数人已经默认「AI生成图像=扩散模型(Diffusion)」时,香港大学与字节跳动联合团队发布了一个令学术界侧目的项目——LlamaGen。它的核心论点是:无需扩散模型的任何归纳偏置,只要把语言模型的「下一个token预测」范式原封不动地搬到视觉领域,自回归模型(Autoregressive Model)同样可以生成媲美甚至超越扩散模型的高质量图像。更激进的是,LlamaGen 将参数规模推到了 3B(30亿)量级,这在纯自回归图像生成领域几乎是前所未有的规模。
项目发布后迅速引发讨论:一方认为这是「Transformer大一统」愿景的里程碑,另一方则指出自回归生成在速度上天然劣势。争议本身,恰恰说明了这项工作的影响力。
要理解 LlamaGen 的意义,需要先了解图像生成领域的两条主流技术路线。
扩散模型(Diffusion) 自2020年以来一路高歌,以 DALL-E 2、Stable Diffusion、Midjourney 为代表。其核心思想是:训练一个「去噪」神经网络,从纯噪声图像出发,逐步去噪生成目标图像。这个过程模拟了物理上的「扩散-逆扩散」过程,因此得名。扩散模型在图像质量、多样性方面表现出色,但也存在生成速度慢、需要复杂调度策略的天然缺陷。
自回归模型(AR) 则是 LLaMA、GPT 等语言模型的老本行。其核心是「下一个token预测」——给定前文,预测下一个最可能的token。语言模型的成功已经充分验证了这一范式的 scalability(规模化能力)。LlamaGen 的大胆假设是:既然 LLaMA 能通过 scaling 在语言任务上所向披靡,那么把同样的架构和训练范式迁移到视觉token序列上,是否也能产生类似的效果?
LlamaGen 来自香港大学(HKU)与字节跳动(ByteDance),由 Peize Sun 等研究者主导,论文于2024年6月发表在arXiv(arXiv:2406.06525),并在 HuggingFace 上开源了模型权重和推理代码。
想象你有一台超级智能的「续写机器」:输入「一只在雪山上的猫」,它不是一笔一笔地画,而是把图像切成极小的碎片(称为 visual tokens),然后像写句子一样,一个token接一个token地「写」出整张图像。
这个过程分为三个关键步骤:
第一步:图像分词(Image Tokenization) —— 使用 VQ(向量量化)技术,将256x256或384x384的图像压缩成 16x16 或 24x24 的离散token序列。每个token来自一个包含 16,384 个向量的码本(codebook),相当于给图像建立了一套「视觉词典」。
第二步:自回归生成(Autoregressive Generation) —— 核心模型是一个参数量达 3B 的 GPT 架构(LLaMA-style),将视觉token视作「词」,逐个预测下一个最可能出现的token。生成过程支持 Classifier-Free Guidance(CFG,无分类器引导),通过调整引导强度(cfg_scale)来平衡图像质量与多样性。项目默认提供 GPT-B(~300M)和 GPT-XL(~3B)两个规模的模型。
第三步:解码重建(Decode Reconstruction) —— 生成的token序列通过 VQ 解码器还原为像素级图像。整个 pipeline 完全基于 PyTorch 实现,利用 vLLM 引擎实现高效推理。
LlamaGen 支持两大生成模式:
类别条件图像生成(Class-conditional Image Generation, c2i) —— 输入一个 ImageNet 类别标签(如「猫」「汽车」「飞机」),生成对应类别的图像。支持的分辨率包括 256x256 和 384x384。Gradio Web UI 中内置了完整的 ImageNet-1K 一千个类别下拉菜单,中英双语显示(「llama [羊驼]」等)。
文本条件图像生成(Text-conditional Image Generation, t2i) —— 输入文本描述生成图像。团队同时训练了基于 T5 文本编码器的版本,可以接受自然语言输入。
在推理优化方面,LlamaGen 充分利用了 vLLM 引擎的优势:支持批量并发推理、KV Cache 高效管理、多GPU分布式推理。根据项目文档,GPT-XL(3B参数)在 vLLM 加速下,推理速度有了显著提升,在部分场景已可与轻量级扩散模型竞争。
Gradio Web UI 提供了完整的交互界面,包括:ImageNet 类别选择滑块、CFG量表(1-25)、Top-K/Top-P/Temperature 采样参数、随机种子控制,以及 4图批量生成模式。用户可在界面上实时调整参数并查看生成结果。
对于普通爱好者而言,LlamaGen 的最大门槛是硬件要求。由于采用自回归生成范式,且模型规模达 3B 级别(GPT-XL),推理时需要大量显存。建议配置:
Gradio Web UI 的部署流程:克隆代码库 -> 安装 Python 依赖(torch >= 2.1.0, vLLM, gradio, huggingface_hub 等) -> 从 HuggingFace Hub 自动下载模型权重 -> 启动 python app.py。项目缺少 Dockerfile 和 docker-compose,对于没有 CUDA 环境管理经验的用户来说,依赖安装可能是一道坎。
对于开发者,项目代码结构清晰,训练脚本(autoregressive/train/)和推理脚本(autoregressive/sample/)分离,支持单 GPU、DDP 多卡以及 FSDP 分布式训练。数据集支持 ImageNet、COCO、OpenImage、Pexels 等主流图像数据集。
LlamaGen 并非没有争议。首先是生成速度:尽管 vLLM 优化了推理效率,但自回归模型逐token生成的本质,在生成分辨率较高的图像时,速度仍然普遍慢于经过优化的扩散模型(如 SDXL-Turbo)。
其次是生成质量的天花板:当前版本的 LlamaGen 在复杂文本渲染(text rendering)和精细纹理(如皮肤毛孔、金属光泽)上,与顶级扩散模型仍有差距。自回归模型的「teacher-forcing」训练方式,在长序列生成时可能面临误差累积问题。
第三是模型规模与效果的取舍:3B 参数的 GPT-XL 模型效果最好,但部署门槛极高;而轻量级的 GPT-B 模型生成质量又难以与同级别扩散模型竞争,scalability 的实际收益还需要更大规模的实验来验证。
最后,项目仓库不包含完整的训练代码(仅开源了推理代码),部分核心模块(如 T5 文本编码器集成)依赖外部模型,给完整复现带来一定障碍。
LlamaGen 的意义不仅在于生成几张图像,更在于它回答了一个基础性问题:「不需要扩散模型的归纳偏置,仅靠 scaling 自回归模型,能否达到 SOTA 图像生成水平?」 答案在 ImageNet 256x256 上的测试结果是肯定的——LlamaGen 刷新了该类别条件生成的多项 benchmark。
这一路线与 Google 的 Parti(同样是将图像视为token序列的自回归方案)、Meta 的 ImageBind(多模态绑定)共同构成了「大一统多模态模型」的重要探索方向。长远来看,如果视觉token生成能够与语言token生成共享同一个 Transformer backbone,那么构建一个真正「看听说写」全能统一的 AI 系统将成为可能。
从工程角度看,LlamaGen 对 vLLM 的深度集成也具有示范意义——将大语言模型的推理优化技术(连续批处理、PagedAttention 等)迁移到视觉生成领域,为未来的多模态推理引擎提供了参考模板。
技术关键词: 自回归图像生成 · VQ Tokenizer · LLaMA · vLLM · Gradio · 3B参数 · ImageNet · 类别条件生成 · 文本条件生成 · Classifier-Free Guidance
适用人群: AI/ML 研究者(探索自回归视觉生成路线)、图像生成方向开发者(vLLM 推理集成参考)、多模态 AI 爱好者(了解视觉-语言统一前沿)