모델

토큰화

Tokenization

토큰화는 LLM이 글자를 그대로 읽지 않고 문장을 최소 단위인 토큰으로 쪼개 번호를 붙여 처리하는 과정이다. API 요금, 컨텍스트 한도, 출력 상한이 모두 토큰 수로 정해지므로 비용과 길이는 글자 수가 아니라 토큰 수로 따져야 한다.

항목토큰과의 관계
API 요금입력·출력 토큰 수로 청구
컨텍스트 윈도우한 번에 넣을 수 있는 토큰 한도
RAG 청크 크기토큰 단위로 나눠야 한도에 맞는다

자주 붙는 조각부터 합친다

대부분의 LLM은 BPE 방식을 쓴다. 자주 나란히 나오는 조각을 하나로 합치는 일을 반복해서, "the"처럼 흔한 단어는 토큰 하나가 되고 드문 단어는 여러 조각으로 나뉜다. 토큰 종류(어휘)가 많을수록 같은 문장이 더 적은 토큰으로 끝난다.

GPT-3 시절14토큰
cl100k_base9토큰
o200k_base8토큰

같은 일본어 생일 축하 문장 하나를 토크나이저별로 쪼갠 결과(OpenAI 쿡북 예시).

한국어는 토큰을 더 쓴다

쪼개는 규칙이 영어 위주 데이터로 만들어지는 경우가 많고, 한글 한 글자는 3바이트라 잘게 쪼개지기 쉽다. 그래서 같은 내용이어도 한국어 프롬프트가 영어보다 비용이 더 드는 경향이 있다. 최신 토크나이저일수록 차이가 줄었지만 없어지지는 않았다.

보내기 전에 직접 세어 본다

긴 계약서나 로그를 넣기 전에 한도를 넘는지 확인하거나, 요청 크기에 따라 큰 모델과 작은 모델로 나눠 보낼 때 토큰 수를 미리 센다. 구조화된 데이터는 따옴표·중괄호가 많은 JSON보다 YAML이 토큰을 덜 쓰는 경우가 많다.

모델세는 방법
OpenAItiktoken의 encoding_for_model()로 로컬에서 계산
Claudecount_tokens 엔드포인트에 요청 형식 그대로 보내기 (무료, 시스템 프롬프트·도구 포함)

토크나이저는 모델마다 다르다. Claude Opus 4.7 이후 모델은 같은 텍스트가 이전보다 약 30% 많은 토큰으로 계산되니, 모델을 바꿀 때는 새 모델로 다시 세어야 한다.

글자 단위 작업에 약한 이유

모델은 "strawberry"를 알파벳 열 개가 아니라 토큰 두세 개로 본다. 그래서 글자 개수 세기, 문자열 뒤집기, 자릿수 계산 같은 작업에서 엉뚱한 실수를 하기 쉽다. 이런 작업은 결과를 따로 확인하는 게 안전하다.

토큰 수는 비용과 한도를 맞출 때 센다

사람들이 토큰화를 직접 마주하는 건 대부분 토큰 수를 세는 순간이다. 요청을 보내기 전에 미리 세어 두면 요금을 예상하고, 한도를 넘어 잘리거나 오류가 나는 일을 막을 수 있다.

어디서어떻게 쓰나
API 비용 견적대표 프롬프트와 답변의 토큰 수를 세어 요청 수를 곱해 월 비용을 미리 계산
사내 문서 검색(RAG)문서를 글자 수가 아니라 토큰 수 기준으로 잘라 청크가 한도 안에 들어가게
긴 대화·코딩 에이전트대화 기록이 컨텍스트 한도에 가까워지면 오래된 내용을 요약하거나 덜어냄
출력 길이 제어max_tokens를 작업에 맞게 정해 답이 중간에 끊기거나 너무 길어지지 않게
#전처리#BPE
참고 자료
관련 영상
← AI Wiki에서 더 보기
updated at 2026-10-20