1.5. AI モデルを OCI イメージにパッケージ化する
モデルを OCI イメージにパッケージ化し、ModelCar アプローチを使用して、オフライン環境をセットアップすることができます。ModelCar アプローチを使用すると、モデルを他のコンテナーイメージと同じように埋め込むことができます。
S3 互換のオブジェクトストレージまたは設定済みの永続ボリューム要求がすでにある場合は、AI モデルをそれらのリソースにアップロードできますが、ModelCar アプローチのみがテストおよびサポートされます。
前提条件
- マシンへの root ユーザーアクセス権がある。
-
OpenShift CLI (
oc) がインストールされている。 - Podman がインストールされている。
- モデルをいつでも使用できる。
vLLM モデルサーバーに適した OCI イメージの構築に関する記事 Build and deploy a ModelCar container in OpenShift AI の "How to build a ModelCar container" セクションの概念を理解している。
注記正確なディレクトリー構造はモデルサーバーによって異なります。次の例では、OpenVINO Model Server OVMS と互換性のある ResNet-50 モデルを含む Containerfile を使用します。OVMS では通常、追加のハードウェアアクセラレーターは必要ありません。
手順
互換性のあるモデルとモデルサーバーを備えた Containerfile を準備します。
OVMS で使用される ResNet-50 モデルを含む Containerfile の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
IMAGE_REF環境変数を設定し、プロセスを簡素化します。IMAGE_REF=<ovms-resnet50:test>
$ IMAGE_REF=<ovms-resnet50:test>1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<ovms-resnet50:test>は、イメージ参照の名前に置き換えます。この例では、<repo:tag>形式が使用されています。イメージ参照名はユースケースに固有です。
次のコマンドを実行して Containerfile をビルドします。
sudo podman build -t $IMAGE_REF
$ sudo podman build -t $IMAGE_REF1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- CRI-O と Podman はストレージを共有するため、イメージをルートのコンテナーストレージの一部にして MicroShift で使用できるようにするには、
sudoを使用する必要があります。
出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: 次のコマンドを実行して、Containerfile をレジストリーにプッシュします。
sudo podman push $IMAGE_REF
$ sudo podman push $IMAGE_REFCopy to Clipboard Copied! Toggle word wrap Toggle overflow 重要オフラインで使用する場合は、
latest以外のタグを含めます。latestタグが使用されている場合、モデルを取得してセットアップするコンテナーは、imagePullPolicy:パラメーターがAlwaysに設定されて構成されており、ローカルのイメージは無視されます。latest以外のタグを使用する場合、imagePullPolicy:パラメーターはIfNotPresentに設定されます。
検証
次のコマンドを実行して、イメージが存在することを確認します。
sudo podman images ovms-resnet50
$ sudo podman images ovms-resnet50Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
REPOSITORY TAG IMAGE ID CREATED SIZE localhost/ovms-resnet50 test 375b265c1c4b 3 minutes ago 136 MB
REPOSITORY TAG IMAGE ID CREATED SIZE localhost/ovms-resnet50 test 375b265c1c4b 3 minutes ago 136 MBCopy to Clipboard Copied! Toggle word wrap Toggle overflow
次のステップ
- モデルサービングランタイムを設定します。
- AI モデルが推論の準備ができていることを確認します。
- モデルサーバーに対してリクエストを実行します。