Emerging Properties in Unified Multimodal Pretraining (BAGEL)

Authors: Chaorui Deng*, Deyao Zhu*, Kunchang Li*, Chenhui Gou*, Feng Li*, Zeyu Wang, Shu Zhong, Weihao Yu, Xiaonan Nie, Ziang Song, Guang Shi, Haoqi Fan Affiliations: ByteDance Seed, Shenzhen Institutes of Advanced Technology, Monash University, Hong Kong University of Science and Technology, UC Santa Cruz arXiv: 2505.14683 Project Page: bagel-ai.org GitHub: ByteDance-Seed/Bagel

1. Motivation (研究动机)

统一多模态理解与生成模型近年来取得了显著进展,但学术界开源模型与 GPT-4o、Gemini 2.0 等闭源系统之间仍存在较大差距。现有的统一模型主要面临以下问题:

  • 数据瓶颈:大多数统一模型仍以 image-text paired data 为主进行训练,缺乏大规模的多模态交错数据(interleaved multimodal data),限制了复杂推理能力的习得
  • 架构瓶颈:External Diffuser 方案通过少量 latent tokens 连接 LLM 与扩散模型,引入了信息瓶颈,不利于长上下文多模态推理
  • 能力瓶颈:现有模型在理解和生成上的基础能力之外,缺乏自由形式图像编辑、世界导航、3D 操作等需要复杂组合推理的”涌现”能力

BAGEL 的核心论点是:通过在大规模、多样化的交错多模态数据上进行 bottleneck-free 的统一预训练,模型能够涌现出超越传统基准的复杂多模态推理能力。

2. Idea (核心思想)

BAGEL 提出了三个关键设计理念:

  1. Integrated Transformer 架构:选择无瓶颈的集成式 Transformer,而非 External Diffuser,让理解与生成模块通过共享 self-attention 进行无损交互。采用 Mixture-of-Transformers (MoT) 架构,为理解和生成分别分配独立的参数子空间(QKV 投影 + FFN),同时共享 attention 计算

  2. 大规模交错多模态数据:建立了包含文本、图像、视频、网页数据的万亿级 token 训练语料,特别构建了 video-interleaved 和 web-interleaved 数据集,并引入 reasoning-augmented data 支持思维链推理

  3. 涌现能力 (Emerging Properties):随着预训练规模扩大,模型展现出阶段性涌现:基础理解/生成能力先收敛,随后编辑与自由形式操作能力浮现,最终复杂多模态推理(Intelligent Editing)涌现

3. Method (方法)

3.1 整体架构

Figure 2 解读:BAGEL 采用 MoT 架构,包含两个 Transformer Expert——Understanding Expert 和 Generation Expert。两者在每层共享 Multi-modal Self Attention,但拥有独立的 QKV 投影和 FFN。输入端使用三种编码器:Text Tokenizer 处理文本,Understanding Encoder (SigLIP2-so400m/14) 处理视觉理解输入,Generation Encoder (FLUX VAE) 处理视觉生成的 latent 表示。文本输出通过 Next Token Prediction,图像输出通过 Velocity Prediction (Rectified Flow)。

模型规格

  • 总参数量:14B(7B active parameters,MoT 架构下理解和生成 Expert 各约 7B)
  • LLM backbone:Qwen2.5 LLM
  • Understanding encoder:SigLIP2-so400m/14,固定 384 分辨率,最大输入 ,集成 NaViT 支持原生宽高比
  • Generation encoder:FLUX VAE,downsample ratio = 8,latent channel = 16, patch embedding
  • 归一化:RMSNorm
  • 激活函数:SwiGLU
  • 位置编码:RoPE + GQA + QK-Norm

3.2 Mixture-of-Transformers (MoT) 设计

