Skip to content

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

スプーラー設定

MLOpsライブラリはスプーラーを介してエージェントと通信します。そのため、エージェントライブラリスプーラーの設定が一致していることが重要です。

以下のスプーラーは設定用に使用できます。

これらのスプーラーの設定の詳細については、スプーラー設定ドキュメントを参照してください。

エージェント設定

mlops.agent.conf.yamlで別のサービスとしてエージェントを実行する場合は、channelConfigsセクションのコメントを解除し、入力して、スプーラー設定を指定します。

ファイルシステムスプーラーの場合、エージェントは実行されるMLOpsライブラリによって設定されます。

MLOpsライブラリ設定

MLOpsライブラリは、プログラムで設定するか、環境変数を使用して設定できます。スプーラーを設定するにはプログラム的に設定するには、MLOpsinit呼び出し時にスプーラーを指定します。例えば、ファイルシステムスプーラーを設定するとしますPythonライブラリを使用して設定する場合:

    mlops = MLOps().set_filesystem_spooler(your_spooler_directory).init()

他のスプーラータイプに対して同等のインターフェイスが存在します。

詳細については、MLOpsAPIのドキュメントを参照してください。<!-—private end-—>

環境変数を使用してMLOpsライブラリとエージェントを設定するには、一般設定およびスプーラー固有設定のセクションを参照してください。

一般的な設定

スプーラ設定に使用する環境変数は以下の通りです。スプーラー固有設定セクションも参照してください。

変数 説明
MLOPS_DEPLOYMENT_ID MLOpsライブラリのレポート先であるデプロイIDを設定します。
MLOPS_MODEL_ID MLOpsライブラリのレポート対象であるモデルIDを設定します。
MLOPS_SPOOLER_TYPE MLOpsライブラリがエージェントとの通信に使用するスプーラーのタイプを設定します。有効なオプションは、FILESYSTEM、SQS、RABBITMQ、KAFKAおよびPUBSUBです。値NONEを使用すると、MLOpsライブラリのレポートは無効になります。値STDOUTを使用すると、MLOpsライブラリは、レポートした指標をエージェントに転送するのではなく、stdoutに出力します。
高度な設定
MLOPS_SPOOLER_DEQUEUE_ACK_RECORDS 処理が完了するまで、MLOPsエージェントがレコードをデキューしないことを確認します。trueこのオプションを設定して、接続エラーによってレコードが削除されないようにします。このオプションを有効化することをお勧めします。デキュー操作はチャネルに対して次のように動作します。
  • SQS:メッセージが削除されました。
  • RabbitMQとPubSub:メッセージを完了として認識します。
  • Kafkaとファイルシステム:オフセットを移動します。
MLOPS_ASYNC_REPORTING MLOpsライブラリに、指標を非同期にスプーラーにレポートさせます。
MLOPS_FEATURE_DATA_ROWS_IN_ONE_MESSAGE スプーラーへの単一のメッセージに含める必要のある特徴量の行数。

スプーラー固有設定

次のセクションには、サポートされている各スプーラー固有の設定情報と環境変数が記載されています。

ファイルシステム

ファイルシステムスプーラーを設定する場合は、次の環境変数を使用します。MLOpsライブラリ用のファイルシステムスプーラーをプログラムに従って設定することもできます。

変数 説明
MLOPS_FILESYSTEM_DIRECTORY ファイルシステムスプーラータイプを使用する場合、このディレクトリを使用して指標を保存します。

SQS

AmazonのSQSをスプーラーとして使用する場合、環境変数AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY、およびAWS_REGIONまたはAWS_DEFAULT_REGIONを設定する必要があります。これらの資格情報はAWSのソフトウェアパッケージのみで使用されます。DataRobotではアクセスできません。

SQSスプーラーを設定する環境変数は以下の通りです。

変数 説明
MLOPS_SQS_QUEUE_URL SQSスプーラータイプを使用する場合、このURLをスプーラーとして使用します。SQSを使用する場合、スプーラー名またはURLのいずれかを指定する必要があります。
MLOPS_SQS_QUEUE_NAME SQSスプーラータイプを使用する場合、このキュー名をスプーラーとして使用します。SQSを使用する場合、スプーラー名またはURLのいずれかを指定する必要があります。

