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
SQuAD(Stanford Question Answering Dataset)는 스탠포드에서 구축한 데이터 셋이다.
이는 NLP에서 가장 보편적으로 사용하는 MRC 데이터 셋이다.
해당 데이터는 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
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 |