今天Karpathy大神在x上公布了他如何构建大语言模型的个人知识库的新的方法。 以下是 Andrej Karpathy 这篇帖子的中文翻译。好文共享,与君共勉。
TL,DR
Karpathy 的个人知识库方法论核心在于**“LLM 主导、Obsidian 呈现、自动化闭环”**:首先将论文、文章、代码等原始资料归档为 raw/ 索引,再由 LLM 自动“编译”成结构化的 Markdown Wiki(含摘要、概念归类、双向链接);全程以 Obsidian 为统一前端查看原始数据、编译结果与可视化输出,而 Wiki 的撰写、维护、索引更新、问答调研乃至健康检查(如数据纠错、关联挖掘)均交由 LLM 自主完成,人工极少干预;随着知识库规模增长,还可通过 CLI 工具链扩展搜索、生成幻灯片/图表等多模态输出,并将结果回填以实现知识的持续积累与增值——本质上是将个人探索过程转化为一个由 LLM 驱动、可查询、可迭代、可复用的智能知识资产。
背景
最近我发现一个非常实用的做法:利用大语言模型(LLM)为各个感兴趣的研究主题构建个人知识库。这样一来,我近期处理的 token 中,很大一部分不再用于编写代码,而是转向处理知识(以 Markdown 和图片形式存储)。最新的大模型在这方面表现得相当出色。具体流程如下:
📥 资料收集(Data ingest)
我将原始资料(文章、论文、代码库、数据集、图片等)归档到 raw/ 目录中建立索引,然后使用 LLM 增量式地“编译”出一个 Wiki。这个 Wiki 本质上只是按目录结构组织的一组 .md 文件。它会包含对 raw/ 中所有资料的摘要和双向链接(backlinks),随后将资料归类为不同的概念,为每个概念撰写独立文章,并将它们全部相互链接。为了将网页文章快速转为 .md 文件,我习惯使用 Obsidian Web Clipper 插件;此外我还配置了一个快捷键,用于将所有相关图片一键下载到本地,以便 LLM 能够轻松引用它们。
💻 开发环境(IDE)
我使用 Obsidian 作为 IDE 的“前端界面”,在这里我可以同时查看原始资料、编译后的 Wiki 以及衍生的可视化内容。需要特别强调的是,Wiki 中的所有数据均由 LLM 编写和维护,我极少直接手动修改。我也尝试过一些 Obsidian 插件,以便用其他形式渲染和查看数据(例如用 Marp 生成演示幻灯片)。
❓ 问答交互(Q&A)
真正有趣的地方在于:当你的 Wiki 积累到一定规模后(例如我近期某个研究方向的 Wiki 已有约 100 篇文章、40 万字),你就可以向 LLM 智能体(Agent)提出各种针对该 Wiki 的复杂问题。它会自行展开调研、梳理并给出答案。我原以为必须用上复杂的 RAG(检索增强生成)方案,但在目前这个“相对较小”的规模下,LLM 非常擅长自动维护索引文件和所有文档的简要摘要,因此它能相当轻松地读取所有重要的关联数据。
📥 结果输出(Output)
相比于在纯文本或终端中直接获取答案,我更倾向于让 LLM 为我渲染成 Markdown 文件、幻灯片(Marp 格式)或 Matplotlib 图表,生成后我再次在 Obsidian 中查看。根据查询需求的不同,你可以想象还有许多其他可视化输出格式。通常,我会将这些输出结果“归档/回填”到 Wiki 中,以便为后续的查询进一步丰富知识库。因此,我个人的每一次探索和提问,始终会在知识库中“不断积累与增值”。
🧹 维护检查(Linting)
我还利用 LLM 对 Wiki 进行过一些“健康检查”,例如:排查不一致的数据、(借助网络搜索)补全缺失的数据、发掘有趣的信息关联以作为新文章的选题等。通过这些操作逐步清理 Wiki,提升其整体数据完整性。LLM 非常擅长主动提出后续值得深入探究的问题和方向。
🛠️ 额外工具(Extra tools)
我发现自己正在开发一些额外的工具来处理这些数据。例如,我通过 vibe coding(AI 辅助直觉编程)快速写了一个针对该 Wiki 的小型简易搜索引擎。我既可以直接在 Web 界面中使用它,但更多时候,我更希望通过 CLI(命令行)将其作为外部工具交给 LLM 调用,以应对更大规模的查询任务。
🔭 未来探索(Further explorations)
随着资料库的不断扩大,自然而然会产生进一步的想法:考虑结合合成数据生成与模型微调(finetuning),让 LLM 将数据真正“内化”到模型权重中,而不仅仅依赖上下文窗口(context window)。
📝 核心总结(TL;DR)
收集来自多个指定来源的原始数据 → 由 LLM 将其编译成 .md 格式的 Wiki → LLM 通过各类 CLI 工具对该 Wiki 进行问答操作并持续迭代优化 → 所有内容均可在 Obsidian 中可视化查看。你几乎不需要手动编写或编辑 Wiki,这完全是 LLM 的“工作领域”。我认为这个方向完全有潜力孕育出一款出色的新产品,而不是仅仅停留在拼凑各种脚本的临时方案上。
