토큰(Token)과 컨텍스트 윈도우(Context Window) 개념 정리

youngho yooyoungho yoo
3 min read

토큰(Token)과 컨텍스트 윈도우(Context Window) 개념 정리

1. 토큰(Token)이란?

토큰(Token)은 **자연어 처리(NLP)**에서 텍스트를 작은 단위로 나누어 처리하는 기본 단위입니다.
토큰화(Tokenization)는 LLM(대형 언어 모델)이 텍스트를 이해하고 처리할 수 있도록 분할하는 과정입니다.

토큰화의 주요 방법

  1. 문자 기반 토큰화

    • 텍스트를 문자 단위로 나누는 방식

    • 예시: Hello["H", "e", "l", "l", "o"]

  2. 단어 기반 토큰화

    • 텍스트를 단어 단위로 나누는 방식

    • 예시: Hello world["Hello", "world"]

  3. 서브워드 기반 토큰화 (BPE, WordPiece 등)

    • 단어를 더 작은 단위(서브워드)로 나누는 방식

    • 예시: unhappiness["un", "happiness"]

    • 자주 사용되는 BPE(Byte Pair Encoding) 방식은 반복적으로 등장하는 문자 쌍을 결합하여 서브워드를 생성

토큰의 중요성

  • 문맥 이해: 모델이 문맥을 잘 이해하고 더 정확한 응답을 생성할 수 있도록 함

  • 효율성: 적절한 토큰화를 통해 연산 자원을 절약할 수 있음

  • 비용 절감: 토큰 사용량이 많을수록 비용이 증가하므로 효율적인 토큰화가 중요

입력과 출력의 토큰 사용량 차이

LLM에서는 입력 토큰과 출력 토큰의 비용이 다르게 계산됩니다.
예를 들어, OpenAI의 GPT-4.5 모델은 입력 토큰과 출력 토큰의 가격이 다를 수 있음.

  • 입력 토큰: 사용자가 모델에 제공하는 텍스트 (프롬프트, 시스템 메시지 포함)

  • 출력 토큰: 모델이 생성한 응답 텍스트

토큰 사용량 계산기 참고:


2. 컨텍스트 윈도우(Context Window)

컨텍스트 윈도우는 LLM이 한 번에 처리할 수 있는 최대 입력 및 출력 토큰 수를 의미합니다.
이 값이 클수록 긴 문맥을 더 잘 이해할 수 있으며, 모델이 보다 일관된 응답을 제공할 수 있습니다.

GPT모델 들의 컨텍스트 윈도우

모델명최대 컨텍스트 윈도우
GPT-4.5128,000 토큰
O3-MINI200,000 토큰
GPT-4O128,000 토큰

주의:
1. 모델의 컨텍스트 윈도우가 128,000 토큰이면, 입력 + 출력 토큰을 합한 값이 128,000을 초과할 수 없음.
2. 최대 출력 토큰은 특정 값으로 정해져있음.

컨텍스트 윈도우에 포함되는 요소

컨텍스트 윈도우에는 단순한 입력 텍스트 외에도 여러 요소가 포함됩니다.

  1. 사용자 입력 (프롬프트)

    • 사용자가 모델에게 제공하는 텍스트

    • 예: "서울에서 가장 유명한 음식은?"

  2. 시스템 메시지 (System Prompt)

    • 모델의 동작 방식이나 스타일을 정의하는 메시지

    • 예: "너는 친절한 도우미야. 대답을 최대한 간결하게 해줘."

  3. 대화 이력 (Chat History)

    • 챗봇에서는 이전 대화 기록도 컨텍스트 윈도우에 포함됨

    • 예: "지난번 대화에서 말했던 내용을 다시 알려줘."

  4. 출력 토큰

    • 모델이 생성하는 응답도 컨텍스트 윈도우에 포함됨

    • 입력과 출력을 합한 값이 컨텍스트 윈도우 제한을 초과할 수 없음!

max_tokens와 컨텍스트 윈도우의 관계

max_tokens란?

  • max_tokens모델이 생성할 수 있는 최대 출력 토큰 수를 지정하는 매개변수입니다.

  • 하지만 컨텍스트 윈도우와 출력 토큰의 최대 한도가 있기 때문에,

    • 너무 큰 값을 설정해도 자동 조정되거나 출력 한도를 초과하면 무시됨.
  • 컨텍스트 윈도우(Context Window)

    • 입력 토큰 + 출력 토큰의 총합이 컨텍스트 윈도우 크기를 초과할 수 없음.

    • 예를 들어, 컨텍스트 윈도우가 32,768 토큰이면,

      • 입력이 20,000 토큰이면 출력은 최대 12,768 토큰까지만 가능.
  • 출력 토큰의 한도 (Max Output Tokens)

    • 일부 모델은 컨텍스트 윈도우 내에서도 출력 토큰의 최대치를 따로 제한함.

    • 예를 들어, GPT-4.5 preview모델이 한 번에 생성할 수 있는 최대 출력이 16,384 토큰이라면:

      • 입력이 10,000 토큰이어도 출력은 최대 16,384 토큰까지만 생성 가능.

      • max_tokens=20,000으로 설정해도, 모델의 출력 한도(16,384)를 초과하면 16,384까지만 생성됨.


3. 효율적인 토큰 사용 전략

  1. 불필요한 텍스트 제거: 입력 문장에서 필요 없는 정보를 최소화하여 토큰 수를 절약

  2. 적절한 토큰화 선택: 상황에 맞는 토큰화 방법(BPE, WordPiece 등)을 활용

  3. 컨텍스트 윈도우 고려: 긴 문장을 입력할 때 컨텍스트 윈도우 한계를 초과하지 않도록 주의

  4. 요약 및 압축 활용: 요약 모델을 사용해 긴 텍스트를 줄여 비용 절감


4. 컨텍스트 윈도우와 비용의 관계

토큰 사용량이 많으면 비용도 증가

  • OpenAI 모델을 사용할 때 입력 토큰과 출력 토큰 수에 따라 비용이 계산됨.

  • 특히, 입력 토큰은 많이 사용할수록 비용이 더 커질 수 있음.

입력과 출력 토큰 비율 조절이 중요

  • 대화형 모델에서는 입력(컨텍스트)이 많을수록 모델이 정교한 답변을 할 수 있지만, 컨텍스트 윈도우를 초과하면 이전 대화가 사라질 수 있음.

  • 효율적인 max_tokens 설정이 필요함.

1
Subscribe to my newsletter

Read articles from youngho yoo directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

youngho yoo
youngho yoo