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

モデル上の関数

オントロジーの文脈でモデルを運用化するために、ランタイム中にモデルを呼び出す関数を使用できます。 モデルは、Foundry ML Live のデプロイメントを通じて利用可能にし、コードで使用するために関数のリポジトリにインポートできます。

前提条件

モデル上の関数を作成する前に、まず Foundry ML Live のデプロイメントを設定し、API 名を設定してください。

ライブデプロイメントのインポート

ライブデプロイメントが作成されたら、特定のリポジトリで使用するためにインポートする必要があります。

モデルインポートのサイドバーをクリックすると、すでにインポートされたモデルのデプロイメントが表示されます。

Model import sidebar

追加のモデルをインポートするには、モデルインポートのサイドバーで + を選択し、Modeling Objectives の検索ウィンドウを開きます。これはオントロジーのインポートがないリポジトリなので、同じ namespace内にある Objectives のみをインポートできます。あなたの関数リポジトリがすでに特定の オントロジーからオブジェクトタイプをインポートしている場合、そのオントロジーと同じ namespace にある Objectives のみをインポートできます。ここから、PRODUCTIONまたはSTAGINGのリリースを表すデプロイメントを選択するか、特定のモデル提出からのサンドボックスデプロイメントを選択できます。この例では、Flight Delay モデルをインポートします。

model-import-example

Save を選択してモデルのインポートを確認します。Code Assist は自動的に再起動し、インポートされたライブデプロイメントに入るための型付けされたエントリーポイントを提供するコードバインディングを生成します。

ユーザーのコードでは、@foundry/models-api/deploymentsパッケージからモデルタイプをインポートできるようになります。各モデルは、定義された API 名に基づいた定数として利用可能です。

モデルバックの関数の作成

Flight Delay Model をオントロジーに連携する関数を作成しましょう。Code Assist が完了したら、"@foundry/models-api/deployments"からインポート文を追加し、ブラケットの間にユーザーのモデルのために定義した API 名を入力します。または、モデルインポートのサイドバーから API 名をコピーすることもできます。

Copied!
1 2 // "@foundry/models-api/deployments"から"FlightModelDeployment"をインポートします import { FlightModelDeployment } from "@foundry/models-api/deployments";

次に、フライトのリストを取得し、モデルのデータを準備し、モデルの実行結果を解釈するFunctionを作成します。インポートされた各モデルには、その入力と出力の仕様を表す非同期の transform メソッドが付属しています。これにより、Typescriptはコンパイル時に、モデルのデプロイメントへ送信されるデータ構造が正しいこと、そしてモデルのデプロイメントから受信されるデータ構造が正しいことを保証します。特に指定がない限り、Foundry ML Liveのデプロイメントは行のリストで操作します。

Copied!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 @Function() public async predictFlightDelays(flights: Flight[]): Promise<FunctionsMap<Flight, Double>> { let functionsMap = new FunctionsMap(); // モデルに必要な形式に従って、行のリストを作成します const modelInput = flights.map(flight => ({ "lastArrivalTime": flight.lastArrivalTime, "lastExpectedArrivalTime": flight.lastExpecptedArrivalTime, })); // Foundry ML Liveのデプロイメントを呼び出します const modelOutput = await FlightModelDeployment.transform(modelInput); // 各フライトを該当するモデルの出力にマッピングします for (let i = 0; i < flights.length; i++) { functionsMap.set(flights[i], modelOutput[i].prediction); } return functionsMap; }

モデルデータセットに基づくファンクション

モデル上のファンクションは、モデルアセットを提供するデプロイメントに最適化されています。データセットからのモデルもサポートされていますが、transform メソッドは list<Row<str, any>> を期待し、返すため、効果的に型指定されません。実行時にデータの妥当性を確認することをお勧めします。

パフォーマンスに関する考慮事項

モデルはファンクションの実行時に実行されるため、すべての標準 制限が適用されます。 ファンクションがアクションをサポートしている場合、結果として得られる編集の数に関してさらなる制限があります。 Foundry ML Live デプロイメントを呼び出す際には、モデルの入力データと出力データがネットワークを介して送信され、上限は50 Mb です。その追加のスループットを含めて、ファンクションの合計実行時間は30秒を超えてはなりません。ファンクションごとのこのタイムアウト制限を増やしたい場合は、Palantir の担当者にお問い合わせください。