머신러닝을 사용하지 않고도 객관식 설문 형식의 챗봇을 제공하고, 사용자가 설문의 답을 선택하면서 해결책에 도달하도록 하는 워크플로만 갖춰도 이 과제는 간단하게 해결할 수 있습니다. 설문 형식을 사용하는 편이 머신러닝을 사용하는 것보다 기술적으로 간단하며, 동시에 사용자 경험 측면에서 뛰어난 경우도 있을 것입니다. 개발 공정 측면에서도 객관식 설문 형식의 챗봇을 사용하면, 질문과 선택지를 제공하고 분기 처리를 위한 if-else 구문을 조합하는 것만으로 구현할 수 있습니다.
--- p.8
예를 들어 수요 예측과 같은 회귀 문제에서는 매장에서 식료품의 수요 예측 모델이 수요보다 큰 쪽으로 벗어나면 공급 과다가 되어 재고가 창고를 점유하게 됩니다. 벗어난 양에 따라 창고에 상품을 넣을 수 없는 상황도 발생할 것입니다. 소비 기한까지 팔리지 않는 경우에는 재고를 처분해야 할 수도 있습니다. 반대로 작은 쪽으로 벗어나면 기회 손실로 이어집니다. 기회 손실이 계속되면 고객으로부터 ‘상품 판매가 좋지 않은 매장’이라는 평판이 붙어 고객이 줄어들 리스크가 있습니다(그림 1.9). 이런 경우에는 수요 예측의 추론이 완전한 정답을 찾지는 못하더라도, 다소 큰 쪽으로 벗어나는 것이 기회 손실을 피할 수 있고, 리스크도 작을 것입니다.
--- p.23
전처리에는 사이킷런(scikit-learn)의 ColumnTransformer를 사용합니다. ColumnTransformer는 컬럼에 맞춰 전처리를 개별적으로 사이킷런의 파이프라인(Pipeline)으로 정의하고 이를 모은 클래스입니다. ColumnTransformer를 사용하면 다른 매장, 지역, 상품명, 상품 가격, 판매 연, 판매 월, 판매 주, 과거 판매 실적 데이터의 전처리를 하나의 파이프라인 처리로 모을 수 있습니다. 개별적으로 기술하는 것이 간단하다고 생각할지도 모르지만, ColumnTransformer로 모음으로써 뒤에서 전처리를 사용할 때 하나의 함수만 호출하면 전처리를 완결할 수 있게 됩니다. 전처리 파이프라인 구현은 앞에서 설명한 DataPreprocessPipeline 클래스의 함수로 정의합니다(예제 2.5).
--- p.75
워크플로 자동화에서 중요한 것이 워크플로 엔진 선정과 도입입니다. 워크플로 엔진이란 배치/작업 등의 실행을 관리하는 인프라스트럭처이며 일반적으로 데이터 파이프라인이나 머신러닝 파이프라인은 워크플로 엔진 위에서 구축됩니다. 워크플로 엔진에는 OSS로는 에어플로(AirFlow)나 아르고(Argo), Prefect, Luigi가 있습니다. 클라우드에서 실현된 워크플로우 엔진에는 구글 클라우드 컴포저(Google Cloud Composer), AWS Step Functions, 애저 파이프라인(Azure Pipeline) 등이 있습니다. 머신러닝 파이프라인에 특화한 인프라스트럭처에는 KubeFLow 파이프라인이나 구글 버텍스(Google Vertex) AI 파이프라인, gokart가 있습니다. 소프트웨어나 서비스에 따라 실행 방법은 다르지만, 모두 워크플로로서 하나 이상의 잡을 연결해서 실행하는 기능을 갖고 있습니다.
--- p.110~111
위반 감지는 동물 이미지의 등록과는 비동기로 실행합니다. 즉 동물 이미지가 animals 테이블에 등록된 후, 임의의 시점에 위반 감지가 실행됩니다. 위반 감지가 실시되는 것은 animals 테이블에 등록된 직후일 수 있고, 몇 분이 지난 후일 수도 있습니다. 비동기 처리이므로, 위반 감지 실행은 animals 테이블로의 데이터 등록 후이기만 하면 제한은 없습니다. 또한 위반 감지가 실패해도 animals 테이블의 데이터에는 아무런 영향이 없습니다. (…) 큐에는 RabbitMQ로 기동한 메시징 큐 서비스를 사용합니다. RabbitMQ는 AMQP(Advanced Message Queuing Protocol)를 사용한 메시징 미들웨어입니다. RabbitMQ는 서비스로서 가동하고, 메시지 등록과 전송을 담당합니다. 백엔드 API가 Producer(메시지를 보내는 측)로서 위반 감지 대상 이미지 ID를 RabbitMQ에 등록하고, 위반 감지 시스템이 Consumer(메시지를 받는 측)로서 이미지 ID를 받아 위반 감지를 실시합니다.
--- p.203
이제 순위 학습 모델을 2종류 만들었습니다. A/B 테스트를 통한 비교를 같은 기준으로 하기 위해, 새롭게 만든 LGBMRegressor 모델도 LGBMRanker 모델과 마찬가지로 자동으로 학습하고 릴리스합니다. 여러 모델을 운용할 때의 각 모델의 학습 타이밍은 비교 기준이나 모델의 특성에 따라 결정해야 합니다. 여기에서는 두 모델 모두 같은 데이터를 사용해서 학습, 추론을 실행하므로 같은 시점에 학습하고 릴리스하는 것으로 합니다. 양쪽 모두 정기적으로 업데이트되는 특징량 스토어에 의존하는 모델이므로, 학습은 반드시 특징량 스토어 업데이트 후 실시합니다.
--- p.313