このページでは、Spanner Vertex AI インテグレーションの概要について説明します。Spanner Vertex AI インテグレーションは、GoogleSQL データベースと PostgreSQL データベースの両方で機能します。
Spanner と Vertex AI のインテグレーションにより、Vertex AI にホストされている分類器と回帰 ML モデルに GoogleSQL と PostgreSQL Interface を介してアクセスできます。これにより、DQL / DML クエリを使用して実行される一般的な Spanner データアクセス オペレーションに ML 予測のサービング機能をシームレスに統合できます。
Spanner Vertex AI インテグレーションのメリット
Spanner のデータアクセスと Vertex AI 予測エンドポイントへのアクセスを別々に実行する場合と比べると、Spanner Vertex AI インテグレーションを使用して ML 予測を生成する方法にはいくつかのメリットがあります。
- パフォーマンス:
- レイテンシの改善: Spanner Vertex AI インテグレーションが Vertex AI サービスと直接通信することにより、Spanner のクライアントを実行しているコンピューティング ノードと Vertex AI サービスとの間で追加のラウンド トリップがなくなります。
- スループットと並列性の向上: Spanner Vertex AI インテグレーションは、Cloud Spanner の分散クエリ処理インフラストラクチャ上で実行され、高度な並列クエリ実行をサポートしています。
- ユーザー エクスペリエンス:
- シンプルでわかりやすく、使い慣れた 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 行 | 1,000 行 |
---|---|---|---|---|---|
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 モデルを構成することをおすすめします。以降のフェイルオーバー エンドポイントは、コンピューティング負荷が低く、スケーラビリティが高く、トラフィックの急増に対応できる、簡素化されたモデルを指定できます。
制限事項
- モデルの入力と出力は JSON オブジェクトである必要があります。
コンプライアンス
Assured Workloads は、Vertex AI Prediction API をサポートしていません。リソースの使用を制限する制約を有効にすると、Vertex AI API を無効にするだけでなく、Spanner Vertex AI インテグレーション機能を効果的に無効にできます。
さらに、VPC Service Controls の境界を作成して、コンプライアンスが適切に構成されていない可能性のある非本番環境プロジェクトの Vertex AI エンドポイントに対して、本番環境データベースを接続できないようにすることをお勧めします。