バッチ予測API¶
バッチ予測APIは、既にデプロイ済みの予測サーバーを使って大規模なデータセットをスコアリングする際の入力と出力の柔軟なオプションを提供します。このAPIはDataRobotパブリックAPIを介して公開されます。APIはREST対応クライアント、またはDataRobot PythonパブリックAPIバインディングを使用して使用できます。
REST APIの詳細については、APIドキュメントを参照してください。<!-—private end-—>
APIの主要な機能を以下に示します。
- 入力と出力の柔軟なオプション:
- 同時実行制御レベルオプションによる予測サーバーオーバーロードに対する保護。
- 予測の説明の追加(しきい値を追加するオプション)。
- スコアリングされたデータとソースデータを関連付けるパススルー列のサポート。
- 出力の予測警告の追加。
- APIを介して1GB以上のファイルで予測を作成する機能。
制限¶
項目 | マネージドAIクラウド | オンプレミスまたはプライベート/ハイブリッドクラウド |
---|---|---|
ジョブのランタイム制限 | 4時間 | 無制限 |
ローカルファイルの入力サイズ | 10GB | 無制限 |
ローカルファイルの書き込みサイズ | 無制限 | 無制限 |
S3入力サイズ | 無制限 | 無制限 |
S3書き込みサイズ | 100GB | 100GB(設定可能) |
Azure入力サイズ | 4.75TB | 4.75TB |
Azure書き込みサイズ | 195GB | 195GB |
GCP入力サイズ | 5TB | 5TB |
GCP書き込みサイズ | 5TB | 5TB |
JDBC入力サイズ | 無制限 | 無制限 |
JDBC出力サイズ | 無制限 | 無制限 |
同時実行ジョブ | 予測インスタンスあたり1つ | インストールあたり1つ |
保存されたデータの保持時間 ローカルファイルアダプターの場合 |
48時間 | 48時間(設定可能) |
同時実行ジョブ¶
予測サーバーでの過負荷を防止するために、DataRobotでは、予測インスタンスあたり1つのジョブだけが実行されます。追加のジョブはキューに入れられ、前のジョブが完了するとすぐに開始されます。
データパイプライン¶
バッチ予測ジョブは、次で構成されるデータパイプラインです。
データ入力 > 同時実行スコアリング > データ出力
作成時に、ジョブのintakeSettings
およびoutputSettings
によってパイプラインのデータ入力およびデータ出力の部分が定義されます。入力および出力オプションの任意の組み合わせを設定できます。どちらの場合でも、デフォルトはローカルファイルの入力および出力なので、スコアリングするデータと共に個別のPUT
リクエストを発行して、スコアリングされたデータをダウンロードする必要があります。
バッチ予測用にサポートされるデータソース¶
次の表は、バッチ予測に対するデータソースのサポートを示しています。
名前 | ドライバーのバージョン | 入力サポート | 出力サポート | 検定済みのDataRobotバージョン |
---|---|---|---|---|
AWS Athena 2.0 | 2.0.5 | はい | いいえ | 7.3 |
Google BigQuery | 1.2.4 | はい | はい | 7.3 |
InterSystems | 3.2.0 | はい | いいえ | 7.3 |
KDB+ | - | はい | はい | 7.3 |
Microsoft SQL Server | 7.4.1 | はい | はい | 6.0 |
MySQL | 5.1.44 | はい | はい | 6.0 |
Oracle | 11.2.0 | はい | はい | 7.3 |
PostgreSQL | 42.2.20 | はい | はい | 6.0 |
Presto | 0.263.1 | はい | いいえ | 7.3 |
Redshift | 1.2.10.1009 | はい | はい | 6.0 |
SAP HANA | 2.4.70 | はい | いいえ | 7.3 |
Snowflake | 3.12.0 | はい | はい | 6.2 |
Synapse | 8.4.1 | はい | はい | 7.3 |
Teradata | 17.10.00.23 | はい | はい | 7.3 |
TreasureData | 0.5.10 | はい | いいえ | 7.3 |
詳細については、次を参照してください:
同時スコアリング¶
スコアリングを行う際、提供したデータはブロックに分割され、デプロイで指定された予測インスタンスで同時にスコアリングされます。同時実行のレベルを制御するには、ジョブを作成するときにnumConcurrent
パラメーターを変更します。
ジョブの状態¶
バッチ予測を行う場合、各予測ジョブは4つの状態のいずれかになります。
INITIALIZING
: ジョブが正常に作成され、かつ次のいずれかの場合:- プッシュするCSVデータを待機中(ローカルファイル入力の場合)。
- 予測サーバー上でスロット処理を待機中。
RUNNING
: 予測サーバーでデータセットのスコアリングが開始された。ABORTED
: 次のいずれかの理由でジョブが中断された。- 無効な設定があった。
- DataRobotで20%または100MBの無効なスコアリングデータが発生し、その結果として予測エラーとなりました。
COMPLETED
: データセットがスコアリングされ、かつ:- スコアリング済みデータをダウンロードできる(ローカルファイル出力の場合)。
- または、データが出力先に書き込まれている。
資格情報を安全に保存する¶
スコアリングの一部のソースまたはターゲットは、DataRobotがユーザーに代わって認証することをリクエストしています(たとえば、データベースがログイン時にユーザー名とパスワードで認証することをリクエストする場合)。これらの資格情報が正しく保存されるようにするには、データ資格情報を有効にしておく必要があります。
DataRobotでは、以下の認証情報タイプおよびプロパティーが使用されます。
アダプター | 認証情報タイプ | プロパティ |
---|---|---|
S3入力/出力 | S3 | awsAccessKeyId awsSecretAccessKey awsSessionToken(オプション) |
JDBC 入力/出力 | 基本 | ユーザー名 パスワード |
保存された認証情報を使用するには、各アダプターの以下の説明にあるようにintakeSettings
またはoutputSettings
のいずれかで関連付けられたcredentialId
をパスする必要があります。
CSV形式¶
CSVファイルの読み取りまたは書き込みを処理する入出力オプションの場合は、に以下を指定することでカスタム形式を使用できますcsvSettings
。
パラメーター | 例 | 説明 |
---|---|---|
delimiter |
, |
オプション。使用する区切り文字。デフォルト: , (コンマ)。TABを区切り文字として指定するには、文字列を使用しますtab 。 |
quotechar |
" |
オプション。区切り文字を含むフィールドの引用に使用する文字。デフォルト: " 。 |
encoding |
utf-8 |
オプション。CSVファイルのエンコーディング。例(ただし、これらに限定されません): shift_jis 、latin_1 または mskanji 。デフォルト: utf-8 。Pythonでサポートされる任意のエンコーディングを使用できます。 |
同じ形式が入力および出力の両方に使用されます。完全な例を参照してください。
モデル監視¶
バッチ予測APIはDataRobotのモデル監視機能とうまく統合します。
- デプロイのデータドリフト追跡を有効にすると、バッチ予測APIで実行されるすべての予測が追跡されます。
- デプロイのターゲットドリフト追跡を有効にすると、出力には実績報告に使用する目的の関連IDが含まれます。
デプロイに対して本番以外のデータセットを実行する必要がある場合は、以下のパラメーターを指定して単一ジョブのドリフト追跡をオフにできます。
パラメーター | 例 | 説明 |
---|---|---|
skipDriftTracking |
true |
オプション。このジョブのデータとターゲットドリフト追跡をスキップします。デフォルト: false 。 |
デフォルト予測インスタンスの上書き¶
通常の状況下では、スコアリングに使用される予測サーバーがモデルがデプロイされた先のデフォルト予測サーバーとなります。ただし、上書きはできません。複数の予測サーバーへのアクセス権がある場合は、predictionInstance
オプションの以下のプロパティを使用してデフォルト動作を上書きできます。
パラメーター | 例 | 説明 |
---|---|---|
hostName |
192.0.2.4 |
モデルがデプロイされた先の予測サーバーから、デフォルトホスト名の代わりに使用するホスト名が設定されます。 |
sslEnabled |
false |
オプション。SSL (HTTPS)を使用して予測サーバーにアクセスします。デフォルト: true 。 |
apiKey |
NWU...IBn2w |
オプション。ジョブ作成者のキーとは異なるAPIキーを使用して、新規予測サーバーに対して認証します。 |
datarobotKey |
154a8abb-cbde-4e73-ab3b-a46c389c337b |
オプション。マネージドAIクラウド環境で実行中の場合は、予測サーバーに対して組織ごとのDataRobotキーを指定します。 デプロイ > 予測 > 予測APIタブ上で、またはDataRobot担当者に連絡することにより、キーを見つけます。 |
以下は完全な例です。
job_details = {
'deploymentId': deployment_id,
'intakeSettings': {'type': 'localFile'},
'outputSettings': {'type': 'localFile'},
'predictionInstance': {
'hostName': '192.0.2.4',
'sslEnabled': False,
'apiKey': 'NWUQ9w21UhGgerBtOC4ahN0aqjbjZ0NMhL1e5cSt4ZHIBn2w',
'datarobotKey': '154a8abb-cbde-4e73-ab3b-a46c389c337b',
},
}
更新モデルと一致したスコアリング¶
ジョブがキューに入った後に新規モデルをデプロイすると、DataRobotはジョブ作成時にデプロイされたモデルをジョブ全体に対して引き続き使用します。すべての行が同じモデルでスコアリングされます。
APIリファレンス¶
パブリックAPI¶
バッチ予測APIはDataRobot パブリックAPIの一部で、DataRobotの右上にあるクエスチョンマークをクリックしてAPI ドキュメントを選択することによりアクセスできます。
Python APIクライアント¶
Python パブリックAPI Clientを使用して、バッチ予測APIと連携することができます。