Why your local LLM feels dumber than it is

개요

로컬에서 실행되는 LLM이 실제보다 성능이 낮게 느껴지는 이유는 구현상의 차이점, 특히 연산 백엔드, KV 캐시 양자화, 가중치 양자화 방식 등에서 발생하는 편차 때문이다.

주요 내용

* 로컬 LLM 성능 저하의 원인: 사용자의 하드웨어 및 소프트웨어 환경이 모델을 처음 발표한 연구소의 환경과 다르기 때문에 동일한 모델이라도 성능 차이가 발생한다. 이는 GPU의 다른 명령어 세트, 연산 방식 등의 차이에서 기인한다.
* 정확한 성능 측정의 중요성: 단순히 몇 개의 프롬프트로 성능을 판단하는 것은 잘못이며, 실제 워크로드 및 사용 사례를 대표하는 표준 벤치마크를 다양하게 실행해야 한다. 제로샷 테스트보다는 긴 컨텍스트, 도구 호출, 도메인별 지식 평가가 필요하다.
* 수학적 접근: Logits와 KL Divergence: 모델의 다음 토큰 점수인 Logits를 확률 분포로 변환하여 기준선으로부터 얼마나 변했는지 측정하는 KL Divergence(KL Divergence)를 통해 편차를 측정할 수 있다. 하지만 KLD 값만으로는 정확한 성능을 판단하기 어렵고, 기준이 되는 체크포인트, 런타임 환경, 평가 데이터 등 상세한 정보가 공개되어야 한다.
* 인퍼런스 엔진의 복잡성: VLLM과 같은 인퍼런스 엔진은 수많은 Python 패키지로 구성되어 있으며, 각 코드베이스의 버그 및 특이사항이 실행 경로에 영향을 미쳐 편차를 발생시킨다.
* Attention Backend의 영향 (Test 1): 동일한 모델과 하드웨어 환경에서도 FlashAttention 2, Flash Inference, Triton Attention과 같은 Attention Backend에 따라 토큰 생성의 편차가 발생한다. 특히 긴 컨텍스트에서 이러한 차이가 두드러지며, 이는 GPU마다 다른 CUDA 커널 구현과 관련이 있다.
* KV 캐시 양자화의 영향 (Test 2): KV 캐시를 양자화할 경우, 특히 긴 컨텍스트에서 모델의 성능이 크게 저하되며, 이는 도구 호출 오류와 같은 치명적인 문제로 이어질 수 있다. BF16 KV 캐시가 INT8, INT4 양자화보다 안정적이었다.
* 가중치 양자화의 영향 (Test 3): FP8, INT8 (W8A16), NVFP4, INT4 (W4A16) 등 다양한 가중치 양자화 방식에 따라 토큰 생성 편차 및 도구 호출 성공률에 큰 차이를 보인다. TheHouseOfTheDude의 Qwen3.6-27B-INT8 (W8A16)이 FP8 및 NVFP4보다 우수한 성능을 보였으며, NVFP4와 AWQ W4A16은 도구 호출 실패를 경험했다.

시사점

LLM의 실제 성능은 단순한 모델 아키텍처나 공개된 벤치마크 점수만으로는 알 수 없으며, 사용자의 로컬 환경, 인퍼런스 소프트웨어 스택, 양자화 방식 등 복합적인 요인에 의해 크게 달라지므로, 각 개인의 사용 환경에 맞는 신중한 평가와 설정이 필수적이다.

원문 읽기 →
원문을 불러오는 중...

댓글

GitHub Discussions