RabbitMQ

RabbitMQスプーラーを設定する環境変数は以下の通りです。

変数 説明
MLOPS_RABBITMQ_QUEUE_URL RABBITMQスプーラータイプを使用する場合、このURLをスプーラーに使用します。
MLOPS_RABBITMQ_QUEUE_NAME RABBITMQスプーラータイプを使用する場合、このキュー名を使用します。
MLOPS_RABBITMQ_SSL_CA_CERTIFICATE_PATH CA証明書ファイル(.pemファイル)へのパス。
MLOPS_RABBITMQ_SSL_CERTIFICATE_PATH クライアント証明書(.pemファイル)へのパス。
MLOPS_RABBITMQ_SSL_KEYFILE_PATH クライアントキー(.pemファイル)へのパス。
MLOPS_RABBITMQ_SSL_TLS_VERSION クライアントに使用するTLSバージョン。TLSバージョンはサーバーバージョンと一致する必要があります。

備考

RabbitMQ設定では、パスワードなしでRSA形式のキーが必要です。以下の通り、PKCS8からRSAにキーを変換することができます。

openssl rsa -in mykey_pkcs8_format.pem -text > mykey_rsa_format.pem

キーを生成するには、RabbitMQ TLSサポートを参照してください。

PubSub

PubSubを使用する場合、適切な資格情報を指定する必要があります。環境変数GOOGLE_APPLICATION_CREDENTIALSは、適切に設定する必要があります。これらの資格情報はAWSのソフトウェアパッケージのみで使用されます。DataRobotではアクセスできません。

PubSubスプーラーの設定用の環境変数は以下の通りです。

変数 説明
MLOPS_PUBSUB_PROJECT_ID PUBSUBスプーラータイプを使用する場合、このプロジェクトIDを使用します。これはプロジェクトIDのフルパスである必要があります。
MLOPS_PUBSUB_TOPIC_NAME PUBSUBスプーラータイプを使用する場合、このトピック名を使用します。これにはプロジェクトIDを含めないでください。

Kafka

Kafkaスプーラーを設定するための環境変数は以下の通りです。

変数 説明
MLOPS_KAFKA_TOPIC_NAME 生成または使用する特定のKafkaトピックの名称。詳細については、Kafka用語を参照してください。
MLOPS_KAFKA_BOOTSTRAP_SERVERS エージェントが接続するサーバーのリスト。bootstrap.serversアップストリームで使用される設定と同じ構文を使用します。
MLOPS_KAFKA_CONSUMER_POLL_TIMEOUT_MS 処理する前にメッセージを使用し、そのメッセージをDataRobotに送信するまでの待機時間(デフォルトで3000ms)。
MLOPS_KAFKA_MESSAGE_BYTE_SIZE_LIMIT チャネルにイベントを生成するときの最大のチャンクのサイズ(デフォルトで1048588バイト)。
MLOPS_KAFKA_CONFIG_LOCATION Kafkaのプロデューサーまたはコンシューマーがサポートする追加の設定オプションを指定するために使用されるオプションの設定ファイルへのファイルシステムパス。ファイルはINI形式である必要があります。パラメーターは、すべて、Java、Python(default path is ~/.datarobot-mlops/kafka.conf)のうち1つのセクションの中にある必要があります。
MLOPS_KAFKA_AUTO_RELEASE_OFFSET トピックに再接続する際、コンシューマーがどのように動作するかを決定します。この値を変更すると、重複するイベントがDataRobot MLOpsに送信される可能性があります。値のリストについては、Kafkaのドキュメントを参照してください。
MLOPS_KAFKA_MAX_FLUSH_MS チャネル(デフォルトで1048588 バイト)にイベントを生成する際の最大のチャンクのサイズ。詳細については、Kafkaのドキュメントを参照してください。
MLOPS_KAFKA_CONSUMER_GROUP_ID このコンシューマーが属するコンシューマーグループを識別する一意の文字列。既定値:tracking-agent詳細については、Kafkaのドキュメントを参照してください。
MLOPS_KAFKA_CONSUMER_MAX_NUM_MESSAGES メッセージを処理し、結果をDataRobot MLOpsに送信する前に、一度で使用するメッセージの最大数。デフォルトで500。詳細については、Kafkaのドキュメントを参照してください。

