-
[딥러닝 NLP] QA system : open domain QA, close domain QA, MRC + passage retrievalNLP 2022. 8. 17. 23:14
* KAIST 서민준교수님 강의자료의 QA 부분을 공부하고, 제가 이해한대로 적었습니다. https://seominjoon.github.io/kaist-ai605/
https://u-b-h.tistory.com/9 에서 설명했던 MRC 모델과 https://u-b-h.tistory.com/10에서 설명했던 passage retrieval 모델을 합쳐 open domain QA 시스템을 만들수 있습니다.
open-domain QA 모델을 만들 때 다양한 문제가 있다고 합니다.
passage retriever가 reader(MRC)에게 query(question)에 가장 가까운 K개의 passage를 후보로 줄 때 문제가 있습니다. passage는 어떤 단위인지 정해야 합니다. passage를 article 전체로 볼 수도 있고 (wiki 기준 article 약 5M개), paragraph를 하나의 passge로 볼 수도 있고 (wiki 기준 약 29M개), sentence(wiki 기준 약 80M개)를 passage로 볼 수도 있습니다. passage를 가장 fine-grain 한 sentence로 하면, 전체 문맥이 파악이 되지 않는 문제가 있고, article 전체로 하기에는 article 전체의 의미를 잘 담기 어렵기도 하고 size도 커지는 문제가 있어 중간인 paragraph를 사용하기도 한다고 합니다. 이 때 passage의 단위에 따라 reader에게 넘겨주는 K개도 조절해줘야 하며, article일 경우 K=5, paragraph일 경우 K=29, sentence 일 경우 K=78 정도로 둔다고 합니다.
다음으로 reader(MRC 모델)이 K 개의 passage를 받아서 정답을 찾을 때, 가장 간단한 방법은 추천 받은 각각의 passage에서 독립적으로 답을 찾고 예측 확률을 비교해서 하나의 답을 뽑는 것 입니다. 하지만 생각해보면 독립적으로 예측한 결과를 나중에 비교한다는 것이 잘못된 비교일 수 있습니다. 그래서 모든 passage를 모으고, 그 안에서 가장 높은 확률의 답을 내는 방법도 제안되었습니다.
또한 reader가 답을 찾을 때, retriever가 넘겨준 passage들에 대한 score를 사용하여 더 연관 있는 passage에서 뽑아낸 답이 더 점수를 많이 받도록 제안되기도 했습니다.
마지막으로 최근에 GPT-3 등장 이후 대규모 언어모델들을 이용한 closed-book QA 가 나오고 있습니다.
대규모 언어모델들은 대량의 corpus로 사전 학습되어 이미 그 자체가 passage 들의 지식을 모두 가지고 있다는 가정으로 대규모 언어모델에게 query를 날려 답을 얻는 방식입니다.
- 더 생각해 볼 점
passage(article, paragraph, sentence) 의 representation 과 query representation을 동일한 embedding space 의 vector로 하여 하나의 모델로 open-domain QA를 처리해보자.
'NLP' 카테고리의 다른 글