
WARNUNG: Dieses Projekt wird derzeit aufgrund der Umstrukturierung des Unternehmens derzeit nicht aufrechterhalten.
Bagua ist ein Deep Learning Training Acceleration Framework für Pytorch, der von AI Platform@Kuaishou Technology und DS3 Lab@Eth Zürich entwickelt wurde. Bagua unterstützt derzeit:
.step() -Operation auf mehreren Schichten verschmelzen. Es kann auf willkürliche Pytorch -Optimierer angewendet werden, im Gegensatz zum Ansatz von Nvidia Apex, bei dem nur einige spezifische Optimierer implementiert werden.strategy=BaguaStrategy in Ihrem Trainer festlegen. Auf diese Weise können Sie eine Reihe fortschrittlicher Trainingsalgorithmen nutzen, einschließlich dezentraler Methoden, asynchroner Methoden, Kommunikationskomprimierung und deren Kombinationen!Seine Effektivität wurde in verschiedenen Szenarien bewertet, darunter VGG und Resnet auf ImageNet, Bert Large und viele industrielle Anwendungen bei Kuaishou.
Die Leistung verschiedener Systeme und Algorithmen auf VGG16 mit 128 GPUs unter verschiedenen Netzwerkbandbreite.
Epochenzeit von Bert-Large-Finetune unter verschiedenen Netzwerkbedingungen für verschiedene Systeme.
Weitere umfassendere und aktuelle Ergebnisse finden Sie auf der Bagua -Benchmark -Seite.
Räder (vorkompilierte Binärpakete) sind für Linux (x86_64) erhältlich. Die Paketnamen unterscheiden sich je nach Ihrer CUDA -Toolkit -Version (CUDA -Toolkit -Version wird in nvcc --version angezeigt).
| CUDA Toolkit -Version | Installationsbefehl |
|---|---|
| > = v10.2 | pip install bagua-cuda102 |
| > = v11.1 | pip install bagua-cuda111 |
| > = v11.3 | pip install bagua-cuda113 |
| > = v11.5 | pip install bagua-cuda115 |
| > = v11.6 | pip install bagua-cuda116 |
Fügen Sie --pre Befehle zu pip install hinzu, um die Versionen vor der Veröffentlichung zu installieren (Entwicklungsversionen). In Bagua -Tutorials finden Sie Quick Start Guide und weitere Installationsoptionen.
Dank der Amazon Machine Images (AMI) können wir den Benutzern eine einfache Möglichkeit bieten, Bagua auf AWS -EC2 -Clustern mit flexibler Maschinengröße und einer Vielzahl von GPU -Typen bereitzustellen und auszuführen. Benutzer finden unser vorinstalliertes Bagua-Image auf EC2 von der einzigartigen AMI-ID, die wir hier veröffentlichen. Beachten Sie, dass AMI eine regionale Ressource ist. Bitte stellen Sie also sicher, dass Sie die Maschinen im selben Reginon wie unser AMI verwenden.
| Bagua -Version | AMI ID | Region |
|---|---|---|
| 0,6,3 | AMI-0E719D0E3E42B397E | US-Ost-1 |
| 0.9.0 | AMI-0F01FD14E9A742624 | US-Ost-1 |
Um den EC2 -Cluster effizienter zu verwalten, verwenden wir StarCluster als Toolkit, um den Cluster zu manipulieren. In der config von StarCluster müssen einige Konfigurationen von Benutzern eingerichtet werden, einschließlich AWS -Anmeldeinformationen, Clustereinstellungen usw. Weitere Informationen zur StarCluster -Konfiguration finden Sie in diesem Tutorial.
Zum Beispiel erstellen wir einen EC2 -Cluster mit 4 Maschinen, von denen jeweils 8 V100 GPUs ( p3.16xlarge ) enthält. Der Cluster basiert auf dem Bagua AMI, das wir in der Region us-east-1 vorinstalliert haben. Dann wäre die config von StarCluster:
# region of EC2 instances, here we choose us_east_1
AWS_REGION_NAME = us-east-1
AWS_REGION_HOST = ec2.us-east-1.amazonaws.com
# AMI ID of Bagua
NODE_IMAGE_ID = ami-0e719d0e3e42b397e
# number of instances
CLUSTER_SIZE = 4
# instance type
NODE_INSTANCE_TYPE = p3.16xlargeMit dem obigen Setup haben wir zwei identische Cluster erstellt, um eine synthetisierte Bildklassifizierungsaufgabe über Bagua bzw. Horovod zu belasten. Hier ist das Bildschirmaufzeichnungsvideo dieses Experiments.

% System Overview
@misc { gan2021bagua ,
title = { BAGUA: Scaling up Distributed Learning with System Relaxations } ,
author = { Shaoduo Gan and Xiangru Lian and Rui Wang and Jianbin Chang and Chengjun Liu and Hongmei Shi and Shengzhuo Zhang and Xianghong Li and Tengxu Sun and Jiawei Jiang and Binhang Yuan and Sen Yang and Ji Liu and Ce Zhang } ,
year = { 2021 } ,
eprint = { 2107.01499 } ,
archivePrefix = { arXiv } ,
primaryClass = { cs.LG }
}
% Theory on System Relaxation Techniques
@book { liu2020distributed ,
title = { Distributed Learning Systems with First-Order Methods: An Introduction } ,
author = { Liu, J. and Zhang, C. } ,
isbn = { 9781680837018 } ,
series = { Foundations and trends in databases } ,
url = { https://books.google.com/books?id=vzQmzgEACAAJ } ,
year = { 2020 } ,
publisher = { now publishers }
}