MARDoc - A Memory-Aware Refinement Agent Framework for Multimodal Long Document QA

🏷️ 논문 멀티모달 에이전트

K. Chen, H. Liu, Q. Peng, J. Yang, Y. Liu, X. Zhang, and Q. Yang, "MARDoc: A Memory-Aware Refinement Agent Framework for Multimodal Long Document QA," arXiv:2606.05749, 2026.

재무 보고서, 과학 논문, 기업 문서를 읽고 답하는 일에는 두 가지 어려움이 겹칩니다. 정보가 텍스트, 레이아웃, 표, 그림에 흩어져 있어 모달리티를 가로질러 정렬하고 추론해야 하고, 근거가 수많은 페이지에 드문드문 흩뿌려져 있어 찾아 모으기가 어렵습니다.

요즘 에이전트형 문서 QA는 검색과 추론을 반복하며 이를 풉니다. 그런데 대부분 한 가지 약점을 공유합니다. 매 턴마다 새 검색 결과와 중간 추론을 하나의 끝없이 자라는 맥락에 덧붙이는 "단일 맥락 스트림(monolithic context stream)" 방식이라는 점입니다. 턴이 쌓일수록 무관한 상호작용 기록이 맥락을 희석하고, 핵심 증거를 압축해 재사용 가능한 형태로 추려낼 장치가 없습니다. MARDoc은 그 맥락 스트림을 구조화된 메모리로 갈아끼웁니다.

저자

일곱 명이 톈진대, 베이항대, 장난대, 그리고 기업 Qifu Technology에 걸쳐 있습니다. 제1저자 Kaifeng Chen과 교신저자 Qiyao Peng이 톈진대 소속입니다. Qiyao Peng은 자연어처리와 추천 시스템을 연구해온 사람으로, 정보 검색과 표현 학습의 감각이 이 논문의 중심 아이디어와 닿아 있습니다. 증거를 그냥 쌓는 게 아니라 구조화된 메모리로 압축해 멀티홉 추론을 살린다는 발상입니다.

저자들이 정조준한 문제는 두 가지입니다. 하나는 위에서 말한 맥락 희석입니다. 다른 하나는 메모리에 기반한 품질 관리의 부재입니다. 기존 에이전트는 오류가 빠진 증거 때문인지, 잘못 읽은 시각 정보 때문인지, 틀어진 교차 페이지 추론 때문인지 구분하기 어렵습니다. 초반 턴에서 생긴 오류가 반복을 거치며 살아남아 멀티홉 추론 사슬에서 환각을 키웁니다.

배경

문서 QA는 단일 모달 짧은 텍스트에서 복잡한 긴 문서 추론으로 진화해 왔습니다. 초기에는 OCR 파이프라인으로 텍스트와 시각 특징을 융합해 MLLM에 넣었지만, 컨텍스트 윈도 크기에 강하게 묶였습니다. 이를 넘으려고 RAG 계열이 관련 멀티모달 청크만 검색해 넣었으나, 문서 구조를 무시하고 다단계 추론에 약했습니다.

최근에는 에이전트 기술이 RAG에 들어왔습니다. DocAgent는 문서를 구조화된 트리로 만들고 에이전트에 도구를 쥐여 효율적으로 증거를 검색합니다. DocDancer는 합성 데이터로 도구 사용 숙련도를 끌어올립니다. 그래도 맥락을 누적하는 패러다임 탓에, 긴 멀티모달 문서 QA에서 모델의 멀티홉 추론력을 제대로 끌어내지 못합니다.

에이전트 메모리 연구도 한 갈래입니다. 구조화된 메모리가 정보 손실을 줄여 추론 성능과 안정성을 높인다는 결과들이 나왔습니다. 다만 이들은 범용 에이전트를 겨냥해 일반적 상호작용 기록을 압축하거나 과제 간 경험을 축적하는 데 초점이 있습니다. MARDoc은 여기서 영감을 받되, 문서 QA에 맞춰 답에 결정적인 사실과 그 추론 사슬을 반복적으로 증류하는 메모리를 도입합니다.

어떻게 만들었나

위 그림(Figure 1)이 대비를 보여줍니다. 위쪽 단일 맥락 스트림은 모든 상호작용을 하나의 팽창하는 맥락에 덧붙여, 핵심 증거가 구조 없이 흩어진 채 "긴 사슬 속에서 길을 잃고" 노이즈에 간섭받습니다. 아래쪽 MARDoc은 검색, 정제, 반성을 세 전문 에이전트로 분리하고, 동적으로 갱신되는 리포트 메모리로 소통하게 합니다.

