切分为什么重要
向量检索比的是「语义相似」,但模型生成需要「完整上下文」。切得太碎,单个片段信息不完整;切得太粗,检索命中里混入大量无关内容。
切分的本质,是找到「既语义完整、又边界清晰」的信息单元。
三种常见策略
固定长度切分实现简单,但经常把一句话腰斩。按段落和标题切分更符合文档结构,适合问答类知识。结构化数据(表格、FAQ、字段说明)应该单独建模,而不是硬塞进文本块。
实践中通常混合使用:正文按语义块切,标题作为上下文附加到每个块。
- 固定长度:实现快,但语义断裂风险高
- 结构切分:按标题、段落、列表切,保留上下文
- 结构化存储:FAQ、表格、字段单独索引
给片段补上下文
每个片段可以附加文档标题、章节路径和元数据。检索时先按元数据过滤,再按语义排序,命中质量会明显提升。
例如「退货政策」下的每个片段都带上「退货政策」这个章节名,模型就更容易理解语境。
用真实问题验证切分
拿 50-100 个真实用户问题测试:每个问题的正确答案分布在哪个片段里?如果答案被切断,调整切分策略;如果检索不到,检查元数据和嵌入效果。
切分不是一次定稿,而是随知识类型持续调整的工程。
一份文档的切分示例
以退货政策为例:先按「适用条件、操作步骤、退款时效、特殊情况」切成四个语义块,每个块附带「退货政策」章节元数据;再把常见问法单独存成 FAQ 结构。
这样用户问「退款多久到账」时,系统能精准命中退款时效块,而不是拉回整篇政策。
多格式文档的处理
PDF、表格、PPT、视频字幕各有各的结构,直接全部转成纯文本会丢失关键信息。表格要保留行列关系,PPT 要按页保留标题层级,视频要按时间轴切分。
格式复杂时,先按来源类型建立不同的预处理管线,再统一进入向量库,而不是用一套通用流程硬切所有文件。
多格式处理的价值在于召回质量:格式保留得越好,模型越能理解上下文。
检索结果的质量排序
向量相似度不是唯一排序依据。可以叠加元数据权重:文档更新时间越新权重越高、权威来源权重高于转载、与用户权限匹配的结果优先。
排序策略要写清楚优先级,并用真实问题验证调整效果,而不是凭感觉加权重。
好的排序让正确答案稳定出现在前三,比追求单个指标更实际。