Practice makes perfect!

Week 11 (1) MRC Intro 본문

Study/AI Tech

Week 11 (1) MRC Intro

na0dev 2021. 10. 12. 12:12

1. Machine Reading Comprehension (MRC)의 개념

기계 독해 (Machine Reading Comprehension)

: 주어진 지문 (Context)를 이해하고, 주어진 질의 (Query/Question)의 답변을 추론하는 문제

 

1) Extractive Answer Datasets
: 질의(question)에 대한 답이 항상 주어진 지문 (context)의 segment(or span)으로 존재

 

2) Descriptive/Narrative Answer Datasets
: 답이 지문 내에서 추출한 span이 아니라,질의를 보고 생성 된 sentence(orfree-form)의 형태

 

3) Multiple-choice Datasets
: 질의에 대한 답을 여러 개의 answer candidates 중 하나로 고르는 형태 

: 요즘에는 잘 쓰이지 않음

MRC Dataset에서 어려운 점

1) Paraphrasing / coreference resolution

단어들의 구성이 유사하지는 않지만 동일한 의미의 문장을 이해해야 함

 

2) Unanswerable questions

: 지문 내에 답변이 존재하지 않을 수 있음

: 모델 입장에서는 문법 등 여러가지 요소 때문에 답변이 존재하는 것 처럼 보일 수 있음

: 실제로 답변이 없다면 모르겠다는 답을 내주는 것이 더 나음

 

3) Multi-hopreasoning

: 여러 개의 document에서 질의에 대한 supporting fact 찾아야지만 답을 찾을 수 있음 

: 최근에 많이 대두되고 있음

MRC의 평가방법

1) Exact Match / F1 Score

  • For extractive answer and multiple-choice answer datasets
  • Exact Match = Accuracy : 예측한 답과 ground-truth가 정확히 일치하는 샘플의 비율 -> 답변이 조금만 달라도 점수를 못받음 -> F1 score 사용 
  • F1 Score : 예측한 답과 ground-truth 사이의 token overlap을 F1으로 계산

2) ROUGE-L / BLEU 

  • For descriptive answer datasets
  • descriptive answer는 완벽하게 일치하기가 어려워 EM은 거의 0점, f1은 단어의 overlap만 보기 때문에 답변 자체의 언어적인 평가는 어려움 ⇒ Ground-truth와 예측한 답 사이의 overlap을 계산
  • ROUGE-L Score
    예측한 값과 ground-truth사이의 overlap recall
    (ROUGE-L⇒LCS(Longest common subsequence)기반)
  • BLEU(Bilingual Evaluation Understudy)
    예측한 답과 ground-truth사이의 precision
    (BLEU-n ⇒ uniform n-gram weight)

2. Unicode & Tokenization

unicode

  • 전 세계의 모든 문자를 일관되게 표현하고 다룰 수 있도록 만들어진 문자셋
  • 각 문자마다 숫자 하나에 매핑함

인코딩

문자를 컴퓨터에서 저장 및 처리할 수 있게 이진수로 바꾸는 것

 

UTF-8(UnicodeTransformationFormat)

UTF-8는 현재 가장 많이 쓰는 인코딩 방식
문자 타입에 따라 다른 길이의 바이트를 할당함

  • 1 byte : Standard ASCII
  • 2 bytes : Arabic, Hebrew, mostEuropeanscripts
  • 3 bytes : BMP(Basic Multilingual Plane) - 대부분의 현대 글자 (한글 포함)
  • 4 bytes : AllUnicodecharacters - 이모지 등

토크나이징

  • 텍스트를 토큰 단위로 나누는 것
  • 단어(띄어쓰기 기준),형태소,subword등 여러 토큰 기준이 사용됨
  • 토크나이징 방법론은 모델의 일부라고 보는 것이 좋음

Subword 토크나이징

  • 자주 쓰이는 글자 조합은 한 단위로 취급하고, 자주 쓰이지 않는 조합은 subword로 쪼갬
  • "##"은 디코딩 (토크나이징의 반대 과정)을 할 때 해당 토큰을 앞 토큰에 띄어쓰기 없이 붙인다는 것을 뜻함

BPE(Byte-PairEncoding)

  • 데이터 압축용으로 제안된 알고리즘.
  • NLP에서 토크나이징용으로 활발하게 사용되고 있음

3) Dataset

KorQuAD 

  • LG CNS가 AI 언어지능 연구를 위해 공개한 질의응답/기계독해 한국어 데이터셋
  • 인공지능이 한국어 질문에 대한 답변을 하도록 필요한 학습 데이터셋

HuggingFace datasets라이브러리

  • HuggingFace에서 만든 datasets은 자연어처리에 사용되는 대부분의 데이터셋과 평가 지표를 접근하고 공유할 수 있게끔 만든 라이브러리
  • Numpy, Pandas, PyTorch, Tensorflow2와 호환
  • 접근가능한 모든 데이터셋이 memory-mapped, cached 되어있어 데이터를 로드 하면서 생기는 메모리 공간 부족이나 전처리 과정 반복의 번거로움 등을 피할 수 있음
  • KorQuAD 데이터셋의 경우 squad_kor_v1,squad_kor_v2로 불러올 수 있음

 

 

+ Further Reading

 

반응형

'Study > AI Tech' 카테고리의 다른 글

Week 11 (3) Generation-based MRC  (0) 2021.10.13
Week 11 (2) Extraction-based MRC  (0) 2021.10.13
Week 10 (1) GPT 언어 모델  (0) 2021.10.05
Week 9 (4) 한국어 언어 모델 학습 및 다중 과제 튜닝  (0) 2021.10.01
Week9 (3) BERT 학습  (0) 2021.09.29
Comments