🧮 로컬 LLM 모델 고르기 — VRAM 16GB를 나누는 기준
VRAM이 16GB면 큰 모델부터 올려보고 싶어집니다. 그런데 가중치로 자리를 다 채우면 정작 문맥이 사라져요. 파라미터 수 대신 무엇을 봐야 하는지, 직접 만든 네 줄짜리 시험지까지 정리했습니다.
2026년 8월 3일GPU를 꽂고 드라이버까지 올리고 나면 다음 질문은 하나로 좁혀집니다. 그래서 뭘 돌리지. VRAM이 16GB니까 당연히 큰 모델부터 눈이 갔어요. 27B를 밀어 넣었고, 결과는 기대와 달랐습니다. 파라미터 수가 아니라 다른 걸 봐야 했다는 걸 그때 알았습니다. (카드 자체의 함정은 중고 V100 GPU로 집에 AI 서버 만들기에 따로 정리해 뒀습니다.)
VRAM은 가중치만 담는 곳이 아닙니다
모델 파일 크기를 보고 “16GB니까 14GB짜리도 들어가겠네” 하고 계산하면 어긋납니다. GPU 메모리에는 세 가지가 동시에 올라가거든요.
가중치 + KV 캐시 + 연산 버퍼 ≤ 16GB
가중치는 모델 파일 그 자체입니다. KV 캐시는 지금까지 읽은 문맥을 기억해두는 자리예요. 컨텍스트를 길게 잡을수록 이 부분이 커집니다. 연산 버퍼는 계산 중 잠깐 쓰는 작업 공간이고요.
즉 컨텍스트는 공짜가 아닙니다. 가중치로 자리를 다 채우면 기억할 공간이 남지 않습니다. 모델을 고르는 일은 사실 이 세 칸을 어떻게 배분할지 정하는 일에 가깝습니다.
27B를 밀어 넣었더니, 문맥이 사라졌습니다
일본어 자막을 한국어로 옮기는 용도였습니다. 처음엔 27B 모델을 3비트로 눌러 올렸어요. 파라미터가 많으니 번역도 나을 거라 생각했습니다.
가중치만 14.7GB였습니다. 남는 자리가 거의 없으니 컨텍스트를 넉넉히 줄 수 없었고, 결과는 이랬어요. 번역기가 앞 대사를 기억하지 못합니다. 같은 인물이 세 줄 전에는 반말을 쓰다가 지금은 존댓말을 씁니다. 문장 하나하나는 그럴듯한데 대화가 이어지지 않아요.
12B 모델을 4비트로 바꿨더니 가중치가 7.2GB로 줄었습니다. 남은 8GB 남짓을 전부 컨텍스트에 줄 수 있었고, 앞 대사를 이어받으니 말투가 유지됐습니다. 적어도 번역에서는 작은 모델에 넓은 문맥을 주는 쪽이 큰 모델에 좁은 문맥을 주는 것보다 확실히 나았습니다.
여기에 하나 더. 음성 인식 모델까지 같이 올려두려다 CUDA out of memory를 만났습니다. 예산은 16GB 하나뿐이라, 두 모델을 번갈아 쓸 때는 한쪽을 내리고 다른 쪽을 올리도록 만들어야 했어요.
벤치마크 점수 대신 네 줄짜리 시험지를 만들었습니다
후보 모델을 받을 때마다 긴 영상으로 시험할 수는 없었습니다. 그래서 고정된 네 줄을 만들어 매번 같은 걸 물었어요.
おはよう 반말 인사
先輩、待ってください 존댓말 + 관계 호칭
ありがとうございました 정중한 과거형
バカじゃないの 반말 반문
짧지만 자막 번역에서 중요한 게 다 들어 있습니다. 말투(반말·존댓말), 인물 관계, 시제, 구어체 반문. 기준 답안은 “안녕 / 선배, 잠깐만요 / 감사합니다 / 바보 아니야?”로 잡았습니다.
실제로 돌려본 결과입니다.
| 원문 | Gemma 4 12B | Qwen3 8B | 27B 1비트 양자화 |
|---|---|---|---|
| おはよう | 안녕 | 안녕하세요 | 안녕하세요 |
| 先輩、待ってください | 선배, 잠깐만요 | 선배, 잠깐만요 | 선전, 기다려주세요 |
| ありがとうございました | 감사합니다 | 고마웠어요 | 고용했습니다 |
| バカじゃないの | 바보 아니야? | 바보가 아니에요 | 가리지 않는 건 아니죠 |
오른쪽 열이 27B입니다. 파라미터는 가장 많지만 1비트까지 압축한 버전이었어요. “선전”, “고용했습니다”는 번역이 아쉬운 수준이 아니라 한국어 문장이 아닙니다. 파라미터 수보다 양자화 수준이 품질을 더 크게 흔듭니다. 27B를 1비트로 누른 것보다 12B를 4비트로 쓰는 편이 나았습니다.
QAT는 나빴던 게 아니라 정중했습니다
4비트로 압축될 것을 전제로 학습한 QAT 버전이 있길래 시험해봤습니다. 학습을 끝낸 뒤에 압축하는 일반적인 방식과 달리 압축을 학습 과정에 미리 반영하는 방식이라, 같은 4비트여도 품질 손실이 적다고 합니다 (출처: Google — Gemma 4 QAT 모델 발표). 실제로 같은 4비트인데 파일이 0.4GB 작았어요(7.2GB 대 7.6GB). 그런데 네 줄 시험지를 돌렸더니 전부 존댓말로 밀어버렸습니다. “안녕하세요”, “바보 아니에요?” 같은 식으로요.
여기서 바로 탈락시킬 뻔했는데, 지침을 함께 줘봤습니다.
“존댓말과 반말은 반드시 원문의 말투를 따르세요”
한 줄 붙였더니 결과가 기존 버전과 같아졌습니다. QAT는 품질이 낮은 게 아니라 기본 성향이 정중한 모델이었어요. 성향은 프롬프트로 고칠 수 있지만, 애초에 문장이 무너지는 건 못 고칩니다. 이 둘을 구분하지 않으면 멀쩡한 모델을 버리게 됩니다.
순서대로 거르면 시행착오가 줄어듭니다
지금은 새 모델이 나와도 이 순서로 봅니다.
- ① VRAM 예산 — 가중치가 9GB를 넘으면 후보에서 제외합니다. 컨텍스트에 6~8GB는 남겨야 하니까요
- ② 추론 모드 — 답하기 전에 길게 생각하는 모델은 번역에 쓰지 않습니다. 시간과 컨텍스트를 함께 잡아먹고, 생각한 내용이 결과물에 새어 나온 적도 있습니다
- ③ 언어 비중 — 한국어·일본어 처리는 학습 데이터 구성에 따라 편차가 큽니다. 계열별로 체감이 다른 편이에요
- ④ 네 줄 시험지 — 마지막은 내 과제로 직접 확인합니다. 여기까지 와서 떨어지는 모델이 실제로 있습니다
②번이 의외로 많이 걸러냅니다. 번역은 추론 과제가 아니라서, 오래 생각하는 능력이 도움이 되지 않아요.
정리
VRAM 16GB는 “14GB짜리 모델이 들어가는 공간”이 아니라 가중치와 문맥을 함께 담아야 하는 예산입니다. 큰 모델을 눌러 담기보다 작은 모델에 문맥을 넉넉히 주는 편이, 적어도 문맥이 중요한 작업에서는 더 나은 결과를 냈어요. 그리고 어떤 벤치마크 점수도 내 과제를 대신 평가해주지 않습니다. 네 줄이면 충분하니, 자기 용도에 맞는 시험지를 하나 만들어두길 권합니다.