어휘 128,000개가 하나도 다르지 않았습니다. 국산 LLM의 한국어 토크나이저가 정말 한국어에 맞춰져 있는지 확인하려고, 같은 문서를 토크나이저 12종에 그대로 넣어 재본 결과입니다.
결론부터 적으면 통념은 절반만 맞았습니다. 국산 신형 셋은 한글 음절당 0.586에서 0.607 토큰으로 상위를 독차지했습니다. 그런데 국산으로 유통되는 다른 둘은 base 어휘 집합이 Llama 3, Mistral과 완전히 같았습니다. 토큰 집합도, 각 토큰의 번호도, 정렬해서 구한 해시값도 같았습니다.

한국어 토크나이저를 무엇으로, 어떻게 쟀나
측정 코퍼스는 유엔인권최고대표사무소가 발행한 세계인권선언 공식 PDF의 한국어판과 영어판입니다. 같은 기관이 같은 문서를 두 언어로 낸 것이라 번역 등가성 문제가 가장 작습니다. 추출 결과 한국어판은 정규화 후 4,813자에 한글 음절 3,344개, 영어판은 10,760자였고 양쪽 모두 30개 조항이 온전히 확인됐습니다.
대표 지표는 한글 음절당 토큰수입니다. 분모를 한글 음절 3,344개로 고정했고, 공백과 문장부호를 포함한 전체 문자당 토큰수는 별도 열로 분리했습니다. 예를 들어 cl100k_base는 한글 음절당 1.429 토큰이지만 전체 문자당으로 재면 0.993 토큰입니다. 같은 글, 같은 토크나이저인데 분모만 바꾸면 값이 이렇게 달라지므로 둘을 섞어 쓰면 그 자체로 오보가 됩니다. 인코딩은 전부 로컬에서 돌렸고, 토크나이저 파일은 인증 없이 공개된 것만 받았습니다. 게이티드(내려받으려면 별도 승인이 필요한 상태)로 막힌 모델은 측정 대상에서 뺐습니다.

추출 과정에서 함정 두 개를 만났습니다. 둘 다 그냥 넘어갔으면 표가 조용히 틀어졌을 종류입니다.
첫째, 유엔 영문 원본은 1조만 로마숫자로 적혀 있고 2조부터 30조까지는 아라비아 숫자입니다. 숫자만 찾는 규칙을 쓰면 1조가 빠져 조항 대응이 29쌍으로 줄어듭니다. 실제로 1차 실행에서 이 누락이 났고 검증 게이트가 잡아냈습니다. 둘째, 한글 PDF는 제목이 자간 분리로 추출되는데 이걸 되돌리는 규칙을 세게 걸면 “양도할 수 없는”이 “양도할수없는”으로 뭉개집니다.
그래서 단음절이 네 개 이상 연속될 때만 붙이도록 임계를 올리고, 한글 음절 수가 정규화 전후로 변하지 않는지를 사후에 검산했습니다. 원문판과 정규화판 수치를 둘 다 산출한 것도 같은 이유입니다.
12종 순위, 상위 셋은 전부 국산 신형
12종을 같은 코퍼스로 나란히 세운 결과입니다. 숫자가 작을수록 같은 한국어를 적은 토큰으로 처리한다는 뜻입니다. 맨 오른쪽 열은 100만 토큰 창에 한글이 몇 자나 들어가는지를 환산한 값입니다.
| 토크나이저 | 어휘 크기 | 한글 음절당 토큰 | KO/EN 토큰비 | 1M 창 실효 한글 |
|---|---|---|---|---|
| K-EXAONE-236B-A23B | 153,600 | 0.586 | 1.028 | 1,706,993자 |
| A.X-4.0 | 102,400 | 0.589 | 0.813 | 1,697,461자 |
| kanana-2-30b-a3b | 128,256 | 0.607 | 0.907 | 1,647,290자 |
| Mistral-Small-24B | 131,072 | 0.783 | 1.136 | 1,277,310자 |
| EXAONE-4.0-32B | 102,400 | 0.784 | 1.116 | 1,275,848자 |
| o200k_base (GPT-4o) | 200,019 | 0.860 | 1.275 | 1,162,726자 |
| kanana-1.5-8b | 128,259 | 0.873 | 1.292 | 1,145,990자 |
| Llama-3.1-8B | 128,256 | 0.873 | 1.292 | 1,145,990자 |
| Qwen3-8B | 151,669 | 0.914 | 1.341 | 1,093,525자 |
| DeepSeek-V3 | 128,815 | 0.951 | 1.419 | 1,051,903자 |
| cl100k_base (GPT-4) | 100,277 | 1.429 | 2.116 | 699,581자 |
| SOLAR-10.7B-v1.0 | 32,000 | 1.520 | 2.009 | 658,008자 |
2026-08-03 KST에 허깅페이스 main 브랜치에서 수집했습니다. 표의 값은 정규화판이고, 원문판으로 재면 상위 셋의 순서가 kanana-2·K-EXAONE·A.X-4.0으로 바뀝니다. 맨 오른쪽 열은 이 코퍼스의 공백·문장부호 비율(한글 3,344자 / 전체 4,813자)을 그대로 가정한 환산값입니다. SOLAR-10.7B-v1.0·kanana-1.5-8b·EXAONE-4.0-32B는 국산 이전 세대입니다. 벤더가 토크나이저를 교체하면 값이 달라집니다.
상위 셋이 전부 국산 신형입니다. K-EXAONE이 0.586, A.X-4.0이 0.589, kanana-2가 0.607로 붙어 있습니다. 100만 토큰 창에 들어가는 한글로 환산하면 K-EXAONE이 약 170만 자, cl100k_base가 약 70만 자입니다. 같은 창인데 2.4배 차이가 납니다.
여기까지는 통념대로입니다.
kanana-1.5의 어휘는 Llama 3와 해시까지 같았다
문제는 그다음 줄이었습니다. kanana-1.5와 Llama-3.1의 값이 0.873으로 소수점 셋째 자리까지 같았습니다. 우연이라기엔 자리가 너무 많이 맞아서 어휘를 직접 열어 대조했습니다.

