Normalmente, un tema importante en DevOps es cómo nos ocupamos de la creación y entrega automatizada de artefactos de software.
Con el auge de la ciencia de datos, hay un nuevo tipo de artefacto: gotas binarias monolíticas que representan una red neuronal entrenada, por ejemplo, u otros modelos de aprendizaje automático. Tal blob puede tener un tamaño de muchos GB y su creación aún no está estandarizada AFAIK, lo que hace que las organizaciones vuelvan a la era anterior a CI. Sin embargo, tienen su versión y colecciones asociadas de datos de capacitación (corpus) que también tienden a crecer rápidamente.
¿Cuáles son las mejores prácticas para abordar este nuevo desafío utilizando los métodos DevOps, si es posible?
continuous-integration
continuous-delivery
automation
methodology
Peter Muryshkin
fuente
fuente
Respuestas:
Personalmente, no veo ninguna razón por la cual un Repositorio de artefactos , la herramienta recomendada de DevOps para administrar artefactos, no sea aplicable a redes neuronales entrenadas u otros artefactos.
El tamaño del artefacto podría tener algún límite superior para un repositorio de artefactos en particular, pero en tal caso sería una limitación técnica o de política, no fundamental / de principios.
En cuanto a la aplicación de metodologías DevOps para el proceso que produce estos artefactos, creo que la mayoría, si no todos, pueden aplicarse igualmente bien, siempre que los artefactos:
Nota al margen: la entrega de código de software monolítico sigue siendo un gran problema y se puede mantener perfectamente con las metodologías DevOps (con un poco de cuidado), no todo se puede dividir en microservicios. El tamaño no importa lo suficiente como para que DevOps no sea aplicable.
fuente
git lfs
y losgit-lfs
Recomendaría echar un vistazo a DVC , un sistema de control de versiones de código abierto para proyectos de ciencia de datos.
Una de las cosas básicas que maneja perfectamente es administrar archivos de datos (junto con el código): entradas, salidas (modelos), resultados intermedios. Semánticamente es similar
git-lfs
pero, a diferencia degit-lfs
esto, es capaz de administrar archivos como 100 GB y, lo que es más importante, no depende del almacenamiento / formato propietario. Es completamente de código abierto y es compatible con cualquier almacenamiento de red como servidor para guardar archivos de datos: S3, almacenamiento en la nube GCP, SSH, FTP, etc.fuente