このページでは、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 に保存されているデータでモデルをトレーニングするには、次の方法を使用します。
Dataflow: Spanner から CSV 形式でデータをエクスポートし、CSV データソースを Vertex AI にインポートします。
Spanner Vertex AI インテグレーションを使用することで、ML モデルを使用するための次の機能が強化されます。
Spanner データに対して SQL を使用してモデルを呼び出すことで、ML 予測を生成する。Vertex AI Model Garden のモデルまたは Vertex AI エンドポイントにデプロイされたモデルを使用できます。
テキスト エンベディングを生成して、LLM にテキスト プロンプトを数値に変換させる。エンべディングの詳細については、テキスト エンべディングを取得するをご覧ください。
Spanner Vertex AI インテグレーション関数の使用
Spanner Vertex AI インテグレーションのモデルを使用すると、ML Predict 関数を使用して SQL コードで予測やテキスト エンベディングを生成できます。これらの関数は次のとおりです。
GoogleSQL
GoogleSQL では、次の ML 予測関数を使用できます。
ML.PREDICT
関数でモデルを使用する前に、CREATE MODEL
DDL ステートメントを使用してモデルを登録する必要があります。
SAFE.ML.PREDICT
を使用して、予測でエラーではなく null
を返すこともできます。これは、一部の失敗した予測が許容できる大規模なクエリを実行する場合に役立ちます。
PostgreSQL
PostgreSQL では、次の ML 予測関数を使用できます。
関数を使用するには、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 モデルを適切に構成する必要があります。
- Spanner ML モデルでは、フェイルオーバーを有効にするために、バックエンドで複数の Vertex AI エンドポイントを使用する必要があります。
- Vertex AI エンドポイントは Vertex AI SLA に準拠している必要があります。
- Vertex AI エンドポイントは、受信トラフィックを処理するのに十分な容量をプロビジョニングする必要があります。
- リージョンの停止を回避するために、Vertex AI エンドポイントで Spanner データベースに近い別のリージョンを使用する必要があります。
- 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 エンドポイントに対して、本番環境データベースを接続できないようにすることをお勧めします。