• RAG 개선, 평가 방법
    DEV 2024. 11. 11. 21:02

    사진: Unsplash 의 jean wimmerlin

    2024.11.10 - [DEV] - vectorDB 없이 검색 api만으로 RAG app만들기

     

    vectorDB 없이 검색api만으로 RAG app만들기

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

    developer-as-job.tistory.com

    이전글의 추가개선 사항에 대한 이야기

    Self-Reflective RAG

    • 답변 생성 과정 중, 한번의 검색 → 검색된 문서들의 관련성, 정확성에 문제가 있을 가능성 높음
    • 품질이 낮은 검색, 생성 결과를 LLM을 사용해 수정
    • 질문을 다시 생성하거나 문서를 다시 검색하는 일종의 피드백을 상태머신을 사용(검색, 문서 채점, 쿼리 재작성)
    • 검색된 문서가 관련이 없는 경우 쿼리를 다시 작성하고 새 문서를 다시 검색

    Self-Reflective RAG
    Self-Reflective RAG

    CRAG(Corrective RAG)

    • https://arxiv.org/pdf/2401.15884
    • 가벼운 검색 평가기를 사용하여 쿼리에 대해 검색된 문서의 전반적인 품질을 평가하고 각각에 대한 신뢰도 점수를 반환
    • 벡터스토어 검색이 모호하거나 사용자 쿼리와 관련이 없는 것으로 간주되는 경우 웹 기반 문서 검색을 수행하여 컨텍스트를 보완
    • 검색된 문서를 "지식 스트립"으로 분할하고 각 스트립의 등급을 매기고 관련 없는 문서를 필터링하여 지식 개선을 수행
    • 최적이 아닌 검색과 관련된 부정확성을 완화하고 생성된 응답의 신뢰성을 보장

    CRAG(Corrective RAG)
    CRAG(Corrective RAG)

    Self-RAG

    • https://arxiv.org/pdf/2310.11511
    • self-reflection으로 환각으로 인해 문제가 있는 답변이나 질문을 해결하지 못하는 답변을 수정할 수 있도록 하여 다양한 작업에서 사실성과 다양성을 향상
    • 필요에 따라 검색 - 검색이 필요한 경우 [Retriever] 토큰 출력
    • 프롬프트 +검색 결과를 병렬로 모델에 추론
    • 위에서 생성된 결과를 평가 가장 적합한 세그먼트를 선택
    • 특별히 훈련된 모델 필요

    Self-RAG
    Self-RAG

    Adaptive RAG

    • https://arxiv.org/pdf/2403.14403
    • 질문을 다양한 검색 접근 방식으로 동적으로 라우팅 → 가장 관련성이 높은 방식으로 정보를 검색
    • single-step approach → 단순한 쿼리 = ok, 복잡한 쿼리 = 부정확
    • multi-step approach → 단순한 쿼리 = 비효율, 복잡한 쿼리 = ok
    • Adaptive Approach → 쿼리의 타입에 따라 검색 방식을 선택

    Adaptive RAG
    Adaptive RAG

    Combine ideas

    • Routing: Adaptive RAG
    • Fallback: Corrective RAG
    • Self-correction: Self-RAG

    Combine ideas
    Combine ideas

     

    여러 가지 방법으로 RAG application을 만든다고 해도 어떤 방법이 얼마나 좋아졌는지 어떻게 알 수 있을까?

     

    RAG Framewroks

    RAG Framewroks
    RAG Framewroks

    RAG 정량적 평가 (Evaluation)

    RAG 평가(Evaluation) 프레임워크

    • RAGAS, Trulens ..

    Trulens

    Trulens
    Trulens

    평가 기준

    Context Relevance(컨텍스트 관련성)

    • 원래 질문에 대한 컨텍스트(검색된 문서)의 관련성을 평가
    • 맥락이 LLM 답변의 기초를 형성하기 때문에 이는 매우 중요

    근거(Groundedness)

    • LLM의 최종 답변이 맥락(검색된 문서)에 제공된 사실과 일치하는지 평가하여 주어진 정보를 과장하거나 벗어나지 않도록

    Answer Relevance(답변 관련성)

    • LLM의 최종 답변이 원래 질문을 얼마나 잘 다루고 있는지 측정하여 도움이 되고 관련성이 있는지 확인
    728x90

    'DEV' 카테고리의 다른 글

    ETL, ECL and vector DB  (0) 2024.11.13
    Chunking in RAG application  (0) 2024.11.12
    vectorDB 없이 검색api만으로 RAG app만들기  (2) 2024.11.10
    advanced RAG  (0) 2024.11.09
    simple RAG pipeline  (2) 2024.11.08
go.