Loading...
2024. 4. 7. 03:02

closed book question answering 개념 이해하기

1. MRC와 ODQA는 무슨차이인가 MRC는 문서가 주어지고 그에 대한 질문이 함께 주어지면 모델이 문서를 읽고 질문에 대한 답을 내는 방식 ODQA는 문서가 주어지지 않았는데 질문이 주어지면 질문과 관련된 문서를 찾고 그 문서로부터 모델이 질문에 대한 답을 내는 방식 2. open domain vs. open book vs. closed book open domain은 질문이 주어질 때 관련된 문서를 찾아 읽고 질문에 답을 내는 task 자체를 나타냄 open book은 질문을 던졌을 때 모델이 질문에 답하기 위해 ‘책’이라고 할 수 있는 거대한 corpus를 접근하게 하는것 closed book은 corpus없이 질문을 받으면 모델이 가지고 있는 사전지식만을 활용하여 정답을 냄 3. core ide..

2024. 4. 7. 02:51

T5 모델 간단하게 알아보기

1. introduction text-to-text format을 적극적으로 밀었던 사실상 첫번째 model? BART랑 유사하면서도 text-to-text format을 활용하여 거의 모든 자연어처리 문제를 text-to-text format으로 해결하자고 제안했다 자세한 부분은 조금 다르겠지만 seq-to-seq original transformer와 유사한 구조를 사용했다 2. pre-training 다양한 모델 구조, 다양한 사전학습목표, 방대한 사전학습용 데이터셋, 다양한 fine tuning 방법등을 마련하여 체계적으로 실험을 수행 당연하지만 이들 중 가장 좋은 방식을 선택하여 방대한 규모의 모델을 학습시킴 BERT나 BART와 마찬가지로 T5같은 모델을 방대한 언어에 사전학습시켜서 fine-..

2024. 3. 30. 00:00

retriever-reader 방식을 이용한 Open domain question answering 문제 접근 방법

1. motivation 가장 일반적인 ODQA의 해결방법 retriever model과 reader model을 그대로 연결하여 ODQA를 해결 retriever가 대형 문서셋 corpus와 질문을 input으로 받으면 질문과 관련성이 높은 지문 문서를 출력함 retrieve된 지문을 받은 reader는 질문과 함께 input으로 받으면 최종 답안을 출력해줌 2. training 2-1) retriever TF-IDF와 BM25활용한 embedding은 label을 통한 일반적인 training없음 self-supervise training이라는데 기본적으로 생각하는 training이라고 보기는 솔직히 좀 어렵다 dense embedding은 가지고 있는 MRC set을 이용하여 training을 통해..

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까지 필요한 경우는 많지 않아..