All Products
Search
Document Center

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

Last Updated:Aug 22, 2026

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

Latar Belakang

Pembelajaran mendalam banyak digunakan. Seiring model dan data semakin besar, pelatihan terdistribusi menjadi praktik umum. Namun, bertambahnya jumlah instans pekerjaan meningkatkan risiko kegagalan akibat pengecualian perangkat lunak maupun keras.

Untuk memastikan operasi stabil pada pekerjaan pembelajaran mendalam terdistribusi berskala besar, DLC menyediakan fitur pemantauan toleransi kesalahan berbasis AIMaster. AIMaster merupakan komponen tingkat pekerjaan yang berjalan bersama instans lain dari pekerjaan Anda saat fitur ini diaktifkan, guna 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 di 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, lalu konfigurasikan parameter tambahan. Untuk informasi lebih lanjut, lihat Create a training job. DLC kemudian akan menjalankan peran AIMaster tambahan untuk memantau pekerjaan sepanjang siklus hidupnya dan menerapkan 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 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 lebih lanjut, lihat Use C4D.

    Catatan
  • Setelah mengaktifkan Hanging Detection, Anda dapat menggunakan alat analisis snapshot tumpukan panggilan fungsi untuk menemukan baris kode tempat hang pekerjaan terjadi. Pastikan Anda mengonfigurasi ambang batas pendeteksian hang agar alat ini berfungsi dengan benar. Untuk informasi lebih lanjut, 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: Konfigurasikan fitur lanjutan

Pilih fitur lanjutan berikut sesuai kebutuhan pemantauan Anda.

Konfigurasikan notifikasi toleransi kesalahan

Setelah 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 ke DLC task > Automatic Fault Tolerance. Untuk informasi lebih lanjut, 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 lebih lanjut, 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())

Konfigurasikan kata kunci error retryable kustom

Pemantauan toleransi kesalahan mencakup deteksi bawaan untuk error retryable umum. Jika Anda ingin AIMaster menerapkan 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 dalam 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"])

Konfigurasikan 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 yang memungkinkan Anda mengonfigurasi interval pendeteksian hang berbeda untuk setiap tahapan pekerjaan. 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 lebih lanjut, lihat ACCL: Alibaba Cloud high-performance collective communication library. Saat ini, Anda dapat menggunakan fitur deteksi C4D saat memilih Lingjun AI Computing Service 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 mengaktifkan fitur deteksi C4D, Anda dapat mengonfigurasi parameter berikut di kotak teks Other Configurations:

Parameter

Deskripsi

Nilai contoh

--c4d-log-level

Mengatur tingkat log output C4D. Nilai yang 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, di mana beberapa variabel dipisahkan dengan 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 yang valid:

    • TRACE

    • DEBUG

    • INFO (default)

    • WARNING

    • ERROR

    • FATAL

  • C4D_ENABLE_STATS_OUTPUT: Menentukan apakah statistik terkait C4D ditampilkan. Nilai yang 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 dan 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 lebih lanjut 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 mengatur 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 mengatur ambang batas pendeteksian hang ke 450 detik. Jika nilai Timeout dalam log Anda adalah 1.800 detik, kami merekomendasikan mengatur 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 Anda.

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 ke 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 yang 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 yang 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 yang 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 pekerjaan boleh 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 pekerjaan keluar. Fitur ini hanya mendukung pekerjaan sinkron. Nilai yang 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 pekerjaan boleh 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 yang 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 dari instans yang gagal. Untuk informasi lebih lanjut, 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