네 조각짜리 계약
머신러닝은 데이터를 답으로 바꿔주는 마법 상자가 아니야. 예측할 target, 예측 시점에 쓸 수 있는 feature, 둘을 짝지어 주는 학습 데이터, 그리고 도움이 됐는지 판정해주는 metric — 이 네 조각이 만드는 계약이야. 어느 한 조각만 깨져도 노트북 화면에서만 똑똑해 보이는 모델이 나와.
학습이 코드에선 어떻게 보이나
학습 알고리즘은 train 예제 위에서 loss가 줄도록 parameter를 바꿔. 바람은 이 parameter가 한 번도 본 적 없는 예제에서도 좋은 prediction을 내는 거고. 근데 그 바람은 자동이 아니야. 예제가 대표성이 있어야 하고, target이 명확해야 하고, feature가 prediction 시점에 합법이어야 해.
production에선 어떻게 보이나
실제 배포에선 모델은 큰 파이프라인 속의 한 박스일 뿐이야. feature 추출, scoring, threshold, decision, logging, monitoring, feedback — 다 합쳐야 ML 시스템이지. 모델 카드와 deploy 스크립트가 같은 repo 안에 없으면, 그 프로젝트는 아직 진짜 ML이 아니야.
흔한 실수
validation score가 똑똑함의 증거라고 믿는 거. notebook split에서 ROC-AUC 0.97 나왔다고 의기양양한데, feature가 사후 정보였거나 production 데이터가 train 분포에서 멀어졌으면 그 점수는 거짓말이야.