Topik ini menjelaskan catatan rilis untuk versi 25.08 dari training-nv-pytorch.
Fitur utama dan perbaikan bug
Fitur utama
Transformers ditingkatkan ke versi 4.53.3+ali.
VLLM ditingkatkan ke versi 0.10.0 dan Ray ke versi 2.48.0.
Perbaikan bug
(Tidak ada)
Konten
Skenario Aplikasi | Pelatihan/Inferensi |
Kerangka kerja | PyTorch |
Persyaratan | NVIDIA Driver release >= 575 |
Komponen inti |
|
Aset
25.08
egslingjun-registry.cn-wulanchabu.cr.aliyuncs.com/egslingjun/training-nv-pytorch:25.08-serverless
Gambar VPC
acs-registry-vpc.{region-id}.cr.aliyuncs.com/egslingjun/{image:tag}
{region-id}menunjukkan wilayah tempat ACS 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.08-serverless cocok untuk produk multi-penyewa ACS dan Lingjun. Gambar ini tidak cocok untuk produk satu penyewa Lingjun dan tidak boleh digunakan dalam skenario satu penyewa Lingjun.
Persyaratan driver
Rilis 25.08 didasarkan pada CUDA 12.8.0 dan memerlukan versi driver NVIDIA 575 atau lebih baru. Namun, jika Anda menggunakan GPU pusat data seperti T4, Anda dapat menggunakan versi driver NVIDIA 470.57 (atau rilis R470 yang lebih baru), 525.85 (atau rilis R525 yang lebih baru), 535.86 (atau rilis R535 yang lebih baru), atau 545.23 (atau rilis R545 yang lebih baru).
Paket kompatibilitas driver CUDA hanya mendukung driver tertentu. Oleh karena itu, Anda perlu meningkatkan semua driver R418, R440, R450, R460, R510, R520, R530, R545, R555, dan R560 karena tidak kompatibel dengan CUDA 12.8. Untuk daftar lengkap driver yang didukung, lihat Kompatibilitas aplikasi CUDA. Informasi lebih lanjut dapat ditemukan di Kompatibilitas dan peningkatan CUDA.
Fitur utama dan peningkatan
Optimasi kompilasi PyTorch
Fitur optimasi kompilasi yang diperkenalkan di 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 memberikan manfaat signifikan bagi pelatihan Anda, bahkan dapat memberikan dampak negatif.
Mengontrol granularitas komunikasi dalam kerangka kerja DeepSpeed membantu kompiler mendapatkan grafik komputasi lengkap untuk ruang lingkup optimasi kompilasi yang lebih luas.
PyTorch dioptimalkan:
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% saat 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 peningkatan kinerja E2E
Perbandingan kinerja end-to-end (E2E) yang komprehensif dilakukan menggunakan alat evaluasi dan analisis kinerja AI cloud-native CNP. Model open-source arus utama serta konfigurasi kerangka kerja digunakan dan dibandingkan dengan gambar dasar standar. Melalui eksperimen ablasi, kontribusi setiap komponen optimasi terhadap kinerja pelatihan model secara keseluruhan dievaluasi lebih lanjut.
Analisis Kontribusi Kinerja Komponen GPU Inti E2E
Tes berikut didasarkan pada versi 25.08 dan mencakup evaluasi serta analisis perbandingan kinerja E2E untuk pelatihan pada kluster GPU multi-node. Item perbandingan adalah sebagai berikut:
Dasar: NGC PyTorch Image.
ACS AI Image: Base+ACCL: Gambar 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 torch compile yang diaktifkan.
ACS AI Image: AC2+ACCL+CompilerOpt+CkptOpt: Gambar Golden menggunakan AC2 BaseOS dengan optimasi torch compile dan selektif gradient checkpoint yang diaktifkan.

Memulai cepat
Contoh berikut menunjukkan cara menarik gambar training-nv-pytorch menggunakan Docker.
Untuk menggunakan gambar training-nv-pytorch di ACS, Anda dapat memilihnya dari halaman Artifacts saat 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 optimasi memori video rekompilasi
Aktifkan Optimasi Kompilasi
Gunakan API Trainer transformers:

Aktifkan Optimasi Memori Video Rekompilasi
export CHECKPOINT_OPTIMIZATION=true
3. Mulai kontainer
Gambar mencakup alat pelatihan model bawaan bernama ljperf. Langkah-langkah berikut menjelaskan cara memulai kontainer dan menjalankan tugas pelatihan menggunakan alat tersebut.
Kelas 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. Rekomendasi penggunaan
Perubahan dalam gambar melibatkan pustaka seperti PyTorch dan DeepSpeed. Jangan instal ulang mereka.
Dalam konfigurasi DeepSpeed, biarkan zero_optimization.stage3_prefetch_bucket_size kosong atau atur ke auto.
Variabel lingkungan
NCCL_SOCKET_IFNAMEbawaan dalam gambar ini harus disesuaikan secara dinamis berdasarkan skenario:Jika satu pod meminta 1, 2, 4, atau 8 kartu untuk tugas pelatihan atau inferensi, atur
NCCL_SOCKET_IFNAME=eth0. Konfigurasi ini merupakan pengaturan default dalam gambar tersebut.Jika satu pod meminta semua 16 kartu pada mesin untuk tugas pelatihan atau inferensi, Anda dapat menggunakan Jaringan Berperforma Tinggi (HPN). Dalam hal ini, atur
NCCL_SOCKET_IFNAME=hpn0.
Masalah yang diketahui
(Tidak ada)