메모리 6배 절약, 속도는 8배 키운 구글 터보퀀트
어제 SK하이닉스와 삼성전자 주식이 엄청나게 빠졌다. 바로 구글 터보퀀트(TurboQuant) 기술 때문이라는 이야기가 나왔다. 도대체 어떤 기술인지 궁금해서 논문을 찾아 읽어 보고 정리해 보았다.
이 논문은 고차원 벡터 데이터를 압축하면서도 정보 손실(왜곡)을 최소화하는 새로운 벡터 양자화(Vector Quantization, VQ) 기법인 TurboQuant를 제안한다.
특히 AI 모델의 추론 효율을 높이는 KV 캐시(KV Cache) 압축 등 실전 응용 분야에서 뛰어난 성능을 보여준다.
최근 인공지능이 더욱 똑똑해질수록 기억해야 할 정보량, 즉 처리해야 할 데이터의 양이 기하급수적으로 증가하고 있다.
이러한 “데이터 다이어트” 문제를 해결하는 기술이 바로 TurboQuant이다.
1. 문제는 “기억력(메모리)”이다
인공지능(LLM)과 대화하다 보면 질문이 길어질수록 AI가 처리해야 할 데이터가 기하급수적으로 증가한다.
이 데이터가 너무 커지면 컴퓨터의 메모리를 엄청나게 차지하게 된다.
메모리가 부족해지면 인공지능의 처리 속도가 느려지거나, 최악의 경우 동작 자체가 어려워질 수 있다.
그래서 연구자들은 데이터를 최대한 작게 압축하면서도 원래 정보는 거의 유지하는 방법을 연구해 왔다.
2. TurboQuant는 무엇이 다른가?
기존 압축 방식인 양자화(Quantization)는 데이터를 줄이는 데에는 효과적이지만, 중요한 정보까지 함께 손실시키면서 AI 모델의 성능이 저하되는 문제가 있었다.
TurboQuant는 이러한 문제를 해결하기 위해 데이터의 특성을 미리 학습할 필요가 없는 데이터 무관(Data-oblivious) 알고리즘으로 설계되었다.
즉, 특정 데이터셋을 사전에 분석하거나 학습하지 않아도 동작한다.
따라서 데이터가 실시간으로 들어오는 온라인 환경에서도 적용 가능하며, 최적에 가까운 왜곡률(distortion rate)을 달성한다.
기존 방식들은 특정 비트 수나 차원 조건에서 성능이 떨어지는 한계가 있었다.
반면 TurboQuant는 이러한 한계를 극복하고, 이론적 한계치(Lower bound)에 매우 근접한 성능을 수학적으로 증명했다.
TurboQuant의 동작 과정은 두 단계로 구성된다.
첫 번째 단계에서는 입력 데이터를 무작위로 회전시킨 후 각 요소를 개별적으로 양자화한다.
이를 통해 데이터 내 극단값(outlier)의 영향을 줄이고 압축 효율을 높인다.
두 번째 단계에서는 첫 번째 단계에서 발생한 오차를 다시 한번 양자화한다.
이 과정에서 데이터를 -1과 1 값으로만 표현하는 QJL(Quantized Johnson-Lindenstrauss) 기법을 적용하여 연산 효율을 높인다.
TurboQuant는 데이터를 두 단계로 압축한다.
첫 번째 압축 단계에서는 전체적인 벡터 구조를 최대한 유지하면서 큰 단위로 데이터를 줄인다.
두 번째 미세 조정 단계에서는 첫 번째 압축 과정에서 발생한 작은 오차를 1비트 수준의 정보로 다시 보정한다.
그 결과 압축률은 크게 높아지지만, AI 모델이 인식하는 정보 손실은 거의 발생하지 않는다.
3. 주요 기술적 특징
1) 랜덤 회전과 베타 분포(Random Rotation & Beta Distribution)
고차원 벡터를 무작위로 회전시키면 각 좌표값들이 특정한 베타 분포(Beta Distribution)를 따르며 집중되는 현상이 발생한다. TurboQuant는 이러한 특성을 활용한다. 이를 통해 복잡한 벡터 양자화 문제를 단순한 스칼라 양자화(Scalar Quantization) 문제로 변환하고, 더욱 효율적으로 처리한다.
2) 2단계 양자화 프로세스
단순히 평균 제곱 오차(MSE)만 줄이는 방식은 내적(Inner Product) 계산 과정에서 편향(Bias)을 발생시킬 수 있다.
TurboQuant는 이를 해결하기 위해 두 단계의 양자화 과정을 사용한다.
첫 번째 단계는 MSE 최적 양자화이다. 전체적인 복원 오차를 최소화하는 방향으로 데이터를 압축한다.
두 번째 단계는 잔차(Residual) 1비트 양자화이다. 첫 번째 단계에서 남은 오차에 대해 1비트 양자화된 JL(Johnson-Lindenstrauss) 변환을 적용한다.
이를 통해 내적 값의 편향을 제거(Unbiased)하고 정확도를 높인다.
댓글남기기