-
부스트캠프 ai tech 2기 12주차 학습 정리 노트Boostcamp AI Tech 2기 2021. 10. 22. 23:49
강의 복습
8강 Reducing Training Bias
Bias in learning :
- 학습할 때 과적합을 막거나 사전 지식을 주입하기 위해 특정 형태의 함수를 선호하는 것 (inductive bias)
A Biased World :
- 현실 세계가 편향되어 있기 때문에 모델에 원치 않는 속성이 학습되는 것 (historical bias)
- 성별과 직업 간 관계 등 표면적인 상관관계 때문에 원치 않는 속성이 학습되는 것 (co-occurence bias)
Bias in Data Generation :
- 입력과 출력을 정의한 방식 때문에 생기는 편향 (specification bias)
- 데이터를 샘플링한 방식 때문에 생기는 편향 (sampling bias)
- 어노테이터의 특성 때문에 생기는 편향 (annotator bias)
Gender Bias :
- 대표적인 bias 예시
- 특정 성별과 행동을 연관시켜서 예측 오류가 발생
Bias in Open-domain Question Answering
Training bias in reader model : 만약 Reader 모델이 한정된 데이터셋에서만 학습이 된다면 Reader는 항상 정답이 문서 내에 포함된 데이터쌍만을 보게됨. Inference 시 만약 데이터 내에서 찾아볼 수 없었던 새로운 문서를 만난다면 Reader 모델은 문서에 대한 독해 능력이 매우 떨어질 가능성이 있음.
1. Train negative examples :
훈련할 때 잘못된 예시를 보여줘야 retriever이 negative한 내용들은 먼 곳에 배치할 수 있음.
1) Corpus 내에서 랜덤하게 뽑기
2) 좀 더 헷갈리는 negative 샘플들 뽑기
-> 높은 BM25 / TF-IDF 매칭 스코어를 가지지만, 답을 포함하지 않는 샘플
-> 같은 문서에서 나온 다른 Passage/Question 선택하기
2. Add no answer bias :
입력 시퀀스의 길이가 N 일시, 시퀀스의 길이 외 1개의 토큰이 더 있다고 생각하기
-> 훈련 모델의 마지막 레이어 weight에 훈련 가능한 bias를 하나 더 추가
-> softmax로 answer prediction을 최종적으로 수행할 때, start end 확률이 해당 bias 위치에 있는 경우가 가장 높으면 이는 '대답할 수 없다'로 취급.
Annotation Bias from Datasets
Annotation bias : ODQA 학습 시 기존의 MRc 데이터셋 활용
-> ODQA 세팅에는 적합하지 않은 bias가 데이터 제작 (annotation) 단계에서 발생할 수 있음
-> 데이터셋 별 성능 차이가 annotation bias로 인해 발생할 수 있음
-> Annotation 단계에서 발생할 수 있는 bias를 인지하고, 이를 고려하여 데이터를 모아야 함
ex) Natural Questions : Supporting evidense가 주어지지 않은, 실제 유저의 question들을 모아서 dataset을 구성
9강 Closed-book QA with T5
Idea of Closed-book Question Answering :
모델이 이미 사전학습으로 대량의 지식을 학습했다면, 사전학습 언어모델 자체가 이미 하나의 knowledge storage 라고 볼 수 있지 않을까? 그렇다면 굳이 다른 곳에서 지식을 가져와야할 필요가 없지 않을까?
Open-book QA :
대량의 지식 소스를 특정 문서 단위로 나누어 Dense/Sparse 형태로 표현한 후, query가 들어오면 가장 그와 관련된 문서를 search
-> 지식 소스를 저장하기 어려움, 검색하는 시간 소요
Closed-book QA :
대량의 지식 소스(위키피디아 등)를 기반으로 사 전학습된 언어 모델이 그 지식을 기억하고 있을 것이라 가정함. Search 과정 없이 바로 정답을 생성함
-> 사전학습된 언어 모델이 얼마나 지식을 잘 기억 하고 있는지가 매우 중요함
Text-to-Text Format
Closed-book QA as Text-to-Text Format :
Closed-book QA에 사용되는 방법은 Generation-based MRC와 유사하다. 단, 입력에 지문(Context)가 없이 질문만 들어간다는 것이 차이점이다. 사전학습된 언어 모델은 BART와 같은 seq-to-seq 형태의 Transformer 모델을 사용한다. Text-to-Text format에서는 각 입력값(질문)과 출력값(답변)에 대한 설명을 맨 앞에 추가한다.
Text-to-Text Format Example 1 : Task-specific prefix를 추가 ⇒ 특정 task에 알맞은 output text를 생성하도록
Ex1) Machine translation : prefix = translate A to B (A: source language / B: target language)
Text-to-Text Format Example 2 :
Ex2) Text classification (MNLI) :
MNLI : 두 개의 sentence (premise, hypothesis)가 주어지고, 이 둘의 관계를 예측하는 task (neutral, contradiction, entailment) Input : “mnli hypothesis: premise: ”
Output: “neutral” or “contradiction” or “entailment”
T5 : Text-to-Text format 이라는 형태로 데이터의 입출력을 만들어 거의 모든 자연어처리 문제를 해결하도 록 학습된 seq-to-seq 형태의 Transformer 모델
Pre-training T5 :
다양한 모델 구조, 사전학습 목표, 사전학습용 데이터, Fine-tuning 방법 등을 체계적으로 실험함 가장 성능이 좋은 방식들을 선택하여 방대한 규모의 모델을 학습시킴
Fine-tuning T5:
- 미리 학습된 pre-trained T5를 활용
- MRC 데이터셋 (TriviaQA, WebQuestions, Natural Questions) 의 QA pair를 활용
- MRC 데이터셋에 제공되는 supporting document는 무시
- Input: Task-specific prefix 추가 ⇒ “trivia question: ”
- Natural Questions와 같이 답이 여러개인 경우 target ⇒ “answer: answer: ”
Experiment Results & Analysis
Experiment Setting :
- Dataset : Open-domain QA 데이터셋 또는 MRC 데이터셋에서 지문을 제거하고 질문과 답변만 남긴 데이터셋을 활용
- Salient Span Masking :
고유 명사, 날짜 등 의미를 갖는 단위에 속하는 토큰 범위를 마스킹한 뒤 학습 Pre-trained 체크포인트에서 추가로 pre-training 함
- Fine-tuning Pre-trained : T5 체크포인트를 Open-domain QA 학습 데이터셋으로 추가 학습
False negatives : Exact match 기준으로 오답으로 채점된 결과를 사람이 평가한 결과 오답이 아닌 경우
1. Phrasing Mismatch: 정답에 대한 표현이 다른 경우
2. Incomplete Annotation: 정답이 여러 개일 수 있으나 하나만 정답으로 처리되는 경우
3. Unanswerable: 질문을 한 시간이나 문맥에 따라서 정답이 달라지는 경우
Limitations : Closed-book QA의 한계점 및 앞으로의 개선 방향
1. 모델의 크기가 커서 계산량이 많고 속도가 느림 -> 더 효율적인 모델 필요
2. 모델이 어떤 데이터로 답을 내는지 알 수 없음 -> 결과의 해석 가능성(interpretability)을 높이는 연구 필요
3. 모델이 참조하는 지식을 추가하거나 제거하기 어려움
10강 QA with Phrase Retrieval
Phrase Retrieval in Open-Domain Question Answering
Current limitation of Retriever-Reader approach :
1. Error Propagation: 5-10개의 문서만 reader에게 전달됨
2. Query-dependent encoding: query 에 따라 정답이 되는 answer span 에 대한 encoding이 달라짐
Key Idea of Phrase Retrieval : Retrieve-Read 두 단계 말고 정답을 바로 search 할 수는 없을까?
Key Challenge: 어떻게 각 phrase를 vector space 상에 잘 mapping 할 수 있을까?
Solution: Dense 와 Sparse 임베딩을 둘 다 사용해보자!
Dense-sparse Representation for Phrases
- Dense vectors : 통사적, 의미적 정보를 담는 데 효과적
- Sparse vectors : 어휘적 정보를 담는 데 효과적
Dense representation :
Coherency vector :
- phrase가 한 단위의 문장 구성 요소에 해당하는지를 나타냄
- 구(句)를 형성하지 않는 phrase를 걸러내기 위해 사용함
- Start vector와 end vector를 이용하여 계산
Question embedding : Question을 임베딩할 때는 [CLS] 토큰 (BERT) 을 활용
Sparse representation :
Sparse vector를 만드는 방법 :
- 문맥화된 임베딩(contextualized embedding)을 활용하여 가장 관련성이 높은 n-gram으로 sparse vector 구성
Scalability Challenge :
Wikipedia 내에는 60 billion개의 phrases가 존재 ⇒ Storage, indexing, search의 scalability가 고려되어야 함
- Storage: Pointer, filter, scalar quantization 활용 (240T storage ⇒ 1.4T storage)
- Search: FAISS를 활용해 dense vector에 대한 search를 먼저 수행 후 sparse vector로 reranking
Experiment Results & Analysis
Experiment Results (SQuAD-open) : DrQA (Retriever-reader) 보다 +3.6% 성능, 68x 빠른 inference speed (less than 1s)
Limitation in Phrase Retrieval Approach :
1) Large storage required : 2TB SSD for phrases
2) 최신 Retriever-reader 모델들 대비 낮은 성능
- SQuAD-open 결과: (EM) 38.6 (BERTserini) vs. 33.4 (DenSPI)
- Natural Questions (NQ) 에서 낮은 성능 ⇒ Decomposability gap이 하나의 원인
Decomposability gap :
(기존) Question, passage, answer가 모두 함께 encoding
⇒ (Phrase retrieval) Question과 passage/answer이 각각 encoding -> Question과 passage사이 attention 정보 x
과제 수행 과정 및 결과
이번 주에는 과제가 없어서 대회에 집중할 수 있었다. 대회를 진행하며 과제를 실습 코드를 많이 참고하는 중이다.
피어 세션
이번 피어세션 시간 또한 강의를 듣고 생긴 질문을 받는 시간과 함께 대회 진행과 관련된 질문과 회의를 주로 하였다. 이번 주는 내가 모더레이터를 맡아 진행 및 회의록 작성을 책임졌는데, 원할하게 회의를 진행하는 것이 생각보다 쉽지 않은 일임을 느낄 수 있는 시간이었다. 이러한 경험도 귀중하며, 좋은 진행과 그에 필요한 준비에 대해 생각해볼 수 있는 기회였다.
학습 회고
어찌저찌 이번 대회도 절반 가까이 지나갔다. 차근차근 앞으로 잘 나아가고 있으니 조급해지지말자는 말을 나 자신에게 해주고 싶다. 또한 항상 옆에서 고생해주시는 우리 팀원들에게 너무나 감사하다는 말을 전하고 싶다.
'Boostcamp AI Tech 2기' 카테고리의 다른 글
부스트캠프 ai tech 2기 P-stage + 최종 프로젝트 정리 (0) 2021.12.31 부스트캠프 ai tech 2기 15주차 학습 정리 노트 (0) 2021.11.13 부스트캠프 ai tech 2기 11주차 학습 정리 노트 (0) 2021.10.15 부스트캠프 ai tech 2기 9주차 학습 정리 노트 (0) 2021.10.01 부스트캠프 ai tech 2기 8주차 학습 정리 노트 (0) 2021.09.24