ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Pre-Tokenization
    NLP/2주차 2021. 9. 15. 15:53

    Word / Character / Subword

    • Word
      • Out-Of-Vocabulary(OOV)가 성능을 많이 저하시킴 → Character Based 등장
    • Character
      • Long sequence
      • Low performance → 하나의 글자가 표현해야하는 representation이 너무 많음
    • Subword → subword 방식을 사용하는 것이 좋다
      • BPE(Byte Pair Encoding) - statistical method
      • WordPiece - merge a pair that maximizes the likelihood of the training data once added to the vocab
      • Unigram - starts from pretokenized words and the most common substrings then trims
      • SentencePiece (라이브러리) - solve the problem that all the above methods are using space to separate words before tokenization by dealing with the space as a token

     

    More about BPE

    • pair에 대한 frequency 계산 → l, o, w 라는 단어가 있다면 {l,o} , {o,w}가 pair. 
    • num_merges = 10
      for i in range(num_merges):
      	pairs = get_stats(vocab)
          	best = max(pairs, key=pairs.get)
          	vocab = merge_vocab(best, vocab)
          	print(best)
    • 가장 많이 등장한 pair를 vocab에 추가.
    • update 된 vocab을 이용하여 frequency를 다시 계산 후 num_merges 만큼 과정 반복
    • Knoledge graph is one of the external resource in language generation task. 라는 문장에서 두번 등장하는 ge라는 토큰을 구별하기 위해 ##ge, ge 혹은 ge, _ge 와 같은 방식으로 표현하기도 한다.
    • https://wikidocs.net/22592
     

    01) 바이트 페어 인코딩(Byte Pair Encoding, BPE)

    기계에게 아무리 많은 단어를 학습시켜도, 세상의 모든 단어를 알려줄 수는 없는 노릇입니다. 만약, 기계가 모르는 단어가 등장하면 그 단어를 단어 집합에 없는 단어란 의미에서 ...

    wikidocs.net


    알아두면 좋은 것

     

    Teacher forcing

    • 장점: 사용하면 속도가 빨라진다. 
    • 단점: model output을 고려하지 않고 decoder input으로 정답으로 넣어주기 때문에, 앞에 input으로 이상한 문장이 들어간다면 뒤에 결과까지 다 망가질 수 있다.

    주로 사용하는 전처리가 있는가?

    • 데이터에 따라 다르다
    • 정규표현식을 사용하여 전처리를 할 때, 필요한 정보도 사라질 수 있다 → 전처리를 거의 하지 않고, 딥러닝 모델이 학습하게 하려는 시도

     

     

    'NLP > 2주차' 카테고리의 다른 글

    Hugging Face Library  (0) 2021.09.17
    NLP 모델 정리  (0) 2021.09.16
    GPT & BERT  (0) 2021.09.15

    댓글

Designed by Tistory.