형태소 분석
과거의 자연어 처리(NLP) 프레임워크들은 각 언어의 문법적 규칙이나 학술적 형태소 규격에 깊숙이 종속된 인위적 텍스트 분석기를 필수적으로 수반해 왔습니다. 영어의 NLTK나 한국어의 KoNLPy(MeCab, Kkma 등)와 같은 규칙 기반 형태소 분석기는 컴퓨터가 인간의 언어를 형태론적 최소 단위로 이해할 수 있도록 돕는 유일한 관문이었습니다.
그러나 대규모 말뭉치와 범용 다국어 모델이 NLP의 표준으로 자리 잡으면서, 전통적인 형태소 분석기는 심각한 한계에 직면하게 되었습니다. 현대의 거대 언어 모델(LLM)은 이를 뛰어넘어, 사전 언어학적 분석기의 개입을 완전히 배제하고 문자열의 통계적 빈도에만 의존해 단어를 분리해내는 하위 단어 토크나이저(Subword Tokenizer)를 최상위의 핵심 프레임워크로 채택하고 있습니다.
이 장에서는 규칙 기반 형태소 분석의 한계를 조명하고, 하위 단어 토크나이저의 핵심 개념과 함께 Google의 SentencePiece로 촉발된 비지도 학습 혁신Kudo & Richardson (2018), 그리고 최신 LLM으로 이어지는 바이트 단위 기술의 진화 궤적을 심층적으로 살펴봅니다.
1규칙 기반 형태소 분석의 한계와 하위 단어 토크나이저의 등장¶
전통적인 형태소 분석기나 어휘 사전 매핑 도구들은 현대 신경망 모델링 환경에서 다음과 같은 치명적인 공학적 한계를 유발합니다:
미등록 단어(OOV, Out-Of-Vocabulary)의 물리적 병목: 문법 규격에 없는 신조어, 특수 용어, 오탈자, 혹은 이 기종의 소스 코드가 입력될 경우, 형태소 분석기는 단어의 경계를 제대로 파악하지 못해 이를 미등록 단어(OOV)로 처리하거나 문장 구조를 파괴적으로 깨뜨립니다. 신경망 모델 입장에서 OOV는 무의미한
<unk>(Unknown) 토큰으로 치환되어 심각한 정보 손실을 낳습니다.이식성 오버헤드와 연산 지연: 다양한 언어를 동시에 서빙하는 환경에서, 각 언어마다 독립적인 C++ 또는 Java 기반 형태소 분석 라이브러리를 가상머신 및 VRAM 통신 버스 상에 상설 가동해야 하므로, 운영 환경에서 극심한 파이프라인 관리 병목과 오버헤드를 유발합니다.
언어 의존성과 다국어 모델링의 한계: 백여 개 이상의 다국어를 단 하나의 가중치 공간에서 학습하는 현대 LLM 아키텍처에서, 개별 언어 고유의 문법 규칙을 사전에 내장하는 방식은 물리적으로 구현 불가능에 가깝습니다.
이러한 병목을 해소하기 위해 등장한 하위 단어 토크나이저는 텍스트를 가장 기본적인 문자 단위까지 쪼갤 수 있는 유연성을 제공하면서도, 자주 함께 출현하는 문자 시퀀스는 하나의 독립 토큰으로 결합하여 표현 효율을 보존합니다.
즉, 자주 사용되는 단어(예: going)는 통째로 사전에 올리고, 드물게 나타나는 단어(예: biophysicist)는 의미 있는 하위 단어 파편(예: bio + physi + cist)으로 유기적으로 분해하여 OOV 문제를 수학적으로 원천 제거합니다.
2Google SentencePiece: 비지도 학습 기반 언어 독립의 기틀¶
2018년 구글에서 발표한 SentencePiece는 사전 언어 분석기의 개입 없이 오직 말뭉치(Corpus) 전체의 빈도 통계만으로 하위 단어 사전을 비지도 학습시키는 핵심 메커니즘을 제공하여 현대 토크나이저의 표준으로 안착하였습니다Kudo & Richardson (2018).
2.1공백의 특수 문자(_) 치환 기법¶
과거의 토크나이저들은 공백(Whitespace)을 문자열 분리의 절대적 경계막으로 간주하여 1차 어절 분리를 수행한 뒤 하위 기법을 가동했습니다. 그러나 이 방식은 아예 공백이 존재하지 않는 언어(중국어, 일본어 등)에서는 완전히 붕괴되는 약점을 지녔습니다.
SentencePiece는 입력 문장의 모든 공백을 특수한 메타 기호인 _ (U+2581) 기호로 강제 치환하여 공백 자체를 하나의 일반 텍스트 문자로 격하시켜 취급합니다.
원문:
나는 오늘 학교에 갔다.SentencePiece 1차 변환:
_나는_오늘_학교에_갔다.
이 간단한 치환 덕분에 SentencePiece는 특정 언어의 띄어쓰기 유무나 문법적 어미 변화에 구애받지 않고, 단 하나의 언어 독립적인(Language-agnostic) 통계 모델만으로 전 세계 말뭉치를 균일하게 소화할 수 있게 됩니다.
역토큰화(De-tokenization) 역시 쪼개진 파편들을 일렬로 이어붙인 뒤 _ 기호를 원래의 공백으로 단순 치환하는 방식으로 아주 빠르게 완료됩니다.
2.2한국어 교착어의 자연스러운 비지도 수렴¶
SentencePiece는 어떠한 한국어 형태소 분석 규칙을 배우지 않았음에도 불구하고, 대규모 말뭉치를 통한 확률적 엔트로피 극대화 방향에 따라 의미 형태소 수준의 조사 분리를 비지도로 완벽히 구현해 냅니다.
[_도서관] + [에]
[_도서관] + [이]
[_도서관] + [은]말뭉치 전체에서 높은 빈도로 공통 출현하는 의미 실체인 _도서관이라는 핵심 서브워드를 단독 추출하고, 뒤이어 결합하는 격조사들을 확률 통계에 의거해 영리하게 분리해 냄으로써 물리적 사전 공간을 낭비하지 않고 한국어의 교착적 특성을 수치적으로 포착해 수렴시키는 고도의 지능적 메커니즘을 전개합니다.
3최신 LLM의 토크나이저 트렌드: BPE로의 수렴과 어휘 사전의 대팽창¶
현대 생성형 LLM 생태계의 급격한 성장은 토크나이저 부문에서도 획기적인 가속 패러다임의 변화를 동반하였습니다. 최신 글로벌 모델들의 토크나이저를 해부해 보면, 지극히 명확한 공학적 공통 트렌드를 보입니다.
3.1BPE의 기술적 진화와 Byte-level BPE (BBPE)로의 완전 표준화¶
전통적으로 자연어 처리 분야에서 사용되어 온 BPE는 시대에 따라 그 동작 대상과 목적이 완전히 다른 3대 진화 궤적을 겪어왔습니다.
압축 BPE (1994년, Philip Gage): 본래 자연어 처리가 아닌 원시 텍스트 압축을 목적으로 고안되었으며Gage (1994), 문자열 내에서 가장 자주 함께 나타나는 인접 바이트 쌍을 빈도가 낮은 미사용 바이트로 단순 치환하는 방식을 취했습니다.
유니코드 문자 BPE (2015년, Sennrich 등): 기계 번역 서브워드 분절 용도로 본격 도입되었으며Sennrich et al. (2016), 입력 텍스트 내에서 가장 자주 나타나는 문자나 유니코드 문자열 쌍을 단어장 크기에 도달할 때까지 병합했습니다. 그러나 이 방식은 전 세계 다국어 문자가 너무 방대하여 초기 사전자(Alphabet) 크기가 파괴적으로 비대해지고, 학습 시 한 번도 보지 못한 문자가 등장하면 여전히
<unk>에러를 유발하는 고질적 장벽을 가졌습니다.Byte-level BPE (2019년, BBPE - OpenAI GPT-2 등): 현대 LLM들의 절대적 글로벌 표준으로 자리 잡은 기법입니다Wang et al. (2019). 유니코드 문자열을 곧바로 학습에 쓰지 않고, 텍스트 전체를 UTF-8 바이트(Byte) 스트림으로 강제 변환한 뒤 병합을 개시합니다.
이로 인해 초기 사전의 물리적 크기를 전 세계 수많은 자모음 대신 **오직 256개의 원시 바이트(0~255)**로 극단적으로 컴팩트하게 고정할 수 있게 되었으며, 어떠한 생소한 유니코드 입력이나 이모지가 들어와도 256개 바이트 조합으로 100% 온전히 표상할 수 있게 됨으로써 OOV(미등록 단어) 문제를 수학적으로 완벽히 종결시켰습니다.
현재의 최신 상용 및 가중치 공개 모델들은 고속 병렬 처리에 유리하고 OOV 예외가 전무한 Byte-level BPE 계열로 완벽히 수렴하였습니다.
Llama 3: 기존 SentencePiece 라이브러리를 탈피하고, OpenAI의 고속 BPE 구현체인
tiktoken기반 BPE를 채택하여 128K 확장 사전을 운용합니다Meta (2024).GPT-4o: cl100k_base 토크나이저를 전격 개량한
o200k_baseBPE를 탑재하여 다국어 지원력을 극대화하였습니다OpenAI (2024).Qwen 2.5 & DeepSeek-V3: 고성능 다국어 압축률을 목표로 특화 튜닝된 Byte-level BPE 토크나이저를 전격 적용하여 운용 중입니다.
3.2어휘 사전(Vocabulary Size)의 급격한 대팽창¶
과거 Llama 1/2 세대에서 32,000개(32K)에 머물렀던 어휘 사전 크기는, 최신 모델군에 이르러 128,256개(Llama 3, DeepSeek)에서 최대 200,000개(GPT-4o) 수준으로 약 4~6배 가까이 급격하게 확장되었습니다. 이러한 어휘 사전 대팽창은 단순 어휘 저장 공간 확장을 넘어 다음과 같은 중대한 공학적 의점들을 유발합니다:
토큰 압축률 극대화와 문맥 창(Context Window) 보존: 사전의 크기가 커질수록 긴 한국어 단어나 복잡한 소스 코드 구조가 쪼개지지 않고 하나의 완성된 토큰으로 매핑될 확률이 비약적으로 증가합니다. 이는 동일한 정보를 표현하는 데 필요한 전체 토큰 수를 크게 절감시켜, 모델이 활용할 수 있는 제한된 문맥 창 공간을 극도로 아끼는 효과를 전개합니다.
생성 가속과 GPU 연산 비용 절감 (Throughput 향상): LLM의 텍스트 생성은 이전 토큰을 기반으로 다음 토큰을 예측해 내는 순차적 오토레그레시브(Autoregressive) 연산입니다. 토큰 압축 효율이 올라가 동일한 정보량을 생성하는 데 필요한 총 데코딩 스텝 수가 단축되면, 초당 토큰 생성 성능(Throughput)이 비약적으로 증가하고 실제 서빙 인프라의 전력 및 컴퓨팅 비용이 획기적으로 개선됩니다.
한국어 토큰 효율의 서구권 대등화: 기존의 작은 사전을 쓰던 시절에는 영어가 1단어로 처리될 때 한국어는 자소 단위 파편으로 쪼개져 3~4개의 토큰을 소모하는 비효율이 심각했습니다. 그러나 128K 이상의 확장 사전을 탑재한 최신 LLM들은 완성형 한국어 명사 및 대다수의 조사가 단일 토큰으로 정교하게 매핑되어, 한국어 사용자의 입력 과금 비용과 생성 대기 시간이 영어권 국가의 사용 환경과 사실상 대등한 수준으로 향상되는 혁신을 맞이하게 되었습니다.
4Meta의 바이트 단위 혁신: Byte-fallback에서 Tokenizer-free까지¶
Meta AI와 글로벌 오픈소스 생태계는 문장의 물리적 토큰 분절 형태가 초래하는 고질적 오류를 원천 타파하기 위해, 바이트 단위를 기반으로 한 혁신적인 대안 모델들을 지속적으로 선도해 왔습니다.
4.1Byte-fallback BPE (LLaMA 패밀리)¶
Llama 시리즈 등에 구현된 Byte-fallback은 기존 BPE 토크나이저가 학습 도중 본 적 없는 생소한 다국어 유니코드 문자나 특수 이모지를 만났을 때, 이를 에러로 뱉거나 <unk>로 치환하는 대신 **해당 문자를 표현하는 UTF-8 바이트(Byte) 단위(0~255)의 시퀀스로 완전히 강제 분해(Fallback)**하여 표현하는 혁신적 기법입니다.
이 아키텍처 덕분에 모델은 단 한 번도 보지 못한 문자가 입력되더라도 물리적 오류 없이 100% 견고하게 모든 텍스트를 받아들이고 출력할 수 있게 되었습니다.
4.2MEGABYTE: 토크나이저 자체가 제거된 혁신 아키텍처¶
2023년 Meta에서 발표한 MEGABYTE는 사전 토크나이저 처리 과정을 완전히 생략하고 텍스트의 raw byte 시퀀스 자체를 다이렉트로 처리하는 멀티스케일 트랜스포머 아키텍처입니다Yu et al. (2023).
기존에 바이트 단위 입력을 직접 모델에 넣을 때는 문장의 길이가 토큰 대비 수 배 이상 길어져 트랜스포머의 어텐션 연산 복잡도()가 물리적으로 감당 불가능해지는 한계가 존재했습니다. MEGABYTE는 이 병목을 해결하기 위해 입력을 고정 길이 패치(Patch) 단위로 분절하여 이중 트랜스포머 구조로 처리하는 획기적인 hierarchical 설계를 제시했습니다.
MEGABYTE의 글로벌·로컬 이중 트랜스포머 구조
글로벌 트랜스포머 (Global Transformer): 여러 개의 바이트를 하나로 묶은 패치 단위 임베딩을 구성하여, 문장 전체의 거시적인 문맥과 의미론적 흐름을 다룹니다. 이를 통해 전체 은닉 상태의 연산 길이를 획기적으로 축소하여 메모리 부담을 극단적으로 방어합니다.
로컬 트랜스포머 (Local Transformer): 글로벌 트랜스포머가 제공한 문맥 벡터를 전달받아, 개별 패치 내부에 존재하는 바이트들을 병렬적이고 조밀하게 한 자씩 예측해 나갑니다.
이러한 이중 병렬 구조 덕분에 MEGABYTE는 백만 바이트 이상의 초대형 시퀀스를 어떠한 지연이나 토크나이저 오염 없이 처리해 내며, 이후 2024년 말 Meta 연구진에 의해 발표된 **BLT (Byte Latent Transformer)**로 이어지는 토크나이저-프리(Tokenizer-free) 시대의 원천적인 가동 모델로서 NLP 연구 지평에 깊고 묵직한 영감을 불어넣고 있습니다.
- Kudo, T., & Richardson, J. (2018). SentencePiece: A simple and language independent subword tokenizer and detokenizer for Neural Text Processing. Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing: System Demonstrations, 66–71. 10.18653/v1/D18-2012
- Gage, P. (1994). A New Algorithm for Data Compression. The C Users Journal, 12(2), 23–38.
- Sennrich, R., Haddow, B., & Birch, A. (2016). Neural Machine Translation of Rare Words with Subword Units. Proceedings of the 54th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers), 1715–1725. 10.18653/v1/P16-1162
- Wang, C., Cho, K., & Gu, J. (2019). Neural Machine Translation with Byte-Level Subwords. Proceedings of the AAAI Conference on Artificial Intelligence, 33, 683–690. https://ojs.aaai.org/index.php/AAAI/article/view/3895
- Meta, L. T. A. (2024). The Llama 3 Herd of Models. https://arxiv.org/abs/2407.21783
- OpenAI. (2024). Hello GPT-4o. https://openai.com/index/hello-gpt-4o/
- Yu, L., Ghosh, D., Smirnov, D., Gu, J., Manning, C. D., Ranzato, M., & Mohamed, A. (2023). MEGABYTE: Predicting Million-byte Sequences with Multiscale Transformers. https://arxiv.org/abs/2305.07185