BigQuery ML 推論エンジンを使用した ML のスケーリング
Google Cloud Japan Team
※この投稿は米国時間 2023 年 8 月 26 日に、Google Cloud blog に投稿されたものの抄訳です。
さまざまな企業が構造化データ、半構造化データ、非構造化データから価値を引き出そうと競い合う中で、データ取得、データ マネジメント、データ ガバナンスなど、データ グラビティに関する一連の課題に直面しています。同時に、これらの企業は予測分析のニーズに対応する ML ワークフローの構築とスケーリングを行うにあたり、モデル グラビティにも取り組んでいます。
BigQuery の中核であるデータ ウェアハウス機能は、データ グラビティの課題に対処します。BigQuery は、統合された ML 機能により、特徴量エンジニアリング、モデル トレーニング、モデルの評価、モデルの提供、スケーラブルな推論などのモデル グラビティの課題に対処します。
このたび、BigQuery ML 推論エンジンの一般提供(GA)を発表いたしました。BigQuery ML 推論エンジンを使用することにより、ユーザーは ML ワークフロー内でカスタムモデル、リモートモデル、事前トレーニング済みモデルに対して推論を実行できます。
BigQuery ML 推論エンジンは、以下と統合するための単一の API を提供します。
BigQuery ML でトレーニングされたモデル
BigQuery ML にインポートされたモデル(例: TensorFlow、XGBoost、ONNX)
Vertex AI エンドポイントにデプロイされたモデル(他の場所でトレーニングされたモデル、カスタム トレーニングや AutoML を使用し、Vertex AI でトレーニングされたモデルなど)
Vertex AI 事前トレーニング済みモデル(例: Vertex AI Vision、Vertex AI Translation、Vertex AI Natural Language、Vertex AI 基盤モデル)
BigQuery ML 推論エンジンは、デベロッパーがモデルを直接 BigQuery データに取り込めるようにすることで統合の複雑さを解消します。また同時に、リモートで管理されているモデルを統合して推論を実行するための安全でスケーラブルなメカニズムも提供しています。
では、それぞれの統合について詳しく見てみましょう。
BigQuery ML でトレーニングしたモデルを使った推論
BigQuery ML は、線形回帰、DNN、ブーストツリー分類、K 平均法、主成分分析、行列分解、多変量時系列など、さまざまな ML モデルをネイティブにサポートしています。SQL ベースの一般的なテンプレートを使用することで、BigQuery ML は ML モデルの作成、トレーニング、サービングを簡単に行うことができる直観的なプログラミング モデルを提供しています。
以下の例では、線形回帰モデルを作成するにあたってCREATE MODEL が使用されています。そして、テーブル全体に対して推論を実行するために ML.PREDICT 関数が使用されています。テーブルは小さなデータセットでも、ペタバイト規模にスケーリングすることも可能です。
上記の例では、BigQuery ML を使用した ML モデルの構築が簡単かつ効率的であることが示されています。BigQuery ML により、モデルをトレーニングするためにデータをエクスポートする必要がなくなり、統合されたストレージとモデルを提供できます。
BigQuery ML にインポートされたモデルを使った推論
BigQuery ML のネイティブ モデルは何千人ものお客様にメリットをもたらしています。しかしその同じお客様が BigQuery ML がネイティブにサポートしていないフレームワークやモデルタイプを使用した ML のニーズを持っている場合もあります。企業は多くの場合、Tensorflow、PyTorch、XGBoost、Caffe、scikit-learn など、さまざまなモデリング フレームワークを備えています。
BigQuery ML 推論エンジンは、TensorFlow、TensorFlow Lite、XGBoost、Open Neural Network Exchange(ONNX)モデルがサポートされたことで、BigQuery ML の外部で作成されたモデルをインポートし、推論を実行できるようになりました。Pytorch、Caffe、scikit-learn、その他多くのフレームワークで構築されたモデルを ONNX に変換し、BigQuery ML で提供できます。
以下の例では、XGBoost の CREATE MODEL を使用して既存の XGBoost モデルをインポートし、BigQuery ML モデルを作成しています。そして ML.PREDICT 関数を使用して、各モデルに対して推論を実行しています。
上の例のテンプレートは、TensorFlow、TensorFlow Lite、Open Neural Network Exchange モデルをインポートする場合と同様です。これにより、デベロッパーは BigQuery ML ワークフロー内で既存のモデルをシームレスに統合して推論を実行できるようになり、大規模な推論を実行するためにデータをエクスポートする必要がなくなります。
Vertex AI で管理されているモデルを使った推論
ネイティブな BigQuery ML モデルやインポートされたモデルに対する推論は、デベロッパーの効率性を向上させ、ワークフローの複雑さを軽減します。しかしその一方で、外部のモデルからの推論の方が適切である明確なユースケースもあります。大規模言語モデル、GPU / TPU のアクセラレーションが求められるモデル、単一のサービス提供ポイントが求められるワークフローを提供する必要がある場合などです。
BigQuery ML 推論エンジンは、Vertex AI によって管理されるモデルを初期サポートすることで、リモートモデルに対する推論を実行する機能がサポートできるようになりました。
以下の例は、Vertex AI エンドポイントとしてホストされているモデルへのリモート接続の CREATE MODEL を示しています。
BigQuery ML 推論エンジンは Vertex AI によって管理されるリモートモデルと統合することができるため、スケーラブルで柔軟なサービング環境を提供できます。これらのエンドポイントは、ビルド済みコンテナ、カスタム コンテナ、カスタム予測ルーチンのオプションを使用して幅広いモデルタイプに対して構成することが可能です。
また、推論処理の失敗時の自動再試行ロジックも実装されており、大規模な推論ジョブを正常に完了できると同時に、失敗した処理に関する詳細なエラー出力も得られます。
さらに、Vertex AI Model Registry により、ネイティブの BigQuery ML 開発モデルを自動的に登録して、ローカルおよびリモートの推論を実行できます。
Vertex AI の事前トレーニング済みモデルを使った推論
本日は BigQuery ML 推論エンジンで Vertex AI エンドポイントを超えてリモートモデルを統合する方法について説明してきましたが、これに加えて、Vertex AI Vision、Vertex AI Translation、Vertex AI Natural Language などの Vertex AI の事前トレーニング済み API に対してリモートの推論が可能になったことをお知らせいたします。
以下の例では、CREATE MODEL を使用して、Vertex AI の事前トレーニング済み API にリモート接続しています。
使ってみる
BigQuery ML 推論エンジンは、オープンソース モデルや Vertex AI でホストされているモデルに対する推論を実行できるようにサポートが拡張されたことにより、BigQuery 環境内でシンプルで簡単に費用効率良く ML ワークフローを統合できるようになりました。これらの新機能の詳細については、こちらのドキュメントをご覧ください。
Google Cloud Next '23 にご来場予定の方はぜひ、データ エンジニア向けの生成 AI を活用したユースケース(ANA111)およびデータ エンジニア向けの生成 AI を活用したユースケース(ANA211)のブレイクアウト セッションにご参加のうえ、BigQuery ML の詳細とライブデモをご覧ください。
- プロダクト マネージャー、 Eric Schmidt