Блокнот Colab — это бесплатная интерактивная облачная среда для работы с кодом на языке Python от Google в браузере. Принцип у нее такой же, как у остальных онлайн-офисов компании: она позволяет одновременно с коллегами работать с данными. Рассказываем, в чем преимущества Colab для написания кода в каких сферах он может быть полезен разработчикам и не только.
Что такое Google Colab
Google Colab — сервис, созданный Google, который предоставляет возможность работать с кодом на языке Python через Jupyter Notebook, не устанавливая на свой компьютер дополнительных программ. В Google Colab можно применять различные библиотеки на Python, загружать и запускать файлы, анализировать данные и получать результаты в браузере. Этот сервис особенно полезен для разработчиков и студентов, изучающих программирование на Python.
Кому нужен Google Colab
- вообще всем, кто работает с Big Data;
- аналитикам данных (сортировать данные в файлах за долгий период, делать визуализацию или выстраивать закономерности);
- исследователям данных (разрабатывать и тестировать новые модели машинного обучения, составлять прогнозы);
- инженерам данных (разрабатывать ПО, системы для хранения больших данных).
В основе «Колаборатории» — блокнот Jupyter для работы с кодом на языке Python, только с базой на Google Диске, а не на компьютере. Здесь те же ячейки (cells), которые поддерживают текст, формулы, изображения, разметку HTML и не только. То есть можно заниматься программированием на языке Python и не качать лишние файлы, кучу библиотек, не перегружать машину и не переживать, что место на жестком диске вот-вот закончится. Единственное условие — нужно иметь Google-аккаунт.
Главная особенность «Колаборатории» — бесплатные мощные графические процессоры GPU и TPU, благодаря которым можно заниматься не только базовой аналитикой данных, но и более сложными исследованиями в области машинного обучения. С тем, что CPU вычисляет часами, GPU или TPU справляются за минуты или даже секунды.
Anaconda и Jupyter Notebook
Дата-сайентисты часто работают с Jupyter Notebook — инструментом, позволяющим запускать и отлаживать алгоритмы небольшими фрагментами. Это удобно для работы с данными: нужно запустить фрагмент кода в ячейке — посмотреть результаты — изменить код — снова запустить и так далее.
Одна из популярных программ, в составе которых есть Jupyter Notebook, — Anaconda. Кроме Jupyter на ваш компьютер будут установлены языки Python и R, а также больше 250 разных программ и библиотек для анализа данных и разработки моделей машинного обучения.
Такое разнообразие нужно не всегда. Также не всегда можно установить все локально. В этом случае помогает Google Colaboratory.
CPU vs. GPU vs. TPU
CPU — центральный процессор — мозг компьютера, который выполняет операции с файлами. Настолько универсален, что может использоваться почти для всех задач: от записи фотографий на флешку до моделирования физических процессов.
GPU — графический процессор. Обрабатывает файлы быстрее, так как задачи выполняет параллельно, а не последовательно, как CPU. Он заточен исключительно под графику, поэтому на нем удобнее работать с изображением и видео, например заниматься 3D-моделированием или монтажом.
TPU — тензорный процессор, разработка Google. Он предназначен для тренировки нейросетей. У этого процессора в разы выше производительность при больших объемах вычислительных задач.
Сами процессоры дорогие, и не каждый может их себе позволить. Платформа Google Colaboratory дает возможность бесплатно и непрерывно пользоваться ими на протяжении 12 часов. Будьте внимательны: как только это время истечет, Colab сотрет все данные и файлы и придется начинать сначала.
Кроме того, Google отключает файлы блокнота после примерно 30 минут бездействия, чтобы не перегружать процессоры. Система Colab так устроена специально: например, многие факторы, в том числе время простоя, максимальная активность, общие ограничения на объем памяти иногда динамически меняются. Активным участникам ненадолго могут ограничить доступ к GPU, чтобы дать возможность использовать процессор другим.
Для чего используется Google Colab
- знакомство с TensorFlow — открытой библиотекой на Python для машинного обучения;
- разработка нейронных сетей;
- эксперименты с TPU;
- распространение исследований в области искусственного интеллекта;
- создание руководств.
Несколько таких примеров есть в открытом доступе прямо в Colab.
Эта гибкость в управлении ограничениями позволяет Colab оставаться бесплатным для всех пользователей. Ну а чтобы все не упало в самый неожиданный момент, можно оформить подписку на Colab Pro за $9,99 в месяц. Там и памяти в два раза больше, и времени работы, и к тому же приоритетный доступ к TPU. Правда, пока Pro-подписка есть только в Канаде и США.
Как начать работать с Google Colab
Все просто: на сайте Google Colab сразу появляется экран с доступными блокнотами. Можно создавать новый или загружать уже разработанный Python-код из Google Диска.
Чтобы работать с файлами и кодом в Google Colab с личного диска, нужно использовать команду mount()
:
from google.colab import drive
drive.mount ('/content/drive')
После запуска команды Colab предложит ввести код авторизации. Открыв URL, вы должны предоставить сервису доступ к своему аккаунту. Тогда он выдаст код, который нужно будет вставить в поле, нажать ВВОД, и Google Colab подключится к хранилищу.
Чтобы проверить, действительно ли Colab подключился, можно использовать команду !ls "/content/drive/My Drive"
. Она покажет содержимое Google-диска.
Зачем использовать Google Colab
- Как и Google Документы, он дает возможность работать с Python-библиотеками для анализа данных онлайн.
- «Гугл Коллаб» предоставляет мощные процессоры для облачных вычислений. У него интуитивно понятный интерфейс, который позволяет не перегружать компьютер файлами и процессами и делать все вычисления быстро.
- Все блокноты под рукой. В Google Colab сохраняется доступ к аккаунту с файлами с любых устройств. Правда, если вы с осторожностью относитесь к своей конфиденциальности, Jupyter Notebook останется более предпочтительным вариантом.
- Сердце Colab — это совместное использование. При работе над проектом в команде Colab дает возможность свободно править, комментировать и редактировать код с разных аккаунтов, даже если вы сидите на жестком локдауне где-нибудь в Лондоне.
Еще одно достоинство Colab — интеграция с GitHub. Он открывает доступ к любому хранилищу, если ему предоставить профиль на сервисе.
Кроме того, для определенных задач в Google Colab можно выбрать подходящий по мощности процессор. Необходимо просто сменить среду выполнения в нужной вкладке
и уже в настройках блокнота выбрать между GPU и TPU.
Не стоит работать с мощным процессором, когда не требуется работать с Big Data. Как мы уже говорили, Colab не любит, когда его ресурсы используются нерационально, поэтому любые перегрузки приведут к внезапному вылету из блокнота на неопределенное время.
Google Colab максимально упростил все процессы: в нем есть и базовые библиотеки (NumPy, scikit-learn, Pandas), и более сложные (вроде Keras, TensorFlow или PyTorch), не нужно ставить программы и среды самостоятельно, можно просто сразу писать код. Если же базовых библиотек Google Colab недостаточно, всегда можно добавить необходимые с помощью установщика PIP и работать дальше:
%pip install emoji
В Colab можно делиться файлами с другими, оставлять комментарии, редакторские заметки и в целом делать все, что доступно в тех же Google Документах. Поэтому при общем доступе к блокноту все его содержимое будет доступно другим пользователям (текст, код, комментарии, выходные данные). Последнее можно отключить: нужно выбрать «Настройки блокнота» в меню «Изменить».
В появившемся окне Google Colab поставить галочку «Исключить выходные данные кодовой ячейки при сохранении блокнота», и тогда в блокноте сохранится только код, но не результаты его исполнения.
Вместе с тем открытый доступ к коду и его редактированию — отличная возможность найти интересные разработки по всему миру. У Google есть обширный репозиторий SeedBank, в котором можно исследовать множество блокнотов по Data Science или глубокому обучению, просто кликнув мышкой.
Облачные среды, похожие на Google Colab
Yandex DataSphere — в отличие от Google Colaboratory это платный блокнот, в котором тарифицируется фактическое время вычислений. При регистрации на пробный период (60 дней) выдается грант в размере 4000 ₽ для резидентов РФ и 50 $ для нерезидентов РФ. Особенности использования сервиса можно изучить в документации.
Kaggle Kernels — кроме Python, сервис Kaggle поддерживает R, интегрируется с Google Cloud Storage, BigQuery и AutoML. При этом время пользования процессорами – девять часов, на три меньше, чем у GC.
Azure Notebooks — как и Google Colaboratory, среда тоже поддерживает другие языки (R, F#). Сервисы Microsoft Azure также, как и Яндекса, тарифицируются за фактическое время использования.
CoCalc — предлагает и бесплатный, и платный (14 $) периоды. В расширенной версии больше памяти и времени простоя, приоритетный доступ к процессорам и техподдержке. Документация.