본문 바로가기
BOOSTCAMP AI TECH/PStage

03-02. MRC (Machine Reading Comprehension, 기계독해)

by 이민우 2021. 4. 26.
728x90
반응형

Machine Reading Comprehemsion

-기계 독해

-주어진 지문을 이해하고 주어진 질의에 대한 답변을 추론하는 문제

 

 

 

 

 

MRC의 종류

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

   ex) SQuAD, KorQuAD, NewsQA, Natural Questions, ...

2) Descriptive/Narrative Answer Datasets : 답이 지문 내에 없고 질의를 보고 생성된 문장의 형태

   ex) MS MARCO, Narrative QA, ...

3) Multiple-choice Datasets : 질의에 대한 답을 여러 개의 답 중 하나를 고르는 형태 (객관식)

   ex) MCTest, RACE, ARC, ...

 

 

 

 

Challenges in MRC

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

-대답이 불가능한 질문들의 존재. 즉, 지문 속에 답이 없는 질문

-여러 개의 문서에서 질의에 대한 정보를 찾아 취합해야만 답을 찾을 수 있음.

 

 

 

 

MRC의 평가 방법

1) Exact Math : 예측한 답과 실제값이 정확히 일치하는 샘플의 비율 (정확도)

2) F1 Score : 예측한 답과 실제값 사이의 token overlap을 F1으로 계산

3) ROUGE-L : 예측한 값과 실제값 사이의 overlap recall

4) BLEU : 예측한 답과 실제값 사이의 precision (ex) BLUE-n : uniform n-gram weight

 

 

 

 

 

Unicode

-전 세계의 모든 문자를 일관되게 표현하고 다룰 수 있도록 만들어진 문자셋

-문자 하나에 숫자 하나를 매핑한다.

 

인코딩 & UTF-8

-인코딩이란 문자를 컴퓨터에서 저장 및 처리할 수 있도록 이진수로 바꾸는 작업

-UTF-8은 현재 가장 많이 사용되는 인코딩 방식으로, 문자 타입에 따라 다른 길이의 바이트를 할당한다.

-Python3부터 string 타입은 유니코드 표준을 사용한다.

-ord 함수 사용시 문자를 유니코드로 사용할 수 있고, chr은 유니코드를 문자로 변환한다.

-한국어는 한자 다음으로 유니코드에서 많은 코드를 차지한다. (완성형과 조합형 모두 존재해서)

 

 

토크나이징

-텍스트를 토큰 단위로 나누는 것.

-단어, 형태소, subword 등 여러 토큰 기준이 사용된다.

-Subword 토크나이징은 자주 쓰이는 글자 조합은 한 단위로 취급하고, 자주 쓰이지 않는 조합은 subword로 쪼갠다.

-BPE (Byte Pair Encoding) : 데이터 압축용으로 제안된 알고리즘.

-NLP에서 토크나이징용으로 활잘하게 사용된다.

-가장 자주 나오는 글자 단위 바이그람을 다른 글자로 치환하고, 치환된 글자를 저장하는 방식을 반복

 ex) aaabdaaabac => ZabdZabac (Z=aa) => ZYdZYac (Y=ab) => XdXac (X=ZY)

 

 

KorQuAD

-LG CNS가 AI 언어지능 연구를 위해 공개한 질의응답/기계독해 한국어 데이터셋

-인공지능이 한국어 질문에 대한 답변을 하도록 필요한 학습 데이터셋

-1,550개의 위키피디아 문서에 대하여 10,649 건의 하위 문서들과 크라우드 소싱을 통해 제작한

 63,952개의 질의응답 쌍으로 구성된다.

-누구나 데이터를 내려받고 모델을 제출하여 리더보드 평가가 가능하다.

-V1, V2가 있으며 2.0은 보다 긴 분량의 문서를 포함하여 표나 리스트도 포함된 HTML 형태

 

 

HuggingFace datasets

-허깅페이스에서 만든 데이터셋은 자연어처리에 사용되는 대부분의 데이터셋과 평가 지표를 접근하고

 공유할 수 있게끔 만든 라이브러리.

-Numpy, Pandas, PyTorch, Tensorflow2와 호환됨

-접근가능한 모든 데이터셋이 memory-mapped, cached 되어있어 데이터를 로드하면서 생기는 메모리 공간 부족이나

 전처리 과정 반복의 번거로움을 피할 수 있다.

-KorQuAD는 squad_kor_v1, squad_kor_v2 로 로그 가능.

728x90
반응형

'BOOSTCAMP AI TECH > PStage' 카테고리의 다른 글

03-03. Object Detection  (0) 2021.05.10
03-01. Object Detection / Segmentation  (0) 2021.04.26
02-02. Tabular  (0) 2021.04.24
02-01. KLUE  (0) 2021.04.24
01. Computer Vision  (0) 2021.04.24