Функция науки о данных, о которой должен знать каждый

Что такое магазин функций?

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

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

Создание новой функции требует огромного объема работы, а создание конвейера для создания функции - лишь один из аспектов. Чтобы прийти к этому этапу, вам, вероятно, пришлось пройти долгий процесс проб и ошибок с большим разнообразием функций, пока вы не достигли точки, в которой вы были довольны своей уникальной новой функцией. Затем вам нужно было рассчитать и сохранить его как часть рабочего конвейера, который будет отличаться в зависимости от того, находится ли функция онлайн или офлайн.

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

Автономные и онлайн-функции

Есть два типа функций: онлайн и офлайн.

Автономные функции. Некоторые функции рассчитываются как часть пакетного задания. Например, средние ежемесячные расходы. В основном они используются автономными процессами. Учитывая их характер, создание этих типов функций может занять время. Обычно автономные функции вычисляются с помощью таких фреймворков, как Spark, или путем простого выполнения SQL-запросов к данной базе данных, а затем с использованием процесса пакетного вывода.

Онлайн-функции. Эти функции немного сложнее, так как их нужно очень быстро вычислять и часто они обслуживаются с задержкой в ​​миллисекунды. Например, вычисление z-показателя для обнаружения мошенничества в реальном времени. В этом случае конвейер строится путем вычисления среднего значения и стандартного отклонения по скользящему окну в реальном времени. Эти вычисления намного сложнее и требуют быстрых вычислений, а также быстрого доступа к данным. Данные могут храниться в памяти или в очень быстрой базе данных ключ-значение. Сам процесс может выполняться на различных сервисах в облаке или на платформе, такой как Iguazio Data Science Platform, в которой все эти компоненты входят в состав основного предложения.

Вот пример онлайн- и офлайн-конвейера с использованием магазина функций. Это было разработано Uber как часть их платформы Michelangelo:

Преимущества:

Более быстрая разработка.

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

Как упоминалось ранее, онлайн и офлайн функции имеют разные характеристики. Под капотом автономные функции построены в основном на таких фреймворках, как Spark или SQL, где фактические функции хранятся в базе данных или как паркетные файлы. В то время как для онлайн-функций может потребоваться доступ к данным с использованием API-интерфейсов для потоковых движков, таких как Kafka, Kinesis, или баз данных типа "ключ-значение" в памяти, таких как Redis или Cassandra.

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

df = feature_store.get («transaction_volume»). filter_by (transaction_id)

Бесперебойное развертывание модели в производственной среде.

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

Повышенная точность модели.

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

Лучшее сотрудничество

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

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

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

Магазин функций и MLOps

MLOps - это расширение DevOps, в котором идея заключается в применении принципов DevOps к конвейерам машинного обучения. Разработка конвейера машинного обучения отличается от разработки программного обеспечения, в основном из-за аспекта данных. Качество модели зависит не только от качества кода. Это также основано на качестве данных, то есть на характеристиках, которые используются для запуска модели. По данным Airbnb, около 60–80% времени специалистов по данным уходит на создание, обучение и тестирование данных. Хранилища функций позволяют специалистам по обработке данных повторно использовать функции вместо того, чтобы перестраивать эти функции снова и снова для разных моделей, что позволяет экономить драгоценное время и усилия. Хранилища функций автоматизируют этот процесс и могут запускаться при изменении кода, отправленном в Git, или при поступлении новых данных. Автоматическая разработка функций - важная часть концепции MLOps.

Резюме

Некоторые из крупнейших технологических компаний, активно занимающихся ИИ, создали собственные магазины функций (Uber, Twitter, Google, Netflix, Facebook, Airbnb и т. Д.). Это хороший показатель для остальной отрасли, насколько важно использовать хранилище функций как часть эффективного конвейера машинного обучения. Учитывая растущее число проектов ИИ и сложности, связанные с внедрением этих проектов в производство, отрасли нужен способ стандартизации и автоматизации ядра проектирования функций. Поэтому справедливо предположить, что хранилище функций позиционируется как гражданин первого уровня любого конвейера машинного обучения.