All Products
Search
Document Center

Platform For AI:AIMaster: Mesin toleransi kesalahan elastis dan otomatis

Last Updated:May 10, 2026

AIMaster meningkatkan stabilitas dan kelangsungan pekerjaan pembelajaran mendalam terdistribusi skala besar dengan mengatasi isu seperti pengecualian perangkat lunak dan keras, hang pekerjaan, serta kegagalan instans melalui pemantauan pekerjaan, pengambilan keputusan toleransi kesalahan, dan pengendalian sumber daya.

Latar Belakang

Pembelajaran mendalam banyak digunakan. Seiring model dan data semakin besar, pelatihan terdistribusi menjadi praktik umum. Dengan meningkatnya jumlah instans pekerjaan, pengecualian perangkat lunak dan keras dapat menyebabkan kegagalan pekerjaan.

Untuk memastikan operasi yang stabil bagi pekerjaan pembelajaran mendalam terdistribusi skala besar, DLC menyediakan fitur pemantauan toleransi kesalahan berbasis AIMaster. AIMaster adalah komponen tingkat pekerjaan. Saat Anda mengaktifkan fitur ini, sebuah instans AIMaster dijalankan bersama instans lain dari pekerjaan Anda untuk menyediakan pemantauan pekerjaan, pengambilan keputusan toleransi kesalahan, dan pengendalian sumber daya.

Batasan

AIMaster saat ini mendukung framework berikut: PyTorch, MPI, TensorFlow, dan ElasticBatch.

Langkah 1: Aktifkan pemantauan toleransi kesalahan

Anda dapat mengaktifkan fitur pemantauan toleransi kesalahan melalui Konsol atau menggunakan SDK saat mengirimkan pekerjaan pelatihan DLC.

Di Konsol

Saat mengirimkan pekerjaan pelatihan DLC di Konsol, buka bagian Fault Tolerance and Diagnosis, aktifkan sakelar Automatic Fault Tolerance, dan konfigurasikan parameter tambahan. Untuk informasi selengkapnya, lihat Create a training job. DLC kemudian akan menjalankan peran AIMaster tambahan untuk memantau pekerjaan sepanjang siklus hidupnya dan melakukan toleransi kesalahan saat terjadi error.

image

Detail:

  • Anda dapat mengonfigurasi parameter tambahan di kotak teks Other Cofiguration. Untuk detail parameter, lihat Appendix: Fault tolerance parameters.

  • Setelah Anda mengaktifkan Hanging Detection, Anda dapat mengaktifkan fitur C4D Detection. C4D (Calibrating Collective Communication over Converged ethernet - Diagnosis) adalah alat diagnostik yang dikembangkan oleh Alibaba Cloud untuk mendiagnosis pekerjaan lambat atau hang dalam pelatihan model besar. Untuk informasi selengkapnya, lihat Use C4D.

    Catatan
  • Setelah Anda mengaktifkan Hanging Detection, Anda dapat menggunakan alat analisis snapshot tumpukan panggilan fungsi untuk menemukan baris kode tepat tempat terjadinya hang pekerjaan. Anda harus mengonfigurasi ambang batas pendeteksian hang agar alat ini berfungsi dengan benar. Untuk informasi selengkapnya, lihat "Use the function call stack snapshot analysis tool".

Melalui DLC SDK

  • Gunakan Go SDK

    Aktifkan pemantauan toleransi kesalahan saat mengirimkan pekerjaan menggunakan Go SDK.

    createJobRequest := &client.CreateJobRequest{}
    settings := &client.JobSettings{
        EnableErrorMonitoringInAIMaster: tea.Bool(true),
        ErrorMonitoringArgs: tea.String("--job-execution-mode=Sync --enable-job-restart=True --enable-job-hang-detection=True --job-hang-interval=3600"),
    }
    createJobRequest.SetSettings(settings)

    Parameter:

    • EnableErrorMonitoringInAIMaster: Menentukan apakah fitur pemantauan toleransi kesalahan diaktifkan.

    • ErrorMonitoringArgs: Menentukan parameter tambahan untuk pemantauan toleransi kesalahan.

  • Gunakan Python SDK

    Aktifkan pemantauan toleransi kesalahan saat mengirimkan pekerjaan menggunakan Python SDK.

    from alibabacloud_pai_dlc20201203.models import CreateJobRequest, JobSettings
    
    settings = JobSettings(
        enable_error_monitoring_in_aimaster = True,
        error_monitoring_args = "--job-execution-mode=Sync --enable-job-restart=True --enable-job-hang-detection=True --job-hang-interval=30"
    )
    create_job_req = CreateJobRequest(
        ...
        settings = settings,
    )

    Parameter:

    • enable_error_monitoring_in_aimaster: Menentukan apakah fitur pemantauan toleransi kesalahan diaktifkan.

    • error_monitoring_args: Menentukan parameter tambahan untuk pemantauan toleransi kesalahan.

