What ML feature stores require and how ScyllaDB fits in as fast, scalable online feature store このブログ記事では、リアルタイムの機械学習(ML)アプリケーションにおける機能ストアの役割と、なぜScyllaDBがオンライン機能サービスのための強力な選択肢であるかについて説明します。我々は、機能ストアがどのように機能するか、機能ストアがどのように機能するか、それらの利点、異なるワークロード要件、および遅延がMLアプリケーションでどのように重要な役割を果たすかについて説明します。 機械学習の特徴とは? 機能は、機械学習モデルをトレーニングまたはサービスするために使用される測定可能な属性です. Features can be raw data points or engineered values derived from the raw data. For example, in a social media app like ShareChat, features may include: 過去10分間で好きな人の数 過去7日間の株式数 ポストのテーマ 画像:イヴァン・バーミストロフ&アンドレイ・マナコフ(ShareChat) これらのデータポイントは、ユーザーの関与やコンテンツの推奨などの結果を予測するのに役立ちます。 機能ベクターは単に特定の予測タスクに関連する機能のコレクションです. For example, this is what a feature vector could look like for a credit scoring application. 関連するデータポイントを選択し、それらを機能に変換することは、機械学習プロジェクトにおける作業の重要な部分を占めています。 Store Architecturesの特徴 機能で効率的に作業するには、組織内で利用可能な機能を管理するための中央の場所を作成できます。 新しい機能を作成するための標準的なプロセス シンプルなアクセスのための機能の保存 チーム間の機能の発見と再利用 モデルトレーニングと推論の両方にサービスする機能 ほとんどのアーキテクチャでは、2 つのストア/データベースを区別します。 モデルトレーニングのオフラインストア(Bulk writes/reads) Online store for inference (real-time, low-latency writes/reads) 典型的な機能ストアパイプラインは、原料データ(データレイクやストリームから)を摂取し、機能エンジニアリングを実行し、両方のストアで機能を保存し、その後、2つの別々のパイプラインを通じてサービスします: 1つはトレーニング、もう1つは推論です。 Centralized Feature Storeの利点 集中的な機能ストアは、いくつかの利点を提供します: ダブル化を避ける:チームは既存の機能を再利用できます。 Self-Service Access: Data Scientists can generate and query features independently. データサイエンティストは独自に機能を生成し、クエリすることができます。 Unified pipelines: Training and inference workloads are vastly different, they can still be queryed using the same abstraction layer. トレーニングと推測ワークロードは大きく異なりますが、それらはまだ同じ抽象層を使用してクエリすることができます。 これにより、より高速なイテレーション、より一貫性、およびMLワークフロー全体でのより良いコラボレーションが得られます。 Feature Storesのさまざまなワークロード 機能ストア内で存在する2つの非常に異なるワークロード要件を分解しましょう:モデルトレーニングとリアルタイムの推論。 モデルトレーニング(オフラインショップ) 予測するには、まず機械学習モデルをトレーニングする必要があります。トレーニングには、大規模で高品質なデータセットが必要です。このデータセットをオフライン機能ストアに保存できます。 タグ: Not a Priority ボリューム: High (millions to billions of records) 頻度: 稀有、予定されている仕事 目的: 大量の歴史的データを取得する 基本的にオフラインストアは、膨大なデータセットを効率的に保存する必要があります。 リアルタイム(オンラインショップ) モデルが完了したら、リアルタイムの推論を実行できます。リアルタイムの推論はユーザーが提供する入力を取り、それを予測に変換します。 タグ:High Priority ボリューム:リクエストごとに低いが、パフォーマンスが高い(数百万回/秒まで) 頻度:常時、ユーザーのアクションによって引き起こされる(例えば、食事の注文) 目的:最新の機能を提供し、予測を迅速に行う たとえば、食品配達アプリを検討してください. ユーザーの最近のカートのコンテンツ、年齢、位置は機能に変換され、すぐに購入する他のアイテムを推奨するために使用されます. This would require real-time inference - and latency makes or breaks the user experience. なぜ遅延が重要なのか Latency (in the context of this article) refers to the time between sending a query and receiving the response from the feature store. リアルタイムのMLアプリケーション(特にユーザー向けのアプリケーション)では、低い遅延が成功に不可欠です。 チェックアウトのユーザーが関連する食品を表示していると想像してください. この提案が遅いオンラインストアのせいで読み込むのに時間がかかりすぎると、その機会は失われます. The end-to-end flow from 最新データの入力 関連する特徴を求める INFERENCEの走り方 予測に戻る ミリ秒で起こります。 Feature Store ソリューションの選択 機能ストアを構築することを決めると、オープンソースと商用の両方のフレームワークとプロバイダが選択できることがすぐにわかります。 Feast(オープンソース):柔軟なデータベースサポート(Postgres、Redis、Cassandra、ScyllaDBなど) Hopsworks: 独自の生態系と密接に結びついている AWS SageMaker: AWS スタックに接続(例えば、S3、DynamoDB) また、多くの他者 あなたのチームの技術的専門知識、遅延要件、および既存のスタックとの必要な統合などの要因はすべて役割を果たします。 あなたがオンライン機能ストアのスケーラビリティとパフォーマンスについて心配している場合は、データベースの柔軟性は重要な考慮事項です。 機能ストア(AWS SageMaker、GCP Vertex、Hopsworksなど)は、オンラインストアとして独自のデータベーステクノロジーを提供しています。 一方で、これはすべてが1つのプロバイダーによって処理されているため、始めるのに便利かもしれません。 厳格なP99遅延要件(例えば、<15ms P99)でこのようなベンダーを選ぶことを想像してください。この要件は、コンセプトの証明(POC)の期間中に成功して満たされますが、後で遅延のピークを経験します - おそらくあなたの要件が変化するか、またはあなたのアプリに新しいユーザーが増加しているか、または他の予測不能な理由があります。 問題は...少なくとも簡単ではありません。あなたは組み込まれたソリューションに閉じ込められています。すべてがロックされているので、あなたのアーキテクチャのオンラインストアの部分だけを移行することは不可能です。 これらの状況を回避したい場合は、オフラインおよびオンラインストアのバックエンドに関して柔軟なツールを見つけることができます Feast または FeatureForm のようなツールでは、オンラインおよびオフラインストアの両方で独自のデータベースバックエンドを導入することができます。 ScyllaDB オンライン機能ストア ScyllaDB は、Apache Cassandra および DynamoDB API と互換性のある高性能 NoSQL データベースです。 , and includes 低遅延、高出力の機能ストアアプリケーションに最適です。 shard-per-core 建築 組み込まれたキャッシュシステム なぜScyllaDB? Low latency (single-digit millisecond P99 performance) High Availability and Resilience(高可用性と抵抗性) High throughput at scale(ペタバイトスケール展開) No vendor lock-in (on-prem or in any cloud) 既存の Cassandra/DynamoDB セットアップの Drop-in 交換 他のNoSQLデータベース(Cassandra、DynamoDB、MongoDBなど)からの簡単に移行 Feature Store Framework Feast との統合 ScyllaDBは、リアルタイムのパフォーマンス、可用性、および遅延の予測が重要なオンライン機能ストアの使用例に輝きます。 ScyllaDB + Feast インテグレーション Feast はオンラインおよびオフラインストアをサポートする人気のあるオープンソースの機能ストアフレームワークです。その強みの1つは、ScyllaDB を含む独自のデータベースソースを接続する機能です。 . ScyllaDB + Feast ドキュメントへの統合 Get Started with a Feature Store チュートリアル ScyllaDB をオンライン機能ストアとして使用してみたいですか? ScyllaDB クラスタを作成し、リアルタイムの推論アプリケーションを構築するプロセスを通じてあなたを案内する私たちのチュートリアルをご覧ください。 チュートリアル: Price Prediction inference app with ScyllaDB チュートリアル:Feast & ScyllaDBによるリアルタイムアプリ Feast + ScyllaDB 統合 GitHub: ScyllaDB as a feature store コードの例 質問あるいは設定の手助けをしたいですか? 提出 ! Post in フォーラム I just completed a developer workshop with Feastiner, Francisco Javier Arceo: Feastinerと開発者ワークショップを完了しました。 現在、ご要望によりご覧いただけます。 Update: リアルタイムのMLアプリをPython、Feast、NoSQLで構築する