关于卢曼卡片盒的想法

前情提要: 在和 gemini 搏斗之后,我选择了重启 zettelkasten 插件

不知今昔是何年……

卢曼的卡片盒模型出现很多年了,但是似乎没有更学术一点的角度总结其思想,确定在现代软件重构实现的样子。

想一下,卢曼的卡片盒,是记忆系统,归档工具,还是思考系统?

记忆系统旨在让人记住东西,而卢曼的卡片盒显然没有为此做优化设计,有些东西是真的编写后变成死档,强行为他建立连接我觉得才是违反设计意图的。

归档工具需要让人方便检索,同时减少重复操作。但我觉得卢曼的编号系统最多方便遍历一个卡片的上下文,而不是检索这条内容是否真的已经编写了,卢曼的卡片盒重复编写是必然存在的事情。

所以,卢曼的卡片盒必然只是一个思考工具,它起到的作用跟草稿纸没什么区别,是一个思想上比较连续的草稿纸,允许你漫无边际思考的时候通过切换上下文的形式实现伪多进程思考。

卡片需要链接,是因为每个思考必然有其前置,新的思考必然是一系列原有思考 + 新的材料碰撞得到的结果。所以,一个理论上最优的卢曼卡片盒,应该是一个脑机形式,检查大脑的任意活动,尝试为所有内容编制目录和索引,允许以多种路径遍历到同一个内容。同时在进行新的思考时,自动把当前思考的全部上下文列举出来,从而能够知道这个想法实际上构成的全部路径,受到了什么内容的影响……本质上就是记录一切输入内容和运行步骤的无限进程影子副本。

举例来说,当我看到一个新闻,产生一个想法,这种理论最优卡片机能立刻提取到我产生这个想法的所有前置思考,还能进一步遍历这些前置思考受到什么材料的影响,前置思考的前置又是什么——一直遍历到无知无觉的婴儿状态,在本能下摄取最初的教育内容,并产生最初想法的那一刻。

这种东西在本质上是大脑的全集副本,因为大脑的运作形式会得到结论后,在长期记忆中抹除上下文,让我们只能清晰的回忆结论,并不自觉地将其作为不需反驳的公理作为前提来进行思考。而一个最优卡片机,会记录下所有“公理”的流变过程。

那么,一个卢曼的现代化实现应该是什么样的?我认为这个实现应该尽可能的接近理论最优卡片机的实现。

首先一点是,这东西应该尽可能减少手动建立链接的过程,或者让其简化。这是因为,思考它应该链接到哪里,这本身就是一种思考,它一方面受到一些当前固有“公理”的影响,另一方面也不可靠。我们真的能清晰列举出一个思考内容的全部前置吗?假如我们做得到,也就不需要外置的思考工具了。

另一方面是,他应该尽可能的摄取思考的当前输入内容。虽然有些思考内容是一种纯粹的反刍运动,只是基于原有思考内容的推理,但更多的情况下是接收到了新的材料。因此,这个工具应该尽可能以方便的形式摄取、保存材料。

在建立链接方面,必须承认完全准确的链接是不可能的:

  • 我们不能准确的知道大脑的全部思考活动
  • 我们不能准确知道大脑的全部接受内容。

但是,建立近似的链接是可以的,这基于以下可能的原理:

  • 时间局部性。当前的思考总是基于稍早一点时间的思考。现在的思考基于一个小时前的思考的可能性高于一天前思考的可能性。
  • 低熵性。同一进程的思考内容总是线性的,换而言之,从之前的思考内容延续到现在的思考内容,熵的值应该是最低的。
  • 内容相似性。我们总是在不自觉的重复或反驳,要么是思考内容或接受内容与之前思考相似,要么相反。

而在摄取内容上,这就是纯粹的工程方案了,虽然直接收集大脑通过感官获取的内容在现在是不实际的,但尽可能简便的收集当前电脑上让人产生思考的内容还是有可能的。


