모델별 실행 레시피
Qwen3.6 35B-A3B 서빙 가이드: vLLM·qwen3 파서 레시피
Qwen3.6 35B-A3B는 활성 3B라는 설명 때문에 작은 모델처럼 보일 수 있습니다. 하지만 24GB 장비에서는 전체 Q4 가중치를 올린 뒤 여유가 크지 않을 수 있습니다. 메모리를 맞추고 생각 과정과 최종 답변을 구분한 뒤, 내 질문에서 빨라지는 설정을 찾아보겠습니다.
실행 레시피
장비별 설정
한 사람이 사용할 때
사용할 장비를 고르면 실행 명령과 조정할 옵션이 나옵니다.
운용 프로필
Apple MacBook Pro M5 Pro (64GB)
메모리 적정권장 런타임: oMLX (MLX 4비트 (GGUF Q4_K_M과 별도 형식)) · 문서화된 런타임 설정
설치 직후 처음 실행하거나 매일 안정적으로 사용할 때
선택 프로필 문맥
16,384 토큰
런타임 문서에 따른 시작 설정입니다. 아래 순서로 조정하며 속도를 비교하세요.
계산기 예상 디코드
22.6 ~ 54.1 tok/s
단일 사용자 예상치
계산기 예상 TTFT
8.9 ~ 21.2초
프리필: 774 ~ 1,854 tok/s
예상 메모리 점유
약 21.91GB / 56GB
남은 여유: 약 34.1GB
서버 주소
http://127.0.0.1:8000
로컬 전용 127.0.0.1
예상치는 계산기의 추천 양자화·가속과 16,384토큰 기준입니다. 위 실행 설정의 실측값은 아닙니다.
이 프로필의 실제 설정
| 적용값 | 왜 이렇게 잡았나 |
|---|---|
| 가중치MLX 4비트 (GGUF Q4_K_M과 별도 형식) | MLX 모델 디렉터리를 사용합니다. GGUF의 Q4_K_M과 같은 파일 형식이 아닙니다. |
| 입력 길이 확인16,384 | 요청 전 모델 설정의 입력 제한을 확인합니다. 이 실행 명령은 문맥 길이를 지정하지 않습니다. |
| KV 캐시모델 설정에서 확인 | 이 실행 명령은 KV 캐시 정밀도를 지정하지 않습니다. |
| 프리필 배치런타임 설정에서 확인 | llama.cpp의 batch-size와 ubatch-size를 MLX 설정값으로 대신 쓰지 않습니다. |
| 동시 요청1 | 한 요청의 속도를 확인합니다. 여러 요청의 합산 처리량과 구분합니다. |
| 메모리 여유2GB 이상 | 모델을 불러온 뒤 실제 메모리와 스왑 여부를 확인합니다. |
MBP M5 Pro 64GB 실행 명령어 (oMLX)
MODEL_DIR="$HOME/.omlx/models"
omlx serve \
--model-dir "$MODEL_DIR" \
--host 127.0.0.1 \
--port 8000 \
--max-concurrent-requests 1 \
--memory-guard balanced실행 후 확인
- 01서버 시작 로그에서 모델 적재 완료와 실제 컨텍스트 길이를 확인합니다.
- 02준비 실행 뒤 요청은 하나씩 보냅니다. 길이가 같은 서로 다른 입력 세 개로 첫 입력 처리 시간을 기록합니다.
- 03같은 입력을 반복한 결과는 캐시 재사용으로 따로 기록합니다. 첫 입력 결과와 합치지 않습니다.
- 04프리필 tok/s, 디코드 tok/s, 피크 메모리를 함께 기록한 뒤 한 항목씩만 바꿉니다.
바뀌는 점
- 문맥과 동시 요청을 보수적으로 잡아 장비의 최대 처리량보다 낮게 나올 수 있습니다.
한 항목씩 조정
속도를 올리는 순서
여러 값을 한꺼번에 바꾸면 원인을 찾기 어렵습니다.
- STEP 1
기준값 저장
첫 입력과 캐시 재사용을 구분하고 각각 세 번 기록합니다. 프리필·디코드·피크 메모리를 함께 비교합니다.
멈출 때: 오류가 있거나 메모리 여유가 2GB보다 작으면 다음 단계로 넘어가지 않습니다.
- STEP 2
프리필 청크 조정
1,024 → 2,048 → 4,096 순서로 올리며 긴 입력의 TTFT와 피크 메모리를 비교합니다.
멈출 때: TTFT가 줄지 않거나 메모리 정점이 급증하면 직전 값으로 돌아갑니다.
- STEP 3
KV 캐시 조정
문맥이 부족할 때만 F16/BF16 기준값과 Q8 캐시를 같은 질문으로 비교합니다.
멈출 때: 출력 차이가 생기거나 필요한 문맥이 이미 확보됐다면 기본 정밀도를 유지합니다.
- STEP 4
MTP·투기 디코딩
지원 모델에서만 켠 뒤 코드와 일반 문장을 나눠 수락률과 실제 디코드 tok/s를 측정합니다.
멈출 때: 세 번의 중앙값이 기준보다 좋아지지 않으면 끕니다.
- STEP 5
문맥 확장
실제로 필요한 길이까지 두 배씩 늘리고 중간 정보 검색과 스왑 여부를 확인합니다.
멈출 때: 검색 정확도가 떨어지거나 스왑·메모리 압축이 시작되면 한 단계 줄입니다.
내 장비 측정 기록 보내기
같은 조건으로 3회 이상 측정한 JSON을 가져오세요. 전송 버튼을 누르기 전에는 이 브라우저에서만 확인합니다.
장비·모델·실행 조건과 측정값만 받습니다. 질문·답변·원본 로그·파일 경로는 넣지 마세요.
기록 파일이 없다면, 실행 중인 로컬 서버에서 측정 도구로 만들 수 있습니다. Node.js 20 이상이 필요하며 결과를 자동 전송하지 않습니다.
검토한 이용자 제출 기록입니다. 이 사이트의 직접 측정과는 구분합니다.
설정 오류 제보
선택한 설정에서 막힌 부분을 알려주세요. 제보는 관리자만 확인합니다.
전송할 설정 · MBP M5 Pro 64GB · Qwen3.6 35B-A3B (MoE) · 균형 설정
Qwen3.6 35B-A3B (MoE) · 4K
Qwen3.6 35B-A3B (MoE) · 4,096토큰 입력 · 한 명이 사용하는 조건의 예상 결과입니다. 실측 기록이 아니라 속도 체험과 같은 계산값입니다.
이미 이 장비가 있다면 아래 조건으로 먼저 체험해 보세요. 답변을 기다릴 만하다면 속도 때문에 바로 장비를 바꿀 필요는 없습니다.

