Ollama가 느리거나 앞 내용을 잊을 때 — 컨텍스트 기본값
CanRun · 2026년 9월 30일 업데이트
Ollama는 감지한 GPU 메모리가 24GiB 미만이면 4k, 24~48GiB면 32k, 48GiB 이상이면 256k 토큰을 기본 컨텍스트 길이로 씁니다 (Ollama 문서, 2026-09-29 확인). 그래서 8GB·12GB·16GB 카드는 컨텍스트 4k로 시작합니다. 대화가 이 길이를 넘으면 Ollama는 가장 오래된 메시지부터 아무 알림 없이 버립니다. 24GB·32GB 카드는 32k로 시작합니다. 24GB 카드에서 dense 모델인 Qwen3 32B Q4_K_M은 8k라면 22.5GB가 필요해 사용 가능 메모리 23.4GB 안에 들어갑니다. 하지만 32k에서는 f16 KV 캐시 기준으로 29.1GB가 필요해, 넘치는 부분이 시스템 RAM으로 가면서 느려집니다. 해결하려면 OLLAMA_CONTEXT_LENGTH나 num_ctx로 VRAM에 들어가는 가장 긴 컨텍스트를 지정하고, ollama ps로 확인합니다.
Ollama 기본 컨텍스트는 GPU 메모리로 정해진다
컨텍스트 길이를 따로 지정하지 않았을 때 Ollama가 쓰는 기본 길이는 한 가지가 아닙니다. Ollama 컨텍스트 길이 문서의 설명은 이렇습니다. Ollama는 감지한 GPU 메모리가 24GiB 미만이면 4k, 24~48GiB면 32k, 48GiB 이상이면 256k 토큰을 기본 컨텍스트 길이로 씁니다 (Ollama 문서, 2026-09-29 확인). CanRun 카탈로그에 있는 카드로 따져 보면, 8GB인 GeForce RTX 4060와 RTX 3060 12GB, GeForce RTX 5060 Ti 16GB는 기본값이 4k입니다. 24GB인 GeForce RTX 3090·RTX 4090과 32GB인 GeForce RTX 5090은 32k입니다. 카탈로그에서 메모리가 가장 큰 그래픽카드가 32GB라서, 한 장으로 256k 기본값을 받는 카드는 없습니다.
4k는 모델이 처리할 수 있는 길이보다 한참 짧습니다. Llama 3.1 8B는 최대 128k, Qwen3 14B는 32k까지 지원합니다. Qwen3 모델 카드에 따르면 기본 지원 길이는 32k이고, YaRN이라는 확장 기법을 쓰면 128k까지 늘릴 수 있습니다.
컨텍스트를 넘으면 오래된 메시지부터 빠진다
대화가 컨텍스트 길이보다 길어져도 Ollama는 오류를 내지 않습니다. 채팅 요청에서는 가장 오래된 메시지부터 버리고, 시스템 메시지와 마지막 메시지는 남깁니다(server/prompt.go). 요청에 truncate를 따로 지정하지 않으면 이 동작이 기본으로 켜져 있습니다. 답을 생성하는 도중에 컨텍스트가 가득 차면 앞쪽 토큰 일부를 버리고 이어서 씁니다. 이 shift 동작도 기본으로 켜져 있습니다. 메시지를 잘라 냈다는 기록은 디버그 수준 로그에만 남습니다. 그래서 처음에 준 지시나 붙여 넣은 문서의 앞부분이 모르는 사이에 빠지고, 모델이 앞 내용을 잊은 것처럼 보입니다.
생각(thinking) 모드에서는 모델이 답하기 전에 추론 과정을 길게 쓰기 때문에 컨텍스트가 더 빨리 찹니다. Qwen3 모델 카드는 대부분의 질문에 출력 길이를 32k 토큰으로 잡으라고 권하는데, 4k 컨텍스트로는 한참 모자랍니다.
예전 글이나 일부 참조 문서에는 기본값이 하나로 적혀 있습니다. Modelfile 파라미터 표에는 2048, FAQ에는 4096이 나오지만, 지금 Ollama는 이렇게 정하지 않습니다. 실제로 잡힌 값은 ollama ps로 확인합니다. CONTEXT 열은 지금 쓰는 컨텍스트 길이이고, PROCESSOR 열은 모델을 GPU와 CPU에 나눠 올린 비율입니다.
컨텍스트를 늘리면 메모리가 얼마나 더 드나
필요 메모리는 세 가지를 더한 값입니다. 기본 양자화로 받은 모델 파일, 앞선 토큰의 계산 결과를 저장해 두는 KV 캐시, 계산 중에 쓰는 작업 공간인 연산 버퍼입니다. 파일 크기는 컨텍스트와 상관없이 그대로입니다. 반면 모든 층이 앞의 토큰 전체를 참고하는 전체 어텐션 모델이라면, KV 캐시가 컨텍스트 길이에 비례해 커집니다.
토큰 하나에 드는 KV 캐시 크기는 모델 구조에 따라 크게 다릅니다. KV 캐시를 f16으로 두고 32k를 쓰면 Llama 3.1 8B의 KV 캐시는 4.3GB입니다. 같은 조건에서 gpt-oss-20b는 0.8GB에 그칩니다. 최근 일정 길이의 토큰만 보는 슬라이딩 윈도 층이 있어서, 그 층의 KV 캐시는 일정 길이를 넘으면 더 늘지 않기 때문입니다. EXAONE 4.0 32B도 모델 카드에 따르면 슬라이딩 윈도를 쓰는 로컬 어텐션과 글로벌 어텐션을 3:1로 섞어 씁니다. 그래서 아래 표에서 32k 합계가 Qwen3 32B보다 Gemma 3 27B에 훨씬 가깝습니다. 자세한 원리는 ‘KV 캐시와 컨텍스트 길이 — 컨텍스트를 늘리면 VRAM이 얼마나 더 필요할까’ 가이드에서 설명합니다.
아래 표는 24GB·32GB 카드에서 Ollama가 기본으로 잡는 32k를 기준으로 합니다. 합계는 카드에 적힌 용량이 아니라 사용 가능 메모리와 비교해야 합니다. Windows에서 화면 출력을 맡은 카드는 OS가 VRAM 일부를 쓰기 때문입니다.
| 모델 | 파라미터 | 기본 양자화 파일 | 32k KV 캐시 | 32k 합계 |
|---|---|---|---|---|
| Llama 3.1 8B | 8.03B | Q4_K_M · 4.9GB | 4.3GB | 10.0GB |
| Gemma 3 12B | 12.2B | Q4_K_M · 7.3GB | 2.1GB | 10.2GB |
| Qwen3 14B | 14.8B | Q4_K_M · 9.0GB | 5.4GB | 15.2GB |
| gpt-oss-20b | 20.9B (활성 3.6B) | MXFP4 · 12.1GB | 0.8GB | 13.7GB |
| Gemma 3 27B | 27.4B | Q4_K_M · 16.6GB | 2.7GB | 20.0GB |
| Qwen3 30B-A3B (2507) | 30.5B (활성 3.3B) | Q4_K_M · 18.6GB | 3.2GB | 22.6GB |
| EXAONE 4.0 32B | 32B | Q4_K_M · 19.3GB | 2.1GB | 22.3GB |
| Qwen3 32B | 32.8B | Q4_K_M · 19.8GB | 8.6GB | 29.1GB |
그래픽카드는 OS가 VRAM 일부를 따로 씁니다(Windows에서 화면 출력을 맡은 GPU라면 약 0.6GB). 맥은 기본 설정에서 GPU가 통합 메모리의 약 70%를 씁니다.
8GB 카드에서 한 단계씩 늘려 보면
RTX 4060에 Llama 3.1 8B를 올리면, Ollama 기본값인 4k에서는 6.0GB, 8k에서는 6.6GB가 필요합니다. 둘 다 사용 가능 메모리 7.4GB 안에 들어가고, 8k에서는 쾌적하게 돌아갑니다. KV 캐시를 f16으로 두고 16k로 늘리면 7.7GB가 필요해 사용 가능 메모리를 넘습니다. 32k에서는 10.0GB가 필요합니다. 이 선을 넘으면 CanRun 계산은 가중치 일부를 시스템 RAM에 두는 부분 오프로드로 보고, 더 길어지면 CPU 전용으로 봅니다. 그만큼 판정과 예상 속도 범위도 낮아집니다. 아래 표는 GeForce RTX 4060에서 Llama 3.1 8B를 돌릴 때 컨텍스트 길이와 KV 캐시 종류에 따라 결과가 어떻게 달라지는지 보여 줍니다.
| 컨텍스트 | KV f16 | KV q8_0 | KV q4_0 |
|---|---|---|---|
| 4k | 6.0GB쾌적 추정 34.9 tok/s30.7–39.1보정된 추정 ±12% | 5.7GB쾌적 추정 36.6 tok/s32.2–41.0보정된 추정 ±12% | 5.6GB쾌적 추정 37.5 tok/s33.0–42.0보정된 추정 ±12% |
| 8k | 6.6GB쾌적 38.1 tok/s8k 추정 31.8 tok/s (28.0–35.6, 보정된 추정 ±12%)실측 1건 (4k 컨텍스트) | 6.1GB쾌적 추정 34.7 tok/s30.5–38.8보정된 추정 ±12% | 5.8GB쾌적 추정 36.4 tok/s32.1–40.8보정된 추정 ±12% |
| 16k | 7.7GB원활 추정 22.3 tok/s17.8–26.7보정된 추정 ±20% | 6.7GB쾌적 추정 31.4 tok/s27.6–35.1보정된 추정 ±12% | 6.2GB쾌적 추정 34.4 tok/s30.3–38.5보정된 추정 ±12% |
| 32k | 10.0GB겨우 가능 추정 7.6 tok/s6.1–9.1보정된 추정 ±20% | 8.0GB겨우 가능 추정 18.7 tok/s15.0–22.5보정된 추정 ±20% | 6.9GB쾌적 추정 31.0 tok/s27.3–34.7보정된 추정 ±12% |
| 64k | 13.5GB겨우 가능 추정 3.3 tok/s2.7–4.0보정된 추정 ±20% | 10.6GB겨우 가능 추정 6.4 tok/s5.1–7.7보정된 추정 ±20% | 8.5GB겨우 가능 추정 15.2 tok/s12.1–18.2보정된 추정 ±20% |
| 128k | 22.1GB겨우 가능 추정 2.0 tok/s1.6–2.4보정된 추정 ±20% | 14.1GB겨우 가능 추정 3.2 tok/s2.5–3.8보정된 추정 ±20% | 11.5GB겨우 가능 추정 5.2 tok/s4.2–6.3보정된 추정 ±20% |
S = 쾌적 · A = 원활 · B = 겨우 가능 · F = 불가
12GB 카드는 여유가 조금 더 있습니다. GeForce RTX 3060 12GB에서 Gemma 3 12B를 돌리면 KV 캐시를 f16으로 두고 32k까지 늘려도 10.2GB라서, 사용 가능 메모리 11.4GB 안에 들어갑니다. 8k에서는 쾌적하게 돌아갑니다.
Ollama가 느려지는 이유 — 24GB 카드의 32k 기본값
24GB 카드에서 Ollama는 처음부터 컨텍스트를 32k로 잡습니다. Qwen3 32B Q4_K_M은 8k에서 22.5GB가 필요해 RTX 3090의 사용 가능 메모리 23.4GB 안에 들어갑니다. 8k에서는 쾌적하게 돌아갑니다. 하지만 32k에서는 f16 KV 캐시만 8.6GB라서 합계가 29.1GB로 늘어납니다. 넘치는 만큼 가중치 일부가 시스템 RAM으로 밀려납니다.
Ollama가 스스로 모델을 GPU와 CPU에 나눠 올리기 때문에 대화는 끊기지 않습니다. 대신 속도가 크게 떨어지고, ollama ps의 PROCESSOR 열에 100% GPU 대신 CPU/GPU 비율이 표시됩니다. Ollama 문서도 CPU로 넘어가지 않는 범위에서 가장 긴 컨텍스트를 쓰라고 권합니다. 아래 표는 GeForce RTX 3090에서 Qwen3 32B를 돌릴 때의 결과를 컨텍스트 길이와 KV 캐시 종류별로 보여 줍니다.
| 컨텍스트 | KV f16 | KV q8_0 | KV q4_0 |
|---|---|---|---|
| 4k | 21.4GB쾌적 추정 31.4 tok/s27.7–35.2보정된 추정 ±12% | 20.9GB쾌적 추정 32.2 tok/s28.4–36.1보정된 추정 ±12% | 20.6GB쾌적 추정 32.7 tok/s28.7–36.6보정된 추정 ±12% |
| 8k | 22.5GB쾌적 추정 29.9 tok/s26.3–33.5보정된 추정 ±12% | 21.5GB쾌적 추정 31.3 tok/s27.6–35.1보정된 추정 ±12% | 20.9GB쾌적 추정 32.2 tok/s28.3–36.0보정된 추정 ±12% |
| 16k | 24.7GB원활 추정 14.3 tok/s11.5–17.2보정된 추정 ±20% | 22.7GB쾌적 추정 29.7 tok/s26.1–33.3보정된 추정 ±12% | 21.6GB쾌적 추정 31.2 tok/s27.5–35.0보정된 추정 ±12% |
| 32k | 29.1GB겨우 가능 추정 4.7 tok/s3.7–5.6보정된 추정 ±20% | 25.2GB원활 추정 12.2 tok/s9.7–14.6보정된 추정 ±20% | 23.0GB쾌적 추정 29.5 tok/s26.0–33.0보정된 추정 ±12% |
S = 쾌적 · A = 원활 · B = 겨우 가능 · F = 불가
모든 모델이 넘치지는 않습니다. 32k에서 필요한 메모리 합계는 Gemma 3 27B가 20.0GB, Qwen3 30B-A3B (2507)이 22.6GB입니다. 한국 모델 EXAONE 4.0 32B는 크기가 Qwen3 32B와 비슷하지만, 슬라이딩 윈도 설계 덕분에 22.3GB에 그칩니다. 셋 다 RTX 3090의 사용 가능 메모리보다 작고, 8k에서는 모두 쾌적하게 돌아갑니다. 그래서 GeForce RTX 3090에서 Qwen3 30B-A3B (2507)처럼 Ollama 기본값 32k를 그대로 둬도 GPU 메모리 안에 다 들어가는 조합이 있습니다.
기본값이 똑같이 32k인 GeForce RTX 5090은 사용 가능 메모리가 31.4GB입니다. CanRun 계산으로는 Qwen3 32B를 f16 KV 캐시로 32k까지 늘려도 GPU에 모두 올라가고, 8k에서는 쾌적하게 돌아갑니다. 24GB인 GeForce RTX 4090은 RTX 3090과 사정이 같습니다.
해결 1: 그 모델만 컨텍스트 줄이기
RTX 3090에서 Qwen3 32B를 16k로 줄여도 24.7GB가 필요해 여전히 사용 가능 메모리를 넘습니다. 8k로 줄이면 들어갑니다. 요청이나 Modelfile에서 num_ctx를 지정하면 그 모델만 컨텍스트를 짧게 쓸 수 있습니다. 설정 방법은 아래 ‘Ollama 컨텍스트 늘리는 방법’에 있습니다.
해결 2: KV 캐시 양자화
Ollama는 서버를 띄울 때 OLLAMA_KV_CACHE_TYPE(f16·q8_0·q4_0)을 지정하고 플래시 어텐션을 켜야만 KV 캐시를 양자화합니다. 이 설정은 그 서버가 돌리는 모든 모델에 적용됩니다 (Ollama 문서, 2026-09-29 확인). Qwen3 32B는 32k에서 q8_0 KV 캐시를 써도 25.2GB가 필요해 여전히 넘칩니다. q4_0이면 23.0GB로 사용 가능 메모리에 아슬아슬하게 들어가서, 표에서도 풀 GPU로 나옵니다. 실제로 GPU에 다 올라갔는지는 ollama ps로 확인합니다. 대신 정밀도가 낮아집니다. Ollama FAQ에 따르면 q8_0은 정밀도 손실이 아주 작습니다. q4_0은 손실이 작거나 중간 정도이고, 컨텍스트가 길수록 더 두드러질 수 있습니다. 영향은 모델과 작업에 따라 다릅니다. 이 글의 표는 양자화 블록마다 붙는 스케일 값까지 포함해, q8_0·q4_0 KV 캐시를 f16의 약 54%·29% 크기로 계산합니다.
VRAM 안에 다 들어가더라도 컨텍스트가 길어지면 예상 속도는 조금씩 떨어집니다. 새 토큰을 만들 때마다 KV 캐시 전체를 읽기 때문입니다. 표의 각 행은 컨텍스트가 그 길이까지 찼다고 가정한 값입니다. 속도가 크게 떨어지는 것은 메모리가 넘쳐 시스템 RAM을 쓸 때입니다.
Ollama 컨텍스트 늘리는 방법
Ollama 문서에 나온 설정 방법은 다섯 가지입니다.
- Ollama 앱: 설정(Settings)에서 컨텍스트 길이 슬라이더를 옮깁니다.
- 서버 전체 기본값: 환경 변수
OLLAMA_CONTEXT_LENGTH로 정합니다. macOS·Linux 터미널에서는OLLAMA_CONTEXT_LENGTH=16384 ollama serve처럼 실행합니다. Windows 설정 방법은 아래 절에 있습니다. ollama run대화 중:/set parameter num_ctx 16384를 입력합니다.- API 요청마다: 요청 본문의
options에num_ctx를 넣습니다. 아래는/api/chat요청 예시입니다. - 모델마다: Modelfile에
PARAMETER num_ctx 16384를 적고ollama create로 모델을 새로 만듭니다.
{
"model": "llama3.1:8b",
"messages": [{ "role": "user", "content": "이 문서를 요약해 줘" }],
"options": { "num_ctx": 16384 }
}
OLLAMA_CONTEXT_LENGTH는 Ollama가 자동으로 고르는 기본값만 바꿉니다. Modelfile이나 요청에 num_ctx가 있으면 그 값이 우선합니다. 이 순서는 환경 변수 도움말과 server/routes.go의 옵션 적용 순서에서 확인할 수 있습니다. 환경 변수를 바꿨는데도 ollama ps의 CONTEXT가 그대로라면 두 가지를 확인합니다. 먼저 Ollama를 완전히 종료했다가 다시 실행했는지 봅니다. 그다음 Modelfile이나 요청을 보내는 프로그램이 num_ctx를 따로 지정하는지 봅니다.
Windows에서 환경 변수 설정하기
- 작업 표시줄 알림 영역에 있는 Ollama 아이콘에서 앱을 종료합니다.
- 설정 앱이나 시작 메뉴에서 ‘환경 변수’를 검색해 ‘계정의 환경 변수 편집’을 엽니다. 사용자 변수 아래의 ‘새로 만들기’를 누릅니다. 변수 이름에는
OLLAMA_CONTEXT_LENGTH, 변수 값에는16384처럼 원하는 길이를 넣고 ‘확인’을 누릅니다. - 시작 메뉴에서 Ollama를 다시 실행합니다.
잠깐 시험만 해 보려면 앱을 끈 뒤 PowerShell에서 $env:OLLAMA_CONTEXT_LENGTH="16384"; ollama serve를 실행합니다. 이 설정은 그 PowerShell 창에서 띄운 서버에만 적용됩니다. CanRun 조합 페이지에 나오는 명령도 이 형태입니다. macOS 앱에서는 launchctl setenv OLLAMA_CONTEXT_LENGTH 16384를 실행한 뒤 앱을 다시 시작합니다. Linux에서 systemd로 돌린다면 systemctl edit ollama.service로 [Service] 아래에 Environment="OLLAMA_CONTEXT_LENGTH=16384"를 넣습니다. 그다음 systemctl daemon-reload와 systemctl restart ollama를 실행합니다.
얼마로 잡을까
필요 메모리 합계가 사용 가능 메모리보다 작은 범위에서 가장 긴 컨텍스트를 고르면 됩니다. 길이별 필요량은 위 표들에서 볼 수 있습니다. Ollama 문서는 에이전트, 웹 검색, 코딩 도구에는 64k 이상을 권합니다. Llama 3.1 8B만 해도 f16 KV 캐시로 64k를 쓰면 14.6GB가 필요합니다.
16GB 카드도 기본값은 4k라서 직접 늘려야 합니다. GeForce RTX 5060 Ti 16GB에서 Qwen3 14B를 돌릴 때 f16 KV 캐시로 32k를 쓰면 15.2GB가 필요합니다. 사용 가능 메모리 15.4GB에 아슬아슬하게 들어가므로 ollama ps로 확인합니다. 8k에서는 쾌적하게 돌아갑니다.
모델이 지원하는 최대 길이보다 길게 잡아도 소용없습니다. Qwen3 32B의 최대 길이는 32k이고, 모델 카드에 따르면 그보다 길게 쓰려면 YaRN이 필요합니다. YaRN 설정은 이 글에서 다루지 않습니다. 한국 모델 Kanana 1.5 8B도 최대 길이가 32k입니다.
동시 요청 수도 따져 봐야 합니다. Ollama FAQ에 따르면 필요 메모리는 OLLAMA_NUM_PARALLEL × OLLAMA_CONTEXT_LENGTH에 비례해 늘어납니다. 이 글의 표는 요청을 한 번에 하나만 처리한다고 가정합니다. CanRun 조합 페이지의 Ollama 명령에는 고른 컨텍스트에 맞춘 OLLAMA_CONTEXT_LENGTH가 들어갑니다. KV 캐시를 q8_0이나 q4_0으로 고르면 OLLAMA_FLASH_ATTENTION=1과 OLLAMA_KV_CACHE_TYPE도 붙습니다. GeForce RTX 4060에서 Llama 3.1 8B를 돌리는 조합 페이지에서 이런 명령을 볼 수 있습니다.
더 읽을거리:
- KV 캐시가 왜 이만큼 늘어나는지: KV 캐시와 컨텍스트 길이 — 컨텍스트를 늘리면 VRAM이 얼마나 더 필요할까
- 카드별로 어떤 모델이 들어가는지: 로컬 LLM 사양 — VRAM 8~32GB로 돌릴 수 있는 모델 (2026)
- 더 작은 양자화로 컨텍스트에 쓸 메모리를 확보하는 법: GGUF 양자화 등급 정리 — Q4_K_M·IQ4_XS·Q8_0 무엇을 받을까
이 숫자는 얼마나 확실한가
메모리 수치는 파일, KV 캐시, 연산 버퍼를 더한 값입니다. 실제 GGUF 파일 크기와 모델 config로 공식에 따라 계산한 값이라 오차 범위를 붙이지 않습니다. 속도는 추정치라서 오차 범위와 신뢰 라벨을 함께 붙입니다. 보정된 추정의 오차 범위는 NVIDIA·AMD 그래픽카드에서 dense 모델을 GPU에만 올릴 때 ±12%입니다. 부분 오프로드, MoE 모델, 그 밖의 하드웨어에서는 ±20%이고, 이론 추정은 ±30%입니다. 이 글의 두 컨텍스트 표는 NVIDIA 카드에서 dense 모델을 돌리는 경우라 보정된 추정입니다. 다만 RTX 4060에서 Llama 3.1 8B를 8k·f16 KV 캐시로 돌릴 때의 속도는 추정치가 아니라 공개 벤치마크에서 실제로 잰 값입니다.
이 값은 LocalScore가 4k 컨텍스트에서 잰 공개 벤치마크 결과 한 건이고, Ollama로 잰 값은 아닙니다. 여기서는 CanRun의 8k 추정 범위와 나란히 보여 줍니다. 이 카드에서 다른 모델을 돌린 결과는 GeForce RTX 4060 페이지에 모아 두었습니다.
Ollama는 자체 메모리 추정으로 GPU와 CPU에 얼마씩 올릴지 정합니다. 그래서 ollama ps에 나오는 SIZE나 분할 비율이 CanRun 수치와 정확히 같지는 않습니다. 내 PC에서 실제로 어떻게 돌아가는지는 ollama ps의 PROCESSOR와 CONTEXT 열을 기준으로 봅니다.
표는 다음 조건을 가정합니다. Windows에서 그 카드로 화면을 출력해 OS가 VRAM 일부를 예약하고, 시스템 RAM은 32GB(DDR5)입니다. 모델은 하나만 올리고, 요청은 한 번에 하나만 처리합니다. Ollama FAQ에 나온 OLLAMA_NUM_PARALLEL 기본값 1과 같은 조건입니다. KV 캐시 양자화에 필요한 플래시 어텐션도 쓸 수 있다고 봅니다. 본문에서 말하는 판정은 모두 8k 컨텍스트, f16 KV 캐시 기준입니다. 다른 컨텍스트 길이의 결과는 표에서 확인합니다.
판정 읽는 법
- 쾌적
- GPU에 전부 올라가고 20 tok/s 이상
- 원활
- GPU에 전부 올라가고 8~20 tok/s, MoE 전문가를 시스템 RAM에 두고 20 tok/s 이상, 또는 GPU에 90% 이상 올라가고 8 tok/s 이상
- 겨우 가능
- 2~8 tok/s, CPU 전용, GPU에 90% 미만, 또는 MoE 전문가를 RAM에 두고 20 tok/s 미만
- 불가
- 메모리에 안 들어가거나 2 tok/s 미만
자주 묻는 질문
Ollama가 긴 대화에서 앞 내용을 잊는 이유는 무엇인가요?
컨텍스트가 가득 찼기 때문입니다. Ollama는 감지한 GPU 메모리가 24GiB 미만이면 4k, 24~48GiB면 32k, 48GiB 이상이면 256k 토큰을 기본 컨텍스트 길이로 씁니다 (Ollama 문서, 2026-09-29 확인). 컨텍스트가 차면 Ollama는 기본 설정에서 가장 오래된 메시지부터 버립니다. 시스템 프롬프트와 마지막 메시지는 남기고, 오류도 띄우지 않습니다(Ollama 소스 server/prompt.go). 메모리가 허락하는 만큼 OLLAMA_CONTEXT_LENGTH나 앱 슬라이더, num_ctx로 컨텍스트를 늘리고, ollama ps의 CONTEXT 열로 확인합니다.
컨텍스트를 늘리면 Ollama가 느려지나요?
VRAM 안에 들어가는 동안에는 예상 속도가 조금씩만 내려가고, VRAM을 넘으면 크게 느려집니다. 늘어난 KV 캐시가 VRAM을 넘으면 Ollama가 모델 일부를 시스템 RAM에 두기 때문입니다. 이때 ollama ps에는 100% GPU 대신 CPU/GPU 비율이 나옵니다. 예를 들어 Qwen3 32B Q4_K_M은 f16 KV 캐시로 32k를 쓰면 29.1GB가 필요합니다. 그런데 32k가 기본값인 24GB 카드의 사용 가능 메모리는 23.4GB입니다. 컨텍스트 길이별 예상 속도는 위 표에서 볼 수 있습니다.
32k 컨텍스트에는 메모리가 얼마나 더 드나요?
모델이 토큰 하나마다 저장하는 KV 캐시 크기에 달려 있습니다. f16 KV 캐시로 32k를 쓰면 Llama 3.1 8B는 4.3GB, Qwen3 32B는 8.6GB를 더 씁니다. 슬라이딩 윈도 층이 있는 gpt-oss-20b는 0.8GB에 그칩니다. 파일, KV 캐시, 연산 버퍼를 더한 전체 필요량은 위의 32k 메모리 표에서 사용 가능 메모리와 비교해 보면 됩니다.
Ollama에서 q8_0이나 q4_0 KV 캐시를 켜야 하나요?
원하는 컨텍스트가 VRAM에 들어가지 않을 때 켜 볼 만합니다. 다만 OLLAMA_KV_CACHE_TYPE은 서버 전체에 거는 설정이라 모든 모델에 적용되고, 플래시 어텐션이 켜져 있어야 합니다. Ollama FAQ에 따르면 q8_0은 KV 캐시를 대략 절반으로 줄이면서 정밀도 손실이 아주 작습니다. q4_0은 더 많이 줄이는 대신 손실이 작거나 중간 정도이고, 컨텍스트가 길수록 더 두드러질 수 있습니다. 이 글의 표는 q8_0·q4_0을 f16의 약 54%·29% 크기로 계산합니다. KV 캐시 종류에 따라 VRAM에 들어가느냐 넘치느냐가 갈리기도 합니다. Qwen3 32B는 32k·q4_0에서 23.0GB가 필요해, RTX 3090의 사용 가능 메모리에 아슬아슬하게 들어갑니다.
다른 글에는 Ollama 기본값이 2048이나 4096이라고 나오던데요?
예전 버전의 Ollama는 기본값이 한 가지로 정해져 있었고, 일부 참조 문서에 아직 그 값이 적혀 있기 때문입니다. Modelfile 파라미터 표에는 2048, FAQ에는 4096이 나옵니다. 현재 컨텍스트 길이 문서의 설명은 이렇습니다. Ollama는 감지한 GPU 메모리가 24GiB 미만이면 4k, 24~48GiB면 32k, 48GiB 이상이면 256k 토큰을 기본 컨텍스트 길이로 씁니다 (Ollama 문서, 2026-09-29 확인). 내 PC에 실제로 잡힌 값은 ollama ps로 확인합니다.
출처
- Ollama 문서: 컨텍스트 길이: VRAM 구간별 기본값, 앱 슬라이더,
OLLAMA_CONTEXT_LENGTH, 64k 이상을 권하는 용도,ollama ps열, CPU로 넘기지 말라는 권고 - Ollama FAQ:
num_ctx, OS별 환경 변수,ollama ps, 플래시 어텐션,OLLAMA_KV_CACHE_TYPE,OLLAMA_NUM_PARALLEL - Ollama 문서: Modelfile:
PARAMETER num_ctx,ollama create. 표에 적힌 기본값은 예전 값 - Ollama 소스: server/prompt.go: 오래된 메시지부터 버리는 chatPrompt, 잘라 낸 개수를 남기는 디버그 로그
- Ollama 소스: server/routes.go: truncate·shift 기본값, VRAM 구간별 기본값, 옵션 적용 순서
- Ollama 소스: api/types.go: 요청 필드 Truncate·Shift
- Ollama 소스: envconfig/config.go:
OLLAMA_CONTEXT_LENGTH설명 - Qwen3-14B 모델 카드: 기본 지원 길이 32k, YaRN 적용 시 128k, 권장 출력 길이
- Qwen3-32B 모델 카드: 기본 지원 길이 32k, 층 수, KV 헤드 수
- EXAONE 4.0 32B 모델 카드: 로컬·글로벌 어텐션 3:1 혼합, 최대 128k
이 페이지의 속도는 오차 범위와 신뢰 라벨을 붙인 추정치이거나, 출처를 밝힌 공개 벤치마크 결과입니다. 판정은 표마다 적어 둔 구성을 기준으로 합니다.