Обучение моделей как код: система Savanna от Aleph Alpha

Обучение больших языковых моделей превратилось в сложный многоэтапный процесс, требующий координации между десятками специалистов. Традиционный подход с ручной координацией не масштабируется: команды передают результаты через Slack, теряют информацию о прошлых экспериментах, неправильно настраивают параметры, и каждый этап оптимизируется отдельно, без взгляда на общий результат.
Aleph Alpha создала Savanna, «фабрику моделей», которая кодирует весь тренировочный конвейер (pre-training, SFT, RL и evaluation) как функции в коде. Это даёт три преимущества. Composability, этапы становятся переиспользуемыми функциями с чёткими входами и выходами, их можно комбинировать, автоматизировать повторяющиеся работы циклами, легко тестировать части конвейера. Consensus, главная ветка репозитория (GitHub) отражает коллективное понимание команды о том, как тренировать модель; вся рецепта записана в коде, не нужно восстанавливать параметры из Slack или памяти. Provenance, история коммитов и комментарии кода содержат логику решений; любой прошлый запуск остаётся воспроизводимым через чекаут того же коммита.
В практике Savanna интегрируется с GitHub CI: изменения проходят валидацию через малоразмерный тренировочный тест (5 минут), а каждую ночь запускается полномасштабный эндетуэнд-тест. Артефакты (данные, модели, токенайзеры) версионируются и неизменяемы. При запуске модели все инпуты связаны с выходами через граф зависимостей артефактов, поэтому линия решений и источников фактов видна в git blame, а не в истории Slack. Гиперпараметрические свипы реализуются как циклы в коде с параллельными запусками; Savanna кэширует результаты при одинаковых входах. После обучения автоматически запускается evaluation на тестовом наборе, результаты собираются в отчёт, и лидерборд моделей обновляется автоматически.
Ключевые факты
- Традиционное ручное обучение моделей страдает тремя скрытыми затратами: ошибки при ручной координации, потеря знаний между итерациями, фрагментация команд из-за редких ручных передач результатов
- Savanna кодирует весь конвейер обучения (pre-training → SFT → RL → evaluation) как типизированные функции, позволяя переиспользовать, тестировать и запускать части конвейера независимо
- Версионирование в GitHub и артефактов в реестре обеспечивает полную traceable lineage: любой результат связан с точным кодом и данными, из которых он получен
- Эксперименты запускаются через код, добавь параметр, пуши в ветку, запусти CI; гиперпараметрические свипы с автоматическим кэшированием избегают комбинаторного взрыва вычислений
- Trunk-based разработка (частые маленькие коммиты в main) становится критичной для того, чтобы команды могли строить результаты друг на друге и быстро обнаруживать ошибки вместо накопления long-lived веток
Почему это важно
Обучение современных ИИ-моделей требует сотни тысяч GPU-часов и стоит сотни тысяч долларов за запуск. Ошибка в настройке, забытый параметр или неправильный датасет приводят к потере недель и денег. Но главная проблема не техническая, а организационная: сложность растёт быстрее, чем один человек может держать в голове. Большие лаборатории создают специализированные команды (data, pre-training, SFT, RL, evaluation), но ручная координация между ними не масштабируется. Знания теряются, работа дублируется, интеграция между этапами происходит редко и болезненно. Savanna решает эту проблему, поднимая конвейер из голов людей и Slack-потоков в общий, версионируемый артефакт, код.
Кому это важно
В первую очередь, крупные AI-лаборатории, которые тренируют собственные модели (OpenAI, Anthropic, Meta, Google, Aleph Alpha). Для них стоимость координационных ошибок исчисляется сотнями тысяч долларов за ошибку. Вторично, команды, которые fine-tune готовые модели или адаптируют их для специфических задач, где повторяемость и быстрая итерация критичны. Долгосрочно, любая организация с достаточно сложным конвейером обработки данных и обучения, где сегодня используется ручная координация и Slack для передачи информации.
Как это применить
Для своей организации нужно: (1) кодифицировать конвейер, выразить каждый этап (data prep, training, eval) как функцию с чёткими входами (конфиги, датасеты) и выходами (чекпойнты, метрики); (2) интегрировать с системой контроля версий (GitHub, GitLab) и CI/CD; (3) версионировать артефакты (данные, модели) в неизменяемом реестре, привязывать их к запускам и коммитам; (4) переходить на trunk-based разработку, маленькие частые коммиты в main вместо long-lived веток; (5) автоматизировать валидацию, маленькие эндетуэнд-прогоны в CI для проверки изменений, полномасштабные ночные прогоны для обнаружения семантических ошибок. Примеры инструментов: prefect, Airflow, Metaflow или собственные системы вроде Savanna на базе Python/TypeScript + git + artifact registry.
Можно ли доверять
Вывод описана сотрудником Aleph Alpha (Michael Barlow) и опирается на реальный опыт использования Savanna внутри компании. Практика интегрирования моделей как кода существует в индустрии уже лет 5+ (Uber Michelangelo, Airbnb ML Platform, Google TFX), но Savanna переносит этот подход на frontier-модели, обучаемые на сотнях тысяч GPU. Утверждение о том, что trunk-based разработка даёт faster integration и fail-fast, подтверждено в обычной разработке софта (Google, Netflix). Однако для читателя без опыта разработки больших моделей трудно проверить конкретные цифры (5-минутный валидационный прогон, накладные расходы кэширования артефактов).
Риски и подводные камни
Главный риск, организационный. Trunk-based разработка требует культуры частых маленьких коммитов, быстрой ревью, быстрого fail-fast; если в организации привычны long-lived ветки и недельные интеграции, переход будет болезненным. Второй риск, техдолг в артефакт-реестре: если не очищать старые версии данных и моделей, хранилище разрастётся, и навигация по истории станет трудной. Третий, невидимость конвейера для интерпретации: когда в коде много абстракций, может быть сложно понять, что именно происходит в каждый момент обучения; требуется дополнительная инструментация для логирования и визуализации. Четвёртый, то, что Savanna работает внутри GitHub CI; для организаций, предпочитающих другие платформы (k8s, TPU clusters), интеграция может быть нетривиальной.
«Ручные и редкие передачи результатов дробят зону ответственности команд... Чтобы масштабироваться, сам конвейер должен стать чем-то управляемым, над чем команды могут работать совместно. Подняв конвейер в код, вы получаете три вещи: композируемость, согласованность и прослеживаемость происхождения.»
— Michael Barlow, Aleph Alpha, «Model Training as Code»