Привет! Меня зовут Ольга Матушевич, я наставница на курсе «Аналитик данных» в Яндекс Практикуме. С Jupyter Notebook я впервые столкнулась шесть лет назад, когда начала изучать Python и анализ данных. И именно установка Jupyter Notebook стала самым сложным этапом моей учёбы — ни чистка данных, ни градиентный бустинг, ни бутстрэп не доставляли мне столько трудностей.

Если установка программного обеспечения даётся вам так же трудно, то эта статья для вас. В ней я рассказываю о не требующем установки сервисе Google Colab, сравниваю его с Jupyter Notebook и даю советы для лёгкого старта.

Аргументы в пользу Jupyter Notebook: много возможностей и поддержка библиотек

Как и шесть лет назад, Jupyter Notebook и сейчас выгодно выделяется среди других инструментов для работы с Python. Он позволяет выполнить код по частям и мгновенно увидеть результаты, поэтому с ним легко учиться и экспериментировать. 

Также среди плюсов: поддержка визуализации данных, возможность добавить пояснительный текст и формулы. Jupyter Notebook поддерживает библиотеки (например, Matplotlib и Pandas), которые импортируются один раз и до следующего крупного обновления, — их не нужно устанавливать перед каждым новым сеансом, как в онлайн-сервисах. Наконец, Jupyter Notebook бесплатный.

А ещё Jupyter Notebook предлагает широкие возможности для форматирования текстовых ячеек. Например, текст, отформатированный так:

<div class="alert alert-block alert-danger"> Красный текст на розовом фоне </div>

Будет выглядеть так:

Jupyter Notebook работает офлайн. Это значит, что программу надо установить на компьютер, но зато разработчик не сможет заблокировать её одним днём. Конечно, возможности обойти блокировки есть почти у всех ушедших сервисов, но факт — без этих нюансов работается быстрее и комфортнее.

Чем хорош Google Colab: те же функции, но прямо в браузере

Google Colab (Colaboratory) — это облачный сервис от Google, который позволяет писать и выполнять Python-код в браузере без установки дополнительных программ. 

Упомянутые преимущества Jupyter Notebook применимы и к Google Colab — сервис умеет запускать код по частям, поддерживает визуализацию, библиотеки и добавление текстовых пояснений. У него есть платный тариф Pro, но бесплатной версии для новичка более чем достаточно.

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

Но возможностей и преимуществ у Google Colab больше, чем недостатков. Вот главные из них.

  • Возможность использовать GPU/TPU. Это не так важно на старте, но может пригодиться в будущем.

  • Удобное меню навигации по файлу, которое автоматически подхватывает созданные вами заголовки.

  • Удобство совместной работы. Легко поделиться проектом по ссылке, как обычным Google-документом, настроить уровень доступа (чтение, комментирование или редактирование), вносить правки так, чтобы они автоматически синхронизировались у всех пользователей. Также при совместной работе у всех участников согласуются наличие и версии библиотек. Если чего-то нет у вас, то нет и у товарищей по проекту. Значит, код !pip install scikit-learn нужен либо всем, либо никому. Согласование происходит само собой, тратить время на синхронизацию не придётся.

Что выбрать — Jupyter Notebook или Google Colab?

Чтобы сравнить варианты, составим таблицу.

Jupyter Notebook

Google Colab

Не требует установки

Нет

Да

Поддерживает GPU/TPU

Нет

Да

Подходит для совместной работы

Да, но это не всегда удобно

Да

Поддерживает функции форматирования текста

Да, расширенные

Да, но только основные

Работает без интернета

Да

Нет

Не требует завести аккаунт в Google

Да

Нет

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

Сейчас я автоматически открываю именно Google Colab и для создания нового большого проекта, и для мелких расчётов. Это особенно удобно, потому что у меня два рабочих компьютера — ПК дома и ноутбук для командировок и коворкинга. И хотя на обоих установлен Jupyter Notebook, именно работая в Google Colab, я уверена, что смогу использовать результаты проектов на любом из компьютеров, не прикладывая никаких усилий для их сохранения. Равно как и поделиться результатами с коллегами.  

