Tech & Development/AI

LLM의 토큰(Token): AI의 글자 단위

Theo (테오) 2024. 11. 10. 22:13
반응형

ChatGPT나 Claude 같은 AI 모델을 사용하다 보면 '토큰(token)'이라는 말을 자주 접하게 됩니다. "몇 토큰을 사용했습니다", "토큰 제한에 걸렸습니다" 같은 메시지를 보신 적 있나요?

사람의 눈에는 글자나 단어 단위로 보이는 텍스트도, AI의 눈에는 전혀 다르게 보입니다.

사람의 눈 vs AI의 눈

[사람의 눈]
"나는 인공지능이 좋아요"
→ '나는', '인공지능이', '좋아요' (3개의 단어)

[AI의 눈]
"나는 인공지능이 좋아요"
→ '나는', ' 인', '공지', '능', '이, ' 좋아', '요' (7개의 토큰)

OpenAI Tokenizer

토큰(Token)이란?

토큰은 AI가 텍스트를 이해하는 '기본 단위'입니다. 우리가 글을 읽을 때 단어나 글자 단위로 읽는 것처럼, AI는 토큰 단위로 텍스트를 처리합니다.

왜 토큰 수가 중요할까요?

  1. 비용 계산의 기준:
    • AI 모델 사용 비용은 토큰 수로 계산됨
    • 토큰을 적게 쓸수록 비용 절감
  2. 모델의 제한:
    • 모든 AI 모델은 최대 토큰 제한이 있음
    • 제한을 넘으면 오류 발생
  3. 성능 영향:
    • 토큰 수가 많을수록 처리 시간 증가
    • 적절한 토큰 사용이 좋은 결과를 만듦

토큰의 기본 특성

  1. 길이 관계
    • 영어 기준: 1 토큰 ≈ 4글자
    • 단어 기준: 1토큰 ≈ 3/4 단어
    • 문장 기준: 1~2 문장 ≈ 30 토큰
    • 문단 기준: 1 문단 ≈ 100 토큰
    • 긴 글 기준: 1,500 단어 ≈ 2,048 토큰
  2. 실제 예시로 보는 토큰 수 (GPT-4o 모델 기준)
    • "Hello world!" → 2 토큰
    • "인공지능의 미래" → 5 토큰
    • "안녕하세요" → 2 토큰

토큰화의 특징

  1. 언어별 차이
    • 영어: 효율적인 토큰화 (1 토큰 ≈ 4글자)
    • 한국어: 상대적으로 더 많은 토큰 필요
    • 스페인어: 액센트 문자로 인한 추가 토큰
  2. 컨텍스트에 따른 토큰 변화
    같은 단어도 문장 내 위치와 맥락에 따라 다른 토큰으로 처리될 수 있습니다.

예시: "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 도구를 제공합니다.

  1. OpenAI Tokenizer 사용법:
    • tokenizer.openai.com 방문
    • 텍스트 입력
    • 토큰 수와 분할된 토큰 확인
  2. 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 응용 프로그램 개발에도 큰 도움이 됩니다. 토큰 제한과 비용을 고려한 효율적인 설계가 가능해지기 때문입니다.

반응형