vLLM-Project/Speculators

vLLM-Project/Speculators

Speculators는 추측 디코딩(speculative decoding)을 통해 LLM 추론을 가속화하는 라이브러리예요. vLLM과 원활하게 통합되는 효율적인 드래프트 모델 학습을 제공해 지연 시간을 줄이고 처리량을 개선해요. 자신만의 드래프트 모델을 학습해 vLLM에서 최적화된 추측 디코딩을 사용하고 싶다면 이 프로젝트가 핵심 도구예요.

출처: 문서

본문

주요 기능

Speculators는 다음과 같은 핵심 기능을 제공해요:

  • vLLM을 사용한 오프라인 학습 데이터 생성: vLLM을 사용해 히든 스테이트(hidden states) 생성을 활성화해요. 데이터 샘플은 디스크에 저장되어 드래프트 모델 학습에 사용될 수 있어요.
  • 드래프트 모델 학습 지원: 단일 및 다중 레이어 드래프트 모델의 E2E(end-to-end) 학습을 지원해요. non-MoE와 MoE 모델 모두 학습을 지원해요.
  • 표준화되고 확장 가능한 형식: 스펙큘레이티브 모델을 정의하는 Hugging Face 호환 형식을 제공하며, 외부 연구 저장소에서 표준 speculators 형식으로 변환하는 도구를 포함해 쉽게 채택할 수 있어요.
  • Seamless vLLM 통합: vLLM에 직접 배포하도록 설계되어 최소한의 오버헤드로 저지연, 프로덕션급 추론을 가능하게 해요.

왜 Speculators를 사용할까?

대형 언어 모델(LLM)은 텍스트를 한 번에 한 토큰씩 생성하는데, 이는 근본적인 병목을 만든다. 각 토큰은 모델 전체 정방향 패스(forward pass)가 필요하고, 메모리 바운드 작업을 기다리는 동안 GPU 연산은 충분히 활용되지 못해요. 추측 디코딩은 더 작고 빠른 "드래프트" 모델(종종 단일 트랜스포머 레이어일 뿐)을 사용해 여러 토큰을 미리 예측하고, 그 다음 주 모델로 토큰을 병렬로 검증함으로써 이 문제를 해결해요.

추측 디코딩은 다음과 같은 이점을 제공해요:

  • 지연 시간 감소: 챗봇이나 코드 어시스턴트 같은 인터랙티브 애플리케이션에서 토큰을 2~3배 더 빠르게 생성해요. 이때 응답 시간은 사용자 경험에 직접 영향을 줘요.
  • 더 나은 GPU 활용: 대형 모델의 지연·메모리 바운드 디코딩을 compute-bound 병렬 토큰 검증으로 전환해 하드웨어 활용도를 높여요.
  • 품질 손실 없음: 추측 디코딩은 타깃 모델을 근사하지 않아요. 수락된 토큰은 동일한 샘플링 설정에서 타깃 모델이 생성했을 토큰과 정확히 같고, 거부된 드래프트 토큰은 버려지고 타깃 모델이 다시 생성해요.
  • 비용 효율성: 각 요청이 하드웨어를 점유하는 시간을 줄여 GPU당 더 많은 요청을 서빙해요.

Speculators는 대화형 AI, 인터랙티브 코딩 어시스턴트, 스트리밍 텍스트 생성처럼 사용자가 실시간으로 응답을 기다리는 지연 시간에 민감한 애플리케이션에서 특히 유용해요.

리소스

  • Speculators examples
  • GitHub Repository

더 알아보기 (Learn more)