Amazon에서 체크포인트 사용하기 SageMaker - 아마존 SageMaker

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon에서 체크포인트 사용하기 SageMaker

SageMaker Amazon의 체크포인트를 사용하여 학습 중에 기계 학습 (ML) 모델의 상태를 저장합니다. 체크포인트는 모델의 스냅샷이며 ML 프레임워크의 콜백 함수로 구성할 수 있습니다. 저장된 체크포인트를 사용하여 마지막으로 저장된 체크포인트에서 훈련 작업을 다시 시작할 수 있습니다.

체크포인트를 사용하여 수행할 수 있는 작업은 다음과 같습니다.

  • 훈련 작업 또는 인스턴스의 예기치 않은 중단에 대비하여 훈련 중인 모델 스냅샷을 저장하세요.

  • 나중에 체크포인트에서 모델 훈련을 재개하세요.

  • 훈련의 중급 단계에서 모델을 분석하세요.

  • 액세스 속도를 높이려면 S3 Express One Zone과 함께 체크포인트를 사용하십시오.

  • 체크포인트를 SageMaker 관리형 스팟 트레이닝과 함께 사용하면 교육 비용을 절감할 수 있습니다.

SageMaker 교육 메커니즘은 Amazon EC2 인스턴스의 교육 컨테이너를 사용하며 체크포인트 파일은 컨테이너의 로컬 디렉터리 (기본값) 에 저장됩니다. /opt/ml/checkpoints SageMaker 로컬 경로에서 Amazon S3로 체크포인트를 복사하고 해당 디렉터리의 체크포인트를 S3와 자동으로 동기화하는 기능을 제공합니다. S3의 기존 체크포인트는 작업 시작 시 SageMaker 컨테이너에 기록되므로 체크포인트에서 작업을 재개할 수 있습니다. 작업이 시작된 후 S3 폴더에 추가된 체크포인트는 교육 컨테이너에 복사되지 않습니다. SageMaker 또한 훈련 중에 컨테이너에서 S3로 새 체크포인트를 기록합니다. SageMaker 컨테이너에서 체크포인트를 삭제하면 S3 폴더에서도 삭제됩니다.

Amazon S3 익스프레스 원 존 스토리지 클래스 (S3 익스프레스 원 존) SageMaker 와 함께 아마존의 체크포인트를 사용하면 체크포인트에 더 빠르게 액세스할 수 있습니다. 체크포인트를 활성화하고 체크포인트 스토리지 대상으로 S3 URI를 지정하면 S3 범용 버킷 또는 S3 디렉터리 버킷의 폴더에 대해 S3 URI를 제공할 수 있습니다. S3 익스프레스 원 존 및 S3 디렉터리 버킷에 대한 자세한 내용은 S3 익스프레스 원 존이란? 을 참조하십시오.

SageMaker 관리형 스팟 교육과 함께 체크포인트를 사용하는 경우, 스팟 인스턴스에서 모델 학습을 체크포인팅하고 다음 스팟 인스턴스에서 교육 작업을 재개하도록 SageMaker 관리합니다. SageMaker 관리형 스팟 트레이닝을 사용하면 ML 모델 학습에 소요되는 청구 시간을 크게 줄일 수 있습니다. 자세한 정보는 Amazon에서 관리형 스팟 교육 사용하기 SageMaker을 참조하세요.

의 프레임워크 및 알고리즘에 대한 체크포인트 SageMaker

체크포인트를 사용하여 선호하는 프레임워크를 기반으로 구축된 ML 모델의 스냅샷을 저장할 수 있습니다. SageMaker

SageMaker 체크포인트를 지원하는 프레임워크 및 알고리즘

SageMaker AWS Deep Learning Containers 및 일부 내장 알고리즘에 대한 체크포인트 지정을 지원하므로 교육 스크립트를 변경할 필요가 없습니다. SageMaker 체크포인트를 기본 로컬 경로에 '/opt/ml/checkpoints' 저장하고 Amazon S3에 복사합니다.

  • 딥 러닝 컨테이너: TensorFlow, PyTorch, MXnetHuggingFace

    참고

    HuggingFace 프레임워크 추정기를 사용하는 경우 하이퍼파라미터를 통해 체크포인트 출력 경로를 지정해야 합니다. 자세한 내용은 HuggingFace설명서의 SageMaker Amazon에서 교육 실행을 참조하십시오.

  • 기본 제공 알고리즘: 이미지 분류, 객체 감지, 의미 체계 세분화, XGBoost(0.90~1 또는 그 이상)

    참고

    프레임워크 모드(스크립트 모드)로 XGBoost 알고리즘을 사용하려면 수동으로 구성되었고 체크포인트 지정 기능이 포함된 XGBoost 훈련 스크립트를 가져와야 합니다. 모델 스냅샷을 저장하는 XGBoost 훈련 방법에 대한 자세한 내용은 XGBoost Python SDK 설명서XGBoost 훈련을 참조하세요.

