Pelatihan terdistribusi memanfaatkan teknik ML terdistribusi untuk menyebarkan pelatihan model di seluruh perangkat. Misalnya, teknik ini sering digunakan dengan neural networks besar. Ketika jaringan, kumpulan data pelatihan, atau keduanya terlalu besar untuk satu prosesor, pelatihan terdistribusi akan menyebarkan beban kerja ke beberapa server, GPU, atau mesin.Â
Stochastic gradient descent (SGD) adalah algoritma pembelajaran yang membagi kumpulan data ke dalam batch mini dan menghitung gradien fungsi kesalahan setelah setiap batch. Menggunakan batch mini alih-alih kumpulan data lengkap membuat pelatihan lebih efisien.Â
Fungsi kesalahan mengukur kesalahan dalam prediksi model dan tujuan SGD adalah untuk menurunkan gradien guna meminimalkan nilai fungsi tersebut. Seperti halnya pelatihan model standar, proses pelatihan dianggap selesai ketika model mencapai konvergensi: ketika algoritma SGD berhasil meminimalkan nilai fungsi.Â
Node memproses batch mini secara paralel yang dimungkinkan karena setiap batch diproses secara independen dari batch lain dalam setiap iterasi. Setiap node menghitung gradiennya, lalu memasukkan nilai gradien yang diperbarui ke node lain dalam jaringan. Node pekerja lainnya mengimplementasikan pembaruan yang mereka terima ke dalam model mereka sendiri, membantu memastikan bahwa semua salinan model tetap sama selama proses pelatihan.Â
Fungsi AllReduce adalah operasi komunikasi kolektif yang memungkinkan setiap node untuk berbagi hasilnya dan menyebarkan hasil agregat melalui jaringan. AllReduce memungkinkan semua node untuk menyinkronkan pembaruan parameter model dan mempertahankan konsistensi. AllReduce, telah lama digunakan dalam komputasi kinerja tinggi, dipopulerkan dalam kerangka kerja ML seperti Horovod.Â
SGD dapat dijalankan secara sinkron atau asinkron. SGD sinkron memperbarui semua node pada saat yang sama, yang menjaga konsistensi dengan potensi penundaan jika beberapa node tertinggal. SGD asinkron memperbarui parameter segera setelah pembaruan siap, tetapi beberapa node mungkin menerima pembaruan yang tidak menyertakan nilai terbaru.Â
Dengan mengurangi sumber daya komputasi yang dibutuhkan per perangkat, pelatihan terdistribusi dapat mempercepat waktu pelatihan. Karena padat komputasi, pelatihan adalah salah satu contoh penggunaan utama untuk ML terdistribusi.