일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- nlp
- 로지스틱 회귀법
- MRC
- 밑시딥
- 딥페이크
- 선형회귀
- 안드로이드
- GPT-3
- 다중분류
- andoriod with kotlin
- 모두의 딥러닝
- 면접왕 이형
- gradiant descent
- 면접왕이형
- ESG
- 과적합
- 밑시딥2
- 예측선
- 경사하강법
- ESG 채권
- 코틀린
- 베스트 모델
- 안드로이드 구조
- 보이스피싱
- 학습 자동 중단
- 밑바닥부터 시작하는 딥러닝
- 독서 #독서후기 #피로사회 #행동과잉 #긍정과잉
- k겹 교차검증
- 뉴로 심볼릭
- 경제신문스크랩
- Today
- Total
Practice makes perfect!
Week 11 (1) MRC Intro 본문
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 |