TL;DR
Windows 11에서 Docker Desktop과 WSL 2를 사용하는 NVIDIA RTX PRO 6000 Blackwell 환경에 Qwen3.8-27B를 vLLM OpenAI-compatible 서버로 올리는 절차입니다. 모델과 vLLM 캐시를 Windows bind mount 대신 Docker의 Linux named volume에 두어 WSL 9P 경계를 통한 반복적인 safetensors 읽기를 피하고, BF16·prefix caching·chunked prefill·tool calling·MTP를 실행 옵션으로 묶습니다. 131K 문맥과 동시 요청 2개를 baseline으로 검증한 뒤 262K와 요청 4개로 확장하며, 모든 요청이 공유하는 KV-cache 때문에 설정값이 동시 262K 문맥을 보장하지는 않습니다. MTP는 출력 디코딩을 최적화하지만 긴 프롬프트의 prefill에는 영향을 주지 않으며, 실제 상태는 /metrics와 nvidia-smi로 따로 확인해야 합니다.
실용적 조언
- Windows bind mount에서 safetensors를 직접 읽지 말고 Docker named volume에 모델을 복사하는 순서를 따르는 편이 적절합니다. 먼저 qwen38-model과 qwen38-vllm-cache volume을 만든 뒤 모델을 한 번 복사하고, vLLM 실행 시 두 volume을 각각 /models/qwen38과 /root/.cache/vllm에 연결합니다. 이렇게 하면 Windows 백업본은 별도로 보존하면서 컨테이너의 반복적인 모델 접근과 캐시 재사용을 Linux 파일 시스템 안에서 처리할 수 있습니다.
- 처음부터 262K 문맥과 동시 요청 4개를 사용하지 말고 131K, max-num-seqs 2, GPU memory utilization 0.92 설정으로 서버가 정상 기동하는지 확인해야 합니다. /health, /v1/models, chat completions 요청으로 API를 검사하고 Application startup complete 로그가 나온 뒤 실제 요청을 보냅니다. 첫 요청은 추가 kernel compilation 때문에 이후 요청보다 느릴 수 있으므로 초기 지연을 steady-state 성능으로 판단하지 않는 편이 좋습니다.
- GPU 메모리 사용량과 GPU compute utilization을 같은 지표로 해석하지 않아야 합니다. gpu-memory-utilization 값은 weights, activations, CUDA graphs, KV-cache pool에 사용할 메모리를 예약하므로 idle 상태에서도 높은 VRAM 사용량이 나타날 수 있습니다. 요청 수, 대기 수, KV-cache 사용률, prompt·generation 토큰, speculative decoding 수용 토큰은 /metrics와 nvidia-smi, docker logs를 함께 확인해야 합니다.
섹션별 상세
용어 해설
- Windows Subsystem for Linux 2(WSL 2)
- — Windows에서 Linux 환경을 실행하는 호환 계층입니다. Docker Desktop이 Linux 컨테이너와 GPU를 사용할 수 있도록 연결하며, Windows 파일 시스템과 Linux 컨테이너 사이의 접근 경로에 따라 모델 로딩 성능이 달라집니다.
- KV 캐시(KV-cache)
- — LLM이 이미 처리한 토큰의 Key와 Value 상태를 저장해 긴 문맥을 다시 계산하지 않도록 하는 메모리 영역입니다. vLLM은 이를 여러 요청 사이에서 관리하며, 모델 가중치와 함께 GPU 메모리를 사용합니다.
- 접두사 캐싱(Prefix Caching)
- — 여러 요청이 동일한 프롬프트 앞부분을 공유할 때 해당 구간의 계산 결과를 재사용하는 기능입니다. 반복되는 시스템 프롬프트나 에이전트 문맥의 prefill 계산을 줄이지만, 캐시가 차지하는 공간은 KV-cache 풀에서 확보해야 합니다.
- MTP 추측 디코딩(MTP Speculative Decoding)
- — 모델 내부의 추가 hidden layer를 활용해 다음 토큰 후보를 미리 생성한 뒤 본 모델이 수용하는 토큰만 채택하는 디코딩 방식입니다. 출력 생성 단계의 속도에 영향을 주며 긴 프롬프트를 읽는 prefill 시간은 줄이지 않습니다.
- 청크형 프리필(Chunked Prefill)
- — 긴 입력 프롬프트를 한 번에 처리하지 않고 여러 청크로 나누어 prefill하는 방식입니다. vLLM의 배치 처리와 함께 사용되며, 긴 문맥 요청과 다른 활성 요청이 GPU 자원을 공유하도록 돕습니다.
언급된 도구
Qwen3.8-27B를 OpenAI-compatible API 서버로 실행하고 reasoning, tool calling, prefix caching, chunked prefill, MTP speculative decoding을 처리합니다.
Windows 11에서 Linux 컨테이너와 WSL 2 backend를 사용해 vLLM 서버와 named volume을 실행합니다.
Windows와 Linux 컨테이너 사이에서 GPU 지원과 파일 시스템 접근을 제공하며, Windows bind mount의 9P 경계가 모델 로딩 속도에 영향을 줍니다.
Qwen3.8-27B checkpoint와 관련 파일을 지정한 Windows staging directory에 다운로드합니다.
언급된 리소스
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.