Как работать с Google Colab: первые шаги

Начало работы

Выполните следующие шаги:

  1. Откройте Google Colab. Зайдите на страницу Google Colab и войдите в систему с помощью вашего аккаунта в Google. Откроется краткая инструкция.

  2. Создайте новый ноутбук. Выберите «Файл» → «Создать блокнот на Диске» (File → New notebook), чтобы создать новый документ.

Начало положено.

Типы ячеек

В Jupyter Notebook есть три вида ячеек: Code, Markdown и Raw (используется для включения текста, который не должен быть изменен или выполнен ни ядром, ни любыми предопределёнными преобразованиями).

В Google Colab всего два типа ячеек: «Код» и «Текст».

Загрузка файлов

Самый сложный момент для новичков. В Google Colab недостаточно написать pd.open_csv(‘file.csv’) — нужно станцевать чуть более сложные танцы с бубном. Приведу мой любимый способ загрузки файлов:

  1. Загрузите файл на ваш Google Диск.

  2. Откройте к нему доступ на чтение по ссылке. Скопируйте эту ссылку.

  3. Введите в файл Colab следующий код:

import pandas as pd

url='' # между кавычками — скопированная ссылка на файл

url='<https://drive.google.com/uc?id=>' + url.split('/')[-2]

df = pd.read_csv(url)

Всё, данные загружены. Причем этот метод загрузки будет работать корректно не только у вас, но и у всех, с кем вы поделитесь блокнотом. Этот вариант не единственный — в статье на Medium (откроется с VPN) есть ещё несколько способов подготовить файлы к работе в Google Colab.

Возможности текстовых ячеек

Если вы очень хотите добавить цветной текст в свой проект, вы этого добьетесь. Можно, в конце концов, использовать ячейки для кода не по назначению. Но я предлагаю поступить проще и выделять текст иначе, например, смайликами. В Google Colab работать с ними в текстовых ячейках намного проще.

Возможный результат:

При создании нумерованного списка в Google Colab, как и в Jupyter Notebook, можно использовать только единицы. То есть текст ниже:

1. Первый пункт

1. Второй пункт

1. Третий пункт

1. Четвёртый пункт

1. Пятый пункт

будет выглядеть так:

Это позволяет не задаваться вопросом «правильная ли у меня нумерация?» после редактирования такого списка.

Работа с тетрадками .ipynb

Если вы хотите открыть тетрадку .ipynb в Google Colab, просто загрузите её на свой Google Диск и кликните по файлу. Система сама предложит вам открыть тетрадку именно в Google Colab.

Если же вы хотите скачать ваш код, чтобы потом продолжить работать с ним в Jupyter Notebook или, например, в PyCharm, вы можете скачать его сразу в формате .ipynb или .py.

Интерактивные таблицы и рекомендации по графикам

При любом выводе таблицы, например, при выполнении кода df.head(), Google Colab предложит использовать два инструмента.

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

  • Рекомендации по графикам. Они позволяют автоматически генерировать предложения по визуализации данных на основе содержимого вашего DataFrame. Эта функция упрощает процесс создания графиков, особенно для тех, кто не уверен, какой тип визуализации лучше всего подходит для их данных.

Включить инструменты можно тут:

Если результаты вам не понравились, просто обновите код в ячейке, и они исчезнут.

Полезные ссылки для работы с Google Colab

Это не вся информация, которая может пригодиться при первых взаимодействиях с Google Colab. Делюсь несколькими ссылками, которые помогут быстрее разобраться с сервисом.


Надеюсь, эти советы помогут вам освоить новый инструмент и сделать первые шаги в анализе данных. В конце хочу заметить, что при всем удобстве Google Colab когда-нибудь вам станет его мало. И вы установите на свой компьютер Jupyter Notebook. Или PyCharm. Или Spider ?