Azure Event Hubs

DataRobotでは、既存のKafkaスプーラータイプを活用することによって、Microsoft Azure Event Hubsを追跡エージェントスプーラーとして使用できます。この設定については、Apache KafkaアプリケーションのAzure Event Hubsの使用を参照してください。

備考

Azureは、Event HubsのKafkaプロトコルをスタンダードおよびプレミアム価格帯でのみサポートします。ベーシック価格帯は、Kafka APIサポートがないので、監視エージェント向けのスプーラーとしてサポートされていません。詳細については、Azure Event Hubsのクォータと制限を参照してください。

スプーラーとしてAzure Event Hubsを使用するには、以下の方法でMLOpsエージェントとライブラリーの認証を設定する必要があります。

Event HubsのSASベースの認証

MLOpsエージェントとライブラリでEvent Hubs のSASベースの認証を使用するには、kafka.conf設定ファイルを作成します。

SASベースの認証用のkafka.confファイルのサンプル

[all]
;; Configuration generic to Java and Python clients
bootstrap.servers=XXXX.servicebus.windows.net:9093

;; Recommended settings by Azure
request.timeout.ms=60000
session.timeout.ms=30000

;; All connections to Azure must be done over TLS
security.protocol=SASL_SSL

[python]
;; The simplest way to connect is via SAS tokens
sasl.mechanism=PLAIN
sasl.username=$ConnectionString
sasl.password=Endpoint=sb://XXXX.servicebus.windows.net/;SharedAccessKeyName=XXX;SharedAccessKey=XXXX

[java]
;; This section is used by both the agent and the Java-based MLOps library.
sasl.mechanism=PLAIN
sasl.jaas.config="org.apache.kafka.common.security.plain.PlainLoginModule required username=\"$ConnectionString\" password=\"Endpoint=sb://XXXX.servicebus.windows.net/;SharedAccessKeyName=XXXX;SharedAccessKey=XXXX\";"

Kafkaスプーラータイプが選択されると、MLOpsのSDKとエージェントは~/.datarobot-mlopsフォルダー内のkafka.confファイルをデフォルトで検索します。別のロケーションを指すには、使用するファイルのパスにMLOPS_KAFKA_CONFIG_LOCATION環境変数を設定します。

Event Hubs向けのAzure Active Directory OAuth 2.0

DataRobotは、Event Hubsの認証用にAzure Active Directory OAuth 2.0もサポートしています。新しいアプリケーション登録を作成して、それをEvent Hubs Namespace(すなわち、Azure Event Hubsのデータオーナー)の必要な権限に割り当てる必要があります。詳細については、「Event Hubsのリソースにアクセスするには、Azure ADでアプリケーションの認証をする」を参照してください。この方法を使用すると、kafka.confファイルは以下のように表示されます。

Azure AD OAuth 2.0用のkafka.confファイルのサンプル

[all]
;; Configuration generic to Java and Python clients
bootstrap.servers=XXXX.servicebus.windows.net:9093

;; Recommended settings by Azure
request.timeout.ms=60000
session.timeout.ms=30000

;; All connections to Azure must be done over TLS
security.protocol=SASL_SSL

[python]
;; If you've registered an Application in AAD with a client secret and assigned a
;; role that has permission to access Event Hub, you can use the more secure OAuth
;; connection format.
sasl.mechanism=OAUTHBEARER
sasl.oauthbearer.config=aad.tenant.id=XXXX-XXXX-XXXX-XXXX-XXXX,aad.client.id=XXXX-XXXX-XXXX-XXXX-XXXX,aad.client.secret=XXXX

[java]
;; This is the Java version of the connection settings seen in the [python] section above.
sasl.mechanism=OAUTHBEARER
sasl.jaas.config="org.apache.kafka.common.security.oauthbearer.OAuthBearerLoginModule required aad.tenant.id=\"XXXX\" aad.client.id=\"XXXX\" aad.client.secret=\"XXXX\";"
sasl.login.callback.handler.class=com.datarobot.mlops.common.spooler.kafka.ActiveDirectoryAuthenticateCallbackHandler

更新しました March 24, 2022
Back to top