[Amazon Sagemaker] Amazon SageMaker 모델 학습 방법 소개
SageMaker Training
- 완전 관리형 머신 러닝 학습 서비스
- 데이터 과학자가 빠르고 쉽게 모델 개발 및 학습을 할 수 있도록 지원
SageMaker Training 학습 환경
- 모델 학습 환경의 구성
- SageMaker 노트북 생성
- 학습 코드 내 경로 수정
- 학습 작업의 실행 노트북 작성
SageMaker 노트북 생성
SageMaker Training - 노트북 생성
- SageMaker 노트북은 클라우드에서 제공되는 Jupyter notebook/Lab UI
노트북 인스턴스에서 학습을 진행하나요
- 노트북은 데이터 준비, 학습 코드 수정, 학습 작업 실행 노트북 파일을 작성
SageMaker Training
- 학습은 노트북 인스턴스 대신 고성능 CPU 또는 GPU 인스턴스에서 수행하여 효율적으로 활용
- 다수의 인스턴스로 확장하여 학습이 가능 (단, 학습 코드는 분산학습 라이브러리 적용 필요)
SageMaker Training 동작 방식
- Custom 학습 컨테이너 이미지 CASE
SageMaker Training을 위한 작업
학습 코드 내 경로 수정
학습 코드 업로드
- On-premise (로컬 환경)에서 학습이 되는 코드는 폴더 생성 후 폴더 안에 추가하여 업로드
학습 코드 내 경로 수정
- 학습이 실행되면 학습 코드는 자동으로 학습 클러스터로 복사
- 컨테이너 환경에 맞게 학습 코드 내의 경로 변경 필요
- SageMaker 컨테이너는 주요 경로를 환경변수로 제공
학습 코드 수정 예제
학습 코드 필수 수정 사항
- Dataloader 경로 : os.environ[‘SM_CHANNEL_{channel_name}’] 로 수정
- channel_name은 학습 작업의 실행 노트북에서 정의
- Model 저장 경로 : os.environ[‘SM_MODEL_DIR’] 로 수정
[optional] Output 저장 경로 : os.environ[‘SM_OUTPUT_DATA_DIR’] 로 수정 [optional] Checkpoints 저장 경로 : “/opt/ml/checkpoints” 로 수정
학습 작업의 실행 노트북 작성
- 학습 클러스터의 인스턴스 종류/수, 실행할 학습 코드, 학습 환경 컨테이너 등을 Estimator로 정의
- 학습 클러스터에서 사용할 데이터 경로와 channel_name을 선언한 후 실행
- Estimator에서 정의된 값들을 선언
fit에서 추가되는 data_path는 S3, EFS, FSx for Lustre 등 3가지 타입이 가능
- 학습 작업과 관련된 다양한 추가 파라미터를 제공
작동 원리 요약
SageMaker Training의 디버깅
Local Mode를 위한 학습 작업의 실행 노트북 추가
SageMaker의 추가 기능
SageMaker Experiments
학습 모니터링
SageMaker Processing - 데이터/결과 처리
SageMaker Processing 실행
- 사전 처리, 후 처리 및 모델 평가를 실행할 수 있는 환경 제공
S3와의 관계
- S3의 데이터를 입력으로 받아 로직 처리 후 S3에 출력으로 저장
SageMaker Processing 실행 코드
Warp-up
- Amazon SageMaker Training
- 완전 관리형 머신 러닝 학습 서비스
- 학습 코드에 분산 라이브러리를 추가한 후, 인스턴스의 수를 늘리면 분산학습이 바로 동작
- Amazon SageMaker Experiments
- 실험의 여러 시도에 대해 사용자의 하이퍼파라미터, 평가 지표(metrics) 등을 기록 및 추적
- Amazon SageMaker Processing
- 데이터의 사전 처리, 모델 결과의 후처리 및 모델 평가를 실행할 수 있는 컴퓨팅 환경을 제공
댓글남기기