마스크 멀티 헤드 어텐션(Masked Multi-Head Attention)은 트랜스포머 모델의 디코더에서 사용되는 중요한 메커니즘입니다. 주요 특징과 작동 방식은 다음과 같습니다:
개념
마스크 멀티 헤드 어텐션은 디코더에서 순차적 처리를 보장하기 위해 사용됩니다. 이는 각 토큰이 자신보다 이전에 나온 토큰들만 참조할 수 있도록 하여, 미래의 정보를 사용하지 않도록 합니다[5].
작동 원리
- 마스킹 과정: 어텐션 스코어 계산 후, 소프트맥스 함수 적용 전에 마스킹이 이루어집니다[4].
- 마스크 적용: 현재 위치 이후의 토큰들에 대한 어텐션 스코어를 -∞(마이너스 무한대)로 설정합니다[6].
- 소프트맥스 적용: 마스킹된 스코어에 소프트맥스를 적용하면, 미래 토큰들의 가중치는 0이 됩니다[6].
목적
- 인과성 유지: 각 토큰이 이전 토큰들만 참조하여 순차적 생성을 가능하게 합니다[3].
- 학습 시 병렬 처리: 전체 시퀀스를 한 번에 입력받아 병렬 처리가 가능하게 합니다[2].
구현
마스크 멀티 헤드 어텐션은 일반적인 멀티 헤드 어텐션과 유사하지만, 마스킹 단계가 추가됩니다:
- 입력 임베딩을 쿼리(Q), 키(K), 값(V)으로 변환
- 어텐션 스코어 계산: $$ \text{score} = \frac{QK^T}{\sqrt{d_k}} $$
- 마스크 적용: 미래 토큰에 해당하는 스코어를 -∞로 설정
- 소프트맥스 적용
- 가중치와 값(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
답글 남기기