El control de versiones de datos es un método para trabajar con conjuntos de datos . Es similar a los sistemas de control de versiones utilizados en el desarrollo de software tradicional, pero está optimizado para permitir un mejor procesamiento de los datos y la colaboración en el contexto del análisis de datos, la investigación y cualquier otra forma de análisis de datos. El control de versiones de datos también puede incluir características y configuraciones específicas diseñadas para facilitar el trabajo con grandes conjuntos de datos y lagos de datos . [1]
Historia
Fondo
Ya en 1985, los investigadores reconocieron la necesidad de definir atributos de tiempo en las tablas de bases de datos, lo que sería necesario para rastrear los cambios en las bases de datos . [2] Esta investigación continuó hasta la década de 1990, y la teoría se formalizó en métodos prácticos para administrar datos en bases de datos relacionales , [3] proporcionando algunos de los conceptos fundamentales para lo que luego se convertiría en el control de versiones de datos.
A principios de la década de 2010, el tamaño de los conjuntos de datos se expandió rápidamente y las bases de datos relacionales ya no eran suficientes para administrar las cantidades de datos que acumulaban las organizaciones. El auge del ecosistema Apache Hadoop, con HDFS como capa de almacenamiento y, más tarde, el almacenamiento de objetos, se había vuelto dominante en las operaciones de big data. [4] La investigación sobre herramientas de gestión de datos y sistemas de control de versiones de datos aumentó drásticamente, junto con la demanda de dichas herramientas tanto del ámbito académico como de los sectores privado y público. [5]
Bases de datos con control de versiones
La primera base de datos versionada se propuso en 2012 para la base de datos SciDB y demostró que era posible crear cadenas y árboles de diferentes versiones de la base de datos mientras se reducía tanto el tamaño de almacenamiento general como las velocidades de acceso asociadas con los métodos anteriores. [6] En 2014, se hizo una propuesta para generalizar estos principios en una plataforma que pudiera usarse para cualquier aplicación. [7]
En 2016, durante una competición de Kaggle se desarrolló un prototipo de sistema de control de versiones de datos . Posteriormente, este software se utilizó internamente en una empresa de inteligencia artificial y, finalmente, se convirtió en una empresa emergente . [8] Desde entonces, se han desarrollado y ofrecido comercialmente varios sistemas de control de versiones de datos, tanto de código abierto como cerrado , [9] con un subconjunto dedicado específicamente al aprendizaje automático. [10]
Casos de uso
Reproducibilidad
Una amplia gama de disciplinas científicas han adoptado el análisis automatizado de grandes cantidades de datos, incluidas la astrofísica , la sismología , la biología y la medicina , las ciencias sociales y la economía , y muchos otros campos. El principio de reproducibilidad es un aspecto importante de la formalización de los hallazgos en las disciplinas científicas y, en el contexto de la ciencia de datos, presenta una serie de desafíos. La mayoría de los conjuntos de datos cambian constantemente, ya sea debido a la adición de más datos o cambios en la estructura y el formato de los datos, y pequeños cambios pueden tener efectos significativos en el resultado de los experimentos. El control de versiones de datos permite registrar el estado exacto de los conjuntos de datos en un momento particular, lo que facilita la reproducción y la comprensión de los resultados experimentales. [11] Si los profesionales de datos solo pueden conocer el estado actual de los datos, pueden encontrarse con una serie de desafíos, como dificultades en la depuración de problemas o el cumplimiento de las auditorías de datos .
Desarrollo y pruebas
El control de versiones de datos se utiliza a veces en las pruebas y el desarrollo de aplicaciones que interactúan con grandes cantidades de datos. Algunas herramientas de control de versiones de datos permiten a los usuarios crear réplicas de su entorno de producción para fines de prueba. Este enfoque les permite probar procesos de integración de datos como extracción, transformación y carga ( ETL ) y comprender los cambios realizados en los datos sin tener un impacto negativo en los consumidores de los datos de producción.
Aprendizaje automático e inteligencia artificial
En el contexto del aprendizaje automático , el control de versiones de datos se puede utilizar para optimizar el rendimiento de los modelos. Puede permitir automatizar el proceso de análisis de resultados con diferentes versiones de un conjunto de datos para mejorar continuamente el rendimiento. [12] Es posible que el software de control de versiones de datos de código abierto pueda eliminar la necesidad de plataformas de IA propietarias al extender herramientas como Git y CI/CD para que las utilicen los ingenieros de aprendizaje automático. [13] Muchas soluciones de código abierto se basan en semánticas similares a Git para proporcionar estas capacidades, ya que Git en sí fue diseñado para archivos de texto pequeños y no admite conjuntos de datos de aprendizaje automático típicos, que son muy grandes.
CI/CD para datos
Las metodologías de CI/CD se pueden aplicar a conjuntos de datos mediante el control de versiones de datos. [14] El control de versiones permite a los usuarios integrarse con servidores de automatización que permiten establecer un proceso de CI/CD para los datos. Al agregar plataformas de prueba al proceso, pueden garantizar una alta calidad del producto de datos. En este escenario, los equipos ejecutan pruebas de integración continua (CI) en los datos y establecen controles para garantizar que los datos se promuevan a producción solo cuando se cumplan todos los criterios de calidad y gobernanza de datos establecidos .
Experimentación en entornos aislados
Para experimentar con un conjunto de datos sin afectar los datos de producción, se puede utilizar el control de versiones de datos para crear réplicas del entorno de producción donde se pueden realizar pruebas. Dichas réplicas permiten probar y comprender los cambios aplicados a los datos de forma segura.
Las herramientas de control de versiones de datos permiten entornos de replicación sin necesidad de mantenimiento que consume tiempo y recursos. En cambio, estas herramientas permiten compartir objetos mediante metadatos.
Revertir
Los cambios continuos en los conjuntos de datos pueden causar problemas de funcionalidad o generar resultados no deseados, especialmente cuando las aplicaciones utilizan los datos. Las herramientas de control de versiones de datos permiten la posibilidad de revertir un conjunto de datos a un estado anterior. Esto se puede utilizar para restaurar o mejorar la funcionalidad de una aplicación o para corregir errores o datos incorrectos que se hayan incluido por error. [15]
Ejemplos
Fuentes de datos controladas por versiones:
- Kaggle [16]
- Edredón [17]
- Tonto [18]
- Camo [19]
Control de versiones de datos para lagos de datos:
- Lago FS [20]
- Proyecto Nessie [21]
- Git-LFS [22]
Sistemas ML-Ops que implementan el control de versiones de datos:
- DVC [23]
- Paquidermo [24]
- Neptuno [25]
- bucle activo [26]
- gravedad [27]
- centro de datos [28]
- alectio [29]
- Galileo [30]
- Voxel51 [31]
- pila d [32]
- DVD [33]
Véase también
Referencias
- ^ "Una guía para el control de versiones de datos de código abierto - Fuzzy Labs". www.fuzzylabs.ai . Consultado el 5 de enero de 2023 .
- ^ Snodgrass, Richard; Ahn, Ilsoo (1 de mayo de 1985). "Una taxonomía de bases de datos de tiempo". ACM SIGMOD Record . 14 (4): 236–246. doi :10.1145/971699.318921. ISSN 0163-5808.
- ^ Bases de datos temporales: teoría, diseño e implementación. Redwood City, California: Benjamin/Cummings Pub. Co. 1993. ISBN 978-0-8053-2413-6.
- ^ "Apache Hadoop cumple 10 años: el auge y la gloria de Hadoop". ProjectPro . Consultado el 18 de enero de 2023 .
- ^ Bryan, Jennifer (2 de enero de 2018). "Disculpe, ¿tiene un momento para hablar sobre el control de versiones?". The American Statistician . 72 (1): 20–27. doi :10.1080/00031305.2017.1399928. ISSN 0003-1305. S2CID 40975582.
- ^ Seering, Adam; Cudre-Mauroux, Philippe; Madden, Samuel; Stonebraker, Michael (1 de abril de 2012). "Versiones eficientes para bases de datos de matrices científicas". 2012 IEEE 28th International Conference on Data Engineering . págs. 1013–1024. doi :10.1109/ICDE.2012.102. hdl :1721.1/90380. ISBN 978-0-7695-4747-3.S2CID 9144420 .
- ^ Bhardwaj, Anant; Bhattacherjee, Souvik; Chavan, Amit; Deshpande, Amol; Elmore, Aaron J.; Enloquecer, Samuel; Parameswaran, Aditya G. (2 de septiembre de 2014). "DataHub: ciencia de datos colaborativa y gestión de versiones de conjuntos de datos a escala". arXiv : 1409.0798 [cs.DB].
- ^ "neptune.ai | Sobre nosotros, nuestra historia, equipo y Neptune en las noticias". neptune.ai . Consultado el 4 de enero de 2023 .
- ^ StartupStash. "Las 16 mejores herramientas de control de versiones de datos". Startup Stash . Consultado el 4 de enero de 2023 .
- ^ Aryan Jadon (26 de diciembre de 2022). "Estudio de herramientas de control de versiones de datos para operaciones de aprendizaje automático". Medium . Consultado el 27 de junio de 2023 .
- ^ Reproducibilidad y replicabilidad en la ciencia . Ingeniería y Medicina. Washington, DC. 2019. p. 114. ISBN 978-0-309-48617-0.OCLC 1122461743 .
{{cite book}}: CS1 maint: falta la ubicación del editor ( enlace ) CS1 maint: otros ( enlace ) - ^ "Control de versiones para proyectos de aprendizaje automático". Informatik Aktuell (en alemán) . Consultado el 5 de enero de 2023 .
- ^ "Optimización de la ciencia de datos con código abierto: control de versiones de datos y aprendizaje automático continuo". ZDNET . Consultado el 5 de enero de 2023 .
- ^ "La guía definitiva para el control de versiones de bases de datos, CI/CD e implementación". Database Star . 2020-02-01 . Consultado el 2023-01-18 .
- ^ "Control de versiones de datos: el método Turing". the-turing-way.netlify.app . Consultado el 5 de enero de 2023 .
- ^ "Día 1: Control de versiones de datos y creación de conjuntos de datos". kaggle.com . Consultado el 18 de enero de 2023 .
- ^ "Datos de colchas". Datos de colchas . Consultado el 18 de enero de 2023 .
- ^ Hall, Susan (19 de agosto de 2020). "Dolt, una base de datos relacional con funciones de clonación similares a las de Git". The New Stack . Consultado el 5 de enero de 2023 .
- ^ "X-MOL". en.x-mol.com . Consultado el 18 de enero de 2023 .
- ^ "Treeverse recauda 23 millones de dólares para llevar el control de versiones similar a Git a los lagos de datos". VentureBeat . 2021-07-28 . Consultado el 2023-01-05 .
- ^ "Acerca de Nessie - Proyecto Nessie: Catálogo transaccional para lagos de datos con semántica similar a Git". projectnessie.org . Consultado el 18 de enero de 2023 .
- ^ "Almacenamiento de archivos grandes en Git". Almacenamiento de archivos grandes en Git . Consultado el 5 de enero de 2023 .
- ^ Lardinois, Frederic (1 de junio de 2022). «Iterative lanza MLEM, una herramienta para simplificar la implementación de modelos ML». TechCrunch . Consultado el 18 de enero de 2023 .
- ^ "Las principales noticias de la semana sobre startups de IA: InstaDeep, DeepL, Pachyderm y más". VentureBeat . 2023-01-13 . Consultado el 2023-01-18 .
- ^ Ingle, Prathamesh (21 de octubre de 2022). "Las mejores herramientas de control de versiones de datos para la investigación de aprendizaje automático en 2022". MarkTechPost . Consultado el 18 de enero de 2023 .
- ^ Miller, Ron (2 de noviembre de 2021). "Activeloop obtiene $5 millones de capital inicial para crear una base de datos de streaming para aplicaciones de IA". TechCrunch . Consultado el 18 de enero de 2023 .
- ^ "Edward Cui, fundador y director ejecutivo de Graviti - Serie de entrevistas - Unite.AI". www.unite.ai . Consultado el 18 de enero de 2023 .
- ^ Ingle, Prathamesh (6 de octubre de 2022). "Las mejores herramientas para el seguimiento y la gestión de experimentos de aprendizaje automático (ML)". MarkTechPost . Consultado el 18 de enero de 2023 .
- ^ "Cómo diferenciarse de otros candidatos con inteligencia artificial centrada en los datos". KDnuggets . Consultado el 18 de enero de 2023 .
- ^ Shields, Ronan (5 de enero de 2023). "The Trade Desk intenta atraer a los anunciantes en el CES con 'Galileo', una apuesta por trazar un 'Internet abierto' sin cookies". Digiday . Consultado el 18 de enero de 2023 .
- ^ Wiggers, Kyle (21 de septiembre de 2022). "Voxel51 obtiene fondos para su plataforma de gestión de datos no estructurados". TechCrunch . Consultado el 18 de enero de 2023 .
- ^ Cheptsov, Andrey. "Flujos de trabajo de ML reproducibles para equipos - dstack". docs.dstack.ai . Consultado el 18 de enero de 2023 .
- ^ Katz, William T.; Plaza, Stephen M. (2019). "DVID: servicio de datos distribuido y versionado orientado a imágenes". Frontiers in Neural Circuits . 13 : 5. doi : 10.3389/fncir.2019.00005 . ISSN 1662-5110. PMC 6371063 . PMID 30804760.