TL;DR
작성자는 12GB VRAM의 RTX 5070 Ti Mobile 노트북에서 CPU/RAM offloading으로 Unsloth Qwen 3.8 27B를 실행하고, 용도에 따라 두 가지 설정을 사용합니다. Agentic coding에서는 -ctx 262144와 -ngl 30으로 긴 프로젝트 문맥을 확보해 180K context fill 약 1.5 t/s를 감수하고, Hermes Agent에서는 -ctx 98304와 -ngl 99로 줄여 90K context fill 약 9 t/s를 얻습니다. 기존 Qwen 3.6 35B A3B MTP는 약 50–60 t/s로 더 빨랐지만 지시 파일의 자동 절차를 자주 놓쳤고, Qwen 3.8 27B는 속도 대신 지시 준수성이 높아 실제 비서 작업에서 더 유용했습니다.
실용적 조언
- 12GB VRAM에서 27B 모델을 실행할 때는 용도에 따라 context와 GPU 레이어 수를 분리해 설정하는 편이 적합합니다. 긴 코드베이스를 다루는 작업은 -ctx 262144와 -ngl 30 조합으로 문맥을 확보하고, 대화형 비서는 -ctx 98304와 -ngl 99 조합으로 응답 속도를 높일 수 있습니다. 두 설정 모두 FFN 가중치를 CPU에 두고 Q8_0 KV cache를 사용하는 동일한 offloading 전략을 기반으로 합니다.
- 모델 선택은 tokens/sec 하나만으로 판단하기보다 실제 에이전트 작업의 지시 준수성까지 함께 측정해야 합니다. 이 사례에서는 Qwen 3.6 35B A3B MTP가 약 50–60 t/s를 냈지만 Hermes의 자동 후속 절차를 자주 놓쳤고, 더 느린 Qwen 3.8 27B가 파일 업데이트와 사후 절차를 더 안정적으로 수행했습니다. 따라서 같은 지시 파일과 작업 목록을 반복 실행하면서 속도와 절차 준수를 함께 비교하는 방식이 필요합니다.
섹션별 상세
-ctx 262144
-ub 512
-np 1
-ngl 30
-ot 'blk\.(0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31|32|33|34|35|36|37|38|39|40|41|42|43|44|45|46|47|48|49|50|51|52|53|54|55|56|57|58|59|60|61|62|63|64)\.ffn\_(gate|up|down)\.weight=CPU'
-fa on
-ctk q8_0 -ctv q8_0
-fit off
--mmproj
--no-mmproj-offload
--spec-type draft-mtp
--spec-draft-n-max 2
-ctkd q8_0 -ctvd q8_0
--load-mode 'none'
--temp 1
--top-k 20
--top-p 0.95
--min-p 0
--repeat-penalty 1
--presence-penalty 0
--jinja
--chat-template-kwargs {"reasoning_strength": "xhigh"}
--reasoning preserveAgentic coding에서 문맥 길이를 최우선으로 둔 llama.cpp 실행 설정입니다. GPU 레이어를 30개로 제한하고 FFN 가중치를 CPU에 배치해 262144 context를 확보합니다.
-ctx 98304
-ub 512
-np 1
-ngl 99
-ot 'blk\.(0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31|32|33|34|35|36|37|38|39|40|41|42|43|44|45|46|47|48|49|50|51|52|53|54|55|56|57|58|59|60|61|62|63|64)\.ffn\_(gate|up|down)\.weight=CPU'
-fa on
-ctk q8_0 -ctv q8_0
-fit off
--mmproj
--no-mmproj-offload
--spec-type draft-mtp
--spec-draft-n-max 2
-ctkd q8_0 -ctvd q8_0
--load-mode 'none'
--temp 1
--top-k 20
--top-p 0.95
--min-p 0
--repeat-penalty 1
--presence-penalty 0
--jinja
--chat-template-kwargs {"reasoning_strength": "xhigh"}
--reasoning preserveHermes Agent에서 생성 속도를 우선한 llama.cpp 실행 설정입니다. GPU 레이어를 99개로 높이고 context를 98304로 낮춰 12GB VRAM 노트북에서 더 빠른 응답을 확보합니다.
용어 해설
- Tensor Offloading
- — 모델의 일부 텐서를 GPU VRAM에 모두 올리지 않고 CPU 메모리로 옮겨 처리하는 방식입니다. 이 글에서는 12GB VRAM 노트북에서 27B 모델을 실행하기 위해 FFN 가중치를 CPU에 배치하고, GPU에는 일부 레이어를 남기는 구성으로 활용됩니다.
- Mixture of Experts
- — 여러 Expert 네트워크 중 입력과 관련된 일부만 활성화해 전체 파라미터보다 적은 연산으로 추론하는 구조입니다. 작성자는 자신의 하드웨어에 MoE가 더 적합하다는 점을 알면서도, 테스트에서 더 나은 성능을 보인 27B 모델을 선택했습니다.
- KV 캐시(KV Cache)
- — 대화 중 이미 처리한 토큰의 Key와 Value를 저장해 긴 문맥을 다시 계산하지 않도록 하는 메모리 구조입니다. 글에서는 Q8_0 KV cache를 사용하며, 문맥을 크게 확보하는 설정과 생성 속도를 우선하는 설정 사이에서 용량을 조절합니다.
- 문맥 길이(Context Size)
- — 모델이 한 번에 참고할 수 있는 입력과 대화의 토큰 범위입니다. 작성자는 Agentic coding에서 프로젝트 전체 구조를 유지하기 위해 262144 context를 선택했고, 개인 비서 용도에서는 속도를 높이려고 98304로 줄였습니다.
- CPU/RAM Offloading
- — VRAM이 부족할 때 모델 가중치나 관련 데이터를 시스템 RAM과 CPU 쪽에 배치해 실행하는 방식입니다. 이 글의 두 설정은 12GB VRAM만으로 27B 모델을 구동하기 위해 GPU 레이어 수와 CPU에 둘 FFN 가중치를 다르게 조합합니다.
언급된 도구
CUDA와 tensor offloading을 이용해 로컬 LLM을 추론하는 실행 엔진
노트북 GPU에서 llama.cpp 추론을 실행하는 GPU 가속 환경
대형 개인 프로젝트에서 모델을 활용하는 Agentic coding 환경
작성자가 기존에 대형 프로젝트에 사용하던 코딩 도구
DeepSeek V4 Flash Free를 사용하는 코딩 환경
개인 비서 작업에서 지시 파일과 후속 절차를 실행하는 에이전트 환경
작업 완료 후 vault 업데이트에 사용하는 지식 관리 도구
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.