추론 중에는추론 중에 모델이 사기 점수처럼 하나의 결과를 반환하거나, 생성된 텍스트처럼 결과를 여러 조각으로 스트리밍할 수 있습니다. 단일 예측에는 일반적으로 명확한 완료 시점이 있습니다. 하지만 스트리밍 응답에는 그렇지 않습니다. 처음으로 화면에 표시되는 출력과 완성된 응답이 서로 다른 시점에 도착하기 때문입니다.
추론 지연 시간 측정 방법
먼저 측정 경계를 정해야 합니다.
모델 지연 시간은 일반적으로 모델 서버 내부 또는 그 주변에서 수행되는 작업을 포함합니다. 플랫폼에 따라 전처리나 모델 컨테이너와의 통신이 포함될 수 있습니다.
서비스 지연 시간에는 모델 주변에서 수행되는 요청 수락 확인, 대기열 처리, 배칭이 추가될 수 있습니다.
종단 간 지연 시간은 클라이언트 관점에서 측정됩니다. 네트워크 이동, 게이트웨이, 서비스 대기열, 모델 실행, 후처리, 결과 전달이 포함될 수 있습니다.
이러한 명칭은 완전히 표준화되어 있지 않습니다. 한 플랫폼의 ‘모델 지연 시간’에 다른 플랫폼에서는 오버헤드로 기록하는 작업이 포함될 수 있습니다. 따라서 타임스탬프는 정의의 일부입니다. ‘클라이언트가 전송한 시점부터 최종 응답을 수신한 시점까지’는 비교할 수 있지만, ‘지연 시간은 800ms였다’는 표현만으로는 비교할 수 없습니다.
텍스트를 스트리밍하는 언어 모델에서는 타이머가 서로 다른 출력 이벤트에서 멈출 수도 있습니다.
- 첫 토큰까지의 시간(TTFT)은 첫 번째 출력 토큰을 수신하는 시점에 종료됩니다. 응답이 얼마나 빨리 표시되기 시작하는지를 나타냅니다.
- 종단 간 요청 지연 시간은 때때로 마지막 토큰까지의 시간이라고도 하며, 전체 응답을 수신하는 시점에 종료됩니다.
- 토큰 간 지연 시간(ITL)은 생성이 시작된 후 연속된 출력 토큰 사이의 간격을 측정합니다. 일부 도구에서는 이를 출력 토큰당 평균 시간이라고 부릅니다.
일반적으로 사용되는 한 가지 규칙은 다음과 같습니다.
종단 간 지연 시간 = TTFT + 생성 시간
응답에 출력 토큰이n개 포함되어 있다면 첫 번째 토큰 이후의 평균 토큰 간 지연 시간은 다음과 같습니다.
(종단 간 지연 시간 - TTFT) / (n - 1)
분모가n - 1인 이유는n개의 토큰이 첫 번째 토큰 이후 그만큼의 간격을 포함하기 때문입니다. 결과를 비교하기 전에 도구의 정의를 확인하세요. 일부 도구는 토큰당 평균 시간에 첫 토큰까지의 대기 시간을 포함하지만, 다른 도구는 이를 제외합니다.
계산 예시
가상의 스트리밍 응답에 대해 클라이언트가 다음 타임스탬프를 기록했다고 가정해 보겠습니다.
- 요청 전송:
0ms - 첫 출력 토큰 수신:
450ms - 마지막 출력 토큰 수신:
1,400ms - 출력 길이:
20토큰
클라이언트가 관찰한 TTFT는 450ms입니다. 종단 간 지연 시간은 1,400ms입니다. 첫 토큰 이후 생성에는 950ms가 걸렸으며, 이는 19개의 토큰 간 간격에 걸쳐 발생했습니다.
950ms / 19 = 50ms
따라서 동일한 요청에는 첫 토큰 지연 시간 450ms, 평균 토큰 간 지연 시간 50ms, 완료 지연 시간 1.40초가 각각 존재합니다. 이 수치 중 어느 하나도 다른 수치를 대신하지 않습니다.
이제 모델 서버가 모델 컨테이너 작업에 720ms가 걸렸다고 보고한다고 가정해 보겠습니다. 그렇다고 해서 나머지 680ms가 네트워크 지연이었다는 뜻은 아닙니다. 클라이언트와 서버의 타이머가 서로 겹치는 단계나 다르게 정의된 단계를 측정할 수 있기 때문입니다. 차이를 설명하려면 대기열 처리, 전처리, 모델 실행, 후처리, 네트워크 전송에 대해 서로 정렬된 타임스탬프가 필요합니다.
추론 지연 시간을 변화시키는 요인
지연 시간은 모델의 고정된 속성이 아니라 전체 테스트의 결과입니다. 다음 요인에 따라 달라집니다.
- 입력의 형태와 크기. 입력이 많을수록 전처리와 모델 작업이 더 많이 필요할 수 있습니다.
- 출력의 형태와 크기. 생성되는 응답이 길수록 순차적인 생성 단계가 더 많이 필요합니다.
- 트래픽과 동시성. 다른 작업이 동일한 서빙 리소스를 사용하고 있으면 요청이 처리 용량을 기다릴 수 있습니다.
- 배칭과 스케줄링. 요청을 묶으면 시스템 전체 효율은 향상될 수 있지만 개별 요청의 대기 시간은 늘어날 수 있습니다.
- 하드웨어와 서빙 소프트웨어.가속기, 수치 정밀도, 메모리 이동, 커널, 추론 엔진이 실행 시간에 영향을 줍니다.
- 웜 상태 또는 콜드 상태. 코드, 모델 데이터 또는 캐시가 준비되어 있지 않으면 요청이 더 느려질 수 있습니다.
- 애플리케이션 단계. 검색, 안전성 검사, 도구 사용, 후처리는 모델 외부에서 사용자에게 보이는 지연을 추가할 수 있습니다.
- 네트워크와 클라이언트 위치. 서버 측 벤치마크에는 원격 사용자가 거치는 모든 네트워크 구간이 포함되지 않습니다.
생성된 텍스트에서는 입력 길이가 출력이 시작되기 전의 대기 시간에 영향을 주는 경향이 있고, 출력 길이는 응답이 완료되는 시점에 큰 영향을 줍니다. 스트리밍은 부분 출력을 더 일찍 표시해 인터페이스의 반응성을 높일 수 있지만, 그 자체로 완료 지연 시간이 줄어든다는 보장은 없습니다.
평균만으로는 부족한 이유
프로덕션 서비스는 부하가 변하는 상황에서 크기가 서로 다른 요청을 처리합니다. 하나의 평균값은 이러한 분포를 압축하므로 대기 시간이 가장 긴 요청을 숨길 수 있습니다.
지연 시간은 백분위수로 보고되는 경우가 많습니다. p95 완료 지연 시간은 측정된 요청의 95%가 이 값 이하의 시간에 완료되었음을 의미합니다. 나머지 5%는 더 오래 걸렸습니다. p50은 중간에 해당하는 요청을 나타내며, p95 또는 p99는 느린 꼬리 구간을 더 잘 보여 줍니다.
보고된 백분위수에도 항상 맥락이 필요합니다. 최소한 다음 항목을 결과에 표시해야 합니다.
- 경계: 클라이언트에서 첫 토큰까지인지, 클라이언트에서 최종 결과까지인지, 또는 이름이 지정된 서버 측 구간인지 표시합니다.
- 워크로드: 모델, 입력 분포, 출력 분포, 요청 설정을 표시합니다.
- 부하: 동시성 또는 요청 도착 패턴을 표시합니다.
- 통계량: p50, p95, p99, 평균 또는 요청별 값을 표시합니다.
예를 들어 ‘동시 요청 20개에서 이 워크로드의 p95 클라이언트-최종 결과 지연 시간’은 활용할 수 있는 측정값입니다. 프롬프트 구성이 다르거나 단일 요청 부하에서 얻은 더 낮은 수치는 더 빠른 프로덕션 시스템이라는 증거가 아닙니다.
추론 지연 시간이 중요한 이유
지연 시간은 하나의 요청이 얼마나 오래 기다리는지를 결정합니다. 어떤 종료 시점이 중요한지는 제품에 따라 다릅니다.
대화형 인터페이스는 첫 번째로 표시되는 출력에 가장 큰 관심을 둘 수 있습니다. 백그라운드 분류기는 완료된 예측을 중요하게 여깁니다. 여러 단계로 구성된 시스템은 이전 결과가 완료되어야 다음 종속 단계를 시작할 수 있으므로, 일련의 단계가 이어지면 완료 지연 시간이 누적될 수 있습니다.
지연 시간은 시스템이 시간당 완료하는 작업량을 측정하는 처리량과도 상호작용합니다. 배치 크기나 동시성을 높이면 전체 처리량은 증가할 수 있지만 각 요청의 대기 시간은 늘어날 수 있습니다. 따라서 시스템이 초당 처리하는 총 토큰 수는 더 많아지면서도 개별 사용자에게는 더 느리게 느껴질 수 있습니다.
흔한 오해
‘추론 지연 시간’은 항상 모델 실행 시간을 의미한다. 그렇지 않습니다. 이 용어는 서비스 수준의 시간 측정이나 클라이언트가 관찰한 시간 측정에도 사용됩니다. 측정 경계를 확인하세요.
첫 토큰까지의 시간이 응답 지연 시간이다. 이는 응답을 구성하는 하나의 시점일 뿐입니다. 첫 토큰이 빠르게 도착한 뒤에도 생성에 오랜 시간이 걸릴 수 있습니다.
스트리밍을 사용하면 추론이 더 빨리 완료된다. 스트리밍은 부분 결과가 전달되는 시점을 바꿉니다. 최종 결과가 도착하는 시점이 같더라도 체감 반응성을 높일 수 있습니다.
모델에는 하나의 지연 시간 수치가 있다. 결과는 입력, 출력, 부하, 하드웨어, 소프트웨어, 보고된 통계량에 따라 달라집니다.
초당 총 토큰 수가 높을수록 지연 시간은 낮다. 집계된 처리량과 요청별 대기 시간은 서로 반대 방향으로 움직일 수 있습니다.
다음에 알아볼 내용
스트리밍 응답의 시작 시점이 중요하다면첫 토큰까지의 시간을 사용하세요. 생성 속도를 설명할 때는초당 토큰 수를 사용하고, 전체 서빙 용량을 설명할 때는추론 처리량을 사용하세요. 나란히 비교한 설명은지연 시간 vs. TTFT vs. 초당 토큰 수 vs. 처리량을 참조하세요.