Llama.cpp 및 MTP를 활성화한 4개의 Nvidia RTX A4000 (각 16GB) 환경에서의 Qwen 3.6 27B Q8 구동
제 설정은 이기종(heterogenous) 구성입니다. 원래 저는 (업무 특성상) OpenShift/K8s 클러스터를 실행하기 위해 서버(Lenovo ThinkStation P3 Tower Gen 2)를 구입했습니다. 그 후, VRAM이 각각 16GB인 Nvidia RTX A4000 카드들을 하나씩 구매하기 시작했습니다. 네, 구형 기술이긴 하지만 제 말을 들어보세요. 카드당 140W이며, 카드당 하나의 PCIe 슬롯을 사용합니다. 제 서버에는 4개의 카드를 장착할 수 있습니다.
최대 전력 상태에서는 성능이 그리 좋지 않다는 글을 읽고 카드당 전력을 125W로 제한했는데, 저도 그 의견에 동의합니다. 성능은 여전히 상당히 좋고 안정적으로 유지됩니다.
제가 사용하는 옵션은 다음과 같으며, MTP를 위한 --spec-draft-n-max 4 설정이 저에게는 가장 좋은 성능을 보여줍니다. 당연히 CUDA 드라이버가 설치된 Fedora 43을 사용 중입니다.
ExecStart=/usr/bin/bash -lc '\
/home/user/llama-server-experiments/llama.cpp/build/bin/llama-server \
--models-dir /home/user/qwen3.6/mtp-variations \
--chat-template "$(cat /home/user/qwen3.6/chat_template.jinja)" \
--ctx-size 262114 \
--fit on \
--n-gpu-layers 999 \
--split-mode tensor \
--parallel 1 \
--flash-attn on \
--host 0.0.0.0 \
--port 8081 \
--timeout 2200 \
--spec-type mtp \
--spec-draft-n-max 4'
저는 MTP가 활성화된 GGUF 형식의 Qwen 3.6 27B Q8 변형 모델을 실행하고 있습니다.
https://huggingface.co/froggeric/Qwen3.6-27B-MTP-GGUF
추론(reasoning) 시에는 초당 약 45개의 토큰(tokens per second)이 나오는 것을 확인했습니다. 코딩(coding)의 경우, 보시는 바와 같이 초당 60개 이상의 토큰으로 속도가 상당히 빨라집니다.
저는 KV 캐시 양자화(KV cache quantization) 없이 전체 컨텍스트(full context)로 실행 중입니다.
결국 제 카드들이 아주 나쁜 구매는 아니었다고 느낍니다.
제가 구매했을 때는 865달러였는데, 현재 중고가는 약 1,300달러, 새 제품은 거의 1,500달러 정도 합니다.
또한 --split-mode layer를 사용하여 Qwen 3.6 35B A3B Q8 MoE를 실행하고 있는데, 이 모델은 코딩 시 초당 90개 정도, 추론 시 초당 80개 정도의 토큰을 달성합니다.
해당 MoE (Mixture of Experts) 모델은 텐서 모드 (tensor mode)가 아닌 레이어 모드 (layer mode)로만 구동되며, 에너지를 훨씬 적게 사용합니다.
하지만 실제 코딩 능력에 대해서는 완전히 만족스럽지는 않습니다. 오해는 마세요, 해결책을 찾아내기는 하지만 두 번째나 세 번째 시도 끝에 도달합니다. 반면 Qwen 2.6 27B dense 모델은 대부분 첫 번째 시도에서 해결하거나, 기껏해야 두 번째 시도에서 적절한 피드백을 통해 해결하는 경향이 있습니다.
1년 반 전만 해도 저는 정말 낙담해 있었습니다. 솔직히 로컬 추론 (local inference) 커뮤니티에 참여하지도 않았고, 7k 달러 상당의 서버를 가지고 있으면서 그저 OCP/K8s 워크로드만 실행할 뿐이었습니다. 하지만 이제는 보상받는 기분입니다. 이 이야기의 교훈은 우리가 하드웨어에서 더 많은 성능을 끌어내기 위해 시장에 계속해서 압력을 가해야 한다는 것입니다. 그리고 우리는 2020년형 그래픽 카드에 대해서도 그렇게 해낼 것입니다.