Google Colab


Что такое Google Colab


Google Colaboratory — облачный сервис на основе Jupyter Notebook, предоставляющий функционал для анализа и обработки данных, а также машинного обучения. Позволяет работать в интерактивной среде, писать код на Python в специальных ячейках и выполнять его последовательно. Ячейки работают с общей памятью, поэтому результат работы команды одной ячейки доступен в любом месте ipynb-документа.

В блокнотах Colab можно использовать в одном файле как программный код, так и изображения или форматированный текст. Удобно, что сервис поддерживает разметку LaTeX.



Пример разметки LaTeX в Colab


Почему Colab

Не нужно устанавливать Jupyter Notebook локально

Нет необходимости скачивать дистрибутив на свой компьютер, не нужно настраивать библиотеки машинного обучения наподобие TensorFlow, Keras, PyTorch и так далее — они уже предустановлены. Кроме того, на Colab заработает любая библиотека (виртуальная машина работает под Linux), в то время как пользователи Windows могут иметь с этим проблемы.

Доступ к мощным видеокартам

Colab предоставляет доступ к видеокартам Nvidia K80, T4, P4 и P100. Какая именно карта достанется вам при запуске, угадать невозможно. Однако вычисления, оптимизированные под GPU, на любой из данных видеокарт ускоряются в 10-20 раз. На примере обучения нейронных сетей можно получить разницу и в 50 раз.

Связь с Google диском

Во-первых, все ноутбуки хранятся на Google диске. Во-вторых, ноутбук можно подключить к диску и загружать данные с него и не хранить файлы локально (что весьма существенно, когда датасеты занимаются несколько десятков гигабайт). Хранение данных в облаке позволяет работать над одной задачей сразу с нескольких устройств.
В случае, когда требуется загружать много мелких файлов, эффективнее всего хранить на диске архив, затягивать его на виртуальную машину и разархивировать средствами Colab. Так удобнее, потому что архив передается по сети быстрее, чем большое количество мелких файлов.

История изменений

Структура Colab похожа на Google Docs: имеется возможность скачать, распечатать, конвертировать ноутбук (в PDF или PY-файл), а также посмотреть историю изменений — она показывает разницу в файле для каждой даты изменения.

Недостатки

Лимиты

С марта 2021 года Google уменьшила мощности предоставляемых машин. Например, максимальный объем ОЗУ теперь составляет 16 Гб вместо 25 прежних. Кроме того, необходимо использовать сервис в интерактивном режиме, то есть запустить обучение на сутки и уйти не получится — сервис попросит ввести капчу и, не получив ответа, завершит сеанс. Продолжительность непрерывной работы не должна превышать 12 часов, а при длительном использовании видеокарты Google может отключить её.
Раньше существовали различные пути обхода ограничений, но сейчас они не работают и единственный вариант — купить подписку за $10 в месяц. Платная подписка предоставляет доступ к более мощным видеокартам и процессорам (например, AMD EPYC 7H12).

Работа на виртуальной машине

С одной стороны, у такой работы есть описанные преимущества, но с другой, виртуальная машина очищается при каждом перезапуске, к ней нет доступа без интернета, и ее конфигурация может меняться от запуска к запуску. Выдача видеокарт и ЦП случайным образом крайне неудобна при исследованиях, требующих воспроизводимости результатов. 

Альтернатива

Ресурс Kaggle также предоставляет возможность использовать интерактивные Jupyter ноутбуки в облаке. Удобство Kaggle заключается в том, что в виртуальную машину уже загружены данные задачи, которую вы решаете. Это полезно, к примеру, при использовании датасетов размером 50 Гб и больше. Система ограничений отличается от Colab: например, лимит использования GPU составляет 30 часов в неделю. Кроме того, нет прямой связи с Google диском. К примеру, это может повлечь трудности при желании запустить несколько итераций обучения, по завершении каждой из которых результат сохраняется разработчику в какое-либо хранилище (чтобы избежать потери данных при внезапной перезагрузке ВМ). В то же время в Colab файлы из хранилища машины копируются на диск одной командой. 

Выводы

Таким образом, Google Colab в бесплатной версии полезен для интерактивных сеансов, в том числе с вычислениями на видеокартах. Платная версия делает сервис полноценным инструментом для машинного обучения и анализа данных, обеспечивает быструю и удобную работу в облаке. В качестве альтернативы можно использовать ресурс Kaggle.