注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
オントロジーのコンテキスト内でモデルを運用化するには、実行時にモデルを呼び出す関数を使用できます。モデルは、モデリングの目的またはモデルのライブデプロイメントを通じて利用可能にし、コードで使用するために関数リポジトリにインポートできます。
モデル上の関数を作成する前に、まずAPI名またはモデルのライブデプロイメントを持つモデリングの目的のライブデプロイメントを設定してください。
関数の作成に関する詳細情報は、はじめにガイドを参照してください。
ライブデプロイメントが作成されたら、特定のリポジトリで使用するためにインポートする必要があります。リソースインポートサイドバーを選択して、すでにインポートされたモデルのデプロイメントを表示します。
追加のモデルをインポートするには、リソースインポートサイドバーの追加を選択して、モデリングの目的を検索するウィンドウを開きます。これはオントロジーのインポートがないリポジトリなので、このリポジトリと同じスペースに存在する目的だけをインポートできます。関数リポジトリがすでに特定のオントロジーからオブジェクトタイプをインポートしている場合、そのオントロジーと同じスペースに存在する目的だけをインポートできます。ここから、PRODUCTION
またはSTAGING
リリースを表すデプロイメントを選択するか、特定のモデル提出からサンドボックスデプロイメントを選択できます。この例では、Flight Delayモデルをインポートします。
選択の確認を選択してモデルのインポートを確認します。Task RunnerはlocalDev
タスクを実行し、これらのモデルと対話するためのコードバインディングを生成します。
コード内で、@foundry/models-api/deployments
パッケージからモデルタイプをインポートできます。各モデルは、定義されたAPI名に基づいて定数として利用できます。
Flight Delayモデルをオントロジーに接続する関数を作成しましょう。Code Assistが完了したら、"@foundry/models-api/deployments"
からインポート文を追加し、ブラケットの間にモデルのAPI名を入力します。あるいは、モデルインポートサイドバーからAPI名をコピーすることもできます。
Copied!1 2
// "@foundry/models-api/deployments"からFlightModelDeploymentをインポートします import { FlightModelDeployment } from "@foundry/models-api/deployments";
次に、フライトのリストを取り込み、モデルのためのデータを準備し、モデル実行の結果を解釈する関数を作成します。インポートされた各モデルには、その入力と出力仕様を表す非同期の transform
メソッドが付属しています。これにより、Typescriptはコンパイル時に、モデルデプロイメントへの送信と受信のデータ構造が正しいことを保証できます。特に指定がない限り、Modeling Objectiveのライブデプロイメントは行のリストで操作します。
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 deploymentを呼び出します const modelOutput = await FlightModelDeployment.transform(modelInput); // 各フライトをその指定されたモデル出力にマップします for (let i = 0; i < flights.length; i++) { functionsMap.set(flights[i], modelOutput[i].prediction); } return functionsMap; }
In Japanese:
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 deploymentを呼び出します 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>>
を期待し、返すため、効果的に型がありません。ランタイムでデータの妥当性を確認することをお勧めします。
モデルは関数のランタイムの一部として実行されるため、すべての標準的な制限が適用されます。 関数がアクションをバックアップしている場合、結果として得られる編集の数にさらなる制限があります。 ライブデプロイメントを呼び出すとき、モデルの入力データと出力データはネットワークを介して送信され、上限は50 Mbです。その追加のスループットを含めて、関数の合計実行時間は30秒を超えることはできません。このタイムアウト制限を関数ごとに増やしたい場合は、Palantir の担当者に連絡してください。