项目介绍
我们推出了 BAGEL,这是一个开源的多模态基础模型,拥有 70 亿活跃参数(总计 140 亿),在大规模的交错多模态数据上进行训练。BAGEL 在标准的多模态理解排行榜上超越了当前顶尖的开源视觉语言模型,如 Qwen2.5-VL 和 InternVL-2.5,并且在文本到图像的质量方面可与强大的专业生成器(如 SD3)相媲美。此外,BAGEL 在经典的图像编辑场景中展现出了比领先的开源模型更出色的效果。更重要的是,它还扩展到了自由形式的视觉操作、多视图合成和世界导航等能力,这些能力构成了超出以往图像编辑模型范畴的“世界建模”任务。下图展示了 BAGEL 的定性性能。
🧠 方法
BAGEL 采用混合专家变压器(Mixture-of-Transformer-Experts,MoT)架构,以最大化模型从丰富多样的多模态信息中学习的能力。遵循同样的能力最大化原则,它利用两个独立的编码器来捕捉图像的像素级和语义级特征。整体框架遵循下一组标记预测范式,即模型被训练为预测下一组语言或视觉标记作为压缩目标。
BAGEL 通过在数万亿交错的跨语言、图像、视频和网络数据的多模态标记上进行预训练、持续训练和有监督微调,扩展了 MoT 的容量。它在标准和生成基准测试中超越了开源模型,并展示了先进的上下文多模态能力,如自由形式的图像编辑、未来帧预测、3D 操作、世界导航和顺序推理。
🌱 涌现特性
随着我们通过更多的多模态标记扩大 BAGEL 的预训练规模,我们在理解、生成和编辑任务中观察到了一致的性能提升。不同的能力在不同的训练阶段出现——多模态理解和生成较早出现,接着是基本的编辑能力,而复杂的智能编辑则在后期出现。这种分阶段的进展表明了一种涌现模式,即高级的多模态推理建立在形成良好的基础技能之上。消融研究进一步表明,结合变分自编码器(VAE)和视觉变压器(ViT)特征显著提高了智能编辑能力,这突显了视觉 – 语义上下文在实现复杂多模态推理中的重要性,并进一步支持其在高级能力涌现中的作用。
📮 注意事项
关于推理超参数:
-
• cfg_text_scale
: 控制模型遵循文本提示的强度。1.0
表示禁用文本引导。典型范围:4.0–8.0
。 -
• cfg_image_scale
: 控制模型保留输入图像细节的程度。1.0
表示禁用图像引导。典型范围:1.0–2.0
。 -
• cfg_interval
: 在去噪步骤中应用 CFG 的比例。较后的步骤可以跳过 CFG 以减少计算量。典型值:[0.4, 1.0]
。 -
• timestep_shift
: 改变去噪步骤的分布。较高的值在开始时分配更多步骤(影响布局);较低的值在结束时分配更多步骤(改善细节)。 -
• num_timesteps
: 去噪的总步骤数。典型值:50
。 -
• cfg_renorm_min
: CFG-Renorm 的最小值。1.0
表示禁用 renorm。典型值:0
。 -
• cfg_renorm_type
: CFG-Renorm 方法: -
• global
:对所有标记和通道进行归一化(T2I 的默认值)。 -
• channel
:对每个标记的通道进行归一化。 -
• text_channel
:类似于channel
,但仅应用于文本条件(适用于编辑,可能会导致模糊)。 -
• 如果编辑后的图像出现模糊,请尝试 global
CFG-Renorm,降低cfg_renorm_min
或降低cfg_scale
。
🔥 快速开始
1️⃣ 设置环境
git clone https://github.com/bytedance-seed/BAGEL.git
cd BAGEL
conda create -n bagel python=3.10 -y
conda activate bagel
pip install -r requirements.txt
2️⃣ 下载预训练检查点
from huggingface_hub import snapshot_download
save_dir = "/path/to/save/BAGEL-7B-MoT"
repo_id = "ByteDance-Seed/BAGEL-7B-MoT"
cache_dir = save_dir + "/cache"
snapshot_download(cache_dir=cache_dir,
local_dir=save_dir,
repo_id=repo_id,
local_dir_use_symlinks=False,
resume_download=True,
allow_patterns=["*.json", "*.safetensors", "*.bin", "*.py", "*.md", "*.txt"],
)
3️⃣ 转到 inference.ipynb
开始体验 BAGEL!
4️⃣ 使用 Gradio WebUI 开始体验 BAGEL!
pip install gradio
python app.py
🔥 训练与评估
训练
bash scripts/train.sh
您可以在运行前替换脚本中的变量。有关更多详细信息,请参阅 TRAIN。
评估
我们提供了用于评估视觉语言模型(VLM)、文本到图像(T2I)和编辑基准的脚本。有关更多详细信息,请参阅 EVAL。
📊 基准测试
1. 视觉理解
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
58.6 |
|
|
BAGEL | 2388 | 85.0 |
|
67.2 | 73.1 |
2. 文本到图像生成
|
|
|
|
|
|
|
|
|
|
|
|
BAGEL |
|
0.52 |
BAGEL + CoT | 0.88 | 0.70 |
3. 图像编辑
|
|
|
|
|
|
|
|
6.70 |
|
|
|
|
|
57.6 |
BAGEL | 7.36 | 6.83 |
|
|
BAGEL+CoT |
|
|
|
|
扫码加入技术交流群,备注「开发语言-城市-昵称」
(文:GitHubStore)