LLM은 왜 자꾸 "가벼워져야" 할까
요즘 우리가 쓰는 대형 언어 모델(LLM)은 어마어마하게 크잖아요. 파라미터가 수백억, 수천억 개에 달하다 보니 GPU 메모리에 통째로 올리는 것도 쉽지 않아요. 그래서 등장한 게 "양자화(Quantization)"라는 기술이에요. 이게 뭐냐면, 원래는 한 숫자를 32비트 부동소수점으로 저장하던 걸 8비트, 4비트, 심지어 2비트짜리 작은 숫자로 압축해서 저장하는 거예요. 메모리도 줄고, 계산도 빨라지죠. 대신 정확도를 좀 잃을 수 있고요.
최근 발표된 TurboQuant라는 양자화 기법은 이 정확도 손실을 어떻게 줄일 수 있는지에 대한 새로운 답을 내놨어요. 그리고 Arka Aung이라는 연구자가 이걸 "인터랙티브한 시각화"로 풀어 설명한 글이 공개됐는데, 어려운 개념을 시각적으로 만져가며 이해할 수 있어서 좋아요.
TurboQuant가 풀려는 문제
양자화의 가장 큰 적은 "이상치(outlier)"예요. 신경망의 가중치나 활성값을 들여다보면, 대부분은 0 근처에 옹기종기 모여 있는데 가끔 뜬금없이 엄청 큰 값이 튀어나오거든요. 양자화는 "가장 큰 값과 가장 작은 값 사이를 N개 구간으로 쪼개는" 방식이라, 이런 이상치 하나가 전체 구간을 늘려놓아서 나머지 값들이 다 같은 구간에 뭉쳐버리는 문제가 생겨요. 정밀도가 확 떨어지는 거죠.
기존에 많이 쓰던 GPTQ나 AWQ 같은 기법들은 이상치를 따로 처리하거나 가중치 행렬을 보정하는 방식으로 이 문제를 풀었어요. TurboQuant는 여기서 한 발 더 나가서, 데이터 분포를 회전시킨 뒤에 양자화하는 아이디어를 정교하게 발전시켰어요.
쉽게 비유하자면 이래요. 길쭉하게 한쪽으로 치우친 막대기를 작은 칸들로 나눠 담아야 하는데, 그냥 담으면 칸 하나에 다 몰려요. 그런데 막대기를 적절한 각도로 돌려서 둥글둥글하게 펴주면 모든 칸에 골고루 들어가게 할 수 있죠. TurboQuant는 그 "적절한 각도"를 수학적으로 빠르게 찾아내는 방법이에요.
핵심 동작 방식
TurboQuant의 핵심 아이디어는 랜덤 회전(random rotation)이에요. 가중치 텐서에 직교 행렬(orthogonal matrix)을 곱하면 값들이 "가우시안 분포"에 가까워지는 통계적 성질이 있거든요. 가우시안 분포는 종 모양으로 예쁘게 퍼져 있어서, 작은 비트로 양자화해도 손실이 적어요. 직교 행렬이라는 게 뭐냐면, 행렬을 곱해도 벡터의 길이가 변하지 않는 특수한 행렬이에요. 그래서 정보를 잃지 않고 "방향만" 바꿀 수 있어요.
이 회전 행렬을 그냥 거대한 일반 행렬로 만들면 곱셈에 시간이 너무 오래 걸려요. 그래서 TurboQuant는 Hadamard 변환 같은 빠른 구조화된 회전을 활용해요. 이건 FFT(고속 푸리에 변환)처럼 O(n log n)에 회전을 끝낼 수 있는 기법이에요. 즉, 거의 공짜에 가까운 비용으로 분포를 가우시안화할 수 있는 거죠.
그리고 또 하나의 아이디어는 가중치뿐 아니라 활성값(activation)에도 같은 회전을 적용한다는 거예요. 양자화 오류는 가중치만의 문제가 아니라 입력값과 가중치가 만나는 곱셈에서 누적되거든요. TurboQuant는 가중치를 회전 R로 돌리면서 동시에 활성값에는 R의 역행렬을 곱해줘요. 그러면 최종 출력은 수학적으로 변하지 않으면서, 양자화하기 좋은 분포로 둘 다 변형되는 효과가 나는 거예요.
인터랙티브 워크스루에서는 이 과정을 슬라이더와 그래프로 보여줘요. 회전 전후 분포가 어떻게 달라지는지, 비트 수를 줄이면 양자화 오차가 어떻게 늘어나는지를 직접 만져가며 볼 수 있어서, 수식만 봐서는 안 보이는 직관이 잡혀요.
업계의 양자화 흐름
양자화 분야는 지금 정말 빠르게 움직이고 있어요. 작년에 등장한 GPTQ는 가중치만 4비트로 줄이는 표준처럼 자리잡았고, AWQ는 활성값의 통계를 보고 중요한 가중치를 더 보존하는 방식으로 발전했죠. 그 다음 SmoothQuant는 활성값의 이상치를 가중치 쪽으로 이동시키는 트릭을 썼고, QuaRot과 SpinQuant 같은 최근 연구들이 본격적으로 "회전 기반" 양자화의 길을 열었어요.
TurboQuant는 이 회전 기반 흐름을 이론적으로 더 단단하게 만든 작업이라고 볼 수 있어요. 특히 INT4에서 INT2로, 즉 더 극단적인 저비트 양자화로 갈수록 분포의 모양이 결정적인 요소가 되거든요. 이 영역에서 1차 원리(first principles)부터 "왜 회전이 효과적인가"를 다시 짚어주는 작업은 이후 연구의 토대가 돼요.
한국 개발자에게 주는 시사점
온디바이스 LLM, 즉 휴대폰이나 노트북에서 직접 LLM을 돌리려는 시도가 한국에서도 많아지고 있어요. 삼성, 네이버, 카카오는 물론이고 인디 개발자들도 라마(Llama) 계열 모델을 4비트나 2비트로 압축해서 돌려보는 실험을 자주 하죠. 이런 환경에서 TurboQuant 같은 기법은 매우 실용적이에요.
당장 코드를 갖다 쓰는 것도 좋지만, 회전 기반 양자화의 직관을 이해해두는 것이 더 중요해요. 앞으로 나오는 양자화 라이브러리들은 거의 다 이 아이디어 위에서 변주될 거거든요. llama.cpp, vLLM, TensorRT-LLM 같은 도구를 쓰면서 "왜 이 옵션을 켜면 정확도가 더 잘 유지되지?"라는 질문에 답할 수 있게 되는 거죠.
또 하나, 인터랙티브 워크스루라는 형식 자체도 주목할 만해요. 한국에서도 기술 블로그를 쓸 때 단순 텍스트보다 D3.js나 Observable 같은 도구로 시각화를 더하면 학습 효과가 크게 올라가요. 이런 콘텐츠 포맷을 시도해보는 것도 개인 브랜딩에 큰 도움이 될 거예요.
마무리
TurboQuant는 "분포를 예쁘게 만들어두면 압축이 잘 된다"는 단순하지만 강력한 통찰을, 빠른 회전 변환과 활성값 보정으로 깔끔하게 구현한 기법이에요. 저비트 LLM 시대에 회전 기반 양자화는 이제 선택이 아니라 기본기에 가까워지고 있어요.
여러분은 작은 디바이스에서 LLM을 돌려본 경험이 있나요? 어느 비트까지 줄여봤고, 그때 모델 품질은 어땠는지 궁금해요.
🔗 출처: Hacker News
"비전공 직장인인데 반년 만에 수익 파이프라인을 여러 개 만들었습니다"
실제 수강생 후기- 비전공자도 6개월이면 첫 수익
- 20년 경력 개발자 직강
- 자동화 프로그램 + 소스코드 제공