Topik ini menjelaskan catatan rilis untuk training-nv-pytorch 25.07.
Daftar Fitur Utama dan Perbaikan Bug
Fitur Utama
vllm ditingkatkan ke versi v0.9.2.
Dukungan untuk transformerEngine v2.3.0+5de3e14, peft v0.16.0, dan diffusers v0.34.0.
Perbaikan Bug
(Tidak ada pada saat ini)
Isi
Skenario | Pelatihan/Inferensi |
Kerangka | pytorch |
Persyaratan | NVIDIA Driver release >= 575 |
Komponen inti |
|
Aset
25.07
egslingjun-registry.cn-wulanchabu.cr.aliyuncs.com/egslingjun/training-nv-pytorch:25.07-serverless
Gambar VPC
acs-registry-vpc.{region-id}.cr.aliyuncs.com/egslingjun/{image:tag}
{region-id}menunjukkan wilayah di mana 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 Tiongkok (Beijing) melalui VPC.
egslingjun-registry.cn-wulanchabu.cr.aliyuncs.com/egslingjun/training-nv-pytorch:25.07-serverless gambar berlaku untuk bentuk produk ACS dan bentuk produk multi-penyewa Lingjun. Gambar ini tidak berlaku untuk bentuk produk satu penyewa Lingjun. Jangan gunakan dalam skenario satu penyewa Lingjun.
Persyaratan Driver
Rilis 25.07 didasarkan pada CUDA 12.8.0 dan memerlukan versi driver NVIDIA 575 atau lebih tinggi. Namun, jika Anda menggunakan GPU pusat data (seperti T4 atau GPU pusat data lainnya), Anda dapat menggunakan versi driver NVIDIA 470.57 (atau lebih tinggi R470), 525.85 (atau lebih tinggi R525), 535.86 (atau lebih tinggi R535), atau 545.23 (atau lebih tinggi R545).
Paket kompatibilitas driver CUDA hanya mendukung driver tertentu. Oleh karena itu, pengguna harus meningkatkan dari semua driver R418, R440, R450, R460, R510, R520, R530, R545, R555, dan R560, yang tidak kompatibel maju dengan CUDA 12.8. Untuk daftar lengkap driver yang didukung, lihat Kompatibilitas aplikasi CUDA. Untuk informasi lebih lanjut, lihat 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 terdistribusi, seperti FSDP atau DeepSpeed. Akibatnya, torch.compile() tidak memberikan manfaat bagi pelatihan Anda atau bahkan dapat memberikan dampak negatif.
Mengontrol granularitas komunikasi dalam kerangka DeepSpeed membantu kompilator memperoleh grafik komputasi lengkap untuk cakupan optimasi kompilasi yang lebih luas.
PyTorch dioptimalkan:
Antarmuka depan kompilator PyTorch dioptimalkan untuk memastikan kompilasi ketika 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 optimal lapisan rekompilasi aktivasi dan mengintegrasikannya ke dalam PyTorch. Ini memungkinkan pengguna dengan mudah mendapatkan manfaat dari optimasi memori GPU. Saat ini, fitur ini dapat digunakan dalam kerangka 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
Menggunakan alat evaluasi dan analisis kinerja AI cloud-native CNP, kami melakukan analisis perbandingan kinerja end-to-end komprehensif dengan model open-source utama dan konfigurasi kerangka terhadap gambar dasar standar. Melalui eksperimen ablation, kami lebih lanjut mengevaluasi kontribusi setiap komponen optimasi terhadap kinerja pelatihan model secara keseluruhan.
Analisis kontribusi kinerja E2E komponen inti GPU.
Tes berikut didasarkan pada 25.07, melakukan evaluasi kinerja E2E pelatihan dan analisis perbandingan pada kluster GPU multi-node, dengan perbandingan termasuk yang berikut:
Dasar: NGC PyTorch Image.
Gambar AI ACS: Dasar+ACCL: Gambar menggunakan pustaka komunikasi ACCL.
Gambar AI ACS: AC2+ACCL: Gambar emas menggunakan AC2 Base OS, tanpa optimasi yang diaktifkan.
Gambar AI ACS: AC2+ACCL+CompilerOpt: Gambar emas menggunakan AC2 Base OS, dengan hanya optimasi torch compile yang diaktifkan.
Gambar AI ACS: AC2+ACCL+CompilerOpt+CkptOpt: Gambar emas menggunakan AC2 Base OS, dengan optimasi torch compile dan selektif gradient checkpoint yang diaktifkan.

Mulai Cepat
Contoh konten berikut hanya menarik gambar training-nv-pytorch melalui Docker.
Untuk menggunakan gambar training-nv-pytorch di ACS, Anda perlu memilihnya dari halaman pusat artefak pada antarmuka buat beban kerja di konsol, atau tentukan referensi gambar melalui 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 + optimasi memori rekompilasi
Aktifkan optimasi kompilasi
Menggunakan transformers Trainer API:

Aktifkan optimasi memori rekompilasi
export CHECKPOINT_OPTIMIZATION=true
3. Mulai kontainer
Gambar mencakup alat pelatihan model bawaan ljperf, yang digunakan untuk menggambarkan langkah-langkah memulai kontainer dan menjalankan tugas pelatihan.
Kelas LLM
# Mulai kontainer dan masuk
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 perlu disesuaikan secara dinamis sesuai dengan skenario penggunaan:Ketika satu Pod hanya meminta 1/2/4/8 kartu untuk tugas pelatihan/inferensi: Anda perlu mengatur
NCCL_SOCKET_IFNAME=eth0(konfigurasi default dalam gambar ini).Ketika satu Pod meminta semua 16 kartu mesin (pada titik ini Anda dapat menggunakan jaringan HPN berkinerja-tinggi) untuk tugas pelatihan/inferensi: Anda perlu mengatur
NCCL_SOCKET_IFNAME=hpn0.
Masalah Diketahui
(Tidak ada pada saat ini)