ドキュメントの検索
karat

+

K

APIリファレンス ↗
モデル統合モデルアセットファイルとしてアップロードされたモデル例:scikit-learnモデルのアップロード
Feedback

注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。

例:scikit-learnモデルのアップロード

以下のドキュメンテーションでは、既存のモデルファイルからFoundryにモデルを統合する方法の例を提供しています。ステップバイステップのガイドについては、事前学習ファイルからモデルを公開する方法のドキュメンテーションを参照してください。

モデルファイルからモデルを作成する

以下の例では、UC Irvineが公開したIris分類データセットを使用してローカルで学習したモデルを使用しています。このデータセットには、sepal_lengthsepal_widthpetal_lengthpetal_widthの4つの特徴が含まれており、これを使用してアイリスの花の特定の種類を予測するモデルを作成することができます。

この例では、モデルはローカルでscikit-learnライブラリK-nearest neighbors classifierとして学習されたものと仮定しています。また、この例では、Python 3.8.0scikit-learn 1.3.2でモデルが学習されたと仮定しています。

学習後、モデルは以下で定義されるpickleファイルとして保存されます。

Copied!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.neighbors import KNeighborsClassifier import pickle # アイリスデータセットを読み込む iris = load_iris() X = iris.data # 特徴量 y = iris.target # ターゲット # データセットを学習データとテストデータに分割 X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.4, random_state=4) # k近傍法を用いた分類器を作成 knn = KNeighborsClassifier(n_neighbors = 5) # 分類器を学習データに適用 knn.fit(X_train, y_train) # 学習済みモデルをファイルに保存 with open("iris_model.pkl", "wb") as f: pickle.dump(knn, f)

1. モデルファイルを非構造化データセットにアップロードする

scikit-train モデルファイルは、下の画像に示すように、非構造化データセットとして Palantir にアップロードされます。

Palantir プラットフォームに pickle ファイルとして保存されたアイリス分類モデルデータセット。

2. モデルアダプターロジックを定義する Model Training テンプレートを作成する

Code Repositories アプリケーションで、新しい Model Integration リポジトリを Model Training 言語テンプレートで作成し、scikit-learn 1.3.2 に依存関係を追加します。モデルファイルを読み込んでモデルを公開するロジックを定義します。

3. モデルファイルをモデルとして公開する

モデルアダプターロジックが実行されると、モデルがプラットフォームに公開されます。

Copied!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 from transforms.api import transform, Input import palantir_models as pm from palantir_models.transforms import ModelOutput from palantir_models_serializers import DillSerializer import pickle import os # モデルの入出力を定義し、モデルを呼び出す関数 @transform( model_files=Input("<Your Input Path>"), # モデルの入力パス model_output=ModelOutput("<Your Output path>") # モデルの出力パス ) def compute(model_files, model_output): fs = model_files.filesystem() # ファイルシステムの操作 with fs.open("iris_model.pkl", "rb") as f: # モデルを読み込む model = pkl.load(f) model_adapter = IrisModelAdapter(model, "target") # モデルアダプターの生成 model_output.publish( # モデルアダプターを公開 model_adapter=model_adapter ) # Irisモデルのアダプタークラス class IrisModelAdapter(pm.ModelAdapter): # シリアライズを自動化するデコレーター @auto_serialize( model=DillSerializer(), # モデルのシリアライザー prediction_column_name=DillSerializer() # 予測列名のシリアライザー ) def __init__(self, model, prediction_column_name="target"): # 初期化メソッド self.model = model # モデル self.prediction_column_name = prediction_column_name # 予測列名 @classmethod # クラスメソッド def api(cls): # APIの定義 column_names = ["sepal_length", "sepal_width", "petal_length", "petal_width"] # 列名 columns =[(name, float) for name in column_names] # 列の型定義 inputs = {"df_in": pm.Pandas(columns=columns)} # 入力の定義 outputs = {"df_out": pm.Pandas(columns=columns+[("target", int)])} # 出力の定義 return inputs, outputs # 入出力を返す def predict(self, df_in): # 予測メソッド inference_data = df_in # 推論データ predictions = self.model.predict(inference_data.values) # 予測の実行 inference_data[self.prediction_column_name] = predictions # 予測結果を追加 return inference_data # データを返す

4. 公開されたモデルの使用

モデルが公開されると、プラットフォームで推論のために使用する準備が整います。この例では、新しいモデリング目標を作成し、モデルを送信します。

  1. プロジェクトフォルダーに移動し、目標を作成したい場所で新規 > Modeling Objective を選択して、新しいモデリング目標を作成します。これにより、Modeling Objectives アプリケーションが開きます。

Modeling Objectives アプリケーションの空の状態

  1. 次に、モデルを目標に送信します。Model Submissions > Submit a Model のセクションで、Add Model を選択して、以下のようなダイアログを開きます。

プラットフォームにモデルを追加する方法を選択できる Add Foundry model のポップアップ

  1. Submit model from Foundry を選択し、次に、プラットフォーム内の公開モデルの場所からモデルを読み込むダイアログが開きます。

モデルを選択してプラットフォームに送信するポップアップダイアログ

  1. モデルが送信されると、モデリング目標の概要ページに戻ります。Model submissions セクションには、送信に関する情報が表示されます。

最近のモデル送信が、モデリング目標の概要ページから表示できるようになりました

  1. Model submissions セクションから新しく送信されたモデルを選択し、モデルページを開きます。

モデリング目標内のアイリス分類モデルのモデル詳細ページ

  1. 右上の「新しいリリースを作成」を選択して、新しいウィンドウでリリースを作成します。

モデルの新しいリリースを作成するためのポップアップダイアログ

  1. リリースを作成した後、画面左上の名前を選択して、モデリング目標の概要ページに戻ります。Deployments までスクロールし、「デプロイメントの作成」を選択して、別のダイアログウィンドウを開きます。

新しいモデルデプロイメントの設定を行う Create a new deployment ページ

  1. セットアップフォームを完成させ、右下のCreate deployment を選択します。モデリング目標の概要に戻り、Deployments までスクロールして、新しくデプロイされたモデルを選択してテストします。

モデルデプロイメントのテスト詳細ページ

  1. ページ左上のクエリタブから、値を追加して出力を確認することで、モデルをテストします。

デプロイメントテストのクエリページ。入力値を追加し、結果を表示するセクションがあります

ライブデプロイメントの作成とクエリに関する詳細は、live deployment documentation で確認できます。