토큰 수는 어떻게 계산될까? AI가 문장을 처리하는 원리

토큰

토큰이란 무엇인가? 생성형 AI의 핵심 단위를 쉽게 설명

생성형 AI를 사용하다 보면 ‘토큰’이라는 말을 자주 접한다. 답변 길이를 설명할 때도 등장하고, API 비용을 계산할 때도 등장하며, 긴 문서를 처리할 수 있는 범위를 말할 때도 쓰인다. 이 때문에 토큰을 단순히 글자 수나 단어 수라고 생각하기 쉽지만 정확히 같은 개념은 아니다.

토큰은 AI가 텍스트를 읽고 생성하기 위해 사용하는 처리 단위다. 문장을 레고 블록으로 만든 구조물이라고 본다면, 토큰은 그 구조물을 조립하는 작은 블록에 가깝다. 하나의 토큰은 단어 전체일 수도 있고 단어의 일부, 한 글자, 숫자, 문장부호 또는 공백과 결합된 형태일 수도 있다. 어떤 문장이 몇 개의 토큰으로 나뉘는지는 언어와 문맥, 모델이 사용하는 토크나이저에 따라 달라진다.

토큰은 단어 수나 글자 수와 같은 개념이 아니다

사람은 문장을 단어와 문장 단위로 읽는다. 반면 언어 모델은 입력된 텍스트를 그대로 처리하지 않고 먼저 토큰이라는 조각으로 나눈다. 이 과정을 토큰화라고 하며, 토큰화를 담당하는 방식을 토크나이저라고 부른다.

예를 들어 영어의 자주 쓰이는 짧은 단어는 하나의 토큰이 될 수 있다. 드물거나 긴 단어는 여러 조각으로 나뉠 수 있다. 숫자, 쉼표, 마침표 같은 기호도 토큰 수에 영향을 준다. 같은 철자라도 문장 안의 위치, 대문자와 소문자, 앞뒤 공백에 따라 다른 토큰으로 처리될 수 있다.

구분 사람이 세는 기준 AI가 처리하는 기준
글자 수 문자 하나씩 계산 토큰과 일치하지 않을 수 있음
단어 수 띄어쓰기나 어휘 단위로 계산 한 단어가 여러 토큰으로 나뉠 수 있음
토큰 수 사람이 눈으로 정확히 세기 어려움 모델과 인코딩 방식에 따라 결정

따라서 “100글자는 100토큰”이나 “100단어는 100토큰”처럼 고정해서 계산하면 오차가 생긴다. OpenAI는 영어 기준으로 1토큰을 약 4개 문자 또는 약 0.75단어로 보는 경험칙을 안내한다. 다만 이는 영어 문장의 분량을 빠르게 추정하기 위한 기준일 뿐이며, 정확한 값은 대상 모델의 토크나이저로 확인해야 한다.

토큰은 텍스트 조각 자체에서 끝나지 않는다. 토큰화가 완료되면 각각의 토큰은 모델이 계산할 수 있는 숫자 ID로 변환된다. 모델은 토큰들의 관계와 배열을 처리해 다음에 올 가능성이 높은 토큰을 예측한다. 사용자가 보는 자연스러운 문장은 이러한 예측이 반복된 뒤 다시 텍스트로 변환된 결과다.

AI는 왜 문장을 토큰 단위로 처리할까

모든 단어를 각각 하나의 항목으로 등록하는 방식은 비효율적이다. 언어에는 새로운 단어, 고유명사, 오탈자, 합성어와 변화형이 계속 생긴다. 단어 전체만 처리하도록 설계하면 사전에 없는 표현을 다루기 어렵고, 필요한 어휘 목록도 지나치게 커진다.

반대로 모든 문장을 글자 하나씩만 나누면 어떤 문자열도 표현할 수 있지만, 의미 있는 패턴을 학습하는 데 더 긴 토큰 열이 필요해진다. 토크나이저는 자주 등장하는 문자열은 비교적 큰 단위로 묶고, 드문 표현은 더 작은 조각으로 나누는 방식으로 두 문제 사이의 균형을 맞춘다.

언어 모델의 기본 동작은 앞에서 주어진 토큰들을 바탕으로 다음 토큰의 확률을 계산하는 것이다. “오늘 날씨가”라는 입력 뒤에는 “좋다”, “춥다”, “흐리다”처럼 문맥에 어울리는 후보가 높은 확률을 얻을 수 있다. 모델은 선택된 토큰을 기존 문맥 뒤에 붙이고 다시 그다음 토큰을 예측한다. 이 과정이 빠르게 반복되면서 문장과 문단이 생성된다.

