首頁 科技週邊 人工智慧 我如何在8GB GPU RAM上運行通量模型? - 分析Vidhya

我如何在8GB GPU RAM上運行通量模型? - 分析Vidhya

Mar 20, 2025 am 10:53 AM

Black Forest Labs最近發布的Flux模型因其令人印象深刻的圖像產生功能而廣受歡迎。但是,其尺寸最初阻止了其在標準消費硬件上的使用。此限制促使使用API​​服務以避免本地模型加載。但是,由於GPU的要求,本地部署的成本仍然很高。幸運的是,擁抱Face的擴散器庫現在通過BitsandBytes支持量化,從而可以在僅8GB GPU RAM的機器上進行通量推斷。

我如何在8GB GPU RAM上運行通量模型? - 分析Vidhya

學習目標:

  • 配置依賴關係,用於在Colab環境中使用通量。
  • 使用4位量化的文本編碼器編碼文本提示,以提高內存效率。
  • 實現保存內存的技術,以混合精度加載和運行圖像生成模型。
  • 使用COLAB中的通量管道從文本提示中生成圖像。

本文是數據科學博客馬拉鬆的一部分。

目錄:

  • 學習目標
  • 什麼是通量?
  • 為什麼量化很重要?
    • 用bitsandbytes進行量化
    • BitsandBytes如何工作?
  • 在消費者硬件上運行通量
    • 步驟1:環境設置
    • 步驟2:GPU內存管理
    • 步驟3:加載4位T5文本編碼器
    • 步驟4:生成文本嵌入
    • 步驟5:加載4位變壓器和VAE
    • 步驟6:圖像生成
  • 設備圖像生成的未來
  • 結論
    • 關鍵要點
  • 常見問題

什麼是通量?

Black Forest Labs(穩定擴散的創造者)開發的Flux代表了文本到圖像模型的重大進步。它以穩定的擴散為基礎,提供了提高的性能和輸出質量。雖然最初是資源密集型的,但優化允許對消費者硬件有效執行。本文演示了量化如何增強通量的可訪問性。下圖說明了創意潛力和計算成本之間的權衡。

我如何在8GB GPU RAM上運行通量模型? - 分析Vidhya

Flux擁有幾個關鍵的建築組件:

  • 兩個預訓練的文本編碼器(剪輯和T5):這些編碼器改善了文本及時理解和轉換為圖像。
  • 基於變壓器的DIT模型:這種脫氧主鏈利用變壓器提高效率和準確性。
  • 變性自動編碼器(VAE):潛在空間中的處理可以減少計算需求,同時保持圖像質量。

通量有多種版本:Flux-Schnell(開源),Flux-DEV(開放,具有更限制的許可)和Flux-Pro(封閉消息,可訪問)。

我如何在8GB GPU RAM上運行通量模型? - 分析Vidhya

為什麼量化很重要?

量化是一種通過使用較少位來存儲參數來降低模型大小的技術,對於在有限的硬件上運行大型型號至關重要。雖然在圖像生成中不太常見,但它會大大降低記憶足跡而沒有大量性能損失。神經網絡參數通常存儲在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] 
登入後複製

我如何在8GB GPU RAM上運行通量模型? - 分析Vidhya

設備圖像生成的未來

量化和高效的模型處理為消費者硬件帶來了強大的AI,使對高級圖像生成的訪問民主化。

結論

通量結合量化,可以在8GB GPU上產生高質量的圖像生成。這一進步使更加精緻的AI可以被更廣泛的受眾訪問。

關鍵要點:

  • 通量使用4位量化和混合精度在Colab中有效運行。
  • diffuserstransformers簡化了圖像生成。
  • 有效的內存管理可以對有限的資源進行大型模型執行。

經常詢問的問題(與原始問題相同,但重新格式化以提高可讀性)

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中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

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

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

熱門話題

Java教學
1655
14
CakePHP 教程
1413
52
Laravel 教程
1306
25
PHP教程
1252
29
C# 教程
1226
24
開始使用Meta Llama 3.2 -Analytics Vidhya 開始使用Meta Llama 3.2 -Analytics Vidhya Apr 11, 2025 pm 12:04 PM

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

10個生成AI編碼擴展,在VS代碼中,您必須探索 10個生成AI編碼擴展,在VS代碼中,您必須探索 Apr 13, 2025 am 01:14 AM

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

AV字節:Meta' llama 3.2,Google的雙子座1.5等 AV字節:Meta' llama 3.2,Google的雙子座1.5等 Apr 11, 2025 pm 12:01 PM

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

向員工出售AI策略:Shopify首席執行官的宣言 向員工出售AI策略:Shopify首席執行官的宣言 Apr 10, 2025 am 11:19 AM

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

GPT-4O vs OpenAI O1:新的Openai模型值得炒作嗎? GPT-4O vs OpenAI O1:新的Openai模型值得炒作嗎? Apr 13, 2025 am 10:18 AM

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

視覺語言模型(VLMS)的綜合指南 視覺語言模型(VLMS)的綜合指南 Apr 12, 2025 am 11:58 AM

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

如何在SQL中添加列? - 分析Vidhya 如何在SQL中添加列? - 分析Vidhya Apr 17, 2025 am 11:43 AM

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

閱讀AI索引2025:AI是您的朋友,敵人還是副駕駛? 閱讀AI索引2025:AI是您的朋友,敵人還是副駕駛? Apr 11, 2025 pm 12:13 PM

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

See all articles