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

Возьмем пример. Одним из наиболее распространенных вариантов использования в мире машинного обучения является создание рекомендательных систем, в которых данные о взаимодействии пользователей, поступающие из различных пользовательских интерфейсных приложений, отправляются в «онлайн» базу данных посредством потоковой передачи. движки, такие как Kafka или Kinesis, и обрабатываются в реальном времени потоковыми процессорами, такими как Spark или Flink. Исторические данные и данные, не связанные с взаимодействием, такие как профиль пользователя (история), покупка, транзакция и другие данные, относящиеся к домену, доступны в хранилище данных или озере данных. Это «автономное» хранилище заполняется такой информацией из источников корпоративных данных, таких как Oracle в случае транзакционных данных или Salesforce в случае потенциальных клиентов или других маркетинговых данных, и обрабатывается регулярно и архивируется.

На приведенной выше диаграмме не всегда необходимо, чтобы онлайн-база данных не использовала только SQL, но я склоняюсь к базе данных NoSQL, такой как Redis, Cassandra или MongoDB, поскольку они предоставляют поиск на основе значения ключа, разные данные варианты хранения (по сравнению с СУБД), высокая пропускная способность и очень низкая задержка ответа.

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

Итак, что нового?

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

  1. Хранилище данных машинного обучения: производственные модели на уровне обслуживания и конвейере CI / CD / CT требуют постоянного доступа к данным, не беспокоясь об изменениях в инфраструктуре исходных данных. По сути, это отделяет системы машинного обучения от традиционной инфраструктуры.
  2. Повторное внедрение. Обычно на предприятии специалисты по обработке данных работают над проектированием функций и построением моделей, проходя цикл обучения и тестирования в автономном режиме. Когда эта модель будет готова к производству, инженерам придется заново реализовать функции, необходимые для производства.
  3. Данные на определенный момент времени: моделям необходимы данные на определенный момент времени для большей точности и во избежание утечки функций в процессе обучения.
  4. Возможность повторного использования. Разработка функций - один из наиболее важных этапов процесса моделирования. Функции, созданные как часть исследования данных, важность по отношению к целевой переменной или основанные на конкретной области знаний, выделяются как часть этого проекта, что приводит к дублированию усилий при разработке тех же функций в другом проекте.
  5. Производительность. Отсутствие ссылок на функции, трения между инженерами и учеными по поводу реализации жизненного цикла функций и увеличение времени вывода на рынок из-за жестких требований к уровню обслуживания снижает продуктивность команды машинного обучения.

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

Компоненты магазина функций:

  1. Реестр функций
    Реестр функций - важный компонент хранилища функций. Он обеспечивает поиск и обнаружение функций, доступных в магазине функций, и поддерживает централизованный репозиторий определений функций и метаданных. Команда специалистов по науке о данных использует его в качестве центрального интерфейса для взаимодействия в качестве общего каталога для обмена, определения и публикации новых функций.
  2. Оперативный мониторинг
    Магазин функций описывает правильность и качество данных. Дрейф модели и дрейф концепции можно проанализировать, сравнив данные, на которых модель была обучена, с последними значениями характеристик. Они также могут предоставлять интерфейсы для внешних систем, которые контролируют производительность модели в обслуживающей среде.
  3. Преобразование
    Всем приложениям машинного обучения требуется конвейер преобразования данных, который преобразует необработанные переменные данных в функции. Хранилища функций управляют этими конвейерами, а также координируют их.
    Существует 3 типа преобразований, которые в основном применимы в мире машинного обучения:
    1. Пакетные - данные в состоянии покоя, заархивированные данные обычно в хранилище данных, например пользовательские. история транзакций
    2. Поток - данные в движении, обычно в движке PubSub, например, отсутствие кликов в текущем сеансе
    3. По запросу - данные, доступные в то время, не могут быть предварительно вычислены и доступны из внешнего приложения, такого как IP-адрес пользователя
  4. Хранилище
    Автономное и онлайн-хранилище предоставляется специализированными магазинами. Данные автономных функций обычно хранятся в таких хранилищах, как Redshift, Snowflake, S3, BigQuery или HDFS (Hive / Impala). С другой стороны, функции, которые используются для вывода, хранятся в системах хранения с низкой задержкой, таких как Redis, Cassandra, MongoDB, DynamoDB, Elasticsearch, Solr и т. Д., И хранят последние значения для объектов хранилища функций.
  5. Обслуживание
    Одним из ключевых элементов хранилища функций является абстракция логики создания функций и ее обработки. Когда к функциям обращаются в целях обучения, к ним обычно обращаются через записные книжки Jupyter, например, а хранилище функций обеспечивает просмотр функций на определенный момент времени. Для целей онлайн-обслуживания он предоставляет вектор характеристик значений характеристик с последними данными, которые обслуживаются через базу данных с низкой задержкой.

На рынке доступны 2 очень популярных платформы для магазинов функций:

  1. Feast, что расшифровывается как Feature Store и представляет собой систему с открытым исходным кодом для машинного обучения. Он предоставляет компоненты реестра, хранения и обслуживания, однако на момент написания этого документа он еще не предоставляет конвейеры преобразования, но предоставляет подключаемые интерфейсы для существующих конвейеров преобразования для интеграции с Feast.
  2. Tecton - это полностью управляемое программное обеспечение как сервисная платформа, созданная для предприятий и поддерживающая уровень трансформации, а функциональные конвейеры могут управляться и координироваться изнутри платформы.

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

Более подробную информацию о магазинах функций можно найти на https://www.featurestore.org/.