Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Soumission d'offres d'emploi à un quota
Les files d'attente pour les tâches de gestion des quotas nécessitent que toutes les tâches spécifient une part de quota lors de la soumission des tâches. Pour soumettre des tâches à un partage de quotas, spécifiez le quotaShareName dans SubmitServiceJob. Un preemptionConfiguration peut éventuellement être fourni pour limiter le nombre de tentatives de préemption avant le début d'une tentative de travail. FAILED Pour limiter le nombre de préemptions auxquelles un poste peut être soumis, définissez-le preemptionRetriesBeforeTermination au moment de ServiceJobPreemptionConfigurationla soumission du poste.
Conditions préalables
Avant de soumettre des tâches à un partage de quotas, assurez-vous de disposer des éléments suivants :
-
Ressources de gestion des quotas : politique de planification, environnement de service et file d'attente de tâches configurés pour la gestion des quotas. Pour de plus amples informations, veuillez consulter Création de ressources de gestion des quotas.
-
Partage de quotas : au moins un partage de quota créé dans la file d'attente des tâches. Pour de plus amples informations, veuillez consulter Création de parts de quotas.
-
Autorisations IAM : autorisations permettant de soumettre des tâches à AWS Batch. Pour de plus amples informations, veuillez consulter AWS Batch Politiques, rôles et autorisations IAM.
Soumettre une tâche de service à un partage de quotas
Le tableau ci-dessous indique comment soumettre une tâche de service à un partage de quotas à l'aide du SDK SageMaker Python ou de la AWS CLI :
- Submit using the SageMaker Python SDK
-
Le SDK SageMaker Python intègre un support permettant de soumettre des tâches à une file d'attente de tâches compatible avec la gestion des quotas. Les exemples suivants montrent comment créer un formateur modèle, créer une file d'attente de formation et soumettre des tâches à un partage de quotas. Pour un exemple complet, consultez le bloc-notes complet sur GitHub.
Créez un ModelTrainer qui définit la configuration des tâches de formation.
from sagemaker.train.model_trainer import ModelTrainer
from sagemaker.train.configs import SourceCode, Compute, StoppingCondition
source_code = SourceCode(command="echo 'Hello World'")
model_trainer = ModelTrainer(
training_image="123456789012.dkr.ecr.us-east-1.amazonaws.com/pytorch-training:2.5-gpu-py311",
source_code=source_code,
base_job_name="my-training-job",
compute=Compute(instance_type="ml.g5.xlarge", instance_count=1),
stopping_condition=StoppingCondition(max_runtime_in_seconds=300),
)
Créez un TrainingQueue objet qui fait référence à votre file d'attente de tâches compatible avec la gestion des quotas par son nom.
from sagemaker.train.aws_batch.training_queue import TrainingQueue
queue = TrainingQueue("my-sagemaker-job-queue")
Soumettez les tâches à un partage de quotas en appelant queue.submit et en spécifiant lequota_share_name. Vous devez définir un priority pour influencer l'ordre des tâches dans les limites du quota. Un monde réel ModelTrainer aura besoin inputs de données sur lesquelles s'entraîner.
job = queue.submit(
job_name="my-training-job",
training_job=model_trainer,
quota_share_name="my_quota_share",
priority=3,
inputs=None,
)
- Submit using the AWS CLI
-
L'exemple suivant utilise la submit-service-job commande pour soumettre une tâche à un partage de quotas.
aws batch submit-service-job \
--job-name "my-sagemaker-training-job" \
--job-queue "my-sagemaker-job-queue" \
--service-job-type "SAGEMAKER_TRAINING" \
--quota-share-name "my_quota_share" \
--timeout-config '{"attemptDurationSeconds":3600}' \
--scheduling-priority 5 \
--service-request-payload '{\"TrainingJobName\": \"sagemaker-training-job-example\", \"AlgorithmSpecification\": {\"TrainingImage\": \"123456789012.dkr.ecr.us-east-1.amazonaws.com/pytorch-inference:1.8.0-cpu-py3\", \"TrainingInputMode\": \"File\", \"ContainerEntrypoint\": [\"sleep\", \"1\"]}, \"RoleArn\":\"arn:aws:iam::123456789012:role/SageMakerExecutionRole\", \"OutputDataConfig\": {\"S3OutputPath\": \"s3://example-bucket/model-output/\"}, \"ResourceConfig\": {\"InstanceType\": \"ml.m5.large\", \"InstanceCount\": 1, \"VolumeSizeInGB\": 1}}'"