▮ После развертывания

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

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

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

Ссылка: Проектирование систем машинного обучения

▮ Непрерывное обучение

Рабочий процесс

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

  1. Создать реплику текущей модели
  2. Обновите реплику новыми данными
  3. Сравните производительность
  4. Заменить/отменить в зависимости от результатов

Обучение с сохранением состояния / Переобучение без сохранения состояния

Способ переобучения модели ML можно разделить на 2 типа; Обучение с отслеживанием состояния и Переобучение без учета состояния

Переподготовка без гражданства

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

Обучение с отслеживанием состояния

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

Еще одним преимуществом этого метода является то, что он позволяет вообще не хранить все существующие данные.

При таком подходе в основном есть 2 типа обновлений модели.

  • Итерация модели
    Обновление путем изменения архитектуры модели или добавления новых функций.
  • Итерация данных
    Обновление путем обновления модели новыми данными без каких-либо изменений в архитектуре модели.

На сегодняшний день в большинстве случаев используется последний вариант.

▮ Проблемы непрерывного обучения

Несмотря на то, что непрерывное обучение достигло многих огромных успехов, оно по-прежнему сталкивается со многими проблемами. Вот основные 2.

Задача 1: получение свежих данных

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

Задача 2: оценка

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

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

Если вам интересно, вы можете проверить этот пост в блоге, где я обсуждал, как оценить вашу модель перед производством.