这道题问的不是你记住了多少分块参数,而是你能不能把语义完整性、检索精度和工程成本放进同一个验证流程。
我会先看文档结构和问题类型。API文档适合按函数、类或接口边界切,论文和报告优先保留标题与段落层级,对话则要避免把指代关系拆开。企业SOP往往要混合处理:先按章节和段落切,表格、代码块和清单再走各自的解析规则。这里没有一种粒度能通吃所有场景,所以我不会一上来就宣布某个token数最好。
接着我会准备几组候选方案。块较小时,局部事实可能更容易命中,但上下文也更容易断;块较大时,论证链更完整,向量却可能混入无关语义。重叠同样不是固定比例:我会比较零重叠、短窗口和较长窗口,用同一批真实问题回放,观察Recall@K、证据完整率、最终答案正确性、延迟与索引体积。只有答案跨边界的bad case明显改善,而且冗余成本可以接受,才保留重叠。
写入流程上,原始文档先清洗和结构化解析,提取标题、表格、代码块与页码;然后执行候选[[分块]]并生成来源、父级标题、原文位置和版本等元数据;再调用[[Embedding]]模型编码,批量写入[[向量数据库]]。batch size 需要根据文本长度、向量维度、显存、接口限流和失败重试能力压测,不能从别的项目抄一个数字。需要[[混合检索]]时,再同步维护倒排索引。
上线还要处理增量更新与一致性。文档更新后,要能定位受影响的chunk,写入新版本,再安全下线旧版本;否则新旧政策可能同时被召回。元数据里保留原文位置,是为了召回后去重、拼接相邻上下文、[[重排序]]和引用溯源。
最后我会用固定评测集记录每组方案的指标与bad case,再决定上线配置。如果没有做过这些实验,我会明确说这是候选设计和验证计划,不会把一个经验范围包装成自己的项目结果。