TL;DR
고가의 다중 GPU 서버 없이 RTX 4070 Ti 12GB와 32GB RAM만으로 약 20GB인 Ornith-1.5-35B-A3B-GGUF를 실행한 구성입니다. 약 3B 활성 전문가와 36B 전체 전문가를 가진 MoE 구조에서 28개 전문가를 CPU로 오프로딩하고 나머지를 VRAM에 배치했습니다. 실제 프롬프트 기준 prefill은 약 650~700 tok/s, 지속 생성은 약 50~56 tok/s였으며 MTP draft 수용률은 약 42~48%였습니다. `llama-bench`에서는 CPU 오프로딩 수를 26에서 28로 늘릴수록 생성 속도가 64.9에서 62.6 t/s로, prefill 속도가 571에서 461 t/s로 낮아졌습니다.
실용적 조언
- 12GB VRAM에서 이 모델을 실행할 때는 `--n-cpu-moe` 값을 조절해 KV 캐시용 공간과 처리량 사이의 균형을 맞출 수 있습니다. 게시물의 측정에서는 27개 오프로딩 설정이 약 1GB의 여유를 남겼고, 26·27·28 사이에서 생성 속도와 prefill 속도가 각각 달라졌습니다. 긴 문맥을 사용할수록 KV 캐시가 추가 공간을 차지하므로, 실제 대화에서는 짧은 벤치마크보다 여유 VRAM을 더 크게 잡아야 합니다.
섹션별 상세
용어 해설
- 전문가 혼합 모델(Mixture-of-Experts)
- — Mixture-of-Experts는 여러 전문가 네트워크 중 입력에 맞는 일부만 선택해 계산하는 구조입니다. 전체 가중치는 크지만 토큰마다 활성화되는 전문가 수를 줄여 추론 연산량과 GPU 메모리 요구량을 낮출 수 있습니다.
- MoE 오프로딩(MoE Offloading)
- — MoE Offloading은 자주 선택되는 활성 전문가를 VRAM에 배치하고 나머지 전문가 가중치를 시스템 RAM에 두는 메모리 배치 방식입니다. GPU 메모리가 제한된 환경에서도 큰 모델을 실행하는 대신 CPU와 메모리 전송 비용을 감수합니다.
- KV 캐시(KV Cache)
- — KV Cache는 생성 과정에서 이미 계산한 어텐션의 Key와 Value를 저장해 긴 문맥을 다시 계산하지 않도록 하는 메모리입니다. 문맥이 길어질수록 사용량이 늘어나므로 가중치를 VRAM에 적재한 뒤 남는 공간이 중요합니다.
- 추측 디코딩(Speculative Decoding)
- — Speculative Decoding은 작은 draft 모델이나 보조 생성기가 다음 토큰 후보를 먼저 만들고, 주 모델이 이를 한꺼번에 검증하는 추론 방식입니다. 게시물에서는 MTP draft가 평균 약 1.9토큰을 제안하고 42~48%가 수용됐습니다.
코드 예제
llama-server
-hf ornith-ai/Ornith-1.5-35B-A3B-GGUF:Q4_K_M
--no-mmproj
-ngl 99
--n-cpu-moe 28
--load-mode none
-c 32768
--parallel 1
-fa on
--cache-type-k q8_0 --cache-type-v q8_0
--spec-type draft-mtp --spec-draft-n-max 2
-t 8
--jinja
--reasoning-format auto
--temp 0.6 --top-p 0.95 --top-k 20llama.cpp에서 35B MoE 모델의 전문가 대부분을 CPU 쪽으로 오프로딩하고 32,768 토큰 문맥과 MTP 추측 디코딩을 활성화하는 Windows 실행 명령입니다.
언급된 도구
llama.cpp의 `llama-server`와 `llama-bench`가 모델 실행과 처리량 측정에 사용됐습니다. CUDA 12.4 기반 Windows 사전 빌드와 566.xx 드라이버 환경이 함께 기록됐습니다.
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.