5 Jenis Akselerator ML – Menuju AI

5 Jenis Akselerator ML – Menuju AI

Pengarang: Luhui Hu

Awalnya diterbitkan di Towards AI the World’s Leading AI and Technology News and Media Company. Jika Anda sedang membangun produk atau layanan terkait AI, kami mengundang Anda untuk mempertimbangkan untuk menjadi sponsor AI. Di Towards AI, kami membantu menskalakan AI dan startup teknologi. Biarkan kami membantu Anda melepaskan teknologi Anda kepada massa.

Ikhtisar komprehensif tentang akselerator pembelajaran mesin untuk pelatihan dan penyajian

Dekade terakhir telah menjadi era pembelajaran yang mendalam. Kami senang dengan pencapaian yang tak henti-hentinya dari AlphaGo hingga DELL-E 2 dan banyak lagi. Dan kami tidak dapat menghitung berapa banyak hal yang didukung AI telah terjadi dalam kehidupan sehari-hari kami, termasuk perangkat Alexa, rekomendasi Iklan, robot gudang, mobil self-driving, dan banyak lagi.

Foto oleh Joshua Woroniecki di Unsplash

Beberapa tahun terakhir telah melihat pertumbuhan eksponensial dalam skala model pembelajaran yang mendalam. Bukan berita bahwa model Wu Dao 2.0 berisi 1,75 triliun parameter, dan dibutuhkan sekitar 25 hari untuk melatih GPT-3 pada 240 ml.p4d.24xcontoh besar platform pelatihan SageMaker.

Namun hal itu menjadi semakin menantang seiring dengan berkembangnya pelatihan dan penyajian pembelajaran yang mendalam. Skalabilitas dan efisiensi adalah dua tantangan utama untuk pelatihan dan penyajian karena pertumbuhan model pembelajaran yang mendalam.

Apakah sistem pembelajaran mendalam terjebak dalam kebiasaan?

Tidak! Saya memperkenalkan pelatihan paralel terdistribusi untuk pelatihan penskalaan dalam dua artikel saya sebelumnya: paralelisme model dan pelatihan paralel terdistribusi. Saya membagikan kompiler ML untuk mempercepat pelatihan dan penyajian.

Apakah ini semua solusi untuk payung pembelajaran yang mendalam?

Tidak! Di sini saya akan merangkum lima jenis utama akselerator ML atau area akselerasi.

Memahami Siklus Hidup ML dalam Rekayasa AI

Sebelum membahas akselerator ML sepenuhnya, pertama-tama mari kita kunjungi siklus hidup ML.

Siklus hidup ML adalah siklus hidup data dan model. Data adalah makanan untuk ML dan dapat menentukan kualitas model. Setiap area dalam siklus hidup penuh dengan peluang untuk akselerasi.

MLOps dapat mengotomatiskan proses penerapan dan penyajian model ML. Tetapi ini terbatas pada proses horizontal alur kerja AI dan tidak dapat meningkatkan pelatihan dan penyajian secara mendasar karena sifat operasinya.

Rekayasa AI, jauh melampaui MLOps, dapat secara holistik (baik horizontal maupun vertikal) merekayasa proses alur kerja ML serta arsitektur pelatihan dan penyajian. Selain itu, ini dapat mempercepat penayangan dan pelatihan melalui orkestrasi yang efektif untuk seluruh siklus hidup ML.

Berdasarkan siklus hidup ML holistik dengan rekayasa AI, ada lima jenis utama akselerator ML (atau area percepatan): akselerator perangkat keras, platform komputasi AI, kerangka kerja AI, kompiler ML, dan layanan cloud. Silakan lihat diagram hubungan mereka di bawah ini.

Hubungan Akselerator Pelatihan dan Pelayanan (oleh penulis)

Kita dapat melihat akselerator perangkat keras dan kerangka kerja AI adalah arus utama akselerasi. Namun baru-baru ini, kompiler ML, platform komputasi AI, dan layanan cloud ML menjadi semakin penting.

Mari kita lihat lebih dekat mereka di bawah ini.

1. Kerangka AI

Kami tidak dapat melewatkan memilih kerangka kerja AI yang tepat ketika berbicara tentang mempercepat pelatihan dan penyajian ML. Sayangnya, tidak ada kerangka kerja AI yang sempurna atau terbaik untuk semua kasus penggunaan. Tiga kerangka kerja AI yang banyak digunakan dalam penelitian dan produksi adalah TensorFlow, PyTorch, dan JAX. Mereka memimpin dari perspektif yang berbeda, seperti kemudahan penggunaan, kematangan produksi, dan skalabilitas.

TensorFlow: TensorFlow adalah framework AI unggulan. TensorFlow telah mendominasi komunitas open source pembelajaran mendalam sejak awal. TensorFlow Serving adalah platform yang matang dan terdefinisi dengan baik. TensorFlow.js dan TensorFlow Lite juga siap untuk web dan IoT.

Namun karena keterbatasan eksplorasi awal pembelajaran mendalam, TensorFlow 1.x adalah tentang membangun grafik statis dengan cara yang sangat non-Pythonic. Ini menjadi penghalang untuk evaluasi instan menggunakan mode “bersemangat”, yang memungkinkan PyTorch untuk meningkatkan penelitian dengan cepat. TensorFlow 2.x mencoba mengejar, tetapi sayangnya, meningkatkan dari TensorFlow 1.x ke 2.x harus brutal.

TensorFlow juga memperkenalkan Keras untuk penggunaan yang lebih mudah dari compiler pengoptimalan level tinggi dan XLA (Accelerated Linear Algebra) untuk meningkatkan kecepatan level rendah.

