Wie man AIGC-Modelle besser, schneller und kostengünstiger trainieren und optimieren kann, ist zum größten Problem bei der Kommerzialisierung und Anwendungsexplosion von AIGC geworden.
Colossal-AI basiert auf der Anhäufung von Fachwissen in der Demokratisierung großer Modelle, Open Source und vollständigen Stable Diffusion-Pre-Training- und personalisierten Feinabstimmungslösungen, beschleunigt die Pre-Training-Zeit und reduziert die wirtschaftlichen Kosten um das 6,5-fache sowie die Reduzierung personalisierter Strafen -Hardwarekosten um das Siebenfache optimieren! Der Feinabstimmungsprozess kann auf der RTX 2070/3050 eines Personalcomputers schnell abgeschlossen werden, sodass AIGC-Modelle wie Stable Diffusion in Reichweite sind.
Open-Source-Adresse:
https://github.com/hpcaitech/ColossalAI
AIGC (AI-Generated Content) ist eines der heißesten Themen im aktuellen KI-Bereich. Insbesondere mit dem Aufkommen modalübergreifender Anwendungen textgenerierter Bilder, die durch Stable Diffusion, Midjourney, NovelAI, DALL-E usw. repräsentiert werden, ist AIGC populär geworden und hat große Aufmerksamkeit erregt.
Stabile Diffusion erzeugt Bilder
Da AIGC eine große Nachfrage in der Branche angeregt hat, gilt es als eine der wichtigen Richtungen der nächsten KI-Welle. Die Branche erwartet allgemein das Aufkommen AIGC-basierter Lösungen in Text, Audio, Bildvideo und Spielen, neue technologische Revolutionen und Killeranwendungen in technischen Szenarien wie dem Metaversum und dem Metaversum. Die erfolgreiche Kommerzialisierung von AIGC in relevanten Szenarien und der potenzielle Multi-Billionen-Dollar-Markt haben verwandte Startups zu Lieblingen des Kapitals gemacht. Beispielsweise haben Stability AI, Jasper usw. in nur ein oder zwei Jahren eine Finanzierung in Höhe von Hunderten Millionen Dollar erhalten seit ihrer Gründung und wurden zu Einhörnern befördert.
Der Maßstab und die Leistung von KI-Modellen nehmen gleichzeitig zu
Aber hohe Hardwareanforderungen und Schulungskosten behindern immer noch ernsthaft die schnelle Entwicklung der AIGC-Branche. Hervorragende Leistung in AIGC-Anwendungen basiert häufig auf großen Modellen wie GPT-3 oder Stable Diffusion und wird für bestimmte nachgelagerte Aufgaben und Anwendungen fein abgestimmt. Nehmen Sie als Beispiel die beliebte Stable Diffusion, obwohl die dahinter stehende Stabilitäts-KI noch nicht lange her ist. Sie unterhält mehr als 4.000 NVIDIA A100-GPU-Cluster und hat allein für die Stable Diffusion mehr als 50 Millionen US-Dollar an Betriebskosten ausgegeben Allein die v1-Version des Modells erfordert für dieses Training 150.000 A100-GPU-Stunden.
Die Idee des Diffusionsmodells (Diffusionsmodell) wurde erstmals in der Arbeit „Deep Unsupervised Learning using Nonequilibrium Thermodynamics“ (DDPM) aus dem Jahr 2015 vorgeschlagen und brachte sie auf eine neue Höhe Später basierend auf DALL-E 2 haben Imagen und Stable Diffusion des Diffusionsmodells bei der Generierung weitaus bessere Ergebnisse erzielt als herkömmliche generative Modelle wie Generative Adversarial Networks (GAN), Variable Differential Autoencoders (VAE) und Autoregressive Models (AR). Aufgaben.
Das Diffusionsmodell besteht aus zwei Prozessen: dem Vorwärtsdiffusionsprozess und dem Rückwärtsdiffusionsprozess. Der Vorwärtsdiffusionsprozess besteht darin, einem Bild schrittweise Gaußsches Rauschen hinzuzufügen, während der Rückwärtsgenerierungsprozess ein Entrauschungsprozess ist Das Rauschen wird mithilfe mehrerer U-Nets schrittweise entrauscht, bis ein Bild erzeugt wird, was ebenfalls Teil des Diffusionsmodelltrainings ist.
Latentes Diffusionsmodell
Im Vergleich zu herkömmlichen End-to-End-Deep-Learning-Modellen ist der Trainingsprozess des Diffusionsmodells neben dem Diffusionsmodell selbst zweifellos komplizierter ist außerdem ein Frozen CLIP Textcoder zur Eingabe von Textaufforderungen und eine Autoencoder-Implementierung zum Komprimieren hochauflösender Bilder in den latenten Raum (Latent Space) und zur Berechnung des Verlusts bei jedem Zeitschritt. Dies stellt größere Herausforderungen an den Grafikspeicheraufwand und die Rechengeschwindigkeit der Trainingslösung.
Optimierung vor dem Training
Für das Vortraining gilt im Allgemeinen, dass die Trainingsgeschwindigkeit umso schneller ist, je größer die Menge ist. Colossal-AI optimiert Cross-Attention-Berechnungen durch ZeRO, Gemini, Chunk-basierte Speicherverwaltungsstrategien und das Flash-Attention-Modul, wodurch der Speicheraufwand für das Training des Diffusionsmodells erheblich reduziert wird und Benutzer die Verwendung von Consumer-Grafikkarten mit 10G-Speicher (z B. RTX3080) Diffusionsmodell kann auf dedizierten Grafikkarten wie A100 trainiert werden, die das Training mit einer maximalen Einzelkarten-Batch-Größe von 256 direkt unterstützen können. Im Vergleich zu Stable-Diffusion-v1-1 kann das DistributedDataParallel (DDP)-Training von FP32 beschleunigt werden um das 6,5-fache. Dies bedeutet, dass die Schulungskosten in Millionenhöhe um das 6,5-fache gesenkt werden können, was die Schulungskosten und die Eintrittsbarriere der AIGC-Branche erheblich senkt!
Beschleunigung von Colossal-AI zu Stable Diffusion
Aufgrund des LAION-5B-Datensatzes, der für das Vortraining von Stable Diffusion verwendet wird und insgesamt 585 Milliarden Bild- und Textpaare enthält, In Kombination mit der Komplexität des Modells sind die Kosten für eine vollständige Vorschulung offensichtlich extrem hoch: Das Stabilitätsteam von Stable Diffusion gab mehr als 50 Millionen US-Dollar für die Bereitstellung von 4.000 A100-GPUs aus. Eine praktischere Option für die meisten AIGC-Spieler besteht darin, vorab trainierte Open-Source-Modellgewichte zur Feinabstimmung nachgelagerter Personalisierungsaufgaben zu verwenden.
Die Trainingsparallelitätsmethode, die in anderen vorhandenen Open-Source-Feinabstimmungslösungen verwendet wird, ist jedoch hauptsächlich DDP, was zu einer enormen Nutzung des Videospeichers während des Trainingsprozesses führt. Selbst die Feinabstimmung erfordert mindestens Grafiken der Spitzenklasse Karte RTX 3090 oder 4090 zu starten. Gleichzeitig bieten viele Open-Source-Trainingsframeworks derzeit keine vollständigen Trainingskonfigurationen und -skripte an, sodass Benutzer zusätzliche Zeit für mühsames Ausfüllen und Debuggen aufwenden müssen.
Im Gegensatz zu anderen Lösungen ist Colossal-AI die erste Lösung, die vollständige Trainingskonfigurationsparameter und Trainingsskripte gleichzeitig als Open Source bereitstellt, sodass Benutzer jederzeit die neueste Version des Segmentierungsmodells für neue nachgelagerte Aufgaben flexibler trainieren können Verwendung und breiterer Anwendungsbereich. Und da Colossal-AI die Optimierung des Videospeichers und andere Technologien einführt, kann es den Feinabstimmungsprozess schnell auf nur einer einzigen Consumer-Grafikkarte eines gewöhnlichen Personalcomputers (z. B. GeForce RTX 2070/3050 8 GB) abschließen Mit RTX 3090 oder 4090 können etwa die siebenfachen Hardwarekosten eingespart werden, wodurch die Schwelle und die Kosten für die Verwendung von AIGC-Modellen wie Stable Diffusion erheblich gesenkt werden, sodass Benutzer nicht mehr auf bestehende Gewichtsüberlegungen beschränkt sind und personalisierte Anpassungsdienste schnell und einfach abschließen können . Für Aufgaben, die nicht geschwindigkeitsabhängig sind, können Sie außerdem Colossal-AI NVMe verwenden, das kostengünstigen Festplattenspeicher nutzt, um den Grafikspeicherverbrauch zu reduzieren.
Speicherreduzierung von Colossal-AI auf stabile Diffusion
ZeRO + Gemini
Colossal-AI unterstützt die Verwendung der Zero Redundancy Optimizer (ZeRO)-Methode zur Beseitigung von Speicherredundanz mit Im Vergleich zu klassischen Datenparallelitätsstrategien kann es die Effizienz der Speichernutzung erheblich verbessern, ohne die Rechengranularität und Kommunikationseffizienz zu beeinträchtigen.
Colossal-AI führt den Chunk-Mechanismus ein, damit wir die Leistung von ZeRO weiter verbessern können. Eine Reihe von Parametern, die in der Reihenfolge der Operationen aufeinanderfolgende sind, werden in einem Chunk gespeichert (Chunk ist ein kontinuierlicher Abschnitt des Speicherplatzes), und jeder Chunk hat die gleiche Größe. Die Chunk-Methode zur Speicherorganisation kann eine effiziente Nutzung der Netzwerkbandbreite zwischen PCI-e und GPU-GPU gewährleisten, die Anzahl der Kommunikationen reduzieren und eine potenzielle Speicherfragmentierung vermeiden.
Chunk-Mechanismus
Darüber hinaus unterstützt der heterogene Speicherplatzmanager Gemini von Colossal-AI das Auslagern des Optimierungsstatus von der GPU auf die CPU, um GPU-Speichernutzung zu sparen. GPU-Speicher und CPU-Speicher (bestehend aus CPU-DRAM oder NVMe-SSD-Speicher) können gleichzeitig verwendet werden, um die Einschränkungen einer einzelnen GPU-Speicherwand zu überwinden und den Umfang des trainierbaren Modells weiter zu erweitern.
Verbesserung der Modellkapazität von Hardware durch ZeRO + Gemini
Flash Attention
LDM (Latent Diffusion Models) implementiert multimodales Training durch Einführung von Cross-Attention (Cross-Attention-Layer) in die Modellarchitektur. Dadurch kann das Diffusionsmodell Klassenbedingungen, Text-zu-Bild und Layout-zu-Bild flexibler unterstützen. Allerdings verursacht die Cross-Attention-Schicht im Vergleich zur CNN-Schicht des ursprünglichen Diffusionsmodells zusätzlichen Rechenaufwand, was die Trainingskosten erheblich erhöht.
Colossal-AI hat durch die Einführung des Flash-Aufmerksamkeitsmechanismus die Aufmerksamkeitsgeschwindigkeit erfolgreich um 104 % erhöht und den Spitzenspeicher des End-to-End-Trainings um 23 % reduziert. Flash Attention ist eine beschleunigte Version für die Aufmerksamkeit bei langen Sequenzen. Flatten wird verwendet, um die Anzahl der Speicherlese-/-schreibvorgänge zwischen GPU-Speicher mit hoher Bandbreite (HBM) zu reduzieren ungefähre Aufmerksamkeitsmethode.
Colossal-AI integriert auch gängige Optimierungstechnologien wie FP16 und Aktivierungs-Checkpoint. Aktivieren Sie beispielsweise Checkpoint-Funktionen, indem Sie Berechnungen gegen Speicher eintauschen. Es vermeidet die Speicherung aller Zwischenaktivierungen des gesamten Berechnungsdiagramms für die Rückwärtsberechnung, speichert keine Zwischenaktivierungen im Prüfpunktteil und berechnet sie stattdessen im Rückwärtsdurchlauf neu, wodurch der Videospeicher weiter reduziert wird. FP16 konvertiert die ursprünglichen 32-Bit-Gleitkommaoperationen in 16-Bit, ohne die Genauigkeit zu beeinträchtigen, wodurch die Nutzung des Videospeichers reduziert und die Recheneffizienz verbessert wird.
Anders als das übliche Open-Source-Projekt PyTorch basiert die aktuelle Hot-Stable-Diffusion auf PyTorch Lightning. PyTorch Lightning bietet eine einfache, benutzerfreundliche, flexible und effiziente High-Level-Schnittstelle für das beliebte Deep-Learning-Framework PyTorch und bietet den meisten KI-Forschern eine einfache und benutzerfreundliche High-Level-Abstraktion und macht so Deep Learning möglich Lernexperimente sind einfacher zu lesen und zu reproduzieren. Es wurden 20,5.000 Sterne gesammelt.
Auf Einladung von PyTorch Lightning wurde Colossal-AI als offizielle große Modelllösung von PyTorch Lightning integriert. Dank der leistungsstarken Kombination beider können KI-Forscher Diffusionsmodelle jetzt effizienter trainieren und nutzen. Am Beispiel des Trainings eines stabilen Diffusionsmodells kann mit nur wenig Code schnell begonnen werden.
from colossalai.nn.optimizer import HybridAdam from lightning.pytorch import trainer class MyDiffuser(LightningModule): ... def configure_sharded_model(self) -> None: # create your model here self.model = construct_diffuser_model(...) ... def configure_optimizers(self): # use the specified optimizer optimizer = HybridAdam(self.model.parameters(), self.lr) ... model = MyDiffuser() trainer = Trainer(accelerator="gpu", devices=1, precision=16, strategy="colossalai") trainer.fit(model)
Colossal-AI und PyTorch Lightning bieten auch gute Unterstützung und Optimierung für beliebte Modelle und Communities wie OPT und HuggingFace.
Colossal-AI Um den Bedürfnissen der Benutzer gerecht zu werden, durch kurzfristiges Training mit weniger Ressourcen Modelle mit ihrem eigenen Stil zu generieren, bietet Colossal-AI die Funktion der Feinabstimmung basierend auf Open-Source-Modellgewichte für stabile Diffusion auf HuggingFace. Benutzer müssen lediglich den Dataloader ändern, um ihren eigenen fein abgestimmten Datensatz zu laden und die Gewichte vor dem Training zu lesen. Sie müssen lediglich die Yaml-Datei zur Parameterkonfiguration ändern und das Trainingsskript ausführen, um ihr eigenes personalisiertes Modell auf ihrem PC zu optimieren.
model: target: ldm.models.diffusion.ddpm.LatentDiffusion params: your_sub_module_config: target: your.model.import.path params: from_pretrained: 'your_file_path/unet/diffusion_pytorch_model.bin' ... lightning: trainer: strategy: target: pytorch_lightning.strategies.ColossalAIStrategy params: ... python main.py --logdir /your_log_dir -t -b config/train_colossalai.yaml
Colossal-AI unterstützt auch die native Inferenzpipeline für stabile Diffusion. Nach Abschluss des Trainings oder der Feinabstimmung müssen Sie nur die Diffusorbibliothek direkt aufrufen und die gespeicherten Modellparameter laden, um die Inferenz direkt durchzuführen, ohne weitere Änderungen vorzunehmen Dies ist praktisch. Neue Benutzer sind mit dem Argumentationsprozess vertraut und Benutzer, die mit der Verwendung des ursprünglichen Frameworks vertraut sind, können schnell loslegen.
from diffusers import StableDiffusionPipeline pipe = StableDiffusionPipeline.from_pretrained( "your_ColoDiffusion_checkpoint_path" ).to("cuda") image = pipe('your prompt', num_inference_steps=50)["sample"][0] image.save('file path')
Die generierte Arbeit des obigen Inferenzprozesses
Der oben erwähnte Durchbruch bei der AIGC-Trainingsoptimierung, dargestellt durch Diffusion, basiert auf Colossal-AI, einem allgemeinen Deep-Learning-System für die Ära großer Modelle , das effiziente mehrdimensionale automatische Parallelisierung, heterogenes Speichermanagement, umfangreiche Optimierungsbibliotheken, adaptive Aufgabenplanung usw. verwendet, ermöglicht eine effiziente und schnelle Bereitstellung von KI-Großmodelltraining und -Inferenz und senkt die Kosten für KI-Großmodellanwendungen. Seit der Veröffentlichung als Open Source belegte Colossal-AI auf GitHub- und Papers With Code-Hotlists mehrfach den ersten Platz weltweit und erregte zusammen mit vielen Star-Open-Source-Projekten mit Zehntausenden von Stars im In- und Ausland Aufmerksamkeit! Nach strenger Prüfung durch internationale Experten wurde Colossal-AI erfolgreich als offizielles Tutorial für führende internationale KI- und HPC-Konferenzen wie SC, AAAI und PPoPP ausgewählt.
Colossal-AI-Anwendung: Bessere Lösung zur Vorhersage der Proteinstruktur
Colossal-AI-bezogene Lösungen wurden von namhaften Herstellern in den Bereichen autonomes Fahren, Cloud Computing, Einzelhandel, Medizin, Chips und anderen Branchen erfolgreich implementiert und waren es auch weithin gelobt. Für das Proteinstruktur-Vorhersagemodell AlphaFold in der biomedizinischen Industrie hat beispielsweise die auf Colossal-AI basierende Optimierungslösung FastFold die maximale Aminosäuresequenzlänge, die von einer einzelnen GPU abgeleitet werden kann, erfolgreich auf 10.000 überschritten und 99,9999 % der Proteine abgedeckt Nur ein Laptop-Computer kann 90 % der Proteine auflösen. Es kann den gesamten Schulungs- und Argumentationsprozess parallel weiter beschleunigen und hat vielen neuen Arzneimittelforschungs- und -entwicklungsunternehmen dabei geholfen, den Entwicklungsprozess zu verkürzen und die Forschungs- und Entwicklungskosten zu senken.
Open-Source-Adresse:
https://github.com/hpcaitech/ColossalAI
Das obige ist der detaillierte Inhalt vonDie Kosten für das Diffusions-Vortraining werden um das 6,5-fache reduziert, und die Kosten für die Feinabstimmung der Hardware werden um das 7-fache reduziert! Die vollständige Open-Source-Lösung Colossal-AI beschleunigt die Implementierung der AIGC-Industrie zu geringen Kosten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!