WordPiece · Unigram LM · SentencePiece
앞의 BPE는 가장 자주 등장하는 pair를 합쳤다. 하지만 “자주 함께 나온다”와 “각자 나오는 빈도를 고려해도 유난히 함께 나온다”는 다른 기준이다. WordPiece는 후자의 관계를 보고, Unigram LM은 아예 큰 후보 사전에서 필요성이 낮은 pieces를 제거한다. 같은 Subword 목표라도 무엇을 좋은 piece로 판단하는지가 다르다.
- Subword 후보
- frequency / association / likelihood 기준
- Vocabulary
- deterministic 또는 sampling 분절
WordPiece
WordPiece의 교육용 association score는 다.
Pair A:
Pair B:
이므로 함께 나온 절대 횟수가 적어도 B의 score가 약 10배 높다. A의 두 component는 원래 각각 매우 자주 나타나므로 함께 나온 1,000회만으로 강한 결합이라고 보기 어렵다. B는 각 component의 빈도에 비해 함께 나타난 비중이 크기 때문에, BPE와 달리 B를 우선할 수 있다. 이 식은 WordPiece 학습 기준을 이해하기 위한 교육용 association 근사다.
##는 word 안의 continuation piece 표시이며 leading space를 나타내는 GPT-2 Ġ와 위치가 다르다.
학습 기준과 inference 절차도 구분해야 한다. WordPiece inference는 Vocabulary에서 현재 위치부터 맞는 가장 긴 piece를 고르는 greedy longest-match다. 예를 들어 unhappiness 전체가 없다면 앞부분 후보를 줄여 un을 찾고, 남은 부분에는 continuation prefix인 ##를 붙여 다시 찾는다. 슬라이드의 un / ##ha / ##pp / ##iness는 이런 boundary 표기의 예시이며, 실제 분절은 사용하는 Vocabulary에 따라 달라진다. BERT 예시의 Vocabulary는 30,522개다.
Unigram LM
Unigram LM은 큰 substring 후보 집합 → EM으로 p(token) 추정 → corpus likelihood 손실이 작은 token 제거를 반복한다. low의 두 segmentation likelihood 0.12,0.05를 정규화하면 0.71,0.29의 soft counts가 된다. -step은 segmentation의 확률을 계산하고 M-step은 expected counts로 token 확률을 갱신한다.
low의 후보 Vocabulary를 l, o, w, lo, ow, low라고 하자. 슬라이드는 lo + w와 l + ow 두 경로만 놓고 계산한다. 각 경로 안의 token 확률을 곱한 0.12와 0.05를 정규화하면 0.71과 0.29가 된다. 한 분절에 정답표를 붙이지 않고, 첫 경로는 lo와 w에 각각 0.71표, 둘째 경로는 l과 ow에 각각 0.29표를 주는 soft count다. low가 corpus에 다섯 번 있다면 이 기여에 각각 5를 곱한다.
M-step에서는 corpus 전체에서 모은 expected counts를 전체 count 합으로 나누어 token 확률을 갱신한다. 이 추정을 반복한 뒤, 제거해도 corpus likelihood가 가장 적게 손상되는 token부터 prune한다. 처음부터 작은 사전을 키우는 BPE/WordPiece와 달리 큰 후보에서 내려오는 top-down 방식이다.
여러 분절이 확률을 가지므로 training에서 다른 분절을 sampling할 수 있다. 모델이 같은 문자열의 한 분절만 외우지 않게 하는 Subword regularization, 즉 data augmentation 효과다. Inference에서는 최대 확률 분절을 고른다. 슬라이드의 unhappiness 후보도 0.41, 0.28, 0.19, 0.02처럼 서로 다른 확률을 가지며, standard deterministic BPE와 구분해야 한다. BPE-dropout은 merge를 무작위로 건너뛰어 비슷한 변화를 주는 별도 변형이다.
SentencePiece
SentencePiece는 algorithm이 아니라 BPE와 Unigram을 모두 지원하는 toolkit이다. 언어별 Pre-tokenization 규칙을 먼저 만들지 않고 raw sentences에서 학습하여, 공백이 없는 Japanese나 Chinese도 같은 pipeline으로 처리하려는 도구다. 공백도 입력의 일부로 다루며 ▁(U+2581)로 보이게 표시한다.
Hello world는 ▁Hello / ▁world처럼 첫 단어 앞에도 marker가 붙을 수 있고, 東京に行く처럼 내부 공백이 없는 입력은 ▁東京 / に / 行く처럼 표현할 수 있다. Detokenization은 pieces를 concatenate하고 ▁를 공백으로 바꾸는 과정이다. 다만 돌아오는 것은 normalized text이므로 normalization 이전의 raw bytes까지 복원한다는 뜻은 아니다. GPT-2의 Ġ도 앞 공백을 나타내지만 WordPiece의 ##는 앞 piece와 공백 없이 이어짐을 나타낸다.
Llama1/2는 SentencePiece BPE, T5는 SentencePiece Unigram 예시다. WordPiece의 ##는 이전 piece에 이어짐을 뜻한다.
Algorithm Comparison
기준 비교: BPE=pair frequency / bottom-up / deterministic; WordPiece=association / bottom-up / deterministic; Unigram=corpus likelihood loss / top-down prune / probabilistic sampling 가능. 표의 대표 사용 모델은 BPE의 GPT2/3·RoBERTa·Llama3, WordPiece의 BERT, Unigram의 T5·ALBERT다. BPE-dropout은 standard deterministic BPE와 구분한 변형이다.
WordPiece의 association과 Unigram의 EM, soft count, pruning을 구분해야 한다. SentencePiece는 도구다. Unigram의 sampling은 data augmentation 관점에서도 볼 수 있다.
WordPiece 학습 기준과 inference longest-match 절차를 구분한다. detokenize 결과는 Normalization을 거친 텍스트일 수 있어 원문 bytes의 복원과 다르다.
SentencePiece는 toolkit이다. Unigram의 top-down pruning과 sampling을 구분한다.
BPE · WordPiece · Unigram LM
같은 Subword 목표에도 무엇을 합치거나 제거하는지가 다르다.
| Aspect | BPE | WordPiece | Unigram LM |
|---|---|---|---|
| 기준 | Pair frequency | Association score (교육용 근사) | Corpus likelihood loss |
| 방향 | Bottom-up merge | Bottom-up merge | Top-down prune |
| 분절 | Standard는 deterministic | Deterministic / longest match | Sampling 가능; inference max |
| 도구 관계 | SentencePiece로 구현 가능 | BERT 계열 | SentencePiece로 구현 가능 |
SentencePiece는 BPE와 Unigram을 지원하는 toolkit이다.
Check
빈도 1000인 Pair 대신 빈도 200인 Pair B가 WordPiece에서 선택되는 이유를 수식으로 설명하라.
Answer
각 component의 빈도로 나눈 association score가 B에서 약 10배 크다. BPE의 절대 pair frequency 기준과 다르다.
SentencePiece를 Unigram과 같은 algorithm 이름으로 부르면 왜 잘못인가?
Answer
SentencePiece는 BPE와 Unigram을 모두 구현하는 toolkit이다. 경계 표기나 파일 형식만으로 학습 algorithm을 단정하면 안 된다.
WordPiece의 longest-match와 Unigram의 segmentation 선택은 무엇을 기준으로 달라지는가?
Answer
WordPiece는 Vocabulary에서 현재 위치의 가장 긴 piece를 찾는 deterministic 절차다. Unigram은 여러 가능한 segmentation의 piece probabilities를 비교하며, 최적 경로를 고르거나 sampling할 수 있다. SentencePiece는 이런 algorithm과 같은 층위의 이름이 아니라 BPE/Unigram을 지원하는 toolkit이다.
큰 후보 Vocabulary에서 likelihood 손실이 작은 token을 제거하고 여러 분절을 sampling할 수 있는 방법은?
Answer
Unigram LM. BPE/WordPiece의 bottom-up merge와 반대로 top-down prune한다.