왜 한국어는 토크나이저에서 손해를 볼까
LLM 비용은 모델 크기만으로 결정되지 않는다. 같은 뜻을 몇 개의 토큰으로 쪼개는가, 그 기본 설계가 한국어에서는 훨씬 더 중요하다.
핵심 요약
- 카카오는
2026년 5월 7일컨퍼런스콜에서 자체카나나 토크나이저로 학습 비용 최대 40% 절감, 추론 속도 최대 60% 개선을 확인했다고 밝혔다. - 이 발언이 뜻하는 핵심은 단순하다. 한국어는 범용 토크나이저에서 비효율적일 가능성이 높다는 것이다.
- 이유는 한국어가 교착어이고, 조사·어미·활용 변화가 많아 영어 중심 subword 규칙이 의미 단위를 잘 보존하지 못하기 때문이다.
- 개선하려면 형태소 경계, 자모 구조, 과분절 방지 같은 한국어 구조를 반영한 tokenizer 설계가 필요하다.
1. 카카오 발표가 던진 질문
2026년 5월 7일 카카오 1분기 실적발표 컨퍼런스콜에서 나온 문장은 꽤 강했다.
- 한국어는 범용 토크나이저를 쓰면 같은 의미를 표현할 때 영어보다
1.5배~3배정도 더 많은 토큰을 쓸 수 있다. - 카카오는 자체
카나나 토크나이저를 통해 기존 대비 최대 40% 수준의 학습 비용 절감, 최대 60% 수준의 추론 속도 개선을 확인했다고 밝혔다.
이 발표를 듣고 가장 먼저 떠올려야 할 질문은 이것이다.
왜 한국어는 같은 의미를 더 많은 토큰으로 써야 할까?
이 질문을 이해하면, 한국어 LLM에서 왜 tokenizer가 단순 전처리기가 아니라 비용 구조를 좌우하는 핵심 기술인지 보이기 시작한다.
2. 토크나이저는 왜 중요한가
LLM은 문장을 그대로 읽지 않는다. 먼저 문장을 잘게 쪼개 토큰(token) 으로 바꾼 뒤 처리한다.
예를 들어 사람이 보기에는 한 문장이라도 모델 입장에서는:
- 몇 개 토큰으로 나뉘는지
- 어디서 끊기는지
- 어떤 단위가 자주 반복되는지
에 따라 학습 효율과 추론 속도가 달라진다.
결국 tokenizer는 "문장을 어떻게 나누느냐"의 문제이자,
- 학습에서는 총 토큰량
- 추론에서는 입력 길이와 응답 지연
- 서비스에서는 비용과 처리량
을 바꾸는 문제다.
영어에서는 이 구조가 비교적 잘 맞아 떨어진다. 하지만 한국어는 다르다.
3. 왜 한국어는 비효율적인가
3.1 한국어는 교착어다
영어는 단어 경계가 비교적 분명하다. 반면 한국어는 어근 뒤에 조사와 어미가 연속적으로 붙는다.
예를 들어:
가다갑니다갔습니다가겠네요
는 모두 같은 어근에서 출발하지만 표면형이 크게 달라진다.
영어 중심 tokenizer는 이런 변형을 하나의 의미 계열로 안정적으로 묶기보다, 자주 잘게 쪼개진 subword 조각으로 처리한다.
그 결과 한국어는 같은 뜻을 전달해도 토큰 수가 더 늘기 쉽다.
3.2 조사와 어미가 의미를 품고 있지만 단어처럼 취급되지 않는다
한국어에서 조사와 어미는 문법 정보 덩어리다.
은/는,이/가,을/를-다,-요,-습니다,-겠,-었
이런 요소들은 의미 없는 찌꺼기가 아니라 문장의 관계, 시제, 높임, 화행을 결정한다.
그런데 범용 BPE는 이런 경계를 언어학적으로 이해하지 않는다. 자주 등장하는 문자열 단위로만 합치고 쪼개기 때문에, 한국어의 핵심 문법 단위가 어색하게 분절되기 쉽다.
3.3 한국어는 과분절(over-segmentation)에 취약하다
최근 연구들은 한국어에서 BPE가 지나치게 세분화되는 경향을 반복해서 지적한다.
문제를 단순화하면 이렇다.
- 너무 크게 묶으면 vocabulary가 커진다.
- 너무 잘게 자르면 sequence가 길어진다.
한국어는 형태 변화가 많아서 두 문제를 동시에 피하기 어렵다. 그래서 범용 tokenizer를 그대로 쓰면 토큰 수는 늘고, 의미 경계는 흐려지는 손해를 보기 쉽다.
3.4 한글은 음절 문자라서 문자 단위 처리도 애매하다
한글은 알파벳처럼 완전히 선형적인 문자도 아니고, 중국어처럼 완전한 표의문자도 아니다. 자모가 결합된 음절 블록 문자다.
이 특성 때문에:
- 음절 단위로 보면 vocabulary 압박이 생기고
- 자모 단위로 보면 sequence가 길어질 수 있다
는 트레이드오프가 생긴다.
즉 한국어 tokenizer는 단순히 "자르기만 잘하면 되는" 문제가 아니라, 어느 수준에서 자를 것인가를 정교하게 설계해야 한다.
4. 그래서 실제로 어떤 손해가 발생하나
4.1 학습 비용이 커진다
같은 문서라도 토큰 수가 30%, 40%, 50% 더 길어지면 그만큼 더 많은 GPU 시간이 든다.
사전학습, continual pretraining, fine-tuning 모두 결국 토큰을 처리하는 일이라서, 한국어 tokenizer 비효율은 바로 비용으로 연결된다.
4.2 긴 문서를 덜 담는다
모델 context window가 8K라고 해도, 한국어가 영어보다 더 많은 토큰을 쓰면 실제로 담을 수 있는 문서 길이는 짧아진다.
요약, RAG, 회의록 분석, 긴 고객 문의 처리에서 체감 차이가 커지는 이유다.
4.3 추론이 느려진다
입력을 읽어들이는 prefill 단계는 토큰 길이에 민감하다.
토큰 수가 많으면 KV cache도 커지고, 응답 시작까지 기다리는 시간도 늘어난다.
즉 tokenizer 문제는 "표현의 미학"이 아니라 지연시간과 서버 원가 문제다.
5. 그럼 어떻게 효율적으로 만들 수 있나
이제 핵심은 두 번째 질문이다.
한국어 tokenizer를 더 효율적으로 만들려면 무엇을 해야 할까?
답은 대체로 한 방향으로 모인다.
5.1 형태소 경계를 더 잘 반영해야 한다
한국어에서는 단어 자체보다 어근 + 조사/어미 구조가 중요하다.
그래서 먼저 형태소에 가깝게 나누고, 그 위에서 subword를 만드는 방식이 유리하다.
실제로 An Empirical Study of Tokenization Strategies for Various Korean NLP Tasks는 한국어에서 형태소 분절 + BPE 하이브리드가 여러 작업에서 가장 좋은 결과를 냈다고 보고했다.
핵심은 단순하다.
- 영어처럼 표면 문자열만 보고 자르지 말고
- 한국어 문법 구조를 반영하라
는 것이다.
5.2 과분절을 줄여야 한다
한국어 tokenizer는 너무 잘게 쪼개지지 않도록 설계할 필요가 있다.
최근 Length-aware BPE 계열 연구도 이 문제를 직접 겨냥한다.
좋은 tokenizer는 무조건 잘게 자르는 것이 아니라:
- 의미를 보존하면서
- 평균 token length를 늘리고
- 총 token 수를 줄이는
방향으로 가야 한다.
5.3 자모/서브캐릭터 구조를 활용할 수 있다
한글은 자모 분해가 가능하므로, 음절 단위와 자모 단위를 잘 혼합하면 vocabulary budget을 효율적으로 쓸 수 있다.
Jamo Pair Encoding은 바로 이 지점을 파고든다.
즉 한국어 tokenizer 최적화는 "영어 규칙을 조금 튜닝"하는 수준이 아니라, 한글 문자 구조 자체를 활용하는 설계까지 포함한다.
5.4 규칙 기반 pre-tokenization도 현실적인 해법이다
Thunder-Tok은 한국어 구조에 맞춘 규칙 기반 pre-tokenization으로 token fertility를 약 10% 줄였다고 보고했다.
중요한 건 이 접근이 거창한 언어이론보다 실용적이라는 점이다.
- 형태소와 비슷한 경계를 미리 잡아 주고
- seed vocabulary를 한국어다운 단위로 구성하고
- 너무 잘게 쪼개지지 않게 제어
하면 실제 추론 속도 개선으로 연결될 수 있다.
5.5 영어 성능을 유지해야 한다
한국어만 잘하고 영어가 무너지면 실제 서비스 모델로는 쓰기 어렵다.
카카오 발표에서도 이 점을 같이 강조했다. 영어 처리 성능을 유지하면서도 한국어 압축 효율을 높여야 한다는 것이다.
결국 좋은 한국어 tokenizer는:
- 한국어에서 토큰 수를 줄이고
- 의미 경계를 보존하며
- 영어까지 크게 해치지 않는
균형 설계여야 한다.
6. 이 이슈에서 진짜 배워야 할 점
카카오 발표의 핵심은 단순히 "우리 tokenizer 좋다"가 아니다.
그보다 더 중요한 메시지는 이것이다.
한국어 AI의 경쟁력은 모델 크기 이전에, 한국어를 얼마나 효율적으로 쪼개느냐에서 갈릴 수 있다.
그동안 LLM 논의는 보통:
- 어떤 모델이 더 똑똑한가
- 파라미터가 몇 개인가
- benchmark 점수가 어떤가
에 집중됐다.
하지만 한국어 서비스에서는 질문이 하나 더 필요하다.
이 모델은 한국어를 몇 개의 토큰으로 읽는가?
이 질문을 하지 않으면, 같은 성능처럼 보여도 실제 비용 구조는 완전히 달라질 수 있다.
7. 정리
왜 한국어는 tokenizer에서 비효율적인가?
- 교착어라 형태 변화가 많고
- 조사와 어미가 촘촘하게 붙고
- 범용 BPE가 의미 경계를 잘 보존하지 못하며
- 한글의 음절/자모 구조 때문에 tokenization 난도가 높기 때문이다.
그럼 효율적으로 하려면 어떻게 해야 하나?
- 형태소 경계를 반영하고
- 과분절을 줄이고
- 자모/서브캐릭터 구조를 활용하고
- 한국어 기준 token 수와 latency를 직접 최적화해야 한다.
결국 tokenizer는 한국어 LLM의 부수 전처리가 아니다.
그것은 학습 비용, 추론 속도, 서비스 원가를 동시에 결정하는 핵심 인프라다.
카카오의 최근 발표는 그 사실을 아주 직접적으로 드러낸 사례라고 볼 수 있다.
참고 자료
- 카카오 관련 기사,
2026-05-07
https://v.daum.net/v/ZOrUkVkLr5 - Jamo Pair Encoding (LREC 2020)
https://aclanthology.org/2020.lrec-1.429/ - An Empirical Study of Tokenization Strategies for Various Korean NLP Tasks (AACL 2020)
https://aclanthology.org/2020.aacl-main.17/ - Length-aware Byte Pair Encoding for Mitigating Over-segmentation in Korean Machine Translation (ACL Findings 2024)
https://aclanthology.org/2024.findings-acl.135/ - Thunder-Tok (arXiv 2025)
https://arxiv.org/abs/2506.15138 - Korean Penalty of Large Language Models Derived by the Tokenizer (2024 PDF)
https://hiai.korea.ac.kr/wp-content/uploads/2024/12/Korean-Penalty-of-Large-Language-Models-Derived-by-the-Tokenizer_ICICPE_2024.pdf
댓글
댓글 쓰기