forked from matyushkin/lessons
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Начата работа по переводу статьи о dvc
- Loading branch information
1 parent
9cd1d65
commit c14ce22
Showing
1 changed file
with
155 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,155 @@ | ||
{ | ||
"cells": [ | ||
{ | ||
"cell_type": "markdown", | ||
"metadata": {}, | ||
"source": [ | ||
"# Git для Data Science: контроль версий данных с помощью Python и DVC\n", | ||
"\n", | ||
"Данная публикация представляет собой частичный перевод Кристиана Иванчича [Data Version Control With Python and DVC](https://realpython.com/python-data-version-control/).\n", | ||
"\n", | ||
"Машинное обучение и наука о данных сопряжены с рядом задач, отличающихся от традиционной разработки программного обеспечения. [Системы управления версиями](https://ru.wikipedia.org/wiki/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D1%8F%D0%BC%D0%B8) помогают разработчикам контролировать изменения исходного кода. Но управление версиями данных, изменения в моделях и датасетах, отлажено не так хорошо.\n", | ||
"\n", | ||
"Если датасет изменился, точно воспроизвести эксперименты, проведенные вами или другими людьми, становится сложной задачей. Многие команды активно разрабатывают инструменты и фреймворки для решения этих проблем.\n", | ||
"\n", | ||
"В этом руководстве мы узнаем как:\n", | ||
"- использовать инструмент под названием DVC для решения некоторых из этих проблем;\n", | ||
"- корректно отслеживать и редактировать наборы данных и модели;\n", | ||
"- совместно использовать одну систему с товарищами по команде;\n", | ||
"- делать воспроизводимые эксперименты по машинному обучению." | ||
] | ||
}, | ||
{ | ||
"cell_type": "markdown", | ||
"metadata": {}, | ||
"source": [ | ||
"# Что такое система управления версиями данных\n", | ||
"\n", | ||
"В стандартной разработке программного обеспечения многим людям необходимо работать с общей кодовой базой и обрабатывать несколько версий одного и того же кода. Это может быстро привести к путанице и дорогостоящим ошибкам. Чтобы решить эту проблему, разработчики используют системы управления версиями, такую как Git.\n", | ||
"\n", | ||
"В системе управления версиями есть центральный репозиторий кода, который представляет текущее официальное состояние проекта. Разработчик может сделать копию этого проекта, внести в них изменения и запросить, чтобы новая версия кода стала официальной. В результате запроса код проверяется и тестируется, пока не будет выпущен.\n", | ||
"\n", | ||
"Такие циклы могут происходить по многу раз в день в традиционных проектах, связанных с разработкой. Но в мире промышленного Data Science подобные соглашения и стандарты пока не закрепились. Наличие систем, которые позволяют людям работать быстро и продолжать с того места, на котором остановились другие, повысило бы скорость и качество получаемых результатов. Это позволит людям прозрачно управлять данными, эффективно проводить эксперименты и сотрудничать с другими людьми и командами.\n", | ||
"\n", | ||
"Один из инструментов, помогающих исследователям управлять наборами данных и моделями и проводить воспроизводимые эксперименты — **DVC** (сокр. от Data Version Control)." | ||
] | ||
}, | ||
{ | ||
"cell_type": "markdown", | ||
"metadata": {}, | ||
"source": [ | ||
"# Что такое DVC\n", | ||
"\n", | ||
"DVC – это инструмент командной строки, написанный на Python. Он имитирует команды и рабочие процессы Git, чтобы пользователи знакомые с Git, могли легче пользоваться этим инструментом. DVC предназначен для работы вместе с Git. Фактически, команды git и dvc часто используются вместе, одна за другой. В то время как Git используется для хранения версий кода, DVC делает то же самое для файлов моделей и датасетов.\n", | ||
"\n", | ||
"Git может хранить код как локально, так и на хостинге GitHub, Bitbucket или GitLab. Аналогичным образом, DVC позволяет загружать данные на удаленный репозиторий для хранения данных и моделей. Вы можете создать локальную копию удаленного репозитория, изменить файлы, а затем загрузить свои изменения, чтобы поделиться ими с командой.\n", | ||
"\n", | ||
"Удаленный репозиторий может находиться на том же компьютере, на котором вы работаете, или в облаке. DVC поддерживает большинство главных облачных провайдеров, включая AWS, GCP и Azure. Но вы можете настроить удаленный репозиторий DVC на любом другом сервере. С соблюдением мер предосторожности, которые не позволят другим участникам повредить или удалить данные.\n", | ||
"\n", | ||
"При созранении данных в удаленном репозитории, создается `.dvc`-файл. Файл `.dvc` - это небольшой текстовый файл, который описывает текущее состояние файлов данных в удаленном хранилище. За счет небольшого размер `.dvc`-файл может храниться вместе с вашим программным кодом, например, на GitHub.\n", | ||
"\n", | ||
"Далее мы на практике изучим наиболее важные функции, проработав несколько примеров. Перед тем как начать, нам нужно настроить среду для работы, а затем получить некоторые данные." | ||
] | ||
}, | ||
{ | ||
"cell_type": "markdown", | ||
"metadata": {}, | ||
"source": [ | ||
"# Настраиваем рабочую среду\n", | ||
"\n", | ||
"В этом руководстве мы рассмотрим, как использовать DVC, попрактиковавшись на примерах работы с данными изображений. Мы поиграем с большим количеством файлов изображений и обучим модель машинного обучения, которая распознает, что содержит изображение.\n", | ||
"\n", | ||
"Для работы с примерами в системе должны быть установлены [Python 3](https://realpython.com/installing-python/) и [Git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git).\n", | ||
"\n", | ||
"Поскольку DVC – это инструмент командной строки, необходимо уметь работать в командной строке вашей операционной системы. Если вы пользователь Windows, ознакомьтесь с разделом [«Запуск DVC в Windows» (англ.)](https://dvc.org/doc/user-guide/running-dvc-on-windows).\n", | ||
"\n", | ||
"Чтобы подготовить рабочую среду, нам нужно сделать следующие шаги:\n", | ||
"1. Создать и активировать виртуальное окружение.\n", | ||
"2. Установить DVC и необходимые библиотеки Python.\n", | ||
"3. Создайть форк и клонировать GitHub-репозиторий со всем кодом.\n", | ||
"4. Загрузить набор данных для использования в примерах.\n", | ||
"\n", | ||
"Вы можете использовать любой менеджер пакетов и окружений, какой захотите. В этом руководстве мы используем `conda`, поскольку он отлично поддерживает инструменты для анализа данных и машинного обучения. Чтобы создать и активировать виртуальную среду, откройте интерфейс командной строки и введите следующую команду:\n", | ||
"\n", | ||
"```bash\n", | ||
"conda create --name dvc python=3.8.2 -y\n", | ||
"```" | ||
] | ||
}, | ||
{ | ||
"cell_type": "markdown", | ||
"metadata": {}, | ||
"source": [ | ||
"Команда `create` создает новую виртуальную среду. Флаг `--name` дает имя среде – в данном случае `dvc`. Аргумент `python` позволяет выбрать версию Python, которую мы хотим установить в среде. Наконец, флаг `-y` автоматически соглашается установить все необходимые пакеты, которые нужны Python, без необходимости отвечать на какие-либо запросы.\n", | ||
"\n", | ||
"Как только все установлено, активируем среду:\n", | ||
"\n", | ||
"```bash\n", | ||
"conda activate dvc\n", | ||
"```" | ||
] | ||
}, | ||
{ | ||
"cell_type": "markdown", | ||
"metadata": {}, | ||
"source": [] | ||
}, | ||
{ | ||
"cell_type": "code", | ||
"execution_count": null, | ||
"metadata": {}, | ||
"outputs": [], | ||
"source": [] | ||
}, | ||
{ | ||
"cell_type": "markdown", | ||
"metadata": {}, | ||
"source": [] | ||
}, | ||
{ | ||
"cell_type": "code", | ||
"execution_count": null, | ||
"metadata": {}, | ||
"outputs": [], | ||
"source": [] | ||
}, | ||
{ | ||
"cell_type": "markdown", | ||
"metadata": {}, | ||
"source": [] | ||
}, | ||
{ | ||
"cell_type": "code", | ||
"execution_count": null, | ||
"metadata": {}, | ||
"outputs": [], | ||
"source": [] | ||
}, | ||
{ | ||
"cell_type": "markdown", | ||
"metadata": {}, | ||
"source": [] | ||
} | ||
], | ||
"metadata": { | ||
"kernelspec": { | ||
"display_name": "Python 3", | ||
"language": "python", | ||
"name": "python3" | ||
}, | ||
"language_info": { | ||
"codemirror_mode": { | ||
"name": "ipython", | ||
"version": 3 | ||
}, | ||
"file_extension": ".py", | ||
"mimetype": "text/x-python", | ||
"name": "python", | ||
"nbconvert_exporter": "python", | ||
"pygments_lexer": "ipython3", | ||
"version": "3.7.6" | ||
} | ||
}, | ||
"nbformat": 4, | ||
"nbformat_minor": 4 | ||
} |