Quais são as melhores práticas para salvar, armazenar e compartilhar modelos de aprendizado de máquina?
Em Python, geralmente armazenamos a representação binária do modelo, usando pickle ou joblib. Modelos, no meu caso, podem ser ~ 100Mo grandes. Além disso, o joblib pode salvar um modelo em vários arquivos, a menos que você defina compress=1
( /programming/33497314/sklearn-dumping-model-using-joblib-dumps-multiple-files-which-one-is-the- corre ).
Mas então, se você deseja controlar os direitos de acesso aos modelos e poder usar modelos de máquinas diferentes, qual é a melhor maneira de armazená-los?
Eu tenho algumas opções:
- Armazene-os como arquivos e, em seguida, coloque-os em um repositório usando o Git LFS
- Armazene-os em um banco de dados SQL como arquivos binários:
- Por exemplo, no Postgresql https://wiki.postgresql.org/wiki/BinaryFilesInDB
- Este também é o método recomendado pela equipe do SQL Server:
- https://docs.microsoft.com/en-us/sql/advanced-analytics/tutorials/walkthrough-build-and-save-the-model
- https://microsoft.github.io/sql-ml-tutorials/python/rentalprediction/step/3.html
- https://blogs.technet.microsoft.com/dataplatforminsider/2016/10/17/sql-server-as-a-machine-learning-model-management-system
- HDFS