Model-in-image pattern
Usecase
- サーバイメージと推論モデルのバージョンを一致させたい場合
Architecture
クラウドやコンテナによってサーバイメージを使ってサーバを稼働させることが一般的になりましたが、機械学習の推論器としてサーバイメージと推論モデルファイルの管理方法やバージョニングは重要な検討課題です。サーバイメージに推論モデルファイルを含めて管理することが可能です。モデル・イン・イメージ・パターンでは推論サーバのイメージに学習済みモデルファイルを含めることによって、学習とサーバイメージ構築を一連のワークフローに組み込むことが可能になります。サーバイメージとモデルファイルのバージョンが同一となるため、ライブラリのバージョンによって稼働可能なモデルを選定する必要がなくなります。
モデル・イン・イメージ・パターンでは学習によってモデルファイルを生成した後にモデルファイル含めて推論サーバイメージをビルドします。推論サーバを配備する際には、サーバイメージをPullして推論サーバを起動することで本稼働させることができます。
このパターンの難点は、推論サーバイメージ構築の所要時間が長くなる傾向にあることと、容量が増加することです。モデルの学習が完了した後に推論サーバイメージを構築するため、全行程をエラーなく完了させるパイプラインが必要になります。また、サーバイメージの容量が増加することで、イメージをロードし稼働させるまでの所要時間が長くなることがあります。
Diagram
Pros
- サーバイメージとモデルファイルのバージョンを同一に保つことが可能。
Cons
- モデル学習からサーバイメージ構築までのパイプラインを定義する必要あり。
- 推論サーバイメージの構築やサーバ配備の所要時間が長くなる。
Needs consideration
- モデル学習からサーバイメージ構築までのパイプライン定義方法。
Sample
https://github.com/shibuiwilliam/ml-system-in-actions/tree/main/chapter3_release_patterns/model_in_image_pattern