Как запустить Jupyter Notebook с GitHub

Jupyter Notebooks становятся стандартом де факто для программирования в области ИИ, машинного обучения и Data Science. Они также очень эффективны в обучении, используя принцип литературного программирования для сочетания в одном документе программного кода и его описания. В этой статье я опишу несколько способов запуска Jupyter Notebooks, как локально на вашем компьютере, так и в облаке.

Ранее, в статье про Azure Notebooks, я описывал как можно удобно запускать код онлайн и делиться кодом с помощью этого инструмента. К сожалению, этот сервис превратился в более профессиональное решение, но необходимость запускать Jupyter Notebooks осталась. Рассмотрим, как же можно запустить Jupyter Notebook.

Просто посмотреть

Если вы просто хотите посмотреть на код в ноутбуке, не запуская его - это очень просто! Если код расположен в репозитории GitHub - просто откройте файл .ipynb, и его содержимое будет показано прямо в браузере.

Можно также использовать nbviewer для просмотра ноутбуков. Для этого нужно будет ввести онлайн имя/репозиторий на GitHub, либо любую URL, доступную через интернет. Вот пример того, как выглядит репозиторий GitHub при открытии в nbviewer.

Ещё одной хорошей опцией будет использовать Visual Studio Code, в которой возможность просмотра ноутбуков встроена “из коробки”. Если Visual Studio Code не установлена - можно использовать онлайн-версию vscode.dev, или github.dev.

GitHub.dev - это отличный способ открыть любой репозиторий в режиме Visual Studio Code для простого редактирования файлов. Для этого достаточно в адресе репозитория заменить github.com на github.dev. Заодно становится доступным просмотр ноутбуков.

Запуск локально или в облаке

В большинстве случае вам захочется не только посмотреть, но и запустить Jupyter notebooks, изменить код и посмотреть, как он работает. В этом случае - читайте дальше!

Поскольку для запуска кода нужны вычислительные ресурсы, у вас есть 2 варианта:

  • Установить всё необходимое окружение у себя на компьютере
  • Использовать облачные сервисы

В первом случае у вас есть полный контроль над окружением, файлами и вычислительными ресурсами, но придётся потратить некоторое время на установку. Во втором случае, вы будете использовать чьи-то вычислительные ресурсы, и скорее всего количество бесплатных ресурсов, доступных вам, будет ограничено. Зато не потребуется установка ПО, и вы сможете начать работать за считанные минуты.

Локальная установка

Если вы работаете в области ИИ, машинного обучения или Data Science, у вас уже скорее всего установлена среда Python. Иметь Python на своём компьютере - это в любом случае хорошая идея, поскольку велика вероятность, что она вам рано или поздно понадобится.

Проще всего установить Python с помощью дистрибутива Miniconda. Хотя большинство обычно рекомендует ставить Anaconda, которая включает в себя большое количество библиотек, я всегда рекомендую начинать с “голой” установки Python, а все библиотеки устанавливать по мере необходимости. У Miniconda размер первоначального установщика всего 50 Mb, в противовес почти 500 Mb у Anaconda.

Установив Miniconda, будет необходимо установить Jupyter:

conda install -c conda-forge notebook

или

pip install notebook

После установки, перейдите в папку с вашими ноутбуками, и запустите Jupyter:

jupyter notebook

Откроется окно браузера, и можно начинать работать!

Classical Jupyter Notebook

В некоторых репозиториях GitHub есть файл requirements.txt, содержащий сведения о необходимых для работы проекта библиотеках. В этом случае рекомендуется перед запуском ноутбука установить эти библиотеки командой

pip install -r requirements.txt

Возможно, вместо классического Jupyter, вы захотите установить JupyterLab, его более продвинутую версию.

pip install juputerlab
jupyter-lab

Jupyter Lab

JupyterLab больше напоминает полноценную среду разработки, позволяя вам, помимо ноутбуков, редактировать скрипты Python, текстовые файлы и многое другое.

Поддержка языков .NET

Jupyter поддерживает много различных языков программирования в дополнение к Python. Если вы хотите использовать C# или F#, вы можете установить .NET Interactive. Установка поддержки .NET для Jupyter описана здесь

Используем Visual Studio Code

Редактировать и исполнять ноутбуки в браузере - не лучшая идея. Намного больше возможностей доступно при использовании Visual Studio Code, в которой есть отличная поддержка Jupyter Notebooks, с возможностью просмотра значений переменных, отладки и т.д. Для выполнения ноутбуков, вам нужно будет установить расширение Python (или расширение .NET, для C#/F#). Вам также понадобится установленное на вашем компьютере Python-окружение, описанное в предыдущем разделе.

Jupyter Notebook in VS Code

Вот ещё немного документации по использованию Jupyter в VS Code.

Установка Python на ваш компьютер - хорошее решение в долгосрочной перспективе, но если вы хотите запустить ноутбук по-быстрому - имеет смысл использовать облачное окружение. Вам не придётся ничего устанавливать на свой компьютер, и вы сможете наслаждаться работой уже через несколько минут. Иногда имеет смысл использовать облачные окружения даже тогда, когда у вас есть Python - например, чтобы избежать конфликта библиотек и запустить ноутбук в “чистом” окружении.

MyBinder

MyBinder.org позволяет вам создать виртуализированное (точнее, контейнеризованное) окружение Jupyter из любого GitHub-репозитория. Вы просто вводите GitHub URL, а Binder создаст контейнер и запустит среду Jupyter. Многие репозитории с ноутбуками даже содержат кнопку Launch Binder, позволяющую вам открыть проект в Binder автоматически.

Binder

Binder Welcome Screen

Binder попытается создать окружение, наилучшим образом подходящее для вашего проекта. Например, если в репозитории есть файл requirements.txt с описанием необходимых библиотек, они будут автоматически установлены. Более тонко можно настраивать конфигурацию с помощью файлов в директории binder - вплоть до описания Docker-контейнера, который необходимо собрать для запуска.

GitHub Codespaces

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

Codespaces Open Dialog

Datalore, CoCalc и др.

Я сам обычно использую один из приведённых выше бесплатных способов запуска ноутбуков в облаке, хотя существует ещё несколько, которые могут вам понравиться:

  • JetBrains Datalore предоставляет некоторый объем бесплатных вычислительных ресурсов (в настоящий момент - 120 часов в месяц), а также некоторое количество GPU. Вам придётся предварительно загрузить ваши ноутбуки в рабочую область Datalore.
  • CoCalc - это полноценное окружение для специалистов по Data Science, поддерживающее несколько популярных языков, таких как R, Julia и Sage, систему символьной компьютерной алгебры. Вы также можете запускать ограниченный набор GUI-приложений Linux и редактировать тексты в LaTeX. Я ранее писал про CoCalc в моей заметке про использование систем символьной алгебры для школьников.
  • Про Google Colab вы скорее всего и так уже знаете, поэтому я не буду здесь его подробно описывать.

Заключение

Для запуска кода в Jupyter Notebook существует два подхода:

  • Установить Python-окружение на ваш компьютер, и использоват интерфейс Jupyter/JupyterLab в браузере, или Visual Studio Code
  • Запустить в облачной среде онлайн, используя Binder, или одну из описанных выше опций.

У обоих подходов есть свои позитивные и негативные стороны, и я надеюсь, что после прочтения этой заметки вы сможете легко выбрать для себя оптимальный способ запуска Jupyter Notebooks.

Диалоги и обсуждения