GPU Anda Tidak Terlalu Kecil… Tapi Setup Anda yang Bermasalah

BBetter Stack
컴퓨터/소프트웨어자격증/평생교육AI/미래기술

Transcript

00:00:00Ini adalah DeepSpeed, pustaka open-source Microsoft yang terhubung langsung ke PyTorch dan mengatasi masalah memori yang sebenarnya.
00:00:07Pustaka ini memungkinkan Anda menjalankan model yang biasanya langsung crash pada satu GPU tanpa membuatnya kelebihan beban; model besar gagal bukan karena lambat.
00:00:14Model tersebut gagal karena status optimizer, gradien, dan parameter akhirnya menghabiskan VRAM Anda. Rahasia DeepSpeed adalah ZeRO, yang memecah status pelatihan.
00:00:23Jadi, Anda tidak menyimpan data yang sama di semua tempat. Kami punya video baru setiap saat, jadi pastikan untuk subscribe.
00:00:30Sekarang, mari kita mulai dan jalankan ini. Saya akan menggunakan Google Colab karena saya memakai Mac dengan chip M4 Pro.
00:00:40Saya tidak punya GPU Nvidia, yang membuatnya agak sulit, tapi saya masih bisa melakukannya di Colab sebagai gantinya.
00:00:46Pertama, saya akan mengecek GPU saya dengan cepat, lalu kita bisa menginstal semua paket via pip.
00:00:51Saya akan menginstal PyTorch, Hugging Face, dan DeepSpeed, lalu menjalankan DS Report untuk mengecek pengaturan CUDA dan compiler.
00:00:59Beberapa instalasi tambahan dilakukan untuk memastikan semuanya berjalan lancar.
00:01:02Lalu kita akan membuat file konfigurasi JSON untuk mengatur DeepSpeed; file konfigurasi ini adalah kunci utamanya.
00:01:09Kita mulai dengan ZeRO Stage 2, yang memecah status optimizer dan gradien di seluruh GPU.
00:01:14Hal ini secara signifikan mengurangi penggunaan memori sementara parameter model tetap direplikasi. Jangan terlalu dipikirkan karena bagian ini sempat membuat saya bingung.
00:01:22Mulailah dari dokumentasi resmi, ubah satu per satu, dan tahan keinginan untuk menambahkan konfigurasi asal-asalan.
00:01:28Konfigurasi tersebut bisa Anda temukan di dokumentasi Hugging Face maupun DeepSpeed.
00:01:34Dan saya juga mendapatkan sebagian besar skrip Python saya dari dokumentasi tersebut.
00:01:37Tetapi saya melakukan beberapa penyesuaian agar sistem Mac saya bisa menanganinya dengan lebih baik.
00:01:42Jika langkah ini gagal, berhenti di sini karena sebagian besar masalah DeepSpeed adalah ketidakcocokan CUDA, bukan model Anda.
00:01:48Sekarang kita akan menjalankan semuanya dan melihat hasilnya.
00:01:51Saya akan menggunakan dataset kecil yang diimpor untuk contoh ini agar prosesnya lebih cepat.
00:01:58Dan berhasil, setelah beberapa menit, kita bisa melihat langkah-langkah yang diambil dan juga puncak memori GPU-nya.
00:02:03Memang, training loss pada percobaan ini tidak banyak berubah atau turun secara signifikan.
00:02:08Tapi kita bisa mengoptimalkannya atau menggunakan dataset yang lebih besar untuk hasil loss yang lebih baik.
00:02:13Inilah yang orang pikir akan mereka dapatkan, namun ternyata tetap mengalami kehabisan memori (OOM).
00:02:16ZeRO hadir dalam beberapa tahap. Setiap tahap menjawab satu pertanyaan: Apa yang boleh saya berhenti simpan di satu GPU?
00:02:24Stage 1 memecah status optimizer, Stage 2 melakukan hal yang sama serta memecah gradien.
00:02:30Anda memangkas lebih dalam hal-hal yang diam-diam menguras memori Anda. Lalu ada ZeRO Stage 3.
00:02:36Ini adalah tahap yang besar; ia memecah status optimizer, gradien, dan parameter.
00:02:40Ini adalah penghematan memori terbesar, tetapi itu pun terkadang belum cukup.
00:02:45Jika model masih belum muat, ZeRO-Infinity bisa memindahkan beban ke CPU atau bahkan NVMe.
00:02:50Jadi ya, Anda menukar kecepatan demi skala. Tapi terkadang kemenangan sebenarnya adalah saat model tersebut akhirnya bisa dijalankan.
00:02:56Jika Anda berpikir memori bukan satu-satunya masalah, Anda benar. DeepSpeed mendukung paralelisme 3D: data, pipeline, dan tensor.
00:03:04Serta memiliki dukungan bawaan untuk model Mixture of Experts.
00:03:09Sehingga model sparse tidak membebani komputasi Anda.
00:03:12Sekarang kita punya pilihan nyata. DeepSpeed terintegrasi sangat baik dengan Hugging Face dan Accelerate.
00:03:19Jadi Anda tidak perlu membangun semuanya dari nol.
00:03:21Anda cukup ambil yang dibutuhkan dan abaikan sisanya. Sekarang, benchmark sangat bergantung pada setup Anda.
00:03:27Jadi jangan selalu percaya pada angka besar. Saya mencoba menjalankannya beberapa kali.
00:03:30Tapi sekali lagi, karena saya memakai M4 Pro, saya tidak bisa mengoptimalkannya lebih jauh hanya dengan model dasar ini.
00:03:36Sulit untuk memastikannya, tapi proyek DeepSpeed lainnya telah menunjukkan peningkatan throughput yang besar.
00:03:41Terutama saat memori menjadi faktor penghambat. Jika Anda di Windows atau Linux, ini bisa menjadi keuntungan besar.
00:03:46Langkah terbaik adalah mencobanya sendiri. Mulailah dengan menggunakan konfigurasi resmi.
00:03:51Itulah yang saya lakukan di sini, sedikit mengubahnya untuk Mac, lalu memperbaiki masalah CUDA.
00:03:56Kemudian pantau RAM CPU jika Anda mengaktifkan offload, dan jika nanti Anda memutuskan menggunakan multi-GPU.
00:04:01DeepSpeed pada dasarnya adalah tombol “saya menolak kehabisan memori hari ini”.
00:04:07Begitu Anda memahami ZeRO dan cara kerja offloading, model besar menjadi praktis meski dengan hardware terbatas.
00:04:14Tapi proses persiapannya memang bisa membingungkan pada awalnya.
00:04:17Subscribe jika ini membantu menghemat waktu GPU Anda atau jika Anda menyukai alat pengembang seperti ini. Sampai jumpa di video lainnya.

