Snowflake UDFスコアリングコードの生成¶
スコアリングコードによって、どこでもDataRobotモデルの予測を簡単に実行することができますが、その際、モデルをJava JARファイルにエクスポートする必要があります。 Snowflakeユーザー定義された関数(UDF)を使用すると、Snowflakeで任意のJavaコードを実行できます。 追加のコードを書き込むことなく、SnowflakeでのUDFとしてスコアリングを使うにあたり、DataRobotがAPIをスコアリングコードに与えます。
Snowflake UDFを使用してスコアリングコードをダウンロードして実行するには、以下の必要条件を満たする必要があります。
-
デプロイ用のスコアリングコードをサポートするDataRobotモデルを準備し、そのモデルパッケージを作成します。
-
モデルで使用するSnowflake予測環境を登録します。
スコアリングコードにアクセスする¶
モデルパッケージおよび予測環境をDataRobotで設定した場合、モデルをデプロイしてSnowflakeで使用するスコアリングコードにアクセスできます。
-
モデルレジストリに移動して、モデルパッケージを選択します。 デプロイタブで、新規デプロイを作成を選択します。
-
フィールドをすべて入力し、必要に応じてデプロイを設定します。 Snowflake UDFスコアリングコードを生成するには、推論ヘッダーの下にあるSnowflake予測環境を指定します。
-
設定が完了したら、画面上部にあるデプロイを作成を選択します。
-
モデルをデプロイした後、インベントリからデプロイにアクセスし、予測 > ポータブル予測のタブに移動します。 ここで、DataRobotはモデルのスコアリングコードをホストします。
-
(オプション)予測の説明を含めるをオンにして、予測の説明を予測結果に含めてから、ダウンロードをクリックします。 スコアリングコードJARファイルは、ブラウザーのバーに表示されます。
-
スコアリングコードのダウンロードが完了したら、インストールスクリプトをコピーし、Snowflakeウェアハウス、データベース、スキーマ、およびスコアリングコードJARファイルへのパスで更新してから、スクリプトを実行します。
コピー&ペースト(連続値用)
-- Replace with the warehouse to use USE WAREHOUSE my_warehouse; -- Replace with the database to use USE DATABASE my_database; -- Replace with the schema to use CREATE SCHEMA IF NOT EXISTS scoring_code_udf_schema; USE SCHEMA scoring_code_udf_schema; -- Update this path to match the Scoring Code JAR location PUT 'file:///path/to/downloaded_scoring_code.jar' '@~/jars/' AUTO_COMPRESS=FALSE; -- Create the UDF CREATE OR REPLACE FUNCTION datarobot_udf(RowValue OBJECT) RETURNS FLOAT LANGUAGE JAVA IMPORTS=('@~/jars/downloaded_scoring_code.jar') HANDLER='com.datarobot.prediction.simple.RegressionPredictor.score';
コピー&ペースト(分類用)
-- Replace with the warehouse to use USE WAREHOUSE my_warehouse; -- Replace with the database to use USE DATABASE my_database; -- Replace with the schema to use CREATE SCHEMA IF NOT EXISTS scoring_code_udf_schema; USE SCHEMA scoring_code_udf_schema; -- Update this path to match the Scoring Code JAR location PUT 'file:///path/to/downloaded_scoring_code.jar' '@~/jars/' AUTO_COMPRESS=FALSE; -- Create the UDF CREATE OR REPLACE FUNCTION datarobot_udf(RowValue OBJECT) RETURNS OBJECT LANGUAGE JAVA IMPORTS=('@~/jars/downloaded_scoring_code.jar') HANDLER='com.datarobot.prediction.simple.ClassificationPredictor.score';
このスクリプトは、JARファイルをSnowflakeのステージにアップロードし、スコアリングコードで予測を行うためのUDFを作成します。
備考
これらのスクリプトを実行するには、次のステップ(7)で示されるSnowSQLコマンドを使用する必要があります。 これらのスクリプトをSnowflakeのUIで実行することはできません。
-
資格情報とスクリプトの場所を指定して、SnowSQLでスクリプトを実行します。
コピー&ペースト
snowsql --accountname $ACCOUNT_NAME --username $USERNAME --filename $SCRIPT_PATH
-
UDFが正常に作成され、Snowflakeを使用してデータをスコアリングできるようになりました。 SQLでサポートされている任意の方法でUDFを使用します。
コピー&ペースト
/* Scoring your data The Scoring Code UDF accepts rows of data as objects. The OBJECT_CONSTRUCT_KEEP_NULL method can be used to turn a table row into an object. */ -- Scoring without specifying columns. Data can contain nulls SELECT my_datarobot_model(OBJECT_CONSTRUCT_KEEP_NULL(*)) FROM source_table;
-
データをスコアリングした後、設定タブで実測値をアップロードし、精度監視などの機能を有効にすることができます。
機能に関する注意事項¶
SnowflakeでのUDFとしてスコアリングコードを使用する際、以下のことを考慮してください。
-
KerasモデルはSnowflakeで実行できません。
-
時系列のスコアリングコードはSnowflakeでサポートされていません。
-
Snowflakeスコアリングコード機能のリリース前に作成されたスコアリングコードJARは、Snowflakeで実行できません。
-
Snowflake UDFスコアリングコードの予測説明を取得するには、まずデプロイのポータブル予測タブで予測の説明を含めるをオンにします。 このタブには、予測の説明を取得するために使用できるコードスニペットも含まれています。
scoreWithExplanations()
メソッドを使用して、返される説明の数をカスタマイズすることができます。 たとえば、次のように関数を設定します:scoreWithExplanations(Map<String, Object> row, Integer maxCodes, Double thresholdLow, Double thresholdHigh)