블로그
AI 관련 인사이트와 스켈터랩스의 기술 소식을 전해 드립니다.
Insight
KorQuAD: MRC 모델 어떻게 개발하고 평가할까요?
스켈터랩스, KorQuAD 2.0에서 랭킹 1위를 기록하다!



지난 6월 24일 KorQuAD 2.0 리더보드에 스켈터랩스의 MRC 모델이 1위로 기록되었습니다 (짝짝짝, 좋은 소식은 기사로 확인하기).

스켈터랩스는 지난 1월 8일 KorQuAD 1.0에서도 이미 1위를 기록한 바 있는데요. 이 글을 쓰고 있는 시점(2020년 7월 1일 오전 기준)에도 그 기록은 계속 유지되고 있는 중이랍니다. AI made with strong engineering, 스켈터랩스의 성능 고도화가 어디까지 이루어질지 여러분 모두 함께 지켜봐 주세요.

2020.07.01 오전 기준 KorQuAD 2.0 리더보드(위) & KorQuAD 1.0 리더보드(아래)





“축하해요, 그런데 KorQuAD가 뭐예요?” 하고 궁금하실 분들을 위해, MRC 시리즈 2편에 해당하는 오늘의 포스팅에서는 MRC 모델을 개발하고 그 성능을 평가하는 일에 핵심이 되는 대규모 질의응답 데이터셋에 대한 내용을 준비해보았습니다.



KorQuAD가 뭐예요?  



KorQuAD(The Korean Question Answering Dataset, 한국어 질의응답 데이터셋)는 한국어 MRC를 위해 LG CNS에서 구축한 대규모 질의응답 데이터셋으로, 한국어 MRC 모델을 학습하고 그 성능을 평가하는 일에 사용되고 있습니다. 또한 KorQuAD 리더보드에서는 KorQuAD를 활용한 여러 MRC 모델의 기계독해 능력을 동시 객관적으로 비교할 수 있도록 공개하고 있어요 (KorQuAD 1.0 리더보드 보러 가기 / KorQuAD 2.0 리더보드 보러 가기). 현재 KorQuAD 2.0 리더보드에서는 EM(Exact Match: 모델이 정답을 정확히 맞춘 비율), F1 점수(F1 score: 모델이 낸 답안과 정답을 음절 단위로 비교해서 정답과 겹치는 부분을 고려하여 일종의 부분 점수를 인정한 점수), 질문 하나당 응답 속도(1-example latency: 데이터 전처리, 모델 추론을 포함한 질문 하나당 평균 소요시간) 등의 총 세 가지 척도로 MRC 모델의 성능을 수치화하고 있습니다.



독해력이 좋은 MRC 모델을 만드는 과정은 마치 우리가 난해한 비문학 지문을 읽고 잘 이해할 수 있는 능력을 키우는 과정과 비슷해요. 양질의 문제를 대량으로 준비해서 학습하고 훈련한 다음, 시험을 통해 현재 실력이 어느 정도인지 객관적으로 파악하고 개선하는 과정을 반복하는 것입니다. 그러니까 MRC 모델에게 대규모 질의응답 데이터셋이란 훈련을 위한 학습 자료이자 성능 검증을 위한 모의 문항이면서, 평가를 위한 시험 문항인 셈이에요. 이제 MRC 모델의 개발에 있어 대규모 질의응답 데이터셋이 얼마나 중요한 재료인지 감이 오시나요?



KorQuAD 1.0과 KorQuAD 2.0은 어떻게 다른가요?  



KorQuAD 2.0은 한국어 위키백과에 등재된 47,597개의 문서로부터 만든 총 102,960개의 지문/질문/답변 데이터(질의응답 쌍)로 구성되어 있습니다. 그중 83,486개의 질의응답 쌍을 모델의 학습을 위한 Training set, 10,165개의 질의응답 쌍을 모델의 검증을 위한 Dev set으로 구분하여 공개하고 있어요. 이렇게 질의응답 쌍으로 주어지는 문서의 길이와 구조, 출제 유형, 복수정답 인정 여부, 답변불가 검증 여부 등은 KorQuAD를 비롯한 SQuAD, MS MARCO 등 여러 대용량 질의응답 데이터셋마다 다르고, 그에 따라 MRC 모델에 요구되는 성능 역시 달라지게 됩니다. 예를 들어 KorQuAD 1.0과 KorQuAD 2.0은 어떻게 다른지 살펴볼까요? LG CNS에서 작성한 논문에 의하면 KorQuAD 1.0과 KorQuAD 2.0의 주요한 차이점은 다음과 같습니다:



  (1) 문서의 길이

KorQuAD 1.0에서 주어지는 지문은 한두 문단 정도지만, KorQuAD 2.0에서는 위키백과 한 페이지 전체가 주어집니다.

 (2) 문서의 구조

