Andrej Karpathy分享了【如何用大模型来打造私人知识库】,这个帖子目前在X上有1037万的阅读。我让Gemini做了个更有人味的翻译版。
标题:用大模型打造私人知识库
最近我摸索出一套极佳的工作流:用大语言模型(LLM)针对感兴趣的研究课题,搭建个人知识库。照这套玩法,我近期消耗的海量 Token 算力,大头都不在敲代码上了,而是全用在了“揉捏”知识(以 Markdown 文件和图片的形式存储)上。不得不说,最新一代的 LLM 在这方面简直是一把好手。
具体玩法如下:
【资料投喂】首先是原始资料入库。我会把各类源文件(文章、论文、代码库、数据集、图片等)统统丢进一个名为 raw/ 的原始文件夹。接着,让 LLM 像“编译”代码一样,一点点地生成一个“维基百科”——说白了就是一套有着清晰目录结构的 .md 文件堆。这个维基不光会给 raw/ 里的所有资料写摘要、做反向链接,还会自动把信息梳理成各个核心概念,为它们单独撰写词条,最后把所有内容交叉引用起来。碰到网页资料,我习惯用 Obsidian Web Clipper 插件一键转成 .md 格式;我还专门设了个快捷键,能把相关图片一股脑儿全扒到本地,方便 LLM 随时调阅。
【工作台】我把 Obsidian 当作这套系统的“前端界面”(IDE)。在这里,无论是原始数据、编译好的维基内容,还是衍生出来的可视化图表,都能一览无余。这里必须强调一点:整个维基的数据全权交由 LLM 来撰写和维护,我几乎从不插手。 我还折腾了几个 Obsidian 插件,换着花样来渲染数据(比如用 Marp 插件直接看幻灯片)。
【高阶问答】当你的维基攒得足够厚实,魔法就开始了。比如我最近研究的一个课题,不知不觉就攒了 100 多篇文章,将近 40 万字。对着这座宝库,你可以向你的 LLM 智能体抛出各种极其复杂的连环问。它会一头扎进去,自己翻找、做研究、提炼答案。原本我以为处理这种需求,非得上那些高大上的 RAG(检索增强生成)技术不可。但实测下来,在这个相对“轻量”的数据规模下,LLM 自动维护索引文件和文档摘要的能力已经绰绰有余,它完全能轻轻松松吃透所有相关的核心内容。
【成果输出】我不喜欢干巴巴的文字,也不想盯着终端看。我更倾向于让 LLM 把答案直接渲染成 Markdown 文件、Marp 幻灯片,或者是 Matplotlib 数据图表,然后再切回 Obsidian 里慢慢审阅。只要你敢想,根据问题的不同,你可以让它变着法儿地输出各种视觉效果。通常看完后,我会顺手把这些回答“归档”回维基系统里,作为下一次提问的养料。也就是说,我的每一次发问和探索,都在不断地为知识库“添砖加瓦”。
【系统体检】代码需要 Linting(代码检查),知识库也一样。我会让 LLM 定期给整个维基做个“健康体检”:揪出前后矛盾的数据,联网搜索补全缺失的信息,或者在犄角旮旯里发现一些有趣的关联,从而催生出新的文章词条。在这个渐进式清理的过程中,维基的数据质量越来越高。而且,LLM 还很会顺藤摸瓜,它总能精准地建议我下一步该继续深挖哪些好问题。
【外挂工具】为了更好地处理数据,我还顺手开发了一些辅助工具。比如,我纯靠对 AI 发号施令(Vibe Coding),草搓了一个简单粗糙的维基搜索引擎。这玩意儿我偶尔在网页端自己用,但更多时候,我是把它封装成命令行(CLI)工具,当成一把趁手的兵器丢给 LLM,让它在处理宏大问题时自己去调用。
【进阶畅想】随着库里的资料越堆越高,人自然会萌生出一种野心:要不要干脆搞点合成数据做个微调(Finetuning)?与其让 LLM 每次都在有限的上下文窗口(Context Window)里费劲扒拉,不如直接让它把这些知识深深地刻进神经网络的“权重”里。
【一言以蔽之】整套流程的精髓就在于:从各路渠道收集原始资料 -> 交由大语言模型编译成 Markdown 维基 -> LLM 通过调用各种命令行工具来进行问答、并不断自我进化 -> 最终成果全在 Obsidian 中呈现。在这个过程里,你几乎不需要亲自动手写字或排版,这是属于 LLM 的绝对主场。直觉告诉我,与其像现在这样东拼西凑一堆脚本,这背后其实大有文章——它完全有潜力长成一款极具颠覆性的新产品。
