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

モデリングリソースを Marketplace 製品に追加する

Foundry DevOps を使用すると、モデリングリソースを Marketplace 製品に含めて、ほかのユーザーがインストールして再利用できるようにできます。最初の製品を作成する方法について詳しくはこちら。

対応機能

リリース管理のために、DevOps でモデルを製品の一部としてパッケージ化し、Marketplace 経由でデプロイできます。また、モデルの直接デプロイと公開済みのモデル関数を同じ製品にパッケージ化することもできます。モデルは製品の入力としても利用可能で、ユーザーはインストール時にモデルを選択できます。

モデルをパッケージ化する

モデルは、Marketplace 製品の出力(デプロイされるコンテンツ)としてパッケージ化するか、ユーザーがインストール時に選択する入力として含めることができます。

モデルを製品の出力に含める方法には、コンテンツに含めると生成元を含めるの2つがあります。

DevOps でモデルをパッケージ化する際のパッケージ化モードの選択肢。

コンテンツに含める

コンテンツに含めるオプションでは、モデルを静的アセットとしてインストールします。このモデルは、デプロイ後に再ビルドできません。このオプションを使用すると、次のものがモデルリソースにコピーされます。

コンテンツに含めるとしてモデルをデプロイできるのは、ファイルと基盤となるコンテナイメージを含めたモデルの合計サイズが8ギビバイト未満の場合のみです。DevOps アプリケーションはこの条件を検証し、満たされていない場合はエラーを表示します。

生成元を含める

生成元を含めるオプションでは、モデルのビルドに使用するロジックをインストールするため、デプロイ後にモデルをビルドできます。これにより、スケジュールに従って継続的にトレーニングできるモデルをデプロイできます。このオプションは、Code Repositories、トランスフォームとして公開された Jupyter® ノートブック、および Model Studio でビルドされたモデルで利用可能ですが、Jupyter® ノートブックから対話的に公開されたモデルでは利用できません。これは、対話的に公開されたモデルが静的アセットと見なされ、関連付けられたロジックを持たないためです。このオプションを使用する場合は、混乱を避けるため、モデルの最新バージョンをパッケージ化することを推奨します。

コードリポジトリを生成元としてデプロイされたモデルには、デフォルトではコンテナイメージが定義されていません。コンテナイメージは、リポジトリ内でチェックを実行したときに生成され、その後のモデルを生成するビルドで使用されるためです。製品のインストール時にはチェックが実行されないため、インストールされたモデルのビルドでは、モデル用のコンテナイメージを生成できません。モデルバージョンにコンテナイメージがない場合、デプロイされたバージョンでは、トランスフォーム内のサイドカーモデル推論とライブデプロイを利用できません。

この問題を解決するには、モデルを生成するインストール済みリポジトリでチェックを手動実行し、コンテナイメージをビルドして、後続のモデルトレーニングのビルドで利用できるようにします。Python アダプターのロジックとコンテナ内の環境が元のモデルと同じであることを保証するため、チェックを手動で実行する必要があります。これは、モデルの新しいバージョンをデプロイするたびに行う必要があります。

モデルを製品の入力として使用する

製品の作成者は、モデルを出力としてパッケージ化するだけでなく、製品の入力として含めることもできます。インストール時に、ユーザーはモデルセレクターで使用するモデルを選択し、依存するコンポーネントが必要とする特定のモデルバージョンを指定できます。これにより、モデル自体をパッケージ化する必要がなくなるため、パッケージサイズを削減でき、インストール担当者はエンロールメントですでに利用可能なモデルを柔軟に選択できます。

パッケージ化済みのトランスフォームでモデルを ModelInput として使用する場合、トランスフォームには use_sidecar=True を設定する必要があります。サイドカーは専用のコンテナでモデルアダプターを実行するため、アダプターライブラリをリポジトリ環境にインポートする必要がなくなります。すべての場合において、use_sidecar=True の使用を推奨します。モデルをサイドカーコンテナとして実行する方法について詳しくはこちら。

ライブデプロイ

モデルの直接デプロイを、そのモデルとともにパッケージ化できます。Marketplace は、コンピューティングリソース、レプリカ数の制限、スケーリング設定、環境変数、スレッド数など、保存済みの設定でデプロイをインストールします。

ライブデプロイをパッケージ化する

パッケージ化する前に、モデルのデフォルトブランチで直接デプロイを作成し、その設定を保存してください。ほかのブランチのデプロイ、Modeling Objective のデプロイ、外部ソースを使用するように設定されたデプロイには対応していません。

デプロイを製品に含めるには、次の手順を実行します。

  1. DevOps でモデルを製品の出力として追加します。
  2. モデルのパッケージ化モードで、コンテンツに含めるまたは生成元を含めるを選択します。
  3. ライブデプロイをパッケージ化で、はいを選択します。このオプションは、モデルのデフォルトブランチに直接デプロイがある場合に利用可能です。
  4. 製品の出力を確認します。DevOps にはライブデプロイが含まれ、そのデプロイに関連付けられたモデル関数を公開している場合は、その関数も含まれます。

ライブデプロイをパッケージ化オプションは、どちらのパッケージ化モードでも使用できます。いいえを選択するか、オプションを未設定のままにした場合、モデルにデプロイや関数は自動的には含まれません。その場合も、インストール済みのモデルで手動で直接デプロイを作成できます。

ライブデプロイをインストールして開始する

