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