본문 바로가기

728x90

boostcamp AI tech

(73)
Closed Book Question Answering open domain question answering에서는 질문과 관련된 지문을 찾고 거기서 정답을 찾는 방식이였다. closed book QA에서는 모델이 사전에 대량의 지식으로 학습되었다면 하나의 지식 저장 창고로써 기능할 수 있지 않을까?에서 출발한다. 사전에 학습한 내용에 기반해서 질문에 정답을 즉시 뱉는 것이다. 1. Text-to-text T5에서 처음 제안한 방법이다. 모든 task의 문제를 test input으로 치환해서 한번에 학습시키는 것이다. T5에서도 mrc데이터셋을 가지고 finetuning을 수행하여 closed book qa에 사용해보았었다. 2. In-context Learning parameter를 실제로 업데이트 하지는 않으나 Instruction과 예제를 input에 ..
Passage Retrieval - Scaling up, FAISS passage들을 embedding한 벡터들을 저장해두고 꺼내오는 방법을 공부했다. passage들이 굉장히 많아질 경우 질문-지문 유사도를 계산하는 시간과 양도 매우 커진다. FAISS라이브러리를 활용해서 scale up하는 방법을 알아본다. 두 벡터간의 거리를 계산할 때 점과의 거리를 구할 수도 있지만 inner product를 더 자주 사용한다. (Maximum Inner Product Search) 방대한 문서 집합에서 query가 들어올 때마다 유사도를 전부 계산하기에는 부담스러울 수 있다. 문서가 많을 수록 search speed는 당연히 느지며 memory에 다 올려두기 힘들것이고 disk에서 불러온다면 시간이 오래걸릴 것이다. accuracy를 양보하더라도 더 효율적인 방법을 살펴보자. 1..
Passage Retrieval - Dense Embedding 1. Sparse vs Dense 지난시간 공부한 sparse embedding의 대표적인 예로 TF-IDF를 알아보았다. 말 그대로 spase하기 때문에 벡터 내에 0이 아닌 값이 적다. 메모리 낭비가 심한 편이다. 물론 0이 아닌 값의 idx와 value만 저장해서 0인 부분을 줄이는 방법으로 개선이 가능하다. 이 뿐만 아니라 sparse embedding에는 유사한 의미를 가진 단어의 유사성을 알지 못한다는 단점도 있다. 따라서 이를 개선한, 작은 차원의 고밀도 벡터로 변환하는 , dense embedding에 대해 알아보자. sparse embedding은 정확히 용어가 일치해야 하는 문서를 찾는 경우에 더 장점이 있긴하다. 주로 BoW나 term frequency로 계산을 통해 구한다. dens..
Passage Retrieval - Sparse Embedding, TF-IDF open domain question answering 시스템의 첫 부분이다. query가 들어왔을 때 질문과 관련된 지문을 대규모의 문서 중에서 선별하는 단계를 말한다. MRC 모델은 선별된 지문을 읽고 정답을 찾게 된다. 대략적인 passage retrieval의 단계는 위와 같다. 질문 문장과 passage를 각각 vector로 임베딩을하고 두 임베딩 벡터간의 유사도가 높은 passage를 선별한다. 문장과 지문들을 벡터로 변환한다는 건 고차원 vector space에서 하나의 점으로 매핑이 가능하다는 말이다. 직관적인 거리 혹은 inner product 연산을 통해 유사도를 계산할 수 있다. 이어서 문장, 문단을 vector로 임베딩하는 방법론들을 알아보자. 1. Sparse Embedding 문..
Generation-based MRC extraction-based MRC는 답변의 위치를 본문에서 찾는다. 즉 정답 토큰의 위치를 예측한다. 그래서 bert와 같은 ,seq2seq이 아닌, PLM에 Classifier를 부착해서 모델을 구성했다. 반면 generation-based mrc는 답변을 생성하는 task이다. 정답 텍스트 자체를 예측한다. 따라서 auto regressive 형태로 모델이 정답을 출력하게된다. seq2seq PLM 구조를 활용한다. (ex. bart, T5) 1. Pre-processing extraction-based mrc에서는 정답의 위치를 나타내는 answer_start 정보가 중요했다. 하지만 생성방식에서는 이를 제외한 question, answer면 충분하다. 우리가 생성모델을 사용할 것이기 때문에 e..
Extraction-based MRC pre-preocessing 단계에서 context와 question을 각각 word embedding한다. 모델은 context안에서 제일 확률이 높은 position을 예측한다. 후에 정답으로 변환할때는 start/end position의 span을 가져오면 될 것이다. extraction-based mrc에서는 답변을 생성하는 것이 아니라 정답의 위치를 예측하도록 학습된다. 1. Preprocessing 가장 먼저 tokenization을 거친다. 요즘은 Out Of Vocabulary를 해결하기위해 Byte Pair Encoding 방법론 중 하나인 WordPiece를 많이 사용한다. 자주 나오는 단어는 단어별로 쪼개질테지만 덜 자주 나오는 단어는 subword로 쪼개진다. [cls] 질문 [se..
Intro to MRC(Machine Reading Comprehension) 기계독해는 모델이 주어진 지문을 이해하고 사용자로부터 주어지는 질문에 대해 답을 찾는 것을 말한다. 모델의 언어이해능력을 평가할 수 있는 시험인 셈이다. 이는 인공지능 비서, 검색엔진에서 많이 활용되고 있다. 위 그림에서는 하나 생각된 가정이 있다. 질문과 관련된 지문이 이미 주어진 상황이라는 점이다. 모델이 수십 수백만개의 문서를 전부 다 읽기엔 무리가 있기 때문에 질의응답 시스템을 만들기 위해 두 단계로 시스템을 나누어 설계해보겠다. (1) 검색을 통해 관련된 문서들을 선별(Retrieve) (2) 기계독해 모델이 해당 문서들을 읽고 답변(Read) Open domain QA : 특정 주제나 도메인에 국한되지 않고, 다양한 일반 지식을 바탕으로 사용자의 질문에 답변을 제공하는 시스템 Passage R..
Boostcamp AI - week14, 15, 16 이번주는 MRC(기계독해)와 QA(질의응답) 분야에 대해 공부하고 리더보드 대회에 참가했다. ODQA를 구성하는 reader/retriever 개별 모델들에 대한 정확도를 향상과 evaluation을 구현했다. tf-idf를 활용한 sparse embedding 기반 retriever와 dense embedding 모델을 기반 retriever를 구현했다. reader모델의 answer 탐지 능력을 보완하기 위해 증강한 데이터셋으로 fine-tuning을 수행했다. end-to-end MRC evaluation을 수행했다. 과연 cls 토큰이 문장 전체를 대표할까? input에 대한 representation을 추출한 후 pooling layer (avg or max)를 수행하는 것이 더 나을 수도 있다..

728x90