All Products
Search
Document Center

Platform For AI:Buat pekerjaan pelatihan

Last Updated:Aug 12, 2026

PAI-DLC memungkinkan Anda membuat pekerjaan pelatihan single-node atau terdistribusi dengan cepat. Kubernetes secara otomatis menyediakan node komputasi di latar belakang, sehingga menghilangkan kebutuhan untuk membeli mesin secara manual atau mengonfigurasi lingkungan runtime. Layanan ini mendukung framework pembelajaran mendalam populer seperti TensorFlow dan PyTorch serta menyediakan opsi konfigurasi sumber daya yang fleksibel.

Mulai cepat

Dengan menggunakan pengenalan digit tulisan tangan MNIST sebagai contoh, panduan ini akan memandu Anda melalui pelatihan single-node dengan satu GPU dan pelatihan terdistribusi multi-node dengan multi-GPU menggunakan DLC. Untuk detail selengkapnya, lihat Memulai Deep Learning Containers (DLC).

Referensi parameter Konsol

Informasi dasar

Parameter

Deskripsi

Job Name

Tetapkan nama yang mudah dikenali untuk pekerjaan.

Tag

Terapkan tag standar pada pekerjaan Anda. Tag menjadi dasar untuk mengarsipkan pekerjaan berdasarkan label, menganalisis distribusi pekerjaan, dan melacak konsumsi sumber daya. Batasan berikut berlaku:

  • Batasan kunci: Tidak boleh dimulai dengan aliyun atau acs:. Tidak boleh mengandung http:// atau https://. Panjang maksimum: 128 karakter. Kunci hanya boleh berisi huruf, angka, tanda hubung (-), garis bawah (_), dan titik (.).

  • Batasan nilai: Tidak boleh mengandung http:// atau https://. Panjang maksimum: 256 karakter. Pisahkan beberapa nilai dengan koma.

Untuk panduan tentang penandaan standar, lihatStandarisasi penandaan untuk DLC, DSW, dan EAS.

Task Description

Gunakan bidang ini untuk menjelaskan tujuan, latar belakang, atau konteks lain dari pekerjaan.

Informasi lingkungan

Parameter

Deskripsi

Image Configuration

Selain Alibaba Cloud Image, jenis gambar berikut juga didukung:

  • Custom Image: Gunakan gambar kustom yang telah ditambahkan ke PAI. Repository gambar harus diatur sebagai publik, atau gambar harus disimpan di Alibaba Cloud Container Registry (ACR). Untuk detail selengkapnya, lihatGambar kustom.

    Catatan

    Jika Anda memilih sumber daya Lingjun dan menggunakan gambar kustom, Anda harus menginstal driver RDMA secara manual untuk memanfaatkan jaringan RDMA berkinerja tinggi secara optimal. Untuk detail selengkapnya, lihatRDMA: Jaringan berkinerja tinggi untuk pelatihan terdistribusi.

  • Image Address: Mendukung konfigurasi alamat gambar kustom atau resmi yang dapat diakses publik.

    • Untuk alamat gambar privat, klik Enter credentials dan konfigurasikan username dan password repository gambar.

    • Untuk meningkatkan kecepatan pull gambar, lihatAkselerasi gambar.

Mount dataset

Dataset menyediakan file data yang dibutuhkan untuk pelatihan model. Dua jenis dataset berikut didukung:

  • Custom Dataset: Anda dapat membuat dataset kustom untuk menyimpan file data yang dibutuhkan untuk pelatihan. Anda dapat mengaktifkan mode Read-only dan memilih versi dataset dari daftar versi.

  • Public Dataset: PAI menyediakan dataset publik bawaan yang hanya mendukung pemasangan read-only.

Mount Path: Jalur tempat dataset dipasang di dalam kontainer DLC, misalnya /mnt/data. Anda dapat mengakses dataset melalui jalur ini dalam kode Anda. Untuk detail konfigurasi pemasangan lebih lanjut, lihatGunakan penyimpanan cloud.

Penting

Jika Anda menggunakan dataset CPFS, Anda harus mengonfigurasi VPC untuk DLC yang sesuai dengan VPC CPFS. Jika tidak, pekerjaan yang dikirimkan mungkin tetap berada dalam status Preparing environment untuk waktu yang lama.

Mount storage

Anda juga dapat memasang jalur sumber data secara langsung untuk membaca data yang dibutuhkan atau menyimpan file antara dan hasil.

  • Jenis sumber data yang didukung: OSS, NAS tujuan umum, NAS ekstrem, CPFS, dan BMCPFS (hanya tersedia dengan sumber daya Lingjun).

  • Advanced Settings: Jenis sumber data yang berbeda mendukung kemampuan spesifik fitur melalui pengaturan lanjutan. Contohnya:

    • OSS: Tetapkan {"mountType":"ossfs"} di pengaturan lanjutan untuk memasang penyimpanan OSS menggunakan ossfs.

    • NAS tujuan umum dan CPFS: Tetapkan parameter nconnect di pengaturan lanjutan untuk meningkatkan throughput NAS dari kontainer DLC. Untuk detail selengkapnya, lihatBagaimana cara meningkatkan kinerja NAS di Linux?. Contohnya, {"nconnect":"<sample value>"}, di mana <sample value> diganti dengan bilangan bulat positif tertentu.

Untuk informasi lebih lanjut, lihatGunakan penyimpanan cloud.

Startup Command

