Deep Learning Containers (DLC) dari Platform for AI (PAI) mendukung pekerjaan pelatihan terdistribusi jenis MPIJob. Panduan ini memandu Anda dalam mengirim MPIJob menggunakan mpirun atau DeepSpeed (pdsh), mulai dari menyiapkan sumber kode hingga memantau log pelatihan.
Prasyarat
Sebelum memulai, pastikan Anda telah:
-
Mengaktifkan DLC dan membuat ruang kerja default. Lihat Aktifkan PAI dan buat ruang kerja default.
-
Membeli sumber daya Lingjun dan membuat kuota sumber daya. Lihat Buat kuota sumber daya.
Batasan
Pekerjaan pelatihan MPIJob hanya didukung di wilayah China (Ulanqab) saat menggunakan sumber daya Lingjun.
Cara kerja
MPIJob menggunakan dua role: launcher dan satu atau beberapa worker. Launcher memulai proses pelatihan di semua node, sedangkan worker menjalankan komputasi terdistribusi. DLC secara otomatis menghasilkan hostfile dan mengonfigurasi komunikasi antar-node—Anda tidak perlu mengatur SSH antar-node secara manual.
DLC telah mengonfigurasi variabel lingkungan untuk launcher. Anda dapat mengganti nilai default tersebut dalam perintah startup jika diperlukan. Lihat Variabel lingkungan sistem.
Pilih metode peluncuran
DLC mendukung dua metode untuk meluncurkan pelatihan MPIJob:
| Metode | Mekanisme peluncuran | Gunakan saat |
|---|---|---|
| mpirun | kubexec (dikelola DLC) | Pelatihan terdistribusi MPI standar |
| DeepSpeed (pdsh) | pdsh | Pelatihan paralelisme pipeline DeepSpeed |
Kedua metode menggunakan konfigurasi sumber daya yang sama. Satu-satunya perbedaan terletak pada perintah startup.
Langkah 1: Siapkan sumber kode
Buat sumber kode menggunakan repositori contoh DeepSpeed resmi.
-
Di konsol DLC, buka Code Builds dan buat sumber kode baru dengan parameter berikut. Untuk parameter lainnya, gunakan nilai default. Lihat Konfigurasi kode.
Parameter Nilai Name deepspeed-examplesGit repository https://github.com/microsoft/DeepSpeedExamples.git
Langkah 2: Kirim pekerjaan pelatihan terdistribusi
Opsi 1: mpirun
-
Di konsol PAI, pilih wilayah dan ruang kerja Anda, lalu klik Deep Learning Containers (DLC).
-
Di halaman DLC, klik Create Job.
-
Di halaman Create Job, konfigurasikan parameter berikut. Untuk parameter lainnya, lihat Buat pekerjaan pelatihan. Startup command
Resource type dan Driver settings hanya muncul jika ruang kerja mendukung sumber daya Lingjun dan umum.
Informasi lingkungan
Parameter Nilai Image URL dsw-registry-vpc.<RegionID>.cr.aliyuncs.com/pai-common/deepspeed-training:23.08-gpu-py310-cu122-ubuntu22.04— ganti<RegionID>dengan ID wilayah Anda. Untuk China (Ulanqab), gunakancn-wulanchabu. Untuk ID wilayah lainnya, lihat Regions and zones.Startup command Lihat di bawah Code Builds Pilih Online configuration, lalu pilih sumber kode yang telah Anda buat. Gunakan Mount path default. Informasi sumber daya
Parameter Nilai Resource type Lingjun AI Computing Service Source Resource Quota Resource quota Pilih kuota sumber daya Lingjun yang telah Anda buat Framework MPI Number of nodes 2 vCPUs 4 GPUs 1 Memory (GiB) 8 Shared memory (GiB) 8 Driver settings 535.54.03(direkomendasikan untuk image uji di atas)cd /root/code/DeepSpeedExamples/training/cifar/ # -np 2: launch 2 processes (one per node) # -bind-to none -map-by slot: use all available CPU cores on each slot # -x LD_LIBRARY_PATH -x PATH: forward these environment variables to worker nodes # -mca pml ob1 -mca btl ^openib: use TCP instead of InfiniBand for point-to-point messaging mpirun -np 2 --allow-run-as-root \ -bind-to none -map-by slot \ -x LD_LIBRARY_PATH -x PATH \ -mca pml ob1 -mca btl ^openib \ python /root/code/DeepSpeedExamples/training/cifar/cifar10_tutorial.py -
Klik OK.
Opsi 2: DeepSpeed (pdsh)
Gunakan perintah startup berikut sebagai pengganti perintah mpirun di atas. Semua parameter lainnya tetap sama.
cd /root/code/DeepSpeedExamples/training/pipeline_parallelism
# --hostfile: DLC auto-generates this file with all node addresses
# -p 2: number of pipeline stages
# --steps 200: total training steps
deepspeed --hostfile /etc/mpi/hostfile train.py \
--deepspeed_config=ds_config.json \
-p 2 \
--steps=200
Untuk menggunakan custom image dengan DeepSpeed, instal library MPI dan DeepSpeed yang diperlukan dalam image tersebut. Image DeepSpeed resmi dari DockerHub telah mencakup library ini dalam kondisi pra-instal.
Langkah 3: Lihat detail pekerjaan dan log
-
Setelah pekerjaan dikirim, klik nama pekerjaan di halaman Deep Learning Containers (DLC).
-
Di halaman detail pekerjaan, periksa informasi dasar dan status berjalan.
-
Di bagian Instance di bagian bawah halaman, temukan instans dengan tipe launcher dan klik Log di kolom Actions.

Variabel lingkungan sistem
DLC telah mengonfigurasi variabel lingkungan berikut untuk role launcher. Ganti variabel ini dalam perintah startup jika lingkungan Anda memerlukan pengaturan berbeda.
| Variabel lingkungan | Deskripsi | Default | Metode yang berlaku |
|---|---|---|---|
OMPI_MCA_btl_tcp_if_include |
Network interface controller (NIC) untuk komunikasi launcher–worker. Pisahkan beberapa NIC dengan koma. | eth0 |
mpirun |
OMPI_MCA_orte_default_hostfile |
Jalur file host untuk perintah mpirun. DLC menghasilkan file ini secara otomatis. | /etc/mpi/hostfile |
|
OMPI_MCA_plm_rsh_agent |
Metode yang digunakan launcher untuk memulai proses worker di node remote. | /etc/mpi/kubexec.sh |
|
PDSH_RCMD_TYPE |
Tipe perintah remote untuk pdsh. | ssh |
DeepSpeed (pdsh) |
Kapan harus mengganti: Ganti OMPI_MCA_btl_tcp_if_include jika node Anda menggunakan NIC selain eth0 untuk komunikasi antar-node (misalnya, eth1 atau antarmuka bonded). Ganti PDSH_RCMD_TYPE jika kluster Anda memerlukan metode eksekusi remote selain SSH.