TFX: A TensorFlow-Based Production-Scale Machine Learning Platform
本文介绍了基于tf搭建一套通用机器学习平台的关键部分和大体流程,但没有给出更详细的介绍。
Это KDD 2017 Applied Data Science Paper, автор является большим избирателем Google, поэтому многие авторы, по опыту, должны быть основными разработчиками этой платформы. Платформа, представленная в этой статье, называется Tensorflow Extended, что означает, что все ее основные компоненты завершены с использованием tensorflow, что можно понимать как вторичную разработку, основанную на tensorflow. Так в чем разница между этим tfx и tf? В моем понимании основное отличие состоит в том, что tf предоставляет набор функций, которые можно использовать для выполнения ряда задач, связанных с обучением модели, а tfx — это законченная система, построенная на основе tf, включающая в себя весь жизненный цикл машины. Эта система не только включает в себя функции, связанные с машинным обучением, такие как обучение модели, предоставляемое tf, но также предоставляет важные функции, такие как проверка и проверка данных, горячий запуск модели, онлайн-сервис и публикация модели.
Значение этой статьи не в том, чтобы научить вас собирать набор tfx, а в том, чтобы объяснить основные компоненты, которые необходимо включить в сборку набора tfx системы, и какие ключевые моменты необходимо учитывать при реализации этих компонентов, и команда авторов извлекла из этого уроки. Другими словами, это больше похоже на статью «научи мужчину ловить рыбу». Это имеет важное руководящее значение для тех, кто хочет реализовать универсальную платформу машинного обучения, такую как tfx. Ниже приводится выдержка и интерпретация частей, которые я считаю более ценными.
общие принципы проектирования
Основные принципы проектирования tfx включают следующее:
- Создайте единую платформу, которая может выполнять несколько учебных задач.Это требует, чтобы система была достаточно универсальной и расширяемой.
- Поддержка постоянного обучения и обслуживания.Эти две вещи кажутся простыми, но если принять во внимание детали управления рисками и автоматического обнаружения проблем, они непросты.
- Вмешательство человека.Как изящно вовлечь людей во весь процесс и решить проблемы, которые не могут решить машины, также является проблемой.
- надежность и стабильность.Надежность и стабильность здесь относятся не только к уровню, при котором служба не дает сбоев, но и к тому, что эффект службы может оставаться стабильным и надежным, когда возникают проблемы на уровне данных.
Анализ данных, преобразование и проверка
Данные являются ядром систем машинного обучения, и то, как обрабатывать данные, определяет качество всей модели.Эта часть автора знакомит с точками реализации анализа, преобразования и проверки данных.
анализ данных
Анализ данных означает, что система автоматически выполняет статистический анализ данных, поступающих в систему, таких как распределение значений данных, распределение признаков по выборкам, распределение признаков по каждой выборке и так далее. В то же время он также поддерживает сегментирование статистики по данным, например, статистику по положительным и отрицательным выборкам, статистику по данным из разных стран и так далее. Одна из трудностей здесь заключается в том, что в соответствии с требованиями больших данных и своевременности точные значения многих статистических данных вычислить непросто, поэтому во многих случаях необходимо использовать алгоритм потоковой аппроксимации для расчета достаточно хорошей приближение.
конверсия данных
Так называемое преобразование данных относится к различным преобразованиям данных из необработанных данных в обучаемые функции, такие как дискретизация, отображение функций и так далее. В нем также упоминаются некоторые детали обработки разреженных функций.
Более важным моментом в этой части является обеспечение согласованности преобразования данных во время обучения и обслуживания, Несогласованность между ними часто приводит к плохой производительности модели. Подход tfx заключается в том, чтобы вывести преобразование данных как часть модели, чтобы избежать этой несогласованности. Другими словами, важно обеспечить согласованность, повторно используя одну и ту же логику кода на этапе обучения и этапе обслуживания, а не реализуя разный код в двух местах. По моему опыту, невыполнение этого требования не только приведет к несогласованным преобразованиям функций, но также увеличит нагрузку на разработку и проверку правильности.
проверка данных
Так называемая проверка данных относится к тому, соответствуют ли данные, поступающие в систему, ожиданиям и есть ли какие-либо отклонения от нормы. Практика tfx заключается во введении структуры схемы данных для указания ограничений на часть данных, таких как тип данных, необходимость, максимальные и минимальные значения и т. д. Цель этого состоит в том, чтобы предотвратить попадание данных, которые не соответствуют ожиданиям, на этап обучения модели и повлиять на качество модели. С помощью этой схемы данные, поступающие в систему, могут быть проверены, и, кроме того, могут быть даны предложения, особенно когда сами данные изменились и исходные ограничения должны быть изменены, система может автоматически обнаружить возможные изменения, обратная связь с разработчиком, пусть разработчик решает, принимать ли предложения по улучшению, предложенные системой. На следующем рисунке показан пример использования схемы для проверки данных.Красное содержимое на рисунке — это предложение, сделанное после проверки.
Ограничения, упомянутые выше, могут быть расширены, но автор предполагает, что слишком сложные ограничения часто трудно дать подходящие ограничения и трудно поддерживать, если данные изменяются. Чтобы лучше обслуживать систему и упростить пользователям проверку данных, вот несколько основных принципов проектирования:
- Пользователи должны понимать что угодно, и влияние проблемы.
- Исключения должны быть простыми, и пользователь должен понимать, как с ними обращаться.Например, вы можете сказать, что значение признака выходит за пределы определенного диапазона, но не говорите, что расхождение KL двух признаков превышает пороговое значение.
- Предложения по новой схеме предлагаются на основе естественных изменений в данных.Многие данные со временем меняются, так что примите это во внимание.
- Надеюсь, пользователи смогут относиться к аномалиям данных как к ошибкам.Таким образом, tfx позволяет регистрировать, отслеживать и разрешать исключения данных, как ошибки.
Пользователи также могут найти возможности для улучшения разработки функций, отслеживая изменения в аномалиях.
обучение модели
В этой части обучения модели не так много стоит упомянуть, в основном об использовании tensorflow для обучения. Отдельно стоит упомянуть проблему теплого запуска модели. Горячий старт решает проблему, заключающуюся в том, что модель необходимо обучать в течение длительного времени для сходимости.В это время обученную модель можно использовать для выбора некоторых общих весов признаков в качестве начального состояния модели, что может ускорить сходимость модели. , тем самым ускоряя скорость обучения. Чтобы обобщить эту часть логики, tfx абстрагировал ее, развил и сделал открытым исходным кодом (в tf он может быть открытым, эта часть не проверена).
Оценка и проверка модели
Система машинного обучения представляет собой многокомпонентную сложную систему, которая делает возможными ошибки во многих местах, и эти ошибки часто не приводят к сбою системы, и их сложно найти людям, поэтому модель нуждается в оценке и проверке. .
Определение «хорошей» модели
Авторы определяют хорошую модель как модель, которая безопасна в обслуживании и имеет желаемое качество предсказания. Безопасное предоставление услуг означает, что модель не будет падать по разным причинам при обслуживании, например, из-за слишком большого количества ресурсов или ошибок формата данных. Качество прогноза относится к точности прогноза модели, которая тесно связана с влиянием бизнеса.
Чувствительность проверки
Одной из проблем проверки модели является определение чувствительности проверки. Если он слишком чувствителен, то при незначительных колебаниях данных будет срабатывать сигнал тревоги, что приведет к частым сигналам тревоги, и в конечном итоге люди будут игнорировать сигнал тревоги; если он слишком нечувствителен, проблема будет упущена. По опыту автора, если модель выходит из строя, это, как правило, приводит к серьезным изменениям различных показателей, поэтому чувствительность можно установить более грубой. Конечно, это сравнение связано с бизнесом, и оно все же зависит от вашего собственного бизнеса.
Проверка осколка
В дополнение к общей проверке модели иногда может потребоваться проверка сегмента данных. Например, аутентификация для пользователей мужского пола и т. д. Это важно для целенаправленной и детальной оценки и оптимизации моделей.
разное
В последней части статьи рассказывается о некоторой оптимизации производительности на уровне сервиса и случае приложения в Google Play, поэтому я не буду об этом говорить. Если вас интересуют подробности статьи, вы можете воспользоваться поиском по исходному тексту.