先别急着换模型
检索效果差,很多时候问题不在向量模型,而在文档本身进了错误的形态:PDF 解析丢了表格、标题层级被压平、一段话被切成半句。
这些错误一旦进入索引,后面用什么模型都救不回来。先做下面五个检查点。
检查点一:解析是否忠实
- 表格是否还在(很多解析器把表格压成一行文本,行列关系全丢);
- 标题层级是否保留(用于后续按结构切分);
- 页码/页眉/页脚是否被误当正文(噪声会污染检索);
- 公式、代码块是否保留原始形态。
做法:抽 20 页人工比对解析结果与原文,统计"信息丢失/错位"的比例。这个数字比任何模型指标都先要过关。
检查点二:切分是否保住语义
- 不要按固定字数硬切;优先按标题、段落、列表切;
- 长段落再按句子切,并保留上下文重叠(一般 10%~20%);
- 表格与代码块尽量整块保留,不要横切;
- 每块带上"来源路径"(文档标题 → 章 → 节),便于引用与回溯。
检查点三:块的大小分布
统计每块的字数分布:如果出现大量 20 字以下的小块(碎片)或上万字的巨块,检索都会变差。
经验区间:200~800 字为主,碎片合并、巨块再切。
检查点四:元数据是否够用
检索常常需要先筛后搜:"只看 2024 年之后的、只看 A 产品的"。
块上要带可筛选字段(时间、来源、分类、版本),否则只能靠相似度硬碰。
检查点五:检索结果能不能被引用
- 命中块要能回到原文位置(章节锚点或页码);
- 块内不要有多余的解析残留(页眉重复、断行错乱);
- 引用时展示原文片段,而不是模型改写。
一个最小验收流程
- 抽 20 页比对解析忠实度;
- 抽查 30 个块的切分质量(是否半句、是否丢标题);
- 画块长度分布图;
- 用 20 个真实问题测召回,先看命中块对不对,再谈答案好不好;
- 记录每一次解析器/切分规则的变更与对应指标。