DMMの環境設定¶
DataRobotモデル指標ライブラリ(DMM)を使用してカスタム指標を開発できる主なエコシステムは2つあります。
- DataRobotアプリケーション内(ノートブックまたはスケジュールされたジョブを介して)。
- ローカル開発環境。
環境に関する注意事項
Pythonモジュールのインストール:
- DataRobotアプリケーションからDMMを実行する場合、エコシステムは必要なすべてのPythonモジュールで事前に設定されています。
- DMMをローカルで実行する場合は、
dmm
モジュールをインストールする必要があります。 これによりPython環境が自動的に更新され、必要なモジュールがすべて含まれます。
DMMパラメーターの設定:
- DataRobotアプリケーション内からDMMを実行する場合、パラメーターは環境変数によって設定されます。
- DMMをローカルで実行する場合は、環境変数を設定するのではなく、引数で値を渡してこれらのパラメーターを設定することをお勧めします。
環境の初期化¶
CustomMetricArgumentParser
クラスは標準のargparser.ArgumentParser
をラップします。 このクラスは、環境から値を読み込んだり、通常の引数解析を行うための便利な関数を提供します。 CustomMetricArgumentParser.parse_args()
が呼び出されると、欠損値をチェックします。
log_manager
は、ロギングに役立つ一連の関数を提供します。 DMMライブラリとDataRobotパブリックAPIクライアントは、標準のPythonlogging
プリミティブを使用します。 現在のレベルを含むログクラスの完全なリストは、get_log_levels()
を使用して見ることができます。 initialize_loggers()
関数は、すべてのロガーを初期化します。
2024-08-09 02:19:50 PM - dmm.data_source.datarobot_source - INFO - fetching the next predictions dataframe... 2024-07-15 00:00:00 - 2024-08-09 14:19:46.643722
2024-08-09 02:19:56 PM - urllib3.connectionpool - DEBUG - https://app.datarobot.com:443 "POST /api/v2/deployments/66a90a711zd81645df8c469c/predictionDataExports/ HTTP/1.1" 202 368
次のスニペットは、前述のクラスを使用してランタイム環境を設定する方法を示しています。
import sys
from dmm import CustomMetricArgumentParser
from dmm.log_manager import initialize_loggers
parser = CustomMetricArgumentParser(description="My new custom metric")
parser.add_base_args() # adds standard arguments
# Add more with standard ArgumentParser primitives, or some convenience functions such as add_environment_arg()
# Parse the program arguments (if any) to an argparse.Namespace.
args = parser.parse_args(sys.argv[1:])
# Initialize the logging based on the 'LOG' environment variable, or the --log option
initialize_loggers(args.log)
標準/基本引数には、以下が含まれます。
引数 | 説明 |
---|---|
BASE_URL |
パブリックAPIのURL。 |
API_KEY |
BASE_URL にあるサーバーへの認証に使用されるAPIトークン。 |
DEPLOYMENT_ID |
アプリケーションのデプロイID。 |
CUSTOM_METRIC_ID |
アプリケーションのカスタム指標ID。 |
DRY_RUN |
カスタム指標の結果をデプロイに報告するかどうかを示すフラグ。 DRY_RUN ランタイムパラメーターを1 に設定すると、実行はテストランであり、指標データは報告されません。 |
START_TS |
指標計算の時間範囲の開始。 |
END_TS |
指標計算の終了時間。 |
MAX_ROWS |
処理する予測行の最大数。 |
LOG |
ロギングの初期化では、デフォルトですべてのdmm とWARNING へのdatarobot モジュールに設定されます。 |
以下はCustomMetricArgumentParser
を使用したヘルプの例です。
(model-runner) $ python3 custom.py --help
usage: custom.py [-h] [--api-key KEY] [--base-url URL] [--deployment-id ID] [--custom-metric-id ID] [--dry-run] [--start-ts TIMESTAMP] [--end-ts TIMESTAMP] [--max-rows ROWS] [--required] [--log [[NAME:]LEVEL ...]]
My new custom metric
optional arguments:
-h, --help show this help message and exit
--api-key KEY API key used to authenticate to server. Settable via 'API_KEY', required.
--base-url URL URL for server. Settable via 'BASE_URL' (default: https://staging.datarobot.com/api/v2), required.
--deployment-id ID Deployment ID. Settable via 'DEPLOYMENT_ID' (default: None), required.
--custom-metric-id ID
Custom metric ID. Settable via 'CUSTOM_METRIC_ID' (default: None), required.
--dry-run Dry run. Settable via 'DRY_RUN' (default: False).
--start-ts TIMESTAMP Start timestamp. Settable with 'START_TS', or 'LAST_SUCCESSFUL_RUN_TS' (when not dry run). Default is 2024-08-08 14:27:55.493027
--end-ts TIMESTAMP End timestamp. Settable with 'END_TS' or 'CURRENT_RUN_TS'. Default is 2024-08-09 14:27:55.493044.
--max-rows ROWS Maximum number of rows. Settable via 'MAX_ROWS' (default: 100000).
--required List the required properties and exit.
--log [[NAME:]LEVEL ...]
Logging level list. Settable via 'LOG' (default: WARNING).
(model-runner) $
save_to_csv()
ユーティリティの使用¶
開発中は、同じデータに対して何度もコードを実行し、変更が結果にどのように影響するかを確認するのが一般的です。 save_to_csv()
ユーティリティを使用すると、結果をCSVファイルに保存できるので、同じデータで連続して実行した結果を比較することができます。