blazux/qwen3.8-Flash-DGX

recipe for running Qwen3.8-Flash-Next on a single DGX Spark

해결하는 문제

이 프로젝트는 Qwen3.8-Flash-Next 모델(약 176B 파라미터)을 단일 NVIDIA DGX Spark / ASUS GX10 시스템에서 배포할 수 있도록 합니다. 특히 모델의 NVFP4 체크포인트(약 125 GiB)가 필요한 KV 캐시와 결합될 경우 가용한 128GB의 유니파이드 메모리 풀을 초과하는 메모리 제약을 해결합니다. 또한 GB10 하드웨어에서의 프리픽스 캐싱 버그와 비결정론적 디코딩 관련 vLLM의 심각한 버그도 수정합니다.

작동 방식

  • NVMe mmap을 통한 가중치 사용: 메모리 절약을 위해 프로젝트는 vLLM을 수정하여 큰 n-gram 임베딩(PLE) 테이블을 RAM에 유지하는 대신 NVMe에서 mmap을 통해 제공하도록 합니다. 이로 인해 상주 가중치는 약 125 GiB에서 약 75 GiB로 감소합니다.
  • 사용자 정의 패치: 공식 vLLM 이미지에 12개 이상의 패치를 적용하여 프리픽스 캐싱(Mamba 상태 버그), 스파스 어텐션에서의 비결정론적 top-k, 도구 호출 파싱 오류를 수정합니다.
  • 하이브리드 체크포인트: 선택적 하이브리드 레이아웃(NVFP4 전문가 + fp8 사이드 레이어)을 제공하여 디코딩 속도를 약 20% 향상시킵니다.
  • 최적화된 서빙: Docker 빌드, 가중치 다운로드(Xet를 통한), 서빙 프로파일(speed, context, default 등)을 관리하기 위한 flash CLI 도구를 사용합니다.

대상 사용자

  • NVIDIA DGX Spark 또는 ASUS GX10 하드웨어를 사용하여 단일 머신에서 최대 500k~1M 토큰의 고용량 컨텍스트로 거대한 Qwen 모델을 실행하고자 하는 개발자 및 연구자.

주요 특징

  • 메모리 효율성: 가중치 크기를 약 75 GiB로 줄여 큰 KV 캐시(약 680k 토큰)를 확보합니다.
  • 고성능: GX10에서 단일 스트림 디코딩 시 약 34 tok/s, 프리필 시 약 2,500~2,800 tok/s를 달성합니다.
  • 결정론적 출력: 결정론적 커널을 도입하여 프리필 속도를 희생하지 않고 일관된 그리디 디코딩을 보장합니다.
  • 신뢰성 있는 도구 파싱: 코드 블록 내에서 구문 문서화할 때 모델이 실수로 도구 호출을 트리거하는 것을 방지하기 위한 보호 메커니즘을 구현했습니다.
  • 간편한 배포: 설정, 헬스 체크, 서빙을 위한 간편한 ./flash 명령어를 제공합니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트