본문으로 건너뛰기

Fusion-in-Decoder: 다중 구절 검색이 생성형 QA를 개선하는 방법

· 약 5분
Mike Thrift
Mike Thrift
Marketing Manager

검색 증강 생성(RAG)의 성패는 생성기가 여러 문서에 흩어져 있는 증거를 얼마나 잘 합성하느냐에 달려 있습니다. Izacard와 Grave의 2021년 EACL 논문 "오픈 도메인 질문 답변을 위한 생성 모델과 구절 검색 활용(Leveraging Passage Retrieval with Generative Models for Open Domain Question Answering)"은 검색된 구절을 독립적으로 인코딩하고 디코더에서 모두 융합하는 놀라울 정도로 간단한 아키텍처 수정을 제안하여, 당시 지배적이었던 RAG 프레임워크를 상당한 차이로 앞질렀습니다. 필자가 이 논문을 읽고 있는 이유는 이 설계 원칙이 원장 QA에 직접적으로 적용되기 때문입니다. Beancount 에이전트에서 항목을 검색하는 방법을 결정하기 전에, 실제로 어떤 융합 전략이 효과적인지 이해할 가치가 있습니다.

논문 내용

2026-05-26-fusion-in-decoder-passage-retrieval-generative-qa

Lewis 등의 원조 RAG(arXiv:2005.11401)는 밀집 검색기(dense retriever)와 BART 생성기를 결합하지만, 생성기가 한 번에 하나의 검색된 구절에만 의존하도록 강제하며, 시퀀스별(RAG-Sequence) 또는 토큰별(RAG-Token)로 구절을 주변화합니다. Izacard와 Grave는 이를 제약 조건으로 식별했습니다. 한 번에 하나의 구절만 볼 수 있는 모델은 여러 문서에 흩어져 있는 증거를 가로질러 삼각 측량하기가 어렵습니다.

그들의 FiD(Fusion-in-Decoder) 솔루션은 명쾌합니다. 검색된 각 구절을 질문과 연결한 후, T5의 인코더로 독립적으로 인코딩합니다. 인코더는 각 구절마다 한 번씩 실행되며, 이는 완전히 병렬화 가능합니다. 그런 다음 디코더는 모든 구절 표현의 연결에 대해 동시에 교차 주의(cross-attention)를 수행합니다. 인코더 복잡도는 구절 수에 따라 선형적으로 증가하지만, 중요한 것은 디코더가 모든 생성 단계에서 구절 경계를 넘어 주의를 기울일 수 있다는 점입니다. 이 논문은 생성기 중추(backbone)로 T5-base와 T5-large를 사용합니다.

핵심 아이디어

  • 100개의 구절을 검색한 FiD-large는 Natural Questions에서 51.4%, TriviaQA open에서 67.6%의 정확한 일치(exact match)를 달성했으며, 이는 RAG-Sequence의 각각 47.5%와 56.1%와 비교하여 약 4점 및 11점의 향상을 보여줍니다.
  • Natural Questions의 성능은 구절 수에 따라 단조 증가합니다: 구절 1개에서 37.3%, 10개에서 48.8%, 50개에서 50.8%, 100개에서 51.4%입니다. 한계 수익은 감소하지만 결코 역전되지 않습니다.
  • 10개에서 100개 구절로 확장할 때 TriviaQA는 6%, Natural Questions는 3.5% 개선됩니다. 이는 디코더가 단순히 최상위 구절을 선택하는 것이 아니라 실제로 정보를 집계하고 있다는 증거입니다.
  • 인코딩 단계는 병렬화가 쉽습니다: 각 (질문, 구절) 쌍은 독립적으로 처리되므로, 하드웨어에 따라 실제 소요 시간은 하위 선형적으로 증가합니다.
  • 7억 7천만 개의 매개변수를 가진 FiD-base는 T5-11B closed-book 모델을 능가하며(NQ에서 44.1% 대 36.6%), 검색 기능이 작은 모델이 체급 이상의 성능을 발휘하게 함을 입증합니다.

유효한 점과 그렇지 않은 점

핵심 결과는 견고하며 널리 재현되었습니다. 독립적 인코딩과 공동 디코딩이라는 아키텍처적 통찰은 매우 깔끔합니다. 인코더 전에 모든 구절을 단순하게 연결할 때 발생하는 이차적인 자기 주의(self-attention) 폭발을 피하면서도, 디코더에게 검색된 모든 증거에 대한 전역적 문맥을 제공합니다.

