Andrej Karpathy 介绍了利用 LLM 构建个人知识库的工作流:将原始资料通过 LLM 自动“编译”成包含摘要、分类和反向链接的 Markdown 维基,并以 Obsidian 作为前端展示。该系统支持自动化 Q&A、多种格式输出及维基健康检查,展示了如何利用 AI 实现从处理代码向自动化管理结构化知识的转变。
最近我发现一种非常有用的做法:利用大语言模型(LLM)为各种研究课题构建个人知识库。通过这种方式,我近期大部分的 Token 消耗不再是用于编写代码,而是用于处理知识(以 Markdown 和图片形式存储)。最新的 LLM 在这方面表现非常出色。
我的流程是先将源文档(文章、论文、代码库、数据集、图像等)索引到 raw/ 目录中,然后使用 LLM 增量地“编译”出一个 Wiki。这个 Wiki 本质上是一个具有目录结构的 .md 文件集合。
Wiki 的内容包括:
raw/ 目录下所有数据的摘要。为了将网页文章转换为 .md 文件,我习惯使用 Obsidian Web Clipper 扩展,并配合快捷键将所有相关图片下载到本地,以便 LLM 能够轻松引用。
我使用 Obsidian 作为“IDE 前端”,在这里我可以查看原始数据、编译后的 Wiki 以及衍生的可视化内容。
值得注意的是,Wiki 中的所有数据都由 LLM 编写和维护,我很少直接干预。此外,我还尝试了一些 Obsidian 插件来以其他方式渲染和查看数据(例如使用 Marp 制作幻灯片)。
当 Wiki 规模足够大时(例如我最近的一个研究项目包含约 100 篇文章和 40 万字),事情就变得有趣了。你可以针对 Wiki 向 LLM Agent 提出各种复杂的问题,它会去检索、研究并给出答案。
起初我以为需要使用复杂的 RAG(检索增强生成)技术,但在这种中小规模下,LLM 在自动维护索引文件和文档简要概述方面表现得非常好,能够相当轻松地读取所有重要的相关数据。
我并不满足于在终端获取文本答案,而是倾向于让 LLM 为我渲染 Markdown 文件、幻灯片(Marp 格式)或 Matplotlib 图像,然后再次在 Obsidian 中查看。
根据查询需求,可以想象出许多其他的视觉输出格式。通常,我会将这些输出结果重新“归档”到 Wiki 中,以增强其应对未来查询的能力。这样,我个人的探索和查询过程总是在不断累积知识库的深度。
我会对 Wiki 进行一些 LLM “健康检查”,例如:
这些操作可以增量地清理 Wiki 并增强其整体数据的完整性。LLM 非常擅长建议进一步探索的问题。
我发现自己正在开发额外的工具来处理这些数据。例如,我通过“Vibe Coding”编写了一个简单的小型搜索引擎来检索 Wiki。我既可以直接在 Web UI 中使用它,也可以更频繁地通过 CLI 将其作为工具交给 LLM,以处理更大规模的查询。
随着仓库的增长,自然的演进方向是考虑合成数据生成 + Finetuning。这样可以让 LLM 在其权重中“记住”这些数据,而不仅仅是依赖上下文窗口。
整个流程是:收集特定来源的原始数据,由 LLM 编译成 Markdown 格式的 Wiki,然后通过各种 CLI 工具由 LLM 进行问答和增量增强,所有内容均可在 Obsidian 中查看。你几乎不需要手动编写或编辑 Wiki,它是 LLM 的领地。我认为这里存在创造一种全新产品的空间,而不仅仅是一堆零散的脚本。
- 原文链接: x.com/karpathy/status/20...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!