注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
以下のドキュメントでは、既存のモデルファイルからモデルを Foundry に統合する例を紹介します。手順を説明したガイドについては、事前学習済みファイルからモデルを公開する方法に関するドキュメントを参照してください。
次の例では、UC Irvine が公開した Iris 分類データセット ↗ を使用してローカルで学習したモデルを使用します。このデータセットには、sepal_length、sepal_width、petal_length、petal_width の4個の特徴量があり、アヤメの花の種を予測するモデルの構築に使用できます。
この例では、scikit-learn ライブラリ ↗ を使用し、K 近傍法の分類器 ↗としてローカルでモデルを学習したことを前提とします。また、Python 3.8.0 と scikit-learn 1.3.2 を使用してモデルを学習したことも前提とします。
学習後、以下に定義するとおり、モデルを pickle ファイル ↗として保存します。
Copied!1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18from 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) knn = KNeighborsClassifier(n_neighbors = 5) knn.fit(X_train, y_train) with open("iris_model.pkl", "wb") as f: pickle.dump(knn, f)
以下の画像に示すように、scikit-learn モデルファイルを非構造化データセットとして Palantir にアップロードします。

Code Repositories アプリケーションで、モデル訓練言語テンプレートを使用して新しいモデル統合リポジトリを作成し、scikit-learn 1.3.2 への依存関係を追加します。モデルファイルを読み込み、モデルを公開するためのロジックを定義します。
モデルアダプターのロジックが実行されると、プラットフォーム内でモデルが公開されます。
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 46from transforms.api import transform, Input import palantir_models as pm from palantir_models.transforms import ModelOutput from palantir_models.serializers import DillSerializer import pickle @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 = pickle.load(f) model_adapter = IrisModelAdapter(model, "target") model_output.publish( model_adapter=model_adapter ) class IrisModelAdapter(pm.ModelAdapter): @pm.auto_serialize( model=DillSerializer(), prediction_column_name=DillSerializer() ) def __init__(self, model, prediction_column_name): self.model = model self.prediction_column_name = prediction_column_name @classmethod def api(cls): 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
モデルが公開されると、プラットフォーム内で推論に利用できるようになります。この例では、新しいモデリング目標を作成し、モデルを送信します。









ライブデプロイの作成とクエリの詳細については、ライブデプロイのドキュメントを参照してください。