ML-Engineering-Onlinebuch
(github.com/stas00)-
KI-Kampf-Engineering – Was man wissen muss
- Eine offene Sammlung von Methoden für das erfolgreiche Training von KI-(ML)-Modellen, insbesondere großen Sprachmodellen (LLM) und multimodalen Modellen (VLM).
- Technisches Material für LLM/VLM-Trainingsingenieure und -Operatoren, mit vielen Skripten und Copy-und-Paste-Befehlen, sodass sich benötigte Aufgaben schnell ausführen lassen.
- Dokumentiert fortlaufend Erfahrungen und Know-how aus dem Training des Open-Source-Modells BLOOM-176B im Jahr 2022 und des multimodalen Modells IDEFICS-80B im Jahr 2023; derzeit Entwicklung/Training von Open-Source-Retrieval-Augmented-Modellen bei Contextual.AI.
-
Inhaltsverzeichnis
- Entschuldigt sich für das instabile Layout; es werden neue Kapitel geschrieben und die Inhalte intuitiver neu organisiert.
-
Hardware-Komponenten
- Beschleuniger - Die Arbeitspferde des ML, darunter GPU, TPU, IPU, FPGA, HPU, QPU und RDU.
- Netzwerk - Konnektivität innerhalb von Knoten und zwischen Knoten sowie Berechnung der Bandbreitenanforderungen.
- Speicher - Lokale und verteilte Datenträger und Dateisysteme.
- CPU - Inhalte zu CPU und Affinität.
- CPU-Speicher - Das kürzeste Kapitel darüber, wie viel CPU-Speicher ausreicht.
-
Performance
- Fehlertoleranz
- Performance
- Multi-Node-Networking
- Modellparallelität
-
Betrieb
- SLURM
- Trainings-Hyperparameter und Modellinitialisierung
- Instabilität
-
Entwicklung
- Debugging von Software- und Hardwarefehlern
- Noch mehr Debugging
- Reproduzierbarkeit
- Tensor-Präzision / Datentypen
- HF-Transformers-Notizen - Tipps zu kleinen Modellen, Tokenizern, Datensätzen usw.
-
Sonstiges
- Materialien - LLM/VLM-Chronik.
-
Direktzugriffe
- Werkzeuge und Leitfäden, die man häufig schnell finden muss.
- Werkzeuge:
all_reduce_bench.py,torch-distributed-gpu-test.py - Leitfäden:
debugging pytorch applications,slurm for users,make tiny models/datasets/tokenizers,LLM/VLM chronicles collection
-
Buch erstellen
- Wer ein PDF erstellen oder Links prüfen möchte, siehe den Abschnitt „Buch erstellen“.
-
Danksagung
- Dieses Know-how lernen zu können, ist ein Privileg, das nur wenigen offensteht, da das Anmieten großer ML-Compute-Cluster sehr teuer ist.
- Besonderer Dank an Thom Wolf und HuggingFace.
-
Mitwirken
- Wer Bugs oder Tippfehler findet oder Verbesserungsvorschläge hat, wird ermutigt, ein Issue zu eröffnen oder einen PR beizutragen.
-
Lizenz
- Die Inhalte dieser Website werden unter der Lizenz Attribution-ShareAlike 4.0 International veröffentlicht.
-
Meine Repository-Karte
- Maschinelles Lernen: ML Engineering Open Book | ML ways | Porting
- Leitfäden: The Art of Debugging
- Anwendungen: ipyexperiments
- Werkzeuge und Cheat Sheets: bash | conda | git | jupyter-notebook | make | python | tensorboard | unix
Meinung von GN⁺
- Dieses Material leistet einen großen Beitrag zur ML-Community, indem es praktisches Wissen und Werkzeuge für das Training großer Sprachmodelle und multimodaler Modelle bereitstellt.
- Durch das Teilen von Know-how aus realen Projekterfahrungen hilft es angehenden Softwareingenieuren, praxisnahes Wissen zu erwerben, das für das Training großer ML-Modelle nötig ist.
- Der Open-Source-Ansatz fördert Wissensaustausch und Zusammenarbeit im ML-Bereich und spielt damit eine wichtige Rolle bei der Beschleunigung von Forschung und Innovation.
1 Kommentare
Hacker-News-Kommentare
Dieser Beitrag ist wirklich wertvoll. Ich arbeite daran, LLM-Trainings-Setups zur Unterstützung der Forschung zu debuggen, und ich wünschte, ich hätte solche Notizen schon zu Beginn gehabt.
Ich arbeite mit Applied Scientists zusammen und unterstütze Aufgaben rund um Modelltraining und Deployment; wie können Leute wie ich mit eher Low-Level-Engineering-Arbeiten wie Optimierung und Performance in Berührung kommen? Wir haben zwar ein ML-Infrastruktur-Team, aber dessen Ziel ist es, Tools rund um die Plattform zu bauen, nicht unbedingt, Workloads optimal auszuführen.
Ich würde das gern ausprobieren, aber ich habe keine vernünftige GPU. Wie führt ihr solche Dinge aus?
Vielen Dank für alles im Abschnitt "Unsolicited Advice" auf AI Battlefield [1]. Das ist eine sehr realistische Perspektive auf das ständige Hinterherhecheln hinter den schnellen Fortschritten in der AI-Entwicklung und die damit verbundene emotionale Belastung.
Wie weit verbreitet ist Slurm?
Ich habe zufällig herumgeklickt und etwas über Repeatability gelesen, frage mich aber immer noch, wie das im verteilten Training erreicht wird. Macht deterministische Synchronisation die Dinge nicht langsamer? Andererseits habe ich gehört, dass bei zumindest einigen großen Unternehmen ihr Training reproduzierbar ist.
Wie sammelt man Erfahrungen mit solchen Dingen, wenn man keinen Job hat?
Gibt es irgendwo ein PDF? Es scheint Anleitungen zum Bauen zu geben, aber keine eigentliche Datei.