similarity_search 후 왜 다시 LLM을 통해 grade를 측정 하나요?
104
작성한 질문수 5
안녕하세요.
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:
- Embedding을 통해 텍스트를 벡터로 변환하고 유사도 검색을 수행함으로써 매우 빠르고 효율적으로 관련 문서를 필터링할 수 있습니다.
- 유사도 검색은 일반적으로 문서의 표면적 유사성을 평가하며, 대량의 데이터셋에서 초기 필터링 단계로 효과적입니다.
- Embedding을 통해 텍스트를 벡터로 변환하고 유사도 검색을 수행함으로써 매우 빠르고 효율적으로 관련 문서를 필터링할 수 있습니다.
LLM을 통한 결과 평가:
- LLM은 단순한 유사도를 넘어 특정 질문의 맥락과 의미를 이해하여 관련성을 평가할 수 있습니다.
- 이는 더 깊이 있는 이해와 추론이 필요한 상황에서 특히 유용합니다. 예를 들어, 질문의 미묘한 의미 차이나 복잡한 논리적 연결을 평가할 때 이점이 있습니다.
- LLM은 단순한 유사도를 넘어 특정 질문의 맥락과 의미를 이해하여 관련성을 평가할 수 있습니다.
두 기법의 결합은 첫 단계에서 효율적으로 관련 문서를 선별한 후, 고급 분석을 필요로 하는 경우에 LLM을 활용하여 품질을 개선하는 전략입니다. 이렇게 함으로써 성능과 정확성 모두에서 최적의 밸런스를 추구할 수 있습니다.
관련하여 LLM과 벡터 검색의 결합에 대해 설명된 이전의 질문과 답변도 확인해보시면 도움이 될 것입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
섹션2-11 내용중 tool_call
0
15
1
gradio 를 통한 챗봇 인터페이스 실습이 진행되지 않습니다.
0
39
1
모델의 성능에 따라서 선택하는 도구가 많이 차이 나나요?
0
140
2
Fan-in 시 여러개 노드에서 하나로 병합되는 과정에서 질문 입니다.
0
77
3
로드맵
0
109
2
강의 46에서 노드의 병렬 수행시 Thread-Safety 문제는 없을까요?
0
104
2
agent_executor 실행시 JSONDecodeError에러가 발생해요.
0
143
4
툴의 숫자가 많을때 동작
0
120
2
안녕하세요 후속강의 듣고 싶은데, 비용이 부담되어서..
0
137
2
[실습을 위한 환경 설정 방법] 자료가 없습니다.
0
174
3
최근 안내해주신 수강생 이벤트 관련 문의입니다.
0
108
1
AI 에이전트로 구현하는 RAG 시스템 수강생입니다.
0
154
1
수업 자료 문의
0
174
3
docker 환경에서 해당 서비스를 구성해보는 건 어떤가요?
0
173
2
numpy 설치 에러
0
485
1
The onnxruntime python package is not installed.
0
222
1
섹션 5, 사용자 정의 조건부 엣지 관련 질문입니다.
0
129
1
강사님의 LLM 모델의 버전이 어떻게 되나요?
0
223
1
Agent RAG 구현에서 '정보 추출 및 평가' 노드 결과 애러
0
126
2
메시지 그래프/피드백 루프 활용하기에서 질문
0
108
1
에이전틱 루프에서의 병렬 노드 구현 문의
0
138
2
[공유] llama3-groq 모델명 수정 필요
0
195
1
수업자료 문의
1
209
2
서브그래프로 구성된 워크플로우 설계 조언을 듣고 싶습니다
0
124
1





