Topik ini menjawab pertanyaan yang sering diajukan mengenai modul DLC dan menyediakan solusi untuk masalah umum.
T: Pekerjaan gagal dengan error "SupportsDistributedTraining false"
-
Penyebab: Pekerjaan pelatihan dikonfigurasi untuk menggunakan beberapa instans (lebih dari satu node), tetapi model tersebut tidak mendukung pelatihan terdistribusi.
-
Solusi: Atur jumlah node menjadi 1.
Q: Job gagal dengan kesalahan "pembatasan sumber daya dipicu"
Error ini terjadi karena pekerjaan melebihi batas sumber daya konkuren, yang saat ini diatur maksimal 2 GPU. Untuk mengatasinya, tunggu hingga pekerjaan lain yang sedang berjalan selesai atau kirimkan tiket untuk meminta kuota sumber daya yang lebih tinggi.
T: Apa yang harus dilakukan jika muncul error "exited with code 137"?
Jika Anda menemui error "xxx exited with code 137", coba gunakan instans dengan memori lebih besar, tambah jumlah worker, atau modifikasi kode Anda agar mengonsumsi lebih sedikit memori.
Di Linux, kode keluar 137 menunjukkan proses dihentikan oleh sinyal SIGKILL, yang biasanya mengindikasikan error kehabisan memori (OOM). Anda dapat memeriksa penggunaan memori worker di detail pekerjaan untuk memastikannya. Untuk mengatasi error ini, beralihlah ke tipe instans dengan memori lebih besar, tambahkan lebih banyak worker, atau modifikasi kode Anda agar mengonsumsi lebih sedikit memori.
T: Pekerjaan gagal atau dikeluarkan dari antrian
Status pekerjaan DLC berubah dalam urutan berikut:
|
Jenis pekerjaan |
Urutan status |
|
|
Pekerjaan DLC yang diajukan dengan sumber daya bayar sesuai penggunaan |
Menggunakan sumber daya preemptible Lingjun |
|
|
Menggunakan sumber daya publik Lingjun atau general-purpose |
|
|
|
Pekerjaan DLC yang diajukan dengan sumber daya langganan |
|
|
-
Apa yang harus saya lakukan jika pekerjaan terjebak dalam status Environment Preparing?
Jika pekerjaan terjebak dalam status Environment Preparing, penyebab umumnya adalah penggunaan dataset tipe CPFS untuk pekerjaan pelatihan terdistribusi tanpa menentukan VPC. Untuk mengatasinya, buat ulang pekerjaan tersebut dan konfigurasikan dataset tipe CPFS beserta VPC. Pastikan VPC yang dipilih sesuai dengan VPC yang digunakan oleh sistem file CPFS. Untuk informasi lebih lanjut, lihat Buat pekerjaan pelatihan.
-
Apa yang harus saya lakukan jika status pekerjaan adalah Failed?
Di halaman detail pekerjaan, Anda dapat mengidentifikasi penyebab kegagalan dengan mengarahkan kursor ke ikon
di samping status pekerjaan atau dengan memeriksa log operasional instans. Untuk informasi lebih lanjut, lihat Lihat detail pekerjaan pelatihan.
P: Mengganti jenis sumber daya untuk pekerjaan yang ada?
Tidak, Anda tidak dapat mengubah tipe sumber daya untuk pekerjaan yang sedang berjalan. Anda harus membuat pekerjaan baru. Untuk mempermudah proses ini, klik Clone di kolom Actions pada pekerjaan asli. Tindakan ini akan membuat pekerjaan baru dengan konfigurasi yang sama, yang kemudian dapat Anda modifikasi sebelum mengajukannya. Untuk informasi lebih lanjut mengenai penagihan, lihat Penagihan DLC.
T: Mengonfigurasi pekerjaan multi-node, multi-GPU
Saat membuat pekerjaan DLC, Anda dapat mengonfigurasi perintah startup berikut. Untuk detail konfigurasi lebih lanjut, lihat Buat pekerjaan pelatihan.
python -m torch.distributed.launch \ --nproc_per_node=2 \ --master_addr=${MASTER_ADDR} \ --master_port=${MASTER_PORT} \ --nnodes=${WORLD_SIZE} \ --node_rank=${RANK} \ train.py --epochs=100
T: Bagaimana cara mengunduh model yang telah dilatih ke lokal?
Untuk menyimpan model yang telah Anda latih, kaitkan dataset dengan pekerjaan DLC Anda dan konfigurasikan perintah startup agar menghasilkan output ke direktori yang dimount. Di bagian Environment Information pada konfigurasi pekerjaan, tambahkan dataset kustom, atur Mount Path menjadi /mnt/data/, lalu tambahkan perintah cp -r ./output /mnt/data ke Startup Command Anda. Perintah ini menyalin file model yang dihasilkan selama pelatihan ke direktori dataset yang dimount.
Setelah pekerjaan selesai, file model secara otomatis disimpan ke direktori dataset yang dimount. Anda kemudian dapat mengakses sistem file yang sesuai dengan dataset yang dimount tersebut dan mengunduh file model ke mesin lokal Anda.
-
Untuk mempelajari cara mengaitkan dataset saat mengajukan pekerjaan DLC, lihat Buat pekerjaan pelatihan.
-
Untuk mempelajari cara mengunduh file dari sistem file OSS ke mesin lokal Anda, lihat Mulai cepat.
-
Untuk mempelajari cara mengunduh file dari sistem file NAS ke mesin lokal Anda, lihat Mount sistem file di Function Compute.
T: Bagaimana cara menggunakan gambar Docker di DLC?
-
Buat pekerjaan DLC menggunakan gambar Docker kustom: Dorong gambar Docker Anda ke Alibaba Cloud Container Registry (ACR) dan tambahkan sebagai gambar kustom di ruang kerja PAI Anda. Saat membuat pekerjaan DLC, Anda dapat memilih gambar ini untuk meluncurkan instans Anda.
-
Untuk mempelajari cara mendorong gambar Docker ke ACR, lihat Dorong dan tarik gambar menggunakan instans Edisi Personal.
-
Untuk mempelajari cara menambahkan gambar kustom PAI, lihat Gambar kustom.
-
-
Menginstal dan menggunakan Docker di dalam kontainer DLC: Pekerjaan DLC berjalan di dalam kontainer. Oleh karena itu, Anda tidak dapat menginstal atau menggunakan Docker di dalam kontainer DLC.
T: Bagaimana cara melepaskan node yang selesai lebih awal?
Deskripsi masalah:
Pada pekerjaan pelatihan terdistribusi multi-worker, kesenjangan data dapat menyebabkan beberapa worker menyelesaikan tugasnya lebih awal daripada yang lain. Secara default, worker yang telah selesai tetap menempati node yang dialokasikan hingga seluruh pekerjaan selesai.
Solusi: Anda dapat mengonfigurasi parameter advanced ReleaseResourcePolicy untuk PAI-DLC. Secara default, sumber daya komputasi hanya dilepaskan setelah seluruh pekerjaan selesai. Jika Anda mengatur parameter ini menjadi pod-exit, sumber daya akan dilepaskan segera setelah proses worker keluar.
T: Pekerjaan gagal dengan error "Stale file handle"
Deskripsi masalah:
Beberapa worker gagal dengan error "OSError: [Errno 116] Stale file handle" saat menjalankan fitur kompilasi AOT (ahead-of-time) torch.compile milik PyTorch. Kegagalan terjadi ketika worker mencoba membaca file cache.
Pemecahan masalah dan analisis:
Error ini biasanya terjadi di lingkungan Sistem File Jaringan (NFS). Hal ini terjadi ketika klien menggunakan handle file yang telah kedaluwarsa, artinya file tersebut telah dihapus atau dipindahkan di server.
Akar penyebab:
Error ini berasal dari kompilasi ahead-of-time (AOT) PyTorch, yang menyimpan cache graf komputasi. Error "stale file handle" terjadi karena beberapa worker secara bersamaan membaca, menulis, atau membersihkan cache ini, sehingga menyebabkan kondisi balapan di mana suatu worker mencoba menggunakan handle untuk file yang telah dihapus oleh proses lain.
Solusi yang direkomendasikan:
-
Sebagai solusi utama, paksa PyTorch menggunakan
tmpfslokal untuk caching dengan mengatur variabel lingkungan berikut:TORCHINDUCTOR_CACHE_DIR=/dev/shm/torch_cache.
Solusi alternatif:
-
Gunakan Redis sebagai cache bersama, seperti yang dijelaskan dalam dokumentasi resmi PyTorch. Ini memerlukan penyiapan layanan Redis.
-
Tinjau opsi mount NFS CPFS Anda. Menggunakan opsi
noacmungkin dapat mengurangi masalah ini tetapi dapat berdampak pada performa. -
Nonaktifkan caching sepenuhnya dengan mengatur
TORCHINDUCTOR_CACHE_DIR="". Hal ini akan berdampak negatif pada performa kompilasi.
T: Error "Transport endpoint is not connected"
Deskripsi masalah:
Setelah pekerjaan DLC dimulai, perintah yang mengakses path dataset yang dimount seperti /mnt/data gagal dengan error Transport endpoint is not connected. Hal ini menunjukkan bahwa titik mount NFS terputus.
Penyebab umum:
-
Ketidaksesuaian VPC untuk CPFS: Saat menggunakan dataset CPFS, VPC pekerjaan pelatihan harus sesuai dengan VPC sistem file CPFS. Ketidaksesuaian akan menyebabkan mount gagal.
-
Dataset belum siap: Dataset yang dibuat melalui AI Asset Management mungkin masih dalam proses inisialisasi.
-
Path mount salah: Path mount yang ditentukan dalam konfigurasi pekerjaan tidak sesuai dengan titik mount aktual dataset.
Solusi:
-
Di AI Asset Management, pastikan status dataset adalah "Available".
-
Jika Anda menggunakan dataset CPFS, pastikan VPC pekerjaan pelatihan sesuai dengan VPC sistem file CPFS. Untuk informasi lebih lanjut, lihat bagian konfigurasi VPC di Buat pekerjaan pelatihan.
-
Periksa path mount: Jalankan
ls -la /mnt/datadi log tugas untuk memverifikasi bahwa mount dapat diakses. -
Jika Anda menggunakan dataset OSS, pertimbangkan untuk menggunakan metode Storage Mount alih-alih mount dataset, karena metode ini dapat menawarkan kompatibilitas yang lebih baik.
P: Kesalahan "Tidak dapat menyambungkan atau memasang volume"
Deskripsi masalah:
Saat startup, pekerjaan DLC terjebak dalam fase inisialisasi jaringan atau persiapan lingkungan. Log menunjukkan error berikut:
Unable to attach or mount volumes: unmounted volumes=[hostpath-volume], unattached volumes=[...]: timed out waiting for the condition
Penyebab umum:
-
Disk space node tidak mencukupi: Disk lokal pada node komputasi penuh, sehingga mencegah
hostpath-volumedimount. -
Kegagalan backend penyimpanan: Layanan penyimpanan (seperti NAS, CPFS, atau OSS) mengalami kegagalan sementara atau timeout koneksi.
-
Konflik sumber daya node: Beberapa pekerjaan dijadwalkan pada node yang sama, menyebabkan permintaan mount volume mengalami timeout saat menunggu dalam antrian.
Solusi:
-
Ajukan ulang pekerjaan. Error ini sering kali bersifat sementara, dan membuat pekerjaan baru dapat mengatasinya.
-
Verifikasi konektivitas penyimpanan. Pastikan layanan NAS, CPFS, atau OSS yang terkait dengan dataset Anda dalam kondisi sehat dan konfigurasi VPC serta security group sudah benar.
-
Jika masalah berlanjut, hubungi dukungan teknis Alibaba Cloud dan berikan ID pekerjaan serta log error lengkap.