我如何在8GB GPU RAM上運行通量模型? - 分析Vidhya
Black Forest Labs最近發布的Flux模型因其令人印象深刻的圖像產生功能而廣受歡迎。但是,其尺寸最初阻止了其在標準消費硬件上的使用。此限制促使使用API服務以避免本地模型加載。但是,由於GPU的要求,本地部署的成本仍然很高。幸運的是,擁抱Face的擴散器庫現在通過BitsandBytes支持量化,從而可以在僅8GB GPU RAM的機器上進行通量推斷。
學習目標:
- 配置依賴關係,用於在Colab環境中使用通量。
- 使用4位量化的文本編碼器編碼文本提示,以提高內存效率。
- 實現保存內存的技術,以混合精度加載和運行圖像生成模型。
- 使用COLAB中的通量管道從文本提示中生成圖像。
本文是數據科學博客馬拉鬆的一部分。
目錄:
- 學習目標
- 什麼是通量?
- 為什麼量化很重要?
- 用bitsandbytes進行量化
- BitsandBytes如何工作?
- 在消費者硬件上運行通量
- 步驟1:環境設置
- 步驟2:GPU內存管理
- 步驟3:加載4位T5文本編碼器
- 步驟4:生成文本嵌入
- 步驟5:加載4位變壓器和VAE
- 步驟6:圖像生成
- 設備圖像生成的未來
- 結論
- 關鍵要點
- 常見問題
什麼是通量?
Black Forest Labs(穩定擴散的創造者)開發的Flux代表了文本到圖像模型的重大進步。它以穩定的擴散為基礎,提供了提高的性能和輸出質量。雖然最初是資源密集型的,但優化允許對消費者硬件有效執行。本文演示了量化如何增強通量的可訪問性。下圖說明了創意潛力和計算成本之間的權衡。
Flux擁有幾個關鍵的建築組件:
- 兩個預訓練的文本編碼器(剪輯和T5):這些編碼器改善了文本及時理解和轉換為圖像。
- 基於變壓器的DIT模型:這種脫氧主鏈利用變壓器提高效率和準確性。
- 變性自動編碼器(VAE):潛在空間中的處理可以減少計算需求,同時保持圖像質量。
通量有多種版本:Flux-Schnell(開源),Flux-DEV(開放,具有更限制的許可)和Flux-Pro(封閉消息,可訪問)。
為什麼量化很重要?
量化是一種通過使用較少位來存儲參數來降低模型大小的技術,對於在有限的硬件上運行大型型號至關重要。雖然在圖像生成中不太常見,但它會大大降低記憶足跡而沒有大量性能損失。神經網絡參數通常存儲在32位,但量化可以將其降低到4位。
用bitsandbytes進行量化
BITSANDBYTES庫實現了Pytorch的有效k位量化。它集成到擴散器庫中,使8GB GPU的運行通量可行。
BitsandBytes如何工作?
BitsandBytes量化為8位和4位精度。 8位量化處理異常值不同,以最大程度地減少性能降解。 4位量化進一步壓縮了該模型,該模型通常與Qlora一起用於微調。
在消費者硬件上運行通量
步驟1:環境設置
確保啟用GPU的環境(例如NVIDIA T4/L4或Google Colab)。安裝必要的軟件包:
! ! !
導入依賴性:
導入擴散器 導入變壓器 導入bitsandbytes作為BNB 從擴散器導入FluxPipeline,FluxTransFormer2DModel 從變形金剛導入t5encodermodel 導入火炬 導入GC
步驟2:GPU內存管理
定義一個函數以清除模型負載之間的GPU內存:
def flush(): gc.collect() TORCH.CUDA.EMPTY_CACHE() torch.cuda.Reset_max_memory_allocated() TORCH.CUDA.RESET_PEAK_MEMORY_STATS() flush()
步驟3:加載4位T5文本編碼器
使用4位量化加載T5編碼器:
ckpt_id =“黑色 - 林 - luxs/flux.1-dev” ckpt_4bit_id =“ hf內部測試/flux.1-dev-nf4-pkg” 提示=“巴黎照片中的一隻可愛的狗” text_encoder_2_4bit = t5encodermodel.from_pretrated( ckpt_4bit_id, subfolder =“ text_encoder_2”, )
步驟4:生成文本嵌入
使用量化的編碼器編碼提示:
pipeline = fluxpipeline.from_pretaining( “黑色 - 林 - luxs/flux.1-dev”, text_encoder_2 = text_encoder_2_4bit, 變壓器=無, vae =無, TORCH_DTYPE = TORCH.FLOAT16, ) 使用Torch.no_grad(): 提示_embeds,pooled_prompt_embeds,text_ids = pipeline.encode_prompt( 提示=提示,提示_2 = none,max_secorence_length = 256 ) Del Pipeline flush()
步驟5:加載4位變壓器和VAE
將變壓器和VAE加載到4位模式下:
transformer_4bit = fluxtransformer2dmodel.from_pretrated(ckpt_4bit_id,subfolder =“ transformer”) pipeline = fluxpipeline.from_pretaining( ckpt_id, text_encoder =無, text_encoder_2 =無, tokenizer = none, tokenizer_2 =無, 變壓器=變形金剛_4bit, TORCH_DTYPE = TORCH.FLOAT16, ) pipeline.enable_model_cpu_offload()
步驟6:圖像生成
生成圖像:
打印(“奔跑denoising。”) 高度,寬度= 512,768 圖像=管道(管道 提示_embeds =提示_embeds, pooled_prompt_embeds = pooled_prompt_embeds, num_inference_steps = 50, gudance_scale = 5.5, 高度=高度, 寬度=寬度, output_type =“ pil”, )。圖像 圖像[0]
設備圖像生成的未來
量化和高效的模型處理為消費者硬件帶來了強大的AI,使對高級圖像生成的訪問民主化。
結論
通量結合量化,可以在8GB GPU上產生高質量的圖像生成。這一進步使更加精緻的AI可以被更廣泛的受眾訪問。
關鍵要點:
- 通量使用4位量化和混合精度在Colab中有效運行。
-
diffusers
和transformers
簡化了圖像生成。 - 有效的內存管理可以對有限的資源進行大型模型執行。
經常詢問的問題(與原始問題相同,但重新格式化以提高可讀性)
Q1。 4位量化的目的? 4位量化減少了內存使用情況,從而使大型模型在有限的資源上可以有效地運行。
Q2。更改文本提示?將prompt
變量替換為所需的文本描述。
Q3。調整圖像質量/樣式?調整管道調用中的num_inference_steps
(質量)和guidance_scale
(及時遵守)。
Q4。處理COLAB中的內存錯誤?確保使用GPU使用率,4位量化和混合精度。考慮降低num_inference_steps
或使用CPU卸載。
Q5。在本地運行腳本?是的,但是請確保足夠的GPU資源和內存。
以上是我如何在8GB GPU RAM上運行通量模型? - 分析Vidhya的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Meta的Llama 3.2:多模式和移動AI的飛躍 Meta最近公佈了Llama 3.2,這是AI的重大進步,具有強大的視覺功能和針對移動設備優化的輕量級文本模型。 以成功為基礎

