DeepSpec: 추측 디코딩 초안 모델을 학습하고 평가하는 DeepSeek의 풀스택 코드베이스

DeepSpec 소개

대형 언어 모델의 생성은 한 번의 순전파(forward pass)에서 토큰을 하나씩 만들어 내기 때문에, 모델이 클수록 토큰당 지연 시간이 길어집니다. 추측 디코딩(Speculative Decoding)은 이 병목을 줄이기 위한 기법입니다. 작고 빠른 초안 모델(draft model)이 앞으로 나올 여러 토큰을 한꺼번에 제안하면, 크고 느린 타깃 모델(target model)이 그 후보들을 한 번의 순전파로 검증해 맞는 부분까지를 받아들입니다. 초안이 자주 들어맞을수록 타깃 모델의 순전파 횟수가 줄어 전체 생성이 빨라집니다.

DeepSpec은 이런 초안 모델을 학습하고 평가하기 위한 풀스택 코드베이스로, DeepSeek이 공개했습니다. 데이터 준비 유틸리티, 초안 모델 구현, 학습 코드, 평가 스크립트를 한 저장소에 담아, 추측 디코딩 초안 모델을 처음부터 끝까지 만들어 볼 수 있도록 구성되어 있습니다.

작업은 세 단계를 순서대로 실행하는 구조이며, 각 단계의 출력이 다음 단계의 입력이 됩니다. 먼저 데이터를 준비해 타깃 모델의 출력을 캐시로 만들고, 그 캐시를 기준으로 초안 모델을 학습한 다음, 학습한 초안 모델이 벤치마크에서 얼마나 잘 수용되는지를 측정합니다.

DeepSpec의 워크플로우

DeepSpec의 파이프라인은 데이터 준비, 학습, 평가 세 단계로 나뉩니다.

  • 데이터 준비: 프롬프트를 내려받아 나누고, 타깃 모델로 답변을 다시 생성해 타깃 캐시를 만듭니다. 답변을 재생성하려면 타깃 모델을 서빙할 추론 엔진이 필요합니다. 저장소는 이 캐시가 매우 커질 수 있다고 경고하는데, 기본값인 Qwen/Qwen3-4B 설정에서 대략 38 TB에 이릅니다.
  • 학습: 캐시된 타깃 출력을 기준으로 초안 모델을 학습합니다. train.shtrain.py를 실행하며, 보이는 GPU마다 워커를 하나씩 띄웁니다. 기본 설정과 스크립트는 GPU 8장을 가진 단일 노드를 가정하고, GPU가 더 적으면 CUDA_VISIBLE_DEVICES를 조정합니다.
  • 평가: 학습한 초안 체크포인트를 대상으로 추측 디코딩 벤치마크에서 수용률을 측정합니다.

DeepSpec가 지원하는 알고리즘

DeepSpec에는 현재 세 가지 초안 모델이 들어 있습니다. 저장소의 DSpark 논문으로 소개된 DSpark, 그리고 각각 별도 논문으로 공개된 DFlash와 Eagle3입니다. 세 알고리즘은 모두 같은 학습·평가 파이프라인 위에서 동작하므로, 동일한 조건에서 서로 다른 초안 모델 설계를 비교해 볼 수 있습니다.

저장소는 이 코드베이스가 여러 오픈소스 프로젝트의 아이디어와 코드 위에 만들어졌다고 밝힙니다. 전체 학습 프레임워크와 Eagle3 구현은 SpecForge(Apache-2.0)에서, DFlash 초안 모델 설계와 학습 레시피는 DFlash(MIT)에서 가져와 적용했으며, 지원하는 타깃 모델 계열은 Qwen3Gemma입니다.

DeepSpec 설치 및 사용법

먼저 Python 의존성을 설치합니다. 학습은 train.sh, 평가는 eval.sh로 실행하며, 사용할 알고리즘과 타깃 모델은 config/ 아래의 설정 파일을 config_path로 가리켜 선택합니다.

# 의존성 설치
python -m pip install -r requirements.txt

# 초안 모델 학습
bash scripts/train/train.sh

# 학습한 초안 체크포인트 평가
bash scripts/eval/eval.sh

평가는 eval_datasets/에 담긴 추측 디코딩 벤치마크에서 이뤄집니다. 여기에는 gsm8k, math500, aime25, humaneval, mbpp, livecodebench, mt-bench, alpaca, arena-hard-v2가 포함됩니다. 평가 시에는 초안이 학습된 타깃 모델을 target_name_or_path로, 평가할 초안 체크포인트를 draft_name_or_path로 지정합니다.

DeepSpec의 공개 체크포인트

저장소는 논문 Table 1에 사용한 체크포인트를 함께 공개합니다. Eagle3, DFlash, DSpark 세 알고리즘에 대해 Qwen/Qwen3-4B, Qwen/Qwen3-8B, Qwen/Qwen3-14B, google/gemma-4-12B-it 타깃 모델별 초안 체크포인트가 Hugging Face에 올라와 있습니다. 각 체크포인트는 해당 타깃 모델이 non-thinking 모드로 생성한 open-perfectblend 데이터로 학습되었습니다.

저장소는 이 결과를 새 논문에서 인용할 때 이 저장소의 학습 설정과 조건을 맞추지 않으면 비교가 의미 없어진다고 강조합니다. 또한 특정 도메인에 쓰거나 타깃 모델을 thinking 모드로 돌릴 계획이라면 초안 모델을 다시 파인튜닝하는 편이 낫다고 안내합니다.

DeepSpec의 라이선스

DeepSpec은 MIT 라이선스로 공개되어 있어 개인 및 상업적 목적으로 자유롭게 사용할 수 있습니다. 다만 third-party 프로젝트에서 가져와 각자의 라이선스를 따르는 코드가 포함되어 있으므로, 전체 출처는 저장소의 NOTICE 파일에서 확인할 수 있습니다.

:github: DeepSpec 프로젝트 GitHub 저장소

:hugs: DeepSpec 초안 모델 체크포인트

더 읽어보기




이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. :hugs:

:pytorch:파이토치 한국 사용자 모임:south_korea:이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일:love_letter:로 보내드립니다! 텔레그램(Telegram)이나 Slack/Discord/Teams/Dooray/GoogleChat 등으로도 새 글 알림을 받으실 수 있습니다. :smiley:

:wrapped_gift: 아래:down_right_arrow:쪽에 좋아요:+1:를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ :star_struck: