8月12日、Red HatのAndrew Blockが「Advancing AI model interoperability with Docker and ModelPack」と題した記事を公開した。**docker model package --format=cncf という一行のオプション追加により、DockerユーザーはModelPack形式のOCIアーティファクトとしてAIモデルをパッケージできるようになった。**これにより、Dockerで作成したモデルをModelPack対応の任意のサービングフレームワークで利用できるという、実用上の大きな変化が生まれている。
AIモデル管理の「ツール依存」問題
AIモデルの作成・実行ツールが増えた一方で、ツールとモデル管理形式が密結合しているという問題が顕在化している。モデルのパッケージング形式は圧縮アーカイブ、コンテナイメージ、独自メタデータを使ったラッパーなど様々であり、ストレージもオブジェクトストレージ、Git LFS、独自モデルレジストリなど選択肢が乱立している。
ローカルで単独作業するぶんには問題にならないが、他者が作成したアセットを利用したり、自分の成果物を共有・配布したりする場面では、ツールやフレームワークが対応する形式の制約に縛られることになる。
この問題に取り組んでいるのが、CNCFプロジェクトの**ModelPack**だ。
CNCFとModelPackについて
CNCF(Cloud Native Computing Foundation)は、KubernetesやPrometheusなどを擁するオープンソースの中立的な財団であり、クラウドネイティブ技術のエコシステムを育成することを目的としている。CNCFはプロジェクトをSandbox・Incubating・Graduatedの段階で管理しており、ModelPackはCNCFプロジェクトとして標準化活動を進めている。
ModelPackは、AIモデルの構築方法を定義した**オープン標準**を策定し、OCI(Open Container Initiative)アーティファクトをモデルの組み立て・配布の基盤として採用している。OCI標準はコンテナイメージで広く普及しており、近年AI領域での採用例も増えている。ModelPackはその基盤を活用することで、ツール間の相互運用性を確保しようとしている。
仕様の詳細はModelPack Specificationで確認できる。
DockerとModelPackの連携:--format=cncf の追加
今回の記事の核心は、Docker Model Runner(DMR)とModelPackの協業、そしてその成果として実装された --format=cncf オプションだ。
Nutanix、Ant、Jozu、Red Hatなどの組織がメンテナーとして参加するModelPackコミュニティに、Dockerのメンバーが接触した。DockerのDMRも同様にOCIアーティファクトをパッケージング・配布に利用していたことが、連携のきっかけだ。
ただし、両者は異なるOCI Media Typeを使用している。
| リソース | ModelPack | Docker Model形式 |
|---|---|---|
| Configディスクリプタ | application/vnd.cncf.model.config.v1+json |
application/vnd.docker.ai.model.config.v0.1+json |
| アーティファクトタイプ | application/vnd.cncf.model.manifest.v1+json |
N/A |
| ライセンス | application/vnd.cncf.model.doc.v1.tar |
application/vnd.docker.ai.license |
Media Typeが異なるため、DMR形式のモデルはDMRを理解するツール以外では使いにくい。OCI準拠なのでDocker HubやQuayなどのOCIレジストリには保存できるが、他のサービングフレームワークでの活用が制限されていた。
この課題を解決するため、DMRにModelPack形式での出力オプションが追加された。docker model package コマンドに --format=cncf を指定するだけで、ModelPack形式のOCIアーティファクトとしてモデルをパッケージできる。
docker model package --format=cncf
生成されたアーティファクトはOCIレジストリに公開でき、ModelPack対応のサービングフレームワークからそのまま利用できる。
MLOps実務者への影響
今回の協業が実務上もたらす変化は、Dockerでパッケージしたモデルを、ModelPackに対応した任意のサービングフレームワークやツールチェーンで再利用できるようになるという点だ。
たとえば、ローカル開発環境でDMRを使ってモデルを構築・テストし、--format=cncf でModelPack形式に変換した上でOCIレジストリに公開すれば、KubernetesネイティブなMLサービングプラットフォームやModelPack対応のランタイムからそのモデルをそのまま取得して推論に使う、というワークフローが現実的になる。ツール間の「形式の壁」を意識せずにモデルを流通させられる環境に、業界が一歩近づいた。
また、DockerがOCIアーティファクトをAIモデルのパッケージング・配布に採用した経緯については、こちらのブログ記事で説明されている。Dockerが顧客・ユーザーから収集した現場の課題をModelPackコミュニティと共有したことで、仕様の堅牢化も進んだという点も、今回の協業の副次的な成果として記事では強調されている。
詳細はAdvancing AI model interoperability with Docker and ModelPackを参照していただきたい。