(3강) Generation-based MRC

  • 생성기반 기계독해

  • 생성기반 기계 독해를 풀수 있는지 알아본다.

  • 전처리 -> 학습 -> 답을 얻어내는 단계

[Reference]

1. Generation-based MRC

1.1. 문제 정의

주어진 지문과 질의를 보고, 답변을 생성 -> 생성 문제

1.2. 평가방법

Extraction based MRC와 동일한 방법으로 평가도 가능 하지만 ROUGE나 BLEU를 활용하여 평가함

1.3. Overview

1.4. Generation-Based vs Extraction-Based

  • MRC 모델 구조

    • Seq2Seq PLM 구조 vs PLM + Classifier 구조

  • Loss계산을 위한 답의 형태 / Prediction의 형태

    • Free-form text 형태 vs 지문 내 답의 위치

2. Pre-processing

2.1. 입력 표현 - 데이터 예시

2.2. 토큰화

WordPiece Tokenizer를 사용

  • 인덱스로 바뀐 질문을 보통 input_ids (or input_token_ids)로 부름

  • 모델의 기본 입력은 input_ids 만 필요하나, 그 외 추가적인 정보가 필요함

    • special token, attention mask

2.3. Special Token

학습 시에만 사용되며 단어 자체의 의미는 가지지 않는 특별한 토큰

  • SOS(Start of Sentence), EOS(End of Sentence), CLS, SEP, PAD, UNK...

  • Extraction-based MRD: CLS, SEP, PAD

  • Generation-based MRC: PAD, 자연어를 통해 정해진 텍스트 포맷으로 데이터를 생성

2.4. additional information

  • Attention mask

    • 어텐션 연산을 수행할지 결정

  • Token type ids

    • BERT와 달리 BART에서는 입력 시퀸스에 대한 구분이 없어 token_type_ids 가 존재하지않음 따라서 입력에 token_type_ids 가 들어가지 않음.

2.5. 출력표현

Extraction은 단지 토큰의 위치를 출력하는 것이 목표인 반면 Generation의 경우 실제 텍스트를 생성하는 과제를 수행하게 된다.

3. Model

3.1. BART

기계독해, 기계 번역, 요약, 대화 등 seq2seq 문제의 pre-training을 위한 denoising autoencoder

  • noise를 추가하고 그 부분을 맞추는 방법

3.2. BART Encoder & Decoder

  • Encoder: BERT 처럼 Bi-directional

  • Decoder: GPT 처럼 uni-directional(auto-regressive)

3.3. Pre-training BART

  • 텍스트에 노이즈를 주고 원래 텍스트를 복구하는 문제를 푸는 방식으로 Pre-Training을 진행하게 된다.

4. Post-processing

4.1. Searching

  • 일반적으로 Beam Search와 유사한 방식을 사용한다.

Last updated