## 核心内容总结 本访谈深入探讨了AI应用开发中的关键概念:**Context Engineering(上下文工程)**。Chroma创始人Jeff Huber分享了以下核心观点: **主要观点:** - **Context Engineering的定义**:决定在每个LLM生成步骤中应该将什么信息放入上下文窗口的工作,这是AI工程的一个重要子集 - **Context Rot(上下文衰减)**:随着token数量增加,模型的注意力和推理能力会下降,这是当前模型的普遍问题 - **RAG的问题**:传统RAG概念过于模糊,需要更精确的术语来描述检索和生成过程 - **Memory = Context Engineering**:AI记忆本质上就是上下文工程,关键在于如何将正确信息放入上下文窗口 **技术洞察:** - 使用LLM作为重排序器(reranker)的兴起 - 代码索引和检索的独特挑战 - 分阶段检索:从大量候选文档到精选文档的优化过程 - 离线处理和数据压缩的重要性 **商业思考:** - Chroma从demo到生产级系统的挑战 - 专注开发者体验而非盲目扩张 - 现代分布式系统架构的重要性 --- ## 介绍 大家好,欢迎来到全新演播室的Len Space播客。我是Decible的合伙人兼CTO Allesio,今天和Small AI的创始人Swixs一起。嘿,嘿,嘿。说欢迎有点奇怪,因为显然今天的嘉宾Jeff已经在Chroma欢迎我们好几个月了。欢迎你。 谢谢邀请我。很高兴来这里。Jeff,你是Chroma的创始人兼CEO。我观察Chroma已经很长时间了,尤其是在旧办公室的时候,你最初是从开源向量数据库起步的对吧,你们成为了很多不同项目的首选开源向量数据库,特别是在像Voyager论文这样的项目中你们都被使用,我甚至不知道完整的名单,但今天你会如何介绍Chroma?这是个好问题。 ## 为什么要构建Chroma 当然,你总是想要调整你的信息来适应你的受众。但我认为Chroma开始的原因是因为我们在应用机器学习领域工作了很多年,我们看到演示很容易构建,但构建一个生产可靠的系统是极其具有挑战性的,从演示到生产的差距并不真正像工程,它感觉更像是炼金术。 有一些很好的XKCD漫画关于这个,一个家伙站在一堆巨大的冒烟垃圾堆上,另一个角色问"这是你的数据系统",他说"是的"。他说"你怎么知道它是好的,或者你怎么让它变得更好?""哦,你只是像搅动锅子,然后看看它是否变得更好。"这看起来本质上是错误的。 这是回到2021年2022年,我们进行这些对话,再加上一个论点,潜在空间是一个非常重要的工具。这是一个插件。是的,我们同意。这是一个插件。我们需要敲钟。是的,完全正确。敲响潜在空间的钟,既指播客也指技术,是一个非常被低估的工具,也是可解释性的一个非常重要的工具。从根本上说,这是模型看待自己数据的方式。我们人类可以有那种共享空间来理解正在发生什么。这就是我们开始的地方。 所以我认为这也是我们想要继续前进的方向,我们想要做什么?我们想要帮助开发者构建AI的生产应用,并希望让从演示到生产的过程感觉更像工程而不是炼金术。做数据库不是支线任务,它是主要任务的一部分。我们意识到搜索实际上是AI应用程序构建方式的关键工作负载。它不是唯一的工作负载,但绝对是一个非常重要的工作负载,你不会获得做更多事情的权利,除非你已经在世界级水平上做好了一件事。这需要疯狂的专注。 所以这真的是我们过去几年一直在做的事情。这是一个很长的漫无边际的介绍,但也许可以说,你知道如果你问人们Chroma今天做什么?我们为AI应用构建检索引擎。我们正在为AI构建现代搜索基础设施。 ## 信息检索与搜索 我要深入探讨一下。信息检索和搜索是同一件事还是在你心中略有不同?我只是想澄清我们的术语。 是的,我认为现代AI搜索基础设施。是的,我们可以也许花几秒钟解释一下。所以现代与传统相对,主要意思是现代分布式系统。所以在构建伟大的分布式系统中有一些原语,在过去5到10年中出现,显然不在比定义更老的技术中。 读写分离,存储和计算的分离。Chroma是用Rust编写的。它完全是多租户的。我们使用对象存储作为关键持久化层和Chroma云的数据层以及分布式。所以这是现代部分。 然后AI部分实际上我认为在四种不同的方面很重要,像AI意味着四件不同的事情:第一个你用于搜索的工具和技术与经典搜索系统不同。第二个工作负载与经典搜索系统不同。第三,开发者与经典搜索系统不同。第四,消费这些搜索结果的人也与经典搜索系统不同。 想想经典搜索系统,你作为人类在做搜索的最后一英里。你知道,你在选择。完全正确。你就像,嗯,这些哪些是相关的?打开新标签,总结,等等等等。你人类在做这些,现在是语言模型。人类只能消化10个蓝色链接。语言模型可以消化数量级更多的内容。所有这些事情都很重要,我认为影响像系统的设计和它的目的。 ## 在竞争激烈的AI市场中保持专注 回到2023年,我认为向量数据库类别是最热门的之一,你有Pine Con筹集了1亿美元,你有所有这些不同的WVA,你有所有这些公司。你是如何专注于对你重要的事情,而不是试图筹集大量资金,制造大动静,你花了一段时间才发布Chroma Cloud 2,而不是只是推出一个可能在生产中出问题的东西,你花了时间。是的。你能否给AI领域的人一些建议,如何作为创始人保持耐心,如何有自己的愿景,而不是跟随周围的噪音? 有不同的方式来建立创业公司,所以你知道这里有不同的思想流派。所以一种思想流派当然是找到信号并跟随人们想要的梯度下降,精益创业风格。我对此的批评是,如果你遵循那种方法,你可能最终会为中学生构建一个约会应用,因为这似乎在某种程度上是人类想要的最低基本需求。老虎机将是AI的等价物。 而另一种建立创业公司的方式是有一个非常强烈的观点,可能是逆向观点,或至少是一个看起来像秘密的观点,然后疯狂专注于那件事。你知道,它们是不同的结构。 好吧,Chroma的单节点做得非常好,获得了很多流量。显然,拥有托管服务是人们想要的。我们可以很快将产品推向市场。但我们觉得,不,我们真的希望Chroma以我们的开发者体验而闻名。就像我们希望我们的品牌,我们希望Chroma的品牌和我们品牌中表达的工艺变得非常知名,我们觉得通过将单节点产品作为服务提供,它不会达到我们对伟大开发者体验可以和应该是什么样子的标准。 是的。我们做了一个决定,不,我们要建立我们认为正确的东西,这非常具有挑战性。它花了很长时间,显然我非常自豪它今天存在,它像服务成千上万的开发者,他们喜欢它,但到达那里很困难。 当你建立团队时,你如何传达这一点?如果我回到也许一年半前,你知道,我可以加入Chroma,我可以加入所有这些不同的公司。当外面有,哦,我就用PG Vector或者你知道,今天的任何东西时,你如何保持愿景对人们清晰。你觉得这有助于你带来更多与愿景一致的人,而不是更多的传教士类型,只是在公司热门之前加入,也许任何学习你在早期招聘方面有什么? 康威定律的上游版本是你运送你的组织结构图是你运送你的文化,因为我认为你的组织结构图是你公司文化的下游。我们一直对团队中实际拥有的人给予极高的重视。我认为我们未来增长的斜率完全取决于在这个办公室里的人。你知道,这可能意味着回到零。这可能意味着线性增长,这可能意味着各种版本的超线性增长,指数增长,曲棍球棒式增长。 所以,是的,我们真的决定招聘非常缓慢,非常挑剔。我不知道,我的意思是,你知道,未来将决定这是否是正确的决定。但我认为在之前的几个创业公司工作过,那是我真正关心的事情,我只想和我喜欢一起工作的人工作,希望在战壕中肩并肩,我认为可以独立执行我们欠开发者的工艺和质量水平。所以这就是我们选择做的方式。 ## 构建Chroma Cloud 我们稍后会谈到标准认知和所有其他有趣的东西,但我们会专注于Chroma。我总是想把一些标题数字放在前面。所以,我只是想在给人们关于他们应该了解Chroma什么的思维转储方面做得更好。我有的是每月500万次下载和21,000个GitHub星标。还有什么人们应该知道的吗?就像典型的销售电话头条之类的,你知道? 是的。嗯是的,21,000个GitHub星标,每月50亿次以上的下载。我最近看了这个数字。我想现在总共超过6000万或7000万次下载了。多年来,Chrome一直是使用最多的项目,不仅总体上如此,在Lang Chain、Llama Index等社区中也是如此。 好的,很酷。足够公平。是的,我认为当你说单节点Chroma时,我认为你描述了核心Chroma云的区别,我想我们正在发布这个与你的GA和Chroma云一致。是的。所以人们应该了解Chroma云什么,以及你如何从一开始就开发这种体验,你提到了存储和计算的分离,那是什么? 100%。Chroma以其开发者体验而闻名。我不知道我们是否是第一个这样做的。我想我们是,使用Chroma你只需pip install chroma然后你就可以使用它。它只是像内存中的,我想第一个你可以持久化。它可能是第一个可以pip安装的数据库。任何SQLite包装器技术上都是pip可安装的,你知道。不,SQLite甚至到今天都不是pip可安装的。我不认为你可能对此有更深入的了解。我只是推测我自己。 是的。所以这导致了对新用户非常无缝的入门体验,因为你可以只运行一个命令然后你就可以使用它。我们做了所有工作来确保无论你运行它的部署目标或架构如何,它都能正常工作。在早期,我们有人做了非常好的事情,比如在Arduino和Power PC架构上运行它,还有像非常深奥的东西,但我们会走额外的一英里来确保它在任何地方都能工作,它总是有效。所以那是Chroma单节点。 所以回到我们想要在云产品中拥有的开发者体验,我们认为就像你可以运行pivot而不必考虑它一样,你不必学习一堆抽象,你不必花一堆时间学习这些非常复杂的API。同样的故事必须对云是真实的。 所以这意味着拥有一个产品版本,你必须被迫考虑你想要多少个节点或如何调整这些节点的大小,或者你的分片策略应该是什么,或者你的备份策略或数据策略,我可以继续说下去,这还不够好。它需要像零配置,零旋钮调整。它应该总是快速,总是非常具有成本效益,并且总是新鲜,而无需您做任何事情或考虑无论您的流量如何上下波动以及您的数据规模如何上下波动。那是激励标准。 它也像基于使用量的计费。这非常重要,因为这就是如此公平。我们只向你收取你使用的最小计算片的费用,仅此而已,不是所有无服务器数据库都能声称这一点,但在Chroma内部确实如此,我们真正只向你收取你使用的狭窄部分的费用。 所以这是我们进入设计标准流程的标准,你知道事实上你也在构建一个无服务器计算平台。是的,你必须,不,确切地说,这推动了chroma分布式的设计。Chroma分布式也是同一个monorepo的一部分,开源Apache 2,然后控制和数据平面都是完全开源的Apache 2,然后Chroma云使用Chroma分布式来运行服务,你可以注册那个服务,创建数据库并在30秒内加载数据,这是拍摄时人们获得5美元的免费信用,这实际上足以加载大约100,000个文档并查询它100,000次,这显然对很多用例来说实际上可能意味着他们免费使用多年,这很好。 要达到这一点,我们必须做所有的艰苦工作。是的。我认为每个博客基本上都应该有语义索引。所以你知道,在Chroma上托管你的个人博客,你知道,我们不是,是的。我的意思是,你知道,组织世界信息的使命仍然没有解决。是的。是的。 ## 上下文工程和RAG的问题 你有一个常见的神秘推文,你发推说上下文工程几个月前。那是什么?四月。我认为现在每个人都在谈论上下文工程。你能给出你的规范定义,然后Chroma如何融入其中,然后我们会谈论它的所有不同部分。 我认为当一个新市场出现时,抽象和你用来推理那件事的原语是非常重要的。AI,我认为部分由于其炒作,也有很多原语和抽象被抛来抛去,导致许多开发者实际上无法批判性地思考这是什么,我如何把它放在一起,什么问题我可以解决,什么重要,我应该把时间花在哪里。 例如,术语rag。我们从不使用术语rag。就像我讨厌术语rack。是的,我部分因为你的影响杀死了rag轨道。谢谢你。谢谢你。首先,它只是检索,首先检索增强生成是三个概念放在一个东西里,这只是真的很令人困惑,当然rag现在被称为品牌,就像你知道,哦,你只是使用单一密集向量搜索,这就是rag,这也是愚蠢的。 我认为我对这个术语如此兴奋的原因之一,我的意思是显然AI工程,你做了很多工作,上下文工程在某种意义上是AI工程的一个子集,它是什么,它是一个高地位的工作。上下文工程是弄清楚在任何给定LM生成步骤中应该在上下文窗口中放什么的工作,有一个内循环,即设置你知道这次上下文窗口中应该有什么,有一个外循环,即随着时间的推移,你如何变得更好用相关信息填充上下文窗口。 我们最近发布了一份关于上下文衰减的技术报告,详细介绍了LLM的性能不是你使用的token数量的不变量,当你使用越来越多的token时,模型可以关注的越来越少,然后也能推理得不那么有效。我认为这真的激发了这个问题。你知道,上下文衰减意味着需要上下文工程。 我想我对这个模因真正兴奋的原因,你知道,我在四月份可能有点幸运地呼吁了这一点。这将是一个大模因是它提升了工作到它。它清楚地描述了工作,它提升了工作的地位。这是坦率地说大多数AI创业公司,你今天知道的任何AI创业公司,你认为做得很好的,他们根本上擅长什么?他们擅长的一件事是什么?这是上下文工程。 特别是,我觉得我读过的很多文章,很多都专注于代理与非代理的东西。像上下文工程对代理更相关。你完全区分,还是你只是一般地看待上下文工程? 不,我的意思是有有趣的代理含义,你知道代理学习,代理可以从他们的交互中学习,这可能不太相关,像静态知识库,聊天你的文档显然,然后再次像你知道我想你可以论证即使聊天你的文档用例应该随着更多互动而变得更好。我不区分代理和非代理,我实际上仍然知道代理意味着什么,但再次原语抽象词很重要,我不知道代理意味着什么。 我不知道。嗯,有很多定义。我试过。大多数可以意味着任何东西的术语只是人们希望和恐惧的载体。是的。我认为你知道代理是同样的事情当然。 好吧,也许我们会尝试对上下文工程更加简洁或精确,这样它就不会,实际上意味着一些东西,你知道人们实际上可以用它来做事情。 我绝对要为上下文工程或一般上下文衰减指出的一件事是我认为围绕大海捞针有很多营销,现在每个前沿模型都有完全绿色的完美图表,像在100万个token上完全利用。我想知道你们对那种营销的看法是什么,是的。是的。 ## 上下文衰减 所以也许回退一点。我们开始研究这个研究的方式是我们实际上在看代理学习。所以我们非常好奇,你能否给代理访问之前的成功或之前的失败,如果你这样做了,那会有助于提升代理性能吗?所以我们特别看了几个不同的数据集,sweep bench inclusive,你我们开始看到有趣的模式,在多轮代理交互中,你给它整个对话窗口,token数量极快地爆炸,明显在那里的指令像被忽略了没有被执行,我们想哦,那显然是个问题。我们现在感受到了痛苦。 有点在知情人中的模因,这是真的,我想也你知道一些研究社区对上下文技术报告的反应是,是的,我们知道,你知道这很好,但没有人知道,很高兴如果你能实际教构建者今天什么是可能的与今天什么是不可能的。 我不责怪实验室,我的意思是构建模型是如此疯狂的竞争,每个人不可避免地像挑选他们想要做得最好的基准,他们围绕那些进行训练,也是你知道找到进入他们营销的方式,你知道,大多数人没有动机出来说,"这是我们的东西很棒的所有方式,这是我们的东西不太好的方式。"你知道,我不知道。我对你知道为什么这没有被报告有一些同情。 但是,是的,我的意思是,有这样的含义,哦,看,我们的模型在这个任务上完美,大海捞针。因此,上下文窗口你可以用于任何你想要的。有一个含义在那里。我希望有一天这是真的。今天情况并非如此。是的。是的。 我们会发送人们至少在YouTube视频上,我们会放这个图表,这是你的上下文衰减报告的图1。似乎Sonnet 4在曲线下面积方面是最好的,这是我思考它的方式。然后Quinn wow,然后GPC 41和Gemini Flash在上下文长度方面降级得快得多。是的。我没有太多评论。那是我们为这个特定任务发现的。 再次,这如何转化为人们的实际体验和现实世界,你知道任务完全不同。我的意思是开发者对Claude有一定的爱,也许这两件事是相关的。是的,我认为这里显示,如果这是真的,这是为什么你遵循我的指令,你知道,像是一个明确的基线,你知道人们想要的东西。 我认为这里没有超级回答,但我也有一个理论,推理模型在上下文利用方面更好,因为它们可以循环回来。正常自回归模型,它们只是从左到右,但推理模型理论上,它们可以循环回来寻找它们可能在初始过程中没有注意到的需要连接的东西。 今天有一篇论文显示我认为可能相反。但真的,我稍后会发给你。是的,弄清楚会很有趣出来。每天都有论文。我认为最好的是你没有试图销售什么。你只是说,"嘿,这东西坏了。有点糟糕。" 你如何思考你想解决的问题与你做的研究来突出一些问题,然后希望其他人会参与?你谈论的一切基本上都在Chroma路线图上,还是你只是建议人们,嘿,这很糟糕,绕过它,但不要要求我们修复它。 回到我刚才说的,Chroma的广泛使命是让构建应用程序的过程更像工程,不像炼金术,所以你知道这是一个相当广泛的范围,但我们是一个小团队,我们只能专注于这么多事情,我们选择现在非常专注于一件事,所以我不认为我没有狂妄自大认为我们可以自己解决这些东西为一个非常动态和庞大的新兴行业最终确定。我认为它确实需要一个社区。它确实需要所有人一起工作的上升潮流。 我们有意想要非常清楚,我们在这项研究中没有任何商业动机。你知道,我们不假设任何解决方案。我们不告诉人们使用Chroma。这只是这里是问题。这是暗示的。听着,我们并不悲伤,也许这可能是一个积极的迹象,你知道,但像仍然有速度和成本的原因,不管怎样,我想。但还有很多工作要做。 我认为实验室真的不在乎,他们没有动机关心这很有趣。越来越多作为成为一个好LM提供商的市场,主要市场似乎是消费者。你只是没有那么有动力帮助开发者作为次要关注。作为次要关注。你只是没有那么有动力真正做腿部工作来帮助开发者学习如何构建东西。 然后如果你是SaaS公司或你是使用AI构建的消费者公司,你知道AI原生公司,这是你的秘密酱汁。你不会营销如何做东西。所以我认为只是有一个自然的空白空间,即实际有动机的人来帮助展示开发者如何使用AI构建的方式。就像他们只是没有很多显而易见的人明显投资他们的时间和精力在那上面。但我认为那显然对我们来说是一件好事。所以这就是我对此的想法。 只是对消费者事物的一点反击,你说实验室,你不认为像开放我在chatbt中构建记忆并向几乎每个人提供,在你面前可能太多,我会争论,但他们真的会关心让记忆利用变得好。我认为上下文利用上下文工程对他们也很重要,即使他们只是为消费者构建,不关心开发者。 是的。今天有多好显然是一个重要问题。但我们会跳过那个。就算是这样情况,他们真的会发布这些发现吗?不。从不。确切地。这是阿尔法,对吧?为什么你会泄露你的秘密?是的。是的。所以我认为只是很少有公司实际上像处于这样的位置,他们有激励,他们真的关心试图教开发者如何用AI构建有用的东西。所以我认为我们有那个激励。 ## 优先考虑上下文质量 但你认为你能让这个增长到成为下一个大海捞针的程度,然后强迫模型提供商实际擅长它? 没有强迫任何人做任何事的路径。所以我们想过当我们把这个放在一起时。我们想哦,也许我们应该像将此制定为一个正式基准,你可以让它非常容易,我们确实开源了所有代码。所以如果你正在观看这个,你来自一个大型模型公司,你可以这样做。你可以拿你还没有发布的新模型,你可以运行你知道这些数字。 你知道,我宁愿有一个有60,000上下文token上下文窗口的模型,能够完美地关注和完美推理那60,000个token,而不是一个像500万token的模型。作为开发者,前者对我来说比后者有价值得多。我当然希望模型提供商确实像把这个作为他们关心的事情,他们围绕它进行训练,你知道,评估他们的进展,他们也向开发者传达。那会很棒。 你认为这会变得更好课程也是如此?你如何决定哪个,因为你知道你基本上是在说是的,模型不会学习这个。这会是一个你无法访问的技巧。我没有这样说。好吧,但当你说他们不会发布如何做到这一点时,好吧,这意味着模型API将无法做到,但他们会有聊天GBT能够做的东西。我明白了。是的。预测什么会更好的课程与什么不会是非常危险的。我不会冒险猜测。 希望不是AI工程师。是的。希望不是全人类。我不知道,你知道。是的,对我来说,围绕上下文工程发展一个有趣的学科也很有趣。Lance Martin来自Lang Chain做了一个非常好的博客文章,有所有不同的分离,然后你在纽约主办了你的第一次聚会。我们也会在旧金山做一次。但我只是有点好奇,你在这个领域看到了什么,谁在做有趣的工作?顶级辩论是什么?那种东西。 我认为这还早。我的意思是很多人什么都不做。很多人仍然只是把所有东西都扔到上下文窗口中。那非常受欢迎。是的。你知道他们使用上下文缓存,这确实有帮助,但像他们的成本和速度,但像不是完全帮助上下文原始问题。所以是的,我不知道有很多最佳实践到位还没有。 我的意思是我会强调几个。所以问题从根本上是相当简单的。你知道你有n个数量的候选块,你有y个可用位置,你必须做这个过程从10,000或100,000或一百万候选块中策划和调用哪20个现在重要。是的,这个优化问题不是一个对许多应用程序和行业的问题。有点经典问题,当然像什么人们用来解决这个问题的工具,我想它仍然很早,很难说,但我见过的几个模式。 所以一个模式是使用很多人称之为第一阶段检索来做一个大调用,那会使用像向量搜索、全文搜索、元数据过滤元数据搜索等信号从比如说10,000下降到300,正如我们刚才说的,你不必给LLM 10个蓝链接,你可以暴力破解更多。 所以使用LLM作为重排序器从300暴力破解到30,我现在看到出现很多。像很多人在这样做,它实际上比我想很多人意识到的成本效益高得多。我听说有人自己运行模型,每百万输入token获得一分钱,输出token成本基本上为零,因为这是你知道最简单的。这些是专用的重排序模型,对吧?不是完整的LM。不,这些是LLMs。好的。他们只是使用LM作为重排序器。 好的。当然,也有专用的重排序模型,根据定义会更便宜,因为它们小得多,更快,因为它们小得多。但我看到出现的是已经知道如何提示的应用程序开发者现在正在将那个工具应用于重排序。 我认为这将成为主导范式。我实际上认为专门构建的重排序器会像专门构建的一样消失,它们仍然会存在,对吧,如果你在极端规模极端成本,是的,你会关心优化,就像如果你运行硬件权利,你只是要使用CPU或GPU,除非你绝对必须有ASIC或FPGA,我认为重排序器也是如此,随着LM变得100倍1000倍更快100倍1000倍更便宜,人们只是要使用LMS作为重排序器,实际上暴力破解信息策划将变得极其极其受欢迎。 现在今天的前景运行300个并行LLM调用,即使它不是很昂贵,你知道任何一个300个LM调用API可用性的尾延迟,一切都仍然非常糟糕,所以今天在生产应用程序中不这样做有很好的理由,但那些也会随着时间的推移消失。 所以这些模式我想我已经看到出现,这是一个新东西,我想我只是看到开始在过去几个月真正变得流行,流行我的意思是在领先的矛尖中流行,但我认为将成为一个非常非常主导的范式。 是的,我们也涵盖了一点特别是在代码索引方面。 ## 代码索引和检索策略 所以我们一直在谈论的一切都适用于所有种类的上下文。我认为代码显然是你想要索引的特殊类型的上下文和语料库。我们有几集,云代码人员和客户端人员谈论他们不嵌入或不索引你的代码库。他们只是给工具和使用工具来代码搜索。我经常想过是否这应该是主要的上下文检索范式,当你构建代理时,你有效地调用另一个代理,所有这些递归重排序器和摘要器,或另一个有工具的代理。或者你是否将它们粘在一个代理上?我不知道你是否有意见,显然因为代理定义很差,但我只是把它放在那里拆开那个。 所以你知道索引根据定义是一个权衡,当你索引数据时,你在交易写入时间性能换取查询时间性能。你让摄取数据更慢但查询数据快得多,这显然随着数据集变大而扩展。所以如果你只是grep非常小的你知道15文件代码库,你可能不必索引它,那没关系。如果你想要搜索那个项目的所有开源依赖项,你所有以前在VS Code或cursor中做过这个,对吧?你想在node modules文件夹上运行搜索。它运行那个搜索需要很长时间。那是很多数据。要让它被索引,你必须做写入时间性能或创建时间性能的权衡。那就是索引的意义。只是去神秘化它。什么这是什么,对吧?就是这样。 你知道,嵌入今天以语义相似性而闻名。嵌入只是信息压缩的通用概念。实际上有许多工具你可以使用嵌入。我认为代码嵌入仍然极其早期且被低估,但正则表达式显然是极其有价值的工具。你知道,我们实际上现在在Chroma内部工作,单负载和分布式。我们原生支持正则表达式搜索。所以你可以在Chroma内部做正则表达式搜索,因为我们看到这是代码搜索的非常强大的工具。很棒。我们构建索引让red搜索在大数据量上快速运行。 在你提到的编码用例上,我们添加到Chroma的另一个功能是分叉能力。所以你可以取一个现有索引,你可以创建一个那个索引的副本在100毫秒内花费几分钱。所以这样做,你然后可以只应用什么文件改变到新索引的差异。 所以任何像逻辑上变化的数据语料库。所以非常快的重新索引基本上是结果。但现在你可以像为不同的每个提交有索引。所以如果你想搜索不同的提交,搜索不同的分支或不同的发布标签,任何逻辑上版本化的语料库,你现在可以非常容易和非常便宜且具有成本效益地搜索所有那些版本。 所以是的,我认为你知道这就是我如何思考正则表达式和索引和嵌入的。我的意思是是的,针继续在这里移动。我认为任何声称有答案的人,你就是不应该听他们的。 当你说代码嵌入被低估时,你认为那是什么?大多数人只是拿通用嵌入在互联网上训练的模型,他们试图将它们用于代码,对一些用例来说效果还行,但它对所有用例都有效吗?我不知道。 思考这些不同原语的另一种方式它们有什么用。从根本上,我们试图找到信号。文本搜索效果很好。词汇搜索,文本搜索效果很好当写查询的人了解数据时。如果我想搜索我的Google Drive,我只是为了有我所有投资者的电子表格,我只是要输入cap table,因为我知道有一个电子表格在我的Google Drive叫做Cap Table全文搜索。很棒。它完美。我是我数据的主题专家。 现在,如果你想找到那个文件,你不知道我有一个叫做cap table的电子表格,你会输入有所有投资者名单的电子表格。当然,在嵌入空间,在语义空间中,那会匹配。所以我想再次这些只是不同的工具,取决于谁写查询。取决于他们在数据方面有什么专业知识,什么混合这些工具将是正确的适合。 我猜测像今天的代码,85%或90%的查询可以用正则表达式令人满意地运行。正则表达式显然像Google代码搜索、GitHub代码使用的主导模式搜索,但你也许可以通过也使用得到15%或10%或5%的改进嵌入。非常复杂的团队也使用代码嵌入作为他们的代码检索代码搜索的一部分堆栈。你知道,你不应该假设他们只是喜欢不必要地花钱在事情上。他们要么在消除一些好处,要么得到一些好处。当然,对于想要处于游戏顶端并且想要占领市场并且想要最好地服务用户的公司来说,这就是构建AI伟大软件的意义。80%是相当容易的,但从80%到100%是所有工作所在。像,你知道,每个改进点都是板上的一分,是用户关心的一分,你可以用来从根本上更好地服务用户的一分。 ## 代码的块重写和查询优化 你对开发者体验与代理体验有什么想法?这是另一个情况,我们也许应该重新格式化和重写代码,使其更容易嵌入,然后在那里训练模型。你在那个范围内在哪里? 是的,我的意思是我看到对一些用例效果很好的一个工具是,不只是嵌入代码,你首先让LLM生成自然语言描述,这个代码在做什么。你要么嵌入自然语言描述,要么你嵌入那个和代码,要么你分别嵌入它们,把它们放入独立的向量搜索索引。 块重写是这种广泛类别。再次这里的想法是与索引相关,这是你可以放入你的写入或摄取管道的结构化信息越多越好。所以所有你可以提取的元数据在摄取时做。所有你可以做的块重写在摄取时做。如果你真的投资于试图提取尽可能多的信号并且预烘焙一堆信号在摄取方面,我认为它让下游查询任务容易得多。 但也,你知道,只是因为我们在这里,值得说人们应该创建小的黄金数据集他们想要工作的查询和应该返回什么块,然后他们可以定量评估什么重要。也许你不需要为你的应用程序做很多花哨的东西。完全可能再次只是使用正则表达式或只是使用向量搜索,取决于用例,也许那就是你需要的全部。我想再次任何声称知道答案的人,你应该问的第一件事是让我看看你的数据,然后如果他们没有任何数据,那么你已经有了你的答案。 我会给你在会议上做的演讲做个宣传,如何查看你的数据。是的,查看你的数据很重要,有黄金数据集。所以这些都是我觉得有人应该放入小册子的良好实践。称之为AI工程十诫或什么的。 好的,你可能会那样做。你应该查看你的数据。 ## Transformer架构演进和检索系统 我们即将转向记忆,但我想为你总是想上肥皂盒的任何其他线程留出空间关于。是的,那是危险的。那是一个非常危险的问题。 我有一个要接着说的,因为我想我不知道在哪里插入这个对话中,但我们在附近徘徊,我试图探索的是,你知道我想你对RA和G有这个咆哮,原始transformer有点像编码器解码器架构,然后GBT将大多数transformer变成仅解码器,但然后我们也用所有嵌入模型作为仅编码器模型进行编码。 所以在某种意义上,我们将transformer解耦,首先我们用仅编码器模型编码一切,将其放入像chroma这样的向量数据库,chroma也做其他事情,但你知道然后我们用LLMs解码,我只是认为这是关于整体架构的非常有趣的元学习,它正在走出模型到模型和系统,我好奇你是否对此有任何反思,或者你是否对我刚才说的有任何修改。 我认为有一些直觉,这就是我们今天做事的方式非常粗糙,在五年或十年后会感觉非常原始。你知道,为什么我们要回到自然语言?为什么我们不直接传递嵌入像直接给模型,他们只是要功能性地重新嵌入空间,对吧?是的。他们有一个非常薄的嵌入层。是的。是的。 所以,我认为关于未来检索系统可能真实的几件事。所以,第一个,它们只是停留在潜在空间中。它们不回到自然语言。第二个,而不是做像这实际上开始改变,这非常令人兴奋,但像很长时间,我们已经做了每代一次检索。好的,你检索然后你流出一些token。为什么我们不持续检索?是的。当我们需要时,格雷格,不要那样称呼它。 但几周前有一篇论文或GitHub上的论文。我想它被称为不幸的ragar one,他们教deepcar1你知道给它如何检索的工具,所以在它的内部思维链和它的婴儿计算中它实际上像搜索,还有检索增强语言模型,我想这是一篇较老的论文,是的是的,有一堆你知道realm和retro,这里有很长的历史,所以我认为你知道不知何故不那么受欢迎,我不知道为什么不知何故不那么受欢迎,很多那些有问题,要么检索器要么语言模型必须被冻结,然后语料库不能改变,大多数开发者不想处理周围的开发者体验。我会说如果收益那么高,我们会做的,或者实验室不希望你这样做。我不知道关于是的,实验室有巨大的影响。实验室有巨大的影响。 我认为这也只是你不会通过做得好得到板上的分。你只是不会,没人在乎。地位游戏不会因为解决他们的问题而奖励你。所以是的,所以广泛的持续检索我认为看到从场景中出现会很有趣。第一个。第二个,停留在嵌入空间会非常有趣。然后是的,关于GPUs和你如何将信息分页到GPU上的内存也有一些有趣的东西。我认为可以更高效地完成。这更像未来五年或十年我们在考虑的事情。 但是,是的,我认为当我们回顾时,会认为这就像滑稽地粗糙我们今天做事的方式。也许也许不会。你知道,我们只是用语言解决IMO挑战,你知道。是的,这很棒。我仍在研究那个的含义。这仍然是一个巨大的成就,但也与我认为我们会如何做事非常不同。 你说记忆是上下文工程的好处。我想你在Twitter上有一个咆哮,停止让AI记忆如此复杂。你如何思考记忆,上下文工程的其他好处是什么,也许人们没有连接在一起的? ## 记忆作为上下文工程的好处 我认为记忆是一个好术语。它对广泛的人口非常清楚。再次,这只是继续LLMs的拟人化。你知道,我们自己理解我们如何使用记忆,我们作为人类使用记忆。我们有些人非常擅长使用记忆学习如何做任务,然后这些学习对名称环境是灵活的,你知道能够坐在AI旁边,然后指导它10分钟或几个小时,告诉它你想要它做什么,它做一些事情,你说嘿,实际上下次这样做,就像你会对人类一样,在那10分钟结束时,在那几个小时结束时,AI能够现在做它,以同样的可靠性水平,人类可以做它,这是非常吸引人和令人兴奋的愿景。我认为会发生。 我认为记忆再次是像每个人都能理解的术语,我们都理解。我们的妈妈都理解。记忆的好处也非常吸引人和非常有吸引力。但记忆在幕后是什么?我认为它仍然只是上下文工程,这是如何将正确信息放入上下文窗口的领域。所以是的,我认为记忆是好处。上下文工程是给你那个好处的工具,也可能有其他东西。我的意思是也许有一些记忆版本,就像哦,你实际上像使用RL通过数据改进模型场景,所以我不是建议只有改变上下文是唯一给你伟大的工具任务性能,但我认为这是非常重要的一部分。 你看到合成记忆之间的大区别,这就像基于这次对话,隐含的偏好是什么?是的,这是一边,然后有另一边,基于这个提示,我应该放入的记忆是什么。我认为它们都会被相同的数据喂养。所以相同的反馈信号告诉你如何更好地检索也会告诉你更好地记住什么。所以我不认为它们实际上是不同的问题。我认为它们是同一个问题。 对我来说,我正在纠结的事情更多一点是记忆的结构是什么?这很有意义。 ## 结构化AI记忆和离线压缩 所以,有像显然所有这些与长期记忆、短期记忆的类比,让我们试图围绕睡眠创造一些东西。我确实认为绝对应该有某种批处理收集周期,也许是垃圾收集周期,其中LM在睡觉的地方。但我不知道什么有意义。我们正在做所有这些基于我们认为我们人类如何工作的类比,但也许AI的工作方式不同。 是的,我对你看到的任何工作的东西很好奇。是的,我总是再次,你知道,作为这次对话的主线,当我们开始为事情创造新概念和新缩写词,然后突然有信息图表,这里有10种记忆类型,你就像为什么?如果你眯着眼看,这些实际上都是同一件事,它们必须不同吗?你知道,你必须震撼人们的思想。不,我不认为你必须。我不知道。你必须抵制老虎机。老虎机。 压缩一直是一个有用的概念,甚至在数据库在你计算机上的数据库中。我们都记得在1998年在我们的Windows机器上运行defrag,所以是的,我们中的一些人不够老,做不了那个。我在这张桌子上不是。 而且是的,所以显然离线处理是有帮助的,我认为在这种情况下也是有帮助的,正如我们之前谈到的,索引的目标是什么?索引的目标是交易写入时间性能换取查询时间性能。压缩是工具箱中的另一个工具,有点像写入时间性能。你在重新摄取数据。这不是索引,但实际上它是索引。这有点像重新索引。是的。 你取数据,哦,也许这两个数据点应该合并。也许它们应该分割。也许它们应该重写。也许有新的元数据我们可以从那些中提取。让我们看看我们的应用程序性能的信号。让我们试着弄清楚我们是否记住了正确的事情?像将有很多离线计算和推理在幕后,帮助AI系统持续自我改进,这是肯定的。 我们谈论的睡眠时间计算的一部分是预计算答案。所以基于你拥有的数据,人们可能会问什么问题,然后你能预计算那些东西吗?你如何在Chroma方面思考这个? 我们也许3个月前发布了一份技术报告。标题是生成性基准测试。那里的想法是拥有黄金数据集真的很强大。拥有黄金数据集是你有查询列表,你有这些查询应该产生的块列表。现在你可以说好,这个检索策略给我这些查询给我这些块的80%。而如果我改变嵌入模型,现在我得到90%的那些块。那更好,然后你也需要考虑成本和速度和API可靠性和其他因素,显然当做好的工程决策时。 但你现在可以测量系统的变化,所以我们注意到的是开发者有数据,他们有块,他们有答案,但他们没有查询,我们做了一个完整的技术报告,关于如何教LLM从块写好查询,因为你想要块查询对,所以如果你有块,你需要查询。 好的,我们可以让人类做一些手动注释,显然,但人类不一致且懒惰,你知道,QA是困难的,所以我们能教LLM如何做到吗,所以我们做了一个完整的技术报告并证明了一个策略很好地做那个。所以我认为生成QA对对于基准测试检索系统真的很重要,黄金数据集坦率地说也是你在许多情况下用于微调的相同数据集,所以是的,有绝对有一些被低估的东西。 是的,我会为此加一。我认为尽管上下文衰减论文得到了很多关注,我觉得生成性基准测试对我来说是一个更大的啊哈时刻,只是因为我实际上从未遇到过这个概念。我认为实际上更多人会将其应用于他们自己的个人情况。而上下文衰减只是一般地,是的,不要太信任模型,但你对此无能为力,除了做更好的上下文工程。是的。是的。 而生成基准测试,你就像,是的,生成你的评估,你知道,其中一部分是你需要数据集,它会让你陷入所有最佳实践的位置,每个人都倡导。所以是的,这是一个非常好的工作。 我认为在应用机器学习开发者工具上工作了10年,对非常高质量小标签数据集的回报是如此之高。每个人都认为你必须有一百万个例子或什么的。不,实际上只是几百个甚至高质量的例子是极其有益的。是的。客户一直说,"嘿,你应该做的是对你的团队说周四晚上。我们都会在会议室。我们订披萨,我们只是要举办几个小时的数据标签聚会,这就是启动这个所需的全部。Google这样做。Open这样做。Anthropic这样做。你并不高于做这个。"很好,你知道?对。是的。完全正确。 是的。是的。查看你的数据。这再次是重要的。标签。也许应该将其分类为标签你的数据,而不是查看,因为查看似乎有点太我同意。是的,有一些更多的仅查看,对吧?我同意。是的。是的。读和写。读和写。 当你提到它时,我应该纠正自己。不是标准认知。是标准机器人。我最喜欢的关于你的事实是你也是一个机器人,你的腿,如果人们看到Jeff本人,你应该问他关于它。或者也许不。也许不要。我不在乎。不在乎。 ## 从之前创业和有目的地构建的经验 标准机器人,Mighty Hive,和知道它。那些是什么你应用于Chroma的经验? 是的,比我能数的更多。我的意思是,这有点陈词滥调。对很多这些东西进行自我反思和诚实是非常困难的,但我认为将你的生命视为非常短暂,有点像风中的蒸汽,因此只做你绝对喜欢做的工作,只做与你喜欢共度时光的人一起做那项工作,服务你喜欢服务的客户是一个非常有用的北极星。你知道,它可能不是在某种意义上赚很多钱的北极星。可能有更快的方式诈骗人们赚$500万或什么的。 所以,但如果我反思,我很乐意详细说明,显然,但如果我反思我的先前经验,我总是在做权衡。我在与我一起工作的人做权衡,或者我在与我服务的客户做权衡。我在与技术和我对它的骄傲程度做权衡。也许这有点像年龄的事情,我不知道。但你知道,我越老,我就越想做我能做的最好工作。我希望那项工作不只是伟大的工作,但我也希望被尽可能多的人看到,因为最终那就是影响看起来的样子。你知道,影响不是发明一些伟大的东西然后没人使用它。影响是发明一些伟大的东西,尽可能多的人使用。 这其中任何,你知道,如果这个问题敏感我们可以跳过,但这其中任何是由宗教、基督教指导的吗?我只问这个,因为我认为你是越来越多公开对外积极宗教的硅谷人士之一,我认为这有点我想探索的。你知道我自己并不那么虔诚,但我只是有点喜欢这如何影响你看待你的影响,你知道,你刚才说的有一点这个选择,但我想更多地梳理出来。 ## 硅谷的宗教和价值观 我认为现代社会越来越虚无主义。没有什么重要。它是荒谬主义,对吧?一切都是闹剧。一切都是权力。一切都是喜剧。一切都是喜剧模因。是的。是的。完全正确。所以很罕见,我不是说我总是这个的活生生的典范,但遇到对人类繁荣是什么样子有真正信念的人是非常罕见的。遇到实际愿意牺牲很多让那发生的人,开始他们可能在有生之年实际上看不到完成的事情是非常罕见。 人们开始需要几个世纪才能完成的项目曾经是司空见惯的。是的。你知道那越来越不情况。想到的是巴塞罗那的Saga Familia,我想是像300年前开始的,明年完成。是的。我见过它在建设中,但我也等不及看到它完成。是的。我确信位置已经订满了。是的。是的。 所以,你知道,这很常见。实际上,你知道,硅谷有很多宗教。我认为AGI也是一种宗教。它有一个邪恶问题。我们没有足够的智能。它有一个解决方案,一个机器神。它有基督第二次降临,AGI奇点将到来。它将拯救人类,因为我们现在将有无限和免费的智能。因此,我们所有的问题都将得到解决,你知道我们将生活在永恒的恩典之掌中。它将解决死亡,对吧? 所以我认为宗教仍然存在于硅谷。我认为有宗教守恒。你无法摆脱它。是的。但神基因,是的。是的。我的意思是,你知道,人们对此有不同的术语,但我想我总是对没有存在超过5年的宗教持怀疑态度。这样说吧。是的。这是生存偏见。 无论如何,我我认为你是我知道的更突出的人之一,我认为你们是一种向善的力量,我喜欢鼓励更多这样的事情。我不知道你知道人们应该相信比自己更大的东西,为种下他们不会坐在下面的树而建造。这是我搞错了引用吗?那实际上是圣经引用吗?我不认为那是圣经引用,但我喜欢那个引用。那是个好引用。所以是的,加一。 我认为当你只为自己而活时,社会真的崩溃了。那真的是真的。同意。 ## 公司文化、设计和品牌一致性 谁做你的设计?因为你所有的周边产品都很棒,你的办公室看起来很棒,网站看起来很棒,文档看起来很棒。这其中有多少是你的输入?你有多少人只是理解它?这对让品牌成为文化的一部分有多重要? 我认为所有价值,你知道,回到康威定律的事情,你运送你的组织结构图,你运送你作为创始人在某种意义上关心的东西,我确实深深关心我们做的这个方面。所以我认为它确实在某种意义上来自我。我不能完全为我们所做的一切承担责任。我们有机会与一些非常有才华的设计师合作,我们也在为此招聘。所以如果人们,你知道,正在听这个并且想申请,请这样做。 我认为我的意思是引用Patrick Collison的陈词滥调,但他似乎是这个想法的最公开的体现者之一,你如何做一件事就是你如何做一切。这不是他的直接引用,要澄清。这更多的只是一个广泛的格言,但确保我们所做的事情有一致的体验,其中就像你说的,如果你来到我们的办公室,感觉是有意和深思熟虑的,如果你访问我们的网站,感觉是有意和深思熟虑的,使用我们的API,感觉是有意和深思熟虑的,如果你经历面试过程,感觉是有意和有目的的。 我认为这很容易失去,只是很容易失去那个,在某些方面,保持那个的唯一方法是坚持那个标准保持。我认为这是作为领导者我真的能为公司做的主要事情之一。有点尴尬地说,但你确实有点必须成为品味的策展人。不是说我必须在一切出门之前盖章,但至少公司,你知道,也许它甚至不像质量下降。它不是有条理地清楚任何一件事是坏的或更糟的,但它更像人们只是对好看起来是什么有自己的表达,你知道他们把那个调到11,然后品牌变得不连贯。这东西意味着什么,他们代表什么?再次,不再是单一的声音。是的。 我再次不声称我在这方面很好或完美。我们当然每天醒来都会尝试。你有很多传达直接原则和价值观的技巧,我认为你在做的每件事中都有深思熟虑,是的,我你知道你知道你知道我对你的工作印象深刻了一段时间,谢谢。 ## Chroma招聘:设计师、研究人员和工程师 我们遗漏了什么吗,你正在招聘设计师,你有其他任何角色开放的你希望人们申请的吗? 如果你是一个伟大的产品设计师,想要在开发者工具上工作,我认为我们在Chroma有最独特的机会之一。如果你有兴趣扩展我们做的研究,那也是一个有趣的机会。我们也总是招聘非常有才华的工程师,想要与其他对低级分布式系统充满热情的人一起工作,并在某些方面解决所有难题,这样应用程序开发者就不必。 当你这样说时,你能双击低级分布式系统吗?人们总是这样说,然后就像好的,Rust,你知道像Linux内核,我们在这里谈论什么? 是的,我的意思是也许你知道一个有用的封装是如果你深深关心像Rust或确定性仿真测试或raft paxos TLA加共识,TLA加真的,哇,你知道如果你只是保持我说这些这些是代理,如果你会喜欢我们在这里做的工作。 我只是真的想梳理出招聘信息,但我也是我的目标的一部分也是试图识别谁是什么,创业公司真正试图雇佣的工程师类型是什么,他们无法得到,因为我们越能识别这个东西,我可以你知道也许创造一些围绕它的品牌,创造一个事件,就像得到这些,有一个供给侧和需求侧,他们找不到彼此,这就是为什么我把AI工程师放在一起的部分原因,但然后这个分布式系统人,我从你和一百个其他创业公司那里听到过。技能集是什么?他们被称为什么?他们做什么?其中一部分是云工程,因为很多时候你只是处理AWS。当然。很多时候你只是处理我不知道调试网络调用和一致性如果你在做复制或什么的事情。他们去哪里?他们做什么?是的。是的。但他们不在工作中使用TLA加,你知道。可能不会。是的。 我的意思是去年我开始了SF系统组。是的。阅读组。是的,有演讲,那的重点是让我们带来让我们为关心这个话题的人创造一个聚会场所,因为湾区真的没有人们这样做的地方。所以那继续进行现在并继续运行,这很好。 我的意思是澄清我们团队中有很多非常擅长这个的人,所以不是我们有零,是我们有六或七个120,但是,是的,我们,我们不是想要更多,而是我们在某些方面,我感觉我们的产品路线图非常明显,我们确切地知道我们需要为接下来的甚至18个月构建什么,但质量总是一个限制因素,质量和专注总是限制因素,就像是的,我总是会向神话人月致敬,最终像你确实需要更多人,因为你需要更多专注,你需要更多深深关心他们所做工作的人。 我认为AI当然是一个加速器,作为有帮助的原因,我们的团队今天相对于我们的许多竞争对手仍然非常小,是因为我认为我们真的拥抱了那些工具,你的光标商店云代码windsurf,人们使用他们想要的任何东西,是的,所以我认为所有那些工具在内部都得到了一些使用,到目前为止我们仍然没有发现任何AI编码工具在rust方面特别好。我不确定为什么那是除了明显的,互联网上真的没有那么多伟大Russ的例子,所以你知道,是的,你会认为你知道Russ错误会帮助你调试它本身,对吧,你会认为显然不是。 好的,我在那方面有零经验前面,我为temporal的rest SDK贡献了三件事,那是我使用Rust的全部经验,但我我认为它绝对在上升。这是Zigg,这是Rust,我不知道是否有第三个。酷语言。我认为go计数。Golang。是的,go计数。 如果你在那个桶里,联系Jeff。但,否则,我认为我们很好。谢谢上节目。谢谢邀请我们,伙计们。很高兴见到你。谢谢你。