Buat pekerjaan pelatihan single-node atau terdistribusi di DLC menggunakan Konsol, Python SDK, atau CLI.
Quick start
Untuk panduan langkah demi langkah berbasis MNIST mengenai pelatihan single-GPU atau multi-node multi-GPU, lihat Quick start pelatihan terdistribusi DLC.
Parameter Konsol
Informasi dasar
Konfigurasikan Job Name dan Tag.
Informasi lingkungan
|
Parameter |
Description |
|
Image Configuration |
Selain Alibaba Cloud Image, jenis gambar berikut juga tersedia:
|
|
Mount dataset |
Pasang file data untuk pelatihan model. Jenis dataset yang didukung:
Mount Path: Jalur mount dalam kontainer DLC, misalnya Penting
Jika Anda menggunakan dataset CPFS, konfigurasikan VPC untuk pekerjaan DLC Anda. VPC tersebut harus sesuai dengan VPC sistem file CPFS. Jika tidak, pekerjaan mungkin tetap berada dalam status Preparing. |
|
Mount storage |
Pasang jalur sumber data untuk membaca data atau menyimpan file output.
Untuk informasi lebih lanjut, lihat Gunakan penyimpanan cloud dalam pekerjaan pelatihan DLC. |
|
Startup Command |
Perintah startup untuk pekerjaan (mendukung perintah shell). DLC secara otomatis menyuntikkan variabel lingkungan umum untuk PyTorch dan TensorFlow, seperti
|
Informasi sumber daya
|
Parameter |
Description |
|
Resource Type |
Nilai default adalah General Computing. Anda hanya dapat memilih Lingjun Intelligence Resources di wilayah China (Ulanqab), Singapura, China (Shenzhen), China (Beijing), China (Shanghai), dan China (Hangzhou). |
|
Source |
|
|
Framework |
Framework pelatihan pembelajaran mendalam yang didukung: TensorFlow, PyTorch, ElasticBatch, XGBoost, OneFlow, MPIJob, dan Ray. Catatan
Jika Anda memilih Resource Quota dan menggunakan sumber daya komputasi AI Lingjun, Anda hanya dapat mengirimkan pekerjaan TensorFlow, PyTorch, ElasticBatch, MPIJob, dan Ray. |
|
Job Resource |
Berdasarkan Framework yang dipilih, konfigurasikan sumber daya untuk node Worker, PS, Chief, Evaluator, dan GraphLearn. Untuk framework Ray, klik Add Role untuk menyesuaikan peran Worker dan menjalankan pekerjaan pada sumber daya heterogen.
|
Konfigurasi VPC
-
Tanpa VPC, pekerjaan menggunakan gateway publik dengan bandwidth terbatas, yang dapat memperlambat atau menyebabkan kegagalan eksekusi pekerjaan.
-
Konfigurasikan VPC dengan vSwitch dan security group yang sesuai untuk meningkatkan bandwidth jaringan, stabilitas, dan keamanan. Kluster pekerjaan dapat langsung mengakses layanan dalam VPC tersebut.
Penting-
Saat menggunakan VPC, instans kelompok sumber daya, penyimpanan dataset (OSS), dan repositori kode harus berada dalam VPC yang sama.
-
Untuk dataset CPFS, konfigurasikan pekerjaan agar menggunakan VPC yang sama dengan sistem file CPFS. Jika tidak, pekerjaan pelatihan DLC mungkin tetap berada dalam status Preparing.
-
Pekerjaan DLC yang menggunakan sumber daya komputasi AI Lingjun preemptible memerlukan VPC.
Konfigurasikan Internet Access Gateway. Dua metode didukung:
-
Public Gateway: Bandwidth terbatas yang mungkin tidak mencukupi selama akses konkurensi tinggi atau unduhan file besar.
-
Private Gateway: Untuk mengatasi keterbatasan bandwidth gateway publik, Anda dapat membuat Internet NAT Gateway di VPC pekerjaan DLC, mengikat Elastic IP Address (EIP), dan mengonfigurasi entri SNAT. Untuk informasi lebih lanjut, lihat Tingkatkan kecepatan akses jaringan publik menggunakan private gateway.
-
Toleransi kesalahan dan diagnosis
|
Parameter |
Description |
|
Automatic Fault Tolerance |
Aktifkan Automatic Fault Tolerance untuk mendeteksi dan menangani kesalahan tingkat algoritma serta meningkatkan pemanfaatan GPU. Untuk informasi lebih lanjut, lihat AIMaster: Mesin toleransi kesalahan otomatis elastis. Catatan
Mengaktifkan toleransi kesalahan otomatis akan menjalankan instans AIMaster yang berjalan bersama pekerjaan dan mengonsumsi sumber daya berikut:
|
|
Sanity Check |
Aktifkan Sanity Check untuk memeriksa kesehatan sumber daya pelatihan. Secara otomatis mengisolasi node yang rusak dan memicu O&M backend untuk mencegah kegagalan tahap awal. Untuk informasi lebih lanjut, lihat SanityCheck: Pemeriksaan kesehatan sumber daya komputasi. Catatan
Pemeriksaan kesehatan hanya didukung untuk pekerjaan PyTorch yang diajukan dengan kuota sumber daya komputasi AI Lingjun yang memiliki jumlah GPU lebih dari 0. |
Peran dan izin
Konfigurasikan instance RAM role. Untuk informasi lebih lanjut, lihat Konfigurasi peran RAM DLC.
|
Instance RAM role |
Description |
|
Default Role of PAI |
Menggunakan peran terkait layanan AliyunPAIDLCDefaultRole dengan izin MaxCompute dan OSS detail halus. Kredensial sementara memberikan:
|
|
Custom Role |
Pilih atau masukkan peran RAM kustom. Instans mengasumsikan izin peran ini saat mengakses layanan Alibaba Cloud melalui kredensial sementara STS. |
|
Does Not Associate Role |
Tidak ada peran RAM yang dikaitkan dengan pekerjaan DLC. Opsi default. |
Referensi
-
Lihat detail pekerjaan, penggunaan sumber daya, dan log operasi: Lihat detail pelatihan.
-
Lihat detail penagihan pekerjaan: Detail tagihan.
-
Pemecahan masalah pekerjaan DLC: FAQ DLC.
-
Kasus penggunaan DLC: Kasus penggunaan DLC.
Lampiran
Buat pekerjaan menggunakan SDK atau CLI
Python SDK
Langkah 1: Instal alat Credentials Alibaba Cloud
Instal alat Credentials untuk mengonfigurasi kredensial Anda untuk panggilan API SDK Alibaba Cloud. Prasyarat:
-
Python 3.7 atau lebih baru.
-
Alibaba Cloud SDK 2.0 atau lebih baru.
pip install alibabacloud_credentials
Langkah 2: Dapatkan AccessKey
Contoh ini menggunakan pasangan AccessKey untuk mengonfigurasi kredensial akses. Untuk mengurangi risiko keamanan, kami menyarankan Anda menetapkan ID AccessKey dan Rahasia AccessKey di variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET.
-
Untuk mendapatkan AccessKey, lihat Buat AccessKey.
-
Untuk mempelajari cara menyetel variabel lingkungan, lihat Konfigurasi variabel lingkungan.
-
Untuk metode lain konfigurasi kredensial, lihat Instal alat Credentials.
Langkah 3: Instal Python SDK
-
Instal SDK workspace.
pip install alibabacloud_aiworkspace20210204==3.0.1 -
Instal SDK DLC.
pip install alibabacloud_pai_dlc20201203==1.4.17
Langkah 4: Kirim pekerjaan
Menggunakan sumber daya publik
Kode contoh berikut membuat dan mengirimkan pekerjaan.
Menggunakan kuota langganan
-
Masuk ke Konsol PAI.
-
Temukan ID ruang kerja Anda di halaman Workspaces, seperti yang ditunjukkan di bawah.

