Ilmu Data Bertenaga GPU (BUKAN Pembelajaran Mendalam) dengan RAPIDS

Node Sumber: 997659

Ilmu Data Bertenaga GPU (BUKAN Pembelajaran Mendalam) dengan RAPIDS

Cara memanfaatkan kekuatan GPU Anda untuk ilmu data reguler dan pembelajaran mesin bahkan jika Anda tidak melakukan banyak pekerjaan pembelajaran mendalam.



header image
Sumber gambarPixabay (Gambar gratis)

Apakah Anda mencari "ilmu data bertenaga GPU"?

 
 
Bayangkan diri Anda menjadi ilmuwan data, atau analis bisnis, atau peneliti akademis di bidang Fisika/Ekonomi/Sains saraf…

Anda melakukan banyak perselisihan data, pembersihan, uji statistik, visualisasi secara teratur. Anda juga bermain-main dengan banyak model linier menyesuaikan data dan kadang-kadang menjelajah ke Hutan Acak. Anda juga menjadi kekelompokan kumpulan data besar. Kedengarannya cukup akrab?

Namun, mengingat sifat dari kumpulan data yang Anda kerjakan (kebanyakan berbentuk tabel dan terstruktur), Anda tidak terlalu berani mempelajarinya secara mendalam. Anda lebih suka menempatkan semua sumber daya perangkat keras yang Anda miliki ke dalam hal-hal yang benar-benar Anda lakukan sehari-hari, daripada menghabiskan beberapa model pembelajaran mendalam yang mewah. Sekali lagi, akrab?

Anda mendengar tentang kekuatan luar biasa dan kecakapan komputasi yang sangat cepat dari Sistem GPU seperti yang dari NVidia untuk semua jenis aplikasi industri dan ilmiah.

Dan, Anda terus berpikir—“Apa yang ada untukku? Bagaimana saya bisa memanfaatkan potongan semikonduktor yang kuat ini dalam alur kerja khusus saya?? "

Anda sedang mencari ilmu data yang didukung GPU.

Salah satu opsi terbaik (dan tercepat) Anda untuk mengevaluasi pendekatan ini adalah dengan menggunakan kombinasi dari Awan Saturnus + CEPATBiar saya jelaskan secara detail…

GPU dalam cerita rakyat AI/ML terutama untuk pembelajaran mendalam

 
 
Sementara penggunaan GPU dan komputasi terdistribusi dibahas secara luas di kalangan akademis dan bisnis untuk tugas inti AI/ML (mis. Jaringan saraf dalam 1000 lapis untuk klasifikasi gambar atau BERT . miliar-parameter model sintesis ucapan), mereka menemukan lebih sedikit cakupan dalam hal utilitas mereka untuk ilmu data reguler dan tugas-tugas rekayasa data.

Meskipun begitu, tugas terkait data adalah pendahulu penting untuk setiap beban kerja ML dalam saluran AI dan mereka sering membentuk persentase mayoritas dari waktu dan usaha intelektual dihabiskan oleh ilmuwan data atau bahkan insinyur ML. Baru-baru ini, pelopor AI yang terkenal
Andrew Ng | berbicara tentang bergerak dari model-sentris ke pendekatan data-sentris ke AI pengembangan alat. Ini berarti menghabiskan lebih banyak waktu dengan data mentah dan melakukan pra-pemrosesan sebelum beban kerja AI yang sebenarnya dijalankan di saluran Anda.

Jadi, pertanyaan pentingnya adalah: Bisakah kita memanfaatkan kekuatan GPU dan komputasi terdistribusi untuk pekerjaan pemrosesan data reguler??



Sumber gambar: Penulis membuat kolase dari gambar gratis (Pixabay)

 

Sementara penggunaan GPU dan komputasi terdistribusi dibahas secara luas di kalangan akademis dan bisnis untuk tugas-tugas inti AI/ML, mereka menemukan lebih sedikit cakupan dalam utilitas mereka untuk ilmu data reguler dan tugas-tugas rekayasa data.

Ekosistem RAPIDS yang fantastis

 
 
