MLFlow, DVC и Sacred — это три инструмента для поддержки воспроизводимости моделей машинного обучения. Каждый из них решает отдельные задачи. DVC приоритезирует воспроизводимость моделей простоте использования. MLFlow используется для проверки параметров модели и сравнения моделей во время прототипирования. Sacred предоставляет интерфейс для Python и не поддерживает использование внутри Jupyter ноутбуков. Несмотря на это, Sacred проcт в конфигурировании. Ниже функционал трех инструментов сравнивается более подробно.
MLFlow разрабатывался компанией DataBricks, которая стоит за Apache Spark. DVC — это проект с открытым исходным кодом, который по большей части поддерживает стартап iterative.ai. Sacred, в свою очередь, является разработкой академических исследователей.
DVC
DVC расшифровывается как „data (science) version control“. Инструмент позиционируется как git для Data Science. Фокус DVC делают на воспроизводимости и легкой отслеживаемости модели. Из-за этого дизайн инструмента базируется на логике git. Чтобы создать проект, необходимо использовать команду „dvc init“, которая инициализирует скрытые файлы в папке .dvc. Это повторяет процесс создания проекта в git. DVC можно использовать для ML-проектов на любом языке, потому что система контролируется через командную строку.
В DVC есть три типа объектов:
- Зависимости: все, на что опирается код, когда запускается (внешние скрипты, библиотеки или источники данных);
- Выходные файлы: все, что создает программа и должно отслеживаться (результаты предобработки или итоговые предсказания);
- Файл с метриками, в котором хранятся результаты оценки качества модели
Основное ограничение DVC в том, что он не предоставляет широкий функционал для анализа результатов модели.
MLFlow
MLFlow предоставляет API для R, Pyton и Java и REST вызовы. Инструмент можно установить с помощью pip. MLFlow содержит три подпроекта:
- Отслеживание: вызовы функций для записи логов и сервер для визуализаций;
- Проект: определение проекта и зависимостей, чтобы их было просто вызвать;
- Модель: функционал для хранения модели и ее запуска
Sacred
Sacred был разработан в академической среде и представлен на конференции SciPy в 2017. Инструмент предоставляет интерфейс для взаимодействия исключительно с Python. Sacred использует аннотации, чтобы определять метрики, которые будут отслеживаться. Это позволяет пользователю не задавать вручную каждый параметр, за которым необходимо следить. Инструмент не имеет функционал для отслеживания переменных внутри Jupyter ноутбуков.
Что выбрать
Три инструмента служат разным целям. Ниже — сравнение DVC, mlFlow и Sacred по описательным и функциональным характеристикам.