Перейти к содержимому

К какой модели обслуживания относится google colab

  • автор:

Лучшее место для начала работы с искусственным интеллектом: руководство по Google Colab для начинающих

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

Что такое Google Colab?

Google Colab — это инструмент, который позволяет вам писать, запускать и публиковать код Python в вашем браузере. Colab также имеет множество функций, которые делают его популярным инструментом для анализа данных, машинного обучения и искусственного интеллекта. Многие учебники по машинному обучению, которые вы можете увидеть в Интернете, написаны в Google Colab, и на это есть веская причина. Когда вы пишете свой код машинного обучения в Google Colab, вы можете поделиться ссылкой на него, и любой может получить доступ к этому коду, запустить этот код в своем собственном браузере без какой-либо настройки.

Если вы знакомы с Jupyter Notebook, вы можете думать о Google Colab как о расширенной версии Jupyter Notebook, размещенной на облачных серверах Google, с множеством удобных функций. И если вы не знакомы с ним, не волнуйтесь, потому что это руководство не требует каких-либо предварительных знаний о Jupyter Notebook.

Как начать работу с Google Colab?

Чтобы начать работу с Google Colab, вы можете либо погуглить, либо, для вашего удобства, вы также можете щелкнуть ссылку ниже, чтобы начать:

Как только вы перейдете на веб-сайт, у вас будет возможность создать новую записную книжку, а также отобразить записную книжку «Добро пожаловать в Colaboratory». Прежде чем мы пойдем дальше, вы должны знать, что «записная книжка» является неотъемлемой частью Google Colab. Мы напишем и выполним наш код Python внутри блокнотов. Все записные книжки, которые вы создаете, будут сохранены на вашем Google Диске, поэтому вы можете получить к ним доступ и поделиться ими со своего Google Диска, как если бы вы делились другими документами. В результате вы можете начать кодирование в своем браузере, со своего ноутбука, планшета или телефона без какой-либо настройки, и вся ваша работа станет доступной по простой ссылке, и безопасно и конфиденциально на вашем Google Диске вместе с остальными вашими файлами.

Для начала нажмите «новая записная книжка». Это создаст для вас новую записную книжку с таким именем, как «Untitled0.ipynb». Вы можете изменить это имя на любое другое, например «ColabPractice». Вам не нужно менять имя, и по умолчанию Colab назовет все ваши записные книжки. Но может быть полезно присвоить своим блокнотам имена, поскольку чаще всего вы можете использовать несколько блокнотов одновременно. Теперь вы должны увидеть что-то вроде этого:

Ячейки кода и запуск вашего кода

В Colab весь код, который вы пишете, будет в «ячейках кода». В Colab есть два типа ячеек: один — это ячейки кода, а другой называется «текстовые ячейки». Вы можете использовать текстовые ячейки для добавления комментариев к вашему коду, а также для отображения изображений, видео, заголовков, списков и многого другого. Язык, используемый в текстовых ячейках, называется «уценка». Если вам интересно, вы можете научиться писать текст разметки, но это не обязательно, так как вы только начинаете работать с Google Colab.

Теперь вы должны увидеть в записной книжке единственную ячейку кода, в левой части которой есть значок кнопки воспроизведения. Давайте продолжим, нажмем на эту ячейку кода и введем простой код python. Это может быть примерно так:

Самый простой способ запустить этот код — нажать кнопку воспроизведения в левой части ячейки кода. Давай, нажмем на это. Результат должен выглядеть так:

Подключение и время выполнения

Обратите внимание, что первый раз, когда вы запустите свой код в Google Colab, это займет пару секунд. Это связано с тем, что ваш ноутбук подключается к серверу Google, на котором будет выполняться ваш код.

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

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

3 типа среды выполнения

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

Первый, используемый по умолчанию, — это среда выполнения ЦП. ЦП означает Центральный процессор. Это лучший вариант, если вы работаете с Python или с небольшой моделью машинного обучения. Но по мере того, как вы начнете создавать более сложные или большие модели машинного обучения, время вычислений для ваших моделей будет увеличиваться, и вы, вероятно, захотите использовать какой-то «ускоритель», чтобы ваш код работал быстрее. Вот тут-то и вступают в игру второй и третий типы среды выполнения.

