Multi-head attention은 「self-attention을 한 번이 아니라 여러 번 평행으로 수행한 뒤 결과를 합치는」 구조입니다.
한 번의 self-attention이 한 가지 시각이라면, multi-head는 여러 시각을 동시에 가지는 셈입니다.
예를 들어 한 「머리(head)」는 「문법적 관계(주어-동사)」에 주목하고, 다른 머리는 「의미적 관계(고양이-앉다)」, 또 다른 머리는 「대명사 참조(it이 가리키는 것)」에 주목하는 식으로 각자 다른 측면을 잡을 수 있습니다.
기술적으로는 입력 벡터를 여러 머리 수만큼 나눠 각 머리에 줍니다.
예를 들어 임베딩 차원이 512이고 8개의 머리가 있다면 각 머리는 64차원으로 작업합니다.
각 머리에서 별도의 self-attention을 계산한 뒤, 그 결과들을 다시 이어 붙여 원래 차원으로 돌아옵니다.
비유하자면 multi-head는 「한 사진을 여러 명의 평론가에게 보여 주고, 각자 자기 관점(구도·색감·역사·감정)에서 본 평을 모아 종합 평가를 만드는 것」과 같습니다.
한 평론가의 시각보다 여러 시각의 합이 더 풍부합니다.
이 구조 덕분에 Transformer는 한 층에서 동시에 여러 종류의 의미적 관계를 잡을 수 있고, 이것이 RNN보다 훨씬 강력한 표현력을 가지는 핵심 이유입니다.
오늘날 GPT-4, Claude, Llama 모두 수십 개의 head를 가지며 그 수가 모델의 표현력을 결정하는 중요한 요소입니다.
한 줄 요약
Multi-head attention은 self-attention을 여러 평행 머리로 동시에 수행해 한 입력의 여러 측면을 동시에 잡는 구조이며, Transformer의 표현력을 결정하는 핵심 부품입니다.
더 알아볼 것
- Head 수와 임베딩 차원의 관계
- 어떤 head가 무엇을 잡는지 분석한 연구
- Grouped-query Attention — Llama의 효율 개선