AI/MLパイプライン入門

Pydoc Pydoc




Javadoc Javadoc

機械学習の実務家として生産性を高め、成功するには、利用可能なリソース、要件、予算に合わせて調整された方法で、大量のデータを効率的に活用できる能力に大きく依存することがよくあります。次のAI/MLプロジェクトの開始時でも、既存のプロジェクトの規模を拡大する場合でも、Apache Beamをプロジェクトに追加することを検討してください。

Beam MLの使用

Beam MLを使用して実行したいこと

予測と推論

Beamは、パイプラインの一部として推論を実装するためのさまざまな方法を提供します。バッチとストリーミングの両方のパイプラインで、大規模なデータセットにMLモデルを直接パイプライン内で実行して適用できます。

RunInference

RunInference APIは、Beam Python SDKバージョン2.40.0以降で使用できます。Apache BeamとRunInference APIを使用すると、機械学習(ML)モデルを使用して、バッチとストリーミングのパイプラインでローカルおよびリモート推論を実行できます。Apache Beam 2.40.0以降、PyTorchとScikit-learnフレームワークがサポートされています。Tensorflowモデルは`tfx-bsl`を介してサポートされています。RunInferenceの使用の詳細については、Beam MLについてを参照してください。

RunInference APIは、Apache Beamの多言語パイプラインフレームワークを通じて、Beam Java SDKバージョン2.41.0以降で使用できます。Javaラッパー変換に関する情報は、RunInference.javaを参照してください。試してみるには、Java Sklearn Mnist分類の例を参照してください。

RunInference APIを使用して、複数のタイプのトランスフォームを作成できます。APIはモデルハンドラーから複数のタイプのセットアップパラメーターを受け取り、パラメーターのタイプによってモデルの実装が決まります。

タスク
RunInferenceトランスフォームを使用したいMLモデルを使用するようにPythonパイプラインを変更する
PyTorchでRunInferenceを使用したいPyTorchでRunInferenceを使用する
SklearnでRunInferenceを使用したいSklearnでRunInferenceを使用する
事前トレーニング済みのモデル(PyTorch、Scikit-learn、またはTensorFlow)を使用したい事前トレーニング済みのモデルを使用する
本番環境でモデルを更新したいWatchFilePatternを使用してRunInferenceでMLモデルを自動更新する

予測と推論の例

タスク
複数のモデルを含むパイプラインを構築したいマルチモデルパイプライン
TensorRTを使用してカスタムモデルハンドラを構築したいRunInferenceでTensorRTを使用する
LLM推論を使用したい大規模言語モデル推論
多言語推論パイプラインを構築したいJava SDKからのRunInferenceの使用

データ処理

データをトランスフォームしてデータから計算されたメトリクスを出力するデータパイプラインを設定することで、Apache Beamを使用してデータの検証と前処理を行うことができます。Beamには、データの取り込みと書き込みのための豊富なI/Oコネクタがあり、既存のファイルシステム、データベース、またはメッセージキューとの統合が可能です。

タスク
前処理のためにデータをトランスフォームしたいMLTransformでデータの前処理を行う
データを探索したいデータ探索ワークフローと例
データをエンリッチしたいEnrichmentトランスフォームによるデータエンリッチメント

ワークフローオーケストレーション

プロジェクト全体でAI/MLワークフローを自動化して追跡するには、Kubeflowパイプライン(KFP)やTensorFlow Extended(TFX)などのオーケストレータを使用できます。これらのオーケストレータは、さまざまな構成要素を自動化し、それらの間の移行を処理します。

タスク
ML-OPSワークフローオーケストレータを使用したいワークフローオーケストレーション
BeamとTensorFlow Extended(TFX)を使用したいTensorFlow Extended(TFX)
BeamとKubeflowを使用したいKubeflowパイプライン(KFP)

Apache Beamをプロジェクトの構成要素の1つとして使用する場合、これらのオーケストレータはApache Beamジョブを起動し、パイプラインの入出力の追跡を行うことができます。これらのタスクは、AI/MLソリューションを本番環境に移行する際に不可欠です。なぜなら、これにより、時間の経過とともにモデルとデータを処理し、結果の品質と再現性を向上させることができるからです。

モデルのトレーニング

タスク
エンティティごとのトレーニングを使用したいエンティティごとのトレーニング
テキストをクラスタリングしたいオンラインクラスタリングの例
モデルのパフォーマンスをベンチマークしたいMLモデルの評価

ユースケース

タスク
異常検知パイプラインを構築したい異常検知の例

参考資料