루프는 Explore-Refine-Reflect로 돕니다.

탐색자(Explorer)는 ReAct 프레임워크로 다중 그래뉼래러티 멀티모달 검색을 합니다. 매 반복에서 질의 \(Q\), 구조화된 개요 \(O\), 이전 메모리 \(M_{t-1}\), 반성자의 지시 \(R_{t-1}\)를 받아 추가 검색을 수행하고 추론 사슬 \(T_t = M_{\text{Exp}}(Q, O, M_{t-1}, R_{t-1})\)를 냅니다. 텍스트와 시각 양쪽을 아우르는 다중 그래뉼 도구 세트가 붙습니다.

정제자(Refiner)는 사람 전문가의 사고를 흉내 냅니다. 사람은 문서의 모든 세부를 외우지 않고, 핵심 정보와 근거, 그것들 사이의 논리 관계를 담은 또렷한 사고의 실을 만듭니다. 정제자는 매 반복 끝에 상호작용 기록을 압축해 두 갈래 구조화 메모리를 만듭니다.

\[M_E, M_R = M_{\text{Ref}}(Q, T_t, M_{t-1})\]

증거 메모리 \(M_E\)는 과제의 고수준 로그입니다. 질의에 관련된 가장 중심적인 사실을 출처와 함께 기록하고 중복은 제거합니다. 이미지와 표 같은 멀티모달 정보도 단순한 증거 노드로 압축해, 반성자가 원본 맥락의 노이즈에 휘둘리지 않게 합니다. 추론 메모리 \(M_R\)는 원본 맥락에서 또렷한 추론 경로를 뽑아 증거 노드와 엮어 증거 사슬을 만듭니다. 사슬의 각 노드에는 자신이 의존하는 증거 노드가 주석으로 달립니다. 증거와 추론을 분리해 둔 덕에, 반성자는 오류가 틀린 증거에서 왔는지 틀린 추론 논리에서 왔는지 추적할 수 있습니다.

반성자(Reflector)는 매 반복 뒤 압축된 메모리를 살펴 피드백을 줍니다. 모인 증거가 정답을 내기에 충분하면 최종 답 \(A = M_{\text{Ref}}(M_t, Q)\)를 내고, 부족하거나 오류가 있으면 탐색자를 더 효과적인 검색으로 이끄는 구체적 지시 \(R_t\)를 냅니다. "어떤 항목의 총합이 빠졌다", "사용자가 묻는 건 BERT가 아니라 ChatGPT-4o다" 같은 식의 휴리스틱입니다. 매 반복이 끝나면 갱신된 메모리가 옛것을 덮어써, 에이전트가 맥락을 무한히 쌓지 않고 질의와 무관한 노이즈를 걸러냅니다. 반성은 최대 \(K\)번까지 돕니다.

문서 처리도 디테일이 있습니다. 기존 XML 기반 표현은 파싱된 요소를 계층 트리로 묶지만 세밀한 레이아웃과 시각 정보를 잃을 수 있습니다. MARDoc은 MinerU2.5로 정밀 파싱해 레이아웃을 보존한 세밀한 의미 노드를 만들고, Qwen3-VL-235B로 시각 요소의 간결한 설명을 붙여 개요를 모든 검색 도구의 통합 인덱스로 씁니다.

결과

MMLongBench-Doc(135개 문서, 평균 47.5페이지, 1,082개 질문, 34%가 교차 페이지 추론 필요)와 DocBench(229개 문서, 1,102개 질문)에서 평가합니다. 백본은 오픈 모델 Qwen3-VL-30B-A3B-Instruct(이하 Qwen3-30B)와 Qwen3-VL-8B-Instruct입니다.

방법 (백본)

MMLongBench ACC

F1

DocBench

MARDoc (Qwen3-30B, 오픈)

57.1

54.6

82.1

MARDoc (Qwen3-8B, 오픈)

52.7

50.3

72.3

DocAgent (Claude 3.5 Sonnet)

57.3

54.1

미보고

DocAgent (GPT-4o)

51.8

49.1

79.9

DocAgent (Qwen3-30B, 동일 백본)

48.3

45.8

73.2

DocDancer (Qwen3-30B-Thinking, 파인튜닝)

54.4

53.9

81.2

Vanilla VLM (Qwen3-30B)

45.9

45.6

63.2

사람 기준선

