1.2. OCI イメージへのモデルの保存
モデルを OCI イメージに保存できます。次の手順では、MobileNet v2-7 モデルを ONNX 形式で保存する例を使用します。
前提条件
- ONNX 形式のモデルがある。この手順の例では、ONNX 形式の MobileNet v2-7 モデルを使用します。
- Podman ツールがインストールされている。
手順
ローカルマシンのターミナルウィンドウで、OCI イメージの作成に必要なモデルファイルとサポートファイルの両方を保存するための一時ディレクトリーを作成します。
cd $(mktemp -d)
cd $(mktemp -d)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 一時ディレクトリー内に
modelsフォルダーを作成します。mkdir -p models/1
mkdir -p models/1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記この例のコマンドでは、サブディレクトリー
1を指定します。これは、OpenVINO がモデルのバージョン管理に番号付きのサブディレクトリーを必要とするためです。OpenVINO を使用していない場合は、OCI コンテナーイメージを使用するために1サブディレクトリーを作成する必要はありません。モデルとサポートファイルをダウンロードします。
DOWNLOAD_URL=https://github.com/onnx/models/raw/main/validated/vision/classification/mobilenet/model/mobilenetv2-7.onnx curl -L $DOWNLOAD_URL -O --output-dir models/1/
DOWNLOAD_URL=https://github.com/onnx/models/raw/main/validated/vision/classification/mobilenet/model/mobilenetv2-7.onnx curl -L $DOWNLOAD_URL -O --output-dir models/1/Copy to Clipboard Copied! Toggle word wrap Toggle overflow treeコマンドを使用して、モデルファイルが期待どおりにディレクトリー構造内に配置されていることを確認します。tree
treeCopy to Clipboard Copied! Toggle word wrap Toggle overflow treeコマンドで、次の例のようなディレクトリー構造が返されるはずです。. ├── Containerfile └── models └── 1 └── mobilenetv2-7.onnx. ├── Containerfile └── models └── 1 └── mobilenetv2-7.onnxCopy to Clipboard Copied! Toggle word wrap Toggle overflow Containerfileという名前の Docker ファイルを作成します。注記-
シェルを提供するベースイメージを指定してください。次の例では、
ubi9-microがベースコンテナーイメージです。scratchなどのシェルを提供しない空のイメージを指定することはできません。KServe はシェルを使用してモデルファイルがモデルサーバーにアクセス可能であることを確認するためです。 - コピーしたモデルファイルの所有権を変更し、root グループに読み取り権限を付与して、モデルサーバーがファイルにアクセスできるようにしてください。OpenShift は、ランダムなユーザー ID と root グループ ID を使用してコンテナーを実行します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
シェルを提供するベースイメージを指定してください。次の例では、
podman buildコマンドを使用して OCI コンテナーイメージを作成し、レジストリーにアップロードします。次のコマンドでは、レジストリーとして Quay を使用します。注記リポジトリーがプライベートの場合は、コンテナーイメージをアップロードする前に、レジストリーに対して認証されていることを確認してください。
podman build --format=oci -t quay.io/<user_name>/<repository_name>:<tag_name> . podman push quay.io/<user_name>/<repository_name>:<tag_name>
podman build --format=oci -t quay.io/<user_name>/<repository_name>:<tag_name> . podman push quay.io/<user_name>/<repository_name>:<tag_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow