“안녕하세요”를 GPT-4의 토크나이저에 넣으면 몇 개의 토큰이 나올까? 답은 3~5개. 영어의 “Hello”가 1개 토큰인 것과 비교하면 3~5배 비효율적이다.

이것은 단순한 불편함이 아니다. 토큰 수는 곧 비용, 속도, 컨텍스트 윈도우 활용률에 직결된다. 한국어 사용자는 같은 의미를 전달하는 데 더 많은 토큰을 소비하고, 더 많은 비용을 지불하며, 더 짧은 문맥만 활용할 수 있다.


1. BPE 복습: 왜 표준이 되었는가

BPE(Byte Pair Encoding)는 원래 텍스트 압축 알고리즘이다. LLM 토큰화에 적용된 핵심 아이디어:

  1. 텍스트를 개별 문자(또는 바이트)로 분할
  2. 가장 빈도 높은 인접 쌍을 반복적으로 병합
  3. 목표 어휘 크기에 도달하면 중단
"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, 서울대)

가장 최근의 접근법. 핵심 아이디어:

  1. 규칙 기반 전처리: 한국어 언어 구조에 맞는 분할 규칙 적용
  2. 시드 어휘 생성: 언어학적 단위를 닮은 토큰으로 초기 어휘 구성
  3. 분기 엔트로피 기반 선택: 통계적으로 의미 있는 경계를 자동 탐지

결과:

  • BPE 대비 fertility 약 10% 감소
  • 추론 속도 ~10% 향상 (토큰 수 감소에 비례)
  • 다운스트림 성능 저하 없음

3.4. 어휘 확장 (EEVE 방식)

영어 중심 LLM에 한국어 어휘를 추가하는 접근 (Yoo et al., 2024):

  1. 기존 영어 토크나이저에 한국어 서브워드 추가
  2. 새 토큰의 임베딩을 기존 토큰의 가중 평균으로 초기화
  3. 기존 파라미터는 동결, 새 임베딩만 학습

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