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

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

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

Регистрация данных и настройка мониторинга машинного обучения

Во-первых, мы установим whylogs, библиотеку регистрации данных с открытым исходным кодом, которая фиксирует ключевые статистические свойства данных. Мы также включим зависимости для записи в обсерваторию ИИ WhyLabs для мониторинга машинного обучения.

pip install “whylogs[whylabs]”

Далее мы импортируем библиотеки whylogs, pandas и os в наш проект Python. Мы также создадим фрейм данных нашего набора данных для профиля.

import whylogs as why
import pandas as pd
import os
# create dataframe with dataset
dataset = pd.read_csv("https://whylabs-public.s3.us-west-2.amazonaws.com/datasets/tour/current.csv")

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

Чтобы написать профили в WhyLabs, мы создадим учетную запись и возьмем наш идентификатор организации, токен доступа и идентификатор проекта, чтобы установить их в качестве переменных среды в нашем проекте.

# Set WhyLabs access keys
os.environ["WHYLABS_DEFAULT_ORG_ID"] = 'YOURORGID'
os.environ["WHYLABS_API_KEY"] = 'YOURACCESSTOKEN'
os.environ["WHYLABS_DEFAULT_DATASET_ID"] = 'PROJECTID'

Создайте бесплатную учетную запись WhyLabs здесь, кредитная карта не требуется.

Создайте новый проект и получите идентификатор:

Создать проект › Настроить модель › Создать проект

Получить идентификатор организации и токен доступа:

Меню › Настройки › Токены доступа › Создать токен доступа

Это все для настройки. Теперь мы можем записывать профили данных в WhyLabs.

Напишите профили в WhyLabs для мониторинга машинного обучения

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

# initial WhyLabs writer, Create whylogs profile, write profile to WhyLabs
writer = WhyLabsWriter()
profile= why.log(dataset)
writer.write(file=profile.view())

Профили можно создавать на любом этапе конвейера, что позволяет отслеживать данные на каждом этапе.

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

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

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

Теперь мы можем включить предварительно настроенный монитор одним щелчком мыши (или создать собственный) для обнаружения аномалий в наших профилях данных. Это упрощает настройку общих задач мониторинга, таких как обнаружение дрейфа данных, проблемы с качеством данных и производительность модели.

После настройки монитора его можно предварительно просмотреть во время проверки функции ввода.

При обнаружении аномалий уведомления могут быть отправлены по электронной почте, в Slack или PagerDuty. Настройте параметры уведомлений в разделе «Настройки» › «Настройки уведомлений и дайджестов».

Вот и все! Мы выполнили все шаги, необходимые для приема данных из любого места в конвейерах машинного обучения и получения уведомлений в случае возникновения аномалий.

Разделение входных и выходных данных модели

Может быть полезно разделить входные и выходные данные модели, особенно если у вас много функций во входных данных. Любые объекты с именами, содержащими слово «output», появятся на вкладке «outputs».

Мониторинг показателей производительности модели

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

Чтобы регистрировать показатели производительности для мониторинга, используйте «why.log_classification_metrics» или «why.log_regression_metrics» и передайте кадр данных, содержащий достоверные результаты нашей модели.

results = why.log_classification_metrics(
         df,
         target_column = "ground_truth",
         prediction_column = "cls_output",
         score_column="prob_output"
     )
 
 profile = results.profile() 
 results.writer("whylabs").write()

Примечание.Убедитесь, что ваш проект настроен как модель классификации или регрессии в настройках.

Как и входные данные, показатели производительности загружаются с текущей отметкой времени, если только они не перезаписываются. См. пример заполнения данных для мониторинга производительности в приведенных ниже примерах записных книжек.

Опять же, мы можем выбрать предварительно настроенный монитор для обнаружения любых изменений в производительности.

См. примеры блокнотов для классификационного и регрессионного мониторинга на нашем GitHub.

Резюме по мониторингу машинного обучения

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

Мы едва коснулись функций WhyLogs и WhyLabs. Если вы хотите узнать больше, запросите демонстрацию или бесплатную регистрацию и изучите возможности самостоятельно!

Примеры блокнотов, упомянутых в этом посте:

Готовы внедрить мониторинг данных и машинного обучения в свои собственные приложения?

  • Проверьте whylogs для регистрации данных с открытым исходным кодом
  • Создайте бесплатную учетную запись WhyLabs для мониторинга данных и машинного обучения
  • Присоединяйтесь к нашему сообществу Slack channel, чтобы задавать вопросы и узнавать больше

Первоначально опубликовано на https://whylabs.ai.