技术尝试,我希望以现代技术来尝试实现自动抓取文档的上下关联性,这主要的想法是借助信息量的熵,准确来说是条件熵。也就是,给定前文的情况下,出现后文的概率是多少?

这在过去完全是不可能的,但现在,LLM 模型实际上就是这样的一个机器。它吃进去前文,然后吐出一个概率分布表,使用 TopK 从里面挑选出概率最高的几个字符,然后再用概率随机选一个输出。

因此,我只需要将前文输入,让后逐个输入后文,得到实际后文每一个字符的概率,我就实际上得到了一个上下文的条件概率。很显然,一个连续的文段,它的字符平均概率是高于不相干的文段的。

我在 qwen3 0.6b 模型上进行了测试,效果还行:

B = 周末陈彬总喜欢来我家吃饭,借着我和我妈在厨房里忙碌的空闲,陈彬会陪着我爸下象棋。本来胜券在握的棋局,陈彬会故意走错一步棋,旗开得胜的爸爸自然对陈彬大加赞赏。一来二去,爸妈渐渐喜欢上了陈彬,总是有意无意地想要撮合我和陈彬在一起,而我每次都是及时将话题转移。这个问题陈彬自己也跟我提过,但我自始至终没有在意过,因为我只把他当“闺蜜”。
  log p(B|A) = -446.00, perplexity = 41.13
B = 梁波整整比我大一轮,年过四旬的他看上去依然意气风华。初次见面是在单位的庆功宴上,他是公司老总的朋友,在公司最近拿下的项目中做出了很大的贡献。
  log p(B|A) = -200.12, perplexity = 77.60
B = 庆功宴之后,我对梁波一直念念不忘,可是萍水相逢,我想以后都没有机会再见到他了吧。就在我为止痴狂的时候,接到了领导的通知,让我去梁波的单位送一份资料。接过领导交代的重任,我的小心脏差点激动的蹦出来。
  log p(B|A) = -290.00, perplexity = 86.57
B = 可是随后,我接受了和梁波一起吃晚餐的邀请。他带我去了自己一直想吃,却没舍得吃的法国大餐。那晚我知道了梁波曾经有过一段婚姻,离异后妻子带着孩子远飞美国,他现在只想重新找一个人生伴侣,他觉得我就是那个他要找的人。
  log p(B|A) = -305.50, perplexity = 74.05
B = 两年之后,昊天因为工作能力突出,已经坐到了销售总监的位置,不仅守护着身边这份美丽的爱情,也拥有着金钱带给他的光环,他相信一定会带给珍珍一辈子的幸福。谁知,当他正沉浸在幸福的生活中时,爱情却来了一段意外的插曲。
  log p(B|A) = -301.50, perplexity = 119.72
B = 珍珍的姐姐善雅30岁了,一直还没有找物件,说实话,善雅比珍珍长得还漂亮,如果说珍珍是一个可爱的小女生,那么善雅就是成熟而又有气质的女人。这么多年,家人着急把她嫁出去,她却一直不肯,每次都是以“我要等待生命中的‘白马王子’”为由拒绝家人为她安排的相亲物件。
  log p(B|A) = -346.25, perplexity = 68.21
B = 善雅不甘心,晚上经常到珍珍的房间里,找她聊天,而聊天的话题都是昊天。每次谈到昊天的时候,珍珍脸上都洋溢着幸福的表情。而善雅却从珍珍的口中了解昊天的一点一滴。
  log p(B|A) = -233.25, perplexity = 59.96
B = 就这样,他帮我修好了车子。我说:“你把你的电话号码给我吧,我回去请你吃饭。”他说:“电话号码可以留下,吃饭,就不用那么客气了吧!”我笑了笑说:“那是应该的!”我们互换了电话号码,他就是奇睿。
  log p(B|A) = -235.25, perplexity = 62.11

=== 各阶段耗时 ===
tokenization: 0.0248 秒
masking: 0.0052 秒
to_device: 0.0005 秒
model_inference: 0.6877 秒
compute_logp: 0.3159 秒

总耗时: 1.0344 秒,平均每样本: 0.1293 秒

