パイプライン

データ・サイエンス・機械学習(ML)パイプラインは、ステップと呼ばれるタスクのワークフローを定義するリソースです。

多くの場合、MLは複雑なプロセスであり、複数のステップがワークフロー内で連携して機械学習モデルを作成して提供します。通常、これらのステップには、データの取得と抽出、MLのデータ準備、発熱、モデルのトレーニング(アルゴリズムの選択とハイパーパラメータ・チューニングを含む)、モデル評価、モデル・デプロイメントなどがあります。

パイプライン・ステップには、ワークフローを作成するための他のステップに対する依存関係を設定できます。各ステップは個別であるため、同じパイプラインで異なる環境と異なるコーディング言語を柔軟に混在させることができます。

一般的なパイプライン(ワークフロー)には、次のステップが含まれます。

機械学習ライフ・サイクルのステップを図として示します。

このMLライフサイクルは、反復可能で継続的なMLパイプラインとして実行されます。

パイプラインの概念

パイプラインは、次のワークフローのようになります。

パイプライン・ワークフローを別々のステップとして表示します。

MLコンテキストでは、パイプラインは通常、データ・インポート、データ変換、モデル・トレーニングおよびモデル評価のためのワークフローを提供します。パイプライン内のステップは、有向環状グラフ(DAG)を作成しているかぎり、順次またはパラレルで実行できます。

収入見込

すべてのステップとその依存関係(DAGワークフロー)を保持するリソース。パイプライン・リソースで使用するインフラストラクチャ、ログおよびその他の設定のデフォルト構成を定義できます。これらのデフォルト設定がパイプライン・ステップで定義されていない場合に使用されます。

名前、ログ、カスタム環境変数など、作成後にパイプラインの構成の一部を編集することもできます。

パイプライン・ステップ

パイプラインで実行されるタスク。このステップには、ステップ・アーティファクト、実行時に使用するインフラストラクチャ(コンピュート・シェイプ、ブロック・ボリューム)、ログ設定、環境変数などが含まれます。

パイプライン・ステップは、次のタイプのいずれかです。

  1. スクリプト(コード・ファイル)。Python、Bash、および Javaがサポートされ、それを実行する構成です。
  2. OCIDで識別されるデータ・サイエンスの既存のジョブ。

ステップ・アーティファクト

スクリプト・ステップ・タイプの操作時に必要です。アーティファクトは、ステップの実行に使用するすべてのコードです。アーティファクト自体は単一のファイルである必要があります。ただし、複数のファイルを含む圧縮(zip)ファイルでもかまいません。ステップの実行時に実行する特定のファイルを定義できます。

パイプライン内のすべてのスクリプト・ステップには、パイプラインを実行できるように、パイプラインがACTIVE状態になるためのアーティファクトが必要です。

ダグ

ステップ・ワークフロー。パイプライン内の他のステップに対する各ステップの依存関係によって定義されます。依存関係によって、論理ワークフローまたはグラフが作成されます(非循環である必要があります)。パイプラインは、依存関係によってステップが順次実行されるように強制されないかぎり、パイプラインの完了時間を最適化するためにステップを並行して実行するように努めます。たとえば、モデルを評価する前にトレーニングを完了する必要がありますが、複数のモデルを並行してトレーニングして、最適なモデルを競うことができます。

パイプライン実行

パイプラインの実行インスタンス。各パイプライン実行には、そのステップ実行が含まれます。パイプライン実行は、実行を開始する前にパイプラインのデフォルトの一部をオーバーライドするように構成できます。

パイプライン・ステップ実行

パイプライン・ステップの実行インスタンス。ステップ実行の構成は、パイプライン実行から最初に定義されるか、パイプライン定義から2番目に取得されます。

パイプラインLifecycle State

パイプラインが作成、構築され、削除されると、様々な状態になる可能性があります。パイプラインの作成後、パイプラインはCREATING状態になり、すべてのステップで実行するアーティファクトまたはジョブがあるまで実行できず、パイプラインはACTIVE状態に変化します。

OCIリソースへのアクセス

パイプライン・ステップは、許可するポリシーがあるかぎり、テナンシ内のすべてのOCIリソースにアクセスできます。ADWまたはオブジェクト・ストレージ内のデータに対してパイプラインを実行できます。また、ボールトを使用して、サードパーティのリソースに対して認証するための安全な方法を提供することもできます。適切なVCNを構成している場合、パイプライン・ステップは外部ソースにアクセスできます。