Ludwig 모델 서빙 — REST API로 예측 제공하기
Ludwig 모델 서빙 — REST API로 예측 제공하기
학습한 모델을 실제로 쓰려면 API로 노출해야 해요. Ludwig는 두 가지 서빙 방식을 제공해요 — ECD 모델용 범용 REST API와, LLM용 OpenAI 호환 서버예요. ludwig serve 하나로 시작할 수 있어요.
서버 시작
ludwig serve --model_path=/path/to/model
이 명령은 FastAPI 서버를 띄우고, 다음 엔드포인트를 제공해요.
| 엔드포인트 | 메서드 | 설명 |
|---|---|---|
/ |
GET | 헬스체크 |
/info |
GET | 모델 메타데이터(입출력 피처, 모델 타입) |
/predict |
POST | 단건 예측 |
/batch_predict |
POST | 배치 예측 |
/metrics |
GET | Prometheus 메트릭 |
단건 예측
/predict에 피처 값을 JSON으로 POST하면 예측을 받아요.
curl http://0.0.0.0:8000/predict -X POST \
-H "Content-Type: application/json" \
-d '{"text_feature": "words to predict", "number_feature": 42}'
주요 기능
- 자동 Pydantic 스키마: 모델 config로부터 요청/응답 검증 스키마를 자동 생성해요.
- Prometheus 메트릭:
/metrics에서 요청 수·레이턴시 히스토그램을 제공해요. - 구조화 로깅: 모든 요청의 메서드·경로·상태·지속시간·클라이언트를 기록해요.
- 타임아웃: 긴 예측에 대한
--prediction_timeout을 설정할 수 있고, 초과 시 HTTP 504를 반환해요.
서빙 옵션 고르기
| 옵션 | 규모 | 프로토콜 | 적합한 곳 |
|---|---|---|---|
ludwig serve (FastAPI) |
단일 프로세스 | REST JSON | 개발·간단한 API |
| Ray Serve | 멀티레플리카·오토스케일 | REST JSON | Ray 클러스터 프로덕션 |
| KServe | 쿠버네티스 네이티브 | OIP v2 | 엔터프라이즈 쿠버네티스 |
ludwig serve (vLLM) |
GPU 최적화 | OpenAI 호환 | LLM 서빙 |
더 알아보기
LLM 서빙과 vLLM 통합, 배포 옵션의 자세한 내용은 공식 Serving 문서에서 확인할 수 있어요.