上下文工程正成为AI应用的核心新范式,Chroma创始人Jeff Huber深度剖析如何突破RAG的固有局限,实现更精准的上下文管理与调度。
先分享几个近期在播客中听到、值得反复琢磨的洞察。Chroma创始人Jeff Huber提出了一个关键命题:当大模型面对海量信息时,如何确保它真正关注到有价值的内容——这正是上下文工程所要解决的本质问题。
说起Chroma,从事AI应用开发尤其是RAG项目的朋友应该不陌生。这是一个开源向量检索数据库,提供从向量检索到关键词全文检索、正则匹配和元数据过滤的一体化方案,既可以本地嵌入式运行,也能连接托管云服务。由这样一位创始人来讲解上下文工程,其见解自然分量十足。
下面是他分享的几个核心洞察,整理出来供大家参考。
1.上下文工程:AI时代的核心技能
Jeff对上下文工程的定义非常清晰:在LLM生成的每一步,精确决定上下文窗口里该放入哪些信息。这里面包含两层循环——内循环决定当前这一步应该把哪些内容塞进上下文,外循环则随着对话轮次和时间的积累,让模型逐步筛选出最相关的信息。
有意思的是,他对"RAG"这个术语本身颇有微词。他认为"检索、增强、生成"三个词拼凑在一起过于生硬,而且大家经常误解,以为它只做单次向量检索。因此他自己从来不用这个词。事实上,做过RAG项目的都有体会:检索环节一旦出问题,后续所有步骤都白费——RAG的核心就在于"检索"这一环节。
Chroma的研究发现了一个普遍问题:上下文腐烂。当上下文的Token数量增多时,模型的注意力会下降,推理能力也会减弱。对于那些声称能完美利用百万级Token上下文窗口的前沿模型,Jeff的态度非常谨慎。他们的测试数据显示,很多模型在长上下文场景中表现并不理想。
针对这些问题,Jeff分享了一套实用的策略:
首先是两阶段检索范式。第一阶段用向量检索、全文检索或元数据检索,从海量候选数据中快速筛选出少量相关数据;然后把这些初步结果交给LLM作为重排序器,进行精细筛选。随着LLM变得更快且更便宜,Jeff认为之前常用的专用重排序模型会逐步被LLM替代。
其次是代码上下文的优化。代码是一种特殊上下文。Chroma原生支持正则表达式搜索,还引入了一个名为Forking的独特功能,可以在百毫秒内创建现有索引的副本,方便对不同git提交、分支或发布标签的代码库进行重索引和搜索。不过,千万别神化Embedding。实际项目中最优方案是一套组合拳:正则表达式能解决85%–90%的查询需求,Embedding通常带来额外5%–15%的提升。
然后是数据预处理和信号增强。Jeff特别强调,在数据处理时,要尽可能提取并注入结构化的信息和元数据。比如使用Chunk Rewriting技术,让LLM为代码生成自然语言描述,然后把这些描述和代码一起或分开进行Embedding。
最后是构建黄金数据集的重要性。很多团队有文档、有答案,偏偏缺少用户查询,这就无法量化评估检索效果。正确的做法是用LLM自动生成查询-文本块配对,获得一个小而精的评测集,用它来权衡召回率、精度、成本和可用性,然后稳步迭代。经验证明,几百条高质量的评估集就能带来巨大的回报。
2.未来检索系统的进化
Jeff对未来检索系统提出了两个进化方向:
一是持续检索。现在的系统都是检索完直接输出,但未来应该是"边检索边输出",根据需要随时去检索。
二是停留在潜空间。这可以理解为持续检索的前置步骤——做完Embedding后不回到自然语言,而是留在潜层空间,方便后续直接在这里继续检索。
3.关于AI记忆:本质是更好的上下文调度
Jeff对"记忆"这个概念很推崇,因为它足够拟人化,圈内人和圈外人一听就懂。AI记忆本质上就是上下文工程的体现,考虑的是如何把正确的信息放进上下文窗口。他不太赞同造新词,尤其是市面上层出不穷的记忆概念,大多数情况下它们本质相同。他更推崇数据库领域的离线处理、数据压缩和重索引这些概念,让AI系统通过持续的自我改进来实现记忆功能。
4.创业哲学与方法论
访谈最后,Jeff分享了他的创业理念。他的人生遵循一个简单的北极星原则:只做热爱的工作,只和喜欢的人共事,只服务认同的客户。创业不只是想把工作做好,更希望自己的工作被更多人看到。真正的影响力在于发明出伟大的东西,让尽可能多的人用上。
他还深入谈到了品牌和文化。他认为创始人必须是公司品味的策展人——创始人最在意的,往往就是公司能做到极致的地方。从办公室环境、网站设计、API体验到内部面试流程,每个环节都要呈现一致、高质量的品牌体验。这是他作为创始人的重要职责。
在团队建设上,Chroma坚持"慢招精选"。他们寻找真正热爱工作、对工艺和质量有极高标准、能独立执行、愿意与团队并肩作战的工程师和设计师。
特地去看了一下Chroma官网,确实很漂亮。
Jeff的分享确实值得反复回味,不仅是对当下技术的深度思考,还有他的创业经历和工作原则,对工作与生活都会有所启发。
