跳到正文
原文
Hacker News· sunshowers·· 2 小时前精选AI 评分47

Anthropic Scion 抄袭 Meta Mononoke 争议升级,原作者再发文跟进

More on Anthropic's Scion ripping off Mononoke

AI 导读

Mononoke 前负责人 sunshowers 再发文指控 Anthropic Scion 抄袭 Meta Mononoke,称私下收到确认 Anthropic 团队与 Mononoke 存在人员重叠、抄袭系故意为之。

推荐理由

作者以 Mononoke 前负责人身份,把 Scion 与 Bonsai 数据模型的对应逐项列出,为读者提供可被验证的技术比对与署名边界的参考。

正文 · AI 翻译

在 Hacker News 上讨论。

针对我昨天的文章关于 Anthropic 的 Scion 抄袭 Mononoke 一事,我收到了不少疑问与关切。以下是后续回应,以解答最关键的问题。

这就是抄袭。考虑到我当时所了解的情况,昨天的文章已经尽可能地从善意角度出发,尤其是认为与 Mononoke 的相似之处大多是无意的,未署名致谢也只是因为没有做好尽职调查。然而,文章发布之后,我私下获得了确认:Scion 是有意且明目张胆地抄袭了 Mononoke,尤其是人员上还存在重叠。绝无可能是无意的致敬。我昨天对此就有所预感,但鉴于当时所知有限,不太方便明说。

两者的相似远不止派生数据这一概念。有人指出,派生数据本质上就是一个索引,是个众所周知的概念。我想澄清的是,派生数据只是最引人注目的一个相似点。相似之处远比这更深,延伸到了整个数据模型,以及围绕其构建的诸多结构。

以下是 Anthropic 描述 Scion changesets 的方式:

In Scion, the unit of work is a “changeset,” an entry in a write-ahead log. A changeset stores most of what you’d expect from a commit in git. But where a git commit stores a pointer to the tree, a changeset stores a list of the files that changed relative to its first parent,1 along with content-addressed pointers to the compressed file contents in blob storage. Changesets are created server-side and are available everywhere, instantly. (followed by a pictorial of a changeset)
Anthropic 是如何描述 Scion 的 changesets 的。

Mononoke 也有同样的概念,我们称之为 Bonsai changeset。在 2022 年同一份 Oxide 资料中,我曾这样描述它们:

The Bonsai data model. To solve this problem, we flipped around how we look at commits. Rather than containing a pointer to the root tree object, a Bonsai changeset contains the metadata (author, commit message etc), hashes of parents, plus the list of files changed in it and hashes of blobs. (A Bonsai changeset is still a Merkle DAG, just with a different model.)
我曾如何描述 Mononoke 的 Bonsai changesets。

它们简直一模一样。就连 "Scion" 这个名字也是把 "Bonsai" 的音节倒过来,再去掉 "B"!这也许是巧合,也许不是。

至于派生数据,我还想提请大家注意被构建出来的索引的类型,比如用于 blame 的索引。需要这样做是 Bonsai 数据模型的自然结果,所以需要构建索引并不奇怪;我之所以特别强调,是因为术语和表述方式上的惊人相似——这确实正是我在 Meta 源代码控制团队时一贯的思考方式。

另一组相似之处在于用于执行版本控制查询与变更的服务端 API。这在 Mononoke 中已经实现了,但我相信 Mononoke 之前的其他系统也有类似设计,因此我不会宣称这是新颖的。不过,如果你的做法就是把 Mononoke 指给 Claude,让它照着重新实现一遍,那你设计出来的东西多半也会非常相似。

Bonsai 数据模型非常特立独行。我想强调,源代码控制领域的主流共识是基于 Git 的数据模型。在 2018 年,搭建一个 write-ahead log 风格的 Merkle DAG 与当时其他所有人的做法都相去甚远,并且沿途必须解决若干难题,例如如何执行服务端 rebase(据我所知,这是 Mononoke 中多个新颖算法之一)。2018 年我主导团队设计与实现该模型时,还曾亲自向 Meta 的好几层管理层进行解释。让跨级管理层被拉进来深入讨论一个系统的数据模型,是相当罕见的事。

Bonsai 数据模型同样取得了巨大的成功。 时至今日,近十年过去了,该模型早已被大幅拓展到最初设计参数之外,却依然在稳定运行。当年团队为构建它所付出的努力,至今仍是我职业生涯中最令我自豪的成就之一。考虑到人员上的重叠,Scion 团队没有任何合理的理由不知道这一点。(这正是他们相当合理地将其复制下来的原因!)这就引出了我的下一点:

问题在于署名,而非复制本身。 我在最初的博文中就提到过,我对好的点子被复制这件事完全不介意。我不能接受的是序列号被无意剥离,更不能接受它们被故意抹去。

仅向 Sapling 致谢"来之不易的经验"是不够的。 几位读者指出 Mononoke 是 Sapling 生态系统的一部分。这里的问题在于,Sapling 既可以指 VCS 客户端(sl,最初是从 hg fork 而来),也可以指整个系统。如果你曾在 Meta 的源代码管理团队工作过,你一定清楚这两者之间的区别。此外,二者的相似之处远不止"来之不易的经验"这么简单。Lore VCS 可以声称借鉴了 Mononoke,但它在多个方面也与 Mononoke 有所不同。Scion 与 Mononoke 的相似之处远不止于此,仅仅向 Sapling(甚至不是 Mononoke)致谢"来之不易的经验"是不诚实的。(具体来说,我本以为 Scion 的 changeset 部分会提到 Bonsai 的 changeset,因为那才是他们真正复制的东西。)

这让 Anthropic 的成就大打折扣。 任何将分布式系统投入生产的人都知道,在生产化过程中会出现多少问题。"我们的 LLM 构建了这样一套系统,将其生产化,并在 5 个月内处理了所有随之而来的挑战"这一叙事,远比"Meta 的源代码管理团队花了 10 年构建并生产化这套系统,而我们的 LLM 只需对着它重建并在 5 个月内完成"更具说服力。

……但它依然是一项相当了不起的成就。 能够指着已有的系统并在如此短的时间内将其重建,这仍然令人惊叹。让我感到震惊的是,Anthropic 竟然没有直接承认他们复制了 Mononoke 并在 5 个月内重建了它。即使没有那样宏大,这样的成绩依然值得关注。难道他们不知道自己会被指出这一点吗?

将自己的工作置于更大的背景之中总是有益的。 我们都站在巨人的肩膀上!借鉴并改造已有工作以适应新场景并没有错——这也是我作为工程师所做工作的绝大部分。当你把自己的工作定位为衍生之作时,你就在向前人致敬,正如你希望后人也会向你致谢一样。

一切成就都离不开团队。 就我个人而言,我离开 Mononoke 已经很多年了。这么多年过去,依然有一支团队在继续将这份工作向前推进。Anthropic 公然照搬 Bonsai 数据模型让我深受打击,但请也想想现在仍在维护它的团队——他们才是被最直接抄袭的人。想象一下,他们看到自己的成果被蓄意原样照搬,并被故意标榜为他人的作品,内心会是何等感受。


自从我两天前在 Bluesky 和 Linkedin 上首次发布关于这件事的帖子以来,我还没有看到原始帖子的任何更新。这仍然是大型 AI 公司侵占公共领域、将他人成果据为己有的又一个可耻例证。我不知道从这里开始重建信任需要付出什么,但我现在的默认假设是,Anthropic 的公开工程演讲基本上都是毫无诚意的抄袭之作。这很令人遗憾。

来源:Hacker News · sunshowers.io