머신러닝 파이프라인 단계
머신러닝 파이프라인은 새로운 학습 데이터 수집을 시작으로, 모델의 작동 피드백을 받는 것까지를 포함한다.
그 안에는 데이터 전처리, 모델 학습 및 분석, 모델 배포 등 다양한 단계가 포함되어 있다. 이러한 단계를 자동으로, 또 반복적으로 수행할 수 있게 하는 것이 머신러닝 파이프라인의 목적이다.
위 그림에서처럼, 머신러닝 파이프라인은 반복되는 주기를 가진다. 데이터를 데이터 소스로부터 지속적으로 수집할 수 있으므로 모델의 지속적인 업데이트가 가능하고, 자동화된 재학습을 통해 모델의 성능을 개선할 수 있다. 실제 실무에서는 과거의 데이터와 현재 유입되는 데이터가 같다는 보장이 없는 경우가 많아 지속적인 재학습을 통한 업데이트가 필수적이며, 이를 머신러닝 파이프라인이 수행한다.
1) 데이터 수집 및 버전 관리
데이터 수집은 모든 머신러닝 파이프라인의 시작이다. 이 단계에서는 별도의 feature engineering을 수행하지 않고 추후 이어질 단계인 데이터 전처리 이후에 수행하게 되는데, 이 이유는 라이프사이클의 전체 처리 속도를 높이기 위해서라고 할 수 있다.
수집과 더불어, 현재 유입되고 있는 데이터의 스냅샷을 저장하여 버전을 관리하고 파이프라인 최종 단계에 위치한 모델과 연결할 수 있도록 한다.
2) 데이터 검증
새 모델 버전을 학습하기에 앞서, 데이터가 올바른지 검증하는 단계가 필요하다. 새로운 데이터의 통계(범위, 분포 등)가 정상 범주에 속하는지를 주로 검증하며, 이상이 감지될 경우 데이터 사이언티스트에게 경고를 띄우는 역할을 한다.
예를 들어, 이진 분류 모델 학습 시 기존 학습된 데이터의 클래스 비율과 새로 수집된 데이터의 클래스 비율이 크게 달라질 경우 경고하는 것 등이 있다. 의도하지 않은 불균형한 클래스 비율로 학습이 진행될 경우 모델 예측에 심각한 편향이 생길 우려가 있기 때문이다.
이 뿐만 아니라 수집된 데이터를 학습 데이터와 검증 데이터로 나눌 때 두 데이터셋에서의 클래스의 비율이 비슷한지를 검증하는 공통 데이터 검증 도구를 사용할 수도 있다.
검증 단계에서 특이점이 발견될 경우, 데이터 검증 도구는 파이프라인을 중지하고 데이터 사이언티스트에게 경고를 보냄으로써, 심각한 모델상의 실수를 방지할 수 있다.
3) 데이터 전처리
새롭게 수집한 데이터를 모델이 사용하기 위해서는 전처리가 필요하다. 다만 이 과정은 모든 학습 epoch마다 실행될 필요는 없으며 모델이 학습되는 시점에 수행되어있으면 된다. 따라서 각자가 가진 모델 라이프사이클에서 모델 학습 직전 단계에 수행하는 것이 가장 합리적일 것이다.
데이터 전처리 도구는 단순 파이썬 스크립트부터 정교한 그래프 모델에 이르기까지 다양하다. 이 단계는 전체 라이프사이클에 영향을 주므로, 처리 방식이 바뀔 경우 파이프라인 전체를 강제로 업데이트해야 한다.
4) 모델 학습 및 튜닝
모델 학습 단계는 머신러닝 파이프라인의 핵심이다. 대규모 학습 데이터를 사용하는 대규모 모델의 경우 이 단계를 효율적으로 관리하는 것이 어려워지며, 동시에 전체 컴퓨팅 성능을 좌우하는 열쇠가 되기도 한다. 일반적으로 학습에 사용되는 컴퓨팅 리소스는 한정적이므로 모델 학습 세션의 효율적인 분배가 중요한데 이 단계가 이를 담당한다.
모델 튜닝 단계는 모델의 성능을 개선함으로써 경쟁 우위를 제공하는, 최근 주목받는 단계 중 하나이다. 프로젝트 특성에 따라 파이프라인 이전에 튜닝이 수행되기도 하고, 위 그림에서처럼 파이프라인의 일부를 이루기도 한다.
머신러닝 파이프라인 아키텍처는 확장 가능하므로 다수의 모델을 병렬적 혹은 순차적으로 학습할 수 있다. 이를 통해 최적의 모델 하이퍼파라미터를 선택하게 된다.
5) 모델 분석
모델의 하이퍼 파라미터를 조정할 때 보통 정확도(accuracy)나 손실(loss)을 이용한다. 이 과정을 거쳐 모델의 최종 버전이 결정된 이후에는 정밀도(precision), 리콜(recall), AUC(Area Under the ROC Curve)등 다른 지표를 사용하거나, 검증 데이터셋보다 더 큰 데이터셋에 대하여 성능을 계산하는 등의 심층 분석 과정이 수반되면 전반적인 성능 향상에 도움이 될 수 있다.
이러한 과정을 통해 모델의 예측이 공정하고 믿을만한지 확인할 수 있고, 사용자 그룹별 모델 작동을 분리하여 확인할 수도 있다. 또한 학습에 사용되는 feature에 대한 모델 의존도를 조사하거나, feature 변동이 모델 전반에 초래하는 변화를 확인하는 등의 작업을 수행할 수도 있다.
모델 튜닝 단계와 마찬가지로 기본적으로는 데이터 사이언티스트의 검토가 필요하지만, 최종 검토 이외의 업무 부담을 ML 파이프라인을 통해 줄일 수 있다.
6) 모델 버전 관리
모델 버전 관리 단계의 목적은 추적이다.
소프트웨어 엔지니어링에서는 버전 관리 도구를 사용하여 API와 호환되지 않는 변경이 발생하거나 주요 피쳐를 추가하는 등의 수정이 이루어질 때 메인 버전과 서브 버전을 올림으로써 업데이트를 기록하고 관리한다. 이러한 관리는 머신러닝 모델을 다룰 때에도 필요하며, 데이터 버전 관리와 유기적으로 관리될 필요성이 있다.
또한 이 단계는 이후 배포 단계의 일부로서 추적될 필요가 있다.
7) 모델 배포
모델의 학습, 튜닝, 분석이 모두 끝난 후에는 모델을 배포해야 한다. 이때 최신 버전의 모델 서버를 사용할 경우 별도의 웹 서버 프로그램 코드 없이 배포가 가능하다. 이는 레스트(REST) 또는 원격 프로시저 호출(RPC) 프로토콜과 같은 여러 API 인터페이스를 제공하여 동일한 모델의 여러 버전을 동시에 호스팅 할 수 있다. 이 경우 모델 A/B 테스트를 실행하여 모델에 대한 귀중한 피드백을 얻을 수도 있다.
또한 모델 서버를 사용하면 애플리케이션 전체를 다시 배포하지 않아도 모델의 업데이트가 가능하기 때문에 애플리케이션의 다운 타임을 줄일 수 있다.
8) 피드백 루프
머신러닝 파이프라인의 마지막 단계인 피드백 루프는 자칫하면 간과하기 쉽지만 매우 중요한 단계이다. 이 단계에서는 새로운 모델의 성능에 관한 정보를 측정할 수 있으며 이는 모델의 업데이트를 용이하게 해 줄 수 있다.
9) 개인 정보 보호
사실 이 단계는 머신러닝 파이프라인 내부에 속해 있는 것은 아니다. 하지만 데이터 사용에 관한 소비자의 우려 및 관련 법안의 입지가 커짐에 따라 이는 실무에서 매우 중요한 토픽이 되곤 한다. 따라서 추후에는 개인 정보 보호 기법이 머신러닝 파이프라인 구축 도구로 통합될 가능성 또한 높다고 전망된다.
+) 머신러닝 모델에서 개인 정보 보호를 강화하는 옵션
- 차등 개인 정보 보호(differential privacy): 수학 연산을 활용해 모델 예측이 사용자의 데이터를 노출하지 않도록 한다
- 연합 학습(federated learning): 원시 데이터가 사용자의 장치로부터 다른 곳으로 이전되지 않도록 한다.
- 암호화(encrypted ML): 전체 학습 프로세스를 암호화된 공간에서 실행하거나 원시 데이터에서 훈련된 모델을 암호화한다.
'MLOps' 카테고리의 다른 글
TFX 컴포넌트 개요 (0) | 2021.12.11 |
---|---|
TFX - 텐서플로우 익스텐디드 (0) | 2021.12.08 |
파이프라인 오케스트레이션 (0) | 2021.12.06 |
머신러닝 파이프라인의 필요성 (0) | 2021.12.01 |
MLOps: 머신러닝 파이프라인이란 (0) | 2021.11.30 |
댓글