데이터 전처리: 심화 특수 토큰
ㅁ 심화 특수 토큰
ㅇ 정의:
ㅇ 특징:
ㅇ 적합한 경우:
ㅇ 시험 함정:
ㅇ 시험 대비 “패턴 보기” 예시:
================================
1. Dynamic Padding
ㅇ 정의:
입력 시퀀스의 길이에 맞추어 배치(batch)별로 패딩 길이를 동적으로 조정하는 기법.
ㅇ 특징:
– 불필요한 패딩 토큰 수를 최소화하여 메모리 효율과 연산 속도를 개선.
– 배치마다 패딩 길이가 달라짐.
– RNN, Transformer 계열 모델에서 학습 효율 향상.
ㅇ 적합한 경우:
– 문장 길이 편차가 큰 데이터셋.
– GPU 메모리 사용 최적화가 필요한 경우.
ㅇ 시험 함정:
– 정적 패딩(static padding)과 혼동하기 쉬움.
– 배치 간 길이가 달라지므로 ONNX 등 일부 배포 환경에서 호환성 문제가 발생할 수 있음.
ㅇ 시험 대비 “패턴 보기” 예시:
O: “Dynamic Padding은 배치별 최대 길이에 맞춰 패딩한다.”
X: “Dynamic Padding은 전체 데이터셋 최대 길이에 맞춰 패딩한다.”
================================
2. Mask Tokens
ㅇ 정의:
입력 시퀀스에서 특정 토큰을 [MASK]와 같은 특수 토큰으로 치환하여 모델이 해당 위치를 예측하도록 하는 기법.
ㅇ 특징:
– BERT 등 MLM(Masked Language Model)에서 사용.
– 학습 시 일부 토큰만 마스킹하여 문맥 이해를 학습.
– 마스킹 비율과 전략이 성능에 영향.
ㅇ 적합한 경우:
– 사전학습(pretraining) 단계에서 문맥 기반 언어 이해를 강화.
– 데이터 증강 효과를 부여하고 싶을 때.
ㅇ 시험 함정:
– 마스킹 토큰은 학습 시에만 사용하고, 추론 시에는 사용하지 않음.
– 모든 마스킹이 [MASK]로만 대체되는 것은 아님(일부는 원래 토큰 유지, 일부는 다른 토큰으로 대체).
ㅇ 시험 대비 “패턴 보기” 예시:
O: “[MASK] 토큰은 모델이 주변 문맥으로 해당 위치를 예측하게 한다.”
X: “추론 단계에서도 [MASK] 토큰을 그대로 입력한다.”
================================
3. Unknown Tokens 처리 원칙
ㅇ 정의:
모델의 사전에 없는 단어(OOV, Out-Of-Vocabulary)를 처리하는 방법과 규칙.
ㅇ 특징:
– 일반적으로 [UNK] 토큰으로 대체.
– 서브워드 토크나이저 사용 시 OOV 발생률 감소.
– 사용자 정의 토큰 사전 확장 가능.
ㅇ 적합한 경우:
– 실제 서비스 환경에서 새로운 단어, 오타, 외래어가 자주 등장하는 경우.
– 도메인 특화 용어 처리.
ㅇ 시험 함정:
– [UNK] 처리 시 의미 손실 발생 가능.
– 모든 미등록 단어를 무조건 [UNK]로 처리하면 성능 저하.
ㅇ 시험 대비 “패턴 보기” 예시:
O: “OOV 단어는 사전에 없을 경우 [UNK]로 대체한다.”
X: “OOV 단어는 무조건 제거한다.”
ㅁ 추가 학습 내용
Dynamic Padding과 Static Padding 성능 비교
– Dynamic Padding: 배치 내 최대 시퀀스 길이에 맞춰 패딩 → 패딩 토큰 수 최소화로 연산 효율 향상
– Static Padding: 데이터셋의 최대 시퀀스 길이에 맞춰 패딩 → 구현 단순하지만 불필요한 연산 증가
– 예시:
시퀀스 길이 [5, 7, 9]인 배치
– Static Padding(최대 길이 9): 총 토큰 수 3×9=27
– Dynamic Padding(최대 길이 9): 동일 배치에서는 차이 없음
– 시퀀스 길이 [5, 7, 6]인 배치
– Static Padding(최대 길이 9): 3×9=27
– Dynamic Padding(최대 길이 7): 3×7=21 → 패딩 6토큰 절감
Mask Tokens 마스킹 비율
– 일반적 비율: 80% [MASK] 토큰 대체, 10% 원래 토큰 유지, 10% 랜덤 토큰 대체
– 목적: 모델이 다양한 상황에서 토큰 예측 능력을 학습하도록 함
Unknown Tokens 처리
– 서브워드 분절 기법: BPE(Byte Pair Encoding), WordPiece
– 미등록 단어를 더 작은 서브워드 단위로 분해하여 OOV 문제 완화
– 의미 보존 대안:
– 철자 기반 분해(문자 단위 토큰화)
– 유사 단어 매핑(임베딩 공간에서 가장 가까운 단어로 대체)
세 특수 토큰([PAD], [MASK], [UNK])의 추론 단계 처리 비교
토큰 종류 | 추론 시 처리 방식
[PAD] | Attention 연산에서 무시(Mask 처리), 출력에 영향 없음
[MASK] | 일반 추론에서는 사용하지 않음(사전학습 단계 전용), 단 마스킹 기반 생성 모델에서는 예측 대상
[UNK] | 모델이 해당 토큰에 대한 학습된 임베딩을 사용, 의미 정보 제한적