カスタムモデルのためのGitHub Actions¶
本機能の提供について
カスタムモデルのGitHubアクションはプレミアム機能です。 この機能を有効にする方法については、DataRobotの担当者または管理者にお問い合わせください。
カスタムモデルのアクションは、GitHub CI/CDのワークフローを通じて、DataRobotでカスタム推論モデルとその関連デプロイを管理します。 これらのワークフローでは、モデルやデプロイを作成または削除したり、設定を変更したりできます。 YAMLファイルで定義されたメタデータにより、カスタムモデルのアクションによるモデルとデプロイの制御が可能になります。 このアクションのほとんどのYAMLファイルは、カスタムモデルのリポジトリ内の任意のフォルダーに配置できます。 YAMLは、これらのワークフローで使用されるエンティティが含まれているかどうかを判断するために、検索、収集、スキーマに対するテストが行われます。 詳細については、custom-models-actionリポジトリを参照してください
GitHubアクションのクイックスタート¶
このクイックスタートの例では、 datarobot-user-model repositoryからの Python Scikit-Learnモデルテンプレートを使用します。 GitHubのカスタムモデルリポジトリからDataRobotでカスタム推論モデルとデプロイを作成するカスタムモデルアクションを設定するには、次の手順を実行します。
-
カスタムモデルのリポジトリの
.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
次のフィールドを設定します。
-
branches
:pull_request
およびpush
のリポジトリのメインブランチの名前を入力します(通常はmaster
またはmain
)。 GitHubでリポジトリを作成した場合、これらのフィールドをmain
に更新する必要がある可能性があります。master
およびmain
は最も一般的なブランチ名ですが、任意のブランチをターゲットにできます。たとえば、release
ブランチまたはtest
ブランチでワークフローを実行できます。 -
api-token
:DataRobot APIキーを含むGitHubアクションの暗号化されたシークレットを作成して、DATAROBOT_API_TOKEN
変数の値を指定します。 または、このフィールドにトークン文字列を直接設定することもできます。ただし、APIキーは非常に機微なデータであるため、この方法はあまり推奨されません。 この方法を使用すると、リポジトリにアクセスできるすべてのユーザーがAPIキーにアクセスできます。 -
webserver
:デフォルトのDataRobot USサーバー(https://app.datarobot.com/
)でない場合は、DataRobotウェブサーバー値をここに入力します。 -
branch
:リポジトリのメインブランチの名前を入力します(通常はmaster
またはmain
)。 GitHubでリポジトリを作成した場合、このフィールドをmain
に更新する必要がある可能性があります。master
およびmain
は最も一般的なブランチ名ですが、任意のブランチをターゲットにできます。たとえば、release
ブランチまたはtest
ブランチでワークフローを実行できます。
-
-
ワークフローのYAMLファイルをコミットし、リモートにプッシュします。 この手順を完了すると、リモートへのプッシュ(またはマージされたプルリクエスト)によってアクションがトリガーされます。
-
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アプリケーション内の モデルレジストリ > カスタムモデルワークショップ > 環境にあります。
-
-
リポジトリ内の任意のディレクトリで、次の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
を入力します。
-
-
これらの変更をコミットしてリモートにプッシュし、次の操作を実行します。
-
GitHub内のカスタムモデルのリポジトリに移動し、
Actions
タブをクリックします。 アクションが実行されていることがわかります。 -
DataRobotアプリケーションに移動します。 新しいカスタムモデルが関連するデプロイとともに作成されていることがわかります。 この操作には数分かかることがあります。
-
注意
連続してすばやく、2つのコミットを作成(または2つのプルリクエストをマージ)すると、ResourceNotFoundError
が発生する可能性があります。 たとえば、トレーニングデータセットでモデル定義を追加し、コミットし、リモートにプッシュします。 次に、モデル定義を直ちに削除し、コミットし、リモートにプッシュします。 トレーニングデータのアップロードアクションがモデルの削除後に開始されて、エラーが発生する可能性があります。 このシナリオを回避するには、アクションの実行が完了するまで待ってから、新しいコミットをプッシュするか、新しいプルリクエストをリモートリポジトリにマージします。
DataRobotのコミット情報にアクセスする¶
ワークフローによってDataRobotでモデルとデプロイを作成すると、モデルのバージョン情報とデプロイの概要からコミット情報にアクセスできます。
-
モデルレジストリをクリックしてから、カスタムモデルワークショップをクリックします。
-
モデルタブで、リストからGitHubソースのモデルをクリックしてから、バージョンタブをクリックします。
-
バージョンの管理で、コミットを表示するバージョンをクリックします。
-
バージョン情報で、Gitコミットリファレンスを見つけてから、コミットハッシュ(またはコミットID)をクリックして、現在のバージョンを作成したコミットを開きます。
-
モデルレジストリの登録済みのモデルタブで、リストからGitHubのモデルパッケージをクリックします。
-
情報タブで、ワークフローによって提供されたモデル情報を確認し、Gitコミットリファレンスを見つけてから、コミットハッシュ(またはコミットID)をクリックして、現在のモデルパッケージを作成したコミットを開きます。
-
デプロイインベントリで、リストからGitHubソースのデプロイをクリックします。
-
デプロイの概要タブで、ワークフローで提供されているモデル情報およびデプロイ情報を確認します。
-
コンテンツグループボックスで、Gitコミットリファレンスを見つけ、コミットハッシュ(またはコミットID)をクリックして、デプロイを作成したコミットを開きます。