このページでは、Spanner Vertex AI インテグレーションの概要について説明します。 Spanner Vertex AI インテグレーションは、Google SQL データベースと 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 予測関数を使用して、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 で追加料金は発生しません。ただし、この機能に関連して以下の料金がかかる場合があります。
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 エンドポイントに対して、本番環境データベースを接続できないようにすることをお勧めします。