Dataflow ML のスケーリング データ処理機能は、予測と推論のパイプラインやトレーニング用のデータの準備に使用できます。

要件と制限事項
- Dataflow ML はバッチ パイプラインとストリーミング パイプラインをサポートしています。
RunInferenceAPI は、Apache Beam 2.53.0 以降のバージョンでサポートされています。MLTransformAPI は、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 ドキュメントのテンソル要素をバッチ処理できないをご覧ください。
大規模なモデルでメモリ不足エラーを回避する
中規模または大規模の ML モデルを読み込むと、マシンのメモリが不足する可能性があります。Dataflow には、ML モデルの読み込み時にメモリ不足(OOM)エラーを回避するためのツールが用意されています。詳細については、RunInference 変換のベスト プラクティスをご覧ください。
次のステップ
- Dataflow ML ノートブックで、特定のユースケースを確認する。
- Apache Beam で ML を使用する方法を確認する。Apache Beam の AI / ML パイプラインのドキュメントをご覧ください。
RunInferenceAPI の詳細について学習する。RunInferenceのベスト プラクティスについて確認する。RunInference変換をモニタリングするために使用できる指標について学習する。