SPIRE: Structure-Preserving Interpretable Retrieval of Evidence
SPIRE 는 HTML 과 같은 반구조화된 문서의 구조적 특성을 보존하면서 하위 문서 단위로 증거를 검색하고 전역 및 지역적 맥락을 동적으로 추가하여, 기존 평탄화된 청크 기반 접근법보다 더 정확하고 해석 가능한 인용 증거를 제공하는 구조 인식 검색 프레임워크입니다.
원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기
🍕 1. 문제: "피자 조각만 따서 주는 검색"
지금까지 우리가 사용하는 대부분의 검색 시스템 (RAG) 은 문서를 검색할 때 문서의 구조를 다 부수고 평평한 텍스트 조각 (조각난 피자) 으로 만들어서 저장합니다.
- 기존 방식: 문서를 읽을 때, 제목, 목차, 표, 리스트 같은 구조를 무시하고 그냥 글자만 쭉 이어붙여서 작은 덩어리 (Chunk) 로 잘라냅니다.
- 문제점: 이렇게 잘라내면 맥락이 사라집니다.
- 예: "피자 1 번 조각"만 주면 "이게 무슨 피자야?"라고 의아해합니다. "피자 1 번 조각"이 '페퍼로니 피자'의 '첫 번째 조각'인지, '치즈 피자'의 '마지막 조각'인지 알 수 없기 때문입니다.
- 표의 숫자 하나만 가져오면, 그 숫자가 '어떤 열'과 '어떤 행'에 속하는지 알 수 없어 의미가 없어집니다.
🏗️ 2. 해결책: SPIRE (구조를 보존하는 검색)
SPIRE 는 문서를 나무 (Tree) 모양으로 인식합니다. 문서는 하나의 큰 나무이고, 제목은 가지, 단락은 잎사귀, 표는 가지에 달린 열매처럼 서로 연결되어 있다는 거죠.
SPIRE 는 정보를 찾을 때 이 나무의 구조를 그대로 유지하면서 필요한 부분만 잘라냅니다.
핵심 아이디어 1: "주소가 있는 정보" (Path-addressable)
기존 방식은 "글자 100 자부터 200 자까지"라고 위치를 잡지만, SPIRE 는 **"문서 > 제목 > 첫 번째 섹션 > 두 번째 문단"**처럼 정확한 주소를 기억합니다.
- 비유: 우편물 배달. 기존 방식은 "집 앞 길가"라고만 알려주지만, SPIRE 는 "서울시 강남구 OO 로 123 번지, 3 층 301 호"라고 정확히 알려줍니다.
핵심 아이디어 2: 두 단계의 "맥락 추가" (Contextualization)
SPIRE 는 정보를 찾을 때 두 가지 방식으로 맥락을 더합니다.
글로벌 맥락 (Global Contextualization) - "지도와 안내판"
- 정보를 찾을 때, 그 정보가 속한 전체 문서의 제목이나 큰 섹션 제목을 먼저 붙여줍니다.
- 비유: "이 문장은 '한국 요리'라는 책의 '김치' 챕터에 있는 거야"라고 알려주는 것입니다. 그래야 문장만 봐도 무엇을 말하는지 알 수 있습니다.
- 장점: 검색할 때 이 '안내판' 정보를 미리 포함시켜서, AI 가 문장을 더 잘 이해하게 만듭니다.
로컬 맥락 (Local Contextualization) - "주변 환경"
- 검색된 문장 주변에 필요한 이웃들을 더 붙여줍니다. 하지만 불필요한 건 빼고, 질문과 관련된 것만 골라냅니다.
- 비유: "김치" 문장을 찾을 때, 그 문장 바로 앞뒤의 문장이나 리스트 항목을 붙여주되, 관련 없는 광고 문구는 뺍니다.
- 장점: AI 가 답변을 만들 때 필요한 정보만 딱 맞게 줍니다.
🧩 3. 어떻게 작동할까? (간단한 시나리오)
사용자가 **"버지니아 주에 공원이 몇 개 있나요?"**라고 물어본다고 가정해 봅시다.
- 검색 (Vector Search): AI 는 문장 단위로 검색을 합니다. "버지니아에는 41 개 이상의 주립 공원이 있습니다"라는 문장을 찾습니다.
- 글로벌 맥락 추가: 이 문장만 주면 "어떤 문서의 내용이지?"라고 모호합니다. SPIRE 는 이 문장에 **"버지니아 주립 공원 가이드 (제목)"**와 **"주요 내용 (섹션 제목)"**을 자동으로 붙여줍니다.
- 로컬 확장 및 필터링: 이 문장 주변에 "어떤 공원들이 있는지 나열된 리스트"가 있다면, 그 리스트도 함께 가져옵니다. 하지만 질문과 상관없는 "공원 방문 시간" 같은 정보는 제외합니다.
- 최종 결과: 사용자는 제목, 섹션, 리스트, 그리고 정답 문장이 모두 포함된 깔끔한 답변을 받습니다.
🌟 4. 왜 이것이 중요한가요?
- 더 정확한 인용 (Citation): "이 정보가 어디서 왔는지"를 정확히 알려줍니다. 표의 숫자 하나만 가져온 게 아니라, 그 표의 제목과 행/열 헤더까지 함께 가져오기 때문에 의미가 명확합니다.
- 비용 절감: 불필요한 정보를 반복해서 주지 않습니다. 같은 문서에서 여러 문장을 찾을 때, 제목이나 구조 정보는 한 번만 공유해서 비용을 아낍니다.
- 더 좋은 답변: AI 가 맥락을 잃지 않고 답변을 만들기 때문에, 엉뚱한 소리를 하거나 헷갈리는 일이 줄어듭니다.
💡 요약
기존 검색은 문서를 잘게 부수어 평평한 조각으로 만든 뒤 검색하는 방식이라면,
SPIRE 는 문서를 살아있는 나무처럼 인식하고, 필요한 가지를 잘라낼 때 그 가지가 달린 줄기와 잎사귀까지 함께 가져와서 맥락을 잃지 않게 해줍니다.
이 덕분에 우리는 더 정확하고, 이해하기 쉬우며, 출처가 명확한 정보를 얻을 수 있게 됩니다. 마치 조각난 퍼즐을 맞추는 대신, 완성된 그림의 일부가 어떻게 연결되는지 보여주는 것과 같습니다.
연구 분야의 논문에 파묻히고 계신가요?
연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.