Графические процессоры

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

Третий тип варианта выполнения, который вы можете выбрать для запуска своего кода, — это TPU. TPU расшифровывается как Tensor Processing Unit. Эти микросхемы обработки данных разработаны Google с целью значительного ускорения кода машинного обучения.

Изменение времени выполнения

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

Обратите внимание, что при изменении типа среды выполнения с Default на GPU или TPU есть примечание, в котором в основном говорится: используйте аппаратный ускоритель только в том случае, если вам нужен аппаратный ускоритель, чтобы получить максимальную отдачу от colab. Таким образом, Google может более эффективно распределять свои ресурсы для тех, кому требуется больше вычислительной мощности.

Действия ячейки кода

Чтобы создать еще одну ячейку кода, вы можете навести указатель мыши на нижнюю часть ячейки кода, и появится два варианта: «+ Код» и «+ Текст». Если вы нажмете на «+ Код», он создаст для вас еще одну ячейку кода под текущей ячейкой. Однако есть вероятность, что в большинстве случаев вы захотите использовать быстрые клавиши на клавиатуре. Чтобы запустить текущую ячейку кода, вы можете использовать «Command + Enter» на Mac или «Control + Enter» в Windows. Чтобы запустить текущую ячейку кода и перейти к следующей ячейке, вы можете использовать «Shift + Enter». Чаще всего вы можете запускать свои коды с помощью «Shift + Enter», потому что довольно часто вам нужно запускать не просто одну ячейку, а запускать ячейки кода последовательно, сверху вниз.

Когда вы нажимаете на ячейку кода, вы заметите, что с правой стороны появляются несколько символов. С помощью значка удаления вы можете удалить ячейку кода и перемещать ячейки кода вверх или вниз с помощью стрелок вверх и вниз.

Копирование и сохранение записных книжек

Всякий раз, когда вы изучаете учебник по Colab, вам часто может понадобиться копия этой записной книжки, чтобы вы могли сами поэкспериментировать с этим кодом. Для этого вы можете нажать «Файл» и выбрать «Сохранить копию на Диске». Это создаст копию и сохранит эту записную книжку на вашем Google Диске, и вы сможете изменить и запустить этот код и сделать его своим.

Если вы хотите использовать GitHub, вы также можете сделать это из «Файл», и у вас будут такие опции, как «Сохранить копию в Github». Вы попадете на страницу входа в Github, и как только вы войдете в систему, вы сможете использовать GitHub прямо из Google Colab.

Скачивание ноутбуков и работа в автономном режиме

Если по какой-то причине вы хотите загрузить свой блокнот из Colab и работать с ним локально на своем компьютере, вы также можете это сделать. Вы можете перейти в «Файл» и выбрать «Загрузить .ipynb» или «Загрузить .py». Вы должны знать одну вещь: когда вы пишете код Python в Colab, вы работаете с файлом .ipynb, который является файлом записной книжки ipython.

Файл «.ipynb» похож на файл Python с дополнительными функциями, которые делают более удобной работу с кодом для анализа данных и машинного обучения. Некоторые из основных отличий файла «.ipynb» заключаются в том, что он позволяет использовать ячейки кода, которые можно перемещать, и сохранять выходные данные ячеек кода. Это может быть очень полезно при визуализации ваших данных в области науки о данных и машинного обучения.

Файл «.ipynb» — это тот же тип файла, который вы использовали бы в записной книжке Jupyter. Поэтому, если вы хотите работать со своим кодом локально на своем компьютере, вы можете сделать это, используя среду Jupyter Notebook и файл «.ipynb», который вы загрузили из Colab.

Если вы используете Colab из браузера Chrome, вы также можете подключиться к локальной среде выполнения, щелкнув стрелку вниз рядом с полосами использования «RAM» и «Disk» в верхней правой части ноутбука.

Установка и настройка

Все основные библиотеки машинного обучения и науки о данных предустановлены в Colab. Поэтому, если вы хотите использовать основные библиотеки, такие как TensorFlow, PyTorch, Numpy, Matplotlib, Pandas, Seaborn,, вы можете начать использовать их с операторами импорта, такими как приведенные ниже:

Время от времени вам также может потребоваться установить различные библиотеки для Colab. Вы можете сделать это, поставив перед оператором pip install восклицательный знак, например:

После установки нужных библиотек вы можете импортировать их и начать использовать с оператором импорта, как показано ниже:

Поиск всех ваших ноутбуков Colab

Если вы нажмете на значок Colab в верхнем левом углу записной книжки, вы попадете на ваш Google Диск, поскольку именно здесь хранятся все ваши записные книжки Colab. Вы можете найти все свои записные книжки Colab в разделе Мой диск — ›Блокноты Colab. Чтобы открыть любую предыдущую записную книжку, вы можете щелкнуть по ней правой кнопкой мыши и выбрать Открыть с помощью — ›Google Colaboratory.

Заключение

Это все основы, которые вам понадобятся, чтобы начать программировать в Colab. Поскольку это не требует настройки, вы можете начать создавать модели машинного обучения со своего телефона, планшета или ноутбука. Пока у вас есть подключение к Интернету, все в порядке.

Надеюсь, эта статья принесла вам пользу. Если у вас есть какие-либо вопросы, прокомментируйте их ниже, и я свяжусь с вами как можно скорее. Если ваш вопрос требует более подробного объяснения, я могу объяснить это в другой статье или видео, посвященном вашему вопросу. Если вы, кстати, визуально обучаетесь, у меня также есть эта статья в видеоформате здесь:

Что такое Google Colab?

Google Colab вводный блокнот

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

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

Почему Google Colab?

фото freestocks.org на Unsplash

Хотя есть много причин, по которым кто-то может предпочесть использовать такой сервис, как Google Colab, для своей работы, вот причины, по которым он работает для меня:

  1. Интеграция с GitHub:Хотя записные книжки сохраняются на нашем диске Google, я предпочитаю также поделиться некоторыми записными книжками как частью их собственного репозитория GitHub. Google Colab позволяет прямой доступ к любому хранилищу после ссылки на наш профиль GitHub.
  2. Время установки нуля:Чтобы начать работу с Google Colab, все, что вам нужно сделать, это перейти на https://colab.research.google.com/ и выберите NEW PYTHON 3 NOTEBOOK из всплывающего меню.
  3. Независимость платформы:Поскольку к ноутбукам Jupyter можно обращаться напрямую из браузера, у нас может быть любой компьютер, Mac, Windows, Linux и т. Д., И он будет работать точно так же.
  4. Бесплатная доступность ресурса:Тренировочные модели для глубокого обучения требуют большой мощности, и, следовательно, не все ноутбуки и настольные компьютеры оборудованы для этого. Google Colab предоставляет бесплатный доступ к графическим процессорам, которые мы можем использовать для наших задач глубокого обучения.

Изучение Google Colab

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

Быстрые сочетания клавиш

Перемещаться по клеткам легко. Вам просто нужно использовать UP а также DOWN клавиши со стрелками на клавиатуре. Чтобы начать редактирование ячейки, просто нажмите Enter , Чтобы выйти из режима редактирования ячейки, просто нажмите Esc ,

Уже есть несколько предопределенных сочетаний клавиш, которые вы можете использовать. Некоторые из самых основных включают Shift + Enter управлять клеткой, Ctrl + M Y преобразовать ячейку в ячейку кода, Ctrl + M M преобразовать ячейку в текстовую ячейку и многое другое. Вы можете получить полный список, перейдя в Tools > Keyboard shortcuts. Вы можете настроить и изменить ярлыки, как вам нравится.

Помимо предопределенных, я настроил еще два ярлыка в соответствии с моими потребностями. Как ярлыки, которые имеют дело с клетками, начинаются с комбинации Ctrl + M Я решил, что буду сохранять то же самое при настройке собственных ярлыков. Для создания новой ячейки кода я создал ярлык Ctrl + M C , Для создания новой текстовой ячейки я создал ярлык Ctrl + M T ,

Подобные ярлыки существуют и могут быть настроены для Mac, также используя Command Key ,

