文本分块的天花板来了~

学术   2024-11-05 11:55   湖北  

论文笔记分享,标题:Meta-Chunking: Learning Efficient Text Segmentation via Logical Perception,代码开源:https://github.com/IAAR-Shanghai/Meta-Chunking/tree/386dc29b9cfe87da691fd4b0bd4ba7c352f8e4ed

切块切的好,对下游任务是很有帮助的。这个工作主要就是介绍2个文本分块策略,部分细节还是有点意思的。

如果已经在用bert做分类或者相似度了,可以考虑用Qwen-1.5B了,性能和耗时综合最优,如下图:

常见用模型除了用bert之类的做分类或者相似度区分,也有用大模型来做的,如LumberChunker,主要是靠prompt来实现,他的prompt如下

下图对应的是这个工作中提到的第一种分块,称为Margin Sampling Chunking,大概思路是让LLM来做二分类,大模型输出是个词表的概率分布,这里他们做了一个对“是” 、 “否”的概率差,判断是否符合阈值。

下图为第二种分块,称为Perplexity Chunking,计算每个句子在上下文下的困惑度(如果困惑度高,说明模型对这段文本比较懵逼,所以不建议切分)。每次找到序列中困惑度最小的句子,并且如果这个句子前后2句都小于当前这个句子,那就可以切分了。算困惑度可以利用固定长度的kv-cache,来保证显存问题。

这些都可以后处理拼接,进行适量的拼接,让最终长度满足要求。

最终结果下来,Meta-Chunking能够有效提升RAG的单跳和多跳问答任务的性能。比如说,在2WikiMultihopQA数据集上,在时间消耗仅为相似性分块的45.8%的情况下,性能提升了1.32。


NLP前沿
一手ai news分享 \x26amp; 热点paper解读
 最新文章