注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
以下のドキュメントは、プラットフォームでの使用が推奨されなくなった foundry_ml
ライブラリについて説明しています。代わりに、palantir_models
ライブラリを使用してください。foundry_ml
から palantir_models
フレームワークにモデルを移行する方法については、例を通じて学ぶことができます。
foundry_ml
ライブラリは、Python 3.9 の廃止に伴い、2025年10月31日に削除される予定です。
Datasetを利用したモデルは、Foundryで foundry_ml
Pythonライブラリを使用して開発されたモデルです。Datasetを利用したモデルは、Foundryで推論のためにシリアライズ可能なデータ変換の単位です。
モデルは、各ステージがステートフルなトランスフォーメーションのシリーズを含むステージのシリーズで構成されており、多くの場合、機械学習アルゴリズムを使用してトレーニングされます。モデルとステージは標準化されたインターフェースを提供するため、異なるライブラリやアルゴリズムで構築されたモデルでも一貫したセマンティクスを持つことができます。これにより、Foundry内のさまざまなアプリケーションでモデルを相互に利用できるようになります。
Pythonでモデルを作成するには、モデルコンストラクタに適用したいステージを渡します。
たとえば: Model(stage1, stage2)
は、データを stage1
に適用し、その出力を stage2
に適用して stage2
の出力を返します。各モデルは、APIと、入力として期待されるものや出力として生成されるものの技術的な定義を保存します。
モデルは異なる互換性のないフレームワークからのステージをラップすることがあるため、Model
インターフェースはすべてのモデルを透過的に交換可能にします。
これらのメソッドとプロパティはすべてのFoundry MLモデルで利用可能です:
transform(data)
: ステージを順に適用してスコア付きの出力を生成します。append_stage(stage)
: 現在のステージの後に追加のステージをモデルに追加します。input_spec
: 期待される入力の形式を記述します。output_spec
: 出力の形式を記述します。stages
: モデル内のステージのリストを取得します。ほとんどのモデリングフレームワークには独自のシリアライズ形式と方法があります。特に、分散フレームワークやマルチランゲージフレームワークには、理解しにくいシリアライズ方法があることがよくあります。Foundryのモデルインターフェースは、アーキテクチャV2でシリアライズプロセスを簡素化します。
アーキテクチャV2は、多くの新機能をサポートするシリアライズ形式です:
Pythonトランスフォームでは、以下のテンプレートを使用できます:
Copied!1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
from transforms.api import transform, Input, Output from foundry_ml import Model @transform( training_data=Input("/path/to/input/training/data"), out_model = Output("/path/to/output/model"), ) def create_model(training_data, out_model): df = training_data.dataframe() # モデルのトレーニングをここで行う model = Model(*model stages) model.save(out_model) # 訓練したモデルを保存する @transform( in_model = Input("/path/to/output/model"), test_data = Input("/path/to/input/test/data" ), out_data = Output("/path/to/scores/output"), ) def apply_model(in_model, test_data, out_data): model = Model.load(in_model) # 保存されたモデルをロードする output_df = model.transform(test_data.dataframe()) # テストデータにモデルを適用する out_data.write_dataframe(output_df) # 結果を出力する
Code Workbook では、モデルを保存し、コードブロックの関数にパラメーターとして定義することでロードするために foundry_ml.Model
のインスタンスを返します。
モデルはステージと呼ばれる個別のトランスフォームの線形パイプラインです。すべてのステージはトランスフォームを実行するための共通インターフェースに従います。
基本的なステージの契約は最小限であり、単一のタイプを持ちます。
Stage()
を介して呼び出されるステージは、外部オブジェクト(たとえば sklearn のモデル)をラップするモデルパイプラインの計算コンポーネントを示します。transform()
へのすべての呼び出しは、ホストされているモデル上の登録関数にマッピングされます。
ステージには以下の責任があります。
Stage.transform
) を提供します。ほとんどの場合、トランスフォームオブジェクト以外のステージのカスタマイズは最小限に抑えられます。Foundry は、サポートされているライブラリのタイプによってステージの作成を自動化するステージレジストリを提供しています。
help
関数を活用して、現在 foundry_ml
によってサポートされているライブラリクラスと、登録されたトランスフォーム関数およびシリアライズ形式を確認してください。
ステージには多くの設定可能なパラメーターを含めることができます。パラメーターはトランスフォーム関数の適用を制御するために使用されます。
標準化されたモデルとインターフェースをサポートするために、パラメーターはステージ間で関連情報を昇格させるために使用されます。
foundry_ml
がサポートするステージでは、必要なパラメーター、デフォルトのパラメーター、およびオプションのパラメーターが動的に生成されています。 利用可能なパラメーター についてさらに学んでください。