답변 속도와 가속

추측 디코딩이란? 초안과 검증의 원리

싼 방법으로 먼저 제안하고, 비싼 메인 모델은 여러 후보를 한꺼번에 확인합니다.

쉽게 말하면

작고 빠른 조수가 답변 초안을 만들고, 큰 본 모델이 여러 단어를 한꺼번에 검사하는 방식입니다. 초안이 자주 맞으면 큰 모델이 한 단어씩 다시 계산하는 횟수가 줄어듭니다.

장비를 고를 때

작은 초안 모델을 함께 올릴 메모리가 필요할 수 있습니다. 남는 메모리가 적다면 n-gram 방식이나 기본 생성을 먼저 써보는 편이 낫습니다.

이 글에서 확인할 내용

  • 초안 생성기와 타깃 모델 검증기라는 두 역할이 있습니다.
  • 승인률과 초안 비용의 균형이 실제 속도를 결정합니다.
  • 가속 방식이지 모델 품질을 높이는 방식은 아닙니다.

왜 초안을 먼저 만드나

큰 LLM은 답변을 토큰 단위로 하나씩 만듭니다. 여러 토큰을 묶어 계산하면 효율적이지만, 아직 만들지 않은 다음 토큰을 미리 알 수 없다는 문제가 있습니다.

추측 디코딩은 작고 빠른 방법으로 다음 토큰 후보를 먼저 만든 뒤, 큰 본 모델이 후보 묶음을 한꺼번에 검사합니다. 초안이 잘 맞을수록 본 모델이 반복해서 계산하는 횟수가 줄어듭니다.

초안을 만드는 방법은 세 가지가 대표적입니다

작은 별도 모델이 초안을 쓰는 방식, 본 모델 안의 MTP 기능을 쓰는 방식, 앞서 나온 문구를 찾는 n-gram 방식이 대표적입니다. 어떤 방법이든 본 모델의 확인을 거친다는 점은 같습니다.

작은 모델 방식은 여러 작업에 쓸 수 있지만 추가 메모리가 필요합니다. n-gram은 가볍지만 반복되는 문구가 적으면 후보를 거의 만들지 못합니다.

토큰을 하나씩 생성하는 기본 방식과 여러 후보 토큰을 제안한 뒤 승인된 토큰만 사용하는 가속 방식을 비교한 그림
위는 토큰을 하나씩 만드는 기본 방식, 아래는 여러 후보를 먼저 제안하고 맞은 부분만 받아들이는 가속 방식입니다.

승인률만 높아도 충분하지 않습니다

초안 토큰이 많이 승인되면 타깃 모델의 순차 호출을 줄일 수 있습니다. 그러나 초안 자체가 느리거나 검증 배치가 하드웨어에 비효율적이면 높은 승인률에도 전체 지연이 줄지 않을 수 있습니다.

관찰할 값은 초당 토큰뿐 아니라 평균 승인 토큰 수, 초안 시간, 검증 시간과 메모리 증가입니다. 짧은 출력은 초기 비용 때문에 이득이 작을 수 있습니다.

초안을 그대로 답변에 붙이지 않습니다

정상적인 추측 디코딩은 본 모델이 맞다고 확인한 초안만 사용합니다. 틀린 부분은 버리고 본 모델의 결과로 이어 쓰기 때문에, 속도를 위해 작은 모델의 답을 그대로 섞는 방식이 아닙니다.

다만 두 모델이 문장을 나누는 방식이 다르거나 실행 프로그램에 문제가 있으면 출력이 달라질 수 있습니다. 중요한 작업에서는 기능을 끈 결과와 몇 가지 대표 질문으로 비교해 보세요.

무엇을 선택할까

추가 모델을 올릴 메모리가 있고 호환 초안 모델이 검증되어 있다면 draft model 방식을 고려할 수 있습니다. 코드를 고치거나 긴 원문을 다시 쓰는 작업은 추가 가중치가 없는 n-gram 방식이 더 단순합니다.

모델 자체에 MTP 헤드가 있고 런타임이 네이티브로 지원한다면 MTP가 자연스러운 선택입니다. 어느 방식이든 기본 디코드를 기준선으로 측정한 뒤 유지할 가치가 있는지 판단하세요.