Andrej Karpathy:LLM 知识库
💡 TL;DR:Karpathy 的新玩法——把研究资料丢进 raw/ 目录,让 LLM 增量「编译」成一部 markdown wiki,Obsidian 当前端,然后向它提问、做体检、跑工具。你几乎从不动手写 wiki,那是 LLM 的领地。
Andrej Karpathy · X · 2026-04-02 · 原文
最近发现一件特别好使的事:用 LLM 给我各种感兴趣的研究课题搭个人知识库。这么一来,我最近的 token 吞吐量,越来越少花在摆弄代码上,越来越多花在摆弄知识上(以 markdown 和图片的形式存储)。最新的 LLM 干这个已经相当在行了。所以:
资料摄取:
我先把源文档(文章、论文、代码仓库、数据集、图片等)索引进一个 raw/ 目录,然后用 LLM 增量地「编译」出一部 wiki——说白了就是一套目录结构下的 .md 文件合集。wiki 里包含 raw/ 中所有数据的摘要、反向链接,再把数据归类成一个个概念,为每个概念写条目,并把它们全部互链。网页文章转 .md,我喜欢用 Obsidian Web Clipper 浏览器剪藏扩展,然后再按一个快捷键把相关图片全部下载到本地,方便我的 LLM 直接引用。
IDE:
我用 Obsidian 当这套系统的 IDE「前端」,在里面查看原始数据、编译好的 wiki 和派生的可视化图表。要注意的是:wiki 的所有数据都是 LLM 写、LLM 维护的,我几乎不直接碰它。我还试过几个 Obsidian 插件,用别的方式渲染和查看数据(比如用 Marp 放幻灯片)。
问答:
好玩的地方在这儿:等你的 wiki 足够大(比如我某个近期研究课题的 wiki 已有约 100 篇文章、40 万词),你就可以拿各种复杂问题去考你的 LLM 智能体,它会自己跑去研究、给你答案。我本来以为自己得上花哨的 RAG(检索增强生成),结果发现 LLM 把索引文件和各文档的简要摘要自动维护得很好,在这么个不算大的规模下,它把相关的重要数据读一遍并不吃力。
输出:
我不喜欢在终端里看纯文字答案,而是让它把结果渲染成 markdown 文件、幻灯片(Marp 格式)或 matplotlib 图像,然后回到 Obsidian 里查看。根据提问的不同,你可以想象出很多别的可视化输出形式。而且我常常会把产出「归档」回 wiki,让它对下一轮查询更有用。于是我的每一次探索和提问,都在知识库里「累加」。
体检:
我会让 LLM 给 wiki 做些「健康检查」,比如找出互相矛盾的数据、(借助网络搜索)补全缺失数据、发现值得写成新条目的有趣关联等等,一点点清理 wiki,提升整体的数据完整性。让 LLM 建议接下来值得追问和深挖的问题,它也很在行。
额外的工具:
我发现自己在顺手开发处理数据的小工具,比如凭感觉写码(vibe coding)了一个朴素的小搜索引擎,盖在 wiki 之上——我自己会在网页界面里直接用它,但更多时候,是想通过 CLI 把它交给 LLM 当工具,去处理更大的查询。
进一步的探索:
随着仓库越长越大,一个自然的念头是:做合成数据生成 + 微调,让你的 LLM 把这些数据「记进」权重里,而不只是放在上下文窗口里。
TLDR:
从若干来源收集原始数据,让 LLM 把它们编译成一部 .md wiki,再让 LLM 通过各种 CLI 操作这部 wiki——做问答、 增量地增强它——一切都在 Obsidian 里查看。你几乎从不动手写或改 wiki,那是 LLM 的领地。我觉得这里容得下一款了不起的新产品,而不只是一堆凑合的脚本。
附:Lex Fridman 的跟帖
我也一样,配置差不多:Obsidian、Cursor(写 md),再加几个 vibe 出来的网页终端当前端。 因为我做播客,研究课题又多又杂,但知识库这套方法一直很好用。 要答案的时候,我常让它生成动态 HTML(带 JS),可以排序、过滤数据,还能交互式地摆弄可视化。 另一个有用的招:让系统针对某个特定主题生成一个临时的、聚焦的迷你知识库,装进 LLM,然后带着去跑长距离——7 到 10 英里(约 11-16 公里)——用语音模式跟它互动。于是跑步就变成了听一场互动播客:我问,它答,边跑边学。 好了,出门跑步去了,谢谢你的分享 👊