Apa itu machine learning terdistribusi?

Penyusun

Ivan Belcic

Staff writer

Cole Stryker

Staff Editor, AI Models

IBM Think

Apa itu machine learning terdistribusi?

Machine learning (ML) terdistribusi adalah pendekatan pada tugas ML berskala besar di mana beban kerja tersebar di berbagai perangkat atau prosesor, tidak berjalan di satu komputer. ML terdistribusi paling sering digunakan untuk melatih model yang besar dan kompleks, seperti neural networks mendalam dengan kebutuhan komputasi yang sangat tinggi. 

Seiring dengan peningkatan model kecerdasan buatan (AI) dalam ukuran dan kompleksitasnya, sumber daya komputasi yang dibutuhkan untuk pelatihan dapat melebihi kapasitas dari satu perangkat. Selain itu tugas berskala besar yang kompleks bisa terlalu sulit atau membutuhkan lebih banyak memori daripada yang dapat disediakan oleh satu perangkat. Sistem terdistribusi membagi kumpulan data atau model AI di beberapa perangkat, atau node, untuk meningkatkan kinerja, akurasi, dan efisiensi. 

ML terdistribusi adalah subbagian dari komputasi terdistribusi, yang mencakup upaya yang lebih luas untuk menyebarkan komputasi ke berbagai sistem pemrosesan.

Tren AI terbaru, dipersembahkan oleh para pakar

Dapatkan kurasi insight tentang berita AI yang paling penting dan menarik. Berlangganan buletin Think mingguan. Lihat Pernyataan Privasi IBM.

Terima kasih! Anda telah berlangganan.

Langganan Anda akan dikirimkan dalam bahasa Inggris. Anda akan menemukan tautan berhenti berlangganan di setiap buletin. Anda dapat mengelola langganan atau berhenti berlangganan di sini. Lihat Pernyataan Privasi IBM kami untuk informasi lebih lanjut.

Jenis machine learning terdistribusi

Pendekatan pada machine learning terdistribusi meliputi: 

  • Paralelisme data: membagi kumpulan data di berbagai perangkat 

  • Paralelisme model: membagi model di berbagai perangkat 

  • Paralelisme hybrid: menggabungkan berbagai aspek paralelisme data dan model

Kerangka kerja server parameter untuk ML terdistribusi menggunakan satu atau lebih node server untuk mempertahankan pembaruan parameter model, sementara node pekerja menangani data dan komputasi.

Paralelisme data

Paralelisme data membagi kumpulan data besar yang digunakan sebagai data pelatihan ke dalam sejumlah kelompok yang sama dengan jumlah node dalam sistem. Setiap node menghosting salinan model AI dan memberinya subset dari data terdistribusi. Operasi paralelisme data dapat dijalankan secara sinkron atau asinkron. Pelatihan sinkron lebih umum dilakukan dengan model pembelajaran mendalam karena memastikan konsistensi, tetapi dengan mengorbankan kecepatan. 

Karena setiap node menjalankan salinan lengkap model, perangkat keras harus memiliki memori yang cukup untuk menghostingnya. Akan tetapi, beban kerja AI per node berkurang karena setiap node hanya memproses sebagian dari kumpulan data.

Pembelajaran gabungan

Pembelajaran gabungan menyerupai paralelisme data di mana beberapa node melatih salinan model pada subset data. Namun, pembagian data tidak dibuat dari kumpulan data terpusat tetapi terdiri dari data lokal pada setiap node. Pembaruan model dikumpulkan di berbagai node, sementara data tidak pernah meninggalkan sumber aslinya. 

Karena setiap kumpulan data dilokalkan, ilmuwan data sering menggunakan pembelajaran gabungan untuk aplikasi pembelajaran mendalam terdistribusi yang melibatkan keamanan data yang tinggi atau peraturan hukum. Kumpulan data terpusat dapat secara tidak sengaja mengekspos informasi identifikasi pribadi (PII) selama pengiriman. Pembelajaran gabungan mengurangi risiko ini dengan mengisolasi setiap kumpulan data ke node miliknya sendiri.