Tetapkan perintah startup pekerjaan. Perintah shell didukung. DLC secara otomatis menyuntikkanvariabel lingkungan umum PyTorch dan TensorFlow seperti MASTER_ADDR dan WORLD_SIZE. Anda dapat mereferensikannya menggunakan $VARIABLE_NAME. Contoh perintah startup:

  • Run Python: python -c "print('Hello World')"

  • Pelatihan terdistribusi multi-node, multi-GPU PyTorch: 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

  • Tentukan jalur skrip shell sebagai perintah startup: /ml/input/config/launch.sh

Penting

Jalur pemasangan yang dikonfigurasi untuk kode (seperti /mnt/data) adalah lokasi file kode Anda di dalam kontainer DLC. Perintah startup Anda harus mereferensikan file kode menggunakan jalur ini.

Contohnya, jika jalur pemasangan kode adalah /mnt/data dan file kode Anda adalah train.py, perintah startup harus: python /mnt/data/train.py

Perluas untuk pengaturan tambahan: variabel lingkungan, pustaka pihak ketiga, konfigurasi kode

Environment Variable

Selainvariabel lingkungan umum PyTorch dan TensorFlow yang disuntikkan secara otomatis, Anda dapat menyediakan variabel lingkungan kustom dalam format Key:Value. Maksimal 20 variabel lingkungan didukung.

Third-party Libraries

Jika gambar kontainer tidak memiliki beberapa pustaka pihak ketiga, Anda dapat menambahkannya melalui Third-party Libraries. Dua metode didukung:

  • Select from List: Masukkan nama pustaka langsung di kotak teks di bawah. Pisahkan beberapa nama pustaka dengan spasi, contohnya griffon numpy pandas.

  • Directory of requirements.txt: Tambahkan pustaka ke file requirements.txt, unggah ke kontainer DLC melalui konfigurasi kode, dataset, atau pemasangan langsung, lalu tentukan jalur file di dalam kontainer di kotak teks.

Code Builds

Unggah file kode yang dibutuhkan untuk pelatihan ke kontainer DLC. Dua metode konfigurasi didukung:

  • Online configuration: Jika Anda memiliki repositori Git yang ada dan memiliki izin akses, Anda dapat menautkannya menggunakanBuat konfigurasi kode agar DLC dapat mengambil kode pekerjaan.

  • Local Upload: Klik tombol image.png untuk mengunggah file kode lokal. Setelah unggahan berhasil, konfigurasikan Mount path ke jalur tertentu di dalam kontainer, contohnya /mnt/data.

Informasi sumber daya

Parameter

Deskripsi

Resource Type

Default ke General Computing. Lingjun Intelligence Resources tersedia di wilayah berikut: Tiongkok (Ulanqab), Singapura, Tiongkok (Shenzhen), Tiongkok (Beijing), Tiongkok (Shanghai), Tiongkok (Hangzhou), Tiongkok (Guangzhou), Tiongkok (Hong Kong), Malaysia, Jerman, dan Atlanta.

Source

  • Public Resources:

    • Model penagihan: bayar sesuai penggunaan.

    • Cocok untuk beban kerja dengan pekerjaan yang jarang dan tidak memiliki persyaratan waktu yang ketat. Sumber daya publik mungkin memerlukan antrian.

    • Batas sumber daya: Maksimal 2 GPU dan 8 core CPU. Untuk melebihi batas ini, hubungi manajer akun Anda untuk menaikkan kuota.

  • Resource Quota: Termasuk sumber daya komputasi tujuan umum atau sumber daya Lingjun.

    • Model penagihan: langganan.

    • Cocok untuk skenario dengan volume pekerjaan tinggi yang memerlukan sumber daya stabil yang dijamin.

    • Parameter khusus:

      • Resource Quota: Tetapkan jumlah GPU, CPU, dan sumber daya lainnya. Untuk cara menyiapkan kuota sumber daya, lihatBuat kuota sumber daya.

      • Priority: Menunjukkan prioritas eksekusi pekerjaan yang berjalan secara konkuren. Rentang nilai: [1, 9], di mana 1 adalah prioritas terendah.

    • Pemeriksaan awal: Secara otomatis memverifikasi kompatibilitas model GPU dan gambar sebelum pengiriman pekerjaan, menangkap kesalahan konfigurasi lebih awal dan mencegah kegagalan pekerjaan.

  • Preemptible Resources:

    • Model penagihan: bayar sesuai penggunaan.

    • Cocok untuk skenario yang sensitif terhadap biaya. Harga sumber daya spot lebih rendah daripada bayar sesuai penggunaan.

    • Tidak ada jaminan ketersediaan. Sumber daya mungkin tidak tersedia segera atau dapat ditarik kembali. Untuk informasi lebih lanjut, lihatGunakan pekerjaan preemptible.

Framework

Framework dan alat pelatihan pembelajaran mendalam berikut didukung: TensorFlow, PyTorch, ElasticBatch, XGBoost, OneFlow, MPIJob, Ray, Custom, DataJuicer, dan MPI.

Catatan

Ketika Resource Quota diatur ke sumber daya Lingjun, hanya pekerjaan TensorFlow, PyTorch, ElasticBatch, MPIJob, dan Ray yang didukung.

Job Resource

