Sumber TerbukaRiset 🇷🇺 08.08.2026 16:02

Mengalahkan OOM di PyTorch: Melatih Grafik Raksasa di GPU Biasa

Disk Sparse AdamDisk Sparse Adam
Seorang pengembang telah menciptakan Disk Sparse Adam (DSA), sebuah optimizer out-of-core untuk PyTorch yang memindahkan state momen optimizer ke disk melalui mmap, secara drastis mengurangi penggunaan memori untuk melatih model sparse yang besar. Ini memungkinkan pelatihan pada GPU konsumen dan bahkan Google Colab gratis, dengan benchmark menunjukkan overhead VRAM nol pada satu juta entitas.
Artikel ini menyajikan Disk Sparse Adam (DSA), sebuah optimizer out-of-core baru untuk PyTorch yang dirancang untuk melatih model sparse berskala besar, seperti embedding grafik pengetahuan dengan jutaan node, pada GPU kelas konsumen. torch.optim.SparseAdam standar menyimpan status momen pertama dan kedua di memori, yang untuk model dengan 10 juta entitas dan vektor 128 dimensi mengkonsumsi sekitar 10,24 GB tambahan, sering menyebabkan kesalahan CUDA out-of-memory. DSA sebagai gantinya menyimpan matriks momen ini di disk sebagai file biner dan memetakannya ke memori menggunakan mekanisme mmap OS, membaca dan menulis hanya status batch yang aktif pada setiap langkah optimasi. Optimizer ini dirancang sebagai pengganti langsung untuk pipeline PyTorch standar, dan mendukung baik ruang Euclidean maupun hiperbolik (bola Poincaré). Penulis melaporkan bahwa penggunaan memori untuk status optimizer turun dari gigabyte menjadi megabyte, dan benchmark pada Kaggle dengan 1 juta entitas menunjukkan overhead VRAM 0,00 MB dan throughput 134.212 sampel per detik. DSA tersedia di GitHub di bawah lisensi MIT, dengan keterbatasan termasuk kebutuhan akan SSD NVMe untuk kinerja terbaik dan kompatibilitas hanya dengan gradien sparse, seperti yang berasal dari torch.nn.Embedding atau EmbeddingBag.
Sumber: Habr — хаб ИИ — asli
Postingan kami sebelumnya tentang topik ini ↓
Berita terbaru