최신 LLM 구조의 기본기 — Group Query Attention(GQA)
Attention → Multihead Attention → GQA(Group Query Attention)로 이어지는 개념적 흐름을 수식과 도식으로 짚어가며, 왜 GQA라는 아이디어가 나왔는지 설명하는 기술 설명 영상.
기본 Attention
Query(Q)와 Key(K) 시퀀스의 내적으로 attention score를 만든다. QKᵀ 내적 결과는 (길이×길이) score 행렬이 되고, √dₖ로 나눠 수치 안정화한 뒤 softmax로 가중치를 만들어 Value(V)와 다시 내적한다. 결과적으로 attention 출력은 'Q, K의 내적으로 만들어진 value의 가중치 합'이며, shape는 (길이×dₖ)다.
Multihead Attention
가중치가 낮은 위치의 정보는 사실상 버려지는데, 사람이 글을 읽을 때 문장을 한 가지 측면으로만 판단하지 않듯 시퀀스 분석도 여러 측면을 동시에 고려해야 한다는 발상에서 나왔다. Q, K를 head 수만큼 분리해 각각 내적하면 head별로 독립된 attention score를 얻는다. H개 head를 이어붙이면 전체 shape는 그냥 Attention과 같은 dₖ 벡터지만, 내부적으로는 H개의 서로 다른 관점(맥락)으로 분석한 결과다.
GQA(Group Query Attention)
'관점의 개수는 유지하되 같은 관점을 여러 번 들여다볼 수 있지 않을까'라는 발상에서 나왔다. Query head 개수(예: 4개)와 Key·Value head 개수(예: 2개)를 다르게 두어, query head 여러 개가 하나의 key·value head를 공유한다 — 같은 분석 관점을 서로 다른 query로 여러 번 비교해보는 것과 같다.
직관적으로는 관점 수가 줄어든 만큼 성능이 떨어질 것 같지만, 실제로는 GQA 성능이 Multihead Attention과 거의 비슷하다. key·value head 개수가 줄어든 만큼 KV 캐시 크기가 작아져 메모리를 덜 쓰면서 모델을 운용할 수 있다는 것이 실질적 이점이다. 결과적으로 GQA는 성능은 Multihead Attention급을 유지하면서 메모리는 절약하는 유리한 설계다.
영상은 다음 편에서 또 다른 방법인 MLA(Multi-head Latent Attention)를 다루겠다고 예고하며 마무리한다.
