배포 내용에 따라 모델 매개변수 배포, 직렬화 객체 배포, 브라우저 배포 등으로 나눌 수 있다.
배포 위치에 따라 사용자 기기 배포, 서버에 동적 배포, 컨테이너 배포, 서버리스 배포, 모델 스트리밍 등으로 나눌 수 있다.
사용자 요청에 따라 온라인 예측, 배치(비동기) 예측으로 나눌 수 있다.
모델 최적화 과정: Low-Rank Factorization, Knowledge Distillation, Pruning, Quantization
배포 전략
자동 배포: 새로운 버전이 병렬 실행 vs 카나리(Canary) 배포: 점진적으로 트래픽 전환
멀티 암드 밴딧: 병렬적으로 여러 버전 배포 → 성능이 좋은 쪽으로 트래픽 가중
모델에 수반되는 항목으로는 end-to-end 모델 세트, 신뢰도 테스트 세트, 성능 지표 및 허용 범위 등이 있다.
버전 동기화 관련해서 훈련 데이터, 특징 추출기(전처리), 모델을 체크할 것 → 데이터를 업데이트 할 때마다 새로운 버전 생성, 특징 추출기도 같이 업데이트(변하지 않더라도!), 트랜잭션 활용한 스크립트 자동화
메타 데이터: 훈련 모듈의 의존성, requirements.txt(아마 모델), 학습 알고리즘, 하이퍼파라미터 이름/값, 모델 입력 feature, 출력 데이터 목록/유형/사용방법, 훈련 데이터 버전/위치, 하이퍼파라미터 튜닝 시 활용한 데이터 버전/위치, 모델 채점 코드 ...
심층 전략
캐싱: functools.lru_cache 사용(데코레이터) → 설정 값 초과시 FIFO로 제거