부스트캠프 AI Tech 4기

(NLP 기초대회) N2M - Encoder-Decoder Approach

쉬엄쉬엄블로그 2023. 7. 27. 16:46
728x90

이 색깔은 주석이라 무시하셔도 됩니다.

N2M (Encoder-Decoder Approach) 이론

N2M과 Encoder/Decoder

  • N2M 태스크와 Encoder-Decoder 모델의 역할

N2M

  • N2M 태스크

    • N개의 데이터를 입력으로 받아 M개의 데이터를 출력하는 태스크

    • Encdoer + Decoder 모델이 주로 활용됨

  • Encoder

    • 입력 정보를 잘 인코딩(숫자화)하기 위해 활용함

    • 긴 Sequence 정보를 잘 추출하는게 중요함

  • Decoder

    • 인코더에서 인코딩된 정보를 활용하여 출력 Sequence를 순차적으로 생성함

    • 인코딩된 정보와 앞서 생성된 토큰을 함께 활용하여 다음 토큰을 생성함

N2M 태스크 예 | 번역

  • 문장을 입력받아 다른 언어로 번역하는 문제

N2M 태스크 예 | 품사태깅

  • 입력된 문장의 구성요소들의 품사를 맞추는 문제

    • 품사태깅은 N2N 문제였는데 한국어의 경우에는 N2M 문제가 되기도 함

N2M 태스크 예 | 대화 모델링

  • 질의응답(챗봇 등)

    • 질문에 답변을 하는 문제로, 챗봇이나 문제풀이 등에 활용할 수 있음

N2M 태스크 예 | Image to Text

  • 이미지 태깅

    • 입력 받은 이미지를 텍스트로 설명하는 문제

Encoder-Decoder 모델

  • Encoder-Decoder 모델 종류와 특징

Encoder-Decoder 모델의 발전

  • Encoder-Decoder 모델 발전 순서

Encoder-Decoder RNN

  • 대표적인 모델로 LSTM이 주로 사용됨
  • LSTM은 이전 입력 정보를 선택적으로 활용할 수 있음
  • 데이터가 길어지면 성능이 하락하는 문제가 있음

Attention

  • Attention

    • RNN 구조의 한계를 개선하기 위해 제안된 방법
    • 입력 정보에 가중치를 적용하여 정보를 취사선택하는 방법
    • 생성해야 할 토큰에 적합한 입력 정보를 골라서 사용함
  • Additive Attention(Bahdanau Attention)

    • 가중치를 더해서 Attention을 적용하는 방법
  • Multiplicative Attention(Dot-production Attention)

    • 가중치를 곱해서 Attention을 적용하는 방법
    • 트랜스포머에서 가장 많이 쓰이는 Attention 방법

Transformers

  • Attention만으로 구현된 Encoder-Decoder 모델

  • 주로 대규모 데이터로 선학습(Pre-training)하여 사용함

  • N2M 태스크에 특화된 모델

  • Encoder와 Decoder를 단독으로 사용하기도 함

  • 디코더는 가장 아래 레이어에서 Masked Multi-Head Attention 레이어를 사용

  • cross attention 적용

    • 인코더의 top 레이어 결과물이 디코더의 multi-head attention에 입력으로 들어옴
  • Transformers 모델 종류

    • Encoder Only

      • 정보를 양방향으로 취합함

      • 분류 문제에 주로 활용됨

      • 모델 학습방법

        • 손상된 문장을 복원하거나, 문장 간의 관계를 유추하여 학습함

          • Masked Language Modeling(MLM)

          • Next Sentence Prediction(NSP)

    • Decoder Only

      • 정보를 단방향으로 취합함

      • 생성 문제에 주로 활용됨

      • 모델 학습방법

        • Auto-regression

          • 생성한 단어를 다시 입력으로 사용하여 모든 단어를 순서대로 예측함

            https://jalammar.github.io/images/xlnet/gpt-2-autoregression-2.gif

    • Encoder-Decoder 모델

      • BART

        • BERT와 GPT를 결합한 모델

        • 손상된 문장을 활용하여 다양한 선학습 방법을 적용하였음

      • T5

        • 모든 입출력을 Text로 구성하여 학습함

        • 키워드를 활용하여 입력에 태스크 정보를 함께 제공함

Encoder-Decoder 동작 과정

Encoder-Decoder 동작 과정 예시

Decoding 방법

Decoding Strategy

  • Searching 방법

  • 개선 테크닉

Greedy search

https://d18l82el6cdm1i.cloudfront.net/uploads/xlck8z42EM-greedy-search-path-example.gif

  • Greedy 알고리즘을 활용한 디코딩 방법
  • 매 순간 현재 상태에서 가장 이익(확률)이 큰 것을 선택함
  • 시간 복잡도는 좋지만, 최종 결과가 최선이 아닐 수 있음
  • 내일 서울 날씨 어때? -> 내일 서울은 비가 옵니다

Beam search

https://assets.amazon.science/5c/dc/3969f3e44740956595c181578589/beam-search.gif

  • Greedy보다 더 많은 경우의 수를 고려함

  • 매 순간 N개의 후보를 함께 선택하여 최종 결과를 선택함

  • N=1 이면 Greedy search와 동일함

  • 항상 최선의 결과가 나오지는 않음

  • 내일 서울 날씨 어때? -> 내일 서울은 비가 옵니다

  • Beam이 2개인 예시

Decoder Tools | huggingface

  • Huggingface Generate 함수

출처: 부스트캠프 AI Tech 4기(NAVER Connect Foundation)