기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon SageMaker Debugger 참조
다음 주제에서 Amazon SageMaker Debugger 사용에 대한 자세한 정보와 참조를 확인하세요.
주제
Amazon SageMaker 디버거 APIs
Amazon SageMaker Debugger는 모델 훈련의 모니터링 및 분석을 구현하는 데 사용되는 여러 위치에 API 작업을 보유하고 있습니다.
또한 Amazon SageMaker Debugger는 기본 제공 규칙을 구성하고, 사용자 지정 규칙을 정의하고, 후크를 등록하여 훈련 작업에서 출력 텐서 데이터를 수집하는 데 사용되는 오픈 소스 sagemaker-debugger
PythonSDK
Amazon SageMaker PythonSDKSMDebug
Python 라이브러리로 정의된 내장 또는 사용자 지정 규칙을 배포하여 SageMaker 추정기를 사용하여 이러한 텐서를 모니터링하고 분석할 SDK 수 있습니다.
Debugger는 모델을 훈련할 때 플랫폼이 Debugger를 사용하고 입력 및 출력 구성을 관리할 수 있도록 Amazon SageMaker API에 작업 및 유형을 추가했습니다.
-
CreateTrainingJob
및 는 다음 DebuggerAPIs를UpdateTrainingJob
사용하여 텐서 컬렉션, 규칙, 규칙 이미지 및 프로파일링 옵션을 구성합니다. -
DescribeTrainingJob
은 다음과 같은 Debugger 구성 및 규칙 평가 상태를 포함하여 훈련 작업에 대한 전체 설명을 제공합니다.
규칙 구성 API 작업은 모델 훈련을 분석할 때 SageMaker 처리 기능을 사용합니다. SageMaker 처리에 대한 자세한 내용은 섹션을 참조하세요 SageMaker 프로세싱을 통한 데이터 변환 워크로드.
Debugger 규칙용 도커 이미지
Amazon SageMaker 은 규칙을 위한 Docker 이미지 세트 2개를 제공합니다. 하나는 SageMaker (기본 제공 규칙)에서 제공하는 규칙을 평가하기 위한 세트이고 다른 하나는 Python 소스 파일에 제공되는 사용자 지정 규칙을 평가하기 위한 세트입니다.
Amazon SageMaker Python SDKConfigureTrainingJob
API.
SageMaker Python 을 사용하지 않는 경우 Debugger 규칙에 대해 미리 빌드된 관련 컨테이너 기본 이미지를 검색SDK해야 합니다. Amazon SageMaker Debugger는 기본 제공 및 사용자 지정 규칙을 위해 사전 구축된 Docker 이미지를 제공하며, 이미지는 Amazon Elastic Container Registry(Amazon)에 저장됩니다ECR. Amazon ECR리포지토리에서 이미지를 가져오려면(또는 이미지를 하나로 푸시하려면) CreateTrainingJob
를 사용하여 이미지URL의 전체 이름 레지스트리를 사용합니다API. 는 Debugger 규칙 컨테이너 이미지 레지스트리 주소에 다음 URL 패턴을 SageMaker 사용합니다.
<account_id>.dkr.ecr.<Region>.amazonaws.com/<ECR repository name>:<tag>
각 AWS 리전의 계정 ID, Amazon ECR리포지토리 이름 및 태그 값은 다음 주제를 참조하세요.
주제
기본 제공 규칙 평가자URIs를 위한 Amazon SageMaker Debugger 이미지
Amazon SageMaker Debugger에 기본 제공 규칙을 제공하는 이미지의 레지스트리 구성 요소에 URLs 다음 값을 사용합니다. 계정 은 다음 표를 IDs참조하세요.
ECR 리포지토리 이름: sagemaker-debugger-rules
태그: 최신
전체 레지스트리의 예URL:
904829902805.dkr.ecr.ap-south-1.amazonaws.com/sagemaker-debugger-rules:latest
AWS 리전별 기본 제공 규칙 컨테이너 이미지 IDs 계정
리전 | account_id |
---|---|
af-south-1 |
314341159256 |
ap-east-1 |
199566480951 |
ap-northeast-1 |
430734990657 |
ap-northeast-2 |
578805364391 |
ap-south-1 |
904829902805 |
ap-southeast-1 |
972752614525 |
ap-southeast-2 |
184798709955 |
ca-central-1 |
519511493484 |
cn-north-1 |
618459771430 |
cn-northwest-1 |
658757709296 |
eu-central-1 |
482524230118 |
eu-north-1 |
314864569078 |
eu-south-1 |
563282790590 |
eu-west-1 |
929884845733 |
eu-west-2 |
250201462417 |
eu-west-3 |
447278800020 |
me-south-1 |
986000313247 |
sa-east-1 |
818342061345 |
us-east-1 |
503895931360 |
us-east-2 |
915447279597 |
us-west-1 |
685455198987 |
us-west-2 |
895741380848 |
us-gov-west-1 |
515509971035 |
사용자 지정 규칙 평가자URIs를 위한 Amazon SageMaker Debugger 이미지
Amazon SageMaker Debugger에 대한 사용자 지정 규칙 평가자를 제공하는 URL 이미지의 레지스트리 구성 요소에 다음 값을 사용합니다. 계정 은 다음 표를 IDs참조하세요.
ECR 리포지토리 이름: sagemaker-debugger-rule-evaluator
태그: 최신
전체 레지스트리의 예URL:
552407032007.dkr.ecr.ap-south-1.amazonaws.com/sagemaker-debugger-rule-evaluator:latest
AWS 리전별 사용자 지정 규칙 컨테이너 이미지 IDs 계정
리전 | account_id |
---|---|
af-south-1 |
515950693465 |
ap-east-1 |
645844755771 |
ap-northeast-1 |
670969264625 |
ap-northeast-2 |
326368420253 |
ap-south-1 |
552407032007 |
ap-southeast-1 |
631532610101 |
ap-southeast-2 |
445670767460 |
ca-central-1 |
105842248657 |
cn-north-1 |
617202126805 |
cn-northwest-1 |
658559488188 |
eu-central-1 |
691764027602 |
eu-north-1 |
091235270104 |
eu-south-1 |
335033873580 |
eu-west-1 |
606966180310 |
eu-west-2 |
074613877050 |
eu-west-3 |
224335253976 |
me-south-1 |
050406412588 |
sa-east-1 |
466516958431 |
us-east-1 |
864354269164 |
us-east-2 |
840043622174 |
us-west-1 |
952348334681 |
us-west-2 |
759209512951 |
us-gov-west-1 |
515361955729 |
Amazon SageMaker Debugger 예외
Amazon SageMaker Debugger는 규칙을 실행하는 데 필요한 텐서를 모든 단계에서 사용하지 못할 수 있음을 인식하도록 설계되었습니다. 따라서 텐서가 누락 될 때 발생하는 일을 제어할 수 있도록 몇 가지 예외를 발생시킵니다. 이들은 smdebug.exception 모듈
from smdebug.exceptions import *
다음과 같은 예외를 사용할 수 있습니다.
-
TensorUnavailableForStep
– 요청된 텐서를 해당 단계에 사용할 수 없습니다. 이는 이 단계가 후크에 의해 전혀 저장되지 않을 수도 있거나 이 단계가 일부 텐서를 저장했을 수도 있지만 요청된 텐서가 그 일부가 아님을 의미할 수 있습니다. 이 예외가 표시된다는 것은 이 텐서는 향후 이 단계에서 사용할 수 없게 된다는 의미입니다. 텐서는 해당 단계에 대해 저장된 감소가 있으면 쿼리가 가능함을 사용자에게 알립니다. -
TensorUnavailable
- 이 텐서는 저장되지 않거나smdebug
에서 저장되지 않았습니다API. 즉, 이 텐서는smdebug
의 어떤 단계에서도 표시되지 않습니다. -
StepUnavailable
– 단계가 저장되지 않았으며 Debugger에는 해당 단계의 데이터가 없습니다. -
StepNotYetAvailable
– 단계가smdebug
에서 아직 표시되지 않았습니다. 훈련이 아직 진행 중이라면 나중에 사용할 수 있을 것입니다. Debugger는 사용 가능해지면 바로 새 데이터를 자동으로 로드합니다. -
NoMoreData
– 훈련이 끝날 때 발생합니다. 이러한 예외가 발생하면 저장할 단계와 텐서가 더 이상 없다는 것을 알 수 있습니다. -
IndexReaderException
– 인덱스 판독기가 유효하지 않습니다. -
InvalidWorker
– 유효하지 않은 작업자가 호출되었습니다. -
RuleEvaluationConditionMet
– 해당 단계에서 규칙을 평가하면 조건이 충족됩니다. -
InsufficientInformationForRuleInvocation
– 규칙을 호출하기 제공된 정보가 부족합니다.
Amazon SageMaker Debugger에서 지원하는 분산 훈련
다음 목록은 딥 러닝 프레임워크와 다양한 분산형 훈련 옵션을 갖춘 훈련 작업에서 Debugger를 사용하기 위한 유효성 범위와 고려 사항을 보여줍니다.
-
Horovod
Horovod를 사용한 훈련 작업에 Debugger를 사용할 때의 유효성 범위
딥 러닝 프레임워크 Apache MXNet TensorFlow 1.x TensorFlow 2.x TensorFlow Keras를 사용한 2.x PyTorch 모니터링 시스템 병목 현상 예 예 예 예 예 프레임워크 작업 프로파일링 아니요 아니요 아니요 예 예 모델 출력 텐서 디버깅 예 예 예 예 예 -
SageMaker 분산 데이터 병렬
SageMaker 분산 데이터가 병렬인 훈련 작업에 Debugger를 사용하는 것의 유효성 범위
딥 러닝 프레임워크 TensorFlow 2.x TensorFlow Keras를 사용한 2.x PyTorch 모니터링 시스템 병목 현상 예 예 예 프레임워크 작업 프로파일링 아니요* 아니요** 예 모델 출력 텐서 디버깅 예 예 예 * 디버거는 TensorFlow 2.x에 대한 프레임워크 프로파일링을 지원하지 않습니다.
** SageMaker 분산된 데이터 병렬은 Keras 구현에서 TensorFlow 2.x를 지원하지 않습니다.
-
SageMaker 분산 모델 병렬 - Debugger는 SageMaker 분산 모델 병렬 훈련을 지원하지 않습니다.
-
SageMaker 체크포인트가 있는 분산 훈련 - 분산 훈련 옵션과 체크 SageMaker 포인트가 모두 활성화된 경우 훈련 작업에 디버거를 사용할 수 없습니다. 다음과 같은 오류를 볼 수 있습니다.
SMDebug Does Not Currently Support Distributed Training Jobs With Checkpointing Enabled
분산 훈련 옵션이 있는 훈련 작업에 Debugger를 사용하려면 SageMaker 체크포인트 기능을 비활성화하고 훈련 스크립트에 수동 체크포인트 기능을 추가해야 합니다. 분산형 훈련 옵션 및 체크포인트와 함께 Debugger를 사용하는 방법에 대한 자세한 내용은 Amazon SageMaker 디버거 및 체크포인트와 함께 SageMaker 분산 데이터 병렬로 사용 및 체크포인트 저장을 참조하세요.
-
파라미터 서버 - Debugger는 파라미터 서버 기반 분산형 훈련을 지원하지 않습니다.
-
분산 데이터 병렬 작업 및 Horovod 작업과 같은
AllReduced
SageMaker 분산 훈련 프레임워크 작업 프로파일링은 사용할 수 없습니다. https://horovod.readthedocs.io/en/stable/timeline_include.html