digilib@itb.ac.id +62 812 2508 8800

ABSTRAK Muhamad Aditya Farizki
PUBLIC Alice Diniarti

COVER Muhamad Aditya Farizki
PUBLIC Alice Diniarti

BAB 1 Muhamad Aditya Farizki
Terbatas  Alice Diniarti
» Gedung UPT Perpustakaan

BAB 2 Muhamad Aditya Farizki
Terbatas  Alice Diniarti
» Gedung UPT Perpustakaan

BAB 3 Muhamad Aditya Farizki
Terbatas  Alice Diniarti
» Gedung UPT Perpustakaan

BAB 4 Muhamad Aditya Farizki
Terbatas  Alice Diniarti
» Gedung UPT Perpustakaan

BAB 5 Muhamad Aditya Farizki
PUBLIC Alice Diniarti

PUSTAKA Muhamad Aditya Farizki
PUBLIC Alice Diniarti

Deep learning merupakan salah satu metode pembelajaran mesin yang paling banyak digunakan. Metode deep learning dapat menghasilkan model yang memiliki akurasi relatif tinggi dibanding metode-metode machine learning lainnya, namun proses training untuk mendapatkan model tersebut membutuhkan waktu yang lama dan resource yang besar. Selain itu, karena membutuhkan waktu yang lama, ketika terjadi kegagalan pada proses training, waktu yang hilang pun cukup besar. Oleh karena itu terdapat insentif besar untuk mempercepat proses training model deep learning dan menangani kasus kegagalan yang mungkin terjadi. Microsoft melalu Project Fiddle mengembangkan metode baru yaitu PipeDream untuk mempercepat proses training model deep learning. PipeDream adalah metode pipeline parallelism yang mengkombinasikan metode data parallelism dan model parallelism untuk mendapatkan speedup yang optimal. Metode PipeDream, dan metode distributed training lainnya memiliki masalah pada faktor fault tolerance dan resource management. Terdapat sebuah platform yang umum digunakan untuk menangani kedua masalah tersebut yaitu Kubernetes. Kubernetes memiliki fitur auto rollout yang dapat mencari dan memberikan resource kepada proses yang membutuhkan. Kubernetes juga memiliki fitur self healing yang dapat memulai ulang proses yang gagal. Tugas akhir ini mengimplementasikan PipeDream menggunakan Kubernetes untuk mendapatkan proses training model deep learning yang cepat dan fault tolerant. Beberapa modifikasi harus dilakukan pada metode PipeDream untuk dapat memanfaatkan fitur-fitur Kubernetes. Modifikasi harus dilakukan pada proses memulai training, proses checkpointing, menambahkan proses healthcheck, dan kemudian menambahkan beberapa komponen seperti weight database filesystem untuk menyimpan data checkpoint dari tiap proses training. Sistem hasil implementasi PipeDream menggunakan Kubernetes dapat menyelesaikan masalah fault tolerance tanpa memiliki overhead yang signifikan. Hasil implementasi diujikan dengan beberapa kasus kegagalan yaitu network fault (kondisi dimana network tidak dapat diakses), machine fault (kondisi dimana mesin mengalami masalah), dan runtime exception (kondisi dimana program mengalami masalah.