스프레드시트 RAG의 병목은 검색이 아니라 셀 역할 해석이다
Q&A on Any Spreadsheet Requires Interpreting Its Grid Structure
무엇인가
이 논문이 다루는 문제는 LLM 기반 RAG에서 실제 업무용 스프레드시트를 어떻게 잘게 쪼갤 것인가이다. 텍스트는 마침표나 문단 단위로 자르면 되지만, 스프레드시트는 본질적으로 2차원 비정형 데이터라서 순차 분할 규칙이 통하지 않는다. 저자는 산업계에서 널리 쓰이는 방식이 XML을 조각내는 수준에 머물러 열·행·표 헤더라는 구조적 맥락을 통째로 날린다고 지적한다. 실제로 r/Rag와 r/LangChain의 실무자 토론 59건을 수집해 분석한 결과, 가장 많이 언급된 실패 유형은 청킹 중 컨텍스트 손실(59%)이었고 중첩 헤더(37%), 희소하고 지저분한 레이아웃(29%)이 뒤를 이었다. 도구 사용도 파편화되어 있어 49%가 Pandas로 행을 순회하고, 32%가 Text-to-SQL 에이전트를, 25%가 비전 LLM을, 22%가 Docling을, 17%가 Unstructured.io를, 12%가 BeautifulSoup을 쓴다고 보고된다. 문제는 이 중 어느 것도 헤더에서 값으로 이어지는 계층을 안정적으로 보존하지 못한다는 점이다.
어떻게 동작하나
제안 방법은 두 단계다. 먼저 셀 역할을 의미적으로 주석하고, 그 역할을 이용해 격자 구조를 인식한 청크를 조립한다. 주석 체계는 청크에 무엇을 기여하는가라는 질문을 기준으로 설계된 13개 클래스로, 관측 데이터인 value(셀의 49%), empty(45%), 청크에 잡음만 더하는 junk(0.2%), 수식에서 나온 집계값 aggregation(0.9%), 3단 깊이로 나뉜 열·행 헤더(합쳐서 4.0%), 그리고 시트 수준 헤더·메타데이터·주석(0.4%)으로 구성된다. 헤더 깊이를 별도 클래스로 둔 이유는 2단 헤더가 값에 부여하는 의미가 1단 헤더와 다르기 때문이다. 역할을 학습하는 모델은 두 계열 여섯 개다. 노드 분류기는 표 소속을 Docling 세그멘테이션에서 받아 셀 하나하나를 분류하는 MLP, GCN, GAT이고, 그래프 학습자는 셀 간 연결까지 함께 예측하는 AdjTransformer, DualModalityGNN, SpatialEdgeTransformer다. 여섯 모델 모두 내용·서식·수식·이웃 신호로 만든 857차원 셀 특징 벡터를 쓰며, 정답 라벨은 입력으로 들어가지 않는다. 학습은 시트 단위 5겹 교차검증, 시드 3개, 100 에폭 AdamW와 코사인 스케줄로 총 90회 실행했고, 클래스 불균형 때문에 초점 손실(감마=2)에 역빈도 가중치를 적용했다. 청크 조립 기하는 하나로 고정하지 않고 Row(레코드 행마다 청크 하나, 값에 열·행 헤더의 전체 중첩 경로를 붙임), Flat(표 영역 전체를 한 청크로 직렬화), KG(주어-술어-목적어 트리플로 분해) 세 가지를 같은 역할 예측 위에서 비교했다. 세 방식 모두 검출된 표 경계를 넘지 않고 junk 셀은 버리며 집계값은 원시값과 구분한다. 표 영역 검출 자체는 예측 대상이 아니라 Docling의 엑셀 분할을 쓰되, 세그멘터는 교체 가능하게 설계했다.
무엇과 다른가
실험 데이터는 Sheetpedia 코퍼스의 시트 탭 505개(약 100만 개 셀 주석, 그중 비어 있지 않은 셀이 약 55만 개)로 역할 모델을 학습하고, RAG 평가에는 80개 정답 시트를 겨냥한 질문 480개를 방해 시트 302개와 함께 넣은 총 382개 시트 코퍼스를 썼다. 즉 검색기는 그럴듯한 시트들 사이에서 정답 시트를 스스로 찾아야 한다. 80개 정답 시트에는 사람이 붙인 완전한 역할 주석이 있어, 역할 기반 방법이 완벽한 인식에 도달했을 때의 상한선을 측정할 수 있다. 모든 생성 답변은 사람 심사자가 1~5점으로 평가했다. 질문 480개를 레이아웃 난이도로 나누면 중첩 헤더 81개, 행렬·교차표 200개, 다중 표 86개, 단순 평면 표 99개다(범주는 중복 가능).
어떻게 쓰나
결과는 명확하다. 그래프 학습자 전부가 노드 분류기 전부를 앞섰고(매크로 F1 0.72~0.75 대 0.58~0.67, DualModalityGNN이 0.75로 최고), RAG에서는 최고 체크포인트인 GAT가 사람 평가 3.88점을 기록해 최강 구조 인식 베이스라인 STC의 3.43점을 앞섰다(Wilcoxon p=1.5×10^-6). 검색에서도 recall@1이 0.465 대 0.356으로 우세했다. DualModalityGNN, AdjTransformer, GCN도 STC를 유의하게 이겼고(p≤3×10^-3), 관계 정보를 쓰지 않는 MLP조차 3.52 대 3.43으로 동률 수준이었다(p=0.43). 사람이 완벽하게 주석한 gold 역할로 만든 청크의 상한은 4.01점으로, 학습 모델보다 분명히 높지만 만점 5.0에는 크게 못 미친다. 왜 이런 일이 벌어지는지는 역할 품질(매크로 F1 0.50~0.82)을 훑는 체크포인트 16개에 대한 회귀 분석이 설명한다. 답변 품질은 매크로 F1 1단위당 0.56점씩 올랐고(p=0.031), F1=1.0으로 외삽하면 3.9가 나와 gold 상한 4.01과 같은 곡선 위에 놓인다. 반면 검색 성능은 역할 품질과 무관하게 평평했다(기울기 약 0, p=0.86과 0.90). 즉 구조 인식은 정답 청크를 찾기 쉽게 만드는 게 아니라, 찾은 청크를 이해하기 쉽게 만든다. gold 청크에서 역할을 하나씩 value로 강등하는 절제 실험에서는 1차 열 헤더를 없앨 때 1.40점이 빠져 다른 어떤 역할보다 한 자릿수 크게 손실이 났고(p=2×10^-33), 2차 열 헤더 0.30, 2차 행 헤더 0.22, 1차 행 헤더 0.13, 시트 수준 헤더 0.12, 집계 0.06 순이었다. 이 절제 실험은 사람 심사자 대신 5개 오픈웨이트 LLM 심사 패널로 채점했는데, 두 채점이 함께 있는 답변 집합에서 96% 이상이 1점 이내로 일치했다.
전제와 한계
이득이 어디에 몰리는지도 분명하다. 표 유형별로 나누면 중첩 헤더 시트에서 완벽한 역할은 STC 대비 +1.15점, 최고 학습 체크포인트는 +1.01점을 실현한다. 행렬·다중 표 시트는 상한에서 +0.36점이다. 반면 단순 평면 표에서는 효과가 사라져 상한이 +0.10점, 최고 학습 방법이 -0.01점으로 사실상 동률이다. 첫 행이 이미 모든 열 이름을 알려주기 때문에 평범한 첫 행 헤더 규칙만으로 구조가 전부 복원되기 때문이다. 청크 기하 비교에서도 Row가 전체 및 모든 구조화 유형에서 이겼지만 단순 평면 표에서는 세 전략이 동률이었고, 전략과 표 유형의 상호작용은 유의했다(p=1.0×10^-3). 저자들은 Row를 기본값으로 채택하면서도 이것이 최적이라는 주장은 하지 않는다.
개발자 입장에서 이 논문의 실무적 의미는 세 가지다. 첫째, 스프레드시트 RAG 파이프라인을 만들 때 검색 지표만 보고 청킹 품질을 판단하면 안 된다. 역할 인식이 좋아져도 recall은 거의 변하지 않으므로, 청킹 개선 효과는 반드시 생성 단계의 답변 품질로 측정해야 한다. 둘째, 셀 역할 주석은 범용 부스터가 아니라 기존 도구가 잘못 읽는 표를 겨냥한 표적 수정이다. 중첩 헤더, 교차표, 한 시트에 여러 표가 있는 경우에는 투자 가치가 크지만, 첫 행이 헤더인 단순 표에서는 Pandas로 행을 순회하는 것과 성능이 같다. 셋째, 청크에 값을 넣을 때 열 헤더의 전체 중첩 경로와 행 헤더, 시트 제목을 함께 실어 보내는 것이 가장 값싼 개선책이다. 절제 실험에서 1차 열 헤더 하나가 1.40점을 좌우했다. 참고로 이 논문의 프레임워크는 역할 주석기와 청크 기하 양쪽이 모듈식으로 공개되며, 실험에서 최선의 조합은 GAT 또는 DualModalityGNN 주석기와 행 기반 조립이었다(두 주석기는 다운스트림에서 통계적으로 구분되지 않았다).
저자가 명시한 한계도 분명하다. 완벽한 사람 역할로도 4.01점에 그친다는 것은 유한하고 미리 정의된 클래스 집합으로는 실제 스프레드시트 작성자가 표현하는 관계의 다양성을 담을 수 없다는 뜻이다. 게다가 어떤 단일 청크 기하도 모든 표 유형에 맞지 않는다. 표 소속은 예측 대상이 아니라 Docling 세그멘테이션에 의존하며, 헤더 깊이나 주석 같은 희소 클래스는 시트 몇 장에 따라 점수가 크게 흔들려 예측 구조가 결코 완벽하지 않다. 두 모델 계열이 서로 다른 시트 풀에서 평가되어 매크로 F1을 완전히 비교할 수 없다는 점도 저자가 밝힌다. 또한 저자들은 사람이 역할을 붙여도 원작성자의 의도와 정확히 일치하지 않을 수 있다고 인정한다.
결론적으로 이 논문은 학습된 셀 역할로 만든 청크가 최강 최신 청커를 사람 평가 기준 +0.45점(3.88 대 3.43) 앞선다는 것, 그 이유가 검색성 향상이 아니라 청크 해석 가능성 향상이며 이득이 비표준 레이아웃에 집중된다는 것을 보인다. 동시에 접근법의 천장을 측정해, 남은 병목은 구조 인식이 아니라 시트를 어떻게 자를 것인가라는 문제로 이동했음을 보여준다. 그래서 저자들은 고정된 셀 분류를 넘어 2차원 비정형 스프레드시트를 1차원 비정형 텍스트로 직접 평탄화하는 차원 축소 기법, 나아가 각 시트 레이아웃에 적응하는 학습된 구조 조건부 렌더링(레코드를 평문 문장으로 바꾸는 것까지 포함)을 다음 단계로 제안한다. 평가에 쓰인 480개 질문, gold 역할 주석, 약 18,000건의 사람 답변 평가로 구성된 벤치마크는 별도 데이터셋 논문으로 공개될 예정이다.