GPU yang sibuk: Metode sampling dan pipelining mempercepat pembelajaran mendalam pada grafik besar Kecerdasan Data PlatoBlockchain. Pencarian Vertikal. Ai.

GPU yang sibuk: Metode sampling dan pipelining mempercepat pembelajaran mendalam pada grafik besar

Grafik, jaringan node yang berpotensi luas yang dihubungkan oleh edge, dapat digunakan untuk mengekspresikan dan menginterogasi hubungan antara data, seperti koneksi sosial, transaksi keuangan, lalu lintas, jaringan energi, dan interaksi molekuler. Saat peneliti mengumpulkan lebih banyak data dan membangun gambar grafis ini, peneliti akan membutuhkan metode yang lebih cepat dan lebih efisien, serta daya komputasi yang lebih besar, untuk melakukan pembelajaran mendalam pada mereka, dengan cara jaringan saraf grafik (GNN).  

Sekarang, sebuah metode baru, yang disebut SALIENT (SAMPling, sLIcing, and data movemeNT), dikembangkan oleh para peneliti di MIT dan IBM Research, meningkatkan kinerja pelatihan dan inferensi dengan mengatasi tiga kemacetan utama dalam komputasi. Ini secara dramatis mengurangi runtime GNN pada kumpulan data besar, yang, misalnya, berisi 100 juta node dan 1 miliar edge dalam skala besar. Lebih lanjut, tim menemukan bahwa teknik ini dapat diskalakan dengan baik ketika daya komputasi ditambahkan dari satu hingga 16 unit pemrosesan grafis (GPU). Karya tersebut dipresentasikan pada Konferensi Kelima tentang Pembelajaran Mesin dan Sistem.

โ€œKami mulai melihat tantangan yang dialami sistem saat ini saat menskalakan teknik pembelajaran mesin canggih untuk grafik menjadi kumpulan data yang sangat besar. Ternyata ada banyak pekerjaan yang harus diselesaikan, karena banyak sistem yang ada mencapai kinerja yang baik terutama pada kumpulan data yang lebih kecil yang sesuai dengan memori GPU,โ€ kata Tim Kaler, penulis utama dan postdoc di MIT Computer Science dan Laboratorium Kecerdasan Buatan (CSAIL).

Dengan kumpulan data yang luas, para ahli mengartikan skala seperti seluruh jaringan Bitcoin, di mana pola dan hubungan data tertentu dapat menjelaskan tren atau permainan curang. โ€œAda hampir satu miliar transaksi Bitcoin di blockchain, dan jika kami ingin mengidentifikasi aktivitas terlarang di dalam jaringan gabungan semacam itu, maka kami menghadapi grafik dengan skala seperti itu,โ€ kata rekan penulis Jie Chen, ilmuwan dan manajer penelitian senior IBM Research dan MIT-IBM Watson AI Lab. โ€œKami ingin membangun sistem yang mampu menangani grafik semacam itu dan memungkinkan pemrosesan seefisien mungkin, karena setiap hari kami ingin mengikuti kecepatan data baru yang dihasilkan.โ€

Rekan penulis Kaler dan Chen termasuk Nickolas Stathas MEng '21 dari Jump Trading, yang mengembangkan SALIENT sebagai bagian dari pekerjaan pascasarjananya; mantan magang MIT-IBM Watson AI Lab dan mahasiswa pascasarjana MIT Anne Ouyang; pascadoktoral MIT CSAIL Alexandros-Stavros Iliopoulos; Ilmuwan Riset CSAIL MIT Tao B. Schardl; dan Charles E. Leiserson, Profesor Teknik Elektro Edwin Sibley Webster di MIT dan peneliti di MIT-IBM Watson AI Lab.     

