추론 (Inference)
serving · generation
한 줄로
추론은 학습된 모델에 새 입력을 넣어 출력을 만드는 행위이며, 모델 자체를 만들어내는 학습과 대비된다. 학습은 한 번의 비용이고 추론은 요청마다 반복된다. 널리 쓰이는 모델의 생애로 보면 추론이 지출과 에너지 모두를 지배한다.
추론은 성능 특성이 다른 두 국면으로 나뉜다.
프리필은 입력 전체를 한 번에 처리한다. 병렬화가 잘 되고 연산에 묶이며, 입력 길이에 따라 늘어나 «첫 토큰까지의 대기 시간»을 정한다.
디코드는 출력을 한 토큰씩 만든다. 매 단계 모델 가중치를 전부 훑어야 해서 메모리 대역폭에 묶이고, 사용자가 체감하는 초당 단어 수를 결정한다.
대부분의 서빙 최적화는 이 둘 중 하나를 공략한다. 연속 배칭은 서로 다른 시점에 도착한 요청을 합쳐 가속기를 놀리지 않는다. KV 캐싱은 어텐션 중간 상태를 저장해 앞 토큰을 매 단계 다시 계산하지 않게 한다. 추측 디코딩은 작은 모델이 여러 토큰을 초안으로 내고 큰 모델이 한 번에 검증한다. [양자화](/ko/glossary/quantization) 는 가중치를 줄여 빠른 메모리에 더 많이 담는다. [전문가 혼합](/ko/glossary/mixture-of-experts) 은 토큰마다 신경망의 일부만 거치게 한다.
경제적 결론은, AI 제품의 마진이 성립하는지를 모델 크기가 아니라 추론 효율이 정한다는 것이다 — 그리고 비용을 깎는 그 최적화들이 에너지 소비도 함께 깎는다.
자주 묻는 질문
- 첫 토큰이 왜 나머지보다 느린가?
- 무언가를 생성하기 전에 입력 전체를 처리해야 하기 때문이다(프리필 단계). 그 뒤의 디코드 단계는 토큰을 하나씩 만들며, 연산량보다 메모리 대역폭에 묶인다.
- 전체적으로 추론이 학습보다 비싼가?
- 실제로 쓰이는 모델이라면 그렇다. 학습은 유한하고 추론은 무한히 반복되며, 누적 추론 비용이 서비스 수명 안에 학습을 앞지른다.