OpenAI
이 페이지는 기계 번역되었습니다. 영어 원문 보기

토큰이란 무엇이며 어떻게 계산하나요?

마지막 수정: 26 days ago

토큰이란 무엇인가요?

토큰은 OpenAI 모델이 처리하는 텍스트의 구성 단위입니다. 언어와 문맥에 따라 토큰은 문자 하나만큼 짧을 수도 있고, 단어 하나만큼 길 수도 있습니다. 공백, 문장 부호, 단어의 일부도 모두 토큰 수에 포함됩니다. 이는 API가 응답을 생성하기 전에 내부적으로 텍스트를 분할하는 방식입니다.

영어에 유용한 대략적인 기준:

  • 토큰 1개 ≈ 문자 4개

  • 토큰 1개 ≈ 단어의 ¾

  • 토큰 100개 ≈ 단어 75개

  • 문장 1~2개 ≈ 토큰 30개

  • 문단 1개 ≈ 토큰 100개

  • 단어 약 1,500개 ≈ 토큰 2,048개

토큰화는 모델과 인코딩에 따라 달라집니다. 대상 모델의 정확한 수를 확인하려면 Tokenizer 도구 또는 tiktoken.encoding_for_model(model)을 사용하세요.

예시

다음은 실제 텍스트 샘플과 그 대략적인 토큰 수입니다.

  • 웨인 그레츠키의 명언 “시도하지 않은 슛은 100% 놓친 것이다” = 토큰 11개

  • OpenAI Charter = 토큰 476개

  • 미국 독립 선언문 = 토큰 1,695개

토큰 수 계산 방식

API로 텍스트를 보내면:

  1. 텍스트가 토큰으로 분할됩니다.

  2. 모델이 이러한 토큰을 처리합니다.

  3. 응답은 토큰 시퀀스로 생성된 뒤 다시 텍스트로 변환됩니다.

토큰 사용량은 여러 범주로 추적됩니다.

  • 입력 토큰 – 요청에 포함된 토큰입니다.

  • 출력 토큰 – 응답에서 생성된 토큰입니다.

  • 캐시된 토큰 – 대화 기록에서 재사용되는 토큰입니다(대개 할인된 요금이 적용됨).

  • 추론 토큰 – 일부 고급 모델에서는 최종 출력을 생성하기 전에 추가 “사고 단계”가 내부적으로 포함됩니다.

이러한 수치는 API 응답 메타데이터에 표시되며 청구 및 사용량 추적에 사용됩니다.

토큰화를 더 살펴보려면 대화형 Tokenizer 도구를 사용할 수 있습니다. 이 도구를 사용하면 토큰 수를 계산하고 텍스트가 토큰으로 분할되는 방식을 확인할 수 있습니다.

또는 프로그래밍 방식으로 텍스트를 토큰화하려면 OpenAI 모델에 특화되어 사용되는 빠른 BPE 토크나이저인 Tiktoken을 사용하세요.

토큰 한도

모델에는 입력과 출력을 합산한 최대 토큰 한도가 있습니다. 현재 고용량 모델은 컨텍스트에서 최대 수십만 개의 토큰을 지원하지만, 실제 한도는 모델 버전과 사용량 등급에 따라 달라질 수 있습니다.

한도를 초과하면 다음을 수행할 수 있습니다.

  • 프롬프트를 줄이거나 다시 표현합니다.

  • 긴 텍스트를 더 작은 청크로 나눕니다.

  • 입력을 보내기 전에 요약하거나 전처리합니다.

토큰 가격

API 사용량은 토큰당 요금이 부과되며, 모델과 토큰이 입력, 출력 또는 캐시된 토큰인지에 따라 달라집니다. 현재 요금은 OpenAI의 가격 페이지를 참조하세요. 일부 추론 모델은 내부적으로 더 많은 토큰을 사용할 수 있지만, 완료된 작업당 필요한 토큰 수를 줄여 효율성을 높이는 것을 목표로 합니다.

토큰 살펴보기

API는 말뭉치 데이터의 문맥에 따라 단어를 처리합니다. 모델은 프롬프트를 받아 입력을 토큰 목록으로 변환하고, 프롬프트를 처리한 다음, 예측된 토큰을 응답에서 보이는 단어로 다시 변환합니다.

우리에게는 동일한 두 단어처럼 보이는 것도 텍스트 내 구조에 따라 서로 다른 토큰으로 생성될 수 있습니다. 텍스트 내 문맥에 따라 API가 ‘red’라는 단어의 토큰 값을 생성하는 방식을 살펴보세요.

Sentence split into color-coded tokens with Text selected over Token IDs
Token ID output as a list of integers with the Token IDs tab selected

위의 첫 번째 예시에서 ‘ red’의 토큰 “2266”에는 후행 공백이 포함됩니다(참고: 이는 설명을 위한 예시 토큰 ID입니다).

Sentence split into color-coded token blocks: My favorite color is Red.
Tokenizer output with Token IDs selected and a list of numeric token IDs

‘ Red’의 토큰 “2296”(앞에 공백이 있고 대문자로 시작)은 소문자인 ‘ red’의 토큰 “2266”과 다릅니다.

Tokenizer example splitting “Red is my favorite color.” into color-coded tokens
Tokenizer output with Token IDs selected and a list of token ID numbers

‘Red’가 문장의 시작에 사용되면 생성된 토큰에는 앞쪽 공백이 포함되지 않습니다. 토큰 “7738”은 앞의 두 단어 예시와 다릅니다.

관찰:

토큰의 가능성/빈도가 높을수록 더 낮은 토큰 번호가 할당됩니다.

  • 마침표에 대해 생성된 토큰은 세 문장 모두에서 동일합니다(“13”). 이는 문맥상 마침표가 말뭉치 데이터 전반에서 상당히 유사하게 사용되기 때문입니다.

  • ‘red’에 대해 생성된 토큰은 문장 내 위치에 따라 달라집니다.

    • 문장 중간의 소문자: ‘ red’ - (토큰: “2266”)

    • 문장 중간의 대문자: ‘ Red’ - (토큰: “2297”)

    • 문장 시작의 대문자: ‘Red’ - (토큰: “7738”)

이 문서가 도움이 되었나요?