그룹화된 쿼리 주의
GQA(Grouped-Query Attention)는 여러 쿼리 헤드가 동일한 키와 값 헤드를 공유하도록 하여 텍스트 생성 중에 필요한 메모리를 줄이는 방법입니다.
개요
It makes large models much faster to serve with almost no quality loss.
심층 분석
표준 다중 헤드 주의 레이어에서 모든 헤드에는 고유한 쿼리, 키 및 값이 있습니다. 생성 중에 모든 이전 토큰의 키와 값은 캐시('KV 캐시')되므로 모델은 이를 다시 계산하지 않습니다. 헤드가 많고 컨텍스트가 길면 이 캐시가 거대해지며 추론 시 메모리 대역폭을 지배하게 됩니다. 2023년 Google 연구원이 도입한 GQA는 쿼리 헤드를 그룹화하고 각 그룹에 단일 공유 키 및 값 헤드 세트를 제공합니다. 쿼리 헤드가 32개 있지만 KV 그룹이 8개만 있는 경우 KV 캐시는 대략 4배로 줄어듭니다. 이는 전체 멀티 헤드 어텐션(모든 헤드가 분리됨)과 멀티 쿼리 어텐션(모든 헤드에 대해 하나의 공유 KV) 사이에 위치하여 전체 어텐션에 가까운 품질을 유지하면서 MQA 속도의 대부분을 캡처합니다. Llama 2 70B 및 이후의 많은 모델이 이를 채택했습니다.
기술적 통찰력
주의 품질은 다양한 쿼리 방향에 크게 좌우되지만 키와 값의 공유는 허용됩니다. GQA는 이러한 비대칭성을 활용합니다. 즉, 모든 쿼리 헤드를 유지하지만 해당 그룹의 쿼리 전체에 걸쳐 각 공유 KV 헤드를 복제합니다. KV 캐시가 메모리 대역폭의 주요 소비자라는 추론에서 절감 효과가 나타납니다. KV 헤드가 적다는 것은 생성된 토큰당 읽을 데이터가 적다는 것을 의미합니다. 모델은 기존 다중 헤드 체크포인트를 GQA 체크포인트로 변환하기 위해 잠시 '업트레인'되는 경우가 많습니다.
전략적 영향
속도와 규모
일관성을 유지하면서 언어 워크플로를 더 빠르게 진행할 수 있습니다.
접근 및 도달
언어와 의사소통 스타일 전반에 걸쳐 접근성을 확장합니다.
더 명확한 결정들
자동화가 반복을 처리하는 동안 팀은 판단에 더 많은 시간을 할애할 수 있습니다.
그룹 쿼리 어텐션의 미래
GQA는 이제 큰 서빙 승리를 위해 작은 품질 비용을 깔끔하게 거래하기 때문에 개방형 모델의 표준 기본값입니다. FlashAttention, KV 캐시 양자화와 같은 다른 효율성 트릭과 캐시를 더욱 압축하는 다중 헤드 잠재 주의와 같은 새로운 방식과 점점 더 결합될 것으로 예상됩니다. 컨텍스트 창이 커짐에 따라 KV 캐시 크기를 제어하는 것이 핵심 설계 문제로 남을 것이며 GQA 스타일 헤드 공유는 핵심 레버로 남을 것입니다.
실제 구현
더 작은 KV 캐시로 긴 컨텍스트를 제공하기 위해 GQA를 사용하는 Llama 2 70B 및 Llama 3
대규모 채팅 모델이 더 적거나 저렴한 가속기에 적합하도록 GPU 메모리 줄이기
KV 캐시 대역폭이 병목 현상을 일으키는 프로덕션 API에서 토큰별 생성 속도를 높입니다.
메모리를 소모하지 않고 동시에 많은 사용자에게 서비스를 제공하기 위해 더 큰 배치 크기를 활성화합니다.
위험 및 가드레일
환각 사실은 보고서, 지원 흐름 또는 연구 결과에 조용히 포함될 수 있습니다.
신속한 민감도는 유사한 요청 간에 일관되지 않은 결과를 초래할 수 있습니다.
액세스 제어가 약한 경우 민감한 텍스트 데이터가 노출될 수 있습니다.
구현 로드맵
출시 전에 출력 형식, 톤, 품질 표준을 정의하세요.
정확성이 중요할 때마다 신뢰할 수 있는 출처를 통해 대응하세요.
고위험 결과물에 대한 인적 검토 체크포인트를 유지합니다.
실패 패턴을 추적하고 프롬프트나 워크플로를 정기적으로 재교육하세요.
계속 탐색하세요
Free newsletter
Get the daily AI briefing
Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.
One email each weekday. Unsubscribe in one click. We never sell or share your address.
Test yourself
Take the Grouped-Query Attention quiz
Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.
Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation
다음 가이드
다중 쿼리 주의
자주 묻는 질문
What is Grouped-Query Attention?
GQA(Grouped-Query Attention)는 여러 쿼리 헤드가 동일한 키와 값 헤드를 공유하도록 하여 텍스트 생성 중에 필요한 메모리를 줄이는 방법입니다. 품질 손실이 거의 없이 대형 모델을 훨씬 빠르게 서비스할 수 있습니다.
Grouped-Query Attention에서는 쿼리 헤드 그룹 간에 무엇을 공유합니까?
GQA는 별도의 쿼리 헤드를 유지하지만 각 그룹이 하나의 키 및 값 헤드 세트를 공유하도록 허용하여 KV 캐시를 축소합니다.
GQA는 어느 두 극단 사이의 중간 지점으로 가장 잘 설명됩니까?
멀티 헤드는 모든 헤드에 고유한 KV를 제공합니다. 다중 쿼리는 모든 헤드에 대해 하나의 KV를 공유합니다. GQA는 몇몇 KV 그룹 사이에 자리잡고 있습니다.
GQA는 주로 어떤 추론 부분을 더 저렴하게 만들어 주나요?
KV 캐시를 읽는 것이 주요 메모리 대역폭 비용인 생성 시간에 절감 효과가 나타납니다.
모델에 32개의 쿼리 헤드와 8개의 KV 그룹이 있는 경우 KV 캐시는 대략 어떤 요소로 줄어듭니까?
32개의 쿼리 헤드를 8개의 공유 KV 그룹으로 나누면 캐시된 키와 값이 대략 4배 감소합니다.
KV 헤드를 공유함에도 불구하고 GQA가 모델 품질의 대부분을 보존할 수 있는 이유는 무엇입니까?
주의는 고유한 쿼리 방향의 손실을 허용하는 것보다 키와 값의 공유를 훨씬 더 잘 허용하므로 GQA는 품질을 높게 유지합니다.