추측 디코딩 속도 향상 계산기
입력
| 수락률 | 70 % |
|---|---|
| 사이클당 드래프트 토큰 | 5 |
| 드래프트 비용 비율 | 15 % |
추측 디코딩 속도 향상 계산기
추측 샘플링으로 얻는 디코딩 속도 향상을 추정합니다. 드래프트 수락률, 사이클당 드래프트 토큰 수, 상대적 드래프트 비용을 입력하면 예상 수락 토큰 수와 실제 처리 시간 기준 속도 향상을 구할 수 있습니다.
입력
드래프트 모델
결과
값을 입력하면 계산 결과가 표시됩니다.
세부 정보
추측 디코딩 속도 향상
추측 디코딩은 작고 저렴한 드래프트 모델이 여러 토큰을 미리 추측하게 하고, 큰 타깃 모델이 이를 한꺼번에 검증하게 함으로써 언어 모델의 생성 속도를 높인다. 추측이 맞으면 타깃은 단 한 번의 순방향 패스 비용으로 여러 토큰을 만들어 내고, 틀리면 일반 디코딩으로 되돌아간다. 이 계산기는 드래프트 토큰이 얼마나 자주 수락되는지, 사이클마다 몇 개가 제안되는지, 드래프트 모델이 타깃 대비 얼마나 비싼지라는 세 가지 수치로부터 그 결과인 속도 향상을 추정한다.
작동 방식
일반적인 디코더에서는 타깃 모델이 토큰마다 한 번씩 실행된다. 추측 디코딩은 대신 드래프트 모델에게 개의 토큰을 제안하도록 요청한 뒤, 타깃을 한 번 실행하여 이들을 병렬로 검사한다. 타깃은 제안된 각 토큰이 자신이 샘플링했을 결과와 일치하는 한 이를 수락하고, 첫 불일치에서 멈춘 뒤 그 위치를 자신의 분포에서 다시 샘플링한다. 거부된 토큰이 타깃에서 보정되므로 출력은 통계적으로 일반 디코딩과 동일하다. 이 방법은 모델이 말하는 내용을 바꾸지 않으면서 추가적인 드래프트 연산을 비싼 타깃 패스 횟수의 감소와 맞바꾼다.
공식
각 토큰이 확률 로 독립적으로 수락된다면, 타깃 패스 한 번당 생성되는 예상 토큰 수는 다음과 같다.
τ=1−α1−αγ+1드래프트 모델이 무료라면 이것이 곧 속도 향상이 될 것이다. 각 드래프트 패스에 타깃 패스의 비율 를 부과하면, 일반 디코딩 대비 실제 처리 시간 기준 속도 향상은 다음과 같이 된다.
S=(γc+1)(1−α)1−αγ+1분자는 수락과 더 긴 제안에 보상을 주고, 분모는 그 제안이 치르는 드래프트 작업에 벌점을 매긴다.
계산 예시
드래프트 모델이 70%의 비율로 수락되고, 사이클당 5개의 토큰을 제안하며, 각 드래프트 패스가 타깃 패스의 15% 비용이 든다고 하자.
τS=1−0.71−0.76=0.30.8824≈2.94=(5×0.15+1)(0.3)0.8824=0.5250.8824≈1.68타깃 패스 한 번마다 평균 거의 세 개의 토큰을 얻지만, 다섯 번의 드래프트 패스 비용을 치르고 나면 실현된 속도 향상은 약 1.7배다. 수락률을 90%로 높이면 2배를 훨씬 넘어서고, 더 무거운 드래프트 모델 — 가령 타깃 비용의 40% — 은 그 이득을 상당 부분 되돌려 놓는다.
구성 선택
두 가지 지렛대가 지배적이다. 수락률은 드래프트 모델이 타깃과 긴밀히 정합될 때 상승하므로, 드래프트는 보통 같은 계열의 더 작은 모델이거나 타깃을 증류한 모델이다. 드래프트 길이에는 최적점이 있다. 수락이 누적되므로 전체 실행이 살아남을 확률은 기하급수적으로 떨어지고, 따라서 몇 개의 토큰을 넘어서면 추가 드래프트 비용이 드물게 일어나는 긴 수락의 이득을 능가한다. 여기서 드래프트 토큰 수를 변화시켜 보면 주어진 수락률에서 속도 향상이 정점에 이르는 지점을 알 수 있다. 향상된 토큰당 속도가 종단 간 응답 시간에 어떻게 반영되는지 보려면 추론 지연 시간 계산기를 참고하면 된다.
자주 묻는 질문 (FAQ)
수락률이란 무엇인가
드래프트 모델이 토큰 시퀀스를 제안하면 타깃 모델이 이를 검사하여, 타깃이 직접 샘플링했을 결과와 일치하는 한 각 토큰을 수락합니다. 수락률은 그 일치가 일어날 토큰당 확률입니다. 드래프트 모델이 타깃과 잘 정합될 때 — 예를 들어 같은 계열의 더 작은 모델이거나 타깃을 모방하도록 미세 조정된 모델일 때 — 상승하고, 어렵거나 분포를 벗어난 텍스트에서는 하락합니다. 무엇보다 추측 디코딩은 정확합니다. 거부된 토큰은 타깃에서 다시 샘플링되므로 출력 분포는 일반 디코딩과 동일합니다.
드래프트 모델의 비용이 왜 속도 향상을 줄이는가
매 사이클마다 토큰을 제안하기 위해 드래프트 모델을 여러 번, 이를 검증하기 위해 타깃 모델을 한 번 실행합니다. 드래프트 모델이 무료라면 속도 향상은 타깃 패스당 예상 수락 토큰 수와 같을 것입니다. 실제로는 각 드래프트 패스에 시간이 들기 때문에 분모에 드래프트 토큰 수와 그 상대 비용의 곱이 더해집니다. 너무 큰 드래프트 모델은 스스로의 이점을 갉아먹으며, 그래서 효과적인 드래프트는 타깃보다 훨씬 작습니다.
사이클당 드래프트 토큰은 몇 개를 제안해야 하는가
최적점이 존재합니다. 더 많은 토큰을 제안하면 최선의 경우는 올라가지만, 수락이 누적되므로 전체 실행이 살아남을 확률은 기하급수적으로 떨어집니다. 한 토큰이 거부되면 그 사이클의 이후 제안은 모두 폐기됩니다. 몇 개를 넘어서면 추가된 드래프트 비용이 드물게 일어나는 긴 수락의 이득을 능가합니다. 최적값은 수락률과 드래프트 비용에 따라 달라지며, 여기서 몇 가지 값을 시도해 보면 속도 향상이 정점에 이르는 지점을 알 수 있습니다.
면책조항
이는 일정한 토큰당 수락률과 고정된 상대적 드래프트 비용을 가정한 단순화된 모델입니다. 실제 수락률은 텍스트와 샘플링 온도에 따라 달라지고, 검증에는 여기에 반영되지 않은 추가 부담이 있으므로 측정된 속도 향상은 다를 수 있습니다. 이 수치는 정확한 예측이 아니라 구성을 비교하는 용도로 활용하시기 바랍니다.