Berdasarkan Framework yang dipilih, Anda dapat mengonfigurasi sumber daya untuk tipe node Worker, PS, Chief, Evaluator, dan GraphLearn. Saat menggunakan framework Ray, Anda dapat mengklik Add Role untuk menyesuaikan peran Worker, memungkinkan eksekusi campuran sumber daya heterogen.

  • Menggunakan sumber daya publik: Parameter berikut dapat dikonfigurasi:

    • Number of Nodes: Jumlah node yang menjalankan pekerjaan DLC.

    • Resource Type: Pilih tipe instans. Konsol menampilkan harga yang sesuai. Untuk informasi penagihan lebih lanjut, lihatPenagihan DLC.

  • Menggunakan kuota sumber daya: Anda dapat mengonfigurasi jumlah node, core CPU, GPU, memori (GiB), dan memori bersama (GiB) untuk setiap tipe node. Parameter khusus berikut juga tersedia:

    • Node-Specific Scheduling: Jalankan pekerjaan pada node komputasi tertentu.

    • Idle Resources: Saat menggunakan sumber daya waktu idle, pekerjaan dapat berjalan pada kapasitas idle dari kuota lain, meningkatkan pemanfaatan sumber daya. Namun, ketika kuota asli membutuhkan sumber daya ini, pekerjaan waktu idle secara otomatis dihentikan dan sumber daya dikembalikan. Untuk informasi lebih lanjut, lihatGunakan sumber daya waktu idle.

    • CPU Affinity: Aktifkan afinitas CPU untuk mengikat proses ke core CPU tertentu, mengurangi cache miss dan context switch untuk meningkatkan kinerja. Cocok untuk skenario dengan persyaratan kinerja tinggi dan real-time.

  • Menggunakan sumber daya spot: Selain jumlah node dan tipe instans, Anda dapat mengonfigurasi parameter Bid Price, yang menetapkan tawaran maksimum untuk sumber daya spot. Klik tombol image untuk memilih metode penawaran:

    • By discount: Harga maksimum didasarkan pada harga pasar tipe instans, dengan opsi diskrit dari 10% hingga 90% dari harga pasar, yang mewakili batas penawaran. Sumber daya spot dialokasikan ketika tawaran maksimum lebih besar dari atau sama dengan harga pasar dan kapasitas yang cukup tersedia.

    • By price: Rentang tawaran maksimum berada dalam rentang harga pasar.

Scheduling Policy

Anda dapat menyesuaikan strategi penjadwalan sumber daya kontainer berdasarkan skenario bisnis dan karakteristik pekerjaan Anda:

  • Intelligent: Pekerjaan GPU dikonsolidasikan ke node GPU paling sedikit, sedangkan pekerjaan CPU didistribusikan ke node CPU. Ini adalah strategi default.

  • Centralized: Pekerjaan dikonsolidasikan ke node paling sedikit. Strategi ini membantu mengurangi fragmentasi sumber daya dan ideal untuk pelatihan model GPU.

  • Spread: Pekerjaan disebar ke berbagai node. Strategi ini meningkatkan tingkat keberhasilan dequeue pekerjaan dan ideal untuk pekerjaan CPU terdistribusi.

Catatan

DLC tidak mendukung modifikasi langsung tipe instans pekerjaan yang telah dikirimkan. Untuk mengubah tipe instans (misalnya, beralih ke instans yang mendukung jaringan berkinerja tinggi eRDMA, seperti ecs.ebmgn8v.48xlarge), gunakan fitur Clone Job untuk membuat pekerjaan baru, pilih tipe instans target, lalu kirimkan. Platform secara otomatis mengaktifkan jaringan berkinerja tinggi dan mengonfigurasi parameter terkait NCCL. Untuk mengubah versi NVIDIA driver dan CUDA instans, gunakan fitur konfigurasi instans untuk mengubah versi driver (misalnya, ke versi 580). Platform secara otomatis menarik gambar DLC yang sesuai berdasarkan konfigurasi baru guna memperbarui lingkungan runtime, menyelesaikan perubahan driver, peningkatan CUDA, atau penggantian driver GPU.

Perluas untuk pengaturan tambahan: durasi maksimum berjalan, periode retensi, pengaturan lanjutan framework

Maximum Duration

Tetapkan durasi maksimum pekerjaan dapat berjalan. Pekerjaan yang melebihi durasi ini akan dihentikan secara otomatis. Default: 30 hari.

Retention Period

Konfigurasikan berapa lama pekerjaan yang selesai atau gagal disimpan. Perhatikan bahwa penyimpanan tetap mengonsumsi sumber daya. Pekerjaan yang melebihi durasi ini akan dihapus.

Penting

Pekerjaan DLC yang dihapus tidak dapat dipulihkan. Harap berhati-hati.

Start Developer Machine

Ketika sumber sumber daya adalah kuota sumber daya, Anda dapat meluncurkan instans DSW untuk debugging online. Di area daftar instans halaman ikhtisar pekerjaan, klik DSW di kolom Aksi untuk mengakses instans.

Advanced Framework Configuration

Untuk daftar parameter yang dapat dikonfigurasi dan nilainya, lihatDaftar parameter lanjutan.

  • Parameter ReleaseResourcePolicy, EnableNvidiaIBGDA, EnableNvidiaGDRCopy, EnablePaiNUMACoreBinding, dan EnableResourcePreCheck didukung oleh semua framework.

  • Ketika framework adalah PyTorch, parameter yang didukung adalah: createSvcForAllWorkers, customPortList, dan customPortNumPerWorker.

    Penting

    Karena sumber daya Lingjun tidak menyediakan kemampuan port kustom, parameter customPortNumPerWorker tidak didukung saat mengirimkan pekerjaan DLC dengan sumber daya Lingjun.

  • Ketika framework adalah Ray, parameter yang didukung adalah: RayRuntimeEnv, RayRedisAddress, RayRedisUsername, RayRedisPassword, RaySubmitterBackoffLimit, dan RayObjectStoreMemoryBytes. Perhatikan bahwa konfigurasi variabel lingkungan dan pustaka pihak ketiga akan ditimpa oleh konfigurasi RayRuntimeEnv.

