Deep Learning Containers (DLC) dari Platform for AI (PAI) adalah platform deep learning cloud-native serbaguna yang menyediakan lingkungan pelatihan fleksibel, stabil, mudah digunakan, dan berkinerja tinggi untuk pembelajaran mesin. Topik ini menjelaskan cara menggunakan mpirun dan DeepSpeed untuk mengirimkan pekerjaan pelatihan terdistribusi tipe MPIJob di DLC.
Prasyarat
DLC telah diaktifkan dan ruang kerja default telah dibuat. Untuk informasi lebih lanjut, lihat Aktifkan PAI dan Buat Ruang Kerja Default.
Sumber daya komputasi cerdas Lingjun telah dibeli dan kuota sumber daya telah dibuat. Untuk informasi lebih lanjut, lihat Buat Kuota Sumber Daya.
Batasan
Anda hanya dapat mengirimkan pekerjaan pelatihan MPIJob dengan menggunakan Sumber daya Lingjun di Wilayah Tiongkok (Ulanqab).
Kirim pekerjaan pelatihan MPIJob
Ikuti langkah-langkah berikut untuk mengirimkan pekerjaan pelatihan tipe MPIJob:
Langkah 1: Siapkan sumber kode
Gunakan contoh resmi DeepSpeed untuk membuat set data. Konfigurasikan parameter yang diperlukan. Bagian berikut menjelaskan parameter kunci. Gunakan pengaturan default untuk parameter lainnya. Untuk informasi lebih lanjut, lihat Bangunan Kode.
Name: nama set data. Dalam contoh ini, deepspeed-examples digunakan.
Git repository: https://github.com/microsoft/DeepSpeedExamples.git.
Langkah 2: Kirim pekerjaan pelatihan terdistribusi
Anda dapat menggunakan salah satu metode berikut untuk mengirimkan pekerjaan pelatihan terdistribusi:
mpirun
Pergi ke halaman Create Job.
Masuk ke Konsol PAI, pilih wilayah dan ruang kerja target di bagian atas halaman, lalu klik Deep Learning Containers (DLC).
Di halaman Deep Learning Containers (DLC), klik Create Job.
Di halaman Create Job, konfigurasikan parameter kunci yang dijelaskan dalam tabel berikut. Untuk informasi lebih lanjut tentang parameter lainnya, lihat Buat Pekerjaan Pelatihan.
Parameter
Deskripsi
Environment Information
Node Image
Solusi ini menyediakan citra uji untuk mengirimkan MPIJob untuk menjalankan tugas pelatihan terdistribusi. Klik Image Address dan masukkan dsw-registry-vpc.<RegionID>.cr.aliyuncs.com/pai-common/deepspeed-training:23.08-gpu-py310-cu122-ubuntu22.04 di kotak teks. Di alamat citra, ganti
<RegionID>dengan ID wilayah. Misalnya, ID wilayah untuk Tiongkok (Ulanqab) adalah cn-wulanchabu. Untuk informasi lebih lanjut tentang ID wilayah, lihat Wilayah dan zona.Startup Command
Perintah yang dijalankan di semua node pekerjaan pelatihan terdistribusi. Dalam contoh ini, konfigurasi default variabel lingkungan sistem digunakan. Anda dapat mengonfigurasi variabel lingkungan dalam perintah untuk menimpa konfigurasi default. Untuk informasi lebih lanjut, lihat Variabel lingkungan sistem.
cd /root/code/DeepSpeedExamples/training/cifar/ # --np 2 Mulai dua node. 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.pyCode Builds
Pilih Online configuration, dan pilih kode yang Anda buat. Pertahankan nilai default dari Mount Path.
Resource Information
Resource Type
Pilih Lingjun AI Computing Service.
CatatanParameter ini tersedia hanya ketika ruang kerja mendukung pengiriman tugas DLC menggunakan baik Sumber daya Lingjun maupun sumber daya umum.
Source
Pilih Resource Quota.
Resource Quota
Pilih kuota sumber daya Lingjun yang Anda buat.
Framework
Pilih MPIJob.
Job Resource
Atur Nodes menjadi 2.
Atur vCPUs menjadi 4.
Atur GPUs menjadi 1.
Atur Memory (GiB) menjadi 8.
Atur Shared Memory (GiB) menjadi 8.
Driver Settings
Jika Anda menggunakan citra uji sebelumnya, kami sarankan Anda mengatur versi driver ke 535.54.03.
CatatanHanya Sumber daya Lingjun yang mendukung parameter ini.
Klik Confirm.
Deepspeed (pdsh)
Jika Anda menggunakan metode ini untuk mengirimkan pekerjaan pelatihan terdistribusi, gunakan kode berikut untuk Startup Command. Konfigurasi parameter lainnya sama dengan konfigurasi untuk metode mpirun.
cd /root/code/DeepSpeedExamples/training/pipeline_parallelism
deepspeed --hostfile /etc/mpi/hostfile train.py --deepspeed_config=ds_config.json -p 2 --steps=200Jika Anda ingin menggunakan citra kustom untuk menjalankan pekerjaan DeepSpeed, Anda harus menginstal pustaka yang diperlukan untuk MPIJob dan DeepSpeed di dalam citra. Anda juga bisa mendapatkan citra DeepSpeed resmi dari DockerHub. Pustaka yang diperlukan untuk MPIJob dan DeepSpeed sudah pra-instal di dalam citra tersebut.
Dalam contoh ini, konfigurasi default variabel lingkungan sistem digunakan. Anda juga dapat mengonfigurasi variabel lingkungan dalam perintah startup untuk menimpa konfigurasi default. Untuk informasi lebih lanjut, lihat Variabel Lingkungan Sistem.
Langkah 3: Lihat detail pekerjaan dan log
Setelah pekerjaan dikirimkan, klik nama pekerjaan di halaman Deep Learning Containers (DLC).
Di halaman detail pekerjaan, lihat informasi dasar dan status berjalan dari pekerjaan.
Di bagian Instance di bagian bawah halaman detail pekerjaan, temukan instans yang tipenya adalah launcher, dan klik Log di kolom Actions untuk melihat status berjalan dari pekerjaan.

Variabel lingkungan sistem
Pekerjaan terdistribusi MPI menggunakan dua peran: launcher dan worker. Peran-peran tersebut perlu berkomunikasi satu sama lain selama pelatihan. Secara default, DLC mengonfigurasi variabel lingkungan untuk peran launcher. Anda dapat mengonfigurasi variabel lingkungan untuk menimpa konfigurasi default berdasarkan kebutuhan bisnis Anda. Tabel berikut menjelaskan variabel lingkungan tersebut.
Variabel lingkungan | Deskripsi | Nilai Default | Skenario |
OMPI_MCA_btl_tcp_if_include | Menentukan antarmuka kontrol jaringan (NIC) untuk komunikasi antara peran launcher dan worker. Pisahkan beberapa NIC dengan koma (,). | eth0 | Cocok untuk memulai pekerjaan menggunakan mpirun. |
OMPI_MCA_orte_default_hostfile | Menentukan file host untuk perintah mpirun. File host dapat dihasilkan secara otomatis di DLC. |
| |
OMPI_MCA_plm_rsh_agent | Menentukan cara memulai pekerjaan worker secara remote untuk peran launcher. |
| |
PDSH_RCMD_TYPE | Tipe perintah remote PDSH. | ssh | Cocok untuk memulai pekerjaan menggunakan DeepSpeed. |