Akademi AI

Menjadi pakar AI

Raih pengetahuan demi memprioritaskan investasi AI yang mendorong pertumbuhan bisnis. Mulai dengan Akademi AI gratis kami hari ini dan pimpin masa depan AI di organisasi Anda.

Paralelisme model

Dalam paralelisme model, sebuah model dibagi menjadi berbagai bagian komponen, seperti lapisan neural networks mendalam, yang dapat berjalan secara independen dan bersamaan di node terpisah. Setiap bagian dari model menggunakan data yang sama. Paralelisme model juga dikenal sebagai paralelisme jaringan. 

Ketika satu model ML terlalu besar untuk ditangani oleh satu mesin, paralelisme model memungkinkan model berjalan di beberapa node. Setiap node menangani sebagian dari model, sehingga kebutuhan komputasi dan memorinya lebih rendah daripada jika satu mesin harus menjalankan seluruh model. 

Paralelisme model biasanya lebih sulit diterapkan daripada paralelisme data. Algoritma pembelajaran machine learning terdistribusi yang dipilih memengaruhi secara langsung skalabilitas metode ini, di mana beberapa algoritma lebih cocok dengan teknik ini dibandingkan yang lainnya. Sistem harus dibangun sedemikian rupa sehingga meminimalkan jumlah pembagian data di antara node. Sistem paralelisme model berkinerja tinggi memerlukan desain dan pengoptimalan tingkat pakar. 

Paralelisme model sering dikombinasikan dengan paralelisme data sehingga setiap segmen model memproses bagian yang berbeda dari data input. Hasil dikumpulkan di seluruh jaringan.

Paralelisme saluran 

Paralelisme saluran adalah jenis paralelisme model yang membagi model secara berurutan. Setiap tahap model dihosting di node miliknya sendiri. Batch data diproses secara berurutan melalui berbagai tahapan, mirip dengan cara tradisional brigade ember mengoper ember berisi air dari satu orang ke orang berikutnya, dari sumber air ke api. 

Paralelisme saluran dapat meningkatkan throughput—volume data yang dapat diproses sekaligus oleh model. Namun, peningkatan ini disertai dengan biaya peningkatan latensi, yaitu jumlah waktu yang diperlukan untuk memberikan hasil setelah menerima input. 

Peningkatan latensi disebabkan oleh fase peningkatan di mana batch mikro awal data melewati urutan. Tahapan selanjutnya dalam saluran machine learning tidak dapat diawali hingga batch mikro data pertama melewati tahap sebelumnya.

Paralelisme tensor

Paralelisme tensor berperan bahkan ketika satu lapisan neural networks dalam membutuhkan terlalu banyak daya komputasi atau menggunakan terlalu banyak ruang untuk satu perangkat. Perhatian internal dan lapisan penanaman—dua landasan dari arsitektur transformator—dapat tumbuh sangat besar, yang berarti bahwa hampir semua pengembangan model bahasa besar (LLM) melibatkan paralelisme tensor. Tanpa paralelisme tensor, nyaris tidak mungkin untuk melatih LLM karena lapisannya terlalu besar untuk satu perangkat. 

Dalam paralelisme tensor, parameter dari satu lapisan ditempatkan pada beberapa GPU (unit pemrosesan grafis) atau TPU (unit pemrosesan tensor). Setiap perangkat menghitung bagian dari operasi satu lapisan dan hasil parsial digabungkan untuk menghasilkan output lapisan. 

Dibandingkan dengan paralelisme data dan banyak jenis paralelisme model lainnya, alur kerja paralelisme tensor membutuhkan lebih banyak komunikasi di antara node. Jaringan bandwidth tinggi dapat membantu mengurangi hambatan komunikasi.

Paralelisme hibrida

