注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
モデルアセットは現在、SparkMLライブラリをサポートしていません。PyTorch、TensorFlow、XGBoost、LightGBM、またはscikit-learnのようなシングルノードの機械学習フレームワークへの切り替えをお勧めします。
モデルは、Code Workspaces内のJupyter®ノートブックでトレーニングできます。モデルをトレーニングするには、以下の手順を完了してください。
Jupyter®コードワークスペースでのモデルトレーニングに関する追加の指示は、教師ありモデルトレーニングチュートリアルを参照してください。
ワークスペースを確立した後、新しいノートブックを作成してデータをインポートし、モデルトレーニングコードを書き始めることができます。
Code Workspacesは、Code Repositoriesなどの他のFoundryコード作成環境で利用可能なパッケージへのアクセスを提供します。新しいパッケージを追加するには、ワークスペースの左サイドバーにあるPackagesタブを開き、必要なパッケージを検索して選択し、Latestまたは他の利用可能なバージョンをクリックして、対応するインストールコマンドを実行するためのターミナルを開きます。
Code Workspacesアプリケーションは、ユーザーがトレーニングデータとして利用するために既存のFoundryデータセットをインポートすることを可能にします。Code Workspacesで使用されるトレーニングデータには、リソース識別子として人間が読めるエイリアスが必要です。
pandas DataFrame
などを選択できます。生成されたコードスニペットをノートブックにコピーするには、コードスニペットの右上にあるクリップボードアイコンを選択し、Doneを選択します。以下は、Code Workspacesが生成したコードスニペットの例です。Copied!1 2 3 4
from foundry.transforms import Dataset # データセットを取得し、Pandas形式のテーブルとして読み込む training_data = Dataset.get("my-alias").read_table(format="pandas")
Launcher
パネルから Python [user-default] を選択して Notebook を起動し、最初のセルにコードスニペットを貼り付けます。Code Workspaces で利用可能なオープンソースツールを使用すると、回帰や分類など、さまざまな分析ユースケースに対してモデルをトレーニングできます。以下は、scikit-learn
を使用して世帯の中央値収入を予測するサンプルの線形回帰モデルです。
scikit-learn
をインストールします。Conda
または PyPi
マネージャーを選択し、scikit-learn
を検索します。maestro env conda install
または maestro env pip install
コマンドを使用して、一度に複数のパッケージをユーザーの管理された環境にインストールすることもできます。サイドバーを使用したパッケージのインストール:
ターミナルからのパッケージのインストール:
Code Workspaces でモデルを作成し実行した後、他のアプリケーションと統合するために Foundry に公開できます。以下はモデルトレーニングコードの例です。
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
from sklearn.impute import SimpleImputer from sklearn.linear_model import LinearRegression from sklearn.pipeline import Pipeline from sklearn.preprocessing import StandardScaler # 数値特徴量を指定 numeric_features = ['median_income', 'housing_median_age', 'total_rooms'] # 数値データの前処理パイプラインを構築 numeric_transformer = Pipeline( steps=[ # 欠損値を中央値で補完 ("imputer", SimpleImputer(strategy="median")), # 標準化を行う ("scaler", StandardScaler()) ] ) # モデルのパイプラインを構築 model = Pipeline( steps=[ # 前処理を適用 ("preprocessor", numeric_transformer), # 線形回帰モデルを適用 ("classifier", LinearRegression()) ] ) # 訓練データから特徴量とターゲットを取得 X_train = training_dataframe[numeric_features] y_train = training_dataframe['median_house_value'] # モデルを訓練データにフィット model.fit(X_train, y_train)
モデルを Code Workspaces の外で利用できるようにするには、ワークスペースに新しいモデル出力を追加する必要があります。Code Workspaces は、新しいモデル出力を作成した後、既存のワークスペースに新しい .py
ファイルを自動的に作成して保存します。このファイルを使用してモデル adapter を実装できます。モデル adapter は、Foundry 内のすべてのモデルに標準的なインターフェースを提供し、プラットフォームの本番アプリケーションがモデル作成直後に消費できるようにします。Foundry のインフラストラクチャは、モデルをロードし、その Python 依存関係を構成し、API を公開し、モデルインターフェースを有効にします。
モデルに名前を付けて保存した後、ワークスペースの左パネルで Publish a new model を求められます。ステップ 1: palantir_models
をインストールする を完了するために、コードスニペットをクリップボードにコピーし、元の .ipynb
ノートブックファイルで実行します。
palantir_models
を正常にインストールした後、ステップ 2: モデル adapter を開発する でモデル adapter を作成して開発します。モデル adapter は次のメソッドを実装する必要があります:
save
および load
: モデルを再利用するためには、モデルをどのように保存しロードするかを定義する必要があります。Palantir はシリアル化(保存)のデフォルトメソッドを提供しており、より複雑な場合にはカスタムシリアル化ロジックを実装できます。api
: モデルの API を定義し、Foundry にモデルが必要とする入力データのタイプを伝えます。predict
: Foundry がモデルにデータを提供するために呼び出します。ここで、入力データをモデルに渡して推論(予測)を生成します。詳細については、モデル adapter API リファレンスを参照してください。
以下のコードサンプルは、scikit-learn
を使用して線形回帰モデルの adapter を開発するために上記の関数を実装しています。
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
import palantir_models as pm from palantir_models_serializers import DillSerializer class LinearRegressionModelAdapter(pm.ModelAdapter): # モデルを自動的にシリアライズするためのデコレーターを使用 @pm.auto_serialize( model=DillSerializer() # DillSerializerを使用してモデルをシリアライズ ) def __init__(self, model): self.model = model # モデルを初期化 @classmethod def api(cls): # 入力データフレームの列定義 columns = [ ('median_income', float), # 中央所得 ('housing_median_age', float), # 住宅の中央値の年齢 ('total_rooms', float), # 総部屋数 ] # 入力と出力データフレームの仕様を定義 return {"df_in": pm.Pandas(columns)}, \ {"df_out": pm.Pandas(columns + [('prediction', float)])} # 予測結果を含む出力 def predict(self, df_in): # モデルを使用して予測を行い、結果をデータフレームに追加 df_in['prediction'] = self.model.predict( df_in[['median_income', 'housing_median_age', 'total_rooms']] ) return df_in # 予測結果を含むデータフレームを返す
モデル adapter ドキュメント を参照してさらに詳しいガイダンスを確認してください。
モデルを Foundry に公開するには、ステップ 3: モデルを公開するの下の左サイドバーにある公開したいモデルのスニペットをコピーし、ノートブックに貼り付けてセルを実行します。以下は、上記の LinearRegressionModelAdapter
を使用して線形回帰モデルを公開するためのスニペット例です。
Copied!1 2 3 4 5 6 7 8 9 10 11
from palantir_models.code_workspaces import ModelOutput # モデルアダプタはlinear_regression_model_adapter.pyで定義されています from linear_regression_model_adapter import LinearRegressionModelAdapter # sklearn_modelは別のセルで訓練されたモデルです linear_regression_model_adapter = LinearRegressionModelAdapter(sklearn_model) # "linear_regression_model"はこの例のモデルのエイリアスです model_output = ModelOutput("linear_regression_model") model_output.publish(linear_regression_model_adapter)
スニペットはそのまま動作するはずですが、トレーニングしたモデルをadapterの初期化に適切に渡す必要があります。コードが準備できたら、セルを実行してモデルをFoundryに公開できます。
モデルはモデリングの目的への提出を通じて利用できます。モデルは以下の目的でモデリングの目的に提出できます:
モデルは、モデリングの目的を超えた代替のモデルホスティングシステムを表すモデルデプロイメントを使用して利用することもできます。
Jupyter®およびJupyterLab®は、NumFOCUSの商標または登録商標です。
参照されたすべてのサードパーティの商標は、それぞれの所有者の財産です。提携や承認は示唆されていません。