세션 소개

  MLOps World 컨퍼런스에서 들었던 세션 중 하나로, 캐나다에서 가장 큰 식료품점의 대규모 판매 예측에 대해 소개한 세션입니다. Loblaws의 Cheng Chen, Mefta Sadat에 의해 진행되었습니다. 이전 글에 이어 작성합니다.

판매 예측 문제 at Scale

  • Store-day , 일별 예측 문제
    • 예 :
      • 스태프 배치
      • Capacity 관리
    • 모델의 개수 : 수십개

지금까지는 Loblaws의 ML Ops 툴킷들이 어떻게 형성되어있는지 알아봤다면, 이제는 판매 예측에 대해 자세히 이야기해보겠습니다.

우리가 판매 예측 문제에 대해 생각해 볼 때, 여러 다른 레벨에 대해 생각해볼 수 있습니다. 첫 번째는 일 수준(day level) 입니다. 여기서 나올 수 있는 샘플 질문은 특정 매장에서 지금으로부터 1주간 몇 건의 온라인 주문들을 받겠냐 등입니다. 이러한 질문에 관심을 갖는 이유는 이 예측을 사용하여 스태프 배치를 용이하게 하기 위해서 입니다. 매장 내 picker들에게 온라인 주문을 픽업하도록 하고, 이 주문건이 실제로 발생하기 전에 미리 물건들을 채워놔야 합니다. 다음으로는 온라인 capacity를 관리입니다. 온라인 앱이나 웹사이트에서 주문 가능하도록 타임슬롯을 열어두어야 하고, 또 적절한 슬롯이 열려있도록 해야합니다.

따라서 이러한 목적들을 달성하기 위해 여러개의 모델이 필요한데요, 약 2000개의 매장이 있지만 단 수십개의 모델만을 필요로 합니다. 그 이유는 비슷한 매장끼리 그룹화하여 주문 건수를 줄일 수 있기 때문입니다. 따라서 여기까지는 일반 툴킷으로 처리가 가능합니다.

  • Store-item-hour level , 시간-품목별 예측 문제
    • 예 :
      • 품목 가용성 예측
    • 모델의 개수 : 수백개 - 수천개
    • 이러한 스케일의 파이프라인과 모델을 관리하기 위한 MLOPs 툴 필요

  그러나 또 다른 문제가 있습니다. 이번에는 시간 수준으로 들어가보겠습니다. 이 수준에서는 ‘다음 48시간 동안 특정 매장에서 사과가 얼마나 팔리겠느냐’와 같은 질문을 할 수 있습니다. 이러한 질문들은 품목 가용성 예측의 use case가 될 수 있습니다.

예를 들어, 여러분 모두 한번쯤은 온라인에서 장을 보거나 물건을 구매할 때 몇몇 품목에 재고 부족 알람이 떠 있는 모습을 보신 적이 있으실 것입니다. 그런식으로 만약 이러한 시간 수준 예측을 사용하면 Loblaws는 고객들에게 당신이 이 물건을 이 시간, 이 매장에서 주문한다면 재고가 부족할 수 있습니다 라는 것을 사전에 알려줄 수 있습니다.

이러한 대규모 문제의 경우 최소 수백개부터 수천개의 모델이 필요합니다. 아마 MLOps 툴 없이 이 모든 모델들을 핸들링한다면 문제는 굉장히 어려워질 것입니다.

따라서 Loblaws의 목표는 크게 첫번째로 많은 파이프라인들을 재사용 가능한 코드를 사용해 병렬로 돌리는 것, 그리고 두번째로 쉽게 모델을 추적하고 모델에서 출력되는 메타 데이터를 모니터링하는 것입니다. 그리고 이는 앞서 소개했던 MLOps 툴킷들로 해결 가능합니다.

모델 훈련 파이프라인

스크린샷 2022-10-02 오후 6 12 41

    이제 모델 파이프라인에 대해 알아보겠습니다.모델 파이프라인에는 크게 두 가지 컴포넌트가 존재합니다.

데이터 전처리 컴포넌트와 훈련 컴포넌트 입니다. 우선 데이터 전처리 컴포넌트에서는 Loblaws의 raw 데이터를 가져옵니다. 이 raw 데이터 안에는 실제 과거 판매 데이터, 날짜 정보, 매장 정보, 휴일 운영 시간 등이 포함되어있습니다. 그리고 트레이닝 컴포넌트로 보내기 위해 이 데이터로 Loblaws의 맞춤형 피처 엔지니어링 단계를 수행합니다. 그리고 트레이닝 컴포넌트에서 훈련되고, 훈련된 모델은 다루기 쉽도록 클라우드 저장소에 저장됩니다.

배치 예측 파이프라인

스크린샷 2022-10-02 오후 6 14 46

   두 번째 파이프라인은 배치 예측 파이프라인입니다. 모델은 이미 가지고 있으니 실제로 예측을 해야할 시간입니다. 이 파이프라인 역시 첫 번째와 마찬가지로 두 가지 컴포넌트를 가지고 있습니다. 하나는 모델 셀렉션 컴포넌트 입니다. 동일 데이터 집합으로 구성된 모델 추세 중 가장 최신 경향을 반영하거나 혹은 가장 좋은 퍼포먼스를 보이는 모델을 선택할 수 있게 합니다. 즉, raw 데이터를 사용하여 피처 엔지니어링을 하고, 선택된 모델을 통해 바로 다음 기간의 결과물을 예측하고 미래 기간에 대해 이를 반복하며 최종 예측 아웃풋에 도달합니다.

개념적인 평가 파이프라인

스크린샷 2022-10-02 오후 6 41 55

   다음은 평가 파이프라인입니다. 사실 Loblaws는 지금 이 파이프라인 프로토 타입의 아주 초기 단계에 있다고 합니다. 해당 평가 파이프라인을 실제로 구현할 시간이 없었다고 하는데요. 그럼에도 불구하고 Loblaws가 이 솔루션에 대해 어떻게 생각하고 있는지 몇 가지 아이디어를 제안했습니다.

이상적으로 생각해봤을 때 평가 파이프라인은 베이스라인 모델 예측을 첫 번째 컴포넌트로 가지고 있습니다. 이 컴포넌트는 추가 설명 변수 없이 raw 시계열 데이터를 사용 가능하고, 아주 간단한 모델을 사용해 벤치마크 모델 예측 결과를 제공하여 평가 컴포넌트로 가져갈 수 있습니다. 이후 평가 컴포넌트에서 지금 모델이 예측하고 있는 것과 비즈니스 메트릭을 비교하고 아웃풋 메트릭을 출력할 수 있습니다. 또한 더 나아가 시간이 지남에 따라 어떻게 수행되는지 보고자하는 모니터링 매커니즘을 사용할 수 있습니다.

마치면서

    사실 이번 글을 끝으로 마무리 하고 싶었지만 생각보다 양이 방대해서 3편으로 나누어 마무리 지어보겠습니다. 다음 글은 이러한 파이프라인들이 어떻게 Vertex AI에서 활약하는지에 대한 내용입니다. 읽어주셔서 감사합니다.