"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."


[개발자를 위한 LLM] 멀티 헤드 어텐션 상세 동작 과정 (Transformer Multi-head Attention Detailed Process)
728x90

 

멀티 헤드 어텐션의 상세 동자 과정에 대해서 알아보겠습니다.

 

멀티 헤드 어텐션 (Multi-head Attention)

멀티 헤드 어텐션을 간단히 말하면 셀프 어텐션을 여러번 수행하는것 입니다. 마스크드 멀티 헤드 어텐션은 멀티 헤드 어텐션과 동일한 과정을 수행하지만 타겟의 일부를 마스킹 처리하는것이 멀티 헤드 어텐션과 다른 점입니다.

 

멀티 헤드 어텐션은 수행 순서는 다음과 같습니다.

  • 각 헤드는 독립적으로 셀프 어텐션을 수행. 각 헤드는 동일한 입력에 대해 다른 Q,K,V 가중치 행렬을 사용하여 셀프 어텐션 계산
  • 모든 헤드의 셀프 어텐션 출력 결과를 이어 붙여 각 헤드의 분석결과 통합
  • 도출한 결과에 최종 가중치 W0를 곱하여 최종 출력 만듦
  • 결과적으로 결과는 각각의 헤드가 분석한 결과의 총 합

멀티 헤드 어텐션은 입력 데이터를 다양한 관점에서 분석할 수 있고, 복잡한 단어 간 관계를 포착하는데 강점이 있습니다.

 

반응형

 

 

멀티 헤드 어텐션 상세 동작 (Multi-head Attention Process)

멀티 헤드 어테션은 레이어의 성능을 두 가지 방식으로 향상시킵니다.

첫째, 모델이 다양한 위치에 더 효과적으로 집중할 수 있도록 합니다. 예를 들어 "The animal didn’t cross the street because it was too tired"와 같은 문장에서 "it"가 가리키는 단어를 정확히 파악하는 데 도움을 줍니다.

둘째, 어텐션 레이어에 여러 표현 공간을 제공함으로써, 입력 데이터를 다양한 관점에서 분석할 수 있습니다. 이는 트랜스포머 모델이 8개의 어텐션 헤드를 사용하며, 각 인코더와 디코더에 대해 8세트의 Query/Key/Value 가중치 행렬을 사용함으로써 이루어집니다. 각 행렬 세트는 무작위로 초기화 되고, 훈련을 통해 입력 임베딩 또는 하위 인코더/디코더의 벡터들을 다른 표현 공간으로 투영하는 데 사용됩니다.

멀티 헤드 어텐션에서는 각 헤드마다 별도의 Q(쿼리), K(키), V(값) 가중치 행렬이 있습니다. 이를 통해 각 헤드는 서로 다른 Q, K, V 행렬을 생성합니다. 이 과정은 입력 행렬 X를 각각의 WQ(쿼리 가중치), WK(키 가중치), WV(값 가중치) 행렬과 곱하여 수행됩니다.

결과적으로, 각 헤드는 입력 데이터를 서로 다른 방식으로 해석하고 처리할 수 있는 고유한 Q, K, V 행렬을 갖게 됩니다.

 

멀티 헤드 어텐션에서는 동일한 셀프 어텐션 계산을 8개의 서로 다른 가중치 행렬 세트를 사용하여 8번 수행합니다. 이 과정을 통해 8개의 서로 다른 Z 행렬이 생성됩니다.

각 행렬은 독립된 어텐션 헤드에 해당하는 데이터의 다른 측면을 나타내며, 결과적으로 각각의 헤드가 입력 데이터를 다르게 해석하고 처리한 결과를 반영합니다.

 

멀티 헤드 어텐션에서 생성된 8개의 Z 행렬은 피드 포워드 레이어에 대한 도전 과제를 제시합니다. 왜냐하면 피드 포워드 레이어는 8개의 분리된 행렬이 아닌, 하나의 통합된 행렬(각 단어에 대한 벡터)을 입력으로 기대하기 때문입니다.

이 문제를 해결하기 위해, 이 8개의 행렬을 하나의 큰 행렬로 결합합니다. 그런 다음 이 결합된 행렬에 추가적인 가중치 행렬 WO를 곱하여, 최종적으로 피드 포워드 레이어에 적합한 단일 행렬을 생성합니다.

 

이제 처음에 보여드렸던 그림을 보면서 다시 한 번 정리하겠습니다.

  • 입력 문장을 받습니다.
  • 문장의 각 단어를 임베딩하여 벡터 형태로 변환합니다.
  • 임베딩된 단어들을 8개의 어텐션 헤드로 나누고, 각 헤드는 입력 행렬 X(또는 R)을 해당 가중치 행렬과 곱하여 Q, K, V 행렬을 생성합니다.
  • 생성된 Q, K, V 행렬을 사용하여 어텐션 점수를 계산합니다.
  • 각 헤드에서 얻어진 결과(Z 행렬)를 연결한 후, 가중치 행렬 W0와 곱하여 멀티 헤드 어텐션 레이어의 최종 출력을 생성합니다.

 

 

예시 문장에서 "it"이 인코딩될 때 각기 다른 어텐션 헤드들이 어디에 집중하는지 살펴보겠습니다.

멀티 헤드 어텐션이 어떻게 다양한 문맥 요소에 집중하는지를 파악할 수 있는 예시입니다.

여기서 보면 하나의 어텐션 헤드가 "the animal"에 집중할 수 있으며, 다른 헤드는 "tired"에 집중할 수 있습니다. 이는 "it"이라는 단어가 문장 내에서 다른 단어들과 어떻게 연관되어 있는지, 모델이 어떻게 이 단어의 의미를 다양한 관점에서 해석하는지를 보여줍니다.

모든 어텐션 헤드를 함께 고려하면, 해석이 더 복잡해질 수 있습니다. 각 어텐션 헤드는 다른 부분에 집중하며, 이들 모두를 동시에 고려할 때, 전체적인 문맥의 이해는 더 풍부해지지만, 각 헤드의 특정 초점을 이해하고 해석하는 데는 더 많은 주의가 필요합니다.

 

 

트랜스포머

1. 트랜스포머(Transformer) 개요

2. 트랜스포머 구조 (Transformer High-level Architecture)

3. 트랜스포머 구조 상세 (Transformer Detailed Architecture)

4. 트랜스포머 훈련과 예측 단계 (Transformer Learning and Inference Step)

5. 트랜스포머 입력과 출력 (Transformer Input and Output)

6. 어텐션, 셀프 어텐션, 멀티 헤드 어텐션 개요 (Transformer Attention, Self Attention, Multi-head Attention)

7. 셀프 어텐션 상세 동작 과정 (Transformer Self Attention Detailed Process)

8. 멀티 헤드 어텐션 상세 동작 과정 (Transformer Multi-head Attention Detailed Process)

9. 피드 포워드 신경망, 잔차연결, 레이어 정규화 (Transformer Feed Forward Neural Network, Residual Connection, Layer Nomalization)

 

 

 

728x90
728x90
LIST