TrueFoundry создает первое в мире интегрированное решение для отслеживания экспериментов и мониторинга моделей. Я использовал много терминов в одной строке выше. Давайте сначала разберемся с каждым из них.

Что такое отслеживание экспериментов?

Разработка машинного обучения требует проведения нескольких экспериментов для повышения производительности модели! Эти эксперименты действительно сложно отслеживать, воспроизводить и делиться ими с командой. Отслеживание экспериментов — это упрощенный способ.

  1. Для отслеживания артефактов модели, набора данных, кода, метрик и параметров.
  2. Чтобы убедиться, что все ваши эксперименты воспроизводимы.
  3. Чтобы поделиться своими потрясающими результатами со всей командой и получить обратную связь.

Что такое мониторинг выводов?

Мониторинг выводов — это практика обеспечения хорошего состояния вашей системы, модели, функций и данных.

  1. Производительность модели на новых данных вывода — мониторинг вывода.
  2. Важность функций, дрейф функций и достоверность данных — мониторинг ввода.
  3. Анализ первопричин проблем, если что-то ломается — что обязательно происходит.

Зачем создавать интегрированное решение?

Мониторинг выводов имеет смысл только в контексте обучающих данных.

  • С точки зрения вывода модели, т.е. показателей производительности. Например. Точность вывода 0,845 — это хорошо, если точность обучения равна 0,85, но это катастрофа, если точность обучения равна 0,96.
  • С точки зрения ввода модели, т. Е. Распределения функций и меток. Например. Дрейф признаков относительно обучающего набора данных является одним из наиболее распространенных показателей производительности модели.

В этом контексте есть две основные причины, по которым эти два решения идут вместе:

  • Во время отслеживания эксперимента мы уже регистрируем все соответствующие артефакты модели, метрики модели и распределения обучающих данных. Если вы используете совершенно другое решение для мониторинга моделей, всю эту информацию необходимо предоставить заново.
  • Разработчикам необходимо создавать разные ментальные модели для проектов, запусков и версий моделей, которые подходят как для отслеживания, так и для мониторинга экспериментов. Это также включает в себя ознакомление с несколькими фреймворками и гораздо большим количеством стандартного кода.

Итак, теперь, когда вы убеждены, что интегрированное отслеживание экспериментов и мониторинг выводов — это то, что вам нужно, я представлю наше решение. Если нет, свяжитесь со мной по адресу [email protected] — я хочу услышать ваше мнение :)

Все это доступно вам через тонкую клиентскую библиотеку, доступную здесь.

Представляем MLFoundry

MLFoundry — это клиентская библиотека TrueFoundry, которая позволяет вам регистрировать ваши эксперименты, модели, метрики, данные, функции и прогнозы. Наши интерактивные и интуитивно понятные информационные панели позволяют отслеживать модели машинного обучения во время разработки (отслеживание экспериментов) и после развертывания (мониторинг выводов).

Вы можете начать с установки нашего предварительного выпуска, просто используя pip.

pip install mlfoundry

Импортировать соответствующие библиотеки

import pandas as pd
import numpy as np
from sklearn import datasets
from sklearn import svm
from sklearn.model_selection import train_test_split
import pickle
from sklearn.metrics import accuracy_score, f1_score

В этом примере мы используем набор данных IRIS, чтобы продемонстрировать, как использовать наше решение для мониторинга. Загрузите набор данных, обучите классификатор и вычислите показатели.

iris = datasets.load_iris()
iris_frame = pd.DataFrame(iris.data, columns = iris.feature_names)
X, y = iris.data, iris.target
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
train_data = np.hstack([X_train, np.reshape(y_train, (-1,1))])
train_data = pd.DataFrame(train_data, columns=iris.feature_names + ["target"])
# Model Training
clf = svm.SVC(gamma='scale', kernel='rbf', probability=True)
clf.fit(X_train, y_train)
# Compute Metrics
y_hat_test = clf.predict(X_test)
metrics_dict = {}
metrics_dict['accuracy_score'] = accuracy_score(y_test, y_hat_test)
metrics_dict['f1_score'] = f1_score(y_test, y_hat_test, average='micro')

Затем создайте MLFoundry Run-

import mlfoundry as mlf
mlf_api = mlf.get_client(tracking_uri="REPLACE_TRACKING_URI",
                         api_key="REPLACE_YOUR_API_KEY")
mlf_run = mlf_api.create_run(project_name='sklearn-project',
                             run_name='svm_model')

Несколько моментов, на которые следует обратить внимание:

  • Получите tracking_uri и api_key по инструкции здесь.
  • mlf_api.create_run(project_name='iris-project') создаст запуск в рамках проекта с именем sklearn-project. Если ячейка будет выполнена снова, будет создан новый прогон в рамках того же проекта.

Затем просто зарегистрируйте свой набор данных и прогнозы.

# Logging the dataset
mlf_run.log_dataset(train_data, data_slice="train")
# Logging the model
mlf_run.log_model(clf, "sklearn")
# Logging the hyperparameters
mlf_run.log_params(clf.get_params())
# Logging the metrics
mlf_run.log_metrics(metrics_dict)

После этого вы можете просто проверить панель инструментов, войдя в нашу платформу-

Вы можете попробовать это сами, следуя нашей документации здесь. Если вам интересно узнать больше, у вас есть предложения или отзывы, вы рады стать частью этого изменяющего мир путешествия или просто хотите пообщаться, свяжитесь со мной по адресу [email protected]

Правки

6 апр. 2022 г.

  1. Уточните технические термины, используемые в этом блоге, такие как отслеживание экспериментов, мониторинг выводов.
  2. Незначительная реорганизация кода.
  3. Скриншоты дашбордов.