Amazon Web Services 한국 블로그
Amazon SageMaker – 관리형 스팟 모델 학습 기능으로 비용 절감하기
Amazon SageMaker는 완전 관리형 기계 학습(ML) 서비스로서, 개발자와 데이터 과학자는 이를 통해 모든 규모의 모델을 쉽게 빌드하고 학습하며 배포할 수 있습니다. 내장 알고리즘 혹은 자체 알고리즘을 사용하거나, AWS Marketplace에서 사용 가능한 알고리즘 중에서 선택할 수 있어 ML 모델을 실험 단계부터 스케일아웃 프로덕션에 이르기까지 훨씬 쉽고 빠르게 진행할 수 있습니다.
주요 이점 중 하나는 작업 규모에 관계없이 인프라 관리가 필요하지 않다는 것입니다. 예를 들어 복잡한 학습 클러스터를 설정 및 관리하는 대신 Amazon SageMaker에 사용할 Amazon Elastic Compute Cloud(EC2) 인스턴스 유형과 필요한 수량을 알려 주기만 하면 적절한 인스턴스가 온디맨드로 생성되고 구성되며 학습 작업이 완료되면 자동으로 종료됩니다. 고객이 이해한 것처럼, 이는 비용을 통제할 수 있는 간단한 방법인 유휴 학습 인스턴스에 대해 비용을 지불하지 않음을 의미합니다.
Managed Spot Training 신규 기능 소개
한 걸음 더 나아가 Amazon EC2 스팟 인스턴스를 기반으로 하는 새로운 기능인 Amazon SageMaker의 Managed Spot Training을 발표하였습니다. 이제 Amazon SageMaker의 온디맨드 인스턴스를 사용할 때보다 ML 학습 비용을 90%까지 절감할 수 있습니다. 10여년 전에 출시된 스팟 인스턴스 구매 옵션은 AWS에서 확장 가능하고 비용 최적화된 IT 플랫폼을 구축하기 위한 토대를 형성했습니다. 이제 Amazon SageMaker 학습 작업은 완전 관리형 인프라에서 실행될 뿐만 아니라 완전 관리형 비용 최적화의 이점을 활용하여 동일한 예산으로 훨씬 더 많은 성과를 달성할 수 있도록 해줍니다. 이제 좀 더 구체적으로 살펴보겠습니다.
Managed Spot Training은 모든 기계 학습 과정에서 사용 가능합니다.
- Amazon SageMaker가 지원하는 모든 인스턴스 유형
- ML 모델: 내장 알고리즘, 내장 프레임워크 및 사용자 지정 모델
- ML 구성: 단일 인스턴스 학습, 분산 학습 및 자동 모델 튜닝
완전 관리형 서비스를 이용할 때와 같이 설정하는 것은 매우 간단합니다.
- 콘솔을 사용할 때는 기능을 켜기만 하면 됩니다.
- Amazon SageMaker SDK를 이용할 때는
Estimator
생성자에서train_use_spot_instances
를true
로 설정하기만 하면 됩니다.
이게 전부이며 이렇게 하면 90%까지 비용을 절약할 수 있습니다.
서버 회수 알림에 대한 처리
Managed Spot Training을 이용할 때는 중요한 차이점이 있습니다. 학습 작업이 완료될 때까지 사용할 수 있는 온디맨드 학습 인스턴스와는 달리 Managed Spot Training 인스턴스는 스팟 구매 옵션에 따라 사용중이던 컴퓨팅 용량이 언제든지 회수될 수 있습니다.
Amazon EC2 스팟 인스턴스를 사용할 때는 종료 알림을 2분 먼저 받게 되므로 직접 적절한 조치를 취해야 합니다. 하지만, 학습 작업을 잠깐 중단하고, 적절한 스팟 용량을 다시 확보한 후 학습 작업을 재개하는 프로세스를 자동으로 처리합니다. 이는 Managed Spot Training은 작업 시작 시간 및 작업 기간이 유동적일 때 특히 유용합니다. MaxWaitTimeInSeconds
파라미터를 사용하여 학습 작업의 총 기간(실제 학습 시간+대기 시간)을 제어할 수도 있습니다.
만약 학습 작업이 중단된 경우, 처음부터 다시 시작하는 상황을 방지하려면 모델을 정기적으로 학습에 저장하는 방법인 체크포인트를 구현하는 것이 좋습니다. 이를 통해 적절히 정의된 시점부터, 부분적으로 학습된 가장 최근의 모델에 이어 계속해서 학습 작업을 재개할 수 있습니다.
- 내장 프레임워크 및 사용자 지정 모델: 학습 코드를 완벽하게 제어할 수 있습니다. 적절한 API와 함께
CheckpointConfig
파라미터에 정의하고 SageMakerEstimator
에 전달한 위치를 사용하여 모델 체크포인트를 Amazon Simple Storage Service(S3)에 정기적으로 저장하기만 하면 됩니다. TensorFlow는 기본적으로 체크포인트를 사용합니다. 다른 프레임워크에 대한 예는 샘플 노트북 및 설명서에서 찾을 수 있습니다. - 내장 알고리즘: 컴퓨터 비전 알고리즘은 체크포인트(Object Detection, Semantic Segmentation 및 곧 제공될 Image Classification)를 지원합니다. 이러한 알고리즘은 대규모 데이터 세트를 학습하고 다른 알고리즘보다 실행 시간이 길기 때문에 중단될 가능성이 더 높습니다. 현재 다른 내장 알고리즘은 체크포인트를 지원하지 않습니다.
이것으로 설명을 마치고 빠른 데모를 살펴보겠습니다.
Managed Spot Training을 통한 모델 학습하기
스팟을 통한 학습을 테스트해 보기 위해 샘플 노트북을 온디맨드 학습 대신 Managed Spot Training으로 동일한 작업을 학습하겠습니다. 앞에서 설명한 것처럼 다음 두 작업만 수행하면 됩니다.
- Managed Spot Training 활성화
-
MaxWaitTimeInSeconds
설정
먼저 학습 작업의 이름을 지정하고 작업에 적절한 AWS Identity and Access Management(IAM) 권한이 있는지 확인하겠습니다.
그런 다음 객체 감지를 위한 내장 알고리즘을 선택합니다.
그런 다음 학습 작업의 인스턴스 개수 및 인스턴스 유형을 선택하고 체크포인트용 스토리지가 충분한지 확인합니다.
다음 단계는 하이퍼 파라미터를 설정하는 것입니다. 노트북과 동일한 파라미터를 사용합니다. 그런 다음 학습 데이터 세트의 위치와 속성을 정의합니다.
검증 데이터 세트에 대해서도 동일한 작업을 수행합니다.
또한 모델 체크포인트를 저장할 위치를 정의합니다. 학습 작업이 중단된 경우 이를 재개하기 위해 Amazon SageMaker가 모델 체크포인트를 선택하는 위치입니다.
최종 모델 결과물(아티팩트)가 저장될 위치입니다.
최대 대기 시간을 여유 있게 48시간으로 구성하여 Managed Spot Training을 활성화하는 위치입니다.
완료되었으므로 이 모델을 학습해 보겠습니다. 학습이 완료되면 콘솔에 비용 절감 효과가 명확하게 나타납니다.
보시다시피 학습 작업이 2,423초 동안 실행되었지만 837초 동안에 대해서만 요금이 청구되므로 Managed Spot Training 덕분에 65%가 절감되었습니다. 이 주제에 대해 알아보면서 요금 작동 원리에 대해 설명하겠습니다.
Managed Spot 학습 작업은 완료되기 전까지 또는 종료되기 전까지 실행된 기간에 대해서만 요금이 부과됩니다. 체크포인트를 사용하지 않는 내장 알고리즘 및 AWS Marketplace 알고리즘의 경우 최대 학습 시간으로 60분을 적용하고 있습니다(MaxWaitTimeInSeconds
파라미터).
마지막으로, 학습 작업을 다시 시작하거나 재개하는 횟수에 관계없이 데이터 다운로드 시간에 대해 요금이 한 번만 부과됩니다.
정식 출시
이 기능은 Amazon SageMaker가 제공되는 서울 리전을 비롯 모든 리전에서 사용할 수 있으므로 지금 바로 비용을 절감해 보십시오. 여러분의 피드백은 언제든 환영합니다. AWS 포럼에 Amazon SageMaker에 대한 의견을 게시하거나 평소 이용하는 AWS 연락처로 보내주시기 바랍니다.
— Julien