Untuk masalah ini, tim mengambil pendekatan berorientasi sistem dalam mengembangkan metode mereka: SALIENT, kata Kaler. Untuk melakukan ini, para peneliti menerapkan apa yang mereka anggap penting, optimalisasi dasar komponen yang sesuai dengan kerangka pembelajaran mesin yang ada, seperti PyTorch Geometric dan deep graph library (DGL), yang merupakan antarmuka untuk membangun model pembelajaran mesin. Stathas mengatakan prosesnya seperti mengganti mesin untuk membuat mobil yang lebih cepat. Metode mereka dirancang agar sesuai dengan arsitektur GNN yang ada, sehingga pakar domain dapat dengan mudah menerapkan pekerjaan ini ke bidang yang mereka tentukan untuk mempercepat pelatihan model dan menggali wawasan selama inferensi lebih cepat. Triknya, tim menentukan, adalah untuk membuat semua perangkat keras (CPU, tautan data, dan GPU) sibuk setiap saat: sementara CPU mengambil sampel grafik dan menyiapkan kumpulan kecil data yang kemudian akan ditransfer melalui tautan data , semakin kritis GPU bekerja untuk melatih model pembelajaran mesin atau melakukan inferensi. 

Para peneliti memulai dengan menganalisis kinerja perpustakaan pembelajaran mesin yang umum digunakan untuk GNN (PyTorch Geometric), yang menunjukkan penggunaan sumber daya GPU yang tersedia sangat rendah. Menerapkan pengoptimalan sederhana, para peneliti meningkatkan pemanfaatan GPU dari 10 menjadi 30 persen, menghasilkan peningkatan kinerja 1.4 hingga dua kali lipat dibandingkan dengan kode tolok ukur publik. Kode garis dasar yang cepat ini dapat mengeksekusi satu lintasan lengkap pada kumpulan data pelatihan besar melalui algoritme (zaman) dalam 50.4 detik.                          

Mencari peningkatan kinerja lebih lanjut, para peneliti berangkat untuk memeriksa kemacetan yang terjadi di awal jalur data: algoritme untuk pengambilan sampel grafik dan persiapan mini-batch. Tidak seperti jaringan saraf lainnya, GNN melakukan operasi agregasi lingkungan, yang menghitung informasi tentang sebuah node menggunakan informasi yang ada di node terdekat lainnya dalam grafik โ€” misalnya, dalam grafik jaringan sosial, informasi dari teman dari teman pengguna. Karena jumlah lapisan dalam GNN bertambah, jumlah node yang harus dijangkau jaringan untuk mendapatkan informasi dapat meledak, melebihi batas komputer. Algoritme pengambilan sampel lingkungan membantu dengan memilih subkumpulan node acak yang lebih kecil untuk dikumpulkan; namun, para peneliti menemukan bahwa implementasi saat ini terlalu lambat untuk mengimbangi kecepatan pemrosesan GPU modern. Sebagai tanggapan, mereka mengidentifikasi campuran struktur data, pengoptimalan algoritme, dan sebagainya yang meningkatkan kecepatan pengambilan sampel, yang pada akhirnya meningkatkan operasi pengambilan sampel saja sekitar tiga kali, menjadikan runtime per zaman dari 50.4 menjadi 34.6 detik. Mereka juga menemukan bahwa pengambilan sampel, pada tingkat yang sesuai, dapat dilakukan selama inferensi, meningkatkan efisiensi dan kinerja energi secara keseluruhan, suatu hal yang telah diabaikan dalam literatur, catat tim.      

Dalam sistem sebelumnya, langkah pengambilan sampel ini merupakan pendekatan multi-proses, menciptakan data ekstra dan pergerakan data yang tidak perlu di antara proses. Para peneliti membuat metode SALIENT mereka lebih gesit dengan membuat satu proses dengan utas ringan yang menyimpan data di CPU dalam memori bersama. Selanjutnya, SALIENT mengambil keuntungan dari cache prosesor modern, kata Stathas, memparalelkan pemotongan fitur, yang mengekstraksi informasi relevan dari node yang diminati dan tetangga serta edge di sekitarnya, dalam memori bersama dari cache inti CPU. Ini sekali lagi mengurangi runtime per-Epoch secara keseluruhan dari 34.6 menjadi 27.8 detik.

Kemacetan terakhir yang ditangani para peneliti adalah menyalurkan transfer data mini-batch antara CPU dan GPU menggunakan langkah prefetching, yang akan menyiapkan data tepat sebelum dibutuhkan. Tim menghitung bahwa ini akan memaksimalkan penggunaan bandwidth di tautan data dan menjadikan metode ini pemanfaatan yang sempurna; namun, mereka hanya melihat sekitar 90 persen. Mereka mengidentifikasi dan memperbaiki bug kinerja di pustaka PyTorch populer yang menyebabkan komunikasi bolak-balik yang tidak perlu antara CPU dan GPU. Dengan perbaikan bug ini, tim mencapai runtime per epoch 16.5 detik dengan SALIENT.

