競價資源是PAI提供的低成本算力選項,價格最高可比隨用隨付執行個體節約90%。競價資源的價格隨供需浮動,且可能被回收中斷,適合可容忍中斷的訓練任務。
使用限制
競價資源的使用限制如下:
限制類型 | 靈駿智算競價資源 | 通用計算競價資源 |
地區限制 |
|
|
架構類型 |
| PyTorch |
自動容錯(AIMaster) | 支援 | 不支援 |
功能限制 |
| |
競價資源特點
競價資源使用說明
競價資源的價格隨供需浮動,相比隨用隨付執行個體最高節約90%。由於所有使用者共同搶佔,競價資源不保證持續可用。任務提交後:
庫存不足時可能無法立即擷取資源,系統會持續申請,任務顯示為等待狀態。
申請到資源後,任務開始運行。
資源被回收後,任務失敗結束。
申請競價資源
任務提交後即開始搶佔資源。滿足以下條件時可搶佔成功:
您配置的競價資源的出價上限≥市場價格
競價資產庫存充足
回收競價資源
競價資源可能因價格變動或庫存不足被回收。以下情況會觸發回收:
靈駿智算競價資源:競價資源出價上限低於系統平均價格,或競價資產庫存不足時,會被回收。
通用計算競價資源:競價資源出價上限低於當前競價資源市場價,或競價資產庫存不足時,會被回收。
為降低任務被回收的影響,建議:
使用靈駿智算競價資源時,開啟自動容錯(AIMaster)開關。開啟後,任務被回收時會自動重新參與競價。詳情請參見AIMaster:彈性自動容錯引擎。

使用通用計算或靈駿智算競價資源時,採用EasyCkpt架構訓練,支援頻繁儲存Checkpoint,任務中斷後可繼續訓練。詳情請參見EasyCkpt:AI大模型高效能狀態儲存恢複。
計費規則
價格說明:
競價任務採用最高價模式(SpotWithPriceLimit),支援以下兩種出價類型:
說明靈駿智算競價資源的出價類型僅支援Spot折扣。
出價(Spot折扣):最高價是基於資源規格的市場價格,從1折到9折的離散選項。
出價(Spot價格):最高價的出價範圍為市場價格區間。
前往分布式訓練(DLC)的建立任務頁面,在資源資訊地區,資源來源選擇競價資源,然後在任務資源中查看支援使用的競價資源和市場價格區間。
說明具體資源規格的價格,請以控制台顯示為準。
通用計算競價資源

靈駿智算競價資源

競價資源計費:
競價資源按即時市場價計費。
查看賬單:
任務完成後,次日可在費用與成本的賬單詳情頁面查看費用明細。該賬單為PAI-DLC後付費賬單,執行個體標籤為
key:acs:pai:dlc:payType value:spot。查看賬單明細請參見查看賬單明細。
應用情境
適用情境:
以下情境適合使用競價資源:
已耗用時間比較短的計算任務。
Debug狀態的計算任務。
可容忍中斷的計算任務。
支援中斷後繼續訓練的任務。例如使用EasyCkpt架構訓練,可頻繁儲存Checkpoint並從中恢複,詳情請參見EasyCkpt:AI大模型高效能狀態儲存恢複。
不適用情境:
對穩定性要求極高的服務,請勿選擇競價資源。
操作步驟
使用競價資源提交DLC任務,支援以下兩種方式:
通過控制台
進入建立任務頁面。
登入PAI控制台,在頁面上方選擇目標地區,並在右側選擇目標工作空間,然後單擊進入DLC。
在分布式訓練(DLC)頁面,單擊建立任務。
配置以下關鍵參數,其他參數配置說明,請參見建立訓練任務。
參數
描述
資源資訊
資源類型
選擇靈駿智算或通用計算。
說明僅當工作空間同時支援使用靈駿智算資源和通用計算資源時,才支援選擇資源類型。
資源來源
選擇競價資源。
任務資源
在資源規格列,單擊
選擇競價資源,並設定出價。出價為原價的1~9折,表示您願意支付的最高價。出價≥市場價且庫存充足時,可獲得競價資源。專用網路配置
專用網路配置
使用靈駿智算競價資源時需配置專用網路。選擇當前地區已建立的專用網路、交換器和安全性群組。
安全性群組
交換器
容錯與診斷
自動容錯
使用靈駿智算競價資源時,強烈建議開啟自動容錯開關。開啟後,資源被回收時任務會自動重新競價,在價格回落到上限以下時恢複運行。詳情請參見AIMaster:彈性自動容錯引擎。
靈駿智算競價資源
說明具體資源規格的價格,請以控制台顯示為準。

通用計算競價資源
說明具體資源規格的價格,請以控制台顯示為準。

參數配置完成後,單擊確定。
任務提交後,DLC開始申請競價資源並運行任務。未申請到資源時,任務顯示為等待狀態。
通過SDK
步驟一:安裝Python SDK
安裝工作空間SDK。
pip install alibabacloud_aiworkspace20210204==3.0.1安裝DLC SDK。
pip install alibabacloud_pai_dlc20201203==1.4.17
步驟二:提交競價任務
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>' # DLC任務所在地區ID,例如華東1(杭州)為cn-hangzhou。
cred = CredClient()
workspace_id = '12****' # DLC任務所在工作空間ID。
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}')
關鍵參數說明如下,更多配置請參見Python SDK。
參數 | 描述 |
SpotStrategy | 競價策略。設定為SpotWithPriceLimit時出價類型才生效。 |
SpotDiscountLimit | 出價類型為Spot折扣。 說明
|
SpotPriceLimit | 出價類型為Spot價格。 |
UserVpc | 使用靈駿競價資源時必填。配置任務所在地區的專用網路、交換器和安全性群組ID。、 |