본문 바로가기
MLOps

Machine Learning Pipeline

by Nowkeeh Ahc

머신러닝 파이프라인의 필요성

 Model Lifecycle 단계를 자동화할 수 있다는 것은 머신러닝 파이프라인의 중요한 이점이다. 새로운 훈련 데이터를 사용하려면 데이터 검증, 전처리, 모델 훈련, 분석 및 배포를 포함하는 워크플로를 재설정해야 한다. 많은 데이터 사이언스팀이 이런 단계를 수작업으로 수행하지만 비용이 많이 들고 잦은 오류를 발생시킨다. 

 

머신러닝 파이프라인의 장점

 

  • 기존 모델 유지보수에서 벗어나 새 모델에 집중할 수 있는 능력

 자동화된 머신러닝 파이프라인을 사용하면 데이터 사이언티스트가 기존 모델을 유지 보수하지 않아도 된다. 많은 데이터 사이언티스트들이 이전에 개발한 모델을 최신 상태로 유지하는 데 많은 시간을 소비한다. 스크립트를 수동으로 실행하여 학습 데이터를 전처리하거나, 일회성 배포 스크립트를 작성하거나, 모델을 수동으로 조정해왔다. 자동화된 파이프라인을 사용하면 불필요한 반복 작업에서 벗어나 본질적인 업무인 새로운 모델 개발에 더 많은 시간을 투자할 수 있다.

 

  • 버그 예방

 새로 생성된 모델은 버전이 지정된 데이터셋에 연결되고 전처리 단계는 개발된 모델에 연결된다. 즉, 새 데이터가 수집되면 새 모델이 생성된다. 전처리 단계가 업데이트되면 학습 데이터가 무효화되고 새 모델이 생성된다. 수동 머신러닝 워크플로에서 버그는 일반적으로 모델이 학습된 후 변경되는 전처리 단계 때문에 발생한다. 이때 모델을 학습할 때와 다른 처리 지침으로 모델을 배포한다. 여전히 모델은 예측하지만, 부정확하기 때문에 이런 버그는 디버깅하기도 어렵다. 자동화된 워크플로를 사용하면 이런 오류를 사전에 방지 가능하다.

 

  • 버전 관리 문서화

 실험 추적과 모델 배포 관리는 모델 변경에 관한 버전 관리 문서를 생성한다. 실험 추적은 모델의 하이퍼파라미터, 사용된 데이터셋과 결과 모델 측정 항목(ex. 오차, 정확도)의 변경 사항을 기록한다. 모델 배포 관리는 궁극적으로 어떤 모델을 택하고 배포했는지를 추적한다. 이런 버전 관리 문서는 데이터 사이언스팀이 모델을 다시 생성하거나 모델의 성능을 추적할 때 특히 유용하다.

 

  • 표준화

 표준화된 머신러닝 파이프라인은 데이터 사이언스팀의 경험을 개선한다. 표준화된 설정 덕분에 업무 적응이 빨라지고 팀 간 이동 시에도 동일한 개발 환경에서 일을 이어갈 수 있다. 따라서 효율성이 높아지고 새 프로젝트를 설정하는 데 소요되는 시간이 줄어든다. 머신러닝 파이프라인을 구축하는 데 시간을 투자하면 프로젝트의 수명을 높이는 데도 도움을 줄 수 있다.

 

  • 파이프라인의 비즈니스 사례

 자동화된 머신러닝 파이프라인의 구현이 데이터 사이언스팀에 미치는 주요 영향은 다음과 같다.

- 새로운 모델 개발 시간 확보

- 기존 모델을 더 간단한 프로세스로 업데이트

- 모델 재현에 소요되는 시간 단축

 

 

 

머신러닝 파이프라인 단계

 새로운 학습 데이터 수집으로 시작하여 새로 학습된 모델이 어떻게 작동하는지에 관한 피드백 받기로 끝난다. 파이프라인에는 데이터 전처리, 모델 학습과 모델 분석, 모델 배포 등 다양한 단계가 포함된다.

 

