ИИ и LLMМашинное обучениеТарифы Performance и Scale

Feature store для ML в реальном времени

Типизированные признаки для пользователей, элементов и сеансов, которые записывают ваши конвейеры и читают ваши модели во время инференса, с прикреплённым возрастом.

типа признаков
3
возвращается при каждом чтении
Возраст
чтение для многих сущностей
Пакетное
Шаг 1 из 5
Определяем схему

Типизированная группа. Неверные типы отклоняются при записи.

Пример сеансаplaying
# Определяем схему
hotkv> FEATURE.CREATE user_features "Signals for scoring" SCHEMA age int64 ctr double country string
OK

Анимированная демонстрация с настоящими командами HotKV и примерами ответов. Нажмите на любой шаг, чтобы перейти к нему. Команды и ответы остаются на английском, ровно так, как вы вводите и видите их в HotKV.

Проблема

Модель в продакшене хороша настолько, насколько хороши признаки, которые она видит при инференсе. Офлайн-хранилища слишком медленны для запроса на каждый вызов, а у простого хранилища «ключ - значение» нет схемы, поэтому ошибку конвейера, записавшего текст в числовой признак, обнаруживает модель, а не хранилище.

Как с этим справляется HotKV

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

Шаг за шагом

Что происходит, команда за командой

  1. 01

    Определяем схему

    Типизированная группа. Неверные типы отклоняются при записи.

    FEATURE.CREATE user_features "Signals for scoring" SCHEMA age int64 ctr double country string
  2. 02

    Передаём свежие значения потоком

    Потоковое задание обновляет признаки по мере поступления событий.

    FEATURE.SET user_features user:42 ctr 0.051 country DE
  3. 03

    Дозаполняем с правильным временем

    Пакетные задания ставят сущностям время, когда значения были верны, а не время загрузки.

    FEATURE.SETAT user_features user:42 1790985600123 age 31
  4. 04

    Оцениваем оформление заказа

    Сервер модели читает признаки пользователя вместе со временем обновления и возрастом в миллисекундах.

    FEATURE.GET user_features user:42
  5. 05

    Пакетом для многих сущностей

    Ранжируйте страницу кандидатов одним вызовом.

    FEATURE.BATCH user_features user:42 user:77 user:91 FEATURES ctr
Где это уместно

Реальные сценарии

Оценка мошенничества и рисков

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

Ранжирование и реклама

Кликабельность и недавние интересы читаются для каждого кандидата на странице одним пакетным вызовом.

Динамическое ценообразование

Признаки спроса и запасов непрерывно передаются потоком и читаются моделью ценообразования при каждом расчёте.

Встроено

Что вы получаете

Типизированные схемы

Признаки int64, double и string. Записи с неверным типом отклоняются.

FEATURE.CREATEFEATURE.SCHEMA

Потоковая передача и дозаполнение

Записывайте с текущим временем или со временем, когда значения были верны.

FEATURE.SETFEATURE.SETAT

Свежесть при каждом чтении

Каждое чтение возвращает время обновления сущности и её возраст.

FEATURE.GET

Пакетная выдача

Много сущностей, выбранные признаки, один вызов.

FEATURE.BATCHFEATURE.STATS

Частые вопросы

Заменяет ли это мой офлайн feature store?

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

Как обнаружить устаревшие признаки?

Каждый FEATURE.GET возвращает время последнего обновления и возраст в миллисекундах, поэтому сервер модели может отклонить или пометить старые значения.

Какие тарифы это включают?

Feature store входит в тарифы Performance и Scale.

Связанные сценарии

Попробуйте на своей нагрузке

HotKV понимает протокол Redis, поэтому вы можете подключить к нему существующий клиент и выполнить те же команды.