Langkah 2: Konfigurasi fitur lanjutan

Pilih fitur lanjutan berikut sesuai kebutuhan pemantauan Anda.

Konfigurasi notifikasi toleransi kesalahan

Setelah Anda mengaktifkan pemantauan toleransi kesalahan untuk suatu pekerjaan, Anda dapat mengonfigurasi notifikasi untuk event toleransi kesalahan. Di halaman Workspace Details, pilih Configure Workspace > Configure Event Notification. Lalu, klik Create Event Rule dan atur jenis event menjadi DLC task > Automatic Fault Tolerance. Untuk informasi selengkapnya, lihat Workspace Event Center.

Saat pekerjaan pelatihan mengalami pengecualian, seperti loss NaN, Anda dapat menggunakan AIMaster SDK dalam kode Anda untuk mengirim pesan notifikasi kustom:

Catatan

Untuk menggunakan fitur ini, Anda harus menginstal paket wheel AIMaster. Untuk informasi selengkapnya, lihat FAQ.

from aimaster import job_monitor as jm

job_monitor_client = jm.Monitor(config=jm.PyTorchConfig())

...

if loss == Nan and rank == 0:
  st = job_monitor_client.send_custom_message(content="The training loss of the job is NaN.")
  if not st.ok():
      print('failed to send message, error %s' % st.to_string())

Konfigurasi kata kunci error retryable kustom

Pemantauan toleransi kesalahan mencakup deteksi bawaan untuk error retryable umum. Jika Anda ingin AIMaster melakukan toleransi kesalahan saat kata kunci tertentu muncul di log instans yang gagal, Anda dapat mengonfigurasikannya dalam kode Anda. Setelah dikonfigurasi, modul pemantauan akan memindai akhir log instans yang gagal untuk mencari kata kunci tersebut.

Catatan

Kebijakan toleransi kesalahan harus diatur ke ExitCodeAndErrorMsg.

  • Contoh konfigurasi kata kunci error retryable kustom untuk pekerjaan PyTorch

    from aimaster import job_monitor as jm
    
    jm_config_params = {}
    jm_config = jm.PyTorchConfig(**jm_config_params)
    monitor = jm.Monitor(config=jm_config)
    monitor.set_retryable_errors(["connect timeout", "error_yyy", "error_zzz"])

    Parameter yang dikonfigurasi di monitor.set_retryable_errors adalah kata kunci error retryable kustom.

  • Contoh konfigurasi kata kunci error retryable kustom untuk pekerjaan TensorFlow

    from aimaster import job_monitor as jm
    
    jm_config_params = {}
    jm_config = jm.TFConfig(**jm_config_params)
    monitor = jm.Monitor(config=jm_config)
    monitor.set_retryable_errors(["connect timeout", "error_yyy", "error_zzz"])

Konfigurasi pendeteksian hang pekerjaan bertahap

Secara default, konfigurasi pendeteksian hang berlaku untuk seluruh pekerjaan. Namun, pekerjaan sering kali berjalan dalam tahapan berbeda. Misalnya, komunikasi node selama inisialisasi mungkin memerlukan waktu lebih lama dibandingkan tahap pelatihan, di mana log diperbarui lebih sering. Untuk mendeteksi hang pekerjaan secara cepat selama proses pelatihan, DLC menyediakan fitur pendeteksian hang bertahap. Fitur ini memungkinkan Anda mengonfigurasi interval pendeteksian hang berbeda untuk tahapan pekerjaan yang berbeda. Konfigurasikan sebagai berikut:

monitor.reset_config(jm_config_params)

# Contoh:
#     monitor.reset_config(job_hang_interval=10)
#     atau
#     config_params = {"job_hang_interval": 10, }
#     monitor.reset_config(**config_params)

Berikut adalah contoh pendeteksian hang bertahap untuk pekerjaan PyTorch.