여기서 토큰은 사람이 생각하는 의미 단위와 완전히 일치하지 않는다. 특정 토큰 하나가 독립된 개념을 이해한다는 뜻도 아니다. 의미에 가까운 표현은 여러 토큰이 문맥 속에서 맺는 관계를 통해 구성된다. 토큰은 AI의 ‘단어’라기보다 텍스트를 계산 가능한 형태로 바꾸는 입구라고 보는 편이 정확하다.

한국어는 토큰 수가 더 많이 나올 수 있다

같은 의미를 전달하는 문장이라도 언어에 따라 토큰 수가 달라질 수 있다. 특히 영어에서 만든 간단한 환산식을 한국어에 그대로 적용하면 실제 결과와 차이가 커질 수 있다. 한국어는 조사와 어미가 결합하고, 한글과 숫자·영문·기호가 섞이는 경우가 많아 토큰이 나뉘는 방식이 영어와 다르기 때문이다.

예를 들어 “사용했습니다”, “사용합니다”, “사용할까요”는 사람에게 같은 어근을 가진 자연스러운 활용형으로 보인다. 토크나이저는 이를 하나의 완성된 단어로 처리할 수도 있고, 공통 부분과 어미를 여러 조각으로 나눌 수도 있다. 제품명이나 영문 약어가 섞인 문장, 띄어쓰기가 불규칙한 문장, 긴 숫자와 특수기호가 포함된 문장도 토큰 수가 달라지는 원인이 된다.

그렇다고 한국어가 언제나 영어보다 많은 토큰을 사용한다고 단정할 수는 없다. 토큰화 결과는 모델의 어휘 집합과 인코딩 방식, 문장의 실제 표현에 영향을 받는다. 모델에 따라 같은 문장도 서로 다른 토큰 수로 계산될 수 있으므로, 정확한 계산이 필요할 때는 실제 사용할 모델에 맞는 토크나이저를 확인해야 한다.

문장을 억지로 줄이거나 조사를 생략한다고 항상 토큰이 크게 절약되는 것도 아니다. 표현이 지나치게 압축되면 모델이 의도를 해석하는 데 필요한 맥락이 사라질 수 있다. 토큰 절약은 글자를 무조건 줄이는 작업이 아니라, 중복 지시와 불필요한 자료를 제거하면서 필요한 조건은 명확하게 남기는 작업이어야 한다.

입력 토큰과 출력 토큰은 어떻게 구분할까

입력 토큰은 사용자가 모델에 보내는 내용에서 발생한다. 질문이나 지시문뿐 아니라 첨부한 텍스트, 대화 기록, 시스템 지시, 도구 사용에 필요한 정보처럼 모델이 현재 응답을 만들기 위해 참고하는 문맥도 포함될 수 있다. 서비스와 API 구성에 따라 사용자가 화면에서 보는 문장보다 실제 처리되는 입력 범위가 넓을 수 있다.

출력 토큰은 모델이 답변을 생성하면서 만든 토큰이다. 짧은 답을 요청하면 대체로 출력 토큰이 줄고, 상세한 보고서나 긴 코드를 요청하면 늘어난다. OpenAI API 응답에서는 입력 토큰과 출력 토큰, 전체 사용량 등을 메타데이터로 확인할 수 있다. 일부 모델과 시스템에서는 반복 입력과 관련된 캐시 토큰이나 내부 추론에 사용되는 토큰을 별도로 구분하기도 한다.

컨텍스트 윈도우는 모델이 한 번의 작업에서 참고할 수 있는 전체 토큰 범위다. 현재 입력, 유지되는 대화 문맥, 시스템 지시와 생성할 출력 등이 이 범위 안에서 함께 관리된다. 모델마다 지원 범위가 다르며, 시스템 지시와 내부 처리에도 공간이 사용되므로 실제로 사용자가 입력에 활용할 수 있는 양은 전체 한도보다 작을 수 있다.

긴 대화가 이어질수록 이전 메시지가 문맥에 포함되어 입력 토큰이 증가할 수 있다. 다만 ChatGPT 같은 완성형 서비스가 모든 과거 대화를 언제나 같은 방식으로 그대로 전송한다고 단정해서는 안 된다. 대화 관리, 요약, 메모리와 도구 사용 방식에 따라 실제로 구성되는 문맥은 달라질 수 있다.

