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

Jupyter® ノートブックでモデルを学習する

モデルアセットは現在、SparkML ライブラリをサポートしていません。PyTorch、TensorFlow、XGBoost、LightGBM、scikit-learn などの単一ノードの機械学習フレームワークに切り替えることを推奨します。

モデルは、Code Workspaces の Jupyter® ノートブックで学習できます。モデルを学習するには、次の手順を完了します。

  1. Jupyter® コードワークスペースを作成する
  2. データをインポートしてモデル学習コードを記述する
  3. モデル出力を追加してモデルアダプターを実装する
  4. モデルを Foundry に公開する
  5. モデルを利用する

教師ありモデル学習チュートリアルでは、Jupyter® コードワークスペースでのモデル学習についてさらに詳しく説明しています。

Jupyter® コードワークスペースを作成する

  1. モデル学習用の新しい Jupyter® コードワークスペースを作成するには、プロジェクトフォルダーに移動して + 新規 > Jupyter® Code Workspace を選択するか、Code Workspaces アプリケーションで + 新規コードワークスペースを選択します。
  2. Code Workspaces で、ワークスペースの種類として JupyterLab® を選択し、右下の続行を選択します。
  3. 学習するモデルに関連する名前をワークスペースに付けます。必要に応じて、Code Repository ステップでアドバンスドを選択し、ワークスペースのコンピューティングリソースやネットワークポリシーなどの追加設定を行えます。ノートブックに名前を付けたら、続行を選択します。
  4. 最後に、作成するを選択してワークスペースを作成し、起動します。

Code Workspaces で Jupyter® ノートブックを初期化する

データをインポートしてモデル学習コードを記述する

ワークスペースを設定した後、新しいノートブックを作成してデータをインポートし、モデル学習コードの記述を開始できます。

Code Workspaces では、Code Repositories など、Foundry のほかのコード開発環境で利用可能なパッケージにアクセスできます。新しいパッケージを追加するには、ワークスペースの左サイドバーにあるパッケージタブを開き、必要なパッケージを検索して選択します。次に、最新またはほかの利用可能なバージョンをクリックすると、ターミナルが開き、対応するインストールコマンドが実行されます。

ワークスペースにデータをインポートする

Code Workspaces アプリケーションでは、既存の Foundry データセットをインポートして学習データとして使用できます。Code Workspaces で使用する学習データには、リソース識別子として人が読みやすいエイリアスが必要です。

  1. データセットをインポートするには、左サイドバーの上部にあるデータタブを開き、データセットを追加 > 既存のデータセットを読み取るを選択します。
  2. ワークスペースにインポートするデータセットを選択し、データセットのエイリアスを入力します。次に、+ データセットを追加を選択してステップ 1を完了します。
  3. 続いて Code Workspaces がステップ 2でコードスニペットを生成します。このステップでは、pandas DataFrame などのデータセット形式を選択できます。生成されたコードスニペットをノートブックにコピーするには、コードスニペットの右上にあるクリップボードアイコンを選択し、完了を選択します。以下は、Code Workspaces が生成するコードスニペットの例です。
Copied!
1 2 3 from foundry.transforms import Dataset training_data = Dataset.get("my-alias").read_table(format="pandas")
  1. コードスニペットをクリップボードにコピーしたら、Python [user-default] を選択してランチャーパネルからノートブックを起動し、最初のセルにコードスニペットを貼り付けます。
  2. アクションツールバーの「再生」アイコンを選択するか、メニューバーの実行 > 選択したセルを実行を選択してコードを実行し、データセットをインポートします。

モデル学習コードを記述する

