본문 바로가기
KDT/과제

[파이썬, Python] 서브워드분리(subword segmentation) - WordPiece Tokenizer

by coding-choonsik 2023. 6. 29.
728x90
반응형
SMALL

1. WordPiece Tokenizer

  • 구글이 2016년 Google's Neural Machine Translation System Bridging the Gap between Human and Machine Translation논문에 처음 공개한 BPE의 변형 알고리즘
  • 병합할 두 문자가 있을 때, 각각의 문자가 따로 있을때를 더 중요시 여기는지, 병합되었을 때를 더 중요시 여기는지 차이점을 둠
  • 코퍼스의 우도(Likelihood)를 가장 높이는 쌍을 병합
GPT 모델과 같은 생성모델(자연어를 만들어냄)의 경우에는 BPE 알고리즘을 사용
BERT, ELECTRA와 같은 자연어 이해 모델에서는 WordPiece Tokenizer를 주로 사용

 


📍 수행하기 이전의 문장: Jet makers feud over seat width with big orders at stake

 

📍WordPiece Tokenizer를 수행한 결과(wordpieces)

J et _makers _fe ud _over _seat _width _with _big _orders _at _stake

 

  • Jet는 J와 et로 나누어졌으며, feud는 fe와 ud로 나누어짐
  • WordPiece Tokenizer는 모든 단어의 맨 앞에 _를 붙이고, 단어는 서브 워드(subword)로 통계에 기반하여 띄어쓰기로 분리
  • 언더바 _는 문장 복원을 위한 장치
  • Jet → _J et와 같이 기존에 없던 띄어쓰기가 추가되어 서브 워드(subwords)들을 구분하는 구분자 역할
  •  WordPiece Tokenizer이 수행된 결과로부터 다시 수행 전의 결과로 돌리는 방법은 현재 있는 모든 띄어쓰기를 전부 제거하고, 언더바를 띄어쓰기로 바꿈

 

 

 

728x90
반응형
LIST