Key Takeaway

DeepSpeed memungkinkan pelatihan model AI besar pada perangkat keras terbatas dengan mengoptimalkan distribusi data memori melalui teknologi ZeRO dan fitur offloading.

Highlights

DeepSpeed adalah pustaka open-source Microsoft yang mengoptimalkan penggunaan VRAM pada PyTorch.

Teknologi ZeRO (Zero Redundancy Optimizer) memecah status optimizer, gradien, dan parameter untuk menghemat memori.

Masalah utama kegagalan model besar biasanya adalah keterbatasan memori (OOM), bukan kecepatan prosesor.

ZeRO-Infinity memungkinkan penggunaan CPU atau NVMe jika kapasitas GPU benar-benar tidak mencukupi.

Integrasi yang kuat dengan Hugging Face dan Accelerate memudahkan implementasi tanpa membangun sistem dari nol.

Ketidakcocokan CUDA seringkali menjadi penyebab utama kegagalan instalasi dibandingkan masalah pada model itu sendiri.

Timeline

Pengenalan DeepSpeed dan Teknologi ZeRO

Pembicara memperkenalkan DeepSpeed sebagai solusi open-source dari Microsoft untuk mengatasi masalah memori pada pelatihan model AI. Dijelaskan bahwa model besar sering kali mengalami kegagalan bukan karena kinerjanya lambat, melainkan karena penumpukan status optimizer dan gradien di VRAM. Teknologi utama yang diperkenalkan adalah ZeRO, yang berfungsi memecah data pelatihan agar tidak terjadi redundansi di seluruh GPU. Bagian ini menekankan pentingnya efisiensi penyimpanan data untuk mencegah sistem crash. Pemahaman dasar ini menjadi landasan mengapa DeepSpeed sangat krusial bagi para pengembang.

