2 minute read

서민 개발자의 애증, 12GB VRAM

12GB VRAM 달린 그래픽카드로 로컬 LLM 돌리는 사람들의 마음은 늘 애절하다(내 통장 사정처럼).

RTX 4070 Ti나 4080 12GB 모델. 많은 개발자들이 작업용 PC에 꽂아둔 현실적인 카드다. 이 환경에서 70B짜리 거대 모델을 돌릴 수 있을까? 돌아는 간다. 대신 양자화의 칼날을 들이대야 한다. 그리고 여기서 모든 고뇌가 시작된다.

r/LocalLLM에서 12GB 환경 유저들이 피땀 흘려 체득한 양자화 수준별 실사용 비교를 털어놓았다.

Q4 vs Q8, 코딩에서는 차이가 크다

70B 모델을 12GB에 욱여넣으려면 사실상 Q4_K_M 양자화 말고는 답이 없다.

문제는 일상 대화나 번역에선 Q4와 Q8의 차이를 구분하기 힘들지만, 코딩 판으로 들어오면 체감이 극명해진다는 점이다. Q4에서는 간단한 함수에서도 변수명을 헷갈리거나 괄호를 빼먹고, 이전 턴에서 정의한 타입을 무시하는 헛발질이 잦다. 반면 Q8은 든든한 국밥처럼 안정적이다.

“Q4는 빠르지만 코드 리뷰어로 쓰기엔 불안하고, Q8은 느려 터졌지만 믿을 수 있다”는 한 유저의 평이 정확하다.

결국 선택의 기로다.

  • 큰 모델 + 낮은 퀀트(Q4): 전반적인 추론과 말귀는 잘 알아듣지만, 코딩 디테일에서 잔실수가 터짐.
  • 작은 모델 + 높은 퀀트(Q8): 코딩 문법과 타입 일관성은 칼같지만, 복잡한 설계 추론에서 한계가 옴.

코딩이 주 목적이라면 후자가 훨씬 덜 스트레스받는다.

gpt-oss-120B를 12GB에서 돌리기

여기에 gpt-oss-120B를 4080 Super(16GB)와 64GB DDR5 시스템 램 조합으로 23 tok/s를 뽑아낸 괴물 같은 사례도 등장했다.

핵심은 KV 캐시 다이어트였다. 32K 컨텍스트를 고집하면 KV 캐시가 VRAM을 꽉 채워 모델 가중치가 시스템 램으로 밀려나 속도가 나락으로 간다. 반면 컨텍스트를 8K 수준으로 현실화하면 모델 가중치를 VRAM에 더 많이 욱여넣어 전체 속도를 극적으로 끌어올릴 수 있다. 컨텍스트 예산 배분이 양자화만큼이나 결정적이다.

“더 큰 모델 + 낮은 퀀트”가 여전히 유효한 구도

전통적인 공식은 여전히 유효하다. 큰 모델의 파라미터 깡패력은 창의적 글쓰기나 복잡한 지시 이해에서 빛을 발한다. 다만 코딩과 정형화된 JSON 출력에서는 얄짤없이 높은 퀀트가 깡패다.

용도 추천 이유
일반 대화·요약·번역 큰 모델 + Q4 속도가 빠르고 품질 저하가 미미
코딩·구조화 출력 작은 모델 + Q6~Q8 정확도가 생명, 약간의 속도 포기
긴 컨텍스트 처리 KV 캐시 최적화 필수 컨텍스트를 줄이면 전체 속도 향상

왜 이런 차이가 나는 걸까

문학적인 줄글 생성에서는 단어 벡터가 조금 뭉개져도 “날씨가 좋다”나 “날씨가 꽤 좋다”나 대충 통한다. 하지만 코드는 세미콜론 하나, 대소문자 하나만 틀려도 빌드가 즉사한다. 엄격한 타입 시스템(Swift, TypeScript, Rust)에서는 미세한 양자화 오차가 치명적인 컴파일 에러로 폭발하기 때문이다.

실전 세팅 추천

12GB VRAM 오너를 위한 현실적인 타협안:

  • 메인 모델: Qwen 3.6 27B Q6 — 일상 작업 및 가벼운 코딩 올라운더
  • 코딩 전용: Qwen 3.6 Coder 14B Q8 — 가볍고 빠르면서 코드 디테일이 칼같음
  • 컨텍스트: 8K~16K 수준에서 세션을 자주 리셋하며 관리

하나의 거대 모델로 모든 걸 다 해 먹으려는 욕심은 나중에 24GB VRAM 카드를 사서 풀도록 하자(물론 내 지갑 사정은 고려 안 해준다).

마치며

로컬 LLM 씬에서는 “세상에서 제일 좋은 모델”을 찾는 게 아니라 “내 장비 스펙에서 타협 가능한 최선의 밸런스”를 찾는 게 진짜 실력이다. 직접 돌려보며 내 작업에 딱 맞는 조합을 찾는 손맛, 그게 바로 로컬 AI의 묘미다.