PANDUAN Teknikal

Tukar Ganti Pengiraan Semula Pengaktifan

Pengiraan semula pengaktifan (pemeriksaan kecerunan atau pengaktifan) menjimatkan memori GPU semasa latihan dengan membuang pengaktifan perantaraan dalam hantaran hadapan dan pengiraan semula semasa hantaran ke belakang.

2 min dibacaKemas kini terakhir

Gambaran keseluruhan

It trades extra compute for the ability to train larger models or longer sequences on the same hardware.

Menyelam dalam

Backpropagation memerlukan pengaktifan laluan ke hadapan untuk mengira kecerunan, jadi secara lalai setiap output lapisan disimpan — kos memori yang besar yang meningkat dengan saiz model, saiz kelompok dan panjang jujukan. Pengiraan semula pengaktifan hanya menyimpan beberapa tensor 'titik pemeriksaan' (selalunya hanya sempadan lapisan) dan membuang yang lain. Semasa hantaran ke belakang, ia menjalankan semula pengiraan hadapan antara pusat pemeriksaan untuk menjana semula pengaktifan yang dibuang atas permintaan. Keputusan klasik ialah dengan pusat pemeriksaan diletakkan setiap lapisan sqrt(N), memori menurun kepada kira-kira O(sqrt(N)) sambil menambah kira-kira satu hantaran ke hadapan tambahan (~33% lagi pengiraan). Varian terpilih hanya mengira semula ops yang murah-tetapi-memori-berat (seperti perhatian atau keciciran) sambil menyimpan cache yang mahal, mendapatkan sebahagian besar penjimatan memori untuk overhed pengiraan semula yang jauh lebih rendah.

Wawasan Teknikal

Pertukaran asas ialah ingatan berbanding FLOP. Pengiraan semula penuh secara kasar menambah satu hantaran ke hadapan tambahan setiap langkah (~30-40% lebih perlahan) tetapi boleh mengurangkan memori pengaktifan mengikut susunan magnitud. Langkah pintar ialah titik semakan terpilih: kenal pasti ops yang besar memori tetapi murah pengiraan (softmax, layernorm, GELU, skor perhatian) dan hitung semula hanya mereka, sambil mengekalkan keputusan GEMM yang mahal dalam cache — meminimumkan pengiraan yang sia-sia.

Kesan Strategik

Kos dan bajet

Keputusan seni bina memacu prestasi dan kos operasi selama bertahun-tahun.

Keputusan yang lebih jelas

Pendidikan teknikal membantu pasukan memilih timbunan yang betul, bukan hanya yang terbaharu.

Kawalan kualiti

Pilihan kejuruteraan yang lebih baik mengurangkan insiden kebolehpercayaan dalam pengeluaran.

Masa Depan Tukar Ganti Pengiraan Semula Pengaktifan

Pengiraan semula semakin automatik dan terpilih. Rangka kerja kini memprofilkan memori setiap operasi dan kos FLOP untuk memilih pusat pemeriksaan yang optimum, dan menggabungkan pengiraan semula dengan pemunggahan pengaktifan ke CPU/NVMe dan dengan strategi selari. Memandangkan panjang konteks dan saiz model terus berkembang, jangkakan dasar didorong pengkompil (dalam PyTorch, JAX/XLA) yang memilih keputusan pengiraan semula per-op secara automatik, serta pertindihan pengiraan semula yang lebih ketat dengan komunikasi supaya FLOP tambahan disembunyikan sebahagiannya.

Pelaksanaan Dunia Sebenar

Melatih pengubah besar yang tidak akan sesuai dengan memeriksa setiap blok lapisan

Menggunakan torch.utils.checkpoint PyTorch untuk membalut blok pengubah dan memotong memori pengaktifan

Pengiraan semula perhatian/softmax terpilih dalam Megatron-LM untuk menjimatkan memori dengan kelembapan minimum

Mendayakan panjang jujukan yang lebih panjang pada belanjawan GPU tetap dengan mengira semula pengaktifan dan bukannya menyimpannya

Risiko & Pengawal

Mengoptimumkan satu penanda aras boleh menyembunyikan kelemahan sistem yang lebih luas.

Kos infrastruktur dan penyelenggaraan sering dipandang remeh.

Jurang keselamatan dan pemerhatian boleh berkembang apabila sistem menjadi lebih kompleks.

Hala Tuju Pelaksanaan

1

Tentukan sasaran kependaman, kualiti dan kos sebelum pelaksanaan.

2

Penanda aras di bawah beban realistik dan keadaan data.

3

Pemantauan instrumen untuk ralat, drift dan kesan pengguna.

4

Sediakan laluan balik dan tindak balas insiden sebelum penskalaan.

Teruskan Meneroka

Free newsletter

Get the daily AI briefing

Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.

One email each weekday. Unsubscribe in one click. We never sell or share your address.

Test yourself

Take the Activation Recomputation Tradeoffs quiz

Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.

Mulakan kuiz

Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation

Panduan seterusnya

Kuantiti SmoothQuant dan Pengaktifan

Soalan lazim

What is Activation Recomputation Tradeoffs?

Pengiraan semula pengaktifan (pemeriksaan kecerunan atau pengaktifan) menjimatkan memori GPU semasa latihan dengan membuang pengaktifan perantaraan dalam hantaran hadapan dan pengiraan semula semasa hantaran ke belakang. Ia memperdagangkan pengiraan tambahan untuk keupayaan untuk melatih model yang lebih besar atau urutan yang lebih panjang pada perkakasan yang sama.

Apakah yang diperdagangkan oleh pengiraan semula pengaktifan untuk menjimatkan memori?

Pengiraan semula membuang pengaktifan yang disimpan dan menjananya semula dalam pas ke belakang, membelanjakan pengiraan tambahan untuk mengurangkan penggunaan memori.

Mengapakah pengaktifan laluan ke hadapan biasanya disimpan sama sekali?

Hantaran ke belakang menggunakan pengaktifan ke hadapan untuk mengira kecerunan, jadi secara lalai ia disimpan dalam ingatan sehingga hantaran ke belakang berjalan.

Kira-kira berapa banyak pengiraan tambahan yang biasanya ditambahkan oleh pengiraan semula pengaktifan penuh?

Pengiraan semula penuh menjalankan semula pengiraan ke hadapan semasa hantaran ke belakang, menambah kira-kira satu hantaran ke hadapan tambahan — mengikut susunan 30-40% lebih pengiraan.

Apakah idea di sebalik pengiraan semula terpilih (tidak penuh)?

Pengiraan semula terpilih menyasarkan operasi yang menggunakan banyak memori tetapi sedikit pengiraan (seperti softmax atau layernorm), sambil menyimpan cache hasil GEMM yang mahal untuk meminimumkan FLOP yang sia-sia.

Teknik pelengkap yang manakah sering digabungkan dengan pengiraan semula untuk menjimatkan lebih banyak ingatan?

Pemunggahan pengaktifan mengalihkan beberapa pengaktifan ke storan CPU/NVMe, dan sering digabungkan dengan pengiraan semula dan selari untuk penjimatan memori selanjutnya.