Format konfigurasi berikut didukung:

  • Teks biasa: Konfigurasikan sebagai string yang dipisahkan koma (,) di mana setiap entri mengikuti format key=value. Kunci adalah parameter lanjutan yang didukung, dan nilai adalah nilai parameter yang sesuai.

  • JSON

Skenario konfigurasi khas:

  • Skenario 1: Konfigurasi lanjutan PyTorch

    Parameter konfigurasi lanjutan memungkinkan konektivitas jaringan antar Worker, memungkinkan pendekatan pelatihan yang lebih fleksibel. Misalnya, Anda dapat menggunakan port tambahan yang terbuka untuk memulai framework seperti Ray di dalam kontainer DLC dan menggabungkannya dengan PyTorch untuk pelatihan terdistribusi lanjutan. Contoh konfigurasi:

    createSvcForAllWorkers=true,customPortNumPerWorker=100

    Anda kemudian dapat menggunakan Startup Command untuk mengonfigurasi variabel lingkungan $JOB_NAME dan $CUSTOM_PORTS untuk mendapatkan nama domain dan nomor port yang tersedia, lalu memulai dan menghubungkan ke framework seperti Ray.

  • Skenario 2: Konfigurasi manual RayRuntimeEnv untuk framework Ray (termasuk dependensi dan variabel lingkungan)

    Contoh konfigurasi:

    {"RayRuntimeEnv": "{pip: requirements.txt, env_vars: {key: value}}"}
  • Skenario 3: Kebijakan rilis sumber daya kustom

    Saat ini, satu-satunya kebijakan rilis yang didukung adalah pod-exit, yang secara otomatis melepaskan sumber daya ketika Pod Anda keluar. Contoh konfigurasi:

    {
      "ReleaseResourcePolicy": "pod-exit"
    }

Konfigurasi VPC

  • Jika tidak ada VPC yang dikonfigurasi, jaringan publik dan gateway publik akan digunakan. Karena gateway publik memiliki bandwidth terbatas, pekerjaan mungkin mengalami perlambatan atau gagal berjalan dengan baik selama eksekusi.

  • Mengonfigurasi VPC serta memilih vSwitch dan security group yang sesuai meningkatkan bandwidth jaringan, stabilitas, dan keamanan. Kluster yang menjalankan pekerjaan Anda juga dapat langsung mengakses layanan di dalam VPC tersebut.

    Penting
    • Saat menggunakan VPC, pastikan bahwa instans kelompok sumber daya pekerjaan, penyimpanan dataset (OSS), dan repositori kode semuanya berada dalam VPC yang sama di wilayah yang sama, serta konektivitas jaringan telah dibangun.

    • Saat menggunakan dataset CPFS, Anda harus mengonfigurasi VPC yang sesuai dengan VPC CPFS. Jika tidak, pekerjaan pelatihan DLC yang dikirimkan mungkin tetap berada dalam status Preparing environment untuk waktu yang lama.

    • Saat mengirimkan pekerjaan DLC menggunakan sumber daya spot Lingjun, Anda harus mengonfigurasi VPC.

    Sebagai tambahan, Anda dapat mengonfigurasi Internet Access Gateway. Dua opsi berikut didukung:

    • Public Gateway: Bandwidth terbatas. Selama periode konkurensi tinggi atau saat mengunduh file besar, kecepatan jaringan mungkin tidak memenuhi permintaan.

    • Private Gateway: Untuk mengatasi keterbatasan bandwidth gateway publik, Anda dapat membuat gateway NAT di VPC DLC, mengaitkan EIP, dan mengonfigurasi entri SNAT. Untuk detail selengkapnya, lihat Tingkatkan akses internet dengan gateway privat.

Toleransi kesalahan dan diagnostik

Parameter

Deskripsi

Automatic Fault Tolerance

Setelah mengaktifkan fitur Automatic Fault Tolerance dan mengonfigurasi parameter terkait, sistem menyediakan kemampuan pemantauan dan kontrol pekerjaan. Sistem dapat mendeteksi kesalahan tingkat algoritma secara real-time dan mengambil tindakan korektif, meningkatkan pemanfaatan GPU. Untuk detail selengkapnya, lihatAIMaster: Mesin toleransi kesalahan otomatis elastis.

Catatan

Saat toleransi kesalahan otomatis diaktifkan, sistem meluncurkan instans AIMaster bersama instans pekerjaan, yang mengonsumsi sumber daya komputasi tambahan. Detail penggunaan sumber daya instans AIMaster:

  • Kuota sumber daya: 1 core CPU dan 1 GiB memori.

  • Sumber daya publik: Menggunakan tipe instans ecs.c6.large.

Sanity Check

Setelah mengaktifkan fitur Sanity Check, pemeriksaan kesehatan memeriksa secara menyeluruh sumber daya yang terlibat dalam pelatihan, secara otomatis mengisolasi node yang rusak, dan memicu operasi otomatis latar belakang. Hal ini secara efektif mengurangi kemungkinan masalah selama tahap awal pelatihan dan meningkatkan tingkat keberhasilan pelatihan. Untuk detail selengkapnya, lihatSanityCheck: Pemeriksaan kesehatan komputasi.

Catatan

Fitur pemeriksaan kesehatan hanya didukung untuk pekerjaan pelatihan PyTorch yang dikirimkan dengan kuota sumber daya Lingjun dan ketika jumlah GPU lebih dari 0.

Peran dan izin

Konfigurasi peran RAM instans dijelaskan di bawah ini. Untuk detail selengkapnya, lihat Konfigurasi peran RAM untuk DLC.

