목표
문서 자동 분석을 통한 수작업 업무 절감 및 데이터 정확도 향상
범위
180개 이상의 문서를 대상으로, 약 80개의 주요 엔티티를 자동 추출할 수 있는 AI 기반 문서 분석 아키텍처 설계 및 구현
핵심 가치
문서 검토 속도 개선 / 데이터 정확도 향상 / 반복 업무 자동화 기대 효과 검토 기간 수십 배 단축 / 엔티티 추출 정확도 90.92% 달성 / 전문가 리소스 재배치 가능
개요
A 건설사는 다양한 협력사와의 협업 과정에서 수많은 견적서, 발주서 등 복잡한 문서를 처리해야 했습니다. 문서마다 형식이 달라 기존 OCR이나 수작업 기반의 검토 방식으로는 일관된 품질 확보가 어려웠고, 일부 문서는 데이터 추출에만 1~2개월이 소요되기도 했습니다. 사람이 일일이 문서를 확인하는 과정에서 휴먼 에러가 반복적으로 발생했고, 업무 효율 저하와 데이터 신뢰도 문제도 뒤따랐습니다. 이에 A 건설사는 스켈터랩스와 함께 AI 기반의 자동 문서 분석 시스템 구축에 착수했습니다.
솔루션
A 건설사의 문서 검토 업무는 표와 이미지, 도형 등이 혼합된 다양한 양식의 문서들로 인해 기존 OCR 기술만으로는 분석이 매우 어려웠습니다. 이에 스켈터랩스는 문서의 구조적 복잡성과 형식 다양성을 해결하기 위해 LLM, OCR, 멀티모달 기술을 통합한 전용 문서 분석 파이프라인을 구축했습니다.
우선, 약 180여 개의 실제 문서를 분석 대상으로 삼고, 각 문서에서 평균 80여 개의 엔티티(entity)를 추출하는 것을 목표로 아키텍처를 설계했습니다. 가장 먼저 적용된 기술은 데이터 변환입니다. 기존에는 PDF 파서를 통해 텍스트를 추출했지만, 이번 프로젝트에서는 Python의 pdf2image
라이브러리를 활용해 PDF를 이미지로 변환한 뒤, 텍스트 기반 분석(PDF Parser)과 이미지 기반 분석(OCR)을 병행하는 이중 처리 방식을 도입했습니다. 이를 통해 기존 OCR만으로는 처리할 수 없던 복합 구조의 문서, 표, 도형 삽입 텍스트 등의 분석 정확도를 높였습니다.
다음으로는 프롬프트 엔지니어링 최적화가 핵심 과제로 진행되었습니다. 문서의 각 섹션별로 추출해야 할 엔티티 정보를 사전 정의하고, 문맥을 반영한 단계별 프롬프트를 설계하여 LLM이 보다 정확한 응답을 할 수 있도록 유도했습니다. 예를 들어, 데이터 타입과 형식에 따라 유사 엔티티를 구분할 수 있는 추출 지침을 제공하고, ‘클라이언트’와 ‘고객’처럼 의미는 같지만 표현이 다른 용어들을 동의어 및 유의어 태깅을 통해 동일하게 인식할 수 있도록 구성했습니다. 또한, ‘℃’나 ‘m²’처럼 수치형 단위도 함께 제공하여 모델이 수치와 단위를 연결지어 이해할 수 있도록 했습니다.
이러한 엔지니어링 작업은 단일 질문 응답 방식이 아닌 Multi-turn 대화 방식으로 구현되어, 한 번의 질문에 모든 엔티티를 추출하기보다는 여러 단계를 거쳐 모델이 점진적으로 정확도를 향상시킬 수 있게 했습니다. 이 과정은 프롬프트와 모델 출력을 반복적으로 테스트하고 개선하는 iteration 기반 방식으로 진행되었습니다.
문서 내 엔티티를 정확히 식별하고 정제하기 위해, 스켈터랩스는 LLM API를 두 단계로 나누어 운영했습니다. Step 1에서는 텍스트와 이미지 기반 데이터를 함께 분석하여 엔티티가 포함된 span 영역을 식별하고, Step 2에서는 이 영역을 분석해 최종적으로 엔티티를 정제 및 가공하는 과정을 수행했습니다. 이 다단계 구조 덕분에, 단순 키워드 추출이 아닌 실제 문맥 기반의 정보 추출이 가능해졌고, 실무에 활용 가능한 수준의 정확도를 확보할 수 있었습니다.
그 결과, 프로젝트 초기에는 기본 프롬프트를 적용한 상태에서 57.62%의 추출 정확도를 기록했지만, 데이터 정제와 구조 정리를 통해 84.83%로 성능이 향상되었고, 이후 프롬프트 최적화와 LLM API 구조 개선을 통해 최종적으로 90.92%의 정확도를 달성했습니다.