Persiapan Lingkungan dan Instalasi di Google Colab

Narator menjelaskan alasan penggunaan Google Colab karena keterbatasan perangkat keras Mac M4 Pro miliknya yang tidak memiliki GPU Nvidia. Langkah praktis dimulai dengan pengecekan spesifikasi GPU dan instalasi paket-paket utama seperti PyTorch, Hugging Face, dan DeepSpeed menggunakan pip. Alat diagnostik DS Report dijalankan untuk memastikan pengaturan CUDA dan compiler sudah sesuai sebelum melangkah lebih jauh. Hal ini menunjukkan bahwa persiapan lingkungan yang tepat adalah kunci sebelum melakukan pelatihan model. Penonton diberikan panduan mengenai tahapan awal yang harus dilakukan untuk menghindari error konfigurasi.

Konfigurasi JSON dan Implementasi ZeRO Stage 2

Bagian ini menyoroti file konfigurasi JSON sebagai komponen paling vital dalam pengaturan DeepSpeed. Pembicara mendemonstrasikan penggunaan ZeRO Stage 2 untuk memecah status optimizer dan gradien guna mengurangi penggunaan memori secara signifikan. Sangat disarankan untuk memulai dari dokumentasi resmi dan tidak melakukan perubahan konfigurasi secara sembarangan agar tidak bingung. Penyesuaian skrip dilakukan agar kompatibel dengan sistem yang digunakan, dalam hal ini adaptasi untuk lingkungan Mac. Pesan penting di sini adalah jika terjadi kegagalan, masalahnya biasanya terletak pada ketidakcocokan CUDA.

Uji Coba Pelatihan dan Analisis Hasil

Setelah konfigurasi selesai, proses pelatihan dijalankan menggunakan dataset kecil untuk mempercepat demonstrasi. Hasilnya menunjukkan keberhasilan proses dengan pemantauan terhadap langkah-langkah pelatihan serta puncak penggunaan memori GPU yang tercatat. Meskipun nilai loss tidak mengalami penurunan drastis dalam percobaan singkat ini, fungsionalitas sistem telah terbukti berjalan lancar. Pembicara menyarankan penggunaan dataset yang lebih besar untuk mendapatkan hasil optimasi model yang lebih akurat. Tahapan ini memvalidasi bahwa setup yang benar dapat membuat proses pelatihan tetap stabil.

Memahami Tahapan ZeRO dan Offloading Memori

Narator merincikan perbedaan antara ZeRO Stage 1, 2, dan 3 dalam menangani elemen-elemen yang menguras memori GPU. Stage 3 digambarkan sebagai tahap yang paling efektif karena memecah semua komponen termasuk parameter model, namun terkadang masih memerlukan bantuan tambahan. Di sinilah ZeRO-Infinity berperan dengan memindahkan beban kerja (offloading) ke CPU atau penyimpanan NVMe. Meskipun metode ini menukar kecepatan dengan skala kapasitas, hal ini menjadi solusi terakhir agar model besar tetap bisa dijalankan. Strategi ini sangat membantu pengguna dengan hardware terbatas untuk tetap kompetitif dalam pengembangan AI.

Fitur Lanjutan, Integrasi, dan Kesimpulan

Video ditutup dengan penjelasan mengenai dukungan DeepSpeed terhadap paralelisme 3D dan model Mixture of Experts (MoE). Integrasi dengan Hugging Face dan Accelerate membuat alat ini sangat fleksibel bagi pengembang tanpa harus memulai dari nol. Pembicara mengingatkan bahwa hasil benchmark sangat bergantung pada setup masing-masing individu, terutama bagi pengguna Windows atau Linux. Pengguna disarankan untuk selalu memantau RAM CPU jika fitur offload diaktifkan selama pelatihan. DeepSpeed pada akhirnya dianggap sebagai solusi pamungkas bagi siapa pun yang ingin menjalankan model AI besar tanpa kendala memori.

Community Posts

No posts yet. Be the first to write about this video!

Write about this video