용어집
GEO·AI 검색

토큰화

토큰화는 텍스트를 언어 모델이 실제로 처리하는 최소 단위인 '토큰'으로 분해하는 과정입니다. 영어 기준 1토큰은 대략 4글자(약 3/4 단어)에 해당하며, BPE 같은 서브워드 알고리즘으로 단어를 더 작은 조각으로 쪼개 처리합니다.

  • 토큰화(Tokenization)는 사람이 읽는 텍스트를 모델이 처리하는 최소 단위인 토큰으로 쪼개는 전처리 과정입니다.
  • 현대 LLM은 단어나 글자가 아니라 서브워드(subword) 단위를 쓰며, 가장 널리 쓰이는 방식이 BPE(Byte Pair Encoding)입니다.
  • OpenAI 기준 영어 텍스트는 평균적으로 1토큰 ≈ 4글자, 100토큰 ≈ 75단어로 환산됩니다.
  • 토큰은 곧 비용이자 컨텍스트 길이입니다. API 요금과 모델이 한 번에 볼 수 있는 분량이 모두 토큰 수로 정해집니다.
  • 한국어처럼 형태가 복잡한 언어는 같은 의미라도 영어보다 토큰이 더 많이 소모되는 경향이 있어, GEO·콘텐츠 운영 시 토큰 효율을 함께 고려해야 합니다.

토큰화란 무엇인가

토큰화는 입력 텍스트를 언어 모델이 실제로 다루는 최소 단위인 토큰으로 분해하는 과정입니다. 모델은 글자나 단어를 그대로 읽지 않고, 토큰을 정수 ID 시퀀스로 변환한 뒤 그 숫자열을 입력으로 받습니다. 따라서 토큰화는 텍스트가 모델에 들어가기 직전에 반드시 거치는 관문이며, 같은 문장이라도 토크나이저가 다르면 분해 결과와 토큰 개수가 달라집니다.

초기에는 공백 기준으로 단어를 나누거나 글자 단위로 쪼갰지만, 단어 단위는 처음 보는 단어(OOV, out-of-vocabulary)를 처리하지 못하고 글자 단위는 시퀀스가 너무 길어진다는 한계가 있었습니다. 현대 LLM 대부분은 그 절충안인 서브워드(subword) 토큰화를 사용합니다. 자주 쓰이는 단어는 통째로 한 토큰, 드문 단어나 합성어는 더 작은 조각들로 나누는 방식입니다.

대표 방식: BPE(Byte Pair Encoding)

오늘날 가장 널리 쓰이는 서브워드 알고리즘은 BPE(Byte Pair Encoding)입니다. BPE는 본래 텍스트 압축 알고리즘이었는데, OpenAI가 GPT 계열 토크나이저에 도입하면서 NLP의 사실상 표준이 되었습니다. Hugging Face 문서에 따르면 BPE는 GPT, GPT-2, RoBERTa, BART, DeBERTa 등 다수 모델에서 사용됩니다.

BPE의 학습 원리는 단순합니다. 먼저 말뭉치에 등장하는 모든 개별 글자를 기본 어휘(vocabulary)로 삼고, 그다음 가장 자주 인접해 등장하는 글자 쌍을 반복적으로 하나로 병합(merge)하면서 점점 더 긴 서브워드를 만들어 갑니다. 이 과정을 목표한 어휘 크기에 도달할 때까지 반복합니다.

Hugging Face의 예시를 그대로 살펴보겠습니다. 단어 빈도가 ("hug", 10), ("pug", 5), ("pun", 12), ("bun", 4), ("hugs", 5)라면 기본 글자 어휘는 다음과 같습니다.

기본 어휘: ["b", "g", "h", "n", "p", "s", "u"]

1차 병합: ("u", "g") → "ug"   # 총 20회 등장으로 가장 빈번
2차 병합: ("u", "n") → "un"   # 16회
3차 병합: ("h", "ug") → "hug" # 15회

학습이 끝나면 새 텍스트는 정규화 → 사전 분리 → 글자 단위 분해 → 학습된 병합 규칙을 순서대로 적용하는 과정을 거쳐 토큰으로 변환됩니다. 이렇게 만들어진 토크나이저는 학습 데이터에 없던 단어도 글자·서브워드 조합으로 표현할 수 있어 OOV 문제를 해결합니다.

