구글 TurboQuant: 극한 압축으로 AI 효율성을 재정의하다

1 day ago 3
  • 고차원 벡터의 메모리 오버헤드 문제를 근본적으로 해결하는 양자화 알고리듬 세트로, LLM의 키-값 캐시 압축과 벡터 검색 모두에 적용 가능
  • PolarQuant로 데이터를 고품질 압축한 뒤, QJL 알고리듬으로 잔여 오차를 1비트만으로 제거하는 2단계 압축 구조
  • 학습이나 파인튜닝 없이 키-값 캐시를 3비트까지 양자화하면서도 모델 정확도 손실이 없으며, H100 GPU에서 최대 8배 성능 향상 달성
  • 벡터 검색에서도 대규모 코드북이나 데이터셋별 튜닝 없이 최적의 recall 비율을 기록하며 기존 최신 기법을 상회
  • 이론적 하한에 근접하는 증명 가능한 효율성을 갖춘 근본적 알고리듬 기여로, Gemini 같은 모델과 대규모 시맨틱 검색 인프라에 핵심적 역할 기대

벡터와 양자화의 배경

  • 벡터는 AI 모델이 정보를 이해하고 처리하는 근본적 방식으로, 고차원 벡터는 이미지 특징, 단어의 의미, 데이터셋 속성 같은 복잡한 정보를 표현
  • 고차원 벡터는 막대한 메모리를 소비하며, 이로 인해 키-값 캐시(자주 사용하는 정보를 간단한 레이블로 저장해 즉시 검색 가능하게 하는 고속 디지털 참조 시트)에서 병목 발생
  • 벡터 양자화는 고차원 벡터 크기를 줄이는 고전적 데이터 압축 기법으로, 벡터 검색 속도 향상과 키-값 캐시 병목 해소에 기여
  • 전통적 벡터 양자화는 작은 데이터 블록마다 양자화 상수를 전체 정밀도로 계산·저장해야 하는 자체적 메모리 오버헤드가 존재하며, 숫자당 1~2비트의 추가 비용이 발생해 양자화의 목적을 부분적으로 상쇄

TurboQuant의 작동 원리

  • TurboQuant는 정확도 손실 없이 높은 모델 크기 축소를 달성하는 압축 방법으로, 키-값 캐시 압축과 벡터 검색 모두 지원
  • 두 가지 핵심 단계로 구성:

1단계: 고품질 압축 (PolarQuant 방법)

  • 데이터 벡터를 무작위 회전하여 데이터의 기하학적 구조를 단순화한 뒤, 표준 고품질 양자화기를 벡터 각 부분에 개별 적용
  • 이 단계에서 대부분의 비트를 사용해 원본 벡터의 주요 개념과 강도를 포착

2단계: 숨겨진 오차 제거

  • 1단계에서 남은 미세 오차에 QJL 알고리듬을 단 1비트의 잔여 압축력으로 적용
  • QJL은 수학적 오차 검사기 역할을 하며 편향을 제거해 더 정확한 어텐션 점수 산출

QJL: 제로 오버헤드 1비트 기법

  • Johnson-Lindenstrauss 변환을 활용해 고차원 데이터를 축소하면서 데이터 포인트 간 핵심 거리와 관계를 보존
  • 결과 벡터의 각 숫자를 단일 부호 비트(+1 또는 -1)로 축소하여 메모리 오버헤드가 제로
  • 정확도 유지를 위해 고정밀 쿼리와 저정밀 단순화 데이터를 전략적으로 균형 잡는 특수 추정기 사용
  • 이를 통해 모델이 입력의 어떤 부분이 중요하고 무시해도 되는지를 결정하는 어텐션 점수를 정확히 계산

