Xberg v1 출시
Xberg v1 is out
핵심 요약
다양한 문서와 데이터를 처리하는 고성능 콘텐츠 인텔리전스 프레임워크 Xberg v1이 공개되었습니다.
- 고성능 엔진 — Rust 기반의 효율적인 PDF 및 이미지 처리와 다중 OCR 엔진을 지원함
- 레이아웃 인식 — ONNX 기반의 읽기 순서 재구성 및 구조적 데이터 추출 기능을 제공함
- 다양한 언어 지원 — Dart, Swift, Kotlin 등 15개 언어 바인딩과 WASM 기반 추론을 지원함
- 벤치마크 우위 — 네이티브 PDF 및 스캔 문서 처리에서 기존 도구 대비 높은 품질을 입증함
다들 안녕,
드디어 Xberg v1을 공개하게 돼서 기쁘다.
Xberg는 Kreuzberg의 후속 버전으로, 사실상 Kreuzberg v5라고 봐도 무방해. 이건 문서(현재 101개 포맷), 코드 및 데이터 포맷(현재 367개 타입), 오디오/비디오 전사, 그리고 URL(정적 콘텐츠 및 JS 렌더링 콘텐츠 모두) 등 엄청나게 다양한 입력을 처리하는 콘텐츠 인텔리전스 프레임워크야. 다운스트림 처리를 위해 콘텐츠를 추출하고 준비하는 역할을 하지.
이 엔진은 성능이 진짜 미쳤어(아래 PDF 벤치마크 참고). 특히 PDF랑 이미지 쪽은 네이티브 PDF를 아주 빠르고 정확하게 처리하고, 기존 파이썬 라이브러리(docling, PaddleOCR, RapidOCR 등)와 비교해도 성능이나 안정성 면에서 압살하는 OCR 엔진들을 여러 개 탑재했어.
Kreuzberg v4에서 Xberg v1으로 넘어오면서 바뀐 게 진짜 많은데, 자세한 내용은 전체 변경 로그를 확인해 봐. 주요 변경 사항은 다음과 같아:
- 기존 pdfium을 걷어내고 순수 Rust 기반의 PDF 백엔드(
pdf_oxide)를 적용함. - 레이아웃 인식 파이프라인: ONNX 레이아웃 감지(PP-DocLayoutV3 / RT-DETR)와 Docling 스타일의 선행 그래프 재정렬을 통해 읽기 순서를 복구함.
- 페이지별 스캔 감지 및 선택적 OCR, AcroForm/XFA 폼 필드 및 개요 기반 헤딩 지원.
- OCR 및 PDF 추출 전반에 걸친 최적화(메모리 관리, 풀링된 모델 세션, 스트리밍 변환).
- Tesseract와 함께 네이티브 PaddleOCR 백엔드(PP-OCRv6,
medium/small/tiny티어) 지원. - ONNX Runtime이나 네이티브 Tesseract 없이 돌아가는 순수 Rust Candle OCR/VLM 스택(TrOCR, GLM-OCR, GOT-OCR, DeepSeek-OCR, PaddleOCR-VL).
- ONNX-Runtime이 필요 없는 두 번째 추론 경로(tract) 추가로 브라우저(WASM) 및 모바일 추론 가능.
- Rust 네이티브 개체명 인식(GLiNER2) 지원, 서버 통신 없이 브라우저 WASM 모델을 포함한 모든 바인딩에서 확장 가능.
- 래스터화, 청킹, 인용, 캐싱, 그리고 설정 가능한 호출/병합/VLM-폴백 정책을 포함한 구조화된 LLM 추출(
extract_structured/split_and_extract). - Whisper ONNX 엔진을 통한 오디오 및 비디오 전사(
.mp3,.wav,.m4a,.mp4,.webm). - 검색 빌딩 블록: 희소 임베딩(SPLADE), ColBERT 레이트 인터랙션 검색, 밀집 임베딩과 함께 사용하는 크로스 인코더 리랭킹.
- 텍스트 인텔리전스: 가역적 마스킹, 요약, 번역, VLM 이미지 캡셔닝, QR 코드 감지, 문서 차이 비교, 페이지/청크 분류.
- URL 및 웹 수집: 사이트맵 탐색(
map_url) 및 배치 단위 다중 URL 크롤링. - 새로운 문서 포맷: WordPerfect(
.wpd/.wp/.wp5), HEIC/HEIF/AVIF, OpenDocument Presentation(.odp), Quarto / R Markdown, 설정 가능한 Jupyter 셀 렌더링.