Mac mini M4 32GB · Qwen3.6 35B-A3B (MoE)
양자화: Q4_K_M · 가속: none · 토큰 생성: 7.8 ~ 22.5 tok/s · 첫 토큰: 5.5 ~ 15.7초
입력 처리: 263 ~ 757 tok/s · 필요한 메모리: 21.3GB · 사용 가능 메모리: 27GB
DGX Spark 128GB · Qwen3.6 35B-A3B (MoE)
양자화: Q4_K_M · 가속: none · 토큰 생성: 17 ~ 42.7 tok/s · 첫 토큰: 1.5 ~ 2.8초
입력 처리: 1,520 ~ 2,782 tok/s · 필요한 메모리: 21.3GB · 사용 가능 메모리: 116GB
2× DGX Spark 256GB · Qwen3.6 35B-A3B (MoE)
양자화: Q4_K_M · 가속: none · 토큰 생성: 17 ~ 61.4 tok/s · 첫 토큰: 0.91 ~ 2.4초
입력 처리: 1,763 ~ 4,563 tok/s · 필요한 메모리: 21.3GB · 사용 가능 메모리: 232GB
두 대는 모델을 나눠 담는 선택입니다. 메모리가 늘어도 한 답변의 생성 속도가 두 배가 되지는 않습니다. 연결과 분산 설정이 필요합니다.
24GB에서는 파일을 올린 뒤가 중요합니다
호환 Q4 변환본은 약 20GB 안팎의 안내를 출발점으로 삼되 실제 파일을 확인합니다. 모델 가중치와 4K~8K 문맥의 캐시, 실행 공간이 함께 들어가야 합니다. GPU에 로드됐다는 메시지만으로 긴 대화까지 보장되지는 않습니다.
32GB 이상에서도 다른 앱과 캐시를 위한 여유를 확인해야 합니다. 공식 체크포인트는 Q4 변환본과 용량이 다릅니다. 아래 멀티 GPU 예시와 데스크톱 파일을 여는 명령은 서로 다른 경로입니다.
받을 모델과 실행 앱의 지원을 먼저 맞추세요. 정상 동작하던 파일이 있다면 보관하고 새 경로를 시험해야 문제 발생 시 비교할 기준이 남습니다.

