첫 토큰까지의 시간, 출력 토큰당 시간, 출력 토큰 수로부터 스트리밍 LLM 응답이 처음부터 끝까지 걸리는 시간을 추정합니다.
입력
서빙 프로파일
첫 번째 토큰이 나타나기까지 사용자가 기다리는 시간이다. 프롬프트 처리(프리필)와 첫 토큰 디코딩을 포함하며, 보통 밀리초 단위로 보고된다.
생성 도중 연속된 스트리밍 토큰 사이의 간격으로, 토큰 간 지연(inter-token latency)이라고도 한다. 그 역수가 정상 상태의 생성 속도(초당 토큰 수)이다.
≥ 1
모델이 응답에서 생성하는 토큰의 개수이다. 답변이 길어질수록 토큰마다 토큰 간 지연이 하나씩 더해지므로, 지연 시간은 이 값에 대략 비례하여 증가한다.
결과
값을 입력하면 계산 결과가 표시됩니다.
500개 토큰 답변을 끝까지 완료하는 데 걸리는 처음부터 끝까지의 시간으로, 첫 토큰 지연 200 ms에 첫 토큰 이후 모든 토큰마다 더해지는 토큰 간 지연을 합한 값이다(...).
세부 정보
출력 토큰 수를 전체 응답 시간으로 나눈 값(... 초당 토큰)이다. 고정된 첫 토큰 지연이 답변 전체에 분산되므로 원시 생성 속도보다 낮게 나온다.
추론 지연 시간
추론 지연 시간은 사용자가 언어 모델의 답변을 기다리는 시간이다. 스트리밍 응답에서는 두 개의 뚜렷한 부분으로 나뉜다. 텍스트가 나타나기 전의 초기 정지 시간과 그 뒤를 잇는 일정한 토큰 리듬이다. 이 계산기는 두 값을 답변 길이와 결합하여, 처음부터 끝까지의 응답 시간과 단일 요청이 실제로 경험하는 처리량을 추정한다.
첫 토큰까지의 시간과 출력 토큰당 시간
스트리밍 엔드포인트는 두 가지 측정값으로 기술된다. 첫 토큰까지의 시간()은 요청을 보낸 시점부터 첫 토큰이 보일 때까지의 지연이다. 프롬프트를 읽고, 모든 프롬프트 토큰에 대해 어텐션 캐시를 구축하는 연산 부하가 큰 프리필 단계를 거쳐, 토큰 하나를 디코딩하는 과정을 포함한다. 프롬프트가 길수록 이 값은 커진다. 출력 토큰당 시간()은 토큰 간 지연이라고도 하며, 디코드 단계에서 이어지는 각 토큰 사이의 간격이다. 디코딩은 메모리 대역폭에 의해 제한된다. 새 토큰마다 모델 가중치 전체를 한 번씩 읽으므로 이 값은 거의 일정하게 유지되며, 그 역수가 정상 상태의 생성 속도(초당 토큰 수)이다.
공식
첫 토큰은 이미 첫 토큰까지의 시간에 포함되어 있으므로, 나머지 토큰 각각이 토큰 간 간격을 하나씩 더한다.
Tv=tttft+(Nout−1)ttpot=TNout
여기서 은 출력 토큰 수, 는 전체 응답 시간, 는 전체 처리량이다. 1을 빼는 항은 개수를 정확하게 유지하며, 긴 답변에서는 결과를 거의 바꾸지 않는다.
계산 예시
어떤 엔드포인트가 첫 토큰까지의 시간 200 ms와 출력 토큰당 시간 20 ms(정상 상태 생성 속도 50 tokens/s에 해당)를 보고하고, 모델이 500개 토큰 답변을 생성한다고 하자.
답변에는 약 10초가 걸리며, 전체 처리량 49.1 tokens/s는 고정된 첫 토큰 지연이 응답 전체에 분산되기 때문에 원시 속도 50 tokens/s를 약간 밑돈다. 두 수치의 차이는 답변이 길수록 줄어들고, 시작 정지 시간이 지배하는 짧은 답변에서는 커진다.
지연 시간 줄이기
첫 토큰까지의 시간은 프롬프트를 짧게 하고, 프롬프트 캐싱을 쓰고, 더 빠른 프리필 하드웨어를 쓰면 줄어든다. 출력 토큰당 시간은 메모리 대역폭을 높이고, 양자화하고, 모델을 한 번 통과할 때 토큰을 여러 개 내보내는 추측 디코딩 같은 기법을 쓰면 줄어든다. 전체 시간은 생성되는 토큰마다 늘어나므로, 대화형 애플리케이션에서는 최대 출력 길이를 제한하는 것이 가장 직접적인 조절 수단인 경우가 많다. 드래프트 모델의 수용률이 토큰당 수치를 어떻게 바꾸는지 살펴보려면 추측 디코딩 속도 향상 계산기를 참고하고, 플릿 단위의 용량을 모델링하려면 유효 초당 토큰 수 계산기를 참고하면 된다.
자주 묻는 질문 (FAQ)
첫 토큰까지의 시간과 출력 토큰당 시간의 차이는 무엇인가
첫 토큰까지의 시간(TTFT)은 초기 대기 시간을 측정한다. 모델이 프롬프트 전체를 읽고 어텐션 캐시를 채운 뒤 첫 토큰을 내보내는 시간이다. 출력 토큰당 시간(TPOT), 즉 토큰 간 지연은 그 이후의 일정한 리듬을 측정하며, 이때 새 토큰은 한 번의 디코드 단계만 필요하다. TTFT는 프롬프트 길이에 비례하며 연산 부하가 큰 프리필 단계가 지배한다. 반면 TPOT는 디코딩 중 메모리 대역폭에 의해 결정되며 토큰당 거의 일정하게 유지된다.
공식에서 왜 출력 토큰 수에서 1을 빼는가
첫 토큰은 이미 첫 토큰까지의 시간 안에 포함되어 있으므로, 나머지 토큰만 토큰 간 지연을 더한다. 따라서 500개 토큰 답변은 첫 토큰 이후 499번의 토큰 간 간격을 더한다. 긴 답변에서는 토큰 수로 곱하든 토큰 수에서 1을 뺀 값으로 곱하든 차이가 작지만, 1을 빼는 형태가 정확하다.
서빙 지연 시간을 어떻게 줄일 수 있는가
첫 토큰까지의 시간은 프롬프트를 짧게 하고, 프롬프트 캐싱을 쓰고, 더 빠른 프리필 하드웨어를 쓰면 줄어든다. 출력 토큰당 시간은 메모리 대역폭을 높이거나 양자화 또는 추측 디코딩(speculative decoding)을 적용하면 줄어든다. 전체 시간은 생성되는 토큰마다 늘어나므로, 최대 출력 길이를 제한하는 것이 가장 간단한 조절 수단인 경우가 많다.
면책조항
결과는 토큰당 지연이 일정한 단일 연속 스트림을 가정한다. 실제 서빙 시스템은 배칭, 큐 대기, 네트워크 전송, 부하에 따라 달라지므로, 이 수치는 서비스 수준 보장이 아니라 계획용 추정치로 다루는 것이 좋다.