Part 2 · Tokenization - Subword Tokenization

새로운 단어까지 이해하기 위한 선택

언어는 끊임없이 새로운 단어를 만들어 냅니다. 모든 단어를 미리 사전에 등록하는 방법만으로는 현실의 언어를 처리하기 어렵습니다. 서브워드 토큰화는 단어를 더 작은 의미 단위로 나누어 처음 보는 단어까지 처리할 수 있도록 만든 방법입니다. 오늘날 대부분의 대형 언어 모델이 이 방식을 사용하는 이유도 여기에 있습니다.

Concept

서브워드 토큰화란?

서브워드 토큰화는 완전한 단어보다 작은 문자열 조각을 토큰으로 사용하는 방법입니다.

자주 등장하는 단어는 하나의 토큰으로 유지하고, 드물거나 처음 보는 단어는 이미 알고 있는 작은 조각으로 나눕니다.

서브워드의 핵심은 자주 사용하는 표현은 크게 유지하고, 드문 표현은 더 작은 조각으로 나누는 것입니다.
단어 단위
tokenization
단어 하나를 하나의 토큰으로 처리합니다.
문자 단위
t o k e n ...
모든 문자를 하나씩 나눕니다.
서브워드 단위
token ##ization
알려진 조각을 조합해 단어를 표현합니다.
Why Subword?

왜 서브워드가 필요한가?

단어 단위 토큰화와 문자 단위 토큰화는 서로 반대되는 문제를 가지고 있습니다.

단어 단위의 문제 처음 보는 단어가 어휘 사전에 없으면 하나의 미등록 기호로 처리될 수 있습니다.
문자 단위의 문제 어떤 단어도 표현할 수 있지만, 한 문장이 지나치게 많은 토큰으로 길어집니다.
서브워드의 해결 방법 기존 조각을 재사용하여 새로운 단어를 표현하고, 문자 단위보다 토큰 수도 줄입니다.
서브워드는 큰 어휘 사전의 문제와 긴 토큰 시퀀스의 문제 사이에서 실용적인 균형을 제공합니다.
Unknown Words

처음 보는 단어는 어떻게 처리할까?

모델의 어휘 사전에 없는 단어를 미등록 단어(OOV, Out of Vocabulary)라고 합니다.

단어 단위 방식

tokenization이 어휘 사전에 없다면

[UNK]

단어 내부의 정보가 사라질 수 있습니다.

→

서브워드 방식

알고 있는 문자열 조각으로 나눕니다.

token ##ization

처음 보는 단어도 조각의 조합으로 표현할 수 있습니다.

[UNK]는 왜 문제가 될까?
서로 다른 새로운 단어가 모두 같은 [UNK]로 바뀌면 각 단어의 철자와 의미 차이를 구분하기 어렵습니다. 서브워드는 단어를 여러 조각으로 나누어 이러한 정보 손실을 크게 줄입니다.
Reuse

공통 조각을 재사용한다

서브워드 토크나이저는 여러 단어에 반복해서 나타나는 문자열 조각을 하나의 토큰으로 재사용합니다.

playing
play ##ing
played
play ##ed
player
play ##er
playful
play ##ful
공통 부분인 play를 여러 단어에서 재사용하므로, 모든 단어 형태를 별도의 토큰으로 저장할 필요가 없습니다.
서브워드는 형태소와 같은가?
반드시 같지는 않습니다. 형태소 분석은 언어의 문법과 의미 단위를 기준으로 하지만, 서브워드 토큰화는 학습 데이터에서 문자열이 얼마나 자주 반복되는지와 토큰 사전의 효율을 중심으로 경계를 결정합니다.
Interactive Example

서브워드 분할 체험

분할 결과 0 tokens

입력한 단어를 알려진 조각으로 나누어 표시합니다.

이 실습은 원리를 설명하기 위한 단순화된 예시입니다. 실제 토크나이저의 결과는 학습 데이터와 알고리즘에 따라 달라집니다.

Token Count

토큰 수 비교

같은 단어도 토큰화 방법에 따라 토큰 수가 크게 달라집니다. tokenization을 예로 비교해 보겠습니다.

단어 단위

1개 토큰

tokenization
문자 단위

12개 토큰

t o k ...
서브워드 단위

2개 토큰

token ##ization
토큰 수가 적다고 항상 좋은 것은 아닙니다. 새로운 단어를 처리하는 능력과 토큰 사전의 크기도 함께 고려해야 합니다.
Summary

학습 내용 정리

이번 장에서는 서브워드 토큰화가 필요한 이유와 기본 원리를 살펴보았습니다.

  • 서브워드는 완전한 단어보다 작고 문자 하나보다 큰 문자열 조각입니다.
  • 자주 사용하는 표현은 큰 토큰으로 유지하고, 드문 표현은 더 작은 조각으로 나눕니다.
  • 미등록 단어를 [UNK]로 바꾸는 대신, 알려진 조각의 조합으로 표현할 수 있습니다.
  • 여러 단어에 반복되는 공통 조각을 재사용하여 토큰 사전의 크기를 줄일 수 있습니다.
  • 서브워드는 단어 단위와 문자 단위의 장점을 절충한 방식이며, 현대의 언어 모델에서 널리 사용됩니다.

다음 장에서는 BPE, WordPiece, SentencePiece처럼 실제 LLM과 언어 모델에서 사용하는 대표적인 토크나이저 방식을 살펴봅니다.