開源多模態新標桿——BAGEL本地部署教程:7B參數撬動萬億數據

一、簡介

BAGEL?,這是一個開源的多模態基礎模型,具有 70 億個激活參數(總共 140 億個),并在大規模交錯多模態數據上進行訓練。

BAGEL 在標準多模態理解排行榜上超越了當前頂級的開源 VLMs 如 Qwen2.5-VL 和 InternVL-2.5,并且提供了與強大的專業生成器如 SD3 競爭的文本到圖像質量。 此外,BAGEL 在經典的圖像編輯場景中展示了比領先的開源模型更好的定性結果。

更重要的是,它擴展到了自由形式的視覺操作、多視圖合成和世界導航,這些能力構成了超出以往圖像編輯模型范圍的“世界建模”任務。

teaser.jpg

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

如圖所示:

image.png

將紅框中的路徑改為你實際的模型路徑,推薦使用絕對路徑

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

image.png

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/81493.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/81493.shtml
英文地址,請注明出處:http://en.pswp.cn/web/81493.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

SD卡+FATFS+Tinyjpeg圖片解碼顯示 (STM32F103VET6通過CubeMX快速建立工程)

先展示最終實現的功能效果如下: 1.目的與意義 為什么選用SD卡? 使用Nor-flash(W25Q系列)進行圖片的存取,需要先把圖片通過對應軟件批量處理為二進制bin文件,再通過SPI等通訊方式將 bin文件燒寫進Nor-flash才能進行使用,使用時還要記住每張圖片的首地址和對應字節數,MC…

數據結構-散列表查找(哈希表)

一,散列表查找定義 散列技術是在記錄的存儲位置和它的關鍵字之間建立一個確定的對應關系f,使得每個關鍵字key對應一個存儲位置f(key)。查找時,根據這個確定的對應關系找到給定值key的映射f(key),若查找集中存在這個記錄&#xff0…

Stable Diffusion 簡單了解一下

1. 幫我簡單介紹一下:StableDiffusion ?? Stable Diffusion 是什么? Stable Diffusion 是一個 文本生成圖像(Text-to-Image) 的人工智能模型。你只需要輸入一句話,它就能根據這句話生成一張高質量的圖片。 比如: "一只穿著太空服的貓,在月球上彈吉他"St…

R語言科研編程-標準偏差柱狀圖

生成隨機數據 在R中&#xff0c;可以使用rnorm()生成正態分布的隨機數據&#xff0c;并模擬分組數據。以下代碼生成3組&#xff08;A、B、C&#xff09;隨機數據&#xff0c;每組包含10個樣本&#xff1a; set.seed(123) # 確保可重復性 group_A <- rnorm(10, mean50, sd…

普羅米修斯監控CPU\內存匯聚圖

要找出內存使用率大于80%的主機&#xff0c;你可以使用以下PromQL查詢。這個查詢會計算每個節點的內存使用率&#xff0c;然后篩選出使用率超過80%的節點&#xff1a; (avg by(nodename) ((node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes)* on(instance) group…

飛牛fnNAS手機相冊備份及AI搜圖

目錄 一、相冊安裝應用 二、手機開啟自動備份 三、開始備份 四、照片檢索 五、AI搜圖設置 六、AI搜圖測試 七、照片傳遞 現代的手機,已經成為我們最親密的“伙伴”。自從手機拍照性能提升后,手機已經完全取代了簡單的卡片相機,而且與入門級“單反”相機發起了挑戰。在…

華為高斯數據庫(GaussDB)深度解析:國產分布式數據庫的旗艦之作

高斯數據庫介紹 一、高斯數據庫概述 GaussDB是華為自主研發的新一代分布式關系型數據庫&#xff0c;專為企業核心系統設計。它支持HTAP&#xff08;混合事務與分析處理&#xff09;&#xff0c;兼具強大的事務處理與數據分析能力&#xff0c;是國產數據庫替代的重要選擇。 產…

網頁 CSS美化2(詳解)

這是接著上一篇css基礎的第二篇&#xff1a;主要開始對頁面的布局進行學習 顯示模式&#xff1a; 塊級模式&#xff08;Block&#xff09; 特點 &#xff1a; 元素會獨占一行&#xff0c;在其前后會自動換行&#xff0c;與其他塊級元素在垂直方向上排列。 寬度默認為所在容器…

JSON解析性能優化全攻略:協程調度器選擇與線程池饑餓解決方案

簡介 JSON解析是現代應用開發中的基礎操作,但在使用協程處理時,若調度器選擇不當,會導致性能嚴重下降。特別是當使用Dispatchers.IO處理JSON解析時,可能觸發線程池饑餓,進而引發ANR或系統卡頓。本文將深入剖析這一問題的技術原理,提供全面的性能檢測方法,并給出多種優化…