但是……太慢了。如你所见,每个样本都需要 0.13s,而且样本量一大、文本一长还没办法批量推理,会爆显存。

我尝试了下据说对内存友好的 RWKV,内存占用确实少了,效果也还能接受,但是……

### RWKV-7 "Goose" enabled ###

Loading ./rwkv7-g1a-0.1b-20250728-ctx4096 (cuda fp16)

namespace(MODEL_NAME='./rwkv7-g1a-0.1b-20250728-ctx4096', head_size=64, vocab_size=65536, n_embd=768, n_layer=12)
[1/5] B 片段计算完成,用时 0.860 秒
[2/5] B 片段计算完成,用时 0.518 秒
[3/5] B 片段计算完成,用时 0.493 秒
[4/5] B 片段计算完成,用时 0.517 秒
[5/5] B 片段计算完成,用时 0.517 秒

>>> 全部 5 个片段计算完成,总用时 3.911 秒

B = 周末陈彬总喜欢来我家吃饭,借着我和我妈在厨房里忙碌的空闲,陈彬会陪着我爸下象棋。本来胜券在握的棋局,...
  log p(B|A) = -2.70
B = 梁波整整比我大一轮,年过四旬的他看上去依然意气风华。初次见面是在单位的庆功宴上,他是公司老总的朋友,...
  log p(B|A) = -3.30
B = 陈彬是只猫,这没错。但他觉得自己更像个喜剧演员,只不过舞台是这个五十平米的家,而观众,永远只有下班回...
  log p(B|A) = -3.06
B = 卡片需要链接,是因为每个思考必然有其前置,新的思考必然是一系列原有思考+新的材料碰撞得到的结果。所以...
  log p(B|A) = -3.28
B = 珍珍的姐姐善雅30岁了,一直还没有找物件,说实话,善雅比珍珍长得还漂亮,如果说珍珍是一个可爱的小女生...
  log p(B|A) = -3.59

这可是 0.1b 模型!比 qwen 0.5b 还慢了 5 倍!

真的只能说接受不了。

