89
5장 상용화준비
도구에 대한 고려 사항
상용 환경에 전달하기 위한 포맷을 미리 고려해야 한다. 포맷은 모델 자체와 상용화 과정에 필
요한 작업량에 큰 영향을 미치기 때문이다. 예를 들어, 모델은
scikit
-
learn
(
Python
)을 사용
하여 개발하였고 상용 환경은
PMML
혹은
ONNX
형태로 입력해야 하는
Java
기반 환경이라
면, 변환 작업이 필요하다.
이런 경우, 모델을 개발하면서 도구(개발 언어 및 환경)를 설정해야 한다. 이상적으로 보면, 모
델의 첫 번째 버전을 개발하기 전 혹은 아예 개발 시작 전에 설정하는 것이 좋다. 이 파이프라인
을 미리 구축하지 못한다면, 검증 절차를 진행할 수 없다. 당연한 말이지만, 최종 검증은
scikit
-
learn
으로 개발한 직후의 모델로 수행하면 안 된다. 상용 배포할 모델이 아니기 때문이다.
성능에 대한 고려 사항
변환이 필요한 또 하나의 일반적인 이유가 있는데, 바로 성능 때문이다. 예를 들어,
Python
모
델은 보통
C
++로 변환한 모델에 비해 결과를 반환하기까지 필요한 지연시간이 훨씬 길다. 모
델을 변환하면 수십 배 빠를 가능성이 있다. 영향을 끼친 요소가 많이 있을 수 있고, 때에 따라
변환의 결과로 얻은 모델이 수십 배 느릴 수도 있다.
상용 모델을 저전력 기기에서 실행해야 하는 경우에도 성능은 중요한 요소다. 예를 들어, 심층
신경망
Deep
Neural
Network
(
DNN
)의 경우 학습된 모델은 수십억 개 이상의 매개변수를 지닌 매우
거대한 형태일 수 있다. 소형 기기에 ...