기초

토큰화 (tokenization)

텍스트를 단어, 서브워드, 문자 등의 작은 단위(토큰)로 분해하여 언어 모델이 처리하고 숫자 ID로 변환할 수 있도록 만드는 전처리 단계입니다.

**토큰화 (tokenization)**는 대규모 언어 모델 (LLM)에 텍스트를 처리하는 첫 번째 단계입니다 — 원시 텍스트를 토큰이라고 불리는 작은 단위로 분해하는 과정입니다. 토큰은 전체 단어, 서브워드(접두사 또는 접미사), 단일 문자, 또는 심지어 몇 바이트일 수도 있습니다. 그런 다음 각 토큰은 모델의 고정된 어휘(보통 30,000~200,000 항목)에서 고유한 정수 ID를 할당받습니다.

현대의 LLM은 거의 모두 서브워드 토큰화의 변형을 사용합니다:

  • Byte-Pair Encoding (BPE) — GPT 모델이 사용, 개별 바이트에서 시작하여 가장 빈번한 쌍을 병합
  • WordPiece — BERT 계열, BPE와 유사하지만 다른 병합 기준
  • SentencePiece / Unigram — Llama, T5, 많은 다국어 모델, 공백에 의한 사전 분할 없이 원시 텍스트에서 직접 동작
  • Tiktoken — OpenAI의 BPE 구현, GPT-3.5/4/5에 사용

토큰화는 비용과 컨텍스트 크기에 직접적인 영향을 미칩니다. API는 토큰 단위로 청구되며, 컨텍스트 윈도우는 문자가 아닌 토큰으로 측정됩니다. 영어 텍스트는 일반적으로 단어당 0.75 토큰을 소비하며, 크로아티아어, 독일어, 중국어는 같은 내용에 대해 1.53배 더 많은 토큰을 사용할 수 있습니다 — 따라서 크로아티아어 쿼리는 언어적으로 어려울 뿐만 아니라 더 비싸기도 합니다.

토큰화 후, 각 ID는 임베딩 벡터로 매핑되고 모델의 트랜스포머 층에 들어갑니다.

출처

관련 항목