Heim > Technologie-Peripheriegeräte > KI > Wie führe ich das Flussmodell auf 8 GB GPU -RAM aus? - Analytics Vidhya

Wie führe ich das Flussmodell auf 8 GB GPU -RAM aus? - Analytics Vidhya

Lisa Kudrow
Freigeben: 2025-03-20 10:53:11
Original
403 Leute haben es durchsucht

Das kürzlich veröffentlichte Flussmodell von Black Forest Labs hat für seine beeindruckenden Fähigkeiten zur Bildungsgenerierung an Popularität gewonnen. Die Größe verhinderte jedoch zunächst die Verwendung bei Standard -Verbraucherhardware. Diese Einschränkung hat die Nutzung von API -Diensten angeregt, um die lokale Modellbelastung zu vermeiden. Die On-Premise-Bereitstellung blieb jedoch aufgrund der GPU-Anforderungen kostspielig. Glücklicherweise unterstützt die Diffusors -Bibliothek von Hugging Face nun die Quantisierung über BitsandBytes und ermöglicht einen Flussinferenz auf Maschinen mit nur 8 GB GPU -RAM.

Wie führe ich das Flussmodell auf 8 GB GPU -RAM aus? - Analytics Vidhya

Lernziele:

  • Konfigurieren Sie Abhängigkeiten für die Verwendung von Fluss in einer Colab -Umgebung.
  • Codieren Sie Texteingabeaufforderungen mit einem 4-Bit-quantisierten Textcodierer für die Speichereffizienz.
  • Implementieren Sie maßgeschneiderte Techniken zum Laden und Ausführen von Bildgenerierungsmodellen in gemischter Präzision.
  • Generieren Sie Bilder aus Texteingabeaufforderungen mit der Flux -Pipeline in Colab.

Dieser Artikel ist Teil des Datenwissenschaftsblogathons.

Inhaltsverzeichnis:

  • Lernziele
  • Was ist Fluss?
  • Warum ist die Quantisierung wichtig?
    • Quantisierung mit BitsandBytes
    • Wie funktioniert Bitsandbytes?
  • Ausführen von Fluss auf Verbraucherhardware
    • Schritt 1: Umgebungsaufbau
    • Schritt 2: GPU -Speicherverwaltung
    • Schritt 3: Laden des 4-Bit-T5-Text-Encoders
    • Schritt 4: Erzeugen von Texteinbettungen
    • Schritt 5: Laden des 4-Bit-Transformators und der VAE
    • Schritt 6: Bildgenerierung
  • Die Zukunft der Bildung von On-Device-Bildungen
  • Abschluss
    • Key Takeaways
  • Häufig gestellte Fragen

Was ist Fluss?

Fluss, der von Schwarzwaldlabors (den Schöpfer stabiler Diffusion) entwickelt wurde, stellt einen signifikanten Fortschritt in Text-zu-Image-Modellen dar. Es baut auf einer stabilen Diffusion auf und bietet eine verbesserte Leistung und Ausgangsqualität. Obwohl es anfänglich ressourcenintensiv ist, ermöglichen Optimierungen eine effiziente Ausführung der Verbraucherhardware. Dieser Artikel zeigt, wie die Quantisierung die Zugänglichkeit von Fluss verbessert. Das folgende Bild zeigt den Kompromiss zwischen kreativem Potenzial und Rechenkosten.

Wie führe ich das Flussmodell auf 8 GB GPU -RAM aus? - Analytics Vidhya

Flux verfügt über mehrere wichtige architektonische Komponenten:

  • Zwei vorgebreitete Textcodierer (Clip und T5): Diese Encoder verbessern das Verständnis und die Übersetzung von Text in Bilder.
  • Transformator-basiertes DIT-Modell: Dieses beengende Rückgrat nutzt Transformatoren für Effizienz und Genauigkeit.
  • Variational Auto-Ccoder (VAE): Die Verarbeitung im latenten Raum reduziert die Rechenanforderungen bei der Aufrechterhaltung der Bildqualität.

Flux ist in mehreren Versionen erhältlich: Flux-Schmnell (Open-Source), Flux-Dev (offen, mit einer restriktiveren Lizenz) und Flux-Pro (Closed-Source, api-zugänglich).

Wie führe ich das Flussmodell auf 8 GB GPU -RAM aus? - Analytics Vidhya

Warum ist die Quantisierung wichtig?

Quantisierung, eine Technik zur Reduzierung der Modellgröße durch Speichern von Parametern mit weniger Bits, ist entscheidend, um große Modelle auf begrenzter Hardware auszuführen. Obwohl es in der Bilderzeugung weniger verbreitet ist, reduziert es den Speicherpfotenpunkt ohne wesentliche Leistungsverlust erheblich. Neuronale Netzwerkparameter werden typischerweise in 32 Bit gespeichert, die Quantisierung kann diese auf 4 Bit reduzieren.

Quantisierung mit BitsandBytes

Die Bitsandbytes-Bibliothek ermöglicht eine effiziente K-Bit-Quantisierung für Pytorch. Die Integration in die Diffusors -Bibliothek macht den Lauffluss auf 8 GB GPUs möglich.

Wie funktioniert Bitsandbytes?

BitsandBytes quantisiert sich auf 8 und 4-Bit-Präzision. 8-Bit-Quantisierung behandelt Ausreißer unterschiedlich, um die Leistungsverschlechterung zu minimieren. Die 4-Bit-Quantisierung komprimiert das Modell, das häufig mit Qlora zur Feinabstimmung verwendet wird.

Ausführen von Fluss auf Verbraucherhardware

Schritt 1: Umgebungsaufbau

