주제: TK-2 WordPiece Tokenization

분류: llm

타입: concept

난이도: 입문

선수지식: 없음

문제 설정

언어 모델은 텍스트를 토큰 단위로 처리합니다. 단어 단위 토큰화(word-level)는 다음 문제를 발생시킵니다.

이를 해결하기 위해 subword tokenization이 사용됩니다. WordPiece는 이러한 subword 방식 중 하나이며 BERT에서 사용된 토큰화 방법입니다.

직관 비유

핵심 아이디어:

언어 모델의 likelihood를 최대화하는 토큰을 선택

1. 기본 아이디어

WordPiece는 다음 목표를 가집니다.

maximizeP(text)

즉 선택한 토큰 집합이 전체 텍스트 확률을 가장 높게 만들도록 합니다.

기호 의미

왜 필요한가

단순 빈도 기반(BPE)보다 더 좋은 언어 모델을 만들 수 있습니다.

주의점

직접 확률을 계산하기 어렵기 때문에 근사 방법을 사용합니다.

2. WordPiece Merge 기준

BPE는 단순히 가장 자주 등장하는 pair를 merge합니다.

하지만 WordPiece는 다음 점수를 사용합니다.

score=count(pair)/(count(token1)xcount(token2))

기호 의미

직관 설명

왜 필요한가

더 의미 있는 subword를 선택할 수 있습니다.

3. WordPiece 알고리즘

1. 모든 단어를 문자 단위로 시작
2. token pair score 계산
3. 가장 높은 score pair merge
4. vocabulary 업데이트
5. 반복

수식 표현

pair*=argmaxscore(pair)

merge:

tokennew=concat(tokeni,tokenj)

주의점

vocabulary 크기 제한에 도달하면 merge 종료

4. Tokenization 예시

단어:

playing

WordPiece 토큰:

play ##ing

특징

5. WordPiece Tokenization 과정

텍스트 입력:

unbelievable

토큰 분해:

un ##bel ##iev ##able

이 토큰들은 ID로 변환됩니다.

x=[t1,t2,...,tn]

기호 의미

6. WordPiece vs BPE

방법 Merge 기준 사용 모델
BPE 빈도 GPT 계열
WordPiece likelihood 기반 score BERT

7. WordPiece 장점

코드-수식 연결

개념 라이브러리 코드 설명
WordPiece tokenizer BertTokenizer BERT 토크나이저
tokenize tokenizer.tokenize(text) 텍스트 -> subword
encode tokenizer.encode(text) token id 변환

자주 하는 오해 5개

체크리스트 (스스로 설명 가능해야 하는 질문)