AI도구

AI에게 표를 주고 합계를 시킬 때 — 숫자가 조용히 틀리는 지점

부서별 건수, 평균 재원일수 같은 집계를 AI에 맡기는 일이 늘었습니다. 그런데 AI가 내놓는 숫자는 틀려도 매끄럽게 나옵니다. 실제 정확도를 측정한 연구와, 실무에서 숫자를 지키는 방법을 정리합니다.

병원 행정에는 매달 돌아오는 집계가 있습니다. 부서별 건수, 평균 재원일수, 월별 증감 같은 것들입니다. 원자료는 대개 엑셀 표 한 장으로 내려받고, 거기서 필요한 숫자를 뽑아 보고서에 옮깁니다.

이 표를 그대로 AI 대화창에 붙여 넣고 “부서별 합계를 내 줘”라고 시키는 일이 요즘 늘었습니다. 몇 초 만에 깔끔한 표가 돌아옵니다. 문제는 그 숫자가 틀렸을 때도 똑같이 깔끔하게 나온다는 점입니다. 문장은 어색하면 눈에 걸리지만, 숫자는 자릿수만 그럴듯하면 그냥 지나갑니다. 그리고 그 숫자는 보고서를 거쳐 회의 자료가 됩니다.

표를 읽고 계산하는 일, 실제 정확도는 어느 정도인가

AI가 표를 얼마나 제대로 다루는지 측정한 연구가 있습니다(ACL 2025 표 표현 학습 워크숍, Wolff·Hulsebos). 연구진은 표를 주고 질문에 답하게 하는 시험(TQA-Bench)을 다섯 개 모델에 돌렸습니다. 오픈소스 모델 네 개(Qwen2.5 7B, Llama3.1 8B, DeepSeek-R1 7B, Mistral 7B)와 상용 모델 하나(GPT-4o-mini)입니다.

표가 꽤 클 때(약 4,000토큰 분량, 토큰은 AI가 글을 잘라 세는 단위입니다) 결과는 이랬습니다. 표에서 특정 항목을 찾아오는 단순 조회는 2069%, 상위 항목 고르기는 1445%였습니다. 그런데 계산이 들어가면 뚝 떨어집니다. 합계는 836%, 평균은 733%, 뺄셈은 4~37%였습니다. 범위의 아래쪽이 오픈소스 모델, 위쪽이 GPT-4o-mini입니다.

비교적 작은 모델들과 소형 상용 모델을 대상으로 한 실험이므로, 최신 대형 모델의 성적이 이와 같다고 볼 수는 없습니다. 다만 찾아오기보다 계산하기에서 성적이 눈에 띄게 낮아지는 방향은 분명합니다. 연구진은 기존 평가 방식(객관식)이 실제보다 성적을 후하게 매겨 왔다는 점도 함께 지적했습니다.

표가 지저분할수록 더 틀립니다

같은 연구에서 표에 흔한 문제를 일부러 넣어 보았습니다. 빈칸(결측값)이 있을 때, 같은 항목이 중복으로 들어 있을 때, 열 순서가 뒤바뀌었을 때입니다.

빈칸이 섞이자 Llama3.1의 합계 정확도는 16%에서 8%로, 평균은 17%에서 11%로 떨어졌습니다. 중복 항목이 있을 때는 더 컸습니다. 같은 모델의 합계가 41%에서 20%로, 평균은 36%에서 17%로 반토막 났습니다. 반면 열 순서만 뒤섞은 경우에는 영향이 상대적으로 작았습니다.

병원에서 내려받는 원자료가 어떤 모습인지 떠올려 보면 이 대목이 남 일 같지 않습니다. 퇴원일이 비어 있는 행, 이름이 조금씩 다르게 적힌 같은 부서, 취소 건이 지워지지 않고 남아 있는 줄. AI가 가장 크게 흔들리는 조건이 바로 우리가 매달 손으로 정리하던 그 조건입니다.

계산은 ‘말’이 아니라 계산기에 시킵니다