-
Temukan ID kuota sumber daya grup sumber daya khusus Anda, seperti yang ditunjukkan di bawah.

-
Gunakan kode contoh berikut untuk membuat dan mengirimkan pekerjaan. Untuk daftar gambar publik yang tersedia, lihat Langkah 2: Siapkan gambar.
from alibabacloud_pai_dlc20201203.client import Client from alibabacloud_credentials.client import Client as CredClient from alibabacloud_tea_openapi.models import Config from alibabacloud_pai_dlc20201203.models import ( CreateJobRequest, JobSpec, ResourceConfig, GetJobRequest ) # Initialize a client to access the DLC API. region = 'cn-hangzhou' # An AccessKey provides full API access. For better security, we recommend using a RAM user for API access and daily O&M. # Do not hard-code your AccessKey ID and AccessKey secret in your code. This can leak your credentials and compromise the security of your resources. # This example authenticates by reading the AccessKey from environment variables using the Credentials SDK. cred = CredClient() client = Client( config=Config( credential=cred, region_id=region, endpoint=f'pai-dlc.{region}.aliyuncs.com', ) ) # Declare the resource configuration for the job. For image selection, you can refer to the public image list in the documentation or provide your own image URL. spec = JobSpec( type='Worker', image=f'registry-vpc.cn-hangzhou.aliyuncs.com/pai-dlc/tensorflow-training:1.15-cpu-py36-ubuntu18.04', pod_count=1, resource_config=ResourceConfig(cpu='1', memory='2Gi') ) # Define the job. req = CreateJobRequest( resource_id='<Replace with your resource quota ID>', workspace_id='<Replace with your WorkspaceID>', display_name='sample-dlc-job', job_type='TFJob', job_specs=[spec], user_command='echo "Hello World"', ) # Submit the job. response = client.create_job(req) # Get the job ID. job_id = response.body.job_id # Query the job status. job = client.get_job(job_id, GetJobRequest()).body print('job status:', job.status) # View the job's command. job.user_command
Menggunakan instans preemptible
-
SpotDiscountLimit (Diskon spot)
#!/usr/bin/env python3 from alibabacloud_tea_openapi.models import Config from alibabacloud_credentials.client import Client as CredClient from alibabacloud_pai_dlc20201203.client import Client as DLCClient from alibabacloud_pai_dlc20201203.models import CreateJobRequest region_id = '<region-id>' # The ID of the region in which the DLC job resides, such as cn-hangzhou. cred = CredClient() workspace_id = '12****' # The ID of the workspace to which the DLC job belongs. dlc_client = DLCClient( Config(credential=cred, region_id=region_id, endpoint='pai-dlc.{}.aliyuncs.com'.format(region_id), protocol='http')) create_job_resp = dlc_client.create_job(CreateJobRequest().from_map({ 'WorkspaceId': workspace_id, 'DisplayName': 'sample-spot-job', 'JobType': 'PyTorchJob', 'JobSpecs': [ { "Type": "Worker", "Image": "dsw-registry-vpc.<region-id>.cr.aliyuncs.com/pai/pytorch-training:1.12-cpu-py39-ubuntu20.04", "PodCount": 1, "EcsSpec": 'ecs.g7.xlarge', "SpotSpec": { "SpotStrategy": "SpotWithPriceLimit", "SpotDiscountLimit": 0.4, } }, ], 'UserVpc': { "VpcId": "vpc-0jlq8l7qech3m2ta2****", "SwitchId": "vsw-0jlc46eg4k3pivwpz8****", "SecurityGroupId": "sg-0jl4bd9wwh5auei9****", }, "UserCommand": "echo 'Hello World' && ls -R /mnt/data/ && sleep 30 && echo 'DONE'", })) job_id = create_job_resp.body.job_id print(f'jobId is {job_id}') -
SpotPriceLimit (Harga spot)
#!/usr/bin/env python3 from alibabacloud_tea_openapi.models import Config from alibabacloud_credentials.client import Client as CredClient from alibabacloud_pai_dlc20201203.client import Client as DLCClient from alibabacloud_pai_dlc20201203.models import CreateJobRequest region_id = '<region-id>' cred = CredClient() workspace_id = '12****' dlc_client = DLCClient( Config(credential=cred, region_id=region_id, endpoint='pai-dlc.{}.aliyuncs.com'.format(region_id), protocol='http')) create_job_resp = dlc_client.create_job(CreateJobRequest().from_map({ 'WorkspaceId': workspace_id, 'DisplayName': 'sample-spot-job', 'JobType': 'PyTorchJob', 'JobSpecs': [ { "Type": "Worker", "Image": "dsw-registry-vpc.<region-id>.cr.aliyuncs.com/pai/pytorch-training:1.12-cpu-py39-ubuntu20.04", "PodCount": 1, "EcsSpec": 'ecs.g7.xlarge', "SpotSpec": { "SpotStrategy": "SpotWithPriceLimit", "SpotPriceLimit": 0.011, } }, ], 'UserVpc': { "VpcId": "vpc-0jlq8l7qech3m2ta2****", "SwitchId": "vsw-0jlc46eg4k3pivwpz8****", "SecurityGroupId": "sg-0jl4bd9wwh5auei9****", }, "UserCommand": "echo 'Hello World' && ls -R /mnt/data/ && sleep 30 && echo 'DONE'", })) job_id = create_job_resp.body.job_id print(f'jobId is {job_id}')
Parameter utama untuk instans preemptible.
Parameter | Description |
SpotStrategy | Kebijakan penawaran. Parameter jenis penawaran hanya berlaku jika Anda menetapkan parameter ini ke SpotWithPriceLimit. |
SpotDiscountLimit | Jenis penawaran diskon spot. Catatan
|
SpotPriceLimit | Jenis penawaran harga spot. |
UserVpc | Parameter ini wajib saat Anda menggunakan sumber daya Lingjun untuk mengirimkan pekerjaan. Konfigurasikan VPC, vSwitch, dan ID security group untuk wilayah tempat pekerjaan berada. |
CLI
Langkah 1: Unduh klien dan autentikasi
Unduh klien untuk Linux (64-bit) atau macOS dan lengkapi autentikasi pengguna. Untuk detailnya, lihat Persiapan.
Langkah 2: Kirim pekerjaan
-
Masuk ke Konsol PAI.
-
Temukan ID ruang kerja Anda di halaman Workspaces, seperti yang ditunjukkan di bawah.