Комментарии (8)


  1. Joysi
    04.07.2024 06:30
    +9

    А почему нельзя использовать GPU в Jupyter notebook ? По моему, в tf, catboost.... можно выбрать device на котором проводить вычисления (GPU/CPU) .


    1. OlgaDS Автор
      04.07.2024 06:30
      +1

      Спасибо за комментарий. Судя по тому, что уже 3 пользователя об этом написали - я и правда недостаточно изучила информацию по этому вопросу.


  1. Dark_Furia
    04.07.2024 06:30
    +5

    Наброшу еще недостатков колаба:

    1. Куций и постоянно уменьшающийся бесплатный тариф. Проплатить из РФ может быть целым приключением

    2. Изначально - только 12 ГБ RAM. Если работать со сколько-то приличным датасетом и/или требовательной к памяти моделью - ООМ обеспечен

    3. Суточная квота - около 6 часов. По моим наблюдениям +- рандом

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

    5. Бывают проблемы с сетью - зависимости могут ставиться долго и далее разбиваемся о пункт 4

    6. Наиболее простой способ обеспечить персистентность данных и выхлопов - через Гугл диск. Но и тут не без проблем - иногда задержка записи в диск может составлять до 12 часов

    7. Из категории свистелки, но все же: медленный автокомплит

    Таким образом, при наличии сколько-то серьезной задачи и хотя бы сравнимого по мощности железа оказывается куда выгоднее поднять Jupyter Notebook/Jupyter Hub и жить припеваючи.


    1. saege5b
      04.07.2024 06:30

      Ещё у Колаба местами древнючие библиотеки которые прибиты гвоздями к самому Колабу.


    1. Anton_Menshov
      04.07.2024 06:30

      Для меня наиболее простым способом обеспечить персистентность - Bucket в Google Cloud. Это небесплатно (есть триал, и стоимость хранения\трансфера данных [сравнительно] не очень большая). Но в моем случае работает хорошо.


    1. Antra
      04.07.2024 06:30

      3. Суточная квота - около 6 часов. По моим наблюдениям +- рандом

      Сложилось впечатление, что "сутки" у них другие, не как у вас в браузере. Что, пожалуй, и правильно. Иначе было бы слишком легко перевести часы и получить доп время.

      Поэтому если вы начинаете отсчет своих 6 часов их утром - вы получите 6 часов. Но если у них произойдет смена суток, вы получите больше (и это хинт, если ожидаются длительные вычисления). И наоборот, у них может считаться, что вы уже потратили часть суточного лимита, хотя у вас уже новые сутки начались, когда вы еще вроде как не работали.

      Я так думаю, потому что "неравномерность" шестичасовой квоты особо резко проявляется когда работаешь то [своим] утром, то вечером. Но без гарантий.


  1. Stanislavvv
    04.07.2024 06:30
    +1

    Про невозможность использования GPU - тут вы несколько ошибаетесь. GPU при наличии его там, где запускается, вполне себе может использоваться. Да, может быть, потребуется настроить, но тем не менее — коллега вполне себе разрабатывает сервисы с нейросетями через Jupyter Notebook и не ждёт ответа по 40 минут на процессоре, а 40 секунд на видеокарте.


  1. Sorlak
    04.07.2024 06:30

    На мой взгляд, некорректное сравнение. Google Colab - разве не web-обёртка для JupyterNotebook? Есть нативные веб-сервисы типа JupyterLab. Вот их и можно было сравнить с Colab. А десктоп-версия JupyterLab есть и в VS Code, и в PyCharm. Выглядит как сравнение: что лучше Git или GitHub...

    По загрузке файлов в Colab. Можно загрузить файл во временное хранилище (в панели слева) и не мучиться с Google-диском, получив через контекстное меню (ПКМ по файлу в панели слева) относительный путь. Файл будет храниться до конца рабочей сессии. Это же есть и в JupyterLab.