Azure Notebooks — облачный сервис готовых Jupyter-ноутбуков со всем необходимым окружением в облаке Microsoft Azure
Azure Notebooks — облачный сервис готовых Jupyter-ноутбуков со всем необходимым окружением в облаке Microsoft Azure
Большинство дата-сайнтистов обычно устанавливают себе на компьютер Python-окружение (например, Anaconda или Miniconda), а затем запускают локальный Jupyter server и создают ноутбуки на своём локальном компьютере. Если вдруг нужен очень высокопроизводительный компьютер, можно запускать Jupyter на сервере, и работать с ним по сети через браузер.
Сама собою напрашивается идея использовать облачный сервис для предоставления готовых Jupyter-ноутбуков со всем необходимым окружением. Это как раз и называется Azure Notebooks — общедоступные сервис Jupyter в облаке Microsoft Azure, который вы можете использовать откуда угодно для написания своего кода или документов.
Использовать Azure Notebooks зачастую намного удобнее, чем Python-cреду на локальном компьютере.
1. Можно сразу начать программировать
Начинаете ли вы изучать Python, или хотите немного поэкспериментировать с F# — первым делом необходимо установить окружение для разработки, например Visual Studio или Anaconda. Это требует, как минимум, времени и дискового пространства. Если вы собираетесь заниматься серьезной разработкой — скорее всего эти усилия окупятся, однако если вы просто хотите попробовать кусочек кода, или если вы пришли на вечеринку к друзьям и хотите похвастаться своей последней программой — скорее всего у Вас не будет лишних пару часов времени на установку. В этих случаях вы можете просто зайти со своим Microsoft Account по адресу http://notebooks.azure.com и сразу начать программировать на одном из доступных языков: Python 2/3, R или F#.
2. Ваш код доступен отовсюду
Вернемся к примеру, когда вам захотелось похвастаться своей программой на вечеринке у друзей. В этом случае было бы здорово иметь код под рукой, без необходимости копировать его с флешки или даже с OneDrive. В Azure Notebooks все ваши файлы хранятся онлайн, они организуются в проекты, которые напоминают репозитории GitHub, только без контроля версий. При этом каждый проект может быть сделан частным или общедоступным, в этом случае вы сможете делиться кодом.
3. Легко делитесь кодом
Azure Notebooks — это прекрасный способ делиться кодом с другими людьми. Каждому проекту соответствует уникальная ссылка, которую вы можете отправить друзьям (при этом важно, чтобы проект был общедоступным). С этой ссылкой Ваши друзья смогут:
- смотреть код проекта
- клонировать проект и получить свою собственную копию, которую они сразу же смогут начать выполнять и модифицировать
В отличие от Google Colab, вы делитесь сразу всем проектом, который может включать в себя сразу несколько ноутбуков, а также данные, файл README, конфигурацию окружения requirements.txt
и т.д.
Если вам необходимо настроить окружение, например установить какие-то пакеты — это можно сделать с помощью файлов конфигурации, или включив в начало ноутбука команды pip install
(это полезно также, если вы хотите достичь совместимости с Google Colab). Установка пакетов в ноутбуках F# производится через пакетный менеджер Paket
, как это описано здесь:
https://docs.microsoft.com/azure/notebooks/install-packages-jupyter-notebook/
4. Документированный код / Журналистика данных
Ноутбук — это прекрасный способ добавить подробные инструкции к программному коду, или наоборот — добавить вычисляемые фрагменты к тексту. Это может быть полезно во многих сценариях:
- Написание инструкций или книги на тему, связанную с алгоритмикой или какими-либо вычислениями. Например, чтобы объяснить, что такое аффинное преобразование, вы можете сначала написать подробный текст с определением (включая формулы, поскольку ноутбуки поддерживают синтаксис LaTeX для формул), а затем включить исполняемые примеры применения аффинных преобразований к нескольким картинкам. Читатели не только увидят, как работает код, но и смогут исправить его, выполнить "вживую", и продолжить экспериментировать
- Написание текста, основанного на данных, как например в цифровой (вычислительной) журналистике. Подготавливая статью в формате ноутбука, вы можете вставлять код, который собирает данные из открытых источников, строит на их основе какие-то графики и даже делает какие-то выводы (или подталкивает к этому читателя).
5. Презентации
Возможность, отличающая Azure Notebooks от всех аналогичных решений — возможность использовать их для презентаций с помощью расширения RISE, которое предустановлено. вы можете помечать ячейки как отдельные слайды, или как фрагменты (продолжение предыдущих слайдов), чтобы создать анимацию. Некоторые ячейки вы можете "скрыть" — например, если они содержат какой-то полезный исполняемый код, который нет нужны показывать слушателям, или длинный поясняющий текст, видный в режиме ноутбука, но не в режиме слайдов.
Конечно, Azure Notebooks не предназначены для создания красивых маркетинговых презентаций, но для многих случаев, когда важно содержание, а не оформление, такой подход оказывается удобнее. Особенно прекрасно использовать Azure Notebooks для академических и научных презентаций, поскольку вы можете использовать LaTeX-формулы. И не забывайте, что ноутбуками легко делиться!
6. Исполняемый код для GitHub-репозитория
Если вы поддерживаете на GitHub свой проект на Python, то с помощью Azure Notebooks вы сможете дать возможность посетителям запускать Ваш код. Один из способов — это параллельно выложить код в Notebooks-проект и указать ссылку, по которой посетители смогут клонировать примеры и попробовать их. Однако ещё удобнее использовать прямое клонирование из любого GitHub-репозитория — всё, что вам нужно сделать — это включить следующий код в описание проекта в Readme.md
:
<a href="https://notebooks.azure.com/import/gh/<git_user>/<repo>">
<img src="https://notebooks.azure.com/launch.png" /></a>
7. Выполнение кода на разных серверах
В задачах глубокого обучения очень часто мы можем начать разрабатывать обучающий скрипт и запускать его на подмножестве данных на обычной машине, а затем перенести процесс обучения на компьютер с GPU. Azure Notebooks позволяют делать это очень элегантно. При открытии проекта мы по умолчанию запускаем его на бесплатном вычислительном ресурсе (Free Compute), но, если у нас есть привязанная к нашему аккаунту подписка Azure, мы также можем выбрать из списка любую подходящую виртуальную машину (под словом "подходящую" я имею в виду Data Science Virtual Machine под управлением Ubuntu).
Обычно в своей работе начинают разрабатывать код на бесплатном ресурсе, и затем переключаются на VM. При этом Azure Notebooks автоматически перенесут (а точнее подмонтируют) всё проектное окружение (включая ноутбуки и файлы данных из проекта) к выбранной виртуальной машине.
Справедливости ради стоит отметить, что предоставляемая бесплатно виртуальная машина очень неплоха, с 4 Гб памяти и 1 Гб дискового пространства.
8. Преподавание
Azure Notebooks исключительно удобный инструмент в преподавании. Вот как вы можете использовать ноутбуки:
- Чтение лекций с использованием презентационного режима. Слайды Azure Notebooks проще создавать и поддерживать, поскольку вы можете сконцентрироваться на содержании, а не на дизайне. Работать с текстом намного удобнее, и формулы в TeX намного быстрее набирать, чем Word Equations. Из неприятных моментов — более сложным является добавление картинок и диаграмм, поэтому для маркетинговых презентаций ноутбуки не подходят.
- Написание учебника с примерами Если вы создаёте слайды с использованием ноутбуков, вы всегда можете добавить к слайдам дополнительный текст, который не будет показываться в режиме презентации, но при этом он будет подробнее раскрывать мысль. Таким образом, один и тот же ноутбук может использоваться как учебник и как слайды. Кроме того, тот же самый ноутбук содержит исполняемые примеры, которые используются в демонстрации, или как отправная точка для самостоятельной работы студентов.
- Лабораторные работы и экзамены. Поместите все материалы, включая начальный заготовленный код, в один проект Azure Notebooks, и затем раздайте студентам ссылку. Они смогут клонировать проект и начать работать над ним прямо в браузере. В качестве ответов соберите с них индивидуальные ссылки (если нет ограничений по времени), или попросите загрузить файл ноутбука
.ipynb
на GitHub или облачное хранилище, если вам важно исключить дальнейшую работу студента над заданием.
Для преподавания также используются другие облачные технологии, например Azure Functions для получение результатов лабораторных работ
Некоторые особенности
Azure Notebooks — замечательный инструмент, но есть некоторые особенности, о которых стоит помнить:
- Сетевой доступ из ноутбука несколько ограничен. Поскольку с Azure Notebooks вы получаете бесплатный вычислительный ресурс, возникает соблазн использовать его не по назначению, например, для рассылки спама. Чтобы этого избежать, из Azure Notebook открыт сетевой доступ лишь к ограниченному числу сетевых ресурсов, включая все ресурсы Azure, OneDrive, а также GitHub, Kaggle, и возможно что-то ещё. Чтобы использовать в Вашем коде внешние данные, поместите их на OneDrive/GitHub, либо загрузите в проект вручную с помощью веб-интерфейса.
- Вставка изображений/схем в текст. Поскольку весь текст редактируется в формате Markdown, вставка картинок и схем через clipboard не работает. Для вставки картинок сохраните их в JPEG/PNG и загрузите куда-нибудь в интернет (я обычно использую для этого репозиторий на GitHub), после чего используйте синтаксис Markdown для добавления картинок. И запомните: для маркетинговых презентаций используйте PowerPoint, для академических/научных/разработческих — Azure Notebooks.
- Доступ к GPU бесплатно пока не предоставляется — только в составе создаваемых явно виртуальных машин.
Примеры
Хороший способ быстро познакомиться с разными возможностями Azure Notebooks, вроде построение графиков, установки пакетов, доступом к внешним данным и т.д. — это начать с примеров https://notebooks.azure.com/#sample-redirect . Ещё одна замечательная коллекция примеров для Jupyter есть тут https://github.com/jupyter/jupyter/wiki/A-gallery-of-interesting-Jupyter-Notebooks. Помните: вы можете запустить любой Jupyter Notebook в Azure просто загрузив файл .ipynb
в проект.
Azure Notebooks — замечательный инструмент, который поможет вам во множестве жизненных ситуаций.
Несмотря на то, что есть и другие способы запуска ноутбуков в облаке, включая Google Colab и Binder, сравнение показывает, что Azure Notebooks включает в себя максимальное количество крайне полезных фич.
Надеюсь, что Azure Notebooks сделают Вашу жизнь лучше и продуктивнее, и вы станете постоянно их использовать!
Официальная документация по Azure Notebooks доступна тут: http://aka.ms/aznb