서브워드 토큰화란?
서브워드 토큰화는 완전한 단어보다 작은 문자열 조각을 토큰으로 사용하는 방법입니다.
자주 등장하는 단어는 하나의 토큰으로 유지하고, 드물거나 처음 보는 단어는 이미 알고 있는 작은 조각으로 나눕니다.
왜 서브워드가 필요한가?
단어 단위 토큰화와 문자 단위 토큰화는 서로 반대되는 문제를 가지고 있습니다.
처음 보는 단어는 어떻게 처리할까?
모델의 어휘 사전에 없는 단어를 미등록 단어(OOV, Out of Vocabulary)라고 합니다.
단어 단위 방식
tokenization이 어휘 사전에 없다면
단어 내부의 정보가 사라질 수 있습니다.
서브워드 방식
알고 있는 문자열 조각으로 나눕니다.
처음 보는 단어도 조각의 조합으로 표현할 수 있습니다.
[UNK]는 왜 문제가 될까?
[UNK]로 바뀌면
각 단어의 철자와 의미 차이를 구분하기 어렵습니다.
서브워드는 단어를 여러 조각으로 나누어 이러한 정보 손실을 크게 줄입니다.
공통 조각을 재사용한다
서브워드 토크나이저는 여러 단어에 반복해서 나타나는 문자열 조각을 하나의 토큰으로 재사용합니다.
play를 여러 단어에서 재사용하므로,
모든 단어 형태를 별도의 토큰으로 저장할 필요가 없습니다.
서브워드는 형태소와 같은가?
서브워드 분할 체험
입력한 단어를 알려진 조각으로 나누어 표시합니다.
이 실습은 원리를 설명하기 위한 단순화된 예시입니다. 실제 토크나이저의 결과는 학습 데이터와 알고리즘에 따라 달라집니다.
토큰 수 비교
같은 단어도 토큰화 방법에 따라 토큰 수가 크게 달라집니다.
tokenization을 예로 비교해 보겠습니다.
1개 토큰
12개 토큰
2개 토큰
학습 내용 정리
이번 장에서는 서브워드 토큰화가 필요한 이유와 기본 원리를 살펴보았습니다.
- 서브워드는 완전한 단어보다 작고 문자 하나보다 큰 문자열 조각입니다.
- 자주 사용하는 표현은 큰 토큰으로 유지하고, 드문 표현은 더 작은 조각으로 나눕니다.
-
미등록 단어를
[UNK]로 바꾸는 대신, 알려진 조각의 조합으로 표현할 수 있습니다. - 여러 단어에 반복되는 공통 조각을 재사용하여 토큰 사전의 크기를 줄일 수 있습니다.
- 서브워드는 단어 단위와 문자 단위의 장점을 절충한 방식이며, 현대의 언어 모델에서 널리 사용됩니다.
다음 장에서는 BPE, WordPiece, SentencePiece처럼 실제 LLM과 언어 모델에서 사용하는 대표적인 토크나이저 방식을 살펴봅니다.