base 어휘(특수 제어 토큰을 뺀 본체 어휘) 128,000개를 집합으로 놓고 양방향 차집합을 구했더니 둘 다 0개였습니다. 공유 토큰 128,000개는 번호까지 전부 일치했습니다. 정렬한 토큰 집합의 sha256도 같았습니다. 총 어휘가 128,259 대 128,256으로 갈리는데, 그 차이는 특수 제어 토큰뿐입니다. kanana 쪽에 전용 4개, Llama 쪽에 전용 1개가 있습니다.
kanana-1.5 모델카드에는 base model 표기가 없습니다. 토크나이저를 새로 학습했는지, 어휘 크기가 얼마인지에 대한 서술도 없습니다. 허깅페이스 태그에 llama가 달려 있을 뿐입니다. 이 글이 더하는 것은 그 태그가 어디까지 사실인지를 어휘 단위로 확정한 부분입니다.
분석
같은 회사가 세대를 건너며 어휘를 실제로 갈아치웠다는 것이 이 대조의 두 번째 결과입니다. kanana-2는 모델카드가 새 토크나이저를 학습했다고 밝혔고, 어휘 대조도 그 서술과 맞습니다.
- kanana-1.5의 base 어휘는 Llama-3.1과 차집합 0개, 번호 일치, 해시 동일로 완전히 같습니다.
- kanana-2는 Llama-3.1과 각각 전용 토큰을 60,848개씩 갖습니다. 어휘 크기는 128,256으로 같은데 base 어휘 128,000개 중 60,848개, 그러니까 47.5%가 서로 다릅니다.
- 같은 코퍼스로 잰 한글 음절당 토큰수는 0.873에서 0.607로 내려갑니다. 어휘를 새로 학습한 효과가 숫자로 남습니다.
SOLAR는 Mistral 32k, 그런데 A.X-4.0은 정반대였다
같은 검정을 SOLAR-10.7B-v1.0에도 걸었습니다. base 어휘 32,000개가 Mistral-7B-v0.1과 차집합 0개, 번호 일치, 해시 동일로 완전히 같았습니다. 다만 이쪽은 업스테이지가 모델카드에 Mistral 7B 가중치를 확장 계층에 통합했다고 이미 밝혀 둔 사안입니다. 새로운 것은 출처가 아니라 그 선택이 한국어에 남긴 결과입니다.
SOLAR의 한글 음절당 토큰수는 1.520으로 12종 중 가장 컸습니다. OpenAI가 GPT-4 시절에 쓰던 cl100k_base의 1.429보다도 큽니다. 어휘가 32,000개뿐이라 한글이 잘게 부서지는 것이 그대로 숫자에 남습니다.
반대 방향 사례도 나왔습니다. A.X-4.0은 모델카드가 Qwen2.5 기반이라고 밝힌 모델입니다. 그런데 어휘를 대조해 보니 Qwen2.5와 겹치는 토큰이 38,628개뿐이고, 그 겹치는 토큰조차 번호가 하나도 맞지 않았습니다. A.X 전용이 63,772개, Qwen 전용이 113,015개입니다. 베이스 모델은 남의 것을 썼지만 한국어를 세는 자는 새로 만들었다는 뜻입니다.
대조군으로 Qwen3-8B와 Qwen2.5-7B를 같이 재봤습니다. 이쪽은 세대가 바뀌었는데도 base 어휘 151,643개가 차집합 0개로 완전히 동일했습니다. 총 어휘는 특수 토큰 때문에 151,669 대 151,665입니다.
베이스 모델에서 이어 학습하면 토크나이저를 함께 승계하는 것이 오픈웨이트의 통상적인 방식이고, 두 모델 모두 라이선스를 어긴 것이 아닙니다. 정리하면 라벨과 실제가 어긋나는 방향이 두 사례에서 정반대입니다. 한쪽은 국산 라벨을 달고 남의 어휘를 그대로 쓰고, 다른 쪽은 남의 베이스를 쓴다고 밝히면서 어휘는 직접 만들었습니다. 지난번에 오픈웨이트 라이선스를 전수 확인했을 때도 같은 종류의 어긋남이 나왔습니다. 이름표는 안쪽을 보증하지 않습니다.
벤더가 공표한 수치를 그대로 검산했다
이 측정의 쓸모는 벤더가 공표한 숫자를 같은 자로 다시 재볼 수 있다는 데 있습니다. 세 회사 모두 어떤 코퍼스로 무엇에 견줘 잰 값인지를 밝히지 않아 원래는 서로 비교가 되지 않습니다.
| 벤더 공식 주장 | 같은 코퍼스로 재측정 |
|---|---|
| 카카오, kanana-2 한국어 “improvement of over 30%” | kanana-1.5 0.8726에서 kanana-2 0.6071로 30.4% 감소 (기준선 미명시, 자사 이전 세대로 잡음) |
| 카카오, kanana-2 어휘 크기 128,256 | 128,256 정확히 일치 |
| SKT, A.X-4.0이 GPT-4o 대비 약 33% 절감 | o200k_base 0.8600 대비 0.5891로 31.5% 감소 |
| LG, K-EXAONE 어휘 크기 153,600 | 153,600 정확히 일치 |
| LG, 6개 언어 어휘 재설계로 토큰 효율 “~30%” 개선 (한국어 단독 수치 아님, 기준선 미명시) | 자사 EXAONE-4.0 0.7838 대비 0.5858로 25.3% 감소 |
세 주장 모두 방향이 맞았고, 어휘 크기 두 건은 자릿수까지 일치했습니다. 절감률에서는 SKT 주장이 실측보다 1.5%포인트 높게 잡혀 있었습니다. LG의 30% 안팎 효율 주장은 비교 기준선이 명시돼 있지 않아, 자사 이전 세대인 EXAONE-4.0을 기준으로 잡았을 때 25.3%가 나옵니다. 세 수치 모두 정규화판 기준입니다. 원문판으로 재면 카카오 29.4%, SKT 27.1%, LG 25.3%가 나오고, 카카오의 30% 이상 주장은 어느 판으로 재느냐에 따라 성립과 미달이 갈립니다.
한글이 영어보다 토큰을 덜 먹는 지점, 그리고 흔들림
같은 의미의 문서를 한국어판과 영어판으로 각각 재면 토큰 비율이 나옵니다. A.X-4.0에서는 이 값이 0.813이었습니다. 한국어판이 1,970 토큰, 영어판이 2,423 토큰입니다. 한글이 영어보다 토큰을 덜 먹는 구간이 실제로 존재한다는 뜻입니다.
다만 이 역전을 토크나이저만의 공으로 돌리면 틀립니다. 같은 내용을 한국어는 4,813자, 영어는 10,760자로 적습니다. 한글의 문자 밀도와 토크나이저 효율이 겹쳐서 나온 값입니다.
그리고 이 비율은 단일 값으로 인용하면 안 됩니다. 30개 조항을 각각 잘라 따로 재봤더니 토크나이저마다 최댓값이 최솟값보다 49.0%에서 67.6%까지 컸습니다. A.X-4.0은 중앙값 0.889에 범위가 0.694에서 1.075, cl100k_base는 중앙값 2.220에 범위가 1.780에서 2.652입니다. 짧은 문장 하나를 골라 재고 한국어는 영어의 몇 배라고 단정하면, 고른 문장에 따라 답이 바뀝니다. 검색 상위 글들이 서로 다른 배수를 말하는 이유가 여기 있습니다.
AI 컴퓨트 비용의 대분기: 만드는 값은 폭증, 쓰는 값은 폭락한다
이 측정이 말하지 않는 것
표에 없는 것을 적어 둡니다. 구글 gemma-3-27b-it, 네이버 HyperCLOVAX-SEED-Text-Instruct-1.5B, 업스테이지 solar-pro2는 인증을 요구해 표에 넣지 못했습니다. Claude나 Gemini 같은 상용 비공개 모델도 대상 밖입니다. 메타 Llama 3.1도 공식 저장소는 막혀 있어, 서로 다른 미러 둘을 해시까지 대조해 base 어휘 128,000개가 같은 값임을 확인한 뒤 미러로 측정했습니다.
어휘 크기는 증거가 되지 못합니다. kanana-2와 Llama-3.1은 어휘 크기가 128,256으로 똑같은데, 전용 토큰이 각각 60,848개씩 있습니다. 크기가 같다고 같은 어휘가 아니고, 크기가 다르다고 다른 계보인 것도 아닙니다.
토크나이저 효율은 모델 성능이 아닙니다. 텍스트를 어떻게 쪼개는지에 대한 이야기이고, 쪼갠 다음에 무엇을 하는지는 완전히 다른 층의 문제입니다. 허깅페이스 다운로드 순위를 쟀을 때와 마찬가지로, 이 숫자도 한 층에 대한 사실입니다.
다음 세대에서 확인할 지점은 kanana가 1.5에서 2로 건너뛴 그 구간입니다. 같은 회사가 남의 어휘를 쓰다가 자기 어휘를 새로 학습하면 한글 음절당 토큰수가 0.873에서 0.607로 내려갑니다. 업스테이지의 solar-pro2와 네이버의 HyperCLOVAX-SEED가 게이트를 열면 같은 자로 잴 수 있습니다. 그때 국산 라벨과 실제 어휘가 어느 쪽으로 갈리는지가 이 표의 다음 줄이 됩니다.
참고 자료
- Hugging Face, skt/A.X-4.0 모델카드 (2026-08-03 확인) – Qwen2.5 기반 명시, GPT-4o 대비 약 33% 토큰 절감 주장, 컨텍스트 131,072
- Hugging Face, kakaocorp/kanana-2-30b-a3b-instruct 모델카드 (2026-08-03 확인) – 새 토크나이저 학습 명시, 어휘 128,256, 한국어 30% 이상 개선 주장
- Hugging Face, kakaocorp/kanana-1.5-8b-instruct-2505 모델카드 (2026-08-03 확인) – base model 표기 없음, 라이선스 apache-2.0
- Hugging Face, LGAI-EXAONE/K-EXAONE-236B-A23B 모델카드 (2026-08-03 확인) – SuperBPE 150k 어휘 재설계, 어휘 크기 153,600
- Hugging Face, upstage/SOLAR-10.7B-v1.0 모델카드 (2026-08-03 확인) – Mistral 7B 가중치 통합 명시, depth up-scaling
- GitHub, openai/tiktoken model.py (2026-08-03 확인) – GPT-4o는 o200k_base, GPT-4와 GPT-3.5-turbo는 cl100k_base 매핑
- OHCHR, 세계인권선언 한국어판 공식 PDF (2026-08-03 확인) – 측정 코퍼스, 정규화 후 4,813자에 한글 음절 3,344개
- OHCHR, 세계인권선언 영어판 공식 PDF (2026-08-03 확인) – 측정 코퍼스, 정규화 후 10,760자, 1조만 로마숫자 표기
- Hugging Face, Qwen/Qwen2.5-7B-Instruct (2026-08-03 확인) – A.X-4.0 및 Qwen3 어휘 대조군
- Hugging Face, mistralai/Mistral-7B-v0.1 (2026-08-03 확인) – SOLAR-10.7B 어휘 대조군, base 어휘 32,000
Jugger | JuggerInsight 운영자 · 백엔드 엔지니어
2021년 6월부터 솔루션 서비스 소프트웨어 도메인에서 백엔드 엔지니어로 재직 중입니다. 시스템 설계·API 구현·운영 환경의 실무 시각을 AI·IT·클라우드 인프라 관련 글에 그대로 반영합니다.
블록체인·매크로 경제 분야는 직접적 직업 경험은 없으나, SEC 공시·백서·기관 리포트·정부 통계 등 1차 자료 인용을 기반으로 분석합니다. 추정과 사실을 본문에서 명확히 구분하고, 검증되지 않은 정보는 게재하지 않는 것을 원칙으로 합니다. 모든 글의 1차 출처 링크는 본문 하단 References에 전수 공개합니다.
콘텐츠 초안 단계에서 AI 모델을 보조 도구로 활용하나, 모든 글은 운영자가 검토·수정·검증한 뒤 발행합니다. 오류 발견 시 본문에 정정 표시를 남깁니다.
문의: jjunggulee@gmail.com