fbpx
  • Как упорядочить работу с моделями машинного обучения

    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 по описательным и функциональным характеристикам.

    Сравнение трех фреймворков по описательным характеристикам
    Сравнение трех фреймворков по функциональным характеристикам