Chonkie 是一个专注于文本分块(chunking)的库,旨在为检索增强型生成(RAG)模型提供轻量级、快速且易于使用的文本分块解决方案。以下是对Chonkie库的详细介绍:
特点
- 功能丰富(Feature-rich):提供多种文本分块(CHONK)方式。
- 易于使用(Easy to use):只需安装、导入、使用即可。
- 快速(Fast):以极快的速度进行文本分块。
- 广泛支持(Wide support):支持多种流行的分词器。
- 轻量级(Light-weight):没有冗余,专注于分块功能。
- 可爱的吉祥物(Cute CHONK mascot):一只侏儒河马。
- Moto Moto最喜欢的Python库。
安装(Installation)
Chonkie遵循最小默认安装原则,你可以根据需要安装特定的分块器,或者简单地安装all
(如果你不想考虑太多,但不推荐这样做)。
安装命令如下:
pip install chonkie
使用方法(Usage)
以下是如何使用Chonkie的一个基本示例:
# 从Chonkie导入你想要的分块器
from chonkie import TokenChunker
# 导入你最喜欢的分词器库
# 也支持AutoTokenizers, TikToken和AutoTikTokenizer
from tokenizers import Tokenizer
tokenizer = Tokenizer.from_pretrained("gpt2")
# 初始化分块器
chunker = TokenChunker(tokenizer)
# 对文本进行分块
chunks = chunker("Woah! Chonkie, the chunking library is so cool! I love the tiny hippo hehe.")
# 访问分块结果
for chunk in chunks:
print(f"Chunk: {chunk.text}")
print(f"Tokens: {chunk.token_count}")
支持的方法(Supported Methods)
Chonkie提供了多种分块器,以帮助高效地为RAG应用分割文本:
- TokenChunker:将文本分割成固定大小的令牌块。
- WordChunker:基于单词对文本进行分块。
- SentenceChunker:基于句子对文本进行分块。
- SemanticChunker:基于语义相似性对文本进行分块。
- SDPMChunker:使用语义双重传递合并方法对文本进行分块。
性能基准(Benchmarks)
Chonkie在性能上表现出色:
- 大小(Size):
- 默认安装:9.7MB(相比之下,其他替代品为80-171MB)
- 包含语义分块:仍然比竞争对手轻量级
- 速度(Speed):
- 令牌分块:比最慢的替代品快33倍
- 句子分块:比竞争对手快近2倍
- 语义分块:比其他方法快达2.5倍
Chonkie是一个为RAG模型提供高效文本分块的库,以其轻量级、快速和易用性而受到开发者的欢迎。