Summary 🤙
머신러닝 프로세스에서 실제 프로덕트로 이어지기까지의 플로우를 간랸히 알아보고, 파이프라인을 구축할 때 어떤 문제점들에 집중해야 하는지 알아보자.
Index 👀
일반적인 애플리케이션과 비교
일반적인 애플리케이션을 위한 파이프라인은 CI/CD 를 중심으로 API 개발(빌드), 테스트, 배포, 모니터링과 같은 일련의 과정을 자동화하는 것이다. 이때 주 목적은 종단없는 서비스 제공, CI/CD 자동화 등이 있겠으나, 본질적인 목적은 개발자가 보일러 플레이트 코드보다 비즈니스 로직에 집중할 수 있또록 하는 것 에 있다고 볼 수 있다.
그렇다면 머신러닝 프로세스에서의 파이프라인의 본질적인 목적은 무엇일까.
위의 상황과 같이 생각해본다면 머신러닝 프로세스에 참여하는 각각의 역할(리서처, 데이터 엔지니어, 애플리케이션 엔지니어 등)이 본래 수행해야 하는 작업에만 더 집중할 수 있도록 설계하는 것 이라고 생각해볼 수 있다.
그렇다면 머신러닝 프로세스에서의 보일러 플레이트는 무엇이며, 어떤 관점에서 접근해야하는지 그 특징들에 대해 알아보자.
머신러닝 프로세스의 특징
트리거 포인트
일반적인 애플리케이션에서 파이프라인의 트리거 지점은 배포 브랜치에 코드가 머지되는 지점이라고 볼수 있다. 하지만 머신러닝에서는 조금 다르다.
- 개발자에 의해 수동으로 학습이나 배포가 요구되는 상황
- 새로운 데이터가 수집되어 기존의 모델을 다시 학습해야하는 경우
- 모델의 성능이 저하되는 경우
- 데이터의 피쳐별 분포에 큰 변화가 있는 경우
위의 예시들을 보면 애플리케이션처럼 단순히 서버에러와 같은 명시적인 오류뿐 아니라, 기대하는 예상치에 못미치는 (소프트한) 오류들에 대해서도 파이프라인은 반응할 수 있어야 한다.
따라서, 모니터링과 이에 따른 푸시 알림은 꽤 중요한 포인트다.
지속적 학습(CT, Contiunuous Training)
일반적인 CI/CD 뿐 아니라 새로 업데이트되는 데이터에 대해 모델은 지속적인 학습을 수행할 수 있어야 한다.