한 모델, 다섯 가지 서빙
같은 "빵빵 베이커리 하루 판매량 예측" 문제를 서빙 스택만 바꿔 가며 올려 두었습니다. 상자(컨테이너)마다 주소가 있고, 앞의 두 페이지에서 바로 눌러 볼 수 있습니다. 전부 Azure 의 작은 VM 한 대(2 vCPU · 4 GiB) 위입니다.
해 볼 것
- bakery.camp.itda.work — 주문 하나를 세 상자(sklearn · ONNX · 무거운 RF)에 동시에 보내 예측값·구간 시간·캐시를 나란히 봅니다. 겨울 주문을 태우면 모델이 "조용히 늙는" 모습(Drift)이 시작됩니다.
- lang.camp.itda.work — 같은 ONNX 모델을 FastAPI · Django(gthread/Granian) · Starlette · Rust · Go 여섯 서버가 서빙합니다. 같은 입력을 보내 응답 시간을 비교합니다.
- llm.camp.itda.work — llama.cpp 서버의 채팅 UI(Qwen2.5-0.5B). API 키가 필요합니다(강사에게). 토큰/초가 어떻게 나오는지 보는 용도이지, 답의 품질은 기대하지 마세요.
사다리
| 단계 | 상자 | 모델 | 스택 | 주소 |
|---|---|---|---|---|
| 1 | s1 | RandomForest 60그루 (joblib) | FastAPI + uvicorn, 메모리 캐시 | s1.camp…/docs · /model |
| 2 | onnx | 같은 모델 → ONNX | FastAPI + ONNX Runtime | onnx.camp…/docs |
| 3 | heavy | RandomForest 600그루 · 깊이 무제한 | FastAPI + sklearn | heavy.camp…/docs |
| 4 | llm | Qwen2.5-0.5B-Instruct GGUF | llama.cpp 서버 (OpenAI 호환 /v1) | llm.camp… |
| 5 | f1 · d1 · g1 · st · r1 · n1 | bench 의 ONNX 분류 모델(lr · rf) | FastAPI · Django gthread · Granian · Starlette · Rust axum · Go net/http | f1 · d1 · g1 · st · r1 · n1 |
감시
모든 상자의 지표는 강사 맥의 Prometheus 가 15초마다 긁어 Grafana 에 그립니다(tailnet 전용이라 여기서는 링크가 없습니다). 응답시간 · 에러율 · 예측 분포 · Drift 점수 · 메모리 · 토큰/초가 한 화면에 있습니다. 이 페이지에서 보내는 요청도 전부 거기에 찍힙니다.
이 연습장은 강의(ai-campus MLOps)를 준비하는 강사 본인의 것입니다. 모델은 합성 데이터로 학습했고 숫자는 실제 매출과 관계가 없습니다. 벤치마크 수치는 여기서 재지 않습니다 — 공용 VM 위의 "모양 보기" 입니다.