โ€œPekerjaan kami menunjukkan, saya pikir, bahwa iblis ada dalam detailnya,โ€ kata Kaler. โ€œSaat Anda memperhatikan detail yang memengaruhi kinerja saat melatih jaringan saraf grafik, Anda dapat menyelesaikan sejumlah besar masalah kinerja. Dengan solusi kami, kami benar-benar terhambat oleh perhitungan GPU, yang merupakan tujuan ideal dari sistem semacam itu.โ€

Kecepatan SALIENT dievaluasi pada tiga kumpulan data standar ogbn-arxiv, ogbn-products, dan ogbn-papers100M, serta dalam pengaturan multi-mesin, dengan tingkat fanout yang berbeda (jumlah data yang akan disiapkan CPU untuk GPU), dan di beberapa arsitektur, termasuk yang terbaru, GraphSAGE-RI. Di setiap pengaturan, SALIENT mengungguli PyTorch Geometric, terutama pada kumpulan data ogbn-papers100M yang besar, berisi 100 juta node dan lebih dari satu miliar edge. pekerjaan ini; dengan 16 GPU, SALIENT merupakan tambahan delapan kali lebih cepat. 

Sementara sistem lain memiliki perangkat keras dan pengaturan eksperimental yang sedikit berbeda, jadi ini tidak selalu merupakan perbandingan langsung, SALIENT masih mengungguli mereka. Di antara sistem yang mencapai akurasi yang sama, angka performa yang representatif mencakup 99 detik menggunakan satu GPU dan 32 CPU, dan 13 detik menggunakan 1,536 CPU. Sebaliknya, runtime SALIENT menggunakan satu GPU dan 20 CPU adalah 16.5 detik dan hanya dua detik dengan 16 GPU dan 320 CPU. โ€œJika Anda melihat angka terbawah yang dilaporkan oleh pekerjaan sebelumnya, runtime GPU 16 kami (dua detik) jauh lebih cepat daripada angka lain yang telah dilaporkan sebelumnya pada kumpulan data ini,โ€ kata Kaler. Para peneliti mengaitkan peningkatan kinerja mereka, sebagian, dengan pendekatan mereka dalam mengoptimalkan kode mereka untuk satu mesin sebelum pindah ke pengaturan terdistribusi. Stathas mengatakan bahwa pelajaran di sini adalah untuk uang Anda, "lebih masuk akal untuk menggunakan perangkat keras yang Anda miliki secara efisien, dan yang paling ekstrem, sebelum Anda mulai meningkatkan ke banyak komputer," yang dapat memberikan penghematan biaya dan emisi karbon yang signifikan. yang bisa datang dengan pelatihan model.

Kapasitas baru ini sekarang akan memungkinkan para peneliti untuk menangani dan menggali lebih dalam grafik yang semakin besar. Misalnya, jaringan Bitcoin yang disebutkan sebelumnya berisi 100,000 node; sistem SALIENT mampu menangani grafik 1,000 kali (atau tiga kali lipat) lebih besar.

โ€œDi masa depan, kami akan melihat tidak hanya menjalankan sistem pelatihan jaringan saraf grafik ini pada algoritme yang ada yang kami terapkan untuk mengklasifikasikan atau memprediksi properti dari setiap node, tetapi kami juga ingin melakukan tugas yang lebih mendalam, seperti mengidentifikasi pola umum dalam grafik (pola subgraf), [yang] mungkin sebenarnya menarik untuk menunjukkan kejahatan keuangan,โ€ kata Chen. โ€œKami juga ingin mengidentifikasi node dalam grafik yang serupa dalam arti bahwa node tersebut mungkin terkait dengan pelaku jahat yang sama dalam kejahatan keuangan. Tugas-tugas ini membutuhkan pengembangan algoritme tambahan, dan mungkin juga arsitektur jaringan saraf.โ€

Penelitian ini didukung oleh MIT-IBM Watson AI Lab dan sebagian oleh US Air Force Research Laboratory dan US Air Force Artificial Intelligence Accelerator.

Stempel Waktu:

Lebih dari Konsultan Blockchain