Instance RAM role

Deskripsi

Default Role of PAI

Beroperasi berdasarkan peran layanan AliyunPAIDLCDefaultRole, yang hanya memiliki akses ke MaxCompute dan OSS, dengan izin yang lebih terperinci. Kredensial sementara yang dikeluarkan berdasarkan peran default PAI:

  • Saat mengakses tabel-tabel MaxCompute, izin yang berlaku sama dengan Pemilik Instans DLC.

  • Saat mengakses OSS, hanya dapat mengakses bucket OSS default yang dikonfigurasi untuk ruang kerja saat ini.

Custom Role

Pilih atau tentukan peran RAM kustom. Saat mengakses layanan cloud dari dalam instans menggunakan kredensial sementara STS, izinnya konsisten dengan peran kustom tersebut.

Does Not Associate Role

Tidak ada peran RAM yang dikaitkan dengan pekerjaan DLC. Ini adalah opsi default.

Dokumentasi terkait

  • Lihat informasi dasar pekerjaan, tampilan sumber daya, dan log operasi. Untuk detail selengkapnya, lihat Detail pelatihan.

  • Lihat detail penagihan untuk eksekusi pekerjaan. Untuk detail selengkapnya, lihat Detail penagihan.

  • Untuk masalah umum pekerjaan DLC dan solusinya, lihat FAQ tentang DLC.

  • Untuk kasus penggunaan DLC, lihat Kasus penggunaan DLC.

FAQ

T: Apa yang harus saya lakukan jika mendapatkan error BadRequest tentang memilih sumber data NAS dengan titik pemasangan saat membuat pekerjaan pelatihan?

Error ini terjadi ketika sumber data NAS tidak memiliki titik pemasangan. Buat titik pemasangan baru di konsol NAS, lalu pilih sebagai sumber data di konfigurasi Mount dataset atau Mount storage saat membuat pekerjaan pelatihan, kemudian kirim ulang pekerjaan.

T: Apakah pekerjaan pelatihan DLC dapat mengekspor metrik ke Weights & Biases (W&B)?

Ya, DLC mendukung ekspor metrik pelatihan ke W&B, tetapi prasyarat berikut harus dipenuhi:

  • Konektivitas jaringan: Pastikan node pelatihan PAI dapat mengakses titik akhir publik api.wandb.ai. Jika menggunakan VPC, konfigurasikan gateway NAT.

  • Manajemen kunci: Suntikkan kunci API W&B melalui variabel lingkungan. Jangan hardcode di kode Anda.

  • Kepatuhan: Unggah hanya metrik skalar non-sensitif. Jangan unggah data mentah atau detail model sensitif.

T: Apakah pekerjaan DLC yang gagal tetap muncul di daftar pekerjaan?

Hal ini bergantung pada alasan kegagalannya:

  • Pekerjaan yang gagal karena sumber daya tidak mencukupi sementara muncul di daftar pekerjaan konsol DLC dan dihapus setelah penghapusan.

  • Ketika API mengembalikan error langsung (dengan RequestID) karena parameter permintaan tidak valid, tidak ada catatan yang disimpan di daftar pekerjaan. Pesan error hanya ditampilkan di halaman operasi.

T: Apa yang harus saya lakukan jika melihat pesan "perlindungan keamanan akun dipicu" atau "alokasi sumber daya ditangguhkan" saat membuat pekerjaan DLC?

