Jika daya komputasi Anda tidak mencukupi, Anda dapat memanfaatkan fitur pekerjaan preemptible dari Platform for AI (PAI), yang mengalokasikan sumber daya komputasi melalui sistem penawaran. Dalam sebagian besar kasus, sumber daya preemptible menawarkan keunggulan harga dibandingkan sumber daya pay-as-you-go publik, sehingga memungkinkan akses hemat biaya ke daya komputasi AI dan mengurangi total biaya pekerjaan. Topik ini menjelaskan cara menggunakan sumber daya preemptible saat membuat pekerjaan Deep Learning Containers (DLC).
Batasan
Sumber daya preemptible memiliki batasan berikut:
|
Type |
Lingjun resources |
General-purpose computing resources |
|
Supported regions |
|
|
|
Framework type |
|
PyTorch |
|
AIMaster-based automatic fault tolerance |
Supported |
Not supported |
|
Limits on features |
|
|
Fitur
-
Penggunaan sumber daya preemptible
Anda dapat menggunakan sumber daya komputasi tujuan umum atau sumber daya Lingjun untuk membuat pekerjaan DLC. Harga pasar sumber daya preemptible berfluktuasi berdasarkan permintaan dan penawaran. Instans preemptible dapat berbiaya hingga 90% lebih rendah dibandingkan instans pay-as-you-go. Sumber daya preemptible dapat dipreempt oleh semua pengguna Alibaba Cloud dan dilepas setelah periode perlindungannya berakhir. Perhatikan hal-hal berikut saat menggunakan sumber daya preemptible untuk mengirimkan pekerjaan DLC:
-
Jika DLC gagal mendapatkan instans preemptible karena ketersediaan sumber daya tidak mencukupi, pekerjaan preemptible akan masuk ke status menunggu dan DLC terus mengajukan permohonan sumber daya preemptible.
-
Setelah sistem berhasil mengalokasikan sumber daya preemptible, pekerjaan DLC dibuat dan dijalankan.
-
Jika sumber daya preemptible dilepas, pekerjaan DLC gagal dan berhenti berjalan.
-
-
Mengajukan sumber daya preemptible
Saat menggunakan sumber daya preemptible untuk membuat pekerjaan DLC, DLC mulai melakukan preempt terhadap sumber daya instans setelah pekerjaan dikirimkan. Untuk membuat instans preemptible, persyaratan berikut harus dipenuhi:
-
Harga tawar maksimum yang Anda konfigurasikan untuk sumber daya preemptible harus lebih besar dari atau sama dengan harga pasar.
-
Ketersediaan sumber daya preemptible mencukupi.
-
-
Melepas sumber daya preemptible
Sumber daya preemptible dapat diinterupsi dan dilepas berdasarkan harga pasar, ketersediaan sumber daya, harga tawar maksimum yang dikonfigurasikan saat pembuatan pekerjaan, serta durasi penggunaan. Dalam skenario berikut, sumber daya preemptible mungkin dilepas tanpa pemberitahuan:
-
Lingjun resources: Jika harga tawar maksimum sumber daya preemptible lebih rendah daripada harga rata-rata atau ketersediaan sumber daya tidak mencukupi, sumber daya tersebut akan dilepas.
-
General-purpose computing resources: Jika harga tawar maksimum sumber daya preemptible lebih rendah daripada harga pasar saat ini atau ketersediaan sumber daya preemptible tidak mencukupi, sumber daya preemptible tersebut akan dilepas.
Untuk memastikan pekerjaan preemptible Anda berjalan secara kontinu dan stabil, lakukan langkah-langkah berikut:
-
Aktifkan Automatic Fault Tolerance saat membuat pekerjaan menggunakan Lingjun resources. Setelah diaktifkan, pekerjaan Anda secara otomatis masuk ke antrian untuk menawar sumber daya preemptible. Untuk informasi selengkapnya, lihat AIMaster: An elastic and automatic fault tolerance engine.
-
Saat menggunakan general-purpose computing atau Lingjun resources untuk membuat pekerjaan, Anda dapat menggunakan framework EasyCkpt untuk melatih model bahasa besar (LLM) PyTorch. Pekerjaan tersebut dapat sering melakukan dan menyimpan checkpoint, serta mendukung interupsi. Untuk informasi selengkapnya, lihat EasyCkpt.
-
Penagihan
-
Harga
Mode penawaran pekerjaan preemptible digunakan untuk mengonfigurasi harga tawar maksimum melalui parameter SpotWithPriceLimit. Saat pekerjaan DLC dibuat menggunakan sumber daya preemptible, harga pasar sumber daya tersebut berfluktuasi berdasarkan permintaan dan penawaran. Jika Anda menggunakan sumber daya preemptible yang sama untuk mengirimkan beberapa pekerjaan DLC, biaya pekerjaan tersebut dalam periode waktu tetap mungkin sama. Jenis penawaran berikut didukung.
CatatanLingjun resources hanya mendukung jenis penawaran spot discount.
-
Harga tawar berdasarkan jenis penawaran spot discount: Harga tawar maksimum didasarkan pada harga pasar tipe instans dan berkisar antara 10% hingga 90% dari harga pasar dengan interval 10%.
-
Harga tawar berdasarkan jenis penawaran spot price: Harga tawar maksimum berada dalam kisaran harga pasar.
Di bagian Resource Information pada halaman Create Job di DLC, atur Source ke Preemptible Resources dan lihat sumber daya preemptible beserta kisaran harga pasar di bagian Job Resource.
CatatanUntuk harga spesifik berdasarkan spesifikasi sumber daya, silakan merujuk ke konsol.
-
General-purpose computing resources
Untuk menggunakan sumber daya komputasi umum, di bagian Resource Information, atur Resource Type ke General Computing dan Source ke Preemptible Resources, lalu pilih PyTorch untuk Framework. Di tabel Job Resource, konfigurasikan parameter berikut untuk node Worker: jumlah node, Resource Specification, kisaran harga pasar, dan Bid Price (Discount).
-
Lingjun resources
Di bagian Resource Information pada halaman Create Job, konfigurasikan pengaturan berikut:
-
Resource Type: Pilih Lingjun AI Computing Service.
-
Source: Pilih Preemptible Resources.
-
Framework: Pilih PyTorch.
-
Job Resource: Konfigurasikan jumlah node, Resource Specification, kisaran harga pasar, dan Bid Price (Discount) untuk node Worker.
-
-
-
Metode penagihan
Anda dikenai biaya untuk sumber daya preemptible berdasarkan metode penagihan bayar sesuai pemakaian, yaitu sesuai harga pasar.
-
Menampilkan tagihan
Setelah menjalankan pekerjaan, buka halaman Billing Details di Biaya dan Pengeluaran pada hari berikutnya untuk melihat detail penagihan pekerjaan yang menggunakan sumber daya preemptible. Biaya bayar sesuai pemakaian dihasilkan oleh DLC. Tag instans adalah
key:acs:pai:dlc:payType value:spot. Untuk informasi selengkapnya tentang cara melihat detail penagihan, lihat View PAI billing details.
Skenario
-
Skenario yang Didukung
Untuk mengurangi biaya, kami merekomendasikan penggunaan sumber daya preemptible dalam skenario berikut:
-
Pekerjaan komputasi jangka pendek.
-
Pekerjaan komputasi dalam status debug.
-
Pekerjaan komputasi yang tahan terhadap kegagalan.
-
Pekerjaan komputasi yang memungkinkan interupsi. Misalnya, dalam skenario di mana framework EasyCkpt digunakan untuk melatih LLM PyTorch, Anda dapat sering menyimpan checkpoint dan memulihkan data dari checkpoint tersebut. Untuk informasi selengkapnya, lihat EasyCkpt.
-
-
Skenario yang Tidak Didukung
Layanan yang memerlukan stabilitas tinggi.
Prosedur
Anda dapat mengirimkan pekerjaan preemptible dengan salah satu metode berikut.
Gunakan konsol PAI
-
Buka halaman Create Job.
-
Login ke PAI console. Pilih wilayah dan ruang kerja, lalu klik Enter Deep Learning Containers (DLC).
-
Di halaman Deep Learning Containers (DLC), klik Create Job.
-
-
Di halaman Create Job, konfigurasikan parameter yang dijelaskan dalam tabel berikut. Untuk informasi tentang parameter lainnya, lihat Create a training job.
Parameter
Description
Resource Information
Resource Type
Pilih Lingjun AI Computing Service atau General Computing.
CatatanParameter ini tersedia hanya jika ruang kerja mengizinkan Anda menggunakan sumber daya Lingjun dan sumber daya komputasi tujuan umum.
Source
Pilih Preemptible Resources.
Job Resource
Di kolom Resource Type, klik ikon
untuk memilih sumber daya preemptible dan konfigurasikan parameter Bid Price (Discount). Harga tawar adalah harga tawar maksimum berdasarkan harga asli tipe instans dan berkisar antara 10% hingga 90% dari harga pasar dengan interval 10%. Anda dapat memperoleh sumber daya preemptible jika tawaran Anda memenuhi atau melebihi harga pasar dan persediaan mencukupi. VPC
VPC
Konfigurasikan virtual private cloud (VPC) jika Anda menggunakan sumber daya Lingjun untuk mengirimkan pekerjaan DLC. Pilih VPC, vSwitch, dan security group dari daftar drop-down.
Security Group
vSwitch
Fault Tolerance and Diagnosis
Automatic Fault Tolerance
Jika Anda menggunakan sumber daya Lingjun untuk mengirimkan pekerjaan DLC, kami merekomendasikan agar Anda mengaktifkan Automatic Fault Tolerance. Fitur Automatic Fault Tolerance memungkinkan pekerjaan preemptible secara otomatis masuk kembali ke antrian penawaran setelah pencabutan sumber daya. Pekerjaan tersebut dapat dilanjutkan ketika harga pasar rata-rata turun di bawah harga tawar maksimum Anda. Untuk informasi selengkapnya tentang AIMaster, lihat AIMaster: An elastic and automatic fault tolerance engine.
Lingjun resources
CatatanUntuk harga spesifik berdasarkan spesifikasi sumber daya, silakan merujuk ke konsol.
Item konfigurasi utama untuk tugas pelatihan sumber daya preemptible yang menggunakan Lingjun Intelligent Computing meliputi hal berikut:
-
Source: Pilih Preemptible Resources.
-
Job Resource: Konfigurasikan jumlah node dan spesifikasi sumber daya untuk node Worker, serta periksa harga tawar maksimum dan kisaran harga pasar. Klik History Price untuk melihat harga historis.
-
VPC: Pilih VPC, vSwitch, dan security group.
-
Automatic Fault Tolerance: Setelah fitur ini diaktifkan, sumber daya komputasi tambahan akan dikonsumsi. Klik Modify Configuration untuk menyesuaikan pengaturan toleransi kesalahan.
General-purpose computing resources
CatatanUntuk harga spesifik berdasarkan spesifikasi sumber daya, silakan merujuk ke konsol.
Di halaman konfigurasi sumber daya, lakukan langkah-langkah berikut:
-
Atur Source ke Preemptible Resources.
-
Pilih framework yang diperlukan, seperti PyTorch, untuk Framework.
-
Di tabel Job Resource, konfigurasikan node Worker: atur jumlah node, Resource Specification, dan Bid Price (Discount). Kisaran harga pasar mengikuti tampilan aktual di konsol.
-
Di bagian Fault Tolerance and Diagnosis, aktifkan Automatic Fault Tolerance. Mengaktifkan fitur ini mengonsumsi sumber daya komputasi tambahan.
-
-
Setelah mengonfigurasi parameter, klik Confirm.
Setelah pekerjaan dikirimkan, DLC mengajukan permohonan sumber daya preemptible untuk membuat dan menjalankan pekerjaan tersebut. Jika tidak ada sumber daya preemptible yang tersedia, pekerjaan akan masuk ke status menunggu.
Gunakan SDK
Langkah 1: Instal SDK untuk Python.
-
Instal workspace SDK.
pip install alibabacloud_aiworkspace20210204==3.0.1 -
Instal DLC SDK.
pip install alibabacloud_pai_dlc20201203==1.4.17
Langkah 2: Kirim pekerjaan preemptible
SpotDiscountLimit
#!/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>' # ID wilayah tempat pekerjaan DLC berada, misalnya cn-hangzhou.
cred = CredClient()
workspace_id = '12****' # ID ruang kerja tempat pekerjaan DLC berada.
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
#!/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}')
Tabel berikut menjelaskan parameter utama. Untuk informasi tentang parameter lainnya, lihat Use SDK for Python.
|
Parameter |
Description |
|
SpotStrategy |
Kebijakan penawaran. Parameter jenis penawaran hanya berlaku jika Anda mengatur parameter ini ke SpotWithPriceLimit. |
|
SpotDiscountLimit |
Jenis penawaran spot discount. Catatan
|
|
SpotPriceLimit |
Jenis penawaran spot price. |
|
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. |