Skip to content

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

カスタムモデルの作成

カスタムモデルは、ユーザーが作成して、モデルワークショップを介して(ファイルのコレクションとして)、DataRobotにアップロードできる事前トレーニング済みのモデルです。 カスタムモデルは、以下のうちいずれかの方法でアセンブルできます。

  • アセンブルタブで、環境要件とstart_server.shファイル なし でカスタムモデルを作成します。 このタイプのカスタムモデルはドロップイン環境を使用する必要があります。 ドロップイン環境には、モデルで使用される要件とstart_server.shファイルが含まれます。 これらはワークショップ内のDataRobotによって提供されます。

  • アセンブルタブで、環境要件とstart_server.shファイル あり でカスタムモデルを作成します。 このタイプのカスタムモデルは、カスタムまたはドロップイン環境と組み合わせることができます。

作業を続ける前に、 カスタムモデルのアセンブルに関するガイドラインを確認してください。 カスタムモデルと環境フォルダーの間でファイルが重複している場合は、モデルのファイルが優先されます。

カスタムモデルのテスト

カスタムモデルのファイルコンテンツを組み立てると、DataRobotにアップロードする前に開発目的でローカルでコンテンツをテストできます。 ワークショップでカスタムモデルを作成した後、テストタブからテストスイートを実行できます。

新しいカスタムモデルの作成

アセンブリの準備としてカスタムモデルを作成するには:

  1. レジストリ > モデルワークショップをクリックします。 このタブには、作成したモデルが一覧表示されます。

  2. + モデルを追加(または、カスタムモデルパネルが開いている場合は ボタン)をクリックします。

  3. モデルを追加ページで、モデルを設定のフィールドに入力します。

    フィールド 説明
    モデル名 カスタムモデルのわかりやすい名前。
    ターゲットタイプ モデルが行っている予測のタイプ。 予測タイプに応じて、追加の設定を構成する必要があります。
    • 二値:二値分類モデルの場合は、PositiveクラスラベルNegativeクラスラベルを入力します。
    • 連続値:追加設定なし。
    • 多クラス:多クラス分類モデルでは、ターゲットのターゲットクラスを1行に1クラスずつ入力またはアップロード(.csv.txt)します。 クラスがモデルの予測に正しく適用されるように、モデルが予測したクラスの確率と同じ順序でクラスを入力してください。
    • テキスト生成プレミアム機能。 追加設定なし。
    • 異常検知:追加設定なし。
    • 非構造化:追加設定なし。 非構造化モデルは、特定の入力/出力スキーマに準拠する必要はなく、異なる要求形式を使用する可能性があります。 「非構造化」ターゲットタイプのデプロイでは、予測ドリフト、精度追跡、チャレンジャー、および信頼性が無効になります。 サービスの正常性、デプロイアクティビティ、ガバナンスは引き続き利用できます。
    ターゲット名 モデルが予測するデータセットの列名。 このフィールドは、多クラスモデルおよび異常検知モデルでは使用できません。
    高度な設定
    言語 モデルの構築に使用されるプログラミング言語。
    説明 モデルのコンテンツと目的の説明。
    異常検知のターゲットタイプ

    異常検知の問題をサポートするカスタムモデルを作成できます。 構築する場合は、DRUMテンプレートを参照してください。 (このリンクをクリックする前にGitHubにログインしてください。)カスタム異常検知モデルをデプロイする場合、次の機能はサポートされていないことに注意してください。

    • データドリフト
    • 精度と関連付けID
    • チャレンジャーモデル
    • 信頼性ルール
    • 予測の説明
  4. フィールドに入力したら、モデルを追加をクリックします。

    カスタムモデルがアセンブルタブで開きます。

カスタムモデルのアセンブル

