Traffine I/O

日本語

2023-01-07

MLモデルの配布パターン

モデルの配布パターン

コンテナ技術によりサーバーのコンテナイメージを使ってサーバーを稼働させることが一般的になりました。しかし、機械学習の推論器としてサーバーイメージと推論モデルファイルの管理方法やバージョニングは重要な検討課題となっています。

サーバーにモデルを組み込んで推論器として稼働させるには大きく2種類の方法があります。

  • Model-in-imageパターン(モデルがイメージの中に含まれているパターン)
  • Model-loadパターン(サーバーからモデルをロードするパターン)

Model-in-image パターン

Model-in-imageパターンでは、推論器のイメージにモデルファイルを含めてビルドします。モデルを含めてビルドすることにより、そのモデル専用の推論器を生成することができます。

Model in image pattern

  • Pros
    • サーバーイメージとモデルファイルのバージョンを同一に保つことができる
  • Cons
    • モデル学習からサーバーイメージ構築までのパイプラインを定義する必要がある
    • 推論サーバーイメージの容量が増加し、イメージをロードして稼働させるまでに所要時間が長くなる
  • ユースケース
    • サーバーイメージと推論モデルのバージョンを一致させたい場合

Model-load パターン

Model-loadパターンでは、推論サーバーを起動し、その後にモデルファイルをロードして推論サーバーを本稼働させます。サーバーイメージと推論モデルファイルを分けて管理することになります。

Model load pattern

  • Pros
    • サーバーイメージのバージョンとモデルファイルのバージョンを分離することできる
    • サーバーイメージの応用性が向上する
    • サーバーイメージが軽量になる
  • Cons
    • サーバーの配備とモデルファイルのロードが順番に行われるため、推論サーバーの起動に時間がかかる可能性がある
    • サーバーイメージとモデルファイルのバージョニングが必要になる
  • ユースケース
    • サーバーイメージのバージョンよりもモデルファイルのバージョンを頻繁に更新する場合
    • 同一サーバーイメージで複数の種類の推論モデルを稼働させる場合

参考

https://github.com/mercari/ml-system-design-pattern/tree/master/Training-patterns

Ryusei Kakujo

researchgatelinkedingithub

Focusing on data science for mobility

Bench Press 100kg!