機械学習モデルのアプリケーションへの統合を容易にする Cloud Spanner 向け Vertex AI インテグレーション
Google Cloud Japan Team
※この投稿は米国時間 2022 年 11 月 19 日に、Google Cloud blog に投稿されたものの抄訳です。
Cloud Spanner は、業界トップクラスの整合性と可用性を環境の規模を問わずに実現するフルマネージド リレーショナル データベースです。金融サービス、小売、ゲームなどの業界では、あらゆる規模の組織が Spanner によってミッション クリティカルなアプリケーションを実行していますが、基幹業務アプリケーションを効率的に実行するだけでは不十分な場合が少なくありません。こうした組織は、手動による対策に頼るのではなく、機械学習(ML)モデルを活用して、ビジネス イベントやお客様のイベントに迅速かつスケーラブルな方法で対応したいと考えています。不正行為の検出、アルゴリズム取引、bot 検出などのタスクには時間的な制約があり、予測不可能な負荷が発生する可能性もあります。Spanner と Google Cloud の ML プラットフォームである Vertex AI とのインテグレーションにより、ユーザーは Spanner の単純な SQL クエリを使用して Vertex AI の ML モデルを活用できます。現在提供されているプレビュー版では Vertex AI とのインテグレーションが組み込まれており、これにより、オペレーショナル データベースと AI が統合され、公開されている ML モデルをよりシンプルに利用し、AI を活用したアプリケーションの構築を迅速化できるようになります。
アプリケーション デベロッパーは、ML サービスをアプリケーションに統合するための帯域幅が制限されている場合が多くあります。これは、習得時間と長期的なメンテナンスのオーバーヘッドが必要になるためです。デベロッパーは、Vertex AI のような ML サービスを操作するために、アプリケーション内に別のモジュールを作成するか、完全に別のアプリケーションやサービスを作成する必要があります。
概念的には、モジュールによって Vertex AI の予測モデルにデータが送信され、その結果に基づいて判断を行うアプリケーションに結果が渡されることになります。このような実装は、アプリケーションの拡張、意思決定のさらなる遅れ、メンテナンスのための流動的な要素の増加につながります。Spanner Vertex AI インテグレーションはそれとは対照的です。デベロッパーはデータ サイエンティストが構築したモデルに簡単にアクセスし、使い慣れた SQL を使用してデータベース トランザクションに適用できます。
これは、BigQuery ML によって ML がネイティブにサポートされ、ユーザーが ML モデルをアプリケーション内で活用しやすくしているのと似ています。しかし、BigQuery ML では BigQuery に保存されたデータですでに完了したトランザクションを分析するのに対し、Spanner の Vertex AI インテグレーションでは、ライブ トランザクションに対して予測を行うことができるという重要な違いがあります。Spanner の Vertex AI インテグレーションは、不正検出や迷惑プレーヤーの検出など、不適切な判断を後から検出するのではなく、トランザクションやイベント中に可能な限り最適な判断を行いたいユースケースにおいて重要です。この Spanner とのダイレクト インテグレーションにより、アプリケーションに ML を追加するための参入障壁が低減され、低レイテンシを実現し、トランザクション ロックの保持時間は短縮され、ロック競合の影響を受けにくくなります。これは、負荷の高いトランザクション システムにとって重要な利点となります。
Vertex AI インテグレーションを始める
今回の Vertex AI インテグレーションのリリースでは、Vertex AI ですでに公開されている既存のモデルを簡単に利用できるようにしました。Vertex AI に不慣れな場合は、クイック スタート動画と表形式データモデルのトレーニングに関するドキュメントをご覧ください。あるゲーム会社が Vertex AI と Spanner のインテグレーションを活用して、ユーザーと会社を迷惑プレーヤーから保護する方法の例を見ていきましょう。
ユースケースの例: 迷惑プレーヤーの検出
仮想ゲームとソーシャル メディアの会社である Cymbal Entertainment のケースを考えてみましょう。同社は Spanner を活用して、チャットやフォーラムでのコメントなど、すべてのユーザー アクティビティに関する情報を保存しています。Cymbal Entertainment では、ユーザーの不正行為の可能性、とりわけ悪質なチャットやコメントといった周囲に悪影響を及ぼす行為が発生するとすぐに、システムが自動的に調査を開始する必要があります。ゲーム内のチャットやメッセージの場合は、プレーヤーから送信された有害なコンテンツを検出しなければなりません。同社は、報告されたユーザーのコメントの有害性レベルを評価し、そのコメントに対して警告を出す、該当ユーザーのアカウントを一時停止する、またはその他の合理的な措置を適用するかどうかを決定する必要があります。
このような対応は即座に行わなければなりません。そうしないと口論に発展し、最悪の場合、プレーヤーがプラットフォームから完全に離れてしまう可能性があります。Cymbal Entertainment は、ネットいじめに対する断固とした措置に誇りを持っており、その成功は数百万人の多様なユーザーによって証明されています。害悪ユーザーは、苦労して獲得した評判を損ない、一晩でビジネスに影響を与える可能性があります。Cymbal のコミュニティの規模とユーザーの 24 時間 365 日のアクティビティ レベルを考慮すると、人力に依存するいかなる解決策も、このような事態を防ぐことはできません。
Spanner 用モデルの準備
Cymbal Entertainment は、チャットやコメントの有害性を評価するプロセスを自動化するために ML を活用しています。同社は、Vertex AI テキスト分類ガイドに従って、自社のシステムにあるデータや、Kaggle の Toxicity Comment Classification などの一般公開されているデータセットを使ってモデルをトレーニングします。モデルをトレーニングし、Vertex AI エンドポイントにデプロイすると、Spanner に登録できるようになります。ToxicityClassifier モデルでは、コメント テキストを入力とし、表示名と信頼度の 2 つの配列を出力します。前者にはトレーニング データセットに表示されるすべてのラベルが含まれます。後者は、位置的に対応するラベルの信頼スコアを示します。以下の例では、結果は有害なコメントであることを示しています。
インラインでの有害性予測
コメントをコメント テーブルに挿入する際に、ToxicityClassifier モデルを使用して一連の有害性評価を算出します。Cymbal Entertainment のポリシーでは、ID 攻撃、深刻な有害性、または脅威を含むコメントはプラットフォームで禁止されています。そのため、コメント レコードの is_banned フラグを true に設定して自動的に禁止にする必要があります。また、有害性が高いと評価された他のコメントは不審としてマークされ、詳細な調査のために再評価される場合があります。ここで説明したオペレーションはすべて、次の SQL ステートメントを使用して実行できます。
このアプローチをとることで、シンプルさとクエリのパフォーマンス全体が向上することに加え、データ、決定、根拠がすべて同じステップでデータベースに保存されます。外部関数を使用して同じことを行うには、複数のステップとデータベース トランザクションが必要になります。
ご覧のとおり(ご自身でも試してみてください)、Cymbal Entertainment のアプリケーションを ML 機能で強化するために必要な作業は、既存のコードにいくつかの SQL コマンドを追加するだけで完了します。また、サブスクリプション チームと決済処理チームも支払いに関する不正行為を検出するために、同じ方法で ML 機能を簡単に追加できます。
リリース情報と料金
Vertex AI と Spanner のインテグレーションは現在プレビュー版で提供されており、Spanner が利用可能なすべてのリージョンでご利用いただけます。この機能のご利用にあたって、Spanner の追加料金は発生しません。お客様は Vertex AI モデルへアクセスする必要があり、使用タイプに応じた Vertex AI の料金が適用されます。
使ってみる
これまでにないほど簡単に Spanner アプリケーションを ML 機能で強化できるようになりました。ぜひ今すぐお試しください。
このブログのサンプルを使用するか、ドキュメントで詳細を確認してください。Spanner を初めてご利用になるお客様は、90 日間の無料トライアル インスタンスで Spanner を無料でお試しいただけます。
Spanner が無制限のスケーリングと最大 99.999% の可用性を実現する仕組みについての詳細をご覧ください。
- シニア プロダクト マネージャー Joe Yong
- スタッフ ソフトウェア エンジニア Adrian Wisniewski