토큰(Token) — LLM의 언어 단위가 '토큰'이 된 유래
한줄 요약
AI의 “토큰”은 철학자 찰스 퍼스의 언어학 개념에서 왔으며, 화폐 토큰과 같은 어원을 가진다 — LLM 비용이 “토큰 수”로 계산되는 것은 우연이 아니다.
언어학의 type vs token — 찰스 퍼스
19세기 말 미국의 철학자 찰스 샌더스 퍼스(Charles Sanders Peirce)는 언어 단위를 두 가지로 구분했다.
Type(유형): 추상적 언어 단위. “사과”라는 단어 그 자체. 몇 번 사용되든 하나의 type이다.
Token(개별 사례): 실제로 발생한 단어의 구체적 출현. “나는 사과를 먹었고 사과가 맛있었다”에는 type “사과”의 token이 두 개 있다.
이 구분은 언어학과 철학에서 핵심 개념이 됐다. 언어를 처리할 때 우리는 구체적인 token을 다루지만, 의미는 추상적인 type에 귀속된다.
”토큰”이라는 단어 자체의 어원
영어 “token”은 고대 영어 tacen (표시, 신호, 증거)에서 왔고, 더 거슬러 올라가면 게르만어 taiknam (보여주다)에서 유래한다. 화폐 토큰(버스 토큰, 게임 토큰), 약속의 토큰(token of appreciation) — 모두 같은 어원이다.
“작은 단위의 대표물”이라는 의미가 핵심이다. 실제 돈이 아니지만 돈처럼 쓰이는 것. 실제 단어가 아니지만 단어를 대표하는 것.
NLP에서 tokenization의 역사
자연어 처리에서 tokenization(토큰화)은 텍스트를 처리 단위로 나누는 과정이다.
초기 NLP에서는 공백으로 구분되는 단어(word)가 기본 단위였다. 그러나 이 방식은 “먹었다”, “먹었어”, “먹었는데” 등 어미 변화를 다 다른 단어로 취급해야 하는 문제가 있었다.
현대 LLM은 BPE(Byte Pair Encoding)와 같은 하위 단어(subword) 토크나이저를 쓴다. 가장 자주 함께 등장하는 바이트 쌍을 반복적으로 병합해 어휘 사전을 만드는 방식이다. “unhappiness”는 “un”, “happiness” 혹은 “un”, “hap”, “pi”, “ness” 등으로 나뉠 수 있다.
왜 이 이름인가
NLP 연구자들이 처리 단위를 “word” 대신 “token”이라고 부르기 시작한 이유는 정확성 때문이다. 처리 단위가 반드시 단어(word)와 일치하지 않기 때문이다.
“token”은 더 중립적이다 — 어떤 단위든 처리의 기본 입출력이 되면 token이다. 음절이든, 형태소든, 단어든, 두 단어의 합이든.
또한 퍼스의 type-token 구분에서 온 언어학적 정통성이 있다. NLP 연구자들은 이 구분을 알고 있었고, “token”을 쓰는 것이 자연스러웠다.
한국어가 토큰을 많이 소비하는 이유
GPT-4의 토크나이저는 주로 영어 데이터로 훈련됐다. 영어 단어 “apple”은 대개 12개의 토큰이다. 그러나 한국어 “사과”는 34개의 토큰이 될 수 있다.
이유는 두 가지다. 첫째, 한국어는 영어에 비해 훈련 데이터에서 비중이 낮아 한국어 패턴이 충분히 학습되지 않았다. 둘째, 한국어의 교착어 특성 — 어미, 조사가 붙는 방식 — 이 BPE 토크나이저와 잘 맞지 않는다.
실용적 결과: 한국어로 동일한 내용을 쓰면 영어보다 1.5~2배 많은 토큰이 쓰인다. API 비용이 그만큼 높아진다.
”토큰 = 돈” 비유의 정확성
OpenAI를 비롯한 LLM API들은 사용량을 토큰 수로 계산한다. “토큰이 곧 돈”이라는 비유가 자연스럽게 성립한다.
이것은 원래 “token”의 의미와 묘하게 일치한다 — 실제 화폐는 아니지만 화폐처럼 교환되는 단위. 철학적 토큰이 경제적 토큰으로도 기능하게 됐다.
핵심 정리
- 철학자 찰스 퍼스의 type-token 구분(19세기 말)에서 언어학 개념으로 확립
- “token”의 어원 — 게르만어 “표시, 신호”, 화폐 토큰과 같은 어원
- BPE 등 하위 단어 토크나이저로 인해 token이 반드시 단어와 일치하지 않는다
- 한국어는 영어보다 1.5~2배 더 많은 토큰 소비 — API 비용에 직결
- “토큰 = 비용 단위”는 원래 token의 화폐적 의미와 우연히 일치