전체 그래프
RAG

Relevant Segment Extraction (RSE)

ai-mlrag

상위: Advanced RAG Techniques

작은 단위로 검색된 관련성 높은 정보(Chunking) 주변의 문맥을 동적으로 확장하여, LLM에게 최적의 컨텍스트를 제공하는 기법

  • 작동 방식
    1. 작은 단위로 검색: 우선 문서를 작은 크기로 잘라 청킹하고, 사용자 질문과 가장 관련성 높은 청크들을 검색
    2. 주변 문맥 확장: 검색된 청크들을 LLM에 바로 보내지 않고, 이 청크들이 원본 문서의 어느 위치에 있었는지 확인
    3. 구간(Segment) 재구성: 관련성 높은 청크들을 중심으로, 그 주변의 청크들까지 포함하여 하나의 연속된 '구간'을 통째로 재구성. 이때 검색 순위가 낮아 결과에 포함되지 않았더라도, 관련성 높은 청크들 사이에 끼어있던(sandwiched) 청크까지 모두 포함시켜 문맥의 흐름을 유지.
    4. 최종 컨텍스트 전달: 이렇게 재구성된, 마치 문서의 한 섹션과 같은 풍부한 문맥을 LLM에게 전달하여 답변을 생성.
  • 장점
    • 동적인 문맥 제공: 질문의 복잡도에 따라 짧거나 긴, 최적의 문맥을 LLM에 전달 가능
    • 답변 품질 향상: LLM이 단편적 정보가 아닌 연속된 글을 읽는 것처럼 문맥을 더 잘 이해하여 정확하고 풍부한 답변을 생성
    • 정보 누락 방지: 검색 결과에서는 놓쳤을 수 있는 중요한 주변 청크까지 포함하여 완전한 정보를 제공
  • 구현
    1. 검색/리랭킹을 통해 개별 청크들의 관련성 점수를 계산
    2. 관련성이 낮은 청크에 페널티를 부여해 점수를 음수로 만듬
    3. '최대 부분 배열 합'과 유사한 알고리즘으로, 점수 합이 가장 높은 연속된 청크 구간을 찾음
    4. 이 과정에서 검색 순위가 낮았지만 구간 사이에 '끼어있는' 청크들도 자연스럽게 포함

vs Context Window Enhancement

  • Context Window Enhancement: 고정된 앞뒤 N개 이웃을 붙이는 단순 방식
  • RSE (여기): 점수 기반 동적 구간 재구성 — 관련 청크 사이에 낀 저순위 청크까지 포함해 문맥 흐름 유지. 더 정교, 구현 복잡