インストール時に、ライブデプロイを自動開始の入力を設定します。

  • 新しくインストールしたデプロイ、または停止中のデプロイを自動的に開始するには、true に設定します。
  • 新しいデプロイを手動で開始するまで停止状態に保持するには、デフォルト値の false のままにします。

インストール後、インストール済みのモデルを開き、ライブデプロイを選択してステータスを確認します。停止中のデプロイを開始するには、概要タブでデプロイを開始を選択します。モデル関数は、デプロイが実行中になる前でもインストールできますが、関数が推論リクエストを処理するには、デプロイが実行中である必要があります。

コンテンツに含めるでは、Marketplace はインストール済みのモデルバージョンを使用してデプロイを作成します。生成元を含めるでは、モデルバージョンがまだ利用できない場合、デプロイはモデルバージョンがビルドされるまで待機します。製品のビルド設定でインストール時にモデルをビルドするように設定するか、デプロイを開始する前にインストール済みのモデルをビルドします。コードリポジトリを生成元とする場合は、コンテナイメージの要件に従ってください。

ライブデプロイをアップグレードする

製品をアップグレードすると、パッケージ化済みのデプロイ設定がインストール済みのデプロイに適用されます。デフォルトブランチで公開された新しいモデルバージョンは、通常のビルドや Marketplace のアップグレードによって作成されたバージョンも含め、デプロイを自動的に更新します。

アップグレード時にライブデプロイを自動開始を false に設定しても、実行中のデプロイは停止しません。停止中のデプロイは、手動で開始するか、この入力を true に設定しない限り、停止状態のままです。

モデル関数

公開済みのモデル関数を、そのモデルおよび直接デプロイとともにパッケージ化できます。Marketplace は、インストールされた関数を宛先環境のモデルおよびデプロイに接続します。

モデル関数をパッケージ化する

モデルのパッケージ化時に関数を含めるには、パッケージ化する前に、モデルのデフォルトブランチのデプロイで関数を公開します。次に、モデル出力のライブデプロイをパッケージ化ではいを選択します。DevOps は公開済みの関数を自動的に含めるため、インストール後に手動で公開する必要はありません。

モデル関数を関数出力として追加し、そのバージョンを直接選択することもできます。この関数には、関数の基盤となるデプロイと、その関数バージョンに関連付けられたモデルバージョンへの依存関係が含まれます。ライブデプロイのパッケージ化要件は引き続き適用されます。

モデルと関数のバージョンは、互いに一致するものを選択してください。古い関数バージョンを明示的に選択することもできますが、その関数が製品で選択したものとは異なるモデルバージョンを必要とする場合、Marketplace は競合を報告します。関数バージョンを明示的に選択しない場合、Marketplace が自動的に解決します。選択したモデルバージョンに一致する古い関数バージョンを検索することはありません。

モデル関数を別の関数で使用する

モデル、そのデプロイ、その関数、およびその関数を呼び出すアプリケーションや関数を1件の製品にパッケージ化できます。たとえば、モデル関数を、それをインポートする Workshop アプリケーションや別の関数とともにパッケージ化します。Marketplace は、インストールされたモデル関数を使用するように、これらの参照を更新します。

宛先環境の既存の関数を再利用する場合は、モデル関数を製品入力として設定し、インストール時に選択します。

Marketplace は、リポジトリにインポートされたモデル関数を追跡します。インポートせずにプラットフォーム SDK 経由で直接クエリされるモデル関数は追跡しないため、それらの参照はインストール時に自動更新されません。

Python および TypeScript v2 関数では、モデル関数をリポジトリにインポートできるようにするために、モデル関数をオントロジーに登録する必要があります。モデル関数がまだスペースに紐づいている場合は、構造化された依存関係の追跡と Marketplace の入力マッピングを利用するために、オントロジーに紐づく関数に移行してください。

モデル関数をアップグレードする

Marketplace は、インストール時および製品のアップグレード時に、パッケージ化済みのモデル関数の公開を管理します。Marketplace インストールの出力であり続けるモデルでは、デフォルトブランチで新しいモデルバージョンを公開すると、別の関数バージョンを自動的に公開することなく、ライブデプロイが更新されます。これは、モデルのパッケージ化時に使用したライブデプロイをパッケージ化の設定に関係なく適用されます。

そのため、生成元を含めるの場合、スケジュールによる再トレーニングまたは手動の再トレーニングでデフォルトブランチのデプロイが更新されても、関数はインストールされたバージョンのままです。再トレーニングでモデル API が維持される場合、インストールされた関数は引き続きリクエストを処理できます。

モデル API が変更されると、インストールされた関数がデプロイと一致しなくなり、推論リクエストに失敗する可能性があります。一致する関数をインストールするには、ソースのモデル関数と、それを呼び出す関数やアプリケーションを更新してから、新しい製品バージョンを公開し、インストールをアップグレードします。モデル関数を入力として使用するインストールを含め、製品外の利用側は別途更新します。

対応していないモデリング機能と制限事項

  • Modeling Objectives: ライブの目的デプロイには直接モデルデプロイを、バッチデプロイにはモデルトランスフォームを使用します。
  • ライブデプロイ: パッケージ化できるのは、モデルのデフォルトブランチの直接デプロイのみです。ほかのブランチのデプロイや、外部ソースを使用するように設定されたデプロイには対応していません。
  • コンテンツを含めてモデルをパッケージ化できるのは、重み、Python 環境、および基盤となるコンテナイメージを含む合計サイズが8ギビバイト未満の場合のみです。
  • DevOps および Marketplace は、外部モデルに対応していません。