Pesan ini biasanya dipicu oleh kebijakan pengendalian risiko akun. Gunakan alat diagnostik mandiri Alibaba Cloud (https://smartservice.console.alibabacloud.com/service/self-service-center/search?questionId=27591) untuk mendiagnosis mengapa pembayaran atau alokasi sumber daya tidak dapat dilanjutkan, lalu ajukan banding. Setelah banding disetujui, Anda dapat mencoba kembali membuat pekerjaan.

Lampiran

Buat pekerjaan menggunakan SDK atau CLI

Python SDK

Langkah 1: Instal alat Credentials Alibaba Cloud

Saat Anda memanggil OpenAPI menggunakan SDK Alibaba Cloud untuk mengelola sumber daya, Anda harus menginstal alat Credentials untuk mengonfigurasi kredensial Anda. Persyaratan:

  • Versi Python >= 3.7.

  • Gunakan SDK Alibaba Cloud V2.0.

pip install alibabacloud_credentials

Langkah 2: Dapatkan AccessKey akun Anda

Contoh ini menggunakan informasi AccessKey (AK) untuk mengonfigurasi kredensial akses. Untuk mencegah kebocoran kredensial, kami sarankan Anda menyimpan AccessKey di variabel lingkungan. Nama variabel lingkungan untuk ID dan secret adalah ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET.

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

Kirim pekerjaan menggunakan sumber daya publik

Kode contoh berikut menunjukkan cara membuat dan mengirim pekerjaan:

Kode contoh untuk membuat dan mengirim pekerjaan

#!/usr/bin/env python3

from __future__ import print_function

import json
import time

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 (
    ListJobsRequest,
    ListEcsSpecsRequest,
    CreateJobRequest,
    GetJobRequest,
)

from alibabacloud_aiworkspace20210204.client import Client as AIWorkspaceClient
from alibabacloud_aiworkspace20210204.models import (
    ListWorkspacesRequest,
    CreateDatasetRequest,
    ListDatasetsRequest,
    ListImagesRequest,
    ListCodeSourcesRequest
)

def create_nas_dataset(client, region, workspace_id, name,
                       nas_id, nas_path, mount_path):
    '''创建NAS的数据集。
    '''
    response = client.create_dataset(CreateDatasetRequest(
        workspace_id=workspace_id,
        name=name,
        data_type='COMMON',
        data_source_type='NAS',
        property='DIRECTORY',
        uri=f'nas://{nas_id}.{region}{nas_path}',
        accessibility='PRIVATE',
        source_type='USER',
        options=json.dumps({
            'mountPath': mount_path
        })
    ))
    return response.body.dataset_id

def create_oss_dataset(client, region, workspace_id, name,
                       oss_bucket, oss_endpoint, oss_path, mount_path):
    '''创建OSS数据集。
    '''
    response = client.create_dataset(CreateDatasetRequest(
        workspace_id=workspace_id,
        name=name,
        data_type='COMMON',
        data_source_type='OSS',
        property='DIRECTORY',
        uri=f'oss://{oss_bucket}.{oss_endpoint}{oss_path}',
        accessibility='PRIVATE',
        source_type='USER',
        options=json.dumps({
            'mountPath': mount_path
        })
    ))
    return response.body.dataset_id

def wait_for_job_to_terminate(client, job_id):
    while True:
        job = client.get_job(job_id, GetJobRequest()).body
        print('job({}) is {}'.format(job_id, job.status))
        if job.status in ('Succeeded', 'Failed', 'Stopped'):
            return job.status
        time.sleep(5)
    return None

def main():

    # 请确认您的主账号已授权DLC,且拥有足够的权限。
    region_id = 'cn-hangzhou'
    # 阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
    # 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
    # 本示例通过Credentials SDK默认从环境变量中读取AccessKey,来实现身份验证为例。
    cred = CredClient()

    # 1. create client;
    workspace_client = AIWorkspaceClient(
        config=Config(
            credential=cred,
            region_id=region_id,
            endpoint="aiworkspace.{}.aliyuncs.com".format(region_id),
        )
    )

    dlc_client = DLCClient(
         config=Config(
            credential=cred,
            region_id=region_id,
            endpoint='pai-dlc.{}.aliyuncs.com'.format(region_id),
         )
    )

    print('------- Workspaces -----------')
    # 获取工作空间列表。您也可以在参数workspace_name中填入您创建的工作空间名。
    workspaces = workspace_client.list_workspaces(ListWorkspacesRequest(
        page_number=1, page_size=1, workspace_name='',
        module_list='PAI'
    ))
    for workspace in workspaces.body.workspaces:
        print(workspace.workspace_name, workspace.workspace_id,
              workspace.status, workspace.creator)

    if len(workspaces.body.workspaces) == 0:
        raise RuntimeError('found no workspaces')

    workspace_id = workspaces.body.workspaces[0].workspace_id

    print('------- Images ------------')
    # 获取镜像列表。
    images = workspace_client.list_images(ListImagesRequest(
        labels=','.join(['system.supported.dlc=true',
                         'system.framework=Tensorflow 1.15',
                         'system.pythonVersion=3.6',
                         'system.chipType=CPU'])))
    for image in images.body.images:
        print(json.dumps(image.to_map(), indent=2))

    image_uri = images.body.images[0].image_uri

    print('------- Datasets ----------')
    # 获取数据集。
    datasets = workspace_client.list_datasets(ListDatasetsRequest(
        workspace_id=workspace_id,
        name='example-nas-data', properties='DIRECTORY'))
    for dataset in datasets.body.datasets:
        print(dataset.name, dataset.dataset_id, dataset.uri, dataset.options)

    if len(datasets.body.datasets) == 0:
        # 当前数据集不存在时,创建数据集。
        dataset_id = create_nas_dataset(
            client=workspace_client,
            region=region_id,
            workspace_id=workspace_id,
            name='example-nas-data',
            # Nas文件系统ID。
            # 通用型NAS:31a8e4****。
            # 极速型NAS:必须以extreme-开头,例如extreme-0015****。
            # CPFS:必须以cpfs-开头,例如cpfs-125487****。
            nas_id='***',
            nas_path='/',
            mount_path='/mnt/data/nas')
        print('create dataset with id: {}'.format(dataset_id))
    else:
        dataset_id = datasets.body.datasets[0].dataset_id

    print('------- Code Sources ----------')
    # 获取代码集列表。
    code_sources = workspace_client.list_code_sources(ListCodeSourcesRequest(
        workspace_id=workspace_id))
    for code_source in code_sources.body.code_sources:
        print(code_source.display_name, code_source.code_source_id, code_source.code_repo)

    print('-------- ECS SPECS ----------')
    # 获取DLC的节点规格列表。
    ecs_specs = dlc_client.list_ecs_specs(ListEcsSpecsRequest(page_size=100, sort_by='Memory', order='asc'))
    for spec in ecs_specs.body.ecs_specs:
        print(spec.instance_type, spec.cpu, spec.memory, spec.memory, spec.gpu_type)

    print('-------- Create Job ----------')
    # 创建DLC作业。
    create_job_resp = dlc_client.create_job(CreateJobRequest().from_map({
        'WorkspaceId': workspace_id,
        'DisplayName': 'sample-dlc-job',
        'JobType': 'TFJob',
        'JobSpecs': [
            {
                "Type": "Worker",
                "Image": image_uri,
                "PodCount": 1,
                "EcsSpec": ecs_specs.body.ecs_specs[0].instance_type,
            },
        ],
        "UserCommand": "echo 'Hello World' && ls -R /mnt/data/ && sleep 30 && echo 'DONE'",
        'DataSources': [
            {
                "DataSourceId": dataset_id,
            },
        ],
    }))
    job_id = create_job_resp.body.job_id

    wait_for_job_to_terminate(dlc_client, job_id)

    print('-------- List Jobs ----------')
    # 获取DLC的作业列表。
    jobs = dlc_client.list_jobs(ListJobsRequest(
        workspace_id=workspace_id,
        page_number=1,
        page_size=10,
    ))
    for job in jobs.body.jobs:
        print(job.display_name, job.job_id, job.workspace_name,
              job.status, job.job_type)
    pass

if __name__ == '__main__':
    main()

Kirim pekerjaan menggunakan kuota sumber daya langganan

  1. Masuk ke Konsol PAI.

  2. Lihat ID ruang kerja: Di panel navigasi kiri, klik Workspace List. Temukan ruang kerja target, klik ikon ⓘ di sebelah nama, lalu lihat dan salin Workspace ID di panel informasi yang muncul.

  3. Lihat ID kuota sumber daya dari kelompok sumber daya khusus Anda. Di panel navigasi kiri, pilih AI Computing Resources > Resource Quota. Klik tab General Computing Resources, lalu dapatkan ID Kuota dari kolom Name/ID di daftar kuota sumber daya.

  4. Gunakan kode berikut untuk membuat dan mengirim pekerjaan. Untuk daftar gambar publik yang dapat Anda gunakan, 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
    )
    
    # 初始化一个Client,用来访问DLC的API。
    region = 'cn-hangzhou'
    # 阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
    # 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
    # 本示例通过Credentials SDK默认从环境变量中读取AccessKey,来实现身份验证为例。
    cred = CredClient()
    client = Client(
        config=Config(
            credential=cred,
            region_id=region,
            endpoint=f'pai-dlc.{region}.aliyuncs.com',
        )
    )
    
    # 声明任务的资源配置,关于镜像选择可以参考文档中公共镜像列表,也可以传入自己的镜像地址。
    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')
    )
    
    # 声明任务的执行内容。
    req = CreateJobRequest(
            resource_id='<替换成您自己的资源配额ID>',
            workspace_id='<替换成您自己的WorkspaceID>',
            display_name='sample-dlc-job',
            job_type='TFJob',
            job_specs=[spec],
            user_command='echo "Hello World"',
    )
    
    # 提交任务。
    response = client.create_job(req)
    # 获取任务ID。
    job_id = response.body.job_id
    
    # 查询任务状态。
    job = client.get_job(job_id, GetJobRequest()).body
    print('job status:', job.status)
    
    # 查看任务执行的命令。
    job.user_command

