Как довести Google Colab до предела возможностей

Я начал использовать Google Colaboratory (Colab), записную книжку на Python, которая поставляется с бесплатными вычислительными ресурсами, когда проходил курс машинного обучения для выпускников.

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

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

Со временем Colab стал все более и более мощным инструментом в моих руках, и я смог справиться. Мне даже посчастливилось занять 1-е место в течение нескольких дней в нескольких наших соревнованиях Kaggle.

Знайте, над каким графическим процессором вы работаете

Вы можете сделать это, запустив !nvidia-smi. В качестве примера ниже я работаю с Tesla K80.

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

  1. V100
  2. T4
  3. P100
  4. K80

Графический процессор перезапускается в каждом сеансе, а также сеансы и могут быть перезапущены, щелкнув в верхней левой панели инструментов в разделе «Время выполнения»> «Восстановление заводских настроек» во время выполнения.

Не все сеансы рождаются равными

Было обнаружено, что вероятность получения улучшенного графического процессора и увеличения времени работы не зафиксирована. Исходя из моего опыта и мнений окружающих меня людей, некоторые аккаунты позволяют проводить более длительные сеансы до 3–9 часов, в то время как другие отключаются по прошествии немногим более 1 часа.

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

1. В какой учетной записи Google используется Colab

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

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

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

2. Как часто в аккаунте используется Colab.

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

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

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

Сохраняйте прогресс в тренировках с помощью небольшого кода

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

Смонтируйте свой контент на Google диск

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

Используйте %cd content/drive/MyDrive/the_name_of_folder для перемещения по каталогам на вашем диске.

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

Обучение от аккаунта к аккаунту

Можно продолжать обучение, просто войдя в разные учетные записи Google на Colab, но подключившись к той же учетной записи на диске Google.

Однако это при условии, что вы знакомы с тем, как сохранять контрольные точки обучения, что, с моей точки зрения, не так просто для начинающих. Я бы порекомендовал начать с руководства от Pytorch.

Моя любимая подписка: Colab Pro

Colab предлагает план подписки за 9,99 долларов в месяц для более быстрого графического процессора и более длительного времени работы, что обычно является неплохим вариантом, если вы не столкнетесь с проблемами.

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

Я усвоил это на собственном горьком опыте. Узнав о плане, я вытащил свою карточку и сразу же принялся за дело. К сожалению, после использования менее 1 часа мой сеанс был прерван, и я не смог подключиться к графическому процессору.

После некоторого охлаждения я все еще могу использовать его, но я получаю отключение после использования в течение примерно 1 часа. (По сравнению с 3–9 часами в бесплатном плане)

К тому же у меня даже не было лучшего графического процессора. Обычно назначается для T4, но в Colab Pro по умолчанию используется P100.

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

Тренируйтесь быстрее с V100

V100 очень хорош. Хотя трудно количественно оценить, насколько хорошо, я вижу, что в некоторых моих проектах НЛП он идет в 10 раз быстрее, чем T4.

Быстрая не только экономия времени, но и иногда играет большую роль. Был один случай, когда у меня был крайний срок в 23 часа, но обычно на завершение тренировки уходит 24 часа. Я был на грани отказа, но за последние 10 часов я сел на V100 и закончил вовремя.

Поезд в ночное время

Только после того, как я перешел на Pro с правильной учетной записью, я смог спать 8 часов во время тренировки.

Тренируйтесь в условиях нестабильного интернета

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

Открыть несколько сеансов

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

Корги и Китти

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

Заключительные слова

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

Членство в Medium дало мне возможность узнать достаточно и написать для Towards Data Science. Зарегистрируйтесь, используя мою личную ссылку, затем оставьте комментарий ниже, и я пришлю вам pdf-файл, в котором я расскажу обо всем моем путешествии.