728x90
반응형
SMALL
문자 단위 토큰화( Character - based Tokenization )이란 ?
문자 단위 토큰화는 텍스트를 단어가 아닌 글자(알파벳, 한글 자모음, 숫자, 문장 부호 등) 하나하나를 최소 단위의 토큰으로 나누는 방식이다.
예시 : "Apple"
토큰화 결과 : ["A", "p", "p", "l", "e"]
한글의 경우, "사과"를 "사", "과"로 나누거나 더 작게 "ㅅ","ㅏ", "ㄱ", "ㅘ" 로 분리하는 방식까지 포함될 수 있다.
장점 : 무적의 유연성
- OOV 문제 완전 해결
모든 단어는 결국 글자의 조합이다. 사전에 없는 신조어나 오타가 들어와도 , 이미 글자 단위의 정보는 사전에 있으므로 모델이 처리할 수 있다. - 압도적으로 작은 사전 규모
단어 단위 방식은 수만 ~ 수백만 개의 단어를 저장해야 했지만, 문자 단위는 알파벳26자나 한글 자모음 등 수백 개 내외의 토큰만으로 세상의 모든 문장을 표현할 수 있다.
한계점
문자 단위 토큰화는 유연사지만, 다음과 같은 단점이 존재한다.
- 시퀀스 길이 증가
문장을 문자로 쪼개기 때문에 입력 길이가 매우 길어진다. - 의미 정보 부족
문자 하나만으로는 의미를 가지기 어렵기 때문에 모델이 문맥을 이해하기 까지 더 많은 학습이 필요하다. - 학습 비효율
긴 시퀀스를 처리해야 하므로 연산량 증가 및 학습 속도 저하가 발생한다.
언제 사용하면 좋을까 ?
- 철자 기반 모델 (오타 교정, 형태 분석)
- 언어 독집적인 처리 (다국어 환경)
- 특수 문자나 기호가 많은 데이터
파이썬 코드
text = "Deeper neural networks are more difficult to train."
# 문자 단위로 분리
tokens = list(text)
# 글자 사전(Vocabulary) 구축
vocab = {char: i for i, char in enumerate(sorted(list(set(tokens))))}
print(f"토큰 예시: {tokens[:10]}")
print(f"사전 크기: {len(vocab)}")
print(f"ID 변환: {[vocab[c] for c in 'simple']}")
요약
문자 단위 토큰화는 사전은 가볍고 OOV에는 강하지만, 의미 전달력이 떨어지고 연산량이 많다는 특징이 있다.
문자 단위 토큰화는 유연성과 범용성은 뛰어나지만, 시퀀스 길이와 의미 표현 한계로 인해 실제 LLM에서는 잘 사용되지 않는다.
결국 단어 단위의 '의미 정보'와 문자 단위의 '유연성' 사이에서 적절한 타협점을 찾아야 했다. 그 고민의 결과로 탄생하여 현재 GPT, BERT 등에서 표준으로 쓰이는 기술이 바로 서브워드 단위 토큰화이다.
제미나이, 챗지피티 등을 이용 하여 작성
728x90
반응형
'LLM' 카테고리의 다른 글
| 6. WordPiece (0) | 2026.04.14 |
|---|---|
| 5. BPE (Byte Pair Encoding) (0) | 2026.04.13 |
| 4. 토크나이즈 - 서브워드 단위 토큰화(subword based tokenization) (0) | 2026.04.10 |
| 2. 토크나이즈 - 단어 단위 토큰화(Word - based Tokenization) (0) | 2026.04.08 |
| 1. 토큰화(Tokenizer) 이해하기 (0) | 2026.04.07 |