MRC

MRC(Machine Reading Comprehension)는 QA(Question Answering)의 한 형태로,

기계 독해를 기반으로 지문과 질문이 주어졌을 때, 정답을 내놓는 NLP 과제이다.

정확하게는 답을 포함한 지문(Document / Context)에서 답을 찾는 task이다.

 

MRC는 보통 다음과 같은 순서를 따른다.

1. 질문과 문단 전체를 [SEP] token을 활용해, 하나의 입력 문장으로 만든다.

2. BERT를 통해 각 단어(token)별 embedding vector를 얻는다.

3. 단어(token)별 embedding vector를 이용해 답의 위치를 찾는다.

    └ 단어(token)별로 답의 시작인지 아닌지, 답의 끝인지 아닌지를 학습한다.

4. 경우에 따라 답을 찾을 수 없는 경우 [CLS] token으로 정답을 결정(Answer / No Answer)한다.

 

SQuAD

출처: https://paperswithcode.com/dataset/squad

 

SQuAD(Stanford Question Answering Dataset)는 스탠포드에서 구축한 데이터 셋이다.

이는 NLP에서 가장 보편적으로 사용하는 MRC 데이터 셋이다.

 

출처: https://paperswithcode.com/dataset/squad

 

해당 데이터는 Crowdsourcing(크라우드 소싱)을 통해 구축한 데이터다.

따라서 특정 질문에 대해 답이 여러 종류가 있을 수 있다.

위 사진에서 3번째 질문의 경우, 5개의 답안이 있는데 전부 ground truth로 간주한다. 

BERT는 5개 중에서 아무거나 예측해도 Answer 처리한다는 말이다.

 

전체 단어의 embedding vector들을 Fully Connected Layer 두 개를 두어 scalar로 바꾸는 fine tuning을 거친다.

이후 전체 단어의 scalar 값에 softmax를 씌워서 각 확률을 예측한다.

FC 1개는 정답의 시작 위치를 예측하고, 다른 FC 1개는 정답의 마지막 위치를 예측하도록 학습한다.

이런 MRC를 위한 SQuAD에는 v1.1과 v2.0이 존재한다.

 

v1.1: 정답이 항상 지문에 존재한다. 정확히 답을 찾아내야 한다.

v2.0: 일부 질문은 정답이 지문에 없다. 이 경우 [CLS] token을 사용하여 No Answer를 도출해야 한다.

다양한 모델 조합을 SQuAD에 테스트한 결과는 링크에서 확인할 수 있다.

 

SWAG

출처: https://paperswithcode.com/dataset/swag

 

SQuAD 말고 MRC를 위한 또 다른 데이터 셋인 SWAG가 있다.

SWAG(Situations With Adversarial Generations)는 상황 기반 문장 추론을 위한 multiple choice dataset이다.

 └ 쉽게 말하면 어떤 문장이 있을 때 다음에 올 문장을 고르는 task다.

2018년 University of Washington에서 발표했고, 상식 추론(commonsense reasoning) 능력을 평가하기 위해 설계했다.

기존 모델들이 패턴만 따라가지 못하도록 adversarial filtering을 적용했다.

 └ Adversarial Filtering: 모델이 패터만 보고 푸는 쉬운 후보를 제거하고, 헷갈리는 오답 선택지만 남기는 과정

 

위의 사진은 다양한 downstream task에 대해 BERT를 Fine tuning하는 사례들이다.

SQuAD와 유사하게 동작하는데 질문 문장과 각 선택지를 [SEP]로 이어서 조합을 만든다.

모든 조합에 대해서 [CLS]로 나온 vector를 FC를 거쳐서, 선택지 마다 하나의 scalar 값을 뽑아낸다.

Scalar값들을 softmax 함수와 통과시켜 가장 높은 값 하나를 정답으로 도출한다.

 

Ablation Study

Ablation Study는 ML이나 DL 연구에서 모델 구성 요소가 얼마나 중요한지 확인하는 실험 방식이다.

Ablation(제거)라는 의미답게, 구성 요소 중 일부를 제거하거나 바꿔가며 성능을 측정하여 분석한다.

위 사진은 Transformer(BERT) 모델의 Parameter 수를 늘려가면서 Accuracy를 측정한 그래프이다.

 

110M(1억 1천만)개부터 340M(3억 4천만)개까지 parameter를 점점 더 늘려가면서 확인했다.

그랬더니 다양한 downstream task에 대해서 성능이 끊임없이 좋아지는 것을 확인할 수 있다.

즉 GPU 자원이 허락하는 한 모델 크기를 가능한 크게 키우는 것이 좋은 개선이라는 말이다.

'공부 > BoostCourse 자연어 처리' 카테고리의 다른 글

22. NLP Trends - ALBERT  (0) 2025.04.02
21. NLP Trends - GPT 2, GPT 3  (1) 2025.04.01
19. NLP Trends - BERT 1  (0) 2025.03.28
18. NLP Trends - GPT 1  (0) 2025.03.27
17. Transformer - Positional Encoding  (1) 2025.03.26

+ Recent posts