Spanner Vertex AI インテグレーションの概要

このページでは、Spanner Vertex AI インテグレーションの概要について説明します。Spanner Vertex AI インテグレーションは、GoogleSQL データベースと PostgreSQL データベースの両方で機能します。

Spanner と Vertex AI のインテグレーションにより、GoogleSQL および PostgreSQL のインターフェースを介して Vertex AI にホストされている分類器と回帰 ML モデルにアクセスできます。これにより、ML 予測提供機能を、DQL / DML クエリを使用して実行される一般的な Spanner データアクセス オペレーションにシームレスに統合できます。

Spanner Vertex AI インテグレーションのメリット

Spanner Vertex AI インテグレーションを使用して ML 予測を生成すると、Spanner のデータアクセスと Vertex AI 予測エンドポイントへのアクセスが別々に実行される方法と比較して、いくつかのメリットが生まれます。

  • パフォーマンス:
    • レイテンシの改善: Spanner Vertex AI インテグレーションが Vertex AI サービスと直接通信することにより、Spanner のクライアントを実行しているコンピューティング ノードと Vertex AI サービス間の追加のラウンド トリップがなくなります。
    • スループットと並列性の向上: Spanner Vertex AI インテグレーションは、Spanner の分散クエリ処理インフラストラクチャ上で実行され、高度な並列クエリ実行をサポートしています。
  • ユーザー エクスペリエンス:
    • シンプルで、整合がとれており、使い慣れた 1 つの SQL インターフェースを使用する機能により、Spanner レベルのデータ変換と、ML 処理の両方のシナリオを容易に実現できるため、ML の参入障壁が低くなり、はるかにスムーズなユーザー エクスペリエンスを実現できます。
  • 費用:
    • Spanner Vertex AI インテグレーションでは、Spanner のコンピューティング容量を使用して ML コンピューティングと SQL クエリ実行の結果をマージすることで、追加のコンピューティング(Compute Engine や Google Kubernetes Engine など)をプロビジョニングする必要がなくなります。

Spanner Vertex AI インテグレーションの仕組み

Spanner Vertex AI インテグレーションは、ML モデルをホストしませんが、Vertex AI サービス インフラストラクチャを代わりに使用します。Spanner Vertex AI インテグレーションでモデルを使用するために Vertex AI を使用してモデルをトレーニングする必要はありませんが、Vertex AI エンドポイントにデプロイする必要があります。

Spanner に保存されているデータでモデルをトレーニングするには、次の方法を使用します。

Spanner Vertex AI インテグレーションにより、ML モデルを使用するための次の機能が拡張されます。

Spanner Vertex AI インテグレーション関数の使用

Spanner Vertex AI インテグレーションのモデルを使用すると、ML Predict 関数を使用して SQL コードで予測やテキスト エンベディングを生成できます。これらの関数は次のとおりです。

GoogleSQL

GoogleSQL では、次の ML 予測関数を使用できます。

ML.PREDICT

ML.PREDICT 関数でモデルを使用する前に、CREATE MODEL DDL ステートメントを使用してモデルを登録する必要があります。

SAFE.ML.PREDICT を使用して、予測でエラーではなく null を返すこともできます。これは、一部の失敗した予測が許容できる大規模なクエリを実行する場合に役立ちます。

PostgreSQL

PostgreSQL では、次の ML 予測関数を使用できます。

spanner.ML_PREDICT_ROW

関数を使用するには、Vertex AI Model Garden からモデルを選択するか、Vertex AI にデプロイしたモデルを使用します。

Vertex AI でモデルをエンドポイントにデプロイする方法については、エンドポイントにモデルをデプロイするをご覧ください。

これらの関数を使用して ML 予測を生成する方法については、SQL を使用して ML 予測を生成するをご覧ください。

これらの関数を使用してテキスト エンベディングを生成する方法については、テキスト エンベディングを取得するをご覧ください。

料金

Spanner Vertex AI インテグレーションで Spanner を使用する場合、Spanner からの追加料金は発生しません。ただし、この機能に関連して以下の料金がかかる場合があります。

  • Vertex AI オンライン予測には、標準料金が課金されます。合計料金は、使用するモデルタイプによって異なります。一部のモデルタイプでは、使用するマシンタイプとノード数に応じて 1 時間あたりの料金が一定になる場合があります。モデルタイプによっては、呼び出し単位の料金になる場合もあります。呼び出し単位の料金は、明示的な予測割り当てが設定されている専用プロジェクトにデプロイすることをおすすめします。

  • Spanner と Vertex AI 間のデータ転送には、標準料金が課金されます。合計料金は、クエリを実行するサーバーをホストするリージョンと、呼び出されたエンドポイントをホストするリージョンによって決まります。料金を最小限に抑えるには、Spanner インスタンスと同じリージョンに Vertex AI エンドポイントをデプロイします。マルチリージョン インスタンス構成または複数の Vertex AI エンドポイントを使用する場合は、同じ大陸にエンドポイントをデプロイします。

SLA

Vertex AI オンライン予測の可用性が低いため、Spanner Vertex AI 統合を使用しながら Spanner の高可用性を維持するように Spanner ML モデルを適切に構成する必要があります。

  1. Spanner ML モデルでは、フェイルオーバーを有効にするために、バックエンドで複数の Vertex AI エンドポイントを使用する必要があります。
  2. Vertex AI エンドポイントは Vertex AI SLA に準拠している必要があります。
  3. Vertex AI エンドポイントは、受信トラフィックを処理するのに十分な容量をプロビジョニングする必要があります。
  4. リージョンの停止を回避するには、Vertex AI エンドポイントで Spanner データベースに近い別のリージョンを使用する必要があります。
  5. Vertex AI エンドポイントでは、プロジェクトごとの予測割り当てに関する問題を回避するために、別のプロジェクトを使用する必要があります。

冗長な Vertex AI エンドポイントの数は、SLA と Spanner クエリ内の行数によって異なります。

Spanner SLA Vertex AI SLA 1 行 10 行 100 行 1000 行
99.99% 99.9% 2 2 2 3
99.99% 99.5% 2 3 3 4
99.999% 99.9% 2 2 3 3
99.999% 99.5% 3 3 4 4

Vertex AI エンドポイントでまったく同じモデルをホストする必要はありません。最初のエンドポイントとして、複雑でコンピューティング負荷の高いプライマリ モデルを備えた Spanner ML モデルを構成することをおすすめします。以降のフェイルオーバー エンドポイントは、コンピューティング負荷が低く、スケーラビリティが高く、トラフィックの急増に対応できる、簡素化されたモデルを指定できます。

コンプライアンス

Assured Workloads は、Vertex AI Prediction API をサポートしていません。リソース使用を制限する制約を有効にすると、Vertex AI API を無効にするほかに、Spanner Vertex AI 統合機能を効果的に無効にできます。

さらに、VPC Service Controls の境界を作成して、コンプライアンスが適切に構成されていない可能性のある非本番プロジェクト内の Vertex AI エンドポイントに対して、本番環境データベースを接続できないようにすることをお勧めします。