Превозмогая ваши проекты по науке о данных при помощи инструментов GitHub

Достижение ваших проектов по науке о данных с помощью инструментов GitHub

Технологии развиваются стремительными темпами, привнося новые инновации, которые преобразуют наше рабочее место. Одной из областей, особенно затронутых этими новшествами, является работа дата-ученого. Дата-наука уже сейчас захватывающая область, но новые инструменты поднимают ее на следующий уровень по продуктивности и возможностям. При помощи этих новых технологий дата-ученые могут работать быстрее и эффективнее, чем когда-либо раньше. В этой статье мы покажем вам эти новшества в деле.

Проект дата-науки с использованием Python, VS Code и инструментов GitHub

Давайте углубимся в некоторые инновационные инструменты и функции GitHub, которые могут улучшить продуктивность вашего рабочего процесса по дата-науке. Чтобы изучить их, представим, что нам было предложено создать прогностическую модель для прогнозирования количества аренды велосипедов для бизнеса аренды велосипедов на основе сезонности и погодных условий.

Для построения такой модели, начиная с исторических данных об аренде, мы собираемся провести анализ данных и эксперименты в блокноте Python Jupyter на VS Code. Секретный ингредиент, обеспечивающий увеличение продуктивности в нашем проекте, состоит из двух основных компонентов:

  • GitHub Copilot, искусственно интеллектуальный помощник, встроенный в интерфейс VS Code, предлагающий встроенные предложения, команды и чат-опыт.
  •  GitHub Codespaces, предопределенная среда разработки, размещенная в облаке.

Создание нашего рабочего пространства

Прежде чем мы сможем начать писать первую строку кода на Python или даже создать новый блокнот Jupyter, нам нужно иметь последнюю версию Python установленной на нашем локальном компьютере и установленное расширение Python в VS Code. Затем нам нужно установить необходимые библиотеки Python для исследования, очистки и визуализации данных, а также необходимые для обучения и оценки нашей модели машинного обучения. Этот набор предварительных требований может варьироваться от одного проекта к другому, и некоторые из них могут иметь конфликты и зависимости, требующие дополнительных усилий в нашем рабочем процессе. Кроме того, если мы сотрудничаем с командой коллег по тому же проекту, им также необходимо воспроизвести те же процессы установки, чтобы иметь возможность вносить свой вклад в наш код.

Именно в таком контексте GitHub Codespaces чрезвычайно полезен, позволяя нам создавать воспроизводимое и предварительно настроенное рабочее пространство для нашего проекта, которое мы можем размещать и делиться в облаке. Но как начать?

После включения GitHub Copilot Chat в нашей IDE (VS Code), мы можем взаимодействовать с этим встроенным виртуальным помощником через чат-интерфейс, задавая вопросы на естественном языке или используя заранее определенные команды для определения ожидаемого ответа.

Supercharging Your Data Science Projects with GitHub Tools

Например, запрос «/createWorkspace для Jupyter Python блокнота с настройкой GitHub Codespaces, установкой pPandas, Numpy и scikit-learn» выдаст предложенную структуру каталога для нашего проекта:

  • `.devcontainer/devcontainer.json` – файл конфигурации для контейнера разработки GitHub Codespaces, указывающий используемый образ Docker и расширения для установки в контейнере.
  • `.devcontainer/requirements.txt` – файл конфигурации, перечисляющий пакеты Python, которые требуется установить в контейнере разработки.
  • `data/my_data.csv` – заполнитель для файла, содержащего данные, которые будут использоваться в блокноте Jupyter.
  • `notebooks/my_notebook.ipynb` – шаблон файла блокнота Jupyter, импортирующий pPandas, Numpy и scikit-learn.
  • `README.md` – заполнительный файл, содержащий документацию для проекта.

Также, нажав на “Создать рабочее пространство” внизу, будет создана локальная структура каталогов, и файлы будут инициализированы некоторым базовым содержимым, которое мы можем настроить под ваш сценарий.

Чтобы создать GitHub Codespaces, начните с того, чтобы опубликовать наш код на GitHub через панель “Исходный код” в боковом меню Visual Studio Code.