체크포인트를 지원하지 않는 사전 구축된 알고리즘을 관리형 스팟 트레이닝 작업에 사용하는 경우, 인터럽트로 인한 교육 시간 낭비를 제한하기 위해 최대 대기 시간을 1시간 이상 허용하지 SageMaker 않습니다.

사용자 지정 훈련 컨테이너 및 기타 프레임워크의 경우

자체 교육 컨테이너, 교육 스크립트 또는 이전 섹션에 나열되지 않은 기타 프레임워크를 사용하는 경우, 체크포인트를 로컬 경로 ('/opt/ml/checkpoints') 에 저장하고 교육 스크립트의 로컬 경로에서 로드하도록 콜백 또는 교육 API를 사용하여 교육 스크립트를 적절하게 설정해야 합니다. SageMaker 추정기는 로컬 경로와 동기화하고 Amazon S3에 체크포인트를 저장할 수 있습니다.

체크포인트 지정을 활성화합니다.

체크포인트를 활성화하면 Amazon S3에 체크포인트를 SageMaker 저장하고 훈련 작업을 체크포인트 S3 버킷과 동기화합니다. 체크포인트 S3 버킷에는 S3 범용 또는 S3 디렉터리 버킷을 사용할 수 있습니다.

훈련 중 체크포인트를 기록하는 아키텍처 다이어그램.

다음 예제는 추정기를 구성할 때 체크포인트 경로를 구성하는 방법을 보여줍니다. SageMaker 체크포인트 지정을 활성화하려면 checkpoint_s3_uri 파라미터 및 checkpoint_local_path 파라미터를 예측기에 추가하세요.

다음 예제 템플릿은 일반 SageMaker 추정기를 만들고 체크포인트를 활성화하는 방법을 보여줍니다. image_uri 파라미터를 지정하면 이 템플릿을 지원 대상 알고리즘에 사용할 수 있습니다. 에서 체크포인트가 지원되는 알고리즘의 Docker 이미지 URI를 찾으려면 Docker 레지스트리 경로 및 예제 코드를 SageMaker 참조하십시오. 및 를 다른 SageMaker 프레임워크의 추정기 상위 클래스 estimator 및 추정기 클래스 (예:,, 및) Estimator 로 바꿀 수도 있습니다. TensorFlow PyTorch MXNet HuggingFace XGBoost

import sagemaker from sagemaker.estimator import Estimator bucket=sagemaker.Session().default_bucket() base_job_name="sagemaker-checkpoint-test" checkpoint_in_bucket="checkpoints" # The S3 URI to store the checkpoints checkpoint_s3_bucket="s3://{}/{}/{}".format(bucket, base_job_name, checkpoint_in_bucket) # The local path where the model will save its checkpoints in the training container checkpoint_local_path="/opt/ml/checkpoints" estimator = Estimator( ... image_uri="<ecr_path>/<algorithm-name>:<tag>" # Specify to use built-in algorithms output_path=bucket, base_job_name=base_job_name, # Parameters required to enable checkpointing checkpoint_s3_uri=checkpoint_s3_bucket, checkpoint_local_path=checkpoint_local_path )

다음 2개 파라미터는 체크포인트 지정용 경로를 지정합니다.

  • checkpoint_local_path – 모델이 훈련 컨테이너에서 체크포인트를 주기적으로 저장하는 로컬 경로를 지정합니다. 기본 경로는 '/opt/ml/checkpoints'(으)로 설정됩니다. 다른 프레임워크를 사용하거나 자체 훈련 컨테이너를 가져오려면 훈련 스크립트의 체크포인트 구성에서 경로가 '/opt/ml/checkpoints'(으)로 지정되어 있는지 확인하세요.

    참고

    기본 체크포인트 설정과 '/opt/ml/checkpoints' 일치하도록 로컬 경로를 지정하는 것이 좋습니다. SageMaker 로컬 경로를 직접 지정하려면 교육 스크립트의 체크포인트 저장 경로와 추정기의 checkpoint_local_path SageMaker 파라미터를 일치시켜야 합니다.

  • checkpoint_s3_uri – 체크포인트가 실시간으로 저장되는 S3 버킷의 URI입니다. 체크포인트를 저장할 S3 범용 또는 S3 디렉터리 버킷을 지정할 수 있습니다. S3 디렉터리 버킷에 대한 자세한 내용은 Amazon 심플 스토리지 서비스 사용 설명서의 디렉터리 버킷을 참조하십시오.

SageMaker 추정기 파라미터의 전체 목록을 찾으려면 Amazon Python SageMaker SDK 설명서의 추정기 API를 참조하십시오.

체크포인트 파일 찾아보기

SageMaker Python SDK와 Amazon S3 콘솔을 사용하여 체크포인트 파일을 찾을 수 있습니다.

