ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 5 Text Decoding Techniques
    Natural Language Processing 2022. 2. 24. 17:22
    반응형

    아래 글을 공부하고 정리하는 글입니다.

     

    Reference

    https://towardsdatascience.com/5-text-decoding-techniques-that-every-nlp-enthusiast-must-know-6908e72f8df9

     

    5 Text Decoding Techniques that every “NLP Enthusiast” Must Know

    Popular Text Decoding Methods in NLP with Visuals

    towardsdatascience.com

     

    • NLP의 text generation 작업에서 모델은 디코딩 전략에 따라 생성하는 시퀀스가 다름
    • 여기서는 유명한 text sampling 기술 random sampling, greedy sampling, beam search, top-k smapling, top-p sampling을 살펴봄

     

    Random Sampling

    • 생성 과정의 모든 time-step(t)에서 전체 vocab에 대해 모든 step에서 생성되는 conditional probability 분포를 기반으로 무작위 단어를 샘플링함
    • 가장 불안정한 기술임

    https://towardsdatascience.com/5-text-decoding-techniques-that-every-nlp-enthusiast-must-know-6908e72f8df9

     

     

    Greedy Decoding

    • 생성 과정의 모든 time-step(t)에서 가장 높은 conditonal probability를 가지는 단어를 선택함
    • sampling이 어떠한 무작위성을 허용하지 않으므로, 모델 가중치가 고정된 후 방법이 기본적으로 deterministic함
    • 짧은 시퀀스를 생성할 때 잘 작동하는 반면 더 긴 시퀀스를 생성할 때, 이 방법은 루프에 갇혀 결국 중복되는 시퀀스를 생성함

    https://towardsdatascience.com/5-text-decoding-techniques-that-every-nlp-enthusiast-must-know-6908e72f8df9

     

    Beam Search

    • 텍스트를 생성하는 동안 높은 likelihood 시퀀스를 샘플링함
    • 이를 위해, beam size(B)라는 것을 정의하며 생성 단계에서 이전 step에서 선택한 unit을 기반으로 매 time-step(t) 마다 Top-B units를 샘플링함
    • Beam Search로 5-단어 시퀀스를 생성하면 3^5 시퀀스를 얻을 것이고 그 중 maximum linkelihood를 가지는 시퀀스를 선택하여 최종 시퀀스로 반환함
    • 생성된 시퀀스가 짧고 open-ended일 때 beam search가 꽤 잘 작동한다는 것을 발견함

    https://towardsdatascience.com/5-text-decoding-techniques-that-every-nlp-enthusiast-must-know-6908e72f8df9

    • 가설적으로 ABD와 CED는 likelihood 값 측면에서 모델이 생성하는 상위 두 시퀀스임
    • 마지막으로 더 높은 값이 반환됨

     

    Top-k

    • 생성 과정의 모든 time-step(t)에서, 먼저 해당 time step에서 생성된 conditional probability distribution을 기반으로 가장 가능성이 높은 상위 k개의 단어를 샘플링함
    • 상위 k개의 단어들에만 probability mass를 재분배하고 결국 해당 set의 conditoinal probability르 기반으로 임의의 단어를 선택함
    • 여기서, 임의성(randomness)는 k의 선택에 따라 도입되며, 모든 생성에서 서로 다른 관련 시퀀스를 실험하고 출력하는 데 도움이 됨
    • 또한, k=1의 경우, 이 기법은 greedy decoding처럼 작동함

    https://towardsdatascience.com/5-text-decoding-techniques-that-every-nlp-enthusiast-must-know-6908e72f8df9

    • 위의 예는 k=3인 top-k의 작동임
    • 'boy', 'hello', 'man' 단어는 확률에 따라 top-3 list에 포함됨
    • 그런 다음 해당 set 내에서 해당 확률을 재분배하고 'man'을 선택함

     

    Nucleus Sampling(top-p sampling)

    • 생성 과정의 모든 time-step(t)에서 cumulative probability가 probability mass P를 초과하는 단어의 subset을 만듦
    • 그런 다음 확률은 이 set에서 다시 분배되고 마지막으로, 확률에 따라 set에서 임의의 단어를 선택함
    • top-p sampling을 사용하면 모든 단계에서 k의 크기를 고정하는 top-k와 다르게 top-p 단어의 동적 크기 window 개념을 통합할 수 있음

    https://towardsdatascience.com/5-text-decoding-techniques-that-every-nlp-enthusiast-must-know-6908e72f8df9

    • 위의 예는 p=0.6인 top-p의 경우임
    • 'boy'와 'man' 단어의 확률 합계는 0.6 임계 probability mass를 초과함
    • 우리는 이 두 단어를 선택하고 확률이 재분배된 후속 set을 만들고 결국 'man'을 선택함

     

    Conclusion

    • 이야기 생성, 시 생성(흥미로운 문장을 생성할 가능성이 무한한 경우) : Top-p, Top-k
    • 번역(주어진 문장을 target 언어로 번역하는 방법에 대한 변형이 많지 않은 경우): Beam Search
    • 또한 softmax의 temperature 값을 가지고 놀 수 있고 온도 값을 0에 가깝게 설정하고 위에 언급한 기술을 적용해 분포가 어떤 의미에서는 더 치우치게 할 수 있음
    반응형

    'Natural Language Processing' 카테고리의 다른 글

    Meta Llama 3.1 Review - blog  (2) 2024.07.24
    Masking and padding with Pytorch  (0) 2022.02.23
    Word2Vec (word embedding)  (0) 2022.02.09
    seq2seq 그리고 attention  (0) 2022.02.04
    기계 번역에서 alignment 의미  (0) 2022.01.25

    댓글

Designed by Tistory.