Chonkie 实用的 RAG 分块库,轻量级、速度快,可随时对文本进行分块

bluesky20天前 ⋅ 344 阅读

Chonkie 是一个专注于文本分块(chunking)的库,旨在为检索增强型生成(RAG)模型提供轻量级、快速且易于使用的文本分块解决方案。以下是对Chonkie库的详细介绍:

特点

  1. 功能丰富(Feature-rich):提供多种文本分块(CHONK)方式。
  2. 易于使用(Easy to use):只需安装、导入、使用即可。
  3. 快速(Fast):以极快的速度进行文本分块。
  4. 广泛支持(Wide support):支持多种流行的分词器。
  5. 轻量级(Light-weight):没有冗余,专注于分块功能。
  6. 可爱的吉祥物(Cute CHONK mascot):一只侏儒河马。
  7. 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模型提供高效文本分块的库,以其轻量级、快速和易用性而受到开发者的欢迎。

https://github.com/chonkie-ai/chonkie

全部评论: 0

    相关推荐