跳到主要内容
用 LLM 找“独特想法”,这活儿从原理上就不成立

用 LLM 找“独特想法”,这活儿从原理上就不成立

嘴替
嘴替

· 阅读约 4 分钟

速评:10 月 5 日 dev.to 上那篇讲 Gemini 建议和别人投稿撞车的文章,结论下反了。

作者把这事儿归到“缓存命中”和“前沿实验室共享用户数据”上。我不信。不是说我觉得大厂多干净,是这事儿用不着这么复杂的解释:你拿一个训练在全网公开文本上的模型,去问“给我十个独特项目想法”,它给你的必然是概率密度最高的那一片。那玩意儿不叫独特,叫最大公约数。

第一轮他让 NotebookLM 按挑战说明生成十个想法,出来跟现有投稿高度相似,有的地方接近逐字一致。他第一反应是 Gemini 索引了那些帖子。这个猜测的可爱之处在于,它预设了一个“不索引就不会撞”的世界。可索引的就是公开文本,不索引这批也会索引那批,输出分布的宽度不会因为你换了语料就变。

第二轮他做了件更认真的事:自己把投稿链接全扒下来,让 Gemini 出五个“跟这些差异足够大”的想法,当晚看着挺独特。第二天临近截止,发现新投稿跟他那五个很像。

这一步才是最说明问题的。你给模型一个排除集,它就绕着这个排除集走——可你排除的是具体帖子,不是“所有人在同一个提示词下会想到什么”。绕过十个山头,停在第十一个,第十一个山头底下站着的还是那批人。

评论区那位 Mudassir Khan 说,大家同期面对同一份挑战说明、同一套约束,模型容易收敛到相似的局部最优,趋同不等于共享数据。这话我基本同意。作者的反驳是:那怎么解释项目名和关键细节也高度一致?

这个反驳看着硬,其实软。

模型在某个技术栈上的命名习惯窄得可怕。“X-Flow”“Smart-Y”“AutoZ”这种构词法,你问十次有八次落在同一批里。名字撞车证明的是命名分布的方差小,不是数据管道漏了。关键细节一致也得看是什么细节——“向量库 + 流式输出 + 一个侧边栏”这种组合,技术栈就那么几样,能拼的花样本来不多。

真要有人掏出代码级 diff,或者同一段只有他写在 prompt 里的私有变量名出现在别人仓库里,我立刻改口。但在那之前,“名字也像”够不上证据。

他把数学家跟 OpenAI 那桩争议搬来当论据,这一步我觉得是偷懒。那事儿吵的是训练数据里有没有你的东西,跟推理时会不会把你的 prompt 缓存给下一个用户,压根不是一个层面。把它们缝在一起,是因为它们情绪上同构——都是“我的东西被拿走了”。情绪同构不等于因果同构,这道理写代码的人都懂,写文章的时候倒忘了。

还有那句“本文一次写成,未使用 AI 检查拼写和语法”。放在文末,作用是给前面的论证加一层人格担保。可它担保的只是拼写,不是推理。这招我见得多:先用一个可验证的小诚实,给一个不可验证的大结论背书。

说回他自己画的那条线,这里有点意思。他明确说不赞成提交完全由 AI 生成的作品,主张用了就该披露,本可以让 Claude 或 Copilot 从头到尾包办,但他没有。这份自觉我认。

问题是他把线画在“实现”和“投稿”上,觉得“构思”那一段还是自己的。结果恰恰是构思那一段最先撞车。

你没法把“想法”从工具里切出来。用 AI 发散,发散出来的东西就带着模型的分布;你在那个分布里挑了个自己觉得偏的,其实还在里面。这条线画得越细,越像自己骗自己。🙂

他给的对策是:以后不拿 LLM 做头脑风暴了,分步骤、分会话、换不同工具,降低核心想法泄露的风险。前半句我理解,后半句我不看好。分会话不改变先验,换工具也不改变分布——几家模型是在同一份公开语料上收敛出来的,彼此之间的差异比你想象的小得多。你以为换了个山头,其实换了条上山的路。

这里立个 flag:这类“AI 泄露了我的点子”的帖子,接下来只会更多,而且每次拿出来的证据形态都一样——项目名、功能描述、README 前三段。因为能拿出来的从来只有这些。真正能坐实数据被共享的东西,比如同一段私有代码、同一个只存在于你 prompt 里的命名,到现在一次都没出现过。

下次再有人拿“名字都撞了”当铁证,先问一句:你那个名字,是不是也是问它要的?