发此文的目的也是看看各位有什么比较好的想法,能够比较高性能且快速地判断文段关联性。使用嵌入计算相似性还是作为最后选择吧……毕竟文本内容相似不意味着连续。

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • Ekkozzz

    很有启发的思考!还有用大模型的实践,支持一下

  • 其他回帖
  • 回复楼主顺便回复你。


    关于卡片、学习,我写的《极简化学习》里已经讲明白了,付费内容,这里不赘述。

    PS:刚更新完极简化学习 4.0,介绍文最近还没更新,将就看。


    关于链接,实际上思源已经有足够的底子了,块引 + 别名,就是足够简单快捷的索引系统。这个之前写过反链的一些帖子,麻烦自己翻翻吧。

    简单总结的话,思源反链面板里的反链和提及,就是主动关联和被动关联。

    别名是增加被动关联的索引命中率,比如[[思源笔记]]可以写 思源 这个别名作为链接的可能,无论是主动关联还是被动关联皆可。

    在此之上还有一个“层级”,或者叫做“包含”关系在里面的跨层分布问题,比如学科下面有语数外,英语下面有语法、有主谓宾等,语文同样。


    关于记忆,人脑对于内容的记忆靠谱程度是不可信的,所以需要笔记,需要把“瞬时思考”固化。这个思考包括“关联”的关系。参考警匪片等犯罪嫌疑人关系图等等内容。

    而写下来也不代表记得自己写过,所以内容不出现在你眼前,就等于不存在。所以有你说的“重复的”内容。

    然后因为多义词的问题,导致搜索会产生错误的命中,比如 D 可能只是字母 D,但也有可能是 @88250 这个人。

    PD:这里又涉及关键词越长,命中越准确,关键词越短,书写越方便的问题。


    关于时间局限性、低熵性。

    思考是点,不是线性。因为有了目标,才有了线性的说法。

    解决目标的内容,可以分散在以“年”计的单位时间里。


    写到这里,一些看文时的想法已经忘记了,就到这吧。再次印证记忆的不可靠。

    至于以上这些,还有更多关于思考的模型或其他啥的,极简化学习已经讲了,可以你可以去看看 4.0。卡片笔记法、PARA 等,都是一样的逻辑。

    而关于这套方法的固化,形成软件流程,一部分会落到叶归上。

    1 操作
    Wetoria 在 2025-11-13 01:58:28 更新了该回帖
  • 挺有趣的想法。在说我的想法之前,先谈谈我个人对卢曼卡片笔记的理解。

    卢曼确实是把它作为一个思考的工具,但不是普通的思考工具,而是自己的“第二记忆”,相当于在九万多张卡片上复制了一个自己的“镜像”。

    记录(实际应该是“检索 + 记录”)卡片笔记的过程,在卢曼看来,就是“与卡片盒对话”的过程。折射到现在,也许未来科技中的“脑机”对话,更能够再现卢曼所追求的这种境界吧。

    然而,在谢珀(《Antinet Zettlekasten》的作者)看来,现在数字化技术的超高效检索能力,反而是对卡片笔记创新能力(连接能力)的弱化——因为在检索纸质卡片的过程中,人可能会找到“错误”的卡片,但这种“错误”的检索有时候反而能碰撞出思维的火花,产生新的思考(想法)。——而过于精准的检索,却会让这种“碰撞”更少出现。

    所以,卢曼卡片笔记在数字笔记上究竟该怎样应用,确实是个很有趣、也很有挑战性的问题。我觉得大部分人不会像谢珀那样去搞纸质卡片盒,尤其是在快节奏的中国,不能“移动”的卡片盒难免有点“不合时宜”。

    谢珀对阿伦斯(简中译本《卡片笔记写作法》的作者)“杜撰”了闪念笔记、文献笔记、永久笔记等概念来阐释卢曼卡片笔记法很有意见,认为这是对卢曼卡片笔记法歪曲。

    但我个人反而觉得闪念笔记、文献笔记、永久笔记等概念,确实更适合应用在数字笔记中,阿伦斯的个人创新还是很有价值的(虽然我自己并没有按这三个维度来构建笔记,但多少都受到了影响)。

    由此看来,卢曼卡片笔记法,在数字笔记时代,确实需要创新,需要变革。

    最后,回到楼主的问题:如何能比较高性能且快速地判断文档(块)的关联性?

    我觉得,这事交给目前的各种 AI,均不靠谱。现在的 AI,很容易产生幻觉,在“喂料”不足(或能力不足以遍阅足够内容的上下文)时,它大概率就会瞎编,或给你来一段天马行空的“牛逼文”,这对 AI 来说再容易不过了。

    而我们的思考和想法,在这样的语境下很容易被带偏。当然,AI 也有可能会“涌现”出真正的创意,但这多半要看运气。大多数时候,它就是在胡诌。

    而且,由于我们自己的表达能力的局限,我们写的文档,与我们真正的“思想”,必然会有偏差的。所以让 AI 去找这些文档的关联性,即使有比较高的准确度,也不等于能实现我们自己真正想要的“找到思想之间的关联性”——这是由前述的必然偏差导致的。

    而我认为,真正的核心问题(难点),或许应该是如何解决后面这个偏差。先不说语言表达的问题,假设我们在文档中已经尽我们所能去表达我们的思想了,但如何能让 AI 抓住真正最核心、最重要的内容,这可能就是文档格式所需要发挥的作用了。

    也许,在某些框架结构下,AI 能更准确地把握文档(我们的思想)的本意,从而更准确地找到“我们需要”的关联性。那么,究竟应该设计怎样的框架,也许就是我们要解决的第一个问题。

    以上,就是个人的一点浅见,因为接近睡觉的时间,也没有更深入的思考了(实际也许是我的认知能力不够用了)。所以,仅供参考吧。


    早上睡醒,再补充一点(刚刚想到的):

    在实践用 AI 来分析自己的笔记过程中,我发现,如果笔记的结构没有呈现出逻辑清晰的上下文,那让 AI 来分析,就是一团乱。所以,检索本身固然重要,但笔记的结构本身也很重要。

    再说到 AI 对人的思想的“解读”总会无数次跑偏,我刚刚突然想到,这或许是因为 AI 无法读取我们思想的“上下文”(虽然说人类在思想时,上下文经常会被“杂念”打乱,但我们自己是分得清的),如果笔记能够成为我们思想的“投影”,且呈现出较好的上下文关系,那让 AI 分析我们的“思想”才成为可能。

    否则,说什么 AI 知识库,那都是扯淡。丢给 AI 一团乱七八糟的笔记,它反馈回来的内容,加上它胡乱解读的幻觉内容,多半也是乱七八糟的。要想从中找出对自己有用的东西,有时候,和大海捞针也没什么两样。

    所以,问题的根源仍在我们自己身上,我们“投喂”给 AI 的东西到底是“什么鬼”,我们自己首先必须弄清楚。

    1 回复