Kirim pekerjaan menggunakan sumber daya spot

  • 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>' # Region ID where the DLC job runs. Example: cn-hangzhou for China (Hangzhou). cred = CredClient() workspace_id = '12**' # Workspace ID of the DLC job. 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}') ``

Konfigurasi utama dijelaskan sebagai berikut:

Parameter

Deskripsi

SpotStrategy

Strategi penawaran. Jenis penawaran hanya berlaku ketika parameter ini diatur keSpotWithPriceLimit.

SpotDiscountLimit

Menggunakan diskon spot sebagai metode penawaran.

Note
  • SpotDiscountLimit dan SpotPriceLimit tidak dapat diatur secara bersamaan.

  • Untuk sumber daya spot Lingjun, hanya SpotDiscountLimit yang didukung sebagai jenis penawaran.

SpotPriceLimit

Menggunakan harga spot sebagai metode penawaran.

UserVpc

Diperlukan saat Anda mengirimkan pekerjaan menggunakan sumber daya spot Lingjun. Konfigurasikan VPC, vSwitch, dan ID security group dari wilayah tempat pekerjaan berjalan.

Catatan

Saat Anda membuat pekerjaan DLC dengan memanggil API atau menggunakan SDK (createJob), Anda tidak dapat mengunggah file kode lokal secara langsung. Unggah kode Anda ke salah satu lokasi berikut terlebih dahulu:

  • Repositori Git: Buat konfigurasi kode di AI Assets Management dan tautkan ke URL repositori Git.

  • Penyimpanan OSS: Setelah mengunggah kode ke OSS, buat tersedia untuk pekerjaan dengan memasangnya sebagai dataset.

  • Gambar kustom: Kemas kode ke dalam gambar Docker.

Baris perintah

Langkah 1: Unduh klien dan selesaikan autentikasi pengguna

Unduh alat klien Linux 64-bit atau Mac sesuai sistem operasi Anda, lalu selesaikan autentikasi pengguna. Untuk detail selengkapnya, lihat Sebelum memulai.

Langkah 2: Kirim pekerjaan

  1. Masuk ke Konsol PAI.

  2. Ikuti instruksi berikut untuk melihat ID ruang kerja Anda (WorkspaceID) di halaman daftar ruang kerja.

    Di panel navigasi kiri, klik Workspace List. Temukan ruang kerja target, klik ikon ⓘ di sebelah kanan namanya, lalu lihat Workspace ID di panel informasi yang muncul.

  3. Ikuti instruksi berikut untuk melihat ID kuota sumber daya Anda.

    Di panel navigasi kiri, pilih AI Computing Resources > Resource Quota. Pilih tab untuk jenis sumber daya target Anda (seperti General Computing Resources), lalu dapatkan ID kuota sumber daya dari kolom Name/ID di daftar kuota sumber daya.

  4. Siapkan file parameter berdasarkan konten berikut tfjob.params. Untuk informasi lebih lanjut tentang cara mengonfigurasi file parameter, lihat Perintah yang digunakan untuk mengirim pekerjaan.

    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=<your_resource_quota_id>
    workspace_id=<your_workspace_id>
  5. Gunakan kode contoh berikut untuk meneruskan parameter params_file. Ini mengirimkan pekerjaan DLC ke ruang kerja dan kuota sumber daya yang ditentukan.

    ./dlc submit tfjob --job_file  ./tfjob.params
  6. Gunakan perintah berikut untuk melihat pekerjaan DLC yang Anda kirimkan.

    ./dlc get job <jobID>

