TFX パイプラインのオーケストレーション

カスタム オーケストレーター

TFX は、複数の環境およびオーケストレーション フレームワークに移植できるように設計されています。開発者は、カスタム オーケストレーターを作成したり、TFX でサポートされるデフォルト オーケストレーター ( LocalVertex AIAirflowKubeflow ) に加えて追加のオーケストレーターを追加したりできます。

すべてのオーケストレーターはTfxRunnerから継承する必要があります。 TFX オーケストレーターは、パイプライン引数、コンポーネント、および DAG を含む論理パイプライン オブジェクトを受け取り、DAG によって定義された依存関係に基づいて TFX パイプラインのコンポーネントをスケジュールします。

たとえば、 BaseComponentLauncherを使用してカスタム オーケストレーターを作成する方法を見てみましょう。 BaseComponentLauncher は、単一コンポーネントのドライバー、エグゼキューター、およびパブリッシャーをすでに処理しています。新しいオーケストレーターは、DAG に基づいて ComponentLauncher をスケジュールするだけで済みます。シンプルなオーケストレーターはLocalDagRunnerとして提供されており、DAG のトポロジ順にコンポーネントを 1 つずつ実行します。

このオーケストレーターは Python DSL で使用できます。

def _create_pipeline(...) -> dsl.Pipeline:
  ...
  return dsl.Pipeline(...)

if __name__ == '__main__':
  orchestration.LocalDagRunner().run(_create_pipeline(...))

上記の Python DSL ファイル (dsl.py という名前であると仮定) を実行するには、次の手順を実行します。

python dsl.py