섹션별 상세
SMILE Serve는 클래식 ML, ONNX, LLM이라는 세 가지 핵심 추론 기능을 통합하여 제공합니다. 각 기능은 전용 API 엔드포인트를 가지며, 직렬화된 SMILE 모델이나 범용 ONNX 모델을 자동으로 감지하여 로드합니다. 이를 통해 개발자는 서로 다른 프레임워크로 학습된 모델들을 하나의 서버 인프라에서 관리할 수 있습니다. 자바 생태계 내에서 머신러닝 모델 배포의 복잡성을 크게 낮추는 효과가 있습니다.
근거
- SMILE Serve는 클래식 ML, ONNX, LLM 채팅이라는 세 가지 상호 보완적인 추론 기능을 JVM 상에서 통합 제공한다. — README.md의 Capability 테이블 섹션
- GraalVM을 사용해 네이티브 실행 파일로 컴파일하면 밀리초 미만의 시작 시간과 더 적은 메모리 사용량을 달성할 수 있다. — 2.4 Native Executable 섹션
클래식 ML API는 .sml 파일을 통해 랜덤 포레스트, SVM 등의 알고리즘 추론을 지원합니다. 모델 로드 시 입력 스키마를 자동으로 분석하며, 단일 JSON 요청뿐만 아니라 CSV 및 JSON-lines 형식의 대용량 스트리밍 추론을 지원합니다. 내부 테스트 결과 SSE 방식을 통해 데이터 행마다 실시간으로 예측값과 확률을 반환할 수 있음이 확인됐습니다. 이는 실시간 데이터 파이프라인에서 지연 시간을 최소화하며 대량의 예측을 수행하는 데 유리합니다.
bash
docker run -it \
-v /path/to/model/folder:/model \
-p 8888:8080 \
ghcr.io/haifengl/smile-serve:latestDocker를 사용하여 SMILE Serve를 빠르게 실행하고 로컬 모델 디렉토리를 마운트하는 방법
ONNX 추론 API는 PyTorch나 TensorFlow에서 내보낸 모델을 SMILE의 네이티브 ONNX 런타임 바인딩을 통해 실행합니다. 서버는 모델의 입력 노드 형태(Shape)를 자동으로 분석하며, 동적 차원(-1)이 포함된 경우 입력 데이터 길이에 맞춰 형상을 자동으로 결정합니다. 실제 사용 시 복잡한 텐서 구조를 JSON 배열로 전달하면 서버가 내부적으로 적절한 ORT 텐서를 생성하여 처리합니다. 다양한 딥러닝 프레임워크 모델을 자바 환경에서 일관된 방식으로 서빙할 수 있게 합니다.
bash
curl -X POST http://localhost:8080/api/v1/models/iris_random_forest-1 \
-H "Content-Type: application/json" \
-d '{ "sepallength": 5.1, "sepalwidth": 3.5, "petallength": 1.4, "petalwidth": 0.2 }'JSON 객체를 사용하여 클래식 머신러닝 모델에 단일 추론 요청을 보내는 예시
Llama 3 기반의 LLM 채팅 API는 OpenAI와 호환되는 인터페이스를 제공하여 기존 앱과의 연동이 용이합니다. SentencePiece 토크나이저와 GPU 가속을 지원하며, 대화 내용을 PostgreSQL 등의 관계형 데이터베이스에 자동으로 저장하고 관리합니다. 최대 4096 토큰의 시퀀스 길이를 지원하며 온도 조절 및 Nucleus 샘플링과 같은 생성 옵션을 제공합니다. 기업 내부의 온프레미스 환경에서 보안을 유지하며 생성형 AI 서비스를 구축하는 데 적합한 구조를 갖추고 있습니다.
근거
- Llama 3 채팅 API는 OpenAI Chat Completions 인터페이스와 호환되도록 설계되었다. — 6. LLM Chat API 도입부
용어 해설
- ONNX 런타임(ONNX Runtime)
- — 다양한 프레임워크에서 학습된 머신러닝 모델을 최적화하여 실행할 수 있게 돕는 고성능 추론 엔진입니다. PyTorch나 TensorFlow 모델을 공통 형식인 .onnx로 변환하여 하드웨어 가속기에서 효율적으로 구동할 수 있게 합니다.
- 서버 전송 이벤트(Server-Sent Events)
- — 서버가 클라이언트에게 실시간으로 데이터를 푸시할 수 있게 하는 단방향 통신 기술입니다. LLM의 토큰 생성 결과나 대량의 데이터 스트리밍 추론 결과를 실시간으로 전송하는 데 주로 사용됩니다.
- 그랄VM(GraalVM)
- — 자바 애플리케이션을 네이티브 바이너리로 컴파일하여 실행 속도를 높이고 메모리 사용량을 줄여주는 고성능 런타임입니다. SMILE Serve에서 밀리초 단위의 빠른 시작과 효율적인 리소스 관리를 위해 사용됩니다.
- 센텐스피스(SentencePiece)
- — 텍스트를 모델이 이해할 수 있는 토큰 단위로 분절하는 오픈소스 토크나이저 라이브러리입니다. Llama 3와 같은 모델에서 사전 훈련된 어휘집을 기반으로 입력을 수치화하는 핵심 전처리 단계에 활용됩니다.
기술
- Quarkus
- SMILE
- ONNX Runtime
- Llama 3
- GraalVM
- PostgreSQL
- React
활용 사례
- 온프레미스 LLM 챗봇 서비스
- 실시간 대량 데이터 스트리밍 예측
- 자바 기반 마이크로서비스 내 AI 모델 통합
언급된 리소스
AI 분석 전체 내용 보기
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
원문 발행 2026. 05. 05.수집 2026. 05. 05.출처 타입 RSS
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.
