DeciDiffusion: Modell der latenten Text-zu-Bild-Diffusion
Einführung
Der Aufstieg von Text-zu-Bild-Modellen markiert einen transformativen Wandel im Bereich der künstlichen Intelligenz und eröffnet neue Möglichkeiten für kreativen Ausdruck und Kommunikation. Diese Modelle nutzen fortschrittliche Deep-Learning-Techniken, um auf der Grundlage von Texteingaben realistische und kontextrelevante Bilder zu generieren. Die Integration von natürlicher Sprachverarbeitung und Computer Vision hat den Weg für Anwendungen geebnet, die Textbeschreibungen interpretieren und in visuell ansprechende Darstellungen übersetzen können. Da sich diese Modelle ständig weiterentwickeln und verbessern, haben sie das Potenzial, verschiedene Branchen, darunter Design, Unterhaltung und Bildung, zu revolutionieren, indem sie eine nahtlose Brücke zwischen der Welt der Sprache und der Bilder schlagen.
DeciDiffusion ist ein hochmodernes Open-Source-Modell für die latente Text-zu-Bild-Diffusion, das auf einer Teilmenge des LAION-Datensatzes trainiert und auf dem LAION-ART-Datensatz verfeinert wurde. Dieses Diffusionsmodell mit 1,02 Milliarden Parametern übertrifft das Stable Diffusion v1.5 (SD) mit 1,07 Milliarden Parametern, das eine ähnliche Größe hat, und erreicht gleichzeitig eine gleichwertige Qualität bei der Bilderzeugung mit 40 % weniger Iterationen. Das Modell hat sich außerdem als dreimal schneller als Stable Diffusion v1.5 erwiesen, wenn es auf NVIDIA A10G-GPUs ausgeführt wird. Diese Leistung ist auf die fortschrittliche Neural Architecture Search Technology-Architektur des Modells zurückzuführen, die für optimale Effizienz entwickelt wurde.
DeciDiffusion-Leistungsbenchmarking mit SD (Quelle)
Die erweiterten Funktionen von DeciDiffusion sind umfassender als die von SD. Lassen Sie uns kurz die Auswirkungen von DeciDiffusion diskutieren.
Das Text-zu-Bild-Generierungsmodell birgt ein enormes Potenzial in den Bereichen Design, Kunst, Werbung, Inhaltserstellung und vielem mehr. Der Aufstieg dieser Technologie liegt in ihrer nahtlosen Fähigkeit, Text mühelos in lebendige Bilder umzuwandeln, was einen erheblichen Fortschritt in den KI-Fähigkeiten darstellt. Während SD als Open Source zahlreiche Innovationen vorangetrieben hat, tritt es aufgrund seiner anspruchsvollen Rechenanforderungen bei den praktischen Herausforderungen bei der Bereitstellung in den Hintergrund, obwohl der Aufstieg von Turbo-Modellen und der Destillation diese Annahme als falsch erweisen könnte.
Diese Herausforderungen führen zu spürbaren Latenz- und Kostenproblemen während der Schulung und Bereitstellung. Im Gegensatz dazu zeichnet sich DeciDiffusion durch eine überlegene Recheneffizienz aus, die ein reibungsloseres Benutzererlebnis und eine beeindruckende Reduzierung der Produktionskosten um fast 66 % gewährleistet. Das Ergebnis ist eine zugänglichere und praktikablere Landschaft für generative Text-zu-Bild-Anwendungen, die mit dem Modell im Vergleich zu anderen Latent-Diffusion-Modellen ausgeführt werden.
In diesem Artikel schauen wir uns an, was DeciDiffusion so leistungsstark und vielseitig macht, und zeigen es dann anhand einer praktischen Demonstration.
Voraussetzungen
- Python-Umgebung: Python 3.8 oder höher.
- Bibliotheken: PyTorch, Transformers und Diffusers (neueste Versionen).
- Hardware: NVIDIA-GPU (z. B. A100, H100) mit CUDA-Unterstützung für beschleunigtes Training und Inferenz.
- Grundkenntnisse: Verständnis von Diffusionsmodellen, Deep-Learning-Grundlagen und Modelloptimierungstechniken.
Modellarchitektur
DeciDiffusion 1.0, ein Text-zu-Bild-Generierungsmodell, baut auf der Kernarchitektur von Stable Diffusion auf und integriert Fortschritte wie das U-Net-NAS-Design von Deci. Diese Substitution optimiert das Modell für eine höhere Recheneffizienz, indem die Parameteranzahl reduziert wird, während der Variational Autoencoder (VAE) und der Text-Encoder von CLIP beibehalten werden.
U-Net-NAS
DeciDiffusion ist ebenfalls ein latentes Diffusionsmodell wie Stable Diffusion, die Architektur basiert jedoch auf U-Net-NAS. Latente Diffusionsmodelle sind probabilistische Frameworks, mit denen qualitativ hochwertige Bilder erzeugt werden können. Sie initiieren den Bilderzeugungsprozess, indem sie zufälliges Rauschen durch einen allmählichen Diffusionsprozess in realistische Bilder umwandeln. Die Besonderheit dieser Modelle liegt in der Anwendung des Diffusionsprozesses auf eine codierte latente Darstellung des Bildes und nicht auf die rohen Pixelwerte.
Hier sind die wichtigsten Schritte:
- Variational Auto-Encoder (VAE): Variational Auto-Encoder (VAE) ist eine AutoEncoder-Architektur, deren Codierungsverteilung während des Trainings einer Regularisierung unterzogen wird. Diese Regularisierung gewährleistet günstige Eigenschaften in seinem latenten Raum und erleichtert die Generierung neuer Daten. Der Begriff „variational“ leitet sich aus der starken Verbindung zwischen dieser Regularisierung und der Variationsinferenzmethode in der Statistik ab. Kurz gesagt, VAEs wandeln Bilder in latente Darstellungen um und umgekehrt. Während des Trainings wandelt der Encoder ein Bild in eine latente Version um, und der Decoder kehrt diesen Prozess sowohl beim Training als auch bei der Inferenz um.
- U-Net: Benannt nach seinem architektonischen Design, verfügt U-Net über ein „U“-förmiges Modell, das aus Faltungsschichten und zwei Netzwerken besteht – dem Encoder, gefolgt vom Decoder. Dieses Modell geht effektiv auf die Segmentierungsfragen „Was“ und „Wo“ ein. ”
- Text-Encoder: Dieser Encoder ist dafür verantwortlich, Textaufforderungen in latente Texteinbettungen umzuwandeln, die vom U-Net-Decoder weiter verwendet werden.
(a) U-Net-Architektur (b) Das U-artige Rückgrat der Nas-Unet-Architektur (Quelle)
In dieser Architektur werden zwei Arten von Zellarchitekturen definiert, DownSC und UpSC genannt, basierend auf einem U-ähnlichen Backbone. DeciDiffusion zeichnet sich durch seine einzigartige Funktion aus: die flexible Zusammensetzung jedes Blocks, die die Anzahl der ResNet- und Attention-Blöcke für Spitzenleistung bei minimalem Rechenaufwand optimiert. Durch die Übernahme des effizienten U-Net-NAS in DeciDiffusion, das sich durch weniger Parameter auszeichnet, reduziert das Modell den Rechenaufwand und macht es zu einer ressourceneffizienteren Alternative zu Stable Diffusion.
Das Modell wurde in 4 Phasen trainiert:
- Phase 1: Von Grund auf trainiert für 1,28 Millionen Schritte bei einer Auflösung von 256 x 256 unter Verwendung einer Teilmenge von 320 Millionen Samples aus LAION-v2.
- Phase 2: Das weitere Training umfasste 870.000 Schritte bei einer Auflösung von 512 x 512 für denselben Datensatz, um feinere Details zu erfassen.
- Phase 3: Durchführung eines Trainings für 65.000 Schritte unter Verwendung des Exponential Moving Average (EMA), eines zusätzlichen Lernratenplaners und der Einbeziehung „qualitativerer“ Daten.
- Phase 4: Feinabstimmung mithilfe einer 2 Millionen Beispiel-Teilmenge von LAION-ART.
Hardware-Anforderungen für die Schulung
Anforderungen
Phase 1
Phase 2-4
Hardware
8 x 8 x A100 (80 GB)
8 x 8 x H100 (80 GB)
Optimierer
AdamW
LAMM
Charge
8192
6144
Lernrate
1e-4
5e-3
Die Hardwareanforderungen für das Training von DeciDiffusion waren recht hoch und erforderten eine erhebliche Rechenleistung, um die damit verbundene intensive Verarbeitung zu bewältigen. Daher empfehlen wir die Verwendung eines GPU Droplet von DigitalOcean, um Ihren Workflow zu rationalisieren und die Leistung zu optimieren, ohne in kostspielige Infrastruktur zu investieren.
DeciDiffusion in Aktion
Befolgen Sie die Schritte, um dieses Modell zu verwenden und atemberaubende Bilder zu erstellen!
*Installieren Sie die erforderlichen Pakete
#install the packages using pip
!pip install --quiet git+https://github.com/huggingface/diffusers.git@d420d71398d9c5a8d9a5f95ba2bdb6fe3d8ae31f
!pip install --quiet ipython-autotime
!pip install --quiet transformers==4.34.1 accelerate==0.24.0 safetensors==0.4.0
!pip install --quiet ipyplot
%load_ext autotime
*Importieren Sie die Bibliotheken und erforderlichen Pakete
#import necessary libraries
from diffusers import StableDiffusionPipeline, DiffusionPipeline
import torch
import ipyplot
import time
*Lädt den vorab trainierten Prüfpunkt „DeciDiffusion-v1-0“ für eine Stable Diffusion-Pipeline. Führen Sie das Modell mit zwei Eingabeaufforderungen aus. Die resultierenden Bilder werden in den Variablen „img“ und „img2“ gespeichert.
#set the device and load the pre-trained model
device = 'cuda' if torch.cuda.is_available() else 'cpu'
checkpoint = "Deci/DeciDiffusion-v1-0"
#biuld the decidiffusion pipeline
pipeline = StableDiffusionPipeline.from_pretrained(checkpoint, custom_pipeline=checkpoint, torch_dtype=torch.float16)
pipeline.unet = pipeline.unet.from_pretrained(checkpoint, subfolder='flexible_unet', torch_dtype=torch.float16)
pipeline = pipeline.to(device)
#generate images by passing prompt
img = pipeline(prompt=['A photo of an astronaut riding a horse on Mars']).images[0]
img2 = pipeline(prompt=['A big owl with bright shinning eyes']).images[0]
*Bilder erstellt von DeciDiffusion
Vergleich von DeciDiffusion mit Stable Diffusion v1.5
Zeit, die das SD-Modell zum Generieren der Bilder benötigt:
Von SD generierte Bilder. Die Bilderstellungszeiten betrugen 2,96, 2,93, 2,94 und 2,93 Sekunden
Zeit, die das DeciDiffusion-Modell zum Generieren der Bilder benötigt:
Von DeciDiffusion generierte Bilder. Die Bilderstellungszeiten betrugen 1,11, 1,08, 1,09 und 1,08 Sekunden.
Die verbesserte Latenz von DeciDiffusion ist das Ergebnis von Fortschritten in der Architektur, effizienten Trainingstechniken, die die Probeneffizienz steigern, und die Integration von Infery, dem benutzerfreundlichen SDK von Deci, kann diese noch weiter steigern. Diese Kombination führt zu erheblichen Kosteneinsparungen bei Inferenzvorgängen. Erstens bietet es Flexibilität bei der Hardwareauswahl und ermöglicht den Übergang von High-End-A100/H100-GPUs zum preisgünstigeren A10G ohne Leistungseinbußen (wir empfehlen weiterhin die Verwendung eines A100-80G oder H100). Darüber hinaus erweist sich DeciDiffusion im Vergleich auf derselben Hardware als äußerst kosteneffektiv, mit einer Kostenreduzierung von 66 % im Vergleich zu Stable Diffusion pro 10.000 generierten Bildern.
Abschließende Gedanken
DeciDiffusion stellt einen entscheidenden Fortschritt für generative KI-Anwendungen dar. Dies optimiert nicht nur Echtzeitprojekte in der Content-Erstellung und Werbung, sondern führt auch zu erheblichen Einsparungen bei den Betriebskosten. In diesem Artikel haben wir DeciDiffusion mit SD verglichen und können daraus schließen, dass das Modell schneller und effizienter als SD sowohl trainiert als auch für Inferenzen verwendet werden kann. Es ist jedoch erwähnenswert, dass das Modell nicht dazu gedacht ist, genaue oder wahrheitsgetreue Darstellungen von Personen oder Ereignissen zu erzeugen. Daher geht der Einsatz für solche Zwecke über die vorgesehenen Möglichkeiten hinaus. Außerdem hat das Modell seine eigenen Einschränkungen. Hier sind einige davon:
- Das Modell ist nicht in der Lage, vollständig fotorealistische Bilder zu erzeugen. Artefakte sind häufig
- Komplexe Kompositionen stellen immer noch eine Herausforderung für das Modell dar und der Aspekt der automatischen Kodierung des Modells ist immer noch ein Verlust.
- Die Erzeugung perfekter Gesichter und menschlicher Figuren ist tatsächlich eine Herausforderung für jedes Diffusionsmodell.
- DeciDiffusion ist in erster Linie für englische Untertitel optimiert und ist bei anderen Sprachen nicht wirksam.
Dennoch hat das Modell seine eigenen Vorteile, insbesondere wenn es um Rechenleistung und Kosteneffizienz geht. Zusammen mit diesem Artikel haben wir zwei Notebooks bereitgestellt, die auf DeciDiffusion und Stable Diffusion basieren. Wir empfehlen Benutzern, diese Notizbücher in Verbindung mit dem Artikel für ein bereicherndes Erlebnis zu verwenden.
Modelldetails und Ressourcen
- Modell entwickelt von: Deci
- Modelltyp: Latent Diffusion-basiertes Text-zu-Bild-Generierungsmodell
- Code-Lizenz: Der Code in diesem Repository wird unter der Apache 2.0-Lizenz veröffentlicht
- Gewichtslizenz: Die Gewichte werden unter der CreativeML Open RAIL+±M-Lizenz veröffentlicht
- DeciDiffusion umarmendes Gesicht: https://huggingface.co/Deci/DeciDiffusion-v1-0