Загрузить наборы данных

Google Colab позволяет нам получить доступ к нашим наборам данных несколькими способами.

Загрузить набор данных
На левой панели выберите Files заголовок. Выберите опцию Upload и выберите файл набора данных.

dataset.csv загружен и читается через панд

Тем не менее, файлы удаляются при обновлении во время выполнения, поэтому, если во время выполнения произойдет сбой во время выполнения без выполнения своей задачи, вам придется загрузить их снова.

Загрузить набор данных с Google-диска
Во-вторых, мы можем импортировать наборы данных, которые уже сохранены на диске Google. Это полезно, так как нам не нужно загружать набор данных снова, если ноутбук выходит из строя.

Чтобы подключить диск Google, мы используем следующий код:

При запуске этого кода предоставляется ссылка, которая позволяет нам войти в нашу учетную запись и представляет токен авторизации, который необходимо ввести в отведенное для этого место. Это позволяет нам получить доступ к содержимому нашего диска Google с помощью My Drive папка внутри /content/drive ,

Загрузка набора данных с Google-диска

Сохранить в GitHub репозиторий

Одной из самых интересных и полезных функций для меня стала интеграция между Google Colab и GitHub. Я предпочитаю работать с ноутбуками Jupyter и сохранять свою работу в определенных репозиториях GitHub в моей учетной записи. Google Colab делает весь процесс простым и удобным в использовании.

От File В меню мы выбираем опцию Save a copy in GitHub. Он загружает экран, чтобы связать нашу учетную запись GitHub, что является одноразовым процессом, после которого нас приветствует другое всплывающее окно. Мы можем выбрать репозиторий, ветвь, имя файла и сообщение о коммите. Это так просто!!

Сохранить блокнот на GitHub

Мы также можем добавить ссылку на эту записную книжку в репозиторий GitHub, чтобы любой, кто просматривает записную книжку на GitHub, мог быстро приступить к работе.

Открыть в Colab вариант в записной книжке, сохраненной через Google Colab

Изменение типа времени выполнения

Если вы когда-либо работали с моделями глубокого обучения, вы бы поняли, какую роль может сыграть графический процессор в многократном увеличении скорости обучения. Google Colab предоставляет возможность добавить GPU / TPU для нашего использования совершенно бесплатно. Это позволяет нам обучать наши модели глубокого обучения гораздо более высокими темпами.

От Runtime меню, выберите Change runtime type , Под аппаратным ускорителем мы можем выбрать None продолжить с ЦП или изменить время выполнения на GPU или TPU по мере необходимости.

Выбор между различными вариантами аппаратного ускорения

Как только вы нажмете SAVE время выполнения обновится, и вы можете заметить, что в правом верхнем углу, CONNECTING появляется, чтобы показать, что мы сейчас активируем новый тип времени выполнения.

Совместное использование записных книжек Colab

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

Поделиться записной книжкой

Вывод

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

Вам также может понравиться:

GitHub Пользовательские идеи с помощью GitHub API — Сбор и анализ данных

Изучение GitHub API

towardsdatascience.com

Глубокое обучение идентификации клеток малярии с использованием CNN на Kaggle

Глубокое обучение в области медицины

towardsdatascience.com

Давайте создадим Статью Рекомендатора, используя LDA

Рекомендовать статьи на основе поискового запроса

towardsdatascience.com

Работа с API с использованием Flask, Flask RESTPlus и Swagger UI

Введение в Flask и Flask-RESTPlus

towardsdatascience.com

Делитесь своими мыслями, идеями и предложениями. Я хотел бы услышать от вас.

За кулисами Google Colab

Заглянем во внутренности Google Colab и узнаем, как можно подстроить Colab под свои рабочие нужды, а не подстраиваться под ограничения этого инструмента. Подробности рассказываем к старту флагманского курса по Data Science.

Google Colaboratory, более известная как «Colab», — бесплатная платформа для блокнотов Jupyter. Кроме среды запуска блокнотов Python и R Colab позволяет совместно использовать свободный доступ к ограниченному количеству GPU и TPU.

