기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
TensorFlow 교육 컴파일러로 SageMaker 교육 작업 실행
교육 컴파일러에서는 Amazon SageMaker Studio Classic, Amazon SageMaker 노트북 인스턴스 등 모든 SageMaker 인터페이스를 사용하여 SageMaker 교육 작업을 실행할 수 있습니다. AWS SDK for Python (Boto3) AWS Command Line Interface
주제
SageMaker Python SDK 사용하기
SageMaker 트레이닝 컴파일러를 켜려면 SageMaker TensorFlow 또는 Hugging compiler_config
Face 추정기에 파라미터를 추가하십시오. TrainingCompilerConfig
클래스를 가져와서 이 클래스의 인스턴스를 compiler_config
매개변수에 전달합니다. 다음 코드 예제는 트레이닝 컴파일러가 켜진 상태에서의 SageMaker 추정기 클래스 구조를 보여줍니다. SageMaker
작은 정보
TensorFlow 및 Transformer 라이브러리에서 제공하는 사전 빌드된 모델을 시작하려면 의 참조 표에 나와 있는 배치 크기를 사용해 보십시오. 테스트 완료 모델
참고
SageMaker 훈련 컴파일러는 SageMaker TensorFlow
사용 사례에 맞는 정보는 다음 옵션 중 하나를 참고하십시오.
다음 목록은 컴파일러로 SageMaker 훈련 작업을 실행하는 데 필요한 최소 매개 변수 집합입니다.
참고
SageMaker Hugging Face 추정기를 사용할 때는,,, 매개변수를 지정하여 transformers_version
SageMaker 트레이닝 tensorflow_version
hyperparameters
컴파일러를 compiler_config
활성화해야 합니다. image_uri
은(는) 지원되는 프레임워크에 나열된 Training Compiler 통합 딥 러닝 컨테이너를 수동으로 지정하는 데 사용할 수 없습니다.
-
entry_point
(str) - 필수 사항. 훈련 스크립트의 파일 이름을 지정하십시오. -
instance_count
(int) — 필수. 인스턴스 수를 지정하세요. -
instance_type
(str) - 필수 사항. 인스턴스 유형을 지정하세요. -
transformers_version
(str) — SageMaker Hugging Face 추정기를 사용할 때만 필요합니다. 트레이닝 컴파일러에서 SageMaker 지원하는 Hugging Face Transformer 라이브러리 버전을 지정하십시오. 사용 가능한 버전을 확인하려면 지원되는 프레임워크을(를) 참조하세요. -
framework_version
또는tensorflow_version
(str) - 필수 사항. 트레이닝 컴파일러에서 지원하는 TensorFlow SageMaker 버전을 지정하십시오. 사용 가능한 버전을 확인하려면 지원되는 프레임워크을(를) 참조하세요.참고
SageMaker TensorFlow 추정기를 사용할 때는 다음을 지정해야 합니다.
framework_version
SageMaker Hugging Face 추정기를 사용할 때는 및 를 모두 지정해야 합니다.
transformers_version
tensorflow_version
-
hyperparameters
(dict) - 선택 사항. 훈련 작업에 사용할 하이퍼파라미터(예:n_gpus
,batch_size
,learning_rate
)를 지정하세요. SageMaker 트레이닝 컴파일러를 활성화할 때는 배치 크기를 늘리고 그에 따라 학습률을 조정하세요. 컴파일러를 사용하고 배치 크기를 조정하여 훈련 속도를 향상시킨 사례 연구를 확인하려면 테스트 완료 모델 및 SageMaker 교육 컴파일러 예제 노트북 및 블로그을(를) 참조하세요. -
compiler_config
(TrainingCompilerConfig 객체) — 필수. SageMaker 트레이닝 컴파일러를 켜려면 이 파라미터를 포함하세요. 다음은TrainingCompilerConfig
클래스의 매개변수입니다.-
enabled
(bool) — 선택 사항. SageMaker 트레이닝 컴파일러를 켜거나False
끄도록 지정합니다True
. 기본 값은True
입니다. -
debug
(bool) — 선택 사항. 컴파일러 가속 훈련 작업에서 더 자세한 훈련 로그를 받으려면True
로 변경하십시오. 하지만, 추가 로깅으로 인해 오버헤드가 추가되어 컴파일된 훈련 작업이 느려질 수 있습니다. 기본 값은False
입니다.
-
주의
SageMaker 디버거를 켜면 SageMaker 트레이닝 컴파일러의 성능에 영향을 미칠 수 있습니다. 성능에 영향을 주지 않도록 SageMaker 트레이닝 컴파일러를 실행할 때는 디버거를 끄는 것이 좋습니다. 자세한 설명은 고려 사항 섹션을 참조하세요. 디버거 기능을 끄려면 다음 두 인수를 예측기에 추가하십시오.
disable_profiler=True, debugger_hook_config=False
컴파일러를 사용한 훈련 작업이 성공적으로 시작되면, 작업 초기화 단계에서 다음과 같은 로그를 받게 됩니다.
-
TrainingCompilerConfig(debug=False)
포함Found configuration for Training Compiler Configuring SM Training Compiler...
-
TrainingCompilerConfig(debug=True)
포함Found configuration for Training Compiler Configuring SM Training Compiler... Training Compiler set to debug mode
SageMaker Python SDK 및 확장 SageMaker 프레임워크 딥 러닝 컨테이너 사용
AWS Deep Learning Containers (DLC) 는 오픈 소스 TensorFlow 프레임워크 상에서의 변경 사항을 TensorFlow 포함하는 개조된 버전을 TensorFlow 사용하기 위한 것입니다. SageMaker 프레임워크 Deep Learning 컨테이너는
참고
이 Docker 사용자 지정 기능은 현재 에서만 사용할 수 있습니다. TensorFlow
사용 사례에 맞게 SageMaker TensorFlow DLC를 확장하고 사용자 지정하려면 다음 지침을 사용하세요.
Dockerfile 생성
다음 Dockerfile 템플릿을 사용하여 DLC를 확장하세요. SageMaker TensorFlow SageMaker TensorFlow DLC 이미지를 Docker 컨테이너의 기본 이미지로 사용해야 합니다. SageMaker TensorFlow DLC 이미지 URI를 찾으려면 지원되는 프레임워크를 참조하십시오.
# SageMaker TensorFlow Deep Learning Container image FROM 763104351884.dkr.ecr.
<aws-region>
.amazonaws.com/tensorflow-training:<image-tag>
ENV PATH="/opt/ml/code:${PATH}" # This environment variable is used by the SageMaker container # to determine user code directory. ENV SAGEMAKER_SUBMIT_DIRECTORY /opt/ml/code # Add more code lines to customize for your use-case ...
자세한 내용은 2단계: Dockerfile 및 Python 훈련 스크립트 생성 및 업로드를 참고하십시오.
프레임워크 DLC를 확장할 때는 다음과 같은 함정을 고려하십시오. SageMaker
-
컨테이너에 있는 패키지의 버전을 명시적으로 제거하거나 변경하지 마십시오. TensorFlow SageMaker 이렇게 하면 AWS 최적화된 TensorFlow 패키지가 오픈 소스 TensorFlow 패키지로 덮어쓰여져 성능이 저하될 수 있습니다.
-
종속 항목으로 특정 TensorFlow 버전이나 버전이 있는 패키지를 주의하세요. 이러한 패키지는 AWS 최적화된 패키지를 암시적으로 제거하고 오픈 소스 패키지를 설치할 수 TensorFlow 있습니다. TensorFlow
예를 들어, tensorflow/models 및 tensorflow/텍스트tensorflow/training/docker/<tensorflow-version>/py3/<cuda-version>/Dockerfile.gpu
)입니다. Dockerfile에서 AWS 관리되는 TensorFlow 바이너리 (환경 변수에 지정됨) 및 기타 종속 항목을 순서대로 재설치하기 위한 코드 라인을 찾아야 합니다. TF_URL
재설치 섹션은 다음 예제와 같아야 합니다.
# tf-models does not respect existing installations of TensorFlow # and always installs open source TensorFlow RUN pip3 install --no-cache-dir -U \ tf-models-official==
x.y.z
RUN pip3 uninstall -y tensorflow tensorflow-gpu \ ; pip3 install --no-cache-dir -U \ ${TF_URL} \ tensorflow-io==x.y.z
\ tensorflow-datasets==x.y.z
구축하고 ECR로 푸시
Docker 컨테이너를 빌드하고 Amazon ECR에 푸시하려면, 다음 링크의 지침을 따르십시오.
SageMaker Python SDK 추정기를 사용하여 실행하기
평소와 같이 SageMaker TensorFlow 프레임워크 추정기를 사용하세요. Amazon ECR에서 호스팅한 새 컨테이너를 사용하도록 image_uri
를 지정해야 합니다.
import sagemaker, boto3 from sagemaker import get_execution_role from sagemaker.tensorflow import TensorFlow, TrainingCompilerConfig account_id = boto3.client('sts').get_caller_identity().get('Account') ecr_repository =
'tf-custom-container-test'
tag =':latest'
region = boto3.session.Session().region_name uri_suffix = 'amazonaws.com' byoc_image_uri = '{}.dkr.ecr.{}.{}/{}'.format( account_id, region, uri_suffix, ecr_repository + tag ) byoc_image_uri # This should return something like # 111122223333.dkr.ecr.us-east-2.amazonaws.com/tf-custom-container-test:latest estimator = TensorFlow( image_uri=image_uri, role=get_execution_role(), base_job_name='tf-custom-container-test-job
', instance_count=1, instance_type='ml.p3.8xlarge
' compiler_config=TrainingCompilerConfig(), disable_profiler=True, debugger_hook_config=False ) # Start training estimator.fit()
API 작업을 사용하여 SageMaker 훈련 컴파일러를 활성화합니다. SageMaker CreateTrainingJob
SageMaker 교육 컴파일러 구성 옵션은 CreateTrainingJob
APIAlgorithmSpecification
및 HyperParameters
필드를 통해 지정해야 합니다.
"AlgorithmSpecification": { "TrainingImage": "
<sagemaker-training-compiler-enabled-dlc-image>
" }, "HyperParameters": { "sagemaker_training_compiler_enabled": "true", "sagemaker_training_compiler_debug_mode": "false" }
SageMaker 트레이닝 컴파일러가 구현된 딥러닝 컨테이너 이미지 URI의 전체 목록을 찾으려면 을 참조하십시오. 지원되는 프레임워크