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-среду на локальному комп'ютері.
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
:
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