Grafik RAPIDS suite perpustakaan perangkat lunak dan API memberi Anda — ilmuwan data biasa (dan belum tentu praktisi pembelajaran mendalam) — opsi dan fleksibilitas untuk dijalankan saluran ilmu data dan analitik ujung-ke-ujung sepenuhnya pada GPU.

Proyek sumber terbuka ini diinkubasi oleh Nvidia dengan membangun alat untuk memanfaatkan primitif CUDA. Ini secara khusus berfokus pada mengekspos paralelisme GPU dan fitur kecepatan memori bandwidth tinggi melalui bahasa Python yang ramah data-science.

Tugas persiapan dan pertengkaran data umum sangat dihargai dalam ekosistem RAPIDS. Itu juga meminjamkan sejumlah besar dukungan untuk multi-node, penyebaran multi-GPU, dan pemrosesan terdistribusi. Sedapat mungkin, itu terintegrasi dengan perpustakaan lain yang membuat kehabisan memori (yaitu ukuran dataset lebih besar dari RAM komputer individu) pemrosesan data mudah dan dapat diakses oleh ilmuwan data individu.



Sumber gambar: Penulis membuat kolase

 

Tiga komponen paling menonjol (dan Pythonic) — yang sangat menarik bagi ilmuwan data umum — adalah,

  • Cupy: Pustaka larik bertenaga CUDA yang terlihat dan terasa seperti Numpy, saat menggunakan berbagai pustaka CUDA misalnya, cuBLAS, cuDNN, cuRand, cuSolver, cuSPARSE, cuFFT, dan NCCL untuk memanfaatkan sepenuhnya arsitektur GPU di bawahnya.
  • CuDF: Ini adalah pustaka DataFrame GPU untuk memuat, menggabungkan, menggabungkan, memfilter, dan memanipulasi data dengan API mirip panda. Insinyur data dan ilmuwan data dapat menggunakannya untuk mempercepat alur tugas mereka dengan mudah menggunakan GPU yang kuat tanpa pernah mempelajari mur dan baut pemrograman CUDA.
  • CuML: Pustaka ini memungkinkan ilmuwan data, analis, dan peneliti untuk menjalankan algoritme ML tradisional/klasik dan tugas pemrosesan terkait yang sepenuhnya memanfaatkan kekuatan GPU. Secara alami, ini sebagian besar digunakan dengan kumpulan data tabular. Pikirkan tentang Scikit-learn dan apa yang dapat dilakukannya dengan ratusan Cuda dan Tensor Cores di kartu GPU Anda! Sebagai isyarat untuk itu, dalam banyak kasus, API Python cuML cocok dengan Scikit-learn. Selanjutnya, ia mencoba menawarkan dukungan multi-GPU dan multi-node-GPU by berintegrasi dengan anggun dengan Senja, di mana pun, untuk memanfaatkan pemrosesan terdistribusi/komputasi cluster yang sebenarnya.


Bisakah kita memanfaatkan kekuatan GPU dan komputasi terdistribusi untuk pekerjaan pemrosesan data reguler dan pembelajaran mesin dengan data terstruktur?

Apakah berbeda dengan menggunakan Apache Spark?

 
 
Anda mungkin bertanya bagaimana pemrosesan data bertenaga GPU ini berbeda dengan menggunakan Apache Spark. Sebenarnya, ada beberapa perbedaan halus, dan baru-baru ini, dengan Spark 3.0, GPU adalah sumber utama untuk beban kerja Spark.

Mempercepat Apache Spark 3.0 dengan GPU dan RAPIDS | Blog Pengembang NVIDIA
 

Kami tidak memiliki waktu atau ruang untuk membahas perbedaan unik dari pendekatan ilmu data bertenaga GPU ini vs. tugas Big Data yang sangat cocok untuk Apache Spark. Tetapi tanyakan pada diri Anda pertanyaan-pertanyaan ini dan Anda mungkin akan memahami perbedaan yang halus,

"Sebagai ilmuwan data yang memodelkan transaksi ekonomi dan manajemen portofolio, saya ingin memecahkan sistem persamaan linear dengan 100,000 variabel. Apakah saya menggunakan perpustakaan Aljabar Linear murni atau Apache Spark? "

