일별 500개 이상 광고 model을 실시간 serving하는 카카오 메시지 광고 추천에서, LLM embedding 도입으로 커진 inference 병목을 JVM ONNX Runtime 최적화와 NVIDIA Triton 전환으로 해결한 사례다. 최적화 한계, benchmark 근거, production 운영 문제까지 순서대로 검증한다.
핵심 포인트- 광고는 소량 발송 반응으로 짧은 시간에 수렴시켜야 해 model 생성·교체가 빈번하므로, model 특성을 모르는 platform과 실제 연산 server를 분리하고 공통 API·routing으로 serving 구현을 교체 가능하게 설계
- LLM embedding의 dense vector·큰 입력으로 serialization·compression·feature transform 비용이 늘자 JVM ONNX Runtime을 indexing·data layout으로 개선해 처리량 최대 2.5배, 다만 vector 특성별 효과 차이와 model 내부 profiling 어려움이 한계
- 동일 hardware·model·request 조건에서 Triton과 비교해 server throughput 최소 195% 증가·p90 latency 최소 83% 감소로 전환 근거 확보
- open-source server의 black-box 위험은 thread·resource 분석과 ONNX Runtime thread 수 조정으로 대응하고, Triton Model Analyzer가 instance·batch 조합을 자동 실험해 model별 최적 설정을 배포 pipeline에 반영
왜 읽나LLM feature로 무거워진 추천 inference를 JVM 최적화만으로 버티다 한계에 부딪힌 엔지니어에게, Triton 전환의 정량 근거와 관측성·자동 tuning 운영 노하우를 제공한다.