'
Научный журнал «Вестник науки»

Режим работы с 09:00 по 23:00

zhurnal@vestnik-nauki.com

Информационное письмо

  1. Главная
  2. Архив
  3. Вестник науки №12 (93) том 3
  4. Научная статья № 161

Просмотры  57 просмотров

Новоселов Д.И., Журюкин А.С.

  


ОРГАНИЗАЦИЯ ПРОЦЕССОВ ВЕРСИОНИРОВАНИЯ ДАННЫХ С ИСПОЛЬЗОВАНИЕМ DATA VERSION CONTROL *

  


Аннотация:
статья посвящена организации процессов версионирования данных с применения инструмента Data Version Control. Задача организованной воспроизводимости экспериментов становится в наше время актуальной в связи развитием технологий машинного обучения. В отличие от исходного кода, который управляется с помощью систем контроля версий, такие как Git, данные в ML-проектах долгое время оставались вне систематизированного версионирования, это затрудняло отладку, воспроизведение результатов и совместную работу. Data Version Control позволяет фиксировать изменения, переключаться между версиями, интегрироваться с Git и синхронизироваться через удалённое хранилище.   

Ключевые слова:
версионирование данных, воспроизводимость экспериментов, машинное обучение, управление данными   


В данной работе исследуется применение инструмента Data Version Control для организации процессов версионирования данных. Представлен практический пример управления версиями тестового датасета, демонстрирующий функционал DVC: фиксацию изменений, переключение между версиями, синхронизацию через удалённое хранилище и интеграцию с Git. Цель исследования.Целью исследования является комплексное изучение подходов к организации версионирования данных в проектах машинного и практическая реализация рабочего процесса управления версиями датасета с использованием специализированного инструмента Data Version Control (DVC). Понятие версионирования и его роль в разработке программного обеспечения.Версионирование – это процесс фиксации изменений в файлах или наборах данных с возможностью отката к предыдущим состояниям [1,2]. В разработке программного обеспечения системы контроля версий стали неотъемлемой частью рабочего процесса. Наиболее распространённой из них является Git – это распределённая система, позволяющая отслеживать каждое изменение в исходном коде, организовывать совместную работу команды, вести историю разработки и легко восстанавливать работоспособные состояния проекта.Основные принципы Git включают:хранение изменений в виде коммитов (фиксированных снимков состояния),использование ветвления для параллельной разработки,возможность слияния и разрешения конфликтов,распределённую архитектуру, при которой каждый разработчик имеет полную копию истории.Но Git изначально проектировался для работы с текстовыми файлами небольшого размера. Попытки хранить в Git большие бинарные файлы (например, датасеты, модели, изображения) приводят к резкому увеличению размера репозитория, замедлению операций клонирования и невозможности эффективного сравнения изменений.Методы версионирования данных.На сегодняшний день существует несколько методов управления версиями данных, каждая из которых имеет свои преимущества и ограничения.1. Ручное управление (файловые копии).Самый простой, но наименее эффективный способ: создание копий файлов с суффиксами вроде _v1, _2024-10-01, _cleaned.Недостатки: высокий риск того, что пользователь может запутаться в версиях, дублирование данных, отсутствие связи с кодом, сложность отката.2. Использование баз данных с поддержкой временных версий.Некоторые системы управления базами данных позволяют хранить историю изменений строк, но такое подходит только для структурированных данных, требует инфраструктуры БД, не интегрируется с Git.3. Специализированные инструменты для ML версионирования.В последние годы появился ряд решений, ориентированных именно на задачи ML, среди этих решений Data Version Control (DVC) выделяется своей простотой и интеграцией с Git [3]. Архитектура и принципы работы Data Version Control (DVC).Data Version Control – это инструмент с открытым исходным кодом, который позиционируется как «Git для данных» и работает в связке с Git, дополняя его функциональность [1,4].Основные принципы DVC:1. метафайлы вместо данных в Git,2. при выполнении команды dvc add file.csv DVC вычисляет хеш-сумму файла (по умолчанию MD5), перемещает сам файл в локальный кэш (.dvc/cache/), создаёт небольшой текстовый файл file.csv.dvc, содержащий хеш, размер и путь.Именно этот. dvc-файл добавляется в Git. Таким образом, репозиторий остаётся лёгким, но содержит полную информацию о версии данных.Команды dvc push и dvc pull синхронизируют кэш с remote.DVC работает с любыми файлами: CSV, JSON, изображения и он может без проблем внедряться с популярными инструментами, например, MLflow (для трекинга экспериментов) [5].Практическая реализация версионирования данных с использованием DVCВ качестве тестового датасета использован файл patients.csv, содержащий синтетические данные о пациентах стационара (Рис. 1).Рис. 1. Датасет о пациентах стационараСтруктура датасета имеет следующие поля:patient_id – уникальный идентификатор пациента (в формате PAT-xxxxxxxx),name – ФИО пациента,age – возраст (в годах, целое число),arrival_date – дата поступления в стационар (в формате ГГГГ-ММ-ДД),departure_date – дата выписки,service – отделение/услуга (surgery, emergency, ICU, general_medicine),satisfaction – уровень удовлетворённости пациента (целое число от 0 до 100).Исходный датасет содержит 100 записей и имеет объём около 65 КБ. Сценарий изменений включает три этапа. Рассмотрим каждый из них подробнее.Версия A содержит первоначальный датасет с ошибками (включая age = 0 и, возможно, другие аномалии).В версии B исправлены ошибки, а также добавлено 10 новых пациентов.Версия C имеет отфильтрованные данные, например, оставление только записей с уровнем удовлетворённости больше 80 для анализа качества обслуживания.Для реализации проекта использовано следующее программное обеспечение:ОС Windows 11,Python 3.11,Git 2.43,DVC 3.45.0 (установлен через pip install dvc).Исходный файл patients.csv (версия A) находится здесь:dvc add data/raw/patients.csv (Рис.2).Рис. 2. Расположение исходного файлаВ результате файл переместился в кэш DVC (.dvc/cache/f5/7a08460b960e1165259b066ad22277), создан метафайл patients.csv.dvc (Рис. 3).Рис. 3. Содержимое метафайлаМетафайл добавлен в GIT (Рис. 4).Рис. 4. Комментарий к версии АДля создания версии B был выполнен следующий сценарий:значение age = 0 у пациента PAT-5b61868c заменено на медианное значение возраста для отделения ICU (62 года),добавлены 10 новых записей с корректными данными.Обновлённый файл сохранён в ту же директорию. Затем выполнены команды:dvc add data/raw/patients.csvgit add data/raw/patients.csv.dvcgit commit -m "Version B: The age error has been fixed, new patients have been added".DVC автоматически сгенерировал новый хеш и обновил.dvc-файл (Рис. 5).Рис. 5. Добавлена автоматически папка с новой версиейДля версии C был применён фильтр: оставлены только строки с satisfaction больше или равным 80. После сохранения файла повторно выполнены:dvc add data/raw/patients.csvgit add data/raw/patients.csv.dvcgit commit -m "Версия C: filtered satisfaction >= 80"На рисунке 6 показано как мы переходим на версию С, сколько добавлено и удалено строк в датасете.Рис. 6. Комментарий к версии СИстория версий проверена командой (Рис. 7):git log --oneline -- data/raw/patients.csv.dvcРис. 7. История версийДля проверки воспроизводимости выполнено переключение на версию A (Рис. 8):git checkout a573ee0dvc checkout.Рис. 8. Переключение на версию АДля демонстрации механизма резервного копирования настроено локальное удалённое хранилище (Рис. 9).Рис. 9. Настройка удалённого хранилищаПосле этого оказались в D:dvc-remote-storage. При клонировании проекта команда dvc pull успешно восстанавливает нужную версию, это подтверждает возможность совместной работы и резервного.Кроме того, протестировано сравнение версий (Рис. 10).Рис. 10. Показ в консоли информации об изменении датасетаЗаключение. В ходе работы были исследованы теоретические основы и реализован механизм версионирования данных с помощью Data Version Control.Анализ показал, что стандартные системы контроля версий не подходят для больших и часто изменяющихся файлов данных. DVC же отличается простотой внедрения и интеграцией с Git.В практической части продемонстрирован цикл управления данными: инициализация проекта, помещение датасета под контроль DVC, создание и фиксация версий в Git, восстановление и сравнение. Реализован сценарий с исправлением ошибок в данных, добавлением записей и фильтрацией по критериям. Показано, что командами git checkout и dvc checkout можно переключаться между версиями данных, обеспечивая воспроизводимость MLпроцессов.Также настроена локальная удалённая точка хранения, подтвердившая возможность резервного копирования и совместной работы без облачных сервисов.Data Version Control является эффективным, надёжным и доступным решением для организации процессов версионирования данных.   


