항목 | 설명 |
---|---|
유니코드 | 전 세계 모든 문자를 숫자로 정의한 국제 표준 (약 140,000개 이상) |
UTF-8 | 유니코드 문자를 1~4바이트로 인코딩하는 방식 |
바이트 | 8비트 단위 데이터, 총 256가지 값 (0x00 ~ 0xFF) |
즉, 유니코드 문자는 많지만, UTF-8은 필요한 만큼만 바이트를 조합해서 인코딩합니다.
유니코드 범위 | 바이트 수 | 예시 문자 | UTF-8 바이트 표현 |
---|---|---|---|
U+0000 ~ U+007F | 1 바이트 | 'A' | 0x41 |
U+0080 ~ U+07FF | 2 바이트 | 'é' | 0xC3 0xA9 |
U+0800 ~ U+FFFF | 3 바이트 | '가' | 0xEA 0xB0 0x80 |
U+10000 ~ U+10FFFF | 4 바이트 | '😄' | 0xF0 0x9F 0x98 0x84 |
모든 인코딩에 사용되는 바이트 값은 256개뿐이지만,
조합을 통해 수십만 개의 문자를 표현할 수 있는 것이 핵심입니다.
'A'
→ U+0041 → UTF-8: 0x41
(1바이트)'가'
→ U+AC00 → UTF-8: 0xEA 0xB0 0x80
(3바이트)하나의 문자가 바이트 여러 개로 표현되기 때문에, 가능한 조합도 훨씬 많아집니다!
GPT-2나 GPT-3는 Byte-Level BPE 방식의 토크나이저를 사용합니다.
"dog"
, "😄"
, "가나다"
등 어떤 문자든 처리 가능!바이트 값은 256개뿐이지만, UTF-8은 이들을 조합하여 수십만 개 유니코드 문자를 표현합니다.