-
Temukan ID kuota sumber daya Anda, seperti yang ditunjukkan di bawah.

-
Siapkan file parameter bernama
tfjob.paramsseperti pada contoh berikut. Untuk informasi lebih lanjut tentang cara mengonfigurasi file parameter, lihat Perintah submit.name=test_cli_tfjob_001 workers=1 worker_cpu=4 worker_gpu=0 worker_memory=4Gi worker_shared_memory=4Gi worker_image=registry-vpc.cn-beijing.aliyuncs.com/pai-dlc/tensorflow-training:1.12.2PAI-cpu-py27-ubuntu16.04 command=echo good && sleep 120 resource_id=<Replace with your resource quota ID> workspace_id=<Replace with your WorkspaceID> -
Jalankan perintah berikut untuk mengirimkan pekerjaan DLC ke ruang kerja dan kuota sumber daya yang ditentukan menggunakan file parameter.
./dlc submit tfjob --job_file ./tfjob.params -
Jalankan perintah berikut untuk melihat pekerjaan DLC yang telah dikirim.
./dlc get job <jobID>
Parameter lanjutan
|
Parameter (key) |
Framework yang didukung |
Description |
Value |
|
|
ALL |
Kebijakan rilis sumber daya kustom. Default: semua sumber daya pod dilepaskan setelah pekerjaan selesai. Atur ke pod-exit untuk segera melepaskan sumber daya pod ketika pod tersebut keluar. |
pod-exit |
|
|
ALL |
Aktifkan atau nonaktifkan IBGDA saat driver GPU dimuat. |
|
|
|
ALL |
Jika diatur ke true, menginstal modul kernel GDRCopy (versi 2.4.4). |
|
|
|
ALL |
Aktifkan atau nonaktifkan binding NUMA. |
|
|
|
ALL |
Memeriksa apakah kuota memiliki total sumber daya yang cukup (spesifikasi node) untuk semua peran dalam pekerjaan pada saat pengiriman. |
|
|
|
PyTorch |
Aktifkan atau nonaktifkan komunikasi jaringan antar worker.
Jika diaktifkan, nama domain setiap worker adalah nama workernya, seperti |
|
|
|
PyTorch |
Menentukan port jaringan yang akan dibuka pada setiap worker. Parameter ini dapat digunakan dengan Jika parameter ini tidak dikonfigurasi, hanya port 23456 yang dibuka pada master secara default. Oleh karena itu, pastikan port 23456 tidak termasuk dalam daftar port kustom ini. Penting
Parameter ini saling eksklusif dengan |
Sekumpulan string yang dipisahkan titik koma (;). Setiap string dapat berupa nomor port atau rentang port yang ditentukan dengan tanda hubung (-). Contoh: |
|
|
PyTorch |
Jumlah port jaringan yang akan dibuka untuk setiap worker. Parameter ini dapat digunakan dengan Jika parameter ini tidak dikonfigurasi, hanya port 23456 yang dibuka pada master secara default. DLC secara acak menetapkan jumlah port yang ditentukan ke setiap worker. Port yang ditetapkan, dalam format yang dipisahkan titik koma, diteruskan ke worker dalam variabel lingkungan Penting
|
Bilangan bulat (maksimal 65536) |
|
|
Ray |
Untuk Ray, definisikan lingkungan runtime dengan mengonfigurasi RayRuntimeEnv. Penting
Konfigurasi variabel lingkungan dan pustaka pihak ketiga akan ditimpa oleh konfigurasi ini. |
Konfigurasikan variabel lingkungan dan pustaka pihak ketiga ( |
|
|
Ray |
Alamat Redis GCS eksternal. |
String |
|
|
Ray |
Username Redis GCS eksternal. |
String |
|
|
Ray |
Password Redis GCS eksternal. |
String |
|
|
Ray |
Jumlah percobaan ulang untuk submitter. |
Bilangan bulat positif (int) |
|
|
Ray |
Mengatur memori bersama untuk sebuah node. Misalnya, untuk mengonfigurasi 1 GiB memori bersama per node:
|
Bilangan bulat positif (int) |
untuk memilih metode penawaran: