Skip to content

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

Snowflake UDFスコアリングコードの生成

スコアリングコードによって、どこでもDataRobotモデルの予測を簡単に実行することができますが、その際、モデルをJava JARファイルにエクスポートする必要があります。 Snowflakeユーザー定義された関数(UDF)を使用すると、Snowflakeで任意のJavaコードを実行できます。 追加のコードを書き込むことなく、SnowflakeでのUDFとしてスコアリングを使うにあたり、DataRobotがAPIをスコアリングコードに与えます。

Snowflake UDFを使用してスコアリングコードをダウンロードして実行するには、以下の必要条件を満たする必要があります。

  • デプロイ用のスコアリングコードをサポートするDataRobotモデルを準備し、そのモデルパッケージを作成します。

  • モデルで使用するSnowflake予測環境を登録します。

スコアリングコードにアクセスする

モデルパッケージおよび予測環境をDataRobotで設定した場合、モデルをデプロイしてSnowflakeで使用するスコアリングコードにアクセスできます。

  1. モデルレジストリに移動して、モデルパッケージを選択します。 デプロイタブで、新規デプロイを作成を選択します。

  2. フィールドをすべて入力し、必要に応じてデプロイを設定します。 Snowflake UDFスコアリングコードを生成するには、推論ヘッダーの下にあるSnowflake予測環境を指定します。

  3. 設定が完了したら、画面上部にあるデプロイを作成を選択します。

  4. モデルをデプロイした後、インベントリからデプロイにアクセスし、予測 > ポータブル予測のタブに移動します。 ここで、DataRobotはモデルのスコアリングコードをホストします。

  5. (オプション)予測の説明を含めるをオンにして、予測の説明を予測結果に含めてから、ダウンロードをクリックします。 スコアリングコードJARファイルは、ブラウザーのバーに表示されます。

  6. スコアリングコードのダウンロードが完了したら、インストールスクリプトをコピーし、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で実行することはできません。

  7. 資格情報とスクリプトの場所を指定して、SnowSQLでスクリプトを実行します。

    コピー&ペースト
    snowsql --accountname $ACCOUNT_NAME --username $USERNAME --filename $SCRIPT_PATH 
    
  8. 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; 
    
  9. データをスコアリングした後、設定タブで実測値をアップロードし、精度監視などの機能を有効にすることができます。

機能に関する注意事項

SnowflakeでのUDFとしてスコアリングコードを使用する際、以下のことを考慮してください。

  • KerasモデルはSnowflakeで実行できません。

  • 時系列のスコアリングコードはSnowflakeでサポートされていません。

  • Snowflakeスコアリングコード機能のリリース前に作成されたスコアリングコードJARは、Snowflakeで実行できません。

  • Snowflake UDFスコアリングコードの予測説明を取得するには、まずデプロイのポータブル予測タブで予測の説明を含めるをオンにします。 このタブには、予測の説明を取得するために使用できるコードスニペットも含まれています。 scoreWithExplanations()メソッドを使用して、返される説明の数をカスタマイズすることができます。 たとえば、次のように関数を設定します:scoreWithExplanations(Map<String, Object> row, Integer maxCodes, Double thresholdLow, Double thresholdHigh)


更新しました August 7, 2024