토큰(Token) 개념
LLM이 텍스트를 처리하는 가장 기본적인 단위를 이해합니다.
토큰이란 무엇인가?
LLM이 텍스트를 "읽는" 방법
LLM은 텍스트를 직접 처리하지 않습니다. 먼저 텍스트를 토큰(Token)이라는 작은 단위로 분해합니다. 토큰은 단어일 수도, 단어의 일부일 수도, 심지어 한 글자일 수도 있습니다.
→ 7개의 토큰으로 분해됨 (공백과 구두점도 토큰!)
- 토큰은 단어일 수도 있고, 단어의 일부(서브워드)일 수도 있음
- 공백, 구두점, 특수문자도 별도의 토큰으로 처리됨
- 각 토큰은 고유한 숫자 ID로 변환됨
- LLM은 이 숫자 ID를 입력으로 받아 처리함
토큰화(Tokenization) 과정
텍스트 → 토큰 → 숫자 → 벡터
토큰화 → ID 변환 → 임베딩 (다음 강의에서 자세히)
서브워드(Subword) 토큰화 예시
→ 자주 쓰이지 않는 긴 단어는 의미 있는 부분으로 분해됨
모든 단어를 통째로 저장하면 어휘(vocabulary) 크기가 너무 커집니다. 서브워드 토큰화를 사용하면 제한된 어휘로도 모든 텍스트를 표현할 수 있습니다. 처음 보는 단어도 알려진 부분들의 조합으로 처리 가능!
주요 토큰화 알고리즘
BPE, WordPiece, SentencePiece
📝 BPE (Byte-Pair Encoding)
가장 자주 등장하는 인접 문자쌍을 반복적으로 병합. 압축 알고리즘에서 유래. 빈도 기반으로 토큰 생성.
📝 WordPiece
BPE와 유사하나 확률 모델 사용. 희귀 단어를 "##" 접두사로 분해. 예: "unbelievable" → ["un", "##believ", "##able"]
📝 SentencePiece
언어에 독립적. 공백을 "▁"로 표시. 중국어, 일본어 등 공백 없는 언어에도 적용 가능. 원본 텍스트 완벽 복원 가능.
📝 Byte-Level BPE
바이트 단위로 처리. 어떤 입력이든 처리 가능 (OOV 없음). 이모지, 특수문자도 문제없이 처리.
| 알고리즘 | 사용 모델 | 핵심 특징 |
|---|---|---|
| BPE | GPT-1 | 빈도 기반 병합 |
| Byte-Level BPE | GPT-2/3/4 | 모든 입력 처리 가능 |
| WordPiece | BERT | 확률 기반, ## 접두사 |
| SentencePiece | T5, LLaMA | 언어 독립적 |
토큰 = 비용
API 요금은 토큰 수로 계산됩니다
LLM API의 요금은 토큰 수를 기준으로 청구됩니다. 입력(Input) 토큰과 출력(Output) 토큰 모두 비용이 발생합니다.
💰 주요 모델 가격 비교 (2026년 1월)
영어: 대략 1 토큰 ≈ 4글자 또는 0.75 단어
한국어: 대략 1 토큰 ≈ 1-2글자 (영어보다 토큰 효율 낮음)
언어별 토큰 효율
한국어는 더 많은 토큰을 사용합니다
같은 의미의 문장이라도 언어에 따라 토큰 수가 다릅니다. 대부분의 토크나이저는 영어 중심으로 학습되어, 비영어권 언어는 토큰 효율이 낮습니다.
같은 의미인데 한국어가 2배 이상의 토큰 사용!
- 한국어 서비스는 영어 대비 약 2-3배의 비용이 발생할 수 있음
- 컨텍스트 윈도우도 더 빨리 소진됨
- 한국어에 최적화된 모델(예: Ko-LLM)을 고려할 수 있음
- Qwen 같은 다국어 모델이 비영어권에서 더 효율적일 수 있음
핵심 요약
- 토큰은 LLM이 텍스트를 처리하는 기본 단위 (단어, 서브워드, 문자)
- 토큰화: 텍스트 → 토큰 → 숫자 ID → 임베딩
- 주요 알고리즘: BPE, WordPiece, SentencePiece
- API 비용은 토큰 수로 계산됨 (입력 + 출력)
- 한국어는 영어 대비 토큰 효율이 낮음 (약 2-3배)