인프라

레이턴시 최적화

Latency Optimization

LLM이 답을 빨리 시작하고 빨리 끝내게 만드는 방법 모음으로, 첫 글자가 나오기까지의 시간과 답을 끝내기까지의 시간을 줄인다. 채팅, 음성 비서, 자동완성처럼 사용자가 화면 앞에서 답을 기다리는 서비스라면 꼭 챙겨야 한다.

기다리는 시간은 아래처럼 나눠서 본다.

지표뜻사용자가 느끼는 것주로 줄이는 방법
TTFT요청 후 첫 토큰까지 걸리는 시간반응이 늦다프롬프트 캐싱, 짧은 입력
TPOT토큰 하나를 만드는 간격글이 천천히 나온다작은 모델, 추측적 디코딩
전체 시간TTFT + 출력 길이 × TPOT끝날 때까지 기다린다출력 줄이기, 요청 수 줄이기

API만 써도 바로 줄일 수 있다

모델을 직접 돌리지 않아도 API를 부르는 쪽에서 할 수 있는 일이 많다. 전체 시간은 출력 길이에 비례해서 늘어나므로, 출력을 줄이는 것부터 하는 게 효과가 크다.

방법어떻게효과
스트리밍stream 옵션 켜기첫 글자가 바로 보여 덜 기다리는 느낌
출력 줄이기"세 줄로" 지시, 최대 토큰 제한전체 시간이 크게 준다
프롬프트 캐싱고정된 시스템 프롬프트·문서를 앞에 두기반복 요청의 TTFT가 준다
작은 모델분류·추출은 경량 모델에 맡기기토큰 생성 자체가 빨라진다
요청 합치기·병렬화서로 상관없는 단계는 동시에 호출하기주고받는 횟수가 준다

직접 서빙하면 엔진에서 줄인다

vLLM 같은 서빙 엔진으로 모델을 직접 띄운다면 서버 쪽 기법도 쓸 수 있다. KV 캐시는 이미 계산한 앞부분을 다시 계산하지 않게 하고, Flash Attention은 긴 프롬프트를 빨리 처리한다.

추측적 디코딩은 작은 모델이 토큰 여러 개를 먼저 써 두면 큰 모델이 한꺼번에 검사하는 방식이라 TPOT가 준다. 양자화로 모델을 가볍게 만들거나, 사용자와 가까운 지역에 서버를 두어 네트워크 왕복 시간을 줄이는 방법도 있다.

빠른 응답과 처리량은 서로 맞바꾼다

요청을 크게 묶어 처리하면 서버가 한 번에 많이 처리하지만, 요청 하나하나는 느려진다. 그래서 상황마다 무엇을 먼저 챙길지 정해야 한다.

상황먼저 볼 것
채팅, 음성, 자동완성TTFT
에이전트의 중간 단계전체 시간
밤새 도는 대량 요약처리량과 비용

재 보고 고친다

작은 모델로 바꾸거나 출력을 줄이면 품질이 떨어질 수 있으니, 바꾸기 전과 후의 답을 비교해 본다. 프롬프트 캐싱은 앞부분이 매번 같아야 적용되므로 날짜나 사용자 이름처럼 바뀌는 값은 뒤에 둔다.

감으로 고치지 말고 TTFT와 전체 시간을 따로 기록해서 어디가 느린지부터 찾는다. 정해진 규칙으로 처리할 수 있는 단계는 LLM 대신 일반 코드로 바꾸는 것이 가장 빠르다.

사용자가 기다리는 곳마다 챙긴다

가장 흔한 건 스트리밍과 프롬프트 캐싱을 기본으로 켜 두는 방식이다. 그 위에 서비스 성격에 맞춰 출력 길이, 모델 크기, 호출 순서를 조절한다.

어디서어떻게 쓰나
채팅 서비스스트리밍을 켜고 고정된 시스템 프롬프트를 캐싱해 첫 글자를 바로 보여준다
음성 비서짧게 답하라고 지시하고, 첫 문장이 나오는 대로 음성으로 바꿔 읽기 시작한다
코드 자동완성작은 모델과 짧은 출력으로 타이핑하는 동안 제안이 바로 뜨게 한다
에이전트상관없는 도구 호출은 동시에 보내고, 단순한 단계는 경량 모델이나 일반 코드로 넘긴다
#TTFT#지연시간#응답속도
참고 자료
관련 영상
← AI Wiki에서 더 보기
updated at 2026-10-20