연구 파이프라인이 PDF 장벽에 부딪혔을 때 달라진 점 (프로덕션 사례 연구)

발행: (2026년 3월 7일 PM 08:48 GMT+9)
13 분 소요
원문: Dev.to

Source: Dev.to

위에 제공된 소스 링크 외에 번역할 텍스트를 알려주시면 한국어로 번역해 드리겠습니다.

2025년 3월 12일 – 사고 개요

PDF‑ingestion 파이프라인이 문서‑중심 제품에서 하드 리밋에 도달했습니다: 이전에 3시간 안에 완료되던 야간 배치가 업무 시간으로 넘어가면서 타임아웃, SLA 위반, 그리고 화난 지원 티켓이 발생했습니다.

  • 제품: 법무 팀이 계약서, 스캔된 전시물, 기술 매뉴얼 등을 검색하는 데 사용하는 실시간 프로덕션 기능.
  • 영향: 사용자 신뢰 상실 및 더 빠르고 안정적인 문서 이해에 의존하던 로드맵 차단.

Source:

발견

우리는 장애 원인을 두 개의 연관된 문제로 추적했습니다:

  1. 취약한 검색 레이어 – 복잡한 레이아웃을 가진 스캔 PDF에서 실패.
  2. 오케스트레이션 스킴 – 처리 중 모든 파일을 “동일 무게”로 취급.

기존 파이프라인은 일반 텍스트에 적합한 상용 OCR + 임베딩 흐름을 사용했지만, 표, 그림, 두 열 스캔과 같은 혼합 레이아웃 문서에서는 급격히 성능이 저하되었습니다. 그 결과는 다음과 같습니다:

  • 엔터티 추출에서 높은 false‑negative 비율.
  • 큐 백로그 발생.

우리가 필요했던 것

키워드 매칭을 넘어서는 시스템: 각 문서에 대해 반복 가능하고 증거 기반의 연구 경로를 제공하며, 다음을 결합한 솔루션

  • 레이아웃을 인식하는 파싱,
  • 인용 스타일 출처 표시,
  • 우선순위가 부여된 재처리.

이 때문에 우리는 장문 분석에 특화된 도구를 평가하게 되었고, 팀은 Deep Research Tool 를 도입해 소스 리스트를 수동으로 관리하지 않고도 규모에 맞춰 프로그램 방식의 문서‑우선 조사를 수행해야 한다는 결론에 도달했습니다.

실패 사례

구형 흐름을 통해 처리된 법률 브리프는 로그에 다음과 같은 오류 조각을 남겼습니다:

Error: embedding failure - token overflow at pipeline.step.embed(4500 tokens)
Context: OCR produced repeated headers and malformed table OCR output that corrupted the tokenizer.

이 구체적인 오류는 두 가지 결정을 이끌어냈:

  • 스마트 청크화를 통해 토큰 입력을 제한.
  • 여러 페이지에 걸친 정보를 종합하여 최종 추출을 생성할 수 있는 더 깊은 연구 레이어로 무거운 컨텍스트 추론을 이동.

Source:

구현

1단계 – 안정화 (1주차)

목표: 결정론적 청킹을 도입하고 파일 우선순위를 지정한다.

  • 페이지 수준 레이아웃 메타데이터를 추출하고 페이지를 텍스트‑우선, 표‑우선, 또는 이미지‑우선으로 분류하는 가벼운 전처리기를 삽입했다.
  • 문서를 서로 다른 마이크로‑파이프라인으로 라우팅했다.
# routify.py – 레이아웃에 따라 마이크로‑파이프라인 결정
def route_document(layout_stats):
    if layout_stats['table_density'] > 0.3:
        return 'table_pipeline'
    if layout_stats['image_coverage'] > 0.25:
        return 'image_pipeline'
    return 'text_pipeline'

# 오케스트레이션에서 사용
pipeline = route_document(extract_layout_stats(pdf_blob))

2단계 – 심층‑추론 오버레이 (2‑3주차)

  • 각 문서 배치에 대해 읽기 전략을 계획할 수 있는 연구형 어시스턴트를 프로토타입했다 (추출할 표 식별, 고품질 OCR이 필요한 페이지, 인용을 위해 우선순위가 높은 섹션 등).
  • AI Research Assistant 와 같은 서드파티 컴포넌트를 통합해 다단계 흐름을 조정했다: 읽기 → 계획 → 추출 → 검증.
  • 단순 LLM 호출이 아니라 계획을 실행하고, 의사결정을 로그에 남기며, 추출된 모든 사실에 출처를 첨부했다.

발견된 마찰: 어시스턴트가 문서 간에 인용을 혼동하는 경우가 있었으며, 특히 참고 문헌이 모호할 때 발생했다.

해결책:

  • 모든 내부 식별자에 문서 범위 접두사를 추가했다.
  • 엄격한 증거 임계값을 적용했다 (주장을 승격시키려면 페이지 수준 매치가 두 개 이상 독립적으로 필요).

3단계 – 확장성 및 복원력 (4‑6주차)

  • 동기식 단일 워커 모델을 비동기 워커 풀로 교체하여, 빠른 경로 휴리스틱이 실패할 때만 심층 패스를 스케줄링하도록 했다.
  • 워커 경쟁을 감소시키고, 최악의 경우 문서에만 무거운 추론 패스를 할당했다.
  • 엔지니어가 언제든지 추출 과정의 추론 단계를 재생할 수 있는 “deep audit” 엔드포인트를 공개했다 – 디버깅 시 핵심 기능.
