MRC 2강 - KR-HappyFace/meetup-logs GitHub Wiki

  • 본인이 생각하는 핵심부문을 요약하기
  • 의문점, 궁금했던 점도 적기
  • 쓸만한 실습코드 있으면 여기다가 붙여넣기

영진

Improved Baseline은 Embedding Layer을 resize하지 않아도 되는 간편함이 있다.

~~~~

재영

-Extraction-basedMRC는 지문속에 정답이 있는 qa문제

  • 텍스트를 토크나이징해서 주어진 문장을 전처리함
  • Extraction-basedMRC는 분류문제!, 마지막 fc 레이어가 start,end의 두개의 차원으로 바꿔서 파인튜닝
  • 가능한 조합에 대해서 가장 높은 start의 확률을 가진 토큰부터 높은 end확률을 가지는 토큰까지를 정답으로 출력한다. -> 시작위치와 끝위치를 예측하도록 하는 분류문제
  • 평가방법 em과 f1스코어를 이용해서 평가.

준홍

  • Extraction-based MRC -> 평가방법 두가지 1. EM 2. F1 Score
  • 정답이 sentence 안에 있으므로 idx 값으로 답이 return된다.
  • Tokenization 은 BPE 방식을 많이 쓴다.
# QA에 사용되는 context는 문장이 길 수도 있기 때문에 stride 만큼 겹치게 넣어서 쪼개준다.
# 쪼개진 곳에서 정답 idx 후보를 고른뒤에 확률이 제일 높은것을 고름.
tokenized_examples = tokenizer(
    examples["question"],
    examples["context"],
    truncation="only_second",  # max_seq_length까지 truncate한다. pair의 두번째 파트(context)만 잘라냄.
    max_length=max_seq_length,
    stride=doc_stride, # QA
    return_overflowing_tokens=True, # 길이를 넘어가는 토큰들을 반환할 것인지
    return_offsets_mapping=True,  # 각 토큰에 대해 (char_start, char_end) 정보를 반환한 것인지
    padding="max_length",
)

연주

실습코드 prepare_train_features()

  • truncation="only_second", max_length, stride
    • context의 길이는 max_seq_length만큼 자르고, 서로 doc_stride만큼 겹치게 slice (len(offset_mapping) = 384)
  • offset mapping : sub token의 (start, end) image
  • overflow_to_sample_mapping : 몇 번째 example인지
  • token_start_index, token_end_index : answer가 현재 span(max seq length만큼 잘린 context) 을 벗어나면 0 (cls index) span 내부에 있다면 각각 answer의 시작점과 끝점으로 옮김

현수

  • Extraction Based MRC
    • 질문의 답변이 항상 지문 내 Span으로 존재
    • 전체적인 pipeline: pre-processing -> Model Input/Ouput & Fine-tuning -> Post-processing
    • 문서 내 존재하는 단어 토큰들 중 질문에 대한 답에 해당하는 부분의 시작과 끝 위치를 알면 정답 맞출 수 있음
    • Extraction의 Ground truth 역시 지문 내에 존재하며 EM로 평가하기 때문에 NLG 학습보단 시작 끝 위치를 예측하도록 Classification 문제로 치환
  • Post-processing:
    • 불가능한 답 제거
    • 최적의 답 찾기

세현

성욱

Extraction-based MRC Generation-based MRC
접근 지문 내에 존재하는 정답의 Start point/End point를 파악 질문에 대한 정답 생성
평가 방법 EM(Exact Match), F1 score ROUGE-L, BLEU (Extraction-based MRC와 같은 평가 방법을 사용할 수 있지만 일반적인 생성 문제에 비슷하게 접근하기 위해 ROUGE-L, BLEU를 사용하기도 한다.)
정답 생성 모델 output을 Score로 바꾸고 이를 Start/End point로 변환하는 작업 추가 모델에서 바로 정답 추출
모델 구조 Encoder + Classifier Seq2seq(Encoder-Decoder)
Prediction 지문 내 답이 위치 Free-form text
Loss 위치에 대한 확률 분포를 Negative Log Likelihood로 계산하여 접근 실제 text를 decoding할 때, teacher forcing과 같은 방식으로 학습
Special Token [CLS], [SEP], [PAD] 등 정해진 텍스트 포맷으로 생성하여 사용한다, (e.g. question, context)
token_type_ids BERT를 주로 사용하며, token_type_ids 존재 BART를 주로 사용하며, token_type_ids가 존재하지 않는다.
post-preprocessing score 순으로 top-k -> 불가능한 조합 삭제 -> score가 가장 높은 조합 예측 Beam Search