Skip to content

필사 모드: 어텐션 변형 — MHA에서 MLA까지, KV 캐시는 어떻게 줄어드는가

한국어
0%
정확도 0%
💡 왼쪽 원문을 읽으면서 오른쪽에 따라 써보세요. Tab 키로 힌트를 받을 수 있습니다.

들어가며

긴 문맥을 다루는 모델을 서빙해 본 사람은 KV 캐시가 얼마나 빨리 메모리를 먹는지 압니다. 가중치는 고정이지만 KV 캐시는 사용자 수와 문맥 길이에 비례해 늘어납니다. 최근 몇 년의 어텐션 변형은 사실상 이 한 가지 문제를 푸는 역사입니다.

이 글은 MHA에서 MQA, GQA를 거쳐 MLA까지 이어지는 흐름을 실제 config 값으로 따라갑니다. 모든 계산은 앞 글에서 확인한 공개 설정 파일에서 나옵니다.

수치는 2026-08-12에 논문·공식 리포트·config.json에서 직접 확인했습니다. 모델은 갱신되므로 원본을 다시 확인하세요.

왜 KV 캐시가 문제인가

자기회귀 생성에서는 토큰을 하나 만들 때마다 앞선 모든 토큰의 키와 값이 필요합니다. 매번 다시 계산하는 대신 저장해 두는 것이 KV 캐시입니다. 크기는 다음 공식으로 정해집니다.

KV 캐시 바이트
  = 2 x 층 수 x 키·값 헤드 수 x head_dim x 문맥 길이 x 자료형 바이트

앞의 2 는 키와 값 두 벌을 뜻합니다.

여기서 모델 설계자가 건드릴 수 있는 항은 사실상 하나, 키·값 헤드 수입니다. 층 수와 헤드 차원은 모델 품질과 직결되고 문맥 길이는 사용자가 정합니다.

MHA에서 MQA로, 그리고 GQA

원래 트랜스포머는 쿼리 헤드마다 키·값 헤드를 하나씩 뒀습니다. 이것이 MHA입니다. MQA는 반대 극단으로 가서 모든 쿼리 헤드가 키·값 헤드 하나를 공유합니다. 캐시는 헤드 수만큼 줄지만 표현력 손실이 큽니다.

GQA는 그 사이입니다. GQA 논문은 이 기법을 쿼리 헤드보다는 적고 하나보다는 많은 수의 키·값 헤드를 쓰는 다중 쿼리 어텐션의 일반화로 정의하고, 기존 다중 헤드 체크포인트를 변환하는 데 원래 사전학습 연산량의 5퍼센트가 든다고 보고합니다(Ainslie et al., arXiv:2305.13245).

지금 나오는 대부분의 조밀 모델이 GQA를 씁니다. 실제 config에서 확인한 비율은 다음과 같습니다.

모델                    쿼리 헤드 / 키·값 헤드   비율
Qwen3-8B                     32 / 8              4:1
Qwen3-32B                    64 / 8              8:1
Qwen3-235B-A22B              64 / 4             16:1
Qwen2.5-7B                   28 / 4              7:1
Mixtral-8x7B                 32 / 8              4:1
GLM-4.5                      96 / 8             12:1
Llama 3.1 (8B/70B/405B)   32,64,128 / 8    4:1, 8:1, 16:1

Llama 3 계열 값은 기술 리포트 표 3에서 가져왔습니다(arXiv:2407.21783). 표를 보면 모델이 커질수록 비율을 공격적으로 키웁니다. 큰 모델일수록 쿼리 헤드가 많아 캐시 압박이 크기 때문입니다.

MLA: 캐시할 것을 아예 바꾸기

DeepSeek-V2가 도입하고 DeepSeek-V3와 Kimi K2가 이어받은 MLA는 접근이 다릅니다. 헤드 수를 줄이는 대신, 키와 값을 저차원 잠재 벡터로 함께 압축하고 그 잠재 벡터만 캐시합니다.

DeepSeek-V3 리포트의 하이퍼파라미터를 보면 어텐션 헤드는 128개, 헤드 차원은 128, KV 압축 차원은 512, 쿼리 압축 차원은 1536, 분리된 쿼리·키의 헤드 차원은 64입니다(arXiv:2412.19437). 캐시에 남는 것은 압축된 잠재 벡터와 분리된 키뿐입니다.

MLA 캐시 원소/토큰 = 층 수 x (kv_lora_rank + qk_rope_head_dim)
DeepSeek-V3        = 61 x (512 + 64) = 35,136

