한줄 요약

Meta AI에서 제안한 SEAL (Search Engines with Autoregressive LMs) 은, 문서의 모든 n-gram을 식별자(identifier)로 사용하고, FM-Index 기반 constrained decoding으로 문서를 검색하는 generative retrieval 모델이다. DPR 대비 7배 작은 인덱스 로 KILT 벤치마크에서 passage-level R-precision 10점 이상 향상.

  • 저자: Michele Bevilacqua, Giuseppe Ottaviano, Patrick Lewis, Wen-tau Yih, Sebastian Riedel, Fabio Petroni
  • 소속: Meta AI, Sapienza University of Rome, UCL
  • 발표: arXiv 2022 (2204.10628)
  • Base Model: BART-large (406M)

B) 전체 구조

flowchart TD
    subgraph Offline["오프라인: 인덱싱"]
        CORPUS["문서 Corpus"] --> FM["FM-Index 구축<br/>(모든 substring 인덱싱)"]
        CORPUS --> TRAIN["BART-large 학습<br/>(query → n-gram 생성)"]
    end

    subgraph Online["온라인: 검색"]
        Q["Query 입력"] --> BEAM["Constrained Beam Search<br/>(FM-Index가 유효 토큰 제한)"]
        BEAM --> NGRAMS["생성된 n-gram들<br/>(빔 크기 15, 10 step)"]
        NGRAMS --> LOOKUP["FM-Index 조회<br/>(n-gram → 문서 매핑)"]
        LOOKUP --> SCORE["문서 점수 계산<br/>(LM+FM intersective)"]
        SCORE --> RESULT["상위 문서 반환"]
    end

    style FM fill:#90EE90
    style BEAM fill:#87CEEB

말로 풀어서 설명하면:

  1. 오프라인: 전체 corpus를 FM-Index로 구축 (모든 substring을 효율적으로 검색 가능하게) + BART 모델을 query→n-gram 생성하도록 학습
  2. 온라인: query가 들어오면 BART가 n-gram을 생성하되, FM-Index가 실제 corpus에 존재하는 n-gram만 생성하도록 제약 → 생성된 n-gram으로 FM-Index 조회 → 매칭 문서 점수 매기기

C) 배경 지식

C.1) Generative Retrieval이란?

기존 검색이 “query → 인덱스 검색 → 문서 반환” 파이프라인이라면, generative retrieval은 “query → LLM이 문서 식별자를 직접 생성 → 해당 문서 반환” 하는 방식이다. 핵심 질문은 “문서를 어떤 식별자로 표현할 것인가?”

방식식별자대표 모델
제목 기반문서 제목 문자열GENRE
숫자 ID클러스터링 기반 계층적 숫자DSI
N-gram 기반문서 내 모든 substringSEAL

C.2) FM-Index

Ferragina-Manzini Index는 압축된 suffix array 로, 다음 기능을 제공:

  • 임의 길이 substring의 corpus 내 출현 빈도:
  • 가능한 다음 토큰 목록 생성:
  • substring을 포함하는 모든 문서 식별

비유하자면: 전체 corpus의 모든 단어 조합을 미리 정리해둔 “초거대 색인” 이다. 일반 역인덱스(BM25)는 개별 단어만 검색하지만, FM-Index는 “나이키 에어맥스 블랙”처럼 연속된 여러 단어 조합도 바로 검색할 수 있다.

장점: DPR 인덱스(64.6GB) 대비 8.8GB 로 7배 이상 작음.

C.3) Constrained Decoding

LLM이 토큰을 생성할 때, FM-Index에 존재하지 않는 토큰의 logit을 로 마스킹하여 corpus에 실제로 존재하는 n-gram만 생성하도록 강제하는 기법.

Query: "who invented the telephone"
Step 1: LLM이 "Alexander" 생성 → FM-Index에 있음 ✓
Step 2: LLM이 "Graham" 생성 → "Alexander Graham"이 FM-Index에 있음 ✓
Step 3: LLM이 "xyz" 생성 시도 → "Alexander Graham xyz"가 FM-Index에 없음 ✗ → 마스킹

D) 기존 방법의 한계

D.1) SEAL 이전 Generative Retrieval의 문제

  • 제목 기반 (GENRE): 문서 제목이 짧거나 모호하면 식별 불가. 제목이 없는 문서(passage)는 아예 처리 불가
  • 숫자 ID 기반 (DSI): 클러스터링으로 할당한 숫자 ID에 의미가 없어 LLM의 언어 지식 활용 불가. ID 체계를 통째로 암기해야 함

D.2) SEAL이 해결한 것

  • 구조 강제 없음 — n-gram은 자연어 그 자체이므로 LLM의 기존 언어 지식 활용 가능
  • passage 단위 검색 가능 — 제목이 없어도 본문 n-gram으로 식별

E) 제안 방법

E.1) N-gram을 식별자로 사용

모든 문서의 모든 n-gram이 해당 문서의 식별자가 된다. 예를 들어:

