토큰은 언어 모델이 텍스트를 읽고 쓰는 단위입니다. 모델이 프롬프트를 받기 전에 토크나이저가 텍스트를 조각으로 자르고, 조각마다 어휘 목록의 번호를 붙입니다. API 요금, 속도 제한, 컨텍스트 윈도가 모두 이 수로 정해집니다. 아래 숫자는 모두 토큰 계산기로 잰 값이며 OpenAI tiktoken, DeepSeek 공식 토크나이저의 결과와 같습니다.
한국어 문장 하나를 세어 보기
「안녕하세요, 세계」(9자)를 세 토크나이저로 셉니다.
| 토크나이저 | 주요 모델 | 토큰 수 |
|---|---|---|
| o200k_base | GPT-5.x, GPT-4.1, GPT-4o | 4 |
| DeepSeek V4 | deepseek-flash, deepseek-v4-pro | 7 |
| cl100k_base | GPT-4, GPT-3.5 Turbo | 10 |
한글 음절은 UTF-8로 3바이트입니다. 어휘에 없는 음절은 바이트 단위로 쪼개져 토큰이 늘어납니다. 어휘가 약 10만 개인 cl100k_base에서 10개였던 문장이 약 20만 개인 o200k_base에서는 4개가 됩니다. 중국어에서는 DeepSeek V4가 가장 적은 경우가 많지만, 한국어에서는 o200k_base보다 많아지는 일이 흔합니다.
토크나이저가 자르는 원리
GPT와 DeepSeek의 토크나이저는 바이트 단위 BPE(byte pair encoding, Sennrich 등 2016년 논문)입니다. 먼저 정규식으로 텍스트를 단어, 숫자, 기호, 공백 같은 덩어리로 나누고, 덩어리 안에서 1바이트부터 시작해 학습으로 정해진 순위가 높은 인접 쌍을 반복해서 합칩니다. 어휘 크기는 cl100k_base 100,277, o200k_base 200,019, DeepSeek V4 129,280입니다(특수 토큰 포함).
글자 수로 어림하면 얼마나 틀리나
각 회사 문서는 어림값을 줍니다. Google은 Gemini에서 「토큰 하나는 약 4자」, Anthropic은 영어에서 「약 4자, 0.75단어」라고 하고, 모두 실제 수는 API가 돌려주는 값을 따르라고 덧붙입니다. 토큰 계산기의 한국어 예시(277자)로 비교하면 다음과 같습니다.
| 방법 | 토큰 수 |
|---|---|
| 「4자에 1토큰」 어림 | 69 |
| o200k_base(정확) | 164 |
| DeepSeek V4(정확) | 176 |
| cl100k_base(정확) | 231 |
한국어에서 「4자에 1토큰」은 실제의 절반에도 못 미칩니다. Claude와 Gemini는 로컬에서 쓸 수 있는 토크나이저가 공개되지 않았고, Anthropic은 Claude 4.7 이후 모델이 같은 텍스트에서 이전 Claude보다 토큰이 약 30% 많다고 밝힙니다.
코드로 정확히 세기
OpenAI 모델은 tiktoken(0.14.0)으로 셉니다.
import tiktoken
enc = tiktoken.get_encoding("o200k_base")
print(len(enc.encode_ordinary("안녕하세요, 세계"))) # 4
사용자 입력에는 encode_ordinary()를 쓰세요. encode()는 <|endoftext|>가 들어간 텍스트에서 ValueError를 냅니다. tiktoken 대응표에는 GPT-6가 없습니다.
DeepSeek은 오프라인 계산 패키지의 tokenizer.json을 tokenizers로 읽습니다. 패키지 예제는 transformers를 쓰는데, 2026년 10월 1일 확인 결과 transformers 5.18.0에서는 중국어 텍스트가 빈 목록이 되었고 4.57.6과 tokenizers는 올바른 ID를 돌려주었습니다.
from tokenizers import Tokenizer
tok = Tokenizer.from_file("deepseek_v4_tokenizer/tokenizer.json")
print(len(tok.encode("안녕하세요, 세계").ids)) # 7
Claude는 POST /v1/messages/count_tokens(무료, 문서상 추정값), Gemini는 models.countTokens를 씁니다. OpenAI의 POST /v1/responses/input_tokens는 역할·구분자 같은 형식 토큰, 이미지, 파일, 도구 정의까지 포함해 셉니다. 요금은 입력보다 출력이 비싸고, gpt-5.5와 GPT-6는 입력 272,000 토큰을 넘으면 요청 전체가 입력 2배·출력 1.5배 단가가 됩니다.
관련 도구: 단어 및 문자 카운터, API 키 마스킹 도구.