
警告:会社の再編成により、このプロジェクトは現在維持されていません。
Baguaは、AIプラットフォーム@Kuaishou TechnologyとDS3 Lab@EthZürichによって開発されたPytorchの深い学習トレーニング加速フレームワークです。 Baguaは現在サポートしています:
.step()操作を融合することにより、オプティマイザーの性能を向上させる一般的な融合オプティマイザーを提供します。 Nvidia Apexのアプローチとは対照的に、特定のオプティマイザーのみが実装されている任意のPytorch Optimizerに適用できます。strategy=BaguaStrategyを設定するだけで、Pytorch LightningでBaguaを使用できます。これにより、分散型方法、非同期方法、通信圧縮、その組み合わせなど、さまざまな高度なトレーニングアルゴリズムを活用できます。その有効性は、Imagenet、Bert Large、およびKuaishouの多くの産業用アプリケーションのVGGやResnetなど、さまざまなシナリオで評価されています。
異なるネットワーク帯域幅の下で128 GPUを使用したVGG16の異なるシステムとアルゴリズムのパフォーマンス。
さまざまなシステムの異なるネットワーク条件下で、Bert-Large Finetuneのエポック時間。
より包括的かつ最新の結果については、Bagua Benchmarkページを参照してください。
Linux(x86_64)には、ホイール(プリコンパイルされたバイナリパッケージ)が利用できます。パッケージ名は、CUDAツールキットバージョンによって異なります(CUDAツールキットバージョンはnvcc --version )。
| CUDAツールキットバージョン | インストールコマンド |
|---|---|
| > = 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 |
PRE-RELEASE(開発)バージョンをインストールするには、 --pre pip installコマンドを追加します。クイックスタートガイドとその他のインストールオプションについては、Baguaチュートリアルを参照してください。
Amazon Machine Images(AMI)のおかげで、柔軟なサイズのマシンと幅広いGPUタイプを備えたAWS EC2クラスターにBaguaを簡単に展開および実行する方法をユーザーに提供できます。ユーザーは、ここで公開するユニークなAMI-IDによって、EC2で事前にインストールされたBagua画像を見つけることができます。 AMIは地域のリソースであることに注意してください。そのため、AMIと同じレジノンのマシンを使用していることを確認してください。
| Baguaバージョン | ami id | 地域 |
|---|---|---|
| 0.6.3 | AMI-0E719D0E3E42B397E | US-East-1 |
| 0.9.0 | AMI-0F01FD14E9A742624 | US-East-1 |
EC2クラスターをより効率的に管理するために、StarClusterをツールキットとして使用してクラスターを操作します。 StarClusterのconfigファイルには、AWS資格情報、クラスター設定などを含むユーザーが設定する必要がある構成がいくつかあります。StarCluster構成に関する詳細情報は、このチュートリアルに記載されています。
たとえば、4つのマシンを備えたEC2クラスターを作成し、それぞれに8つのV100 GPU( p3.16xlarge )があります。クラスターはus-east-1地域で事前にインストールしたBagua Amiに基づいています。その場合、StarClusterのconfigファイルは次のとおりです。
# 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.16xlarge上記のセットアップを使用して、それぞれ2つの同一のクラスターを作成して、それぞれBaguaとHorovod上の合成画像分類タスクをベンチマークしました。これがこの実験の画面録音ビデオです。

% 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 }
}