Topik ini menjelaskan catatan rilis untuk versi pelatihan-nv-pytorch 25.09.
Fitur utama dan perbaikan bug
Fitur utama
PyTorch dan komponen terkaitnya ditingkatkan ke 2.8.0.
Transformers ditingkatkan ke 4.56.1+ali. Versi ini mencakup fitur dan perbaikan bug dari versi open-source yang sesuai.
Perbaikan bug
Memperbaiki kesalahan yang terjadi ketika torch.compile() diaktifkan untuk Transformers open-source pada Qwen2-VL.
Daftar Isi
Skenario | Pelatihan/Inferensi |
Kerangka kerja | PyTorch |
Persyaratan | NVIDIA Driver release >= 575 |
Komponen inti |
|
Aset
25.09
egslingjun-registry.cn-wulanchabu.cr.aliyuncs.com/egslingjun/training-nv-pytorch:25.09-serverless
Gambar VPC
acs-registry-vpc.{region-id}.cr.aliyuncs.com/egslingjun/{image:tag}
{region-id}menunjukkan wilayah tempat ACS Anda diaktifkan, seperti cn-beijing dan cn-wulanchabu.{image:tag}menunjukkan nama dan tag gambar.
Saat ini, Anda hanya dapat menarik gambar di wilayah China (Beijing) melalui VPC.
Gambar egslingjun-registry.cn-wulanchabu.cr.aliyuncs.com/egslingjun/training-nv-pytorch:25.09-serverless cocok untuk produk ACS dan produk multi-penyewa Lingjun. Gambar ini tidak cocok untuk produk satu penyewa Lingjun. Jangan gunakan dalam skenario satu penyewa Lingjun.
Persyaratan driver
Rilis 25.09 didasarkan pada CUDA 12.8.0 dan memerlukan versi driver NVIDIA 575 atau lebih baru. Namun, jika Anda menjalankan GPU pusat data, seperti T4, Anda dapat menggunakan versi driver NVIDIA 470.57 (atau versi R470 yang lebih baru), 525.85 (atau versi R525 yang lebih baru), 535.86 (atau versi R535 yang lebih baru), atau 545.23 (atau versi R545 yang lebih baru).
Paket kompatibilitas driver CUDA mendukung hanya driver tertentu. Oleh karena itu, Anda harus meningkatkan driver R418, R440, R450, R460, R510, R520, R530, R545, R555, atau R560 karena mereka tidak kompatibel ke depan dengan CUDA 12.8. Untuk daftar lengkap driver yang didukung, lihat topik Kompatibilitas Aplikasi CUDA. Untuk informasi lebih lanjut, lihat Kompatibilitas dan Peningkatan CUDA.
Fitur dan peningkatan utama
Optimasi kompilasi PyTorch
Fitur optimasi kompilasi yang diperkenalkan dalam PyTorch 2.0 cocok untuk pelatihan skala kecil pada satu GPU. Namun, pelatihan LLM memerlukan optimasi memori GPU dan kerangka kerja terdistribusi, seperti FSDP atau DeepSpeed. Akibatnya, torch.compile() tidak dapat memberikan manfaat bagi pelatihan Anda atau bahkan memberikan dampak negatif.
Mengontrol granularitas komunikasi dalam kerangka kerja DeepSpeed membantu kompiler memperoleh grafik komputasi lengkap untuk cakupan optimasi kompilasi yang lebih luas.
Optimasi PyTorch:
Antarmuka depan kompiler PyTorch dioptimalkan untuk memastikan kompilasi saat terjadi pemutusan grafik apa pun dalam grafik komputasi.
Kemampuan pencocokan mode dan bentuk dinamis ditingkatkan untuk mengoptimalkan kode yang dikompilasi.
Setelah optimasi sebelumnya, throughput E2E meningkat sebesar 20% ketika LLM 8B dilatih.
Optimasi memori GPU untuk rekompilasi
Kami memperkirakan dan menganalisis konsumsi memori GPU model dengan menjalankan tes kinerja pada model yang diterapkan di kluster berbeda atau dikonfigurasi dengan parameter berbeda dan mengumpulkan metrik sistem, seperti pemanfaatan memori GPU. Berdasarkan hasil tersebut, kami menyarankan jumlah lapisan rekompilasi aktivasi optimal dan mengintegrasikannya ke dalam PyTorch. Ini memungkinkan pengguna dengan mudah mendapatkan manfaat dari optimasi memori GPU. Saat ini, fitur ini dapat digunakan dalam kerangka kerja DeepSpeed.
ACCL
ACCL adalah pustaka komunikasi HPN internal yang disediakan oleh Alibaba Cloud untuk Lingjun. Ini menyediakan ACCL-N untuk skenario akselerasi GPU. ACCL-N adalah pustaka HPN yang disesuaikan berdasarkan NCCL. Ini sepenuhnya kompatibel dengan NCCL dan memperbaiki beberapa bug di NCCL. ACCL-N juga memberikan kinerja dan stabilitas yang lebih tinggi.
Evaluasi kinerja E2E
Menggunakan alat evaluasi dan analisis kinerja AI cloud-native CNP, kami melakukan perbandingan kinerja E2E komprehensif terhadap gambar dasar standar menggunakan model open-source utama dan konfigurasi kerangka kerja. Kami juga melakukan eksperimen ablasi untuk lebih mengevaluasi kontribusi setiap komponen optimasi terhadap kinerja pelatihan model secara keseluruhan.
Perbandingan Gambar dan Iterasi terhadap Gambar Dasar

