Si vous ne disposez pas d'une puissance de calcul suffisante, utilisez la fonctionnalité de tâches à prix spot de Platform for AI (PAI), qui alloue les ressources de calcul via un système d'enchères. Dans la plupart des cas, les ressources à prix spot offrent un avantage tarifaire par rapport aux ressources publiques en paiement à l'utilisation. Cela permet d'accéder à la puissance de calcul IA de manière économique et de réduire le coût total des tâches. Cette rubrique explique comment utiliser les ressources à prix spot lors de la création d'une tâche Deep Learning Containers (DLC).
Limites
Les ressources à prix spot présentent les limites suivantes :
|
Type |
Ressources Lingjun |
Ressources de calcul généralistes |
|
Régions prises en charge |
|
|
|
Type de framework |
|
PyTorch |
|
Tolérance aux pannes automatique basée sur AIMaster |
Prise en charge |
Non pris en charge |
|
Limites liées aux fonctionnalités |
|
|
Fonctionnalités
-
Utilisation des ressources à prix spot
Vous pouvez utiliser des ressources de calcul généralistes ou des ressources Lingjun pour créer des tâches DLC. Les prix du marché des ressources à prix spot évoluent en fonction de l'offre et de la demande. Les instances à prix spot peuvent coûter jusqu'à 90 % de moins que les instances en paiement à l'utilisation. Les ressources à prix spot peuvent être récupérées par tous les utilisateurs Alibaba Cloud et sont libérées à la fin de leurs périodes de protection. Tenez compte des éléments suivants lorsque vous utilisez des ressources à prix spot pour soumettre des tâches DLC :
Si DLC ne parvient pas à obtenir des instances à prix spot en raison d'une insuffisance des ressources, les tâches à prix spot passent à l'état d'attente et DLC continue de demander des ressources à prix spot.
Une fois que le système a obtenu des ressources à prix spot, les tâches DLC sont créées et exécutées.
Après la libération des ressources à prix spot, les tâches DLC échouent et s'arrêtent.
-
Demande de ressources à prix spot
Lorsque vous utilisez des ressources à prix spot pour créer des tâches DLC, DLC commence à acquérir des ressources d'instance après la soumission des tâches. Pour créer des instances à prix spot, les conditions suivantes doivent être remplies :
Le prix d'enchère maximal configuré pour les ressources à prix spot doit être supérieur ou égal au prix du marché.
Le stock de ressources à prix spot est suffisant.
-
Libération des ressources à prix spot
Les ressources à prix spot peuvent être interrompues et libérées en fonction du prix du marché, du stock de ressources, du prix d'enchère maximal configuré pour une instance lors de la création de la tâche et de la durée d'utilisation. Dans les scénarios suivants, les ressources à prix spot peuvent être libérées sans notification :
Ressources Lingjun : si le prix d'enchère maximal d'une ressource à prix spot est inférieur au prix moyen ou si le stock de la ressource est insuffisant, la ressource est libérée.
Ressources de calcul généralistes : si le prix d'enchère maximal d'une ressource à prix spot est inférieur au prix actuel du marché ou si le stock de la ressource à prix spot est insuffisant, la ressource à prix spot est libérée.
Pour garantir l'exécution continue et stable de vos tâches à prix spot, effectuez les opérations suivantes :
Activez la tolérance aux pannes automatique lors de la création d'une tâche avec des ressources Lingjun. Une fois cette option activée, votre tâche entre automatiquement dans la file d'attente pour enchérir sur les ressources à prix spot. Pour plus d'informations, consultez AIMaster : un moteur de tolérance aux pannes élastique et automatique.
Lorsque vous utilisez des ressources de calcul généralistes ou Lingjun pour créer une tâche, vous pouvez utiliser le framework EasyCkpt pour entraîner un grand modèle de langage (LLM) PyTorch. La tâche peut effectuer et enregistrer fréquemment des points de contrôle, et permet l'interruption. Pour plus d'informations, consultez EasyCkpt.
Facturation
-
Tarification
Le mode d'enchère des tâches à prix spot permet de configurer le prix d'enchère maximal spécifié par le paramètre SpotWithPriceLimit. Dans les scénarios où les tâches DLC sont créées à l'aide de ressources à prix spot, les prix du marché de ces ressources fluctuent en fonction de l'offre et de la demande. Si vous utilisez les mêmes ressources à prix spot pour soumettre plusieurs tâches DLC, les frais des tâches sur une période fixe peuvent être identiques. Les types d'enchères suivants sont pris en charge.
RemarqueLes ressources Lingjun prennent uniquement en charge le type d'enchère avec remise spot.
Prix d'enchère basé sur le type d'enchère avec remise spot : le prix d'enchère maximal est basé sur le prix du marché du type d'instance et varie de 10 % à 90 % du prix du marché, par intervalles de 10 %.
Prix d'enchère basé sur le type d'enchère au prix spot : le prix d'enchère maximal se situe dans la fourchette des prix du marché.
Dans la section Resource Information de la page Créer une tâche dans DLC, définissez Source sur Preemptible Resources et affichez les ressources à prix spot ainsi que les fourchettes de prix du marché dans la section Job Resource.
RemarqueConsultez la console pour connaître la tarification spécifique des spécifications de ressources.
-
Ressources de calcul généralistes
Pour utiliser des ressources de calcul généralistes, dans la section Resource Information, définissez Resource Type sur General Computing et Source sur Preemptible Resources, puis sélectionnez PyTorch pour Framework. Dans le tableau Job Resource, configurez les paramètres suivants pour les nœuds Worker : le nombre de nœuds, Resource Specification, la fourchette de prix du marché et Bid Price (Discount).
-
Ressources Lingjun
Dans la section Resource Information de la page Créer une tâche, configurez les paramètres suivants :
Resource Type : sélectionnez Lingjun AI Computing Service.
Source : sélectionnez Preemptible Resources.
Framework : sélectionnez PyTorch.
Job Resource : configurez le nombre de nœuds, Resource Specification, la fourchette de prix du marché et Bid Price (Discount) pour les nœuds Worker.
-
Mode de facturation
Les ressources à prix spot sont facturées selon la méthode de facturation en paiement à l'utilisation. La facturation est basée sur le prix du marché.
-
Consultation des factures
Après l'exécution d'une tâche, accédez à la page Détails de facturation dans Frais et coûts le lendemain pour afficher les détails de facturation de la tâche ayant utilisé des ressources à prix spot. Les frais en paiement à l'utilisation sont générés par DLC. Le tag de l'instance est
key:acs:pai:dlc:payType value:spot. Pour plus d'informations sur la consultation des détails de facturation, consultez Afficher les détails de facturation PAI.
Scénarios
-
Scénarios pris en charge
Pour réduire les coûts, nous vous recommandons d'utiliser des ressources à prix spot dans les scénarios suivants :
Tâches de calcul à court terme.
Tâches de calcul en état de débogage.
Tâches de calcul tolérantes aux pannes.
Tâches de calcul permettant l'interruption. Par exemple, dans les scénarios où le framework EasyCkpt est utilisé pour entraîner un LLM PyTorch, vous pouvez enregistrer fréquemment des points de contrôle et restaurer les données à partir de ceux-ci. Pour plus d'informations, consultez EasyCkpt.
-
Scénarios non pris en charge
Services nécessitant une stabilité élevée
Procédure
Soumettez une tâche à prix spot en utilisant l'une des méthodes suivantes.
Utiliser la console PAI
-
Accédez à la page Create Job.
Connectez-vous à la console PAI. Sélectionnez une région et un espace de travail. Puis, cliquez sur Enter Deep Learning Containers (DLC).
Sur la page Deep Learning Containers (DLC), cliquez sur Create Job.
-
Sur la page Créer une tâche, configurez les paramètres décrits dans le tableau suivant. Pour plus d'informations sur les autres paramètres, consultez Créer une tâche d'entraînement.
Paramètre
Description
Resource Information
Resource Type
Sélectionnez Lingjun AI Computing Service ou General Computing.
RemarqueCe paramètre est disponible uniquement si l'espace de travail vous permet d'utiliser des ressources Lingjun et des ressources de calcul généralistes.
Source
Sélectionnez Preemptible Resources.
Job Resource
Dans la colonne Resource Type, cliquez sur l'icône
pour sélectionner une ressource à prix spot et configurer le paramètre Bid Price (Discount). Le prix d'enchère correspond au prix d'enchère maximal basé sur le prix initial du type d'instance et varie de 10 % à 90 % du prix du marché, par intervalles de 10 %. Vous pouvez obtenir la ressource à prix spot si votre enchère atteint ou dépasse le prix du marché et si le stock est suffisant. VPC
VPC
Configurez un cloud privé virtuel (VPC) si vous utilisez des ressources Lingjun pour soumettre des tâches DLC. Sélectionnez un VPC, un vSwitch et un groupe de sécurité dans les listes déroulantes.
Security Group
vSwitch
Fault Tolerance and Diagnosis
Automatic Fault Tolerance
Si vous utilisez des ressources Lingjun pour soumettre des tâches DLC, nous vous recommandons d'activer Automatic Fault Tolerance. La fonctionnalité Automatic Fault Tolerance permet aux tâches à prix spot de réintégrer automatiquement la file d'attente d'enchères après la révocation des ressources. Les tâches peuvent reprendre lorsque le prix moyen du marché descend en dessous de votre prix d'enchère maximal. Pour plus d'informations sur AIMaster, consultez AIMaster : un moteur de tolérance aux pannes élastique et automatique.
Ressources Lingjun
RemarqueConsultez la console pour connaître la tarification spécifique des spécifications de ressources.
Les éléments de configuration clés pour une tâche d'entraînement utilisant des ressources à prix spot avec Lingjun Intelligent Computing incluent les éléments suivants :
Source : sélectionnez Preemptible Resources.
Job Resource : configurez le nombre de nœuds et la spécification de ressource pour les nœuds Worker, et vérifiez le prix d'enchère maximal ainsi que la fourchette de prix du marché. Cliquez sur History Price pour afficher les prix historiques.
VPC : sélectionnez un VPC, un vSwitch et un groupe de sécurité.
Automatic Fault Tolerance : une fois cette fonctionnalité activée, des ressources de calcul supplémentaires sont consommées. Cliquez sur Modify Configuration pour ajuster les paramètres de tolérance aux pannes.
Ressources de calcul généralistes
RemarqueConsultez la console pour connaître la tarification spécifique des spécifications de ressources.
Sur la page de configuration des ressources, effectuez les étapes suivantes :
Définissez Source sur Preemptible Resources.
Sélectionnez le framework requis, tel que PyTorch, pour Framework.
Dans le tableau Job Resource, configurez les nœuds Worker : définissez le nombre de nœuds, Resource Specification et Bid Price (Discount). La fourchette de prix du marché dépend de l'affichage réel dans la console.
Dans la section Fault Tolerance and Diagnosis, activez Automatic Fault Tolerance. L'activation de cette fonctionnalité consomme des ressources de calcul supplémentaires.
-
Une fois les paramètres configurés, cliquez sur Confirm.
Après la soumission de la tâche, DLC demande des ressources à prix spot pour créer et exécuter la tâche. Si aucune ressource à prix spot n'est obtenue, la tâche passe à l'état d'attente.
Utiliser le SDK
Étape 1 : Installez le SDK pour Python.
-
Installez le SDK de l'espace de travail.
pip install alibabacloud_aiworkspace20210204==3.0.1 -
Installez le SDK DLC.
pip install alibabacloud_pai_dlc20201203==1.4.17
Étape 2 : Soumettez une tâche à prix spot
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>' # The ID of the region in which the DLC job resides, such as cn-hangzhou.
cred = CredClient()
workspace_id = '12****' # The ID of the workspace to which the DLC job belongs.
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}')
Le tableau suivant décrit les paramètres clés. Pour plus d'informations sur les autres paramètres, consultez Utiliser le SDK pour Python.
|
Paramètre |
Description |
|
SpotStrategy |
La politique d'enchère. Les paramètres de type d'enchère prennent effet uniquement si vous définissez ce paramètre sur SpotWithPriceLimit. |
|
SpotDiscountLimit |
Le type d'enchère avec remise spot. Remarque
|
|
SpotPriceLimit |
Le type d'enchère au prix spot. |
|
UserVpc |
Ce paramètre est requis lorsque vous utilisez des ressources Lingjun pour soumettre des tâches. Configurez l'ID du VPC, du vSwitch et du groupe de sécurité pour la région dans laquelle la tâche réside. |