import torch
import torch.distributed as dist
from aimaster import job_monitor as jm

jm_config_params = {
    "job_hang_interval": 1800 # Deteksi global 30 menit.
}
jm_config = jm.PyTorchConfig(**jm_config_params)
monitor = jm.Monitor(config=jm_config)

dist.init_process_group('nccl')

...

# impl these two funcs in aimaster sdk
# user just need to add annotations to their func
def reset_hang_detect(hang_seconds):
    jm_config_params = {
        "job_hang_interval": hang_seconds
    }
    monitor.reset_config(**jm_config_params)

def hang_detect(interval):
    reset_hang_detect(interval)
    ...

@hang_detect(180) # Atur ulang pendeteksian hang menjadi 3 menit, hanya untuk cakupan fungsi ini.
def train():
    ...

@hang_detect(-1) # Nonaktifkan sementara pendeteksian hang, hanya untuk cakupan fungsi ini.
def test():
    ...

for epoch in range(0, 100):
    train(epoch)
    test(epoch)
    self.scheduler.step()
                            

Gunakan C4D

C4D (Calibrating Collective Communication over Converged ethernet - Diagnosis) adalah alat yang dikembangkan oleh Alibaba Cloud untuk mendiagnosis pekerjaan lambat atau hang dalam pelatihan model besar. C4D bergantung pada library komunikasi kolektif berkinerja tinggi Alibaba Cloud (ACCL). Pastikan ACCL telah diinstal dan variabel lingkungan dikonfigurasi dengan benar. Untuk informasi selengkapnya, lihat ACCL: Alibaba Cloud high-performance collective communication library. Saat ini, Anda dapat menggunakan fitur deteksi C4D saat memilih Layanan Komputasi AI Lingjun untuk pekerjaan DLC.

Ikhtisar fitur

C4D mengumpulkan informasi status dari semua node dalam pekerjaan untuk menentukan apakah suatu node memiliki masalah di lapisan komunikasi atau di tempat lain.

Semua parameter

Setelah Anda mengaktifkan fitur deteksi C4D, Anda dapat mengonfigurasi parameter berikut di kotak teks Other Configurations:

Parameter

Deskripsi

Nilai contoh

--c4d-log-level

Menetapkan tingkat log output C4D. Nilai valid:

  • Info

  • Warning (default)

  • Error

Nilai default adalah Warning, yang menghasilkan log pada level Warning dan Error. Kami merekomendasikan menggunakan nilai default untuk operasi normal. Untuk memecahkan masalah kinerja, Anda dapat mengatur level ke Info.

--c4d-log-level=Info

--c4d-common-envs

Atur variabel lingkungan untuk eksekusi C4D. Formatnya adalah k1=v1,k2=v2, dengan beberapa variabel dipisahkan koma (,). Parameter ini kosong secara default. Variabel lingkungan opsional sebagai berikut:

  • C4D_HANG_TIMEOUT: Durasi maksimum pekerjaan boleh hang sebelum peringatan dicatat. Default: 10.000.000 mikrodetik (10 detik).

  • C4D_HANG_TIMES: Jumlah hang pekerjaan yang harus terjadi sebelum log error dicatat, yang kemudian memicu logika isolasi node otomatis. Digunakan bersama C4D_HANG_TIMEOUT. Default: 18. Secara default, hang selama 3 menit memicu isolasi node otomatis.

  • C4D_CONN_BW_CHECK_PERIOD: Interval waktu untuk pemeriksaan bandwidth. Default: 10 detik.

  • C4D_RUNTIME_LOG_LEVEL: Menentukan tingkat log runtime C4D. Nilai valid:

    • TRACE

    • DEBUG

    • INFO (default)

    • WARNING

    • ERROR

    • FATAL

  • C4D_ENABLE_STATS_OUTPUT: Menentukan apakah statistik terkait C4D ditampilkan. Nilai valid:

    • TRUE

    • FALSE (default)

--c4d-common-envs=C4D_HANG_TIMEOUT=1,C4D_HANG_TIMES=2

Untuk log tingkat error, AIMaster secara otomatis mengisolasi node yang sesuai dan me-restart pekerjaan. Logika penanganan untuk setiap tingkat log adalah sebagai berikut:

Tingkat error

Deskripsi

Aksi

Error

Secara default, hang pekerjaan di lapisan komunikasi yang melebihi tiga menit menyebabkan pekerjaan gagal. Anda dapat mengubah default ini dengan mengonfigurasi parameter C4D_HANG_TIMEOUT dan C4D_HANG_TIMES.

