인과 마스킹

IT 위키
인공무능 (토론 | 기여)님의 2025년 7월 16일 (수) 03:58 판 (새 문서: 인과 마스킹(causal masking)은 인공 신경망, 특히 트랜스포머(Transformer) 아키텍처에서 시퀀스 데이터의 순서를 보존하면서 미래의 정보를 참조하지 못하도록 제한하는 기술이다. ==개요== 인과 마스킹은 주로 자연어 처리(NLP)에서 언어 모델을 학습시킬 때 사용되며, 현재 시점의 단어를 예측할 때 해당 시점 이전의 정보만을 이용하도록 만드는 메커니즘이다. 이는 자기...)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)

인과 마스킹(causal masking)은 인공 신경망, 특히 트랜스포머(Transformer) 아키텍처에서 시퀀스 데이터의 순서를 보존하면서 미래의 정보를 참조하지 못하도록 제한하는 기술이다.

개요[편집 | 원본 편집]

인과 마스킹은 주로 자연어 처리(NLP)에서 언어 모델을 학습시킬 때 사용되며, 현재 시점의 단어를 예측할 때 해당 시점 이전의 정보만을 이용하도록 만드는 메커니즘이다. 이는 자기회귀 언어 모델(auto-regressive language model)의 학습 및 추론 시에 필수적인 요소로, 미래 정보를 참조하는 것을 방지하여 정보 누설(information leakage)을 차단한다.

작동 원리[편집 | 원본 편집]

트랜스포머의 셀프 어텐션(self-attention) 메커니즘에서는 모든 시점의 토큰이 서로를 참조할 수 있다. 그러나 인과 마스킹을 적용하면, 각 토큰은 자신보다 뒤에 있는 토큰에 대해서는 어텐션을 수행하지 못하도록 제한된다. 이를 구현하기 위해 어텐션 스코어 행렬에 상삼각형 형태의 마스크 행렬을 적용하여, 미래 시점에 해당하는 요소들을 음의 무한대 값으로 설정하고 softmax 연산을 통해 해당 위치의 가중치가 0이 되도록 한다.

구현 방식[편집 | 원본 편집]

인과 마스킹은 일반적으로 다음과 같은 방식으로 구현된다:

  • 어텐션 스코어 행렬 A가 있을 때, 마스크 행렬 M을 정의한다:
    • M[i][j] = 0 (i보다 j가 작거나 같을 경우)
    • M[i][j] = 매우 작은 음수 값 (i보다 j가 작을 경우)
  • 최종 어텐션 스코어는 A + M으로 계산되며, softmax 연산 시 미래 위치의 스코어는 0으로 수렴한다.

활용[편집 | 원본 편집]

  • GPT 시리즈와 같은 자기회귀 언어 모델은 인과 마스킹을 통해 순차적인 텍스트 생성을 수행한다.
  • 기계 번역, 텍스트 생성, 음성 인식 등의 다양한 시퀀스 생성(task)에 활용된다.
  • 디코더 기반 트랜스포머 구조에서는 항상 인과 마스킹이 포함되어야 하며, 인코더에서는 필요하지 않다.

구현 예시[편집 | 원본 편집]

다음은 PyTorch에서 인과 마스킹을 생성하는 코드 예시이다:

def generate_causal_mask(size):
    mask = torch.triu(torch.ones(size, size), diagonal=1)
    mask = mask.masked_fill(mask == 1, float('-inf'))
    return mask

같이 보기[편집 | 원본 편집]

참고 문헌[편집 | 원본 편집]

  • Vaswani, A., Shazeer, N., Parmar, N., et al. (2017). Attention Is All You Need. Advances in Neural Information Processing Systems.
  • Brown, T., Mann, B., Ryder, N., et al. (2020). Language Models are Few-Shot Learners. arXiv preprint arXiv:2005.14165.

각주[편집 | 원본 편집]