Comment puis-je résoudre les exceptions de limitation et « rate exceeded » (taux dépassé) dans le kit SDK SageMaker Python ?

Dernière mise à jour : 12/10/2020

Comment résoudre des erreurs de limitation telles que « botocore.exceptions.ClientError: An error occurred (ThrottlingException) » (botocore.exceptions.ClientError: une erreur s'est produite [ThrottlingException]) lors de l'utilisation du kit SDK Amazon SageMaker Python ?

Brève description

Ajoutez un client SageMaker boto3 avec une configuration de nouvelle tentative personnalisée au client du kit SDK SageMaker Python.

Résolution

1.    Créez un client SageMaker boto3 avec une configuration de nouvelle tentative personnalisée. Exemple:

import boto3 
from botocore.config import Config

sm_boto = boto3.client('sagemaker', config=Config(connect_timeout=5, read_timeout=60, retries={'max_attempts': 20}))
print(sm_boto.meta.config.retries)

2.    Créez un client de kit SDK SageMaker Python à l'aide du client boto3 de l'étape précédente. Exemple:

import sagemaker

sagemaker_session = sagemaker.Session(sagemaker_client = sm_boto)
region = sagemaker_session.boto_session.region_name

print(sagemaker_session.sagemaker_client.meta.config.retries)

3.    Testez une API SageMaker avec plusieurs requêtes du kit SDK SageMaker Python. Exemple:

import multiprocessing

def worker(TrainingJobName):
    print(sagemaker_session.sagemaker_client
          .describe_training_job(TrainingJobName=TrainingJobName)
          ['TrainingJobName'])
    return

if __name__ == '__main__':
    jobs = []
    TrainingJobName = 'your-job-name'
    for i in range(10):
        p = multiprocessing.Process(target=worker, args=(TrainingJobName,))
        jobs.append(p)
        p.start()

4.    Créez une instance de la classe sagemaker.estimator.Estimator avec le paramètre sagemaker_session. Exemple:

    estimator = sagemaker.estimator.Estimator(container,
                                             role, 
                                             train_instance_count=1, 
                                             train_instance_type='ml.c4.4xlarge',
                                             train_volume_size = 30,
                                             train_max_run = 360000,
                                             input_mode= 'File',
                                             output_path=s3_output_location,
                                             sagemaker_session=sagemaker_session )

5.    Pour confirmer que la configuration de nouvelle tentative résout les exceptions de limitation, lancez une tâche d'entraînement à partir de l'estimateur que vous avez créé à l'étape précédente :

estimator.fit()

Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?