
경고 :이 프로젝트는 회사 재구성으로 인해 현재 유지되지 않습니다.
Bagua는 AI Platform@Kuaishou Technology 및 DS3 Lab@Eth Zürich가 개발 한 Pytorch의 딥 러닝 교육 가속 프레임 워크입니다. Bagua는 현재 다음을 지원합니다.
.step() 작업을 융합하여 Optimizers의 성능을 향상시키는 일반 융합 옵티마이저를 제공합니다. 일부 특정 최적화제 만 구현되는 NVIDIA Apex의 접근 방식과 달리 임의의 Pytorch Optimizer에 적용될 수 있습니다.strategy=BaguaStrategy 설정하여 Pytorch Lightning에서 Bagua를 사용할 수 있습니다. 이를 통해 분산 된 방법, 비동기 방법, 통신 압축 및 조합을 포함한 다양한 고급 교육 알고리즘을 활용할 수 있습니다!그 효과는 Imagenet의 VGG 및 RESNET, Bert Largin 및 Kuaishou의 많은 산업 응용 프로그램을 포함한 다양한 시나리오에서 평가되었습니다.
다른 네트워크 대역폭에서 128 GPU와 VGG16에서 다양한 시스템 및 알고리즘의 성능.
다른 시스템에 대한 다른 네트워크 조건에서 Bert-Large Finetune의 Epoch 시간.
보다 포괄적이고 최신 결과는 Bagua 벤치 마크 페이지를 참조하십시오.
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 to pip install 명령을 추가하여 사전 릴리스 (개발) 버전을 설치하십시오. 빠른 시작 가이드 및 더 많은 설치 옵션은 Bagua 자습서를 참조하십시오.
AMI (Amazon Machine Images) 덕분에 사용자에게 AWS EC2 클러스터에 유연한 크기의 기계와 광범위한 GPU 유형을 쉽게 배포하고 실행할 수있는 방법을 제공 할 수 있습니다. 사용자는 여기에 게시하는 고유 한 AMIID로 EC2에서 사전 설치된 Bagua 이미지를 찾을 수 있습니다. AMI는 지역 자원이므로 AMI와 같은 레지 논의 기계를 사용하고 있는지 확인하십시오.
| 바구아 버전 | 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위의 설정으로 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 }
}