Perangkat keras heterogen adalah masalah terbesar dalam pelatihan terdistribusi yang tak pernah dibicarakan orang. Ada klaster berisi RTX 3090 yang bercampur dengan 4090, konfigurasi VRAM yang berbeda (12GB vs 24GB), kecepatan jaringan yang tak menentu, dan satu node terkutuk yang menjadi penghambat semuanya.
Sebagian besar kerangka kerja pelatihan mengasumsikan pengaturan yang seragam. Penyeimbangan bebannya sederhana, sinkronisasinya dilakukan secara global, dan kinerjanya tersendat saat spesifikasi perangkat keras berbeda-beda. Para pengembang open source di dunia nyata terpaksa terus mengawasi klaster, membagi beban kerja secara manual, atau menerima saja pemanfaatan GPU yang buruk.
Masalah utamanya: kerangka kerja memperlakukan semua node secara setara. Padahal, 3090 seharusnya tidak mendapat ukuran batch yang sama dengan 4090. Koneksi jaringan yang lambat memerlukan pembaruan gradien asinkron. Node dengan memori terbatas memerlukan strategi pembagian model yang berbeda.
Itulah sebabnya proyek seperti DeepSpeed, Megatron, dan PyTorch terdistribusi masih terasa rumit untuk pengaturan heterogen. Proyek-proyek itu tidak dirancang untuk menghadapi realitas komputasi komunitas yang berantakan atau kumpulan GPU dari berbagai generasi.
Sebagian besar kerangka kerja pelatihan mengasumsikan pengaturan yang seragam. Penyeimbangan bebannya sederhana, sinkronisasinya dilakukan secara global, dan kinerjanya tersendat saat spesifikasi perangkat keras berbeda-beda. Para pengembang open source di dunia nyata terpaksa terus mengawasi klaster, membagi beban kerja secara manual, atau menerima saja pemanfaatan GPU yang buruk.
Masalah utamanya: kerangka kerja memperlakukan semua node secara setara. Padahal, 3090 seharusnya tidak mendapat ukuran batch yang sama dengan 4090. Koneksi jaringan yang lambat memerlukan pembaruan gradien asinkron. Node dengan memori terbatas memerlukan strategi pembagian model yang berbeda.
Itulah sebabnya proyek seperti DeepSpeed, Megatron, dan PyTorch terdistribusi masih terasa rumit untuk pengaturan heterogen. Proyek-proyek itu tidak dirancang untuk menghadapi realitas komputasi komunitas yang berantakan atau kumpulan GPU dari berbagai generasi.