[그림 1] 모델 생애 주기

 [그림1]에서 볼 수 있듯이 파이프라인은 반복되는 주기이다. 데이터를 지속적으로 수집할 수 있으므로 머신러닝 모델도 지속적으로 업데이트할 수 있다. 일반적으로 데이터가 많을수록 모델이 개선된다. 이런 지속적인 데이터 유입 때문에 자동화가 핵심이다. 

 

  1. 데이터 수집: 데이터 수집은 모든 머신러닝 파이프라인의 시작이다. 
  2. 데이터 검증: 새 모델 버전을 학습하기 전에 새 데이터를 검증해야 한다. 
  3. 데이터 전처리: 새롭게 수집한 데이터를 그대로 사용하면 모델 학습이 어렵다. 일반적으로 모델 학습에 사용하려면 데이터를 전처리해야한다.(ex.one-hot or multi-hot vectorizing)
  4. 모델 학습과 튜닝: 모델 학습 단게는 머신러닝 파이프라인의 핵심이다. 가능한 한 가장 작은 오차를 만드는 모델을 학습한다.
  5. 모델 분석: 일반적으로 정확도나 loss값을 사용하여 최적의 모델 파라미터 집합을 결정한다.
  6. 모델 버전 관리: 다음 버전으로 어떤 모델, 하이퍼파라미터 세트, 데이터셋이 선택되었는지 추적한다.
  7. 모델 배포: 모델을 학습, 튜닝, 분석한 후에는 모델을 배포할 수 있다.
  8. 피드백 루프: 마지막 단계로 루프를 만들어야 새로 배포된 모델의 효과와 성능을 측정할 수 있다.

 

 

파이프라인 오케스트레이션

 머신러닝 파이프라인의 모든 컴포넌트를 실행하거나, 컴포넌트가 올바른 순서로 실행되도록 조정해야 한다. 이런 단계 조정은 Apache Beam, Apache Airflow, Kubernetes, Kubeflow 등 과 같은 도구로 수행한다.

 데이터 파이프라인 도구가 머신러닝 파이프라인 단계를 조정하는 동안 TensorFlow MetadataStore와 같은 파이프라인 artifact 저장소는 개별 프로세스의 산출물을 저장한다.

 

파이프라인 오케스트레이션의 필요성

 2015년, 구글의 머신러닝 엔지니어 그룹은 머신러닝 프로젝트가 실패하는 주요 원인으로 대부분의 프로젝트가 머신러닝 파이프라인 단계 사이를 연결할 때 커스텀 코드를 사용한다는 점을 밝혔다. 커스텀 코드는 한 프로젝트에서 다음 프로젝트로 쉽게 연결되지 않는다. 파이프라인 단계 사이의 glue code는 불안정하며 커스텀 스크립트가 특정 사례 이상으로 확장되지 않는다고 [Hidden Technical Debt in Machine Learning Systems]에서 주장하였다.

 

방향 비순환 그래프

[그림2] 방향이 있는 비순환 그래프의 예

 [그림 2]의 예제 그래프처럼 파이프라인 단계에 방향성이 있다. 즉, 파이프라인은 작업 A로 시작해서 작업 E로 종료되므로 task의 의존성에 따라 실행 경로가 명확하게 정의된다. DAG(Directed Acyclic Graph)는 모든 의존성이 완전히 계산되지 않은 상태에서 일부 작업이 시작되지 않도록 한다. 

 파이프라인 그래프도 비순환적이어야 한다. 그래프가 이전에 완료된 task에 연결되지 않아야 한다는 말로 연결되면 파이프라인이 끝없이 실행될 수 있어서 워크플로가 완료되지 않게 될 수도 있다.

 


This post was written based on what I read and studied the book below.
https://www.oreilly.com/library/view/building-machine-learning/9781492053187/

댓글