모델 구조가 기계 학습 시스템의 30%라면 데이터 파이프라인은 나머지 70%를 차지해. Keras 3는 이미지 증강, 텍스트 벡터화, 정규화 같은 전처리를 모델 그래프 안에서 실행하고 저장된 모델과 함께 옮길 수 있게 해. 여기에 tf.data, torch.DataLoader, grain을 연결하는 방법도 배운다.
전처리를 스크립트가 아니라 레이어로
운영 환경에서 자주 생기는 문제는 학습과 서빙의 전처리가 미묘하게 달라지는 현상이야. 두 코드 경로가 분리되면 같은 입력을 다르게 바꾸는 학습·서빙 불일치가 생기지. Keras 3는 Rescaling, Normalization, RandomFlip, RandomRotation, TextVectorization, IntegerLookup을 모두 조합 가능한 레이어로 제공해. 모델 안에 포함하면 저장된 .keras 파일이 동일한 변환을 운영 환경까지 함께 가져가.
상태가 있는 레이어는 먼저 adapt()
Normalization과 TextVectorization처럼 상태가 있는 레이어는 사용 전에 데이터를 관찰해야 해. .adapt(data)를 한 번 호출하면 평균·분산이나 어휘를 학습해 가중치로 저장하고, 이후 추론에서도 같은 변환을 결정론적으로 적용해. 고정된 1/255 배율만 사용하는 Rescaling처럼 상태가 없는 레이어에는 이 단계가 필요 없어. 아래 코드는 두 종류를 보여 주고 크기 조정 레이어를 모델 안에 넣어.
전처리를 둘 위치 정하기
전처리는 모델 안이나 tf.data 파이프라인에 둘 수 있어. 모델 안에 두면 이식과 배포가 안전하고, 데이터 파이프라인에 두면 CPU가 GPU 학습과 병렬로 처리해 더 빠를 수 있어. 정규화와 어휘처럼 배포에도 반드시 필요한 학습된 변환은 모델 안에 두고, 무작위 증강처럼 학습에만 쓰며 다시 만들기 쉬운 작업은 속도와 불일치 위험을 따져 데이터 파이프라인에 둘 수 있어.