モデルの接続と開発モデルモデルアダプター概要

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

モデルアダプターの概要

モデルアダプターは、Foundry と任意のモデルとの相互運用を可能にする汎用フレームワークです。モデルアダプターは、モデルを構成する2つのコンポーネントのうちの1つです。

  • モデルアーティファクト: 学習済みモデルの保存先となるモデルファイル、パラメーター、重み、コンテナ、または資格情報です。
  • モデルアダプター: Foundry がモデルアーティファクトとやり取りして、モデルの読み込み、初期化、推論を行うために必要なロジックと環境の依存関係です。

モデルアダプターにより、Foundry は次のモデルと相互運用できます。

  1. Foundry 内で学習したモデル
  2. Foundry 外で学習したモデルファイル
  3. Foundry 外でコンテナ化し、Foundry Docker レジストリにプッシュしたモデル
  4. Foundry 外で学習し、ホストしているモデル

アダプターのコンポーネント

Palantir は、モデルのバージョンに対応するモデルアダプタークラスを介して、すべてのモデルと同じ方法でやり取りします。

初期化

モデルは一度作成すると、プラットフォーム内の複数の場所で使用できるため、アダプターは重みまたは基盤となるコンテナからモデルのインスタンスを初期化する方法を把握している必要があります。

プラットフォーム内で学習した重みについては、@auto_serialize 注釈を使用して、ほとんどの種類のモデルで動作する組み込みシリアライザーを活用してください。シリアライズ / デシリアライズのロジックを明示的に指定する必要がある高度なケースについては、load() メソッドと _save() メソッドを参照してください。

コンテナモデルと外部モデルの場合、推論に使用できるように、init_container() メソッドまたは init_external() メソッドを使用してアダプターを初期化します。どちらの種類のモデルでも、モデルの初期化時に load() メソッドも呼び出されますが、その後バックグラウンドで init_container() または init_external() が呼び出されるため、これらの種類のモデルに関連するコンテキスト(たとえば、ContainerizedApplicationContext または ExternalModelContext)のみがモデルインスタンスに渡されます。init_container() または init_external() を使用する代わりに、load() メソッドをオーバーライドして、これらのモデルの初期化方法を定義することもできます。

トランスフォームでモデルを使用するには、環境にモデルアダプターの依存関係が含まれている必要があります。モデルアダプターとトランスフォーム環境の間で依存関係の競合を防ぐには、ModelInput で use_sidecar = True を設定して、分離されたコンテナでモデルを実行します。predict() リクエストは、追加のコード変更なしでサイドカーに自動的にルーティングされます。詳細については、ModelInput クラスのリファレンスを参照してください。

API

各アダプターは、API の説明を宣言する必要があります。プラットフォームは、期待される入力、出力、列名、データ型を含むこの説明に基づいて、さまざまなモデル利用パターンに対応するほかのアプリケーションとの統合を可能にします。

サポートされるデータ型と API 定義の例については、API リファレンスを参照してください。

推論

初期化すると、アダプターをバッチワークロードまたは対話型ワークロードの推論に使用できます。推論ロジックは、predict() メソッドの一部として定義する必要があります。

プラットフォームは、指定された API 定義を使用し、定義された名前とデータ型で predict() メソッドを呼び出して推論を行います。

モデルアダプターのライフサイクル

モデルアダプターの作成について詳しくは、モデルアダプターを作成するドキュメントを参照してください。モデルアダプターのリファレンスページでは、Python API 全体も確認できます。