AI: 토큰 및 임베딩 특수 처리 – SentencePiece
ㅁ 토큰 및 임베딩 특수 처리
1. SentencePiece
ㅇ 정의:
구글에서 개발한 언어 독립적인 서브워드 토크나이저로, 공백이나 언어 규칙에 의존하지 않고 텍스트를 서브워드 단위로 분할하는 기법.
ㅇ 특징:
– 공백을 포함한 모든 문자를 동일하게 처리하여 언어별 전처리 불필요.
– BPE(Byte Pair Encoding)와 Unigram Language Model 두 가지 알고리즘 지원.
– 학습 시 어휘 사전을 직접 생성하며, 희귀어나 신조어 처리에 강점.
– 모델 학습과 추론 시 동일한 토크나이저를 사용 가능.
ㅇ 적합한 경우:
– 다국어 모델을 구축할 때 언어별 토크나이저를 따로 만들기 어려운 경우.
– 띄어쓰기 규칙이 불규칙하거나 없는 언어 처리 시.
– 희귀 단어, 오타, 신조어가 많은 데이터셋 처리 시.
ㅇ 시험 함정:
– SentencePiece는 단어 단위 토크나이저가 아니라는 점을 혼동.
– 언어별 사전이 필요한 것으로 잘못 이해.
– BPE만 지원한다고 오해.
ㅇ 시험 대비 “패턴 보기” 예시:
O: SentencePiece는 언어에 독립적인 서브워드 토크나이저이다.
X: SentencePiece는 영어 전용 단어 단위 토크나이저이다.
O: SentencePiece는 BPE와 Unigram LM 방식을 모두 지원한다.
X: SentencePiece는 BPE 방식만 지원한다.
ㅁ 추가 학습 내용
SentencePiece는 토큰화 과정에서 공백을 특수 문자로 치환하여 처리하며, 이는 학습 데이터의 모든 문자를 동일하게 취급하기 위함이다. Unigram LM 방식은 확률 기반으로 서브워드 집합을 최적화하고, BPE는 빈도 기반으로 병합 규칙을 학습한다. 시험에서는 SentencePiece와 WordPiece의 비교 문제가 자주 출제되며, WordPiece는 사전 기반으로 동작하고 공백을 기준으로 초기 분할한다는 차이가 있다. 또한 SentencePiece는 토크나이저와 디토크나이저를 모두 제공하여 모델 출력 후 원문 복원 과정까지 지원한다.