영수증 정리, AI에게 맡기기 전에 정해야 할 한 가지
"AI가 영수증을 읽어 줍니다"는 이제 누구나 합니다. 정말 필요한 건 어느 칸을 다시 봐야 하는지 알려 주는 일이었습니다.
AI 판독을 그대로 믿지 않고, 두 번 읽혀서 서로 다른 칸만 사람이 확인하는 방식. 가짜 영수증 38장으로 직접 시험해 본 결과까지.
01. 무엇이 문제였나
한 달이면 영수증이 수십 장 쌓입니다. 정산하려면 날짜, 상호, 공급가, 부가세, 합계를 표에 옮겨야 합니다. 요즘은 사진만 찍으면 AI가 대신 읽어 줍니다. 여기까지는 누구나 할 수 있습니다.
막히는 건 그다음입니다. AI가 읽은 표를 그대로 정산에 써도 될까요? 대부분 잘 읽지만 가끔 틀립니다. 그리고 어디가 틀렸는지는 알려 주지 않습니다.
틀린 칸이 하나라도 섞여 있을 수 있으니, 결국 영수증과 표를 처음부터 끝까지 다시 대조하게 됩니다. 시간을 줄이려고 AI를 썼는데, 확인하는 시간은 그대로 남습니다.
AI가 얼마나 잘 읽느냐보다, 어느 칸을 다시 봐야 하는지 아는 게 더 중요했습니다.
02. 두 번 읽히기
방법은 단순합니다. 같은 영수증을 서로 다른 AI 두 개에게 따로 읽힙니다. 그리고 칸마다 두 결과를 비교합니다.
- 두 결과가 같은 칸은 그대로 표에 넣습니다.
- 두 결과가 다른 칸만 “확인 필요”로 표시합니다. 사람은 그 칸만 영수증과 대조하면 됩니다.
맨 위 영상의 영수증이 실제 예시입니다. 한 AI는 상호를 소담바구니로, 다른 AI는 쇼담바구니로 읽었습니다. 날짜와 금액은 둘 다 같았습니다. 그러면 사람은 영수증 전체가 아니라 상호 한 칸만 보면 됩니다. 실제로 틀린 곳도 그 칸이었습니다.
두 번째 판독기는 “다르지만 약하지 않게”
두 번째 AI를 아무거나 고르면 이 방식이 망가집니다. 망가지는 길은 두 가지입니다.
- 같은 회사 모델 두 개를 쓰면, 같은 곳에서 같이 틀리는 경우가 많습니다. 둘이 똑같이 틀린 값은 “일치”로 통과해 버립니다.
- 훨씬 약한 모델을 쓰면, 약한 쪽이 매번 틀려서 거의 모든 칸이 “확인 필요”로 뜹니다. 사람은 습관처럼 첫 번째 결과에 도장만 찍게 됩니다.
그래서 후보 7개를 같은 영수증으로 시험해서, 정확도는 비슷하면서 틀리는 방식이 다른 조합을 골랐습니다. 첫 번째 판독기는 칸 정확도 97.4%, 두 번째는 94.9%였고 회사도 다릅니다. 두 번째 판독기는 비용도 매우 낮아서, 영수증 40장을 두 번씩 읽는 데 약 1달러가 들었습니다.
“표시가 없다 = 맞다”는 아닙니다
꼭 짚고 넘어갈 점이 있습니다. 표시는 “두 판독이 서로 달랐다”는 뜻이지 “틀렸다”는 뜻이 아닙니다. 반대로 표시가 없다고 해서 반드시 맞는 것도 아닙니다. 둘이 똑같이 틀리면 표시 없이 지나갑니다. 이 방식이 실제로 얼마나 놓치는지는 직접 시험해 봐야 했습니다.
03. 직접 시험해 봤습니다
결과를 확인하려면 정답을 알아야 합니다. 실제 영수증에는 정답표가 없으니, 정답을 아는 가짜 영수증 40장을 만들었습니다. 깨끗한 것부터 구겨지고, 기울고, 흐린 것까지 네 단계로 상태를 섞었습니다. 판독이 끝난 38장, 칸 수로는 1,778칸을 정답과 하나씩 대조했습니다.
1,778칸 중
756칸 중 2칸 틀림
51칸 중 50칸
전체의 0.06%
가장 중요한 결과는 이것입니다. 틀린 칸 51개 중 50개에 “확인 필요”가 떴습니다. 사람이 볼 칸은 1,778칸에서 84칸으로 줄었고, 그 84칸 안에 틀린 칸이 거의 다 들어 있었습니다.
표시 없이 틀린 단 한 칸
조용히 틀린 칸은 딱 하나였습니다. 상품명 제주풍 무가당 감귤청을 두 AI가 모두 제주품으로 읽었습니다. 둘이 똑같이 틀렸으니 “일치”로 통과했습니다.
대신 “괜히 뜨는 표시”도 있습니다
표시가 뜬 84칸 중 실제로 틀린 건 50칸이었습니다. 나머지 34칸은 한쪽만 다르게 읽었을 뿐, 표에 들어간 값은 맞았습니다. 즉 표시 10개 중 4개는 확인해 보면 맞는 값입니다.
일부러 받아들인 비용입니다. 1,778칸을 전부 대조하는 대신 84칸만 보면 되고, 그 안에 틀린 칸이 거의 다 있습니다. 확인할 칸이 95% 넘게 줄어드는 대신, 그중 일부는 헛걸음입니다.
어디서 주로 갈렸나
| 칸 | 틀린 칸 | 표시된 칸 | 메모 |
|---|---|---|---|
| 날짜 · 시간 · 승인번호 | 0 | 0 | 모든 영수증에서 정확 |
| 공급가 · 부가세 · 합계 | 0 | 0 | 모든 영수증에서 정확 |
| 품목 단가 · 금액 | 2 | 2 | 틀린 칸은 전부 표시됨 |
| 상호 | 4 | 4 | 틀린 칸은 전부 표시됨 |
| 주소 | 18 | 22 | 가장 많이 갈린 칸 |
| 상품명 | 25 | 50 | 조용히 틀린 1칸이 여기 |
정산에 직접 쓰이는 날짜와 공급가·부가세·합계는 한 번도 틀리지 않았습니다. 품목별 단가와 금액에서 1칸씩 틀렸는데, 두 칸 모두 표시가 떴습니다. 나머지 틀린 칸은 주소와 상품명 같은 글자 칸에 몰렸습니다. 글자 칸은 비슷한 글자(풍/품, 소/쇼)가 많고, 영수증마다 형식이 제각각이라 그렇습니다.
04. 배운 것
1. “더 정확한 AI”보다 “어디를 볼지”
판독 정확도를 97%에서 98%로 올리는 건 어렵고 비쌉니다. 그런데 올려도 남은 2%가 어디인지 모르면, 사람은 여전히 전부 확인합니다. 틀릴 만한 곳을 알려 주는 것만으로 확인할 양이 스무 분의 일로 줄었습니다.
2. 정답을 아는 데이터로 먼저 시험하기
“잘 되는 것 같다”는 느낌으로는 판단할 수 없었습니다. 정답을 아는 가짜 영수증을 만들어 두니, 모델을 바꿀 때마다 같은 기준으로 다시 비교할 수 있었습니다. 실제 고객 자료를 쓰지 않아도 되는 것도 장점이었습니다.
3. 사람이 할 일을 남겨 두기
이 방식은 사람을 없애지 않습니다. 사람이 판단이 필요한 칸에만 시간을 쓰게 바꿉니다. 반복은 도구에게, 판단은 사람에게. 이 블로그에서 계속 다룰 이야기입니다.
시험은 직접 만든 가짜 영수증 40장(판독 완료 38장)으로 했습니다. 실제 영수증은 상태와 형식에 따라 결과가 달라질 수 있습니다.