用个人数据训练AI Bot的实战经验
开发者分享基于50000条X书签数据构建AI Bot的完整过程。适合想快速搭建个性化AI应用的程序员参考。
开发者分享基于50000条X书签数据构建AI Bot的完整过程。适合想快速搭建个性化AI应用的程序员参考。
智能,是高质量的检索
我基于自己在 X 上收藏和点赞的内容训练了一个 bot。大约 5 万条,都是我多年来潜水围观、与人争论,以及刷到某些让我停下来思考的内容时点击保存积累下来的。
从原理上说,技术部分并不复杂。导出数据,把文本转换成 embedding,构建一套 RAG 流程,再根据自己的写作习惯添加一个风格 prompt。这样得到的系统便可以在回应 prompt 时,先检索你保存过的最相关内容,再以此为基础展开生成。我把它叫作 Bookmark Brain。这个名字究竟是聪明还是尴尬,我还没想好。
但我没有料到的是,它会让我如此清楚地认识到,生成式 AI 究竟是什么。
这个 bot 表现得太好了。问题恰恰就在这里。
当我询问它对 API 设计的看法,或者如何评价当前这一轮 AI 炒作周期时,它给出的回答听起来就像我本人:观点具体,略带不耐烦,并且扎根于一组特定的关注点。效果比我对大多数通用 LLM 使用“用我的口吻写作”这种 prompt 还要好。区别不在模型,而在检索层。两种情况下,模型所做的事情大致相同。真正发生变化的是,它在开始生成之前检索到了什么。
这个认识给我的冲击比预想中更强烈:我们所谓的 AI“智能”,很大一部分其实是检索。系统找到相关内容,把它们与查询混合起来,再生成一段由 embedding 空间中特定邻域塑造的输出。它没有思考,也没有理解。它所做的事情,更接近一种带有记忆能力、极其复杂的自动补全。推理的幻觉来自检索内容的质量,并不是因为系统真的在某种深层意义上进行了推断。
更让人不安的后续是:我开始发现,自己身上也存在同样的现象。许多过去被我称为原创思考的东西,其实是大脑在做一种结构上相似的事情——从一套经过筛选、由各种影响来源组成的内部数据集中进行检索,再以让我觉得新颖的方式重新组合,最后足够流畅地输出,让它看起来像是某种洞见。这个 bot 没有让我觉得自己更聪明,反而让我开始怀疑自己的认知过程。
我的 bot 听起来条理清晰,是因为我的书签本身就具有一致性。多年来,我一直在筛选和构建一种特定的世界观——对科技炒作保持怀疑,对系统和激励机制感兴趣,对含糊空洞的抽象表达感到厌烦。这套世界观已经被写进了数据集。检索把它找出来,模型再把它组织成符合语法的句子。从外部看,整套过程就像智能。
然后,Granta 事件发生了。
如果你错过了这件事:文学杂志 Granta 刊登了一篇被 AI 检测器判定存在问题的文章。结果发现,那篇文章是人类写的,而且它的创作时间甚至早于这些检测器。文章写于 2022 年之前,当时用于评估它的那些工具甚至还不存在。
作者当然非常愤怒。编辑部的回应也处理得很笨拙。真正引起我注意的,是整套流程背后的那种自信——他们相信,检测器给出的分数足以构成某种有意义的证据。
其实并不能。AI 检测器是概率分类器,它们依据人类写作与 AI 写作在数据分布上的差异进行训练。内容密集、风格正式或表达方式不同寻常的文章,经常会触发误判。学术写作、翻译文本,以及任何风格凝练或结构严谨的内容,都可能被标记。检测器并没有在阅读,而是在对统计特征进行模式匹配。随着模型能力提升、写作风格演变,以及训练数据分布与当前现实之间的差距不断扩大,这些特征也会发生变化。
眼看着出版机构、雇主和大学把这些工具当作可靠依据,那种感觉就像在依赖测谎仪。工具检测到的不是欺骗,而可能是紧张、正式,或者一种与当前语境不匹配的表达方式。它最终得出的结论,根本不是它自以为得出的那个结论。
Granta 事件让我具体意识到:我们共同面临着一个问题——总把某种信号误认为它声称要衡量的事物本身。困惑度分数不等于真实性,语义相似性不等于理解。这也正是大多数 AI 能力宣传被夸大的根源。
这便是我每天都要面对的讽刺之处。
我大量使用 AI。我用它构建产品,用它写作,也因为它而能更快完成原型。我并不是一边故作怀疑,一边偷偷依赖它——我确实在依赖它,而且完全公开;与此同时,我也真心怀疑它究竟在做什么,以及为什么围绕它的各种说法总是如此过度自信。
没错,我也是这个问题的一部分。这一点我很清楚。但我构建 Bookmark Brain,恰恰是因为我想真正理解问题是什么——不是停留在观点和评论文章的层面,而是深入到检索日志、embedding 距离,以及某个特定输出为什么会以那种方式产生的层面。对 AI 最有信心的人——无论是布道者还是批评者——通常恰恰是那些从未真正用它构建过任何东西的人。他们只是在回应输出结果,而我想看看里面的管道。
我的 bot 以一种非常具体的方式,把这件事呈现了出来。因为我可以清楚地看到它在做什么——检索、组合、匹配风格——所以我再也无法假装背后的过程有多么神秘。它并不神秘。它是一个非常优秀的模式引擎。而它所擅长的模式,都是人类已经重复创造了足够多次、从而形成了可检索信号的模式。
它做不到的事情也同样清楚。它无法告诉我真正全新的东西。它无法化解我的书签中互相矛盾的观点,只会检索与当前查询在语义上更接近的那一方。它并不持久地知道我最关心什么——这些信息存在于 embedding 权重和检索排序中,而不是存在于某种类似价值体系的结构里。如果我保存了五年来有关尼日利亚经济政策的内容,它可以检索这些内容。但面对一种尚未存在于那些 embedding 中的新变化,它无法告诉我应该如何看待。
这不是批评,只是对这种工具的准确描述。真正值得批评的是,人们——说实话,也包括过去的我——谈论这些系统时,仿佛它们完全运行在另一个层次上。
大多数人最初都会以同样的方式误解生成式 AI。他们看到输出,然后把它映射到人类认知上,因为这是唯一可用的参照框架。输出听起来像思考,所以它就是在思考。这套逻辑可以理解,但它是错的。
实际发生的事情更接近于:系统压缩了人类现有表达的庞大表征,从中检索与当前上下文最相关的部分,再生成一段在统计意义上与这一邻域相一致的延续内容。这并非毫无价值。事实上,它非常了不起。但这不是推理,也不是理解。而且在训练数据分布与实际问题不匹配的领域,它绝对不可靠。
构建 Bookmark Brain,让这件事从抽象概念变成了具体事实。我可以查看检索日志,看到它提取了什么,也可以追溯某个特定回答为什么会以那种方式产生。这种透明度——只有因为系统是我亲手构建的才得以存在——恰恰是人们与封闭系统交互、并把输出拟人化时所缺少的东西。
这件事中,我至今仍在思考的部分是筛选与整理。
我的 bot 之所以有用,是因为我多年来一直在认真筛选内容。输出质量取决于输入质量——不是模型,不是 prompt engineering,而是输入。5 万条书签,反映了一组连贯一致的关注点、一种可以辨识的世界观,以及真实的观点。
如果我毫无判断地收藏所有内容,这个 bot 就会变得语无伦次。垃圾进,垃圾出——只不过规模更大,而且带着一种令人信服的流畅感,让其中的垃圾更难被发现。
这正是生成式 AI 的普遍特性:它不会把坏数据变成好数据,只会让坏数据变得流畅。而流畅恰恰是这样一种属性:它让人们——包括检测器、审稿人,以及那些本应更懂行的人——难以判断摆在眼前的东西究竟是什么。
我构建了一个听起来像我的工具。它之所以有效,是因为我放进了什么,而不是因为模型做了什么特别了不起的事情。模型是合成者,数据集才是作者。
这是我学到的、最能让我看清问题的一点。而几乎所有关于这些系统的讨论,都误解了这一点。
部分评论可能仅对已登录的访客可见。登录后即可查看全部评论。
如果需要采取进一步措施,你可以考虑屏蔽此人和/或举报滥用行为。