Feathr: магазин функций LinkedIn теперь доступен в Azure

Feathr: магазин функций LinkedIn теперь доступен в Azure

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

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

Разработка дублированных функций

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

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

Перекос онлайн-офлайн

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

Команды воздерживаются от использования данных в реальном времени для вывода из-за сложности предоставления правильных данных.

Предоставление удобного способа обеспечения правильности данных на определенный момент времени является ключом к предотвращению утечки этикеток.

Функции обслуживания с низкой задержкой

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

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

Чтобы решить эти проблемы, была разработана концепция, называемая хранилищем функций , так что:

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

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

В Microsoft команда LinkedIn и команда Azure тесно сотрудничали с Feathr с открытым исходным кодом, сделали его расширяемым и создали встроенную интеграцию с Azure. Он доступен в этом репозитории GitHub , и вы можете узнать больше о Feathr в инженерном блоге LinkedI.

Некоторые из основных моментов для Feather включают в себя:

  • Масштабируемость со встроенными оптимизациями. Например, исходя из некоторых внутренних вариантов использования, Feathr может обрабатывать миллиарды строк и данные в масштабе PB с помощью встроенных оптимизаций, таких как фильтры Блума и объединения с солью.
  • Широкая поддержка соединений и агрегаций на определенный момент времени Feathr имеет высокопроизводительные встроенные операторы, разработанные для Feature Store, включая агрегацию на основе времени, скользящие оконные соединения, функции поиска, все с точностью до момента времени.
  • Широкие возможности настройки определяемых пользователем функций (UDF) с собственной поддержкой PySpark и Spark SQL для упрощения обучения специалистов по обработке и анализу данных.
  • Pythonic API для доступа ко всему с низкой кривой обучения Интеграция с построением моделей, поэтому специалисты по данным могут работать продуктивно с первого дня.
  • Богатая система типов, включая поддержку встраивания для расширенных сценариев машинного обучения/глубокого обучения. Одним из распространенных вариантов использования является создание вложений для профилей клиентов, и эти вложения можно повторно использовать в организации во всех приложениях машинного обучения.
  • Нативная облачная интеграция с упрощенной и масштабируемой архитектурой, которая проиллюстрирована в следующем разделе.
  • Совместное использование и повторное использование функций стало проще Feathr имеет встроенный реестр функций, поэтому функции можно легко использовать между разными командами и повышать производительность команды.

Инженер данных или машинного обучения создает функции, используя предпочитаемые ими инструменты (такие как pandas, Azure Machine Learning, Azure Databricks и другие).

Эти функции загружаются в офлайн-магазины, которые могут быть:

  1. База данных SQL Azure (в том числе бессерверная), выделенный пул SQL Azure Synapse (ранее SQL DW).
  2. Хранилище объектов , например хранилище BLOB-объектов Azure, Azure Data Lake Store и т. д. Формат может быть Паркет, Авро или Дельта-Лейк.