"Sebagai bagian dari pipa kompresi gambar, saya ingin menggunakan Dekomposisi Nilai Singular pada matriks besar jutaan entri. Apakah Apache Spark pilihan yang baik untuk itu?? "

Ukuran masalah besar tidak selalu berarti ekosistem Apache Spark atau Hadoop. Komputasi Besar tidak setara dengan Big Data. Sebagai ilmuwan data yang berpengetahuan luas, Anda perlu mengetahui keduanya untuk mengatasi semua jenis masalah.

RAPIDS secara khusus berfokus pada mengekspos paralelisme GPU dan fitur kecepatan memori bandwidth tinggi melalui API Python.

Apa yang kami tampilkan di artikel ini?

 
 

Contoh tajam dari CuPy dan CuML saja

 
Jadi, dalam artikel ini, kami hanya akan menunjukkan contoh nyata dari CuPy dan CuML,

  • bagaimana mereka membandingkan (dalam kecepatan) dengan fungsi/ estimator Numpy dan Scikit-belajar yang sesuai
  • bagaimana ukuran data/masalah penting dalam perbandingan kecepatan ini.

Contoh CuDF di artikel selanjutnya

 
Meskipun contoh rekayasa data yang mirip dengan pemrosesan data Panda sangat menarik bagi banyak ilmuwan data, kami akan membahas contoh CuDF di artikel selanjutnya.

Apa platform perangkat keras berbasis GPU saya?

 
Saya menggunakan file Awan Saturnus Instans GPU Tesla T4 karena secara harfiah 5 menit kerja untuk berputar sumber daya komputasi berfitur lengkap dan dimuat (dengan DS dan AI) di cloud untuk semua ilmu data saya bekerja dengan layanan mereka. Selama saya tidak melebihi 10 jam penggunaan Notebook Jupyter per bulan, Gratis! Jika Anda ingin membaca lebih lanjut tentang layanan mereka,

Saturn Cloud Hosted Telah Diluncurkan: Ilmu Data GPU untuk Semua Orang!

Komputasi GPU adalah masa depan ilmu data. Paket seperti RAPIDS, TensorFlow, dan PyTorch memungkinkan…

Selain memiliki GPU Tesla T4, ini adalah mesin 4-core Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz dengan 16 GB RAM dan 10 GB persistent disk. Jadi, ini adalah pengaturan yang cukup normal dari sudut pandang konfigurasi perangkat keras (hard drive terbatas karena tingkat gratisnya) yaitu setiap ilmuwan data mungkin memiliki perangkat keras semacam ini. Satu-satunya faktor yang membedakan adalah keberadaan GPU dan menyiapkan semua pustaka CUDA dan Python dengan cara yang tepat sehingga rangkaian RAPIDS berfungsi tanpa masalah.


Ukuran masalah besar tidak selalu berarti ekosistem Apache Spark atau Hadoop. Komputasi Besar tidak setara dengan Big Data. Sebagai ilmuwan data yang berpengetahuan luas, Anda perlu mengetahui keduanya untuk mengatasi semua jenis masalah.

Memecahkan sistem persamaan linear

 
Kami membuat sistem persamaan linier dengan berbagai ukuran dan menggunakan Numpy (dan CuPy) linalg.solverutin untuk menyelesaikannya dengan kode berikut,



Dan, kode berubah dengan satu huruf (dalam beberapa doa) untuk implementasi CuPy!



Perhatikan juga, bagaimana kita dapat membuat array CuPy dari array Numpy sebagai argumen.

Meski hasilnya dramatis. CuPy mulai lambat atau pada kecepatan yang sama dengan Numpy, tetapi mengalahkannya tepat untuk ukuran masalah besar (jumlah persamaan).



Dekomposisi nilai singular

 
Selanjutnya, kami menangani masalah dekomposisi nilai tunggal menggunakan matriks persegi yang dihasilkan secara acak (diambil dari distribusi normal) dengan berbagai ukuran. Kami tidak mengulangi blok kode di sini tetapi hanya menunjukkan hasil untuk singkatnya.



Penting untuk dicatat bahwa algoritma CuPy tidak menunjukkan kinerja yang jauh lebih unggul daripada algoritma Numpy di kelas masalah ini. Mungkin, ini adalah sesuatu yang harus diambil oleh pengembang CuPy untuk diperbaiki.

Kembali ke dasar: Inversi matriks

 
Terakhir, kita kembali ke dasar dan mempertimbangkan masalah mendasar dari inversi matriks (digunakan di hampir semua algoritma pembelajaran mesin). Hasilnya sekali lagi menunjukkan peningkatan kinerja yang sangat menguntungkan oleh algoritma CuPy dibandingkan dari paket Numpy.



Mengatasi masalah pengelompokan K-means

 
Selanjutnya, kami mempertimbangkan masalah pembelajaran pengelompokan tanpa pengawasan menggunakan algoritma k-means yang terlalu familiar. Di sini, kami membandingkan fungsi CuML dengan estimator yang setara dari paket Scikit-learn.

Sekedar referensi, berikut perbandingan API antara kedua estimator tersebut.



Sumber gambarScikit-belajar dan Situs web CuML (Proyek sumber terbuka)

 

Berikut adalah hasil untuk dataset dengan 10 fitur/dimensi.



Dan, inilah hasil eksperimen lain dengan kumpulan data 100 fitur.



Jelas, baik ukuran sampel (jumlah baris) dan dimensi (jumlah kolom) penting dalam bagaimana kinerja akselerasi berbasis GPU lebih unggul.

Masalah regresi linier yang terlalu familiar

 
Siapa yang dapat mengabaikan masalah regresi linier untuk perbandingan kecepatan saat berurusan dengan kumpulan data tabular? Mengikuti irama seperti sebelumnya, kami memvariasikan ukuran masalah — kali ini jumlah sampel dan dimensi secara bersamaan — dan membandingkan kinerja CuML LinearRegression estimator yang diperoleh dari Scikit-learn stable.

Sumbu X pada gambar berikut menunjukkan ukuran masalah — dari 1,000 sampel/50 fitur hingga 20,000 sampel/1000 fitur.

Sekali lagi, estimator CuML berkinerja jauh lebih baik seiring dengan meningkatnya kompleksitas masalah (ukuran sampel dan dimensi).



Kesimpulan

 
 
Kami berfokus pada dua komponen paling mendasar dari kerangka kerja RAPIDS, yang bertujuan untuk menghadirkan kekuatan GPU ke tugas sehari-hari analisis data dan pembelajaran mesin, bahkan ketika ilmuwan data tidak melakukan tugas pembelajaran mendalam apa pun.



Sumber gambar: Dibuat oleh penulis dengan gambar Pixabay gratis (Link-1Link-2Link-3)

 

Kami menggunakan a Awan Saturnus Contoh berbasis Tesla T4 untuk penyiapan yang mudah, gratis, dan cepat dan menunjukkan beberapa fitur pustaka CuPy dan CuML dan perbandingan kinerja dari algoritma yang banyak digunakan.

  • Tidak semua algoritma dari perpustakaan RAPIDS jauh lebih unggul tetapi sebagian besar.
  • Secara umum, peningkatan kinerja meningkat pesat seiring dengan meningkatnya kompleksitas masalah (ukuran sampel dan dimensi)
  • Jika Anda memiliki GPU, selalu coba RAPIDS, bandingkan, dan uji apakah Anda mendapatkan kinerja apa pun, dan jadikan itu sebagai pekerja keras tepercaya dari jalur ilmu data Anda.
  • Perubahan kode minimal, hampir tidak ada untuk beralih.

Biarkan kekuatan GPU memulai alur kerja analitik dan ilmu data Anda.

Anda dapat memeriksa penulis GitHub repositori untuk kode, ide, dan sumber daya dalam pembelajaran mesin dan ilmu data. Jika Anda, seperti saya, bersemangat tentang AI / pembelajaran mesin / ilmu data, jangan ragu untuk tambahkan saya di LinkedIn or ikuti saya di Twitter.

Terima kasih kepada Mel.

 
Original. Diposting ulang dengan izin.

Terkait:

Sumber: https://www.kdnuggets.com/2021/08/gpu-powered-data-science-deep-learning-rapids.html

Stempel Waktu:

Lebih dari KDnugget