目录

RAG优化2 Chunk

  • 文本切块是数据向量化存入向量数据库等核心优化部分。切的块不能太长,太长的块损失的语义信息较多,导致召回准确率较低,过长的召回文本也将限制放入LLM输入的文本块数。文本切块也不能过短,过短容易丢失段落和文档层面的主题信息,以及跨段落的上下文信息。

优化Tips

  1. 切分策略需要考虑文本内容本身。比如,对于逻辑较为紧密的文本,切分时不宜划分过小;而对于规则条款,或产品说明书这类文本,可以按句子,因为句子之间的逻辑相对独立。
  2. 也需要考虑embedding模型的性能,一些embedding模型处理长文本模块会丢失很多信息。

固定大小文本切块

  • 实际使用时,最好有一部分文本是重叠的,来缓解上下文信息丢失的问题。同时,在保证上下文完整性的情况下,文本块的大小略微偏离预设大小也是可以接受的。

基于NLTK文本切块

  • 一个python库。基本思路是使用无监督的算法来缩写词,搭配词,和句子开头的词建立一个模型,然后使用该模型来找到句子边界。

特殊格式文本切块

  • 比如HTML,Markdown,Latex具有特殊内在结构的文本进行切块。在进行切块的时候,应该充分考虑其结构信息,以减少文本切块而导致的上下文信息损失。

基于深度学习模型的文本切块

  • 比如利用BERT模型,最小的切分单位位句子。利用BERT模型来学到两个句子之间的关系,如果两个句子之间的语义关系比较弱,可以作为一个切分点。