본문 바로가기

NLP/논문이해

[논문이해] Neural Text Generation with Unlikelihood Training

논문명: Neural Text Generation with Unlikelihood Training

논문 링크: https://openreview.net/forum?id=SJeYe0NtvH

 

Neural Text Generation With Unlikelihood Training

Neural text generation is a key tool in natural language applications, but it is well known there are major problems at its core. In particular, standard likelihood training and decoding leads to...

openreview.net

 

 

아이디어만 정리합니다.

 

그동안 generation decode 관련 글을 많이 써서 정리하는데, 다만 2020년이라 지금 봤을 때 그렇게 대단한 것 같진 않네요. 특히 Constrastive Search 와 역할이 유사한 느낌이 듭니다.


 

핵심

  • 원래는 이렇게 Next Token Generation 을 통해 학습한다.
  • 문제는 다음 단어만 맞추다보니까, 반복해서 똑같은 토큰을 생성하는 문제가 있다.
  • 예시: 나는 네가 좋아 좋아 좋아 좋아 좋아 좋아 좋아

 

  • Unlikelihood loss: 이게 핵심인데, C 만 이해하면 된다.
  • C: 모델이 직전까지 생성한 문장을 의미한다

 

예시

  • 정답: "나는 네가 좋아. 너를 사랑해"
  • 모델이 여태까지 생성한 문장: "나는 네가 좋아. 너를"
  • 다음에 생성해야 할 토큰: 사랑해
  • 이때 사랑해라는 단어를 기존 loss 를 통해 학습하되, 직전에 생성한 C = [나는, 네가, 좋아, 너를] 는 생성할 확률을 떨어뜨린다.

 

직관

  • 지금까지 생성한 문장의 토큰들은 한번 썼으니까 확률을 떨어뜨리자

관련 포스팅

https://heygeronimo.tistory.com/34

 

[huggingface🤗] How to generate text #1

자연어 처리 모델이 언어를 생성하는 방식에 관하여 잘 정리된 글이라서, 한글로 의역(수정)하고자 한다. 나에게도 공부가 되고, 이 글을 통해 한 사람이라도 도움이 된다면 기쁠 것 같다. 그리

heygeronimo.tistory.com

 

https://heygeronimo.tistory.com/36

 

[huggingface🤗] How to generate text #2

서론 huggingface 에서 제공하는 함수 'generate' 는 매우 훌륭하다. 이에 대해 처음 듣는다면, 다음 글을 먼저 읽어보길 바란다. https://heygeronimo.tistory.com/34 [huggingface🤗] How to generate text #1 자연어 처리

heygeronimo.tistory.com

 

https://heygeronimo.tistory.com/41

 

[논문이해] locally typical sampling

논문명: Locally Typical Sampling 논문링크: https://arxiv.org/abs/2202.00666 Locally Typical Sampling Today's probabilistic language generators fall short when it comes to producing coherent and fluent text despite the fact that the underlying models

heygeronimo.tistory.com