-
RAG 고급 기법 - Query TranslationDEV 2024. 11. 27. 22:15
RAG
2024.11.08 - [DEV] - simple RAG pipeline
Query Translation
사용자 쿼리를 LLM이 더 잘 이해하도록 다양한 방식으로 재구성.
Multi-Query Prompt
Multi-Query Prompt는 하나의 질문을 여러 개의 다른 질문으로 변형하여 질문하고, 각 질문에 대한 관련 정보를 찾은 후, 이를 결합하여 최종 답변을 생성하는 전략. 이는 마치 하나의 질문을 다양한 각도에서 바라보며 답을 찾는 것과 유사.
장점
다양한 관점 확보: 여러 질문을 통해 질문에 대한 더 풍부하고 다양한 정보를 얻을 수 있음.
모델의 이해도 향상: 질문을 여러 방식으로 표현함으로써 모델이 질문의 의도를 더 잘 이해하고, 더 정확한 답변을 생성할 수 있음.단점
중복 정보 처리: 여러 질문에서 동일한 정보가 추출될 수 있으며, 이러한 중복 정보를 제거하는 추가적인 작업이 필요
순위 결정의 어려움: 여러 질문에서 동일한 점수를 가진 정보가 추출될 경우, 이들의 우선순위를 결정하는 데 어려움이 발생할 수 있음적용 사례
복잡한 질문 처리: Multi-Query Prompt 전략은 복잡한 질문을 여러 개의 하위 질문으로 나누어 처리할 수 있음. 각 하위 질문에 대한 답변을 결합하여 최종 답변을 생성하는 방식은 복잡한 질문을 효과적으로 해결하는 데 도움
모호한 질문 명확화: 질문을 다양하게 표현함으로써 모호성을 줄이고 명확한 답변을 얻을 수 있음RAG-fusion
Reciprocal Rank Fusion (RRF) 기법을 사용하여 Multi-Query Prompt에서 생성된 여러 질문의 결과를 통합하는 전략.
RRF는 각 질문에 대한 검색 결과에서 특정 정보의 순위를 기반으로 점수를 계산하고, 이 점수들을 이용하여 최종 정보의 순위를 결정하는 방법
예를 들어, 두 개의 질문에서 동일한 정보 청크가 각각 1위와 3위로 검색되었다면, RRF는 이 정보 청크에 높은 점수를 부여합니다. 반대로, 한 질문에서는 1위지만 다른 질문에서는 10위로 검색되었다면, RRF는 이 정보 덩어리에 낮은 점수를 부여
장점
정보의 정확한 순위 결정: 여러 질문 결과를 종합적으로 고려하여 정보의 순위를 정확하게 결정할 수 있음
중복 정보 효율적 처리: RRF를 통해 중복 정보를 효율적으로 처리하고 최종 답변에 필요한 정보만 선별적으로 포함할 수 있음단점
RRF 알고리즘 이해 필요: RAG-fusion 전략을 효과적으로 사용하기 위해서는 RRF 알고리즘에 대한 이해가 필요.
계산 비용 증가: 여러 질문의 결과를 처리하고 RRF를 적용하는 과정에서 계산 비용이 증가적용 사례
Multi-Query Prompt 결과 통합: RAG-fusion은 Multi-Query Prompt 전략과 함께 사용되어 여러 질문에서 얻은 정보를 효과적으로 통합하고 최종 답변의 정확도를 높일 수 있음.
Decomposition
Decomposition은 복잡한 질문을 여러 개의 작고 간단한 하위 질문으로 분해하여 답변을 생성하는 전략.
각 하위 질문은 개별적으로 답변되거나, 이전 질문과 답변을 컨텍스트로 활용하여 순차적으로 답변될 수 있음.
장점
복잡한 질문 단순화: 복잡한 질문을 이해하고 답변하기 쉬운 작은 질문으로 분해하여 문제 해결 용이.
단계적 답변 생성: 하위 질문을 순차적으로 답변함으로써 단계적이고 논리적인 답변을 생성할 수 있음.단점
질문 분해의 어려움: 복잡한 질문을 적절한 하위 질문으로 분해하는 것은 어려울 수 있으며, 질문 분해의 품질이 최종 답변의 정확성에 큰 영향을 미침.
컨텍스트 관리의 복잡성: 하위 질문 간의 컨텍스트를 적절히 관리하고 유지하는 것은 복잡한 작업이며, 컨텍스트 관리 실패는 답변의 일관성을 저해할 수 있음.적용 사례
단계적 추론 필요한 질문: Decomposition은 단계적 추론을 통해 답변을 도출해야 하는 복잡한 질문을 해결하는 데 적합.
여러 정보 조합 필요한 질문: Decomposition은 여러 정보를 조합하여 답변해야 하는 질문을 처리하는 데 효과적.
Decomposition 쿼리의 두 가지 방법
- Recursively Answer: 첫 번째 질문에 대한 답변을 컨텍스트로 활용하여 다음 질문에 답변하는 방식으로, 모든 하위 질문에 대한 답변이 완료될 때까지 반복적으로 수행.
- Answer Individually: 각 하위 질문을 독립적으로 답변하고, 모든 답변을 종합하여 최종 답변을 생성하는 방식.
Fin.
Multi-Query Prompt: 다양한 관점에서 정보를 수집하고 모델의 이해도를 높여 더 정확한 답변을 생성하려는 경우 적합.
RAG-fusion: Multi-Query Prompt 결과를 효과적으로 통합하고 정확한 정보 순위를 결정하려는 경우 유용.
Decomposition: 복잡한 질문을 단순화하고 단계적인 답변을 생성하려는 경우 효과적.
728x90'DEV' 카테고리의 다른 글
RAG from scratch - Routing (0) 2024.11.29 Anthropic's Contextual Retrieval (0) 2024.11.26 새로운 RAG system Golden-Retriever (2) 2024.11.25 LLM으로 프로그래밍 (0) 2024.11.24 Agentic RAG (1) 2024.11.22