Как выпускник информационных технологий, стремясь начать свою карьеру, я провел первую половину 2020 года, ища возможности расширить свои навыки и получить соответствующий практический опыт.
После нескольких поворотов я начал свою стажировку в качестве инженера в Faethm с одной большой целью:
Как мы можем облегчить обзоры кода для нашей команды по науке о данных?
FAETHM — это платформа ИИ, основанная на работе ученых данных, и для них это очень важная проблема для решения. Сегодня команда науки о данных FAETHM работает в основном с ноутбуками Jupyter, и они управляются в различных хранилищах внутренних GitHub.
Проблема с ноутбуками Юпитера
Nopyter Notebooks — это популярный инструмент производительности среди ученых данных, и по уважительной причине.
Вы можете выполнить рабочие процессы науки о данных в ячейках, выводистых таблицах и диаграммах и сохранять документацию встроенной. Несмотря на их популярность, это громоздко управлять изменениями, внесенными в ноутбуки Jupyter, используя такие системы управления версиями, как GIT.
Инструменты, такие как nbdime Помогите немного. NBDIME позволяет пользователям Notebook выделять изменения, внесенные между версиями ноутбуков в командной строке или даже в экземпляре Юпитера.
Тем не менее, встроенные инструменты Github не предназначены для ноутбуков Jupyter. Ноутбук фиксирует код, выходы и метаданные в качестве документа JSON. Когда ученый для данных выполняет ноутбук с модификациями, данные JSON изменяются на уровне ячейки, чтобы отразить новый код, обновляет метаданные и фиксирует новый вывод.
Решение этой проблемы стало сущностью моей стажировки.
Поскольку многие из этих технологий для меня новые, я знал, что это будет проблемой. С комбинацией самообучения, настойчивости и поддержки инженеров Фаетма я рад, что смогу представить это решение.
Представление Юпидиффа, Дейкс Дейкс для действий GitHub
Юпидифф это действие GitHub, которое позволяет ученым -данным быстро сравнивать изменения, внесенные с ноутбуками Jupyter в репозиториях GitHub.
Это работает с регулярными коммитами и привлекать запросы. Когда внесено изменение, Юпидифф вычисляет дополнения и удаления кода в каждой ноутбуке и суммирует их как комментарий к соответствующему COMMIT или обращению.
Jupydiff поможет вам упростить обзоры кода науки о данных.
Без Юпидиффа, чтобы вычислить точную разницу в кодах между двумя ноутбуками Юпитера. Рецензент должен был бы клонировать репозиторий, загрузить и установить nbdime, а затем запустить nbdime diff
в командной строке. В качестве альтернативы, наблюдение за обычным DIFF в редакторе кода, инструменте управления версиями или на самом GitHub, включало интерпретацию строк базовой структуры ноутбука JSON Jupyter.
Как версировать контроль jupyter notbooks on github с jupydiff
Настройка Jupydiff для работы с вашим ноутбуком Jupyter — это проста. Поскольку Юпидифф является действием GitHub, он работает как с государственными, так и с частными репозиториями.
Вы можете прочитать все подробности о настройке Jupydiff в Репозиторий Юпидиффа на GitHub , но я расскажу здесь.
Вам нужно будет создать новый рабочий процесс действия GitHub в вашем репозитории по адресу /.github/workflows/jupydiff.yml
со следующим содержимым:
name: jupydiff on: [ push, pull_request ] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 with: fetch-depth: 2 - uses: Faethm-ai/jupydiff@v1
Действия GitHub проводят Jupydiff на вашем репозитории для каждого выдвинутого или открытого запроса на вытягивание. Jupydiff вычисляет изменения, внесенные с помощью последней коммиты, и оставляет комментарий к запросу Commit или Tuil, подчеркивая различия в коде.
Благодаря большему количеству беспорядков JSON, ученые данных могут свободно продолжить обзор кода прямо на GitHub.
Вы читали пост из блога Faethm AI Engineering. Мы тоже нанимаем! Если поделиться своей страстью к будущему работы и хотим пионерских ведущих мировых научных и инженерных проектов, мы хотели бы услышать от вас. Смотрите наши текущие открытия: https://faethm.ai/careers
Оригинал: «https://dev.to/faethm/improving-jupyter-notebook-code-reviews-with-jupydiff-2gce»