Mlflow трекинг экспериментов

Михаил Шавкунов — NLP Data Scientist

Компоненты MLflow

  • Основной раздел: Mlflow tracking
    • сохранение и просмотр экспериментов, запусков циклов обучения модели
    • сохранение мета информации, параметры моделей и прочего
  • MLflow models: сериализация и деплой моделей ML
  • MLflow projects: создание окружения и запуск моделей для инференса
  • MLflow model registry: централизованный сервис для хранения моделей и мета информации

Конфигурации использования

Пример использования

import mlflow

mlflow.set_tracking_uri("http://127.0.0.1:8080") # Подключение к серверу
mlflow.set_experiment("experiment_name") # Название текущего эксперимента

with mlflow.start_run(run_name="run_name"): # Текущий запуск(run) для трекинга
    ...
    mlflow.log_artifact(model, 'pretrained/model/path') # сохранение артефакта(файла)
    mlflow.log_params(model.get_params()) # параметры важные для запуска
    mlflow.log_metrics({"val_f1": val_f1}) # достигнутые метрики

    signature = infer_signature(X_test.toarray(), model.predict(X_test))
    mlflow.sklearn.log_model(model, "my_model", signature=signature) # логирование простых моделей

Демо

Сравнение экспериментов: текстовая классификация Sentiment Analysis

  • Рассмотрим простую векторизацию на основе TF-IDF
  • Рассмотрим семантическую векторизацию на основе модели BERT

Заключение

  • Решение для трекинга командных экспериментов
  • Сравнение лучших моделей/подходов
  • API для простых кейсов сервинга моделей