跳转到内容
搜索文档

分块

最后更新 查看 MarkdownAgent 设置

分块(chunking)是将大型数据拆分为更小片段,再对其进行嵌入以便搜索的过程。AI Search 使用 递归分块,它会在自然边界(如段落或句子)处拆分内容,并在分块过大时进一步拆分。

什么是递归分块

递归分块通过以下方式尽量保持分块有意义:

  • 在自然边界处拆分: 例如先按段落,再按句子。
  • 检查大小: 如果分块过长(基于 token 数),会再次拆分为更小部分。

这样,分块便于嵌入与检索,而不会在句子中间切断语义。

分块控制

AI Search 提供两个参数来帮助你控制分块行为:

  • Chunk size:每个分块的 token 数。可选范围可能因模型而异。
  • Chunk overlap:相邻分块之间重叠 token 的百分比。
    • 最小值:0%
    • 最大值:30%

这些设置在索引步骤期间应用,发生在数据被嵌入并存储到搜索索引之前。

选择分块大小与重叠

分块既影响内容的检索方式,也影响传入生成模型的上下文量。可以试用此外部 分块可视化工具,帮助理解不同分块设置可能呈现的效果。

其他注意事项:

  • 索引大小: 更小的分块大小会产生更多分块与更多总向量。请参阅 AI Search 限制,确保配置保持在实例限制内。
  • 生成模型上下文窗口: 生成模型的上下文窗口有限,必须容纳所有检索到的分块(max_num_results × chunk size)、用户查询以及模型输出。请谨慎使用大分块或较高的 max_num_results 值,以避免上下文溢出。
  • 成本与性能: 更大的分块与更高的 max_num_results 设置会向模型传入更多 token,可能增加延迟与成本。你可以在 AI Gateway 中监控此用量。

这篇文档对您有帮助吗?