Recursive Flint에 대한 vLLM Day-0 지원
vLLM은 Recursive의 Flint(400억 파라미터 MoE(Mixture-of-Experts) 모델)에 대한 day-0 지원을 통합하여, 사용자가 단일 GB200 GPU에서 높은 처리량으로 모델을 효율적으로 서빙할 수 있게 했습니다.
Flint 모델 개요 및 기능
Flint는 토큰당 약 25억 개의 파라미터를 활성화하는 400억 파라미터 MoE 모델입니다. 262K 토큰의 큰 컨텍스트 창으로 설계되었으며, NVFP4(양자화 인식 학습) 및 BF16의 두 가지 체크포인트로 제공됩니다.
NVFP4 체크포인트는 GGUF 파일로 제공되며, vLLM은 로드 시 무손실로 다시 패킹합니다. 이 프로세스를 통해 모델은 가중치 전용(W4A16)으로 실행하면서 BF16 활성화 및 KV 캐시를 유지하여, GSM8K, GPQA-Diamond, 긴 컨텍스트 MRCR 및 도구 호출 스위트와 같은 벤치마크에서 Recursive의 참조 구현과 정확도가 일치하도록 보장합니다.
Flint 모델 아키텍처
Flint는 숨은 크기 2048의 49계층 사전 정규화 MoE 아키텍처를 사용합니다. 큰 컨텍스트 창을 효율적으로 관리하기 위해 로컬 어텐션을 강조하는 독특한 설계입니다.
- 어텐션 메커니즘: 대부분의 계층(35개 계층)은 RoPE가 있는 513토큰 슬라이딩 윈도우를 사용합니다. 14개 계층만 위치 인코딩 없이 전체 컨텍스트에 어텐션을 수행합니다. 이 설계는 전체 시퀀스의 KV 상태를 유지하는 14개의 전체 컨텍스트 계층만 있기 때문에 KV 캐시 비용을 토큰당 28KiB로 제한합니다.
- MoE 구조: 모델은 256개의 전문가를 특징으로 하며, 시그모이드 top-6 선택 메커니즘과 공유 전문가를 사용합니다. 계층 0과 1은 MoE 구조 대신 밀집 MLP를 사용합니다.
- 어텐션 싱크: 아키텍처는 학습된 어텐션 싱크를 통합하고, 32개의 쿼리 및 4개의 KV 헤드가 있는 GQA(Grouped Query Attention)를 사용하며, 헤드별 Q/K RMSNorm을 사용합니다.
성능 및 서빙 구현
단일 GB200 GPU에서 Flint를 서빙하면 100K 토큰 컨텍스트를 처리할 때에도 약 500토큰/초의 디코드 속도를 달성합니다. 이 성능은 vLLM 내에서 구현된 광범위한 커널 수준 최적화의 결과입니다.
Flint 지원은 day-0 Docker 이미지 vllm/vllm-openai:flint(x86_64 및 arm64, CUDA 13.0 지원)를 통해 제공됩니다.
사용 예:
NVFP4 체크포인트(GGUF)의 경우 Docker 명령은 다음과 같습니다.
docker run --gpus all --ipc=host -p 8000:8000 \
-v ~/.cache/huggingface:/root/.cache/huggingface \
vllm/vllm-openai:flint \
RecursiveSI/flint-nvfp4-gguf \
--hf-config-path RecursiveSI/flint --tokenizer RecursiveSI/flint \
--enable-auto-tool-choice --tool-call-parser glm47 \
--reasoning-parser glm47 --exclude-tools-when-tool-choice-none
BF16 체크포인트의 경우 Docker 명령은 다음과 같습니다.
docker run --gpus all --ipc=host -p 8000:8000 \
-v ~/.cache/huggingface:/root/.cache/huggingface \
vllm/vllm-openai:flint \
RecursiveSI/flint \
--enable-auto-tool-choice --tool-call-parser glm47 \
--reasoning-parser glm47 --exclude-tools-when-tool-choice-none
최적화 전략
성능 향상은 기본 vLLM 계층을 특수한 Flint 커널로 교체하여 달성되었으며, 참조 구현과 엄격하게 검증되었습니다.
주요 최적화는 다음과 같습니다.
- 소형 배치 MoE 커널: 이 커널을 사용하면 라우터와 전문가 GEMV가 선택된 전문가의 가중치만 읽을 수 있어 디코드 단계 지연 시간이 27% 감소합니다.
- 융합 커널: Q/K 정규화, RoPE 및 KV 캐시 쓰기를 단일 커널로 융합하여 지연 시간을 8% 줄였습니다.
- 저지연 디코드 경로: 최대 8개의 요청에 대해 저지연 경로는 MoE 계층 연산(Q/K 정규화, RoPE, 라우팅 및 전문가 결합)을 인접한 GEMV 커널에 융합합니다. 이 경로는 NVFP4 디코드 시간을 2.7배(4.81ms에서 1.78ms로) 줄이고 BF16 디코드 시간을 1.5배(3.53ms에서 2.34ms로) 줄입니다.
엔드투엔드 서빙 시 100K 컨텍스트에서 배치-1 디코드는 토큰당 2.06ms가 소요되며, 여기에는 순방향 패스, LM 헤드 및 샘플링이 포함됩니다.
Sources
- OriginalDay-0 Support for Flint on vLLM