
-
两阶段检索范式:首先进行第一阶段检索(向量、全文、元数据检索),从海量候选数据中快速筛选出少量相关数据。随后将这些初步筛选结果交给 LLM 作为重排序器进行精细筛选。随着 LLM 变得更快,更便宜,Jeff 认为以往专用的重排序模型将逐渐被 LLM 替代。 -
代码上下文优化:代码是一种特殊的上下文。Chroma 原生支持 Regex (正则表达式搜索)并引入了独特的Forking 功能,用户可以再百毫秒内创建现有索引的副本,从而高效地对不同 git 提交、分支或发布标签的代码库进行重索引和搜索。当然,千万不要神化 embedding,regex 仍然解决 85%-90% 的查询,embedding 通常还能带来 5-15% 的额外增益,所以这套组合拳才是实际项目工程中的最优解。 「Claude Code 包括 Cline 这类代码 Agent其实专门说过一个点是,它们从来不对代码做 Embedding或索引,而是直接通过调用工具的方式来做代码搜索。推荐可以看下我写的这篇分享: Claude烧钱,Cline更烧钱,但聪明的开发者都在抢着用 | Cline 博客分享Jeff 其实是认为拿代码来做 Embedding 还非常的早期,可能现在的代码库我们使用 Regex 就能解决大部分的问题,但是Embedding 还能在这之上带来更好的效果。」 -
数据预处理与信号增强:Jeff 强调,在数据读取并处理的时候,要尽可能地提取并注入结构化信息和元数据。例如,通过 Chunk Rewriting 技术,让 LLM 为代码生成自然语言描述,然后将这些描述与代码本身一同embedding 或者单独做 embedding 处理。 -
构建黄金数据集的重要性:Jeff 指出,构建小型、高质量的数据集对于量化评估和持续改进系统非常重要。许多团队都是有文档、有答案、就是没有用户的查询,导致无法量化检索的优劣。正确的做法是:使用 LLM 为你的语料自动生成 query-chunk 对,得到小而精的评测集,用它来权衡召回,精度,成本,可用性再稳步迭代。实践证明:几百条高质量的评估集,能带来巨大的回报。
-
持续检索。现在的检索系统都是一次检索完了之后,就直接输出。Jeff 认为未来应该是边检索边输出,根据需要,随时可以去检索。 -
停留在潜空间。其实这个算是持续检索的前置吧,做完 Embedding 之后,不会回到自然语言,而是停留在潜层空间,这样一来,如果要接着检索的话,直接去潜空间里检索就行。

以上,