python打卡第37天

知識點回顧&#xff1a; 過擬合的判斷&#xff1a;測試集和訓練集同步打印指標模型的保存和加載 僅保存權重保存權重和模型保存全部信息checkpoint&#xff0c;還包含訓練狀態 早停策略 作業&#xff1a;對信貸數據集訓練后保存權重&#xff0c;加載權重后繼續訓練50輪&#xf…

【洛谷P9303題解】AC- [CCC 2023 J5] CCC Word Hunt

在CCC單詞搜索游戲中&#xff0c;單詞隱藏在一個字母網格中。目標是確定給定單詞在網格中隱藏的次數。單詞可以以直線或直角的方式排列。以下是詳細的解題思路及代碼實現&#xff1a; 傳送門&#xff1a; https://www.luogu.com.cn/problem/P9303 解題思路 輸入讀取與初始化&…

LangGraph + LLM + stream_mode

文章目錄 LLM 代碼valuesmessagesupdatesmessages updatesmessages updates 2 LLM 代碼 from dataclasses import dataclassfrom langchain.chat_models import init_chat_model from langgraph.graph import StateGraph, STARTfrom langchain_openai import ChatOpenAI # 初…

Pydantic 學習與使用

Pydantic 學習與使用 在 Fastapi 的 Web 開發中的數據驗證通常都是在使用 Pydantic 來進行數據的校驗&#xff0c;本文將對 Pydantic 的使用方法做記錄與學習。 **簡介&#xff1a;**Pydantic 是一個在 Python 中用于數據驗證和解析的第三方庫&#xff0c;它現在是 Python 使…

批量文件重命名工具

分享一個自己使用 python 開發的小軟件&#xff0c;批量文件重命名工具&#xff0c;主要功能有批量中文轉拼音&#xff0c;簡繁體轉換&#xff0c;大小寫轉換&#xff0c;替換文件名&#xff0c;刪除指定字符&#xff0c;批量添加編號&#xff0c;添加前綴/后綴。同時還有文件時…

多語言視角下的 DOM 操作:從 JavaScript 到 Python、Java 與 C#

多語言視角下的 DOM 操作&#xff1a;從 JavaScript 到 Python、Java 與 C# 在 Web 開發中&#xff0c;文檔對象模型&#xff08;DOM&#xff09;是構建動態網頁的核心技術。它將 HTML/XML 文檔解析為樹形結構&#xff0c;允許開發者通過編程方式訪問和修改頁面內容、結構和樣…

【C/C++】紅黑樹學習筆記

文章目錄 紅黑樹1 基本概念1.1 定義1.2 基本特性推理1.3 對比1.4 延伸1.4.1 簡單判別是否是紅黑樹1.4.2 應用 2 插入2.1 插入結點默認紅色2.2 插入結點2.2.1 插入結點是根結點2.2.2 插入結點的叔叔是紅色2.2.3 插入結點的叔叔是黑色場景分析LL型RR型LR型RL型 3 構建4 示例代碼 …

網絡通信的基石:深入理解幀與報文

在這個萬物互聯的時代&#xff0c;我們每天都在享受著網絡帶來的便利——從早晨查看天氣預報&#xff0c;到工作中的視頻會議&#xff0c;再到晚上刷著短視頻放松。然而&#xff0c;在這些看似簡單的網絡交互背后&#xff0c;隱藏著精密而復雜的數據傳輸機制。今天&#xff0c;…

STM32 SPI通信(硬件)

一、SPI外設簡介 STM32內部集成了硬件SPI收發電路&#xff0c;可以由硬件自動執行時鐘生成、數據收發等功能&#xff0c;減輕CPU的負擔 可配置8位/16位數據幀、高位先行/低位先行 時鐘頻率&#xff1a; fPCLK / (2, 4, 8, 16, 32, 64, 128, 256) 支持多主機模型、主或從操作 可…

尚硅谷redis7-11-redis10大類型之總體概述

前提&#xff1a;我們說的數據類型一般是value的數據類型&#xff0c;key的類型都是字符串。 redis字符串【String】 string類型是二進制安全的,意思是redis的string可以包含任何數據,比如jpg圖片或者序列化的對象。 string類型是Redis最基本的數據類型,一個redis中字符串va…

【遞歸、搜索與回溯算法】專題一 遞歸

文章目錄 0.理解遞歸、搜索與回溯1.面試題 08.06.漢諾塔問題1.1 題目1.2 思路1.3 代碼 2. 合并兩個有序鏈表2.1 題目2.2 思路2.3 代碼 3.反轉鏈表3.1 題目3.2 思路3.3 代碼 4.兩兩交換鏈表中的節點4.1 題目4.2 思路4.3 代碼 5. Pow(x, n) - 快速冪5.1 題目5.2 思路5.3 代碼 0.理…