(1강) MRC Intro & Python Basics
Last updated
Last updated
기계독해에 대한 소개와 기본적인 파이썬 지식에 대한 강의
기계독해란 무엇인지? 어떤 종류가 있는지? 평가는 어떻게 해야하는지?
unicode와 tokenization 개념
KorQuAD를 통해 실제 기계독해 데이터의 형태 확인
기계 독해란, 주어진 지문(Context)를 이해하고, 주어진 질의(Query/Question)의 답변을 추론하는 문제
보통 질문에 대한 답을 찾는 방식은 1) 질문에 대한 관련 문서들을 찾고, 2) 그 문서들로부터 질문에 대한 답을 찾는 것으로 나누어져있다.
질의에 대한 답이 항상 주어진 지문의 segment(or span)으로 존재
Span Extraction
SQuAD, KorQuAD, NewsQA, Natural Question, etc
답이 지문 내에서 추출한 span이 아니라, 질의를 보고 생성된 sentence (or free-form)의 형태
MS MARCO, Narrative QA
질의에 대한 답을 여러 개의 answer candidates 중 하나로 고르는 형태 (수능문제 같음)
MCTest, RACE, ARC, etc
단어들의 구성이 유사하지 않지만 동일한 의미의 문장을 이해
DuoRC (paraphrased paragraph)
동음 이의어 등
QuoRef (coreference resolution)
지칭 대명사 - it, that, he...
Unanswerable questions
Question with 'no answer'
SQuAD 2.0
Multi-hop reasoning
여러개의 document에서 질의에 대한 supporting fact를 찾아야지만 답을 찾을 수 있음
HotpotQA, QAngaroo
For extractive answer and multiple-choice answer datasets
Exact Match
(Number of correct samples) / (Number of whole samples)
F1 Score
예측한 답과 ground-truth 사이의 token overlap을 F1으로 계
For descriptive answer datasets => 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
전 세계의 모든 문자를 일관되게 표현하고 다룰 있도록 만들어진 문자셋으로 각문자마다 숫자하나에 매핑한다.
인코딩이란? 문자를 컴퓨터에서 저장 및 처리할 수 있게 이진수로 바꾸는 것
가장 많이 쓰는 인코딩 방식으로 문자 타입에 따라 다른 길이의 바이트를 할당한다.
1byte: Standard ASCII
2byte: Arabic, Hebrew, most European scripts
3byte: BMP(Basic Multilingual Plane) - 대부분의 현대 글자 (한글)
4byte: All Unicode characters - 이모지 등
텍스트를 토큰 단위로 나누는 것.
단어, 형태소, subword 등 여러 토큰 기준이 사용된다.
자주 쓰이는 글자 조합은 한 단위로 취급하고, 자주 쓰이지 않는 조합은 subword로 쪼갠다.
"##"은 디코딩을 할 때 해당 토큰을 앞 토큰에 띄어쓰기 없이 붙인다는 것을 의미한다.
Pre-trained 모델과 토큰나이저는 하나의 묶음!
데이터 압축용으로 제안된 알고리즘으로 NLP에서 토크나이징용으로 사용되고 있다.
가장 자주 나오는 글자 단위 Bigram (or Byte pair)를 다른 글자로 치환한다.
치환된 글자를 저장해둔다.
1~2번을 반복한다.
LG CNS가 AI 언어지능 연구를 위해 공개한 질의응답/기계독해 한국어 데이터 셋
인공지능이 한국어 질문에 대한 답변을 하도록 필요한 학습 데이터
1,550개의 위키피디아 문서에 대해서 10,649 건의 하위 문서들과 크라우드 소싱을 통해 제작한 63,952개의 질의 응답 쌍으로 구성되어있음 (Train: 60,407 / Dev: 5,774 / TEST: 3,898)
누구나 데이터를 내려받고, 학습한 모델을 제출하고 공개된 리더보드에 평가를 받을 수 있음
현재 v2.0이 공개되었으며 보다 긴 분량의 문서가 포함되어있고 단순 자연어뿐만 아니라 표나 리스트 등을 포함하는 html 형태로 되어있어 문서 전체 구조에 대한 이해가 필요하다.
KorQuAD 데이터 셋의 경우 squad_kor_v1
, squad_kor_v2
로 불러올수 있다.