摘要
Justine Tunney 讲述了她在开源项目中与匿名贡献者的经历,包括一次抄袭指控以及随后的健康问题,强调了像 llama.cpp 和 llamafile 这样的项目中网络毒性的挑战。
暂无内容
查看缓存全文
缓存时间:
2026/05/29 01:14
# 社会敌意
来源:https://justine.lol/animus
2026年5月28日,于 justine 的网页(https://justine.lol/index.html)
在开源领域工作面临的最大挑战是,这里缺乏制度化的筛选流程,因为目标是让人们自行组织并构建东西。这意味着许多参与者从未有机会与世界顶尖群体中最优秀的人共事。在2010年代的文化战争期间,第一个试图解决如何包容这些非凡个体的人是 Coraline Ada Ehmke,她编写了《贡献者契约》(https://www.contributor-covenant.org/version/2/1/code_of_conduct/)。我一直认为她的解决方案过于激进,因为我为自己的项目找到了一个**简单得多的答案**(https://github.com/jart/cosmopolitan/blob/master/CONTRIBUTING.md):绝不接受匿名贡献,并且直到贡献者发送电子邮件承诺将版权转让给我,才能合并一行代码。
我一直认为自己的安全策略有点过于多疑,所以当 llama.cpp 在2023年出现时,我觉得 Gerganov 写的代码如此优美,以至于我做了自己发誓永不触碰的事:与他的团队中一位名叫 Slaren 的匿名开发者合作。这是五年来我第一次在一个不属于自己的项目上与别人共同编写改动。在提交了**我们的工作**(https://github.com/ggml-org/llama.cpp/pull/613)之后,他随后跑到 4chan(https://justine.lol/4chan.txt)上指责我抄袭,声称连我的改动都是他的原创。社区对此的反应是一个有趣的案例研究,展示了自文化战争以来一些开发者学会的狡诈手段,因为 llama.cpp 的思想中心一直位于 4chan。正是他们最初泄露了 Meta LLaMA v1 的权重。你可以将那些用户在论坛上的言论对应到他们在 GitHub 上的匿名账号。由于连续数月阅读关于我的无过滤言论导致眼睛疲劳,我平生第一次出现了偏头痛,最终进了医院(因为我没有健康保险,只能在急诊室等待)。这件事很不寻常,因为社区最初对我的工作反应积极,直到某个成员感到被我威胁——而由于他们都是匿名,很难证明这不仅仅是少数几个人所为。Wendy Hanamura(https://www.linkedin.com/in/wendyhanamura/)在**取消我的邀请**(https://justine.lol/wendy.txt)参加互联网档案馆演讲时,引用的正是这个理由。
无论如何,我很高兴存在这些秘密渠道,因为我最大的竞争优势就是监视 4chan 上人们抱怨哪些拉取请求,然后在 Gerganov 之前将它们合入 **llamafile**(https://github.com/mozilla-ai/llamafile)。正是这样,我的 **Mozilla Builders**(https://builders.mozilla.org/)项目才能在 Gemma 2 等新模型发布时,比任何其他草根项目都更早支持。我在 Hugging Face 上获得了数十万次下载。下载量如此之大,以至于 Mozilla 都不敢相信,因为我们的问题追踪器上几乎没人出现。Mozilla 赞助我的工作是因为他们想支持社区,但就目前所见,社区似乎并不存在。我一直以为这是因为我的代码实在太好了。在前世,我最初受训使用 Java 编写反向贩卖机的自助服务亭软件时,除非出问题,否则没人会联系供应商。而 llamafile 是一个**从无到有**的项目,我花了六年时间,从一个空文件和汇编器开始,我有足够的时间自己解决大部分错误。
我甚至写了一篇**博客文章**(https://justine.lol/mmap/)给予 Slaren 更多肯定,因为这在他心中灌输了一种虚假的自信,促使他去解决更难的问题,比如三维数字的乘法。为了解决由此导致的混合专家模型性能问题,我试图在 **PR #6840**(https://github.com/ggml-org/llama.cpp/pull/6840)中上游我的 tinyBLAS 张量乘法代码,这是一个与我合作的好例子。Gerganov 的博士导师是 Iwan Kawrakow,他是该项目的幕后力量。他发明了许多人用于压缩权重的“K”量化格式。他对我的改动很好奇,我告诉他,如果他将我的块分块技术与他的量化方法结合,他能构建出比我更好的矩阵乘法内核。
llamafile 最终收到了来自 Iwan 的如潮拉取请求,这些请求采用 Apache 2.0 许可,这样 Gerganov 就无法使用它们。这使得我们拥有了比其他任何项目都更快的 CPU 推理速度。这意味着消费者和企业更有可能在不购买昂贵 GPU 的情况下使用 LLM。我们实现了这一点,尽管 llama.cpp 团队拥有超过一百万美元的资金,并且在 Iwan **转去**(https://github.com/ikawrakow/ik_llama.cpp)启动自己的项目后,被 Hugging Face 成功收购。
Hacker News 是我在网络上最喜欢的地方,因为它是网上好奇心的最后堡垒。这是我在2020年重启职业生涯的作弊码。我做的第一件事是写了一篇关于 **αcτμαlly pδrταblε εxεcμταblε**(https://news.ycombinator.com/item?id=24256883)的文章,并将其托管在 Google Cloud Storage 存储桶中。当用户对我 CDN 网址的外观及其使用希腊字母表示担忧时,Hacker News 版主 dang **表示**(https://news.ycombinator.com/item?id=24264514):
> 人们多年来当然一直在玩这类把戏。我们通常不允许这样做,实际上对此相当严格。但所有规则都有例外。这篇帖子的质量如此之高,以至于觉得覆盖作者创作的任何方面(包括标题这样的怪癖)都不合适。这可能与普通的标题推销有表面上的相似,但作为每天与垃圾信息打交道的人,我可以告诉你,这类噱头很少与一流的黑客技艺相联系。对内容的尊重要求我们足够仔细地观察,以发现真正特殊的案例,将它们从泥泞中挑出来,并给予特殊的位置。
那天我如此高兴地受到欢迎,以至于我继续构建了其他业余项目,比如 redbean,它是**有史以来投票数第六高**(https://bestofshowhn.com/)的 Show HN 主题。我还制作了 SectorLISP(https://justine.lol/sectorlisp2/)(世界上最小的 LISP 解释器)和 SectorLAMBDA(https://justine.lol/lambda/)(一个 383 字节 x86-64 可执行文件中的二进制 lambda 演算解释器)。经过几年这样的努力,大门终于开始为我敞开。Mozilla 邀请我每周参加 MIECO 会议。我一生中最快乐的日子之一是当一位维基百科编辑来清理我文章中的 BLP(活人传记)问题时。我很高兴被一个伟大的网站公平对待,尽管我的文章很短,因为进入我传记的大部分工作都在裁决我是否应该被**收录**(https://en.wikipedia.org/wiki/Wikipedia:Articles_for_deletion/Justine_Tunney_(2nd_nomination))。
llamafile 基于我的 **Cosmopolitan C 库**(https://github.com/jart/cosmopolitan/),LWN 写了一篇**文章**(https://lwn.net/Articles/997238/)探讨其技术深度,比包括我在内的任何人之前写过的都要好。该网站的拥有者 Jonathan Corbet 很容易受影响。他不审核自己的网站,并将管理员权限限制在避免冲突上。当 **Jürgen Geuter**(https://social.kernel.org/notice/AoGrI57zccg4goU4CO)告诉他 cosmopolitan 是一种反犹太主义的狗哨,并且我的存在是为了摧毁民主时,Jonathan 决定在文章顶部添加一份道歉,同时继续保留那些恶意的批评,并阻止新的评论发表。
Lobsters 是寻求坦诚反馈的最佳去处。我的 **AI 训练不应抹去作者身份**(https://justine.lol/history/)博客文章原本有一个更强调的标题。我的一个问题在于,我在 Hacker News 上太受欢迎,以至于那里的人现在不太批评我了,即使我错了也是如此。但由于你总是可以指望 Lobsters 告诉你他们的想法,当我看到有人抱怨他认为标题应该是什么时,我就直接用了他的想法而不是我自己的。这激怒了版主,当他看到我在根据他网站上的反馈优化写作风格时,因为他已经**禁止了我**(https://lobste.rs/~jart)发布垃圾内容,同时还有我邀请的每一个人,比如 woodrush,我鼓励他分享他的 LAMBDALISP(https://github.com/woodrush/lambdalisp)项目。于是,那天 Lobsters 也禁止了我的域名,这样就没有人能发布我的文章了。
如今美国政府给人的印象是不希望像我这样的人参与公共生活。由于我是志愿者,而且生活中的一条普遍规则是,我只在他人需要并希望我帮助时才提供帮助。所以当唐纳德开始他的第二任期时,我在 **Gradient Canopy**(https://realestate.withgoogle.com/bayview/)找到了一份工作,帮助改进其**张量处理单元**(https://en.wikipedia.org/wiki/Tensor_Processing_Unit)在 Gemini 上的性能。这是一个隐身的好地方,因为这是一栋如此隐秘和安全的建筑,连谷歌员工都不允许随意进入享用免费午餐。在里面你会发现 Sergey 被一群开发者包围,他们比 Gale Boetticher 更用心地冲泡咖啡,研究着一个充满爱因斯坦求和约定的代码库。我走了那么多路,骑了那么多小 gbike,体重减轻了二十磅。这基本上就像是被流放到天堂。不幸的是,那位为争取我加入而奋斗的朋友不得不休陪产假。然后公司花费数十亿美元聘请了 Noam Shazeer,他被列为《注意力就是你所需》(https://arxiv.org/pdf/1706.03762)论文的作者,因此人们认为他发明了 AI。他利用巨大的财富和权力做的第一件事就是分享他对跨性别者的**敌意**(https://www.yahoo.com/news/articles/google-cracks-down-posts-2-200436496.html),而大约在那时,我因业绩原因被解雇了。
我在 Mozilla 共事的三个人在我对 TPU 产生好奇后都转去做不同的事情了,因为我们认为 llamafile 项目失败了。但 Mozilla 仍然找到了一个足够热爱它并继续工作的团队。他们的目标之一是引入对新模型的支持。他们决定通过取消供应商绑定并与规范上游代码同步来实现这一点。他们撰写了一份关于由此导致的 MoE 模型 **15 倍性能倒退**(https://gist.github.com/aittalam/de0f8a494ff17d38c100f7ad08c0d7da)的优秀报告。这是因为他们仍在摸索如何重新引入 Iwan 的代码,Gerganov 也停止合并我的改动,而且他没有空间容纳 **GeLU**(https://github.com/ggml-org/llama.cpp/pull/8878)。
我希望 llamafile 团队能够快速行动并打破常规,因为他们正在独立验证我难以解释的事情。由于 llamafiles 使用我的 Actually Portable Executable 文件格式,发布产物被设计为永久耐用。我的历史 git 修订版也通过多个操作系统上的确定性构建可再现性进行了密封,使源代码也成为一个永久的活体产物,因为所有构建工具都是 Actually Portable Executables。团队可能犯的任何错误都不会威胁到我的遗产或阻止用户继续享受该软件。团队的努力只能增加价值。因此,加上其独立的垂直集成特性,llamafile 提供了任何 AI 平台中最强有力的保证:你将拥有完全控制权,并且能够永远依赖它在你的业务操作中精确且可预测地运行。
如今大多数计算机都安装了监控可执行文件的软件。这给 Actually Portable Executable 带来了独特的挑战,因为多语言编程是一种安全研究人员广泛研究过的编码技术,他们只见过它被滥用而从未被使用过。我的程序多年来一直被标记为恶意软件,尽管我本着善意努力遵守每个操作系统所有记录在案的实践指南。
Wiz 也制造安全工具,但他们不仅阻止不需要的软件运行,还利用其可见性量化开源项目的影响,然后发布汇总报告。**2025 年云端 AI 现状**(https://www.wiz.io/reports/the-state-of-ai-in-the-cloud-2025)指出,llamafile 被三分之一组织使用,这使得它比 ollama、llama.cpp、TensorFlow,甚至 Anthropic SDK 更加生产化。如果人们在分配资源时能够使用实证分析来了解谁的软件正在被使用,那就太好了。
离开谷歌后我休息了很多,最近我又对 Cosmopolitan Libc 的开发产生了兴趣。上周我在摆弄它的 `qsort()` 函数时,注意到我可以使用一种技巧将 memcpy() 调用内联,使 smoothsort 速度提升 1.5 倍到 3 倍。这是我用替代堆排序作为二次快速排序后备路径的算法。Smoothsort 不依赖 `malloc()`,这意味着它在信号处理程序中使用是安全的。这个发现最有趣的部分在于,Musl Libc 的 `qsort()` 函数根本没有进行快速排序,而是直接调用 smoothsort。因此,我的改动潜在影响很大,我忍不住向 Musl 邮件列表发送了一个补丁。第二天我收到了 Rich Felker 的邮件,拒绝了这次改动,然后他**告诉我**(https://www.openwall.com/lists/musl/2026/05/22/7),他对我参与其中感到不舒服。
几天前,我收到了纽约州发出的税务逮捕令。他们认为我2018年没有纳税,要求的金额是我目前年收入的两倍多。康涅狄格州也干这种事:他们会提交税收留置权,拿走我的钱,然后几年后一张支票神秘地寄到,返还大部分,再然后过了一年,他们会打电话说我还没交税。这就是过去十年在加州生活的写照。
第一位技术专家是普罗米修斯,他从神那里偷来火种并赠予人类。众神认为人类不配烹饪食物,于是永远折磨他。这是一个在历史上反复重演的故事。我最喜欢的电影是《为人师表》,讲述一群来自贫民窟的孩子学习了微积分并在 AP 考试中取得优异成绩,但成绩被取消,被迫重考的故事。每当一个群体获得了其他人认为他们不应该拥有的知识时,总要付出不公平的代价,否则社会无法接受。
我是如此多不受欢迎群体的交汇点,我已经理解了他们的想法。如果你使用贝叶斯推断来计算我是一个好人的概率,结果会使得双精度浮点数下溢。实际上,这仅仅意味着我是一个好奇心强的人,没有太多恐惧,因为我从来没有什么可失去的。如果有一天社会选择接受我,那么我收到的负面关注将会被看作它本来的样子,然后人们将能够安全地审视我一生中善待他人和引人注目的公共服务记录。我所有的……(原文未结束,但翻译截止于此处)
相似文章
X AI KOLs Following
一个故事描述了在发布 900 美元赏金后,AI 机器人如何用垃圾评论和未经测试的 PR 淹没了一个 GitHub 仓库,迫使维护者实施如贡献者白名单和声誉机器人等变通方法,凸显了 GitHub 缺乏反机器人机制。
Lobsters Hottest
一篇分析 Bun 实验性使用 LLM 将其 Zig 代码库转译到 Rust 所引发的争议的文章,强调公众的强烈反应源于透明的开发实践而非实验本身。
Reddit r/LocalLLaMA
无论是 opencode、VS Code Copilot 扩展还是其他任何“开源”AI 工具,我很少见到 llama.cpp 被当作一级支持的提供商。它们全部支持 ollama,偶尔还有 LMStudio。从工程角度来看,把 llama.cpp 列在和 ollama 同样的位置几乎零成本。或者更棒的做法是,提供一个不依赖特定标签的 OpenAI API 兼容端点,让我自行填写端口号和端点地址。这确实令人恼火,因为 ollama 就是个窃取 llama.cpp 成果的低劣叛徒,尽管明眼人都看得出它根本不是 OSS 生态的好成员,却依然占据着极高的用户关注度。不过如今的 llama.cpp 对普通开发者(当前主要用户群)已经非常实用,对普通大众也完全够用。我真的强烈希望这篇帖子能被开发这些工具的工程师们看到。
Lobsters Hottest
文章认为,AI 生成的代码和闭源软件本质上安全性更低,像 Anthropic 的 Mythos 这样的大模型会加剧漏洞,唯有开源项目才值得信赖。
Lobsters Hottest
一位开源维护者解释为何现在更偏爱由 LLM 生成的代码,而非社区 PR:AI 辅助能降低风险与摩擦,将贡献价值转向反馈、缺陷报告与设计讨论。