最近在做公司内部知识库的RAG,用的pgvector+OpenAI embedding。我按网上教程试了128、256、512、1024几种chunk size,overlap也调过,但检索出来的片段总是差点意思——要么太碎上下文接不上,要么太大把不相关的内容也塞进去。还试过按段落切,但有些表格和代码块会断开。想问下大家生产环境里一般怎么确定chunk策略?是跟embedding模型的最大token数挂钩,还是先跑一遍评测集挑最优?另外有没有必要用langchain那种递归切分器?现在有点懵,感觉这块玄学成分很大……
楼主
6小时前
用向量数据库做RAG,chunk大小到底怎么定?试了好几种还是不准
请 登录 后发表回复
全部回复
共 1 条
2楼
2小时前
说实话我之前也踩过这个坑,后来发现chunk size真不是拍脑袋定的,得先看你文档的结构和embedding模型的实际表现。我目前是先用500左右的chunk配合50overlap跑一轮baseline,然后针对召回不准的query反推是粒度问题还是语义重叠问题,再针对性调。递归切分器确实有用,尤其对付表格和代码,但别迷信langchain默认参数,自己写个按标题层级优先、再按段落兜底的逻辑会更稳。另外强烈建议搞个20-30条query的小评测集,每次改完跑一遍看指标,比感觉靠谱多了。