‹ Lecture 2 06 / 23

WordPiece · Unigram LM · SentencePiece

앞의 BPE는 가장 자주 등장하는 pair를 합쳤다. 하지만 “자주 함께 나온다”와 “각자 나오는 빈도를 고려해도 유난히 함께 나온다”는 다른 기준이다. WordPiece는 후자의 관계를 보고, Unigram LM은 아예 큰 후보 사전에서 필요성이 낮은 pieces를 제거한다. 같은 Subword 목표라도 무엇을 좋은 piece로 판단하는지가 다르다.

  1. Subword 후보
  2. frequency / association / likelihood 기준
  3. Vocabulary
  4. deterministic 또는 sampling 분절

WordPiece

WordPiece의 교육용 association score는 freq⁡(ab)freq⁡(a)freq⁡(b)\frac{\operatorname{freq}(ab)}{\operatorname{freq}(a)\operatorname{freq}(b)}다.

Pair A:

A=10002000×2000=2.5×10−4A=\frac{1000}{2000\times2000}=2.5\times10^{-4}

Pair B:

B=200300×250≈2.7×10−3B=\frac{200}{300\times250}\approx2.7\times10^{-3}

이므로 함께 나온 절대 횟수가 적어도 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가 된다. EE-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 관점에서도 볼 수 있다.

score⁡(a,b)=freq⁡(ab)freq⁡(a)freq⁡(b)\operatorname{score}(a,b)=\frac{\operatorname{freq}(ab)}{\operatorname{freq}(a)\operatorname{freq}(b)} p(seg)∝∏ip(tokeni)p(\mathrm{seg})\propto\prod_i p(\mathrm{token}_i) p(token)=E[count]∑E[count]p(\mathrm{token})=\frac{\mathbb{E}[\mathrm{count}]}{\sum\mathbb{E}[\mathrm{count}]} 0.120.12+0.05≈0.71\frac{0.12}{0.12+0.05}\approx0.71

WordPiece 학습 기준과 inference longest-match 절차를 구분한다. detokenize 결과는 Normalization을 거친 텍스트일 수 있어 원문 bytes의 복원과 다르다.

SentencePiece는 toolkit이다. Unigram의 top-down pruning과 sampling을 구분한다.

BPE · WordPiece · Unigram LM

같은 Subword 목표에도 무엇을 합치거나 제거하는지가 다르다.

AspectBPEWordPieceUnigram LM
기준Pair frequencyAssociation score (교육용 근사)Corpus likelihood loss
방향Bottom-up mergeBottom-up mergeTop-down prune
분절Standard는 deterministicDeterministic / longest matchSampling 가능; inference max
도구 관계SentencePiece로 구현 가능BERT 계열SentencePiece로 구현 가능

SentencePiece는 BPE와 Unigram을 지원하는 toolkit이다.

Check

빈도 1000인 Pair AA 대신 빈도 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한다.

Contents