Полная версия статьи PDF

Номер журнала Вестник науки №12 (93) том 3

  


Ссылка для цитирования:

Новоселов Д.И., Журюкин А.С. ОРГАНИЗАЦИЯ ПРОЦЕССОВ ВЕРСИОНИРОВАНИЯ ДАННЫХ С ИСПОЛЬЗОВАНИЕМ DATA VERSION CONTROL // Вестник науки №12 (93) том 3. С. 1362 - 1371. 2025 г. ISSN 2712-8849 // Электронный ресурс: https://www.вестник-науки.рф/article/27653 (дата обращения: 09.02.2026 г.)


Альтернативная ссылка латинскими символами: vestnik-nauki.com/article/27653



Нашли грубую ошибку (плагиат, фальсифицированные данные или иные нарушения научно-издательской этики) ?
- напишите письмо в редакцию журнала: zhurnal@vestnik-nauki.com


Вестник науки © 2025.    16+




* В выпусках журнала могут упоминаться организации (Meta, Facebook, Instagram) в отношении которых судом принято вступившее в законную силу решение о ликвидации или запрете деятельности по основаниям, предусмотренным Федеральным законом от 25 июля 2002 года № 114-ФЗ 'О противодействии экстремистской деятельности' (далее - Федеральный закон 'О противодействии экстремистской деятельности'), или об организации, включенной в опубликованный единый федеральный список организаций, в том числе иностранных и международных организаций, признанных в соответствии с законодательством Российской Федерации террористическими, без указания на то, что соответствующее общественное объединение или иная организация ликвидированы или их деятельность запрещена.