모델: 손실 마스킹 – Attention Masking
ㅁ 손실 마스킹
ㅇ 정의:
모델 학습 시 특정 토큰이나 위치의 손실(loss)을 계산에서 제외하는 기법으로, 주로 패딩 토큰이나 예측 대상이 아닌 구간을 무시하기 위해 사용됨.
ㅇ 특징:
– 입력 시퀀스의 길이가 다를 때 패딩 부분의 손실이 모델 성능에 영향을 주지 않도록 함
– 마스크 값(0 또는 1)을 곱하여 무시할 위치의 손실을 0으로 만듦
– RNN, Transformer 등 시퀀스 모델에서 필수적으로 사용됨
ㅇ 적합한 경우:
– NLP에서 배치 처리 시 입력 길이가 제각각인 문장 데이터
– 오디오, 시계열 데이터 등 가변 길이 입력 처리
ㅇ 시험 함정:
– Attention Masking과 Loss Masking을 혼동하는 경우가 많음
– 마스크 값의 의미(0이 무시, 1이 사용)를 반대로 이해하는 경우 출제됨
ㅇ 시험 대비 “패턴 보기” 예시:
– O: 패딩 토큰의 손실을 계산에서 제외하기 위해 마스크를 적용한다.
– X: 마스크 값이 0인 위치의 손실은 더 크게 반영된다.
================================
1. Attention Masking
ㅇ 정의:
시퀀스 모델(특히 Transformer)에서 어텐션 연산 시 특정 위치의 토큰을 보지 않도록 가중치를 조정하는 기법.
ㅇ 특징:
– 주로 미래 토큰을 보지 않게 하는 causal mask, 패딩 토큰을 무시하는 padding mask 두 종류가 있음
– 마스크는 어텐션 스코어에 매우 큰 음수(-inf)를 더해 softmax 결과를 0에 가깝게 만듦
– BERT, GPT 등 모든 Transformer 기반 모델에서 필수적으로 사용됨
ㅇ 적합한 경우:
– 언어 모델에서 시퀀스의 미래 정보를 차단해야 하는 경우
– 입력에 패딩이 포함되어 불필요한 계산과 정보 혼입을 방지해야 하는 경우
ㅇ 시험 함정:
– Attention Masking과 Loss Masking을 동일한 것으로 착각하는 경우
– causal mask와 padding mask의 차이를 묻는 문제에서 혼동
– 마스크 적용 시 softmax 이전 단계에 적용한다는 점을 놓치는 경우
ㅇ 시험 대비 “패턴 보기” 예시:
– O: Causal mask는 미래 토큰의 정보를 차단한다.
– X: Attention Masking은 softmax 이후에 적용된다.
ㅁ 추가 학습 내용
손실 마스킹과 어텐션 마스킹은 적용 단계와 목적이 다르다.
손실 마스킹은 손실(loss) 계산 시 특정 위치를 제외하기 위해 사용하며, 예를 들어 패딩 토큰 위치의 손실을 계산에서 제외한다.
어텐션 마스킹은 어텐션 스코어를 계산할 때 특정 위치를 보지 않도록 제한하는 용도로 사용한다.
어텐션 마스킹에는 두 가지 주요 형태가 있다.
1. Causal mask: 미래 시점의 정보를 차단하여 자기회귀(auto-regressive) 특성을 보장한다.
2. Padding mask: 입력 시퀀스의 패딩 토큰을 무시하여 불필요한 연산과 잘못된 정보 흐름을 방지한다.
마스크 적용 시점은 softmax 이전이며, 마스크 값은 보통 허용되는 위치에는 0, 차단할 위치에는 매우 큰 음수(-inf)를 사용하여 softmax 결과를 0에 가깝게 만든다.
Multi-head attention에서는 동일한 마스크가 각 head에 동일하게 적용되며, 마스크 행렬의 shape은 (batch_size, num_heads, seq_len, seq_len) 형태를 갖는다.