KorQuAD 2.0의 지문에는 표와 리스트가 포함되어 있기 때문에 MRC 모델은 html tag로 구조화된 문서에 대해 이해할 수 있어야 합니다.

(3) 답변의 길이 및 구조

KorQuAD 2.0에서 MRC 모델에 요구되는 답변의 길이는 단어나 구의 단위를 넘어서 문단, 표, 리스트 전체를 포괄하는 긴 영역이 될

수 있습니다.



즉 KorQuAD 2.0에서 높은 점수를 내는 MRC 모델은 위키백과 문서에 포함된 길고 복잡한 내용을 이해할 수 있어야 하고, 표나 리스트에서 답을 찾을 수 있어야 합니다. 이에 더하여 구문이 변형되어 출제된 경우, ‘경질-해임’처럼 어휘가 변형되어 출제된 경우, 여러 문장을 종합적으로 활용하여 출제된 경우에 대해 기계독해가 가능한지 평가합니다. 예시 문제를 함께 살펴볼까요?

  KorQuAD 1.0 스타일의 예시 문제



  [지문] 평일・휴일 모두 낮 시간대는 구로사키 역 앞 - 지쿠호 노가타 사이의 전선 열차와 구로사키 역 앞 - 지쿠호 나카마 사이의 구간

열차가 12분 간격으로 교대로, 평일 아침의 러쉬 시간대는 전선 열차와 구로사키 역 앞 - 지쿠호 나카마・구스바시 사이의 구간 열차가

5 - 10분 간격으로 거의 교대로, 평일 저녁의 러쉬 시간대는 전선 열차와 구로사키 에키마에 - 구스바시간의 구간 열차가 7 - 10분

간격으로 교대로 운행되고 있다.



  [질문] 휴일 낮 시간대의 지쿠호 전기 철도선 배차간격은 몇 분입니까?



  [정답] 12분




KorQuAD 2.0 스타일의 예시 문제 ​



  [지문]



  [질문] 2010년의 서울에는 몇 사람이 살고 있었나요?



  [정답] 10,575,447



어때요, 우리가 풀기에도 꽤 어려울 것 같지 않나요? 실제로 리더보드에는 사람이 직접 KorQuAD 2.0 문제를 풀었을 때의 성적이 표기되어 있는데, 이미 그 점수를 뛰어넘는 성능을 보여준 MRC 모델들이 존재하고 있답니다.



한국어로 구성된 대용량 질의응답 데이터셋의 의의  



근 십여 년간 MRC 분야가 크게 발전한 배경에는 SQuAD, MS MARCO, bAbI task dataset, Hotpot QA, NewsQA 등 유수의 연구기관 및 기업에서 구축하고 공개한 양질의 대용량 질의응답 데이터셋이 있습니다. 특히 KorQuAD가 한국어 위키백과 문서를 수집한 방식은 스탠퍼드 대학에서 구축한 세계적인 대용량 질의응답 데이터셋인 SQuAD를 벤치마킹한 것입니다. SQuAD와 같은 양질의 데이터셋을 그대로 한국어 자연어처리 과제에 활용하기 어려운 이유는 당연하게도 해당 데이터셋이 영어로 구성되었기 때문입니다. 물론 번역하여 사용할 수는 있지만 아무래도 퀄리티에 문제가 생길 수 있고, 또 개인 및 소규모의 연구진이 직접 대용량 데이터셋을 구축하자면 시간 및 비용 면에서 어려움이 있습니다. 이처럼 한국어로 구성된 대용량 데이터셋을 구하기 어려운 현실에 더하여 한국말이 갖는 특성에서 오는 기술적인 어려움까지 더해져 한국어 자연어처리 과제를 연구하고 언어 모델을 개발하는 일은 영어나 기타 언어에 비해 훨씬 까다롭다고 해요. 그렇기에 한국어로 구성된 양질의 대용량 질의응답 데이터셋인 KorQuAD의 공개는 한국어 자연어처리의 발전에 큰 의의를 갖는 일이라고 할 수 있습니다.



MRC 모델을 만들고 평가하는 표준 데이터로서 앞으로 대용량 질의응답 데이터셋은 어떤 방향으로 나아가게 될까요? KorQuAD의 경우, 향후 버전에서는 SQuAD 2.0과 같이 답변불가 검증 여부, 즉 주어진 지문에 질문에 대한 답변 내용이 없는 경우 엉뚱한 오답 대신 답변이 없다는 사실을 답으로 내놓을 수 있는 과제를 추가할 계획이 있음을 밝힌 바 있습니다. 한국어 대용량 질의응답 데이터셋의 적극적인 주제 확장으로 한국어 자연어처리 과제, 특히 한국어 MRC가 우리의 일상을 나아지게 하는 다양한 인공지능 서비스에 솔찬히 적용될 수 있기를 기대해봅니다 :)

기업용 AI 솔루션 도입
스켈터랩스와 함께라면 생각보다 어렵지 않습니다.