Aug 27, 2025

속도의 한계를 뛰어넘다: HyperCLOVA X에 적용한 Speculative Decoding 이야기

Image for 속도의 한계를 뛰어넘다: HyperCLOVA X에 적용한 Speculative Decoding 이야기

검색과 추론 LLM 기능이 고도화되며 모델은 점점 똑똑해지고 있습니다. 그러나 이를 실제 서비스에 적용하려면 언제나속도라는 벽에 부딪히죠. LLM 텍스트를 토큰 단위로 하나씩 순차적으로 생성하며, 매번 전체 모델 파라미터를 불러와야 하기에 모델이 커질수록 지연이 커지고, 하드웨어 성능만으로는 속도 개선에 한계가 있습니다.


이러한 병목을 해결하기 위한 대표적인 접근 방식이 바로 Speculative Decoding입니다. 기술은 LLM 순차적인 생성 구조를 병렬화해 속도를 크게 단축할 있습니다. 우리가 아는 서비스에서도 Speculative Decoding 기술이 실제로 사용되고 있습니다. OpenAI Predicted Outputs, DeepSeek Multi-Token Prediction (MTP) 기법을 도입해 각각 Speculative Decoding 기술을 적용했으며, 이를 통해 속도 개선 효과를 입증하였습니다.


이번 글에서는 Speculative Decoding 어떤 원리로 동작하고 어떤 장단점을 가지는지, 그리고 HyperCLOVA X Speculative Decoding 적용하며 겪은 고민과 실제 운영 기술로 정착시키기까지의 과정을 자세히 소개합니다.


▲HyperCLOVA X 데모 영상.

왼쪽은 기존 방식, 오른쪽은 Speculative Decoding 적용한 경우로,

같은 품질의 결과를 빠르게 생성하는 것을 확인할 있습니다.


Speculative Decoding이란?

Speculative Decoding 기존처럼 토큰을 하나씩 순차적으로 생성하는 방식 대신, 상대적으로 작고 빠른 모델이 여러 개의 예측 토큰을 먼저 생성하고, 모델이 이들을 병렬로 검증해 최종 출력을 결정하는 방식으로 생성 속도를 크게 향상하는 기법입니다.


과정에서 먼저 초안을 만드는 작은 모델을 Draft Model, 이를 검토하고 확정하는 모델을 Target Model이라고 부릅니다. Draft Model 번에 여러 개의 토큰 후보를 제시하고, Target Model 후보들을 동시에 평가해 최종 결과를 빠르게 확정하는 것이죠.


구체적인 동작 방식은 다음과 같습니다.


동작 방식

  1. 작은 모델이 입력에 대해 여러 개의 토큰을 빠르게 예측합니다.
  2. 모델이 예측값을 한꺼번에 병렬로 검증합니다.
  3. 검증 결과 일치하는 토큰은 그대로 채택하고, 일치하지 않는 토큰은 모델이 다시 생성합니다.

과정에서 중요한 점은, 다음에 토큰이 문맥상 충분히 예측할 있는 경우가 많기 때문에 작은 모델의 예측 결과가 실제로 상당 부분 채택된다는 것입니다. 또한, 모델이 번에 여러 토큰을 병렬로 검증할 있어 기존처럼 토큰을 하나씩 처리할 때보다 하드웨어 자원을 훨씬 효율적으로 활용할 있고, 전체 추론 속도 역시 크게 개선됩니다.


Speculative Decoding 같은 토크나이저와 학습 설정을 공유하는 크기만 다른 모델 조합만 있으면 비교적 손쉽게 적용할 있는 장점이 있습니다. 특히, 작은 모델이 모델과 유사한 출력을 낼수록 속도 향상 효과는 커집니다.


생성 분포를 바꾸지 않는 가속 방법

속도를 높이기 위한 대표적인 방법으로는 Pruning이나 Quantization 같은 모델 압축 기법이 자주 사용됩니다. 하지만 이러한 방식은 생성 분포가 달라지거나 출력 품질이 저하될 있어, 특히 품질에 민감한 서비스 환경에서는 실제 적용 추가적인 검증 과정과 시간이 필요합니다. 이에 따라 실서비스에서는 도입이 다소 보수적으로 이루어질 수밖에 없습니다.


