Marin: открытый фреймворк для обучения LLM
Обзор Marin — открытого фреймворка от Stanford CRFM для воспроизводимого обучения языковых моделей с нуля. Плюсы, минусы, сравнение с OLMo.
Marin: открытый фреймворк для воспроизводимого обучения фундаментальных моделей
«Мы обучаем мощные модели с нуля и публично документируем каждый шаг: код, данные, эксперименты, ошибки — всё в реальном времени.» — marin.community
Что такое Marin и для кого он создан
Marin — это одновременно исследовательская программа, программная платформа и открытое сообщество, созданные для разработки и обучения фундаментальных моделей (foundation models). Проект вырос из Stanford CRFM (Center for Research on Foundation Models) и с первого дня работает в режиме полной прозрачности.
Согласно официальному репозиторию, основной фокус Marin — обучение больших языковых моделей класса Llama, DeepSeek, Qwen, включая сбор и подготовку данных, токенизацию, предобучение, постобучение и оценку качества.
Marin адресован:
- AI-исследователям в академических лабораториях, которые хотят воспроизводить и форкать эксперименты;
- ML-инженерам, которым нужен полный пайплайн обучения LLM с открытым исходным кодом;
- контрибьюторам открытого ИИ, разделяющим принципы открытой науки.
Ключевые возможности
1. Полный пайплайн обучения LLM
Согласно DeepWiki, фреймворк оркестрирует весь цикл машинного обучения: получение данных, трансформацию, фильтрацию, токенизацию, обучение и оценку. Это включает предобучение с нуля и постобучение.
2. Воспроизводимость как первый приоритет
Ключевой принцип дизайна Marin — воспроизводимость: каждый шаг, от сырых данных до финальной модели, версионируется и отслеживается, включая неудачные эксперименты. (GitHub)
3. Executor — граф зависимостей экспериментов
Эксперименты в Marin определяются как набор шагов, зависящих друг от друга и выполняющихся в топологическом порядке — по аналогии с Makefile. (GitHub)
# Запуск первого эксперимента на CPU
uv run python experiments/tutorials/train_tiny_model_cpu.py \
--prefix local_store --force_run_failed true
# Запуск на GPU
uv run python experiments/tutorials/train_tiny_model_gpu.py \
--prefix local_store
По умолчанию исполнитель не перезапускает уже успешно выполненные шаги, что экономит вычислительные ресурсы. (docs/tutorials)
4. Levanter + JAX как движок обучения
Команда выбрала JAX в качестве фундамента и построила на нём фреймворк Levanter. Весь многоэтапный шаг обучения (forward pass, loss, backpropagation, update) инкапсулируется в единую функцию с @jax.jit, что устраняет накладные расходы интерпретатора. (Google Developers Blog)
Levanter обеспечивает побитовую воспроизводимость даже при смене TPU-слайсов и типов железа — это было подтверждено при обучении Marin-8B. (Google Developers Blog)
5. Распределённое выполнение на Ray
Фреймворк построен на Ray для распределённого выполнения и поддерживает TPU pods, GPU-кластеры и CPU-окружения. (DeepWiki)
6. Delphi — открытый набор для scaling laws
Delphi — это набор Marin для масштабирования LLM-рецептов от 3×10¹⁸ до 10²³ FLOP, вдохновлённый Pythia. Он включает три части: рецепт масштабирования, обученный suite на Google TPU Research Cloud и scaling law для предсказания поведения больших моделей по малым. (GitHub)
7. Поддержка мультимодальных доменов
Marin также применяется для построения аудио-текстовых моделей, DNA- и белковых моделей. (GitHub)
Архитектура фреймворка
graph TD
A[Сырые данные] --> B[Data Acquisition]
B --> C[Transformation & Filtering]
C --> D[Tokenization]
D --> E[Pretraining — Levanter + JAX]
E --> F[Posttraining / RLHF]
F --> G[Evaluation — Evalchemy]
E --> H[Checkpoints]
H --> I[Воспроизводимый архив]
G --> I
I --> J[Публикация: GitHub Issues + HuggingFace]
Тарифы и стоимость
Marin полностью бесплатен и открыт: лицензия Apache 2.0, код на GitHub, модели на Hugging Face.
| Компонент | Стоимость |
|---|---|
| Фреймворк (код) | Бесплатно (Apache 2.0) |
| Веса моделей (8B, 32B) | Бесплатно (HuggingFace) |
| Обучающий код и данные | Открыто, GitHub |
| Вычислительная инфраструктура | Оплачиваете сами (GPU/TPU) |
| Discord / документация | Бесплатно |
Плюсы и минусы
| ✅ Плюсы | ❌ Минусы |
|---|---|
| Полная прозрачность: код, данные, логи, неудачные эксперименты | Требует значительных вычислительных ресурсов для крупных запусков |
| Воспроизводимость побитового уровня (Levanter + JAX) | Крутая кривая входа: JAX/Ray — не самый массовый стек |
| Полный пайплайн от сырых данных до модели | Документация пока не покрывает все edge-cases |
| Активное сообщество, Discord, GitHub Issues | Основной фокус на TPU; GPU-поддержка вторична |
| Доказанные результаты: Marin-8B > Llama 3.1 8B, Marin-32B конкурентен OLMo 3 | Нет managed-сервиса или облачного UI |
| Поддержка MoE, аудио, DNA, белковых моделей | Ecosystem вокруг PyTorch/DeepSpeed намного зрелее |
| Бесплатная лицензия Apache 2.0 | Небольшая команда по сравнению с Allen AI или Meta |
Сравнение с альтернативами
Главные конкуренты Marin в нише полностью открытых фреймворков для обучения LLM — это OLMo (Allen AI) и LLM360.
| Параметр | Marin | OLMo / OLMo 3 | LLM360 |
|---|---|---|---|
| Организация | Stanford CRFM | Allen Institute for AI | Cerebras / KAUST |
| Движок обучения | JAX + Levanter | PyTorch + OLMo-core | PyTorch + Megatron |
| Воспроизводимость | Побитовая (JAX детерминизм) | Высокая | Высокая |
| Открытость данных | Полная | Полная (Dolma) | Полная |
| Лучшая модель | Marin-32B-Base | OLMo 3 32B Think | Amber 7B |
| Результаты на бенчмарках | Конкурирует с OLMo 3 и Qwen 2.5 32B | SOTA среди fully-open на math/code | Уступает Marin и OLMo 3 |
| Поддержка MoE | ✅ (в разработке 535B MoE) | ✅ OLMoE | ❌ |
| Сообщество / Discord | ✅ | ✅ | ⚠️ Менее активное |
| Лицензия | Apache 2.0 | Apache 2.0 | Apache 2.0 |
| Основной акцент | Open lab + воспроизводимость | SOTA fully-open модели | Академические checkpoints |
OLMo 3 32B Base является SOTA среди fully-open моделей, превосходя Marin 32B на задачах математики и кода, но Marin 32B Base удерживает лидерство на многих knowledge QA-оценках и почти равняется OLMo 3 по среднему рангу. (opensource.googleblog.com)
Вердикт: кому подойдёт Marin
Рейтинг: 8.5 / 10
Marin — наиболее последовательно реализованный принцип «открытого ИИ-лаба» на сегодняшний день. Проект не просто публикует веса: он в реальном времени открывает весь процесс исследования — включая провалы, итерации и обсуждения. Это делает его незаменимым для академических групп и инженеров, которым нужна полная прозрачность и воспроизводимость.
Marin подойдёт, если вы:
- Исследователь или аспирант, который изучает scaling laws, архитектуры MoE или методы постобучения;
- ML-инженер, которому нужен форкаемый, воспроизводимый пайплайн обучения LLM;
- Участник открытого ИИ-движения, разделяющий ценности открытой науки;
- Команда, работающая на TPU (Google TRC) или крупном GPU-кластере.
Marin менее подойдёт, если вы:
- Ищете готовый managed-сервис или no-code инструмент;
- Работаете исключительно в PyTorch-экосистеме и не готовы переходить на JAX;
- Ограничены в вычислительных ресурсах для крупных запусков.
uv и запустите туториал train_tiny_model_cpu.py — это займёт несколько минут и даст полное понимание Executor-модели. Документация доступна на ReadTheDocs, код — на GitHub, модели — на Hugging Face.Заключение
Marin — это редкий пример того, как академическая лаборатория строит не просто открытую модель, а открытый процесс её создания. Фреймворк доказал свою состоятельность реальными результатами: Marin-8B превзошёл Llama 3.1 8B, а Marin-32B-Base вошёл в кластер лучших fully-open моделей наравне с OLMo 3 и Qwen 2.5. При этом JAX-стек с Levanter даёт побитовую воспроизводимость, которую крайне сложно достичь на PyTorch. Для исследователей и инженеров, которые ценят прозрачность и воспроизводимость выше удобства managed-сервисов, Marin сегодня является эталонным инструментом в области открытого обучения фундаментальных моделей.