SentencePiece란?
SentencePiece는 서브워드 기반 토큰화 알고리즘으로, 공백(whitespace)을 포함한 전체 문장을 하나의 시퀀스로 보고 토큰화를 수행하는 방식이다.
기존 토큰화 방식과 달리, 문장을 "단위 단위로 나눈 후 처리"하지 않고 처음부터 끝까지 하나의 문자열로 취급한다.
https://arxiv.org/abs/1808.06226
SentencePiece: A simple and language independent subword tokenizer and detokenizer for Neural Text Processing
This paper describes SentencePiece, a language-independent subword tokenizer and detokenizer designed for Neural-based text processing, including Neural Machine Translation. It provides open-source C++ and Python implementations for subword units. While ex
arxiv.org
어디에 사용될까?
SentencePiece는 Google에서 개발되었으며, T5, ALBERT 등 다양한 모델에서 사용된다.
핵심 특징
- 공백도 하나의 토큰으로 처리
기존 방식:
"I love NLP" → ["I", "love", "NLP"]
SentencePiece:
["▁I", "▁love", "▁NLP"]
"▁"는 공백을 의미하는 특수 기호 - 언어 독립적 처리
- 영어처럼 공백이 있는 언어뿐 아니라
- 한국어, 일본어, 중국어 같은 언어도 동일하게 처리 가능
- Raw text 그대로 사용
- 별도의 전처리(토큰 분리) 없이
- 원문 그대로 학습 가능
내부 알고리즘
SentencePiece는 다음 두 가지 방식 지원:
- BPE (Byte Pair Encoding) :
앞서 배운 그 BPE이다. - Unigram Language Model :
전체 데이터에서 어떤 서브워드 토큰을 선택해야 가장 확률이 높을지를 계산하여 토큰화한다.
BPE보다 더 유연하고 성능이 좋아 최신 모델(LLaMA 등)에서 자주 쓰인다.
-> 특히 Unigram 방식은 확률 기반으로 서브워드를 선택
왜 중요한가?
SentencePiece는 다음 문제를 해결한다:
- 언어별 토큰화 규칙 차이 제거
- 전처리 복잡도 감소
- 다국어 모델에 최적화
왜 SentencePiece 필요한가요 ?
- 언어 독립적 (Language Agnostic)
공백 기반으로 단어를 나누는 규칙이 언어마다 다르다면, 알고리즘이 언어를 탈 때마다 전처리기(Tokenizer)를 새로 짜야 한다.
SentencePiece는 공백을 하나의 문자로 취급하기 때문에, 한국어, 영어, 일본어 등 언어에 상관없이 동일한 코드로 작동한다. - 디코딩의 완전성 (Reversibility)
전통적인 방식은 토큰화했다가 다시 복원할 때 공백 처리가 완벽하지 않은 경우가 많다.
entencePiece는 토큰화된 결과에 공백 정보가 포함되어 있어, 원래 문장으로 완벽하게 복구(Detokenization)가 가능하다. - 신조어와 오타에 대한 강한 내성
미리 단어 사전을 만들 필요 없이, 데이터 자체에서 통계적으로 가장 적합한 서브워드를 찾아내기 때문에 한국어의 교착어(조사, 어미가 붙는 성질) 특성을 아주 잘 잡아낸다.
요약
SentencePiece는 공백을 포함한 전체 문장을 직접 학습하는 토큰화 방식으로, 다국어 및 최신 NLP 모델에서 널리 사용된다.
한국어에서 띄어쓰기 오류가 있어도 SentencePiece는 일관된 결과를 낸다.
| 방식 | 띄어쓰기 의존도 | 특징 | 주요 사용처 |
| BPE | 높음 | 빈도 기반 병합 | GPT-2,3 |
| WordPiece | 높음 | likelihood 기반 | BERT |
| SentencePiece | 없음 | 공백 포함 + raw text | LLaMA, T5, 한국어 특화 모델 |
- 단어 단위는 너무 컸고,
- 문자 단위는 너무 작았으며,
- 서브워드(BPE, WordPiece)로 효율을 찾고,
- SentencePiece로 언어의 제약을 뛰어넘었습니다.
제미나이, 챗지피티 등을 이용 하여 작성
'LLM' 카테고리의 다른 글
| 9. 원-핫 인코딩(One-hot Encoding) (0) | 2026.04.21 |
|---|---|
| 8. 임베딩(Embedding) (0) | 2026.04.17 |
| 6. WordPiece (0) | 2026.04.14 |
| 5. BPE (Byte Pair Encoding) (0) | 2026.04.13 |
| 4. 토크나이즈 - 서브워드 단위 토큰화(subword based tokenization) (0) | 2026.04.10 |