Rust로 구현되어 약 20배 빠른 청킹 라이브러리
요약
Rust로 구현된 'chunkr' 라이브러리가 기존 청킹(Chunking) 방식의 성능 한계를 극복하며 등장했습니다. 이 라이브러리는 Character, Recursive, Markdown header 등 다양한 고급 청킹 전략을 지원하고 네이티브 PDF 로더를 포함합니다. 테스트 결과, LangChain이나 LlamaIndex 대비 압도적인 처리 속도를 보여주었습니다.
핵심 포인트
- Rust 기반으로 구현되어 성능 최적화가 뛰어남.
- 다양한 청킹 전략(Recursive, Markdown 등)을 지원함.
- LangChain/LlamaIndex 대비 월등히 빠른 처리 속도를 입증함.
- 네이티브 PDF 로더를 포함하여 사용 편의성을 높임.
안녕하세요,
저는 전체적인 정확도를 해치지 않으면서 더 빠른 chunking library가 필요했습니다. 마땅한 옵션을 찾기 어려웠습니다. 그래서 https://github.com/d1pankarmedhi/chunkr 를 직접 만들었습니다.
이 라이브러리는 Character, Recursive, Markdown header, Late chunking, Hierarchical chunking 등 대부분의 청킹 전략을 가지고 있습니다. 또한 네이티브 PDF 로더와 다른 추가 파일 형식도 지원합니다.
일부 성능 지표 (MBA M4 16GB)를 공유합니다:
| 테스트 케이스 (매칭된 파라미터) | Chunkr | LangChain | LlamaIndex | Chonkie | semchunk | text-splitter |
|---|---|---|---|---|---|---|
| Recursive (1 MB, 1000/200) | 2,264 MB/s | 769 MB/s | 10 MB/s | 225 MB/s | 42 MB/s | 175 MB/s |
| Recursive (5 MB, 1000/200) | 2,039 MB/s | 696 MB/s | — | 201 MB/s | 40 MB/s | 46 MB/s |
| Fixed Char (1 MB, 1000/200) | 750 MB/s | 1.7 MB/s | — | 22 MB/s | — | — |
| Markdown (500 KB, 1000/150) | 819 MB/s | 67 MB/s | 19 MB/s | — | — | 40 MB/s |
| Python Code (200 KB, 1500/200) | 3,232 MB/s | 622 MB/s | — | — | — | 5.7 MB/s |
| Sentence (500 KB) | 622 MB/s | — | 10 MB/s | 20 MB/s | — | — |
| BPE Tokens (200 KB, cl100k_base, 512/50) | 38 MB/s | 43 MB/s | 2.0 MB/s | 151 MB/s | — | 7.2 MB/s |
| 100 docs x 50 KB (parallel batch) | 3,224 MB/s | 679 MB/s | — | 213 MB/s | — | — |
추출기 / 파이프라인 지연 시간 처리량 속도 향상 vs PyPDF |
| :--- | :---: | :---: |
| Chunkr PDFLoader (Full Text) | 747.9 ms | 2,762 pgs/s | 15.9x Faster |
| Chunkr PDFLoader (Page Documents) | 721.0 ms | 2,865 pgs/s | 16.5x Faster |
| PyMuPDF (fitz) | 2,616.8 ms | 789.5 pgs/s | 4.5x Faster |
| pypdf (pure Python) | 11,900.5 ms | 173.6 pgs/s | 1.0x (baseline) |
| Chunkr End-to-End (PDF + Recursive) | 798.1 ms | 2,589 pgs/s | 14.9x Faster |
| PyMuPDF + LangChain RecursiveTextSplitter | 2,659.3 ms | 776.9 pgs/s | 4.5x Faster |
| pypdf + LangChain RecursiveTextSplitter | 12,054.5 ms | 171.4 pgs/s | 1.0x (baseline) |
한번 사용해보시고 피드백을 공유해 주세요. 감사합니다!
submitted by /u/Ok_Cartographer5609
[link] [comments]
AI 자동 생성 콘텐츠
본 콘텐츠는 r/MachineLearning (hot)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기