PStage MRC 3강 - Generation-based MRC

Generation-based MRC

Generation-based MRC 문제 정의

Extraction-based mrc와 다르게 주어진 질문의 답이 지문 내에 존재하지 않을 수도 있기 때문에 기본적으로 답변을 ‘생성’하는 문제로 분류한다.

input은 Extraction-based mrc와 동일하지만, generation-based mrc에서는 fine-tuning 시 정답 text까지 생성하는 seq2seq 모델로 분류할 수 있다.

Generation-based MRC vs. Extraction-base MRC

  1. MRC 모델 구조
    • Seq-to-Seq PLM 구조 (Generation) vs. PLM + Classifier 구조 (Extraction)
  2. Loss 계산을 위한 답의 형태 / Prediction의 형태
    • Free-form text 형태 (Generation) vs. 지문 내 답의 위치 (Extraction)
    • Extraction-based MRC는 f1 계산을 위해 text로의 별도의 전환 과정이 필요하다.

Pre-processing

Tokenize

Extraction과 같이 토큰화를 진행한 뒤 input_ids(또는 input_token_ids)를 생성한다.

Generation 모델에서는 PAD 토큰은 사용되지만, CLS와 SEP 토큰의 경우 사용할 수는 있지만 보통 자연어를 이용한 텍스트 포맷으로 대신하는 경우가 많다. ex) CLS -> Question, SEP -> Context

자세히 보기

PStage MRC 2강 - Extraction-based MRC

Extraction-based MRC

Extraction-based MRC의 문제 정의

질문의 답변이 항상 주어진 지문 내에 span으로 존재한다고 가정한다.

평가방법은 크게 EM과 f1이 존재한다. f1은 조금 더 soft한 metric으로 보통 EM보다 점수가 높게 형성된다. EM score는 정답과 조금이라도 다르면 0점을 부여하고, F1은 정답과의 overlap 비율을 계산하여 부분점수를 부여한다.

모델의 input은 Context, Question 두 개의 벡터가 임베딩의 형태로 들어가게 되며 start index와 end index이 존재하는 벡터가 output이 된다.

Pre-processing

Tokenization

텍스트를 작은 단위(token)로 나누어야 한다.

띄어쓰기, 형태소, subword 등 여러 단위의 토큰 기준이 사용되는데, 최근엔 OOV(out of vocab) 문제를 해결해주고 정보학적 이점을 가진 BPE가 주로 사용되며, WordPiece Tokenizer 역시 BPE 방법론 중 하나이다.

input으로 들어갈 때 SEP 라는 special 토큰으로 context와 질문을 구분하게 된다.

자세히 보기

PStage MRC 1강 - MRC Intro

Introduction to MRC

Machine Reading Comprehension (기계독해)는 주어진 지문(Context)를 이해하고, 주어진 질의(Query/Question)의 답변을 추론하는 문제이다.

예를들어 서울특별시에 대한 지문에서 서울의 GDP는 세계 몇 위야? 라는 질문을 했을 때, 세계 4위 라는 답변을 하는 과제이다.

주로 질문(쿼리)가 들어오면 문서에서 답을 낼 수 있는 시스템(구글, 인공지능 스피커)에서 사용되며, 관련 문서를 찾고 -> 정답을 찾는 방식으로 구성된다.

MRC의 종류들은 아래와 같다.

1) Extractive Answer Datasets

질의에 대한 답이 항상 주어진 지문의 segment(or span)으로 존재하는 경우. 이런 방식을 채택하는 데이터셋으로는 SQuAD, KorQuAD, NewsQA 등이 있다.

2) Descriptive/Narrative Answer Datasets

답이 지문 내에 존재하지 않고, 질의를 보고 생성된 sentence(or free-form)의 형태. MS MARCO, Narrative QA 등의 데이터셋이 이러한 방식을 채택한다.

3) Multiple-choice Datasets

자세히 보기

부스트캠프 AI Tech 9주차 회고 (2021-09-27 ~ 2021-10-01)

P Stage 강의 커리큘럼

  1. 인공지능과 자연어 처리
  2. 자연어의 전처리
  3. BERT 언어모델 소개
  4. 한국어 BERT 언어 모델 학습
  5. BERT 기반 단일 문장 분류 모델 학습
  6. BERT 기반 두 문장 관계 분류 모델 학습
  7. BERT 언어모델 기반의 문장 토큰 분류

대회관련

협업전략, 툴

협업툴

협업툴은 Notion을 메인으로 사용한다. 여러 툴에서 파편적인 기능들만을 선별적으로 사용할 수도 있지만, 데드라인이 주어진 대회라는 플랫폼 하에서는 채널이 다양할 수록 혼란만 가중되는 것 같다. Notion에서 여러 유용한 Template을 하나하나 가져와서 꽤 괜찮은 Dashboard를 만들고, 코드관리를 제외한 모든 것을 Notion으로 해결하고 있다. 기록의 중요성에 공감을 많이 하여 모인 팀 답게, Notion을 적극적으로 사용하고 있고 그로인해 체계적인 실험과 작업관리가 가능해진 것 같다.

또한 Wandb를 팀단위로 만들어서 각자 한 실험에 대한 log를 시각화하여 볼 수 있게 되었다. good practice인듯!!

협업전략

실험전략은 개인이 하고싶은 것 위주로 플래닝을 진행하며, 작은 모델을 Base로 하여 빠른 실험이 가능하도록 했다. 또한 실험을 통한 성능비교를 위해 hyperparameter나 seed등 변수가 될 수 있는 모든 것들을 fix하여 진행한다. 코드의 경우 본인의 실험에 따라 각자의 코드가 전부 달라지며, 그것을 하나로 통합하면서 진행하는 것은 대회에서는 굉장히 비효율적인 방식인 것 같다. 한 번 진행해보고 PR이나 Merge에 병목이 생기는 것을 경험한 뒤로, 언제든 그때그때의 실험으로 Rollback이 가능하도록 branch를 여러개로 나누되, 합치진 않기로 결정했다.

NLP Augmentation

자세히 보기