
Peringatan: Proyek ini saat ini tidak dipertahankan, karena reorganisasi perusahaan.
Bagua adalah kerangka kerja akselerasi pelatihan pembelajaran yang mendalam untuk Pytorch yang dikembangkan oleh AI Platform@Kuaishou Technology dan DS3 Lab@ETH Zürich. Bagua saat ini mendukung:
.step() pada banyak lapisan. Ini dapat diterapkan pada pengoptimal Pytorch yang sewenang -wenang, berbeda dengan pendekatan Nvidia Apex, di mana hanya beberapa pengoptimal spesifik yang diimplementasikan.strategy=BaguaStrategy di pelatih Anda. Ini memungkinkan Anda untuk memanfaatkan berbagai algoritma pelatihan lanjutan, termasuk metode desentralisasi, metode asinkron, kompresi komunikasi, dan kombinasi mereka!Efektivitasnya telah dievaluasi dalam berbagai skenario, termasuk VGG dan ResNet di Imagenet, Bert Large dan banyak aplikasi industri di Kuaishou.
Kinerja sistem dan algoritma yang berbeda pada VGG16 dengan 128 GPU di bawah bandwidth jaringan yang berbeda.
Waktu zaman Bert-Large finetune di bawah kondisi jaringan yang berbeda untuk sistem yang berbeda.
Untuk hasil yang lebih komprehensif dan terkini, lihat halaman Benchmark Bagua.
Roda (Paket Binary yang Dikompilasi) tersedia untuk Linux (x86_64). Nama paket berbeda tergantung pada versi CUDA Toolkit Anda (versi CUDA Toolkit ditampilkan di nvcc --version ).
| Versi Toolkit CUDA | Perintah Instalasi |
|---|---|
| > = 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 |
Tambahkan --pre ke pip install perintah untuk menginstal versi pra-rilis (pengembangan). Lihat tutorial Bagua untuk panduan start cepat dan lebih banyak opsi instalasi.
Berkat Amazon Machine Images (AMI), kami dapat memberikan pengguna cara mudah untuk menggunakan dan menjalankan Bagua pada kluster AWS EC2 dengan ukuran mesin yang fleksibel dan berbagai jenis GPU. Pengguna dapat menemukan gambar Bagua yang telah dipasang sebelumnya di EC2 oleh ami-id unik yang kami terbitkan di sini. Perhatikan bahwa AMI adalah sumber daya regional, jadi pastikan Anda menggunakan mesin dalam reginon yang sama dengan AMI kami.
| Versi Bagua | AMI ID | Wilayah |
|---|---|---|
| 0.6.3 | AMI-0E719D0E3E42B397E | US-East-1 |
| 0.9.0 | AMI-0F01FD14E9A742624 | US-East-1 |
Untuk mengelola cluster EC2 secara lebih efisien, kami menggunakan StarCluster sebagai toolkit untuk memanipulasi cluster. Dalam file config StarCluster, ada beberapa konfigurasi yang perlu diatur oleh pengguna, termasuk kredensial AWS, pengaturan cluster, dll. Informasi lebih lanjut mengenai konfigurasi StarCluster dapat ditemukan dalam tutorial ini.
Misalnya, kami membuat cluster EC2 dengan 4 mesin, yang masing -masing memiliki 8 V100 GPU ( p3.16xlarge ). Cluster didasarkan pada Bagua AMI yang kami pasang sebelumnya di wilayah us-east-1 . Maka file config starcluster adalah:
# 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.16xlargeDengan pengaturan di atas, kami membuat dua kelompok yang identik untuk membandingkan tugas klasifikasi gambar yang disintesis atas Bagua dan Horovod, masing -masing. Berikut adalah video perekaman layar dari percobaan ini.

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