モデルの配布パターン
コンテナ技術によりサーバーのコンテナイメージを使ってサーバーを稼働させることが一般的になりました。しかし、機械学習の推論器としてサーバーイメージと推論モデルファイルの管理方法やバージョニングは重要な検討課題となっています。
サーバーにモデルを組み込んで推論器として稼働させるには大きく2種類の方法があります。
- Model-in-imageパターン(モデルがイメージの中に含まれているパターン)
- Model-loadパターン(サーバーからモデルをロードするパターン)
Model-in-image パターン
Model-in-imageパターンでは、推論器のイメージにモデルファイルを含めてビルドします。モデルを含めてビルドすることにより、そのモデル専用の推論器を生成することができます。
- Pros
- サーバーイメージとモデルファイルのバージョンを同一に保つことができる
- Cons
- モデル学習からサーバーイメージ構築までのパイプラインを定義する必要がある
- 推論サーバーイメージの容量が増加し、イメージをロードして稼働させるまでに所要時間が長くなる
- ユースケース
- サーバーイメージと推論モデルのバージョンを一致させたい場合
Model-load パターン
Model-loadパターンでは、推論サーバーを起動し、その後にモデルファイルをロードして推論サーバーを本稼働させます。サーバーイメージと推論モデルファイルを分けて管理することになります。
- Pros
- サーバーイメージのバージョンとモデルファイルのバージョンを分離することできる
- サーバーイメージの応用性が向上する
- サーバーイメージが軽量になる
- Cons
- サーバーの配備とモデルファイルのロードが順番に行われるため、推論サーバーの起動に時間がかかる可能性がある
- サーバーイメージとモデルファイルのバージョニングが必要になる
- ユースケース
- サーバーイメージのバージョンよりもモデルファイルのバージョンを頻繁に更新する場合
- 同一サーバーイメージで複数の種類の推論モデルを稼働させる場合
参考
AlloyDB
Amazon Cognito
Amazon EC2
Amazon ECS
Amazon QuickSight
Amazon RDS
Amazon Redshift
Amazon S3
API
Autonomous Vehicle
AWS
AWS API Gateway
AWS Chalice
AWS Control Tower
AWS IAM
AWS Lambda
AWS VPC
BERT
BigQuery
Causal Inference
ChatGPT
Chrome Extension
CircleCI
Classification
Cloud Functions
Cloud IAM
Cloud Run
Cloud Storage
Clustering
CSS
Data Engineering
Data Modeling
Database
dbt
Decision Tree
Deep Learning
Descriptive Statistics
Differential Equation
Dimensionality Reduction
Discrete Choice Model
Docker
Economics
FastAPI
Firebase
GIS
git
GitHub
GitHub Actions
Google
Google Cloud
Google Search Console
Hugging Face
Hypothesis Testing
Inferential Statistics
Interval Estimation
JavaScript
Jinja
Kedro
Kubernetes
LightGBM
Linux
LLM
Mac
Machine Learning
Macroeconomics
Marketing
Mathematical Model
Meltano
MLflow
MLOps
MySQL
NextJS
NLP
Nodejs
NoSQL
ONNX
OpenAI
Optimization Problem
Optuna
Pandas
Pinecone
PostGIS
PostgreSQL
Probability Distribution
Product
Project
Psychology
Python
PyTorch
QGIS
R
ReactJS
Regression
Rideshare
SEO
Singer
sklearn
Slack
Snowflake
Software Development
SQL
Statistical Model
Statistics
Streamlit
Tabular
Tailwind CSS
TensorFlow
Terraform
Transportation
TypeScript
Urban Planning
Vector Database
Vertex AI
VSCode
XGBoost