What ML feature stores require and how ScyllaDB fits in as fast, scalable online feature store В этом блоге мы исследуем роль магазинов функций в приложениях машинного обучения в режиме реального времени (ML) и почему ScyllaDB является сильным выбором для онлайн-сервиса функций. Мы будем охватывать основы функций, то, как работают магазины функций, их преимущества, различные требования к нагрузке, а также то, как задержка играет критическую роль в приложениях ML. Мы посмотрим на популярные рамки магазина функций, такие как Feast и как начать использовать ScyllaDB в качестве вашего онлайн-магазина функций. В чем особенность машинного обучения? Функция — это измеримое свойство, используемое для обучения или обслуживания модели машинного обучения. Функциями могут быть сырые точки данных или разработанные значения, полученные из сырых данных. Например, в приложении социальных сетей, таком как ShareChat, функции могут включать: Количество понравившихся за последние 10 минут Количество акций за последние 7 дней Тема пост Изображение: Иван Бурмистров и Андрей Манаков (ShareChat) Эти точки данных помогают предсказать результаты, такие как участие пользователей или рекомендации контента. Вектор функции — это просто совокупность функций, связанных с конкретной задачей прогнозирования, например, именно так может выглядеть вектор функции для приложения для оценки кредитоспособности. Выбор соответствующих точек данных и их преобразование в функции занимает значительную часть работы в проектах машинного обучения, а также является непрерывным процессом совершенствования и оптимизации функций, чтобы обучаемая модель стала более точной со временем. Особенности архитектурного мастерства Чтобы эффективно работать с функциями, вы можете создать центральное место для управления функциями, доступными в вашей организации. Стандартный процесс создания новых функций Сохранение функций для упрощенного доступа Открытие и повторное использование функций в командах Служение функциям как для обучения модели, так и для вывода Большинство архитектур различают два хранилища/базы данных: Оффлайн-магазин для обучения моделей (большое написание / чтение) Интернет-магазин для вывода (реальное время, низкая задержка письма / чтения) Типичный трубопровод магазина функций начинается с поглощения сырых данных (из озер или потоков данных), выполнения инженерных функций, сохранения функций в обоих магазинах, а затем обслуживания их через два отдельных трубопровода: один для обучения и один для вывода. Преимущества централизованного магазина Централизованные специальные магазины предлагают несколько преимуществ: Избегайте дублирования: команды могут повторно использовать существующие функции Самообслуживающийся доступ: ученые-данные могут генерировать и запрашивать функции самостоятельно Унифицированные трубопроводы: хотя тренировочные и выводные рабочие нагрузки существенно отличаются, они все равно могут быть запрошены с использованием одного и того же уровня абстракции Это приводит к более быстрой итерации, большей последовательности и лучшему сотрудничеству во всех рабочих процессах ML. Различные рабочие нагрузки в магазинах Давайте разделим два очень разных требования к рабочей нагрузке, которые существуют в магазине функций: обучение модели и вывод в реальном времени. Модель обучения (оффлайн магазин) Для того чтобы сделать прогнозы, вам нужно сначала обучить модель машинного обучения.Обучение требует большого и качественного набора данных.Вы можете хранить этот набор данных в оффлайн магазине функций. Латентность: не приоритет Объем: Высокий (от миллионов до миллиардов записей) Частота: редкие, запланированные работы Цель: Поиск большого количества исторических данных В основном, оффлайн-магазины должны эффективно хранить огромные наборы данных. Инверсия в реальном времени (онлайн магазин) Как только у вас есть модель, вы можете выполнить вывод в режиме реального времени. Вывод в режиме реального времени берет вклад, предоставленный пользователем, и превращает его в предсказание. Латентность: высокий приоритет Объем: низкий по запросу, но высокая пропускная способность (до миллионов операций в секунду) Частота: постоянная, вызванная действиями пользователя (например, заказы на еду) Цель: Обслуживать актуальные функции для быстрого прогнозирования Последний контент корзины пользователя, его возраст и местоположение могут быть превращены в функции и использованы мгновенно, чтобы рекомендовать другие предметы для покупки. Почему важна латентность Задержка (в контексте этой статьи) относится к времени между отправкой запроса и получением ответа из магазина функций. Для приложений ML в режиме реального времени – особенно тех, которые ориентированы на пользователя – низкая задержка имеет решающее значение для успеха. Представьте, что пользователю при оплате показывают связанные с ним продукты питания.Если это предложение занимает слишком много времени, чтобы загрузить из-за медленного интернет-магазина, возможность упущена. Включение последних данных Поиск соответствующих особенностей Бегущий инфермент Возвращение к предсказанию Это должно произойти за миллисекунды. Выбираем функциональное решение магазина После того, как вы решите создать магазин функций, вы быстро обнаружите, что есть десятки фреймворков и провайдеров, как с открытым исходным кодом, так и с коммерческим, из которых можно выбрать: Feast (открытый исходный код): обеспечивает гибкую поддержку баз данных (например, Postgres, Redis, Cassandra, ScyllaDB) Hopsworks: тесно связаны со своей собственной экосистемой AWS SageMaker: привязан к стеку AWS (например, S3, DynamoDB) И многие другие Такие факторы, как технический опыт вашей команды, требования к задержке и необходимые интеграции с существующим стеком, все играют роль. Если вы обеспокоены масштабируемостью и производительностью вашего интернет-магазина функций, то гибкость баз данных должна быть ключевым фактором. Есть магазины функций (например, AWS SageMaker, GCP Vertex, Hopsworks и т.д.), которые предоставляют свою собственную технологию баз данных в качестве интернет-магазина. С одной стороны, это может быть удобно для начала, потому что все обрабатывается одним поставщиком. Представьте, что вы выбираете такого поставщика с строгим требованием латентности P99 (например, <15ms P99). Требование успешно удовлетворено во время проверки концепции (POC). но позже вы испытываете пики латентности – возможно, потому что ваши требования меняются или есть приток новых пользователей в вашем приложении или какая-то другая непредсказуемая причина. Проблема в том, что вы не можете... по крайней мере, не легко. Вы застряли с встроенным решением. Невозможно мигрировать только от части интернет-магазина вашей архитектуры, потому что все заблокировано. Если вы хотите избежать этих ситуаций, вы можете взглянуть на инструменты, которые являются гибкими в отношении оффлайн и интернет-магазина бак-енд. инструменты, такие как Feast или FeatureForm позволяют вам привести свой собственный бак-энд бак-энд, как для онлайн и оффлайн магазинов. ScyllaDB как интернет-магазин ScyllaDB - это высокопроизводительная база данных NoSQL, которая является API, совместимой с Apache Cassandra и DynamoDB API. , и включает , что делает его идеальным для приложений с низкой задержкой, высокой пропускной способностью. Архитектура shard-per-core Встроенная система cache Почему ScyllaDB? Низкая латентность (однозначная производительность миллисекунды P99) Высокая доступность и устойчивость Высокая пропускная способность в масштабе (размещение в масштабе петабайт) Нет блокировки поставщика (работает на месте или в любом облаке) Замена Drop-in для существующих настроек Cassandra/DynamoDB Легкая миграция из других баз данных NoSQL (Cassandra, DynamoDB, MongoDB и т.д.) Интеграция с фреймворком Feast ScyllaDB блестит в случаях использования интернет-магазина функций, где производительность в режиме реального времени, доступность и предсказуемость задержки имеют решающее значение. Интеграция ScyllaDB + Feast Feast является популярной платформой для магазинов функций с открытым исходным кодом, которая поддерживает как онлайн, так и оффлайн магазины.Одной из ее сильных сторон является возможность подключения собственных источников баз данных, включая ScyllaDB. . ScyllaDB + интеграция Feast в docs Начинайте с функций магазина Tutorial Хотите попробовать использовать ScyllaDB в качестве вашего интернет-магазина функций? Посмотрите наши руководства, которые проводят вас через процесс создания кластера ScyllaDB и создания приложения для вывода в реальном времени. Инструкция: Приложение для прогнозирования цен с помощью ScyllaDB Приложение в режиме реального времени с Feast & ScyllaDB Интеграция Feast + ScyllaDB GitHub: ScyllaDB в качестве магазина примеров кода У вас есть вопросы или хотите помочь в установке? ! Один пост на форуме Я только что закончил мастерскую для разработчиков с организатором Feast, Франсиско Хавьером Арсео: Теперь его можно посмотреть по запросу. Update: Создайте приложения ML в режиме реального времени с помощью Python, Feast и NoSQL