During training, the version of packages such as scikit-learn is not defined, so the latest version is picked up:
|
'scikit-learn', 'tensorflow', 'keras'], |
During scoring, the version of most (but not all) packages is set:
This led to binary incompatibility of the saved model when a new version of scikit-learn was released: #127, #126
For IaC best practices, we should use fixed versions for all packages in all environments.
Ideally we should also have a mechanism to define in a single place the names and versions of packages needed in training and scoring, to avoid redundancy and the risk of divergence.
During training, the version of packages such as scikit-learn is not defined, so the latest version is picked up:
MLOpsPython/ml_service/pipelines/build_train_pipeline.py
Line 35 in 8d1be26
During scoring, the version of most (but not all) packages is set:
MLOpsPython/code/scoring/conda_dependencies.yml
Line 31 in 8d1be26
This led to binary incompatibility of the saved model when a new version of scikit-learn was released: #127, #126
For IaC best practices, we should use fixed versions for all packages in all environments.
Ideally we should also have a mechanism to define in a single place the names and versions of packages needed in training and scoring, to avoid redundancy and the risk of divergence.