Skip to content

アプリケーション内で をクリックすると、お使いのDataRobotバージョンに関する全プラットフォームドキュメントにアクセスできます。

カスタムモデルのためのGitHub Actions

本機能の提供について

カスタムモデルのGitHubアクションはプレミアム機能です。 この機能を有効にする方法については、DataRobotの担当者または管理者にお問い合わせください。

カスタムモデルのアクションは、GitHub CI/CDのワークフローを通じて、DataRobotでカスタム推論モデルとその関連デプロイを管理します。 これらのワークフローでは、モデルやデプロイを作成または削除したり、設定を変更したりできます。 YAMLファイルで定義されたメタデータにより、カスタムモデルのアクションによるモデルとデプロイの制御が可能になります。 このアクションのほとんどのYAMLファイルは、カスタムモデルのリポジトリ内の任意のフォルダーに配置できます。 YAMLは、これらのワークフローで使用されるエンティティが含まれているかどうかを判断するために、検索、収集、スキーマに対するテストが行われます。 詳細については、custom-models-actionリポジトリを参照してください

GitHubアクションのクイックスタート

このクイックスタートの例では、 datarobot-user-model repositoryからの Python Scikit-Learnモデルテンプレートを使用します。 GitHubのカスタムモデルリポジトリからDataRobotでカスタム推論モデルとデプロイを作成するカスタムモデルアクションを設定するには、次の手順を実行します。

  1. カスタムモデルのリポジトリの.github/workflowsディレクトリで、以下を含むYAMLファイル(任意のファイル名)を作成します。

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    name: Workflow CI/CD
    
    on:
      pull_request:
        branches: [ master ]
      push:
        branches: [ master ]
    
      # Allows you to run this workflow manually from the Actions tab
      workflow_dispatch:
    
    jobs:
      datarobot-custom-models:
        # Run this job on any action of a PR, but skip the job upon merging to the main branch. This
        # will be taken care of by the push event.
        if: ${{ github.event.pull_request.merged != true }}
    
        runs-on: ubuntu-latest
    
        steps:
          - uses: actions/checkout@v3
            with:
              fetch-depth: 0
    
          - name: DataRobot Custom Models Step
            id: datarobot-custom-models-step
            uses: datarobot-oss/custom-models-action@v1.6.0
            with:
              api-token: ${{ secrets.DATAROBOT_API_TOKEN }}
              webserver: https://app.datarobot.com/
              branch: master
              allow-model-deletion: true
              allow-deployment-deletion: true 
    

    次のフィールドを設定します。

    • branchespull_requestおよびpushのリポジトリのメインブランチの名前を入力します(通常はmasterまたはmain)。 GitHubでリポジトリを作成した場合、これらのフィールドをmainに更新する必要がある可能性があります。 masterおよびmainは最も一般的なブランチ名ですが、任意のブランチをターゲットにできます。たとえば、releaseブランチまたはtestブランチでワークフローを実行できます。

    • api-tokenDataRobot APIキーを含むGitHubアクションの暗号化されたシークレットを作成して、DATAROBOT_API_TOKEN変数の値を指定します。 または、このフィールドにトークン文字列を直接設定することもできます。ただし、APIキーは非常に機微なデータであるため、この方法はあまり推奨されません。 この方法を使用すると、リポジトリにアクセスできるすべてのユーザーがAPIキーにアクセスできます。

    • webserver:デフォルトのDataRobot USサーバー(https://app.datarobot.com/)でない場合は、DataRobotウェブサーバー値をここに入力します。

    • branch:リポジトリのメインブランチの名前を入力します(通常はmasterまたはmain)。 GitHubでリポジトリを作成した場合、このフィールドをmainに更新する必要がある可能性があります。 masterおよびmainは最も一般的なブランチ名ですが、任意のブランチをターゲットにできます。たとえば、releaseブランチまたはtestブランチでワークフローを実行できます。

  2. ワークフローのYAMLファイルをコミットし、リモートにプッシュします。 この手順を完了すると、リモートへのプッシュ(またはマージされたプルリクエスト)によってアクションがトリガーされます。

  3. DataRobotカスタムモデルのフォルダーに、次のYAMLを含むモデル定義YAMLファイル(たとえば、model.yaml)を追加し、モデルの特性に従ってフィールド値を更新します。

    user_provided_model_id: user/model-unique-id-1
    target_type: Regression
    settings:
      name: My Awesome GitHub Model 1 [GitHub CI/CD]
      target_name: Grade 2014
    
    version:
      # Make sure this is the environment ID is in your system.
      # This one is the '[DataRobot] Python 3 Scikit-Learn Drop-In' environment
      model_environment_id: 5e8c889607389fe0f466c72d 
    

    次のフィールドを設定します。

    • user_provided_model_id:説明的で一意の文字列値を入力します。 DataRobotでは、<user>/<model-unique-id>のような命名パターンに従うことを推奨します。

      備考

      デフォルトでは、このIDは一意の名前空間である GitHubリポジトリIDに存在することになります。 あるいは、カスタムモデルに対する操作の入力引数として名前空間を設定することもできます。

    • target_type:カスタムモデルの正しいターゲットタイプを指定します。

    • target_name:カスタムモデルの正しいターゲット名を入力します。

    • model_environment_id:カスタムモデルに必要なDataRobot実行環境を指定します。 これらの環境は、DataRobotアプリケーション内の モデルレジストリ > カスタムモデルワークショップ > 環境にあります。

  4. リポジトリ内の任意のディレクトリで、次のYAMLを含むデプロイ定義YAMLファイル(任意のファイル名)を追加します。

    user_provided_deployment_id: user/my-awesome-deployment-id
    user_provided_model_id: user/model-unique-id-1 
    

    次のフィールドを設定します。

    • user_provided_deployment_id:説明的で一意の文字列値を入力します。 DataRobotでは、<user>/<deployment-unique-id>のような命名パターンに従うことを推奨します。

      備考

      デフォルトでは、このIDは一意の名前空間である GitHubリポジトリIDに存在することになります。 あるいは、カスタムモデルに対する操作の入力引数として名前空間を設定することもできます。

    • user_provided_model_id:モデル定義のYAMLファイルで設定した正確なuser_provided_model_idを入力します。

  5. これらの変更をコミットしてリモートにプッシュし、次の操作を実行します。

    • GitHub内のカスタムモデルのリポジトリに移動し、Actionsタブをクリックします。 アクションが実行されていることがわかります。

    • DataRobotアプリケーションに移動します。 新しいカスタムモデルが関連するデプロイとともに作成されていることがわかります。 この操作には数分かかることがあります。

注意

連続してすばやく、2つのコミットを作成(または2つのプルリクエストをマージ)すると、ResourceNotFoundErrorが発生する可能性があります。 たとえば、トレーニングデータセットでモデル定義を追加し、コミットし、リモートにプッシュします。 次に、モデル定義を直ちに削除し、コミットし、リモートにプッシュします。 トレーニングデータのアップロードアクションがモデルの削除後に開始されて、エラーが発生する可能性があります。 このシナリオを回避するには、アクションの実行が完了するまで待ってから、新しいコミットをプッシュするか、新しいプルリクエストをリモートリポジトリにマージします。

DataRobotのコミット情報にアクセスする

ワークフローによってDataRobotでモデルとデプロイを作成すると、モデルのバージョン情報とデプロイの概要からコミット情報にアクセスできます。

  1. モデルレジストリをクリックしてから、カスタムモデルワークショップをクリックします。

  2. モデルタブで、リストからGitHubソースのモデルをクリックしてから、バージョンタブをクリックします。

  3. バージョンの管理で、コミットを表示するバージョンをクリックします。

  4. バージョン情報で、Gitコミットリファレンスを見つけてから、コミットハッシュ(またはコミットID)をクリックして、現在のバージョンを作成したコミットを開きます。

  1. モデルレジストリ登録済みのモデルタブで、リストからGitHubのモデルパッケージをクリックします。

  2. 情報タブで、ワークフローによって提供されたモデル情報を確認し、Gitコミットリファレンスを見つけてから、コミットハッシュ(またはコミットID)をクリックして、現在のモデルパッケージを作成したコミットを開きます。

  1. デプロイインベントリで、リストからGitHubソースのデプロイをクリックします。

  2. デプロイの概要タブで、ワークフローで提供されているモデル情報およびデプロイ情報を確認します。

  3. コンテンツグループボックスで、Gitコミットリファレンスを見つけ、コミットハッシュ(またはコミットID)をクリックして、デプロイを作成したコミットを開きます。


更新しました 2024年10月2日