Colab быстро стала де-факто средой программирования блокнотов Jupyter, но использовать Colab для чего-то кроме блокнотов Jupyter невероятно сложно. Особенно это верно для инженеров ML, желающих создать модели и вывести их со стадии блокнота. Блокнот идеален в исследовании, но плохо сочетается с широким инструментарием MLOps, кодифицирующим обучение в формальный конвейер.

За кулисами

Секретный соус Colab — это его бекенд: инфраструктурные серверы Google позволяют запускать код одним щелчком пальцев или одним нажатием кнопки. Так, наш первый шаг — анализ этого бекенд-API. Самое простое — проверить вызовы API Colab во время его нормальной работы:

Запускаем DevTools Chrome, находим вкладку Network и пытаемся запустить ячейку кода.

DevTools начинает записывать каждый запрос Colab — и почти сразу находим нечто интересное:

Похоже, URL /tun/m/<id>/socket.io — это прокси-сервер сокета Jupyter на удалённой машине.Если мы запустим панель Files (по умолчанию она показывает каталог /content) из левой панели UI Colab, то получим другой интересный запрос:

На этот раз тело ответа — JSON, перечисляющий файлы на удалённом узле. Похоже, что URL /tun/m/<id>/api/contents/ указывает на сервис, предоставляющий метаданные файла:

Двойной щелчок по файлу на панели Files загружает и отображает этот файл в Colab. Если мы попытаемся нажать на /content/sample_data/README.md, то заметим запрос к /tun/m/<id>/files/, который возвращает содержимое этого файла:

Понятно, что https://colab.research.google.com/tun/m/<id>/ — обратный прокси-сервер относительно сервера, на котором запущен экземпляр Colab, предоставляющий конечные точки /socket.io, /files и /api/contents.

Попробуем посмотреть, работает ли какой-то из сервисов внутри экземпляра контейнера Colab. Для этого запустим lsof, установленную внутри контейнера Colab: lsof -iTCP -sTCP:LISTEN, чтобы перечислить все процессы, которые прослушивают TCP-порт:

Угу. Перспективными для изучения поверхностями выглядят процессы colab-fileshim, node и jupyter-notebook. Мы уже имели дело с панелью Files, поэтому сначала посмотрим colab-fileshim. Его PID — 28, а раз так, проверим файловую систему /proc, чтобы увидеть всю команду CLI:

Следующий шаг — исследовать /usr/local/bin/colab-fileshim.py. По иронии судьбы сделать это можно, перейдя к нему на самой панели Files. В основном программа кажется неинтересным файловым сервером. Мало что понятно, кроме того, что сам сервер отвечает на запрос localhost:3453/files фактическим содержимым файла, а на localhost:3453/api/contents — метаданными JSON). А значит, Colab перенаправляет эти запросы с URL туннеля на порт 3453 самого экземпляра.

На вкладке Network Chrome DevTools мы можем щёлкнуть запрос правой кнопкой мыши, чтобы скопировать соответствующую команду cURL и воспроизвести её. Вот параметры cURL для просмотра README.md:

Выполнив эту команду на терминале локального компьютера, получим содержимое README, а после проб и ошибок увидим, что большинство из этих заголовков можно урезать, а оставить только эти:

Заголовок x-colab-tunnel предназначен помешать нам (или злоумышленникам) делать эти запросы из обычных вкладок браузера, якобы для остановки атак XSS. Заголовок cookie отвечает за аутентификацию Google, которая доказывает, что у нас есть право доступа к экземпляру блокнота. Сookie-файл длинный и громоздкий, поэтому сохраним его в переменной оболочки $COLAB_COOKIE.

1. Замена серверов Colab своими серверами

Посмотрим, можно ли использовать обнаруженный обратный прокси для туннелирования запросов. Не будем возиться с существующим сервером colab-fileshim.py, а просто заменим процесс нашим сервером! Запускаем pkill -f colab-fileshim, чтобы убить процесс, а затем на том же порту запустить наш сервер. Демонстрация — HTTP-сервер по умолчанию для обслуживания наших файлов по адресу localhost:3453/files.

Вуаля! Теперь перепишем команду cURL для загрузки наших файлов!

