토큰화 설명: 토큰에서 출력까지
작성자: Wendy Frey
대규모 언어 모델이 유용한 것을 생성하기 전에 먼저 훨씬 더 간단한 작업을 수행해야 합니다: 텍스트를 분리하는 것입니다.
그 과정을 **토큰화(tokenization)**라고 하며, 이는 현대 AI 시스템이 작동하는 방식의 가장 중요한 부분 중 하나이자 가장 간과되는 부분입니다.
대부분의 사람들은 모델이 단어를 읽는다고 생각합니다. 그러나 그렇지 않습니다.
모델은 토큰을 읽습니다: 전체 단어, 단어의 일부, 구두점, 공백 또는 개별 기호를 나타낼 수 있는 텍스트의 작은 조각입니다. 그런 토큰은 모델이 내부적으로 처리할 수 있는 숫자 ID로 변환됩니다.
토큰화를 이해하는 것은 많은 것들을 설명하는 데 도움이 됩니다:
- 프롬프트가 비용이 드는 이유
- 컨텍스트 윈도우에 한계가 있는 이유
- 일부 언어가 더 비싼 이유
- 모델이 때때로 이상하게 작동하는 이유
토큰화는 AI 파이프라인의 시작 부분에 있으며, 이후의 모든 것을 조용히 형성합니다.
토큰이란?
토큰은 모델이 작업하는 텍스트의 가장 작은 단위입니다.
이는 항상 단어와 동일하지는 않습니다.
예를 들어:
| 텍스트 | 가능한 토큰 분할 |
|---|---|
| hello | hello |
| tokenization | token + ization |
| unbelievable | un + believ + able |
| 2026! | 202 + 6 +! |
이는 모델이 단어가 아닌 토큰을 계산하기 때문에 중요합니다.
짧아 보이는 문장도 예상보다 많은 토큰을 사용할 수 있으며, 특히 드문 단어, 코드, 이모지 또는 비영어권 언어의 경우에 그렇습니다.
토큰화 작업 원리
고수준에서 토큰화는 간단한 파이프라인을 따릅니다.
1단계: 텍스트 분할
토크나이저는 어휘 규칙에 따라 원시 텍스트를 청크로 나눕니다.
현대 LLM은 일반적으로 서브워드 토큰화를 사용합니다. 이는 전체 단어 토큰화가 아닙니다.
이로 인해 다음을 처리할 수 있는 유연성이 생깁니다:
- 드문 단어
- 오타
- 이름
- 다국어 입력
- 코드
2단계: 토큰을 ID로 변환
각 토큰은 모델의 어휘 내에서 숫자와 매핑됩니다.
예:
| 토큰 | 토큰 ID |
|---|---|
| The | 791 |
| model | 4382 |
| works | 2921 |
모델은 텍스트를 직접 “보지” 않습니다. 오직 이러한 숫자 표현만 봅니다.
이것이 인간 언어와 신경 연산 사이의 다리입니다.
3단계: ID를 임베딩으로 변환
토큰 ID가 생성된 후, 그것들은 벡터 임베딩으로 변환됩니다.
이 지점에서 의미가 나타나기 시작합니다.
이 시점에서:
- 유사한 토큰이 벡터 공간에서 가까운 위치를 차지할 수 있습니다.
- 개념 간의 관계가 측정 가능합니다.
- 컨텍스트가 중요해지기 시작합니다.
토큰화는 데이터를 시스템에 입력합니다. 임베딩은 이를 해석 가능하게 만듭니다.
서브워드 토큰화가 표준이 된 이유
이전의 NLP 시스템은 종종 단어 단위로 텍스트를 나누곤 했습니다.
이 방법은 작동했지만, 그들이 한 번도 보지 못한 단어를 만나면 문제가 발생했습니다.
현대 LLM은 일반적으로 바이트 페어 인코딩(BPE) 또는 유사한 서브워드 전략을 사용합니다.
BPE는 반복적으로 자주 나타나는 문자 패턴을 재사용 가능한 단위로 병합하는 방식으로 작동합니다. 이는 압축 및 어휘 효율성을 향상시킵니다.
서브워드 모델이 더 나은 이유
| 방법 | 주요 문제 |
|---|---|
| 단어 수준 | 너무 많은 알 수 없는 단어 |
| 문자 수준 | 너무 느리고 너무 길다 |
| 서브워드 수준 | 유연성과 효율성의 최상의 균형 |
이것이 대부분의 현대 모델이 서브워드 토큰화의 어떤 변형을 사용하는 이유입니다.
토큰화가 비용에 영향을 미치는 이유
여기서 토큰화는 실용적으로 중요해집니다.
대부분의 AI API는 다음을 기준으로 요금을 부과합니다:
- 입력 토큰
- 출력 토큰
이는 토큰화가 가격에 직접적인 영향을 미친다는 것을 의미합니다.
예를 들어:
| 입력 유형 | 대략적인 토큰 밀도 |
|---|---|
| 간단한 영어 | 낮음 |
| 코드 | 중간-높음 |
| 법률 텍스트 | 높음 |
| 중국어/일본어 | 종종 더 높음 |
| 이모지를 많이 포함한 텍스트 | 놀라울 정도로 높음 |
같은 문자 수를 가진 두 개의 프롬프트는 매우 다른 토큰 수를 가질 수 있습니다.
이는 생산 AI 시스템에서 가장 일반적인 숨겨진 비용 요인 중 하나입니다.
토큰화가 모델 행동에 영향을 미치는 이유
토큰화는 또한 많은 “이상한” 모델 행동을 설명합니다.
예를 들어:
- 모델이 문자 수를 세는 데 어려움을 겪는 이유
- 드문 단어가 예측할 수 없는 방식으로 작동하는 이유
- 형식 변경이 출력에 영향을 미칠 수 있는 이유
- 프롬프트 순서가 중요한 이유
모델은 인간처럼 문자 또는 문법을 생각하지 않고, 토큰 시퀀스를 예측합니다.
그 차이로 인해 사용자가 주목하는 많은 특성이 발생합니다.
커뮤니티 논의는 종종 토큰 구조가 모델이 문자 수준의 추론에서 실패하는 이유 중 하나라는 점을 언급합니다.
토큰은 출력을 생성합니다
입력이 토큰화되면:
- 토큰이 변환기에 들어갑니다
- 모델이 다음 토큰을 예측합니다
- 그 토큰이 추가됩니다
- 이 과정이 반복됩니다
이는 다음이 발생할 때까지 계속됩니다:
- 정지 토큰이 나타납니다
- 토큰 한도에 도달합니다
- 시스템이 생성을 중단합니다
이는 AI 생성이 기본적으로 토큰별 예측 루프이며, 문장 수준의 추론이 아님을 의미합니다.
최종 요약
토큰화는 작은 기술적 세부 사항처럼 보이지만, 현대 LLM 시스템의 거의 모든 것을 형성합니다.
이는 다음에 영향을 미칩니다:
- 비용
- 속도
- 컨텍스트 한도
- 다국어 성능
- 모델 행동
- 출력 품질
AI와 함께 작업할 때, 토큰화를 이해하는 것은 시스템이 작동하는 방식을 더 잘 직관적으로 이해하는 데 도움을 줍니다.
임베딩, 변환기 또는 출력이 있기 전에 - 토큰이 있습니다.
모든 것은 거기서 시작됩니다.
신중한 프롬프트 설계, 어휘 선택, 토큰 예산 수립이 도움이 되어 귀하의 토큰 사용 및 토큰 수가 비용 및 품질 목표와 일치하도록 합니다. 그 보상은 예상치 못한 완성이 줄어들고, API 비용이 낮아지며, 모델이 사용자 작성 방식을 더 잘 이해하도록 합니다.




