Qwen3.6 vLLM 설정 방법 완벽 가이드 2026년 최신
왜 Qwen3.6에 vLLM을 쓰는가
Ollama·llama.cpp도 훌륭하지만, 동시 요청이 많거나 팀 단위로 Qwen3.6을 서빙해야 한다면 vLLM이 사실상 표준입니다. PagedAttention과 continuous batching으로 동일 GPU에서 2~5배 높은 처리량을 뽑아내기 때문입니다.
특히 Qwen3.6-35B-A3B의 MoE 구조는 vLLM의 최신 스케줄러와 궁합이 좋습니다. Qwen3.6 vLLM 설정 방법만 제대로 잡으면, 262K 컨텍스트와 reasoning 모드까지 한 서버에서 그대로 활용할 수 있습니다.
준비물과 시스템 요구사항
본격적으로 Qwen3.6 vLLM 설정 방법을 따라가기 전에 아래 환경을 먼저 점검하세요.
- ✅ OS: Ubuntu 22.04 LTS 권장 (CUDA 드라이버 호환성 최상)
- ✅ Python: 3.10 ~ 3.12
- ✅ CUDA: 12.4 이상
- ✅ GPU: A6000 48GB × 1 또는 RTX 4090 24GB × 2 (Tensor Parallel)
- ✅ 디스크: 70GB 이상 여유 공간 (모델 가중치 다운로드용)
- ✅ Hugging Face 계정 및 액세스 토큰 (ModelScope 대안 가능)
⚠️ 드라이버와 CUDA 버전이 어긋나면 vLLM이 설치는 되어도 ImportError: undefined symbol로 실행 실패합니다. 첫 단추가 가장 중요합니다.
1단계. vLLM 설치 및 환경 구성
가상환경부터 깔끔하게 분리하는 것이 실패를 줄이는 가장 빠른 길입니다.
python3 -m venv ~/venvs/vllm
source ~/venvs/vllm/bin/activate
pip install --upgrade pip
pip install vllm
설치 후 vllm --version으로 버전을 확인하세요. Qwen3.6은 vLLM 0.8.x 이상에서 공식 지원됩니다. 낮은 버전이면 reasoning-parser나 MoE 라우팅이 제대로 동작하지 않습니다.
💡 Hugging Face에 로그인하는 것도 잊지 마세요.
huggingface-cli login
2단계. Qwen3.6 vllm serve 명령어 옵션
Qwen3.6 vLLM 설정 방법의 핵심은 vllm serve 명령 한 줄에 모든 주요 옵션이 집약된다는 점입니다.
vllm serve Qwen/Qwen3.6-35B-A3B \
--port 8000 \
--tensor-parallel-size 2 \
--max-model-len 262144 \
--reasoning-parser qwen3 \
--gpu-memory-utilization 0.92
각 옵션이 하는 일을 빠르게 훑어봅시다.
| 옵션 | 역할 | 권장값 |
|---|---|---|
--port | API 서버 포트 | 8000 |
--tensor-parallel-size | 모델을 N장의 GPU로 분산 | GPU 개수와 일치 |
--max-model-len | 최대 컨텍스트 길이 | 32K~262K |
--reasoning-parser | 추론 모드 출력 파싱 | qwen3 |
--gpu-memory-utilization | VRAM 사용 비율 | 0.9 전후 |
3단계. Tensor Parallel 멀티 GPU 배포
Qwen3.6-35B-A3B는 FP16 기준 약 70GB를 차지하므로, 24GB GPU 한 장으로는 버겁습니다. 이때 Tensor Parallel 멀티 GPU 배포가 답입니다.
무엇을: 모델의 레이어를 여러 GPU에 쪼개어 로드합니다.
왜: 단일 GPU VRAM 한계를 넘기고, 레이턴시를 낮추기 위해.
어떻게: --tensor-parallel-size에 GPU 개수를 넣습니다.
💡 GPU가 4장이라면 --tensor-parallel-size 4, 2장이면 2입니다. 주의할 점은 어텐션 헤드 수가 TP 크기로 나눠떨어져야 한다는 것. Qwen3.6은 2·4·8 모두 지원합니다.
⚠️ NVLink가 없는 PCIe 환경에서는 TP=4 이상일 때 통신 오버헤드가 커져 오히려 느려질 수 있습니다. 이 경우 Pipeline Parallel과 조합하거나 TP=2로 낮추세요.
4단계. max-model-len과 reasoning-parser 설정
max-model-len과 reasoning-parser 설정은 Qwen3.6 품질을 결정짓는 두 가지 핵심 옵션입니다.
max-model-len은 욕심내지 말 것
기본 262,144로 두면 KV 캐시만 수십 GB를 먹습니다. 실제 워크로드가 32K 이내라면 --max-model-len 32768로 낮추세요. 처리량이 크게 오릅니다.
reasoning-parser qwen3의 효과
--reasoning-parser qwen3을 켜면 Qwen3.6이 생성한 <think> 블록이 별도 필드로 반환됩니다. 클라이언트에서 추론 과정과 최종 답변을 깔끔하게 분리 처리할 수 있어 에이전틱 애플리케이션에 필수입니다.
5단계. OpenAI 호환 API 연동 테스트
서버가 뜨면 OpenAI SDK로 그대로 호출하면 됩니다. OpenAI 호환 API 연동 테스트는 기존 OpenAI 코드 한 줄만 바꾸면 끝납니다.
from openai import OpenAI
client = OpenAI(
base_url="http://localhost:8000/v1",
api_key="EMPTY",
)
resp = client.chat.completions.create(
model="Qwen/Qwen3.6-35B-A3B",
messages=[{"role": "user", "content": "vLLM 설정 잘 됐는지 확인해줘"}],
)
print(resp.choices[0].message.content)
✅ 정상 응답이 돌아오면 연동 성공입니다. curl로 빠르게 확인하고 싶다면:
curl http://localhost:8000/v1/models
자주 하는 실수와 주의사항
Qwen3.6 vLLM 설정 방법에서 초보자가 가장 많이 넘어지는 지점을 정리했습니다.
- ⚠️ CUDA OOM:
--gpu-memory-utilization을 0.85로 낮추거나--max-model-len을 줄이세요. - ⚠️ 모델 다운로드 실패: 중국·한국 일부 네트워크에서는 HF가 느립니다.
VLLM_USE_MODELSCOPE=true로 ModelScope를 사용하세요. - ⚠️ Tensor Parallel 에러: NCCL 문제라면
NCCL_P2P_DISABLE=1환경변수로 임시 해결 가능. - ⚠️ reasoning 결과가 안 분리됨: vLLM 버전이 낮거나
--reasoning-parser오타.qwen3정확히 입력.
자주 묻는 질문 FAQ
Q. RTX 4090 1장으로도 Qwen3.6-35B-A3B를 vLLM으로 띄울 수 있나요?
FP16 원본은 어렵지만, AWQ·GPTQ 4bit 양자화 버전을 사용하면 단일 4090에서도 구동 가능합니다. --quantization awq 옵션을 추가하세요.
Q. vLLM과 Ollama 중 어떤 것을 선택해야 하나요?
1인 로컬 실험은 Ollama, 팀·서비스 배포는 vLLM이 정답입니다. vLLM은 동시 요청 배칭과 처리량 최적화에 특화되어 있습니다.
Q. Docker로 띄우는 게 더 편하지 않나요?
맞습니다. vllm/vllm-openai 공식 이미지가 제공되므로, 운영 환경에서는 Docker + systemd 조합이 재현성과 안정성 면에서 가장 유리합니다.
Q. 함수 호출(tool use)도 지원하나요?
네. --enable-auto-tool-choice --tool-call-parser hermes 옵션을 추가하면 OpenAI 호환 function calling을 그대로 사용할 수 있습니다.
Qwen3.6 vLLM 설정 방법을 실제 환경에 적용하며 만난 이슈가 있다면 댓글로 공유해주세요. 오픈소스 LLM 서빙과 에이전틱 코딩 가이드를 꾸준히 업데이트하니 구독과 공유로 함께해주시면 큰 힘이 됩니다. 🙌