档案库 · 产品创意 · 技术决策 · 2023–2024
Mutable.ai通过生成每个代码库的"语言地图"维基超越向量RAG
Mutable.ai自动为每个代码库撰写维基百科风格的文章,然后通过其引用来检索LLM上下文,而不是依靠向量相似度。
Mutable.ai
当时的题目
Mutable.ai's mission was to help developers understand software, starting with a chat that could answer questions about any codebase. Repos would not fit in LLM context windows, and a keyword-plus-vector retrieval chat kept surfacing the wrong context — even after the team trained its own embedding model, asking how to quantize llama.cpp pulled in odd, test-file-heavy answers.
它是怎么成立的
Mutable.ai希望为开发者提供一个真正理解其代码的聊天。天真的方法——将仓库接入大型语言模型——在两个硬性限制上失败了:上下文窗口对大多数代码库来说太小,以及模型立即回答而不是逐步推理。他们的第一次尝试,一个基于关键词检索和向量嵌入的代码库聊天,以更具启发性的方式失败了:即使在团队训练了自己的嵌入模型后,像"如何量化llama.cpp"这样的问题会返回由错误上下文构建的答案,通常来自测试文件。
创造性的举动是停止检索,先写下代码库。自动维基为每个仓库生成维基百科风格的文章,并附有图表和指向底层代码的引用。然后聊天通过这些引用进行检索——读取相关的维基章节以及它们引用的实际代码——创始人称之为代码库的"语言地图"。答案从错误转变为准确、全面且引用充分,因为模型接收了语言和结构,而不是向量空间中恰好相邻的片段。
2024年7月18日的Show HN线程读起来像是这个想法时代到来的地图。评论者将其与Aider的AST驱动仓库地图进行比较,后者在不使用代码RAG的情况下取得了SWE-bench第二高分;一位咨询师描述了为客户进行的几乎相同的"知识地图"工作;其他人将其框架为图RAG。创始人在线程中回应,为评论中提到的开源仓库提供免费处理,并指向一个日益增长的生成维基列表——包括llama.cpp、Terraform、go-ethereum、NVIDIA TensorRT、langchain和VS Code。
妙在哪
- 维基的引用成为检索索引,因此上下文跟随真实的代码依赖关系,而非词汇或向量邻近——这正是代码问题所需的特性。
- 将理解置于人类可读文档中,使得地图本身对新员工有用,因此检索修复同时变成了第二个产品。
- 他们将昂贵战斗(训练定制嵌入模型)换成了表示改变,这就是为什么同一个LLM突然回答良好。
- 回答同时引用维基和实际代码行,给了开发者以前聊天无法提供的东西:每个主张的可核查来源。
做出来什么
The 18 July 2024 Show HN drew 162 points and 55 comments. On the same llama.cpp quantization question that previously failed, the new chat gave a step-by-step answer citing both wiki sections and code; the founders said quality held 'consistently across codebases of all sizes' and listed live wikis including llama.cpp, Terraform, go-ethereum and VS Code.
可以借走的
当检索理解结构时,它胜过嵌入:与其不断调整搜索,不如编写领域的人类可读、带引用链接的地图,让模型通读它。
后来
这个想法出现在更广泛的趋同中。在线程中,一位评论者描述了Aider的AST驱动仓库地图已经在不使用代码RAG的情况下提供了强有力的SWE-bench结果;一位顾问描述了对客户进行的几乎相同的"知识地图"工作;几位构建者表示他们已独立放弃向量RAG用于代码。Mutable.ai深入了这个概念,为数百个开源仓库生成了维基,同时将私有仓库定价为每个每月2美元。发布保持低调为162分,但线程显示这个想法已成为代码智能的共识方向。
资料来源
发现哪里写错了?告诉我们。
轮到你了
你刚读完一个点子。把你手上的题目说出来,看看谁接过同样的题。
免费账号 · 3 次免费提问 · 不用绑卡