본문으로 건너뛰기

로컬 LLM의 실제 컨텍스트 한계를 재는 ctx-cliff

ctx-cliff가 로컬 LLM의 VRAM 한계와 양자화 이상을 wall 시간·STOP·ANOMALY로 가려냅니다.

이 요약은 AI가 원문을 분석해 생성했습니다. 정확한 내용은 원문 기준으로 확인하세요.

TL;DR

이 글은 llama-server에서 로컬 LLM의 실제 context 한계와 실행 안정성을 측정하는 ctx-cliff 테스트를 소개합니다. GGML_CUDA_ENABLE_UNIFIED_MEMORY=1은 4 KB 또는 2 MB 페이지 단위의 CUDA 메모리 할당으로 VRAM 단편화에 따른 OOM을 줄이지만, RAM 오프로드로 wall 시간이 늘어날 수 있습니다. 기준 모델은 107,265 context까지 OK를 유지했지만, 같은 파라미터의 Thireus 모델은 ANOMALY와 잦은 STOP을 기록했고 KV cache 형식을 5_0/4_1로 바꿔도 약 107k context 부근의 VRAM 절벽은 사라지지 않았습니다. 따라서 prefill·decode 속도뿐 아니라 wall 시간, 생성 길이, 빈 응답과 비정상 속도를 함께 확인해야 실제 사용 가능한 모델과 설정을 가릴 수 있습니다.

실용적 조언

  • llama-server에서 특정 모델이 실제로 사용할 수 있는 context 길이를 확인하려면 ctx-cliff.py처럼 context 크기를 일정 간격으로 늘리며 측정하는 방식이 유효합니다. prefill과 decode만 보지 말고 wall 시간, STOP 발생 지점, 빈 응답, ANOMALY를 함께 기록해야 VRAM 오프로드와 재처리로 인한 성능 저하를 구분할 수 있습니다. 글의 실행 예시는 2,000토큰대부터 109,000토큰까지 2,000토큰 간격으로 테스트하고 n-predict를 512로 설정했습니다.
  • NVIDIA GPU에서 VRAM 할당 실패를 줄이려면 GGML_CUDA_ENABLE_UNIFIED_MEMORY=1을 적용한 결과와 적용하지 않은 결과를 비교할 수 있습니다. 이 설정은 작은 물리 페이지를 활용해 메모리 단편화에 대응하지만, 부족한 VRAM을 RAM으로 넘겨 wall 시간이 크게 늘어날 수 있습니다. 따라서 최대 context 값만 확보하는 대신, 처리 시간과 생성 안정성이 유지되는 지점을 실제 사용 한계로 삼아야 합니다.

섹션별 상세

01
작성자는 llama-server 설정에서 VRAM을 최대한 활용하려면 GGML_CUDA_ENABLE_UNIFIED_MEMORY=1이 중요하다고 설명합니다. 이 설정은 CUDA 할당을 cudaMallocManaged 경로로 보내 4 KB 또는 2 MB 페이지 단위의 메모리 관리를 사용하게 하며, VMM allocator의 큰 연속 블록 요구로 인한 즉시 OOM을 줄입니다. 다만 VRAM과 RAM 사이의 오프로드도 활성화되므로, 실제 작업에 쓸 수 있는 context 길이는 동일한 모델이라도 설정별로 따로 측정해야 합니다.
02
ctx-cliff.py는 context 길이를 단계적으로 늘리면서 prefill 속도, decode 속도, MTP 사용량, wall 시간을 함께 기록합니다. wall 시간이 context 증가에 비례하지 않고 급격히 커지면 모델이 이전 context를 처음부터 다시 읽는 상태로 볼 수 있어 agentic workflow에 부적합할 수 있습니다. 스크립트는 빈 응답과 1000 t/s를 넘는 비정상값도 감지해 단순한 속도 수치만으로는 확인하기 어려운 실행 오류를 잡습니다.
03
기준 모델 Qwen3.8-27B-i1-IQ4_KS_KT-GGUF는 q4_0 KV cache 설정에서 107,265 context까지 OK 상태를 유지했고 decode 속도는 46.72 t/s에서 23.37 t/s로 낮아졌습니다. 같은 파라미터를 사용한 Thireus 모델은 60,016 context에서 ANOMALY와 STOP@1을 기록했고 여러 구간에서 짧은 STOP이 나타났습니다. 작성자는 비슷한 PPL만으로는 모델 품질을 판단하기 어렵고, 생성 완료 길이와 비정상 출력까지 함께 확인해야 한다고 봅니다.
04
Thireus 모델의 KV cache를 5_0/4_1로 바꿔도 문제가 해결되지 않았습니다. 해당 설정은 107,265 context까지 실행됐지만 93,077 context에서 wall 시간이 90.3초까지 늘었고, decode 속도도 24.79 t/s에서 23.14 t/s로 감소했습니다. 더 작은 MTP 모델은 높은 MTP 수치를 기록해 decode 속도는 일부 구간에서 90 t/s를 넘겼지만, context가 늘수록 wall 시간이 102.5초까지 증가하고 여러 ANOMALY와 STOP이 발생했습니다.

