본 실습에서는 6.1 AutoML 을 활용한 빠른 모델링 에서 실습한 PyCaret을 활용한 ML 학습 작업을 Airflow를 활용해서 진행할 예정이다. 해당 작업의 처리 순서는 다음과 같다.

  1. 학습 데이터를 불러옴
  2. PyCaret 라이브러리를 활용해 1번에서 불러온 데이터를 학습시킨 ML Model 제작 (ML 방법론: LightGBM)
  3. PyCaret 라이브러리를 활용해 2번에서 제작한 ML Model을 Docker Image화
  4. 3번에서 만든 Docker Image를 AWS ECR에 push

PyCaret 라이브러리를 활용해야 하는 점과 Airflow Task 안에서 Docker Image Build를 실행해야 하는 점에서 환경설정이 다소 까다롭기 때문에 통상적으로 다음 두 방법 중 한 가지를 사용한다.

  1. 모델 학습 및 Docker Image 제작 등을 위한 환경설정이 구빈된 별도의 인스턴스를 마련하고, Airflow Task는 해당 클러스터가 특정 작업을 실행하도록 Trigger하는 역할을 한다.
  2. 별도의 인스턴스를 마련하는 대신, Airflow가 실행되는 환경에 모델 학습 및 Docker Image 제작 등에 필요한 환경설정을 모두 구비해놓는다.

리소스가 충분한 기업이라면 당연히 1번 방법을 채택하겠지만, 본 실습에서는 자본의 여유가 충분하지 않기 때문에, 2번 방법을 채택한다.

환경 설정

1. override sudoers

pycaret 라이브러리 내의 모듈을 불러오는 과정에서 libgomp.so.1: cannot open shared object file: No such file or directory 에러가 발생할 수 있다. 해당 에러는 OS 내에 libgomp 프로그램이 기본으로 설치가 안되어 있기 때문에 발생하는 에러이고, 이를 해결하기 위해서는 Airflow Task가 실행되는 클러스터에 libgomp1를 설치해야 한다.

해당 에러 없이 pycaret을 사용하려면 sudo command로 다음 명령어를 입력해야 한다.