왜 이런 일이 생길까요. 언어 모델은 숫자를 계산해서 내놓는 것이 아니라, 다음에 올 말을 이어 붙이는 방식으로 답을 만듭니다. 자릿수가 늘고 단계가 많아질수록 이 방식은 빠르게 무너집니다. 곱셈을 비롯한 여러 과제로 이를 분석한 연구는, 모델이 여러 단계의 추론을 통째로 풀어내는 대신 익숙한 조각을 맞추는 식으로 처리하며 과제가 복잡해질수록 성능이 급격히 떨어진다고 정리했습니다(Dziri 외, 2023).

해법은 이미 오래전에 나와 있습니다. 문제를 이해하는 일은 AI에 맡기되, 계산 자체는 코드로 넘겨 실행시키는 것입니다. 이 방식을 제안한 연구(PAL)는 AI가 문제를 읽고 파이썬 코드를 짜게 한 뒤 계산은 파이썬이 하도록 했고, 수학 문장제 시험(GSM8K)에서 당시 훨씬 큰 모델이 말로 풀어낸 성적보다 정확도를 15%포인트 높였습니다(Gao 외, 2022).

실무에서는 어렵게 생각할 것 없습니다. 요즘 챗봇형 도구에는 파일을 올리면 코드를 짜서 실제로 실행해 주는 기능이 들어 있습니다. 그 기능을 쓰느냐, 표만 붙여 넣고 눈대중으로 답을 받느냐의 차이입니다.

그래서 실무에서는

첫째, 집계는 코드로 시키고 코드를 함께 받습니다. “표를 읽고 계산해 줘” 대신 “합계를 구하는 코드를 짜서 실행하고, 쓴 코드도 같이 보여 줘”라고 요청합니다. 코드를 다 이해하지 못해도 어떤 열을 어떤 조건으로 더했는지는 확인할 수 있습니다.

둘째, 표를 먼저 정리한 뒤 넣습니다. 빈칸과 중복이 AI를 가장 크게 흔든다는 것이 위 연구의 결과입니다. 빈칸이 몇 개인지, 중복 행과 취소·오등록 건이 남아 있는지부터 확인하고 넘깁니다.

셋째, 두세 칸은 손으로 검산합니다. 총합 하나, 큰 부서 하나, 작은 부서 하나를 원본에서 직접 확인해 맞으면 나머지도 대체로 신뢰할 만합니다. 어긋나면 그 표는 통째로 다시 봅니다.

넷째, 원자료에 환자를 식별할 수 있는 항목이 남아 있는지 먼저 확인합니다. 집계용 표에는 등록번호나 이름이 그대로 남아 있는 경우가 많습니다. 외부 서비스에 올리기 전 부서 기준이 필요하다면 개인정보보호위원회가 2025년 8월 낸 생성형 인공지능(AI) 개발·활용을 위한 개인정보 처리 안내서와 사이트의 도입 체크리스트를 참고하시기 바랍니다.

용어가 낯설다면 AI 용어 사전을, 문서를 AI에 맡길 때 생기는 문제 전반은 이전 글 원내 지침을 AI에 물어볼 때를 함께 보시면 도움이 됩니다.

핵심 요약

  • 표를 주고 답하게 한 시험에서, 단순 조회는 2069%였지만 합계는 836%, 평균은 7~33%로 계산이 들어가면 성적이 크게 떨어졌습니다(작은 모델 네 개와 GPT-4o-mini 대상).
  • 빈칸이 있을 때 합계 정확도가 16%에서 8%로, 중복 항목이 있을 때는 41%에서 20%로 떨어진 사례가 보고됐습니다. 병원 원자료에 흔한 조건입니다.
  • 언어 모델은 계산기가 아니라 다음 말을 잇는 도구여서, 단계가 복잡해질수록 급격히 무너집니다. 계산을 코드로 넘겨 실행시키면 정확도가 올라간다는 것이 오래된 연구 결과입니다.
  • 실무에서는 집계 코드를 함께 받고, 표의 빈칸·중복을 먼저 정리하고, 두세 칸은 손으로 검산합니다. 원자료의 환자 식별 정보는 넣기 전에 확인합니다.