Figure 3 解读:在 1.5B Qwen2.5 LLM 上对比 Dense、MoE、MoT 三种架构的训练 loss 曲线。左图为 CE Loss(理解任务),右图为 MSE Loss(生成任务)。MoT 在生成任务上收敛最快且最终 loss 最低,理解任务上也保持最优性能。这验证了将理解和生成参数解耦的设计优势。

三种架构设计对比:

架构描述特点
Dense Transformer所有 token 共享全部参数理解和生成目标在同一参数空间竞争
MoE variant仅复制 FFN 层作为 generation expert部分参数解耦
MoT variant复制 Qwen2.5 LLM 全部可训练参数创建 generation expert完全解耦,硬路由

MoT 的关键实现:

  • Generation Expert 专门处理 VAE tokens
  • Understanding Expert 处理 text tokens 和 ViT tokens
  • 两者通过共享 self-attention 操作在同一 token 序列上交互
  • 使用 hard routing:新建的 generation expert 只处理 VAE tokens,原始参数(understanding expert)处理文本和 ViT tokens
# MoT Forward Pass 伪代码
class Qwen2MoTDecoderLayer:
    def forward_train(self, hidden_states, packed_und_indexes, packed_gen_indexes):
        # 1. 分别对理解和生成 token 做 LayerNorm
        hidden_states[packed_und_indexes] = self.input_layernorm(
            hidden_states[packed_und_indexes]
        )
        hidden_states[packed_gen_indexes] = self.input_layernorm_moe_gen(
            hidden_states[packed_gen_indexes]
        )
 
        # 2. 共享 Attention(两个 Expert 分别计算 QKV,但在同一序列上做 attention)
        #    Understanding Expert: q_proj, k_proj, v_proj
        #    Generation Expert: q_proj_moe_gen, k_proj_moe_gen, v_proj_moe_gen
        q_und = self.q_proj(hidden_states[packed_und_indexes])
        q_gen = self.q_proj_moe_gen(hidden_states[packed_gen_indexes])
        # 合并后做 shared multi-modal self attention
        attn_output = flash_attn_varlen_func(merged_q, merged_k, merged_v)
 
        # 3. 独立 FFN 路由
        hidden_states[packed_und_indexes] += self.mlp(
            attn_output[packed_und_indexes]
        )
        hidden_states[packed_gen_indexes] += self.mlp_moe_gen(
            attn_output[packed_gen_indexes]
        )
        return hidden_states

3.3 Generalized Causal Attention

Figure 15 解读:展示了 BAGEL 的广义因果注意力机制。对于交错多模态输入,token 被分成多个连续 split(text、ViT、VAE)。每个 split 内的 text token 使用 causal attention,vision token 使用 bidirectional attention。后续 split 可以 attend 到前面所有 split 的 token。Noised VAE token 不被后续 token attend。

三类视觉 token:

  • Noised VAE tokens:加了扩散噪声的 VAE latents,仅用于计算 MSE loss(Rectified Flow 训练)
  • Clean VAE tokens:原始无噪声 latents,作为后续图像/文本生成的条件
  • ViT tokens:SigLIP2 编码的理解特征,统一输入格式并提升交错生成质量

Classifier-Free Guidance 的 dropout 策略:

  • Text tokens:以概率 0.1 随机丢弃
  • ViT tokens:以概率 0.5 随机丢弃
  • Clean VAE tokens:以概率 0.1 随机丢弃
# Generalized Causal Attention 伪代码
def create_attention_mask(splits, attn_modes):
    """
    splits: list of (modality, token_indices) per split
    attn_modes: 'causal' for text, 'bidirectional' for vision
    """
    mask = torch.zeros(seq_len, seq_len)
    for i, split_i in enumerate(splits):
        for j, split_j in enumerate(splits):
            if j > i:
                continue  # 后面的 split 不被前面的 attend
            if i == j:
                # 同一 split 内部
                if split_i.modality == 'text':
                    mask[split_i.idx, split_j.idx] = causal_mask()
                else:
                    mask[split_i.idx, split_j.idx] = 1  # bidirectional
            else:
                # 跨 split:可以 attend 到前面 split 的所有 token
                if split_j.modality != 'noised_vae':
                    mask[split_i.idx, split_j.idx] = 1
    return mask
 
