Hacker News

DeepSeek just open-sourced its inference engine

DeepSeek, 추론 엔진 공개

DeepSeek이 자사 대규모 서비스에 쓰는 추론 엔진 DeepInfer를 Apache 2.0 라이선스로 공개했습니다. DeepSeek-V4.1-Flash와 NVIDIA SM100, Huawei Ascend 950을 지원하며, KV 캐시와 부하 분산 같은 완전한 서비스 운영 요소는 이번 공개에 포함되지 않습니다.

에디터 노트

공개된 엔진과 완전한 추론 서비스는 범위가 다릅니다. DeepInfer는 특정 모델과 두 종류의 가속기를 지원하며 오프라인 추론 기능을 제공합니다. 반면 KV 캐시, 프리필과 디코드 분리, 복제본 간 부하 분산은 빠져 있어 운영 서비스 구성에는 별도 시스템이 필요합니다. 댓글에서 제기한 KV 캐시의 부재는 이 경계를 구체적으로 짚습니다. 비교 성능을 묻는 의견도 타당하지만 제공된 자료에는 측정 결과가 없고 재현 절차만 안내합니다. 따라서 공개된 최적화 코드는 참고할 수 있어도 실제 처리량이나 지연 시간에서 기존 엔진보다 얼마나 나은지는 이 자료만으로 판단할 수 없습니다.

AI 요약

DeepSeek이 대규모 프로덕션 서비스에서 사용하는 추론 프레임워크 DeepInfer를 공개했습니다. 공개 버전은 오프라인 추론을 지원하며 Apache License 2.0으로 배포합니다. 지원 모델은 DeepSeek-V4.1-Flash 한 종류이고, 지원 하드웨어는 NVIDIA SM100 GPU와 Huawei Ascend 950 NPU입니다. Linux, GCC 13 이상, Python 3.12가 필요하며 NVIDIA에서는 CUDA 13, Ascend에서는 CANN 9.2를 사용합니다.

디코딩과 스케줄링

FlashMLA, DeepGEMM, DeepEP, TileKernels, DeepSelect와 TileLang 기반 커스텀 커널을 포함한 최적화 커널을 제공합니다. Attention DP와 balanced CP, MoE EP 및 EPLB를 지원해 병렬 실행 구성을 다룹니다. 비동기 스케줄러는 CPU의 배치 스케줄링과 장치 실행을 겹쳐 처리하며 기본으로 활성화됩니다.

DSpark와 confidence-scheduled verification은 초안 토큰을 생성한 뒤 신뢰도 추정치를 바탕으로 검증 순서를 정해 디코딩을 가속합니다. DEEPINFER_ENABLE_MTP_VARLEN=1로 기능을 켜고 DEEPINFER_USE_NEXTN_DECODE로 초안 토큰 최대 길이를 설정합니다. 기본값은 5입니다.

Decoder SWA bounded replay는 프리필 단계에서 전체 입력을 다시 처리하는 대신 제한된 접미부만 재생해 계산량을 줄입니다. 기본 V4.1 설정은 DEEPINFER_YOCO_PREFILL_TRUNCATION_MODE=compact와 DEEPINFER_YOCO_PREFILL_KEEP_TOKENS=140입니다. 보존할 접미부는 SWA 윈도와 최대 백트래킹 길이를 모두 포함해야 합니다.

재현성과 출력 제어

Batch-invariant inference는 배치 구성이 달라져도 모델 결과를 동일하게 유지합니다. NVIDIA에서 DEEPINFER_BATCH_INVARIANT=1로 활성화합니다. 결정론적 샘플링은 같은 입력 토큰과 샘플링 설정에 같은 출력을 돌려줍니다. 이를 사용하려면 batch-invariant 설정을 켜고 MTP 가변 길이 디코딩을 끈 뒤 SamplingParams에 고정된 seq_seed를 전달해야 합니다. 이 기능도 NVIDIA 전용입니다.

Structured output은 정규식, JSON Schema, EBNF 문법에 맞춰 생성을 제한합니다. SamplingParams에 so_args를 전달해 스키마 유형과 내용을 지정합니다. 모델 체크포인트는 첫 실행 때 Hugging Face 캐시에 내려받으며 DEEPINFER_HF_MODEL_DIR을 설정하면 로컬 사본을 사용할 수 있습니다.

공개 범위와 실행 조건

DeepInfer만으로 완전한 추론 서비스를 구성할 수는 없습니다. 이번 공개에는 KV 캐시 시스템, 프리필과 디코드 분리 및 VE 구성, 데이터 병렬 복제본 간 부하 분산이 포함되지 않습니다. DeepSeek은 필요한 엔진 기능 대부분은 구현됐다고 설명하지만, 이 항목들은 전체 서비스를 완성하려면 별도로 마련해야 합니다. DeepInfer는 vLLM을 주 기반으로 삼았고 SGLang과 TensorRT-LLM에서도 영감을 받았습니다.

벤치마크 재현을 위한 run_sweep.sh와 평가 안내를 제공하며, 제시된 측정 구성은 프리필에 SM100 GPU 4개, 디코드에 64개를 사용합니다. 공개 자료의 벤치마크 표에는 결과 수치가 제시되지 않았습니다.

Hacker News 반응

  • @_aavaa_ — 특히 빠진 것은 KV 캐시 시스템입니다.
    • @entrope — 토큰당 890바이트라는 크기는 모델 자체 특성입니다. DeepSeek의 호스팅 경쟁력에는 KV 캐시를 VRAM에서 호스트 RAM, 비휘발성 저장장치로 옮기고, 캐시가 이동한 위치에 요청을 라우팅하는 방식도 포함됩니다. HN에서는 DeepSeek의 KV 캐시 수명이 8시간을 넘는다는 이야기가 나오지만, 이번 공개에는 그 인프라가 없습니다.
  • @meffmadd — 성능이 vLLM이나 SGLang과 어떻게 비교되는지 궁금합니다. 두 프로젝트에서 영감을 받았다고 하니 성능 향상 폭이 궁금합니다.
  • @swiftcoder — 대부분의 제공업체는 자체 추론 엔진을 구현했습니다. 이번 공개로 제공업체들이 DeepSeek Flash를 효율적으로 서비스하는 데 필요한 최적화를 공통으로 채택하기 쉬워집니다.
  • @cmrdporcupine — DeepSeek V4.1 Flash를 서비스하는 추론 엔진 일부일 뿐입니다. vLLM과 SGLang도 이미 이 모델을 실행할 수 있습니다. 이 엔진의 새로운 부분을 두 프로젝트로 가져오면 생태계 전체가 이득을 보고 OpenAI와 Anthropic의 인프라 엔지니어도 혜택을 받습니다. 여기 들어간 내용 상당수는 DeepSeek이 이미 논문으로 공개했습니다.

원문: Hacker News / 번역·요약: Trawling