Chonkie 소개
Chonkie는 검색-증강 생성(RAG, Retrieval-Augmented Generation) 시스템을 위한 청킹 라이브러리로, 텍스트를 빠르고 효율적으로 분할하여 대규모 언어 모델(LLM, Large Language Model)이나 자연어 처리(NLP, Natural Language Processing) 작업에 최적화된 구조를 제공합니다.
사용하기 간편하고 빠르며, 가볍게 설계된 텍스트 분할(Chunking, 청킹) 라이브러리 Chonkie의 주요 특징은 다음과 같습니다:
- 다양한 청킹 기능 제공: 청킹 작업에 필요한 대부분의 기능을 지원합니다.
- 간편한 사용법: 설치 후 바로 사용할 수 있어 사용자에게 친숙합니다.
- 고속 처리: 청킹 속도가 매우 빨라 대규모 데이터 처리에 적합합니다.
- 광범위한 지원: GPT, TikToken 등 다양한 토크나이저(tokenizer)와 호환됩니다.
- 경량성: 불필요한 종속성이 없으며 라이브러리 자체가 매우 가볍습니다.
- 마스코트: 귀여운 피그미 하마 캐릭터를 마스코트로 사용해 친숙함을 더합니다.
이러한 특징들로 인해 Chonkie는 기능이 지나치게 많은 기존 라이브러리나 기능이 부족한 대안과 비교하여 적절한 균형을 제공합니다.
Chonkie 설치
Chonkie는 pip
패키지 관리자를 통해 간단하게 설치할 수 있으며, Token Chunker, Word Chunker, Sentence Chunker, Semantic Chunker 및 SDPM(Semantic Double-Pass Merge) Chunker와 같은 다양한 청커(chunker) 옵션을 선택할 수 있습니다. 최소한의 설치가 가능하며, 모든 청커를 설치하는 all
옵션도 있지만 추천하지 않습니다. 개별적인 청커 설치에 대한 자세한 내용은 GitHub의 공식 문서를 참고하세요:
pip install chonkie
지원하는 분할 방식
Chonkie는 다양한 청킹 방식들을 지원하여 사용자 요구에 맞는 텍스트 분할이 가능하게 합니다. 주요 청커는 다음과 같습니다:
- TokenChunker: 고정 크기의 토큰 단위로 텍스트를 분할합니다.
- WordChunker: 단어 단위로 텍스트를 분할하여 자연스러운 분할이 가능합니다.
- SentenceChunker: 문장 단위로 텍스트를 분할하여 문맥을 유지한 청킹이 가능합니다.
- SemanticChunker: 의미 유사성을 기반으로 청킹하여 문맥적 연결성을 확보합니다.
- SDPMChunker: Semantic Double-Pass Merge(SDPM) 방식을 통해 더 정밀한 의미 기반 청킹을 수행합니다.
자세한 사용법과 각 방식에 대한 설명은 GitHub의 Chonkie 공식 문서에서 확인할 수 있습니다.
성능 벤치마크
Chonkie는 가벼우면서도 빠른 성능을 제공합니다. 다른 청킹 라이브러리와 비교하여 설치 크기와 처리 속도에서 우수한 성능을 보여줍니다.
-
패키지 크기 기준 비교: 기본 설치 크기는 9.7MB로, 다른 청킹 라이브러리의 80~171MB와 비교하여 매우 가볍습니다.
- 기본 설치 및 Basic Chunking 기준
Library Size Chonk Factor Chonkie 9.7 MiB 1x (base CHONK) LangChain 80 MiB ~8.3x CHONKier LlamaIndex 171 MiB ~17.6x CHONKier - 의미적 분할(Semantic Feature) 사용 시
Library Size Chonk Factor Chonkie 585 MiB 1x (semantic CHONK) LangChain 625 MiB ~1.07x CHONKier LlamaIndex 678 MiB ~1.16x CHONKier -
속도:
- Token 청킹: 가장 느린 대안보다 33배 빠릅니다.
Library Time (ms) Speed Factor Chonkie 8.18** 1x (fastest CHONK) LangChain 8.68 1.06x slower LlamaIndex 272 33.25x slower - Sentence 청킹: 경쟁 라이브러리보다 약 2배 빠릅니다.
Library Time (ms) Speed Factor Chonkie 52.6 1x (solo CHONK) LlamaIndex 91.2 1.73x slower LangChain N/A Doesn't exist - Semantic 청킹: 최대 2.5배 빠른 성능을 자랑합니다.
Library Time Speed Factor Chonkie 482ms 1x (smart CHONK) LangChain 899ms 1.86x slower LlamaIndex 1.2s 2.49x slower
자세한 벤치마크 데이터는 GitHub 저장소의 벤치마크 페이지에서 확인할 수 있습니다.
라이선스
Chonkie는 MIT License로 공개 및 배포되고 있습니다.
Chonkie GitHub 저장소
이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다.
파이토치 한국 사용자 모임이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)
아래쪽에 좋아요를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~