토큰은 비용과 답변 길이에 어떤 영향을 줄까

API를 이용해 서비스를 개발할 때 토큰은 사용량과 비용을 계산하는 핵심 기준이다. 일반적으로 입력 토큰과 출력 토큰의 단가가 구분되고, 모델이나 캐시 적용 여부에 따라 가격이 달라질 수 있다. 가격 정책은 변경될 수 있으므로 실제 개발과 예산 산정에서는 공식 가격표와 사용량 대시보드를 확인해야 한다.

이 설명을 ChatGPT 구독 요금과 동일하게 받아들이면 안 된다. ChatGPT 웹이나 앱의 개인·업무용 요금제는 정해진 구독 구조와 사용 정책을 따르며, 사용자가 매 답변의 토큰 수만큼 별도 청구받는 API 종량제와는 운영 방식이 다르다. 토큰 기반 과금이라는 설명은 주로 API 사용량을 이해할 때 직접적으로 적용된다.

토큰은 답변 길이에도 영향을 준다. 출력 한도를 낮게 설정하면 답변이 짧아지거나 내용이 끝나기 전에 중단될 수 있다. 반대로 출력 한도를 높인다고 답변 품질이 자동으로 좋아지는 것은 아니다. 모델에 충분한 출력 공간을 주는 것과 그 공간을 유용한 정보로 채우는 것은 별개의 문제다.

전체 토큰 한도를 초과하면 요청이 처리되지 않거나 입력을 줄여야 할 수 있다. 긴 계약서나 연구자료를 분석할 때는 자료 전체를 무조건 한꺼번에 넣기보다 목적별로 나누고, 앞 단계의 핵심 내용을 요약해 다음 단계에 넘기는 방식이 안정적이다. OpenAI도 한도를 초과할 때 프롬프트 단축, 자료 분할, 사전 요약 등의 방법을 안내한다.

토큰을 이해하면 AI를 더 효율적으로 사용할 수 있다

일반 사용자가 매 질문마다 토큰 수를 계산할 필요는 없다. 짧은 질문과 일상적인 문서 작성에서는 원하는 결과, 포함할 정보, 제외할 조건을 명확히 쓰는 편이 더 중요하다. 토큰을 지나치게 아끼려다 지시가 모호해지면 여러 번 다시 질문해야 하므로 전체 작업량이 오히려 늘 수 있다.

토큰 관리가 특히 중요한 상황은 API 비용을 예측할 때, 긴 문서를 반복 처리할 때, 대량의 요청을 자동화할 때, 모델의 컨텍스트 한도에 가까운 작업을 할 때다. 이 경우에는 입력과 출력 사용량을 따로 측정하고, 실제 데이터로 평균값과 최대값을 확인해야 한다. API 사용량은 응답의 usage 정보와 사용량 대시보드를 통해 점검할 수 있다.

  • 같은 배경 설명을 여러 번 붙이지 말고 재사용할 지침으로 정리한다.
  • 긴 자료는 임의의 글자 수보다 문단이나 장처럼 의미가 이어지는 단위로 나눈다.
  • 먼저 요약한 뒤 필요한 부분만 상세 분석하도록 작업을 단계화한다.
  • 출력 형식과 필요한 분량을 명시해 불필요하게 긴 답변을 줄인다.
  • 정확한 예산 계산이 필요하면 대상 모델의 토크나이저와 API 사용량 데이터를 확인한다.

토큰은 AI 답변의 품질을 점수처럼 나타내는 수치가 아니다. 토큰 수가 많다고 더 정확한 답이 보장되지 않고, 적다고 반드시 효율적인 것도 아니다. 토큰은 텍스트를 모델이 처리하는 단위이자 문맥 범위와 API 사용량을 이해하는 기준이다.

이 개념을 정확히 잡으면 긴 대화에서 왜 이전 내용이 빠질 수 있는지, API 비용이 왜 입력과 출력에 따라 달라지는지, 긴 문서를 왜 나누어 처리해야 하는지 이해하기 쉬워진다. 핵심은 토큰을 무조건 줄이는 것이 아니라 필요한 맥락은 남기고 중복과 불필요한 출력을 줄이는 데 있다.

← 홈으로 돌아가기