서버 예시의 GPU 수는 구매 권장이 아닙니다
공식 vLLM 예시의 병렬 수는 장착된 장비와 메모리·지원 조건에 맞아야 합니다. 주석에 있는 8을 어떤 GPU 여덟 장이면 된다는 뜻으로 읽지 마세요. 데스크톱 Q4를 실행하려는 목적이면 LM Studio나 위 장비 선택기의 경로를 사용합니다.
vLLM에서는 해당 모델을 지원하는 버전과 qwen3 추론 파서를 확인합니다. 이 예시는 vLLM 0.19.0 이상 안내를 출발점으로 두지만, 현재 설치된 버전에서 지원되는지가 실제 실행 조건입니다. 서버는 먼저 로컬 주소에만 둡니다.
MTP는 기준 답변이 정상적으로 나온 뒤 지원되는 조합에서 추가합니다. 여러 옵션을 한번에 복사한 최고 기록보다, 기본값과 바뀐 항목이 남은 기록이 내 환경에서 원인을 찾기 좋습니다.
GPU_COUNT=8 # 공식 예시는 8 GPU, 실제 구성에 맞춰 수정
vllm serve Qwen/Qwen3.6-35B-A3B --host 127.0.0.1 --port 8000 --tensor-parallel-size "$GPU_COUNT" --max-model-len 8192 --reasoning-parser qwen3 --gpu-memory-utilization 0.92lms ls
lms load <qwen-3.6-35b-identifier> --gpu=max --context-length=8192
lms server start --port 1234생각하는 시간과 답변 쓰는 시간을 구분합니다
추론 파서는 생각 과정과 최종 결과를 앱이 구분하도록 돕습니다. 화면에 최종 문장이 늦게 보일 때 이미 생각 토큰을 생성하고 있는지 확인하세요. 이를 전부 프리필로 기록하면 입력 처리 성능을 잘못 읽게 됩니다.
같은 질문의 입력 길이와 최대 출력, 생각 설정을 맞춰 비교합니다. 준비 실행 뒤 세 번의 중앙값과 실제 출력 토큰 수를 남깁니다. 답변 길이가 크게 다른 두 실행의 완료 시간만 비교하면 생성 속도를 분리하기 어렵습니다.
아래 테스트는 vLLM의 8000 주소입니다. LM Studio를 사용했다면 1234와 로드한 모델 식별자로 맞춥니다. 주소가 다르면 모델이 느린 문제가 아니라 다른 서버에 질문한 문제일 수 있습니다.
curl -N http://127.0.0.1:8000/v1/chat/completions -H "Content-Type: application/json" -d '{
"model": "Qwen/Qwen3.6-35B-A3B",
"messages": [
{"role": "user", "content": "파이썬으로 이진 탐색 함수를 작성하고 시간 복잡도를 설명해줘."}
],
"max_tokens": 1024,
"stream": true
}'긴 문맥과 가속을 하나씩 올립니다
24GB에서 여유가 적다면 요청을 한 개로 고정하고 짧은 문맥을 유지해봅니다. 이후 필요한 입력 길이로 늘릴 때 캐시와 피크 메모리를 확인합니다. 속도가 갑자기 떨어지면 스왑이나 CPU로 넘어간 가중치가 있는지 먼저 봅니다.
지원되는 MTP를 켜면 평균 승인 길이와 디코드가 실제로 개선됐는지 확인합니다. 코드 한 종류에서 잘 나온 배율을 일반 글쓰기에도 적용하지 마세요. 캐시 정밀도와 프리필 청크도 개별적으로 비교해야 합니다.
긴 입력의 대기만 문제라면 디코드 가속보다 입력 처리와 캐시를 살펴볼 이유가 있습니다. 어떤 구간이 느린지 적어두면 설정을 더 넣지 않고도 다음 실험을 좁힐 수 있습니다.
실행이 됐으면 평소 할 일을 끝내봅니다
테스트용 이진 탐색 코드만으로 충분히 검증됐다고 보지는 마세요. 실제 수정하려던 코드나 문서를 넣고 결과를 확인합니다. 원하는 답이 나오는지와 기다릴 만한지가 모두 맞아야 사용할 설정이 됩니다.
그 상태의 모델 파일과 런타임, 문맥과 가속을 저장하세요. 더 큰 장비를 검토할 때도 이 조건이 비교 기준입니다. 이미 충분하다면 새 GPU 대신 현재 구성을 계속 쓰는 것도 이 레시피가 줄 수 있는 결과입니다.

NVFP4로 실행하려면
Spark는 Marlin MoE 경로와 MTP용 Triton 설정이 안내되어 있습니다. NVFP4만 켠다고 MTP도 켜지지는 않습니다.
vLLM · nvidia/Qwen3.6-35B-A3B-NVFP4
수정 내역
사이트의 안내가 바뀐 기록입니다. 설치된 엔진·모델 버전을 자동으로 확인한 결과는 아닙니다.
Mac의 모델 형식과 실행 설정 정정
Mac의 MLX 실행 경로를 GGUF Q4_K_M과 구분하고, 엔진 이름·모델 형식·명령의 표기를 맞췄습니다. 명령에서 지정하지 않는 KV 캐시 정밀도와 프리필 배치는 모델·런타임 설정에서 확인하도록 바꿨습니다.
명령이 그대로인데 배치만 커진 것처럼 보이던 MLX 속도 프로필도 제거했습니다.
첫 입력과 캐시 재사용의 기록 분리
검증 순서에서 처음 읽는 입력과 같은 입력을 반복한 결과를 따로 기록하도록 바꿨습니다. 캐시 효과를 프리필 처리량이나 장비 차이로 합산하지 않습니다.
장비·프로필 저장과 다시 열기 추가
실행 가능한 프로필은 장비와 함께 이 브라우저에 최대 5개까지 저장하고, 가이드 목록에서 다시 열 수 있게 했습니다. 저장한 뒤 공개 설정이 바뀌거나 프로필이 없어지면 실행 전에 다시 확인하도록 안내합니다.
실행 엔진 설명으로 이어지는 링크 추가
설정에 표시된 엔진 이름에서 해당 실행 프로그램의 설명으로 이어지도록 했습니다. 엔진이 확인되지 않은 경로에는 임의의 프로그램을 연결하지 않습니다.