65.8

66.0

81.2

핵심은 백본을 통제했을 때 드러납니다. MARDoc은 오픈 Qwen3-30B만으로 MMLongBench-Doc에서 57.1%를 내, 폐쇄형 Claude 3.5 Sonnet을 쓴 DocAgent(57.3%)와 사실상 동률입니다. 같은 Qwen3-30B 백본을 쓴 DocAgent(48.3%)는 9점 가까이 앞섭니다. 단일 맥락 패러다임을 깬 효과가, 모델 체급이 아니라 구조에서 나온다는 증거입니다. DocBench에서는 82.1%로 표 안의 모든 방법을 누르고, 사람 기준선(81.2%)마저 살짝 넘었습니다. 작은 8B 백본으로도 52.7%로, GPT-4o를 쓴 DocAgent(51.8%)를 앞섭니다.

증거 페이지 수를 늘려가며 보면(Figure 2), MARDoc과 DocAgent 모두 성능이 떨어지지만 MARDoc의 하락 폭이 눈에 띄게 작습니다. 증거가 흩어질수록 구조화 메모리가 다양한 출처를 더 정확히 통합하고 멀티홉 추론을 지탱한다는 뜻입니다.

무엇이 중요한가

두 갈래 메모리가 각자 다른 역할을 합니다. 정제자가 증거 메모리만, 추론 메모리만, 또는 둘을 평문 요약으로 대체했을 때를 비교합니다.

변형

단일홉

멀티홉

답 없음

ACC

F1

MARDoc (전체)

61.6

43.8

69.1

57.1

54.6

추론 메모리 \(M_R\) 제거

59.1

40.6

69.3

55.0

52.0

증거 메모리 \(M_E\) 제거

59.4

42.2

64.7

54.9

52.3

둘 다 평문 압축으로 대체

57.9

39.4

66.4

53.7

51.8

추론 메모리 \(M_R\)를 빼면 멀티홉 질문이 주로 깎입니다(43.8 → 40.6). 여러 페이지에 걸쳐 증거를 종합할 때 추론 일관성을 지키는 게 \(M_R\)라는 뜻입니다. 증거 메모리 \(M_E\)를 빼면 "답할 수 없음" 질문이 크게 상합니다(69.1 → 64.7). \(M_E\)가 사실적 근거 장치로 작동해, 증거 부족과 모순된 전제를 구분하고 환각을 줄이는 역할을 합니다. 둘을 평문 요약으로 대체한 변형이 모든 지표에서 가장 나쁩니다. 구조 없는 요약은 노이즈를 그대로 남기고 논리 구조를 가립니다. 흥미롭게도 정제자 없이 반성자만 남기면 둘 다 제거한 것보다도 성능이 더 떨어집니다. 정제자가 압축해주지 않으면 반성자가 노이즈 가득한 누적 맥락 속 오류를 못 잡고, 과한 노이즈가 반성 과정 자체를 망가뜨리기 때문입니다.

반성 횟수 \(K\)의 효과도 분명합니다(Figure 3). \(K=1\)에서 \(K=3\)까지는 단일홉과 멀티홉 모두 꾸준히 오르지만, \(K=4\)가 되면 살짝 내려갑니다. 탐색 라운드가 더 늘면 중복 정보가 이미 구조화된 메모리를 희석해 추론 정밀도를 조금 깎습니다. 다만 F1은 반복이 늘수록 완만히 올라, 반성자가 환각을 부분적으로 누그러뜨립니다.

회고

공짜는 아닙니다. 200개 표본에서 잰 비용 분석을 보면 MARDoc은 DocAgent보다 토큰과 시간을 더 씁니다. 평균 122.8k 토큰과 65.3초로 DocAgent(100.3k 토큰, 49.4초)보다 무거운 대신, 정확도는 55.9%로 47.1%를 크게 앞섭니다. 정확도를 위해 연산을 더 태우는 트레이드오프입니다.

이 논문이 보여주는 건 "에이전트에 메모리를 붙였다"는 막연한 주장이 아닙니다. 긴 문서 QA에서 왜 맥락을 그냥 쌓으면 핵심 증거가 묻히는지, 그리고 증거와 추론을 분리한 구조화 메모리가 멀티홉과 "답 없음" 판정 각각을 어떻게 떠받치는지의 구체적 메커니즘입니다. 사후 분석으로 어느 메모리가 어떤 질문 유형을 살리는지까지 분해해 보인 점이 설득력을 더합니다.

정리