Stellen Sie eine GPU-fähige Umgebung sicher (z. B. Nvidia T4/L4 oder Google Colab). Installieren Sie die erforderlichen Pakete:

 !
!
!
Nach dem Login kopieren

Abhängigkeiten importieren:

 Diffusoren importieren
Importtransformatoren
Bitsandbytes als BNB importieren
von Diffusoren importieren Fluxpipeline, FluxTransformer2DModel
aus Transformatoren importieren t5encodermodel
Taschenlampe importieren
GC importieren
Nach dem Login kopieren

Schritt 2: GPU -Speicherverwaltung

Definieren Sie eine Funktion, um den GPU -Speicher zwischen Modelllasten zu löschen:

 Def Flush ():
    gc.collect ()
    fackler.cuda.emppty_cache ())
    fackler.cuda.reset_max_memory_allocated ()
    fackler.cuda.reset_peak_memory_stats ()

spülen()
Nach dem Login kopieren

Schritt 3: Laden des 4-Bit-T5-Text-Encoders

Laden Sie den T5-Encoder mit 4-Bit-Quantisierung:

 CKPT_ID = "Black-Forest-Labs/Flux.1-Dev"
CKPT_4bit_id = "HF-Internal-Test/Flux.1-dev-nf4-pkg"
Eingabeaufforderung = "Ein süßer Hund in Paris Fotoshooting"

text_encoder_2_4bit = t5encodermodel.from_pretraed (
    CKPT_4bit_id,
    subdolder = "text_encoder_2",
)
Nach dem Login kopieren

Schritt 4: Erzeugen von Texteinbettungen

Codieren die Eingabeaufforderung mit dem quantisierten Encoder:

 pipeline = fluxpipeline.from_pretrated (
    "Black-Forest-Labs/Flux.1-Dev",
    text_encoder_2 = text_encoder_2_4bit,
    Transformator = keine,
    vae = keine,
    fackel_dtype = fackel.float16,
)

mit fackel.no_grad ():
    Eingabeaufforderung_embeds, Pooled_prompt_embeds, text_ids = pipeline.encode_prompt (
        Eingabeaufforderung = Eingabeaufforderung, Eingabeaufforderung_2 = Keine, max_sequence_length = 256
    )

Del Pipeline
spülen()
Nach dem Login kopieren

Schritt 5: Laden des 4-Bit-Transformators und der VAE

Laden Sie den Transformator und VAE im 4-Bit-Modus:

 Transformator_4bit = FluxTransformer2DModel.from_Pretrained (CKPT_4bit_id, SubFolder = "Transformator")
pipeline = fluxpipeline.from_pretrated (
    CKPT_ID,
    text_encoder = keine,
    text_encoder_2 = keine,
    Tokenizer = keine,
    tokenizer_2 = keine,
    Transformator = Transformator_4bit,
    fackel_dtype = fackel.float16,
)

pipeline.enable_model_cpu_offload ())
Nach dem Login kopieren

Schritt 6: Bildgenerierung

Generieren Sie das Bild:

 print ("Denoising laufen lassen.")
Höhe, Breite = 512, 768
Bilder = Pipeline (
    forderung_embeds = forderd_embeds,
    Pooled_prompt_embeds = Pooled_prompt_embeds,,
    num_inference_steps = 50,
    GUITEL_SCALE = 5.5,
    Höhe = Höhe,
    Breite = Breite,
    output_type = "pil",
) .images

Bilder [0] 
Nach dem Login kopieren

Wie führe ich das Flussmodell auf 8 GB GPU -RAM aus? - Analytics Vidhya

Die Zukunft der Bildung von On-Device-Bildungen

Quantisierung und effiziente Modellbehandlung bringen leistungsstarke KI für Verbraucherhardware und demokratisierten den Zugriff auf eine fortschrittliche Bildgenerierung.

Abschluss

Der Fluss in Kombination mit der Quantisierung ermöglicht eine qualitativ hochwertige Bildgenerierung bei 8 GB GPUs. Dieser Fortschritt macht eine ausgefeilte KI für ein breiteres Publikum zugänglich.

Wichtigste Imbiss:

  • Der Fluss läuft in Colab effizient unter Verwendung von 4-Bit-Quantisierung und gemischter Präzision.
  • diffusers und transformers vereinfachen die Bilderzeugung.
  • Die effektive Speicherverwaltung ermöglicht eine große Modellausführung für begrenzte Ressourcen.

Häufig gestellte Fragen (wie original, aber neu formatiert für eine bessere Lesbarkeit)

Q1. Zweck der 4-Bit-Quantisierung? Die 4-Bit-Quantisierung reduziert den Speicherverbrauch und ermöglicht es, dass große Modelle wie Fluss effizient auf begrenzten Ressourcen ausgeführt werden.

Q2. Ändern der Textaufforderung? Ersetzen Sie die prompt durch die gewünschte Textbeschreibung.

Q3. Bildqualität/Stil anpassen? Passen Sie num_inference_steps (Qualität) und guidance_scale (Eingabeaufforderung) im Pipeline -Aufruf an.

Q4. Speicherfehler in Colab bearbeiten? Gewährleistung der GPU-Verwendung, der 4-Bit-Quantisierung und der gemischten Präzision. Erwägen Sie, num_inference_steps zu senken oder CPU -Offloading zu verwenden.

Q5. Das Skript lokal ausführen? Ja, aber sicherstellen, dass ausreichende GPU -Ressourcen und -gedächtnissen sicherstellen.

Das obige ist der detaillierte Inhalt vonWie führe ich das Flussmodell auf 8 GB GPU -RAM aus? - Analytics Vidhya. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage