DeepDigest
Leiphone · · ~5 мин

Scion вместо Git: как Anthropic решает проблемы контроля версий

Anthropic заменила Git на систему контроля версий Scion, что позволило существенно сократить затраты ресурсов. GitHub модернизировала систему сканирования ключей, используя доработанную модель ModernBERT. Колумбия университет и Google DeepMind с помощью BTTF преобразовали сигналы моделирования чипов в SQLite для выявления аномалий.

L Leiphone

В последние месяцы технологические компании активно модернизируют свои системы разработки. Так, Anthropic столкнулась с резким ростом объёма кода и была вынуждена заменить Git на систему контроля версий Scion. Над Scion 7 инженеров работали 5 месяцев. Результаты внедрения впечатляют: если в мае Anthropic ежедневно объединяла около 2500 изменений кода, то к сентябрю этот показатель превысил 30 000. При этом CI‑система компании ежедневно выполняла около 25 млн операций извлечения кода.

Git обеспечивает работу в автономном режиме, но для задач Anthropic (CI‑задания и агентские песочницы) это создаёт избыточные затраты. История основного филиала Anthropic приближается к 100 ГБ, сжатые рабочие копии — более 25 ГБ. При 25 млн ежедневных извлечений теоретический трафик превысит 600 ПБ. Scion решает эти проблемы: он сокращает клиентскую часть до лёгкого интерфейса. Основные операции (создание, объединение, перебазирование и запрос истории) выполняются на центральном сервисе, а локально — только отслеживание изменений файлов и поддержание небольшого кэша. CI может вычислять diff через API без полного извлечения.

В Scion вместо Git‑коммитов используются changeset: они записывают изменённые относительно первого родительского коммита файлы в виде предварительных журнальных записей, используют указатели с адресацией по содержимому. Создание changeset не требует генерации Git packfile и немедленного перемещения общих ветвей. Scion поддерживает derived data для blame, истории путей и графиков коммитов — данные предварительно вычисляются по родительским коммитам либо генерируются при запросе.

Процесс работы с Scion выглядит так: при проверке через «» (:) клиент scn запрашивает только недостающие tree и blob, начиная с целевого каталога. Запросы проходят через scion-daemon, область scion-cache, затем scion-server обращается к Spanner или объектному хранилищу. Объекты после записи неизменяемы, кэш можно повторно использовать между задачами — это сокращает переговоры, сжатие и повторную передачу. Anthropic заявляет, что уровень попадания в кэш превышает 99%, а также ограничивает поток обращений к источнику при сбоях. После миграции Scion требует в 200 раз меньше ресурсов CPU и памяти по сравнению со старой системой Git‑зеркал, время проверки сократилось с минут до секунд, CI высвобождает около 25% ресурсов CPU.

Кроме того, Anthropic разрабатывает инструменты Antique (для рецензирования кода, поиска исходного кода, IAM и массового слияния) под новый протокол. При этом компания столкнулась с новой проблемой: ещё до завершения тестирования в основную ветку могут быть внесены сотни или тысячи изменений. Зависимость от глобальных блокировок приводит к накоплению изменений, а повышение параллелизма — к новым рискам. Для решения этих проблем Anthropic усиливает тестирование после слияния и проверку перед развёртыванием, а для обычных команд приоритет — совершенствование анализа зависимостей, инкрементального тестирования и кэша сборки.

Не только Anthropic, но и GitHub модернизирует свои системы. Компания заменила общий LLM на доработанную модель ModernBERT в сканировании ключей. GitHub использует регулярное выражение как начальный фильтр, а для дальнейшего анализа — дообученный ModernBERT: он анализирует строки‑кандидаты, тип ключа, имена переменных, пути к файлам и соседний код, выдаёт оценку риска, по порогу решается, выдавать ли предупреждение. Модель экспортируется в ONNX и квантуется до 8 бит для снижения затрат на вывод. Новая схема показала рост офлайн‑Precision на 13%, Recall — на 19%. В онлайн‑A/B‑эксперименте медиана времени выполнения Post‑push‑сканирования снизилась на 86%, затраты на сервис модели — более чем на 98%, взвешенный по владельцам репозитория показатель принятия предупреждений вырос на 11,5%.

Также стоит отметить работу Колумбии университета и Google DeepMind: с помощью BTTF они преобразовали сигналы моделирования чипов в SQLite, чтобы агенты могли использовать SQL для выявления аномалий. При проверке сбоев в верификации чипов возникают сложности с обработкой данных RTL‑симуляции: VCD и FSDB‑файлы могут достигать десятков ГБ или ТБ. Инженеры «» ищут аномалии в просмотрщике волн по временной шкале. Если Agent преобразует исходные волны в текст, контекст быстро заполняется временными метками, именами сигналов и повторяющимися переходами.

BTTF передаёт доступ к данным SQLite: signalmetadata хранит статическую информацию (название, тип, уровень сигнала), signalchanges — ID сигнала, временную метку и изменённое значение; таблицы связаны по ID. Для запроса состояния сигнала в определённый момент SQL находит ближайшее предыдущее изменение; для анализа интервала — фильтрует и агрегирует по временному окну. BTTF при сборе данных создаёт сопоставление идентификаторов волн с ID базы данных, подсчитывает переходы сигналов, применяет фильтрацию по часам, обрезку сигналов без переходов и пакетную вставку. Без обрезки база данных занимает 1420 МБ, время запроса — около 410,5 мс; после фильтрации часов и сигналов без переходов размер сокращается до 395 МБ, время — до 94,8 мс. При удалении сигналов с частотой переходов ниже среднего размер базы может быть уменьшен до 185 МБ, но охват активности упадёт до 64,23%. Существует риск потери данных о редких сбоях, возникающих в почти неподвижных управляющих сигналах. Обрезка данных должна соответствовать требованиям отладки и утверждений.

BTTF использует SQL‑интерфейс и разные агенты: Orchestration Agent (разбивает задачу), Analysis Agent (генерирует запрос), Verification Agent (проверяет утверждения и связывает с RTL‑кодом), Evaluation Agent (проверяет временной диапазон, связи полей и целостность результата). В эксперименте с 4,2 GB сигналов, 18450 сигналами и 150 экспертными запросами достигнута точность выполнения 95,33%. Качество Multi‑Agent на 17,3% выше, чем у Single Agent, среднее время задержки увеличилось примерно в 1,96 раза, точность статической проверки SVA — 84,62%.

// оригинал
Leiphone ↗ Читать оригинал
104 просмотров
// поделиться Telegram VK