AI en LLMMachine learningPlannen Performance en Scale

Realtime ML-feature-store

Getypeerde features voor gebruikers, items en sessies, geschreven door je pipelines en gelezen door je modellen bij inferentie, met hun leeftijd erbij.

featuretypen
3
bij elke read teruggegeven
Leeftijd
reads voor veel entiteiten
Batch
Stap 1 van 5
Het schema definiëren

Een getypeerde groep. Verkeerde typen worden bij het schrijven geweigerd.

Voorbeeldsessieplaying
# Het schema definiëren
hotkv> FEATURE.CREATE user_features "Signals for scoring" SCHEMA age int64 ctr double country string
OK

Een geanimeerde walkthrough met echte HotKV-commando's en voorbeeldantwoorden. Klik op een stap om ernaartoe te springen. Commando's en antwoorden blijven Engels, precies zoals je ze in HotKV typt en ziet.

Het probleem

Een model in productie is maar zo goed als de features die het bij inferentie ziet. Offline datawarehouses zijn te traag om per verzoek te bevragen, en een gewone key-valuestore heeft geen schema, dus een pipelinefout die tekst in een numerieke feature schrijft wordt ontdekt door het model, niet door de store.

Hoe HotKV het aanpakt

Featuregroepen in HotKV hebben een getypeerd schema. Streamingjobs schrijven verse waarden, batchjobs vullen aan met hun eigen tijdstempels en de modelserver leest één entiteit of een hele batch in één aanroep. Elke read geeft terug wanneer de entiteit voor het laatst is bijgewerkt en hoe oud ze is, zodat verouderde features kunnen worden gedetecteerd.

Stap voor stap

Wat er gebeurt, commando voor commando

  1. 01

    Het schema definiëren

    Een getypeerde groep. Verkeerde typen worden bij het schrijven geweigerd.

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

    Verse waarden streamen

    De streamingjob werkt features bij terwijl gebeurtenissen binnenkomen.

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

    Aanvullen met de juiste tijd

    Batchjobs stempelen entiteiten met het moment waarop de waarden waar waren, niet het moment waarop ze zijn geladen.

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

    Een checkout scoren

    De modelserver leest de features van de gebruiker, met de updatetijd en de leeftijd in milliseconden.

    FEATURE.GET user_features user:42
  5. 05

    Batch voor veel entiteiten

    Rangschik een pagina met kandidaten met één aanroep.

    FEATURE.BATCH user_features user:42 user:77 user:91 FEATURES ctr
Waar het past

Praktijkscenario's

Fraude- en risicoscoring

Kaartfrequentie, apparaatleeftijd en accountgeschiedenis worden bij het afrekenen gelezen, in het verzoekpad, voordat de betaling wordt goedgekeurd.

Ranking en advertenties

Doorklikratio's en recente interesses worden voor elke kandidaat op een pagina in één batchaanroep gelezen.

Dynamische prijsstelling

Features voor vraag en voorraad worden continu binnengestreamd en bij elke offerte door het prijsmodel gelezen.

Ingebouwd

Wat je krijgt

Getypeerde schema's

int64-, double- en stringfeatures. Schrijfacties met het verkeerde type worden geweigerd.

FEATURE.CREATEFEATURE.SCHEMA

Streaming en aanvulling

Schrijf met de huidige tijd of met het moment waarop de waarden waar waren.

FEATURE.SETFEATURE.SETAT

Versheid bij elke read

Elke read geeft de updatetijd en leeftijd van de entiteit terug.

FEATURE.GET

Batchserving

Veel entiteiten, geselecteerde features, één aanroep.

FEATURE.BATCHFEATURE.STATS

Veelgestelde vragen

Vervangt dit mijn offline feature store?

Het is de onlinekant, voor reads met lage latentie bij inferentie. Trainingsdata kan nog steeds uit je datawarehouse komen, met aanvullingen die met FEATURE.SETAT in HotKV worden geschreven.

Hoe detecteer ik verouderde features?

Elke FEATURE.GET geeft de tijd van de laatste update en de leeftijd in milliseconden terug, zodat de modelserver oude waarden kan weigeren of markeren.

Welke plannen bevatten het?

De feature store maakt deel uit van de plannen Performance en Scale.

Verwante use cases

Probeer het op je eigen workload

HotKV spreekt het Redis-protocol, dus je kunt een bestaande client erop richten en dezelfde commando's uitvoeren.