1 분 소요



SageMaker Training

  • 완전 관리형 머신 러닝 학습 서비스
  • 데이터 과학자가 빠르고 쉽게 모델 개발 및 학습을 할 수 있도록 지원


SageMaker Training 학습 환경


  • 모델 학습 환경의 구성
  1. SageMaker 노트북 생성
  2. 학습 코드 내 경로 수정
  3. 학습 작업의 실행 노트북 작성


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
    • 데이터의 사전 처리, 모델 결과의 후처리 및 모델 평가를 실행할 수 있는 컴퓨팅 환경을 제공

댓글남기기