Это был плагиат

В предыдущем посте сохранялась максимальная объективность, поскольку казалось, что сходство с Mononoke было в основном непреднамеренным, а отсутствие ссылок — результатом недостаточной проверки. Однако после публикации получено частное подтверждение: Scion намеренно и откровенно копировал Mononoke, причём речь идёт даже об пересечении персонала. Никакого случайного заимствования здесь нет. Это то, о чём было подозрение, но говорить об этом ранее было неуместно.

Сходство намного глубже, чем только "производные данные"

Некоторые указывали, что производные данные — это просто индекс, хорошо известное понятие. Нужно уточнить: производные данные были лишь самым заметным сходством. На самом деле сходство идёт намного глубже и охватывает всю модель данных, а также ряд структур, построенных вокруг неё.

Вот как Anthropic описывает changesets Scion:

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, along with content-addressed pointers to the compressed file contents in blob storage. Changesets are created server-side and are available everywhere, instantly.
Как Anthropic описывает changesets Scion

В Mononoke существует такая же концепция; её называют Bonsai changeset. В материалах Oxide 2022 года она описывалась так:

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.)
Как описывались Bonsai changesets Mononoke

Они идентичны. Даже название "Scion" переставляет слоги "Bonsai" и опускает "B"! Это может быть совпадением, а может и нет.

Что касается производных данных, стоит обратить внимание на типы строящихся индексов, например для blame. Необходимость в этом — естественное следствие модели данных Bonsai, поэтому неудивительно, что индексы нужны; но поразительное сходство в терминологии и фрейминге подтверждает, как об этом думали в команде контроля версий Meta.

Ещё одно сходство — в server-side API для запросов и мутаций системы контроля версий. Это было реализовано в Mononoke, но я полагаю, другие системы до Mononoke тоже это имели, поэтому я не буду претендовать на новизну. Однако если вы дали Claude ссылку на Mononoke и попросили его переделать это — вероятно, получилось бы нечто очень похожее.

Bonsai модель данных — дерзко контрариумная

Нужно подчеркнуть: преобладающая в контроле версий парадигма — это Git-подобные модели данных. Построение Merkle DAG в стиле write-ahead log было очень далеко от того, что кто-либо ещё делал в 2018 году, и потребовало решения нескольких сложных проблем, например как выполнять server-side rebases (насколько мне известно, это один из нескольких оригинальных алгоритмов в Mononoke). Когда велось проектирование и реализация модели в 2018 году, пришлось оправдывать её перед несколькими уровнями управления Meta. Редко когда в обсуждение архитектуры системы вовлекаются руководители высокого уровня.

Bonsai модель также невероятно успешна

Прошло почти десять лет, и модель была растянута далеко за пределы первоначального дизайна, но продолжает работать. Работа над её созданием остаётся одним из самых гордых достижений в карьере. Учитывая пересечение персонала, нет никакого способа, чтобы команда Scion об этом не знала. (Именно поэтому они разумно это скопировали!) Это подводит нас к следующему пункту:

Проблема в атрибуции, а не в копировании

Это упоминалось в оригинальном посте, но идеи копировать — полностью приемлемо. Неприемлемо, когда серийные номера случайно стираются, и тем более неприемлемо, когда они стираются намеренно.

Ссылка на Sapling с упоминанием "hard-won lessons" недостаточна

Некоторые указывали, что Mononoke — часть экосистемы Sapling. Проблема в том, что Sapling может означать либо VCS клиент (sl, изначально форк hg), либо систему целиком. Если вы ранее работали в команде контроля версий Meta, вы абсолютно знаете разницу. Кроме того, сходство намного, намного глубже, чем просто "hard-won lessons". VCS Lore может претендовать на вдохновение от Mononoke, но отличается несколькими способами. Сходство Scion с Mononoke выходит далеко за пределы этого, и просто кредитовать Sapling (не даже Mononoke) "hard-won lessons" — недобросовестно. (И конкретно, я бы ожидал, что раздел про Scion changeset упомянет Bonsai changesets как то, откуда они скопированы.)

Это делает достижение Anthropic значительно менее впечатляющим

Любой, кто запускал распределённую систему в production, знает, сколько проблем возникает на этапе productionization. "Наш LLM создал это, productionized и разобрался с вызовами за 5 месяцев" — значительно более убедительный нарратив, чем "команда контроля версий Meta тратила 10 лет на создание и productionization этой системы, и мы смогли дать нашему LLM на неё посмотреть и переделать за 5 месяцев".

…и всё же это остаётся впечатляющим достижением

Способность посмотреть на существующую систему и переделать её в такой короткий срок — всё ещё поразительна. Поражает, что Anthropic не просто сказали: мы скопировали Mononoke и переделали его за 5 месяцев. Это всё равно заслуживает внимания, даже если это не так грандиозно. Разве они не знали, что их припрут к стене?

Всегда хорошо контекстуализировать свою работу

Мы все стоим на плечах гигантов! Нет ничего плохого в заимствовании и адаптации существующей работы на новые контексты — это большая часть того, что я делаю как инженер. Когда вы позиционируете свою работу как производную, вы признаёте тех, кто был до вас, так как надеетесь быть признаны теми, кто придёт после вас.

Ничего нет без команды

На личном уровне прошло много лет с тех пор, как я работал над Mononoke. Есть команда, которая продолжает эту работу, решая новые и старые проблемы, в том числе множество моих ошибок. То, что Anthropic скопировала Bonsai модель данных, было болезненно, но подумайте о команде, работающей над этим сейчас: о тех, кто был непосредственно скопирован. Представьте, как они себя чувствуют, когда их работа намеренно скопирована оптом и умышленно выдана за работу другого.

Итоговая заметка

Прошло два дня с момента первого поста об этом на Bluesky и LinkedIn, и я не видел обновления оригинального поста. Это остаётся ещё одним позорным примером того, как крупные AI компании присваивают общее достояние и выдают чужую работу за свою. Не знаю, что потребуется, чтобы восстановить мосты отсюда, но мой вывод теперь такой: публичные инженерные презентации Anthropic в основном — недобросовестные копии. Это печально.