• RAG 고급 기법 - Query Translation
    DEV 2024. 11. 27. 22:15

    사진: Unsplash 의 Max Tcvetkov

    RAG

    2024.11.08 - [DEV] - simple RAG pipeline

     

    simple RAG pipeline

    RAGRetrieval augmented generation (RAG: 검색 증강 생성)할루시네이션, 학습되지 않은 최신 데이터, 메모리 이슈해결RAG의 간단한 인덱싱 파이프라인 4단계원본 데이터에서 데이터 로딩(load data)큰 문서를

    developer-as-job.tistory.com

    Query Translation

    사용자 쿼리를 LLM이 더 잘 이해하도록 다양한 방식으로 재구성.

    Multi-Query Prompt

    Multi-Query Prompt

    Multi-Query Prompt는 하나의 질문을 여러 개의 다른 질문으로 변형하여 질문하고, 각 질문에 대한 관련 정보를 찾은 후, 이를 결합하여 최종 답변을 생성하는 전략. 이는 마치 하나의 질문을 다양한 각도에서 바라보며 답을 찾는 것과 유사.

    장점

    다양한 관점 확보: 여러 질문을 통해 질문에 대한 더 풍부하고 다양한 정보를 얻을 수 있음.
    모델의 이해도 향상: 질문을 여러 방식으로 표현함으로써 모델이 질문의 의도를 더 잘 이해하고, 더 정확한 답변을 생성할 수 있음.

    단점

    중복 정보 처리: 여러 질문에서 동일한 정보가 추출될 수 있으며, 이러한 중복 정보를 제거하는 추가적인 작업이 필요
    순위 결정의 어려움: 여러 질문에서 동일한 점수를 가진 정보가 추출될 경우, 이들의 우선순위를 결정하는 데 어려움이 발생할 수 있음

    적용 사례

    복잡한 질문 처리: Multi-Query Prompt 전략은 복잡한 질문을 여러 개의 하위 질문으로 나누어 처리할 수 있음. 각 하위 질문에 대한 답변을 결합하여 최종 답변을 생성하는 방식은 복잡한 질문을 효과적으로 해결하는 데 도움
    모호한 질문 명확화: 질문을 다양하게 표현함으로써 모호성을 줄이고 명확한 답변을 얻을 수 있음

    RAG-fusion

    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은 여러 정보를 조합하여 답변해야 하는 질문을 처리하는 데 효과적. 

    Decomposition 쿼리의 두 가지 방법

    1. Recursively Answer: 첫 번째 질문에 대한 답변을 컨텍스트로 활용하여 다음 질문에 답변하는 방식으로, 모든 하위 질문에 대한 답변이 완료될 때까지 반복적으로 수행. 
    2. 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
go.