# 문서 ID에 대한 deep‑research 재생 트리거
curl -X POST "https://internal.api/research/replay" \
  -H "Authorization: Bearer $TOKEN" \
  -d '{"document_id":"doc-20250312-47","mode":"full-audit"}'

품질‑게이트 구성

# gates.yml – 품질 게이트 예시
fields:
  - name: counterparty
    required: true
    min_confidence: 0.85
  - name: effective_date
    required: false
    min_confidence: 0.70

결정 포인트:

  • 옵션 A: 잡음이 많은 OCR을 처리하도록 저비용 임베딩 레이어를 확장한다.
  • 옵션 B: 전용 심층‑연구 오버레이를 채택하고 저비용 레이어는 제한된 상태로 유지한다.

우리는 옵션 B를 선택했다. 임베딩을 확장하면 전체 코퍼스에 걸쳐 처리 시간이 급증했기 때문이다. 문제 문서에만 복잡성을 격리함으로써 ROI가 더 높았다. 오버레이는 단계별 계획과 강력한 출처를 지원하는 특화된 Deep Research AI 모드를 활용했으며, 이는 재현 가능하고 감사 가능한 추출 요구에 부합했다.

결과

6주간 단계적 롤아웃 후:

지표
야간 배치 완료 시간> 3 h (many spilling into business day)≤ 3 h for 95 % of jobs
심층 연구 경로 사용량N/A5 % of jobs (problematic docs)
대기열 백로그Persistent, causing SLA missesEliminated
수동 재처리HighDropped dramatically
추출 신뢰성Fragile (frequent failures)Stable – verifiable extractions via multi‑pass workflow

주요 시사점:

  • 결정론적 청킹 + 레이아웃 인식 라우팅으로 토큰 오버플로 오류 대부분을 제거함.
  • 심층 연구 오버레이는 전체 처리량을 희생하지 않으면서 가장 어려운 문서에 대한 안전망을 제공함.
  • 프로비넌스가 풍부한 감사 로그는 사후 분석 시 엔지니어에게 신뢰를 주고 규정 준수 요구를 만족시킴.

TL;DR

  • 문제: PDF 파이프라인 과부하로 타임아웃 및 SLA 위반 발생.
  • 해결책: 레이아웃 인식 전처리, 스마트 라우팅, 그리고 프로비넌스가 포함된 심층 연구 오버레이.
  • 결과: 야간 배치의 95 %가 3시간 이내에 완료되고, 백로그가 해소되며, 추출 신뢰성이 취약에서 안정적으로 변함.

추론

팀은 레이아웃‑인식 라우팅과 딥 패스를 도입한 후 상당히 큰 폭으로 엔터티 추출에서의 false negative를 감소시켰습니다.

  • 운영 비용은 효율적으로 유지되었습니다: 무거운 패스는 목표를 정해 적용했기 때문에 문서당 평균 연산량이 크게 증가하지 않았으며 전체 처리량은 오히려 향상되었습니다.

트레이드‑오프는 명확했습니다. 딥‑리서치 오버레이는 소수 문서에 대해 지연 시간을 증가시켰고, 초기 롤아웃 단계에서는 더 많은 엔지니어링 감독이 필요했습니다. 또한 디버깅 워크플로우의 복잡성을 높였지만, 위에 보여준 재생 및 감사 엔드포인트를 추가함으로써 이를 완화했습니다.

Qualitative ROI Summary

아키텍처가 “best‑effort extraction”에서 “tiered confidence pipeline”으로 전환되어 재현 가능한 결과와 훨씬 명확한 디버깅 신호를 제공했습니다. 실제 핵심은 빠른 휴리스틱을 느리고 증거가 풍부한 추론과 분리하는 것이었습니다—이 패턴은 현대 문서‑AI 워크플로우의 핵심이며, 팀들이 모든 문서를 단일 모델에 통과시키기보다 연구‑스타일 오케스트레이션 레이어를 채택하는 이유입니다.

Practical takeaway

If your document pipeline fails at scale:

  1. Add layout‑aware routing.
  2. Isolate heavy reasoning into a targeted research pass.
  3. Require provenance for promoted facts.

These moves keep average costs low and results reliable.

Teams building similar features should evaluate solutions that offer:

  • Multi‑pass planning
  • Document‑scoped provenance
  • Configurable quality gates

Those capabilities often make the difference between brittle extraction and a system engineers can trust in production.

실용적인 요점

문서 파이프라인이 대규모에서 실패한다면:

  1. 레이아웃‑인식 라우팅을 추가하십시오.
  2. 무거운 추론을 목표 연구 단계로 분리하십시오.
  3. 승격된 사실에 대한 출처를 요구하십시오.

이러한 조치는 평균 비용을 낮게 유지하고 결과를 신뢰할 수 있게 합니다.

유사한 기능을 구축하는 팀은 다음을 제공하는 솔루션을 평가해야 합니다:

  • 다중‑패스 계획
  • 문서‑범위 출처
  • 구성 가능한 품질 게이트

이러한 기능은 취약한 추출과 생산 환경에서 엔지니어가 신뢰할 수 있는 시스템 사이의 차이를 만들곤 합니다.

0 조회
Back to Blog

관련 글

더 보기 »