본문 바로가기

분류 전체보기85

Toward Optimal Search and Retrieval for RAG(2024) 리뷰 Abstract&IntroductionRAG 성능은 크게 두 가지에 의존한다. 바로 query로부터 정보를 retrieval하는 retriever와 이를 이용해 문장을 생성하는 reader인데, 이 논문에서는 RAG에서 retriever의 성능을 어떤 식으로 최적화시켜야 할지 여러 실험을 통해 보여준다. 먼저 저자는 이 논문에서 retriever만의 contribution을 측정하기 위해 LLM의 tuning을 진행하지 않는다는 점을 먼저 언급했다. 구리고 보편적인 QA와 attributed QA task에 RAG 성능 평가를 진행했다는데 여기서 attributed QA란 LLM이 생성 시 어떤 document를 참고했는지 언급하는 task를 말한다.Experiment setupLLM instructio.. 2024. 12. 3.
[Langchain] FAISS에서 cosine similarity 사용하기 기존에 구현했던 RAG 성능을 개선하는 PoC 느낌의 업무를 받아서 처음부터 db나 chunker를 새로 모색하기보다는 기존에 사용한 라이브러리를 그대로 사용했다. chunk, retrieval 쪽은 대게 langchain+FAISS로 구현되어 있었는데 retrieval 성능이 어떻게 해도 좋아지지 않아서 이것저것 찾아봤는데 점수 쪽에서 뭔가 이상하다고 느꼈다.FAISS로 vector DB를 만들 때 보통 vectorDB.from_documents( )를 사용했는데 이를 이용한 similarity_search는 L2 거리 기반임을 알 수 있었다. vector 거리 비교에 cosine similarity를 사용하지 않아 성능이 낮은 것이라 판단했다.그렇다고 다른 라이브러리나 벡터 db를 쓰기에는 관련 지식.. 2024. 11. 25.
Dense Passage Retrieval for Open-Domain Question Answering(2020) 리뷰 RAG 업무를 맡으며 팀원이 추천해 준 논문인데 저자의 기법보다는 전반적으로 task의 흐름에 대해 잘 설명해 줘서 주의 깊게 읽은 논문이다.  RAG 성능을 끌어올리기 위한 새로운 기법을 알고싶은 분들보다는  LLM 시대 이전의 전반적인 ODQA가 어떤 식으로 이루어졌는지 상세한 과정을 알고 싶은 사람들은 한 번쯤 읽어보면 좋을것 같다.Abstract & Introduction이 논문에서 저자는 기존의 sparse한 retrieval 방법론들(TF-IDF, BM25)보다 뛰어난 성능을 보여주는 dense representation을 통한 retrieval 방법론을 제시한다. 당시의 Open-domain question answering(ODQA)는 크게 두 가지 모듈의 성능에 좌우되었다.Retrieve.. 2024. 11. 16.
ImportError: Could not import sentence_transformers python package. Please install it with `pip install sentence-transformers`해결방법 RAG하려고 환경 깔때마다 가끔 나오는 에러였는데 발생 이유를 몰라서 나올때마다 찾아보기 위해 해결법만 정리해보려한다.TL'DRpip install datasets -U문제파악로그로는 sentence-transformers 라이브러리 문제 같은데 다시 깔거나 버전 업을 해도 당연하게도? 해결되지는 않는다. 로그를 쭉 위로 올리다 보면>>이런 느낌의 로그가 있는데 datasets로 인해 발생했다는걸 알 수 있다. 보통 라이브러리 문제는 재설치하면 대부분 해결되므로pip install datasets -U바로 시전한 결과 버전이 1.4.1->3.1.0으로 올랐다. 아마 다른 라이브러리에서 꽤 옛날 버전으로 datasets를 설치한것 같다.결과는 역시나. 원인을 모르겠어도 컴퓨터는 안되면 재설치가 답이다. 2024. 11. 9.