Teknik paralelisme data dan model tidak sering digunakan secara terpisah. Mereka sering digabungkan dalam berbagai konfigurasi paralelisme campuran. Kerangka kerja pembelajaran mendalam sumber terbuka PyTorch dan TensorFlow, keduanya mendukung Python, biasa digunakan untuk membangun sistem machine learning terdistribusi. 

Sebagian besar model bahasa berskala besar, termasuk kelompok GPT, mengandalkan paralelisme hibrida untuk melatih secara efisien dalam skala besar.

Cara kerja machine learning terdistribusi

ML terdistribusi dapat menambah setiap tahap dari saluran ML: proses membangun, melatih, dan menerapkan model machine learning. Prapemrosesan, pelatihan, penyempurnaan, validasi, inferensi, dan penerapan 

  • Prapemrosesan data terdistribusi 

  • Pelatihan terdistribusi

  • Penyempurnaan terdistribusi 

  • Validasi terdistribusi 

  • Inferensi terdistribusi 

  • Penerapan terdistribusi 

Prapemrosesan data terdistribusi

Prapemrosesan data terdistribusi menggunakan jaringan node yang terhubung—beberapa prosesor atau perangkat, bukan tiap neuron dari neural networks, yang terkadang disebut pula sebagai "node"—untuk menyiapkan kumpulan data besar untuk analisis dan penggunaan lebih lanjut. 

Node pengendali pusat mengelola alur kerja, memisahkan data, dan menetapkannya ke node pekerja. Desentralisasi pekerjaan melalui pemrosesan paralel meningkatkan skalabilitas dan efisiensi bila dibandingkan dengan model tradisional yang menggunakan satu perangkat.

Pelatihan terdistribusi

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.

Penyempurnaan terdistribusi 

Prinsip dan manfaat yang sama dari pelatihan terdistribusi berlaku pada penyempurnaan terdistribusi. Penyempurnaan lebih lanjut melatih model yang dilatih sebelumnya untuk memiliki spesialisasi dalam tugas yang lebih spesifik. Menerapkan teknik ML terdistribusi membuat proses lebih cepat, lebih efisien, dan lebih dapat diskalakan.

Validasi terdistribusi 

Validasi adalah proses mengevaluasi kinerja model terlatih. Mendistribusikan kumpulan data validasi atau model besar di berbagai node memberikan manfaat yang sama seperti proses pelatihan terdistribusi lainnya. 

Inferensi terdistribusi

Inferensi adalah proses di mana model AI terlatih memproses data baru untuk mengenali pola dan menghasilkan output atau prediksi. Mendistribusikan beban kerja di beberapa perangkat memungkinkannya untuk mengoperasikan model AI yang terlalu besar untuk satu mesin. Inferensi terdistribusi juga dapat memfasilitasi throughput yang lebih besar dan latensi yang lebih rendah.

Penerapan terdistribusi 

Penerapan terdistribusi mengelola operasi aplikasi perangkat lunak di seluruh jaringan node. Penyeimbangan beban di berbagai node pekerja membantu mengurangi hambatan dan mengoptimalkan efisiensi sumber daya, sehingga meningkatkan throughput dan menurunkan latensi.

Manfaat ML terdistribusi

Manfaat machine learning terdistribusi meliputi: 

  • Efisiensi 

  • Skalabilitas

  • Redundansi

Efisiensi

Mengotomatiskan dan membagi beban kerja di antara beberapa perangkat akan mengurangi beban pada satu perangkat. Node dapat bekerja secara paralel untuk menyelesaikan tugas jangka panjang lebih cepat, kemudian menggabungkan output mereka ke dalam hasil akhir. 

Melatih model pengenalan gambar pada ImageNet (kumpulan data dengan lebih dari 14 juta gambar berlabel) akan memakan waktu berminggu-minggu pada satu GPU. Dengan ML terdistribusi, bahkan perusahaan rintisan kecil dapat melakukan tugas ini dalam beberapa jam.

