


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:
- cuda: Platziert alle Modellparameter auf der GPU, was für herkömmliche Szenarien geeignet ist, in denen das Training weiterhin ohne Auslagerung durchgeführt werden kann.
- cpu platziert alle Modellparameter im CPU-Speicher, nur die aktuellen Gewichte Die an der Berechnung beteiligten Parameter werden im GPU-Speicher gespeichert, was für das Training sehr großer Modelle geeignet ist.
- auto ermittelt automatisch die Menge der im GPU-Speicher gespeicherten Parameter auf der Grundlage von Echtzeit-Speicherinformationen, wodurch die Nutzung maximiert werden kann des GPU-Speichers und reduzieren die CPU-Auslastung. -Datenübertragung zwischen GPUs.
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!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Die Größe einer Bootstrap -Liste hängt von der Größe des Containers ab, der die Liste enthält, nicht die Liste selbst. Die Verwendung von Bootstraps Grid -System oder Flexbox kann die Größe des Containers steuern und dadurch indirekt die Listenelemente ändern.

Verschachtelte Listen in Bootstrap erfordern die Verwendung des Grid -Systems von Bootstrap, um den Stil zu steuern. Verwenden Sie zunächst die äußere Schicht & lt; ul & gt; und & lt; li & gt; Um eine Liste zu erstellen, wickeln Sie die Liste der inneren Ebenen in & lt; div class = & quot; row & gt; und add & lt; div class = & quot; col-md-6 & quot; & gt; In der Liste der inneren Ebenen, um anzugeben, dass die Liste der inneren Ebenen die halbe Breite einer Reihe einnimmt. Auf diese Weise kann die innere Liste die richtige haben

So fügen Sie Symbole zur Bootstrap -Liste hinzu: Direkt das Symbol in das Listenelement & lt; li & gt;, Verwenden des von der Symbibliothek angegebenen Klassennamens (z. B. fantastisch). Verwenden Sie die Bootstrap-Klasse, um Symbole und Text auszurichten (z. B. D-Flex, Justify-Content-dazwischen, Align-items-Center). Verwenden Sie die Bootstrap -Tag -Komponente (Abzeichen), um Zahlen oder Status anzuzeigen. Passen Sie die Symbolposition an (Flex-Richtung: Reihen-Umkehr;), steuern Sie den Stil (CSS-Stil). Häufiger Fehler: Das Symbol wird nicht angezeigt (nicht

Bei der Konvertierung von Zeichenfolgen in Objekte in Vue.js wird JSON.Parse () für Standard -JSON -Zeichenfolgen bevorzugt. Bei nicht standardmäßigen JSON-Zeichenfolgen kann die Zeichenfolge durch Verwendung regelmäßiger Ausdrücke verarbeitet und Methoden gemäß dem Format oder dekodierten URL-kodiert reduziert werden. Wählen Sie die entsprechende Methode gemäß dem String -Format aus und achten Sie auf Sicherheits- und Codierungsprobleme, um Fehler zu vermeiden.

Das Maschensystem von Bootstrap ist eine Regel für das schnelle Erstellen von Reaktionslayouts, die aus drei Hauptklassen bestehen: Container (Container), Zeile (Zeile) und COL (Spalte). Standardmäßig werden 12-Kolumn-Gitter bereitgestellt, und die Breite jeder Spalte kann durch Auxiliary-Klassen wie Col-MD- angepasst werden, wodurch die Layout-Optimierung für verschiedene Bildschirmgrößen erreicht wird. Durch die Verwendung von Offset -Klassen und verschachtelten Maschen kann die Layoutflexibilität verlängert werden. Stellen Sie bei der Verwendung eines Gittersystems sicher, dass jedes Element die korrekte Verschachtelungsstruktur aufweist, und berücksichtigen Sie die Leistungsoptimierung, um die Ladegeschwindigkeit der Seiten zu verbessern. Nur durch eingehendes Verständnis und Üben können wir das Bootstrap Grid-System kompetent beherrschen.

Die Änderungen des Bootstrap 5 -Listenstils sind hauptsächlich auf die Detailoptimierung und die semantische Verbesserung zurückzuführen, einschließlich: Die Standardmargen ungeordneter Listen sind vereinfacht, und die visuellen Effekte sind sauberer und ordentlich. Der Listenstil betont die Semantik, verbessert die Zugänglichkeit und die Wartbarkeit.

Bootstrap selbst liefert keine direkte vertikale Auflistungsfunktion und muss mit seinem Mechanismus geschickt implementiert werden: FlexBox: Fügen Sie der Liste der "D-Flex Flex-Säule" zum übergeordneten Container der Liste hinzu, um Listenelemente vertikal anzuordnen. In Kombination mit Rastersystem: Setzen Sie die Spaltenbreiten für Listenelemente mit komplexen Inhalten und steuern Sie das Layout feiner. Achten Sie darauf, dass Sie die Klassen "Raster Core" von Bootstraps "Row" und "Col" verwenden, um die Verwendung von schwimmenden oder Positionierungsmethoden zu vermeiden.

Frage: Wie registriert man eine Vue -Komponente, die durch Exportverlagerung exportiert wird? Antwort: Es gibt drei Registrierungsmethoden: Globale Registrierung: Verwenden Sie die Methode vue.comPonent (), um sich als globale Komponente zu registrieren. Lokale Registrierung: Registrieren Sie sich in der Komponentenoption, die nur in der aktuellen Komponente und in den Unterkomponenten verfügbar ist. Dynamische Registrierung: Verwenden Sie die Methode vue.comPonent (), um sich nach dem Laden der Komponente zu registrieren.
