마스크 멀티 헤드 어텐션은 뭐가 다른가?

마스크 멀티 헤드 어텐션(Masked Multi-Head Attention)은 트랜스포머 모델의 디코더에서 사용되는 중요한 메커니즘입니다. 주요 특징과 작동 방식은 다음과 같습니다:

개념

마스크 멀티 헤드 어텐션은 디코더에서 순차적 처리를 보장하기 위해 사용됩니다. 이는 각 토큰이 자신보다 이전에 나온 토큰들만 참조할 수 있도록 하여, 미래의 정보를 사용하지 않도록 합니다[5].

작동 원리

  1. 마스킹 과정: 어텐션 스코어 계산 후, 소프트맥스 함수 적용 전에 마스킹이 이루어집니다[4].
  2. 마스크 적용: 현재 위치 이후의 토큰들에 대한 어텐션 스코어를 -∞(마이너스 무한대)로 설정합니다[6].
  3. 소프트맥스 적용: 마스킹된 스코어에 소프트맥스를 적용하면, 미래 토큰들의 가중치는 0이 됩니다[6].

목적

  1. 인과성 유지: 각 토큰이 이전 토큰들만 참조하여 순차적 생성을 가능하게 합니다[3].
  2. 학습 시 병렬 처리: 전체 시퀀스를 한 번에 입력받아 병렬 처리가 가능하게 합니다[2].

구현

마스크 멀티 헤드 어텐션은 일반적인 멀티 헤드 어텐션과 유사하지만, 마스킹 단계가 추가됩니다:

  1. 입력 임베딩을 쿼리(Q), 키(K), 값(V)으로 변환
  2. 어텐션 스코어 계산: $$ \text{score} = \frac{QK^T}{\sqrt{d_k}} $$
  3. 마스크 적용: 미래 토큰에 해당하는 스코어를 -∞로 설정
  4. 소프트맥스 적용
  5. 가중치와 값(V) 곱셈

중요성

마스크 멀티 헤드 어텐션은 디코더가 올바른 순서로 토큰을 생성하고, 문장의 일관성과 의미를 유지하는 데 핵심적인 역할을 합니다[4].

이 메커니즘을 통해 트랜스포머 모델은 효율적인 병렬 처리를 유지하면서도 순차적인 정보 처리가 필요한 작업을 수행할 수 있습니다.

Citations:
[1] https://www.youtube.com/watch?v=hF5bYLxIjwY
[2] https://stackoverflow.com/questions/58127059/how-to-understand-masked-multi-head-attention-in-transformer/59713254
[3] https://zaai.ai/llms-and-transformers-from-scratch-the-decoder/
[4] https://www.blossominkyung.com/deeplearning/transfomer-last
[5] https://glanceyes.com/entry/Transformer%EC%9D%98-Multi-Head-Attention%EA%B3%BC-Transformer%EC%97%90%EC%84%9C-%EC%93%B0%EC%9D%B8-%EB%8B%A4%EC%96%91%ED%95%9C-%EA%B8%B0%EB%B2%95
[6] https://acdongpgm.tistory.com/221

Comments

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다