SageMaker 트레이닝 컴파일러 FAQ - Amazon SageMaker

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

SageMaker 트레이닝 컴파일러 FAQ

중요

Amazon Web Services (AWS) 는 SageMaker 트레이닝 컴파일러의 새 릴리스나 버전이 없을 것이라고 발표했습니다. 기존 AWS Deep Learning Containers (DLCs) 를 통해 계속해서 SageMaker 트레이닝용 SageMaker 컴파일러를 활용할 수 있습니다. AWS Deep Learning Containers Framework 지원 정책에 따라 기존 버전은 DLCs 계속 액세스할 수 있지만 더 이상 패치나 업데이트를 받을 수 없다는 점에 유의하십시오. AWS

다음 FAQ 항목을 사용하여 SageMaker 트레이닝 컴파일러에 대해 자주 묻는 질문에 대한 답변을 찾아보십시오.

Q: SageMaker 트레이닝 컴파일러가 작동하는지 어떻게 알 수 있습니까?

트레이닝 컴파일러로 SageMaker 교육 작업을 성공적으로 시작한 경우 다음과 같은 로그 메시지를 받게 됩니다.

  • 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

Q: SageMaker 트레이닝 컴파일러는 어떤 모델을 가속화합니까?

SageMaker 트레이닝 컴파일러는 Hugging Face 트랜스포머 라이브러리에서 가장 많이 사용되는 딥 러닝 모델을 지원합니다. 컴파일러가 지원하는 대부분의 연산자를 사용하면 Training Compiler를 사용하여 이러한 모델을 더 빠르게 학습할 수 있습니다. SageMaker 컴파일 가능한 모델에는 bert-base-cased, bert-base-chinese, bert-base-uncased, distilbert-base-uncased, distilbert-base-uncased-finetuned-sst-2-english, gpt2, roberta-base, roberta-large, t5-base, xlm-roberta-base 등이 포함되며 이에 국한되지 않습니다. 컴파일러는 대부분의 DL 연산자 및 데이터 구조에서 작동하며 테스트된 모델 이상으로 다른 많은 DL 모델을 가속화할 수 있습니다.

Q: 테스트되지 않은 모델로 SageMaker 트레이닝 컴파일러를 활성화하면 어떻게 됩니까?

테스트되지 않은 모델의 경우 먼저 트레이닝 컴파일러와 SageMaker 호환되도록 훈련 스크립트를 수정해야 할 수 있습니다. 자세한 내용은 자체 딥 러닝 모델 사용에서 훈련 스크립트 준비 방법에 대한 지침을 참조하고 따르세요.

훈련 스크립트를 업데이트한 후에 훈련 작업을 시작할 수 있습니다. 컴파일러는 모델 컴파일을 진행합니다. 그러나 테스트되지 않은 모델의 경우 훈련 속도가 기준에 비해 증가하지 않을 수 있으며 오히려 감소할 수도 있습니다. 속도 향상의 이점을 얻으려면 batch_sizelearning_rate와(과) 같은 훈련 파라미터를 다시 조정해야 할 수도 있습니다.

테스트되지 않은 모델의 컴파일이 실패하면 컴파일러에서 오류가 반환됩니다. 실패 유형 및 오류 메시지에 대한 자세한 내용은 SageMaker 교육 컴파일러 문제 해결을(를) 참조하세요.

Q: 트레이닝 컴파일러를 사용하면 항상 더 빠르게 훈련 작업을 수행할 수 있습니까? SageMaker

반드시 그렇지는 않습니다. 먼저, SageMaker 트레이닝 컴파일러는 진행 중인 교육 프로세스를 가속화하기 전에 약간의 컴파일 오버헤드를 추가합니다. 최적화된 훈련 작업은 훈련 작업 초기에 증가한 컴파일 오버헤드를 상쇄하고 이를 보충할 수 있을 만큼 충분히 오래 실행되어야 합니다.

또한 다른 모델 학습 프로세스와 마찬가지로 최적이 아닌 파라미터를 사용하여 훈련하면 학습 시간이 늘어날 수 있습니다. SageMaker 트레이닝 컴파일러는 예를 들어 작업의 메모리 사용량을 변경하는 등 교육 작업의 특성을 변경할 수 있습니다. 이러한 차이로 인해 훈련 속도를 높이려면 훈련 작업 파라미터를 다시 조정해야 할 수 있습니다. 다양한 인스턴스 유형과 모델을 사용하는 훈련 작업에 가장 적합한 파라미터를 지정하는 참조 테이블은 테스트 완료 모델에서 찾을 수 있습니다.

마지막으로, 훈련 스크립트의 일부 코드는 오버헤드를 증가시키거나 컴파일된 계산 그래프를 방해하여 훈련 속도를 늦출 수 있습니다. 사용자 지정된 모델이나 테스트되지 않은 모델로 작업하는 경우 /XLA와 함께 훈련 컴파일러를 사용하는 모범 사례 SageMaker PyTorch의 지침을 참조하세요.

Q: 트레이닝 컴파일러에서 항상 더 큰 배치 크기를 사용할 수 있습니까? SageMaker

항상은 아니지만 대부분의 경우 배치 크기가 증가합니다. SageMaker 트레이닝 컴파일러에서 수행한 최적화는 메모리 사용량과 같은 훈련 작업의 특성을 변경할 수 있습니다. 일반적으로 훈련 컴파일러 작업은 네이티브 프레임워크를 사용하는 컴파일되지 않은 훈련 작업보다 메모리를 적게 차지하므로 훈련 중에 배치 크기가 더 커질 수 있습니다. 배치 크기를 늘리고 이에 따라 학습률을 조정하면 훈련 처리량이 증가하고 총 훈련 시간이 줄어들 수 있습니다.

하지만 SageMaker 트레이닝 컴파일러가 최적화 체계에 따라 실제로 메모리 사용량을 늘릴 수 있는 경우가 있을 수 있습니다. 컴파일러는 분석 비용 모델을 사용하여 컴퓨팅 집약적인 연산자의 실행 비용이 가장 낮은 실행 일정을 예측합니다. 이 모델은 메모리 사용을 늘리는 최적의 일정을 찾을 수 있습니다. 이 경우 배치 크기를 늘릴 수는 없겠지만 샘플 처리량은 여전히 더 높을 것입니다.

Q: SageMaker 트레이닝 컴파일러는 SageMaker 분산 교육 라이브러리 및 디버거 같은 다른 SageMaker 교육 기능과 함께 작동합니까? SageMaker

SageMaker 교육 컴파일러는 현재 SageMaker 의 분산 교육 라이브러리와 호환되지 않습니다.

SageMaker 교육 컴파일러는 디버거와 호환되지만 SageMaker 디버거에 오버헤드가 추가되어 계산 성능이 저하될 수 있습니다.

Q: SageMaker 트레이닝 컴파일러는 사용자 지정 컨테이너 (자체 컨테이너 사용) 를 지원합니까?

SageMaker 교육 컴파일러는 AWS Deep Learning Containers를 통해 제공되며, 컨테이너의 하위 집합을 확장하여 사용 사례에 맞게 사용자 지정할 수 있습니다. 에서 확장된 컨테이너는 트레이닝 컴파일러에서 AWS DLCs 지원됩니다. SageMaker 자세한 내용은 지원되는 프레임워크 SageMaker Python SDK 및 확장 SageMaker 프레임워크 딥 러닝 컨테이너 사용을(를) 참조하세요. 추가 지원이 필요한 경우 Support 또는 Amazon AWS 개발자 포럼을 통해 SageMaker AWS 팀에 SageMaker 문의하세요.