一、簡介
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