AIMaster secara otomatis mengisolasi node yang dilaporkan dalam log.

Warning

Secara default, hang pekerjaan di lapisan komunikasi yang melebihi 10 detik memengaruhi kinerja tetapi tidak menyebabkan pekerjaan gagal. Anda dapat mengubah default ini dengan mengonfigurasi parameter C4D_HANG_TIMEOUT.

Tidak ada isolasi node otomatis. Diperlukan konfirmasi manual.

Hang pekerjaan di luar lapisan komunikasi yang melebihi 10 detik dapat menyebabkan pekerjaan gagal.

Tidak ada isolasi node otomatis. Diperlukan konfirmasi manual.

Info

Kelambatan di lapisan komunikasi maupun di luar lapisan komunikasi.

Log diagnostik ini terutama untuk masalah kinerja dan memerlukan konfirmasi manual.

Jika Anda menemukan bahwa pekerjaan DLC berjalan lambat atau hang, buka daftar pekerjaan DLC dan klik nama pekerjaan untuk membuka halaman ikhtisar pekerjaan. Di bagian Instances, lihat log node AIMaster untuk melihat hasil diagnosis C4D. Untuk informasi selengkapnya tentang hasil diagnosis, lihat Diagnostic result examples.5bc5051b1abae830588522ab7a50b23f

Contoh hasil diagnosis

  • RankCommHang: menunjukkan bahwa suatu node mengalami hang di lapisan komunikasi.image

  • RankNonCommHang: menunjukkan bahwa suatu node mengalami hang di luar lapisan komunikasi, seperti hang di proses komputasi.image

  • RankCommSlow: menunjukkan bahwa suatu node lambat di lapisan komunikasi.image

  • RankNonCommSlow: menunjukkan bahwa suatu node lambat di luar lapisan komunikasi.image

Analisis snapshot tumpukan panggilan

Kegagalan umum dalam pelatihan model besar adalah hang pekerjaan. Salah satu jenis yang sering terjadi adalah hang NCCL, yang biasanya menghasilkan entri log seperti "Watchdog caught collective operation timeout". Untuk membantu Anda mengidentifikasi akar penyebab hang pekerjaan dengan cepat, kami mengembangkan alat analisis snapshot tumpukan panggilan fungsi. Ikuti langkah-langkah berikut untuk menggunakannya:

Langkah 1: Instal pystack atau py-spy

Pertama, pastikan apakah pystack atau py-spy telah diinstal dalam gambar kontainer Anda. Jika belum, Anda harus menginstal salah satunya. Misalnya, gunakan perintah berikut untuk menginstal pystack:

pip install pystack -i https://mirrors.cloud.aliyuncs.com/pypi/simple/ --trusted-host mirrors.cloud.aliyuncs.com

Langkah 2: Aktifkan pendeteksian hang

Untuk instruksi cara mengaktifkan pendeteksian hang, lihat In the console. Agar alat analisis snapshot tumpukan panggilan fungsi berfungsi dengan benar, Anda juga harus menetapkan nilai yang sesuai untuk ambang batas pendeteksian hang. Pertama, tentukan nilai timeout untuk pekerjaan model Anda. Biasanya Anda dapat menemukannya di log error setelah pekerjaan hang. Misalnya:

Watchdog caught collective operation timeout: WorkNCCL(SeqNum=2143, OpType=ALLREDUCE, NumelIn=659, NumelOut=659, Timeout(ms)=600000) ran for 600535 milliseconds before timing out

Dari bidang Timeout dalam log error ini, Anda dapat melihat bahwa timeout pekerjaan adalah 600.000 milidetik (600 detik atau 10 menit). Dalam kasus ini, kami merekomendasikan menetapkan ambang batas pendeteksian hang ke 450 detik. Jika nilai Timeout dalam log Anda adalah 1.800 detik, kami merekomendasikan menetapkan ambang batas ke 1.500 detik. Sebagai aturan umum, ambang batas pendeteksian hang harus sekitar 150 hingga 200 detik lebih kecil daripada nilai timeout pekerjaan.

Setelah Anda mengonfigurasi pendeteksian hang dengan benar, AIMaster secara otomatis mengumpulkan dan menganalisis tumpukan panggilan fungsi dari proses pekerjaan saat terjadi hang. Anda dapat melihat hasil analisis di log node AIMaster. Berikut adalah contoh hasil analisis dari alat setelah terjadi hang pekerjaan:

