mlango и альтернативы¶
Инструменты для этого у вас почти наверняка уже есть. Эта страница нужна, чтобы решить: заменяет ли mlango что-то из них, стоит рядом или вообще не подходит под вашу задачу.
Отличие в одном предложении¶
Большинство ML-инструментов решают одну задачу: трекинг, оркестрацию, версионирование данных, сервинг или агентов. Ставка mlango в том, что проблема — это шов между ними, а закрывается шов общей декларацией.
class Sentiment(Model):
C = fields.FloatField(default=1.0, tunable=True)
class Meta:
dataset = Reviews
trainer = "sklearn"
Это тело класса одновременно является: страницей в админке, эндпоинтом
POST /api/predict/ с OpenAPI-схемой, строкой в миграции, целью для
manage.py train, пространством поиска для manage.py sweep и версионируемой
записью в реестре моделей. Вы ничего из этого не связывали руками. Это и есть
приём Django — объявил один раз, а всё универсальное читает объявление, —
применённый к машинному обучению.
Второе отличие: агенты — полноправное семейство рядом с моделями. LLM-агент и
градиентный бустинг — оба объявленные классы с _meta, оба пишутся в один
метастор, оба видны в одной админке, оба оцениваются одним Eval. Почти каждый
инструмент в этой области — либо ML-инструмент, либо LLM-инструмент. А
большинство команд в 2026 делают и то и другое.
Где на самом деле находится каждый инструмент¶
| Инструмент | Что это | Пересечение с mlango |
|---|---|---|
| MLflow | Трекинг экспериментов, реестр моделей, упаковка | Реальное пересечение по трекингу и реестру. Нет структуры проекта, нет админки над вашими данными, нет декларативных классов, нет агентов |
| Weights & Biases | Хостовый трекинг с отличным UI | Пересекается по трекингу. Это сервис, а не фреймворк; он не говорит, как разложить проект |
| Kedro | Структура проекта и пайплайны для data science | Ближе всех по духу. Мыслит узлами и пайплайнами, а не декларативными классами; нет админки, нет сервинга, нет агентов |
| ZenML / Metaflow / Flyte | Оркестрация пайплайнов, обычно cloud-first | Пересечение небольшое. Они гоняют шаги по инфраструктуре; mlango объявляет объекты и по умолчанию работает локально |
| Airflow / Dagster / Prefect | Общая оркестрация и расписания | Пересечения нет. Они планируют работу; mlango — это работа, которую планируют |
| DVC | Версионирование данных и моделей поверх git | Дополняет. mlango версионирует данные по хешу содержимого в своё хранилище; DVC — в модели git |
| LangChain / LlamaIndex | Разработка LLM-приложений | Пересекается по циклу агента и инструментам. У них нет обучения, версионирования датасетов, реестра моделей и админки |
| FastAPI | Веб-фреймворк | Нет — mlango его использует. Ваши эндпоинты выводятся из деклараций, а не пишутся |
Честные ответы на очевидные вопросы¶
«Почему не просто MLflow?»¶
Если единственное, чего вам не хватает, — трекинг, то MLflow проще внедрить, и экосистема у него несопоставимо больше. Берите его.
На mlango стоит смотреть, когда дело не в трекинге: когда каждый проект в команде разложен по-своему, никто не может сказать, какая версия данных дала цифру, сервинг — это отдельный написанный руками сервис, а работа с LLM живёт в репозитории, у которого нет ничего общего с ML-частью. Это структурные проблемы, а библиотека трекинга структурных проблем не решает.
Одно другому не мешает: логировать в MLflow из колбэка никто не запрещает.
«Почему не Kedro?»¶
Kedro — самое похожее здесь, и если вам нравятся пайплайны из узлов, это хороший ответ. Разница в том, что является единицей объявления. В Kedro вы объявляете пайплайн; в mlango — объект: датасет, модель, агента, оценку, — а пайплайн, страницу админки, API и миграцию фреймворк выводит из него.
Практическое следствие: mlango даёт работающую админку и документированный API, не написав ни того ни другого, а Kedro этого и не ставит целью. Взамен модель пайплайнов Kedro выразительнее для сложной многошаговой инженерии данных — mlango сознательно не пытается ею быть.
«Почему не просто scikit-learn и пара скриптов?»¶
Для одной модели, которую сопровождает один человек, скрипты — это нормально, а фреймворк — накладные расходы. Цена скриптов проявляется на второй модели, на втором человеке и в первый раз, когда спрашивают, какие данные дали цифру в презентации.
«Обязательно ли использовать агентскую половину?»¶
Нет. Четыре семейства независимы. Проект, объявляющий только датасеты и модели, никогда не импортирует агентский код, а соответствующие extras не ставятся, пока вы их не попросите.
«А ML-половину обязательно?»¶
Тоже нет. mlango — вполне разумный способ собрать агентское приложение само по себе: схемы инструментов из аннотаций типов, трейсинг в админке, бэкенды памяти, декларативные оценки качества агента и SSE-эндпоинт. А если однажды обучите модель — она окажется в той же системе.
Когда mlango — неправильный выбор¶
Пишем прямо, потому что фреймворк, заявляющий, что подходит для всего, не подходит ни для чего:
- Нужно распределённое обучение на многих машинах. mlango ведёт цикл обучения; он не планировщик и ничего не знает про кластеры. Возьмите Ray или облачный сервис обучения, а mlango пусть при желании запишет результат.
- Ваша задача — большой DAG инженерии данных. Это территория Dagster или Airflow. QuerySet в mlango — для данных, которые читает модель, а не для пайплайна над хранилищем.
- Нужна зрелая экосистема плагинов уже сегодня. mlango — версия 0.2.0. У MLflow за плечами десятилетие и сотни интеграций. Этот разрыв реален, и закрывать его долго.
- Нужен хостовый дашборд для небольшой команды. С W&B вы будете счастливы быстрее.
- Вам и так продуктивно. Если текущая связка не болит, фреймворк — это затраты без выгоды.
Что взято у Django намеренно¶
Стоит назвать: это объясняет несколько решений, которые иначе выглядят произвольными.
| Django | mlango | Зачем |
|---|---|---|
models.py |
datasets.py, models.py, agents.py, evals.py |
Находятся автоматически в каждом приложении — объявить достаточно |
ModelAdmin |
ObjectAdmin |
Всё объявленное появляется без регистрации; регистрируют, чтобы настроить вид |
| Миграции | То же, но для схем датасетов | Изменение схемы полугодовой давности должно читаться сегодня |
manage.py |
То же, расширяется приложениями | Команды проекта стоят рядом с командами фреймворка |
settings.py |
То же, но неизвестная настройка — ошибка | Опечатка должна падать, а не молча ничего не делать |
| Сторонние приложения | Пакеты mlango-* |
Экосистема и есть цель; см. Участие |
И что намеренно не взято: здесь нет ORM. Dataset описывает записи, которые
лежат в файлах, хранилище или на Hugging Face — mlango не хочет владеть вашими
данными, ему достаточно знать их форму.