SageMaker Python SDK 속도 초과 및 제한 예외를 해결하려면 어떻게 해야 합니까?

2분 분량
0

Amazon SageMaker Python SDK를 사용할 때 “botocore.exceptions.ClientError: 오류 발생(ThrottlingException)”과 같은 제한 오류를 해결하려면 어떻게 해야 합니까?

간략한 설명

AWS 서비스에 대한 API 호출은 계정 및 AWS 리전당 허용되는 최대 API 요청 속도를 초과할 수 없습니다. 이러한 API 호출은 애플리케이션, AWS Command Line Interface(AWS CLI) 또는 AWS Management Console에서 호출될 수 있습니다. API 요청이 최대 속도를 초과하면 "속도 초과(Rate Exceeded)" 오류가 수신되고 API 호출이 제한됩니다.

Boto3의 기본 재시도 구성으로 인해 SageMaker API를 호출할 때 이 오류가 발생할 수 있습니다. 이 구성을 재정의하여 재시도 횟수와 응답 연결 및 읽기 시간 제한을 늘릴 수 있습니다.

사용자 지정 재시도 구성을 사용한 SageMaker boto3 클라이언트를 SageMaker Python SDK 클라이언트에 추가합니다.

해결 방법

1.    사용자 지정 재시도 구성을 사용하여 SageMaker boto3 클라이언트를 생성합니다. 예:

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.    이전 단계에서 생성한 boto3 클라이언트를 사용하여 SageMaker Python SDK 클라이언트를 생성합니다. 예:

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.    SageMaker Python SDK에서 여러 개의 요청을 사용하여 SageMaker API를 테스트합니다. 예:

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.    sagemaker_session 파라미터를 사용하여 sagemaker.estimator.Estimator 클래스의 인스턴스를 생성합니다. 예:

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.    이전 단계에서 생성한 예측기에서 훈련 작업을 실행하여 이 재시도 구성으로 조절 예외가 해결되는지 확인합니다.

estimator.fit()

관련 정보

Boto3 설명서

AWS 공식
AWS 공식업데이트됨 2년 전