같은 모델을 MHA로 만들었다면
                   = 2 x 61 x 128 x 128 = 1,998,848

비율 = 1,998,848 / 35,136 = 약 56.9배

DeepSeek-V2 논문은 이 설계로 DeepSeek 67B 대비 KV 캐시를 93.3퍼센트 줄이고 최대 생성 처리량을 5.76배로 높였다고 보고합니다(arXiv:2405.04434).

한 표로 비교하기

fp16 기준, 문맥 32,768 토큰 하나를 캐시할 때의 크기입니다. 모두 위 공식에 config 값을 대입해 계산했습니다.

모델              방식   원소/토큰   MHA 대비   32K 캐시(fp16)
Qwen3-8B          GQA      73,728      4.0배      4.50 GiB
Qwen3-32B         GQA     131,072      8.0배      8.00 GiB
Qwen3-235B-A22B   GQA      96,256     16.0배      5.88 GiB
Mixtral-8x7B      GQA      65,536      4.0배      4.00 GiB
GLM-4.5           GQA     188,416     12.0배     11.50 GiB
DeepSeek-V3       MLA      35,136     56.9배      2.14 GiB
Kimi K2           MLA      35,136     28.4배      2.14 GiB

주목할 점이 두 가지 있습니다. 첫째, Qwen3-235B-A22B는 2350억 파라미터 모델인데 80억 모델인 Qwen3-8B보다 KV 캐시가 겨우 30퍼센트 더 큽니다. 키·값 헤드를 4개로 묶었기 때문입니다. 둘째, DeepSeek-V3와 Kimi K2의 토큰당 캐시는 완전히 같습니다. 두 모델의 층 수와 압축 차원이 같기 때문입니다. 다만 MHA 대비 절감 배수는 다릅니다. Kimi K2는 어텐션 헤드가 64개라 애초에 MHA였을 때의 기준선이 절반이기 때문입니다.

무엇을 내주는가

여기가 중요합니다. 캐시를 줄이면 반드시 무언가를 내줍니다.

GQA는 표현력을 내줍니다. 여러 쿼리 헤드가 같은 키·값을 보므로 헤드별로 다른 정보에 주목하는 능력이 줄어듭니다. GQA 논문이 이를 품질과 속도 사이의 절충으로 규정하는 이유입니다.

MLA는 연산과 복잡도를 내줍니다. 압축과 복원을 위한 행렬이 추가되고, 위치 정보를 처리하기 위해 쿼리와 키의 일부를 분리해 따로 다뤄야 합니다. DeepSeek-V3 리포트가 압축된 잠재 벡터 뒤에 추가 RMSNorm을 넣고 폭이 좁아지는 지점에 스케일링 계수를 곱한다고 밝히는 것도, 이 구조가 그냥 얻어지지 않음을 보여 줍니다.

헤드 수 자체를 줄이는 선택

Kimi K2는 또 다른 축을 건드렸습니다. 리포트 표 2에 따르면 DeepSeek-V3의 어텐션 헤드 128개를 64개로 절반 줄였습니다. 이유가 같은 절에 구체적으로 적혀 있습니다. 시퀀스 길이 128k에서 전체 전문가 수를 384개로 고정한 채 어텐션 헤드를 64개에서 128개로 늘리면 추론 연산량이 83퍼센트 증가한다는 것입니다.

반대편의 이득도 측정했습니다. 같은 리포트는 헤드 수를 두 배로 늘렸을 때 검증 손실이 약 0.5퍼센트에서 1.2퍼센트 낮아지는 데 그쳤다고 보고하고, 그 정도 이득은 추론 비용을 정당화하지 못한다고 결론짓습니다(arXiv:2507.20534). 설계 결정이 어떤 근거 위에서 내려지는지 보여 주는 좋은 예입니다.

마치며

어텐션 변형을 읽는 법은 간단합니다. config에서 num_attention_headsnum_key_value_heads의 비율을 보고, kv_lora_rank가 있으면 MLA라고 판단하면 됩니다. 그리고 공식에 넣어 토큰당 캐시를 직접 계산해 보세요. 모델이 긴 문맥을 어떤 자세로 대하는지가 그 숫자 하나에 담겨 있습니다.

참고 자료

직접 해보기

시리즈

현재 단락 (1/55)

긴 문맥을 다루는 모델을 서빙해 본 사람은 KV 캐시가 얼마나 빨리 메모리를 먹는지 압니다. 가중치는 고정이지만 KV 캐시는 사용자 수와 문맥 길이에 비례해 늘어납니다. 최근 몇 ...

작성 글자: 0원문 글자: 3,523작성 단락: 0/55