image.png

Dalam hasil analisis, bidang stack menunjukkan tumpukan panggilan fungsi, bidang threads mencantumkan thread tempat tumpukan ini terjadi, dan bidang count menunjukkan jumlah thread dengan tumpukan ini. Tumpukan dengan count bernilai 1 sangat mungkin menjadi penyebab hang pekerjaan dan harus diselidiki terlebih dahulu.

Langkah 3: Lihat alasan restart

  • Lihat putaran restart: Informasi restart pekerjaan diorganisir berdasarkan putaran. Di halaman detail pekerjaan, Anda dapat memperluas detail suatu putaran untuk melihat informasi seperti waktu yang dihabiskan di setiap tahap. Hal ini membantu Anda memahami status eksekusi pekerjaan dengan lebih akurat.

    image

  • Lihat riwayat restart: Anda dapat mengklik jumlah restart atau tab Restart records untuk melihat informasi restart terkait, termasuk alasan restart, hasil, dan durasi.

    image

    Prosedur:

    • Di daftar Restart records, klik Description untuk melihat informasi detail untuk restart tertentu, termasuk Restarts, Restart Time, Node Name, Instance Name, Error Code, Error Message, dan Error Source.

    • Klik View Aggregation Fault Details untuk memperluas daftar lengkap detail untuk semua catatan restart.

      image

Lampiran: Parameter toleransi kesalahan

Bagian ini menjelaskan semua parameter untuk fitur pemantauan toleransi kesalahan. Anda dapat merujuk pada contoh konfigurasi parameter umum untuk merencanakan pengaturan Anda. Saat Anda mengaktifkan pemantauan toleransi kesalahan, Anda dapat mengonfigurasi parameter ini di bagian Other Cofiguration sesuai kebutuhan.

Semua parameter

Konfigurasi umum

Fitur

Parameter

Deskripsi

Default

Mode eksekusi pekerjaan

--job-execution-mode

Mode eksekusi pekerjaan. Nilai valid:

  • Sync: Pekerjaan sinkron.

  • Async: Pekerjaan asinkron.

Perilaku toleransi kesalahan berbeda berdasarkan jenis pekerjaan untuk error yang dapat diretry:

  • Untuk pekerjaan sinkron, seluruh pekerjaan di-restart.

  • Untuk pekerjaan asinkron, instans worker bersifat independen. Hanya instans yang gagal yang di-restart, dan instans lain tidak terpengaruh.

Sync

Pengaturan restart pekerjaan

--enable-job-restart

Menentukan apakah pekerjaan diizinkan untuk restart saat kondisi toleransi kesalahan terpenuhi atau pengecualian runtime terdeteksi. Nilai valid:

  • False: Pekerjaan tidak di-restart.

  • True: Pekerjaan di-restart.

False

--max-num-of-job-restart

Jumlah maksimum restart pekerjaan. Jika jumlah ini terlampaui, pekerjaan gagal.

3

Konfigurasi runtime

Catatan

Berlaku untuk skenario di mana tidak ada instans yang gagal.

Fitur

Parameter

Deskripsi

Default

Pendeteksian hang pekerjaan

--enable-job-hang-detection

Menentukan apakah pendeteksian hang runtime untuk pekerjaan diaktifkan. Fitur ini hanya mendukung pekerjaan sinkron. Nilai valid:

  • False: Menonaktifkan fitur.

  • True: Mengaktifkan fitur. Jika log stdout dan stderr semua instans tidak diperbarui dalam waktu tertentu, pekerjaan di-restart.

False

--job-hang-interval

Durasi dalam detik yang diizinkan untuk pekerjaan ditangguhkan. Nilai ini harus bilangan bulat positif.

Jika durasi penangguhan melebihi nilai ini, pekerjaan dianggap abnormal dan di-restart.

1800

--enable-c4d-hang-detection

Menentukan apakah deteksi C4D diaktifkan untuk mendiagnosis dan menemukan node lambat serta node rusak yang menyebabkan hang pekerjaan selama eksekusi.

Catatan

Parameter ini hanya berlaku jika parameter --enable-job-hang-detection juga diaktifkan.

False

Pendeteksian hang saat keluar pekerjaan

--enable-job-exit-hang-detection

