Heim >Technologie-Peripheriegeräte >KI >Colossal-AI unterstützt nahtlos die Hugging Face-Community und beschleunigt problemlos große Modelle zu geringen Kosten
Große Modelle sind zu einem Trend im KI-Kreis geworden, der nicht nur die großen Leistungslisten erobert, sondern auch viele interessante Anwendungen hervorbringt. Beispielsweise wird Copilot, ein von Microsoft und OpenAI entwickeltes Tool zur automatischen Vervollständigung von Codevorschlägen, zum besten Assistenten für Programmierer und verbessert die Arbeitseffizienz.
OpenAI hat gerade DALL-E 2 veröffentlicht, ein Bildmodell, das gefälschten und echten Text generieren kann, und Google hat sofort Imagen veröffentlicht. Auch in Bezug auf große Modelle sind große Unternehmen ziemlich beeindruckend, nicht schlechter als CV-Rankings .
Beispiel für die Text-zu-Bild-Generierung „Eine griechische Statue, die von einer Katze zum Stolpern gebracht wird“ (die beiden Spalten auf der linken Seite sind Imagen, die beiden Spalten auf der rechten Seite sind DALL·E 2) Die magische Leistung, die durch die hervorgerufen wird Anstieg der Modellmarken Der Umfang der vorab trainierten Modelle ist in den letzten Jahren explosionsartig gestiegen. Das Training oder sogar die Feinabstimmung großer Modelle erfordert jedoch sehr hohe Hardwarekosten, die oft Dutzende oder Hunderte von GPUs erfordern. Darüber hinaus ist es auch schwierig, mit bestehenden Deep-Learning-Frameworks wie PyTorch und TensorFlow sehr große Modelle effektiv zu handhaben, und in der Regel sind professionelle KI-Systemingenieure erforderlich, um bestimmte Modelle anzupassen und zu optimieren. Noch wichtiger ist, dass nicht jedes Labor und Forschungs- und Entwicklungsteam jederzeit in der Lage ist, große GPU-Cluster aufzurufen, um große Modelle zu verwenden, ganz zu schweigen von einzelnen Entwicklern, die nur über eine Grafikkarte verfügen. Obwohl das große Modell große Aufmerksamkeit erregt hat, ist es aufgrund der hohen Eintrittsbarriere für die Öffentlichkeit „außer Reichweite“.
Der Hauptgrund für die erhöhten Kosten bei der Verwendung großer Modelle ist die Beschränkung des Videospeichers. Obwohl die GPU-Berechnung schnell ist, ist ihre Speicherkapazität begrenzt und kann keine großen Modelle aufnehmen. Um dieses Problem zu lösen, verwendet Colossal-AI ein heterogenes Speichersystem, um sowohl GPU-Speicher als auch billigen CPU-Speicher effizient zu nutzen. Es kann bis zu 18 Milliarden Parameter-GPT auf einem persönlichen PC mit nur einer GPU trainieren, was die Modellkapazität um erhöhen kann 10 Es reduziert die Schwelle für nachgelagerte Aufgaben und Anwendungsbereitstellungen wie die Feinabstimmung und Inferenz großer KI-Modelle erheblich und kann problemlos auf eine groß angelegte Verteilung ausgeweitet werden. Hugging Face hat der Deep-Learning-Community die Implementierung von mehr als 50.000 KI-Modellen ermöglicht, darunter große Modelle wie GPT und OPT, und ist mittlerweile zu einer der beliebtesten KI-Bibliotheken geworden.
Colossal-AI unterstützt nahtlos das Hugging Face-Community-Modell und macht große Modelle für jeden Entwickler erreichbar. Als nächstes nehmen wir das von Meta veröffentlichte OPT für große Modelle als Beispiel, um zu zeigen, wie man mit Colossal-AI durch einfaches Hinzufügen einiger Codezeilen ein kostengünstiges Training und eine Feinabstimmung großer Modelle erreichen kann.
Open-Source-Adresse: https://github.com/hpcaitech/ColossalAI Kostengünstiges beschleunigtes großes Modell OPTOPT Der vollständige Name des Modells OPT lautet Open Pretrained Transformer, eine große Version des von veröffentlichten Benchmarks GPT-3 Meta (Facebook) AI Lab Scale Transformer-Modell. Im Vergleich zu GPT-3, für das OpenAI keine Modellgewichte offengelegt hat, hat Meta AI alle Codes und Modellgewichte großzügig als Open Source bereitgestellt, was die Demokratisierung großer KI-Modelle erheblich vorangetrieben hat und jeder Entwickler auf dieser Grundlage nachgelagerte Aufgaben entwickeln kann. Als Nächstes verwenden wir die vorab trainierten Gewichte des von Hugging Face bereitgestellten OPT-Modells, um die Casual Language Modeling zu verfeinern. Hinzufügen einer Konfigurationsdatei Um die leistungsstarken Funktionen in Colossal-AI nutzen zu können, müssen Benutzer die Code-Trainingslogik nicht ändern. Sie müssen lediglich eine einfache Konfigurationsdatei hinzufügen, um dem Modell die gewünschten Funktionen wie gemischte Präzision, Gradientenakkumulation usw. zu verleihen. mehrdimensionales paralleles Training, redundante Speicheroptimierung usw. Auf einer GPU müssen wir am Beispiel des heterogenen Trainings nur relevante Konfigurationselemente zur Konfigurationsdatei hinzufügen. Unter anderem bestimmt tensor_placement_policy unsere heterogene Trainingsstrategie. Dieser Parameter kann cuda, cpu und auto sein. Jede Strategie hat unterschiedliche Vorteile:
Allgemeine Benutzer müssen nur die automatische Strategie auswählen, und Colossal-AI wählt automatisch und dynamisch in Echtzeit die beste heterogene Strategie aus, um die Recheneffizienz zu maximieren.
from colossalai.zero.shard_utils import TensorShardStrategy<br><br><br>zero = dict(model_config=dict(shard_strategy=TensorShardStrategy(),<br>tensor_placement_policy="auto"),<br>optimizer_config=dict(gpu_margin_mem_ratio=0.8)
Run Start Nachdem die Konfigurationsdatei fertig ist, müssen wir nur noch ein paar Codezeilen einfügen, um die deklarierte neue Funktion zu starten. Verwenden Sie zunächst über eine Codezeile die Konfigurationsdatei, um Colossal-AI zu starten, initialisiert automatisch die verteilte Umgebung, liest die relevante Konfiguration und fügt dann automatisch die Funktionen in der Konfiguration in das Modell, den Optimierer und andere Komponenten ein .
colossalai.launch_from_torch(config='./configs/colossalai_zero.py')
Als nächstes können Benutzer wie gewohnt Datensätze, Modelle, Optimierer, Verlustfunktionen usw. definieren, beispielsweise direkt mit nativem PyTorch-Code. Platzieren Sie beim Definieren des Modells einfach das Modell unter ZeroInitContext und initialisieren Sie es. Im Beispiel verwenden wir das OPTForCausalLM-Modell und vorab trainierte Gewichte, die von Hugging Face bereitgestellt werden, um den Wikitext-Datensatz zu optimieren.
with ZeroInitContext(target_device=torch.cuda.current_device(), <br>shard_strategy=shard_strategy,<br>shard_param=True):<br>model = OPTForCausalLM.from_pretrained(<br>'facebook/opt-1.3b'<br>config=config<br>)
Dann rufen Sie einfach colossalai.initialize auf, um die in der Konfigurationsdatei definierten heterogenen Speicherfunktionen einheitlich in die Trainings-Engine einzuspeisen und die entsprechenden Funktionen zu starten.
engine, train_dataloader, eval_dataloader, lr_scheduler = colossalai.initialize(model=model,<br> optimizer=optimizer,<br> criterion=criterion,<br> train_dataloader=train_dataloader,<br> test_dataloader=eval_dataloader,<br> lr_scheduler=lr_scheduler)
Der Vorteil ist bei einer einzelnen GPU erheblich, Colossal-AI verwendet eine automatisierte Auto-Strategie und zeigt erhebliche Vorteile bei verschiedenen Modellgrößen im Vergleich zur ZeRO-Offloading-Strategie von bis zu 40 % möglich. Herkömmliche Deep-Learning-Frameworks wie PyTorch sind nicht mehr in der Lage, so große Modelle auf einer einzigen GPU auszuführen.
Für paralleles Training mit 8 GPUs muss Colossal-AI nur -nprocs 8 zum Startbefehl hinzufügen, um dies zu erreichen! Das Geheimnis dieser bedeutenden Verbesserungen liegt im effizienten heterogenen Speicherverwaltungssubsystem von Colossal-AI, Gemini. Vereinfacht ausgedrückt: Während des Modelltrainings heizt Gemini in den ersten Schritten vor und sammelt Informationen zum Speicherverbrauch im dynamischen Berechnungsdiagramm von PyTorch. Nach Abschluss des Aufwärmvorgangs und vor der Berechnung eines Operators verwendet es die gesammelten Speichernutzungsdatensätze reserviert den von diesem Operator benötigten Spitzenspeicher auf dem Computergerät und verschiebt gleichzeitig einige Modelltensoren vom GPU-Speicher in den CPU-Speicher.
Der integrierte Speichermanager von Gemini markiert jeden Tensor mit Statusinformationen, einschließlich HOLD, COMPUTE, FREE usw. Basierend auf der dynamisch abgefragten Speichernutzung wird dann der Tensorstatus kontinuierlich dynamisch konvertiert und die Tensorposition angepasst. Im Vergleich zur statischen Aufteilung von DeepSpeeds ZeRO Offload kann Colossal-AI Gemini GPU-Speicher und CPU-Speicher effizienter nutzen, um ein Maximierungsmodell zu erreichen Kapazität und Gleichgewichtstrainingsgeschwindigkeit, wenn die Hardware extrem begrenzt ist.
Für die repräsentative GPT großer Modelle reicht die Verwendung von Colossal-AI auf einem gewöhnlichen Gaming-Laptop mit RTX 2060 6 GB aus, um bis zu 1,5 Milliarden Parametermodelle zu trainieren; für einen Personal Computer mit RTX3090 24 GB ist dies direkt möglich Trainieren Sie 180 Modelle mit Hunderten Millionen Parametern; Colossal-AI kann auch erhebliche Verbesserungen für professionelle Computerkarten wie Tesla V100 zeigen. Einen Schritt weiter gehen: Bequeme und effiziente parallele Erweiterung. Die parallel verteilte Technologie ist ein wichtiges Mittel, um das Modelltraining weiter zu beschleunigen. Wenn Sie das größte und modernste KI-Modell der Welt in kürzester Zeit trainieren möchten, kommen Sie trotzdem nicht darauf verzichten können effiziente verteilte parallele Erweiterung. Angesichts der Schwachstellen bestehender Lösungen wie begrenzte Paralleldimensionen, geringe Effizienz, schlechte Vielseitigkeit, schwierige Bereitstellung und mangelnde Wartung ermöglicht Colossal-AI Benutzern eine effiziente und schnelle Bereitstellung mit nur minimalen Änderungen durch Technologien wie effiziente Multi- Dimensionsparallelität und heterogenes KI-Training für große Modelle. Beispielsweise können komplexe Parallelstrategien, die Datenparallelität, Pipeline-Parallelität, 2,5-dimensionale Tensor-Parallelität usw. nutzen, automatisch mit einfachen Deklarationen implementiert werden. Colossal-AI muss nicht wie andere Systeme in den Code eingreifen und komplexe zugrunde liegende Logik manuell handhaben und Rahmenwerke.
Python<br>parallel = dict(<br>pipeline=2,<br>tensor=dict(mode='2.5d', depth = 1, size=4)<br>)
Insbesondere für sehr große KI-Modelle wie GPT-3 benötigt Colossal-AI im Vergleich zur NVIDIA-Lösung nur die Hälfte der Rechenressourcen, um mit dem Training zu beginnen; wenn dieselben Rechenressourcen verwendet werden, kann die Geschwindigkeit um 11 erhöht werden %, wodurch die GPT-3-Schulungskosten um über eine Million US-Dollar gesenkt werden können. 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 erhielten viel Lob.
Bei der Proteinstrukturvorhersageanwendung AlphaFold2 beispielsweise übertraf FastFold, das auf der Beschleunigungslösung von Colossal-AI basiert, erfolgreich die Lösungen von Google und der Columbia University und reduzierte die Trainingszeit von AlphaFold2 von 11 Tagen auf 67 Stunden, und die Gesamtkosten betrugen niedriger wird auch eine 9,3- bis 11,6-fache Geschwindigkeitssteigerung beim Denken mit langen Sequenzen erreicht.
Colossal-AI konzentriert sich auf den Aufbau von Open-Source-Communitys, bietet chinesische Tutorials, eröffnet Benutzer-Communitys und Foren, führt effiziente Kommunikation und iterative Aktualisierungen für Benutzer-Feedback durch und fügt kontinuierlich hochmoderne Anwendungen wie PaLM und AlphaFold hinzu. Seit seiner natürlichen Open-Source-Erscheinung hat Colossal-AI auf GitHub- und Papers With Code-Hotlists viele Male den ersten Platz weltweit belegt und zusammen mit vielen Star-Open-Source-Projekten mit Zehntausenden von Stars im In- und Ausland Aufmerksamkeit erregt!
Portal-Projektadresse: https://github.com/hpcaitech/ColossalAI
Das obige ist der detaillierte Inhalt vonColossal-AI unterstützt nahtlos die Hugging Face-Community und beschleunigt problemlos große Modelle zu geringen Kosten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!