모델 학습,데이터 결과 처리, 프로덕션 배포 및 SageMaker의 CI/CD에 대한 내용이다. 

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

 

두가지 타입으로 사용할 수 있다. 

고객이 준비할 건 파란 영역이며 AWS에서 제공하는 학습 컨테이너 이미지를 사용할 수도 있다. 추가로 필요한 패키지가 있는 경우는 Custom 학습 컨테이너 이미지를 직접 고객이 만들어서 올린 다음 사용할 수 있다.

 

작은 용량의 노트북 CPU를 띄워서 데이터 준비 및 코드를 작성하고, 모델 학습은 고성능 CPU에서 실행할 수 있게 한다.

 

모델 학습 환경의 구성

1. SageMaker 노트북 생성

2. 학습 코드 내 경로 수정

3. 학습 작업의 실행 노트북 작성

 

1. SageMaker 노트북 생성 

노트북 인스턴스에서 모델학습을 수행할 수 있지만, 학습의 확장성이 제한적입니다.

따라서, 별도 인스턴스를 띄워서 모델 학습을 진행하며, 이를 SageMaker Training이라고 합니다. 

비용을 절감, 학습의 확장성을 고려해서 노트북에서 학습하기 보다는 별도 인스턴스에서 학습하길 권장한다. 

학습이 끝나면 AWS에서 제공하는 학습 클러스터는 종료되고 과금되지 않는다. 

학습을 실행하게 되면 정의한 내용 대로 학습 인스턴스가 여러개 뜰 수도 있고 컨테이너 이미지가 여러개 뜰 수 있고 컨테이너들끼리 네트워크로 연결되어 분산 작업이 가능하다. 

 

동작방식은 어떻게 될까?

노트북에서 생성된 학습코드, S3에 저장된 데이터, AmazonECR에서 생성한 Custom학습 컨테이너 이미지가 학습 실행을 시작시키면 SageMaker 학습 클러스터에 복사되어 실행이 되고, 학습 종료 후 클러스터는 사라지게 된다. 

 

2. 학습 코드 내 경로 수정

 

학습코드를 노트북에 올리고, code 폴더는 자동으로 학습 클러스터의 학습 인스턴스에 자동으로 복사된다. 

경로가 너무 길면 별도 환경 변수를 활용하여 짧게 수정할 수도 있다.

 

클러스터가 종료되어도 산출물들은 저장되어야 하기 때문에 학습이 끝나면 위 경로에 자동으로 저장이 되게 한다.

3. 학습 코드 내 경로 수정

학습 클러스터의 인스턴스 종류/수 실행할 학습코드, 학습 환경 컨테이너 등을 Estimator로 정의

estimator에 정의하기
학습 클러스터에서 사용할 데이터 경로와 channel_name을 선언한 후 fit으로 실행하기
Estimator에 정의된 값에 더 알아보자
고가의 CPU, GPU를 활용해 빠르게 데이터를 가져오고 싶다 하면 Lustre를 활용하면 된다.
예상했던 것 보다 더 오래 동작하는 걸 방지하기 위해 최대 학습 수행시간을 조정한다.

작동원리

노트북에서 컨테이너 이미지를 받아와서 실행하여 디버깅을 한다. 비용 관점에서는 디버깅이 끝나면 노트북 인스턴스를 용량을 낮춰 비용을 절감한다.

 

간단하게 AWS 에서 제공하는 영상을 보면서 SageMaker가 어떤 건지 정도 알 수 있었다고 한다..

+ Recent posts