Обратите внимание на строку лога в ячейке Colab. Она доказывает, что запрос обработал наш сервер:

К сожалению, из-за требования заголовка x-colab-tunnel: Google легко получить доступ к серверу из браузера нельзя.

Дальнейшая разведка

Взглянем на другой интересный процесс — это node. Проверим /proc/7/cmdline и увидим, что процесс выполняет /datalab/web/app.js. А там мы обнаружим, что /datalab/web содержит довольно стандартное приложение NodeJS. Наряду с маршрутом /socketio/ оно также предоставляет маршрут /_proxy//. Это должно позволить получить доступ к любому URL с любого порта на экземпляре Colab:

Если бы только мы могли просматривать эту страницу из вкладки браузера… К сожалению, Colab отказывается передавать запросы, если у них нет x-colab-tunnel: Google. В попытке посетить эти URL-адреса из браузера мы увидим HTTP-ошибку 400:

Отображение целых веб-страниц

К счастью, для вставки HTTP-заголовков в запросы браузера можно воспользоваться расширением Chrome. Настроим его на отправку x-colab-tunnel: Google по всем запросам:

И запустим туннельные URL прямо в браузере!

К Jupyter!

Напоследок посмотрим на третий и последний интересный процесс — jupyter-notebook, который слушает порт 9000. Можно попробовать посетить порт из браузера, используя наш прокси и трюк с заголовком, посетить /tun/m/<id>/_proxy/9000. К сожалению, вместо UI Jupyter мы увидим страницу HTTP-ошибки 500.

Странно. Пытаемся запустить !curl -i localhost:9000 из самого блокнота, но всё равно получаем сообщение об ошибке:

Прошлый вывод lsof даёт нам подсказку: вместо прослушивания 0.0.0.0/:: (все IP-адреса по всем интерфейсам) Jupyter прослушивает только приватный IP, предоставленный экземпляру Colab. Так сделано, по-видимому, чтобы избежать раскрытия интерфейса Jupyter. Конечно. Google не старался изо всех сил, чтобы скрыть его.

Чтобы обойти ограничение адреса прослушивания, нужно создать процесс, прослушивающий все интерфейсы и IP, перенаправляющий весь получаемый трафик на конкретный IP, который прослушивает Jupyter. Для этого можно установить socat («Socket Cat») и через него переслать трафик с localhost:9000 на $HOSTNAME:9000 и обратно:

Началось! Перезагрузив URL-адрес в браузере, увидим фрагменты UI Jupyter, но он явно сломан.

Jupyter ожидает, что доступ к нему будет получен в корне домена (/), но наш туннель Colab имеет путь /tun/m/<id>/_proxy/9000. Это портит все абсолютные пути к ресурсам, например CSS и JS-файлам. Простого решения здесь нет — для перенаправления трафика на наш сервер понадобится целый (под)домен.

Показываем UI Jupyter

К счастью, для этого у Colab есть хорошо скрытое, но официальное решение! Как ни странно, оно скрыто настолько хорошо, что мне потребовалось больше времени, чтобы найти его, чем на то, чтобы найти внутренний обратный прокси!

Чтобы узнать, как использовать официальную переадресацию портов Colab, вам нужно открыть вкладку Code Snippets на левой боковой панели и найти фрагмент обработки вывода. Нажмите «View Source Notebook» и вы попадёте в advanced_outputs.ipynb, сборник фрагментов от Colab. Эти фрагменты демонстрируют пугающе документированные функции платформы. Конкретный фрагмент, который нам нужен, можно найти в разделе «Browsing to servers executing on the kernel».

Этим фрагментом мы можем воспользоваться для предоставления пользовательского интерфейса Jupyter на поддомене:

И теперь можно щёлкнуть ссылку, добавить /tree к URL, чтобы унять Jupyter, и увидеть полностью работающий UI Jupyter! Ну, почти полностью. Google, похоже, ограничил официальный прокси только запросами GET, что позволяет просматривать, но не запускать блокноты.

А мы поможем прокачать ваши навыки или с самого начала освоить профессию, актуальную в любое время:

