Dataflow ML のスケーリング データ処理機能は、予測と推論のパイプラインやトレーニング用のデータの準備に使用できます。
要件と制限事項
- Dataflow ML はバッチ パイプラインとストリーミング パイプラインをサポートしています。
RunInference
API は、Apache Beam 2.40.0 以降のバージョンでサポートされています。MLTransform
API は、Apache Beam 2.53.0 以降のバージョンでサポートされています。- モデルハンドラは、PyTorch、scikit-learn、TensorFlow、ONNX、TensorRT で使用できます。サポートされていないフレームワークには、カスタムモデル ハンドラを使用できます。
トレーニング用データの準備
MLTransform
機能を使用して、ML モデルのトレーニング用データを準備します。詳細については、MLTransform
を使用してデータを前処理するをご覧ください。Kubeflow Pipelines(KFP)や TensorFlow Extended(TFX)などの ML-OPS フレームワークで Dataflow を使用します。詳細については、ML ワークフローでの Dataflow ML をご覧ください。
予測と推論のパイプライン
Dataflow ML は、Dataflow と Apache Beam の RunInference
API を組み合わせて使用します。RunInference
API では、モデルの特性とプロパティを定義し、その構成を RunInference
変換に渡します。この機能を使用すると、モデルの実装の詳細を知らなくても、Dataflow パイプライン内でモデルを実行できます。TensorFlow や PyTorch など、使用するデータに最適なフレームワークを選択できます。
パイプラインで複数のモデルを実行する
RunInference
変換を使用して、複数の推論モデルを Dataflow パイプラインに追加します。コードの詳細などについて詳しくは、Apache Beam ドキュメントのマルチモデル パイプラインをご覧ください。
言語間のパイプラインを構築する
Java パイプラインで RunInference を使用するには、言語間の Python 変換を作成します。このパイプラインは、前処理、後処理、推論を行う変換を呼び出します。
詳細な手順とサンプル パイプラインについては、Java SDK から RunInference を使用するをご覧ください。
Dataflow で GPU を使用する
アクセラレータを使用するバッチ パイプラインまたはストリーミング パイプラインでは、NVIDIA GPU デバイスで Dataflow パイプラインを実行できます。詳細については、GPU で Dataflow パイプラインを実行するをご覧ください。
Dataflow ML のトラブルシューティング
このセクションでは、Dataflow ML を使用する際に役立つトラブルシューティング方法とリンクについて説明します。
スタックで各テンソルが同じサイズと想定されている
RunInference
API の使用時に、さまざまなサイズの画像や長さの異なる単語のエンベディングを指定すると、次のエラーが発生する可能性があります。
File "/beam/sdks/python/apache_beam/ml/inference/pytorch_inference.py", line 232, in run_inference batched_tensors = torch.stack(key_to_tensor_list[key]) RuntimeError: stack expects each tensor to be equal size, but got [12] at entry 0 and [10] at entry 1 [while running 'PyTorchRunInference/ParDo(_RunInferenceDoFn)']
このエラーは、RunInference
API がさまざまなサイズのテンソル要素をバッチ処理できないために発生します。回避策については、Apache Beam ドキュメントのテンソル要素をバッチ処理できないをご覧ください。
次のステップ
- ユースケース ノートブックを使用する。
- Apache Beam の AI / ML パイプラインのドキュメントで、Apache Beam で ML を使用する詳細情報を確認する。
RunInference
API の詳細について学習する。RunInference
変換をモニタリングするために使用できる指標について学習する。