DeepSeek이 자사 대규모 서비스용 추론 엔진 DeepInfer를 아파치 2.0으로 공개했다
DeepSeek이 자사 대규모 프로덕션 서비스를 구동해 온 추론 프레임워크 DeepInfer를 아파치 라이선스 2.0으로 공개했다. 저장소는 deepseek-ai/DeepInfer이며, 이번 배포판은 대규모 서빙에 필요한 핵심 기능을 담은 오프라인 추론 형태다. 즉 학습이나 파인튜닝 도구가 아니라, 모델을 실제로 돌리고 토큰을 뽑아내는 실행 엔진 쪽이다.
구성 요소는 크게 세 갈래다. 우선 FlashMLA, DeepGEMM, DeepEP, TileKernels, DeepSelect와 자체 TileLang 커널로 이루어진 최적화 커널 계층이 있다. 다음으로 Attention DP와 균형 잡힌 CP, MoE EP에 EPLB를 조합한 병렬화 계층, 마지막으로 모델·샘플러 런타임이다. 여기에 DSpark라 불리는 드래프트 토큰 기반 디코딩 가속과, 신뢰도 추정치로 검증 시점을 조율하는 스케줄링이 얹힌다.
설정은 환경변수 중심으로 노출된다. DEEPINFER_ENABLE_MTP_VARLEN=1로 가변 길이 드래프트를 켜고, DEEPINFER_USE_NEXTN_DECODE로 드래프트 최대 길이를 조절한다(기본값 5). 디코더 프리필 비용을 줄이는 SWA 경계 재생 기능은 DEEPINFER_YOCO_PREFILL_TRUNCATION_MODE=compact와 DEEPINFER_YOCO_PREFILL_KEEP_TOKENS=140이 V4.1 기준 기본 설정이며, 남겨두는 접미 구간은 SWA 윈도와 최대 백트래킹 길이를 모두 덮어야 한다.
스케줄링 쪽에서는 CPU의 배치 스케줄링과 디바이스 실행을 겹쳐 돌리는 비동기 방식이 기본으로 켜져 있다. 재현성 관련 옵션도 눈에 띈다. DEEPINFER_BATCH_INVARIANT=1을 주면 배치 구성이 달라져도 모델 결과가 동일하게 유지되고, 여기에 DEEPINFER_ENABLE_MTP_VARLEN=0과 고정 seq_seed를 더하면 같은 입력·같은 샘플링 파라미터에 같은 출력이 나오는 결정론적 샘플링이 된다. 두 기능 모두 NVIDIA 환경으로 한정된다. 정규식이나 JSON 스키마, EBNF 문법으로 생성을 제약하는 구조화 출력도 SamplingParams의 so_args로 지원한다.
배경에는 자체 추론 스택을 다듬어 온 흐름이 있다. DeepInfer는 vLLM을 주된 토대로 삼고 SGLang과 TensorRT-LLM에서 착안한 부분을 더해 만들어졌으며, 공개판은 그중에서도 서빙 규모에서 필요한 기능에 초점을 맞췄다. 기본 체크포인트는 deepseek-ai/DeepSeek-V4.1-Flash-1017이고 첫 실행 때 허깅페이스 캐시로 내려받는다. 빌드 전에는 빈 파이썬 3.12 환경을 만들고 DEEPINFER_ACCELERATOR를 nvidia 또는 ascend로 지정해야 한다.
개발자 입장에서 실질적인 변화는 두 가지다. 하나는 MoE 모델 서빙에서 병렬화 조합과 커널 선택을 직접 조립하지 않고 참조 구현을 얻는다는 점, 다른 하나는 배치 불변 추론과 결정론적 샘플링처럼 평가·회귀 테스트에 필요한 스위치가 기본 제공된다는 점이다. 성능 수치는 프리필에 SM100 GPU 4장, 디코드에 64장을 쓴 환경에서 측정됐고 각각 하나의 스케일업 도메인 안에서 이뤄졌으며, 재현용 run_sweep.sh가 함께 제공된다.
다만 이번 공개판만으로 완전한 추론 서비스를 세울 수는 없다. VE·프리필·디코드 분리(disaggregation)는 엔진 기능 상당 부분이 이미 구현돼 있으나 배포본에는 포함되지 않았고, 프리필과 디코드 각각에 대한 데이터 병렬 복제본 간 로드밸런싱도 빠져 있다. 이 두 가지가 빠진 상태에서는 오프라인 추론과 벤치마크 재현까지가 현실적인 사용 범위다.