PolarQuant: 압축에 대한 새로운 "각도"

  • 메모리 오버헤드 문제를 완전히 다른 방식으로 해결하는 접근법
  • 표준 좌표(X, Y, Z) 대신 벡터를 극좌표로 변환 — "동쪽 3블록, 북쪽 4블록"을 "37도 방향으로 5블록"으로 대체하는 것과 유사
  • 변환 결과는 두 가지 정보로 구성: 핵심 데이터의 강도를 나타내는 반지름과 데이터의 방향·의미를 나타내는 각도
  • 각도의 패턴이 알려져 있고 고도로 집중되어 있으므로, 경계가 계속 변하는 "사각형" 격자 대신 경계가 이미 알려진 고정된 "원형" 격자로 데이터를 매핑해 비용이 큰 데이터 정규화 단계를 생략
  • d차원 벡터에서 좌표 쌍을 그룹화하여 극좌표계에 매핑하고, 반지름을 쌍으로 모아 재귀적 극좌표 변환을 반복하여 최종적으로 하나의 반지름과 설명적 각도 집합으로 증류

실험 및 결과

장문 컨텍스트 벤치마크 성능

  • LongBench, Needle In A Haystack, ZeroSCROLLS, RULER, L-Eval 등 표준 장문 컨텍스트 벤치마크에서 오픈소스 LLM(Gemma, Mistral)을 사용해 평가
  • TurboQuant는 내적 왜곡(dot product distortion)recall 모두에서 최적 점수를 달성하면서 동시에 키-값 메모리 풋프린트를 최소화
  • Llama-3.1-8B-Instruct 모델에서 질의응답, 코드 생성, 요약 등 다양한 태스크에 걸쳐 KIVI 베이스라인 대비 견고한 성능

Needle-in-Haystack 태스크

  • 대량 텍스트 속에서 특정 정보를 찾는 테스트에서 TurboQuant는 모든 벤치마크에 걸쳐 완벽한 다운스트림 결과 달성
  • 키-값 메모리 크기를 최소 6배 이상 축소
  • PolarQuant도 이 태스크에서 거의 무손실 수준

런타임 성능

  • 학습이나 파인튜닝 없이 키-값 캐시를 3비트로 양자화하면서도 모델 정확도 타협 없음
  • 원본 LLM보다 더 빠른 런타임 달성, 구현이 극도로 효율적이며 런타임 오버헤드가 무시할 수준
  • 4비트 TurboQuant는 H100 GPU에서 32비트 비양자화 키 대비 어텐션 로짓 계산에서 최대 8배 성능 향상, JAX 최적화 베이스라인 대비 측정

벡터 검색 성능

  • 고차원 벡터 검색에서 PQ, RabbiQ 등 최신 기법과 비교 평가
  • 알고리듬이 상위 k개 근사 중 실제 최상위 내적 결과를 얼마나 자주 포착하는지를 측정하는 1@k recall 비율 사용
  • 비효율적인 대규모 코드북과 데이터셋별 튜닝을 활용하는 베이스라인 대비 TurboQuant가 일관되게 우수한 recall 비율 기록
  • GloVe 데이터셋(d=200)에서 다양한 최신 양자화 베이스라인 대비 최적의 1@k recall 비율 달성
  • 데이터 비의존적(data-oblivious) 방식으로 근최적 왜곡률을 제공하여, 3비트 시스템의 효율성으로 훨씬 무거운 모델의 정밀도를 유지

향후 전망

  • TurboQuant, QJL, PolarQuant는 실용적 엔지니어링 솔루션일 뿐 아니라 강력한 이론적 증명에 뒷받침되는 근본적 알고리듬 기여
  • 증명 가능한 효율성을 가지며 이론적 하한에 근접하게 동작하여 대규모 핵심 시스템에서 견고하고 신뢰 가능
  • 주요 응용인 Gemini 같은 모델의 키-값 캐시 병목 해결을 넘어, 효율적 온라인 벡터 양자화의 영향은 더 넓은 범위로 확장
  • 현대 검색이 키워드 중심에서 의도와 의미 이해로 진화하면서 수십억 벡터 데이터베이스에서 의미적으로 가장 유사한 항목을 찾는 벡터 검색이 필수
  • TurboQuant는 최소 메모리, 거의 제로 전처리 시간, 최신 정확도로 대규모 벡터 인덱스를 구축·쿼리할 수 있게 하여 Google 규모의 시맨틱 검색을 더 빠르고 효율적으로 구현
Read Entire Article