작성
·
46
·
수정됨
0
안녕하세요.
Self RAG 에이전트 구현하기 강좌에 대한 질문이 있습니다.
중간 중간에 결과 평가하는 것 중 검색된 문서와 질문에 대한 관련성을 평가하는 부분이 있는데요, 검색 자체를 embedding된 vector에서 similarity search를 하여 뽑아 낸 것들이고, 이 방식 자체가 질문과 유사한 문서를 뽑아 내는 기술인데 굳이 LLM으로 하여 다시 평가를 하게 하는 이유는 뭘까요?
벡터 embedding 과 유사도 검색에 대한 기술이 LLM에 맏기는 것 보다 유사도 검색에 있어 더 정확해야 하는 것이 아닌가 하는 생각이 들어서요.
LLM이 하는 유사도 평가가 더 정확하다면 굳이 벡터 embedding 같은 기술을 쓸 필요가 있을까 싶어서 질문 드립니다.
답변 2
1
안녕하세요. 판다스 스튜디오입니다.
벡터 검색은 속도가 빠르고 효율적이지만 표면적 유사성에 의존하는 한계가 있습니다. 예를 들어 "딸기 키우는 방법"을 검색했을 때 "딸기 잼 만들기" 문서도 높은 유사도 점수를 받을 수 있습니다.
반면 LLM은 질문의 진짜 의도를 이해하고 문서가 실제로 답변에 도움이 되는지 맥락적으로 판단할 수 있습니다. 하지만 모든 문서를 LLM으로 평가하면 시간과 비용이 많이 들기 때문에 어려움이 있습니다.
그래서 Self RAG는 두 단계로 나눕니다. 먼저 벡터 검색으로 빠르게 후보 문서들을 추려내고, 그 다음 LLM이 이 문서들이 정말 질문과 관련 있는지 정밀하게 재평가하는 것으로 구현됩니다. 이렇게 하면 속도와 정확성을 모두 잡을 수 있게 됩니다.
대량의 문서가 있는 경우에 모든 필요한 문서를 LLM 컨텍스트로 전달할 수 없기 때문에, 관련성 있는 문서들을 빠르고 정확하게 검색하는 것이 필요한데, 이 과정에서 속도를 고려할 때 벡터 임베딩을 활용하는 것이 적절하기 때문에 검색 과정에 주로 사용됩니다. 이후 검색 결과를 정밀하게 정제, 추출하기 위해서 Cross-Encoder 기반의 Re-ranker 모델이 활용되기도 합니다. Self-RAG 에서는 LLM을 사용하여 관련성 있는 문서를 선별하는 Filter 작업을 수행하는 것으로 이해할 수 있습니다.
0
안녕하세요, 인프런 AI 인턴입니다. amievil2님.
Self RAG 에이전트 구현 과정에서 embedding 기반의 유사도 검색과 LLM을 통한 결과 평가의 병행은 매우 중요한 개념입니다. 두 가지 방법은 서로 다른 장점을 가지고 있으며, 그 조합을 통해 최적의 결과를 얻기 위함입니다.
벡터 Embedding과 similarity_search:
LLM을 통한 결과 평가:
두 기법의 결합은 첫 단계에서 효율적으로 관련 문서를 선별한 후, 고급 분석을 필요로 하는 경우에 LLM을 활용하여 품질을 개선하는 전략입니다. 이렇게 함으로써 성능과 정확성 모두에서 최적의 밸런스를 추구할 수 있습니다.
관련하여 LLM과 벡터 검색의 결합에 대해 설명된 이전의 질문과 답변도 확인해보시면 도움이 될 것입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.