로컬 LLM이 실제보다 멍청해 보이는 이유
로컬에서 실행하는 LLM이 원래 성능보다 떨어져 보이는 이유는 하드웨어·소프트웨어 구현 차이가 토큰 확률 분포를 왜곡하기 때문이라는 기술 분석 글입니다. 저자는 동일한 가중치라도 GPU 세대별 명령어 집합과 양자화, 샘플러 설정이 출력 품질에 큰 영향을 준다고 설명하며, KLD(KL Divergence)로 이 편차를 측정하는 방법을 소개합니다. 로컬 LLM 운영자에게 벤치마크와 샘플러 설정의 중요성을 일깨워주는 실용적인 글입니다.
Level1Techs.com으로 돌아가기 | 로컬 LLM이 실제보다 멍청해 보이는 이유 | 고성능 컴퓨팅 - 머신러닝, LLM, 그리고 AI | ai thr3e | 2026년 8월 16일, 새벽 1:51
간단한 소개 우리 모두 포럼, 채팅, 레딧, 디스코드, 유튜브 등에서 "오! XYZ 모델 완전 쩔어!"라는 말을 듣고 그 모델을(혹은 더 가능성이 높게는 그 모델의 양자화 버전을) 다운로드한 뒤 "으악... 이거 별로인데?"라고 생각해본 적이 있을 것입니다.
이 글은 추론(inference) 과정에서 구현 방식에 따른 문제점들이 미치는 영향을 보여주는 꽤 기술적인 실험 시리즈가 될 것입니다. 저는 "레퍼런스 구현(reference implementation)"이라는 용어를 사용할 텐데, 이는 모델을 직접 공개하고 자체 호스팅을 제공하며 원본 벤치마크 수치를 발표한 연구소를 의미합니다. 그들의 하드웨어는 여러분의 것과 다를 것입니다. 그들의 소프트웨어는 여러분의 것과 매우 다를 것입니다. 그리고 이 글의 비교는 ollama에서 돌리는 2.58비트 gguf 몇 가지 테스트 프롬프트로 하는 것이 아닙니다.
저는 이 글을 독자 여러분이 더 접근하기 쉽도록 통째로 떠오르는 연구 분야들과 산더미 같은 연구 논문들과 문헌 리뷰를 의도적으로 생략하고 있습니다. 제 과잉 단순화를 트집 잡지 마세요. 그러면 수학이 가득한 정말 길고 불쾌한 버전을 읽게 만들 테니까요.
당신의 로컬 구현은 형편없습니다. 하지만 괜찮습니다. 다른 모든 사람들도 마찬가지니까요. 오늘날 LLM을 구동하는 모든 하드웨어와 소프트웨어 인스턴스는 조금씩 다릅니다. 어떤 경우에는 아주 많이 다릅니다. 평범한 홈랩 사용자는 여러 세대의 GPU를 섞어 쓰고 있을 수 있습니다. 그 칩들은 서로 다른 명령어 집합을 가지고 있습니다. 그 명령어 집합들은 완전히 동일한 가중치를 실행할 때조차 다른 사람과 다른 방식으로 다음 토큰을 계산하는 수학을 구현하고 실행합니다.
그래서 첫 번째 질문이 나옵니다: 당신의 특정 설정은 얼마나 형편없는가? 이를 측정하는 방법은 여러 가지가 있습니다. 실용적인 접근은 간단합니다. 표준 벤치마크를 실행하세요. 다양한 것들을요. terminal bench, HLE, SWE-무엇, HELLA-저거, MMLU-아무거나... 골라 쓰세요. 단, 실제 워크로드/사용 사례를 대표하는 것인지 확인하세요. 온도(temperature)를 0으로 낮추고 테스트 프롬프트 3개 붙여넣은 뒤 좋다/나쁘다 판단하지 마세요. 제로샷 테스트는 대부분의 에이전트 작업과 좋은 유사성을 갖지 못합니다. 다른 사람이 동일한 벤치마크를 재현할 때와 같은 가중치로 어디가 약한지 파악하려면 긴 컨텍스트 도구 호출 및 도메인별 지식 평가가 필요합니다.
하지만 순수하게 수학적인 답이 제 초점이 시작되는 곳입니다. @wendell이 말했듯이: 수학은 수학이다!
"로짓(logits)"은 가능한 다음 토큰 각각에 대한 모델의 점수입니다. 이것들은 확률로 정규화되고, 설정된 샘플러를 통과한 뒤, 디토크나이저에 의해 다시 텍스트로 변환되어 디코딩 중에 THE→NE→XT→TOK→EN을 생성합니다.
샘플러 설정에 대한 참고사항: HuggingFace의 모델 카드에는 보통 정확히 어떤 샘플러 설정(및 채팅 템플릿)을 사용해야 하는지 명시되어 있습니다. temp 1.0, top-p 0.95 등. 모델마다 다르니 올바른 것을 쓰고 있는지 확인하세요. 참고로, 온도를 너무 낮게 설정하는 것이 당신의 큐웬(Qwen)이 THINK 출력에서 빠져나오지 못하고 반복하는 이유입니다. 천만에요, 해결해줘서 기쁘네요.
다음 토큰 확률이 충분히 변하면 THE→NE→XT가 THE→NE→W→DAY가 됩니다. 그리고 그런 작은 변화는 괜찮을 수 있지만, 아마도 그것은 당신 마음 한구석에서 뭔가 이상하다는 느낌이 들기 시작한 것이다.
일부는 KLD, 즉 KL 다이버전스(KL Divergence)라는 용어를 들어봤을 것입니다. 걱정 마세요, 수학을 하게 하거나 아주 작은 십진수 표로 뇌를 채우지는 않겠습니다. 간단한 버전을 원하신다면: 출력 로짓을 확률 분포로 변환하고, 그 분포가 선택한 기준선에서 얼마나 멀어졌는지 측정하는 것입니다. KLD가 낮을수록 그 기준선에 가깝다는 뜻이지, 자동으로 '더 똑똑하다'는 뜻은 아닙니다. KLD는 방향성이 있어서 두 분포의 순서도 중요합니다.
주의 사항: 양자화 모델의 HF 모델 카드에 있는 믿을 수 없을 만큼 낮은 KLD 수치에 속지 마세요. 그것은 불가능합니다—