작은 단위로 검색된 관련성 높은 정보(Chunking) 주변의 문맥을 동적으로 확장하여, LLM에게 최적의 컨텍스트를 제공하는 기법
- 작동 방식
- 작은 단위로 검색: 우선 문서를 작은 크기로 잘라 청킹하고, 사용자 질문과 가장 관련성 높은 청크들을 검색
- 주변 문맥 확장: 검색된 청크들을 LLM에 바로 보내지 않고, 이 청크들이 원본 문서의 어느 위치에 있었는지 확인
- 구간(Segment) 재구성: 관련성 높은 청크들을 중심으로, 그 주변의 청크들까지 포함하여 하나의 연속된 '구간'을 통째로 재구성. 이때 검색 순위가 낮아 결과에 포함되지 않았더라도, 관련성 높은 청크들 사이에 끼어있던(sandwiched) 청크까지 모두 포함시켜 문맥의 흐름을 유지.
- 최종 컨텍스트 전달: 이렇게 재구성된, 마치 문서의 한 섹션과 같은 풍부한 문맥을 LLM에게 전달하여 답변을 생성.
- 장점
- 구현
- 검색/리랭킹을 통해 개별 청크들의 관련성 점수를 계산
- 관련성이 낮은 청크에 페널티를 부여해 점수를 음수로 만듬
- '최대 부분 배열 합'과 유사한 알고리즘으로, 점수 합이 가장 높은 연속된 청크 구간을 찾음
- 이 과정에서 검색 순위가 낮았지만 구간 사이에 '끼어있는' 청크들도 자연스럽게 포함
vs Context Window Enhancement
- Context Window Enhancement: 고정된 앞뒤 N개 이웃을 붙이는 단순 방식
- RSE (여기): 점수 기반 동적 구간 재구성 — 관련 청크 사이에 낀 저순위 청크까지 포함해 문맥 흐름 유지. 더 정교, 구현 복잡