반면, Speculative Decoding Rejection Sampling이라는 확률 기반 샘플링 방식을 활용해, 원래 모델의 생성 분포를 보존하면서도 성능을 끌어올릴 있습니다.



먼저, 작은 모델(Draft Model) 여러 개의 후보 토큰을 빠르게 생성합니다. 그런 다음, 모델(Target Model) 후보 토큰에 대해 자신이 예측한 확률 분포와 비교해 해당 토큰이 적절한지 판단합니다. 예를 들어 작은 모델이 특정 위치에서 A라는 토큰을 90% 확률로 예측하고, 모델이 동일한 위치에서 A 60% 확률로 예측했다면, A 토큰이 채택될 확률은 확률의 비율인 60/90, 66.7%입니다. 외의 경우에는 해당 토큰이 거부되고, 모델이 직접 새로운 토큰을 생성하게 됩니다.


이러한 과정을 거치면 최종 출력은 항상 모델의 확률 분포와 통계적으로 일치하게 됩니다. 단순히 정확도를 유지하는 그치지 않고, 모델이 평소에 보여주는 말투나 스타일, 언어 습관 미묘한 생성 특성까지 그대로 보존된다는 점이 핵심입니다.


예를 들어 모델이 인사말로안녕하세요 10 7, “반갑습니다 3 생성하는 경향이 있다면, Speculative Decoding 거친 결과물 역시 이런 분포를 유지합니다. 문장이 품질 면에서는 유사하더라도, 서비스에서는 일관된 말투와 톤이 사용자 경험에 영향을 있기 때문에 이러한 세밀한 차이는 매우 중요합니다.


결과적으로, Speculative Decoding 속도 향상과 품질 보존을 모두 만족시키는 구조로 되어 있어 실제 서비스 환경에서도 충분히 적용할 있는 기술로 평가받고 있습니다.


성능 결정 요인: 채택률과 예측 길이

앞서 설명한 것처럼, Speculative Decoding 모델의 생성 분포를 변경하지 않으면서도 속도 향상을 기대할 있는 기법입니다. 그렇다면 실제로 어느 정도의 성능 개선이 가능할까요?


성능에 가장 영향을 미치는 요인은 다음 가지입니다.


  1. 작은 모델의 채택률과 속도
    • 핵심은 작은 모델이 얼마나 빠르게, 그리고 얼마나 높은 채택률로 모델과 유사한 토큰을 생성하느냐입니다.
    • 작은 모델의 속도가 느리거나, 생성한 토큰이 검증 단계에서 자주 거부된다면 전체 처리 속도는 개선되지 않거나 오히려 느려질 수도 있습니다.
  2. 예측 길이 설정
    • 작은 모델이 번에 개의 토큰을 예측할지를 결정하는예측 길이 매우 중요한 튜닝 요소입니다.
    • 예측 길이가 너무 짧으면 가속 효과가 제한됩니다.
    • 반대로 너무 길면 채택률이 낮을 오히려 비효율을 초래할 있습니다.

과정에는 명확한 트레이드오프가 존재합니다. 작은 모델이 모델과 유사한 출력을 생성하려면, 일정 수준 이상의 모델 크기가 필요합니다. 물론 가능한 가벼운 모델이 유사한 예측을 해낸다면 이상적이겠지만, 현실에서는 너무 작은 모델일수록 채택률이 떨어져 검증 단계에서 자주 거부되고, 오히려 전체 성능을 떨어뜨릴 있습니다. 따라서 모델 크기와 채택률, 처리 속도 간의 균형을 신중히 조율하는 것이 중요합니다.


또한, 예측 길이 역시 고정된 값보다는 모델 조합이나 시스템 부하 상황에 따라 동적으로 조정될 있어야 합니다. 예측 길이가 상황에 비해 너무 짧으면 가속 효과가 제한되고, 반대로 너무 길면 검증 실패가 잦아져 비효율적일 있습니다. 그러므로 고정된 설정보다는 실시간으로 최적화할 있는 구조가 요구됩니다.


안정적인 서비스를 위한 전략

Speculative Decoding 생성 속도를 높이기 위한 기술이지만, 예측이 빗나갈 경우 추가적인 비용이 발생한다는 점에서 오히려 성능 저하로 이어질 있다는 점을 주의해야 합니다. 특히 예측 길이를 길게 설정했을 경우, 예측이 자주 실패하면 전체 추론 효율이 급격히 떨어질 있습니다.


