← AI 용어집

AI 용어집 · 심화 · 효율·인프라

추측 디코딩 Speculative decoding

추측 디코딩은 작은 모델이 다음에 올 토큰 여러 개를 미리 빠르게 추측하고, 큰 모델이 그 추측을 한꺼번에 검사해 맞는 부분만 받아들이는 방식으로 LLM의 답변 생성 속도를 높이는 기법이다.

쉽게 말하면 빠른 막내가 보고서 초안을 몇 문장 먼저 써 오면, 꼼꼼한 팀장이 한 번에 훑어보고 맞는 데까지는 그대로 두고 처음 틀린 곳만 고쳐 쓰는 것과 비슷하다. 팀장이 한 문장씩 직접 쓰는 것보다 빠르면서 결과물은 팀장 기준을 따른다.

어떻게 작동하나

LLM은 보통 토큰을 하나씩 차례로 만들어 내서, 큰 모델일수록 한 토큰마다 시간이 많이 든다. 추측 디코딩에서는 작고 빠른 '초안 모델(draft model)'이 다음 토큰 몇 개를 먼저 이어 쓴다. 그러면 큰 모델이 이 후보들을 한 번의 계산으로 동시에 검사해, 자기라도 그렇게 썼을 부분까지는 받아들이고 처음 어긋나는 지점은 자기 답으로 바꾼다. 이 과정을 반복하면서 문장을 이어 나간다.

추측하고, 한 번에 검사하기지금까지의 문장 → 초안 모델; 초안 모델 → 후보 토큰 여러 개(추측); 후보 토큰 여러 개 → 큰 모델 검사; 큰 모델 검사 → 맞는 부분 채택; 맞는 부분 채택 → 이어 쓴 문장; 맞는 부분 채택 → 초안 모델(다음 차례)지금까지의 문장초안 모델작고 빠름후보 토큰 여러 개큰 모델 검사한 번에 동시 검사맞는 부분 채택처음 틀린 곳은큰 모델 답으로이어 쓴 문장추측다음 차례
추측하고, 한 번에 검사하기 작은 초안 모델이 토큰 몇 개를 먼저 쓰고, 큰 모델이 이를 한꺼번에 검사해 맞는 부분만 채택한 뒤 다음 차례로 넘어간다.

왜 중요한가

큰 모델에서 시간이 오래 걸리는 이유 중 상당 부분은 계산 자체보다 토큰 하나를 만들 때마다 모델 파라미터를 메모리에서 불러오는 일에 있다. 여러 토큰을 한 번에 검사하면 이 부담을 나눠 낼 수 있어 응답이 빨라진다. 큰 모델이 최종 검사를 맡기 때문에, 제대로 구현하면 답변 품질은 큰 모델 혼자 만들 때와 같게 유지된다. 그래서 모델을 바꾸거나 다시 학습하지 않고도 서비스 속도를 높이는 방법으로 널리 쓰인다.

알아 둘 점

속도 이득은 초안 모델이 얼마나 자주 맞히느냐에 크게 달려 있다. 추측이 자주 틀리면 검사만 하고 버리는 일이 많아져 오히려 이득이 줄어든다. 초안 모델을 따로 띄우는 만큼 메모리와 연산이 조금 더 든다. 별도의 작은 모델 대신 큰 모델에 여러 토큰을 미리 예측하는 부분을 덧붙이는 변형 방식도 있다.

예시

챗봇이나 코딩 도우미처럼 사용자가 답을 기다리는 서비스에서 추측 디코딩은 응답 속도를 높이는 대표적인 추론(인퍼런스) 최적화 방법이다. 예를 들어 같은 계열의 큰 모델과 작은 모델을 짝지어, 작은 모델이 코드 몇 줄을 먼저 이어 쓰고 큰 모델이 확인하는 식으로 쓴다. 코드나 정해진 형식의 문서처럼 다음 내용이 예측하기 쉬운 경우 추측이 잘 맞아 효과가 더 크다. 여러 LLM 서빙 소프트웨어가 이 기능을 옵션으로 제공한다.

함께 보면 좋은 용어