С развитием ИИ и машинного обучения компании начинают использовать сложные конвейеры машинного обучения в различных приложениях, таких как системы рекомендаций, обнаружение мошенничества и многое другое. Эти сложные системы обычно требуют от сотен до тысяч функций для поддержки срочных бизнес-приложений, а конвейеры функций поддерживаются разными членами команды в разных бизнес-группах.
В этих системах машинного обучения мы видим множество проблем, которые потребляют много энергии инженеров по машинному обучению и специалистов по данным, в частности дублирование разработки функций, перекос онлайн-офлайн и обслуживание функций с низкой задержкой.
В организации тысячи функций скрыты в разных скриптах и в разных форматах; они не захвачены, не организованы и не сохранены, и, следовательно, не могут быть повторно использованы и усилены другими командами, кроме тех, кто их создал.
Поскольку разработка функций так важна для моделей машинного обучения, а функции нельзя использовать совместно, специалисты по данным должны дублировать свои усилия по разработке функций в разных командах.
Что касается функций, автономное обучение и интерактивный вывод обычно требуют разных конвейеров обслуживания данных — обеспечение согласованности функций в разных средах обходится дорого.
Команды воздерживаются от использования данных в реальном времени для вывода из-за сложности предоставления правильных данных.
Предоставление удобного способа обеспечения правильности данных на определенный момент времени является ключом к предотвращению утечки этикеток.
Для приложений реального времени поиск функций из базы данных для вывода в реальном времени без ущерба для задержки ответа и с высокой пропускной способностью может быть сложной задачей.
Легкий доступ к функциям с очень низкой задержкой является ключевым во многих сценариях машинного обучения, и необходимо выполнить оптимизацию, чтобы объединить различные вызовы API REST для функций.
Чтобы решить эти проблемы, была разработана концепция, называемая хранилищем функций , так что:
Разработка хранилища функций с нуля требует времени, и гораздо больше времени уходит на то, чтобы сделать его стабильным, масштабируемым и удобным для пользователя. Feathr — это хранилище функций, которое использовалось в производстве и тестировалось в LinkedIn более 6 лет, обслуживая всю платформу функций машинного обучения LinkedIn с тысячами функций в производстве.
В Microsoft команда LinkedIn и команда Azure тесно сотрудничали с Feathr с открытым исходным кодом, сделали его расширяемым и создали встроенную интеграцию с Azure. Он доступен в этом репозитории GitHub , и вы можете узнать больше о Feathr в инженерном блоге LinkedI.
Некоторые из основных моментов для Feather включают в себя:
Инженер данных или машинного обучения создает функции, используя предпочитаемые ими инструменты (такие как pandas, Azure Machine Learning, Azure Databricks и другие).
Эти функции загружаются в офлайн-магазины, которые могут быть: