트랜스포머의 셀프 어텐션이 있다. 셀프 어텐션은 단어 간에 관계성을 학습하는 모델(아키텍처)로 LLM에 근간이 된다. 그러나 최신 모델들은 이러한 셀프 어텐션을 변형하거나 덧붙여서 모델을 만들고 있다. 그러므로 최신 LLM 모델을 이해하기 위해 아래와 같은 개념을 이해할 필요 있다.

 

MHA(Multi-head attention)는 attention 구조를 여러 개(multi head)를 이용한 구조이다. 단순히 여러 개를 이용하므로 파라미터 수와 계산량이 head 개수만큼 커진다.

 

이러한 단점을 group query attention을 이용해 해결한다. Group query attention은 Transformer의 계산인 Query, Key, Value로 이어지는 계산을 Query를 group으로 묶어 계산하는 방식이다. 그러므로 group의 크기에 따라 query 계산량이 줄어든다. 실험 결과 이렇게 group을 묶어도 크게 performance가 차이 나지 않아 활용되었었다. 파라미터 숫자가 줄어든다는 장점도 있지만, KV cache 계산(inference 시 recursive 하게 계산하므로 매번 계산하는 걸 한 번만 하는)에서 K 파라미터가 줄어들어 큰 장점이 있다.

 

이와 같이 메모리(파라미터 수) 관점에서 또 개선한게 MLA(Multi-head Latent Attention)이다.  이름에서 볼 수 있듯이 K, V 간의 연산을Latent(일종의 선형 변환)을 통해 하나의 weight로 계산하는 방식이다. GQA과 동일한 크기에서 더 좋은 성능을 보여 Deepseek에서도 이용되었다. deepseek 논문에서는 GQA 비교, MHA과의 inference 토큰 비교 등 다양한 비교 결과를 증명하였다.
(참고로 deepseek 논문이 모든 걸 공개해서 궁금하다면 deepseek 논문부터 읽기를 권장한다)

 

마지막으로 sliding window attention인데 gemma 3에서 memory를 절약하기 위한 technique이다. 기본 콘셉트는 sliding window로 단어 간에 관계성을 계산하자이다. self-attention에서 모든 단어 간에 관계성을 계산했다면, sliding window attention은 해당 단어 앞에 3개 싹만 하자 이런 식으로 계산을 해도 성능차이가 별로 없다는 가정하에 실험했다. 우려되는 점은 local(근처)의 단어만 계산하기에 global(문장 전체)에 대한 관계성을 학습할 수 있을까라는 의문이 든다. 그러므로 작은 모델에선 효과적일 수 있으나 큰 모델에서는 권장하지 않는다.

+ Recent posts