# 使用 PyTorch FlexAttention 实现,比 naive scaled-dot-product 快约 2 倍
block_mask = create_block_mask(
    sparse_mask, B=1, H=num_heads,
    Q_LEN=seqlen, KV_LEN=seqlen,
    BLOCK_SIZE=128, _compile=True
)

3.4 Rectified Flow 生成

BAGEL 使用 Rectified Flow 进行视觉 token 的生成。给定干净的 latent 和噪声 ,构建线性插值路径:

模型预测速度场 ,训练目标为最小化 MSE:

推理时使用 Euler 方法求解 ODE:

Timestep embedding 直接加到 VAE tokens 的初始 hidden states 上(而非使用 AdaLN)。Diffusion timestep shift 从 pre-training 阶段的 1.0 提高到后续阶段的 4.0,以适应更高分辨率。

# Rectified Flow 推理伪代码
def generate_image(model, context, num_timesteps=50, cfg_text_scale=4.0, cfg_img_scale=2.0):
    x_t = torch.randn(h * w, latent_dim)  # 初始噪声
    timesteps = torch.linspace(1.0, 0.0, num_timesteps + 1)
    # 应用 timestep shift
    timesteps = timesteps / (timesteps + shift * (1 - timesteps))
 
    for i in range(num_timesteps):
        t = timesteps[i]
        dt = timesteps[i] - timesteps[i + 1]
 
        # 预测三个速度场 (unconditional, text-guided, image-guided)
        v_uncond = model.forward_flow(x_t, t, context=None)
        v_text = model.forward_flow(x_t, t, context=text_context)
        v_img = model.forward_flow(x_t, t, context=full_context)
 
        # Classifier-Free Guidance 组合
        v_guided = v_uncond + cfg_text_scale * (v_text - v_uncond) + cfg_img_scale * (v_img - v_text)
 
        # Renormalization 保持 norm 一致性
        v_guided = v_guided * (v_img.norm() / v_guided.norm())
 
        # Euler step
        x_t = x_t - v_guided * dt
 
    image = vae.decode(x_t)
    return image

3.5 数据构建

Figure 4a 解读:Video Interleaved Data 的构建流程。先对原始视频进行预处理和质量过滤,然后用 large VLM 生成帧间变化描述,再蒸馏到轻量级 small VLM(基于 Qwen2.5-VL-7B 微调),最终生成 4500 万条 temporally grounded 的交错序列。

Figure 4b 解读:Web Interleaved Data 的构建流程。基于 OmniCorpus 数据集,先用 LLM + fastText 两阶段进行 topic selection,再经过质量过滤,最后为每张图像添加 caption 作为 conceptual scaffold,生成 2000 万条结构化网页文档。

训练数据统计(Table 1):

数据源数据量 (M)Token 量 (T)
Text Data4000.4
Image-Text-Pair Understanding5000.5
Image-Text-Pair Generation16002.6
Interleaved Understanding1000.5
Interleaved Generation: Video450.7
Interleaved Generation: Web200.4

3.6 Reasoning-Augmented Data

受 O1 和 DeepSeek-R1 启发,构建了 50 万条 reasoning-augmented 样本,覆盖四类任务:

  1. Text-to-Image Generation:手工编写简短/模糊的 T2I query,用 Qwen2.5-72B ICL 生成 query-guidance pair 和详细 prompt,再由 FLUX.1-dev 生成目标图像。训练三元组:(query, reasoning trace, image)
  2. Free-form Image Manipulation:用 VLM 生成源图/目标图的 caption,结合 DeepSeek-R1 风格的推理指令生成 reasoning trace
  3. Conceptual Edits:从 web interleaved 数据中采样图像对,用三阶段 VLM 流程构建高质量 QA 样本
  4. Abstract Edits:处理需要高层概念推理的图像编辑任务

