AI 서비스에서 “토큰을 많이 사용했다”거나 “컨텍스트가 길다”는 표현을 볼 수 있습니다. 두 용어는 관련되어 있지만 같은 뜻은 아닙니다. 텍스트를 처리하는 단위와 한 번에 다룰 수 있는 범위를 구분하면 이해하기 쉬워요.
텍스트는 토크나이저를 거쳐 토큰 ID의 나열로 변환됩니다. 토큰은 단어 전체일 수도 있고 단어의 일부나 문장 부호 등에 대응할 수도 있어요. 따라서 토큰 하나를 한 글자나 한 단어와 같다고 보면 안 됩니다.
같은 문장도 사용하는 토크나이저에 따라 토큰 수가 달라질 수 있습니다. 한국어와 영어에 같은 글자 수 환산 비율을 일괄 적용하는 것도 정확하지 않아요. 비용이나 길이 제한을 계산해야 한다면 해당 모델에 맞는 토크나이저 또는 서비스의 토큰 계산 기능을 사용하는 편이 낫습니다.
예를 들어 “오늘도 코딩을 공부합니다.”라는 문장을 보고 눈으로 정확한 토큰 수를 정할 수는 없습니다. 이 글에서도 특정 토크나이저로 측정하지 않은 숫자는 제시하지 않겠습니다.
컨텍스트에는 질문 한 줄만 들어가는 것이 아닙니다. 모델에 전달된 지시사항, 대화 기록, 참고 문서, 도구 결과 등이 함께 포함될 수 있어요. 입력과 생성할 출력이 어떻게 한도를 공유하는지는 모델과 서비스의 규칙을 확인해야 합니다.
| 구분 | 먼저 확인할 질문 |
|---|---|
| 토큰 | 이 내용을 어떤 단위로 나누어 처리하나요? |
| 컨텍스트 윈도우 | 현재 요청에서 얼마만큼의 내용을 다룰 수 있나요? |
| 최대 출력 길이 | 이번 응답은 최대 얼마나 길게 생성할 수 있나요? |
컨텍스트 윈도우가 크다고 그 크기만큼 한 번에 답변을 출력할 수 있다는 뜻은 아닙니다. 최대 출력 길이는 별도로 제한될 수 있습니다.
다음은 실제 제품 사양이 아니라 개념 설명용 가정입니다. 전체 한도가 10000토큰이고 입력이 7500토큰이며, 출력도 같은 한도를 공유하는 모델을 생각해 보겠습니다.
전체 한도 10000 - 입력 7500 = 남은 여유 2500
이 계산에서는 출력에 사용할 수 있는 공간이 최대 2500토큰입니다. 그러나 별도의 출력 제한이 1000토큰이라면 그것도 따라야 합니다. 실제 요청에서는 메시지 형식이나 도구 정의 등 추가 요소도 고려해야 하므로 문서 본문의 길이만으로 정확한 사용량을 계산하면 안 됩니다.
화면에 보이는 대화 기록, 서비스가 저장한 정보, 모델이 현재 전달받은 컨텍스트는 구분해야 합니다. 서비스는 긴 대화를 요약하거나 일부를 선택해 전달할 수 있어요. 컨텍스트 윈도우 자체가 영구 기억을 의미하는 것은 아닙니다.
또한 많은 내용을 넣을 수 있다는 것과 그 내용을 빠짐없이 정확하게 활용한다는 것은 별개의 문제입니다. 중요한 조건은 명확하게 정리하고, 답변에서 실제로 반영되었는지 확인하는 과정이 필요합니다.
질문, 반드시 지켜야 할 조건, 관련 근거를 구분해서 전달하면 무엇을 확인해야 하는지 명확해집니다. 그렇다고 무조건 짧게 줄이는 것이 목표는 아니에요. 예외 조건이나 핵심 데이터를 삭제하면 오히려 필요한 판단 근거가 사라집니다.
토큰은 처리 단위이고, 컨텍스트 윈도우는 현재 처리 범위라는 구분부터 기억하면 됩니다. 구체적인 한도와 비용은 모델마다 달라지므로 사용할 때 해당 문서를 확인하겠습니다.