본문으로 건너뛰기

토큰화

토큰 계산은 tiktoken 호환, SentencePiece, Hugging Face JSON, 모델별 플러그인 토크나이저를 지원하는 토크나이저 레지스트리를 통해 로컬에서 실행되며, 명시적인 근사 폴백이 있습니다.

로컬 계산

토큰 계산은 기기를 떠나지 않습니다. 레지스트리는 활성 모델에 맞는 토크나이저 프로필을 선택하고, 파이프라인은 네트워크 요청 전에 조립된 컨텍스트를 프로세스 내에서 계산합니다.

토크나이저 레지스트리

레지스트리는 네 종류의 토크나이저를 받습니다.

  • tiktoken 호환 — OpenAI 모델 계열용, OpenAI tiktoken과 호환되는 BPE 토크나이저.
  • SentencePiece — SentencePiece 어휘를 제공하는 모델.
  • Hugging Face 토크나이저 JSON — Hugging Face 저장소의 tokenizer.json 파일을 압축된 순위 형식으로 변환한 것.
  • 모델별 플러그인 — 프로바이더 플러그인이 모델에 정밀한 토크나이저 프로필을 등록할 수 있습니다.

등록된 토크나이저가 없는 모델을 위한 근사 폴백이 있으며, 항상 명시적으로 표시되므로 UI는 추정치를 정확한 수치로 제시하지 않습니다.

기본 제공 프로필

코어는 일반적인 계열에 대한 오프라인 프로필을 등록합니다.

  • openai:o200k_base — GPT-4o, GPT-4.1, GPT-5, o1, o3, o4 계열.
  • openai:cl100k_base — GPT-4, GPT-3.5 Turbo, text-embedding-3 계열.
  • deepseek:bytelevel-bpe-v1 — DeepSeek 계열. 계산은 공식 tokenizer.json의 순위 위에서 압축된 계산 전용 엔진(어휘와 디코더가 없는 BPE 병합 포트)을 통해 실행됩니다. 파일은 원자적 temp-plus-rename 쓰기로 data/cache/tokenizers/deepseek-v4-flash/에 캐시되는 작은 순위 파일로 한 번 변환되며, 전체 JSON과 런타임 토크나이저 라이브러리는 저장되지도 로드되지도 않습니다.

네트워크를 사용할 수 없으면 DeepSeek 프로필은 정직하게 근사 프로필로 폴백하고 15분에 최대 한 번 재시도합니다. 토크나이저가 없어도 생성이 막히지 않습니다.

근사 폴백

알 수 없는 로컬 모델은 approximate-character-v1을 사용합니다. 스크립트를 인식하는 휴리스틱으로, 라틴 문자는 토큰당 약 4.6자, 키릴 문자는 4.0자, CJK는 1.7자, 숫자는 2.0자입니다. 근사치는 나타나는 모든 곳에서 표시되며, 프로바이더 플러그인이 정밀한 프로필을 등록하면 언제든 교체할 수 있습니다.

플러그인 프로필

플러그인은 우선순위와 함께 토크나이저 프로필을 등록합니다. -10보다 높은 우선순위의 플러그인 프로필은 다루는 모델에서 계열 프로필을 오버라이드합니다. 선택된 프로필은 countTokens, tokenizerProfile, tokenizerApproximate로 파이프라인에 전달됩니다.

토큰 예산 결과

계산 후 파이프라인은 PipelineResult.tokenBudget을 노출하며, 여기에는 다음이 포함됩니다.

  • 사용된 토크나이저 프로필;
  • approximate 플래그;
  • 모델의 컨텍스트 한도;
  • 예약된 응답 공간;
  • 최종 프롬프트 토큰 수.

예산이 강제되는 방식은 컨텍스트 시프팅을 참조하세요.