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

토큰이란 무엇이며 어떻게 세나요?

마지막 수정: 19 days ago

토큰이란?

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

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

  • 1 토큰 ≈ 4자

  • 1 토큰 ≈ 단어의 ¾

  • 100 토큰 ≈ 75단어

  • 문장 1–2개 ≈ 30 토큰

  • 문단 1개 ≈ 100 토큰

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

토큰화는 언어에 따라 달라질 수 있습니다. 예를 들어 “Cómo estás”(스페인어로 “How are you”)는 10자이지만 5개의 토큰을 포함합니다. 영어가 아닌 텍스트는 종종 문자 대비 토큰 비율이 더 높아, 비용과 제한에 영향을 줄 수 있습니다.

예시

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

  • 웨인 그레츠키(Wayne Gretzky)의 명언 “You miss 100% of the shots you don’t take” = 11 토큰

  • The OpenAI Charter = 476 토큰

  • 미국 독립선언서(US Declaration of Independence) = 1,695 토큰

토큰 수 계산 방식

API로 텍스트를 보내면:

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

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

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

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

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

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

  • 캐시된 토큰 – 대화 기록에서 재사용된 토큰(종종 할인된 요금으로 과금).

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

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

토큰화를 더 살펴보려면, 텍스트의 토큰 수를 계산하고 토큰으로 어떻게 분해되는지 확인할 수 있는 대화형 Tokenizer 도구를 사용할 수 있습니다.

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

토큰 제한

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

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

  • 프롬프트를 더 짧게 하거나 바꿔 쓰기.

  • 긴 텍스트를 더 작은 조각으로 나누기.

  • 전송 전에 입력을 요약하거나 사전 처리하기.

토큰 가격

API 사용 요금은 토큰 단위로 책정되며, 모델 종류와 토큰이 입력/출력/캐시 중 무엇인지에 따라 달라집니다. 최신 요금은 OpenAI의 가격 페이지를 확인하세요. 일부 추론 모델은 내부적으로 더 많은 토큰을 사용할 수 있지만, 완료된 작업당 필요한 토큰 수를 줄여 효율을 높이는 것을 목표로 합니다.

토큰 더 알아보기

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

우리 눈에는 동일한 두 단어처럼 보이더라도, 텍스트 안에서 어떻게 구성되어 있는지에 따라 서로 다른 토큰으로 생성될 수 있습니다. 다음은 텍스트 문맥에 따라 ‘red’라는 단어에 대해 API가 토큰 값을 생성하는 방식의 예입니다:

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”은 앞의 두 예시와는 다른 값입니다.

관찰:

토큰이 더 확률 높고/자주 등장할수록, 부여되는 토큰 번호는 더 낮습니다:

  • 마침표에 대해 생성되는 토큰은 3개의 문장 모두에서 동일(“13”)합니다. 이는 문맥적으로 마침표가 코퍼스 데이터 전반에서 꽤 비슷한 방식으로 사용되기 때문입니다.

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

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

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

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

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