모델 서빙 최적화를 위한 프레임워크 선정과 서빙 성능 극대화하기
코드너리 | 2022. 08. 12
머신러닝
ML 파이프라인
사용된 기술:
기존 시스템의 한계:
- 파이썬 기반의 모델 전/후처리 코드를 코틀린으로 변환하는 과정에서 추가적인 개발이 필요했고, 종종 변환 과정에서 결과의 정합성 이슈가 발생했습니다.
- 다양한 딥러닝 프레임워크(Tensorflow, PyTorch 등)로 개발된 모델은 정합성의 차이가 허용 가능한 선에서 인퍼런스 최적화를 위해 모델이 변환(ONNX, TensorRT 등) 될 수 있고, 최종적으로 모델별 최종 서빙 포맷이 다를 수 있었습니다. 하지만 다양한 포맷의 모델을 서빙하는 것은 개발 생산성, 운영 안정성 측면에서 문제가 있어, 최선의 선택은 아니지만 하나의 포맷으로 통일해서 서빙을 수행해야 했습니다.
- 직접 모델 서빙 서버를 개발할 경우, 서비스 요구사항을 만족시키기 위한 성능 개선과 튜닝 작업에 많은 시간과 비용이 소요되었습니다.
고려 사항:
- 직접 모델 서빙 서버를 개발하는 것 대비 높은 처리량과 낮은 지연시간
- 모델 서빙 서버의 성능 개선을 위한 최적화 및 튜닝 비용 (시간과 노력)
- 실제 운영할 수 있을 정도의 안정성
프레임워크 선정:
- 모델 서빙 프레임워크에서 제공하는 기능과 성능, 안정성 결과를 종합해 보았을 때, Triton이 가장 적합하다고 판단을 내렸습니다. 성능과 안정성도 우수하지만 다양한 모델의 포맷을 지원한다는 점이 큰 장점이라 판단했습니다.