推荐标签 标签

  • RabbitMQ

    RabbitMQ 是一个开源的 AMQP 实现,服务器端用 Erlang 语言编写,支持多种语言客户端,如:Python、Ruby、.NET、Java、C、PHP、ActionScript 等。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。

    49 引用 • 60 回帖 • 342 关注
  • WebComponents

    Web Components 是 W3C 定义的标准,它给了前端开发者扩展浏览器标签的能力,可以方便地定制可复用组件,更好的进行模块化开发,解放了前端开发者的生产力。

    1 引用 • 18 关注
  • IDEA

    IDEA 全称 IntelliJ IDEA,是一款 Java 语言开发的集成环境,在业界被公认为最好的 Java 开发工具之一。IDEA 是 JetBrains 公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主。

    182 引用 • 400 回帖
  • Visio
    1 引用 • 2 回帖
  • Sillot

    Insights(注意当前设置 master 为默认分支)

    汐洛彖夲肜矩阵(Sillot T☳Converbenk Matrix),致力于服务智慧新彖乄,具有彖乄驱动、极致优雅、开发者友好的特点。其中汐洛绞架(Sillot-Gibbet)基于自思源笔记(siyuan-note),前身是思源笔记汐洛版(更早是思源笔记汐洛分支),是智慧新录乄终端(多端融合,移动端优先)。

    主仓库地址:Hi-Windom/Sillot

    文档地址:sillot.db.sc.cn

    注意事项:

    1. ⚠️ 汐洛仍在早期开发阶段,尚不稳定
    2. ⚠️ 汐洛并非面向普通用户设计,使用前请了解风险
    3. ⚠️ 汐洛绞架基于思源笔记,开发者尽最大努力与思源笔记保持兼容,但无法实现 100% 兼容
    29 引用 • 25 回帖 • 152 关注
  • 创业

    你比 99% 的人都优秀么?

    81 引用 • 1396 回帖 • 1 关注
  • PWA

    PWA(Progressive Web App)是 Google 在 2015 年提出、2016 年 6 月开始推广的项目。它结合了一系列现代 Web 技术,在网页应用中实现和原生应用相近的用户体验。

    14 引用 • 69 回帖 • 186 关注
  • GitLab

    GitLab 是利用 Ruby 一个开源的版本管理系统,实现一个自托管的 Git 项目仓库,可通过 Web 界面操作公开或私有项目。

    46 引用 • 72 回帖
  • Linux

    Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 Unix 的多用户、多任务、支持多线程和多 CPU 的操作系统。它能运行主要的 Unix 工具软件、应用程序和网络协议,并支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

    960 引用 • 946 回帖
  • 心情

    心是产生任何想法的源泉,心本体会陷入到对自己本体不能理解的状态中,因为心能产生任何想法,不能分出对错,不能分出自己。

    59 引用 • 369 回帖 • 2 关注
  • 数据库

    据说 99% 的性能瓶颈都在数据库。

    348 引用 • 765 回帖 • 1 关注
  • 持续集成

    持续集成(Continuous Integration)是一种软件开发实践,即团队开发成员经常集成他们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。

    15 引用 • 7 回帖
  • WordPress

    WordPress 是一个使用 PHP 语言开发的博客平台,用户可以在支持 PHP 和 MySQL 数据库的服务器上架设自己的博客。也可以把 WordPress 当作一个内容管理系统(CMS)来使用。WordPress 是一个免费的开源项目,在 GNU 通用公共许可证(GPLv2)下授权发布。

    46 引用 • 114 回帖 • 139 关注
  • golang

    Go 语言是 Google 推出的一种全新的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(Rob Pike)说:我们之所以开发 Go,是因为过去 10 多年间软件开发的难度令人沮丧。Go 是谷歌 2009 发布的第二款编程语言。

    502 引用 • 1397 回帖 • 240 关注
  • WiFiDog

    WiFiDog 是一套开源的无线热点认证管理工具,主要功能包括:位置相关的内容递送;用户认证和授权;集中式网络监控。

    1 引用 • 7 回帖 • 633 关注
  • H2

    H2 是一个开源的嵌入式数据库引擎,采用 Java 语言编写,不受平台的限制,同时 H2 提供了一个十分方便的 web 控制台用于操作和管理数据库内容。H2 还提供兼容模式,可以兼容一些主流的数据库,因此采用 H2 作为开发期的数据库非常方便。

    11 引用 • 54 回帖 • 691 关注
  • Rust

    Rust 是一门赋予每个人构建可靠且高效软件能力的语言。Rust 由 Mozilla 开发,最早发布于 2014 年 9 月。

    60 引用 • 22 回帖 • 2 关注
  • 强迫症

    强迫症(OCD)属于焦虑障碍的一种类型,是一组以强迫思维和强迫行为为主要临床表现的神经精神疾病,其特点为有意识的强迫和反强迫并存,一些毫无意义、甚至违背自己意愿的想法或冲动反反复复侵入患者的日常生活。

    15 引用 • 161 回帖 • 1 关注
  • ZooKeeper

    ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务,是 Google 的 Chubby 一个开源的实现,是 Hadoop 和 HBase 的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

    61 引用 • 29 回帖 • 14 关注
  • Hadoop

    Hadoop 是由 Apache 基金会所开发的一个分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。

    95 引用 • 122 回帖 • 634 关注
  • V2Ray
    1 引用 • 15 回帖 • 4 关注
  • JVM

    JVM(Java Virtual Machine)Java 虚拟机是一个微型操作系统,有自己的硬件构架体系,还有相应的指令系统。能够识别 Java 独特的 .class 文件(字节码),能够将这些文件中的信息读取出来,使得 Java 程序只需要生成 Java 虚拟机上的字节码后就能在不同操作系统平台上进行运行。

    180 引用 • 120 回帖 • 1 关注
  • AWS
    11 引用 • 28 回帖 • 2 关注
  • VirtualBox

    VirtualBox 是一款开源虚拟机软件,最早由德国 Innotek 公司开发,由 Sun Microsystems 公司出品的软件,使用 Qt 编写,在 Sun 被 Oracle 收购后正式更名成 Oracle VM VirtualBox。

    10 引用 • 2 回帖 • 14 关注
  • 电影

    这是一个不能说的秘密。

    125 引用 • 610 回帖
  • CSS

    CSS(Cascading Style Sheet)“层叠样式表”是用于控制网页样式并允许将样式信息与网页内容分离的一种标记性语言。

    200 引用 • 545 回帖
  • NetBeans

    NetBeans 是一个始于 1997 年的 Xelfi 计划,本身是捷克布拉格查理大学的数学及物理学院的学生计划。此计划延伸而成立了一家公司进而发展这个商用版本的 NetBeans IDE,直到 1999 年 Sun 买下此公司。Sun 于次年(2000 年)六月将 NetBeans IDE 开源,直到现在 NetBeans 的社群依然持续增长。

    78 引用 • 102 回帖 • 724 关注