Normalement, un sujet important dans DevOps est de savoir comment nous nous occupons de la création et de la livraison automatisées des artefacts logiciels.
Avec l'essor de la science des données, il existe un nouveau type d'artefact: des taches binaires monolithiques représentant un réseau neuronal formé par exemple ou d'autres modèles d'apprentissage automatique. Un tel blob peut avoir une taille de plusieurs Go et sa création n'est pas encore standardisée AFAIK ce qui ramène les organisations à l'ère pré-CI. Néanmoins, ils ont leur version et les collections associées de données de formation (corpus) qui ont également tendance à croître rapidement.
Quelles sont les meilleures pratiques pour relever ce nouveau défi en utilisant les méthodes DevOps - si possible?
la source
Réponses:
Personnellement, je ne vois aucune raison pour laquelle un référentiel d'artefacts - l'outil recommandé de DevOps de gestion des artefacts - ne serait pas applicable aux réseaux neuronaux formés ou à d'autres artefacts.
La taille de l'artefact peut avoir une limite supérieure pour un référentiel d'artefact particulier, mais dans ce cas, il s'agirait d'une limitation technique ou politique, et non fondamentale / principale.
Quant à l'application des méthodologies DevOps pour le processus produisant ces artefacts, je pense que la plupart sinon la totalité d'entre elles peuvent être appliquées aussi bien, tant que les artefacts:
Remarque: la livraison de code logiciel monolithique est toujours un gros problème et est parfaitement maintenable avec les méthodologies DevOps (avec un peu de soin), tout ne peut pas être divisé en microservices. La taille n'a pas assez d'importance pour que DevOps ne soit pas applicable.
la source
git lfs
et les tire quand c'est nécessaire [paradigme sans serveur] :)git-lfs
Je recommanderais de jeter un œil à DVC - un système de contrôle de version open source pour les projets de science des données.
L'une des choses de base qu'il gère parfaitement est la gestion des fichiers de données (avec le code) - entrées, sorties (modèles), résultats intermédiaires. Sémantiquement, il est similaire à
git-lfs
mais contrairement àgit-lfs
il est capable de gérer des fichiers comme 100 Go et ce qui est plus important, il ne repose pas sur un stockage / format propriétaire. Il est complètement open-source et est compatible avec tout stockage réseau en tant que serveur pour conserver les fichiers de données - S3, stockage cloud GCP, SSH, FTP, etc.la source