パイプラインの作成

タスクを実行するデータ・サイエンス・パイプラインを作成します。

パイプラインに必要なポリシー、認証および認可を作成していることを確認します。

重要

スクリプト・ステップを適切に動作させるには、動的グループ・ポリシーに次のルールを追加したことを確認してください。

all {resource.type='datasciencepipelinerun', resource.compartment.id='<pipeline-run-compartment-ocid>'}

始める前に:

パイプラインを作成するには、ADS SDK、OCIコンソールまたはOCI SDKを使用します。

ADSを使用してパイプラインを作成すると、パイプライン、ステップおよび依存関係を簡単に開発できます。ADSでは、YAMLファイルとの間のパイプラインの読取りおよび書込みがサポートされています。ADSを使用して、パイプラインのビジュアル表現を表示できます。ADSを使用して、コードを使用してパイプラインを作成および管理することをお薦めします。

    1. コンソールを使用して、必要なポリシーを使用してテナンシにサインインします。
    2. ナビゲーション・メニューを開き、「アナリティクスとAI」をクリックします。「機械学習」で、「データ・サイエンス」をクリックします。
    3. 使用するプロジェクトを含むコンパートメントを選択します。

      コンパートメント内のすべてのプロジェクトがリストされます。

    4. プロジェクトの名前をクリックします。

      プロジェクトの詳細ページが開き、ノートブック・セッションがリストされます。

    5. 「リソース」で、「パイプライン」をクリックします。
    6. 「パイプラインの作成」をクリックします。
    7. (オプション)パイプラインに別のコンパートメントを選択します。
    8. (オプション)パイプラインの名前と説明を入力します(255文字の制限)。名前を指定しない場合、名前は自動生成されます。

      たとえば、pipeline2022808222435です。

    9. 「パイプライン・ステップの追加」をクリックして、パイプラインのワークフローの定義を開始します。
    10. 「パイプライン・ステップの追加」パネルで、次のいずれかのオプションを選択し、パイプラインの作成を終了します:
    ジョブから

    パイプライン・ステップでは、既存のジョブが使用されます。テナンシ内のいずれかのジョブを選択します。

    1. ステップに一意の名前を入力します。パイプラインでステップ名を繰り返すことはできません。
    2. (オプション)ステップの依存関係の検索に役立つステップの説明を入力します。
    3. (オプション)このステップが別のステップに依存する場合は、このステップの前に実行するステップを1つ以上選択します。
    4. 実行するステップのジョブを選択します。
    5. (オプション)次の値のいずれかを入力または選択して、このパイプライン・ステップを制御します:
      カスタム環境変数キーおよび値

      このパイプライン・ステップの環境変数

      カスタム環境変数キーの値。

      「追加のカスタム環境キー」をクリックして、さらに変数を指定できます。

      コマンドライン引数

      パイプライン・ステップの実行に使用するコマンドライン引数。

      最大実行時間(分)

      パイプライン・ステップを実行できる最大分数。サービスは、実行時間が指定された値を超えた場合にパイプライン実行を取り消します。最大実行時間は30日(43,200分)です。ランアウト・パイプライン実行を回避するために、すべてのパイプライン実行に最大ランタイムを構成することをお薦めします。

    6. 「保存」をクリックしてステップを追加し、「パイプラインの作成」ページに戻ります。
    7. (オプション)+Addパイプライン・ステップをクリックして、ワークフローを完了するためのステップをさらに追加し、前述のステップを繰り返します。
    8. (オプション)環境変数、コマンドライン引数および最大ランタイム・オプションを入力して、パイプラインの実行時に使用されるデフォルトのパイプライン構成を作成します。これらのフィールドの説明は、ステップ5を参照してください。
    9. (オプション)「選択」をクリックして、次のステップに従ってコンピュート・シェイプを選択します:
      1. インスタンス・タイプを選択します。
      2. シェイプ・シリーズを選択します。
      3. シリーズ内のサポートされているコンピュート・シェイプのいずれかを選択します。
      4. リソースの使用方法に最適なシェイプを選択します。AMDシェイプの場合は、デフォルトを使用するか、OCPUおよびメモリーの数を設定できます。

        OCPUごとに最大64個のGBメモリーを選択し、最大合計512個のGBを選択します。許容されるメモリーの最小容量は、1GBまたはOCPUの数に一致する値のいずれか大きい方です。

      5. 「シェイプの選択」をクリックします。
    10. 「ブロック・ストレージ」に、使用するストレージの量を50 GBから10、240 GB (10TB)の間で入力します。値は1GB単位で変更できます。デフォルト値は100 GBです。
    11. (オプション)ロギングを使用するには、「選択」をクリックし、「ロギングの有効化」が選択されていることを確認します。
      1. リストからログ・グループを選択します。別のコンパートメントに変更して、ジョブとは異なるコンパートメントのログ・グループを指定できます。
      2. 次のいずれかを選択して、すべてのstdoutおよびstderrメッセージを格納します:
        自動ログ作成の有効化

        データ・サイエンスは、ジョブの開始時にログを自動的に作成します。

        ログの選択

        使用するログを選択します。

      3. 「選択」をクリックして、ジョブ実行作成ページに戻ります。
    12. (オプション)「拡張オプションの表示」をクリックして、パイプラインにタグを追加します。
    13. (オプション)タグ・ネームスペース(定義済タグの場合)、キーおよび値を入力して、リソースにタグを割り当てます。

      複数のタグを追加するには、「タグの追加」をクリックします。

      タグ付けに関する項では、コスト・トラッキング・タグなど、リソースの整理および検索に使用できる様々なタグについて説明します。

    14. 「作成」をクリックします。

      パイプラインがアクティブな状態になったら、パイプライン実行を使用してパイプラインを繰り返し実行できます。

    スクリプトから

    このステップでは、スクリプトを使用して実行されます。実行するステップのすべてのコードを含むアーティファクトをアップロードする必要があります。

    1. ステップに一意の名前を入力します。パイプラインでステップ名を繰り返すことはできません。
    2. (オプション)ステップの依存関係の検索に役立つステップの説明を入力します。
    3. (オプション)このステップが別のステップに依存する場合は、このステップの前に実行するステップを1つ以上選択します。
    4. ジョブ・ステップ・ファイルをボックスにドラッグするか、「ファイルの選択」をクリックして移動し、選択します。
    5. 「エントリ・ポイント」で、ステップのエントリ・ラン・ポイントとなるファイルを1つ選択します。これは、多数のファイルがある場合に役立ちます。
    6. (オプション)次の値のいずれかを入力または選択して、このパイプライン・ステップを制御します:
      カスタム環境変数キーおよび値

      このパイプライン・ステップの環境変数

      カスタム環境変数キーの値。

      「追加のカスタム環境キー」をクリックして、さらに変数を指定できます。

      コマンドライン引数

      パイプライン・ステップの実行に使用するコマンドライン引数。

      最大実行時間(分)

      パイプライン・ステップを実行できる最大分数。サービスは、実行時間が指定された値を超えた場合にパイプライン実行を取り消します。最大実行時間は30日(43,200分)です。ランアウト・パイプライン実行を回避するために、すべてのパイプライン実行に最大ランタイムを構成することをお薦めします。

    7. (オプション)環境変数、コマンドライン引数および最大ランタイム・オプションを入力して、パイプラインの実行時に使用されるデフォルトのパイプライン構成を作成します。これらのフィールドの説明は、ステップ6を参照してください。
    8. 「ブロック・ストレージ」に、使用するストレージの量を50 GBから10、240 GB (10TB)の間で入力します。値は1GB単位で変更できます。デフォルト値は100 GBです。
    9. 「保存」をクリックしてステップを追加し、「パイプラインの作成」ページに戻ります。
    10. (オプション)+Addパイプライン・ステップを使用して、前述のステップを繰り返してワークフローを完了するためのステップをさらに追加します。
    11. (オプション)環境変数、コマンドライン引数および最大ランタイム・オプションを入力して、パイプラインの実行時に使用されるデフォルトのパイプライン構成を作成します。これらのフィールドの説明は、ステップ6を参照してください。
    12. 「ブロック・ストレージ」に、使用するストレージの量を50 GBから10、240 GB (10TB)の間で入力します。値は1GB単位で変更できます。デフォルト値は100 GBです。
    13. 次のいずれかのオプションを選択して、ネットワーク・タイプを構成します。
      • デフォルト・ネットワーキング - ワークロードはセカンダリVNICを使用して、事前構成済のサービス管理VCNおよびサブネットにアタッチされます。提供されているこのサブネットは、NATゲートウェイを介してパブリック・インターネットにエグレスし、サービス・ゲートウェイを介して他のOracle Cloudサービスにアクセスできます。

        パブリック・インターネットおよびOCIサービスへのアクセスのみが必要な場合は、このオプションを使用することをお薦めします。ネットワーキング・リソースの作成や、ネットワーキング権限のポリシーの書込みを行う必要はありません。

      • カスタム・ネットワーキング - リソース(ノートブック・セッションまたはジョブ)に使用するVCNおよびサブネットを選択します。

        パブリック・インターネットへのエグレス・アクセスには、NATゲートウェイへのルートを持つプライベート・サブネットを使用します。

        使用するVCNまたはサブネットが表示されない場合は、「コンパートメントの変更」をクリックし、VCNまたはサブネットを含むコンパートメントを選択します。

        重要

        ファイル・ストレージ・マウントを使用するには、カスタム・ネットワークを使用する必要があります。

    14. (オプション)ロギングを使用するには、「選択」をクリックし、「ロギングの有効化」が選択されていることを確認します。
      1. リストからログ・グループを選択します。別のコンパートメントに変更して、ジョブとは異なるコンパートメントのログ・グループを指定できます。
      2. 次のいずれかを選択して、すべてのstdoutおよびstderrメッセージを格納します:
        自動ログ作成の有効化

        データ・サイエンスは、ジョブの開始時にログを自動的に作成します。

        ログの選択

        使用するログを選択します。

      3. 「選択」をクリックして、ジョブ実行作成ページに戻ります。
    15. (オプション)「拡張オプションの表示」をクリックして、パイプラインにタグを追加します。
    16. (オプション)タグ・ネームスペース(定義済タグの場合)、キーおよび値を入力して、リソースにタグを割り当てます。

      複数のタグを追加するには、「タグの追加」をクリックします。

      タグ付けに関する項では、コスト・トラッキング・タグなど、リソースの整理および検索に使用できる様々なタグについて説明します。

    17. 「作成」をクリックします。

      パイプラインがアクティブな状態になったら、パイプライン実行を使用してパイプラインを繰り返し実行できます。

    コンテナ: 自
    オプションで、パイプライン・ステップを定義するときに、「独自のコンテナの持込み」を使用することを選択できます。
    1. 「コンテナから」を選択します。
    2. 「コンテナ構成」セクションで、「構成」をクリックします。
    3. 「コンテナ環境の構成」パネルで、リストからリポジトリを選択します。リポジトリが別のコンパートメントにある場合は、「コンパートメントの変更」をクリックします。
    4. リストからイメージを選択してください。
    5. (オプション) エントリポイントを入力します。さらに追加するには、+Addパラメータをクリックします。
    6. (オプション)CMDを入力します。さらに追加するには、+Addパラメータをクリックします。
      ENTRYPOINTの引数としてCMDを使用するか、ENTRYPOINTがない場合に実行する唯一のコマンドを使用します。
    7. (オプション)イメージ・ダイジェストを入力します。
    8. (オプション)署名検証を使用する場合は、イメージ署名のOCIDを入力します。
      例: ocid1.containerimagesignature.oc1.iad.aaaaaaaaab....
    9. (オプション)ステップ・アーティファクトをボックスにドラッグしてアップロードします。
      ノート

      このステップは、BYOCが構成されている場合のみオプションです。
  • これらの環境変数は、パイプライン実行を制御します。

    このPythonの例のように、OCI CLIを使用してパイプラインを作成できます:

    1. パイプラインを作成します:

      ペイロードでは、次のパラメータを使用できます。

      パラメータ名 必須 説明
      パイプライン(最上位レベル)
      projectId 必須 パイプラインを作成するプロジェクトOCID。
      compartmentId 必須 パイプラインを作成するコンパートメントOCID。
      displayName オプション パイプラインの名前。
      infrastructureConfigurationDetails オプション

      すべてのパイプライン・ステップに使用するデフォルトのインフラストラクチャ(コンピュート)構成。サポートされているパラメータの詳細は、infrastructureConfigurationDetailsを参照してください。

      パイプライン実行構成によってオーバーライドできます。

      logConfigurationDetails オプション

      すべてのパイプライン・ステップに使用するデフォルト・ログ。サポートされているパラメータの詳細は、logConfigurationDetailsを参照してください。

      パイプライン実行構成によってオーバーライドできます。

      configurationDetails オプション

      パイプライン実行のデフォルト構成。サポートされているパラメータの詳細は、configurationDetailsを参照してください。

      パイプライン実行構成によってオーバーライドできます。

      freeformTags オプション パイプライン・リソースに追加するタグ。
      stepDetails
      stepName 必須 ステップの名前。パイプライン内で一意である必要があります。
      description オプション ステップのフリー・テキストの説明。
      stepType 必須 CUSTOM_SCRIPTまたはML_JOB
      jobId 必須* ML_JOBステップの場合、これはステップ実行に使用するジョブOCIDです。
      stepInfrastructureConfigurationDetails オプション*

      このステップで使用するデフォルトのインフラストラクチャ(コンピュート)構成。サポートされているパラメータの詳細は、infrastructureConfigurationDetailsを参照してください。

      パイプライン実行構成によってオーバーライドできます。

      *少なくとも1つのレベル(優先度に基づく優先度、1が最高)で定義する必要があります。

      1つのパイプライン実行または/または

      2ステップまたは/または

      3パイプライン

      stepConfigurationDetails オプション*

      ステップ実行のデフォルト構成。サポートされているパラメータの詳細は、configurationDetailsを参照してください。

      パイプライン実行構成によってオーバーライドできます。

      *少なくとも1つのレベル(優先度に基づく優先度、1が最高)で定義する必要があります。

      1つのパイプライン実行または/または

      2ステップまたは/または

      3パイプライン

      dependsOn オプション このステップを開始する前に完了する必要があるステップのリスト。これにより、パイプライン・ワークフローの依存関係グラフが作成されます。
      infrastructureConfigurationDetails
      shapeName 必須 使用するコンピュート・シェイプの名前。たとえば、VM.Standard2.4です。
      blockStorageSizeInGBs 必須 VMのアタッチされたストレージとして使用するGBの数。
      logConfigurationDetails
      enableLogging 必須 ロギングを使用するように定義します。
      logGroupId 必須 ログに使用するログ・グループOCID。ログ・グループが作成され、パイプラインの実行時に使用可能である必要があります
      logId オプション* enableAutoLogCreationパラメータを使用しない場合にログに使用するログOCID。
      enableAutoLogCreation オプション Trueに設定すると、パイプライン実行ごとにログが作成されます。
      configurationDetails
      type 必須 DEFAULTのみサポートされます。
      maximumRuntimeInMinutes オプション パイプラインの実行時間制限(分)。
      environmentVariables オプション

      パイプライン・ステップの実行に指定する環境変数。

      例:

      "environmentVariables": {
      
       "CONDA_ENV_TYPE": "service"
      
      }

      サービスでサポートされている環境変数のリストを確認します。

      pipeline_payload = {
          "projectId": "<project_id>",
          "compartmentId": "<compartment_id>",
          "displayName": "<pipeline_name>",
          "pipelineInfrastructureConfigurationDetails": {
              "shapeName": "VM.Standard2.1",
              "blockStorageSizeInGBs": "50"
          },
          "pipelineLogConfigurationDetails": {
              "enableLogging": True,
              "logGroupId": "<log_group_id>",
              "logId": "<log_id>"
          },
          "pipelineDefaultConfigurationDetails": {
              "type": "DEFAULT",
              "maximumRuntimeInMinutes": 30,
              "environmentVariables": {
                  "CONDA_ENV_TYPE": "service",
                  "CONDA_ENV_SLUG": "classic_cpu"
              }
          },
          "stepDetails": [
              {
                  "stepName": "preprocess",
                  "description": "Preprocess step",
                  "stepType": "CUSTOM_SCRIPT",
                  "stepInfrastructureConfigurationDetails": {
                      "shapeName": "VM.Standard2.4",
                      "blockStorageSizeInGBs": "100"
                  },
                  "stepConfigurationDetails": {
                      "type": "DEFAULT",
                      "maximumRuntimeInMinutes": 90
                      "environmentVariables": {
                          "STEP_RUN_ENTRYPOINT": "preprocess.py",
                          "CONDA_ENV_TYPE": "service",
                          "CONDA_ENV_SLUG": "onnx110_p37_cpu_v1"
                  }
              },
              {
                  "stepName": "postprocess",
                  "description": "Postprocess step",
                  "stepType": "CUSTOM_SCRIPT",
                  "stepInfrastructureConfigurationDetails": {
                      "shapeName": "VM.Standard2.1",
                      "blockStorageSizeInGBs": "80"
                  },
                  "stepConfigurationDetails": {
                      "type": "DEFAULT",
                      "maximumRuntimeInMinutes": 60
                  },
                  "dependsOn": ["preprocess"]
              },
          ],
          "freeformTags": {
              "freeTags": "cost center"
          }
      }
      pipeline_res = dsc.create_pipeline(pipeline_payload)
      pipeline_id = pipeline_res.data.id

      すべてのパイプライン・ステップ・アーティファクトがアップロードされるまで、パイプラインはCREATING状態になります。

    2. ステップ・アーティファクトをアップロードします:

      アップロードされたアーティファクトは変更できません。

      fstream = open(<file_name>, "rb")
       
      dsc.create_step_artifact(pipeline_id, step_name, fstream, content_disposition=f"attachment; filename={<file_name>}")
    3. パイプラインを更新します:

      パイプラインは、ACTIVE状態の場合にのみ更新できます。

      update_pipeline_details = {
      "displayName": "pipeline-updated"
      }
      self.dsc.update_pipeline(<pipeline_id>, <update_pipeline_details>)
    4. パイプライン実行の開始:
      pipeline_run_payload = {
      "projectId": project_id,
      "displayName": "pipeline-run",
      "pipelineId": <pipeline_id>,
      "compartmentId": <compartment_id>,
      }
      dsc.create_pipeline_run(pipeline_run_payload)
  • ADS SDKは、次のコマンドを使用してインストールできる、パブリックに使用可能なPythonライブラリでもあります:

    pip install oracle-ads

    ADS SDKを使用してパイプラインを作成および実行できます。

カスタム・ネットワーキング

パイプラインですでに作成したカスタム・ネットワークを使用して、ネットワークに対する柔軟性を高めます。

カスタム・ネットワーキングを使用したパイプラインの作成

パイプラインの作成時にカスタム・ネットワーキングを使用することを選択できます。

ノート

カスタム・ネットワーキングから管理対象ネットワーキングへの切替えは、パイプラインの作成後はサポートされません。
ヒント

バナーが表示される場合: The specified subnet is not accessible. Select a different subnet.は、「パイプライン・ポリシー」の項の説明に従ってネットワーク・アクセス・ポリシーを作成します。

コンソールの使用

「パイプラインの作成」パネルでカスタム・ネットワーキングを使用することを選択します。

デフォルトのネットワークを選択した場合、システムは既存のサービス管理ネットワークを使用します。カスタム・ネットワーキング・オプションを選択すると、VCNおよびサブネットを選択するように求められます。

リソースに使用するVCNおよびサブネットを選択します。パブリック・インターネットへのエグレス・アクセスには、NATゲートウェイへのルートを持つプライベート・サブネットを使用します。使用するVCNまたはサブネットが表示されない場合は、「コンパートメントの変更」をクリックし、VCNまたはサブネットを含むコンパートメントを選択します。

APIの使用

パイプライン・レベルでカスタム・サブネットを使用するには、infrastructure-configuration-detailssubnet-idを指定します。例:
"infrastructure-configuration-details": {
      "block-storage-size-in-gbs": 50,
      "shape-config-details": {
        "memory-in-gbs": 16.0,
        "ocpus": 1.0
      },
      "shape-name": "VM.Standard.E4.Flex",
      "subnet-id": "ocid1.subnet.oc1.iad.aaaaaaaa5lzzq3fyypo6x5t5egplbfyxf2are6k6boop3vky5t4h7g35xkoa"
}
または、step-container-configuration-detailsで、特定のステップにカスタム・サブネットを使用します。例:
"step-infrastructure-configuration-details": {
          "block-storage-size-in-gbs": 50,
          "shape-config-details": {
            "memory-in-gbs": 16.0,
            "ocpus": 1.0
          },
          "shape-name": "VM.Standard.E4.Flex",
          "subnet-id": "ocid1.subnet.oc1.iad.aaaaaaaa5lzzq3fyypo6x5t5egplbfyxf2are6k6boop3vky5t4h7g35xkoa"
},