유니코드와 UTF-8, 그리고 GPT의 토크나이저가 바이트를 다루는 법

Bean·2025년 7월 9일
0

인공지능

목록 보기
81/123

유니코드, UTF-8, 바이트의 관계 정리

항목설명
유니코드전 세계 모든 문자를 숫자로 정의한 국제 표준 (약 140,000개 이상)
UTF-8유니코드 문자를 1~4바이트로 인코딩하는 방식
바이트8비트 단위 데이터, 총 256가지 값 (0x00 ~ 0xFF)

즉, 유니코드 문자는 많지만, UTF-8은 필요한 만큼만 바이트를 조합해서 인코딩합니다.


UTF-8 인코딩 구조 예시

유니코드 범위바이트 수예시 문자UTF-8 바이트 표현
U+0000 ~ U+007F1 바이트'A'0x41
U+0080 ~ U+07FF2 바이트'é'0xC3 0xA9
U+0800 ~ U+FFFF3 바이트'가'0xEA 0xB0 0x80
U+10000 ~ U+10FFFF4 바이트'😄'0xF0 0x9F 0x98 0x84

모든 인코딩에 사용되는 바이트 값은 256개뿐이지만,
조합을 통해 수십만 개의 문자를 표현할 수 있는 것이 핵심입니다.


핵심 개념 요약

  • 바이트는 0x00 ~ 0xFF → 총 256개 값
  • UTF-8은 이 바이트들을 최대 4개까지 조합해 유니코드 문자를 표현
  • 조합이 가능하기 때문에 표현 가능한 문자는 수십만 개 이상!

시각적 이해

  • 'A' → U+0041 → UTF-8: 0x41 (1바이트)
  • '가' → U+AC00 → UTF-8: 0xEA 0xB0 0x80 (3바이트)

하나의 문자가 바이트 여러 개로 표현되기 때문에, 가능한 조합도 훨씬 많아집니다!


GPT 토크나이저와의 연관성

GPT-2나 GPT-3는 Byte-Level BPE 방식의 토크나이저를 사용합니다.

  • 입력 문장을 UTF-8 바이트 단위로 분해
  • 사용 가능한 바이트는 0~255 → 256개만 있음
  • 이 바이트들을 자주 등장하는 패턴 기준으로 병합하여 효율적인 토큰 구성
  • 결과적으로 "dog", "😄", "가나다" 등 어떤 문자든 처리 가능!

한 줄 요약

바이트 값은 256개뿐이지만, UTF-8은 이들을 조합하여 수십만 개 유니코드 문자를 표현합니다.


profile
AI developer

0개의 댓글