Kwansik Yoo
by Kwansik Yoo
1 min read

Categories

Tags

Summary 🤙

머신러닝 프로세스에서 실제 프로덕트로 이어지기까지의 플로우를 간랸히 알아보고, 파이프라인을 구축할 때 어떤 문제점들에 집중해야 하는지 알아보자.


Index 👀


일반적인 애플리케이션과 비교


일반적인 애플리케이션을 위한 파이프라인은 CI/CD 를 중심으로 API 개발(빌드), 테스트, 배포, 모니터링과 같은 일련의 과정을 자동화하는 것이다. 이때 주 목적은 종단없는 서비스 제공, CI/CD 자동화 등이 있겠으나, 본질적인 목적은 개발자가 보일러 플레이트 코드보다 비즈니스 로직에 집중할 수 있또록 하는 것 에 있다고 볼 수 있다.

그렇다면 머신러닝 프로세스에서의 파이프라인의 본질적인 목적은 무엇일까.
위의 상황과 같이 생각해본다면 머신러닝 프로세스에 참여하는 각각의 역할(리서처, 데이터 엔지니어, 애플리케이션 엔지니어 등)이 본래 수행해야 하는 작업에만 더 집중할 수 있도록 설계하는 것 이라고 생각해볼 수 있다.

그렇다면 머신러닝 프로세스에서의 보일러 플레이트는 무엇이며, 어떤 관점에서 접근해야하는지 그 특징들에 대해 알아보자.


머신러닝 프로세스의 특징


트리거 포인트

일반적인 애플리케이션에서 파이프라인의 트리거 지점은 배포 브랜치에 코드가 머지되는 지점이라고 볼수 있다. 하지만 머신러닝에서는 조금 다르다.

  1. 개발자에 의해 수동으로 학습이나 배포가 요구되는 상황
  2. 새로운 데이터가 수집되어 기존의 모델을 다시 학습해야하는 경우
  3. 모델의 성능이 저하되는 경우
  4. 데이터의 피쳐별 분포에 큰 변화가 있는 경우

위의 예시들을 보면 애플리케이션처럼 단순히 서버에러와 같은 명시적인 오류뿐 아니라, 기대하는 예상치에 못미치는 (소프트한) 오류들에 대해서도 파이프라인은 반응할 수 있어야 한다.
따라서, 모니터링과 이에 따른 푸시 알림은 꽤 중요한 포인트다.

지속적 학습(CT, Contiunuous Training)

일반적인 CI/CD 뿐 아니라 새로 업데이트되는 데이터에 대해 모델은 지속적인 학습을 수행할 수 있어야 한다.