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

토큰(Token)과 컨텍스트 윈도우(Context Window) 개념 정리
1. 토큰(Token)이란?
토큰(Token)은 **자연어 처리(NLP)**에서 텍스트를 작은 단위로 나누어 처리하는 기본 단위입니다.
토큰화(Tokenization)는 LLM(대형 언어 모델)이 텍스트를 이해하고 처리할 수 있도록 분할하는 과정입니다.
토큰화의 주요 방법
문자 기반 토큰화
텍스트를 문자 단위로 나누는 방식
예시:
Hello
→["H", "e", "l", "l", "o"]
단어 기반 토큰화
텍스트를 단어 단위로 나누는 방식
예시:
Hello world
→["Hello", "world"]
서브워드 기반 토큰화 (BPE, WordPiece 등)
단어를 더 작은 단위(서브워드)로 나누는 방식
예시:
unhappiness
→["un", "happiness"]
자주 사용되는 BPE(Byte Pair Encoding) 방식은 반복적으로 등장하는 문자 쌍을 결합하여 서브워드를 생성
토큰의 중요성
문맥 이해: 모델이 문맥을 잘 이해하고 더 정확한 응답을 생성할 수 있도록 함
효율성: 적절한 토큰화를 통해 연산 자원을 절약할 수 있음
비용 절감: 토큰 사용량이 많을수록 비용이 증가하므로 효율적인 토큰화가 중요
입력과 출력의 토큰 사용량 차이
LLM에서는 입력 토큰과 출력 토큰의 비용이 다르게 계산됩니다.
예를 들어, OpenAI의 GPT-4.5 모델은 입력 토큰과 출력 토큰의 가격이 다를 수 있음.
입력 토큰: 사용자가 모델에 제공하는 텍스트 (프롬프트, 시스템 메시지 포함)
출력 토큰: 모델이 생성한 응답 텍스트
토큰 사용량 계산기 참고:
2. 컨텍스트 윈도우(Context Window)
컨텍스트 윈도우는 LLM이 한 번에 처리할 수 있는 최대 입력 및 출력 토큰 수를 의미합니다.
이 값이 클수록 긴 문맥을 더 잘 이해할 수 있으며, 모델이 보다 일관된 응답을 제공할 수 있습니다.
GPT모델 들의 컨텍스트 윈도우
모델명 | 최대 컨텍스트 윈도우 |
GPT-4.5 | 128,000 토큰 |
O3-MINI | 200,000 토큰 |
GPT-4O | 128,000 토큰 |
주의:
1. 모델의 컨텍스트 윈도우가 128,000 토큰이면, 입력 + 출력 토큰을 합한 값이 128,000을 초과할 수 없음.
2. 최대 출력 토큰은 특정 값으로 정해져있음.
컨텍스트 윈도우에 포함되는 요소
컨텍스트 윈도우에는 단순한 입력 텍스트 외에도 여러 요소가 포함됩니다.
사용자 입력 (프롬프트)
사용자가 모델에게 제공하는 텍스트
예: "서울에서 가장 유명한 음식은?"
시스템 메시지 (System Prompt)
모델의 동작 방식이나 스타일을 정의하는 메시지
예:
"너는 친절한 도우미야. 대답을 최대한 간결하게 해줘."
대화 이력 (Chat History)
챗봇에서는 이전 대화 기록도 컨텍스트 윈도우에 포함됨
예: "지난번 대화에서 말했던 내용을 다시 알려줘."
출력 토큰
모델이 생성하는 응답도 컨텍스트 윈도우에 포함됨
입력과 출력을 합한 값이 컨텍스트 윈도우 제한을 초과할 수 없음!
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. 효율적인 토큰 사용 전략
불필요한 텍스트 제거: 입력 문장에서 필요 없는 정보를 최소화하여 토큰 수를 절약
적절한 토큰화 선택: 상황에 맞는 토큰화 방법(BPE, WordPiece 등)을 활용
컨텍스트 윈도우 고려: 긴 문장을 입력할 때 컨텍스트 윈도우 한계를 초과하지 않도록 주의
요약 및 압축 활용: 요약 모델을 사용해 긴 텍스트를 줄여 비용 절감
4. 컨텍스트 윈도우와 비용의 관계
토큰 사용량이 많으면 비용도 증가
OpenAI 모델을 사용할 때 입력 토큰과 출력 토큰 수에 따라 비용이 계산됨.
특히, 입력 토큰은 많이 사용할수록 비용이 더 커질 수 있음.
입력과 출력 토큰 비율 조절이 중요
대화형 모델에서는 입력(컨텍스트)이 많을수록 모델이 정교한 답변을 할 수 있지만, 컨텍스트 윈도우를 초과하면 이전 대화가 사라질 수 있음.
효율적인 max_tokens 설정이 필요함.
Subscribe to my newsletter
Read articles from youngho yoo directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
