Цель производственного машинного обучения не состоит в том, чтобы построить единую модель и развернуть ее. Цель — создать автоматизированные конвейеры для разработки, тестирования и развертывания моделей с течением времени. Почему? По мере того как мир меняется, тенденции в данных меняются, в результате чего модели в производстве устаревают. Модели обычно нуждаются в переобучении с использованием актуальных данных, чтобы продолжать предоставлять высококачественные прогнозы в долгосрочной перспективе. Другими словами, вам понадобится способ заменить устаревшие модели свежими.
Без конвейеров замена устаревшей модели — процесс, подверженный ошибкам. Например, как только модель начнет давать неверные прогнозы, кому-то придется вручную собирать и обрабатывать новые данные, обучать новую модель, проверять ее качество и затем, наконец, развертывать ее. Конвейеры машинного обучения автоматизируют многие из этих повторяющихся процессов, делая управление моделями и их обслуживание более эффективными и надежными.
Строительство трубопроводов
Конвейеры машинного обучения организуют этапы построения и развертывания моделей в четко определенные задачи. Конвейеры выполняют одну из двух функций: предоставление прогнозов или обновление модели.
Предоставление прогнозов
Обслуживающий конвейер предоставляет прогнозы. Он знакомит вашу модель с реальным миром, делая ее доступной для ваших пользователей. Например, когда пользователю нужен прогноз — какая погода будет завтра, или сколько минут потребуется, чтобы добраться до аэропорта, или список рекомендуемых видео, — обслуживающий конвейер получает и обрабатывает данные пользователя, делает прогноз, а затем доставляет его пользователю.
Обновление модели
Модели имеют тенденцию устаревать практически сразу после запуска в производство. По сути, они делают прогнозы, используя старую информацию. Их наборы обучающих данных отражали состояние мира день назад, а в некоторых случаях и час назад. Мир неизбежно изменился: пользователь посмотрел больше видео и ему нужен новый список рекомендаций; дождь привел к замедлению движения транспорта, и пользователям необходимы обновленные оценки времени прибытия; Популярная тенденция заставляет розничных продавцов запрашивать обновленные прогнозы запасов для определенных товаров.
Обычно команды обучают новые модели задолго до того, как серийная модель устареет. В некоторых случаях команды ежедневно обучают и развертывают новые модели в рамках непрерывного цикла обучения и развертывания. В идеале обучение новой модели должно происходить задолго до того, как производственная модель устареет.
Следующие конвейеры работают вместе для обучения новой модели:
- Конвейер данных . Конвейер данных обрабатывает пользовательские данные для создания обучающих и тестовых наборов данных.
- Учебный конвейер . Конвейер обучения обучает модели, используя новые наборы обучающих данных из конвейера данных.
- Конвейер проверки . Конвейер проверки проверяет обученную модель путем сравнения ее с производственной моделью с использованием тестовых наборов данных , сгенерированных конвейером данных.
На рисунке 4 показаны входные и выходные данные каждого конвейера машинного обучения.
Конвейеры машинного обучения
Рисунок 4 . Конвейеры машинного обучения автоматизируют многие процессы разработки и поддержки моделей. Каждый конвейер показывает свои входы и выходы.
На самом общем уровне, вот как конвейеры поддерживают производство новой модели:
Сначала модель запускается в производство, и обслуживающий конвейер начинает выдавать прогнозы.
Конвейер данных немедленно начинает сбор данных для создания новых обучающих и тестовых наборов данных.
На основе расписания или триггера конвейеры обучения и проверки обучают и проверяют новую модель, используя наборы данных, созданные конвейером данных.
Когда конвейер проверки подтверждает, что новая модель не хуже производственной, новая модель развертывается.
Этот процесс повторяется постоянно.
Устаревание модели и частота обучения
Почти все модели устаревают. Некоторые модели устаревают быстрее, чем другие. Например, модели, которые рекомендуют одежду, обычно быстро устаревают, потому что потребительские предпочтения, как известно, часто меняются. С другой стороны, модели, определяющие цветы, возможно, никогда не устареют. Идентификационные характеристики цветка остаются стабильными.
Большинство моделей начинают устаревать сразу после запуска в производство. Вам потребуется установить частоту обучения, которая отражает характер ваших данных. Если данные динамические, тренируйтесь часто. Если оно менее динамично, возможно, вам не придется тренироваться так часто.
Обучайте модели, прежде чем они устареют. Раннее обучение обеспечивает буфер для решения потенциальных проблем, например, в случае сбоя данных или конвейера обучения или низкого качества модели.
Рекомендуемая передовая практика — ежедневное обучение и развертывание новых моделей. Как и в случае с обычными программными проектами, процесс сборки и выпуска которых осуществляется ежедневно, конвейеры машинного обучения для обучения и проверки часто работают лучше всего при ежедневном запуске.
Обслуживающий трубопровод
Обслуживающий конвейер генерирует и доставляет прогнозы одним из двух способов: онлайн или оффлайн.
Онлайн прогнозы . Онлайн-прогнозы выполняются в режиме реального времени, обычно путем отправки запроса на онлайн-сервер и возврата прогноза. Например, когда пользователю нужен прогноз, данные пользователя отправляются в модель, и модель возвращает прогноз. Например, Gmail классифицирует входящие сообщения в режиме реального времени, используя онлайн-прогнозы.
Оффлайн прогнозы . Автономные прогнозы предварительно вычисляются и кэшируются. Чтобы обработать прогноз, приложение находит кэшированный прогноз в базе данных и возвращает его. Например, служба на основе подписки может прогнозировать уровень оттока своих подписчиков. Модель прогнозирует вероятность оттока каждого подписчика и кэширует ее. Когда приложению нужен прогноз — например, чтобы стимулировать пользователей, которые могут уйти, — оно просто ищет предварительно вычисленный прогноз.
На рис. 5 показано, как генерируются и доставляются онлайн- и офлайн-прогнозы.
Онлайн и оффлайн прогнозы
Рисунок 5 . Онлайн-предсказания предоставляют прогнозы в режиме реального времени. Офлайн-предсказания кэшируются и просматриваются во время обслуживания.
Постобработка прогноза
Обычно прогнозы подвергаются постобработке перед доставкой. Например, прогнозы могут быть подвергнуты постобработке для удаления токсичного или предвзятого контента. В результатах классификации может использоваться перестановка для изменения порядка результатов вместо отображения необработанных результатов модели, например, для повышения авторитетности контента, представления разнообразия результатов, понижения уровня определенных результатов (например, кликбейта) или удаления результатов по юридическим причинам.
На рис. 6 показан обслуживающий конвейер и типичные задачи, связанные с доставкой прогнозов.
Прогнозы постобработки
Рисунок 6 . Обслуживающий конвейер, иллюстрирующий типичные задачи, необходимые для предоставления прогнозов.
Обратите внимание, что этап разработки функций обычно встроен в модель, а не является отдельным, автономным процессом. Код обработки данных в обслуживающем конвейере часто почти идентичен коду обработки данных, который конвейер данных использует для создания обучающих и тестовых наборов данных.
Хранение ресурсов и метаданных
Обслуживающий конвейер должен включать в себя хранилище для регистрации прогнозов модели и, если возможно, истинной информации.
Регистрация прогнозов модели позволяет отслеживать качество вашей модели. Объединив прогнозы, вы можете отслеживать общее качество вашей модели и определять, начинает ли она терять качество. Как правило, прогнозы производственной модели должны иметь то же среднее значение, что и метки из набора обучающих данных. Для получения дополнительной информации см. предвзятость прогноза .
Сбор истины
В некоторых случаях основная истина становится доступной гораздо позже. Например, если погодное приложение предсказывает погоду на шесть недель вперед, основная истина (какова погода на самом деле) не будет доступна в течение шести недель.
По возможности заставляйте пользователей сообщать правду, добавляя в приложение механизмы обратной связи. Gmail неявно фиксирует отзывы пользователей, когда они перемещают почту из папки «Входящие» в папку «Спам». Однако это работает только в том случае, если пользователь правильно классифицирует свою почту. Когда пользователи оставляют спам в своем почтовом ящике (поскольку они знают, что это спам, и никогда не открывают его), обучающие данные становятся неточными. Это конкретное письмо будет помечено как «не спам», хотя оно должно быть «спамом». Другими словами, всегда старайтесь найти способы уловить и записать основную истину , но помните о недостатках, которые могут существовать в механизмах обратной связи.
На рис. 7 показаны прогнозы, которые доставляются пользователю и сохраняются в репозитории.
Запись прогнозов
Рисунок 7 . Записывайте прогнозы для мониторинга качества модели.
Конвейеры данных
Конвейеры данных генерируют наборы обучающих и тестовых данных на основе данных приложения. Затем конвейеры обучения и проверки используют наборы данных для обучения и проверки новых моделей.
Конвейер данных создает обучающие и тестовые наборы данных с теми же функциями и метками, которые изначально использовались для обучения модели, но с более новой информацией. Например, приложение карт будет генерировать наборы обучающих и тестовых данных на основе недавнего времени поездок между точками для миллионов пользователей, а также другие соответствующие данные, такие как погода.
Приложение для рекомендаций по видео будет генерировать наборы обучающих и тестовых данных, включающие видео, на которые пользователь нажимал из рекомендованного списка (а также те, которые не нажимал), а также другие соответствующие данные, такие как история просмотра.
На рис. 8 показан конвейер данных, использующий данные приложения для создания обучающих и тестовых наборов данных.
Конвейер данных
Рисунок 8 . Конвейер данных обрабатывает данные приложения для создания наборов данных для конвейеров обучения и проверки.
Сбор и обработка данных
Задачи по сбору и обработке данных в конвейерах данных, вероятно, будут отличаться от этапа экспериментирования (когда вы определили, что ваше решение осуществимо):
Сбор данных . Во время экспериментов сбор данных обычно требует доступа к сохраненным данным. Для конвейеров данных сбор данных может потребовать обнаружения и получения разрешения на доступ к данным журналов потоковой передачи.
Если вам нужны данные, помеченные человеком (например, медицинские изображения), вам также понадобится процесс их сбора и обновления. Если вам нужны данные, помеченные человеком, см. страницу CrowdCompute .
Обработка данных . В ходе экспериментов правильные функции были получены в результате очистки, объединения и выборки наборов экспериментальных данных. Для конвейеров данных создание тех же функций может потребовать совершенно других процессов. Однако обязательно продублируйте преобразования данных, полученные на этапе экспериментирования, применив те же математические операции к объектам и меткам.
Хранение ресурсов и метаданных
Вам понадобится процесс хранения, управления версиями и управления наборами обучающих и тестовых данных. Репозитории с контролем версий предоставляют следующие преимущества:
Воспроизводимость . Воссоздайте и стандартизируйте среды обучения моделей и сравните качество прогнозов между различными моделями.
Согласие . Соблюдайте нормативные требования в отношении проверяемости и прозрачности.
Удержание . Установите значения хранения данных, чтобы указать, как долго хранить данные.
Управление доступом . Управляйте тем, кто может получить доступ к вашим данным, с помощью детальных разрешений.
Целостность данных . Отслеживайте и анализируйте изменения в наборах данных с течением времени, что упрощает диагностику проблем с вашими данными или моделью.
Обнаруживаемость . Сделайте так, чтобы другие могли легко найти ваши наборы данных и объекты. Затем другие команды смогут определить, будут ли они полезны для их целей.
Документирование ваших данных
Хорошая документация помогает другим понять ключевую информацию о ваших данных, такую как их тип, источник, размер и другие важные метаданные. В большинстве случаев достаточно задокументировать ваши данные в проектной документации или g3doc. Если вы планируете делиться или публиковать свои данные, используйте карточки данных для структурирования информации. Карты данных облегчают другим пользователям поиск и понимание ваших наборов данных.
Конвейеры обучения и проверки
Конвейеры обучения и проверки создают новые модели для замены производственных моделей до того, как они устареют. Постоянное обучение и проверка новых моделей гарантирует, что лучшая модель всегда находится в производстве.
Конвейер обучения генерирует новую модель на основе наборов обучающих данных, а конвейер проверки сравнивает качество новой модели с рабочей моделью с использованием тестовых наборов данных.
На рис. 9 показан конвейер обучения с использованием набора обучающих данных для обучения новой модели.
Процесс обучения
Рисунок 9 . Конвейер обучения обучает новые модели, используя самый последний набор обучающих данных.
После обучения модели конвейер проверки использует тестовые наборы данных для сравнения качества производственной модели с обученной моделью.
В общем, если обученная модель существенно не хуже производственной, обученная модель переходит в производство. Если обученная модель хуже, инфраструктура мониторинга должна создать предупреждение. Обученные модели с худшим качеством прогнозирования могут указывать на потенциальные проблемы с данными или конвейерами проверки. Этот подход гарантирует, что лучшая модель, обученная на самых свежих данных, всегда будет в работе.
Хранение ресурсов и метаданных
Модели и их метаданные должны храниться в репозиториях с поддержкой версий для организации и отслеживания развертывания моделей. Репозитории моделей предоставляют следующие преимущества:
Отслеживание и оценка . Отслеживайте модели в производстве и изучайте показатели качества их оценки и прогнозирования.
Процесс выпуска модели . Легко просматривайте, утверждайте, выпускайте или откатывайте модели.
Воспроизводимость и отладка . Воспроизводите результаты модели и более эффективно устраняйте проблемы, отслеживая наборы данных модели и зависимости между развертываниями.
Обнаруживаемость . Сделайте так, чтобы другие могли легко найти вашу модель. Затем другие команды смогут определить, можно ли использовать вашу модель (или ее части) в своих целях.
На рис. 10 показана проверенная модель, хранящаяся в репозитории моделей.
Хранение модели
Рисунок 10 . Проверенные модели хранятся в репозитории моделей для отслеживания и обнаружения.
Используйте карточки моделей для документирования и обмена ключевой информацией о вашей модели, такой как ее назначение, архитектура, требования к оборудованию, показатели оценки и т. д.
Проблемы строительства трубопроводов
При построении трубопроводов вы можете столкнуться со следующими проблемами:
Получение доступа к необходимым вам данным . Доступ к данным может потребовать обоснования того, почему он вам нужен. Например, вам может потребоваться объяснить, как будут использоваться данные, и уточнить, как будут решаться проблемы с личными данными. Будьте готовы продемонстрировать доказательство концепции, демонстрирующее, как ваша модель дает более точные прогнозы при доступе к определенным видам данных.
Получение нужных функций . В некоторых случаях функции, используемые на этапе экспериментирования, не будут доступны из данных в реальном времени. Поэтому, экспериментируя, постарайтесь убедиться, что вы сможете получить те же функции в рабочей среде.
Понимание того, как собираются и представляются данные . Изучение того, как были собраны данные, кто их собирал и как они были собраны (наряду с другими вопросами), может потребовать времени и усилий. Важно тщательно понимать данные. Не используйте данные, в которых вы не уверены, для обучения модели, которая может быть запущена в производство.
Понимание компромисса между усилиями, затратами и качеством модели . Включение новой функции в конвейер данных может потребовать больших усилий. Однако дополнительная функция может лишь незначительно улучшить качество модели. В других случаях добавить новую функцию может быть легко. Однако ресурсы для получения и хранения этой функции могут быть непомерно дорогими.
Приступаем к вычислениям . Если вам нужны ТПУ для переобучения, получить необходимую квоту может быть сложно. Кроме того, управлять ТПУ сложно. Например, некоторые части вашей модели или данных может потребоваться специально разработать для TPU, разделив их части на несколько чипов TPU.
Поиск подходящего золотого набора данных . Если данные часто меняются, получить «золотые наборы данных» с согласованными и точными метками может быть непросто.
Выявление подобных проблем во время экспериментов экономит время. Например, вы не хотите разрабатывать лучшие функции и модели только для того, чтобы узнать, что они нежизнеспособны в производстве. Поэтому постарайтесь как можно раньше убедиться, что ваше решение будет работать в рамках ограничений производственной среды. Лучше потратить время на проверку работоспособности решения, чем возвращаться к этапу экспериментирования, поскольку на этапе конвейера обнаруживаются непреодолимые проблемы.