「ScyllaDB NoSQLを使用したAI/MLフィーチャーストアの構築方法」

Building AI/ML Feature Store with ScyllaDB NoSQL

機械学習(ML)の特徴ストアは、Uberが2017年にミケランジェロでこの概念を紹介して以来、ビジネスクリティカルなアプリケーションで注目され、利用されています。このブログ投稿では、ML特徴ストアの基礎について掘り下げ、なぜScyllaDBが特徴ストアアーキテクチャの重要な部分になり得るのかを探求します。

特徴ストアとは何かを理解するためには、まず特徴が何であるかを理解することが重要です。

特徴とは何ですか?

機械学習では、特徴は過去のデータに基づいてモデルを教え、将来に対する予測をするために使用できるデータポイントのセットです。例えば、当社の特徴ストアのサンプルアプリケーションでは、過去のフライト記録に基づいてフライトの遅延に関する予測を行うことができます。

特徴は複雑なデータ処理と変換パイプラインの結果です。大量の特徴データは正確な予測と成功する機械学習プロジェクトを可能にします。

特徴ストアとは何ですか?

特徴ストアは、リアルタイムおよび過去の特徴を含む、機械学習アーキテクチャの中心的なデータベースです。特徴ストアを使用することで、データエンジニアやデータサイエンティストは同じ中央リポジトリを使用して特徴を発見、監視、分析できます。特徴ストアのアーキテクチャはどのようなものですか?

特徴ストアのオンラインおよびオフラインデータベース

特徴ストアについて話すとき、ユーザーは通常、アーキテクチャ内の2種類のデータベースを区別します。一方では、オンラインデータベースを使用し、他方ではオフラインデータベースを持つこともあります。これらのデータベースは異なる目的で使用されます。

オフラインデータベース:この種のデータベースは、通常バッチでインジェストされる過去の処理済み特徴を格納します。オフラインデータベースには、歴史的な特定の期間にわたる特徴データが含まれているため、特定の期間の特徴セットと一緒に作業するのに役立ちます。

オンラインデータベース:このデータベースには、リアルタイムデータストリームとオフラインデータベースからのデータが含まれる場合もあります。オンラインストレージは、最新の特徴データを本番モデルやその他のリアルタイムアプリケーションに提供するために使用されます。パフォーマンスと低レイテンシが非常に重要です。データベースがリアルタイムの特徴を十分に高速に提供できない場合、モデルは古いまたは不正確なデータを使用して予測を行う可能性があります。

特徴ストアのデータモデリング:ワイドテーブルとナローテーブルのデザイン

特徴ストア内のデータモデルを設計する際には、オフラインストアまたはオンラインストアで、ワイドテーブルとナローテーブルの2種類のテーブルデザインから選択できます。それぞれには利点と欠点があります。両方の実際の例を見て、ユースケースに最適なものを選択しましょう。

ワイドテーブルデザイン

ワイドテーブルデザインでは、各特徴に個別の列が含まれます。テーブルに格納する特徴の種類が増えるほど、作成する列の数も増えます。

ワイドテーブルのレイアウト例

view rawgistfile1.txt 

このようなレイアウトは始めるのに簡単ですが、時間の経過とともに維持が複雑になり、変更が困難になることもあります。新しい特徴を導入したり(または既存の特徴を削除したり)する場合は、スキーマを変更する必要がありますが、これは複雑な作業になることがあります。

ナローテーブルデザイン

ナローテーブルデザインはシンプルでメンテナンスが容易です。これは、特徴を追加または削除しても列の数が将来的に増減しないことに起因しています。

ナローテーブルのレイアウト例

view rawgistfile1.txt 

このレイアウトでは、名前(例:LATE_AIRCRAFT_DELAY)とその特徴の値を格納するために、長期的には2つの固定列のみを使用することができます。

一般的には、ナローテーブルではデータの型をキャストする必要がある場合があります。なぜなら、データが正しい形式ではないためです(例:列の型はFLOATですが、実際のデータ値はINTEGERです)。幸いなことに、特徴ストアについて話すときには、オンラインストアとオフラインストアは既に適切なクリーンな数値(FLOAT)形式のデータを持っており、すべての値のデータ型が同じであるため、これは特徴ストアの場合には欠点ではありません。

