Model modern sering kali lebih besar daripada memori satu perangkat. Section ini membahas strategi membagi beban: menumpuk gradien saat batch kecil, menyimpan ulang aktivasi, membagi data maupun parameter ke banyak perangkat, hingga varian attention yang hemat memori. Konsep diuji pada skala CPU yang dapat direproduksi, lalu dipetakan ke pola GPU produksi.
Pecahkan anatomi memori pelatihan: parameter, gradien, state optimizer, dan aktivasi dengan rumus byte yang bisa dihitung sebelum alokasi, diverifikasi nyata pada model mini, lalu petakan gejala galat out of memory.
Buka → # Gradient AccumulationRaih batch efektif besar dari micro-batch kecil lewat akumulasi gradien: pembobotan loss 1/N, posisi zero_grad yang benar, bukti nyata kesetaraan kurva loss, dan jebakan gradien yang menumpuk.
Buka → # Activation CheckpointingTukar hitungan ulang dengan memori: simpan hanya aktivasi di batas segmen, hitung ulang sisanya saat backward lewat torch.utils.checkpoint, dengan pengukuran nyata penurunan memori dan biaya forward ganda.
Buka → # Data ParallelismPecah data, bukan model: replika identik menghitung gradien di pecahan berbeda lalu digabung lewat all-reduce — dibuktikan nyata di CPU dengan dua replika manual dan tabel DP klasik vs DDP modern.
Buka → # Distributed Data ParallelDistributedDataParallel dalam praktik: satu proses per perangkat, all-reduce gradien Ring, launcher torchrun, DistributedSampler, dan inisialisasi grup proses gloo yang diuji nyata di jalur CPU.
Buka → # Model ParallelismSaat model tak muat di satu GPU, pecah lapisannya ke beberapa perangkat: penempatan manual per tahap, aktivasi dan gradien mengalir melintasi perbatasan device, dibuktikan lewat simulasi dua perangkat di CPU.
Buka → # Pipeline ParallelismIsi waktu nganggur model parallelism dengan micro-batch mengalir bertingkat: jadwal fill-drain, rumus efisiensi m/(m+s-1), gelembung pipeline, dan jadwal GPipe vs 1F1B — diuji nyata dengan pipeline mini 2 tahap di CPU.
Buka → # Parameter ShardingPecah state optimizer, gradien, dan parameter ke semua perangkat ala ZeRO stage 1/2/3: aritmetika memori untuk model 1 miliar parameter, simulasi shard tensor nyata dengan all-gather, serta posisi FSDP di PyTorch.
Buka → # Efficient AttentionAtasi memori attention yang tumbuh kuadratik: hitung nyata matriks skor untuk seq 1k/4k/16k, tiling baris ala FlashAttention yang terbukti identik, API scaled_dot_product_attention, serta varian sparse dan linear attention.
Buka → # Optimasi Penggunaan MemoriRangkai seluruh teknik menjadi toolkit praktis: urutan mencoba mixed precision, checkpoint, akumulasi, sharding; pemantauan memori CPU dan GPU; pengukuran nyata dua konfigurasi pelatihan dengan aktivasi turun 7,2x.
Buka →