Skalabilitas

Perusahaan tidak perlu berinvestasi dalam komputer yang luar biasa tangguh untuk menjalankan LLM dan sistem padat sumber daya lainnya. Komputasi terdistribusi memungkinkan penyedia layanan cloud untuk mengoordinasikan infrastruktur yang luas di banyak server dan pusat data, sehingga tersedia bagi pelanggan perusahaan sesuai permintaan.

Tugas terkait ilmu data yang intensif seperti pemrosesan data dengan big data dapat diselesaikan tanpa investasi infrastruktur yang signifikan. Pemrosesan data berskala besar bahkan memungkinkan perusahaan rintisan berskala lebih kecil untuk menawarkan layanan kepada pengguna mereka seperti sistem rekomendasi atau chatbot. 

Sementara itu, pusat data hyperscale terletak di ujung lain spektrum skalabilitas. Jika sumber daya memungkinkan, organisasi membangun klaster server besar-besaran untuk menjalankan neural networks mendalam yang paling canggih. Tidak mungkin mengoperasikan model sebesar ini di ribuan GPU tanpa ML terdistribusi.

Redundansi

Banyak sistem dunia nyata bergantung pada toleransi kesalahan, kemampuan untuk terus beroperasi bahkan jika tiap node gagal. Penyedia model perlu memastikan bahwa tiap pengguna serta aplikasi yang terhubung dengan API dapat menikmati akses tanpa gangguan. Dalam ML terdistribusi, redundansi menjaga waktu aktif dengan mereplikasi proses di seluruh node sehingga kegagalan tidak mengganggu layanan.

Tantangan ML terdistribusi

Tantangan implementasi ML terdistribusi yang efektif meliputi: 

  • Kemacetan jaringan

  • Overhead sinkronisasi 

  • Konsumsi energi

Kemacetan jaringan

Bandwidth yang tidak mencukupi di antara node sering menjadi penyebab kemacetan dalam jaringan ML terdistribusi. Metode seperti paralelisme tensor yang membutuhkan lebih banyak komunikasi adalah yang paling memakan banyak bandwidth. Jika jaringan tidak dapat menyediakan bandwidth yang diperlukan, proyek ML terdistribusi akan menghadapi peningkatan waktu pelatihan dan pengurangan skalabilitas.

Overhead sinkronisasi

Overhead sinkronisasi adalah penundaan yang terjadi ketika satu tugas tidak dapat dimulai sampai tugas lain selesai. Dalam sistem yang sinkron, semua node pekerja harus mengunggah data bersama sebelum beralih ke tahap pelatihan berikutnya. Momen ini dikenal sebagai penghalang sinkronisasi karena fase berikutnya tidak akan dimulai sampai semua node disinkronkan. 

Node yang tertinggal—pekerja yang membutuhkan waktu lebih lama daripada pekerja lain untuk menyelesaikan tugas mereka—sehingga memperlambat seluruh proses. Sistem asinkron menghilangkan penghalang ini, namun berisiko memiliki beberapa node yang beroperasi dengan konfigurasi parameter usang.

Konsumsi energi

Jaringan terdistribusi dapat mengonsumsi sangat banyak energi, tidak hanya karena node tetapi juga komunikasi di antara mereka. Konsumsi energi dapat bervariasi tergantung pada implementasi dan arsitektur sistem ML terdistribusi. 

  • Persyaratan komputasi: GPU berkinerja tinggi yang dibutuhkan untuk banyak tugas ML yang menantang dan memerlukan banyak energi. 

  • Komunikasi: Node membutuhkan jaringan berkecepatan tinggi untuk berkomunikasi secara efektif dan meminimalkan overhead sinkronisasi. 

  • Komputasi cloud atau edge: Pusat data hyperscale terpusat yang mendukung model AI terkemuka mengonsumsi energi dalam jumlah sangat besar. Komputasi edge dapat membantu menurunkan biaya jaringan. 

  • Pilihan algoritma dan pemrosesan data: Memilih algoritma yang tepat dan mengikuti praktik pemrosesan data yang baik seperti rekayasa fitur dapat menjadikan model lebih efisien.