Google Colab: что это такое и как с ним работать

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

что такое Google Collab

Содержание

Google Colaboratory — бесплатная среда, чтобы писать код в jupyter notebook. Она функционирует по принципу облака, поэтому над одним проектом могут работать одновременно несколько человек. Программа предоставляет доступ к графическим процессорам GPU и TPU. Благодаря их мощности можно исследовать искусственный интеллект и развивать приложения на основе нейросетей. Сервис бесплатный. Единственное ограничение — через 12 часов данные удаляются.

Кому нужен Google Colab

С помощью Colab пишут код на Python прямо в браузере, и здесь же он выполняется. Всё, что требуется, — доступ к гугл-аккаунту.

Colab позволяет использовать в одном файле исполняемый код, html-разметку, картинки. Всё будет храниться на гугл-диске. Этими файлами можно делиться: разрешать просматривать, редактировать и оставлять комментарии для совместной работы.

Colab подходит специалистам по обработке данных и разработчикам нейросетей. Он помогает:

  • сортировать данные,
  • строить визуализации,
  • проводить машинное обучение,
  • создавать системы для big data,
  • составлять прогнозы,
  • писать руководства.

Как работать с Google Colab

Colab поддерживает версии Python 2.7 и 3.6, но не работает с языками R или Scala. Есть ограничения по времени. Если оставить блокнот в режиме ожидания, через полчаса система выключит процессоры.

Подготовка

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

Запустите блокнот. Нажмите «Создать» → «Еще» → Google Colaboratory. Чтобы переименовать блокнот, щелкните на имя файла.

Подготовка Google Colab

Настройка

Определитесь с процессором. Если выбрать слишком мощный, есть риск вылететь из блокнота. Чтобы попасть в настройки процессора, выберите вкладку «Среда выполнения» и команду «Сменить среду управления».

Настройка Google Colab

Запуск основных команд Python

В Colab много встроенных библиотек Python: Pandas, NumPy, Scikit-learn. Чтобы посмотреть полный список, введите команду:

Чтобы импортировать сторонние библиотеки, используйте команды:

Обратите внимание на восклицательный знак. В Colab его ставят перед большинством команд.

Попробуйте запустить простой код. Например, напишите в строке ввода:

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

Пн 27 дек 12:01:26 2021

Чтобы очистить строку, щелкните на значок крестика в левой части окна.

Запуск или импорт файлов .py

Чтобы подключить сторонние файлы с данными или кодом, нужно импортировать утилиту drive. Она монтирует диск к Colab:

Когда выполните код выше, подтвердите, что разрешаете использовать диск.

Как импортировать файлы:

  • напрямую закидывать на диск;
  • скачать из интернета;
  • скачать с Git-репозитория.

Последние два варианта исполняют непосредственно из Colab, дополнительно используют встроенные утилиты.

Возьмем типичный для новичков код:

Это команда, которая выводит на экран содержимое введенной строки — Hello World. Закиньте это в файл test.py и положите его в корень диска. После монтирования диска введите команду !ls, чтобы проверить наличие файла:

Как импортировать файлы в Google Colab

Чтобы исполнить файл, введите команду запуска !python3 и путь до файла:

Скачать файл в Google Colab

Чтобы скачать репозиторий (GitHub, Bitbacket и другие), используйте команду

После скачивания он будет доступен по пути /content/name_repo.

Скачанный репозиторий будет лежать в /content/test_colab.

Чтобы выполнить этот код через !python3, команда выглядит так:

Чтобы скачать файл из интернета — команда

Для примера скачаем картинку. Напишем команду:

Здесь добавляем флаг -P, чтобы указать место, куда сохраняем файл.

Облачные среды, которые похожи на Google Colab

Yandex DataSphere — платный сервис с тарификацией по времени. Когда зарегистрируете аккаунт, в начале пробного периода получите грант 4000 ₽, который действует 60 дней.

Kaggle Kernels — сервис с поддержкой R и различными интеграциями. Время доступа к процессорам — 9 часов.

Azure Notebooks, как и Yandex DataSphere, тарифицируется по времени. Поддерживает языки Python, .Net, JS, Java, Go.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *