一、简介
BAGEL ,这是一个开源的多模态基础模型,具有 70 亿个激活参数(总共 140 亿个),并在大规模交错多模态数据上进行训练。
BAGEL 在标准多模态理解排行榜上超越了当前顶级的开源 VLMs 如 Qwen2.5-VL 和 InternVL-2.5,并且提供了与强大的专业生成器如 SD3 竞争的文本到图像质量。 此外,BAGEL 在经典的图像编辑场景中展示了比领先的开源模型更好的定性结果。
更重要的是,它扩展到了自由形式的视觉操作、多视图合成和世界导航,这些能力构成了超出以往图像编辑模型范围的“世界建模”任务。
1.方法
BAGEL 采用了一种混合变压器专家(MoT)架构,以最大化模型从丰富多样的多模态信息中学习的能力。遵循同样的容量最大化原则,它利用两个独立的编码器来捕捉图像的像素级和语义级特征。整个框架遵循下一个令牌组预测范式,其中模型被训练为将下一组语言或视觉令牌作为压缩目标进行预测。
BAGEL 通过在数万亿交织的多模态令牌上进行预训练、继续训练和监督微调,扩展了 MoT 的能力,这些令牌涵盖了语言、图像、视频和网络数据。它在标准的理解和生成基准测试中超越了开放模型,并展示了先进的上下文多模态能力,如自由形式的图像编辑、未来帧预测、3D 操作、世界导航和序列推理。
2.新兴特性
随着我们使用更多的多模态令牌扩大 BAGEL 的预训练规模,我们在理解、生成和编辑任务中观察到一致的性能提升。不同的能力在不同的训练阶段出现——多模态理解和生成较早出现,随后是基本编辑,而复杂的智能编辑则在后期出现。这种分阶段的进步表明了一种新兴模式,即高级多模态推理建立在良好的基础技能之上。消融研究表明,结合 VAE 和 ViT 特征显著提高了智能编辑,强调了视觉-语义上下文在实现复杂多模态推理中的重要性,并进一步支持其在高级能力出现中的作用。
3.关于推理超参数:
- 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 的最小值。 禁用 renorm。典型:。
1.0``0
- cfg_renorm_type:CFG-Renorm 方法:
global
:对所有令牌和通道进行标准化(T2I 的默认值)。channel
:每个 Token 的跨通道标准化。text_channel
:与 ,但仅适用于文本条件(适合编辑,可能会导致模糊)。channel
- 如果编辑后的图像显示模糊,请尝试
全局
CFG-Renorm、降低cfg_renorm_min
或降低cfg_scale
。
二、本地部署
环境 | 版本 |
---|---|
Python | >=3.10 |
PyTorch | =2.5.1 |
Ubtuntu | =22.4.0 |
1.创建虚拟环境
1.1 安装 Miniconda
步骤 1:更新系统
首先,更新您的系统软件包:
sudo apt update
sudo apt upgrade -y
步骤 2:下载 Miniconda 安装脚本
访问 Miniconda 的官方网站或使用以下命令直接下载最新版本的安装脚本(以 Python 3 为例):
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
步骤 3:验证安装脚本的完整性(可选)
下载 SHA256 校验和文件并验证安装包的完整性:
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh.sha256
sha256sum Miniconda3-latest-Linux-x86_64.sh
比较输出的校验和与.sha256 文件中的值是否一致,确保文件未被篡改。
步骤 4:运行安装脚本
为安装脚本添加执行权限:
chmod +x Miniconda3-latest-Linux-x86_64.sh
运行安装脚本:
./Miniconda3-latest-Linux-x86_64.sh
步骤 5:按照提示完成安装
安装过程中,您需要:
阅读许可协议 :按 Enter 键逐页阅读,或者按 Q 退出阅读。
接受许可协议 :输入 yes 并按 Enter。
选择安装路径 :默认路径为/home/您的用户名/miniconda3,直接按 Enter 即可,或输入自定义路径。
是否初始化 Miniconda :输入 yes 将 Miniconda 添加到您的 PATH 环境变量中。
步骤 6:激活 Miniconda 环境
安装完成后,使环境变量生效:
source ~/.bashrc
步骤 7:验证安装是否成功
检查 conda 版本:
conda --version
步骤 8:更新 conda(推荐)
为了获得最新功能和修复,更新 conda:
conda update conda
1.2.创建虚拟环境
conda create -n bagel python==3.10.12
2.克隆仓库
项目地址:字节跳动-种子/百吉饼
git clone https://github.com/bytedance-seed/BAGEL.git
3.安装依赖
在安装依赖前需要删掉requirements.txt中的flash_attn==2.5.8,因为它会与pytorch冲突,因此后面单独安装
requirements.txt路径:/BAGEL/requirements.txt
#进入项目文件
cd BAGEL
#激活虚拟环境
conda activate bagel
#安装依赖
pip install -r requirements.txt
4.安装flash-ann
Flash Attention是一种注意力算法,更有效地缩放基于transformer的模型,从而实现更快的训练和推理。由于很多llm模型运行的时候都需要安装flash_attn,比如Llama3,趟了不少坑,最后建议按照已有环境中Python、PyTorch和CUDA的版本精确下载特定的whl文件安装是最佳方式。
#查看cuda版本
nvidia-smi
nvcc -V
#查看torch版本
pip show torch
选择对应的版本下载到本地
flash-ann下载地址: Releases · Dao-AILab/flash-attention
下面是本人安装的对应版本
#安装flash-ann
pip install flash_attn-2.7.0.post2+cu12torch2.5cxx11abiTRUE-cp310-cp310-linux_x86_64.whl
5.下载模型
模型下载路径:BAGEL-7B-MoT · 模型库
下载命令:
可以根据自己的磁盘大小更改--local_dir后面的模型储存路径
#新建文件夹
mkdir models
#安装魔搭下载工具
pip install modelscope
#下载模型
modelscope download --model ByteDance-Seed/BAGEL-7B-MoT --local_dir /BAGEL/models
更改启动文件中的模型路径
路径:/BAGEL/app.py
如图所示:
将红框中的路径改为你实际的模型路径,推荐使用绝对路径
6.启动
BAGEL可使用1张4090及以上的GPU也可以使用多张显卡,但是使用1张或2张4090的生成速度是非常慢的,因此推荐使用3张4090并行运算,生成的时间较快,费用较低
使用gradio页面
#安装gradio
pip install gradio
#运行app.py
python app.py
在启动app.py后会出现下面的网址,在浏览器中输入网址进入BAGEL的gradio页面
http://127.0.0.1:7860