Слайд 2
![ЧТО ЭТО? DVC - система контроля версий для дата-сетов и](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/116314/slide-1.jpg)
ЧТО ЭТО?
DVC - система контроля версий для дата-сетов и моделей искусственных
нейронных сетей.
Используется только в совокупности с основной системой контроля версий – GIT.
Слайд 3
![ЗАЧЕМ ЕЕ ИСПОЛЬЗОВАТЬ? Для сохранения результатов обучения моделей искусственных нейронных](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/116314/slide-2.jpg)
ЗАЧЕМ ЕЕ ИСПОЛЬЗОВАТЬ?
Для сохранения результатов обучения моделей искусственных нейронных сетей;
Для сохранения
дата-сетов;
Для сохранения модификаций дата-сетов и обученных моделей
Слайд 4
![ПОЧЕМУ НЕ GIT? DVC оперирует файлами больших размеров, добавление в](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/116314/slide-3.jpg)
ПОЧЕМУ НЕ GIT?
DVC оперирует файлами больших размеров, добавление в GIT файлов
более 20 МБ может существенно «раздуть» репозиторий;
Изменение тяжелого файла в гите, особенно если он носит бинарный характер (картинка, видео, музыкальный файл и т.д.) влечет отход от инкрементного принципа сохранения изменений файла в GIT и существенного увеличения размера репозитория.
Вышеописанные причины могут привести к парализации работы сервиса GIT-а.
Слайд 5
![КАК ХРАНИТ ФАЙЛЫ DVC? DVC не использует инкрементный подход к](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/116314/slide-4.jpg)
КАК ХРАНИТ ФАЙЛЫ DVC?
DVC не использует инкрементный подход к хранению изменений,
а хранит все версии файлов целиком.
Для хранения может использоваться множество способов: облачные сервисы, распределённое хранение файлов, хранение на жестком диске, хранение на сетевом диске.
Мы используем принцип хранения на облачном сервисе. В роли сервера облачного хранения используется MinIO, совместимый с Amazon S3.
Слайд 6
![ПОЧЕМУ НЕ HDFS? Требует выделение трех отдельных юнитов для адекватного](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/116314/slide-5.jpg)
ПОЧЕМУ НЕ HDFS?
Требует выделение трех отдельных юнитов для адекватного хранения;
Каждый юнит
использует тяжеловесные библиотеки на Java, что приводит к огромному потреблению оперативной памяти;
Разворачивание каждого юнита в докер-контейнерах на одной машине возможно, но нецелесообразно в условиях ограниченной оперативной памяти.
HDFS лучше использовать при наличии нескольких серверов для хранения информации и при хранении больших объемов данных (более 20 ТБ).
Слайд 7
![DVC. ОСНОВНЫЕ КОМАНДЫ dvc init dvc remote add dvc remote](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/116314/slide-6.jpg)
DVC. ОСНОВНЫЕ КОМАНДЫ
dvc init
dvc remote add
dvc remote modify
dvc add
dvc push
dvc pull
Слайд 8
![DVC INIT dvc init Команда для инициализации DVC в данной директории.](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/116314/slide-7.jpg)
DVC INIT
dvc init
Команда для инициализации DVC в данной директории.
Слайд 9
![DVC REMOTE ADD dvc remote add -d myremote /path/to/remote Команда для добавления удаленного репозитория.](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/116314/slide-8.jpg)
DVC REMOTE ADD
dvc remote add -d myremote /path/to/remote
Команда для добавления удаленного
репозитория.
Слайд 10
![DVC REMOTE MODIFY dvc remote modify newremote endpointurl https://object-storage.example.com Команда для модификации настроек удаленного репозитория.](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/116314/slide-9.jpg)
DVC REMOTE MODIFY
dvc remote modify newremote endpointurl https://object-storage.example.com
Команда для модификации настроек
удаленного репозитория.
Слайд 11
![DVC ADD dvc add [-h] [-q | -v] [-R] [--no-commit]](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/116314/slide-10.jpg)
DVC ADD
dvc add [-h] [-q | -v] [-R] [--no-commit] [-f ]
targets [targets ...]
Команда для отметки файла(-ов) готовых к сохранению состояния. Данная команда создает файлы-метки.
Файл-метка – описание для DVC какой-именно файл ему забирать. Файл-метка имеет следующее название: <Старое название файла>.dvc
Слайд 12
![DVC PUSH dvc push [-h] [-q | -v] [-j ]](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/116314/slide-11.jpg)
DVC PUSH
dvc push [-h] [-q | -v] [-j ]
[-r ]
[-a] [-T] [-d] [-R] [--all-commits]
[targets [targets ...]]
Команда для загрузки изменения файлов в удаленный репозиторий.
Слайд 13
![DVC PULL dvc pull [-h] [-q | -v] [-j ]](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/116314/slide-12.jpg)
DVC PULL
dvc pull [-h] [-q | -v] [-j ]
[-r ]
[-a] [-T] [-d] [-f] [-R] [--all-commits]
[targets [targets ...]]
Команда для загрузки изменений с удаленного репозитория.
Слайд 14
![DVC ОСНОВНЫЕ СТРАТЕГИИ ИСПОЛЬЗОВАНИЯ Создание репозитория и его настройка Фиксация изменений файла(-ов). Загрузка новых версий файла(-ов).](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/116314/slide-13.jpg)
DVC ОСНОВНЫЕ СТРАТЕГИИ ИСПОЛЬЗОВАНИЯ
Создание репозитория и его настройка
Фиксация изменений файла(-ов).
Загрузка новых
версий файла(-ов).
Слайд 15
![СОЗДАНИЕ РЕПОЗИТОРИЯ И ЕГО НАСТРОЙКА Команды: dvc init dvc remote](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/116314/slide-14.jpg)
СОЗДАНИЕ РЕПОЗИТОРИЯ И ЕГО НАСТРОЙКА
Команды:
dvc init
dvc remote add -d origin s3://ref-info-processing
dvc
remote modify origin endpointurl https://minio.ies.mrsu.ru
Первая команда инициализирует DVC репозиторий.
Вторая команда добавляет новый удаленный репозиторий. Как удаленный репозиторий используется облачное хранилище S3.
Третья команда указывает где именно находится удаленный репозиторий.
Слайд 16
![ФИКСАЦИЯ ИЗМЕНЕНИЯ ФАЙЛА(-ОВ) Команды: dvc add data/file1.txt dvc add data/file2.xlsx](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/116314/slide-15.jpg)
ФИКСАЦИЯ ИЗМЕНЕНИЯ ФАЙЛА(-ОВ)
Команды:
dvc add data/file1.txt
dvc add data/file2.xlsx data/file3.mp3
git add data/file1.txt.dvc data/file2.xlsx.dvc
data/file3.mp3.dvc
dvc push
git commit –m “Comment”
git push origin my_branch
Первые две команды показывают варианты добавления изменений файла и файлов (соответственно) в DVC.
Далее мы добавляем в GIT новые версии файлов-меток для DVC (файлы с расширением .dvc).
После этого отправляем изменения в DVC.
Делаем коммит в GIT и отправляем его на удаленный репозиторий.
Слайд 17
![ЗАГРУЗКА НОВЫХ ВЕРСИЙ ФАЙЛА(-ОВ) Команды: git pull origin my_branch dvc](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/116314/slide-16.jpg)
ЗАГРУЗКА НОВЫХ ВЕРСИЙ ФАЙЛА(-ОВ)
Команды:
git pull origin my_branch
dvc pull
Сначала необходимо из GIT-а
загрузить новые версии файлов-меток.
После этого можно получить изменения из DVC.
Слайд 18
![ОСОБЕННОСТИ ИСПОЛЬЗОВАНИЯ DVC DVC в нашем проекте используется вместе с](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/116314/slide-17.jpg)
ОСОБЕННОСТИ ИСПОЛЬЗОВАНИЯ DVC
DVC в нашем проекте используется вместе с HTTPS подключением
к MinIO. Для корректного подключения к MinIO требуется указание ключа доступа и секретного ключа.
При работе через JupyterHub вы работаете на удаленном сервере, там эти ключи уже прописаны в системе.
Если же вы хотите получить/загрузить изменения на свой компьютер, то необходимо будет заранее указать эти ключи.
Слайд 19
![ДАННЫЕ ДЛЯ ПОДКЛЮЧЕНИЯ Адрес конечной точки: https://minio.ies.mrsu.ru Ключ доступа: UDAm3LAza0LmfJRNIht4 Секретный ключ: GdKc1nCqBu2zVaA1w7xN](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/116314/slide-18.jpg)
ДАННЫЕ ДЛЯ ПОДКЛЮЧЕНИЯ
Адрес конечной точки: https://minio.ies.mrsu.ru
Ключ доступа: UDAm3LAza0LmfJRNIht4
Секретный ключ: GdKc1nCqBu2zVaA1w7xN
Слайд 20
![ПОДКЛЮЧЕНИЕ С МАШИНЫ С ОС LINUX Необходимо заранее прописать данные](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/116314/slide-19.jpg)
ПОДКЛЮЧЕНИЕ С МАШИНЫ С ОС LINUX
Необходимо заранее прописать данные ключей.
Сделать это
можно через установку переменных окружения.
Так же, можно указать эти переменные окружения только для текущей сессии командной строки.
Например (это одна команда):
AWS_SECRET_ACCESS_KEY="GdKc1nCqBu2zVaA1w7xN" AWS_ACCESS_KEY_ID="UDAm3LAza0LmfJRNIht4" dvc pull
Слайд 21
![ПОДКЛЮЧЕНИЕ С МАШИНЫ С ОС WINDOWS Необходимо заранее прописать данные](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/116314/slide-20.jpg)
ПОДКЛЮЧЕНИЕ С МАШИНЫ С ОС WINDOWS
Необходимо заранее прописать данные ключей.
Сделать это
можно через установку переменных окружения.
Так же, можно указать эти переменные окружения только для текущей сессии командной строки.
Например (используется PowerShell):
$env:AWS_SECRET_ACCESS_KEY="GdKc1nCqBu2zVaA1w7xN"
$env:AWS_ACCESS_KEY_ID="UDAm3LAza0LmfJRNIht4"
dvc pull