カスタムモデルを作成した後、必要な環境、依存関係、ファイルを指定できます。

  1. アセンブルするモデルで、アセンブルタブの環境セクションに移動し、基本環境ドロップダウンメニューからモデル環境を選択します。

    モデル環境

    モデル環境は、カスタムモデルのテストとデプロイに使用されます。 基本環境ドロップダウンリストには、 ドロップインモデル環境と、作成可能な カスタム環境が含まれています。

  2. 依存関係セクションに入力するために、ファイルセクションでrequirements.txtファイルをアップロードし、DataRobotが最適なイメージを構築できるようにします。

  3. ファイルセクションで、必要なカスタムモデルファイルを追加します。 モデルと ドロップイン環境をペアリングしていない場合、これにはカスタムモデル環境要件とstart_server.shファイルが含まれます。 ファイルの追加方法はいくつかあります。

      要素 説明
    1 ファイル ファイルをグループボックスにドラッグしてアップロードします。
    2 ソースから選択 クリックしてローカルファイルまたはローカルフォルダーを参照します。
    3 アップロード クリックしてローカルファイルまたはローカルフォルダーを参照するか、 リモートリポジトリからファイルをプルします。
    4 作成 空のファイルまたはテンプレートとして新しいファイルを作成し、カスタムモデルに保存します。
    • model-metadata.yamlを作成:ランタイムパラメーターファイルの基本的で編集可能な例を作成します。
    • 空白ファイルを作成:空のファイルを作成します。 名称未設定の横にある編集アイコン()をクリックしてファイル名と拡張子を入力し、カスタムコンテンツを追加します。

    ファイルの置き換え

    既存のファイルと同じ名前の新しいファイルを追加する場合、保存をクリックすると、ファイルセクションで古いファイルが置き換えられます。

    モデルファイルの場所

    ローカルフォルダーからファイルを追加する場合は、モデルファイルがすでにカスタムモデルのルートにあることを確認してください。 アップロードされたフォルダーは、モデル自体ではなく、モデルに必要な依存ファイルおよび追加のアセット用です。 モデルファイルがフォルダーに含まれている場合でも、ファイルがルートレベルに存在しない限り、DataRobotからモデルファイルにアクセスすることはできません。 ルートにあるファイルは、フォルダー内の依存関係を指定することができます。

アセンブルタブのファイルセクションで1つ以上のファイルまたはフォルダーを誤って追加した場合は、各ファイルまたはフォルダーの横にある削除()アイコンをクリックして、カスタムモデルから削除できます。

リモートリポジトリ

ファイルセクションで、アップロード > リモートリポジトリをクリックすると、リモートリポジトリからコンテンツを追加パネルが開きます。 リモートリポジトリをクリックして、 新しいリモートリポジトリを登録(A)するか、既存のリモートリポジトリを選択(B)できます。

リポジトリを登録して選択した後、アップロードする各ファイルまたはフォルダーのチェックボックスを選択して、コンテンツを選択するをクリックします。

選択したファイルがファイルセクションに入れられます。

ドロップイン環境

DataRobotでは、モデルワークショップでドロップイン環境が使用でき、必要なライブラリを定義してstart_server.shファイルが使用できます。 次の表に、DataRobotのドロップイン環境の詳細とDRUMリポジトリ内のテンプレートへのリンクを示します。 モデルワークショップアセンブルタブの環境セクションでは各環境の前に[DataRobot]が置かれます。

