DVC es un sistema de versiones gratuito y de código abierto , independiente de la plataforma, para datos , modelos de aprendizaje automático y experimentos. [ 1 ] Está diseñado para que los modelos de ML sean compartibles, los experimentos reproducibles, [ 2 ] y para rastrear versiones de modelos, datos y pipelines. [ 3 ] [ 4 ] [ 5 ] DVC funciona sobre repositorios Git [ 6 ] y almacenamiento en la nube . [ 7 ]
La primera versión (beta) de DVC 0.6 se lanzó en mayo de 2017. [ 8 ] En mayo de 2020, Iterative.ai lanzó públicamente DVC 1.0. [ 9 ] En noviembre de 2025, lakeFS anunció su adquisición de DVC. [ 10 ]
Descripción general
DVC está diseñado para incorporar las mejores prácticas de desarrollo de software [ 11 ] en los flujos de trabajo de aprendizaje automático . [ 12 ] Lo hace extendiendo la herramienta de software tradicional Git con almacenamiento en la nube para conjuntos de datos y modelos de aprendizaje automático. [ 13 ]
En concreto, DVC realiza operaciones de aprendizaje automático:
- Codificado: codifica conjuntos de datos y modelos almacenando punteros a los archivos de datos en almacenamientos en la nube . [ 3 ]
- Reproducible: permite a los usuarios reproducir experimentos, [ 14 ] y reconstruir conjuntos de datos a partir de datos brutos . [ 15 ] Estas características también permiten automatizar la construcción de conjuntos de datos, el entrenamiento, la evaluación y el despliegue de modelos de ML. [ 16 ]
DVC y Git
DVC almacena archivos y conjuntos de datos grandes en un almacenamiento separado, fuera de Git . [ 3 ] Este almacenamiento puede estar en la computadora del usuario o alojado en cualquier proveedor importante de almacenamiento en la nube, [ 17 ] [ 5 ] como Amazon S3 , Google Cloud Storage y Microsoft Azure Blob Storage. [ 18 ] [ 19 ] Los usuarios de DVC también pueden configurar un repositorio remoto en cualquier servidor y conectarse a él de forma remota. [ 3 ]
Cuando un usuario almacena sus datos y modelos en el repositorio remoto, se crea un archivo de texto en su repositorio Git que apunta a los datos reales en el almacenamiento remoto. [ 2 ]
Características
Las características de DVC se pueden dividir en tres categorías: gestión de datos , flujos de trabajo y seguimiento de experimentos. [ 20 ] [ 21 ] [ 19 ]
Gestión de datos
El versionado de datos y modelos es la capa base [ 22 ] de DVC para archivos grandes, conjuntos de datos y modelos de aprendizaje automático . Permite el uso de un flujo de trabajo Git estándar , pero sin la necesidad de almacenar esos archivos en el repositorio. Los archivos grandes, los directorios y los modelos de ML se reemplazan con metarchivos pequeños , que a su vez apuntan a los datos originales. Los datos se almacenan por separado, lo que permite a los científicos de datos transferir grandes conjuntos de datos o compartir un modelo con otros. [ 6 ]
DVC permite el versionado de datos mediante codificación. [ 23 ] Cuando un usuario crea metarchivos que describen qué conjuntos de datos, artefactos de ML y otras características se deben rastrear, DVC permite capturar versiones de datos y modelos, crear y restaurar a partir de instantáneas, registrar métricas en evolución, cambiar entre versiones, etc. [ 6 ]
Las versiones únicas de los archivos y directorios de datos se almacenan en caché [ 24 ] de forma sistemática (lo que también evita la duplicación de archivos). El almacén de datos de trabajo está separado del espacio de trabajo del usuario para mantener el proyecto ligero, pero permanece conectado mediante enlaces de archivos gestionados automáticamente por DVC. [ 25 ]
oleoductos
DVC proporciona un mecanismo para definir y ejecutar pipelines . [ 26 ] [ 27 ] Los pipelines representan el proceso de creación de conjuntos de datos y modelos de ML, desde el preprocesamiento de los datos hasta el entrenamiento y la evaluación de los modelos. [ 28 ] Los pipelines también se pueden utilizar para implementar modelos en entornos de producción.
La canalización DVC se centra en la fase de experimentación del proceso de aprendizaje automático. Los usuarios pueden ejecutar varias copias de una canalización DVC clonando un repositorio Git que la contenga o ejecutando experimentos de aprendizaje automático. También pueden grabar el flujo de trabajo como una canalización y reproducirlo [ 29 ] en el futuro.
Las canalizaciones se representan en el código como yaml[ 30 ] archivos de configuración . Estos archivos definen las etapas de la canalización y cómo fluyen los datos y la información de un paso al siguiente.
Cuando se ejecuta una canalización, los artefactos producidos por ella se registran en un dvc.lock file. [ 31 ] El lockfileregistra las etapas que se ejecutaron y almacena un hash de la salida resultante para cada etapa. [ 26 ] No solo es un registro de la ejecución de la canalización, sino que también es útil para decidir qué pasos deben volver a ejecutarse en ejecuciones posteriores de la misma. [ 28 ] [ 20 ]
Seguimiento de experimentos
El seguimiento de experimentos permite a los desarrolladores explorar, iterar y comparar diferentes experimentos de aprendizaje automático. [ 22 ] [ 20 ]
Cada experimento representa una variación de un proyecto de ciencia de datos definido por cambios en el espacio de trabajo. Los experimentos mantienen un enlace al commit en la rama actual (Git HEAD) [ 32 ] como su padre o línea base. Sin embargo, no forman parte del árbol Git regular (a menos que se hagan persistentes). [ 33 ] Esto evita que los commits y ramas temporales saturen el repositorio de un usuario.
Los casos de uso comunes [ 34 ] para experimentos son:
- Comparación de arquitecturas de modelos
- Comparación de conjuntos de datos de entrenamiento o evaluación
- Selección de hiperparámetros del modelo
Los experimentos DVC se pueden gestionar y visualizar desde el IDE VS Code [ 35 ] o en línea mediante Iterative Studio [ 36 ] . La visualización [ 37 ] permite a cada usuario comparar visualmente los resultados de los experimentos, realizar un seguimiento de los gráficos y generarlos con integraciones de bibliotecas.
DVC ofrece varias opciones [ 37 ] para utilizar la visualización en un flujo de trabajo regular:
- DVC puede generar archivos HTML que incluyen gráficos interactivos a partir de series de datos en formato JSON , YAML , CSV o TSV.
- DVC puede realizar un seguimiento de los archivos de imagen producidos como salidas de gráficos [ 38 ] de los scripts de entrenamiento/evaluación.
- Las integraciones de DVCLive [ 39 ] pueden generar gráficos automáticamente durante el entrenamiento.
La extensión DVC para VS Code
En 2022, Iterative lanzó una extensión gratuita [ 40 ] para Visual Studio Code (VS Code), un editor de código fuente creado por Microsoft , que proporciona a los usuarios de VS Code la capacidad de usar DVC en sus editores con funcionalidad de interfaz de usuario adicional . [ 41 ] [ 42 ]
Historia
En 2017, [ 43 ] [ 44 ] se lanzó públicamente la primera versión (beta) de DVC 0.6 [ 45 ] (como una herramienta simple de línea de comandos). [ 44 ] Permitió a los científicos de datos realizar un seguimiento de sus procesos de aprendizaje automático y dependencias de archivos en forma simple de comandos tipo git. También les permitió transformar procesos de aprendizaje automático existentes en pipelines DVC reproducibles. DVC 0.6 resolvió la mayoría de los problemas comunes que enfrentaban los ingenieros de aprendizaje automático y los científicos de datos: la reproducibilidad de los experimentos de aprendizaje automático, así como el versionado de datos y los bajos niveles de colaboración entre equipos.
Creado por Dmitry Petrov, ex científico de datos de Microsoft, DVC tenía como objetivo integrar las mejores prácticas de desarrollo de software existentes en las operaciones de aprendizaje automático. [ 46 ]
En 2018, [ 47 ] Dmitry Petrov junto con Ivan Shcheklein, ingeniero y emprendedor, fundaron Iterative.ai, [ 4 ] [ 48 ] una empresa de MLOps que continuó el desarrollo de DVC. Además de DVC, Iterative.ai también está detrás de herramientas de código abierto como CML, MLEM y Studio, la versión empresarial de las herramientas de código abierto.
En junio de 2020, [ 49 ] el equipo de Iterative.ai lanzó DVC 1.0. Se agregaron nuevas características como archivos DVC de varias etapas, caché de ejecución, gráficos, optimizaciones de transferencia de datos, seguimiento de hiperparámetros y ciclos de lanzamiento estables como resultado de discusiones y contribuciones de la comunidad.
En marzo de 2021, [ 50 ] DVC lanzó DVC 2.0, que introdujo experimentos de ML (gestión de experimentos), puntos de control del modelo y registro de métricas.
Experimentos de aprendizaje automático: Para solucionar el problema de la sobrecarga de Git, que se produce cuando se necesitan ejecutar cientos de experimentos en un solo día y cada ejecución requiere comandos Git adicionales, DVC 2.0 introdujo la función de experimentos ligeros. Esta función permite a los usuarios realizar un seguimiento automático de los experimentos de aprendizaje automático y capturar los cambios en el código.
Esto eliminó la dependencia de servicios adicionales [ 51 ] al guardar las versiones de datos como metadatos en Git, en lugar de relegarlas a bases de datos o API externas. [ 52 ]
Control de versiones de los puntos de control del modelo ML: La nueva versión también permite controlar el versionado de todos los puntos de control con su código y datos correspondientes.
Registro de métricas: DVC 2.0 introdujo una nueva biblioteca de código abierto, DVC-Live , que proporcionaría funcionalidades para el seguimiento de las métricas del modelo y su organización de forma que DVC pudiera visualizarlas mediante la navegación en el historial de Git.
En junio de 2023, DVC 3.0 marcó una importante actualización arquitectónica y de compatibilidad para DVC. Esta versión introdujo un nuevo modelo de almacenamiento y hash de datos en el que el contenido de los archivos se hashea directamente, eliminando la normalización previa de los finales de línea CRLF. Como resultado, las nuevas salidas de DVC 3.x se almacenan en una caché y un diseño remoto revisados, mientras que los datos creados con DVC 2.x siguen siendo legibles. Para facilitar las transiciones, se añadió un comando de migración de caché. [ 53 ]
DVC 3.0 también eliminó varias características y comandos obsoletos para simplificar el sistema y alinearlos con el uso moderno de las canalizaciones. Esto incluía comandos de experimentos heredados, compatibilidad con puntos de control, el uso de .dvcarchivos como etapas de la canalización y formatos antiguos de gráficos, métricas y banderas de CLI. Las definiciones de canalización se consolidaron aún más en torno a dvc.yaml, y la eliminación de múltiples comandos y opciones reflejó una limpieza más amplia de la interfaz de línea de comandos . [ 54 ]
En general, la versión 3.0 hizo hincapié en la coherencia a largo plazo, abstracciones más claras y una experiencia de usuario optimizada , al tiempo que se conservaba el acceso retroactivo a los conjuntos de datos existentes. [ 55 ]
En noviembre de 2025, lakeFS anunció que había adquirido DVC, incluidas sus extensiones asociadas, entre ellas DVC Extension para VS Code y DVCLive. [ 56 ]
Soluciones alternativas para DVC
Existen varios proyectos de código abierto que proporcionan capacidades de control de versiones de datos similares a las de DVC, [ 57 ] tales como: Git LFS , Dolt , Nessie y lakeFS . Estos proyectos varían en su adecuación a las diferentes necesidades de los ingenieros y científicos de datos, tales como: escalabilidad , formatos de archivo compatibles, compatibilidad con datos tabulares y datos no estructurados , volumen de datos compatibles y más.
Referencias
- ↑ Hewage, Nipuni; Meedeniya, Dulani (2022). "Operaciones de aprendizaje automático: una revisión del soporte de herramientas MLOps". arXiv : 2202.10169 [ cs.SE ].
- 1 2 Barrak Amine, Eghan Ellis E., Adams Bram (marzo de 2021). "Sobre la coevolución de las canalizaciones de aprendizaje automático y el código fuente: estudio empírico de proyectos DVC" . Conferencia Internacional IEEE de 2021 sobre Análisis, Evolución y Reingeniería de Software (SANER) . págs. 422–433 . doi : 10.1109/SANER50967.2021.00046 . ISBN 978-1-7281-9630-5Archivado del original el 5 de octubre de 2022. Consultado el 5 de octubre de 2022 .
- 1 2 3 4 Ivancic, Kristijan. "Control de versiones de datos con Python y DVC" . Real Python . Archivado del original el 5 de octubre de 2022. Recuperado el 5 de octubre de 2022 .
- 1 2 Wiggers, Kyle. "La startup de MLOps Iterative.ai consigue 20 millones de dólares" . VentureBeat . Archivado del original el 5 de octubre de 2022. Consultado el 5 de octubre de 2022 .
- 1 2 "MLOps Company Iterative logra un crecimiento significativo de clientes y de la empresa en 2021" . Business Wire . Archivado del original el 5 de octubre de 2022. Recuperado el 5 de octubre de 2022 .
- 1 2 3 Hall, Susan (4 de febrero de 2021). "Iterative.ai: Herramientas de aprendizaje automático basadas en Git para ingenieros de ML" . The New Stack . Archivado del original el 5 de octubre de 2022. Recuperado el 5 de octubre de 2022 .
- ↑ "¿Qué es DVC?" . Guía MLOps . Archivado del original el 05-10-2022 . Consultado el 05-10-2022 .
- ↑ Petrov, Dmitry. "DVC 3 años y prelanzamiento 1.0" . Iterative.ai . Archivado del original el 5 de octubre de 2022. Consultado el 5 de octubre de 2022 .
- ↑ Anadiotis, George. "Agilización de la ciencia de datos con código abierto: control de versiones de datos y aprendizaje automático continuo" . ZDNET . Archivado del original el 5 de octubre de 2022. Consultado el 5 de octubre de 2022 .
- ↑ "lakeFS adquiere DVC, uniendo a pioneros del control de versiones de datos para acelerar los datos preparados para la IA" . lakeFS . Consultado el 12 de enero de 2026 .
- ↑ Petrov, Dmitry. "El camino al infierno de la IA comienza con buenas intenciones de MLOps" . The New Stack . Archivado del original el 6 de octubre de 2022. Recuperado el 6 de octubre de 2022 .
- ↑ Ejaz, Nimra (6 de octubre de 2021). "Control de versiones de datos explicado" . Crowdbotics . Archivado del original el 7 de octubre de 2022. Recuperado el 7 de octubre de 2022 .
- ↑ Lardinois, Frederic. "Iterative recauda 20 millones de dólares para su plataforma MLOps" . TechCrunch . Archivado del original el 6 de octubre de 2022. Consultado el 6 de octubre de 2022 .
- ↑ "Entrevista de AITech con Dmitry Petrov, cofundador y director ejecutivo de Iterative.ai" . AI Tech Park . 20 de julio de 2022. Archivado del original el 6 de octubre de 2022. Consultado el 6 de octubre de 2022 .
- ↑ "Control de versiones de datos para CD4ML – Parte 2" . AI Singapore . Archivado del original el 6 de octubre de 2022. Consultado el 6 de octubre de 2022 .
- ↑ Baena, Daniel (2 de marzo de 2022). "Cómo crear un flujo de trabajo eficiente para proyectos de aprendizaje automático utilizando el control de versiones de datos (DVC)" . Rappi Tech . Archivado del original el 6 de octubre de 2022. Recuperado el 6 de octubre de 2022 .
- ↑ "Documentación de DVC. Tipos de almacenamiento compatibles" . dvc.org/doc . Archivado del original el 6 de octubre de 2022. Consultado el 6 de octubre de 2022 .
- ↑ Vizard, Michael. "Iterative.ai actualiza la plataforma MLOps para optimizar y dar soporte al aprovisionamiento en la nube" . VentureBeat . Archivado del original el 6 de octubre de 2022. Consultado el 6 de octubre de 2022 .
- 1 2 Kulkarni, Amit (17 de junio de 2021). "Seguimiento de experimentos de ML con control de versiones de datos" . Analytics Vidhya . Archivado del original el 6 de octubre de 2022. Recuperado el 6 de octubre de 2022 .
- 1 2 3 "Introducción al control de versiones de datos (DVC)" . Kaggle . Archivado del original el 6 de octubre de 2022. Consultado el 6 de octubre de 2022 .
- ↑ Guerrapin, Basile (12 de julio de 2019). "Uso de DVC para crear un sistema de control de versiones eficiente para proyectos de datos" . The Qonto Way . Archivado del original el 6 de octubre de 2022. Recuperado el 6 de octubre de 2022 .
- 1 2 "Documentación de DVC. Primeros pasos" . dvc.org/doc . Archivado del original el 6 de octubre de 2022. Consultado el 6 de octubre de 2022 .
- ↑ "Documentación de DVC. Control de versiones de datos y modelos" . dvc.org/doc . Archivado del original el 6 de octubre de 2022. Consultado el 6 de octubre de 2022 .
- ↑ "Documentación de DVC. Directorios y archivos internos" . dvc.org/doc . Archivado del original el 6 de octubre de 2022. Consultado el 6 de octubre de 2022 .
- ↑ "Documentación de DVC. Optimización de grandes conjuntos de datos" . dvc.org/doc . Archivado del original el 6 de octubre de 2022. Consultado el 6 de octubre de 2022 .
- 1 2 "Trabajando con oleoductos" . Guía MLOps . Archivado del original el 06-10-2022 . Recuperado el 06-10-2022 .
- ↑ "Documentación de DVC. Primeros pasos: Canalizaciones de datos" . dvc.org/doc . Archivado del original el 6 de octubre de 2022. Consultado el 6 de octubre de 2022 .
- 1 2 Idowu, Samuel; Strüber, Daniel; Berger, Thorsten (2021). "Gestión de activos en aprendizaje automático: una revisión". arXiv : 2102.06919 [ cs.SE ].
- ^ Kapoor, Sayash; Narayanan, Arvind (2022). "Fugas y crisis de reproducibilidad en la ciencia basada en aprendizaje automático". arXiv : 2207.07048 [ cs.LG ].
- ↑ "Documentación de DVC. dvc.yaml" . dvc.org/doc . Archivado del original el 6 de octubre de 2022. Consultado el 6 de octubre de 2022 .
- ↑ "Documentación de DVC. Archivo dvc.lock" . dvc.org/doc . Archivado del original el 6 de octubre de 2022. Consultado el 6 de octubre de 2022 .
- ↑ "Documentación de DVC. Descripción general de los experimentos de DVC" . dvc.org/doc . Archivado del original el 7 de octubre de 2022. Consultado el 7 de octubre de 2022 .
- ↑ "Documentación de DVC. Experimentos persistentes" . dvc.org/doc .
- ↑ "Cómo hacemos seguimiento de nuestros experimentos de datos" . Kapernikov . 26 de enero de 2022. Archivado del original el 6 de octubre de 2022. Consultado el 6 de octubre de 2022 .
- ↑ "Extensión DVC para Visual Studio Code" . Visual Studio. Marketplace . Archivado del original el 7 de octubre de 2022. Consultado el 7 de octubre de 2022 .
- ↑ "Iterative presenta el primer registro de modelos de aprendizaje automático basado en Git" . Yahoo Finance . Archivado del original el 7 de octubre de 2022. Consultado el 7 de octubre de 2022 .
- 1 2 "Documentación de DVC. Primeros pasos: Visualización con gráficos" . dvc.org/doc . Archivado del original el 7 de octubre de 2022. Consultado el 7 de octubre de 2022 .
- ↑ "Documentación de DVC. Salidas de métricas y gráficos" . dvc.org/doc . Archivado del original el 7 de octubre de 2022. Consultado el 7 de octubre de 2022 .
- ↑ "Documentación de DVC. DVCLive con DVC" . dvc.org/doc . Archivado del original el 7 de octubre de 2022. Consultado el 7 de octubre de 2022 .
- ↑ Nicholls, Emily (14 de junio de 2022). "Iterative anuncia una extensión gratuita para Microsoft Visual Studio Code para acelerar la experiencia de desarrollo de modelos de aprendizaje automático" . TFiR . Archivado del original el 7 de octubre de 2022. Recuperado el 7 de octubre de 2022 .
- ↑ Bhartiya, Swapnil (28 de junio de 2022). "La extensión DVC de Iterative convierte VS Code en una plataforma de experimentación de ML" . TFiR . Archivado del original el 28 de junio de 2024. Consultado el 7 de octubre de 2022 .
- ↑ Awan, Abid Ali. "12 extensiones esenciales de VSCode para la ciencia de datos" . KDnuggets . Archivado del original el 28 de junio de 2024. Consultado el 7 de octubre de 2022 .
- ↑ "DVC 3 años y prelanzamiento 1.0" . Iterative.ai . 4 de mayo de 2020. Archivado del original el 5 de octubre de 2022. Recuperado el 5 de octubre de 2022 .
- 1 2 "Control de versiones de datos explicado" . Crowdbotics . 6 de octubre de 2021. Archivado del original el 7 de octubre de 2022. Recuperado el 7 de octubre de 2022 .
- ↑ Petrov, Dmitry. "Control de versiones de datos: aprendizaje automático iterativo" . KDnuggets . Archivado del original el 2 de diciembre de 2022. Consultado el 2 de diciembre de 2022 .
- ↑ Vázquez, Favio (17 de abril de 2019). "Control de versiones de datos con DVC. ¿Qué opinan los autores?" . Towards Data Science . Archivado del original el 2 de diciembre de 2022. Recuperado el 2 de diciembre de 2022 .
- ↑ Smolaks, Max. "Iterative.ai presenta una alternativa de código abierto a AWS SageMaker y Azure ML Engineer" . AI Business . Archivado del original el 2 de diciembre de 2022. Consultado el 2 de diciembre de 2022 .
- ↑ Singh, Swastik (3 de junio de 2021). "La startup de código abierto Iterative.ai recauda 20 millones de dólares" . VCBay . Archivado del original el 2 de diciembre de 2022. Consultado el 2 de diciembre de 2022 .
- ↑ "Lanzamiento de DVC 1.0: nuevas características para MLOps" . Iterative.ai . 22 de junio de 2020. Archivado del original el 2 de diciembre de 2022. Consultado el 2 de diciembre de 2022 .
- ↑ "Lanzamiento de DVC 2.0" . Iterative.ai . 3 de marzo de 2021. Archivado del original el 2 de diciembre de 2022. Consultado el 2 de diciembre de 2022 .
- ↑ "Documentación de DVC. Gestión de experimentos" . dvc.org/doc . Archivado del original el 8 de octubre de 2022. Consultado el 7 de octubre de 2022 .
- ↑ "Documentación de DVC. Tecnologías relacionadas" . dvc.org/doc . Archivado del original el 2 de diciembre de 2022. Consultado el 2 de diciembre de 2022 .
- ↑ treeverse. "Versión 3.0.0 · treeverse/dvc" . GitHub . Consultado el 12 de enero de 2026 .
- ↑ treeverse. "Versión 3.0.0 · treeverse/dvc" . GitHub . Consultado el 12 de enero de 2026 .
- ↑ treeverse. "Versión 3.0.0 · treeverse/dvc" . GitHub . Consultado el 12 de enero de 2026 .
- ↑ "lakeFS adquiere DVC, uniendo a pioneros del control de versiones de datos para acelerar los datos preparados para la IA" . lakeFS . Consultado el 12 de enero de 2026 .
- ↑ Orr, Einat (25 de julio de 2022). "El control de versiones de datos como tu carta de 'salida de la cárcel': DVC vs. Git-LFS vs. dolt vs. lakeFS" . lakeFS . Archivado del original el 23 de noviembre de 2022. Recuperado el 23 de noviembre de 2022 .
Enlaces externos
- Sitio web oficial
- dvc en GitHub
- Extensión de VS Code
- Software libre programado en Python
- Software que utiliza la licencia Apache.
- Bibliotecas de Python (lenguaje de programación)
- Software programado en Python
- Software de minería de datos y aprendizaje automático
- Software de 2017