전처리를 script 말고 layer 로
ML 프로덕션에서 가장 흔한 버그가 train/serve skew 야. 학습 파이프라인은 픽셀을 255 로 나누고 텍스트를 소문자화하는데, serving 코드가 그 한 단계를 빼먹으면 — model 이 학습 때랑 미묘하게 다른 입력에 조용히 헛소리를 뱉어. Keras 3 의 답은 전처리를 model graph 안에 사는 layer 로 만드는 것 — model 저장하면 전처리도 같이 저장되고, 따로 sync 맞출 두 번째 script 가 아예 없어.
카탈로그
숫자: Rescaling(1./255) 가 픽셀을 [0, 1] 로, Normalization() 이 feature 를 zero-mean / unit-variance 로. 텍스트: TextVectorization 이 raw 문자열을 정수 sequence 로. 범주: CategoryEncoding / StringLookup 이 범주·문자열을 model 이 먹을 tensor 로. 같은 패밀리에 image augmentation (RandomFlip, RandomRotation) 도 있어.
adapt() 단계
Rescaling 같은 stateless layer 는 아무것도 필요 없어 — 계수가 고정이거든. 근데 Normalization 이랑 TextVectorization 은 data 에서 통계를 먼저 배워: layer.adapt(train_data) 를 한 번 호출하면 layer 가 mean/variance 를 계산하거나 vocab 을 구축해. adapt 후엔 일반 layer 처럼 동작하고, 그 학습된 통계를 배포 환경까지 자동으로 들고 가.