3.7 多阶段训练

参数AlignmentPTCTSFT
Learning rate
LR schedulerCosineConstantConstantConstant
Training steps5K200K100K15K
Training tokens4.9B2.5T2.6T72.7B
Gen resolution (min, max)-(256, 512)(512, 1024)(512, 1024)
Und resolution (min, max)(378, 378)(224, 980)(378, 980)(378, 980)
Loss weight (CE : MSE)-0.25 : 10.25 : 10.25 : 1
Diffusion timestep shift-1.04.04.0

四个训练阶段:

  • Alignment:对齐 SigLIP2 ViT 与 Qwen2.5 LLM,仅训练 MLP connector,固定分辨率
  • Pre-training (PT):添加 QK-Norm,除 VAE 外全部参数可训练,2.5T tokens,原生分辨率策略
  • Continued Training (CT):提高视觉输入分辨率,增大 interleaved data 采样比例,2.6T tokens
  • Supervised Fine-tuning (SFT):高质量子集微调,总计 72.7B tokens

3.8 代码到论文映射表

Paper ConceptSource FileKey Class/Function
BAGEL 主模型modeling/bagel/bagel.pyBagel, BagelConfig
MoT Decoder Layermodeling/bagel/qwen2_navit.pyQwen2MoTDecoderLayer, PackedAttentionMoT
MoE Decoder Layermodeling/bagel/qwen2_navit.pyQwen2MoEDecoderLayer
SigLIP2 Encodermodeling/bagel/siglip_navit.pySigLIP NaViT implementation
Qwen2 LLM backbonemodeling/qwen2/Qwen2 model components
VAE Encoder/Decodermodeling/autoencoder.pyAutoEncoder
Generalized Causal Attentionmodeling/bagel/bagel.pycreate_sparse_mask, create_block_mask
Rectified Flow Generationmodeling/bagel/bagel.pygenerate_image, _forward_flow
CFG Guidancemodeling/bagel/bagel.py_forward_flow (cfg_text_v_t, cfg_img_v_t)
Interleaved Inferenceinferencer.pyInterleaveInferencer
Training Pipelinetrain/pretrain_unified_navit.pyMain training script
Data Processingdata/t2i_dataset.py, vlm_dataset.py

4. Experimental Setup (实验设置)

评估基准

多模态理解(6 个 benchmark):

  • MME (MME-P + MME-S)、MMBench (1.0-EN)、MM-Vet、MMMU、MathVista、MMVP

文生图生成

  • GenEval:object-centric 评估(Single Obj., Two Obj., Counting, Colors, Position, Color Attribution)
  • WISE:复杂语义理解和世界知识评估

图像编辑

  • GEdit-Bench:基于真实用户请求的编辑评估,GPT-4.1 自动评分(G_SC, G_PQ, G_O)
  • IntelligentBench:350 个 free-form 图像操作样本,GPT-4o 评分(0-100 scale)

其他评估

  • RISEBench、KRIS-Bench(reasoning-based editing)

基线模型

  • 理解专用:InternVL2/2.5、Qwen2.5-VL、Qwen2-VL、LLaVA-OV、DeepSeek-VL2
  • 统一模型:Janus-Pro、Show-o、MetaQuery-XL、VILA-U、Chameleon、LlamaFusion、MUSE-VL
  • 生成专用:FLUX.1-dev、SD3-Medium、SDXL、DALL-E 3、PixArt-Alpha
  • 闭源模型:GPT-4o、Gemini 2.0

5. Experimental Results (实验结果)

5.1 多模态理解 (Table 4)

BAGEL (7B MoT) 在统一模型中大幅领先:

ModelMME-PMME-SMMBenchMMMUMM-VetMathVistaMMVP
Janus-Pro 7B1567168579.241.050.066.6-
MetaQuery-XL 7B--83.558.666.6--
BAGEL 7B MoT1687238885.055.367.273.169.3

