Deepchecks и W&B сотрудничали, чтобы создать интегрированный опыт отслеживания экспериментов и проверки машинного обучения. Это делается путем запуска наборов тестов deepchecks и регистрации результатов в W&B. Вот как:

Проверка модели машинного обучения, особенно в производственной среде, всегда была одной из самых сложных подтем в исследованиях машинного обучения. Написание тестов для моделей машинного обучения является сложной задачей и должно учитывать множество аспектов, как в данных, так и в самой модели, что может быть очень утомительным.

Deepchecks (https://github.com/deepchecks/deepchecks ⭐️) — это пакет Python с открытым исходным кодом для всесторонней проверки ваших моделей машинного обучения и данных с минимальными усилиями. Сюда входят проверки, связанные с различными типами проблем, такими как производительность модели, целостность данных, несоответствие распределения и многое другое.

В последнем выпуске (0.5.0) глубокие проверки поддерживают отслеживание результатов пакета с помощью Weights & Biases. Чтобы дать вам некоторый контекст, Weights & Biases помогает вам отслеживать ваши эксперименты по машинному обучению. Вы можете использовать этот инструмент для регистрации выходных показателей ваших прогонов, а затем визуализировать и сравнивать результаты и быстро делиться результатами с коллегами.

В этом руководстве мы рассмотрим пример отправки вывода набора глубоких проверок в W&B.

Во-первых, давайте установим пакет deepchecks.

pip install deepchecks

После завершения установки мы подготовим наборы для обучения и тестирования вместе с моделью. В этом уроке мы будем использовать тот же пример из документации deepchecks, используя набор данных Iris:

# General imports
import pandas as pd
import numpy as np

from deepchecks.datasets.classification import iris
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split

# Load Data
iris_df = iris.load_data(data_format='Dataframe', as_train_test=False)
label_col = 'target'
df_train, df_test = train_test_split(iris_df, stratify=iris_df[label_col], random_state=0)

# Train Model
rf_clf = RandomForestClassifier()
rf_clf.fit(df_train.drop(label_col, axis=1), df_train[label_col])
from deepchecks import Dataset

# We explicitly state that this dataset has no categorical features, otherwise they will be automatically inferred
# If the dataset has categorical features, the best practice is to pass a list with their names

ds_train = Dataset(df_train, label=label_col, cat_features=[])
ds_test =  Dataset(df_test,  label=label_col, cat_features=[])

После того, как мы подготовили наборы данных, мы импортируем полный набор и запустим его:

from deepchecks.suites import full_suite

suite = full_suite()
suite_result = suite.run(ds_train, ds_test, rf_clf)

Теперь все результаты набора тестов рассчитаны, и последним шагом будет их отправка в Weight&Biases:

suite_result.to_wandb()

И все!

Давайте немного рассмотрим, как результаты отслеживаются внутри W&B:

Мы видим, что каждая проверка содержится в разделе на панели инструментов W&B, что позволяет нам сравнивать разные прогоны. Таким образом, мы можем легко сравнить модели и выбрать лучшую.

Дальнейшие шаги

Вы должны попытаться разветвить эту записную книжку, чтобы узнать больше, интегрировать ее с вашим набором данных и попытаться сравнить различные результаты с W&B. Удачи!