이 서브워드 분해의 직관적 예가 OpenAI의 tiktoken 문서에 나옵니다. tiktoken은 OpenAI 모델용 BPE 토크나이저로, 예를 들어 encoding이라는 단어를 encoding으로 나눕니다. 이렇게 하면 모델이 자주 등장하는 어간·접미사 같은 공통 조각을 인식해 문법 패턴을 학습하기 쉬워집니다.

근거와 수치

토큰화의 핵심 수치는 "텍스트가 토큰으로 얼마나 압축되는가"입니다. OpenAI가 제시하는 영어 기준 환산 규칙은 다음과 같습니다(OpenAI Help Center · Tokenizer 문서).

  • 1토큰 ≈ 4글자(영어)
  • 1토큰 ≈ 3/4 단어
  • 100토큰 ≈ 75단어

이는 어디까지나 영어에 대한 어림값이며, 언어와 내용에 따라 달라집니다. tiktoken 문서는 BPE 토큰이 평균적으로 약 4바이트에 해당한다고 설명합니다. 또한 tiktoken이 정의하는 BPE의 성질로 (1) 역변환이 가능하고 무손실이라 토큰을 원문으로 되돌릴 수 있고, (2) 학습 데이터에 없는 임의의 텍스트에도 동작하며, (3) 토큰 시퀀스가 원래 바이트보다 짧아 텍스트를 압축하고, (4) 모델이 공통 서브워드를 보도록 돕는다는 네 가지를 듭니다. 성능 면에서 tiktoken은 비교 대상 오픈소스 토크나이저보다 3~6배 빠르다고 밝히고 있습니다. 사용 인코딩은 GPT-4o용 o200k_base, 그 이전 세대의 cl100k_base 등이 있습니다.

BPE를 신경망 번역에 본격 도입한 출발점은 Sennrich, Haddow, Birch의 2016년 논문 "Neural Machine Translation of Rare Words with Subword Units"(ACL 2016, pp.1715–1725)입니다. 이 논문은 희귀어·미등록어를 서브워드 단위 시퀀스로 표현해 고정 어휘의 한계를 넘어서는 방법을 제시했고, 이후 사실상 모든 현대 LLM 토크나이저의 기반이 되었습니다.

토큰 vs 단어 vs 글자

단위분해 방식장점한계
단어(Word)공백·구두점 기준 분리직관적, 의미 단위 보존미등록어(OOV) 처리 불가, 어휘 폭발
글자(Character)한 글자씩 분해어휘가 작고 OOV 없음시퀀스가 너무 길어 비효율
서브워드(Subword, BPE)빈번한 글자 쌍을 병합한 조각OOV 해결 + 적당한 길이, 압축 효율토크나이저 학습 필요, 언어별 효율 편차

SEO·GEO 시사점

토큰은 단순한 내부 개념이 아니라 운영 비용과 직결됩니다. 생성형 검색·LLM 기반 서비스에서 토큰이 중요한 이유는 두 가지입니다.

  • 토큰 = 비용: 거의 모든 LLM API 요금은 입력·출력 토큰 수로 과금됩니다. 같은 콘텐츠라도 토큰을 적게 쓰도록 구성하면 대량 처리 시 비용이 크게 절감됩니다.
  • 토큰 = 컨텍스트 한계: 모델이 한 번에 처리할 수 있는 분량(컨텍스트 윈도)은 글자 수가 아니라 토큰 수로 정의됩니다. RAG로 문서를 넣거나 긴 페이지를 요약·인용시킬 때, 토큰을 초과하면 내용이 잘립니다.
  • 언어별 토큰 효율: 영어는 1토큰 ≈ 4글자로 비교적 효율적이지만, 한국어를 포함한 형태가 복잡한 언어는 같은 의미라도 더 많은 토큰을 소비하는 경향이 있습니다. 다국어 콘텐츠 운영 시 언어별 토큰 비용 차이를 고려해야 합니다.
  • GEO 관점의 청킹: 생성형 검색엔진이 콘텐츠를 인용하려면 먼저 페이지를 청크(chunk) 단위로 잘라 처리합니다. 이 청크 경계가 토큰 단위로 결정되므로, 핵심 정보를 한 토큰 블록 안에 응집해 두면 AI가 통째로 인용하기 유리합니다. 핵심 답변을 짧고 자기완결적으로 배치하는 AEO 전략이 토큰 구조와 맞닿는 지점입니다.

참고·출처