Menentukan apakah pendeteksian hang diaktifkan selama keluar pekerjaan. Fitur ini hanya mendukung pekerjaan sinkron. Nilai valid:

  • False: Menonaktifkan fitur.

  • True: Mengaktifkan fitur. Setelah instans pekerjaan berhasil, jika pekerjaan tidak selesai dalam waktu tertentu, pekerjaan di-restart.

False

--job-exit-hang-interval

Durasi dalam detik yang diizinkan untuk pekerjaan ditangguhkan selama keluar. Nilai ini harus bilangan bulat positif.

Jika durasi keluar melebihi nilai ini, pekerjaan dianggap abnormal dan di-restart.

600

Konfigurasi toleransi kesalahan

Catatan

Berlaku untuk skenario di mana setidaknya satu instans gagal.

Fitur

Parameter

Deskripsi

Default

Kebijakan toleransi kesalahan

--fault-tolerant-policy

Kebijakan toleransi kesalahan. Nilai valid:

  • OnFailure: Saat terjadi pengecualian pekerjaan:

    • Untuk pekerjaan asinkron, instans yang gagal di-restart tanpa syarat.

    • Untuk pekerjaan sinkron, seluruh pekerjaan di-restart tanpa syarat.

  • ExitCodeAndErrorMsg: Saat terjadi pengecualian pekerjaan, sistem mengevaluasi kode keluar dan pesan error instans yang gagal. Untuk informasi selengkapnya, lihat Step 2: Configure advanced features. Jika kondisi retry terpenuhi:

    • Untuk pekerjaan asinkron, instans yang gagal di-restart.

    • Untuk pekerjaan sinkron, seluruh pekerjaan di-restart.

  • Never: Tidak ada tindakan yang diambil. Pekerjaan gagal.

ExitCodeAndErrorMsg

Jumlah maksimum kemunculan error yang sama

--max-num-of-same-error

Jumlah maksimum kemunculan error yang sama pada satu instans.

Jika jumlah error melebihi nilai ini, pekerjaan gagal.

10

Tingkat kegagalan maksimum yang ditoleransi

--max-tolerated-failure-rate

Tingkat kegagalan maksimum yang ditoleransi. Jika proporsi instans yang gagal melebihi nilai ini, pekerjaan gagal.

Nilai default -1 menonaktifkan fitur ini. Misalnya, nilai 0,3 berarti pekerjaan gagal jika lebih dari 30% worker mengalami error.

-1

Contoh konfigurasi parameter

Contoh berikut menunjukkan konfigurasi parameter umum untuk berbagai pekerjaan pelatihan.

  • Pekerjaan pelatihan sinkron (umum untuk pekerjaan PyTorch)

    Saat instans gagal dan memenuhi kondisi toleransi kesalahan, pekerjaan di-restart.

    --job-execution-mode=Sync --enable-job-restart=True --max-num-of-job-restart=3 --fault-tolerant-policy=ExitCodeAndErrorMsg
  • Pekerjaan pelatihan asinkron (umum untuk pekerjaan TensorFlow)

    Untuk error yang dapat diretry, instans Worker yang gagal di-restart. Jika instans PS atau Chief gagal, pekerjaan tidak di-restart secara default. Untuk mengaktifkan restart pekerjaan, atur --enable-job-restart=True.

    --job-execution-mode=Async --fault-tolerant-policy=OnFailure
  • Pekerjaan inferensi offline (umum untuk pekerjaan ElasticBatch)

    Instans bersifat independen, mirip dengan pekerjaan asinkron. Saat instans gagal, hanya instans tersebut yang di-restart.

    --job-execution-mode=Async --fault-tolerant-policy=OnFailure

FAQ

T: Bagaimana cara menginstal AIMaster SDK?

Gunakan perintah yang sesuai dengan versi Python Anda untuk menginstal paket wheel.

# Python 3.6
pip install -U http://odps-release.cn-hangzhou.oss.aliyun-inc.com/aimaster/pai_aimaster-1.2.1-cp36-cp36m-linux_x86_64.whl

# Python 3.8
pip install -U http://odps-release.cn-hangzhou.oss.aliyun-inc.com/aimaster/pai_aimaster-1.2.1-cp38-cp38-linux_x86_64.whl

# Python 3.10
pip install -U http://odps-release.cn-hangzhou.oss.aliyun-inc.com/aimaster/pai_aimaster-1.2.1-cp310-cp310-linux_x86_64.whl