용어 해설

통합 메모리(Unified Memory)
Unified Memory는 GPU와 CPU가 공유하는 주소 공간을 통해 메모리를 관리하는 방식입니다. 이 글에서는 GGML_CUDA_ENABLE_UNIFIED_MEMORY=1 설정이 cudaMallocManaged를 사용하게 하며, VRAM의 작은 빈 공간을 페이지 단위로 묶어 할당 실패를 줄이는 역할로 설명됩니다.
VRAM 오프로드(VRAM Offload)
VRAM 오프로드는 GPU 메모리가 부족할 때 모델 데이터나 KV cache 일부를 시스템 RAM으로 이동하는 처리입니다. VRAM 용량 제약을 넘길 수 있지만 GPU와 RAM 사이의 이동이 발생해 처리 시간이 급증할 수 있으므로, 실제 사용 가능한 context 길이를 별도로 측정해야 합니다.
KV 캐시(KV Cache)
KV Cache는 Transformer가 이전 토큰의 key와 value를 저장해 긴 대화에서 이미 계산한 어텐션 결과를 재사용하는 메모리 구조입니다. 글에서는 q4_0와 5_0/4_1 형식을 비교했지만, 후자의 변경만으로 VRAM 부족 지점이나 전체 성능 문제가 해소되지는 않았습니다.
컨텍스트 윈도(Context Window)
Context Window는 모델이 한 요청에서 처리할 수 있는 입력과 생성 토큰의 범위입니다. 이 테스트는 context 길이를 2,000토큰대부터 107,000토큰대까지 늘리면서 prefill, decode, wall 시간을 측정해 VRAM 한계와 장문 처리 안정성을 확인합니다.
양자화(Quantization)
Quantization은 모델 가중치나 KV cache를 낮은 비트 형식으로 저장해 메모리 사용량을 줄이는 기법입니다. 글에서는 비슷한 PPL과 동일한 파라미터를 가진 GGUF 모델을 비교하고, 비정상적으로 빠른 출력이나 빈 응답이 반복되면 양자화가 손상됐을 가능성이 있다고 판단합니다.

코드 예제

bash
llama-server \
-m "$MODEL_PATH" \
-a Qwen3.6-27B \
--ctx-size 110000 \
--n-gpu-layers 99 \
--cache-type-k q4_0 \
--cache-type-v q4_0 \
--batch-size 512 \
--ubatch-size 128 \
--flash-attn on \
--host 0.0.0.0 \
--port 8081 \
--reasoning on \
--reasoning-format none \
--reasoning-budget 32000 \
-t 8 \
-tb 8 \
--parallel 1 \
--metrics \
--merge-qkv \
-khad \
-vhad \
--chat-template-kwargs '{"preserve_thinking": true, "reasoning_effort": "medium"}' \
--defrag-thold 0.1 \
--jinja \
--cont-batching \
--temp 1.0 \
--top-k 20 \
--min-p 0.00 \
--top-p 0.95 \
--presence-penalty 0.0 \
--repeat-last-n 512 \
--repeat-penalty 1.00

110,000토큰 context와 GPU 레이어, KV cache 형식, reasoning, 배치 크기, 연속 배칭을 지정해 llama-server의 장문 처리 한계를 측정하는 실행 설정입니다.

언급된 도구

llama-server중립

모델, GPU 레이어 수, KV cache, batch 크기, reasoning 및 연속 배칭을 설정해 로컬 LLM을 실행하는 서버입니다.

GGUF-Tool-Suite중립링크

GGUF 모델을 생성하는 도구 모음으로, 글에서는 동일한 파라미터를 가진 비교 모델과 더 작은 MTP 모델을 만드는 데 사용됐습니다.

AI 분석 전체 내용 보기

AI 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

원문 발행 2026. 08. 22.수집 2026. 08. 22.출처 타입 REDDIT

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.