스프링캠프 2025 [Track 1] 1. 난 spring에서 ml 서빙을 해봤어요 (김수원)
- ML 서빙을 스프링(JVM) 환경에서 하는 방법과 이유, 그리고 현실적인 대안들을 제시 💡
- ML 엔지니어 김수원은 네이버, 토스, 현재 사이오닉 AR에서 ML 서비스를 개발 👨💻
- 스프링에서 ML 서빙은 흔치 않지만 가능하다는 것을 강조하며, 그 이유와 방법을 설명 🗣️
- ML 영역은 매우 복잡하지만, 스프링 백엔드 개발자가 ML을 서비스에 적용하는 방법을 제시 🛠️
- 상사가 ML을 요구할 때, 스프링 개발자가 ML을 서비스에 적용하는 방안을 모색 🧐
- ML 개발에 주로 사용되는 파이썬은 프로덕션 서비스에 제약이 많고, 패키지/환경 관리가 복잡하며, 대규모 서비스에 어려움이 있음 🐍
- ML 서비스에 특화된 추론 서버/엔진(NVIDIA Triton, VLLM)도 존재하지만, 높은 성능 요구, 복잡한 설정, 기술 지원의 한계, 높은 비용 등의 문제점이 있음 ⚙️
- JVM 환경은 이미 많은 장점을 가지고 있으며, ML 서빙에도 활용 가능 ☕
- JVM에서 ML 서빙을 위한 다양한 방법(ONNX, TensorFlow, DJL)이 존재 📚
- DJL은 자바 개발자의 ML 진입 장벽을 낮추는 것을 목표로 하며, AI 전문가가 아니어도 ML을 활용할 수 있도록 지원 🧑🏫
- DJL은 다양한 모델을 활용할 수 있으며, 특히 허깅페이스와의 연동은 큰 강점 💪
- 커머스 서비스의 리뷰 분석을 예시로 DJL을 활용한 ML 적용 방법을 설명 🛍️
- DJL을 사용하면 몇 줄의 코드로 리뷰의 긍정/부정 감성을 분석할 수 있음 📝
- 넷플릭스에서도 DJL을 활용하여 서비스를 제공하고 있음 🎬
- 고성능 ML 서빙을 위해서는 하드웨어 최적화가 필수적이며, 이를 위해 TensorFlow와 같은 저수준 라이브러리를 활용할 수 있음 ⚙️
- TensorFlow를 사용하면 GPU 메모리 설정, 병렬 처리 설정, 동적 배치 처리, 제로카피 메모리 등의 최적화가 가능 🚀
- 사이오닉 AI의 스톰 솔루션은 TensorFlow를 활용하여 문서 탐색 작업을 수행하고 있음 🔎
- 스톰 솔루션은 RAG (Retrieval-Augmented Generation) 시스템 구조를 활용 🤖
- 텐서플로우를 사용하면 모델 구조와 내부 로직을 직접 설계하여 성능 튜닝이 가능 🧰
- JVM 기반 ML 서빙은 장점도 있지만, 모델 구조를 직접 설계해야 하고, 하드웨어 튜닝이 필요하며, 자바 생태계의 ML 지원이 느린 단점도 존재 😥
- ML 서빙은 JVM 외에도 파이썬, 엔진, 클라우드 서비스 등 다양한 선택지가 있으며, 각 환경과 테스크에 맞게 선택해야 함 🎯
- 사이오닉 AI는 LM 튜닝 및 백엔드 개발자를 채용 중 🏢