Inference추론
쉽게 이해하기
추론은 모델이 이미 배운 지식을 실제 입력에 적용해 결과를 내는 단계다. 고양이 사진을 보고 “고양이”라고 분류하거나, 질문을 보고 답변을 생성하거나, 문장을 보고 감정을 예측하는 것이 모두 추론이다. LLM에서는 입력 prompt를 token으로 바꾼 뒤, 모델이 다음 token을 반복해서 예측해 문장을 만든다.
비유와 예시
- 시험장: 학습은 공부하는 과정이고, 추론은 시험 문제를 보고 답을 쓰는 순간이다.
- 고객센터 챗봇: 사용자의 질문을 받아 관련 답변을 생성한다.
- 이미지 분류: 이미지를 입력받아 label과 confidence를 반환한다.
한눈에 비교
| 단계 | 무엇을 하나 | 주요 지표 |
|---|---|---|
| Training | 모델 파라미터를 학습 | loss, eval score, 학습 비용 |
| Fine-tuning | 특정 task/domain에 맞게 추가 학습 | validation score, overfitting |
| Inference | 새 입력에 결과를 계산 | latency, throughput, accuracy |
| Model Serving | 추론을 API/서비스로 운영 | uptime, scaling, cost |
어디서 왜 중요한가
AI 제품에서 사용자가 직접 경험하는 것은 대부분 추론이다. 학습이 아무리 잘 되어도 추론이 느리거나 비싸거나 불안정하면 제품 품질이 떨어진다. LLM 서비스에서는 첫 token이 나오기까지의 시간(TTFT), 초당 생성 token 수, 동시 요청 처리량, GPU memory, timeout이 모두 중요하다.
자주 하는 오해
- “추론은 그냥 모델을 한 번 실행하는 것” → batch, cache, scheduler, tokenizer, postprocess까지 포함된다.
- “학습 성능이 좋으면 추론도 항상 좋다” → serving 환경, context 길이, quantization, batch 크기가 결과와 비용을 바꾼다.
- “latency만 낮추면 된다” → throughput, 비용, 안정성, 품질도 같이 봐야 한다.
- “GPU가 크면 무조건 빠르다” → 메모리 대역폭, batch shape, KV cache, framework 최적화가 함께 작동한다.
대화에서는 이렇게
- “이 모델은 accuracy보다 P95 inference latency가 병목입니다.”
- “decode 단계가 길어져서 output token 수 제한을 다시 봐야 합니다.”
- “batching을 키우면 throughput은 좋아지지만 개별 요청 latency가 늘 수 있습니다.”
- “KV cache memory 때문에 동시 요청 수가 제한됩니다.”
함께 읽으면 좋은 용어
참고 자료
- torch.inference_mode
gradient 추적을 끄는 inference runtime 모드와 model.eval()의 차이를 설명하는 공식 문서.
- Text Generation Inference
LLM inference serving, streaming, batching, tensor parallelism, metrics를 다루는 공식 문서.
- OpenAI-Compatible Server
vLLM 기반 HTTP inference server와 OpenAI-compatible API serving 흐름을 설명한다.
- Inference Protocols and APIs
inference request, input/output tensor, HTTP/gRPC endpoint, async response 흐름을 설명하는 공식 문서.
- KServe
Kubernetes 기반 scalable inference platform과 autoscaling, GPU serving 맥락을 설명한다.