728x90
반응형
SMALL

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 등 다양한 모델에서 사용된다.

 

핵심 특징

  1. 공백도 하나의 토큰으로 처리
    기존 방식:
    "I love NLP" → ["I", "love", "NLP"] 
    SentencePiece:  
    ["▁I", "▁love", "▁NLP"]
    "▁"는 공백을 의미하는 특수 기호
  2. 언어 독립적 처리
    • 영어처럼 공백이 있는 언어뿐 아니라
    • 한국어, 일본어, 중국어 같은 언어도 동일하게 처리 가능
  3. Raw text 그대로 사용
    • 별도의 전처리(토큰 분리) 없이
    • 원문 그대로 학습 가능
반응형

내부 알고리즘

SentencePiece는 다음 두 가지 방식 지원:

  • BPE (Byte Pair Encoding) :
    앞서 배운 그 BPE이다. 
  • Unigram Language Model :
    전체 데이터에서 어떤 서브워드 토큰을 선택해야 가장 확률이 높을지를 계산하여 토큰화한다. 
    BPE보다 더 유연하고 성능이 좋아 최신 모델(LLaMA 등)에서 자주 쓰인다. 

-> 특히 Unigram 방식은 확률 기반으로 서브워드를 선택

 

왜 중요한가?

SentencePiece는 다음 문제를 해결한다:

  • 언어별 토큰화 규칙 차이 제거
  • 전처리 복잡도 감소
  • 다국어 모델에 최적화

 

왜 SentencePiece 필요한가요 ?

  1. 언어 독립적 (Language Agnostic)
    공백 기반으로 단어를 나누는 규칙이 언어마다 다르다면, 알고리즘이 언어를 탈 때마다 전처리기(Tokenizer)를 새로 짜야 한다.
    SentencePiece는 공백을 하나의 문자로 취급하기 때문에, 한국어, 영어, 일본어 등 언어에 상관없이 동일한 코드로 작동한다. 
  2. 디코딩의 완전성 (Reversibility)
    전통적인 방식은 토큰화했다가 다시 복원할 때 공백 처리가 완벽하지 않은 경우가 많다.
    entencePiece는 토큰화된 결과에 공백 정보가 포함되어 있어, 원래 문장으로 완벽하게 복구(Detokenization)가 가능하다.
  3. 신조어와 오타에 대한 강한 내성
    미리 단어 사전을 만들 필요 없이, 데이터 자체에서 통계적으로 가장 적합한 서브워드를 찾아내기 때문에 한국어의 교착어(조사, 어미가 붙는 성질) 특성을 아주 잘 잡아낸다. 

 

요약

SentencePiece는 공백을 포함한 전체 문장을 직접 학습하는 토큰화 방식으로, 다국어 및 최신 NLP 모델에서 널리 사용된다.

한국어에서 띄어쓰기 오류가 있어도 SentencePiece는 일관된 결과를 낸다. 

방식 띄어쓰기 의존도  특징 주요 사용처
BPE 높음 빈도 기반 병합 GPT-2,3 
WordPiece 높음 likelihood 기반 BERT
SentencePiece 없음 공백 포함 + raw text LLaMA, T5, 한국어 특화 모델

 

 

 

  1. 단어 단위는 너무 컸고,
  2. 문자 단위는 너무 작았으며,
  3. 서브워드(BPE, WordPiece)로 효율을 찾고,
  4. SentencePiece로 언어의 제약을 뛰어넘었습니다.

 

 

제미나이, 챗지피티 등을 이용 하여 작성

728x90
반응형

'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

+ Recent posts