TurboQuant가 어떻게 메모리를 줄이는가

TurboQuant가 어떻게 메모리를 줄이는가

avatar
ACE침대
2026.04.04조회수 73회

사람이 긴 책을 읽을 때 앞 내용을 기억하면서 읽어나가듯, AI도 긴 대화나 문서를 처리할 때 이전 내용을 어딘가에 임시로 저장해 둔다. 이 저장 공간을 KV 캐시(Key-Value Cache) 라고 부른다. 문제는 대화가 길어질수록 이 캐시가 기하급수적으로 커진다는 것이다. 수만 개의 단어를 처리하는 최신 LLM에서 KV 캐시는 GPU 메모리의 상당 부분을 잡아먹는 핵심 병목이 된다.

구글 리서치는 2026년 3월 이 문제를 정면으로 겨냥한 TurboQuant 연구를 블로그에 게재했다. 메모리를 최소 6배 줄이되, AI의 답변 품질은 그대로 유지한다는 점으로 투자자들의 이목을 이끌었고, 메모리 반도체 수요 증가세의 둔화 우려가 커지면서 전세계 메모리 반도체 기업들의 주가가 급락했다.

압축의 본질 - '정밀도'를 낮추는 것

TurboQuant가 사용하는 핵심 도구는 양자화(quantization)다. 이는 연속적인 실수값을 더 적은 수의 대표값으로 바꾸는 과정이다. KV 캐시의 각 숫자는 16비트 부동소수점으로 저장되는데, TurboQuant는 이를 3~3.5비트 수준으로 낮춘다. 단순 계산만으로도 저장 공간이 5분의 1 수준으로 줄어드는 셈이다.

다만 여기서 자연스러운 의문이 생긴다. 그냥 숫자를 대충 저장하면 AI가 틀린 답을 내놓지 않을까? 이 질문에 답하는 것이 TurboQuant의 진짜 기술이다.

1단계 - 랜덤 회전: 압축하기 좋은 모양으로 다듬기

TurboQuant는 벡터를 그대로 압축하지 않는다. 먼저 벡터를 랜덤 직교변환(random rotation) 으로 '돌린다'. 직관적으로 말하면, 짐가방의 옷이 한쪽 칸에만 몰려 있으면 압축이 안 되지만, 옷을 펼쳐 고르게 배치하면 압축팩이 훨씬 잘 작동하는 것과 같은 원리다.

수학적으로는 이렇다. xRdx \in \mathbb{R}^d 인 입력 벡터에 랜덤 직교행렬 Π\Pi를 곱하면 y=Πxy = \Pi x가 된다. 이때 회전된 벡터 y의 각 좌표 yjy_jBeta 분포를 따르게 되고, 차원 d가 충분히 커지면 측도 집중에 의해 N(0,1/d)\mathcal{N}(0, 1/d)에 가까운 분포로 수렴한다. 좌표들이 모두 비슷한 분포를 갖게 된다는 의미인데, 이렇게 되면 각 좌표에 동일한 양자화 규칙을 적용해도 손해가 크지 않다.

중요한 것은 이 회전 자체는 정보를 잃지 않는다는 점이다. 직교변환은 가역(invertible)이므로, 회전 전과 후의 정보량은 동일하다. 메모리를 줄이는 주체는 회전이 아니라 다음 단계의 양자화다. 회전은 그 양자화가 최대한 잘 작동하도록 땅을 고르는 역할이다.

2단계 - PolarQuant: 영리하게...

회원가입만 해도
이 글을 무료로 읽을 수 있어요.

이미 계정이 있으신가요?로그인하기
댓글 0
avatar
ACE침대
구독자 12명구독중 12명
좋은침대를 찾습니다.