AWS Lambdaでのスコアリングコードの使用¶
このトピックでは、DataRobotのスコアリングコード機能を使用してモデルのスコアリングコードをダウンロードし、AWS Lambdaを使用してデプロイします。
DataRobotでは、対応しているモデルであれば、コード生成が自動的に実行されます。コードを利用できるかどうかは、リーダーボード上のアイコンによって示されます。
このオプションを使用すると、予測モデルの検定済みJavaスコアリングコードを近似なしでダウンロードできます。コードは任意の環境に容易にデプロイすることができ、DataRobotアプリケーションに依存しません。
AWS Lambdaにデプロイする理由¶
DataRobotでは、プラットフォームに完全に統合されたスケーラブルな予測サーバーを提供しますが、AWS Lambda上でのデプロイを行う理由がいくつかあります。
-
会社の方針またはガバナンス上の判断。
-
サーバーレスアーキテクチャ。
-
コストの削減。
-
DataRobotモデルの上のカスタム機能。
-
DataRobot APIと通信できないシステムにモデルを統合する機能。 この場合、AWS Lambdaを完全にオフラインシステムの主なスコアリング手段として使用するか、DataRobot APIを使用するシステムのバックエンドとして使用することができます。
スコアリングコードをダウンロードする¶
DataRobotモデルをAWS Lambdaにデプロイするための最初の手順は、スコアリングコードJARファイルをリーダーボードから、またはデプロイからダウンロードすることです。
次に、独自のLambdaスコアリングプロジェクトを作成します。
pom.xml
で、ダウンロードしたJARファイルへのパスを変更します。
プロジェクトのコンパイル¶
スコアリングコードをダウンロードしてLambdaプロジェクトを作成したら、プロジェクトをコンパイルして設定を完了します。
まず、CodeGenLambdaExample.java
でこの行を見つけ、モデルIDを代入します。
public static String modelId = "<Put exported Scoring Code model\_id here>";
分類モデルがある場合は、IClassificationPredictorインターフェイスを使用する必要があります。
public static IClassificationPredictor model;
連続値モデルの場合は、IReggressionPredictorインターフェイスを使用します。
public static IRegressionPredictor model;
mavenコマンドmvn package
を実行してコードをコンパイルできるようになりました。 パッケージ化されたJARファイルは、プロジェクトのターゲットフォルダーに表示されます。
AWS Lambdaにデプロイする¶
AWS Lambdaにデプロイするには、次の手順を使用します。
-
AWSメニューから関数の作成を選択します。
-
Java 11またはJava 8を選択して、Lambda関数を作成します。
-
関数の名前を入力します。
-
以下に示すように、Lambdaのアクセス許可を設定します。
-
コンパイルしたJARファイルをLambdaにアップロードします。 以下のアップロードオプションを表示します。
以下のJARファイルの場所を確認できます。
-
Javaパッケージ名のLambdaハンドラーを選択します。
設定が完了しました。 DataRobotでは、関数をテストして、デプロイが意図したとおりに機能していることを確認することをお勧めします。
Lambda関数のテスト¶
Lambda関数をテストするには:
-
TESTイベント設定ページに移動します。
-
特徴量を含むJSONをテストイベントとして追加します。
-
テストボタンをクリックしてください。
テストが完了したら、AWS API Gatewayまたは他のサービスと連携して、データがLambda関数に送信され、結果が返されるように設定することができます。