Контроль версий данных (программное обеспечение)
![]() | |
Оригинальный автор(ы) | Dmitry Petrov |
---|---|
Разработчик(и) | Iterative.ai |
Первоначальный выпуск | 4 мая 2017 г.; 5 лет назад |
Стабильная версия | 2.30.0 / 10 октября 2022 г.; 1 день назад |
Репозиторий | https://github.com/iterative/dvc |
Написано в | Питон |
Тип | Интерфейс командной строки машинного обучения |
Лицензия | Лицензия Апач 2.0 |
Веб-сайт | ДВС |
DVC — это бесплатная система версий с открытым исходным кодом , не зависящая от платформы, для данных , моделей машинного обучения и экспериментов. [1] Он создан для того, чтобы сделать модели машинного обучения доступными для совместного использования, а эксперименты — воспроизводимыми. [2] и отслеживать версии моделей, данных и конвейеров. [3] [4] [5] DVC работает поверх Git . репозиториев [6] и облачное хранилище . [7]
Первая (бета-версия) DVC 0.6 была выпущена в мае 2017 года. [8] В мае 2020 года компания Iterative.ai публично выпустила DVC 1.0. [9]
Обзор
[ редактировать ]DVC разработан с учетом лучших практик разработки программного обеспечения. [10] в машинного обучения рабочие процессы . [11] Это достигается за счет расширения традиционного программного инструмента Git за счет облачных хранилищ для наборов данных и моделей машинного обучения. [12]
В частности, DVC выполняет операции машинного обучения:
- Кодифицированный: он кодифицирует наборы данных и модели, сохраняя указатели на файлы данных в облачных хранилищах . [3]
- Воспроизводимость: позволяет пользователям воспроизводить эксперименты, [13] и восстанавливать наборы данных из необработанных данных . [14] Эти функции также позволяют автоматизировать создание наборов данных, обучение, оценку и развертывание моделей машинного обучения. [15]
DVC и Git
[ редактировать ]DVC хранит большие файлы и наборы данных в отдельном хранилище вне Git . [3] Это хранилище может находиться на компьютере пользователя или у любого крупного поставщика облачных хранилищ. [16] [5] такие как AWS S3 , Google Cloud Storage и Microsoft Azure Blob Storage. [17] [18] Пользователи DVC также могут настроить удаленный репозиторий на любом сервере и удаленно подключаться к нему. [3]
создается текстовый файл Когда пользователь сохраняет свои данные и модели в удаленном хранилище, в его репозитории Git , который указывает на фактические данные в удаленном хранилище. [2]
Функции
[ редактировать ]Функции DVC можно разделить на три категории: управление данными , конвейеры и отслеживание экспериментов. [19] [20] [18]
Управление данными
[ редактировать ]Управление версиями данных и моделей является базовым уровнем. [21] DVC для больших файлов, наборов данных и машинного обучения моделей . Он позволяет использовать стандартный Git рабочий процесс , но без необходимости хранить эти файлы в репозитории. Большие файлы, каталоги и модели ML заменяются небольшими метафайлами , которые, в свою очередь, указывают на исходные данные. Данные хранятся отдельно, что позволяет специалистам по данным передавать большие наборы данных или делиться моделью с другими. [6]
DVC обеспечивает управление версиями данных посредством кодификации. [22] Когда пользователь создает метафайлы, описывающие, какие наборы данных, артефакты машинного обучения и другие функции необходимо отслеживать, DVC позволяет захватывать версии данных и моделей, создавать и восстанавливать из снимков, записывать изменяющиеся метрики, переключаться между версиями и т. д. [6]
Уникальные версии файлов и каталогов данных кэшируются . [23] систематическим образом (также предотвращая дублирование файлов). Рабочее хранилище данных отделено от рабочего пространства пользователя, чтобы облегчить проект, но остается подключенным через ссылки на файлы, автоматически обрабатываемые DVC. [24]
Трубопроводы
[ редактировать ]DVC предоставляет механизм для определения и выполнения конвейеров . [25] [26] Конвейеры представляют собой процесс создания наборов данных и моделей машинного обучения, от предварительной обработки данных до обучения и оценки моделей. [27] Конвейеры также можно использовать для развертывания моделей в производственных средах.
Конвейер DVC ориентирован на этап экспериментирования процесса машинного обучения. Пользователи могут запускать несколько копий конвейера DVC, клонируя репозиторий Git с помощью конвейера или проводя эксперименты по машинному обучению. Они также могут записывать рабочий процесс в виде конвейера и воспроизводить его. [28] это в будущем.
Конвейеры представлены в коде как yaml
[29] файлы конфигурации . Эти файлы определяют этапы конвейера и то, как данные и информация передаются от одного этапа к другому.
При запуске конвейера артефакты, созданные этим конвейером, регистрируются в файле dvc.lock file
. [30] lockfile
записывает выполненные этапы и сохраняет хэш результирующего результата для каждого этапа. [25] Это не только запись выполнения конвейера, но также полезна при принятии решения о том, какие шаги необходимо повторить при последующих запусках конвейера. [27] [19]
Отслеживание экспериментов
[ редактировать ]Отслеживание экспериментов позволяет разработчикам исследовать, повторять и сравнивать различные эксперименты по машинному обучению. [21] [19]
Каждый эксперимент представляет собой вариант проекта по науке о данных, определяемый изменениями в рабочей области. Эксперименты сохраняют ссылку на коммит в текущей ветке (Git HEAD
) [31] в качестве их родительского или базового уровня. Однако они не являются частью обычного дерева Git (если не сделаны постоянными). [32] Это предотвращает переполнение пользовательского репозитория временными коммитами и ветвями.
Распространенные случаи использования [33] для экспериментов есть:
- Сравнение архитектур моделей
- Сравнение наборов данных обучения или оценки
- Выбор гиперпараметров модели
Экспериментами DVC можно управлять и визуализировать их либо из VS Code IDE. [34] или онлайн с помощью Iterative Studio. [35] Визуализация [36] позволяет каждому пользователю визуально сравнивать результаты экспериментов, отслеживать графики и генерировать их с помощью интеграции библиотеки.
DVC предлагает несколько вариантов [36] для использования визуализации в обычном рабочем процессе:
- DVC может создавать файлы HTML , которые включают интерактивные графики из рядов данных в формате JSON , YAML , CSV или TSV.
- DVC может отслеживать файлы изображений, созданные в качестве выходных данных. [37] из сценариев обучения/оценки
- DVCLive [38] интеграции могут автоматически создавать графики во время обучения
Расширение DVC VS Code
[ редактировать ]В 2022 году Iterative выпустила бесплатное расширение. [39] для Visual Studio Code (VS Code), редактора исходного кода, созданного Microsoft , который предоставляет пользователям VS Code возможность использовать DVC в своих редакторах с дополнительными функциями пользовательского интерфейса . [40] [41]
История
[ редактировать ]В 2017 году [42] [43] первая (бета) версия DVC 0.6 [44] был публично выпущен (как простой инструмент командной строки). [43] Это позволило ученым, работающим с данными, отслеживать процессы машинного обучения и зависимости файлов в простой форме команд, подобных git. Это также позволило им преобразовать существующие процессы машинного обучения в воспроизводимые конвейеры DVC. DVC 0.6 решил большинство распространенных проблем, с которыми сталкивались инженеры по машинному обучению и специалисты по обработке данных: воспроизводимость экспериментов по машинному обучению, а также управление версиями данных и низкий уровень сотрудничества между командами.
Компания DVC, созданная бывшим специалистом по данным Microsoft Дмитрием Петровым, стремилась интегрировать лучшие существующие практики разработки программного обеспечения в операции машинного обучения. [45]
В 2018 году [46] Дмитрий Петров вместе с инженером и предпринимателем Иваном Щеклеином основали Iterative.ai, [4] [47] компания MLOps, продолжившая развитие DVC. Помимо DVC, Iterative.ai также поддерживает инструменты с открытым исходным кодом, такие как CML, MLEM и Studio, корпоративную версию инструментов с открытым исходным кодом.
В июне 2020 года [48] Команда Iterative.ai выпустила DVC 1.0. В результате обсуждений и вклада сообщества были добавлены новые функции, такие как многоэтапные файлы DVC, кэш выполнения, графики, оптимизация передачи данных, отслеживание гиперпараметров и циклы стабильных выпусков.
В марте 2021 года [49] DVC выпустила DVC 2.0, в котором представлены эксперименты ML (управление экспериментами), контрольные точки модели и журналирование показателей.
Эксперименты с машинным обучением. Чтобы решить проблему накладных расходов Git, когда в течение одного дня необходимо проводить сотни экспериментов и для каждого запуска эксперимента требуются дополнительные команды Git, в DVC 2.0 появилась функция облегченных экспериментов . Он позволяет пользователям автоматически отслеживать эксперименты по машинному обучению и фиксировать изменения кода.
Это устранило зависимость от дополнительных услуг. [50] сохраняя версии данных в виде метаданных в Git, а не передавая их во внешние базы данных или API. [51]
Управление версиями контрольных точек модели ML. В новой версии также поддерживается управление версиями всех контрольных точек с соответствующим кодом и данными.
Ведение журнала метрик: в DVC 2.0 представлена новая библиотека с открытым исходным кодом DVC-Live , которая предоставит функциональные возможности для отслеживания метрик модели и организации метрик таким образом, чтобы DVC мог визуализировать их с помощью навигации по истории Git.
Альтернативные решения DVC
[ редактировать ]Существует несколько проектов с открытым исходным кодом, которые предоставляют возможности контроля версий данных, аналогичные DVC. [52] такие как: Git LFS , Dolt , Nessie и LakeFS . Эти проекты различаются по степени соответствия различным потребностям инженеров и специалистов по данным, таким как: масштабируемость, поддерживаемые форматы файлов, поддержка табличных и неструктурированных данных, объем поддерживаемых данных и многое другое.
Ссылки
[ редактировать ]- ^ Хеваге Нипуни, Медения Дулани (февраль 2022 г.). «Операции машинного обучения: обзор поддержки инструмента MLOps» . Исследовательские ворота . arXiv : 2202.10169 .
- ^ Перейти обратно: а б Баррак Амин, Иган Эллис Э., Адамс Брэм (март 2021 г.). «О совместной эволюции конвейеров ML и исходного кода — эмпирическое исследование проектов DVC» . IEEE Эксплор . Архивировано из оригинала 5 октября 2022 г. Проверено 5 октября 2022 г.
- ^ Перейти обратно: а б с д Иванчич, Кристиан. «Контроль версий данных с помощью Python и DVC» . Настоящий Питон . Архивировано из оригинала 5 октября 2022 г. Проверено 5 октября 2022 г.
- ^ Перейти обратно: а б Виггерс, Кайл. «Стартап MLOps Iterative.ai получил 20 миллионов долларов» . ВенчурБит . Архивировано из оригинала 5 октября 2022 г. Проверено 5 октября 2022 г.
- ^ Перейти обратно: а б «Итеративная компания MLOps достигнет значительного роста клиентов и компании в 2021 году» . Деловой провод . Архивировано из оригинала 5 октября 2022 г. Проверено 5 октября 2022 г.
- ^ Перейти обратно: а б с Холл, Сьюзен (4 февраля 2021 г.). «Iterative.ai: инструменты машинного обучения на основе Git для инженеров машинного обучения» . Новый стек . Архивировано из оригинала 5 октября 2022 года . Проверено 5 октября 2022 г.
- ^ «Что такое ДВК?» . Руководство по МЛОпс . Архивировано из оригинала 5 октября 2022 г. Проверено 5 октября 2022 г.
- ^ Петров Дмитрий. «Предварительная версия DVC 3 года и 1.0» . Итеративный.ai . Архивировано из оригинала 5 октября 2022 г. Проверено 5 октября 2022 г.
- ^ Анадиотис, Джордж. «Оптимизация науки о данных с помощью открытого исходного кода: контроль версий данных и непрерывное машинное обучение» . ЗДНЕТ . Архивировано из оригинала 5 октября 2022 г. Проверено 5 октября 2022 г.
- ^ Петров Дмитрий. «Дорога в ад ИИ начинается с добрых намерений MLOps» . Новый стек . Архивировано из оригинала 06 октября 2022 г. Проверено 6 октября 2022 г.
- ^ Эджаз, Нимра (6 октября 2021 г.). «Объяснение контроля версий данных» . Краудботика . Архивировано из оригинала 7 октября 2022 года . Проверено 7 октября 2022 г.
- ^ Лардинуа, Фредерик. «Iterative привлекает 20 миллионов долларов для своей платформы MLOps» . ТехКранч . Архивировано из оригинала 06 октября 2022 г. Проверено 6 октября 2022 г.
- ^ «Интервью AITech с Дмитрием Петровым, сооснователем и генеральным директором Iterative.ai» . Технопарк ИИ . 20 июля 2022 года. Архивировано из оригинала 6 октября 2022 года . Проверено 6 октября 2022 г.
- ^ «Версии данных для CD4ML – Часть 2» . ИИ Сингапур . Архивировано из оригинала 06 октября 2022 г. Проверено 6 октября 2022 г.
- ^ Баэна, Дэниел (2 марта 2022 г.). «Как построить эффективный рабочий процесс проекта машинного обучения с использованием контроля версий данных (DVC)» . Раппи Тех . Архивировано из оригинала 6 октября 2022 года . Проверено 6 октября 2022 г.
- ^ «Документация DVC. Поддерживаемые типы накопителей» . dvc.org/doc . Архивировано из оригинала 06 октября 2022 г. Проверено 6 октября 2022 г.
- ^ Визард, Майкл. «Iterative.ai обновляет платформу MLOps для оптимизации и поддержки облачной подготовки» . ВенчурБит . Архивировано из оригинала 06 октября 2022 г. Проверено 6 октября 2022 г.
- ^ Перейти обратно: а б Кулкарни, Амит (17 июня 2021 г.). «Отслеживание экспериментов по машинному обучению с помощью контроля версий данных» . Аналитика Видья . Архивировано из оригинала 6 октября 2022 года . Проверено 6 октября 2022 г.
- ^ Перейти обратно: а б с «Введение в управление версиями данных (DVC)» . Каггл . Архивировано из оригинала 06 октября 2022 г. Проверено 6 октября 2022 г.
- ^ Геррапен, Базиль (12 июля 2019 г.). «Использование DVC для создания эффективной системы контроля версий для проектов данных» . Путь Конто . Архивировано из оригинала 6 октября 2022 года . Проверено 6 октября 2022 г.
- ^ Перейти обратно: а б «Документация DVC. Начало работы» . dvc.org/doc . Архивировано из оригинала 06 октября 2022 г. Проверено 6 октября 2022 г.
- ^ «Документация DVC. Управление версиями данных и моделей» . dvc.org/doc . Архивировано из оригинала 06 октября 2022 г. Проверено 6 октября 2022 г.
- ^ «Документация DVC. Внутренние каталоги и файлы» . dvc.org/doc . Архивировано из оригинала 06 октября 2022 г. Проверено 6 октября 2022 г.
- ^ «Документация DVC. Оптимизация больших наборов данных» . dvc.org/doc . Архивировано из оригинала 06 октября 2022 г. Проверено 6 октября 2022 г.
- ^ Перейти обратно: а б «Работа с трубопроводами» . Руководство по МЛОпс . Архивировано из оригинала 06 октября 2022 г. Проверено 6 октября 2022 г.
- ^ «Документация DVC. Начало работы: конвейеры данных» . dvc.org/doc . Архивировано из оригинала 06 октября 2022 г. Проверено 6 октября 2022 г.
- ^ Перейти обратно: а б Идову Самуэль, Стрюбер Даниэль, Бергер Торстен (2021). «Управление активами в машинном обучении: опрос» . Система астрофизических данных (ADS) . arXiv : 2102.06919 .
- ^ Капур Саяш, Нараянан Арвинд (2022). «Утечка и кризис воспроизводимости в науке, основанной на машинном обучении» . Исследовательские ворота . arXiv : 2207.07048 . Архивировано из оригинала 28 июня 2024 г. Проверено 07 октября 2022 г.
- ^ «Документация DVC. dvc.yaml» . dvc.org/doc . Архивировано из оригинала 06 октября 2022 г. Проверено 6 октября 2022 г.
- ^ «Документация DVC. Файл dvc.lock» . dvc.org/doc . Архивировано из оригинала 06 октября 2022 г. Проверено 6 октября 2022 г.
- ^ «Документация DVC. Обзор экспериментов DVC» . dvc.org/doc . Архивировано из оригинала 07 октября 2022 г. Проверено 07 октября 2022 г.
- ^ «Документация DVC. Устойчивые эксперименты» . dvc.org/doc .
- ^ «Как мы отслеживаем наши эксперименты с данными» . Каперников . 26 января 2022 года. Архивировано из оригинала 6 октября 2022 года . Проверено 6 октября 2022 г.
- ^ «Расширение DVC для кода Visual Studio» . Визуальная студия. Рынок . Архивировано из оригинала 07 октября 2022 г. Проверено 07 октября 2022 г.
- ^ «Iterative представляет первый реестр моделей машинного обучения на базе Git» . Яху Финанс . Архивировано из оригинала 07 октября 2022 г. Проверено 07 октября 2022 г.
- ^ Перейти обратно: а б «Документация DVC. Начало работы: визуализация с помощью графиков» . dvc.org/doc . Архивировано из оригинала 07 октября 2022 г. Проверено 07 октября 2022 г.
- ^ «Документация DVC. Выходные показатели и графики» . dvc.org/doc . Архивировано из оригинала 07 октября 2022 г. Проверено 07 октября 2022 г.
- ^ «Документация DVC. DVCLive с DVC» . dvc.org/doc . Архивировано из оригинала 07 октября 2022 г. Проверено 07 октября 2022 г.
- ^ Николлс, Эмили (14 июня 2022 г.). «Iterative объявляет о бесплатном расширении кода Microsoft Visual Studio для ускорения разработки моделей машинного обучения» . ТФиР . Архивировано из оригинала 7 октября 2022 года . Проверено 7 октября 2022 г.
- ^ Бхартия, Свапнил (28 июня 2022 г.). «Расширение DVC компании Iterative превращает код VS в платформу для экспериментов с машинным обучением» . ТФиР . Архивировано из оригинала 28 июня 2024 года . Проверено 7 октября 2022 г.
- ^ Аван, Абид Али. «12 основных расширений VSCode для науки о данных» . КДнаггетс . Архивировано из оригинала 28 июня 2024 г. Проверено 07 октября 2022 г.
- ^ «Предварительная версия DVC 3 года и 1.0» . Итеративный.ai . 4 мая 2020 года. Архивировано из оригинала 5 октября 2022 года . Проверено 5 октября 2022 г.
- ^ Перейти обратно: а б «Объяснение контроля версий данных» . Краудботика . 6 октября 2021 года. Архивировано из оригинала 7 октября 2022 года . Проверено 7 октября 2022 г.
- ^ Петров Дмитрий. «Контроль версий данных: итеративное машинное обучение» . КДнаггетс . Архивировано из оригинала 02 декабря 2022 г. Проверено 2 декабря 2022 г.
- ^ Васкес, Фавио (17 апреля 2019 г.). «Контроль версий данных с помощью DVC. Что говорят авторы?» . На пути к науке о данных . Архивировано из оригинала 2 декабря 2022 года . Проверено 2 декабря 2022 г.
- ^ Смолакс, Макс. «Iterative.ai предлагает альтернативу AWS SageMaker и Azure ML Engineer с открытым исходным кодом» . ИИ-бизнес . Архивировано из оригинала 02 декабря 2022 г. Проверено 2 декабря 2022 г.
- ^ Сингх, Свастик (3 июня 2021 г.). «Стартап с открытым исходным кодом Iterative.ai привлекает 20 миллионов долларов США» . VCBay . Архивировано из оригинала 2 декабря 2022 года . Проверено 2 декабря 2022 г.
- ^ «Выпуск DVC 1.0: новые возможности для MLOps» . Итеративный.ai . 22 июня 2020 года. Архивировано из оригинала 2 декабря 2022 года . Проверено 2 декабря 2022 г.
- ^ «Релиз DVC 2.0» . Итеративный.ai . 3 марта 2021 года. Архивировано из оригинала 2 декабря 2022 года . Проверено 2 декабря 2022 г.
- ^ «Документация DVC. Управление экспериментом» . dvc.org/doc . Архивировано из оригинала 8 октября 2022 г. Проверено 07 октября 2022 г.
- ^ «Документация DVC. Сопутствующие технологии» . dvc.org/doc . Архивировано из оригинала 02 декабря 2022 г. Проверено 2 декабря 2022 г.
- ^ Орр, Эйнат (25 июля 2022 г.). «Версионирование данных как карточка «Выйти из тюрьмы» — DVC против Git-LFS против dolt против LakeFS» . озероФС . Архивировано из оригинала 23 ноября 2022 года . Проверено 23 ноября 2022 г.
Внешние ссылки
[ редактировать ]- Бесплатное программное обеспечение, написанное на Python.
- Программное обеспечение, использующее лицензию Apache
- Библиотеки Python (языка программирования)
- Программное обеспечение Python (язык программирования)
- Программное обеспечение для интеллектуального анализа данных и машинного обучения
- программное обеспечение 2017 года