Посмотреть питчVolga Data & Feature Engine for Real-Time AI/ML - движок для вычисления ML фичей (и не только) в режиме реального времени.
Github: https://github.com/volga-project/volga
Проблема: создание self-serve real-time feature platform - сложная инженерная задача, требующая координации нескольких неоднородных вычислительных систем (Flink, Spark, кастомные дата-сервисы), а также написания множества абстракций связывающих эти системы и предоставляющих единый интерфейс для описания и оркестрации вычислений (разные языки, платформы, архитектуры, разные требования к свежести/latency вычисления, и т.д.). Существующие open-source потоковые движки (Flink, Spark Streaming) не заточены под real-time ML кейс, а так же не предоставляют нативную поддержку Python экосистемы (JVM based). Managed платформы (Tecton.ai, Chalk.ai, Fennel.ai) предоставляют необходимый функционал, но ведут к привязке к вендору (vendor lock-in).
Volga призвана решить эту проблему и стать вычислительным ядром при проектировании open-source альтернатив managed платформам (Tecton, Fennel), а так же полноценным аналогом Flink/Spark Streaming с фокусом на Python+ML экосистему.
Volga предоставляет единый однородный вычислительный слой, использующий акторную модель на базе Ray. Она строится на гибридной Push+Pull архитектуре с кастомным потоковым движком на Python и Rust и отдельным слоем On-Demand Compute; это позволяет выполнять широкий спектр взаимосвязанных вычислений в условиях разных требований к скорости/задержке: в потоковом режиме (online/streaming), на исторических данных (offline/batch) и в inference-time (on-demand).
Проект получил много положительных отзывов от инженеров из таких компаний как Netflix, Tecton, CloudKitchens, Fidelity, Fennel, Sharechat, TurboML, а так же автора фреймворка Ray (в питч-видео).
На данный момент есть рабочий end-to-end прототип и готовы:
- Распределенный масштабируемый потоковый движок на Python и Rust (пост про архитектуру - https://volgaai.substack.com/p/volga-streaming-engine-and-networking-1), scalability бенчмарк на Kubernetes: 1m+ msg/s, 30ms latency (пост про бенчмарк - https://volgaai.substack.com/p/volga-streaming-engine-and-networking-3)
- On-Demand Compute слой для вычисления фичей в inference/request-time с произвольным графом зависимостей, синхронизирован с потоковым движком, бенчмарк с >100к RPS (пост в процессе)
- Entity API - интерфейс на Python для созданий моделей данных, декларативных пайплайнов и фичей, динамических пользовательских функций
- Построен на акторах на платформе Ray - поддерживает всю экосистему Ray, работает на Kubernetes
- Движок вносит полноценный streaming в экосистему Ray
В приоритете доведение до релизной prod-ready версии: Roadmap - https://github.com/volga-project/volga/issues/69
Веду блог о разработке - https://volgaai.substack.com
Вступительный пост про проблему и мотивацию - https://volgaai.substack.com/p/volga-open-source-feature-engine-1
Также веду ТГ канал по общей теме real-time систем с уклоном в AI/ML, включая разработку Волги - @realtimeaiml
Буду рад конструктивному фидбэку и всегда открыт к новым контрибьюторам!