Tokenization (NLP) (KO)
토크나이제이션(Tokenization)은 대형 언어 모델(LLM)의 맥락에서 텍스트 시퀀스를 토큰(token)이라고 불리는 더 작고 관리 가능한 단위로 분할하는 기본적인 전처리 과정입니다. 이렇게 생성된 토큰은 모델이 처리할 수 있는 숫자 식별자로 변환됩니다. 토크나이제이션은 모델의 성능, 효율성, 공정성 및 언어 이해 품질에 직접적인 영향을 미치기 때문에 매우 중요한 첫 번째 단계입니다.
기본 개념
토큰
토큰(token)은 언어 모델이 처리하는 텍스트의 이산적 단위입니다. 선택된 토크나이제이션 방법에 따라 토큰은 다음을 나타낼 수 있습니다:
- 단어 전체 (예: «고양이»).
- 단어의 일부 또는 서브워드 (예: «무-», «-관-», «-심»).
- 개별 문자 (예: «가», «나», «다»).
- 바이트 (byte-level 토크나이제이션의 경우).
각 고유 토큰에는 토크나이저 어휘(vocabulary)에서 고유한 인덱스 번호가 부여됩니다.
토크나이저 어휘
어휘(vocabulary)는 모델이 인식할 수 있는 모든 가능한 토큰의 완전한 집합입니다. 어휘의 크기는 중요한 하이퍼파라미터입니다:
- 큰 어휘는 더 많은 단어를 전체 토큰으로 표현할 수 있어 이해도를 높이고 시퀀스 길이를 줄이지만, 모델 크기와 학습 복잡도가 증가합니다.
- 작은 어휘는 더 compact하지만, 희귀하거나 복잡한 단어를 더 많은 서브워드로 분할해야 하므로 시퀀스가 길어지고 의미 파악이 어려워질 수 있습니다.
어휘 크기는 모델마다 크게 다릅니다: GPT-2의 약 50,000개 토큰에서 GPT-4(100,277개) 및 LLaMA-3(128,000개)와 같은 최신 모델의 100,000개 이상에 이릅니다.
주요 토크나이제이션 방법
토크나이제이션에는 세 가지 주요 세분화 수준이 있습니다.
1. 단어 수준 토크나이제이션 (Word-level)
- 원리: 텍스트를 구분자(공백, 구두점)를 기준으로 개별 단어로 분리합니다.
- 장점: 직관적이며, 토큰 시퀀스가 짧아 계산 부담이 줄어듭니다.
- 단점:
- 미등록 단어(Out-of-Vocabulary, OOV) 문제: 모델이 학습 어휘에 없는 단어, 오탈자, 신조어를 처리할 수 없습니다.
- 큰 어휘 크기: 모든 고유 단어를 저장해야 하므로, 형태론이 풍부한 언어에서 특히 문제가 됩니다.
2. 문자 수준 토크나이제이션 (Character-level)
- 원리: 텍스트를 개별 문자로 분할합니다.
- 장점:
- OOV 문제 없음: 모든 단어를 문자 시퀀스로 표현할 수 있습니다.
- 작은 어휘: 알파벳과 특수 문자 크기로 제한됩니다.
- 단점:
- 긴 시퀀스: 텍스트가 매우 긴 토큰 시퀀스로 변환되어 계산 비용이 크게 증가합니다.
- 의미 손실: 모델이 전체 단어가 아닌 개별 문자를 처리하므로 의미 파악이 어렵습니다.
3. 서브워드 토크나이제이션 (Subword Tokenization)
이것은 이전 방법들의 장점을 결합한 중간적이며 현재 가장 널리 사용되는 접근 방식입니다.
- 원리: 자주 사용되는 단어는 전체 토큰으로 유지하고, 희귀하거나 알 수 없는 단어는 더 작고 의미 있는 부분(서브워드)으로 분할합니다.
- 장점:
- OOV 단어와 형태론적 변형을 효과적으로 처리합니다.
- 어휘 크기를 제어할 수 있습니다.
- 단어의 형태론적 구조를 포착합니다.
- 주요 알고리즘:
- Byte Pair Encoding (BPE): 문자 집합으로 시작하여 가장 자주 등장하는 쌍을 새로운 토큰으로 반복적으로 병합하는 알고리즘입니다. GPT 계열 모델에서 사용됩니다. GPT-2와 RoBERTa에서 사용되는 Byte-level BPE는 단어를 바이트 시퀀스로 처리하여 OOV 문제를 완전히 해결합니다.
- WordPiece: BPE와 유사하지만, 학습 데이터의 가능도(likelihood)를 최대화하는 쌍을 병합 기준으로 선택합니다. BERT 계열 모델에서 사용됩니다.
- Unigram LM: BPE/WordPiece와 달리 대규모 서브워드 집합으로 시작하여, 전체 코퍼스 확률에 가장 적은 영향을 미치는 토큰을 제거하는 방식으로 점차 축소합니다. 이를 통해 하나의 단어에 대해 여러 가능한 토크나이제이션을 생성할 수 있습니다(서브워드 정규화).
- SentencePiece 도구: Google이 개발한 라이브러리로, BPE와 Unigram LM을 구현하며 텍스트를 연속적인 문자 스트림으로 처리합니다. 이는 중국어처럼 명확한 단어 구분자가 없는 언어에도 범용적으로 사용할 수 있게 합니다. LLaMA 및 T5 모델에서 사용됩니다.
멀티모달 LLM에서의 토크나이제이션
텍스트뿐만 아니라 다양한 데이터를 처리하는 멀티모달 모델에서는 토크나이제이션이 다른 유형의 데이터에도 적용됩니다:
- 시각적 토크나이제이션: 이미지를 작은 패치(예: 16x16 픽셀)로 분할한 후, 텍스트 토큰과 유사하게 벡터-토큰으로 변환합니다.
- 오디오 토크나이제이션: 연속적인 오디오 신호를 짧은 음향 단편을 나타내는 이산적 토큰 시퀀스로 변환합니다.
- 통합 접근 방식 (TEAL): 어떤 모달리티의 데이터도 먼저 해당 토크나이저로 토큰화한 후, 그 embedding을 공통 결합 공간에서 처리하는 개념입니다.
문제점 및 한계
토크나이제이션은 중요성에도 불구하고 LLM 작동에서 많은 문제의 원인이 됩니다:
- 비일관성 및 민감성: 입력 데이터의 작은 변화(오탈자, 대소문자, 끝 공백)가 토크나이제이션을 크게 변경하여 모델의 예측 불가능한 동작을 초래할 수 있습니다.
- 다국어 문제: 여러 언어에 대한 단일 어휘는 저자원 언어나 형태론적으로 풍부한 언어에 비효율적이어서 지나치게 긴 토큰 시퀀스를 생성하는 경우가 많습니다.
- 추론에 대한 영향: 숫자(예: «25,000»을 «25», «,», «000»으로 분할)나 기호의 비논리적 분할은 산술 및 기호 처리 작업을 어렵게 합니다.
- 글리치 토큰 (Glitch Tokens): 학습 데이터에서 나온 비정상적이거나 희귀한 토큰(예: Reddit 사용자 이름)으로, 모델의 예측 불가능하거나 유해한 동작을 유발할 수 있습니다.
발전하는 연구 동향과 미래 방향
토크나이제이션 분야의 연구는 다음 방향으로 활발히 진행되고 있습니다:
- 토크나이저 없는 모델: 명시적 토크나이제이션 단계와 관련 문제를 완전히 제거하기 위해 바이트 또는 문자 수준에서 직접 작동하는 모델(CANINE, ByT5) 개발.
- 적응형 및 학습 가능한 토크나이제이션: 언어, 도메인 또는 특정 입력 텍스트에 동적으로 적응하거나 주 모델과 함께 공동 학습되는 토크나이저 개발.
- 인지 과학 기반 접근 방식: 더 의미론적으로 유의미한 토크나이제이션을 위해 인간의 언어 처리에 관한 인지 과학(예: «최소 노력의 원칙»)에서 영감을 받은 방법 개발.
참고 링크
- Hugging Face의 LLM 강좌에서 토크나이제이션 개요
- Mistral AI의 토크나이제이션 문서
참고 문헌
- Schuster, M.; Nakajima, K. (2012). Japanese and Korean Voice Search. PDF.
- Sennrich, R.; Haddow, B.; Birch, A. (2016). Neural Machine Translation of Rare Words with Subword Units. arXiv:1508.07909.
- Kudo, T.; Richardson, J. (2018). SentencePiece: A Simple and Language-Independent Subword Tokenizer and Detokenizer for Neural Text Processing. arXiv:1808.06226.
- Kudo, T. (2018). Subword Regularization: Improving Neural Network Translation Models with Multiple Subword Candidates. arXiv:1804.10959.
- Song, X. et al. (2021). Fast WordPiece Tokenization. ACL-Anthology.
- Mielke, S. J.; Dalmia, S.; Cotterell, R. (2021). A Brief History of Open-Vocabulary Modeling and Tokenization in NLP. arXiv:2112.10508.
- Xue, J. et al. (2022). ByT5: Towards a Token-Free Future with Pre-trained Byte-to-Byte Models. arXiv:2105.13626.
- Clark, J. H. et al. (2022). CANINE: Pre-Training an Efficient Tokenization-Free Encoder for Language Representation. arXiv:2103.06874.
- Limisiewicz, T.; Balhar, J.; Mareček, D. (2023). Tokenization Impacts Multilingual Language Modeling. arXiv:2305.17179.
- Pourmostafa Roshan Sharami, J.; Shterionov, D.; Spronck, P. (2023). A Systematic Analysis of Vocabulary and BPE Settings for Optimal Fine-Tuning of NMT. arXiv:2303.00722.
- Batsuren, K. et al. (2024). Evaluating Subword Tokenization: Alien Subword Composition and OOV Generalization Challenge. arXiv:2404.13292.
- Chai, Y. et al. (2024). Tokenization Falling Short: On Subword Robustness in Large Language Models. arXiv:2406.11687.