728x90
반응형
SMALL
서브워드 단위 토큰화(subword based tokenization) 이란 ?
서브워드 방식은 텍스트를 의미를 가진 최소 단위 (Subwords)로 쪼개는 기법이다. 흔히 접두가, 접미사, 언근 등의 단위가 토큰이 된다.
이 방식은 단어 단위 와 문자 단위 토큰화의 장점을 결합한 방법으로, 현대의 대형 언어 모델 (LLM)에서 가장 널리 사용된다.
예: "unhappiness"
토큰화 결과 : ["un", "happi", "ness"]
-> 하나의 단어를 여러 개의 의미 단위로 분해
왜 서브워드 방식이 표준이 되었을까요?
- OOV 문제의 세련된 해결
사전에 없는 단어가 들어와도 문자 단위로 완전히 분해하는 대신, 알고 있는 조각들을 조합해 의미를 유추한다.
예를 들어 "Smartest"라는 단어를 처음 보더라도 모델은 Smart + est로 나누어 처리할 수 있다. - 효율적인 사전 크기
단어 단위처럼 수만 개의 변형을 다 저장할 필요가 없다. 기본이 되는 조각들만 저장해두고 조합하면 되기 때문입니다. 덕분에 메모리를 아끼면서도 풍부한 표현이 가능해진다. - 신조어 및 오타 대응
새로 생겨난 유행어나 약간의 오타도 모델이 알고 있는 '의미 조각'들 내에서 최대한 해석해낼 수 있는 복원력을 가진다.
한계점
- 토큰 분해 방식의 의존성
어떤 기준으로 나누느냐에 따라 결과가 달라진다. - 완벽한 의미 단위는 아님
서브워드는 사람이 이해하는 의미 단위와 항상 일치하지 않는다.
왜 LLM은 서버워드를 사용할까?
서브워드 토큰화는 다음과 같은 이유로 LLM에서 필수적으로 사용된다.
- OOV 문제 해결
- 의미 단위를 일정 수준 유지
- 어휘 크기와 시퀀스 길이의 균형
대표적인 알고리즘
- BPE (Byte Pair Encoding)
가장 빈번하게 함께 등장하는 문자 쌍을 반복적으로 합쳐서 하나의 토큰으로 만든다. (GPT 시리즈에서 사용) - WordPiece
BPE와 유사하지만, 단순히 빈도가 아니라 합쳤을 때 데이터의 가능도(Likelihood)를 높이는 방향으로 합친다. (BERT에서 사용) - SentencePiece
사전 지식(공백 등) 없이도 동작하여 한국어처럼 띄어쓰기가 복잡한 언어에 특히 강력하다.
파이썬 코드 : HuggingFace 활용
from transformers import AutoTokenizer
# BERT 토크나이저 불러오기
tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")
text = "I am looking for subword tokenization."
tokens = tokenizer.tokenize(text)
print(f"토큰화 결과: {tokens}")
# 결과 예시: ['i', 'am', 'looking', 'for', 'sub', '##word', 'token', '##iza', '##tion', '.']
요약
서브워드 토큰화는 표현력과 효율성을 모두 잡은 방식으로 현태 LLM의 핵심 토큰화 전략이다.
제미나이, 챗지피티 등을 이용 하여 작성
728x90
반응형
'LLM' 카테고리의 다른 글
| 6. WordPiece (0) | 2026.04.14 |
|---|---|
| 5. BPE (Byte Pair Encoding) (0) | 2026.04.13 |
| 3. 토크나이즈 - 문자 단위 토큰화(Character - based Tokenization) (0) | 2026.04.09 |
| 2. 토크나이즈 - 단어 단위 토큰화(Word - based Tokenization) (0) | 2026.04.08 |
| 1. 토큰화(Tokenizer) 이해하기 (0) | 2026.04.07 |