GPU 메모리의 70%를 잡아먹는 데이터가 있습니다. 모델의 두뇌에 해당하는 가중치가 아닙니다. AI가 대화 맥락을 기억하기 위해 임시로 쌓아두는 KV 캐시라는 녀석이죠. Llama 3 70B 모델에 128,000 토큰짜리 긴 문서를 넣으면 이 캐시만 약 40GB에 달합니다. 동시에 사용자 4명이 질문하면 160GB — 모델 자체보다 무거워지는 셈입니다. AI가 똑똑해질수록, 더 긴 글을 읽을수록, 메모리 벽은 높아집니다. 구글이 올해 공개한 TurboQuant는 이 캐시를 3비트 수준까지 압축하면서도 성능 저하가 거의 없다고 주장합니다. 정말 압축하면서 손실이 없을 수 있는 걸까요?
AI가 대화할 때마다 메모리가 폭발하는 구조
LLM이 문장을 생성할 때, 앞서 읽은 모든 토큰의 Key와 Value 벡터를 GPU 메모리에 보관합니다. 이걸 KV 캐시라고 부릅니다. 다음 단어를 예측하려면 이전 맥락 전체를 참조해야 하거든요.
문제는 이 캐시가 시퀀스 길이에 비례해서 선형으로 불어난다는 점입니다. 대화가 길어지면 길어질수록 메모리 부담이 쌓입니다. 현재 AI 추론은 연산 능력이 아니라 메모리가 병목입니다. GPU가 아무리 빨라도, 메모리에 데이터를 올릴 공간이 부족하면 처리 속도가 떨어지죠.
이 문제를 푸는 발상은 JPG와 닮았습니다. 스마트폰으로 사진을 찍으면 원본 RAW 파일은 수십 MB지만, JPG로 저장하면 2~3MB로 줄어들죠. 사람 눈이 잘 구분하지 못하는 미세한 색상 차이를 버리기 때문입니다. 핵심 정보는 유지하면서 저장 공간을 아끼는 방식입니다. TurboQuant는 이 발상을 KV 캐시에 적용합니다.
TurboQuant가 데이터를 3비트로 줄이는 방법
TurboQuant는 단일 기술이 아니라 PolarQuant와 QJL, 두 기법의 조합입니다. 각각의 역할이 다릅니다.
PolarQuant — 데이터를 회전시켜 고르게 펴는 단계. 양자화(quantization)는 넓은 범위의 숫자를 적은 수의 대표값으로 반올림하는 기법입니다. JPG에서 256단계 밝기를 32단계로 줄이는 것과 같은 원리죠. 문제는 KV 캐시의 값 분포가 들쭉날쭉하다는 겁니다. 어떤 값은 극단적으로 크고 어떤 값은 0 근처에 몰려 있어서, 단순히 반올림하면 정보 손실이 큽니다.
기존 방법들은 이 문제를 해결하려고 데이터를 작은 블록으로 나눈 뒤 블록마다 스케일링 상수를 따로 저장했습니다. 이 메타데이터가 1~2비트의 추가 오버헤드를 만들어서, 3비트로 압축해도 실질적으로는 4~5비트가 되는 상황이었죠.
PolarQuant는 접근법 자체를 바꿉니다. 데이터 벡터에 랜덤 회전을 적용한 뒤 극좌표로 변환합니다. 반지름 하나와 각도들로 표현하는 거죠. 핵심은 회전 후 각도 성분이 특정 범위에 집중되는 분포를 따른다는 점입니다. 균일한 격자 위에 깔끔하게 매핑할 수 있게 되므로, 블록별 정규화 상수가 필요 없습니다. 메타데이터 오버헤드가 사라지는 겁니다.
QJL — 1비트로 오차를 보정하는 단계. PolarQuant만으로도 상당한 압축이 가능하지만, 반올림에서 생기는 잔차(residual)는 여전히 남습니다. QJL은 이 잔차를 저차원 공간에 투영한 뒤, 부호 비트 — 양수인지 음수인지 — 만 저장합니다. 1비트짜리 오류 보정 코드인 셈이죠.
수학적으로, QJL의 내적 추정량은 비편향(unbiased)입니다. 쉽게 말해, 압축 과정에서 오차가 한쪽으로 쏠리지 않고 평균적으로 정확한 값을 복원한다는 뜻입니다. 정보이론의 섀넌 율-왜곡 한계 대비 약 2.7배 이내의 효율을 보여, 이론적 최적치에 가까운 수준입니다.
두 기법을 결합하면 KV 캐시를 3.5비트까지 압축하면서 품질 저하 없이, 2.5비트에서도 미미한 수준의 성능 변화만 발생합니다. 기존 32비트 대비 약 6배의 메모리 절감이죠.
압축했는데 정말 성능 손실이 없는가
벤치마크 결과부터 보겠습니다. Needle-In-A-Haystack 테스트에서 TurboQuant는 104,000 토큰 길이의 문서에서 100% 검색 정확도를 기록했습니다. 원래 정밀도(FP16)와 동일한 수치입니다. 3비트 극단 압축에서도 perplexity 변화는 0.5% 미만이었죠.
단일 벤치마크만으로는 부족합니다. 구글 리서치 블로그에 따르면, LongBench(질의응답, 코드 생성, 요약), ZeroSCROLLS, RULER, L-Eval까지 5개 장문맥 벤치마크에서 Gemma와 Mistral 모델을 평가했고, 기존 대표 기법인 KIVI와 동등하거나 그 이상의 결과를 보였습니다. KIVI는 ICML 2024에서 발표된 비대칭 2비트 양자화 기법으로, 2.6배 메모리 절감을 달성했는데 TurboQuant는 같은 조건에서 6배를 달성한 겁니다.
커뮤니티 독립 검증도 있습니다. Apple Silicon의 MLX 프레임워크에서 35B 파라미터 모델을 돌린 결과, 6개 NIAH 테스트를 전부 통과했습니다. 별도의 PyTorch 구현에서는 5배 압축에서 99.5%의 어텐션 정확도를 확인했죠.
성능 손실이 “없다”고 단정하기보다, “측정 가능한 벤치마크에서 유의미한 차이가 관찰되지 않았다”는 표현이 정확합니다. JPG도 원본과 비교하면 분명히 정보를 버리지만, 사람 눈으로 구분이 안 되는 것과 같은 논리입니다.
이론에서 현실로 — 상용화까지 남은 거리
TurboQuant의 가장 큰 실용적 장점은 재훈련이 필요 없다는 것입니다. 기존 모델에 그대로 적용할 수 있고, 학습 데이터에 의존하지 않습니다. 구글 리서치 블로그는 런타임 오버헤드가 무시할 수 있는 수준이라고 밝혔으며, H100 GPU에서 4비트 TurboQuant 적용 시 어텐션 연산이 최대 8배 빨라졌다고 보고했습니다.
커뮤니티 반응은 뜨겁습니다. 논문 공개 24시간 만에 llama.cpp와 MLX 포팅이 시작됐고, llama.cpp 저장소에서는 개발자 3명이 C/CUDA 구현을 진행해 18개 테스트를 전부 통과했습니다. vLLM에도 Feature Request가 올라온 상태입니다. PolarQuant는 AISTATS 2026, QJL은 AAAI 2025에서 각각 학회 발표가 예정되어 있고, ICLR 2026 발표도 다음 달로 잡혀 있습니다.
다만 회의적인 시선도 분명히 존재합니다. Hacker News에서는 “실제 wall-clock time(벽시계 시간, 체감 속도)을 보고하지 않았다”는 지적이 나왔습니다. 극좌표 변환이 GPU의 병렬 연산 구조와 잘 맞지 않을 수 있다는 우려도 있죠. llama.cpp 개발자 중 한 명은 QJL을 단순하게 구현하면 엉뚱한 결과가 나온다고 경고하기도 했습니다. 논문 Section 3.1의 단위 초구면 가정에 수학적 오류 가능성을 제기하는 목소리도 있습니다.
현실적인 절감 폭에 대한 지적도 중요합니다. 현재 AI 추론의 70~80%가 이미 8비트 정밀도를 사용하고 있거든요. 32비트 대비 6배 절감이 아니라, 8비트 기준으로 보면 실질 절감은 약 2.6배 수준이라는 분석입니다. 구글의 공식 오픈소스 코드는 아직 미공개 상태이며, 2026년 2분기 공개가 예상됩니다. 상용 제품은 클라우드 우선으로 2026년 4분기 전망이 나옵니다.
AI 압축 기술이 바꿀 풍경
모건스탠리는 TurboQuant를 “또 하나의 딥시크 모멘트”라고 평했습니다. AI 배포 비용이 내려가면 총 메모리 수요가 줄어드는 게 아니라, 비용 때문에 AI 도입을 망설이던 기업들이 시장에 들어오면서 파이 자체가 커진다는 논리죠. 3비트 KV 캐시가 현실화되면 스마트폰에서도 32,000 토큰 이상의 긴 맥락을 처리할 수 있게 됩니다.
JPG가 처음 나왔을 때도 “화질이 떨어지는 사진을 누가 쓰겠나”라는 반응이 있었습니다. 지금 우리는 거의 모든 사진을 JPG로 보고 있죠. TurboQuant가 AI의 JPG가 될지는 아직 알 수 없지만, 적어도 그 가능성을 진지하게 검토할 근거는 충분히 쌓이고 있습니다.