Program/AWS

[SageMaker] 학습, 배포, 모니터링 하기

heheh 2022. 5. 23. 16:50

사용 요약

1. 모델을 컨테이너에 담는다

2. sagemaker.Session()

3. sagemaker.estimator.Estimator(container, )

4. set_hyperparameters()

5. fit()

6. deploy()

7. predict()

 

 

사용

1. 학습할 모델을 담은 노트북은 컨테이너에 담는다. 즉 알고리즘을 담는다.

 

 

2. sess = sagemaker.Session() 으로 세션을 연다.

 

 

3. 다른 노트북에서 modelll = sagemaker.estimator.Estimator(container, ...) 를 실행한다.
ECR에 담긴 알고리즘을 이미지에 대한 url 주소로 가져와 사용하는것이다.

더보기
  • 이미 만들어진 모델이나 이미지 활용 시엔 아래 네가지 방법을 참고한다.
  • 후 스크립트 활용 시엔 자주 사용하는 프레임워크는 지원을 해주므로, 해당 클래스를 호출하도록 한다.
  • use_spot_instances = True 로 비용 절감 가능. 다만 학습에 시간이 오래걸림. 그래도 중단되도 체크포인트 주기적으로 s3에 기록함.

 

 

4. set_hyperparameters로 파라미터 정의한다.

tuner = HyperparameterTuner() 로 파라미터 범위나, 로스 지정 가능

tuner.fit() 로 별도 인스턴스 실행

이후 베스트 모델을 추천해주고(bayesian 혹은 random 방식으로) 그거로 deploy 가능

 

 

5. 해당 객체의 modelll.fit()를 호출한다. 이 경우 클러스터가 라이브되고, 클라우드나 콘솔에서 확인가능하다.

s3에 들어잇는 트레인 데이터로 트레인 인스턴스가 생성이 되고,

트레인용 인스턴스에서는 알고리즘에 들어있는 이미지, 즉 해당 도커 이미지로 학습을 하게된다.

이후 s3에 저장된다.

 

 

** 노트북이랑 트레이닝용 인스턴스가 분리되어 있다.

 

 

6. 엔드포인트를 담는다

 

7. deploy하고, predict한다.

 

 

관련 프레임워크

Amazon SageMaker Pipelines

  • 위 일련의 과정을 자동화하도록 도와준다.
  • 깃 커밋을 하면 자동으로 모델 학습을 수행한다.
  • 이전 모델 대비한 결과 평가를 metric으로 보여준다. 이를 배포를 할지 말지도 결정 가능

 

Amazon SageMaker Autopilot

  • 데이터(테이블 형태)만 있다면 데이터를 자동 분석하여 모델을 자동을 생성하고 파라미터도 자동으로 최적화시켜준다.
  • 이 모든 과정의 metric을 리포트로 뽑는다.
  • 데이터가 어떻게 생겻는지 분석 결과도 노트북 형태로 제공
  • Sagemaker studio에서 autopilot 스타트 하면 사용 가능

 

Sagemaker Notebooks or SageMaker Studio

  • IDE 느낌?

 

 

 

Reference