Затем мы можем настроить файлы конфигурации, которые будут использоваться для создания контейнера. Например, мы можем добавить расширения GitHub Copilot и GitHub Copilot chat в файл devcontainer.json с помощью следующих строк кода:

"customizations": {        "vscode": {            "extensions": [                "github.copilot",      "github.copilot-chat"            ]        }

Обратите внимание, что поле ‘customizations’ должно находиться на таком же уровне в структуре json, как и ‘name’ контейнера. Если в файле json, созданном GitHub Copilot, уже есть массив расширений, то нам просто нужно добавить эти два расширения в очередь.

Таким образом, мы сможем использовать функции GitHub Copilot также в нашей удаленной среде.

После этого мы можем снова обратиться за поддержкой к GitHub Copilot chat, чтобы создать удаленное рабочее пространство GitHub Codespaces на основе нашего репозитория, спросив: “Как я могу создать GitHub Codespaces на основе файлов конфигурации devcontainer, которые у меня есть в этой структуре папок?”

Следуя инструкциям, предоставленным в ответе, мы сможем создать и открыть GitHub Codespaces, настроенный с заданными требованиями.

Написание, отладка и документирование нашего кода на Python

После открытия GitHub Codespaces в Visual Studio Code, мы можем начать свои эксперименты. Первый шаг нашего проекта – импортировать данные, которые мы будем использовать для обучения нашей модели, в Pandas dataframe. При написании нашего кода на Python мы можем заметить, что GitHub Copilot предлагает нам встроенные предложения (серая линия на скриншоте), которые мы можем полностью принять, принять только его часть или проигнорировать.

Кроме того, так как библиотека Pandas была указана в файле requirements, используемом для создания GitHub Codespaces, перед выполнением нашей первой ячейки кода ничего дополнительного делать не нужно.

Теперь перейдем дальше и займемся визуализацией данных. Допустим, мы хотим создать гистограмму с помощью matplotlib, отображающую распределение проката велосипедов в нашем наборе данных.

В приведенном выше примере мы забыли определить объект осей, поэтому получаем исключение NameError. В таком случае GitHub Copilot может помочь нам в устранении ошибки. Мы просто должны нажать кнопку “Исправить с помощью Copilot” и получим анализ ошибки вместе с предложенными изменениями кода для ее исправления.

После некоторого исследования и очистки данных – что выходит за рамки данной статьи – предположим, что мы готовы обучать нашу регрессионную модель. Поскольку это основная часть нашего решения, мы хотели бы иметь четкую документацию, сопровождающую код. Мы можем ускорить скучную, но необходимую задачу документирования нашего кода с помощью команды GitHub copilot /doc.

Выбрав интересующий нас участок кода и набрав команду в окне чата, мы легко получим желаемый вывод, который можно использовать, например, в качестве содержимого ячейки с разметкой в нашем блокноте.

Описание

В этой статье мы предоставили несколько советов и хитростей для улучшения продуктивности и совместной работы для специалистов по обработке данных с помощью инструментов GitHub, Python и VS Code. Мы рассмотрели, как создать воспроизводимое рабочее пространство с использованием GitHub Codespaces и взаимодействовать с GitHub Copilot через чат-интерфейс, чтобы упростить настройку проекта. Мы также продемонстрировали, как GitHub Copilot предлагает встроенные предложения, помогает при отладке и автоматизации задач по документированию, в конечном итоге повышая эффективность и результативность проектов по обработке данных.

Если вы собираетесь попробовать сделать примеры, которые мы использовали в нашей демонстрации в своей среде, имейте в виду, что результаты могут отличаться. Это связано с тем, что GitHub Copilot работает на основе модели OpenAI GPT-4, которая является недетерминированной, как и все большие языковые модели, что означает, что для одного и того же ввода можно получить разные выводы.

Интересно узнать больше о том, как использовать GitHub и VS Code для повышения вашей продуктивности? Посмотрите серию “VS Code Explains” и примите участие в вебинаре “Усиление ваших проектов по обработке данных с помощью инструментов GitHub”.

Об авторах:

Carlotta Castelluccio Cloud Developer AdvocateКарлотта Кастеллуччио – Адвокат облачных технологий

 

 

 

Gabriela de QueirozГабриэла Де Кейроз – Руководитель по искусственному интеллекту – Microsoft для стартапов