“안녕하세요”를 GPT-4의 토크나이저에 넣으면 몇 개의 토큰이 나올까? 답은 3~5개. 영어의 “Hello”가 1개 토큰인 것과 비교하면 3~5배 비효율적이다.
이것은 단순한 불편함이 아니다. 토큰 수는 곧 비용, 속도, 컨텍스트 윈도우 활용률에 직결된다. 한국어 사용자는 같은 의미를 전달하는 데 더 많은 토큰을 소비하고, 더 많은 비용을 지불하며, 더 짧은 문맥만 활용할 수 있다.
1. BPE 복습: 왜 표준이 되었는가
BPE(Byte Pair Encoding)는 원래 텍스트 압축 알고리즘이다. LLM 토큰화에 적용된 핵심 아이디어:
- 텍스트를 개별 문자(또는 바이트)로 분할
- 가장 빈도 높은 인접 쌍을 반복적으로 병합
- 목표 어휘 크기에 도달하면 중단
"hugs" → 학습 후 → ["hug", "s"]
"unhappiness" → ["un", "happ", "iness"]
장점:
- OOV 문제 해결: 어떤 단어든 서브워드 조합으로 표현 가능
- 언어 독립적: 별도의 언어학적 지식 불필요
- 단순하고 빠름: 구현이 간단하고 학습 속도 빠름
이 “언어 독립성”이 영어에서는 강점이지만, 한국어에서는 약점이 된다.
2. 한국어에서 BPE가 실패하는 이유
2.1. 교착어의 특성
한국어는 교착어(agglutinative language)다. 어간에 조사, 어미가 붙어 의미가 변한다:
먹다 → 먹었다, 먹겠다, 먹었었겠다
학교 → 학교에서, 학교에서부터, 학교에서부터라도
BPE는 통계적 빈도만 보므로, 이 형태소 경계를 무시한다:
BPE 분할: "학교에서" → ["학교에", "서"] (형태소 경계 무시)
올바른 분할: "학교에서" → ["학교", "에서"] (어간 + 조사)
2.2. 토큰 비효율 (높은 Fertility)
Fertility = 단어당 평균 토큰 수. 한국어의 fertility는 영어 대비 2~3배 높다.
| 텍스트 | 영어 토큰 수 | 한국어 토큰 수 | 비율 |
|---|---|---|---|
| “Hello” | 1 | 3~5 (“안녕하세요”) | 3~5× |
| 100단어 문장 | ~130 토큰 | ~300 토큰 | ~2.3× |
이것이 의미하는 것:
- 비용 2~3배: API 과금이 토큰 단위
- 속도 2~3배 느림: 생성 토큰 수에 비례
- 컨텍스트 활용률 1/2~1/3: 같은 128K 윈도우에 담을 수 있는 한국어 텍스트가 적음
2.3. 영어 중심 토크나이저의 문제
GPT-4, Llama 등 영어 중심 모델의 토크나이저는 한국어를 UTF-8 바이트 단위로 처리한다. 한글 한 글자가 3바이트이므로, “가”가 3개 토큰이 될 수 있다.
3. 해결 접근법
3.1. 형태소 분석 + BPE 하이브리드
가장 검증된 접근법. 형태소 분석으로 언어학적 경계를 먼저 잡고, 그 위에 BPE를 적용한다.
원문: "자연어처리를 공부합니다"
→ 형태소 분석: ["자연어", "처리", "를", "공부", "하", "ㅂ니다"]
→ BPE 적용: ["자연어", "처리", "를", "공부", "합니다"]
실험 결과 (Lee et al., 2020):
- KorNLI, KorSTS, NSMC, PAWS-X: 형태소 + BPE가 최적
- KorQuAD (QA): BPE 단독이 최적 (정확한 span 추출에 유리)
도구: Mecab-ko, KoNLPy (Okt, Komoran, Hannanum)
단점: 형태소 분석기에 의존. 분석기의 오류가 토큰화에 전파됨.
3.2. 형태소 인식 서브워드 + 자소 분해
형태소 유형 정보를 BPE 학습 과정에 통합하는 방식 (Jeon et al., 2023):
한글 음절 "한" → 자소 분해 → "ㅎ", "ㅏ", "ㄴ"
- 어휘 크기 축소 (한글 음절 11,172개 → 자소 67개)
- 형태소 유형(어간/어미/조사) 정보를 학습에 반영
- 구문적 태스크(NIKL-CoLA)에서 특히 효과적
3.3. Thunder-Tok: 규칙 기반 전처리 + 분기 엔트로피 (2025, 서울대)
가장 최근의 접근법. 핵심 아이디어:
- 규칙 기반 전처리: 한국어 언어 구조에 맞는 분할 규칙 적용
- 시드 어휘 생성: 언어학적 단위를 닮은 토큰으로 초기 어휘 구성
- 분기 엔트로피 기반 선택: 통계적으로 의미 있는 경계를 자동 탐지
결과:
- BPE 대비 fertility 약 10% 감소
- 추론 속도 ~10% 향상 (토큰 수 감소에 비례)
- 다운스트림 성능 저하 없음
3.4. 어휘 확장 (EEVE 방식)
영어 중심 LLM에 한국어 어휘를 추가하는 접근 (Yoo et al., 2024):
- 기존 영어 토크나이저에 한국어 서브워드 추가
- 새 토큰의 임베딩을 기존 토큰의 가중 평균으로 초기화
- 기존 파라미터는 동결, 새 임베딩만 학습
SOLAR-10.7B, Phi-2에 적용하여 한국어 처리 효율을 대폭 개선.
4. 실무 가이드: 어떤 전략을 써야 하는가
의사결정 트리
한국어 전용 모델을 처음부터 학습?
├── Yes → 형태소 + BPE 하이브리드 또는 Thunder-Tok
└── No
└── 영어 중심 모델을 한국어에 적용?
├── 파인튜닝 가능 → EEVE 방식 어휘 확장
└── API만 사용 → 프롬프트 최적화 (토큰 절약 기법)
RAG/임베딩에서의 한국어 토큰화
한국어 RAG 시스템 구축 시:
- 청킹(Chunking): 형태소 분석 기반 문장 분리가 BPE 기반보다 정확
- 임베딩 모델: BGE-M3 (다국어), KoSimCSE (한국어 특화)
- 검색 품질: 형태소 분석 전처리 → BM25 검색 성능 향상
5. 미래 방향
토크나이저 없는 모델 (Tokenizer-Free)
바이트 단위로 직접 처리하는 모델(ByT5, MegaByte)이 연구되고 있다. 토크나이저의 언어 편향 문제를 근본적으로 해결할 수 있지만, 시퀀스 길이 증가로 인한 효율성 문제가 남아 있다.
한국어 LLM 생태계
- HyperCLOVA X (네이버): 한국어 최적화 토크나이저 자체 개발
- SOLAR (업스테이지): 한국어 어휘 확장 적용
- Gemma 4: 다국어 BPE 기반이지만 한국어 토큰 효율은 여전히 과제
정리
| 접근법 | Fertility | 성능 | 복잡도 | 적합 상황 |
|---|---|---|---|---|
| BPE (raw) | 높음 | 기준 | 낮음 | QA 태스크, 빠른 프로토타이핑 |
| 형태소 + BPE | 중간 | 최고 | 중간 | 한국어 NLU/NMT |
| 자소 분해 | 낮음 | 좋음 | 중간 | 어휘 크기 제약 환경 |
| Thunder-Tok | 낮음 | 좋음 | 높음 | 추론 효율 최적화 |
| 어휘 확장 | 중간 | 좋음 | 중간 | 영어 모델 한국어 적용 |
한국어 토큰화의 핵심 교훈: “언어 독립적”이라는 BPE의 강점이 교착어에서는 약점이 된다. 언어학적 지식을 적절히 주입하면 효율과 성능 모두를 개선할 수 있다.
관련 개념:
참고 자료:
- Lee et al., “An Empirical Study of Tokenization Strategies for Various Korean NLP Tasks” (2020), arXiv:2010.02534
- Jeon et al., “Improving Korean NLP Tasks with Linguistically Informed Subword Tokenization” (2023), arXiv:2311.03928
- Cho et al., “Thunder-Tok: Minimizing Tokens per Word in Tokenizing Korean Texts” (2025), arXiv:2506.15138
- Yoo et al., “EEVE-Korean: Efficient and Effective Vocabulary Expansion” (2024), arXiv:2402.14714