게다가 실제 서비스 환경에서는 사용자 입력의 길이, 동시에 처리해야 하는 요청 , 시간대별 서버 부하 상태 다양한 변수들이 실시간으로 바뀌며, 이에 따라 최적의 예측 길이 조건 역시 끊임없이 달라집니다.


, 기술적인 가능성과 별개로 실운영 환경에서 마주하게 되는 문제는 훨씬 복잡하고 민감합니다. 따라서 상황에 따라 예측 범위를 유동적으로 조정하는 전략도 성능 최적화를 위한 중요한 접근이 있습니다.



예를 들어, 시스템 자원이 여유로운 경우에는 다소 과감하게 예측 범위를 넓혀 속도 개선을 시도해 있고, 반대로 자원이 부족하거나 요청이 집중되는 시점에는 예측 범위를 좁혀 안정성을 우선하는 방식으로 조정할 있습니다.


모델 선택과 벤치마크의 중요성

Speculative Decoding 성능을 좌우하는 하나의 핵심은 바로작은 모델 선택입니다. 예측을 담당하는 작은 모델이 지나치게 단순하면 채택률이 떨어지고, 반대로 너무 크면 검증 모델과의 속도 차이가 줄어들어 전체 효율이 낮아질 있습니다.


여기서 특히 중요한 것은, 예측 결과가 실제 응답으로 얼마나 자주 채택되느냐입니다. 예측이 맞을수록 검증 단계를 빠르게 통과하면서 속도가 개선되지만, 빗나간 예측은 재계산이 필요해 오히려 전체 처리 시간이 늘어날 있습니다.


따라서 Speculative Decoding 효율을 극대화하려면, 단순히빠른 모델 고르는 것보다 예측 채택률과 연산 비용 간의 균형이 맞는 조합을 찾는 것이 중요합니다. 이를 위해 다양한 작은 모델을 실험하고, 조합이 다양한 조건에서 얼마나 안정적인 결과를 내는지 비교·평가하며 최적의 구성을 탐색했습니다.



운영 기술로 완성한 Speculative Decoding

Speculative Decoding 실제 서비스에 적용한 결과, 예측 길이를 시스템 상황에 따라 유동적으로 조정하는 전략이 전체 효율에 영향을 미친다는 점을 확인할 있었습니다.


아래는 HyperCLOVA X Speculative Decoding 적용해 실험한 결과입니다. 작은 모델이 생성하는 예측 토큰 수를 고정했을 때와 시스템 상태에 따라 동적으로 조정했을 때를 비교한 그래프로, 후자의 전략이 빠른 처리 속도와 안정성을 모두 달성했다는 점이 뚜렷하게 나타났습니다.


서비스 부하가 낮고 입력 문장이 짧을 때는 예측 길이를 늘여 속도를 극대화하고, 반대로 부하가 높고 입력이 길거나, 채택률이 떨어질 있는 경우에는 예측 길이를 보수적으로 조정해 안정성을 우선하도록 설계했습니다.


실험을 통해 있었던 핵심은, Speculative Decoding 성능을 최대화하려면 단순한 기술 적용을 넘어 실제 운영 환경에 맞춘 동적 전략이 필요하다는 점입니다. 기술적 가능성을 뛰어넘어 실질적 효과를 극대화하는 있어 이러한 전략은 필수적인 요소였습니다.



마치며

HyperCLOVA X 단순히 성능이 뛰어난 모델을 만드는 데서 멈추지 않습니다. 사용자에게 빠르고 가벼운 경험을 제공하기 위해 지속적으로 최적화 방안을 고민해 왔습니다.


Speculative Decoding 역시 이러한 방향성을 실현하기 위한 전략 하나입니다. 단순한 기술 적용을 넘어 실제 서비스 환경에 맞춰 유연하게 운영하는 초점을 맞췄습니다.


앞으로는 작고 빠르면서도 채택률이 높은 모델을 만드는 동시에 Speculative Decoding 효율성을 극대화할 있는 다양한 최적화 기법을 적극적으로 도입해 나갈 계획입니다.