Tech & Development/AI
LLM의 토큰(Token): AI의 글자 단위
Theo (테오)
2024. 11. 10. 22:13
반응형
ChatGPT나 Claude 같은 AI 모델을 사용하다 보면 '토큰(token)'이라는 말을 자주 접하게 됩니다. "몇 토큰을 사용했습니다", "토큰 제한에 걸렸습니다" 같은 메시지를 보신 적 있나요?
사람의 눈에는 글자나 단어 단위로 보이는 텍스트도, AI의 눈에는 전혀 다르게 보입니다.
사람의 눈 vs AI의 눈
[사람의 눈]
"나는 인공지능이 좋아요"
→ '나는', '인공지능이', '좋아요' (3개의 단어)
[AI의 눈]
"나는 인공지능이 좋아요"
→ '나는', ' 인', '공지', '능', '이, ' 좋아', '요' (7개의 토큰)
토큰(Token)이란?
토큰은 AI가 텍스트를 이해하는 '기본 단위'입니다. 우리가 글을 읽을 때 단어나 글자 단위로 읽는 것처럼, AI는 토큰 단위로 텍스트를 처리합니다.
왜 토큰 수가 중요할까요?
- 비용 계산의 기준:
- AI 모델 사용 비용은 토큰 수로 계산됨
- 토큰을 적게 쓸수록 비용 절감
- 모델의 제한:
- 모든 AI 모델은 최대 토큰 제한이 있음
- 제한을 넘으면 오류 발생
- 성능 영향:
- 토큰 수가 많을수록 처리 시간 증가
- 적절한 토큰 사용이 좋은 결과를 만듦
토큰의 기본 특성
- 길이 관계
- 영어 기준: 1 토큰 ≈ 4글자
- 단어 기준: 1토큰 ≈ 3/4 단어
- 문장 기준: 1~2 문장 ≈ 30 토큰
- 문단 기준: 1 문단 ≈ 100 토큰
- 긴 글 기준: 1,500 단어 ≈ 2,048 토큰
- 실제 예시로 보는 토큰 수 (GPT-4o 모델 기준)
- "Hello world!" → 2 토큰
- "인공지능의 미래" → 5 토큰
- "안녕하세요" → 2 토큰
토큰화의 특징
- 언어별 차이
- 영어: 효율적인 토큰화 (1 토큰 ≈ 4글자)
- 한국어: 상대적으로 더 많은 토큰 필요
- 스페인어: 액센트 문자로 인한 추가 토큰
- 컨텍스트에 따른 토큰 변화
같은 단어도 문장 내 위치와 맥락에 따라 다른 토큰으로 처리될 수 있습니다.
예시: "red" (빨간)의 경우
1. "The red car" → ' red'는 토큰 ID "3592"
2. "The Red car" → ' Red'는 토큰 ID "5952"
3. "Red is my favorite" → 'Red'는 토큰 ID "7805"
이러한 차이가 발생하는 이유:
- 띄어쓰기 포함 여부
- 대소문자 구분
- 문장 내 위치
실제 토큰화 실험해 보기
OpenAI는 토큰화를 실험해 볼 수 있는 Tokenizer 도구를 제공합니다.
- OpenAI Tokenizer 사용법:
- tokenizer.openai.com 방문
- 텍스트 입력
- 토큰 수와 분할된 토큰 확인
- Python 이용하는 법: (tiktoken)
import tiktoken
def count_tokens(text):
encoder = tiktoken.get_encoding("o200k_base")
return len(encoder.encode(text))
text = "안녕하세요"
print(f"토큰 수: {count_tokens(text)}")
토큰화는 LLM의 텍스트 처리 방식을 이해하는 핵심 개념입니다. 효율적인 토큰 사용은 비용 절감과 더 나은 결과물 도출에 직접적인 영향을 미칩니다. 특히 한국어 사용자의 경우, 언어별 토큰화 특성을 이해하고 이에 맞춰 프롬프트를 최적화하는 것이 중요합니다.
더 나아가 토큰화 이해는 LLM 응용 프로그램 개발에도 큰 도움이 됩니다. 토큰 제한과 비용을 고려한 효율적인 설계가 가능해지기 때문입니다.
반응형