Amazon SageMaker에서 학습

Amazon SageMaker는 모델을 튜닝 및 디버그하고 학습 실험을 실행하는 데 필요한 모든 기능을 제공하여 ML(기계 학습) 모델을 쉽게 학습할 수 있습니다.

기능

실험 관리 및 추적

기계 학습은 지속적인 실험(예: 새 학습 알고리즘 시도 또는 알고리즘의 하이퍼파라미터 조정)에 기반한 반복 프로세스로, 동시에 모델 성능 및 정확성에서 이러한 증분식 변경이 미치는 영향을 관찰할 수 있습니다. 시간이 지남에 따라 이러한 데이터는 폭발적으로 증가하여 실험 과정 중에 학습한 최상의 수행 모델, 관찰 내용 및 학습한 내용은 물론, 처음 이러한 모델을 생성하는 데 사용된 정확한 구성 요소와 제조법도 추적하기 어려워집니다.

Amazon SageMaker 실험에서는 쉽고 확장 가능한 방식으로 학습 실험을 추적, 평가 및 구성할 수 있습니다. SageMaker 실험은 자세한 Jupyter 통합과 함께 Amazon SageMaker Studio 및 Python SDK에서 제공됩니다.

Amazon SageMaker 실험을 사용하면 수천 개의 학습 실험을 구성하고 실험 아티팩트(예: 데이터 세트, 하이퍼파라미터, 지표)를 로깅하며 실험을 재현할 수 있습니다. SageMaker 실험은 SageMaker Studio에 통합되어 있으므로 모델을 시각화하고 최상의 모델을 쉽고 빠르게 평가할 수 있습니다. 또한 실험이 진행되면 노트 및 코멘트의 실행 로그를 기록하고 유지 관리하며, 실험을 클릭하면 팀 멤버와 손쉽게 공유할 수도 있습니다. SageMaker 실험은 실험의 전체 계통을 유지하므로, 모델이 의도한 결과에서 벗어나기 시작하면 다시 돌아가 해당 아티팩트를 검사할 수 있습니다.

실험

포괄적인 통찰력으로 분석 및 디버그

ML 학습 프로세스에 대한 포괄적인 통찰력과 가시성을 얻기란 쉽지 않습니다. 모델이 파라미터의 올바른 값을 점진적으로 학습하도록 보장하는 쉬운 방법은 없습니다. 예를 들어, 합성곱 신경망을 사용하여 컴퓨터 비전 모델을 학습하는 경우 학습 작업을 실행하는 데 몇 시간이 요구될 수도 있습니다. 그동안 다른 ML 모델 파라미터가 모델 학습에 미치는 영향에 대한 가시성이나 학습 프로세스가 원하는 결과를 생성하는지 여부도 가시적으로 확인할 수 없습니다.

Amazon SageMaker 디버거는 학습 프로세스에 대한 완전한 가시성을 제공합니다. SageMaker 디버거를 사용하면 개발자에게 디버그 데이터를 분석하는 시각적 인터페이스와 함께, 학습 프로세스에서 잠재적 이상 조건에 대한 시각적 표시기를 제공하여 손쉽게 검사를 수행할 수 있습니다.

SageMaker 디버거는 구성 요소 값이 너무 크거나 작아지는 등 일반적으로 발생하는 오류를 자동으로 탐지하고 이를 알립니다. 또한 디버거 SDK를 사용하여 모델에 특정한 오류의 새 클래스를 자동으로 탐지하거나 SageMaker 노트북에서 학습 실행을 대화형으로 분석할 수 있습니다. 그러면 기계 학습 모델에 대한 디버깅 작업을 며칠에서 몇 분 단위로 줄일 수 있습니다. SageMaker 디버거가 수집하는 데이터는 사용자 계정에 보유되므로 개인 정보에 가장 민감한 애플리케이션에서도 사용할 수 있습니다.

SageMaker 디버거는 모델의 실시간 성능 지표를 생성합니다. 여기에는 학습 및 검증 손실(모델의 오류를 나타내며, 가능한 낮아야 함), 혼동 행렬(분류 모델의 경우 거짓 긍정 및 부정 예측과 학습 중 변화하는 방식을 나타냄), 학습 구성 요소(학습 중 모델의 학습 곡선 검토를 통해 부족하거나 상회하는 수준의 모델, 학습 및 검증 데이터 세트가 대표성을 갖추는지 여부와 같은 학습 관련 문제 진단)가 포함됩니다. 이러한 지표는 Amazon SageMaker Studio의 노트북에서 보고 시각화할 수 있습니다.

SageMaker 디버거는 일반적인 학습 문제가 탐지될 때 경고 및 문제 해결 조언도 제공합니다. 예를 들어, 모델이 데이터에서 얻을 수 있는 모든 내용을 학습했지만 향상되지 않고 여전히 학습 중인 경우(시간과 비용이 들어감) SageMaker 디버거는 학습을 종료할 수 있도록 이러한 상황을 조기에 식별할 수 있습니다. 또한 네트워크 가중치가 지속적으로 0으로 설정되는 경우와 같은 일반적인 데이터 검증 문제나 모델에 너무 많은 데이터가 들어가는 경우를 식별할 수도 있습니다.

디버거

원클릭 학습

Amazon SageMaker에서 모델을 쉽게 학습할 수 있습니다. SageMaker에서 학습할 준비가 되면 Amazon S3에서 데이터 위치를 지정하고 필요한 SageMaker ML 인스턴스 유형과 수량을 표시한 다음, 콘솔에서 클릭 한 번으로 시작하면 됩니다. SageMaker는 분산 컴퓨팅 클러스터를 설정하고, 학습을 수행하며, 결과를 Amazon S3로 출력하고, 완료되면 클러스터를 삭제합니다. 