Daftar parameter lanjutan

Parameter (kunci)

Jenis framework yang didukung

Deskripsi

Nilai parameter

ReleaseResourcePolicy

ALL

Mengonfigurasi kebijakan rilis sumber daya kustom. Parameter ini opsional. Jika Anda tidak mengonfigurasinya, semua sumber daya Pod dilepaskan ketika pekerjaan berakhir. Jika Anda mengonfigurasinya, satu-satunya nilai yang didukung adalah pod-exit, yang melepaskan sumber daya Pod ketika Pod keluar.

pod-exit

EnableJumboFrame

ALL

Menentukan apakah akan mengaktifkan frame jumbo. Parameter ini hanya didukung oleh AI Computing Resources - General Computing 2.0 Nilai default adalah false, yang berarti dinonaktifkan.

true atau false

EnableNvidiaIBGDA

ALL

Menentukan apakah akan mengaktifkan IBGDA saat driver GPU dimuat.

true atau false

EnableNvidiaGDRCopy

ALL

Menentukan apakah akan menginstal modul kernel GDRCopy. Versi yang saat ini diinstal adalah 2.4.4.

true atau false

EnablePaiNUMACoreBinding

ALL

Menentukan apakah akan mengaktifkan NUMA.

true atau false

EnableResourcePreCheck

ALL

Saat Anda mengirimkan pekerjaan, parameter ini memeriksa apakah total sumber daya (spesifikasi node) dalam kuota memenuhi spesifikasi semua peran dalam pekerjaan.

true atau false

createSvcForAllWorkers

PyTorch

Menentukan apakah akan mengizinkan konektivitas jaringan antar worker.

  • Jika diatur ke true, semua worker PyTorch dapat berkomunikasi satu sama lain melalui jaringan.

  • Jika diatur ke false atau tidak dikonfigurasi, hanya master yang dapat diakses secara default.

Setelah diaktifkan, nama domain setiap worker adalah nama worker, seperti dlcxxxxx-master-0. Nama pekerjaan (dlcxxxxx) kemudian diteruskan ke worker melalui variabel lingkungan JOB_NAME. Anda kemudian dapat menentukan nama domain worker tertentu yang ingin Anda akses.

true atau false

customPortList

PyTorch

Memungkinkan Anda menentukan port jaringan yang terbuka pada setiap worker. Anda dapat menggunakan parameter ini bersama dengan createSvcForAllWorkers untuk mengaktifkan konektivitas jaringan antar worker.

Jika tidak dikonfigurasi, hanya port 23456 yang terbuka pada master secara default. Pastikan Anda tidak memasukkan port 23456 dalam daftar port kustom ini.

Penting

Parameter ini saling eksklusif dengan customPortNumPerWorker. Jangan atur keduanya secara bersamaan.

Kumpulan string yang dipisahkan titik koma, di mana setiap string adalah nomor port tunggal atau rentang port yang dihubungkan dengan tanda hubung, seperti 10000;10001-10010 (yang dikonversi menjadi 11 nomor port berurutan dari 10000 hingga 10010).

customPortNumPerWorker

PyTorch

Memungkinkan Anda meminta sejumlah port jaringan untuk dibuka pada setiap worker. Anda dapat menggunakan parameter ini bersama dengan createSvcForAllWorkers untuk mengaktifkan konektivitas jaringan antar worker.

Jika tidak dikonfigurasi, hanya port 23456 yang terbuka pada master secara default. DLC secara acak menetapkan port ke worker berdasarkan jumlah port yang ditentukan dalam parameter. Nomor port yang ditetapkan diteruskan ke worker melalui variabel lingkungan CUSTOM_PORTS untuk Anda cari. Formatnya adalah kumpulan nomor port yang dipisahkan titik koma.

Penting
  • Parameter ini saling eksklusif dengan customPortList. Jangan atur keduanya secara bersamaan.

  • Sumber daya komputasi Lingjun tidak mendukung port kustom. Oleh karena itu, saat Anda mengirimkan pekerjaan DLC menggunakan sumber daya komputasi Lingjun, parameter customPortNumPerWorker tidak didukung.

Bilangan bulat (maksimum: 65536)

RayRuntimeEnv

Ray

Saat framework adalah Ray, Anda dapat mengonfigurasi RayRuntimeEnv secara manual untuk menentukan lingkungan runtime.

Penting

Variabel lingkungan dan konfigurasi pustaka pihak ketiga ditimpa oleh konfigurasi ini.

Konfigurasikan variabel lingkungan dan pustaka pihak ketiga ({pip: requirements.txt, env_vars: {key: value}})

RayRedisAddress

Ray

Alamat Redis GCS eksternal.

String

RayRedisUsername

Ray

Username Redis GCS eksternal.

String

RayRedisPassword

Ray

Password Redis GCS eksternal.

String

RaySubmitterBackoffLimit

Ray

Jumlah percobaan ulang untuk submitter.

Bilangan bulat positif (int)

RayObjectStoreMemoryBytes

Ray

Mengonfigurasi memori bersama untuk node. Contohnya, untuk mengonfigurasi 1 GiB memori bersama untuk setiap node, gunakan konfigurasi berikut:

{
  "RayObjectStoreMemoryBytes": "1073741824"
}

Bilangan bulat positif (int)