프로그래밍 방식으로 체크포인트 파일을 찾는 방법

체크포인트가 저장된 S3 버킷 URI를 검색하려면 다음 예측기 속성을 확인하세요.

estimator.checkpoint_s3_uri

그러면 요청을 요청하는 동안 구성된 체크포인트의 S3 출력 경로가 반환됩니다. CreateTrainingJob S3 콘솔을 사용하여 저장된 체크포인트 파일을 찾으려면 다음 절차를 사용하십시오.

S3 콘솔에서 체크포인트 파일을 찾으려면
  1. https://console.aws.amazon.com/sagemaker/ 에서 AWS Management Console 로그인하고 SageMaker 콘솔을 엽니다.

  2. 왼쪽 탐색 창에서 훈련 작업을 선택하세요.

  3. 체크포인트 지정 기능이 활성화된 훈련 작업의 링크를 선택하여 작업 설정을 여세요.

  4. 훈련 작업의 작업 설정 페이지에서 체크포인트 구성 섹션을 찾으세요.

    훈련 작업의 작업 설정 페이지에 있는 체크포인트 구성 섹션.
  5. S3 버킷의 링크를 사용하여 체크포인트 파일에 액세스하세요.

체크포인트에서 교육 재개하기

체크포인트에서 훈련 작업을 재개하려면 체크포인트 지정을 활성화합니다. 섹션에서 생성한 것과 동일한 checkpoint_s3_uri(으)로 새 예측기를 실행하세요. 훈련이 재개되고 나면 이 S3 버킷의 체크포인트가 새 훈련 작업의 각 인스턴스에 있는 checkpoint_local_path(으)로 복원됩니다. S3 버킷이 현재 SageMaker 세션과 동일한 지역에 있는지 확인하십시오.

훈련 재개를 위한 체크포인트 동기화를 보여주는 아키텍처 다이어그램.

GPU 오류에 대한 클러스터 복구

GPU에서 실패한 훈련 작업을 실행 중인 경우 GPU 상태 검사를 실행하여 실패가 GPU 문제와 관련이 있는지 확인합니다. SageMaker SageMaker 상태 점검 결과에 따라 다음 조치를 취합니다.

  • 오류를 복구할 수 있고 인스턴스를 재부팅하거나 GPU를 재설정하여 오류를 수정할 수 있는 경우 인스턴스가 재부팅됩니다. SageMaker

  • 오류가 복구할 수 없고 GPU를 교체해야 하는 경우 인스턴스가 교체됩니다. SageMaker

클러스터 복구 프로세스의 일환으로 인스턴스가 교체되거나 재부팅됩니다. SageMaker 이 과정에서 교육 작업 상태에 다음과 같은 메시지가 표시됩니다.

Repairing training cluster due to hardware failure

SageMaker 최대 10 몇 번까지 클러스터 복구를 시도합니다. 클러스터 복구가 SageMaker 성공하면 이전 체크포인트에서 교육 작업을 자동으로 다시 시작합니다. 클러스터 복구가 실패하면 교육 작업도 실패합니다. 클러스터 복구 프로세스에 대해서는 요금이 청구되지 않습니다. 교육 작업이 실패하지 않는 한 클러스터 복구는 시작되지 않습니다. 웜풀 클러스터에서 GPU 문제가 감지되면 클러스터는 복구 모드로 전환되어 결함이 있는 인스턴스를 재부팅하거나 교체합니다. 복구 후에도 클러스터를 웜풀 클러스터로 사용할 수 있습니다.

앞서 설명한 클러스터 및 인스턴스 복구 프로세스는 다음 다이어그램에 나와 있습니다.

The cluster repair process checks for training errors and attempts to fix them if they are caused by a GPU.

체크포인팅 고려 사항

에서 체크포인트를 사용할 때는 다음 사항을 고려하십시오. SageMaker

  • 여러 인스턴스를 사용하는 분산 훈련에서 덮어쓰기를 방지하려면 훈련 스크립트에서 체크포인트 파일 이름 및 경로를 수동으로 구성해야 합니다. 상위 수준 SageMaker 체크포인트 구성은 여러 인스턴스의 체크포인트에 태그를 지정하기 위해 추가 접미사나 접두사 없이 단일 Amazon S3 위치를 지정합니다.

  • SageMaker Python SDK는 체크포인트 빈도에 대한 고수준 구성을 지원하지 않습니다. 체크포인트 지정 빈도를 제어하려면 프레임워크의 모델 저장 함수 또는 체크포인트 콜백을 사용하여 훈련 스크립트를 수정하세요.

  • SageMaker Debugger 및 SageMaker Distributed와 함께 SageMaker 체크포인트를 사용하다가 문제가 발생하는 경우 문제 해결 및 고려 사항은 다음 페이지를 참조하십시오.