논문에서 거의 언급하지 않은 한계는 추론 시 디코더의 교차 주의가 병목 현상이 된다는 점입니다. 교차 주의는 모든 생성 단계에서 각 디코더 레이어마다 모든 인코더 키-값(key-value) 쌍을 로드해야 하며, 이러한 키-값 텐서는 구절 수에 따라 선형적으로 증가합니다. 2023년 후속 연구인 FiDO(arXiv:2212.08153)는 멀티 헤드 주의를 멀티 쿼리 주의로 교체하고 교차 주의 레이어를 가지치기(pruning)함으로써 정확도 손실을 최소화하면서 7배의 추론 가속을 얻을 수 있음을 보여주었습니다. 이는 원래의 FiD 디코더가 해당 작업에 필요한 것보다 상당히 과하게 설계되었음을 암시합니다.

또한 논문이 탐구하지 않은 보정(calibration) 격차도 존재합니다. 이 논문은 정확한 일치를 보고하는데, 이는 우연히 정확한 표준 정답 문자열을 생성한 시스템에 보상을 줍니다. 구절에서 범위를 추출하는 대신 여러 구절에 걸쳐 발견한 내용을 요약하는 사실적 합성 작업의 경우, 정확한 일치는 오류를 과소평가하고 신뢰도를 과대평가합니다. 올바른 문장 안에서 숫자 하나가 틀리는 것이 치명적인 실패인 금융 환경에서 정확한 일치는 전혀 잘못된 지표입니다.

금융 AI에서 이것이 중요한 이유

Beancount 원장 QA는 본질적으로 다중 구절 검색 문제입니다. "모든 계좌에서 3분기 여행 경비로 얼마를 썼는가?"와 같은 질문은 서로 다른 날짜, 계좌 및 통화 유형의 수십 개 거래 항목을 합성해야 합니다. 생성 모델이 검색된 많은 구절을 집계할 수 있으며 문맥이 많아질수록 성능이 향상된다는 FiD의 핵심 발견은 매우 고무적입니다.

실무적인 설계 시사점은 구체적입니다. Beancount QA 레이어를 구축할 때, 단순히 상위 5개를 순위 재조정하여 하나의 정답을 고르는 것보다 더 많은 후보 항목(50~100개)을 검색하고 생성기에게 이들 모두에 대한 공동 접근 권한을 부여하는 것이 더 나을 가능성이 높습니다. FiD 아키텍처는 또한 원장 구조와도 잘 맞습니다. 디코더가 모든 항목을 합성하기 전에 각 거래 항목을 독립적으로 인코딩할 수 있습니다(비용이 저렴하고 병렬화 가능함).

프로덕션 배포 시 추론 비용 문제는 현실적이지만, FiDO의 후속 연구는 정확도 손실 없이 아키텍처 수준에서 해결 가능함을 보여줍니다. 금융 에이전트에게 더 시급한 한계는 FiD가 짧은 생성 출력을 가진 사실 기반 QA를 위해 설계되었다는 점입니다. 원장 분석은 종종 금액 합산, 비율 계산 등 다단계 산술 연산을 필요로 하는데, FiD의 생성기는 이를 기본적으로 인터프리터로 라우팅하지 않습니다. 수치적 정확도를 위해 FiD 스타일의 융합과 PAL 스타일의 코드 생성 헤드를 결합하는 것이 다음 단계가 될 것입니다.

다음 읽을거리

  • FiDO (arXiv:2212.08153, ACL Findings 2023) — 멀티 쿼리 주의와 교차 주의 가지치기를 통해 FiD의 정확도를 유지하면서 추론 속도를 7배 향상시켰습니다. FiD를 프로덕션에 배포하기 전 필수적입니다.
  • REALM: Retrieval-Augmented Language Model Pre-Training (arXiv:2002.08909, ICML 2020) — Guu 등은 추론 시뿐만 아니라 사전 학습 중에 검색을 통합하는 방법을 보여줍니다. FiD가 기반으로 삼은 상위 동기를 제공합니다.
  • Atlas: Few-shot Learning with Retrieval Augmented Language Models (arXiv:2208.03299, JMLR 2023) — Izacard 등의 연구로, 검색기와 리더를 공동으로 학습시켜 FiD를 퓨샷(few-shot) 설정으로 확장한 연구이며, 이 계열의 가장 완성된 합성물입니다.