company_banner

8 причин, по которым вы обязательно захотите использовать Azure Notebooks

    Если вы data scientist, или занимаетесь машинным обучением, как я — наверняка вы пишете большую часть кода в Jupyter Notebooks. Для всех остальных поясню: Jupyter — это замечательная система, позволяющая вам сочетать исполняемый программный код и текстовые фрагменты на основе Markdown в едином документе, который можно редактировать и выполнять прямо через браузер. Такой документ называется ноутбуком (теперь вы знаете, как подарить другу ноутбук на день рождения и не сильно потратиться)


    Azure Notebooks Intro


    Большинство дата-сайнтистов обычно устанавливают себе на компьютер 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 — это прекрасный способ делиться кодом с другими людьми. Каждому проекту соответствует уникальная ссылка, которую вы можете отправить друзьям (при этом важно, чтобы проект был общедоступным). С этой ссылкой Ваши друзья смогут:


    • смотреть код проекта
    • клонировать проект и получить свою собственную копию, которую они сразу же смогут начать выполнять и модифицировать


    Azure Notebooks Share


    В отличие от Google Colab, вы делитесь сразу всем проектом, который может включать в себя сразу несколько ноутбуков, а также данные, файл README, конфигурацию окружения requirements.txt и т.д.


    Если вам необходимо настроить окружение, например установить какие-то пакеты — это можно сделать с помощью файлов конфигурации, или включив в начало ноутбука команды pip install (это полезно также, если вы хотите достичь совместимости с Google Colab). Установка пакетов в ноутбуках F# производится через пакетный менеджер Paket, как это описано здесь.


    4. Документированный код / Журналистика данных


    Ноутбук — это прекрасный способ добавить подробные инструкции к программному коду, или наоборот — добавить вычисляемые фрагменты к тексту. Это может быть полезно во многих сценариях:


    • Написание инструкций или книги на тему, связанную с алгоритмикой или какими-либо вычислениями. Например, чтобы объяснить, что такое аффинное преобразование, вы можете сначала написать подробный текст с определением (включая формулы, поскольку ноутбуки поддерживают синтаксис LaTeX для формул), а затем включить исполняемые примеры применения аффинных преобразований к нескольким картинкам. Читатели не только увидят, как работает код, но и смогут исправить его, выполнить "вживую", и продолжить экспериментировать
    • Написание текста, основанного на данных, как например в цифровой (вычислительной) журналистике. Подготавливая статью в формате ноутбука, вы можете вставлять код, который собирает данные из открытых источников, строит на их основе какие-то графики и даже делает какие-то выводы (или подталкивает к этому читателя).

    5. Презентации


    Моя самая любимая возможность, отличающая Azure Notebooks от всех аналогичных решений — возможность использовать их для презентаций с помощью расширения RISE, которое предустановлено. вы можете помечать ячейки как отдельные слайды, или как фрагменты (продолжение предыдущих слайдов), чтобы создать анимацию. Некоторые ячейки вы можете "скрыть" — например, если они содержат какой-то полезный исполняемый код, который нет нужны показывать слушателям, или длинный поясняющий текст, видный в режиме ноутбука, но не в режиме слайдов.



    Azure Notebooks Present


    Конечно, 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>


    Azure Notebooks Clone


    7. Выполнение кода на разных серверах


    В задачах глубокого обучения очень часто мы можем начать разрабатывать обучающий скрипт и запускать его на подмножестве данных на обычной машине, а затем перенести процесс обучения на компьютер с GPU. Azure Notebooks позволяют делать это очень элегантно. При открытии проекта мы по умолчанию запускаем его на бесплатном вычислительном ресурсе (Free Compute), но, если у нас есть привязанная к нашему аккаунту подписка Azure, мы также можем выбрать из списка любую подходящую виртуальную машину (под словом "подходящую" я имею в виду Data Science Virtual Machine под управлением Ubuntu).


    Обычно в своей работе я всегда начинаю разрабатывать код на бесплатном ресурсе, и затем переключаюсь на VM. При этом Azure Notebooks автоматически перенесут (а точнее подмонтируют) всё проектное окружение (включая ноутбуки и файлы данных из проекта) к выбранной виртуальной машине.


    Справедливости ради стоит отметить, что предоставляемая бесплатно виртуальная машина очень неплоха, с 4 Гб памяти и 1 Гб дискового пространства.



    Azure Notebooks Compute


    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, вроде построение графиков, установки пакетов, доступом к внешним данным и т.д. — это начать с примеров. Ещё одна замечательная коллекция примеров для Jupyter есть тут. Помните: вы можете запустить любой Jupyter Notebook в Azure просто загрузив файл .ipynb в проект.


    Заключение


    Azure Notebooks — замечательный инструмент, который поможет вам во множестве жизненных ситуаций, некоторые из которых я описал в статье. Если вы используете ноутбуки для чего-то ещё — делитесь опытом в комментариях, это интересно!


    Несмотря на то, что есть и другие способы запуска ноутбуков в облаке, включая Google Colab и Binder, сравнение показывает, что Azure Notebooks включает в себя максимальное количество крайне полезных фич.


    Надеюсь, что Azure Notebooks сделают Вашу жизнь лучше и продуктивнее, и вы станете, как и я, постоянно их использовать!


    P.S. Официальная документация по Azure Notebooks доступна тут: http://aka.ms/aznb

    • +15
    • 8,5k
    • 9
    Microsoft
    403,40
    Microsoft — мировой лидер в области ПО и ИТ-услуг
    Поделиться публикацией

    Комментарии 9

      –3
      если уж ноутбук, то пишите «правильно» — жупутер ноутбук
        +1
        К GPU доступ есть? Если да, то сколько стоит час и какие ресурсы доступны.
          0

          Доступ к GPU в бесплатном варианте пока отсутствует, для этого придётся создать виртуалку Data Science Virtual Machine с Ubuntu. Точные цены можно посмотреть здесь, самая простая машина с GPU (NC6) стоит порядка $1/час.

            0
            Посмотрел документацию, понял что GPU NVIDIA, а какие варианты GPU не нашел. Telsa V100?
              0

              Вот тут подробности. В зависимости от класса (NC, NCv2, NCv3) — это K80, P100 или V100. И стоимость тоже зависит.

          +1
          Э… из абзаца про ограничения не совсем понял: если мне, к примеру, надо написать парсер стороннего ресурса, или работать с API стороннего сайта, то я не смогу это сделать из azure.notebook?
          Дальше идет абзац про размещение картинок на внешних ресурсах — опять не понятно, если есть ограничения на взаимодействие с инетом, то как это стыкуется с картинками на внешних ресурсах?

          Не, конечно всё равно надо это попробовать, тут к гадалке не ходи.
            0

            Да, с доступом к сторонним ресурсам сложно — но я примерно написал, чем вызвано такое ограничение. Не хочется получить множество анонимных парсеров, использующих бесплатный вычислительный ресурс Azure Notebooks. Я в своё время писал для себя специальный gateway, который висел на Azure и возвращал любые ресурсы из интернет от своего имени, например http://my.site/pic.gif я просто заменял на http://mygateway.cloudapp.azure.com/my.site/pic.gif.
            Насчет размещения картинок — можно использовать на выбор GitHub, OneDrive или хранилище Azure (не так удобно и не бесплатно).

              0
              Спасибо за наводку :)

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

        Самое читаемое