Первоначально проект был создан Google и транспортным стартапом GoJek.

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



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

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

Мотивация

Как и другие быстрорастущие организации, занимающиеся наукой о данных, GO-JEK постоянно сталкивается с проблемами в плане извлечения и обнаружения признаков. В моделях машинного обучения GO-JEK обычно повторно используются общие характеристики, такие как время в пути до пункта назначения, время дня или профиль водителя, для извлечения информации из разнородных наборов данных. Помимо очевидных преимуществ извлечения и обнаружения функций, Google и GO-JEK решили создать Feast с некоторыми очень ощутимыми целями:

· Стандартизация функций: Feast пытается представить централизованный репозиторий для описания функций моделей машинного обучения. Это обеспечивает структуру способа определения функций и позволяет командам повторно использовать функции в различных моделях машинного обучения.

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

· Моделирование обучения и согласованности обслуживания. Стандартные представления Feast обеспечивают согласованность функций между обучением модели и обслуживанием. Это устраняет постоянное несоответствие между разрабатываемой и производственной версиями моделей машинного обучения.

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

Архитектура

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

  • Создание: функции на основе определенного формата и модели программирования.
  • Загрузка: функции посредством потокового ввода, импорта из файлов или таблиц BigQuery и записи в соответствующее хранилище данных.
  • Хранение: данные о функциях как для обслуживания, так и для обучения на основе шаблонов доступа к функциям.
  • Доступ: функции для обучения и обслуживания
  • Discover: информация об объектах и ​​функциях, которые хранятся и обслуживаются Feast.

Базовая архитектура Feast проиллюстрирована на следующем рисунке:

Feast полагается на BigQuery как на основные механизмы хранения для хранилища функций. В BigQuery функция определяется следующими атрибутами:

  • Сущность: функции должны быть связаны с известной сущностью, которая является концепцией домена. Примерами Сущностей могут быть Клиент, Драйвер или любые другие соответствующие объекты домена.
  • ValueType: должен быть определен тип функции, например Строка, байты, Int64, Int32, Float и т. Д.
  • Требования: свойства, относящиеся к тому, как следует хранить функцию для обслуживания и обучения.
  • Гранулярность: для функций временных рядов требуется определенная гранулярность.
  • StorageType: как для обслуживания, так и для обучения необходимо определить тип хранилища.

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

С точки зрения архитектуры Feast основан на четырех основных компонентах:

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

· Feast Store: Feast поддерживает два основных типа магазинов: складские и обслуживающие. Магазины Feast Warehouse Stores основаны на Google BigQuery и хранят все исторические данные о функциях. В хранилище можно запросить пакетные наборы данных, которые затем используются для обучения модели. Обслуживающие магазины несут ответственность за поддержание значений функций для доступа в производственной среде обслуживания.

· API обслуживания праздников. Этот API отвечает за получение значений функций по моделям в производстве. Feast Serving API поддерживает модели HTTP и gRPC, что позволяет использовать модели выполнения с низкой задержкой и высокой пропускной способностью.

· Клиентские библиотеки Feast: Feast поддерживает клиентские библиотеки для разных языков, таких как Java, Go и Python, а также модуль командной строки. Клиентские библиотеки упрощают взаимодействие разработчика с платформой.

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

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