본문 바로가기
← 목록으로

OpenAI GPT-5 토크나이저 역분석: 20만 개 토큰이 드러내는 AEO/GEO의 비밀

metehan.ai조회수 1116일 전

핵심

OpenAI의 공개 토크나이저(tiktoken) 파일을 역분석해 GPT-5 시대의 텍스트 인코딩 메커니즘을 파악했다. 20만 개 토큰 데이터로부터 모델의 훈련 데이터 구성, 아키텍처 우선순위, 언어별 효율성 격차를 도출했으며, AI 검색 최적화(AEO/GEO) 시대 콘텐츠 작성 전략을 제시한다.

방법론과 한계

분석의 한계

토크나이저가 중요한 이유

토크나이저는 모델이 텍스트를 이해하기 전에 거쳐야 하는 압축 계층. 이 계층의 모든 설계 결정이 비용, 정확도, 다국어 성능, 할루시네이션 발생률에 영향을 미침.

OpenAI의 tiktoken 라이브러리는 완전히 오픈소스: 어휘 파일이 Azure에서 무결성 검증용 SHA-256 해시와 함께 호스팅되며, 누구나 GPT-5가 사용하는 20만 개 토큰 전체를 다운로드해 검사할 수 있음. 웹 인터페이스로도 접근 가능(https://platform.openai.com/tokenizer).

다운로드 및 추출 데이터

생성된 파일

| 파일명 | 크기 | 설명 | |--------|------|------| | o200k_base_raw.tiktoken | 3.6 MB | openaipublic.blob.core.windows.net의 원본 어휘 파일 | | o200k_base_all_tokens.jsonl | 36.4 MB | 모든 20만 개 토큰(ID, base64, 16진수, UTF-8, 바이트 길이) | | o200k_base_all_tokens.csv | 12.0 MB | 스프레드시트 형식의 동일 데이터 | | o200k_base_config.json | 1.6 KB | 정규식, 특수 토큰, 모델 매핑 전체 설정 | | o200k_base_stats.json | 2.1 KB | 어휘 통계 및 유니코드 스크립트 분포 |

출처 URL: https://openaipublic.blob.core.windows.net/encodings/o200k_base.tiktoken SHA-256: 446a9538cb6c348e3516120d7c08b09f57c36495e2acfffe59a5bf8b0cfb1a2d

파일 형식

각 행에 base64 인코딩된 토큰과 정수 순위(공백 구분). 순위는 동시에 토큰 ID와 BPE 병합 우선순위 역할:

주의사항: 순위는 정확한 빈도와 같지 않음. 병합 연산의 순서이지 보장된 글로벌 빈도 테이블이 아님. 토큰 ID/순위가 모든 토크나이저에서 빈도를 반영하지는 않음. 여러 토크나이저가 ID를 재정렬하거나 특수 토큰을 추가하거나 순위 점수가 다른 의미를 가지는 다른 알고리즘 사용.

예: ChatGPT에 기본 질문을 하고 반환된 토큰 ID를 검토하면, emdash(—)는 토큰 ID 2733으로 실제로 어휘에 포함됨.

토크나이저 진화: 5만 개에서 20만 개로

OpenAI는 5세대에 걸쳐 7개의 토크나이저 인코딩 배포:

| 인코딩 | 어휘 크기 | 연도 | 모델 | 주요 변화 | |--------|----------|------|------|----------| | gpt2 | 50,257 | 2019 | GPT-2 | 기본 BPE 토크나이저 | | r50k_base | 50,257 | 2020 | GPT-3 (davinci, curie, ada) | 더 큰 말뭉치에서 재훈련, 크기 동일 | | p50k_base | 50,281 | 2021 | Codex 모델 (davinci, ada) | 새 토큰 추가 // 프로그래밍용 아님 | | p50k_edit | 50,284 | 2022 | 편집 모델 | +3개 Fill-In-the-Middle 토큰 | | cl100k_base | 100,277 | 2023 | GPT-3.5, GPT-4, 임베딩 | 2배 어휘, 다국어 확대 | | o200k_base | 200,019 | 2024 | GPT-4o, GPT-4.1, GPT-5, o1, o3, o4-mini | 2배 다시, camelCase 인식 정규식 | | o200k_harmony | 201,088 | 2024 | 도구 사용 GPT-5 | 동일 어휘? + 1,070개 도구 사용 특수 토큰 |

패턴: 주요 세대 경계에서 어휘가 두 배씩 증가(5만 → 10만 → 20만), 대략 모델이 지원하는 언어 및 양식 수의 두 배 증가를 추적.

인코딩 효율성 비교

동일 텍스트를 5가지 주요 인코딩으로 인코딩한 토큰 수:

| 콘텐츠 유형 | gpt2 | r50k | p50k | cl100k | o200k | vs gpt2 감소율 | |------------|------|------|------|--------|-------|--------------| | 영문 산문 | 20 | 20 | 20 | 20 | 20 | — | | Python 코드 | 48 | 48 | 38 | 28 | 28 | 42% 감소 | | URL | 18 | 18 | 18 | 14 | 13 | 28% 감소 | | 터키어 텍스트 | 39 | 39 | 39 | 28 | 22 | 44% 감소 | | 중국어 텍스트 | 56 | 56 | 56 | 29 | 18 | 68% 감소 | | 아랍어 텍스트 | 70 | 70 | 70 | 49 | 21 | 70% 감소 |

발견: 영문 산문은 2019년 이미 최적화됨. 개선은 전부 코드, URL, 비라틴 문자에서 비롯. 아랍어 텍스트는 70개 토큰에서 21개로 3.3배 압축 개선. 이는 영어 우선이 아닌 진정한 다국어 모델을 만들려는 의도적 투자를 반영.

정규식 진화: 4세대에 걸친 '단어 분할' 변화

BPE 병합이 시작되기 전에, 토크나이저는 정규식을 사용해 텍스트를 청크로 분할. 이 '사전 토큰화' 단계는 BPE 알고리즘이 작동하는 원자적 경계를 결정.

1세대: GPT-2 / r50k / p50k (2019-2022)

'(?:[sdmt]|ll|ve|re)| ?\p{L}++| ?\p{N}++| ?[^\s\p{L}\p{N}]++|\s++$|\s+(?!\S)|\s

2세대: cl100k_base (2023)

'(?i:[sdmt]|ll|ve|re)|[^\r\n\p{L}\p{N}]?+\p{L}++|\p{N}{1,3}+| ?[^\s\p{L}\p{N}]++[\r\n]+|\s++$|\s[\r\n]|\s+(?!\S)|\s

3가지 중요 변화:

3세대: o200k_base (2024)

[^\r\n\p{L}\p{N}]?[\p{Lu}\p{Lt}\p{Lm}\p{Lo}\p{M}]*[\p{Ll}\p{Lm}\p{Lo}\p{M}]+(?i:'s|'t|'re|'ve|'m|'ll|'d)?
[^\r\n\p{L}\p{N}]?[\p{Lu}\p{Lt}\p{Lm}\p{Lo}\p{M}]+[\p{Ll}\p{Lm}\p{Lo}\p{M}]*(?i:'s't're've'm'll'd)?
\p{N}{1,3}
?[^\s\p{L}\p{N}]+[\r\n/]*
\s*[\r\n]+
\s+(?!\S)
\s+

완전한 재작성으로 7개 분기 포함. 가장 중요한 혁신: 네이티브 camelCase 및 PascalCase 인식.

이는 ChatGPT가 정규식 수준에서 Chat + GPT로 분할되며, BPE가 실행되기 전부터 분할됨을 의미. 토크나이저가 프로그래밍 명명 규칙을 기본적으로 이해.

실제 예시:

특수 토큰 고고학: 문서에서 도구 호출까지

특수 토큰은 모델이 보지만 사람이 타이핑하지 않는 제어 신호. 진화는 OpenAI 제품 아키텍처의 이야기:

GPT-2 시대 (2019)

Codex 시대 (2021-2022)

Fill-In-the-Middle 토큰:

모델은 [접두사 코드] [접미사 코드] 표시를 보고 커서 위치에 나타나야 할 코드를 생성. 순서 변경(접미사가 중간 앞)은 의도적. 생성 전 양쪽 코드에 주의할 수 있게 함.

GPT-3.5/4 시대 (2023)

채팅 형식:

시스템/사용자 지시를 모델 응답으로부터 분리. 채팅 형식의 구조적 기초. 주의: 및 (ChatML의 메시지 경계용)는 tiktoken 인코딩에 없음. API 계층에서 추가되며, 토크나이저 계층이 아님.

GPT-4o/5 베이스 (2024)

축소됨:

FIM 토큰은 사라짐. endoftext (ID 199999)와 endofprompt (ID 200018) 사이에 19개의 의도적 빈 ID 슬롯(199998, 200000-200017). 이 격차는 배포 특화 설정으로 채워지도록 설계. 웹 검색, 초기 DALL-E, 파일 검색 기억.

GPT-5 Harmony (2024)

도구 사용 폭발:

총 1,091개 특수 토큰. harmony 인코딩은 베이스 인코딩의 모든 격차를 채우고 1,075개 예약된 슬롯 추가. "harmony" 이름은 모든 도구 유형(브라우저, 코드 인터프리터, DALL-E, 파일 검색, 향후 도구)의 통합 형식을 시사. 현재 ChatGPT 네이티브 앱 사용. 예약된 슬롯(200013-201087)은 아직 존재하지 않는 도구를 위해 사전할당. 새 도구 유형은 어휘 재훈련 없이 자체 전용 특수 토큰을 가질 수 있음.

핵심 아키텍처 통찰: o200k_base와 o200k_harmony는 일반 텍스트를 동일하게 인코딩. 동일한 정규식, 동일한 199,998개 병합 가능 토큰, 동일한 BPE 병합 순서. 차이는 순전히 제어 토큰. 베이스 모델 가중치를 공유 가능. 도구 사용 행동은 전부 특수 토큰 임베딩과 사후훈련에 있음 (추측).

현미경 아래의 어휘

기본 통계

| 지표 | 값 | |-----|-----| | 총 토큰 | 200,000 (199,998 병합 가능 + 2 특수) | | 유효 UTF-8 토큰 | 198,436 (99.2%) | | 원본 바이트 시퀀스 토큰 | 1,562 (0.8%) | | 단일 바이트 토큰 | 256 (전체 바이트 범위) | | 평균 토큰 길이 | 6.99 바이트 | | 최대 토큰 길이 | 128 바이트 |

바이트 길이 분포

어휘는 5-7 바이트 중심의 거의 정규 분포, 128바이트까지 긴 꼬리:

6 바이트 피크는 공백으로 시작하는 일반적인 영문 단어와 일치(예: hello = 6 바이트). 20 바이트 이상 토큰은 일반적으로 공백 패턴(코드 들여쓰기), 반복 문자, 또는 매우 흔한 다중 단어 문구를 단일 토큰으로 통합.

바이트 길이별 가장 긴 15개 토큰

| # | ID | 바이트 | 내용 | 범주 | |----|-----|--------|------|------| | 1 | 172056 | 128 | 128개 공백 | 공백(코드 들여쓰기) | | 2 | 179041 | 113 | 112개 대시 + 공백 | 구분선 | | 3 | 182513 | 112 | 112개 대시 | 구분선 | | 4 | 141084 | 97 | 96개 대시 + 공백 | 구분선 | | 5 | 85810 | 96 | 96개 대시 | 구분선 | | 6 | 168258 | 96 | 96개 백슬래시 | 주석 블록 | | 7 | 19385 | 96 | 96개 등호 | 구분선 | | 8 | 195732 | 95 | 95개 공백 | 공백(코드 들여쓰기) | | 9 | 174893 | 91 | 91개 공백 | 공백(코드 들여쓰기) | | 10 | 146780 | 88 | 88개 백슬래시 | 주석 블록 | | 11 | 134788 | 87 | 87개 공백 | 공백(코드 들여쓰기) | | 12 | 116288 | 83 | 83개 공백 | 공백(코드 들여쓰기) | | 13 | 166044 | 82 | 81개 등호 + 공백 | 구분선 | | 14 | 79593 | 81 | 80개 대시 + 공백 | 구분선 | | 15 | 111383 | 81 | C 스타일 블록 주석 | 주석 블록 |

모두 코드 형식 결과물. 어휘 전체의 가장 긴 토큰 — 128개 연속 공백 — 는 깊게 들여쓴 소스 코드가 훈련 말뭉치에 빈번하게 나타나서 BPE가 개별 공백을 128바이트 시퀀스까지 병합했기 때문에 존재. 마찬가지로 구분선(---, *, ===)은 코드 주석 헤더, 마크다운, 텍스트 파일 전역에 널리 존재해 최대 113바이트 길이 토큰 생성. 이 토큰들은 보일러플레이트 압축에 극도로 효율적: 단일 토큰(1 생성 단계)이 128개 개별 바이트 토큰을 대체.

의미 있는 비-공백 토큰의 가장 긴 것

| # | ID | 바이트 | 글자 | 내용 | 언어 | |----|-----|--------|------|------|------| | 1 | 150141 | 20 | สำนักเลขานุการองค์กร | 태국어: "조직의 사무국" | | 2 | 135127 | 18 | วิเคราะห์บอลวันนี้ | 태국어: "오늘의 축구 분석" | | 3 | 173900 | 17 | เปิดอภิปรายทั่วไป | 태국어: "공개 일반 토론" | | 4 | 193807 | 16 | தெரிவித்துள்ளார் | 타밀어: "진술했다" | | 5 | 186053 | 14 | მნიშვნელოვანია | 조지아어: "중요하다" | | 6 | 132700 | 13 | प्रधानमन्त्री | 힌디어: "총리" | | 7 | 134086 | 13 | প্রধানমন্ত্রী | 벵골어: "총리" | | 8 | 162457 | 13 | विश्वविद्यालय | 힌디어: "대학" | | 9 | 161518 | 26 | abcdefghijklmnopqrstuvwxyz | 알파벳(영문 소문자) | | 10 | 184150 | 26 | ABCDEFGHIJKLMNOPQRSTUVWXYZ | 알파벳(영문 대문자) | | 11 | 130756 | 20 | verantwoordelijkheid | 네덜란드어: "책임" | | 12 | 193348 | 18 | Wahrscheinlichkeit | 독일어: "확률" | | 13 | 106123 | 18 | telecommunications | 영어 | | 14 | 197767 | 18 | disproportionately | 영어 | | 15 | 154976 | 19 | .onreadystatechange | JavaScript API |

태국어가 의미 있는 가장 긴 토큰을 지배하는 이유: 태국 문자는 결합 마크와 모음을 사용해 UTF-8에서 글자당 3 바이트 소비. 20글자 태국어 문구는 61 바이트 소비. 이런 태국어 문구들이 단일 토큰으로 존재한다는 사실은 훈련 데이터에서 극도로 자주 나타났음을 의미. "Secretariat"과 "football analysis" 같은 문구는 태국 정부/뉴스/스포츠 콘텐츠의 무거운 대표를 시사. 조지아어, 타밀어, 힌디어, 벵골어도 나타나 바이트 수준의 어휘의 다국어 범위 반영. 순수 영문 단어로서 단일 토큰인 가장 긴 것은 telecommunications(18글자, ID 106123). 가장 긴 ASCII 토큰은 전체 알파벳 abcdefghijklmnopqrstuvwxyz(26글자, ID 161518). 명확히 예제, 문자 집합, 문서의 훈련 데이터 결과물.

유니코드 스크립트 분포

| 스크립트 | 토큰 수 | 어휘 비율 | |---------|--------|----------| | 라틴 | 118,902 | 59.5% | | 키릴 문자 | 14,111 | 7.1% | | 아랍 | 7,985 | 4.0% | | CJK | 7,165 | 3.6% | | 데바나가리 | 3,947 | 2.0% | | 한글(한국어) | 2,346 | 1.2% | | 히브리 | 2,344 | 1.2% | | 조지아 | 2,112 | 1.1% | | 벵골 | 2,095 | 1.0% | | 아르메니아 | 1,726 | 0.9% | | 기타 스크립트 | ~36,000 | 18.0% |

라틴 문자는 어휘의 59.5%를 차지하며 인터넷 콘텐츠의 약 40%를 나타냄에도 불구하고 지배적. 이는 OpenAI 개발자가 주석을 달은 정확히 불균형(더 많은 섹션 12 참고).

도메인 밀도: 가장 많은 토큰을 받는 것

도메인별로 일반적 단어가 단일 토큰으로 인코딩되는 비율을 측정한 도메인별 단일 토큰 커버리지:

프로그래밍이 유일하게 100% 단일 토큰 커버리지를 가짐. 이는 OpenAI의 훈련 데이터가 코드에 무겁게 가중됨의 가장 강한 신호.

처음 1,000개 ID의 코드 토큰

첫 1,000 ID에서 괄호, 대괄호, 들여쓰기 패턴을 포함한 코드에서 흔히 사용되는 62개 토큰 발견. 그러나 이 중 많은 것(괄호, 대괄호, 콜론)은 비코드 맥락에서도 자주 나타남: 수학, 학술 글, URL, 구조화된 텍스트. 가장 강한 코드 특화 신호는 4공간 들여쓰기(ID 257), 8공간 들여쓰기(ID 269), );\n 같은 문 종료자(ID 362). 이 공백/구문 패턴은 진정한 코드 특화이며 훈련 데이터의 상당한 코드 대표를 시사.

코드 관련 토큰 예시:

4공간 들여쓰기는 토큰 ID 257. 8공간 들여쓰기는 ID 269. // (라인 주석)는 ID 393. );\n (문 끝)는 ID 362. 이들은 전체 훈련 말뭉치에서 가장 흔한 패턴 중 일부.

할루시네이션 위험도: 단일 토큰 vs 다중 토큰 엔티티

토크나이저 분석의 그럴듯한 가설: 단일 토큰 엔티티는 다중 토큰 엔티티에 비해 낮은 할루시네이션 위험을 가질 가능성 (다른 조건 동일). 하지만 이 효과는 훈련 데이터 빈도에 2차적일 가능성 높음. 수백만 번 보인 다중 토큰 엔티티(예: 'OpenAI' = 2 토큰)는 저자원 언어의 희귀 단일 토큰 엔티티보다 훨씬 덜 할루시네이트. 토큰 원자성은 훈련 노출, RLHF 강화, 검색 기초화를 포함한 많은 요인 중 하나.

브랜드/엔티티 원자성

단일 토큰 (원자적, 낮은 할루시네이션 위험):

다중 토큰 (순차 생성, 높은 위험): | 엔티티 | 토큰 | 조각 | 위험도 | |--------|------|------|--------| | OpenAI | 2 | ['Open', 'AI'] | 중간 | | ChatGPT | 2 | ['Chat', 'GPT'] | 중간 | | JavaScript | 2 | ['Java', 'Script'] | 중간 | | Bloomberg | 2 | ['Bloom', 'berg'] | 중간 | | Anthropic | 2 | ['Anth', 'ropic'] | 중간 | | PostgreSQL | 3 | ['Post', 'gre', 'SQL'] | 높음 | | Silicon Valley | 3 | ['Sil', 'icon', ' Valley'] | 높음 | | Elon Musk | 3 | ['El', 'on', ' Musk'] | 높음 | | Mustafa Kemal Atatürk | 7 | ['Must', 'afa', ' Kem', 'al', ' At', 'at', 'urk'] | 낮음 |

주의: 토큰 수는 이론상 생성 위험을 증가시키지만, 훈련 데이터 빈도가 주요 요인. "Mustafa Kemal Atatürk" = 7 토큰이지만 엄청난 훈련 노출로 인해 할루시네이션 위험 0.

URL 할루시네이션

도메인 이름은 단일 토큰이 아님. 가장 흔한 웹사이트도 2-4 토큰 필요:

https://en.wikipedia.org/wiki/Artificial_intelligence 같은 전체 URL은 11개 토큰 필요. 각 토큰은 모델이 궤도를 벗어날 수 있는 독립적인 생성 단계. ChatGPT가 그럴듯해 보이지만 존재하지 않는 URL을 자주 생성하는 이유: 경로는 토큰별로 생성되며 정확한 근거가 없음.

날짜 할루시네이션

연도는 항상 2개 이상 토큰: 2024 → ['202', '4'], 2025 → ['202', '5']. 202 접두사는 10년 전체에서 공유되지만 마지막 자리는 별도 예측. 모델이 때로 시간적으로 혼동된 날짜를 생성하는 이유: 접두사는 올바르지만 접미사는 잘못된 분포에서 도출.

AI 검색 최적화(AEO): 토크나이저를 위한 콘텐츠 작성 // 실험적

AI 기반 검색 엔진(ChatGPT, Perplexity, Gemini 등)이 주요 정보 검색 인터페이스가 되면서, 콘텐츠 최적화는 키워드 매칭에서 토큰 수준 효율성으로 변화. 토크나이저는 AI 시스템이 콘텐츠를 검색, 처리, 정확히 인용하는 방법을 이해하는 데 무엇을 말하는가.

콘텐츠 형식별 토큰 밀도

다양한 콘텐츠 형식 전반에 걸쳐 글자당 토큰을 측정. 높은 밀도 = 토큰당 더 많은 정보 = 모델의 컨텍스트 윈도우에 더 많은 콘텐츠 적합:

| 형식 | 글자/토큰 | 상대 효율성 | |-----|----------|-----------| | 평문 영문 산문 | 5.9 | 100% (기준) | | 마크다운 기사 | 4.8 | 81% | | 주석 코드 | 4.4 | 75% | | 학술 인용 텍스트 | 4.3 | 73% | | URL 많은 콘텐츠 | 4.2 | 71% | | JSON 구조화 데이터 | 4.0 | 68% | | 터키어 산문 | 3.6 | 61% | | 마크다운 테이블 | 2.7 | 46% |

평문 영문이 가장 토큰 효율적. 마크다운 형식, JSON 구조, 테이블 구문은 모두 의미론적 내용보다는 형식 메타데이터를 전달하는 토큰 소비. 마크다운 테이블은 같은 정보를 평문으로 표현한 것보다 2.2배 더 많은 토큰 사용.

실제 함의: 8,000 토큰이 검색된 콘텐츠를 위해 할당된 RAG 파이프라인에서, 평문 영문은 약 47,200 글자 정보를 제공하는 반면 마크다운 테이블은 약 21,600 글자만 제공. 형식이 사용 가능 콘텐츠를 절반 이상 깎음.

콘텐츠 구조 권장사항

답변으로 시작. AI 검색 시스템은 종종 컨텍스트 윈도우에 맞추기 위해 콘텐츠를 자름. 페이지의 처음 500 토큰이 핵심 정보를 포함하면, 검색 파이프라인에 이점이 있을 가능성.

**이산 데이터 포인트가 있는 콘텐츠(사양, 지표, 비교)**의 경우, 구조화된 리스트는 장황한 산문에 비해 토큰 수를 20-40% 감소 가능 (과도한 문구 제거). 그러나 평문이 마크다운보다 글자당 더 토큰 효율적(5.9 vs 4.8)임을 주의. 리스트의 효율성 이득은 리스트 형식에서 아닌 채우기 단어 제거에서 비롯.

서술 또는 설명 콘텐츠의 경우 산문이 더 토큰 효율적.

:

숫자 사용, 단어 아님. 1,234,000은 5 토큰. one million two hundred thirty-four thousand는 8 토큰. 숫자 형식은 토큰 효율적이며 모델이 인용하기에 덜 모호.

다중 단어 엔티티의 공통 약자 선호. MIT는 1 토큰. Massachusetts Institute of Technology는 5 토큰. 약자는 5배 더 효율적이며 할루시네이션 위험 없음 (단일 토큰, 단일 결정).

명시적 귀속 신호 포함. according(ID 149330), source(ID 4935), research(ID 113140), study(ID 5012), report(ID 22869) 등은 모두 단일 토큰. 이 단어들을 사용하면 모델이 콘텐츠를 인용 가능으로 인식. 각 2-3개 사실 주장마다 귀속 배치.

단일 토큰 전환 단어 사용.

피해야 할 것들

본문에 긴 URL. https://en.wikipedia.org/wiki/Artificial_intelligence#Machine_learning 같은 URL은 10개 이상 토큰이며 할루시네이션 자석. 앵커 텍스트 대신 사용하고 URL을 메타데이터 또는 각주에 배치.

과도한 마크다운 형식. 모든 #, *, _, |, -는 콘텐츠를 전달할 수 있는 토큰 소비. 형식을 아껴 사용하고 진정으로 구조를 개선할 때만.

유니코드 장식. ═══════ 또는 ████████ 또는 🎉🎊🎈 같은 이모지 클러스터는 토큰을 공격적으로 소비해 정보 가치 0.

중첩된 괄호 표현. ((like this (especially)))는 컨텍스트 윈도우를 통해 모델이 추적해야 하는 깊은 토큰 중첩 생성.

개발자 주석: OpenAI 내부의 의견 불일치

소스 파일 tiktoken_ext/openai_public.py, 101-103줄에는 tiktoken 저자의 드러나는 주석:

"이 정규식은 더 효율적으로 만들어질 수 있습니다. 이 인코딩을 개발하는 사람이 나라면, 특히 언어 전반에 토큰을 더 효율적으로 할당할 수 있다는 등 다른 여러 가지를 다르게 했을 것입니다."

이는 몇 가지를 알려줌:

개발자의 언어 할당에 대한 비판은 데이터로 지원됨:

라틴 문자는 인터넷 콘텐츠의 약 40%를 나타내지만 어휘의 59.5%를 받음. 한편 전 지구적 인터넷 콘텐츠의 상당한 부분을 나타내는 CJK 문자(중국어, 일본어, 한국어)는 어휘의 3.6%만 받음. 개발자의 주석은 더 균형잡힌 할당이 영어 품질을 크게 저하시키지 않으면서 다국어 성능을 개선할 것이라고 생각함을 시사.

다국어 세금: 비영문 콘텐츠의 비용

토크나이저는 언어 간 측정 가능한 효율성 격차를 생성. 이를 "다국어 세금"이라 칭함.

모든 언어에 걸친 병렬 테스트 문장 사용(동일 의미: AI 시장이 2030년까지 5,000억 달러에 도달할 것이라는 진술):

| 언어 | 토큰 | 글자/토큰 | vs 영문 | |-----|------|----------|--------| | 영문 | 28 | 5.57 | 1.00배 (기준) | | 스페인어 | 35 | 5.49 | 1.25배 | | 프랑스어 | 36 | 5.06 | 1.29배 | | 아랍어 | 40 | 3.25 | 1.43배 | | 터키어 | 42 | 3.50 | 1.50배 | | 중국어 | 29 | 1.69 | 1.04배 | | 프랑스어와 스페인어: 영문에 가깝지만 동일하지 않음**

프랑스어와 스페인어, 영문 이후 가장 큰 두 라틴 문자 언어는 25-29% 토큰 세금 지불. 터키어(50%) 또는 아랍어(43%)보다 훨씬 적지만 규모에서 여전히 의미 있음:

스페인어는 프랑스어보다 약 4% 더 효율적 (5.49 vs 5.06 글자/토큰), 크게 스페인어가 아포스트로피 축약형 오버헤드 부족.

도메인 어휘의 단일 토큰 비율:

프랑스어 SEO 콘텐츠: 구문 수준에서 잘 토크나이즈. référencement naturel(자연 SEO)는 3 토큰. le, la, les, de, du 같은 일반 관사/전치사는 모두 단일 토큰. 그러나 복합 기술 용어와 악센트 단어는 일관되게 분할.

쿼리 예시:

프랑스어 쿼리는 드러내는 예: Qu'est-ce que l'apprentissage auto? 는 모든 아포스트로피 축약형(Qu', l')이 분할을 강제해 9 토큰 생성: ['Qu', "'est", '-ce', ' que', ' l', "'ap", 'prentissage', ' auto', '?']. 축약형 없는 동등 스페인어 쿼리는 6 토큰만 비용. 이는 의미:

고유명사는 극도로 다양함: Macron → 2 토큰 (Mac + ron), España → 1 토큰, Mustafa Kemal Atatürk → 7 토큰, Elon Musk → 3.

상황은 cl100k에서 o200k로 모든 언어에 대해 극적으로 개선되었지만, 영문과의 격차 유지.

터키어 특화 토큰

어휘는 터키어 특화 문자(ş, ç, ğ, ü, ö, ı, İ, Ş, Ç, Ğ, Ü, Ö)를 가진 2,103개 토큰 포함. 각 터키어 특수 문자는 자신의 단일 바이트 토큰:

일반적 터키어 접미사도 토크나이즈:

Türkiye (ID 177744)는 단일 토큰, 좋은 신호. 하지만 İstanbul은 ['İ', 'stanbul'] (2 토큰)으로 분할, Merhaba는 ['Mer', 'haba'] (2 토큰).

RAG 파이프라인 경제학: 실제 토큰 예산 (숫자는 추정)

일반적 AI 검색 상호작용에서 토큰 예산은 다음과 같이 분할:

검색된 문서(8,000 토큰)가 비용 지배. 콘텐츠를 더 토큰 밀집하도록 최적화하면 AI 검색 비용을 직접 감소. 콘텐츠가 5.9 글자/토큰(평문 영문)을 달성하면 2.7 글자/토큰(테이블 많은)보다는 같은 토큰 예산 내에서 2.2배 더 많은 정보 제공.

컨텍스트 윈도우 용량

검색된 콘텐츠에 할당된 60% 가정시 다양한 모델이 컨텍스트 윈도우에 보유할 수 있는 콘텐츠:

| 모델 | 사용 가능 토큰 | 영문(대략 단어) | 터키어(대략 단어) | |-----|-------------|--------------|------------| | GPT-4 (8k) | 4,900 | ~5,800 단어 | ~3,500 단어 | | GPT-4o (128k) | 76,800 | ~90,800 단어 | ~55,300 단어 | | GPT-5 (추정 256k) | 153,600 | ~181,500 단어 | ~110,600 단어 |

터키어 콘텐츠는 같은 컨텍스트 윈도우에서 영문 콘텐츠가 받는 용량의 약 61%. 토크나이저 효율성 격차의 직접 결과.

결론 및 함의

OpenAI의 우선순위가 드러내는 것

코드가 왕. 프로그래밍 토큰이 초기 어휘를 지배(낮은 ID = 훈련 데이터의 높은 빈도). 일반적 프로그래밍 키워드 100%가 단일 토큰. 훈련 말뭉치는 코드 가중.

다국어는 개선되지만 불완전. cl100k에서 o200k로의 도약은 비라틴 문자 효율성을 극적으로 개선(아랍어: 70→21 토큰, 중국어: 56→18 토큰). 하지만 어휘 할당은 여전히 라틴 문자를 59.5%로 선호하며, OpenAI 개발자가 공개적으로 이 불균형을 언급.

도구 사용이 다음 경계선. harmony 인코딩의 1,075개 예약된 특수 토큰 슬롯은 OpenAI가 각각 전용 제어 토큰이 있는 풍부한 모델 역량 생태계를 구축 중임을 신호. 오늘 , , , . 내일 브라우저 동작, 이미지 생성, 오디오 처리, 상상하지 못한 역량의 토큰 있을 수 있음.

인용 정확성은 구조적으로 토크나이제이션에 의해 제한 가능. URL, 날짜, 고유명사 다중 토큰 분할이 생성 단계마다 오류 가능성 도입.

베이스와 harmony 사이의 격차는 언어 모델과 AI 어시스턴트 사이의 격차. 동일 어휘, 동일 BPE 병합, 동일 정규식. 차이는 전부 도구 호출, 메시지 경계, 제약 생성을 구조화하는 1,089개 제어 토큰.

콘텐츠 제작자와 SEO 실무가를 위해

전통 SEO에서 답변 엔진 최적화(AEO) 또는 생성형 AI 검색 최적화(GEO)로의 전환은 AI 시스템이 토크나이저 렌즈를 통해 콘텐츠를 본다는 이해 필요. 토큰 밀도, 엔티티 원자성, 귀속 신호, 구조적 명확성이 콘텐츠 검색, 컨텍스트에 맞는 정도, 정확히 인용되는지 여부에 영향.

최단 영향 변화: 콘텐츠를 밀집하고, 구조화되고, 귀속 풍부하게 작성.

토크나이저가 첫 번째 관문. 모델이 하는 모든 것 — 검색, 추론, 인용, 생성 — 은 토크나이저가 생성하는 것에 작동. 그 행동을 이해하는 것은 현대 AI의 기초를 이해하는 것.

교차 참고: RESONEO의 ChatGPT 검색 아키텍처 vs 토크나이저 발견

2026년 2월, 프랑스 SEO 연구 회사 RESONEO는 수개월 네트워크 트래픽 분석, 코드 역분석, 체계적 테스트 기반 ChatGPT 검색의 내부 아키텍처의 포괄적 역분석을 발행. 그들의 작업은 인프라 계층에서 작동 — HTTP 요청, JSON 페이로드, 제공자 API, 기능 플래그. 토크나이저 분석은 기초 계층에서 작동 — 텍스트가 모델이 처리하기 전에 통과해야 하는 20만 개 원자 단위.

함께, 이 두 분석은 완전한 그림 형성: RESONEO는 ChatGPT가 하는 것을 보이고, 토크나이저 분석은 모델이 특정 것들을 구조적으로 왜 더 쉽거나 어렵게 하는지 보임.

팬아웃 엔진이 토크나이저를 만남

RESONEO 발견: ChatGPT는 하나의 검색 쿼리를 발행하지 않음. 질문의 다양한 각도를 대상으로 1-3개 병렬 "팬아웃" 쿼리(사고 모드에서 20개 이상)로 분해. 쇼핑과 이미지 팬아웃은 별도 파이프라인에서 병렬 실행.

토크나이저 통찰: 팬아웃 쿼리 생성 자체는 토큰별 프로세스. 팬아웃 효율성은 원본 쿼리 토크나이제이션에 의존:

사용자 쿼리: "Black Friday 하 $1500 최고의 게임용 PC" 토큰: ['best', ' gaming', ' PC', ' for', ' Black', ' Friday', ' under', ' $', '150', '0'] = 10 토큰

팬아웃 1: "gaming pc specs 2025" → 6 토큰 팬아웃 2: "best gaming pc black friday" → 6 토큰 팬아웃 3: "gaming pc deals under 1500" → 7 토큰

각 팬아웃은 모델이 원본 쿼리 토큰을 이해하기로부터 생성. 모델은 작업할 "입력 신호"의 약 10 토큰 가짐. 사고 모드에서, 체인-of-thought 추론은 팬아웃 생성 전에 추가 토큰 소비, 사고 모드가 더 많은 그리고 더 나은 팬아웃을 생성하는 이유 설명: 모델은 쿼리 분해에 대해 추론할 더 많은 내부 토큰 예산 가짐.

비영문 언어 쿼리: 다중 토큰 인코딩된 쿼리는 더 많은 입력 토큰 소비, API 비용과 검색된 콘텐츠를 위한 남은 컨텍스트 윈도우 감소. 사고 모드도 불리하게 영향. 하지만 팬아웃 엔진은 모델의 내부 표현에서 작동, 의미론적 콘텐츠는 토큰 수 상관없이 동일하게 잘 보존. 토크나이저 효율성보다는 언어 훈련 데이터 대표가 진정한 다국어 이점.

커뮤니티 관찰: 비영문 쿼리에 대한 영문 팬아웃은 토큰 효율성보다는 영문 훈련 분포 때문일 가능성 더 높음.

Sonic 분류자를 토크나이저 렌즈 통해

RESONEO 발견: 검색 전, Sonic 분류자(확률 분류자, 레이턴시 ~196ms)는 외부 데이터가 필요한지 결정, ~65% 임계값. sonic_force_pg_switcher 설정에서 실행.

토크나이저 통찰: Sonic 분류자는 토크나이즈된 입력에서 작동. 결정은 쿼리의 토큰 구성에 의해 영향:

분류자는 모델의 쿼리의 내부 표현에서 작동. 입력은 토크나이즈되지만, 분류자는 아마도 원본 토큰 ID보다는 임베딩/표현 수준에서 작동. 검색 확률은 모델의 매개변수 지식에 대한 확신(훈련으로부터 답변을 얼마나 잘 "안다")에 더 있을 가능성. 'OpenAI' 같은 다중 토큰 엔티티가 훈련에서 수백만 번 나타났으면 2 토큰에도 불구하고 강한 임베딩. 낮은 자원 영역에서 희귀한 단일 토큰 엔티티는 여전히 검색 트리거 가능.

주의: "다중 토큰 엔티티가 더 자주 검색을 트리거할 가능성"은 추측이며 증거 지원이 없음. 가설로 표시.

엔티티 연결: 지식 그래프가 토큰 원자성을 만남

RESONEO 발견: ChatGPT는 엔티티 disambiguation 있는 독점 NER 시스템 사용. 엔티티 클릭시, 동적 프롬프트 생성: "Tell me about [ENTITY]. 엔티티 범주는 [CATEGORY]. disambiguation은 [DESCRIPTION]." gpt-5-instant로 사이드바 생성용으로 전송. 엔티티 형식은 구조화 마크업용 유니코드 개인-사용 문자 (\ue200, \ue201, \ue202) 사용.

토크나이저 통찰: 엔티티 인식 정확성은 토큰 원자성과 직접 상관:

| 엔티티 | 토큰 | NER 어려움 | RESONEO 범주 | |--------|------|----------|------------| | Google | 1 | 사소함 | company | | Microsoft | 1 | 사소함 | company | | Reuters | 1 | 사소함 | — | | Wikipedia | 1 | 사소함 | — | | OpenAI | 2 | 중간 - 모호한 경계 | company | | ChatGPT | 2 | 중간 | software | | Bloomberg | 2 | 중간 - 사람 또는 회사일 수 있음 | company | | Silicon Valley | 3 | 어려움 - 조각은 엔티티 신호 없음 | place | | Elon Musk | 3 | 어려움 - El, on은 일반적 | people |

이는 RESONEO의 관찰을 설명 — 엔티티 분류법 품질 "가변적", sports_event 같은 범주는 35% 정확도로 역사적 전투만 포함, fictional_character는 신과 영화 캐릭터 혼합 57% 정확도. NER 시스템은 모델이 모호한 부분 단어로 조각난 엔티티에 가장 투쟁.

유니코드 개인-사용 영역 통찰: 엔티티 마크업 문자 \ue200 (U+E200), \ue201 (U+E201), \ue202 (U+E202)는 o200k_base 어휘의 특수 토큰이 아님. 각 문자는 3 UTF-8 바이트로 인코딩(예: U+E200 = 0xEE 0x88 0x80). 중요하게, 이 바이트 시퀀스는 병합 토큰으로 어휘에 존재하지 않음. 쌍 0xEE+0x88은 BPE 병합 규칙이 없어서 각 개인-사용 문자는 3 개별 바이트 수준 토큰으로 분해. 전체 200,000 토큰 어휘에서, 0xEE로 시작한 병합 토큰은 5개만 존재하며 0x88 두 번째 바이트 없음. 이는 의미 있음: BPE 병합은 빈도 기반, 훈련 말뭉치에서 자주 나타나는 바이트 쌍은 단일 토큰으로 병합. 0xEE+0x88 병합 부재는 이 개인-사용 문자가 사전훈련 데이터에서 극도로 희귀했음을 의미. 이는 간접적으로 모델이 사후훈련 중(명령어 조정 / RLHF)에서 엔티티 마커로 사용하도록 배웠다는 결론 지원, 사전훈련 말뭉치에서 아님.

미묘한 컨텍스트 의존 행동: 실행 텍스트에서, 선행 0xEE 바이트는 인접 문자와 병합 가능. 예를 들어, 선행 공백은 0x20+0xEE 병합 토큰 형성(순위 95,677). " \ue200entity"는 [..., 0x20EE, 0x88, 0x80, "entity"]로 토크나이즈되지 [..., " ", 0xEE, 0x88, 0x80, "entity"]가 아님. 개인-사용 구분자는 여전히 3 토큰 위치 비용이지만 바이트 경계 이동. 공백은 구분자의 첫 바이트에 "흡수".

이는 아키텍처적으로 o200k_harmony의 및 토큰과 다름. 이것은 단일 원자 ID(200012, 200008)를 가진 전용 특수 토큰. 엔티티 시스템은 베이스 어휘의 바이트 수준 인코딩에 부과된 사후훈련 규칙, 도구 호출 시스템은 바이트 수준 인코딩과 구조적으로 다른 전용 토큰 슬롯이 있는 아키텍처 기능.

인용 유형: 토크나이제이션으로 설명된 3 계층

RESONEO 발견: ChatGPT는 3 링크 유형 생성:

토크나이저 통찰: 인용 형식 자체는 이 계층이 존재하는 이유 드러냄:

3계층 시스템은 토큰 경제 최적화:

현재 GPT-4o 가격 ($M 출력 토큰당 $10)에서, https://en.wikipedia.org/wiki/Artificial_intelligence 같은 단일 인라인 URL은 (10 토큰) 출력 토큰에서 ~$0.00015. 백만 쿼리/일 규모에서, 숨겨진 링크 vs 보이는 인용은 의미 있는 비용 차이 대표.

최신성 편향: 훈련 차단 시간이 웹 검색을 만남

RESONEO 발견: 모델은 명시적 최신성 매개변수를 가진 팬아웃 생성: {"q": "query", "recency": 30} 뉴스, "recency": 365 확립된 정보. 설명: "모델은 이미 차단 날짜까지 훈련 데이터에 구형 콘텐츠 구워있음. 웹 검색은 신선 콘텐츠로 간격 채우기만".

토크나이저 통찰: 이는 토큰 ID 분포에 의해 확인. 연도 토큰이 이야기 함:

"2020" → ['202', '0'] - 양쪽 부분단어 깊게 임베딩(순위 13,000 미만) "2025" → ['202', '5'] - 접두사는 같음, 접미사는 다름 "2026" → 아직 생성 필요, 아마 높은 확률 2025에서 오버플로우.

파인더/웹 스크래핑 전문가: HTML 렌더링되지 않은 DOM

RESONEO 발견: 대부분 LLM 크롤러(ChatGPT, Claude, Gemini)는 JavaScript 실행하지 않음. Bing Copilot과 Grok만 함. 콘텐츠는 정적 HTML 또는 <noscript> 폴백에 있어야 함.

토크나이저 통찰: 이는 토큰 효율성을 위한 2차 함의 가짐. JavaScript 렌더링 콘텐츠는 종종:

크롤러가 어떻게든 JS 실행하고 전체 렌더링 출력 토크나이즈하면, 비콘텐츠 토큰이 컨텍스트 윈도우를 오염. 깨끗한 HTML 페이지 의미론적 마크업은 JS 수화 페이지보다 훨씬 더 효율적으로 토크나이즈:

정적 HTML은 크롤러 접근성만 아님. 토큰 밀도. 모든 class="tailwind-gibberish" 속성이 크롤러 시야에 들어오면 실제 콘텐츠를 전달할 수 있는 토큰 낭비.

Google vs SerpAPI 소송: 인프라 취약성 (개인 생각)

RESONEO 발견: Google이 2025년 12월 SerpAPI를 DMCA 섹션 1201 위반으로 SearchGuard 우회 고소. ChatGPT 검색의 데이터 공급망 위협.

토크나이저 논의: SerpAPI 접근이 차단되면, OpenAI는 검색 제공자 교체를 넘어 기본 문제 직면. 근본적으로 다른 검색 백엔드(예: 다른 커버리지 있는 독점 크롤러)로 전환하면 분포 불일치 생성 가능: 모델의 토크나이저와 가중치는 Google 인덱스처럼 보이는 콘텐츠에 최적화, 검색은 다른 분포 콘텐츠 제공. 이는 다음을 나타낼 수 있음:

요약: 동일 시스템의 두 계층

| 계층 | RESONEO 분석 | 토크나이저 분석 | |-----|-----------|------------| | 쿼리 처리 | Sonic 분류자, 팬아웃 엔진 | 토큰 효율성이 분류자 행동 결정 | | 검색 실행 | SerpAPI → Google, SearchApi.io | 팬아웃 쿼리는 토큰별 생성 | | 콘텐츠 검색 | SERP 스크래핑, 스니펫, 전체 페이지 | 토큰 예산 제약 | | 엔티티 인식 | NER + disambiguation + 유니코드 마크업 | 토큰 원자성이 NER 정확성 예측 | | 인용 생성 | 3계층 시스템 (보이는/더/숨겨진) | 토큰 비용이 계층 구조 설명 | | 응답 생성 | 인용이 있는 합성 답변 | 모든 글자 비용 토큰; 밀도 중요 | | 최신성 | 팬아웃당 명시적 최신성 필터 | 차단 시간 이후 연도 토큰 웹 기초 필요 | | 쇼핑 | Mercury 퀴즈 + Google 쇼핑 | 구조화 데이터는 토큰 비싼; 퀴즈 예산 절약 | | 다국어 | 팬아웃은 종종 비영문 사용자도 영문 생성 | 비영문 쿼리는 1.3-2.3배 더 많은 토큰 비용 |

통합 통찰: ChatGPT 검색은 토큰 경제 위에 구축된 오케스트레이션 계층. 모든 아키텍처 결정 — 팬아웃 수에서 인용 계층 시스템까지 쇼핑 퀴즈까지 — 은 토큰 예산 최적화로 이해 가능. RESONEO가 배관을 매핑; 토크나이저 분석은 물 압력을 매핑 시도.

기술 세부사항

분석은 tiktoken v0.11.0, o200k_base 인코딩(SHA-256: 446a9538…0cfb1a2d)으로 진행. 데이터는 openai/tiktoken 저장소에서 추출. RESONEO 연구 참고 think.resoneo.com/chatgpt(2026년 2월). 모든 토큰 수와 통계는 TikToken 저장소의 추출 스크립트 사용으로 재현 가능.