RAG 시스템의 핵심은 Retriever가 질문과 유사도 높은 문서를 가져온 것을 활용해 LLM이 최신화되고 정확한 응답을 생성하도록 하는 것이다. 기본 방식으로도 이전보다는 뛰어난 응답을 생성해낼 수 있지만 더나아가 LLM의 특성을 이용해 더 높은 품질의 응답을 이끌어 낼 수 있다. LLM은 유사한 문서가 많다고 응답 품질이 무작정 높아지는 것이 아니라 유사한 문서가 상위에 있어야 더 높은 품질의 응답을 생성해준다. 즉, 검색된 유사도 높은 문서에 더 정교한 기준으로 다시 평가해 관련성 높은 문서를 위로 올리거나 관련 없는 문서를 제외함으로써 품질을 높일 수 있다. 이때, 더 높은 유사도의 문서를 검색할 수 있게 도와주는 추가적인 방법이 Re-rank이다. Re-rank는 말 그대로 순위를 다시 매기..
공약21 서비스는 기본적으로 후보자 정당에서 내놓은 PDF 정책 공약집에 포함된 내용을 바탕으로 정보를 제공하기 때문에 이를 기반으로 한 전처리 과정이 필요하다.전처리를 위한 전처리공약 데이터는 크게 PDF와 이미지로만 사용했고 만약 정책 공약 데이터가 PDF라면 먼저 RAG 시스템을 위한 전처리 과정(LOAD → SPLIT → EMBED → STORE)의 전처리 과정이 필요하다.PDF를 페이지(쪽)별로 저장주요 정당의 정책 공약집은 아래처럼 PDF의 한 페이지가 양쪽(양쪽 스캔 방식)으로 구성되어 있다.개발시에 21대 대통령 후보의 정책 공약집이 발표되지 않아 20대 대선 공약집을 기준으로 개발했으며 21대 후보의 공약집 또한 비슷한 형태였다. 이러한 구성 방식은 텍스트를 추출할 때 200쪽과 201쪽..
RAG(Retrieval-Augmented Generation)이번 공약21 프로젝트를 하면서 LLM을 사용해서 사용자에게 더 정확한 후보자의 공약정보를 제공하기 위해 RAG 시스템을 담당하게 됐다. 그렇다면 이 RAG 시스템은 무엇일까? Why RAG?LLM이 등장한 이후로 많은 사람들이 적극적으로 LLM을 이용해 학습하거나 일을 처리하거나 등의 다양한 작업을 처리한다. 이런 일이 가능한 이유는 LLM을 개발하는 개발사에서 대량의 학습 데이터를 활용해 AI를 학습시켜놓았기 때문이다. 하지만 이러한 학습은 실시간으로 이루어지는 과정이 아니다. 즉, 어제 새로운 정보가 등장했다면 AI는 이 정보에 대한 데이터를 학습하지 못했다는 의미로 사용자의 질문에 답하기 위해서는 외부 검색 등을 통해 그럴듯한 답을 내..