Kerangka kerja machine learning terdistribusi

Kerangka kerja ML terdistribusi menerapkan machine learning sekaligus mengoptimalkan memori dan penggunaan sumber daya komputasi. Mereka juga dapat membantu menskalakan implementasi ML, mempersingkat waktu pelatihan, dan mengontrol biaya.

Kerangka kerja ML terdistribusi yang terkenal meliputi:

  • PyTorch Distributed
     

  • Apache Spark
     

  • TensorFlow Distributed
     

  • Ray Train
     

  • InstructLab

PyTorch Distributed

Tersedia dalam kerangka kerja PyTorch ML yang populer, PyTorch Distributed adalah kumpulan alat untuk membangun dan menskalakan model pembelajaran mendalam di berbagai perangkat. Paket torch.distributed mencakup komunikasi di dalam node, seperti dengan AllReduce. Dukungan bawaan untuk paralelisme data dan paralelisme model memungkinkan berbagai pendekatan pelatihan terdistribusi.

Apache Spark

Apache Spark adalah kerangka kerja ML yang sudah ada sejak lama dengan dukungan untuk pelatihan terdistribusi. Pengguna dapat membangun saluran ML menyeluruh yang terintegrasi dengan ekosistem Spark yang lebih besar, termasuk Spark SQL untuk manipulasi basis data. Spark menawarkan dua pustaka: MLLib asli dan SparkML yang lebih baru.

TensorFlow Distributed

API tf.distribute.Strategy dalam TensorFlow membuka pintu ke ML terdistribusi dan berisi dukungan untuk berbagai skema: banyak GPU pada satu mesin, banyak GPU pada beberapa mesin, dan banyak lagi. Sebagai contoh, ParameterServerStrategy menyimpan parameter pada server khusus, tempat node pekerja mengaksesnya.

Ray Train

Ray Train adalah pustaka pelatihan terdistribusi yang dapat diskalakan dan penyempurnaan dalam kerangka kerja Ray ML untuk komputasi terdistribusi. Ray Train kompatibel dengan PyTorch dan TensorFlow. Pustaka Ray Tune mendukung penyetelan hiperparameter terdistribusi di beberapa perangkat.

InstructLab

Pendekatan baru InstructLab pada ML terdistribusi menghindari klaster GPU tradisional demi pendekatan berbasis komunitas—hampir seperti penggalangan dana yang bersumber dari banyak orang. Anggota komunitas menyumbangkan pembaruan parameter ke repositori terpusat dan dapat menyempurnakan model pada perangkat pribadi mereka.

Solusi terkait
IBM watsonx.ai

Latih, validasi, lakukan tuning, dan terapkan AI generatif, model dasar, dan kemampuan machine learning dengan IBM watsonx.ai, studio perusahaan generasi berikutnya untuk pembangun AI. Bangun aplikasi AI dalam waktu singkat, dengan sedikit data.

Temukan watsonx.ai
Solusi kecerdasan buatan (AI)

Gunakan AI di bisnis Anda dalam perpaduan antara keahlian AI terdepan di industri dari IBM dan portofolio solusi Anda.

Jelajahi solusi AI
Konsultasi dan layanan AI

Temukan kembali alur kerja dan operasi yang penting dengan menambahkan AI untuk memaksimalkan pengalaman, pengambilan keputusan secara real-time, dan nilai bisnis.

Jelajahi layanan AI
Ambil langkah selanjutnya

Dapatkan akses satu atap ke kemampuan yang mencakup siklus hidup pengembangan AI. Hasilkan solusi AI yang kuat dengan antarmuka ramah pengguna, alur kerja yang efisien, serta akses ke API dan SDK berstandar industri.

Jelajahi watsonx.ai Pesan demo langsung