Code Workspaces でモデル開発に利用可能なオープンソースツールを使用すると、回帰や機密情報区分など、幅広い分析ユースケースに対応するモデルを学習できます。以下は、scikit-learn を使用して世帯所得の中央値を予測する線形回帰モデルのサンプルです。

  1. 左サイドバーのデータの下にあるパッケージアイコンを選択して、ワークスペースに scikit-learn をインストールします。
  2. 検索バーの左にあるドロップダウンで Conda または PyPi マネージャーを選択し、scikit-learn を検索します。
  3. ターミナルでインストールコマンドを実行するには、ドロップダウンでパッケージのバージョンを選択し、バージョンボタンを選択します。または、ターミナルから maestro env conda install または maestro env pip install コマンドを使用して、管理対象環境に複数のパッケージを一度にインストールできます。

サイドバーを使用したパッケージのインストール:

UI からパッケージのバージョンを選択してインストールする。

ターミナルからのパッケージのインストール:

ターミナルから複数のパッケージを一度にインストールする。

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 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 ファイルを自動的に作成して保存します。このファイルを使用してモデルアダプターを実装できます。モデルアダプターは Foundry 内のすべてのモデルに標準インターフェースを提供するため、プラットフォームの本番アプリケーションはモデルの作成直後からモデルを利用できます。Foundry のインフラストラクチャは、モデルを読み込み、Python の依存関係を設定し、API を公開して、モデルとのやり取りを可能にします。

  1. 出力を追加するには、左サイドバーのパッケージの下にあるモデルタブを開き、モデルを追加 > 新しいモデルを作成するを選択します。モデルに名前を付け、任意の場所に保存します。

Palantir Foundry の Jupyter® Code Workspaces で新しいモデルを作成する

  1. モデルに名前を付けて保存すると、ワークスペースの左パネルに新しいモデルを公開するための画面が表示されます。コードスニペットをクリップボードにコピーし、元の .ipynb ノートブックファイルで実行して、ステップ1: palantir_models をインストールするを完了します。

  2. palantir_models のインストールが正常に完了したら、手順 2:Model Adapter を開発するでモデルアダプターを作成して開発します。モデルアダプターには、次のメソッドを実装する必要があります。

    1. **save および load:**モデルを再利用するには、モデルをどのように保存し、読み込むかを定義する必要があります。Palantir はシリアライズ(保存)のデフォルトメソッドを提供しています。より複雑な場合には、カスタムシリアライズのロジックを実装できます。
    2. **api:**モデルの API を定義し、モデルが必要とする入力データのデータ型を Foundry に伝えます。
    3. **predict:**モデルにデータを渡すために Foundry によって呼び出されます。ここで入力データをモデルに渡し、推論(予測)を生成できます。

    詳細については、モデルアダプター API リファレンスを参照してください。

以下のコードサンプルでは、上記の関数を実装して、scikit-learn を使用した線形回帰モデルのアダプターを開発しています。

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 import palantir_models as pm from palantir_models.serializers import DillSerializer class LinearRegressionModelAdapter(pm.ModelAdapter): @pm.auto_serialize( model=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

詳しい手順については、モデルアダプターのドキュメントを参照してください。

(任意)モデル実験にメトリクスとハイパーパラメーターを記録する

モデル実験は、モデルの学習実行中に生成されるメトリクスとハイパーパラメーターを記録するための軽量なフレームワークです。記録したメトリクスとハイパーパラメーターは、モデルとともに公開し、モデルページに保存できます。

実験の作成と書き込みについて詳しくはこちら。

モデルを Foundry に公開する

モデルを 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)

このスニペットはそのまま動作するはずですが、アダプターの初期化時には、トレーニングしたモデルを正しく渡す必要があります。コードの準備ができたら、セルを実行してモデルを Foundry に公開できます。

Code Workspaces からモデルを Foundry に公開する

モデルを利用する

モデルは、モデリング目標に登録することで利用できます。モデルは、以下の目的でモデリング目標に登録できます。

モデルは、モデルデプロイメントを使用して利用することもできます。これは、モデリング目標とは別のモデルホスティングシステムです。


Jupyter® および JupyterLab® は、NumFOCUS の商標または登録商標です。

記載されているすべての第三者の商標は、それぞれの所有者に帰属します。提携や推奨を示唆するものではありません。