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

Datasetを利用したモデル

終了した機能

以下のドキュメントは、プラットフォームでの使用が推奨されなくなった 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 details

インターフェース

モデルは異なる互換性のないフレームワークからのステージをラップすることがあるため、Model インターフェースはすべてのモデルを透過的に交換可能にします。

これらのメソッドとプロパティはすべてのFoundry MLモデルで利用可能です:

  • transform(data): ステージを順に適用してスコア付きの出力を生成します。
  • append_stage(stage): 現在のステージの後に追加のステージをモデルに追加します。
  • input_spec: 期待される入力の形式を記述します。
  • output_spec: 出力の形式を記述します。
  • stages: モデル内のステージのリストを取得します。

シリアライズ

ほとんどのモデリングフレームワークには独自のシリアライズ形式と方法があります。特に、分散フレームワークやマルチランゲージフレームワークには、理解しにくいシリアライズ方法があることがよくあります。Foundryのモデルインターフェースは、アーキテクチャV2でシリアライズプロセスを簡素化します。

アーキテクチャV2

アーキテクチャV2は、多くの新機能をサポートするシリアライズ形式です:

  • 非Pythonモデル(例: コンテナ化された、TypeScript、外部)の型安全なシリアライズ。
  • 新しいモデルステージタイプの型安全なサポート。
  • モデリングの目的で使用されるモデルAPIのシリアライズと安全なデータ入力の確保。
  • モデルのConda依存関係の追跡。
  • メモリ圧迫を軽減するためのファイルサイズの改善。
  • 解釈不能なエラーを引き起こすレガシータイプスペックと自動コンバーターシステムの削除。

Templates

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 がサポートするステージでは、必要なパラメーター、デフォルトのパラメーター、およびオプションのパラメーターが動的に生成されています。 利用可能なパラメーター についてさらに学んでください。