문서: "Alexander Graham Bell invented the telephone in 1876"

식별자들:
  - "Alexander"
  - "Graham Bell"
  - "invented the telephone"
  - "Alexander Graham Bell invented"
  - "telephone in 1876"
  - ... (모든 가능한 연속 substring)

하나의 문서에 수많은 식별자가 존재하고, 하나의 n-gram이 여러 문서에 걸칠 수도 있다.

E.2) 학습 방법

BART-large를 두 가지 데이터로 학습:

지도 학습: ground truth 문서의 n-gram 예측

  • query 가 주어지면, 정답 문서에서 길이 의 n-gram을 10개 샘플링
  • query와 문자 겹침이 높은 n-gram에 편향(bias) 부여

비지도 학습: corpus의 임의 span → 다른 span 또는 제목 예측

  • 추가 학습 데이터로 모델의 corpus 이해도 강화

Query가 들어오면:

  1. Beam search (빔 크기 15, 10 timestep)로 n-gram 후보 생성
  2. 각 step에서 FM-Index가 유효한 다음 토큰만 허용 (constrained decoding)
  3. 생성된 각 n-gram에 대해 FM-Index에서 매칭 문서 조회

E.4) 문서 점수 계산

3가지 scoring 방식을 제안하며, LM+FM intersective 가 가장 성능이 좋음:

E.4.1) LM+FM 가중치

n-gram의 무조건부 확률:

여기서 은 corpus 전체에서 n-gram 의 출현 빈도.

LM+FM 가중치 (논문 Eq 2):

의미: LM이 높은 확률로 생성하면서( 높음) corpus에서 드문( 낮음) n-gram일수록 식별력이 높다 고 판단.

E.4.2) Intersective 점수

문서 의 최종 점수 (논문 Eq 3):

여기서 cover 함수 (논문 Eq 4):

  • : 높은 가중치의 n-gram을 더 강조
  • : 이미 커버된 토큰은 가중치 감소 → 다양한 n-gram이 기여하도록 유도

“왜 intersective인가?” → 같은 문서가 여러 n-gram에 의해 반복 매칭될 때, 이미 커버된 부분은 중복 카운팅하지 않기 위해. 비유하면 퍼즐에서 이미 맞춘 조각은 덜 가치 있고, 새로운 조각을 맞추는 게 더 가치 있다 는 원리.

F) 데이터셋 및 실험 환경

F.1) 데이터셋

데이터셋규모용도
Natural Questions (NQ)~21M passages (100 tokens)주요 QA 벤치마크
NQ320k200K 문서 (축소판)기존 연구와 비교용
KILT~36M passages, 7개 태스크멀티태스크 벤치마크

F.2) 학습 환경

항목설정
Base ModelBART-large (406M)
N-gram 길이k=10
문서당 샘플 수10개 n-gram
Learning Rate3e-5
Total Updates800K
Batch Size4096 tokens
GPU8 GPUs
Label Smoothing0.1
Beam Size (추론)15

F.3) 인덱스 크기 비교

시스템인덱스 크기
SEAL (FM-Index)8.8 GB
BM2518.8 GB
DPR64.6 GB
원문 텍스트13.4 GB

G) 실험 결과

G.1) KILT Benchmark (Passage-level R-precision)

모델FEVzsRENQHoPoT-RExWoW평균
BM2550.167.625.437.653.034.944.8
DPR55.364.233.130.147.624.342.5
SEAL67.878.843.636.252.229.154.5

SEAL이 DPR 대비 평균 +12점, BM25 대비 +9.7점 향상

G.2) Natural Questions

모델Acc@5Acc@20Acc@100
DPR80.186.191.4
SEAL76.286.391.2

NQ에서는 DPR과 거의 동등한 수준. Acc@20부터는 SEAL이 근소 우위.

G.3) 실무적 시사점

  • 인덱스 효율: DPR 대비 7배 작은 인덱스로 비슷한 성능 → 메모리 제약 환경에서 유리
  • 속도 트레이드오프: 추론 ~35분 (1 GPU) vs DPR ~30분 → 약간 느림. GAR ~5분보다는 확실히 느림
  • KILT 멀티태스크에서 강점: 다양한 태스크에 걸쳐 강건한 성능. 특히 fact verification(FEV), slot filling(zsRE)에서 두드러짐

H) 한계점

  1. 추론 속도: Constrained beam search가 dense retrieval보다 느림
  2. 이커머스 적용 한계: n-gram이 문서 원문에서 추출되므로, query와 문서의 어휘 불일치(vocabulary mismatch) 문제 해결 불가 — 이것이 GRAM이 NER 기반 정규화된 코드를 제안한 이유
  3. 동적 corpus 미대응: FM-Index 업데이트가 비효율적 → 상품이 수시로 추가/삭제되는 이커머스에 부적합
  4. 모델 크기 제한: BART-large(406M)로만 실험 → 더 큰 모델에서의 성능은 미검증

I) References