Analisis Kontribusi Kinerja E2E Komponen GPU Inti
Tes berikut, berdasarkan versi 25.09, dilakukan pada kluster GPU multi-node untuk mengevaluasi dan membandingkan kinerja pelatihan E2E. Item perbandingan meliputi hal-hal berikut:
Dasar: NGC PyTorch Image.
ACS AI Image: Base+ACCL: Gambar ini menggunakan pustaka komunikasi ACCL.
ACS AI Image: AC2+ACCL: Gambar Golden menggunakan AC2 BaseOS tanpa optimasi yang diaktifkan.
ACS AI Image: AC2+ACCL+CompilerOpt: Gambar Golden menggunakan AC2 BaseOS dengan hanya optimasi kompilasi torch yang diaktifkan.
ACS AI Image: AC2+ACCL+CompilerOpt+CkptOpt: Gambar Golden menggunakan AC2 BaseOS dengan optimasi kompilasi torch dan selektif gradient checkpoint yang diaktifkan.

Mulai cepat
Contoh berikut menunjukkan cara menarik gambar training-nv-pytorch menggunakan Docker.
Untuk menggunakan gambar training-nv-pytorch di ACS, pilih dari halaman Artifacts saat Anda membuat beban kerja di Konsol, atau tentukan referensi gambar dalam file YAML.
1. Pilih gambar
docker pull egslingjun-registry.cn-wulanchabu.cr.aliyuncs.com/egslingjun/training-nv-pytorch:[tag]2. Panggil API untuk mengaktifkan kompiler dan rekompilasi untuk optimasi memori GPU
Aktifkan Optimasi Kompilasi
Gunakan API Trainer Transformers:

Aktifkan Rekompilasi untuk Optimasi Memori GPU
export CHECKPOINT_OPTIMIZATION=true
3. Mulai kontainer
Gambar ini mencakup alat pelatihan model bawaan bernama ljperf. Langkah-langkah berikut menjelaskan cara menggunakan alat ini untuk memulai kontainer dan menjalankan tugas pelatihan.
LLM
# Mulai dan masuk ke kontainer
docker run --rm -it --ipc=host --net=host --privileged egslingjun-registry.cn-wulanchabu.cr.aliyuncs.com/egslingjun/training-nv-pytorch:[tag]
# Jalankan demo pelatihan
ljperf benchmark --model deepspeed/llama3-8b 4. Saran
Gambar ini berisi versi kustom dari pustaka seperti PyTorch dan DeepSpeed. Jangan instal ulang pustaka ini.
Dalam konfigurasi DeepSpeed, biarkan `zero_optimization.stage3_prefetch_bucket_size` kosong atau atur ke `auto`.
Variabel lingkungan bawaan
NCCL_SOCKET_IFNAMEdalam gambar ini harus disesuaikan secara dinamis berdasarkan skenario:Ketika satu pod meminta 1, 2, 4, atau 8 kartu untuk tugas pelatihan atau inferensi, atur
NCCL_SOCKET_IFNAME=eth0. Ini adalah konfigurasi default dalam gambar ini.Ketika satu pod meminta semua 16 kartu mesin untuk tugas pelatihan atau inferensi, Anda dapat menggunakan Jaringan Berperforma Tinggi (HPN). Dalam hal ini, atur
NCCL_SOCKET_IFNAME=hpn0.