ScyllaDBとは何ですか?特徴ストアアーキテクチャでどのように使用できますか?

機械学習チームがリアルタイムの推論アプリケーションを作成するためには、低遅延でスケール可能な特徴を返すことができるデータベースが必要です。ScyllaDBは高性能で低遅延のNoSQLデータベースであり、高い読み書き操作の処理量に対応することができます。さらに、ScyllaDBはGE HealthcareやShareChatなどの企業で信頼されているデータベースであり、ミッションクリティカルな特徴ストアのワークロードに対応しています。高い可用性と耐障害性により、パフォーマンスと信頼性が重要なインフラストラクチャで重要な役割を果たすことができます。

フィーチャーストアアーキテクチャでオンラインストアとしてScyllaDBを活用するだけでなく、ScyllaDBはオンライン/オフラインのハイブリッドストレージソリューションとしても利用されています。このアプローチでは、チームのメンテナンス負荷を軽減するために、すべてのフィーチャーストアワークロードに対応するための単一のデータベースを使用することができます。

ユーザーはScyllaDBをアーキテクチャの中心に配置し、フィーチャーやフィーチャーストアのメタデータの永続化と取得に使用することがよくあります。この場合、ScyllaDBはオンラインストアとして機能します。他のユーザーはScyllaDBをオンライン/オフラインのハイブリッドストレージとして使用しています。パフォーマンスは、モデルの開発を高速化するために重要な要件であり、ScyllaDBの読み書きパフォーマンスは常にユーザーの期待を満たすか超えるレベルです。

実際、一部のユーザーは、ScyllaDBが複数のデータベースを置き換え、機械学習データのすべてのニーズに対応するための単一の中央ストアとして機能することができることを発見しました。例えば、ScyllaDBはRedis(オンラインストア)やPostgreSQL(オフラインストア)を置き換えることができます。これにより、インフラストラクチャのメンテナンスコストを削減し、シンプルにすることができます。

ScyllaDBは、低遅延と高パフォーマンスが必要なユースケースで輝きます。さらに、ScyllaDBはCassandraとDynamoDBと互換性がありますので、これらのデータベースのいずれかを既に使用している場合でも、クエリを変更することなくシームレスに移行することができます。

チュートリアル:ScyllaDBオンラインストア

ScyllaDBをオンラインストアとして使用するためのスタートガイドとして、サンプルアプリケーション(GitHubでも利用可能)を作成しました。

  1. リポジトリをクローンする
  2. ScyllaDB Cloudにサインアップするか、ローカルにScyllaDBをインストールする
  3. スキーマを作成する:cqlsh “node-0.aws_us_east_1.xxxxxxxxx.clusters.scylla.cloud” 9042 -u scylla -p “password” -f schema.cql
  4. cqlshを使用してインスタンスに接続し、サンプルデータセットをインポートする:cqlsh “node-0.aws_us_east_1.xxxxxxxxx.clusters.scylla.cloud” 9042 -u scylla -p “password” scylla@cqlsh> COPY feature_store.flight_features FROM ‘flight_features.csv’;

このコマンドはサンプルのフライトデータセットをインポートします:

ScyllaDB + Feast

ScyllaDBは、Feastなどのフィーチャーストアツールとも統合されています。Feastは本番環境の機械学習のための人気のあるオープンソースのフィーチャーストアです。Feastを使用する場合、ScyllaDBを含む複数のデータベースをオンラインフィーチャーストアとして使用することができます。

FeastのオンラインストアとしてScyllaDBをセットアップするには、Feastの設定ファイルを編集し、ScyllaDBの資格情報を追加する必要があります。ScyllaDBはCassandra互換なので、Feastの組み込みCassandraコネクタを使用することができます。

まとめ

フィーチャーストアは、フィーチャーエンジニアリングや機械学習モデルの構築に必要です。リアルタイムのフィーチャーストアインフラストラクチャを構築している場合、パフォーマンスを慎重に考慮する必要があります。低遅延、高パフォーマンス、高スループットの要件により、NoSQLデータベースはフィーチャーストアのオンラインストレージソリューションとして最適な候補です。

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more