이 글은 Kaggle Benchmarking Challenge에 제출하는 자료입니다.
AI 지원: 저는 AI를 사용하여 합성 사례, Python 검사 및 이 작성물을 개발하는 데 도움을 받았습니다. 모든 재무 데이터는 가상의 것입니다. 저자: Marco Polo.
제가 벤치마크한 내용
재무 분야에서 12년을 보낸 후, 제가 가장 걱정하는 답은 '완성된 것처럼 보이는' 답변입니다.
설명 자체는 잘 읽히지만, 연결고리가 맞지 않거나 증가하는 채무자가 현금 흐름을 개선한다는 주장은 말이 되지 않습니다. 작업이 다시 시작됩니다.
저는 FP&A(재무 계획 및 분석)를 위한 28개의 소규모 재무 마감 과제를 만들었으며, 모델의 답변이 이러한 검사를 통과하는지 테스트했습니다:
- 6개 변동 연결고리 (V01–V06): 예산 대비 실제 매출을 가격, 물량, 믹스로 분할하고 센트 단위까지 조정합니다.
- 6개 발생 및 마감 사례 (A01–A06): 인도일, 소비일, 승인일, 송장일, 지급일을 구별합니다.
- 6개 재무제표 연계 사례 (L01–L06): 현금, 기타 자산, 부채, 이익, 자본을 통해 변화를 추적합니다.
- 10개 전제 검사 (T01–T10): 5개의 잘못된 검토자 주장과 각각 동일한 사실을 사용하여 올바른 주장을 매칭했습니다.
매칭 쌍이 중요합니다. 모든 전제를 거부하는 것은 신중하게 들릴 수 있지만 쓸모없을 수도 있습니다. 좋은 검토자는 잘못된 계산에 이의를 제기하고 좋은 계산은 받아들여야 합니다. 각 쌍은 모델에게 이전 답변을 보여주지 않고 개별적으로 실행됩니다.
저는 연결고리 규칙과 회계 정책을 명시했습니다. 모든 수치는 합성 데이터이며, 고용주, 고객 또는 공급업체 데이터는 포함되어 있지 않습니다.
테스트한 모델들
저는 2026년 10월 11일 기준으로 Kaggle의 46개 기본 모델 버전을 동결하고 모든 버전을 시도했으며, Google, OpenAI, Anthropic, Alibaba, DeepSeek, xAI 및 Z.ai를 포함했습니다. 41개가 28개 과제를 모두 완료했습니다. 3개는 점수가 매겨진 답변 대신 서비스 오류를 반환했습니다. 할당량 제한으로 인해 GPT-5.6 Terra는 28개 중 24개 사례만 처리할 수 있었습니다. 할당량 제한으로 인해 GPT-6 Astra는 28개 중 1개 사례만 처리할 수 있었습니다.
각 모델은 도구(tools) 없이 새로운 대화에서 동일한 프롬프트(prompt)를 받습니다. 저는 작업당 점수가 매겨진 응답을 하나 보관합니다. 인프라 장애는 재시도할 수 있지만, 잘못된 답변은 할 수 없습니다. 모델 식별자 및 응답은 Kaggle에 있습니다.
Python 그레이더(grader)는 키 값에서 £0.005 이내의 모든 금액, 올바른 전제 플래그(premise flag), 그리고 해당되는 경우 조정된 브릿지(reconciled bridge)를 요구합니다. 1페니(penny) 오차만으로도 실패합니다. JSON 형식이 필수이며, 숫자 문자열과 단일 JSON 코드 울타리(code fence)가 허용됩니다. 설명 및 자체 보고 신뢰도는 저장되지만 점수가 매겨지지는 않습니다.
별도의 계산 경로와 의도적으로 손상된 답변은 576개의 로컬 검사를 통과했습니다. 이는 모델 성능이 아닌 산술 및 스코어러(scorer)를 검증하는 것입니다.
주요 발견 사항 (Findings)
41개 중 20개 완전한 모델 세트가 100% 점수를 받았습니다: 이 벤치마크로는 선두 주자들을 구분할 수 없습니다. 유용한 비교는 이전 또는 더 작은 모델들과의 것이며, 각 격차가 재무(finance) 문제인지 아니면 형식 지정(formatting) 문제인지를 검토하는 것입니다. 가장 낮은 엄격 통과율은 분산 브릿지(variance bridges)에서 나타났습니다: 144/246 (58.5%).
이 표는 각 그룹의 분모를 제목에 포함하여 엄격한 통과 기록을 보고합니다. 콘텐츠는 추가적으로 사후 작업 JSON 추출(post-hoc JSON extraction)을 통해 복구된 올바른 금액 및 전제 플래그 수를 계산합니다. 구문 분석할 수 없는 답변은 검증되지 않은 상태로 남아 있습니다. 대시(-)는 불완전한 커버리지를 의미합니다.
차트: 41개 완전 세트. 파란색과 호박색은 검증된 콘텐츠 정확도를 나타내며, 호박색은 사후 작업 JSON 추출이 필요했습니다. 공식 점수는 변경되지 않았습니다.
브릿지가 균형을 이루어도 여전히 틀릴 수 있습니다. V01에서 GPT-5.4는 다음과 같이 반환했습니다:
`
£3,000의 예산 매출과 £2,840의 실제 매출 모두 정확했으며 구성 요소도 일치했습니다. 그러나 제시된 회계 처리 방식(convention)은 −£200의 혼합과 +£40의 가격을 요구합니다. 다섯 개의 오류가 있는 연결 고리 중 네 개는 내부적으로 조정되었습니다. 이 답변은 유리한 가격 책정 효과를 불리한 것으로 바꿨습니다.
미래 비용이 오늘의 발생액(accrual)으로 새어 들어올 수 있습니다. A01에서 Qwen 3 Coder 480B는 다음과 같이 작성했습니다:
남은 2개월 = GBP 12,000 발생액(accrual).
£18,000 서비스가 9월, 10월, 11월에 걸쳐 균등하게 진행됩니다. 9월 마감 시점의 발생 비용은 이미 제공된 £6,000입니다. 나머지 £12,000는 미래 서비스입니다. 이 모델은 자신감도(confidence) 95로 £12,000을 반환했는데, 이는 보정된 확률이 아닌 자체 보고 수치였습니다.
함정을 발견하는 것이 정확한 답을 보장하지 않습니다. T03에서 GPT-5.4 nano는 25%의 마크업(markup)을 사용하여 25%의 마진을 달성하는 것을 정확하게 거부했습니다. 그 설명은 다음과 같았습니다:
HALF_UP을 페니 단위로 계산하면 41,333.33이 됩니다.
하지만 해당 매출 필드는 자신감도 96으로 £41,250을 포함하고 있었습니다. 설명은 £31,000 ÷ 0.75를 이해했지만, 다운스트림 프로세스가 소비할 필드는 잘못되었습니다. Nano는 다섯 개의 오류 있는 전제 중 네 개를 플래그 지정했지만, 다섯 개의 유효한 주장은 모두 받아들였습니다. T03의 금액 오류로 인해 이 모델은 10개 중 8개 케이스에 그쳤으며, 오직 세 쌍의 일치하는 페어 멤버만 통과했습니다.
형식(Formatting)이 일부 극적인 격차를 설명합니다. DeepSeek-R1은 기록된 답변에 JSON 외부의 추론 마크업을 포함했기 때문에 28개 중 0/28 (0.00%)점을 받았습니다. 최종 JSON을 추출하자 모든 28개 케이스에서 정확한 금액과 전제 플래그가 복구되었습니다. Opus 4.6은 28개 중 4/28 (14.29%)점을 받았지만, Opus 4.5 역시 전체적으로 올바른 내용을 가지고 있었으며 19/28을 기록했습니다. 이는 이 설정에서의 형식 실패이며, 입증된 재무 오류는 아닙니다. 진단 결과에 따라 공식 점수는 변경되지 않습니다.
GLM-5는 초기 A02 프롬프트에서 모호성을 포착했습니다: 영수증이 소비를 확립하지 못함. 이에 대한 모든 응답은 제외되었으며, 보고된 모든 A02 결과는 수정된 태스크를 사용합니다. 나머지 27개 프롬프트, 키, 그리고 채점기는 변경되지 않았습니다. Python은 저의 산술을 확인했고, 모델은 제 질문에 간극이 있음을 드러냈습니다.
모델 버전과 일치하는 쌍들은 관련 관찰일 뿐이며, 사례당 하나의 응답으로는 신뢰성을 입증할 수 없습니다. 완벽하게 점수를 받은 사람들을 구별하기 위해서는 더 어려운 변형이 필요합니다. 현재의 상한선은 이들을 순위 매기는 것을 방해합니다. 작은 점수 차이는 재무 시스템을 선택할 정당성을 부여하지 못합니다.
다음으로 저는 새로운 수치적 변형, 반복 실행, 숫자 필드 이전의 설명, 스키마가 강제된 JSON, 그리고 계산기 또는 Python 접근 기능을 테스트하고 싶습니다. 지저분한 인보이스 묶음과 관련 없는 증거는 모델이 올바른 증거와 처리를 선택하는지 테스트할 것입니다.
나의 벤치마크
Kaggle에서 AI가 장부를 마감할 수 있는지 탐색하기.
공개 태스크에는 합성 입력, 고정 키, 채점 코드 및 모델 응답이 포함됩니다. 저는 kaggle-benchmarks SDK를 사용하여 이를 구축하고 Kaggle CLI를 통해 업로드했습니다.
제가 얻은 실질적인 교훈은 실제 출력을 증거와 대조하여 검증하는 것입니다. 다듬어진 설명, 0의 잔차(residual), 그리고 자신감 있는 답변 각각이 다른 실수를 숨길 수 있습니다.