Loading...
2024. 3. 29. 23:48

Open domain question answering 개요

1. MRC와 ODQA의 차이 MRC는 지문이 주어진 상황에서 주어진 지문에 대한 질문에 대답하는 문제 반면 ODQA는 지문이 특정해서 주어지는 상황은 아니다. 방대한 world knowledge로 위키피디아나 웹 전체같은 대용량의 지문 데이터 베이스에서 질문에 답을 하는 문제 open domain question answering은 방대한 지문 데이터베이스를 가진 machine에 어떤 질문을 하여 답을 내주길 원하는 문제 결정적인 차이는 MRC는 단 하나의 지문(상대적으로 적은 지문)을 보고 그 지문에 대한 질문의 답을 하는데 ODQA는 똑같은 형태로 질문을 하더라도 machine이 지문 하나를 보는 것이 아니라 방대한 지문을 보면서 그 속에서 답을 찾아야함 영어 위키피디아만 해도 약 300만개라고함 ..

2024. 3. 21. 23:20

passage의 indexing을 도와주는 FAISS 라이브러리 소개

1. introduction facebook에서 만든 fast approximation open source library 효과적인 similarity search와 dense vector의 clustering을 지원함 사용이 편하고 어떤 size에도 가능하지만 large scale에 특화되어 있다고함 C++가 backbone이지만 python으로 wrapping되어 있어서 python으로도 쉽게 사용가능 passage vector의 indexing과정을 도와준다고함 2. 사용방법 train data로 passage vector를 준비하고 index train을 해야함 단순히 random하게 clustering을 하는 것이 아니라 데이터의 분포를 보고 적절하게 clustering을 해야함 이런 적절한 c..

2024. 3. 21. 02:45

query와 passage의 similarity search를 근사(approximation)시키는 법

1. scalar quantization 벡터를 압축하여 하나의 벡터가 원래보다 더 적은 용량을 차지하도록 compression하는 기술 당연하지만 압축량이 커질수록 요구되는 메모리공간은 작아지지만 그만큼 정보손실도 커진다 일반적으로 벡터 내 수치는 float32로 저장함 SQ8은 4byte float32를 1byte int8이나 float8???로 저장하는 방식(quantization이면 int8이 더 어울리긴해) 그러면서 한 값의 저장용량을 1/4로 줄인다 강의에서는 4byte float32를 1byte unsigned int8로 압축한다고 나와있네 각 수치가 4byte에서 1byte로 줄어들면서 크기가 줄어든것을 볼수 있음 보통 inner product에서 float32까지 필요한 경우는 많지 않아..

2024. 3. 20. 03:07

질문과 관련있는 지문을 찾는 Maximum Inner Product Search

1. Motivation dense embedding을 이용한 retrieve의 원리는 굉장히 간단한데 passage를 미리 embedding해놓고 question이 들어오면 embedding을 한 뒤 미리 embedding한 passage들과 similarity score를 전부 계산한 다음 가장 높은 score를 가진 passage를 출력 similarity score는 nearest neighbor에서 distance가 가까울수록 높은 점수를 부여하는 방식을 생각해볼 수 있고 inner product가 높을수록 높은 점수를 부여하는 방식을 생각해볼 수 있다. 사람이 이해하기에 nearest search가 위치 거리측면에서 생각하면서 이해하기 쉽다 근데 학습이나 효율성측면에서는 nearest neig..

2024. 3. 6. 01:31

BERT와 BART 비교하면서 간단하게 알아보기(+greedy, beam, exhaustive search)

BART는 기계 독해, 기계 번역, 요약, 대화 등 sequence to sequence 문제의 pre training을 위한 denoising autoencoder 1. BERT와 BART BERT는 transformer의 encoder만 활용했음 각 단어의 encoder embedding을 가져와 embedding을 수치화시킨 뒤 정답의 시작과 끝의 위치를 알아맞추는 extraction에 어울림 BART는 transformer의 encoder와 decoder가 모두 존재하여 encoder에서 input의 encoding을 수행한 뒤 encoding을 바탕으로 decoder에서 decoding을 통해 실제 text를 generation할 수 있어서 generation based MRC의 기본 모델로 사..

2024. 3. 5. 02:26

generation based MRC 모델링 방법 간단하게 알아보기

1. MRC문제를 푸는 방법이란 지문과 관련된 질문을 받고 답을 내는 방법은 지문 내에 명시적으로 존재하는 답의 위치를 반환하는 extraction based MRC 지문 내 token에 대한 embedding을 가져와 이것이 정답의 시작점인지 아닌지, 끝점인지 아닌지 token classification 문제로 변환 또 하나의 방법은 지문 내 답의 위치를 말하는 것이 아니라 답변 text를 생성하는 방법이 있다 이 문제가 조금 더 어려운 이유는 실제로 지문 내에 정답이 있을수도 있고 없을수도 있다는 점. 그럼에도 불구하고 주어진 질문에 주관식으로 기술하듯이 정답 text를 생성해야하는 점 정답이 존재하더라도 정답의 위치를 파악하는 것이 아니라 모델이 해당 정답을 생성하도록 유도하는 것이고 실제로 생성한..