Контроль версий данных — это метод работы с наборами данных . Он похож на системы контроля версий , используемые в традиционной разработке программного обеспечения, но оптимизирован для лучшей обработки данных и совместной работы в контексте аналитики данных, исследований и любой другой формы анализа данных. Контроль версий данных может также включать в себя специальные функции и конфигурации, разработанные для облегчения работы с большими наборами данных и озерами данных . [1]
Еще в 1985 году исследователи осознали необходимость определения атрибутов синхронизации в таблицах баз данных, которые были бы необходимы для отслеживания изменений в базах данных . [2] Эти исследования продолжались в 1990-х годах, и теория была формализована в практические методы управления данными в реляционных базах данных , [3] предоставив некоторые из основополагающих концепций для того, что позже стало контролем версий данных.
В начале 2010-х годов размер наборов данных стремительно увеличивался, и реляционные базы данных уже не могли управлять теми объемами данных, которые накапливали организации. Развитие экосистемы Apache Hadoop с HDFS в качестве уровня хранения, а позднее и объектного хранилища стало доминирующим в операциях с большими данными. [4] Исследования в области инструментов управления данными и систем контроля версий данных резко возросли, наряду со спросом на такие инструменты как со стороны академических кругов, так и со стороны частного и государственного секторов. [5]
Первая версионная база данных была предложена в 2012 году для базы данных SciDB и продемонстрировала возможность создания цепочек и деревьев различных версий базы данных при одновременном уменьшении как общего размера хранилища, так и скорости доступа, связанной с предыдущими методами. [6] В 2014 году было сделано предложение обобщить эти принципы в платформу, которую можно было бы использовать для любого приложения. [7]
В 2016 году прототип системы контроля версий данных был разработан во время соревнования Kaggle . Это программное обеспечение впоследствии использовалось внутри компании, занимающейся ИИ , и в конечном итоге выделилось в стартап . [8] С тех пор было разработано и предложено на коммерческой основе несколько систем контроля версий данных, как с открытым , так и с закрытым исходным кодом , [9] с подмножеством, специально предназначенным для машинного обучения. [10]
Широкий спектр научных дисциплин принял автоматизированный анализ больших объемов данных, включая астрофизику , сейсмологию , биологию и медицину , социальные науки и экономику и многие другие области. Принцип воспроизводимости является важным аспектом формализации результатов в научных дисциплинах, а в контексте науки о данных представляет ряд проблем. Большинство наборов данных постоянно меняются, будь то из-за добавления большего количества данных или изменений в структуре и формате данных, и небольшие изменения могут иметь существенное влияние на результаты экспериментов. Контроль версий данных позволяет регистрировать точное состояние наборов данных в определенный момент времени, что упрощает воспроизведение и понимание экспериментальных результатов. [11] Если специалисты по работе с данными могут знать только текущее состояние данных, они могут столкнуться с рядом проблем, таких как трудности при отладке проблем или соблюдении требований аудита данных .
Контроль версий данных иногда используется при тестировании и разработке приложений, взаимодействующих с большими объемами данных. Некоторые инструменты контроля версий данных позволяют пользователям создавать копии своей производственной среды для целей тестирования. Такой подход позволяет им тестировать процессы интеграции данных, такие как извлечение, преобразование и загрузка ( ETL ), и понимать изменения, внесенные в данные, не оказывая негативного влияния на потребителей производственных данных.
В контексте машинного обучения контроль версий данных может использоваться для оптимизации производительности моделей. Он может позволить автоматизировать процесс анализа результатов с различными версиями набора данных для постоянного улучшения производительности. [12] Возможно, что программное обеспечение для контроля версий данных с открытым исходным кодом может устранить необходимость в фирменных платформах ИИ, расширив такие инструменты, как Git и CI/CD, для использования инженерами машинного обучения. [13] Многие решения с открытым исходным кодом построены на семантике, подобной Git, для предоставления этих возможностей, поскольку сам Git был разработан для небольших текстовых файлов и не поддерживает типичные наборы данных машинного обучения, которые очень велики.
Методологии CI/CD могут применяться к наборам данных с использованием контроля версий данных. [14] Контроль версий позволяет пользователям интегрироваться с серверами автоматизации, которые позволяют устанавливать процесс CI/CD для данных. Добавляя в процесс платформы тестирования, они могут гарантировать высокое качество продукта данных. В этом сценарии команды выполняют тесты непрерывной интеграции (CI) на данных и устанавливают проверки на месте, чтобы гарантировать, что данные передаются в производство только при соблюдении всех установленных критериев качества данных и управления данными .
Чтобы экспериментировать с набором данных, не влияя на производственные данные, можно использовать управление версиями данных для создания реплик производственной среды , где можно проводить тесты. Такие реплики позволяют тестировать и понимать изменения, безопасно применяемые к данным.
Инструменты управления версиями данных позволяют создавать среды репликации без затратного по времени и ресурсам обслуживания. Вместо этого такие инструменты позволяют совместно использовать объекты с использованием метаданных.
Постоянные изменения в наборах данных иногда могут вызывать проблемы с функциональностью или приводить к нежелательным результатам, особенно когда приложения используют данные. Инструменты управления версиями данных позволяют откатить набор данных к более раннему состоянию. Это можно использовать для восстановления или улучшения функциональности приложения или для исправления ошибок или неверных данных, которые были ошибочно включены. [15]
Источники данных с контролем версий:
Контроль версий данных для озер данных:
Системы ML-Ops, реализующие контроль версий данных:
{{cite book}}
: CS1 maint: местоположение отсутствует издатель ( ссылка ) CS1 maint: другие ( ссылка )