嘿,編碼忍者!您當天計劃哪些與編碼有關的任務?在您進一步研究此博客之前,我希望您考慮所有與編碼相關的困境,這是將其列出的。 完畢? - 讓&#8217

本週的AI景觀:進步,道德考慮和監管辯論的旋風。 OpenAI,Google,Meta和Microsoft等主要參與者已經釋放了一系列更新,從開創性的新車型到LE的關鍵轉變

Shopify首席執行官TobiLütke最近的備忘錄大膽地宣布AI對每位員工的基本期望是公司內部的重大文化轉變。 這不是短暫的趨勢。這是整合到P中的新操作範式

介紹 Openai已根據備受期待的“草莓”建築發布了其新模型。這種稱為O1的創新模型增強了推理能力,使其可以通過問題進行思考

介紹 想像一下,穿過美術館,周圍是生動的繪畫和雕塑。現在,如果您可以向每一部分提出一個問題並獲得有意義的答案,該怎麼辦?您可能會問:“您在講什麼故事?

SQL的Alter表語句:動態地將列添加到數據庫 在數據管理中,SQL的適應性至關重要。 需要即時調整數據庫結構嗎? Alter表語句是您的解決方案。本指南的詳細信息添加了Colu

斯坦福大學以人為本人工智能研究所發布的《2025年人工智能指數報告》對正在進行的人工智能革命進行了很好的概述。讓我們用四個簡單的概念來解讀它:認知(了解正在發生的事情)、欣賞(看到好處)、接納(面對挑戰)和責任(弄清我們的責任)。 認知:人工智能無處不在,並且發展迅速 我們需要敏銳地意識到人工智能發展和傳播的速度有多快。人工智能係統正在不斷改進,在數學和復雜思維測試中取得了優異的成績,而就在一年前,它們還在這些測試中慘敗。想像一下,人工智能解決複雜的編碼問題或研究生水平的科學問題——自2023年
