ML パイプラインの概要
このドキュメントでは、BigQuery ML MLOps ワークフローを管理するために ML パイプラインの構築に使用できるサービスの概要について説明します。
ML パイプラインは、一連のパイプライン タスクで構成される MLOps ワークフローです。各パイプライン タスクは、MLOps ワークフローの特定のステップを実行して、モデルのトレーニングとデプロイを行います。各ステップを標準化された再利用可能なタスクに分割することで、ML の実行に含まれている繰り返し可能なプロセスを自動化し、モニタリングできます。
BigQuery ML の ML パイプラインを作成するには、次のいずれかのサービスを使用できます。
- ポータブルで拡張可能な ML パイプラインを作成する場合は、Vertex AI Pipelines を使用します。
- 複雑さの少ない SQL ベースの ML パイプラインを作成する場合は、GoogleSQL クエリを使用します。
- より複雑な SQL ベースの ML パイプラインや、バージョン管理を必要とする ML パイプラインを作成する場合は、Dataform を使用します。
Vertex AI Pipelines
Vertex AI Pipelines では、ML パイプラインは、入出力の依存関係を使用して相互に接続され、コンテナ化されたパイプライン タスクの有向非巡回グラフ(DAG)として構成されます。各パイプライン タスクは、特定の入力を使用してパイプライン コンポーネントをインスタンス化したものです。ML パイプラインを定義する際に、1 つのパイプライン タスクの出力を ML ワークフローにある次のパイプライン タスクの入力にルーティングすると、複数のパイプライン タスクを接続して DAG を形成できます。ML パイプラインの元の入力を、特定のパイプライン タスクの入力として使用することもできます。
Google Cloud Pipeline Components SDK の BigQuery ML コンポーネントを使用して、Vertex AI Pipelines で ML パイプラインを作成します。BigQuery ML コンポーネントの使用を開始するには、次のノートブックを参照してください。
GoogleSQL クエリ
GoogleSQL 手続き型言語を使用すると、マルチステートメント クエリで複数のステートメントを実行できます。マルチステートメント クエリを使用すると、次のことができます。
- 共有状態の複数のステートメントを順番に実行します。
- テーブルの作成や削除などの管理タスクを自動化します。
IF
やWHILE
などのプログラミング構造を使用して、複雑なロジックを実装します。
マルチステートメント クエリを作成したら、クエリを保存してスケジュールし、モデルのトレーニング、推論、モニタリングを自動化できます。
ML パイプラインに ML.GENERATE_TEXT
関数が含まれている場合は、SQL を使用して関数の呼び出しを繰り返し行う方法について、ML.GENERATE_TEXT
を繰り返し呼び出して割り当てエラーを処理するをご覧ください。関数を繰り返し呼び出すと、割り当てと上限の超過で発生する再試行可能なエラーに対処できます。
Dataform
Dataform を使用すると、BigQuery でデータ変換を行う複雑な SQL ワークフローの開発、テスト、バージョン管理、スケジュール設定を行うことができます。Dataform は、データ統合の ELT(抽出 / 読み込み / 変換)プロセスにおけるデータ変換などのタスクに使用できます。ソースシステムから抽出して BigQuery に読み込んだ元データを、明確に定義、テスト、ドキュメント化された一連のデータテーブルに変換できます。
ML パイプラインで ML.GENERATE_TEXT
関数を使用している場合は、structured_table_ml.js
サンプル ライブラリを調整して、関数の呼び出しを繰り返し行うことができます。関数を繰り返し呼び出すと、関数に適用される割り当てと上限を超えたために発生する再試行可能なエラーに対処できます。