복잡한 PDF를 Markdown으로 변환하는 것은 도전적일 수 있습니다. PDF에서 텍스트를 추출하기 위한 많은 오픈 소스 라이브러리가 있지만, 표와 차트와 같은 복잡한 요소를 포함하는 PDF의 경우 결과가 종종 부족합니다. GPT나 Claude와 같은 인기 있는 대형 언어 모델은 이러한 작업을 처리할 수 있지만, 속도가 느리고 때때로 부정확한 출력을 생성하는 경향이 있습니다. 전통적인 OCR 도구는 간단한 문서에는 효과적이지만, 원본 콘텐츠의 정확한 구조와 의미를 유지하는 데 어려움을 겪는 경우가 많습니다. 반면, 비전-언어 모델은 때때로 환각을 일으켜 잘못된 파싱 결과를 초래할 수 있습니다. 이 블로그에서는 파싱이 무엇을 의미하는지 설명하고 여러 모델의 비교 분석 결과를 다양한 지표를 사용하여 자세히 설명합니다.
파싱이란 무엇인가?
PDF 파싱의 맥락에서 "파싱"은 PDF 파일에서 특정 데이터를 추출하는 과정을 의미하며, 이를 위해 PDF 파서라는 전문 소프트웨어를 사용합니다. PDF 파서는 PDF 문서의 내용을 분석하고 텍스트, 이미지, 글꼴, 레이아웃 및 메타데이터와 같은 요소를 식별합니다. 추출된 데이터는 XML, JSON 또는 Excel/CSV와 같은 다양한 형식으로 정리되고 내보내질 수 있으며, 이는 데이터 분석, 기록 유지 또는 워크플로우 자동화와 같은 다양한 용도로 사용될 수 있습니다.
파싱이 무엇을 의미하는지 이해하는 것은 파싱 솔루션의 효과를 평가하는 데 필수적이며, 특히 PDF에서 Markdown으로 변환 도구를 비교할 때 중요합니다. PDF 파서는 단순한 텍스트 추출 이상의 작업을 포함하며, 문서의 의미 구조를 인식하고 유지하는 것이 필요합니다.
이러한 파싱 솔루션의 품질을 어떻게 측정할 수 있을까요?
우리는 다양한 모델의 성능을 평가하기 위해 일련의 단어 수준 지표를 정의하였으며, 주요 요소는 다음과 같습니다:
-
정확도, 재현율 및 F-측정: 파싱의 품질과 완전성을 평가합니다.
-
BLEU 점수 및 ANLS: 언어 및 레이아웃 구조를 평가하는 데 유용합니다.
-
편집 거리, Jensen-Shannon 발산 및 Jaccard 거리: OCR 도메인에 특화된 지표로, 콘텐츠 재현의 정확성을 이해하는 데 특히 유용합니다.
우리의 비전-언어 모델인 AnyParser는 속도와 정확성을 결합하여 특히 표와 의미 요소가 포함된 복잡한 레이아웃에서 뛰어난 성능을 보여줍니다. AnyParser는 다른 솔루션보다 우수하며, GPT/Claude와 같은 모델에 비해 20배의 속도 향상을 제공하면서 더 높은 정확도를 달성합니다.
주요 파싱 모델과의 광범위한 비교 결과
통계적 객체
AnyParser의 능력을 진정으로 보여주기 위해, 우리는 업계의 주요 파싱 모델 및 잘 알려진 대형 언어 모델(LLM)과의 광범위한 비교를 수행했습니다. 우리의 평가는 다음을 포함했습니다:
1. 대형 언어 모델
- AnyParser
- OpenAI의 GPT-4o
- Google의 Gemini 1.5 Pro
- Anthropic의 Claude 3.5 Sonnet
2. OCR 기반 서비스
- LlamaParse
- Amazon Textract
- Google Cloud Document AI
- Azure Document Intelligence
결과 발표 및 분석
실험 1
먼저, 우리는 BLEU, 정확도 및 재현율, F-측정 및 ANLS의 5가지 지표에 대한 다양한 문서 AI 모델의 성능을 엄격하게 비교하는 일련의 실험을 수행했습니다. 이러한 정의의 수학적 정의는 부록에서 확인할 수 있습니다.
비교된 모델은: AnyParser-base, AnyParser-pro, Textract, Llama-Parse, GPT4o, Gemini-1.5-pro, GCP-DocAI, Azure-DocAI입니다.
BLEU는 이중 언어 해석의 품질을 평가하는 데 사용되며, 모델이 발화를 처리하는 품질을 테스트합니다. 이러한 파싱 모델의 결과를 BLEU 평가 방법으로 비교한 결과, AnyParser-base와 AnyParser-pro의 점수가 다른 모델보다 상당히 높고, Amazon Textract는 가장 낮은 점수를 기록했으며, 다른 모델의 점수는 상대적으로 평균 수준에 머물렀습니다.
인식 정확도는 일반적으로 정확도와 재현율로 나타내며, 정확도는 모델이 올바르다고 판단한 결과 중 실제로 올바른 결과의 비율을 나타내고, 재현율은 모델이 실제로 올바른 결과 중에서 올바르게 판단한 결과의 비율을 나타냅니다. 이러한 파싱 모델의 정확도와 재현율을 비교한 결과, Llama-Parse, GPT4o 및 Gemini-1.5-pro를 제외한 모든 모델이 높은 수준에 있음을 알 수 있습니다. 그 중에서도 AnyParser와 Amazon Textract는 정확도에서 두드러지며, AnyParser-base와 AnyParser-pro는 재현율에서 두드러집니다. 모델의 정확도 점수가 높을수록 모델이 생성한 결과에서 더 많은 올바른 정보를 출력하며, 재현율 점수가 높을수록 모델이 샘플에서 올바른 정보를 얻는 능력이 더 뛰어남을 나타냅니다. 점수 결과는 AnyParser가 PDF에서 텍스트를 추출하는 데 있어 인식 정확도에서 명확한 이점을 가지고 있음을 보여줍니다.
F-측정은 이러한 두 지표에 대한 정확도와 재현율의 종합 평가 지표입니다. F-측정에서 이러한 파싱 모델의 점수를 비교함으로써, AnyParser-base, AnyParser-pro, Amazon Textract, GCP-DocAI 및 Azure-DocAI의 다섯 모델이 다른 모델에 비해 인식 정확도에서 더 나은 성능을 보임을 직관적으로 확인할 수 있습니다. F-측정에서 AnyParser가 가장 높은 점수를 기록하여 PDF에서 텍스트를 추출하는 데 있어 AnyParser의 명백한 이점을 더욱 강조합니다.
ANLS는 원본 텍스트와 대상 텍스트 간의 문자 수준에서의 정확성과 유사성을 측정할 때 일반적으로 사용되는 평가 지표로, 모델의 파싱 수준을 측정하는 데 매우 유용합니다. AnyParser-base, AnyParser-pro 및 Azure-DocAI의 높은 점수는 이러한 모델이 다른 모델에 비해 더 높은 파싱 수준을 반영합니다.
전반적으로 AnyParser-base와 AnyParser-pro는 다른 모델보다 우수한 성능을 보입니다.
실험 2
우리는 또한 편집 거리, Jensen-Shannon 발산 및 Jaccard 거리의 세 가지 지표에 대한 다양한 문서 AI 모델의 성능을 비교했습니다. 이 지표들은 모델의 출력과 참조 문서 간의 유사성을 측정하는 데 사용됩니다. 낮은 값일수록 더 나은 성능을 나타냅니다.
차트에서의 주요 관찰 결과는 다음과 같습니다:
-
편집 거리: AnyParser-base 및 AnyParser-pro 모델이 가장 낮은 편집 거리를 기록하여 참조 문서에 가장 근접한 출력을 제안합니다.
-
Jensen-Shannon 발산: AnyParser-base 및 AnyParser-pro 모델이 가장 낮은 발산을 기록하여 단어 분포 측면에서 참조 문서와 가장 유사한 출력을 나타냅니다.
-
Jaccard 거리: Llama-parse, GPT4O, Gemini-1.5를 제외한 모든 모델이 낮은 Jaccard 거리를 기록하여 사용된 단어 집합 측면에서 참조 문서와 가장 높은 중복성을 나타냅니다.
결론
전반적으로 우리의 엄격한 테스트 결과 AnyParser-base와 AnyParser-pro가 다양한 지표에서 잘 수행되며, 정확한 문서 처리를 위한 잠재력을 나타냅니다. 그래프에서 볼 수 있듯이, 유명한 Amazon Textract와 같은 전통적인 OCR 모델은 비전 언어 모델에 비해 훨씬 낮은 점수를 기록합니다. 그러나 다양한 모델의 성능은 사용된 지표에 따라 달라지므로, AI 모델을 비교할 때 여러 평가 기준을 고려하는 것이 중요합니다.
우리의 오픈 소스 평가 파이프라인 소개
평가를 간소화하기 위해, 우리는 파싱 모델을 비교하기 위한 업계 표준 방법을 제공하는 평가 파이프라인을 만들었습니다. 우리의 예제에서는 이력서 파싱이 일반적인 HR 분야에서의 사용을 보여줍니다. 우리는 이미지-Markdown 파일 쌍을 사용하여 생성된 128개의 이력서로 구성된 다양한 합성 데이터 세트를 구축했습니다. GPT-4를 사용하여 HTML 콘텐츠를 생성하고, 이를 이미지로 렌더링한 후, 추출된 텍스트를 비교를 위한 기준으로 사용했습니다.
그리고 가장 좋은 점은, 이 평가 프레임워크를 GitHub에서 오픈 소스로 공개했다는 것입니다! 개발자든 비즈니스 사용자든, 우리의 파이프라인을 통해 자신의 데이터 세트에서 다양한 모델의 파싱 품질을 평가하고 비교할 수 있습니다.
Github repo에서 빠른 시작 가이드를 찾아보시고, 서로 다른 파싱 모델이 어떻게 비교되는지 확인해 보세요. 우리는 우리의 모델의 강점을 공개함으로써 신뢰할 수 있고 빠르며 정확한 파싱 기능을 원하는 더 많은 사용자를 유치할 수 있다고 믿습니다.
부록 - 지표
1. 정확도
정확도는 파싱된 콘텐츠의 정확성을 측정하며, 검색된 요소 중 얼마나 많은 것이 올바른지를 보여줍니다. 파싱에서 이는 추출된 모든 단어 중 올바르게 추출된 단어의 비율입니다.
정확도 = 진짜 긍정 (TP) / (진짜 긍정 (TP) + 가짜 긍정 (FP))
- 진짜 긍정 (TP): 파서에 의해 올바르게 식별된 단어.
- 가짜 긍정 (FP): 파서에 의해 잘못 식별된 단어.
2. 재현율
재현율은 파싱의 완전성을 나타내며, 원본 문서에서 얼마나 많은 관련 단어가 검색되었는지를 보여줍니다.
재현율 = 진짜 긍정 (TP) / (진짜 긍정 (TP) + 가짜 부정 (FN))
- 가짜 부정 (FN): 파서에 의해 놓친 원본 문서의 단어.
3. F-측정 (F1 점수)
F1 점수는 정확도와 재현율의 조화 평균으로, 두 지표를 균형 있게 고려하여 파싱 품질의 전반적인 측정을 제공합니다.
F1 점수 = 2 × (정확도 × 재현율) / (정확도 + 재현율)
4. BLEU 점수 (이중 언어 평가 보조)
BLEU 점수는 파싱된 콘텐츠와 원본 텍스트 간의 유사성을 측정하며, 단어의 순서에 특별한 비중을 둡니다. 이는 파싱된 문서에서 언어 및 구조의 일관성을 평가하는 데 특히 유용하며, 원본과 순서가 다른 출력을 패널티합니다.
5. ANLS (평균 정규화 레벤슈타인 유사도)
ANLS는 파싱된 콘텐츠와 원본 간의 유사성을 정량화하며, 정규화된 편집 거리를 사용합니다. 이는 파싱된 텍스트와 참조 텍스트의 각 단어 쌍에 대해 정규화된 레벤슈타인 유사도(NLS)를 평균하여 계산됩니다. NLS는 다음과 같이 계산됩니다:
NLS = 1 - (레벤슈타인 거리 (LD)(파싱된 단어, 원본 단어)) / max(파싱된 단어 길이, 원본 단어 길이)
그런 다음, ANLS는 모든 단어 쌍에 대한 NLS의 평균입니다:
ANLS = (1/N) × Σ(NLS_i) for i=1 to N
6. 편집 거리
편집 거리는 파싱된 텍스트를 원본으로 변환하는 데 필요한 단어 수준의 작업(삽입, 삭제, 대체)의 수를 계산합니다.
7. Jensen-Shannon 발산
Jensen-Shannon 발산은 파싱된 단어 수와 원본 단어 수의 이산 확률 분포 간의 유사성을 측정하여 단어 빈도의 차이를 강조합니다.
JSD(P || Q) = (1/2) × KL(P || M) + (1/2) × KL(Q || M)
여기서 M = (1/2)(P + Q)이며, KL(P || Q)는 쿨백-라이블러 발산입니다.
8. Jaccard 거리
Jaccard 거리는 파싱된 콘텐츠와 원본 콘텐츠의 단어 집합 간의 비유사성을 측정하며, 단어 중복성을 평가하는 데 유용합니다.
Jaccard 거리 = 1 - |A ∩ B| / |A ∪ B|
여기서 |A ∩ B|는 A와 B 간의 공통 요소 수이며,
|A ∪ B|는 두 집합의 고유 요소 총 수입니다.