環境名と例 モデルの互換性とアーティファクトファイルの拡張子
Python 3 ONNXドロップイン ONNXモデル(.onnx
Python 3 PMMLドロップイン PMMLモデル(.pmml
Python 3 PyTorchドロップイン PyTorchモデル(.pth
Python 3 Scikit-Learnドロップイン Scikit-Learnモデル(.pkl
Python 3 XGBoostドロップイン ネイティブXGBoostモデル(.pkl
Python 3 Kerasドロップイン TensorFlow(.h5)を用いたKerasモデル
Javaドロップイン DataRobotスコアリングコードモデル(.jar
Rドロップイン環境 CARET(.rds)を使ってトレーニングされたRモデル
CARETが推奨するすべてのライブラリをインストールするのに時間がかかるため、パッケージ名でもあるモデルタイプのみがインストールされます(例:brnnglmnet)。 この環境のコピーを作成し、Dockerfileを修正して、必要なパッケージを追加でインストールします。 この環境をカスタマイズする際のビルド回数を減らすために、# Install caret modelsセクションで不要な行を削除して、必要なものだけをインストールすることもできます。 CARETドキュメントを参照して、モデルの手法がパッケージ名と一致しているかどうかを確認してください。 このリンクをクリックする前にGitHubにログインしてください。
Juliaドロップイン* Juliaモデル(.jlso
* Juliaのドロップイン環境は公式にはサポートされていません。例として提供されています。

備考

すべてのPython環境には、前処理(必要な場合)を支援するScikit-Learnが含まれていますが、sklearnモデルで予測を作成できるのはScikit-Learnだけです。

When using a drop-in environment, your custom model code can reference several environment variables injected to facilitate access to the DataRobot Client and MLOps Connected Client:

環境変数 説明
MLOPS_DEPLOYMENT_ID If a custom model is running in deployment mode (i.e., the custom model is deployed), the deployment ID is available.
DATAROBOT_ENDPOINT If a custom model has public network access, the DataRobot endpoint URL is available.
DATAROBOT_API_TOKEN If a custom model has public network access, your DataRobot API token is available.

接続されたデプロイを定義

本機能の提供について

接続されたデプロイは、デフォルトではオフになっています。 この機能を有効にする方法については、DataRobotの担当者または管理者にお問い合わせください。

機能フラグ:デプロイの接続を有効にする

接続されたデプロイは、監視対象のテキスト生成モデルデプロイに予測と統計を報告します。 接続されたデプロイを使用するには、最初に、LLMのプロンプトや出力について予測を行う監査モデルを作成してデプロイします。たとえば、監査モデルでプロンプトインジェクション、つまり有害な回答を識別できる場合があります。 次に、テキスト生成ターゲットタイプでカスタムモデルを作成するときに、接続された1つまたは複数のデプロイを定義して予測を生成し、中央モデルにレポートします。 接続されたデプロイの予測は、監視対象のテキスト生成モデルデプロイの予測出力に統合することができます。

接続されたデプロイを定義するには、deploymentタイプのランタイムパラメーターを1つ以上含むmodel-metadata.yamlファイルをアップロードするか作成します。 作成 > model-metadata.yamlを作成をクリックすると、テンプレートに例が含まれるようになります。

runtimeParameterDefinitions:
- fieldName: DEPLOYMENT_PARAMETER
    type: deployment
    description: An example of a deployment parameter (for various purposes, such as connected deployments)
    defaultValue: null 

上の例でnullを接続するデプロイのデプロイIDに置き換えるか、model-metadata.yamlファイルの保存後に編集アイコン()をクリックしてデプロイIDを入力します。

接続されたデプロイを使用するには、カスタムモデルにテキスト生成ターゲットタイプがあることを確認します。 ターゲットタイプは、次のようにmodel-metadata.yamlファイルで定義できます。

targetType: textgeneration 

カスタムモデルのアセンブルと登録を行うと、登録モデルバージョンの関連アイテムセクションで接続されたデプロイを確認できます。

ランタイムパラメーターの管理

model-metadata.yamlファイルのruntimeParameterDefinitionsによりランタイムパラメーターを定義した場合、ランタイムパラメーターセクションでそれらを管理できます。

アイコン 設定 説明
編集 キーを編集ダイアログボックスを開き、ランタイムパラメーターのを編集します。
初期値に戻す ランタイムパラメーターの値をmodel-metadata.yamlファイル内のdefaultValueセットにリセットします。

カスタムモデルデータセットの割り当て

モデルデプロイで特徴量ドリフト追跡を有効にするには、トレーニングデータを追加する必要があります。 これを行うには、モデルのバージョンにトレーニングデータを割り当てます。 非構造化カスタム推論モデルのトレーニングデータセットとホールドアウトデータセットを指定する方法では、トレーニングデータセットとホールドアウトデータセットを個別にアップロードする必要があります。 さらに、これらのデータセットにはパーティション列を含めることはできません。

ファイルサイズに関する注意

カスタムモデルにトレーニングデータを追加する場合、トレーニングデータはRAMとCPUリソースを節約するために フローズン実行の対象となり、トレーニングデータセットのファイルサイズを1.5 GBに制限できます。

環境ファイルを定義した後にカスタムモデルにトレーニングデータを割り当てるには:

  1. アセンブルタブの設定セクションのデータセットの下:

    • モデルのバージョンにトレーニングデータが割り当てられていない場合は、割り当てるをクリックします。

    • モデルバージョンにトレーニングデータが 割り当てられている 場合は、(変更をクリックし、トレーニングデータの下で削除()アイコンをクリックして、既存のトレーニングデータを削除します。

  2. トレーニングデータセクションで、+ データセットを選択をクリックして、次のいずれかを実行します。

    • 新しいデータセットをデータレジストリに追加するには、アップロードをクリックし、ローカルストレージからファイルを選択して、開くをクリックします。

    • データレジストリから既存のデータセットを選択するには、データレジストリリストで、DataRobotに以前アップロードしたトレーニングデータセットを見つけてクリックし、データセットを選択をクリックします。

    スコアリングに必要な特徴量を含める

    カスタムモデルのトレーニングデータの列は、デプロイされたカスタムモデルへのスコアリングリクエストにどの特徴量が含まれるかを示します。 したがって、トレーニングデータが利用可能になると、トレーニングデータセットに含まれない特徴量はモデルに送信されません。 この要件は、 カスタムモデルのテスト中に行われた予測には適用されません。

  3. (Optional) In the Partition column section, specify the column name (from the provided training dataset) containing partitioning information for your data (based on training/validation/holdout partitioning). カスタムモデルをデプロイし、そのデータドリフト精度を監視する予定であれば、列にホールドアウトパーティションを指定して、精度のベースラインを確立します。

    パーティション列の指定

    パーティション列を指定しなくても、データのドリフトと精度を追跡できます。ただし、このシナリオでは、DataRobotにベースライン値はありません。 選択されたパーティション列はTVHのいずれかの値のみを含む必要があります。

  4. 割り当てるをクリックします。

    トレーニングデータの割り当てエラー

    トレーニングデータの割り当てに失敗すると、新しいカスタムモデルバージョンのデータセットの下にエラーメッセージが表示されます。 このエラーが存在する間は、影響を受けるバージョンをデプロイするモデルパッケージを作成できません。 エラーを解決してモデルパッケージをデプロイするには、トレーニングデータを再割り当てして新しいバージョンを作成するか、新しいバージョンを作成してからトレーニングデータを割り当てます。

カスタムモデルのリソース設定を行う

カスタム推論モデルを作成した後、モデルが消費するリソースを設定して、スムーズなデプロイを促進し、本番環境で発生する可能性のある環境エラーを最小限に抑えることができます。

リソースの割り当てとアクセスを設定するには:

  1. アセンブルタブの設定セクションで、リソースの横にある(編集をクリックします。

  2. リソース設定の更新ダイアログボックスで、次の設定を行います。

    リソース設定へのアクセス

    ユーザーはモデルに割り当てられる最大メモリーを決定できますが、追加のリソース設定を行えるのは 組織管理者だけです。

    設定 説明
    メモリー カスタム推論モデルに割り当てることのできるメモリーの最大量を決定します。 設定された最大値以上のメモリーが割り当てられたモデルはシステムによって排除されます。 この問題がテスト中に発生した場合、テストは失敗としてマークされます。 モデルのデプロイ時に発生した場合は、Kubernetesによってモデルが自動的に再起動されます。
    レプリカ カスタムモデルの実行時にワークロードのバランスを取るために、並行して実行するレプリカの最大数を設定します。 レプリカの数を増やしても、カスタムモデルの速度に依存するため、パフォーマンスが向上しない場合があります。
    ネットワークアクセス プレミアム機能。 カスタムモデルのエグレストラフィックを設定します。
    • パブリック:デフォルト設定。 The custom model can access any fully qualified domain name (FQDN) in a public network to leverage third-party services.
    • None: The custom model is isolated from the public network and cannot access third-party services.
    When public network access is enabled, your custom model can use the DATAROBOT_ENDPOINT and DATAROBOT_API_TOKEN environment variables. These environment variables are available for any custom model using a drop-in environment or a custom environment built on DRUM.
    バランスの悪いメモリー設定

    DataRobotでは、必要な場合にのみリソース設定を行うことをお勧めします。 以下のメモリー設定では、Kubernetesメモリーの「制限」(メモリーの最大許容量)が設定されます。ただし、メモリーの「リクエスト」(メモリーの最小許容量)を設定することはできません。 このため、「制限」値をデフォルトの「リクエスト」値より大きく設定することができます。 メモリーの「リクエスト」と増加した「制限」によるメモリー許容量との不均衡が生じ、カスタムモデルがメモリー使用量の上限を超える場合があります。 その結果、カスタムモデルの頻繁な削除や再起動により、カスタムモデルが実行時に不安定になる場合があります。 メモリー設定を増やす必要がある場合は、組織レベルで「リクエスト」を増やすと、この問題を軽減できます。詳細については、DataRobotサポートまでお問い合わせください。

    プレミアム機能:ネットワークアクセス

    _新しく_作成したカスタムモデルはすべて、デフォルトでパブリックネットワークにアクセスできます。ただし、2023年10月より前に作成されたカスタムモデルの新しいバージョンを作成した場合、その新しいバージョンは、パブリックアクセスを有効にする(アクセスをパブリックに設定する)まで、パブリックネットワークから隔離された(アクセスがなしに設定された)ままです。 パブリックアクセスを有効にすると、後続の各バージョンは、前のバージョンのパブリックアクセス定義を継承します。

  3. カスタムモデルのリソース設定を行ったら、保存をクリックします。

    編集したリソース設定が適用された新しいバージョンのカスタムモデルが作成されます。

    凍結バージョン

    リソース設定を更新できるのは、最新のモデルバージョンに限ります。 さらに、最新のモデルバージョンが登録またはデプロイされている場合は、更新されたリソース設定を適用できず、変更を保存しようとすると、「凍結バージョン」の警告が表示されます。 この警告が表示された場合は、カスタムモデルバージョンを新規作成し、リソース設定を更新してから、正しい設定でモデルを登録してデプロイします。


更新しました February 20, 2024
Back to top