TITEDIOS 편한 코딩

[MLOps] 2강 - MLOps 및 Airflow 알아보기(Airflow Multi-Node System 구축 가이드 및 사례) 본문

MLOps

[MLOps] 2강 - MLOps 및 Airflow 알아보기(Airflow Multi-Node System 구축 가이드 및 사례)

TitediosKW 2024. 12. 13. 19:00
반응형

목차

  1. MLOps란 무엇인가?
  2. 왜 MLOps가 중요한가?
  3. Airflow란 무엇인가?
  4. MLOps에서 Airflow를 활용하는 이유
  5. MLOps 구축 시 고려 사항
  6. 결론

MLOps와 Airflow에 대해 간단하게 알아보겠습니다. MLOps는 우리가 도착해야 할 목적지이고 Airflow는 목적지로 가는 이동수단으로 생각하시면 좋겠습니다. 늘 말씀드리지만 몸에 힘을 좀 빼고 가볍게 읽어보시면 좋겠습니다.


1. MLOps란 무엇인가?

MLOps는 Machine Learning Operations의 약자로, 머신러닝 모델의 개발, 배포, 운영 과정을 자동화하고 효율화하는 방법론입니다. 무엇인가 딱 정해진 것이라고 보기보다 자동화, 효율화 등의 목적을 이루기 위한 시도 정도로 보는 것도 좋은 방법입니다. 소프트웨어 개발의 DevOps와 유사하게, MLOps는 데이터 과학자와 엔지니어 간의 협업을 강화하고, 모델의 품질을 유지하며, 지속적인 학습을 가능하게 합니다.


2. 왜 MLOps가 중요한가?

MLOps 는 왜 중요할까요? 아래의 이유들 때문에 중요합니다. 한 줄로 요약하자면 우리가 작업하기 편한 것에 더해 인공지능 모델이 좀 더 좋아질 가능성이 높아진다는 것입니다.

  • 모델의 신뢰성 향상: 끊임없이 변화하는 데이터 환경에서 모델의 성능을 지속적으로 모니터링하고 개선 가능
  • 개발 속도 향상: 반복적인 작업을 자동화하여 모델 개발 및 배포 시간을 단축
  • 협업 강화: 데이터 과학자, 엔지니어, 그리고 다른 관련 부서 간의 효율적인 협업을 가능하게 함
  • 비용 절감: 자원 활용을 최적화하고 오류를 줄여 비용을 절감
반응형

3. Airflow란 무엇인가?

Airflow는 Apache Software Foundation에서 개발한 오픈 소스 워크플로 관리 도구입니다. 파이썬으로 작성되었으며, Directed Acyclic Graph (DAG; 싸이클이 없는 방향을 가진 그래프)를 사용하여 복잡한 워크플로를 정의하고 실행할 수 있습니다.

 

아래 그림은 Airflow의 아키텍처 입니다. Scheduler가 중심이 되어 Metadata를 관리하는 DB, DAG 파일이 있습니다. 사용자는 필요한 패키지를 설치하고 Webserver에서 DAG를 관리, 실행, 확인 등의 작업을 할 수 있습니다. Scheduler는 Worker에 작업을 할당하게 됩니다.

 

(아직은 잘 모를 수 있지만 'Scheduler와 Worker가 있어서 작업을 MLOps 관련 작업을 수행한다'라고 생각해 두시면 좋겠습니다.)

https://airflow.apache.org/docs/apache-airflow/stable/core-concepts/overview.html

Airflow의 주요 특징:

  • 유연성: 다양한 작업을 조합하여 복잡한 워크플로를 구축
  • 확장성: 플러그인 시스템을 통해 기능을 확장
  • 관리 편의성: 웹 UI를 통해 워크플로를 시각화하고 관리
  • 강력한 스케줄링 기능: 다양한 스케줄링 방식을 지원

4. MLOps에서 Airflow를 활용하는 이유

Airflow는 MLOps 파이프라인의 다양한 단계를 효율적으로 관리하는 데 사용될 수 있습니다.

  • 데이터 가공 파이프라인: 데이터 수집, 전처리, 특징 추출 등의 작업을 자동화
  • 모델 학습 파이프라인: 다양한 모델을 학습하고 평가하는 작업을 자동화
  • 모델 배포 파이프라인: 학습된 모델을 실제 서비스 환경에 배포하는 작업을 자동화
  • 모델 모니터링 파이프라인: 배포된 모델의 성능을 지속적으로 모니터링하고 재학습을 트리거

5. MLOps 구축 시 고려 사항

MLOps 구축 시에는 아래와 같은 사항을 고려해야 합니다. 아래의 조건을 모두 맞게 하는 것 보다는 적절히 사용하는 곳에 맞게 도구를 적용하는 것이 필요합니다.

  • 데이터 관리: 데이터 품질 관리, 데이터 버전 관리, 데이터 보안 등을 고려
  • 모델 관리: 모델 등록, 버전 관리, 모델 비교 등을 위한 체계적인 관리 시스템이 필요
  • 인프라: 클라우드 환경 또는 온프레미스 환경에서 MLOps 시스템을 구축
  • 도구 선택: Airflow 외에도 다양한 MLOps 도구 (Kubeflow, MLflow 등)를 활용

결론

MLOps는 머신러닝 모델의 라이프 사이클 전체를 관리하여 모델의 가치를 극대화하는 데 중요한 역할을 합니다. 특히 저희가 공부해 보려는 Airflow는 MLOps 파이프라인을 구축하고 관리하는 데 효과적인 도구입니다. 실제 사용하게 되면 인공지능 모델의 학습 및 관리를 하는데 용이한 것을 피부로 느끼실 수 있을 것입니다.

 

궁금한 점이나 추가로 알고 싶은 내용이 있다면 댓글로 알려주세요!

 

도움이 되셨다면 공감 부탁드리겠습니다. 여러분의 공감이 정말 큰 힘이 됩니다.

 

감사합니다!

반응형