Amazon S3에서 데이터 위치를 지정하면 SageMaker가 알고리즘을 받아 필요에 맞게 구성된 자체 소프트웨어 정의 네트워크 내에 격리된 학습 클러스터에서 알고리즘을 실행합니다. 클라우드에서 가장 강력한 GPU 기반 인스턴스인 Amazon EC2 P3dn을 포함한 인스턴스 유형을 선택하면 SageMaker는 Auto Scaling 그룹에서 클러스터를 생성합니다. 또한 SageMaker는 각 노드에 EBS 볼륨을 연결하고 데이터 파이프라인을 설정하며 TensorFlow, MXNet, Pytorch, Chainer 또는 사용자의 프레임워크 스트립트, 내장된 알고리즘이나 사용자 지정 알고리즘에서 학습을 시작합니다. 작업을 마치면 결과는 S3에 저장되고 클러스터는 자동으로 해체됩니다.

대규모 학습을 쉽게 수행할 수 있도록 AWS는 Amazon S3에서 학습 데이터가 스트리밍되는 방식을 최적화했습니다. API를 통해 알고리즘의 필요에 따라 모든 데이터를 클러스터의 각 노드에 보낼지, 아니면 SageMaker가 노드에서의 데이터 분산을 관리하도록 할지 지정할 수 있습니다. 내장 알고리즘과 결합하면 Amazon SageMaker로 가능한 학습의 확장성을 통해 학습 실행 시간과 비용을 대폭 줄일 수 있습니다.

자동 모델 튜닝

Amazon SageMaker는 수천 개의 다양한 알고리즘 파라미터 조합을 조정하여 자동으로 모델을 튜닝함으로써 모델이 산출할 수 있는 가장 정확한 예측에 도달할 수 있습니다.

정확도를 높이도록 모델을 튜닝할 때 활용할 수 있는 두 가지 수단이 있습니다. 모델에 제공하는 데이터 입력을 수정하는 것(예: 숫자의 로그 기록)과 모델 동작을 정의하는 파라미터를 조정하는 것입니다. 이를 하이퍼파라미터라고 하는데, 적절한 값을 찾기가 어려울 수 있습니다. 일반적으로는 임의의 값으로 시작하여 변경 내용이 미치는 영향이 나타나기 시작하면 조정을 반복합니다. 모델에 얼마나 많은 하이퍼파라미터가 있는지에 따라 주기가 길어질 수 있습니다.

SageMaker는 학습 도중에 자동 모델 튜닝을 옵션으로 제공하여 이를 간소화합니다. 모델 자동 튜닝 기능은 기계 학습을 사용하여 모델을 신속하고도 최대한 정확하게 튜닝합니다. 이 기능을 사용하면 하이퍼파라미터를 수동으로 튜닝하는 지루한 시행착오 과정을 건너뛸 수 있습니다. 대신, 모델 자동 튜닝은 여러 번의 학습 실행을 통해 데이터로부터 흥미로운 특징을 발견하고 그 특징들이 어떻게 상호작용하여 정확도에 영향을 주는지 학습함으로써 하이퍼파라미터 최적화를 수행합니다. 학습된 모델의 품질을 극대화하는 데 걸리는 시간을 며칠 또는 몇 주까지 절약할 수 있습니다.

API나 콘솔을 통해 학습 작업 수를 지정하기만 하면, SageMaker가 모델을 튜닝하기 위해 기계 학습을 사용하여 나머지 작업을 처리합니다. 그 원리는 다양한 데이터 형식이 모델에 미치는 효과를 학습하고 이 지식을 모델의 여러 사본에서 적용하여 가능한 최선의 결과물을 빠르게 찾는 것입니다. 개발자 또는 데이터 과학자는 모델에 공급하는 데이터의 조정에만 신경 쓰면 되므로 학습 도중 걱정해야 할 것이 크게 줄어듭니다.

관리형 스팟 훈련

관리형 스팟 훈련 기능을 사용하면 기계 학습 모델의 훈련 비용을 최대 90%까지 절감할 수 있습니다. 관리형 스팟 훈련은 예비 EC2 용량인 Amazon EC2 스팟 인스턴스를 사용하므로 훈련 작업은 Amazon EC2 온디맨드 인스턴스보다 훨씬 낮은 비용으로 실행됩니다. Amazon SageMaker는 컴퓨팅 용량을 사용할 수 있게 되면 실행되도록 훈련 작업을 관리합니다. 따라서 사용자는 용량을 위해 지속적으로 폴링할 필요가 없으며 관리형 스팟 훈련 기능이 있으므로 중단을 관리하기 위한 추가 도구를 작성할 필요가 없습니다. 관리형 스팟 훈련 기능은 Amazon SageMaker와 함께 제공되는 기본 알고리즘 및 프레임워크인 자동 모델 튜닝과 사용자 지정 알고리즘과 연동됩니다.

정확한 ML 모델 구축을 위한 Amazon SageMaker의 자동 모델 튜닝

GitHub에서 이러한 자동 모델 튜닝 연습을 직접 사용해 보십시오.

Amazon SageMaker를 사용하여 기계 학습 모델 훈련 및 튜닝

이 테크 톡을 통해 Amazon SageMaker를 사용하여 최고의 정확도로 ML 모델을 훈련하는 방법을 알아보십시오.

대용량 데이터 세트를 더 빠르게 다운로드하여 훈련 작업 가속화

이 블로그 게시물에서 Amazon FSx for Lustre 영구 파일 시스템을 Amazon SageMaker와 함께 사용하여 ML 모델을 훈련하는 방법을 알아보십시오.