Jakie są najlepsze praktyki zapisywania, przechowywania i udostępniania modeli uczenia maszynowego?
W Pythonie przechowujemy binarną reprezentację modelu za pomocą marynaty lub joblib. Modele w moim przypadku mogą być ~ 100 milionów dużych. Joblib może również zapisać jeden model do wielu plików, chyba że ustawisz compress=1
( /programming/33497314/sklearn-dumping-model-using-joblib-dumps-multiple-files-which-one-is-the- corre ).
Ale jeśli chcesz kontrolować prawa dostępu do modeli i móc korzystać z modeli z różnych komputerów, jaki jest najlepszy sposób ich przechowywania?
Mam kilka możliwości:
- Zapisz je jako pliki, a następnie umieść w repozytorium za pomocą Git LFS
- Przechowuj je w bazie danych SQL jako pliki binarne:
- Na przykład w Postgresql https://wiki.postgresql.org/wiki/BinaryFilesInDB
- Jest to również metoda zalecana przez zespół 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