11P by GN⁺ 19시간전 | ★ favorite | 댓글 2개
  • 고차원 벡터의 메모리 오버헤드 문제를 근본적으로 해결하는 양자화 알고리듬 세트로, 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 규모의 시맨틱 검색을 더 빠르고 효율적으로 구현

"회전은 무한의 힘이다. 그걸 믿어라."

Hacker News 의견들
  • KV 캐시 압축 연구가 정말 흥미로운 발전임
    다만 관련 연구에서 핵심 수학적 메커니즘에 대한 인용이 빠져 있음이 아쉬움
    고차원 기하를 다루기 위해 기하학적 회전을 적용한 뒤 극단적 양자화를 수행하는 기법은 우리 팀의 NeurIPS 2021 논문 “DRIVE”에서 처음 제안된 것임
    이 회전 기반 접근과 편향 보정 메커니즘을 통해 최적의 분산 평균 추정을 달성했음
    이후 Google 초청 세미나에서도 이 내용을 발표했으며, TurboQuant와 PolarQuant의 이론적 유사성을 고려해 향후 버전에서 선행 연구 인용이 반영되길 바람

    • 회전이라 하면 결국 대각화(diagonalization) 를 의미하는 것인지 궁금함
      즉, 대각 행렬과 새로운 기저를 저장해 더 압축하는 방식인지 묻고 싶음
    • 오늘 처음 Multi-Head Latent Attention (MHLA) 를 알게 되었는데, 이것도 KV 캐시를 압축하는 방식이라 들음
      이번 연구와 MHLA가 어떤 관계인지 설명을 부탁함
    • 이건 사실 오래된 Johnson–Lindenstrauss류의 고전적 기법임
      이런 아이디어는 몇 년마다 재발견되곤 하는데, 예를 들어 2017년 논문에서도 유사한 접근이 있었음
    • 인용이 빠졌다면 아쉬운 일임
      하지만 연구자가 이미 충분히 진행된 상태에서 비슷한 아이디어를 독립적으로 떠올렸을 가능성도 있음
      좋은 아이디어는 문제를 깊이 이해한 사람이라면 자연히 도달하게 되는 법임
    • Schmidhuber’d”라며, 선행 연구 인용 누락을 풍자적으로 표현함
  • “TurboQuant가 데이터를 무작위로 회전시켜 기하를 단순화한다”는 설명이 이해되지 않음
    회전이 항상 더 단순한 형태를 만든다는 보장이 없지 않음?
    또 “Johnson–Lindenstrauss 변환으로 고차원 데이터를 축소하고 각 벡터를 부호 비트로 표현한다”는 부분도, 불리언 값 하나로 관계 정보를 유지한다는 게 납득되지 않음

    • 실제로는 딥러닝 모델의 활성값 분포가 등방적(isotropic) 이지 않음
      일부 차원에서 outlier 활성값이 생기며, Adam 옵티마이저의 특성상 이런 현상이 강화됨
      관련 논문으로 SmoothQuantPrivileged Basis를 참고할 만함
    • 모델이 데이터의 방향이 아니라 벡터 간 거리에만 민감해야 한다는 뜻임
      이렇게 하면 불필요한 규칙 학습을 줄이고 최적화가 안정화됨
      즉, 모델이 “특정 차원의 특정 자리수가 5면 고양이” 같은 사소한 규칙을 배우지 않게 하는 것임
    • 양자화의 목적은 데이터를 ‘빈(bin)’에 넣어 압축하는 것임
      회전 행렬을 곱하면 데이터가 더 균등하게 분포되어 효율적 양자화가 가능해짐
      이후 Lloyd–Max 알고리즘으로 경계와 재구성 값을 최적화하고, 남은 편향(bias) 은 1비트로 보정함
      이렇게 하면 적은 비트로도 높은 정밀도를 유지할 수 있음
    • 회전은 단순히 데이터를 다른 기준 좌표계로 옮겨 압축 효율을 높이는 것임
      예를 들어, 부동소수점 값을 다른 단위(벨→데시벨)로 바꾸면 더 유사한 값으로 표현되어 압축이 쉬워짐
    • 무작위 회전이 아니라 outlier 정렬을 의미함
      즉, 멀리 떨어진 데이터를 다시 중심 근처로 모으는 과정임
      또 각 차원을 개별적으로 부호화하므로 전체 벡터가 단일 불리언으로 줄어드는 것은 아님
  • 이 블로그 글은 품질이 낮음
    그래프의 축이 잘못 표시되어 있고, 영상 시각화Polar Quantization 개념을 전혀 전달하지 못함
    또 다른 그래프는 축이 48에서 시작해 실제 차이를 과장함
    전반적으로 시각 자료의 신뢰성과 커뮤니케이션 품질이 떨어짐

  • 이미 누군가 llama.cpp에 구현 중임
    관련 커밋 참고

    • 논문보다 효율적인 방법으로, 회전 연산 O(d²)을 Subsampled Randomized Hadamard Transform으로 대체해 O(d log d)로 개선 시도 중임
      Johnson–Lindenstrauss 정리가 여전히 성립해 각 좌표의 독립적 양자화가 이론적으로 타당하길 기대함
    • 생각보다 구현이 단순해 놀라움
      도메인 지식이 부족하지만 구조는 명확해 보임
    • llama.cpp의 개발 속도가 매우 빠름
      4~6주 내에 메인 브랜치에 병합될 가능성이 높음
  • TurboQuant를 직관적으로 설명한 애니메이션이 있음

  • 학부 수준에서 정리해본 요약임
    핵심은 KV 캐시를 정보 손실 최소화하며 양자화하는 것임
    대부분의 벡터가 고차원 구의 적도 부근에 몰려 있어, 회전을 통해 분포를 균등하게 만들어 엔트로피 보존을 높임
    PolarQuant는 극좌표 변환으로 이를 시도했지만 TurboQuant는 이를 단순화하고 QJL 편향 보정을 추가함
    결국 PolarQuant + QJL + 실용적 보정으로 고효율 압축을 달성함
    블로그 글은 오류가 많고 혼란스러움

    • 실제로는 미래 쿼리 벡터를 위해 역회전(un-rotation) 을 수행함
      PolarQuant의 하이퍼폴라 좌표 코드북은 TurboQuant에도 일부 남아 있음
  • 이 글은 AI 구성요소 설명 중 최악의 수준
    기술적 맥락이 거의 없음

    • 실제로 AI가 작성했거나, 기술 이해가 부족한 사람이 쓴 듯함
      Johnson–Lindenstrauss 정리를 언급하면서도 구체적 연결 설명이 빠져 있음
    • 일부 문장은 너무 단순화되어 있음
      예를 들어 “3블록 동쪽, 4블록 북쪽”을 “5블록 37도 각도로 이동”이라 설명하는 식인데, 중학생 수준 비유로 느껴짐
    • “TurboQuant, QJL, PolarQuant는 이론적으로 효율적이며 하한선에 근접한 알고리즘적 혁신이다”라는 문장은 과장된 홍보 문구처럼 보임
  • 독립적인 PyTorch 구현체가 이미 공개됨
    turboquant-pytorch

    • Google의 블로그보다 훨씬 명확한 설명을 제공함
  • 블로그는 최근 공개됐지만, 논문은 거의 1년 전 arXiv에 제출된 것임
    이미 Gemini 같은 모델에 적용됐는지 궁금하며, 만약 그렇다면 개인용 RAM 비용도 줄어들 수 있을지 기대함

  • 최근 압축 연구가 실제 응용으로 이어지는 속도가 놀라움
    이미지 포맷에서도 AVIF와 JPEG XL이 비디오 코덱 연구에서 파생된 것처럼, AI 양자화 기술도 곧 실제 추론 환경에 적용될 가능성이 큼

    • JPEG XL은 이미지 전용 연구 기반이지만, AVIF처럼 비디오 기술을 이미지에 맞게 조정한 사례임
      XYB 색공간 등 일부 개념은 공통적이며, LLM에서도 비슷한 맞춤형 엔지니어링이 필요할 것이라 예상함