关键发现:

  • BAGEL 在 MMMU 上超过 Janus-Pro 14.3 分,在 MM-Vet 上超过 17.1 分
  • 与理解专用模型 Qwen2.5-VL 和 InternVL2.5 相比,BAGEL 在大多数 benchmark 上也有优势
  • MoT 架构有效缓解了理解和生成任务之间的冲突

5.2 文生图生成 (Table 5 & 6)

GenEval Overall Score

ModelOverall
FLUX.1-dev0.82
MetaQuery-XL0.80
Janus-Pro-7B0.80
BAGEL0.82
BAGEL (w/ rewriter)0.88

WISE Benchmark (世界知识评估):

ModelOverall
GPT-4o0.80
MetaQuery-XL0.55
BAGEL0.52
BAGEL w/ Self-CoT0.70

关键发现:

  • BAGEL 在 GenEval 上达到 88%(使用 LLM rewriter),超过所有开源模型和 FLUX.1-dev
  • 在 WISE 上,BAGEL with CoT 达到 0.70,超过所有开源模型,仅次于 GPT-4o

5.3 图像编辑 (Table 7 & 8)

GEdit-Bench (EN)

ModelG_SCG_PQG_O
GPT-4o7.857.627.53
Step1X-Edit7.096.766.70
BAGEL7.366.836.52

IntelligentBench

ModelScore
GPT-4o78.9
Gemini 2.057.6
Step1X-Edit14.9
BAGEL44.9
BAGEL w/ Self-CoT55.3

关键发现:

  • BAGEL 在 GEdit-Bench 上与 Step1X-Edit 竞争力相当,也超过 Gemini 2.0
  • 在 IntelligentBench 上,BAGEL (44.9) 大幅超过 Step1X-Edit (14.9),加入 CoT 后达到 55.3,接近 Gemini 2.0 (57.6)

5.4 涌现能力分析

Figure 7a 解读:理解任务的性能曲线。约 0.18T tokens 时达到 85% 峰值性能,说明基础理解能力收敛较早。

Figure 7b 解读:GenEval 生成分数随训练 token 数的变化。约 0.68T tokens 时达到 85% 峰值,使用 LLM rewriter 进一步提升。基础生成能力也较早饱和。

Figure 7c 解读:GEdit 图像编辑分数。需要约 2.64T tokens 才达到 85% 峰值,收敛明显更慢。采用 VAE+ViT 特征组合比仅用 VAE 效果更好。

Figure 7d 解读:IntelligentBench 智能编辑分数。需要约 3.61T tokens 才达到 85% 峰值,展现出典型的涌现行为——在 3T tokens 前性能较低且增长缓慢,之后急剧提升(从 15 跃升至 45)。去除 ViT tokens 导致 16% 的性能下降,说明视觉语义理解对复杂推理至关重要。

涌现规律总结

  • 不同能力在不同训练阶段涌现:理解/生成 → 基础编辑 → 智能编辑
  • 收敛所需 token 数:理解 (0.18T) < 生成 (0.68T) < 编辑 (2.64T) < 智能编辑 (3.61T)
  • ViT 特征对 IntelligentBench 影响显著(-16%),但对 GEdit-Bench 影响小

5.5 Thinking 增强 (Generation/Editing with Thinking)

Figure 13a 解读:展示了 CoT thinking 对 T2I 生成的帮助。对于复杂或模糊的 prompt(如”A car made of small cars”),直接生成效果不佳,但加入 thinking 后,模型先进行推理规划再生成,输出质量显著提升。

Figure 13b 解读:展示了 CoT thinking 对 Intelligent Editing 的帮助。模型先用文字推理理解输入图像、用户需求和目标状态,再进行图像生成,在需要世界知识和多步推理的编辑任务上效果显著提升。