머신러닝 엔지니어링(machine learning engineering, MLE)은 머신러닝과 기존 소프트웨어 엔지니어링의 과학적 원리, 도구, 기술을 통해 복잡한 컴퓨팅 시스템을 설계하고 구축하는 것이다. MLE는 데이터 수집부터 모델 훈련, 제품이나 고객이 모델을 사용할 수 있도록 하는 모든 단계를 포함한다.
--- p.18
머신러닝 프로젝트 수명주기에는 1) 목표 정의, 2) 데이터 수집 및 준비, 3) 특징 공학, 4) 모델 훈련, 5) 모델 평가, 6) 모델 배포, 7) 모델 서빙, 8) 모델 모니터링, 9) 모델 유지보수 단계가 있다.
--- p.20
머신러닝 프로젝트의 목표는 비즈니스 문제를 해결하거나 해결하는 데 도움이 되는 모델을 구축하는 것이다. 프로젝트 내에서 모델은 종종 입력(또는 여러 입력), 출력(또는 여러 출력)의 구조와 허용 가능한 최소 성능 수준(예측 정확도나 다른 성능 지표로 측정됨)으로 설명되는 블랙박스처럼 보인다.
--- p.28
전체 데이터 세트를 훈련, 검증, 테스트 세트로 잘 분할하려면 분할 프로세스가 다음과 같은 몇 가지 조건을 충족해야 한다. 1) 분할 전에 데이터를 랜덤화하고, 2) 원시 데이터를 분할하고, 3) 검증 세트와 테스트 세트는 동일한 분포를 따르고, 4) 누출을 방지한다.
--- p.90
모델 개발을 시작하기 전에 몇 가지를 확인하고 결정해야 한다. 우선 데이터가 스키마파일에 정의된 대로 스키마를 준수하는지 확인한다. 그 다음 달성 가능한 성능 수준을 정의하고, 성능 지표를 선택한다. 이상적으로는 모델 성능을 단일 지표로 나타내는 것이 좋다. 또한, 머신러닝 모델을 비교하기 위한 기준점을 제공하는 기준선을 설정하는 것이 중요하다. 마지막으로 데이터를 훈련, 검증, 테스트의 세 세트로 분할한다.
--- p.179
멀티 암드 밴딧은 널리 사용되는 또 다른 온라인 모델 평가 기술이다. 모든 모델을 사용자에게 랜덤하게 노출한 다음, 가장 성능이 좋은 모델 하나만 대부분의 시간 동안 서비스를 받을 때까지 성능이 가장 낮은 모델의 노출을 점차 줄여 나간다.
--- p.250