PyTorch: Dengan mode bersemangat dan pendekatan Pythonic, PyTorch adalah kekuatan yang signifikan dalam dunia pembelajaran mendalam saat ini, mulai dari penelitian hingga produksi. Selain TorchServe, PyTorch terintegrasi dengan platform kerangka-agnostik seperti Kubeflow. Juga, popularitas PyTorch terkait dengan keberhasilan perpustakaan Transformers Hugging Face di tempat pertama.

JAX: Berdasarkan NumPy dan JIT (Just-In-Time) yang dipercepat perangkat, Google meluncurkan JAX. Ini adalah kerangka kerja yang lebih asli untuk pembelajaran mendalam yang dengan cepat mendapatkan daya tarik dalam penelitian, seperti yang dilakukan PyTorch beberapa tahun yang lalu. Tapi itu bukan produk Google “resmi”, seperti yang diklaim Google.

2. Akselerator Perangkat Keras

Kami dapat memiliki artikel panjang tentang akselerator perangkat keras. Tidak diragukan lagi, GPU NVIDIA dinyalakan untuk mempercepat pelatihan DL, meskipun awalnya ditujukan untuk kartu video.

Popularitas kartu grafis untuk pelatihan jaringan saraf meledak setelah munculnya GPU tujuan umum. GP-GPU ini dapat mengeksekusi kode arbitrer, tidak hanya merender subrutin. Bahasa pemrograman CUDA NVIDIA menyediakan cara untuk menulis kode arbitrer ini dalam bahasa seperti C. Dengan model pemrograman yang relatif nyaman, paralelisme masif, dan bandwidth memori tinggi, GP-GPU kini menawarkan platform ideal untuk pemrograman jaringan saraf.

Saat ini, NVIDIA mendukung berbagai GPU dari desktop hingga seluler, workstation, workstation seluler, konsol, dan pusat data.

Dengan kesuksesan GPU NVIDIA, tidak ada kekurangan penerus, seperti GPU AMD, TPU ASIC Google, dll.

3. Platform Komputasi AI

Seperti dijelaskan di atas, kecepatan pelatihan dan penyajian ML sangat bergantung pada perangkat keras (misalnya, GPU dan TPU). Driver ini (yaitu, platform komputasi AI) menjadi penting untuk kinerja. Ada dua yang terkenal: CUDA dan OpenCL.

CUDA: CUDA (Compute Unified Device Architecture) adalah paradigma pemrograman paralel yang dirilis pada tahun 2007 oleh NVIDIA. Ini dirancang untuk prosesor grafis dan beragam aplikasi tujuan umum untuk GPU. CUDA adalah API berpemilik yang hanya mendukung GPU NVIDIA untuk Arsitektur Tesla. Kartu grafis yang didukung CUDA termasuk seri GeForce 8, Tesla dan Quadro.

OpenCL: OpenCL (Open Computing Language) awalnya dikembangkan oleh Apple dan dikelola oleh grup Khronos untuk komputasi heterogen, termasuk CPU, GPU, DSP, dan jenis prosesor lainnya. Bahasa portabel ini cukup mudah beradaptasi untuk memungkinkan setiap platform perangkat keras mencapai kinerja tinggi, termasuk GPU NVIDIA.

NVIDIA sekarang merupakan konforman OpenCL 3.0 dan tersedia pada driver R465 dan yang lebih baru. Menggunakan OpenCL API, orang dapat meluncurkan kernel komputasi yang ditulis menggunakan subset terbatas dari bahasa pemrograman C pada GPU.

4. Kompiler ML

Kompiler ML memainkan peran penting dalam mempercepat pelatihan dan penyajian. Kompiler ML dapat secara signifikan meningkatkan efisiensi penyajian model skala besar. Ada banyak compiler populer, seperti Apache TVM, LLVM, Google MLIR, TensorFlow XLA, Meta Glow, PyTorch nvFuser, dan Intel PlaidML. Silakan merujuk ke ML Compilers untuk lebih jelasnya.

5. Layanan Cloud ML

Platform dan layanan cloud ML mengelola platform ML di cloud. Mereka dapat mengoptimalkan untuk meningkatkan efisiensi dalam beberapa cara.

Ambil Amazon SageMaker, misalnya. Ini adalah layanan platform cloud ML terkemuka. SageMaker menyediakan fitur ekstensif untuk siklus hidup ML, mulai dari persiapan hingga pembuatan, pelatihan/penyesuaian, dan penerapan/pengelolaan.

Ini mengoptimalkan banyak cara untuk pelatihan dan efisiensi penyajian, misalnya, titik akhir multi-model pada GPU, pelatihan hemat biaya menggunakan cluster heterogen, dan prosesor Graviton eksklusif yang cocok untuk inferensi ML berbasis CPU.

Catatan Akhir

Ini menjadi semakin menantang seiring dengan pelatihan DL dan skala penyajian. Meningkatkan pelatihan DL dan efisiensi layanan adalah hal yang canggih. Berdasarkan siklus hidup ML, ada lima area untuk mempercepat pelatihan dan penyajian ML: kerangka kerja AI, akselerator perangkat keras, platform komputasi, kompiler ML, dan layanan cloud. Rekayasa AI dapat mengatur semua ini bersama-sama untuk efisiensi komprehensif dengan prinsip-prinsip rekayasa.

5 Jenis Akselerator ML awalnya diterbitkan di Towards AI on Medium, di mana orang-orang melanjutkan percakapan dengan menyoroti dan menanggapi cerita ini.

Diterbitkan melalui Menuju AI

Author: Scott Anderson