[코드 파헤치키치카포 ㅎㅎ] Multi Head Attention

박찬호·2025년 11월 10일

MHA에 대한 비유

Multi-Head Attention은 하나의 문맥을 Head를 나누어 여러가지 공간에서 분석하게 만드는 방식이다. 뭔가 3차원으로 이해하자면 케이크를 8조각(head)로 나누고, 조각의 특징(feature)을 분석하는 것인데, 다른 조각에서 이미 분석한 특징은 해당 조각에선 분석하지 않는 방식이다.

A조각에서 당도와 부피를 특징하여 분석했다면 B조각에선 특징하지 않는다는 의미. 하지만, 학습을 거듭할 때마다 비슷해질 수도 있음. 이게 피드백으로 인해 중요도가 올라가서 그럼.

아무튼 벡터 관련은 이렇게 이해하면 편하다.

근데 나는 솔직히 이 설명보다.
케이크를 512조각(head)으로 나눈 것을 8개로 그룹핑(head)하여 케이크
그룹 간의 각 조각별 특징와 연관성을 분석하는 거라고 생각하는데 뭐 아무튼 이런거다. 
물론 이 비유도 정확하지 않다 QKV가 들어가면 이제 더 어디에 빗댈지도 모르겠고 아무튼
벡터(차원)에 대한 이해는 이런 느낌이다.

그래서 대충 적어보는 MHA 순서

클래스 정의

순전파

입력 형태 정의

QKV Mapping

헤드로 토큰 분리

차원 재배열

행렬곱

마스킹

softmax

합치기

profile
Velog.

0개의 댓글