AI Umum

Implementasi SMoE yang Efisien di GPU dengan ScatterMoE

Pendahuluan

Sparse Mixture of Experts (SMoE) telah mendapatkan daya tarik untuk menskalakan model, terutama berguna dalam pengaturan yang dibatasi memori. SMoE sangat penting dalam Switch Transformer dan Universal Transformers, menawarkan pelatihan dan inferensi yang efisien. Namun, mengimplementasikan SMoE secara efisien menimbulkan tantangan.

Tantangan Implementasi SMoE

Implementasi PyTorch yang naif tidak memiliki paralelisme GPU, sehingga menghambat kinerja. Selain itu, penerapan awal TPU membutuhkan bantuan dengan variabilitas ukuran tensor, yang menyebabkan masalah alokasi memori karena penggunaan pakar yang tidak seimbang.

Solusi Megablocks dan PIT

Megablocks dan PIT mengusulkan untuk membingkai komputasi SMoE sebagai masalah perkalian matriks jarang untuk mengatasi tantangan ini. Hal ini memungkinkan implementasi berbasis GPU yang lebih efisien.

Kekurangan Pendekatan yang Ada

Namun, pendekatan yang ada masih memiliki kelemahan. Mereka memerlukan salinan awal input dari pencar ke grup, yang menyebabkan overhead memori selama pelatihan. Beberapa implementasi semakin memperburuk masalah ini dengan memberi bantalan pada salinan yang dikelompokkan, sehingga meningkatkan penggunaan memori. Selain itu, menerjemahkan masalah SMoE ke dalam format matriks jarang menimbulkan overhead komputasi dan keburaman, sehingga sulit untuk memperluas di luar SMoE MLP.

ScatterMoE: Implementasi SMoE yang Efisien

Peneliti dari IBM, Mila, dan University of Montreal menyajikan ScatterMoE, implementasi SMoE yang efisien yang meminimalkan jejak memori melalui ParallelLinear, yang melakukan operasi matriks yang dikelompokkan pada grup yang tersebar. Pendekatan ini memungkinkan representasi antara diekspos sebagai tensor PyTorch standar, sehingga memudahkan ekstensi ke modul pakar lainnya.

Fitur ScatterMoE

  • Menggunakan ParallelLinear untuk komputasi SMoE yang efisien
  • Mengoptimalkan penggunaan memori dengan menghindari penyalinan dan bantalan tambahan selama operasi
  • ParallelLinear memfasilitasi berbagai transformasi, meningkatkan ekstensibilitas ke modul pakar lainnya
  • Untuk lintasan mundur, ParallelLinear secara efisien menghitung gradien untuk setiap pakar
  • ScatterMoE juga memungkinkan implementasi Mixture-of-Attention (MoA) yang mulus tanpa biaya memori tambahan, mendukung aplikasi seperti SMoE Attention

Benchmarking

Metode yang diusulkan di-benchmark terhadap Megablocks untuk validasi. Di Mixtral, ScatterMoE mengungguli implementasi Megablocks Sparse dan Memory-efficient dengan throughput keseluruhan yang mencengangkan sebesar 38,1%. Benchmarking unit pada SMoE MLP mengungkapkan throughput ScatterMoE yang lebih tinggi selama pelatihan dan konsumsi memori yang lebih rendah.

Saat granularity meningkat, ScatterMoE menunjukkan skalabilitas yang lebih baik dibandingkan dengan Megablocks, menjadikannya pilihan yang jelas untuk pengaturan granularity tinggi. Penurunan sparsitas juga menunjukkan efisiensi ScatterMoE, mengungguli Megablocks dalam throughput sambil tetap lebih efisien daripada model MLP padat.

Selain itu, dalam implementasi Mixture of Attention, ScatterMoE secara konsisten mengungguli Megablocks, terutama dalam pengaturan granularity tinggi.

Kesimpulan

Para peneliti telah memperkenalkan ScatterMoE, yang meningkatkan implementasi SMoE pada GPU dengan mengurangi masalah jejak memori dan meningkatkan kecepatan inferensi dan pelatihan. Memanfaatkan ParallelLinear, ScatterMoE mengungguli Megablocks, menunjukkan throughput yang lebih unggul dan penggunaan memori yang lebih sedikit. Desain ScatterMoE memfasilitasi perluasan konsep Mixture-of-Experts, yang dicontohkan dengan implementasi Mixture of Attention. Pendekatan ini secara signifikan memajukan pelatihan dan inferensi model pembelajaran mendalam yang efisien.