AuditCopilot: 복식 부기 부정 탐지를 위한 LLM 활용
이번 주에 읽고 있는 논문은 2025년 12월 Kadir, Macharla Vasu, Nair, Sonntag이 발표한 AuditCopilot: Leveraging LLMs for Fraud Detection in Double-Entry Bookkeeping (arXiv:2512.02726)입니다. 이 논문은 LLM 에이전트 연구와 재무 컴플라이언스의 접점에 위치해 있습니다. 즉, 실제 기업 원장에서 부정한 분개(journal entries)를 탐지하기 위해 파운데이션 모델을 사용하는 것입니다. 지금까지 Bean Labs 읽기 목록에 포함된 모든 논문 중, 우리가 중요하게 생각하는 원시 데이터 형식과 가장 직접적으로 관련된 논문입니다.
논문 요약
PCAOB 감사 표준 AS 2401에 따라 의무화된 모든 상장 기업 감사는 분개 테스트(Journal Entry Testing, JET)를 포함해야 합니다. 이는 규칙 기반 휴리스틱에 따라 플래그가 지정된 항목에 대해 원장을 체계적으로 점검하는 것입니다. 규칙은 "자정 이후에 게시된 항목", "라운드 넘버 금액", "비정상적인 계정 쌍" 또는 "활동이 드문 사용자가 게시한 항목" 등입니다. 이러한 규칙은 효과가 있지만, 엄청난 양의 오탐(false positive)을 발생시킵니다. 감사인은 대부분의 시간을 명백한 노이즈를 걸러내는 데 소비합니다.
AuditCopilot은 LLM이 이러한 규칙을 대체하거나 보완할 수 있는지 질문합니다. 이 시스템은 전기 날짜, 차변/대변 금액, 계정 ID, 세율 및 미리 계산된 바이너리 이상 플래그 필드가 포함된 JSON 형태의 텍스트 스니펫으로 구조화된 각 분개를 LLM 프롬프트에 전달합니다. LLM은 바이너리 이상 레이블과 자연어 설명을 반환합니다. 저자들은 합성 기업 원장과 실제 익명화된 세무 원장 모두에서 Mistral-8B, Gemma-2B, Gemma-7B, Llama-3.1-8B를 벤치마킹하여 전통적인 JET 및 Isolation Forest 기준 모델과 비교했습니다.
핵심 아이디어
- 합성 데이터셋(5,000개 전기 ID, 약 1%의 실제 이상율)에서 전체 프롬프트를 사용한 Mistral-8B는 정밀도(Precision) 0.90, 재현율(Recall) 0.98, F1 점수 0.94를 기록했습니다. 이는 JET 기준 모델의 정밀도 0.53, 재현율 0.90, F1 0.50과 비교됩니다. 특히 JET의 오탐이 942건인 데 비해 단 12건에 불과했습니다.
- "전체" AuditCopilot 프롬프트에는 원시 항목 기능뿐만 아니라 전역 데이터셋 통계(평균, 중앙값, 95 및 99 백분위수 금액)와 행당 미리 계산된 Isolation Forest 점수가 포함됩니다. 이러한 컨텍스트 엔지니어링이 핵심적인 역할을 합니 다.
- 실제 데이터셋에서 전체 프롬프트를 사용한 Gemma-7B는 정밀도 0.89, 재현율 0.78, F1 0.83에 도달했습니다. 하지만 Isolation Forest 힌트를 제거하면 정밀도가 0.14로 급락했습니다. 즉, LLM 혼자서는 제 역할을 다하지 못한다는 뜻입니다.
- 자연어 설명은 이 시스템의 가장 강력한 기여점입니다. 숫자 형태의 이상 점수와 달리, 플래그가 지정된 각 항목에는 "이 금액은 해당 계정 클러스터의 99 백분위수를 초과하며 업무 시간 외에 게시되었습니다"와 같은 산문 형태의 근거가 제공되므로 감사인이 신속하게 수용하거나 기각할 수 있습니다.
- 미세 조정(fine-tuning)은 전혀 사용되지 않았습니다. 모든 것이 제로샷(zero-shot) 또는 간단한 시스템 역할 프롬프트로 실행되므로 배포 비용 측면에서는 유리하지만, 결과가 프롬프트 템플릿에 매우 의존적이라는 의미이기도 합니다.
유효한 점과 한계점
오탐율 감소 결과는 매우 인상적이며 실질적입니다. 동일한 데이터에서 오탐을 942건에서 12건으로 줄이는 것은 도구가 실제 현장에서 사용될 수 있는지 여부를 결정짓는 운영상의 이득입니다. 저는 이 방향성이 옳다고 믿습니다.
하지만 평가 설계에 대해서는 심각한 우려가 있습니다.
첫째, 합성 데이터셋의 정답 레이블(ground-truth labels) 자체가 JET 규칙으로 구성되었습니다. 주입된 이상 징후는 정확히 JET가 포착하도록 설계된 패턴들입니다. 따라서 JET 레이블 테스트 세트에서 "LLM이 JET를 능가한다"는 결과는 LLM이 규칙을 넘어 일반화하는 것이 아니라, 프롬프트의 컨텍스트 통계에서 동일한 규칙을 모방하는 법을 배우는 것을 반영할 수 있습니다.
둘째, 실제 데이터에 대한 Isolation Forest 소거 연구 결과는 논문에서 충분히 논의되지 않은 치명적인 부분입니다. IF 점수가 없으면 F1 점수가 0.83에서 0.24로 떨어집니다. 이는 LLM이 독립적인 이상 탐지기로서가 아니라, 주로 IF 신호 위에 유연한 임계값(threshold) 역할을 수행하고 있음을 시사합니다. 이 시스템은 "감사 추론을 수행하는 파운데이션 모델"이라기보다는 자연어 외피를 입힌 머신러닝 앙상블에 가깝습니다.
셋째, 단일 산업 파트너로부터 추출된 하나의 실제 데이터셋만 사용되었습니다. 저자들도 이를 인정하고 있지만, 이는 회사 규모, 회계 시스템 또는 산업 전반에 걸친 일반화 가능성을 평가할 수 없음을 의미합니다.
넷째, 이 논문은 JET 및 단일 ML 기준 모델(Isolation Forest)과만 비교합니다. 오토인코더 기반 이상 탐지, 특징 공학이 적용된 XGBoost, IF 점수에 대한 단순 로지스틱 회귀 등은 포함되지 않았습니다. 여기서 "전통적인 ML"로 간주되는 범위가 너무 좁습니다.
환각(hallucination) 문제는 다뤄지지 않았습니다. 저자들은 설명을 핵심 기여로 꼽았지만, 산문 형태의 근거가 사실적으로 정확한지 또는 바이너리 예측과 일치하는지에 대한 평가는 없습니다.
재무 AI에 시사하는 바
이 논문은 Bean Labs가 구축하고 있는 것과 가장 유사한 기존 연구입니다. Beancount 원장은 복식 부기 시스템입니다. 모든 거래는 일련의 전기 라인(posting lines)입니다. 이러한 라인에서 비정상적인 계정, 범위를 벗어난 금액, 불합리한 날짜 패턴 등 이상 징후를 탐지하는 것은 자율 재무 비서의 명백한 첫 번째 기능입니다.
AuditCopilot의 결과는 Beancount 감사에 대한 올바른 접근 방식이 "LLM에 원시 거래를 입력하고 의심스러운지 묻는 것"이 아니라, "경량화된 통계적 컨텍스트(계정 수준 기준선, 시간 분포, Isolation Forest 점수)를 계산하고 LLM에 보강된 컨텍스트를 제공하는 것"임을 시사합니다. LLM의 가치는 원시 이상 점수 산출이 아니라 종합과 설명에 있습니다.
오탐율 감소 또한 직접적으로 관련이 있습니다. 한 번 실행할 때마다 942개의 이상 후보를 제시하는 Beancount 감사 도구는 무시될 것입니다. 설명과 함께 신뢰도 높은 12개의 후보를 제시하는 도구는 사용될 것입니다. 이것은 단순한 성능 지표가 아니라 제품 지표입니다.
제가 가장 중요하게 생각하는 '쓰기 작업의 안전성(write-back safety)' 문제는 이 논문에서 다뤄지지 않았습니다. AuditCopilot은 읽고 플래그를 지정할 뿐이며, 수정을 제안하거나 원장을 변경하지 않습니다. 첫 번째 논문으로는 적절한 범위이지만, Bean Labs의 어려운 숙제는 여전합니다. 이상 징후가 발견되었을 때, 어떻게 안전하게 조치 방법을 결정할 것인가 하는 문제입니다.
더 읽어볼 내용
- Understanding Structured Financial Data with LLMs: A Case Study on Fraud Detection (arXiv:2512.13040, ACL 2026) — 동일한 부정 탐지 문제에 검색 증강 인-컨텍스트 예시(retrieval-augmented in-context examples)를 추가한 FinFRE-RAG를 소개하고 4개의 공공 부정 데이터셋에서 벤치마킹하여 AuditCopilot의 단일 데이터셋 한계를 직접적으로 해결합니다.
- Anomaly Detection in Double-entry Bookkeeping Data by Federated Learning System with Non-model Sharing Approach (arXiv:2501.12723) — 기업 간 원장 데이터 공유를 방해하는 프라이버시 제약 문제를 다룹니다. 연합 학습(federated approach) 방식은 데이터를 중앙 집중화하지 않고 고객 데이터로 학습하고자 하는 모든 상용 Beancount 감사 서비스에 필요할 것입니다.
- GuardAgent: Safeguard LLM Agents by a Guard Agent via Knowledge-Enabled Reasoning (arXiv:2406.09187) — AuditCopilot이 의도적으로 피한 안전 집행 문제입니다. 이상 징후가 발견된 후, 쓰기 작업을 수행하는 에이전트가 회계 불변성(accounting invariants)을 위반하는 변경을 저지르지 않도록 보장하는 방법을 다룹니다.
